openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
36 lines (35 loc) • 1.4 kB
JavaScript
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 };