openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
45 lines (44 loc) • 3.65 kB
JavaScript
import { n as resolveGlobalSingleton } from "./global-singleton-PwlQSEal.js";
import { d as listActiveReplyRunSessionIds, f as listActiveReplyRunSessionKeys, s as getActiveReplyRunCount } from "./reply-run-registry-C88rqJxg.js";
//#region src/agents/embedded-agent-runner/run-state.ts
const embeddedRunState = resolveGlobalSingleton(Symbol.for("openclaw.embeddedRunState"), () => ({
activeRuns: /* @__PURE__ */ new Map(),
snapshots: /* @__PURE__ */ new Map(),
sessionIdsByKey: /* @__PURE__ */ new Map(),
sessionIdsByFile: /* @__PURE__ */ new Map(),
abandonedRunsBySessionId: /* @__PURE__ */ new Map(),
abandonedRunSessionIdsByKey: /* @__PURE__ */ new Map(),
abandonedRunSessionIdsByFile: /* @__PURE__ */ new Map(),
waiters: /* @__PURE__ */ new Map(),
modelSwitchRequests: /* @__PURE__ */ new Map()
}));
const ACTIVE_EMBEDDED_RUNS = embeddedRunState.activeRuns ?? (embeddedRunState.activeRuns = /* @__PURE__ */ new Map());
const ACTIVE_EMBEDDED_RUN_SNAPSHOTS = embeddedRunState.snapshots ?? (embeddedRunState.snapshots = /* @__PURE__ */ new Map());
const ACTIVE_EMBEDDED_RUN_SESSION_IDS_BY_KEY = embeddedRunState.sessionIdsByKey ?? (embeddedRunState.sessionIdsByKey = /* @__PURE__ */ new Map());
const ACTIVE_EMBEDDED_RUN_SESSION_IDS_BY_FILE = embeddedRunState.sessionIdsByFile ?? (embeddedRunState.sessionIdsByFile = /* @__PURE__ */ new Map());
const ABANDONED_EMBEDDED_RUNS_BY_SESSION_ID = embeddedRunState.abandonedRunsBySessionId ?? (embeddedRunState.abandonedRunsBySessionId = /* @__PURE__ */ new Map());
const ABANDONED_EMBEDDED_RUN_SESSION_IDS_BY_KEY = embeddedRunState.abandonedRunSessionIdsByKey ?? (embeddedRunState.abandonedRunSessionIdsByKey = /* @__PURE__ */ new Map());
const ABANDONED_EMBEDDED_RUN_SESSION_IDS_BY_FILE = embeddedRunState.abandonedRunSessionIdsByFile ?? (embeddedRunState.abandonedRunSessionIdsByFile = /* @__PURE__ */ new Map());
const EMBEDDED_RUN_WAITERS = embeddedRunState.waiters ?? (embeddedRunState.waiters = /* @__PURE__ */ new Map());
const EMBEDDED_RUN_MODEL_SWITCH_REQUESTS = embeddedRunState.modelSwitchRequests ?? (embeddedRunState.modelSwitchRequests = /* @__PURE__ */ new Map());
/** Counts active embedded runs while including auto-reply registry runs for shared sessions. */
function getActiveEmbeddedRunCount() {
let activeCount = ACTIVE_EMBEDDED_RUNS.size;
for (const sessionId of listActiveReplyRunSessionIds()) if (!ACTIVE_EMBEDDED_RUNS.has(sessionId)) activeCount += 1;
return Math.max(activeCount, getActiveReplyRunCount());
}
/** Lists active embedded-run session keys from both embedded and auto-reply registries. */
function listActiveEmbeddedRunSessionKeys() {
return [...new Set([...ACTIVE_EMBEDDED_RUN_SESSION_IDS_BY_KEY.keys(), ...listActiveReplyRunSessionKeys()])].toSorted((a, b) => a.localeCompare(b));
}
/** Lists active embedded-run session ids from all embedded-run lookup maps. */
function listActiveEmbeddedRunSessionIds() {
return [...new Set([
...ACTIVE_EMBEDDED_RUNS.keys(),
...ACTIVE_EMBEDDED_RUN_SESSION_IDS_BY_KEY.values(),
...ACTIVE_EMBEDDED_RUN_SESSION_IDS_BY_FILE.values(),
...listActiveReplyRunSessionIds()
])].toSorted((a, b) => a.localeCompare(b));
}
//#endregion
export { ACTIVE_EMBEDDED_RUN_SESSION_IDS_BY_FILE as a, EMBEDDED_RUN_MODEL_SWITCH_REQUESTS as c, listActiveEmbeddedRunSessionIds as d, listActiveEmbeddedRunSessionKeys as f, ACTIVE_EMBEDDED_RUNS as i, EMBEDDED_RUN_WAITERS as l, ABANDONED_EMBEDDED_RUN_SESSION_IDS_BY_FILE as n, ACTIVE_EMBEDDED_RUN_SESSION_IDS_BY_KEY as o, ABANDONED_EMBEDDED_RUN_SESSION_IDS_BY_KEY as r, ACTIVE_EMBEDDED_RUN_SNAPSHOTS as s, ABANDONED_EMBEDDED_RUNS_BY_SESSION_ID as t, getActiveEmbeddedRunCount as u };