openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
27 lines (26 loc) • 1.17 kB
JavaScript
import { o as resolveSessionStorePathCore } from "./paths-CXdaYWF_.js";
import { xt as updateSessionEntry } from "./session-accessor-YsytfDtG.js";
//#region src/agents/embedded-agent-subscribe.handlers.compaction.runtime.ts
/**
* Runtime helpers for reconciling compaction counts after subscribe events.
*/
/** Persist the highest observed compaction count after a successful subscribed run. */
async function reconcileSessionStoreCompactionCountAfterSuccess(params) {
const { sessionKey, agentId, configStore, observedCompactionCount, now = Date.now() } = params;
if (!sessionKey || observedCompactionCount <= 0) return;
const storePath = resolveSessionStorePathCore(configStore, { agentId });
return (await updateSessionEntry({
sessionKey,
storePath
}, async (entry) => {
const currentCount = Math.max(0, entry.compactionCount ?? 0);
const nextCount = Math.max(currentCount, observedCompactionCount);
if (nextCount === currentCount) return null;
return {
compactionCount: nextCount,
updatedAt: Math.max(entry.updatedAt ?? 0, now)
};
}))?.compactionCount;
}
//#endregion
export { reconcileSessionStoreCompactionCountAfterSuccess as default };