Files
openclaw/src/auto-reply/reply/dispatch-acp-transcript.runtime.ts
T
Peter Steinberger 3d76246792 refactor: eliminate final export name collisions (#122083)
* refactor: resolve final export name collisions

* refactor: update remaining collision rename consumers

* style: format rebased auth helpers

* test: update remaining session entry mocks

* test: update remaining runtime mock exports

* test: update delivery info path mock

* refactor: reconcile combined collision sweeps

* chore: regenerate collision and sdk baselines
2026-08-11 11:18:24 -07:00

55 lines
1.8 KiB
TypeScript

// Bridges ACP transcript events into persisted OpenClaw session transcripts.
import { resolveAcpSessionCwd } from "@openclaw/acp-core/runtime/session-identifiers";
import { resolveSessionAgentId } from "../../agents/agent-scope.js";
import { persistAcpTurnTranscript } from "../../agents/command/attempt-execution.js";
import { resolveSessionStorePathCore } from "../../config/sessions.js";
import { loadSessionEntryReadOnly } from "../../config/sessions/session-accessor.js";
import type { SessionAcpMeta } from "../../config/sessions/types.js";
import type { OpenClawConfig } from "../../config/types.openclaw.js";
export async function persistAcpDispatchTranscript(params: {
cfg: OpenClawConfig;
sessionKey: string;
promptText: string;
finalText: string;
meta?: SessionAcpMeta;
threadId?: string | number;
}): Promise<void> {
const promptText = params.promptText.trim();
const finalText = params.finalText.trim();
if (!promptText && !finalText) {
return;
}
const sessionAgentId = resolveSessionAgentId({
sessionKey: params.sessionKey,
config: params.cfg,
});
const storePath = resolveSessionStorePathCore(params.cfg.session?.store, {
agentId: sessionAgentId,
});
const sessionEntry = loadSessionEntryReadOnly({
agentId: sessionAgentId,
sessionKey: params.sessionKey,
storePath,
});
const sessionId = sessionEntry?.sessionId;
if (!sessionId) {
throw new Error(`unknown ACP session key: ${params.sessionKey}`);
}
await persistAcpTurnTranscript({
body: promptText,
transcriptBody: promptText,
finalText,
sessionId,
sessionKey: params.sessionKey,
sessionEntry,
storePath,
sessionAgentId,
threadId: params.threadId,
sessionCwd: resolveAcpSessionCwd(params.meta) ?? process.cwd(),
config: params.cfg,
});
}