



























@@ -1,6 +1,7 @@
11import { vi, type Mock } from "vitest";
22import type { PluginMetadataSnapshot } from "../../plugins/plugin-metadata-snapshot.js";
33import { clearAgentHarnesses } from "../harness/registry.js";
4+import type { AgentRuntimePlan, BuildAgentRuntimePlanParams } from "../runtime-plan/types.js";
45import type { CompactionTranscriptRotation } from "./compaction-successor-transcript.js";
5667type MockResolvedModel = {
@@ -110,6 +111,75 @@ export const rotateTranscriptAfterCompactionMock: Mock<
110111rotated: false,
111112}));
112113114+function createCompactHooksRuntimePlan(params: BuildAgentRuntimePlanParams): AgentRuntimePlan {
115+const modelApi = params.modelApi ?? params.model?.api ?? undefined;
116+const transcriptPolicy = {
117+sanitizeMode: "full" as const,
118+sanitizeToolCallIds: false,
119+preserveNativeAnthropicToolUseIds: false,
120+repairToolUseResultPairing: false,
121+preserveSignatures: false,
122+sanitizeThinkingSignatures: false,
123+dropThinkingBlocks: false,
124+applyGoogleTurnOrdering: false,
125+validateGeminiTurns: false,
126+validateAnthropicTurns: false,
127+allowSyntheticToolResults: false,
128+};
129+130+return {
131+resolvedRef: {
132+provider: params.provider,
133+modelId: params.modelId,
134+ ...(modelApi ? { modelApi } : {}),
135+ ...(params.resolvedTransport ? { transport: params.resolvedTransport } : {}),
136+},
137+auth: {
138+providerForAuth: params.provider,
139+authProfileProviderForAuth: params.authProfileProvider ?? params.provider,
140+ ...(params.sessionAuthProfileId
141+ ? { forwardedAuthProfileId: params.sessionAuthProfileId }
142+ : {}),
143+},
144+prompt: {
145+provider: params.provider,
146+modelId: params.modelId,
147+resolveSystemPromptContribution: vi.fn(() => undefined),
148+transformSystemPrompt: vi.fn((context: { systemPrompt: string }) => context.systemPrompt),
149+},
150+tools: {
151+preparedPlanning: {
152+loadMetadataSnapshot: () => ({}),
153+},
154+normalize: vi.fn((tools) => tools),
155+logDiagnostics: vi.fn(),
156+},
157+transcript: {
158+policy: transcriptPolicy,
159+resolvePolicy: vi.fn(() => transcriptPolicy),
160+},
161+delivery: {
162+isSilentPayload: vi.fn(() => false),
163+resolveFollowupRoute: vi.fn(() => undefined),
164+},
165+outcome: {
166+classifyRunResult: vi.fn(() => null),
167+},
168+transport: {
169+extraParams: {},
170+resolveExtraParams: vi.fn(() => ({})),
171+},
172+observability: {
173+resolvedRef: `${params.provider}/${params.modelId}`,
174+provider: params.provider,
175+modelId: params.modelId,
176+ ...(modelApi ? { modelApi } : {}),
177+ ...(params.sessionAuthProfileId ? { authProfileId: params.sessionAuthProfileId } : {}),
178+ ...(params.resolvedTransport ? { transport: params.resolvedTransport } : {}),
179+},
180+};
181+}
182+113183const emptyPluginMetadataSnapshot: PluginMetadataSnapshot = {
114184policyHash: "",
115185index: {
@@ -569,6 +639,12 @@ export async function loadCompactHooksHarness(): Promise<{
569639resolveMemorySearchConfig: resolveMemorySearchConfigMock,
570640}));
571641642+vi.doMock("../runtime-plan/build.js", () => ({
643+buildAgentRuntimePlan: vi.fn((params: BuildAgentRuntimePlanParams) =>
644+createCompactHooksRuntimePlan(params),
645+),
646+}));
647+572648vi.doMock("../../plugins/memory-runtime.js", () => ({
573649getActiveMemorySearchManager: getMemorySearchManagerMock,
574650}));
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。