UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

36 lines (35 loc) • 1.5 kB
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 };