UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

68 lines (67 loc) • 2.82 kB
import { n as canonicalizeMainSessionAlias } from "./main-session-BOUJdkxQ.mjs"; import { d as loadTranscriptHeaderSync } from "./session-accessor.sqlite-read-UBWmiUlC.mjs"; import { n as isTerminalSessionStatus } from "./types-BGDhC4_W.mjs"; import { r as readTranscriptMutationStateSync } from "./session-accessor.sqlite-metadata-read-BzhXpz0y.mjs"; import "./session-accessor-C3ljJ974.mjs"; import "./session-work-start-Bkld8CTK.mjs"; import { n as resolveTimestamp, t as resolveSessionLifecycleTimestampsWithHeader } from "./lifecycle-timestamps-j_lxdI5r.mjs"; //#region src/config/sessions/lifecycle.ts function resolvePositiveTimestamp(value) { const timestampMs = resolveTimestamp(value); return timestampMs !== void 0 && timestampMs > 0 ? timestampMs : void 0; } function resolveSessionLifecycleTimestamps(params) { return resolveSessionLifecycleTimestampsWithHeader({ ...params, readHeader: (scope) => params.readHeader ? params.readHeader(scope.sessionId) : loadTranscriptHeaderSync(scope) }); } function resolveTerminalMainSessionTranscriptRegistryCheck(params) { if (!params.entry || !params.sessionKey) return; const configuredMainSessionKey = canonicalizeMainSessionAlias({ cfg: { session: { scope: params.sessionScope, mainKey: params.mainKey } }, agentId: params.agentId, sessionKey: params.mainKey ?? "main" }); if (canonicalizeMainSessionAlias({ cfg: { session: { scope: params.sessionScope, mainKey: params.mainKey } }, agentId: params.agentId, sessionKey: params.sessionKey }) !== configuredMainSessionKey) return; if (!isTerminalSessionStatus(params.entry.status)) return; if (params.entry.status === "done") return; if (params.entry.status === "failed") return; const registryTimestampMs = resolvePositiveTimestamp(params.entry.updatedAt); if (registryTimestampMs === void 0) return; const sessionId = typeof params.entry.sessionId === "string" ? params.entry.sessionId.trim() : ""; if (!sessionId) return; return { sessionId, registryTimestampMs }; } function hasTerminalMainSessionTranscriptNewerThanRegistrySync(params) { const check = resolveTerminalMainSessionTranscriptRegistryCheck(params); if (!check) return false; try { const mutation = readTranscriptMutationStateSync({ agentId: params.agentId, sessionId: check.sessionId, storePath: params.storePath }); if (mutation.updatedAt === null) return false; const transcriptMutationAtMs = Math.floor(mutation.updatedAt); const registryTimestampMs = Math.floor(mutation.observedAt ?? check.registryTimestampMs); return Number.isFinite(transcriptMutationAtMs) && transcriptMutationAtMs > registryTimestampMs; } catch { return false; } } //#endregion export { resolveSessionLifecycleTimestamps as n, hasTerminalMainSessionTranscriptNewerThanRegistrySync as t };