UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

36 lines (35 loc) • 1.4 kB
import { t as SessionTranscriptReadFenceError } from "./session-transcript-read-fence-error-DoYPfzaJ.mjs"; import "./session-transcript-read-fence-DqVaDIch.mjs"; import { n as readSessionTranscriptAnchorsAsync } from "./session-transcript-anchor-read-D6gfv_oG.mjs"; import { t as resolveSessionLifecycleTimestampsWithHeader } from "./lifecycle-timestamps-j_lxdI5r.mjs"; //#region src/config/sessions/lifecycle-read.ts /** Recover missing lifecycle metadata while the transcript reader retains its original owner. */ async function resolveSessionLifecycleTimestampsAsync(params) { params.signal?.throwIfAborted(); const entry = params.entry && { ...params.entry }; const timestamps = resolveSessionLifecycleTimestampsWithHeader({ ...params, entry, readHeader: () => void 0 }); const sessionId = entry?.sessionId?.trim(); if (!sessionId || timestamps.sessionStartedAt !== void 0) return timestamps; let accepted; await readSessionTranscriptAnchorsAsync({ ...params, sessionId }, { entryIds: [], includeHeader: true }, params.signal, ({ header }) => { accepted = resolveSessionLifecycleTimestampsWithHeader({ ...params, entry, readHeader: () => header }); }); if (!accepted) throw new SessionTranscriptReadFenceError("Session transcript changed during lifecycle read"); return accepted; } //#endregion export { resolveSessionLifecycleTimestampsAsync as t };