




















@@ -28,44 +28,47 @@ vi.mock("./pi-embedded-helpers.js", async () => ({
2828sanitizeSessionMessagesImages: vi.fn(async (msgs) => msgs),
2929}));
303031-vi.mock("../plugins/provider-hook-runtime.js", async () => ({
32-clearProviderRuntimePluginCacheForTest: vi.fn(),
33-testing: {},
34-prepareProviderExtraParams: vi.fn(() => undefined),
35-resolveProviderHookPlugin: vi.fn(() => undefined),
36-resolveProviderPluginsForHooks: vi.fn(() => []),
37-resolveProviderRuntimePlugin: vi.fn(({ provider }: { provider?: string }) =>
38-provider === "openrouter" || provider === "github-copilot"
39- ? {
40-buildReplayPolicy: (context?: { modelId?: string | null }) => {
41-const modelId = (context?.modelId ?? "").toLowerCase();
42-if (provider === "openrouter") {
43-return {
44-applyAssistantFirstOrderingFix: false,
45-validateGeminiTurns: false,
46-validateAnthropicTurns: false,
47- ...(modelId.includes("gemini")
48- ? {
49-sanitizeThoughtSignatures: {
50-allowBase64Only: true,
51-includeCamelCase: true,
52-},
53-}
54- : {}),
55-};
56-}
57-if (provider === "github-copilot" && modelId.includes("claude")) {
58-return {
59-dropThinkingBlocks: true,
60-};
61-}
62-return undefined;
63-},
64-}
65- : undefined,
66-),
67-wrapProviderStreamFn: vi.fn(() => undefined),
68-}));
31+vi.mock("../plugins/provider-hook-runtime.js", async () => {
32+const clearProviderRuntimePluginCacheForTest = vi.fn();
33+return {
34+ clearProviderRuntimePluginCacheForTest,
35+testing: { clearProviderRuntimePluginCacheForTest },
36+prepareProviderExtraParams: vi.fn(() => undefined),
37+resolveProviderHookPlugin: vi.fn(() => undefined),
38+resolveProviderPluginsForHooks: vi.fn(() => []),
39+resolveProviderRuntimePlugin: vi.fn(({ provider }: { provider?: string }) =>
40+provider === "openrouter" || provider === "github-copilot"
41+ ? {
42+buildReplayPolicy: (context?: { modelId?: string | null }) => {
43+const modelId = (context?.modelId ?? "").toLowerCase();
44+if (provider === "openrouter") {
45+return {
46+applyAssistantFirstOrderingFix: false,
47+validateGeminiTurns: false,
48+validateAnthropicTurns: false,
49+ ...(modelId.includes("gemini")
50+ ? {
51+sanitizeThoughtSignatures: {
52+allowBase64Only: true,
53+includeCamelCase: true,
54+},
55+}
56+ : {}),
57+};
58+}
59+if (provider === "github-copilot" && modelId.includes("claude")) {
60+return {
61+dropThinkingBlocks: true,
62+};
63+}
64+return undefined;
65+},
66+}
67+ : undefined,
68+),
69+wrapProviderStreamFn: vi.fn(() => undefined),
70+};
71+});
69727073vi.mock("../plugins/provider-runtime.js", async () => {
7174const actual = await vi.importActual<typeof import("../plugins/provider-runtime.js")>(
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。