openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
83 lines (82 loc) • 4.23 kB
JavaScript
import { n as normalizeAgentId, t as isValidAgentId } from "./agent-id-D1-Q6vR4.mjs";
import "./config-env-vars-oFV7TqIg.mjs";
import "./session-key-BC4m_Ly5.mjs";
import "./openclaw-agent-db.paths-DiWMV5LG.mjs";
import "./artifacts-D5koLTEP.mjs";
import "./paths-CAzSovN1.mjs";
import "./agent-scope-DWB4x52T.mjs";
import "./config-B-SAEPyK.mjs";
import "./internal-runtime-context-CLIwiurx.mjs";
import "./transcript-events-Ce9wKss8.mjs";
import "./tokens-BTKQYTUd.mjs";
import "./main-session-C5LOaIBF.mjs";
import "./heartbeat-D29f7BeR.mjs";
import "./session-cold-storage-state-DymPEuGu.mjs";
import { E as readTranscriptStatsSync } from "./session-accessor.sqlite-read-CAR7IGtb.mjs";
import "./session-cold-storage-read-Cw1N3PMy.mjs";
import "./strip-inbound-meta-CRySRUKv.mjs";
import "./session-accessor-BM3Wa1Bx.mjs";
import "./input-provenance-v8gTqxPd.mjs";
import "./heartbeat-filter-CTLYPnOA.mjs";
import "./session-store-runtime-B4-uDJLY.mjs";
import "./heartbeat-events-filter-CINOd_ZO.mjs";
import path from "node:path";
//#region packages/memory-host-sdk/src/host/openclaw-runtime-session.ts
/** Keep worker launch machinery behind the memory host's existing lazy runtime bridge. */
async function prepareSessionEntryInWorker(...args) {
const { prepareSessionEntryInWorker: prepare } = await import("./session-transcript-read-worker-runtime-DHdHaQqV.mjs");
return prepare(...args);
}
/** Returns an opaque revision that changes for every canonical transcript mutation. */
function readTranscriptContentRevisionSync(params) {
const stats = readTranscriptStatsSync(params);
return [
"sqlite",
stats.maxSeq,
stats.sizeBytes,
stats.eventCount,
stats.lastMutationAtMs ?? "",
stats.lastObservedMutationAtMs ?? ""
].join(":");
}
/** Extracts the agent id from a canonical `agents/<id>/sessions` directory path. */
function extractAgentIdFromSessionsDir(sessionsDir) {
const parts = path.normalize(path.resolve(sessionsDir)).split(path.sep).filter(Boolean);
const sessionsSegment = parts.at(-1);
const agentId = parts.at(-2);
const agentsSegment = parts.at(-3);
const isWindows = process.platform === "win32";
if (!sessionsSegment || !agentId || !agentsSegment || (isWindows ? sessionsSegment.toLowerCase() : sessionsSegment) !== "sessions" || (isWindows ? agentsSegment.toLowerCase() : agentsSegment) !== "agents" || isWindows && (agentId !== agentId.trim() || !isValidAgentId(agentId))) return null;
return isWindows ? normalizeAgentId(agentId) : agentId;
}
/** Finds the nearest canonical sessions owner without escaping its directory. */
function extractAgentIdFromSessionPath(absPath) {
let currentDir = path.dirname(path.resolve(absPath));
while (true) {
const currentSegment = path.basename(currentDir);
if ((process.platform === "win32" ? currentSegment.toLowerCase() : currentSegment) === "sessions") {
const agentId = extractAgentIdFromSessionsDir(currentDir);
if (agentId) return agentId;
}
const parentDir = path.dirname(currentDir);
if (parentDir === currentDir) return null;
currentDir = parentDir;
}
}
/** Session-key prefix marking transcripts generated by memory dreaming runs. */
const DREAMING_NARRATIVE_RUN_PREFIX = "dreaming-narrative-";
/** True when a session-store key belongs to a dreaming narrative run. */
function isDreamingNarrativeSessionStoreKey(sessionKey) {
const trimmed = sessionKey.trim();
if (!trimmed) return false;
const firstSeparator = trimmed.indexOf(":");
if (firstSeparator < 0) return trimmed.startsWith(DREAMING_NARRATIVE_RUN_PREFIX);
const secondSeparator = trimmed.indexOf(":", firstSeparator + 1);
return (secondSeparator < 0 ? trimmed : trimmed.slice(secondSeparator + 1)).startsWith(DREAMING_NARRATIVE_RUN_PREFIX);
}
async function readSessionResetRecallCutoffInWorker(...args) {
const { readSessionResetRecallCutoffInWorker: read } = await import("./session-transcript-read-worker-runtime-DHdHaQqV.mjs");
return read(...args);
}
//#endregion
export { prepareSessionEntryInWorker as a, isDreamingNarrativeSessionStoreKey as i, extractAgentIdFromSessionPath as n, readSessionResetRecallCutoffInWorker as o, extractAgentIdFromSessionsDir as r, readTranscriptContentRevisionSync as s, DREAMING_NARRATIVE_RUN_PREFIX as t };