


























@@ -28,6 +28,7 @@ import {
2828summarizeInStages,
2929} from "../compaction.js";
3030import { collectTextContentBlocks } from "../content-blocks.js";
31+import { buildCopilotDynamicHeaders, hasCopilotVisionInput } from "../copilot-dynamic-headers.js";
3132import { isTimeoutError } from "../failover-error.js";
3233import { repairToolUseResultPairing } from "../session-transcript-repair.js";
3334import { extractToolCallsFromAssistant, extractToolResultId } from "../tool-call-id.js";
@@ -236,6 +237,26 @@ async function resolveModelAuth(
236237return { ok: true, apiKey: requestAuth.apiKey, headers: requestAuth.headers };
237238}
238239240+function buildCompactionSummaryHeaders(params: {
241+model: NonNullable<ExtensionContext["model"]>;
242+messages: AgentMessage[];
243+headers?: Record<string, string>;
244+}): Record<string, string> | undefined {
245+if (params.model.provider !== "github-copilot") {
246+return params.headers;
247+}
248+const messages = params.messages as unknown as Parameters<
249+typeof buildCopilotDynamicHeaders
250+>[0]["messages"];
251+return {
252+ ...buildCopilotDynamicHeaders({
253+ messages,
254+hasImages: hasCopilotVisionInput(messages),
255+}),
256+ ...params.headers,
257+};
258+}
259+239260function clampNonNegativeInt(value: unknown, fallback: number): number {
240261const normalized = typeof value === "number" && Number.isFinite(value) ? value : fallback;
241262return Math.max(0, Math.floor(normalized));
@@ -880,12 +901,17 @@ export default function compactionSafeguardExtension(api: ExtensionAPI): void {
880901return { cancel: true };
881902}
882903const apiKey = authResult.apiKey ?? "";
883-const headers = authResult.headers;
904+const authHeaders = authResult.headers;
884905885906try {
886907const modelContextWindow = resolveContextWindowTokens(model);
887908const contextWindowTokens = runtime?.contextWindowTokens ?? modelContextWindow;
888909let messagesToSummarize = preparation.messagesToSummarize;
910+const headers = buildCompactionSummaryHeaders({
911+ model,
912+messages: messagesToSummarize,
913+headers: authHeaders,
914+});
889915const qualityGuardEnabled = runtime?.qualityGuardEnabled ?? false;
890916const qualityGuardMaxRetries = resolveQualityGuardMaxRetries(runtime?.qualityGuardMaxRetries);
891917此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。