diff --git a/cli/shared/build-extensions.test.ts b/cli/shared/build-extensions.test.ts index aa03248aa8..b9fb7c2b74 100644 --- a/cli/shared/build-extensions.test.ts +++ b/cli/shared/build-extensions.test.ts @@ -1,6 +1,8 @@ import "#veryfront/schemas/_test-setup.ts"; import { assertEquals, assertExists } from "#veryfront/testing/assert.ts"; import { describe, it } from "#veryfront/testing/bdd.ts"; +import { EvalReportExporterRegistryName } from "veryfront/extensions/eval"; +import { LLMProviderRegistryName } from "veryfront/extensions/llm"; import { setupBuildCliExtensions } from "./build-extensions.ts"; /** Minimal stand-in for the loader; the build path only needs it to resolve. */ @@ -61,6 +63,18 @@ describe("cli/shared/build-extensions", () => { assertEquals(names.has("ext-content-mdx"), true); }); + it("primes the contracts required by built-in providers and exporters", async () => { + let primeContracts: Record = {}; + + await setupBuildCliExtensions("/projects/app", {}, (options) => { + primeContracts = options.primeContracts ?? {}; + return Promise.resolve(loaderStub); + }); + + assertExists(primeContracts[LLMProviderRegistryName]); + assertExists(primeContracts[EvalReportExporterRegistryName]); + }); + it("hands orchestration a logger it can actually log through", async () => { // Not "names the build": cliLogger.component() deliberately returns the // same logger, because CLI output carries no structured component tag. So diff --git a/cli/shared/build-extensions.ts b/cli/shared/build-extensions.ts index 538a7694a5..d199580f46 100644 --- a/cli/shared/build-extensions.ts +++ b/cli/shared/build-extensions.ts @@ -26,6 +26,11 @@ */ import { orchestrateExtensions } from "veryfront/extensions"; +import { + createEvalReportExporterRegistry, + EvalReportExporterRegistryName, +} from "veryfront/extensions/eval"; +import { createLLMProviderRegistry, LLMProviderRegistryName } from "veryfront/extensions/llm"; import { cliLogger } from "#cli/utils"; import { createBuiltinExtensions } from "../../src/extensions/builtin-extensions.ts"; @@ -46,6 +51,10 @@ export async function setupBuildCliExtensions( projectDir, config, logger: cliLogger.component("build-extensions"), + primeContracts: { + [LLMProviderRegistryName]: createLLMProviderRegistry(), + [EvalReportExporterRegistryName]: createEvalReportExporterRegistry(), + }, builtinExtensions: createBuiltinExtensions(), }); }