From d94889909cd37f9d6efbfd4e4f1cf4b9a156ff68 Mon Sep 17 00:00:00 2001 From: Shakker Date: Fri, 1 May 2026 23:20:52 +0100 Subject: [PATCH] test: align manifest hot path fixtures --- .../auth-profile-runtime-contract.test.ts | 1 + .../run-attempt.context-engine.test.ts | 1 + .../codex/src/app-server/run-attempt.test.ts | 1 + ...ema-normalization-runtime-contract.test.ts | 1 + .../agent-command.live-model-switch.test.ts | 2 +- src/agents/harness/selection.test.ts | 1 + src/agents/harness/v2.test.ts | 1 + src/agents/model-catalog.test.ts | 5 +- .../openclaw-tools.media-factory-plan.test.ts | 81 ++++++++++++------- .../attempt.spawn-workspace.test-support.ts | 1 + .../capability-provider-runtime.test.ts | 4 +- 11 files changed, 67 insertions(+), 32 deletions(-) diff --git a/extensions/codex/src/app-server/auth-profile-runtime-contract.test.ts b/extensions/codex/src/app-server/auth-profile-runtime-contract.test.ts index 6caeac96643..3addb3353df 100644 --- a/extensions/codex/src/app-server/auth-profile-runtime-contract.test.ts +++ b/extensions/codex/src/app-server/auth-profile-runtime-contract.test.ts @@ -26,6 +26,7 @@ function createParams(sessionFile: string, workspaceDir: string): EmbeddedRunAtt disableTools: true, timeoutMs: 5_000, authStorage: {} as never, + authProfileStore: { version: 1, profiles: {} }, modelRegistry: {} as never, } as EmbeddedRunAttemptParams; } diff --git a/extensions/codex/src/app-server/run-attempt.context-engine.test.ts b/extensions/codex/src/app-server/run-attempt.context-engine.test.ts index 10ef09f34b2..a088abc2c88 100644 --- a/extensions/codex/src/app-server/run-attempt.context-engine.test.ts +++ b/extensions/codex/src/app-server/run-attempt.context-engine.test.ts @@ -30,6 +30,7 @@ function createParams(sessionFile: string, workspaceDir: string): EmbeddedRunAtt disableTools: true, timeoutMs: 5_000, authStorage: {} as never, + authProfileStore: { version: 1, profiles: {} }, modelRegistry: {} as never, } as EmbeddedRunAttemptParams; } diff --git a/extensions/codex/src/app-server/run-attempt.test.ts b/extensions/codex/src/app-server/run-attempt.test.ts index c4536c08b5a..deedcdebece 100644 --- a/extensions/codex/src/app-server/run-attempt.test.ts +++ b/extensions/codex/src/app-server/run-attempt.test.ts @@ -50,6 +50,7 @@ function createParams(sessionFile: string, workspaceDir: string): EmbeddedRunAtt disableTools: true, timeoutMs: 5_000, authStorage: {} as never, + authProfileStore: { version: 1, profiles: {} }, modelRegistry: {} as never, } as EmbeddedRunAttemptParams; } diff --git a/extensions/codex/src/app-server/schema-normalization-runtime-contract.test.ts b/extensions/codex/src/app-server/schema-normalization-runtime-contract.test.ts index e434374e9bb..8d127b56c10 100644 --- a/extensions/codex/src/app-server/schema-normalization-runtime-contract.test.ts +++ b/extensions/codex/src/app-server/schema-normalization-runtime-contract.test.ts @@ -28,6 +28,7 @@ function createParams(sessionFile: string, workspaceDir: string): EmbeddedRunAtt disableTools: true, timeoutMs: 5_000, authStorage: {} as never, + authProfileStore: { version: 1, profiles: {} }, modelRegistry: {} as never, } as EmbeddedRunAttemptParams; } diff --git a/src/agents/agent-command.live-model-switch.test.ts b/src/agents/agent-command.live-model-switch.test.ts index bc31204974d..36684f20789 100644 --- a/src/agents/agent-command.live-model-switch.test.ts +++ b/src/agents/agent-command.live-model-switch.test.ts @@ -291,7 +291,7 @@ vi.mock("./lanes.js", () => ({ })); vi.mock("./model-catalog.js", () => ({ - loadManifestModelCatalog: (...args: unknown[]) => state.loadManifestModelCatalogMock(...args), + loadManifestModelCatalog: state.loadManifestModelCatalogMock, })); vi.mock("./model-selection.js", () => ({ diff --git a/src/agents/harness/selection.test.ts b/src/agents/harness/selection.test.ts index aa21cb7b059..487d290ac80 100644 --- a/src/agents/harness/selection.test.ts +++ b/src/agents/harness/selection.test.ts @@ -54,6 +54,7 @@ function createAttemptParams(config?: OpenClawConfig): EmbeddedRunAttemptParams modelId: "gpt-5.4", model: { id: "gpt-5.4", provider: "codex" } as Model, authStorage: {} as never, + authProfileStore: { version: 1, profiles: {} }, modelRegistry: {} as never, thinkLevel: "low", config, diff --git a/src/agents/harness/v2.test.ts b/src/agents/harness/v2.test.ts index e8ea68a9897..b83283a5dba 100644 --- a/src/agents/harness/v2.test.ts +++ b/src/agents/harness/v2.test.ts @@ -24,6 +24,7 @@ function createAttemptParams(): AgentHarnessAttemptParams { modelId: "gpt-5.4", model: { id: "gpt-5.4", provider: "codex" } as Model, authStorage: {} as never, + authProfileStore: { version: 1, profiles: {} }, modelRegistry: {} as never, thinkLevel: "low", messageChannel: "qa", diff --git a/src/agents/model-catalog.test.ts b/src/agents/model-catalog.test.ts index 847ec223a2b..64b1e0252e9 100644 --- a/src/agents/model-catalog.test.ts +++ b/src/agents/model-catalog.test.ts @@ -83,11 +83,10 @@ describe("loadModelCatalog", () => { currentPluginMetadataSnapshotMock = vi.fn(); loadPluginMetadataSnapshotMock = vi.fn(); vi.doMock("../plugins/current-plugin-metadata-snapshot.js", () => ({ - getCurrentPluginMetadataSnapshot: (...args: unknown[]) => - currentPluginMetadataSnapshotMock(...args), + getCurrentPluginMetadataSnapshot: currentPluginMetadataSnapshotMock, })); vi.doMock("../plugins/plugin-metadata-snapshot.js", () => ({ - loadPluginMetadataSnapshot: (...args: unknown[]) => loadPluginMetadataSnapshotMock(...args), + loadPluginMetadataSnapshot: loadPluginMetadataSnapshotMock, })); ({ diff --git a/src/agents/openclaw-tools.media-factory-plan.test.ts b/src/agents/openclaw-tools.media-factory-plan.test.ts index 72fc1847b42..a96f620f9dc 100644 --- a/src/agents/openclaw-tools.media-factory-plan.test.ts +++ b/src/agents/openclaw-tools.media-factory-plan.test.ts @@ -7,6 +7,7 @@ import { setCurrentPluginMetadataSnapshot, } from "../plugins/current-plugin-metadata-snapshot.js"; import { resolveInstalledPluginIndexPolicyHash } from "../plugins/installed-plugin-index-policy.js"; +import type { InstalledPluginIndexRecord } from "../plugins/installed-plugin-index.js"; import type { PluginManifestRecord } from "../plugins/manifest-registry.js"; import type { PluginMetadataSnapshot } from "../plugins/plugin-metadata-snapshot.types.js"; import type { AuthProfileStore } from "./auth-profiles/types.js"; @@ -56,6 +57,39 @@ function createPlugin(params: { }; } +function createInstalledPluginRecord( + plugin: PluginManifestRecord, + enabledPluginIds: string[], +): InstalledPluginIndexRecord { + const enabled = plugin.origin === "bundled" || enabledPluginIds.includes(plugin.id); + return { + pluginId: plugin.id, + manifestPath: plugin.manifestPath, + manifestHash: `test-${plugin.id}`, + source: plugin.source, + rootDir: plugin.rootDir, + origin: plugin.origin, + enabled, + startup: { + sidecar: false, + memory: false, + deferConfiguredChannelFullLoadUntilAfterListen: false, + agentHarnesses: [], + }, + compat: [], + }; +} + +function legacyModelProviderConfig(provider: Record): OpenClawConfig { + return { + models: { + providers: { + comfy: provider as never, + }, + }, + }; +} + function installSnapshot( config: OpenClawConfig, plugins: PluginManifestRecord[], @@ -68,11 +102,15 @@ function installSnapshot( policyHash: resolveInstalledPluginIndexPolicyHash(config), ...(workspaceDir ? { workspaceDir } : {}), index: { - plugins: plugins.map((plugin) => ({ - pluginId: plugin.id, - origin: plugin.origin, - enabled: plugin.origin === "bundled" || enabledPluginIds.includes(plugin.id), - })), + version: 1, + hostContractVersion: "test", + compatRegistryVersion: "test", + migrationVersion: 1, + policyHash: "test", + generatedAtMs: 0, + installRecords: {}, + plugins: plugins.map((plugin) => createInstalledPluginRecord(plugin, enabledPluginIds)), + diagnostics: [], }, registryDiagnostics: [], manifestRegistry: { plugins, diagnostics: [] }, @@ -530,16 +568,10 @@ describe("optional media tool factory planning", () => { it.each([ { name: "legacy local provider config", - config: { - models: { - providers: { - comfy: { - workflow: { "1": { inputs: {} } }, - promptNodeId: "1", - }, - }, - }, - } satisfies OpenClawConfig, + config: legacyModelProviderConfig({ + workflow: { "1": { inputs: {} } }, + promptNodeId: "1", + }), }, { name: "plugin cloud API key config", @@ -560,18 +592,12 @@ describe("optional media tool factory planning", () => { }, { name: "legacy cloud API key config", - config: { - models: { - providers: { - comfy: { - mode: "cloud", - apiKey: "cloud-key", - workflow: { "1": { inputs: {} } }, - promptNodeId: "1", - }, - }, - }, - } satisfies OpenClawConfig, + config: legacyModelProviderConfig({ + mode: "cloud", + apiKey: "cloud-key", + workflow: { "1": { inputs: {} } }, + promptNodeId: "1", + }), }, ])( "registers generation tools from Comfy $name without a current metadata snapshot", @@ -596,6 +622,7 @@ describe("optional media tool factory planning", () => { providers: { openai: { baseUrl: "http://localhost:11434/v1", + models: [], }, }, }, diff --git a/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.test-support.ts b/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.test-support.ts index 354e5b027c2..29d4de5c636 100644 --- a/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.test-support.ts +++ b/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.test-support.ts @@ -1027,6 +1027,7 @@ export async function createContextEngineAttemptRunner(params: { modelId: "gpt-test", model: testModel, authStorage: testAuthStorage as never, + authProfileStore: { version: 1, profiles: {} }, modelRegistry: {} as never, thinkLevel: "off", senderIsOwner: true, diff --git a/src/plugins/capability-provider-runtime.test.ts b/src/plugins/capability-provider-runtime.test.ts index 22e1ab19f6e..286cd468d22 100644 --- a/src/plugins/capability-provider-runtime.test.ts +++ b/src/plugins/capability-provider-runtime.test.ts @@ -32,7 +32,9 @@ const mocks = vi.hoisted(() => ({ () => createEmptyMockManifestRegistry(), ), loadBundledCapabilityRuntimeRegistry: vi.fn(), - loadPluginRegistrySnapshot: vi.fn(() => ({ plugins: [] })), + loadPluginRegistrySnapshot: vi.fn<() => { plugins: Array> }>(() => ({ + plugins: [], + })), withBundledPluginAllowlistCompat: vi.fn( ({ config, pluginIds }: { config?: OpenClawConfig; pluginIds: string[] }) => ({