openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
36 lines (35 loc) • 1.5 kB
JavaScript
import { m as formatHookErrorForLog } from "./hooks-CgZHhfMh.mjs";
import { t as resolveHookConfig } from "./policy-K9NZP5x_.mjs";
import { n as resolveSessionTranscriptReadFence } from "./session-transcript-read-fence-DqVaDIch.mjs";
import { t as withSessionTranscriptReadSource } from "./session-transcript-read-source-V0JvL2x_.mjs";
import "./config-DBKwqpxS.mjs";
import { t as readSessionMemoryCapture } from "./capture.worker-DOofZBrr.mjs";
//#region src/hooks/bundled/session-memory/capture.ts
/** Capture while the caller still owns the departing session's active window. */
async function captureSessionMemoryTranscript(scope, cfg) {
const hookConfig = resolveHookConfig(cfg, "session-memory");
const messageCount = typeof hookConfig?.messages === "number" && hookConfig.messages > 0 ? hookConfig.messages : 15;
try {
return await withSessionTranscriptReadSource(scope, (captured) => readSessionMemoryCapture({
scope: captured,
messageCount
}), async (source) => {
const transcript = await (source.preparedReads ?? source.owner).readSessionMemoryCapture({
scope: source.scope,
resolved: source.resolved,
messageCount,
admission: resolveSessionTranscriptReadFence(source.resolved),
expectedIdentity: source.expectedIdentity
});
source.assertCurrent();
return transcript;
});
} catch (error) {
return {
status: "unavailable",
reason: formatHookErrorForLog(error)
};
}
}
//#endregion
export { captureSessionMemoryTranscript as t };