























@@ -8,9 +8,7 @@ import type { ThinkLevel } from "../../auto-reply/thinking.js";
88import { resolveAgentModelFallbackValues } from "../../config/model-input.js";
99import type { OpenClawConfig } from "../../config/types.openclaw.js";
1010import {
11-captureCompactionCheckpointSnapshotAsync,
12-cleanupCompactionCheckpointSnapshot,
13-persistSessionCompactionCheckpoint,
11+createFileBackedCompactionCheckpointStore,
1412readSessionLeafStateFromTranscriptAsync,
1513resolveCompactionCheckpointTranscriptPosition,
1614resolveSessionCompactionCheckpointReason,
@@ -107,6 +105,10 @@ import { wrapStreamFnTextTransforms } from "../plugin-text-transforms.js";
107105import { resolveAgentPromptSurfaceForSessionKey } from "../prompt-surface.js";
108106import { applyPreparedRuntimeAuthToModel } from "../provider-request-config.js";
109107import { registerProviderStreamForModel } from "../provider-stream.js";
108+import {
109+applyAgentRunSessionTargetIdentity,
110+resolveAgentRunSessionTarget,
111+} from "../run-session-target.js";
110112import { collectRuntimeChannelCapabilities } from "../runtime-capabilities.js";
111113import { buildAgentRuntimePlan } from "../runtime-plan/build.js";
112114import type { AgentRuntimePlan } from "../runtime-plan/types.js";
@@ -135,6 +137,7 @@ import {
135137} from "./compact-reasons.js";
136138import type {
137139CompactEmbeddedAgentSessionParams,
140+CompactEmbeddedAgentSessionRuntimeParams,
138141CompactionMessageMetrics,
139142} from "./compact.types.js";
140143import { dedupeDuplicateUserMessagesForCompaction } from "./compaction-duplicate-user-messages.js";
@@ -192,6 +195,11 @@ import { mapThinkingLevel, normalizeContextTokenBudget } from "./utils.js";
192195import { flushPendingToolResultsAfterIdle } from "./wait-for-idle-before-flush.js";
193196export type { CompactEmbeddedAgentSessionParams } from "./compact.types.js";
194197198+const compactionCheckpointStore = createFileBackedCompactionCheckpointStore();
199+type CompactEmbeddedAgentSessionParamsWithSessionFile = CompactEmbeddedAgentSessionRuntimeParams & {
200+sessionFile: string;
201+};
202+195203function hasRealConversationContent(
196204msg: AgentMessage,
197205messages: AgentMessage[],
@@ -464,8 +472,17 @@ function fallbackFailureToCompactionResult(err: unknown): EmbeddedAgentCompactRe
464472 * Use this when already inside a session/global lane to avoid deadlocks.
465473 */
466474export async function compactEmbeddedAgentSessionDirect(
467-params: CompactEmbeddedAgentSessionParams,
475+paramsInput: CompactEmbeddedAgentSessionRuntimeParams,
468476): Promise<EmbeddedAgentCompactResult> {
477+const paramsBase = applyAgentRunSessionTargetIdentity(paramsInput);
478+const runSessionTarget = await resolveAgentRunSessionTarget(paramsBase);
479+const params: CompactEmbeddedAgentSessionParamsWithSessionFile = {
480+ ...paramsBase,
481+agentId: paramsBase.agentId ?? runSessionTarget.agentId,
482+sessionId: runSessionTarget.sessionId,
483+sessionKey: paramsBase.sessionKey ?? runSessionTarget.sessionKey,
484+sessionFile: runSessionTarget.sessionFile,
485+};
469486if (hasExplicitCompactionModel(params) || !hasCompactionModelFallbackCandidates(params)) {
470487return await compactEmbeddedAgentSessionDirectOnce(params);
471488}
@@ -530,7 +547,7 @@ export async function compactEmbeddedAgentSessionDirect(
530547}
531548532549async function compactEmbeddedAgentSessionDirectOnce(
533-params: CompactEmbeddedAgentSessionParams,
550+params: CompactEmbeddedAgentSessionParamsWithSessionFile,
534551): Promise<EmbeddedAgentCompactResult> {
535552const startedAt = Date.now();
536553const diagId = params.diagId?.trim() || createCompactionDiagId();
@@ -1190,7 +1207,7 @@ async function compactEmbeddedAgentSessionDirectOnce(
11901207 : undefined,
11911208 allowedToolNames,
11921209});
1193-checkpointSnapshot = await captureCompactionCheckpointSnapshotAsync({
1210+checkpointSnapshot = await compactionCheckpointStore.captureSnapshot({
11941211 sessionManager,
11951212sessionFile: params.sessionFile,
11961213});
@@ -1546,7 +1563,7 @@ async function compactEmbeddedAgentSessionDirectOnce(
15461563preferredLeafId: activePostLeafId,
15471564 transcriptState,
15481565});
1549-const storedCheckpoint = await persistSessionCompactionCheckpoint({
1566+const storedCheckpoint = await compactionCheckpointStore.persistCheckpoint({
15501567cfg: params.config,
15511568sessionKey: params.sessionKey,
15521569sessionId: activeSessionId,
@@ -1670,7 +1687,7 @@ async function compactEmbeddedAgentSessionDirectOnce(
16701687return fail(reason, err);
16711688} finally {
16721689if (!checkpointSnapshotRetained) {
1673-await cleanupCompactionCheckpointSnapshot(checkpointSnapshot);
1690+await compactionCheckpointStore.cleanupSnapshot(checkpointSnapshot);
16741691}
16751692restoreSkillEnv?.();
16761693}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。