diff --git a/extensions/cli/src/configLoader.ts b/extensions/cli/src/configLoader.ts index eb1c47f55d0..a28eb9a843e 100644 --- a/extensions/cli/src/configLoader.ts +++ b/extensions/cli/src/configLoader.ts @@ -195,11 +195,12 @@ async function loadFromSource( ); case "no-config": - return { - name: "No Config Specified", - version: "1.0.0", - }; - + return await unrollPackageIdentifiersAsConfigYaml( + injectBlocks, + accessToken, + organizationId, + apiClient, + ); default: throw new Error(`Unknown config source type: ${(source as any).type}`); } @@ -324,9 +325,7 @@ async function loadUserAssistantWithFallback( organizationId, apiClient, ); - if (injectedConfig?.block) { - apiConfig = mergeUnrolledAssistants(apiConfig, injectedConfig.block); - } + apiConfig = mergeUnrolledAssistants(apiConfig, injectedConfig); } return apiConfig; @@ -386,9 +385,7 @@ async function loadDefaultAgent( organizationId, apiClient, ); - if (injectedConfig?.block) { - apiConfig = mergeUnrolledAssistants(apiConfig, injectedConfig.block); - } + apiConfig = mergeUnrolledAssistants(apiConfig, injectedConfig); } return apiConfig; @@ -399,13 +396,13 @@ export async function unrollPackageIdentifiersAsConfigYaml( accessToken: string | null, organizationId: string | null, apiClient: DefaultApiInterface, -): Promise<{ block: AssistantUnrolled | undefined } | null> { +): Promise { const unrollResult = await unrollAssistantFromContent( { uriType: "file", fileUri: "", }, - "name: FILLER\nschema: v1\nversion: 0.0.1", + "name: Agent\nschema: v1\nversion: 0.0.1", new RegistryClient({ accessToken: accessToken ?? undefined, apiBase: env.apiBase, @@ -420,16 +417,17 @@ export async function unrollPackageIdentifiersAsConfigYaml( injectBlocks: packageIdentifiers, }, ); - if (!unrollResult?.config) { + if (unrollResult.errors) { const fatalError = unrollResult.errors?.find((e) => e.fatal); if (fatalError) { - throw new Error(`Error(s) unrolling package: ${fatalError.message}`); + throw new Error(`Failed to load config: ${fatalError.message}`); } } + if (!unrollResult?.config) { + throw new Error(`Failed to load config`); + } - return { - block: unrollResult?.config, - }; + return unrollResult.config; } async function unrollAssistantWithConfig( @@ -546,9 +544,7 @@ async function loadAssistantSlug( organizationId, apiClient, ); - if (injectedConfig?.block) { - apiConfig = mergeUnrolledAssistants(apiConfig, injectedConfig.block); - } + apiConfig = mergeUnrolledAssistants(apiConfig, injectedConfig); } return apiConfig; diff --git a/extensions/cli/src/services/ConfigService.test.ts b/extensions/cli/src/services/ConfigService.test.ts index 067cc01b3d5..fb7b250d88b 100644 --- a/extensions/cli/src/services/ConfigService.test.ts +++ b/extensions/cli/src/services/ConfigService.test.ts @@ -68,11 +68,9 @@ describe("ConfigService", () => { vi.mocked( configLoader.unrollPackageIdentifiersAsConfigYaml, ).mockResolvedValue({ - block: { - name: "default-chat-model", - version: "1.0.0", - models: [defaultModel], - }, + name: "default-chat-model", + version: "1.0.0", + models: [defaultModel], }); }); @@ -520,11 +518,9 @@ describe("ConfigService", () => { vi.mocked( configLoader.unrollPackageIdentifiersAsConfigYaml, ).mockResolvedValue({ - block: { - name: "default", - version: "1.0.0", - models: [defaultModel], - }, + name: "default", + version: "1.0.0", + models: [defaultModel], }); const result = await service.addDefaultChatModelIfNone( @@ -616,11 +612,9 @@ describe("ConfigService", () => { vi.mocked( configLoader.unrollPackageIdentifiersAsConfigYaml, ).mockResolvedValue({ - block: { - name: "default", - version: "1.0.0", - models: [defaultModel], - }, + name: "default", + version: "1.0.0", + models: [defaultModel], }); const result = await service.addDefaultChatModelIfNone( @@ -643,11 +637,9 @@ describe("ConfigService", () => { vi.mocked( configLoader.unrollPackageIdentifiersAsConfigYaml, ).mockResolvedValue({ - block: { - name: "default", - version: "1.0.0", - models: [defaultModel], - }, + name: "default", + version: "1.0.0", + models: [defaultModel], }); const result = await service.addDefaultChatModelIfNone( @@ -695,11 +687,9 @@ describe("ConfigService", () => { vi.mocked( configLoader.unrollPackageIdentifiersAsConfigYaml, ).mockResolvedValue({ - block: { - name: "default", - version: "1.0.0", - models: [], // Empty models array - }, + name: "default", + version: "1.0.0", + models: [], // Empty models array }); await expect( @@ -724,11 +714,9 @@ describe("ConfigService", () => { vi.mocked( configLoader.unrollPackageIdentifiersAsConfigYaml, ).mockResolvedValue({ - block: { - name: "default", - version: "1.0.0", - models: [defaultModel], - }, + name: "default", + version: "1.0.0", + models: [defaultModel], }); const result = await service.addDefaultChatModelIfNone( diff --git a/extensions/cli/src/services/ConfigService.ts b/extensions/cli/src/services/ConfigService.ts index 555e0a3e069..4a6b7982b1e 100644 --- a/extensions/cli/src/services/ConfigService.ts +++ b/extensions/cli/src/services/ConfigService.ts @@ -228,7 +228,7 @@ export class ConfigService authConfig?.organizationId ?? null, apiClient, ); - const defaultModel = modelConfig?.block?.models?.[0]; + const defaultModel = modelConfig?.models?.[0]; if (!defaultModel) { throw new Error("Loaded default model contained no model block"); }