diff --git a/src/auto-reply/reply/agent-runner.heartbeat-typing.test-harness.ts b/src/auto-reply/reply/agent-runner.heartbeat-typing.test-harness.ts index d1c176d494..80e1e37c8f 100644 --- a/src/auto-reply/reply/agent-runner.heartbeat-typing.test-harness.ts +++ b/src/auto-reply/reply/agent-runner.heartbeat-typing.test-harness.ts @@ -39,19 +39,21 @@ export function installRunReplyAgentTypingHeartbeatTestHooks() { }); } +async function loadHarnessMocks() { + const { loadAgentRunnerHarnessMockBundle } = await import("./agent-runner.test-harness.mocks.js"); + return await loadAgentRunnerHarnessMockBundle(state); +} + vi.mock("../../agents/model-fallback.js", async () => { - const { modelFallbackMockFactory } = await import("./agent-runner.test-harness.mocks.js"); - return modelFallbackMockFactory(); + return (await loadHarnessMocks()).modelFallback; }); vi.mock("../../agents/pi-embedded.js", async () => { - const { embeddedPiMockFactory } = await import("./agent-runner.test-harness.mocks.js"); - return embeddedPiMockFactory(state); + return (await loadHarnessMocks()).embeddedPi; }); vi.mock("./queue.js", async () => { - const { queueMockFactory } = await import("./agent-runner.test-harness.mocks.js"); - return await queueMockFactory(); + return (await loadHarnessMocks()).queue; }); export function createMinimalRun(params?: { diff --git a/src/auto-reply/reply/agent-runner.memory-flush.test-harness.ts b/src/auto-reply/reply/agent-runner.memory-flush.test-harness.ts index 131da7c524..74204b9f7f 100644 --- a/src/auto-reply/reply/agent-runner.memory-flush.test-harness.ts +++ b/src/auto-reply/reply/agent-runner.memory-flush.test-harness.ts @@ -30,9 +30,13 @@ export function getRunCliAgentMock(): AnyMock { export type { EmbeddedRunParams }; +async function loadHarnessMocks() { + const { loadAgentRunnerHarnessMockBundle } = await import("./agent-runner.test-harness.mocks.js"); + return await loadAgentRunnerHarnessMockBundle(state); +} + vi.mock("../../agents/model-fallback.js", async () => { - const { modelFallbackMockFactory } = await import("./agent-runner.test-harness.mocks.js"); - return modelFallbackMockFactory(); + return (await loadHarnessMocks()).modelFallback; }); vi.mock("../../agents/cli-runner.js", () => ({ @@ -40,13 +44,11 @@ vi.mock("../../agents/cli-runner.js", () => ({ })); vi.mock("../../agents/pi-embedded.js", async () => { - const { embeddedPiMockFactory } = await import("./agent-runner.test-harness.mocks.js"); - return embeddedPiMockFactory(state); + return (await loadHarnessMocks()).embeddedPi; }); vi.mock("./queue.js", async () => { - const { queueMockFactory } = await import("./agent-runner.test-harness.mocks.js"); - return await queueMockFactory(); + return (await loadHarnessMocks()).queue; }); export async function seedSessionStore(params: { diff --git a/src/auto-reply/reply/agent-runner.test-harness.mocks.ts b/src/auto-reply/reply/agent-runner.test-harness.mocks.ts index 01888f761d..6d5d952414 100644 --- a/src/auto-reply/reply/agent-runner.test-harness.mocks.ts +++ b/src/auto-reply/reply/agent-runner.test-harness.mocks.ts @@ -1,5 +1,9 @@ import { vi } from "vitest"; +export type AgentRunnerEmbeddedState = { + runEmbeddedPiAgentMock: (params: unknown) => unknown; +}; + export function modelFallbackMockFactory(): Record { return { runWithModelFallback: async ({ @@ -18,9 +22,7 @@ export function modelFallbackMockFactory(): Record { }; } -export function embeddedPiMockFactory(state: { - runEmbeddedPiAgentMock: (params: unknown) => unknown; -}): Record { +export function embeddedPiMockFactory(state: AgentRunnerEmbeddedState): Record { return { queueEmbeddedPiMessage: vi.fn().mockReturnValue(false), runEmbeddedPiAgent: (params: unknown) => state.runEmbeddedPiAgentMock(params), @@ -35,3 +37,15 @@ export async function queueMockFactory(): Promise> { scheduleFollowupDrain: vi.fn(), }; } + +export async function loadAgentRunnerHarnessMockBundle(state: AgentRunnerEmbeddedState): Promise<{ + modelFallback: Record; + embeddedPi: Record; + queue: Record; +}> { + return { + modelFallback: modelFallbackMockFactory(), + embeddedPi: embeddedPiMockFactory(state), + queue: await queueMockFactory(), + }; +}