openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
53 lines (52 loc) • 2.33 kB
JavaScript
import { o as resolveSessionStorePathCore } from "./paths-CXdaYWF_.js";
import "./session-accessor-YsytfDtG.js";
import { u as loadSessionEntryReadOnly } from "./session-accessor.sqlite-entry-CWk3jL7s.js";
import { n as resolveAcpSessionCwd } from "./session-identifiers-B5CDFQVW.js";
import "./sessions-9nxpeTwt.js";
import { l as persistAcpTurnTranscript } from "./attempt-execution-BqfSB6gK.js";
//#region src/auto-reply/reply/dispatch-acp-transcript.runtime.ts
async function persistAcpDispatchTranscript(params) {
const promptText = params.promptText.trim();
const finalText = params.finalText.trim();
if (!promptText && !finalText) return;
const sessionAgentId = params.agentId;
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}`);
if (params.expectedSessionId && sessionId !== params.expectedSessionId) throw new Error("ACP transcript session changed before the turn could be persisted.");
const result = await persistAcpTurnTranscript({
body: promptText,
transcriptBody: promptText,
finalText,
terminalOutcome: params.terminalOutcome,
sessionId,
expectedSessionId: params.expectedSessionId,
sessionKey: params.sessionKey,
sessionEntry,
storePath,
sessionAgentId,
threadId: params.threadId,
sessionCwd: resolveAcpSessionCwd(params.meta) ?? process.cwd(),
config: params.cfg,
userTurnTranscriptRecorder: params.userTurnTranscriptRecorder,
prepareAssistantTranscriptMessage: params.prepareAssistantTranscriptMessage,
assistantIdempotencyKey: params.assistantIdempotencyKey
});
if (result.kind === "session-rebound") throw new Error("ACP transcript session changed before the turn could be persisted.");
return result.assistantTranscript && params.assistantIdempotencyKey ? {
agentId: sessionAgentId,
sessionId,
sessionKey: params.sessionKey,
storePath,
messageId: result.assistantTranscript.messageId,
anchor: result.assistantTranscript.anchor,
idempotencyKey: params.assistantIdempotencyKey
} : void 0;
}
//#endregion
export { persistAcpDispatchTranscript };