openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
30 lines (29 loc) • 1.2 kB
JavaScript
import { h as normalizeUniqueStringEntries } from "./string-normalization-D6DKCpwE.mjs";
import "./session-key-DY3MOX4N.mjs";
import { h as parseAgentSessionKey } from "./session-key-utils-CDyBC9Gn.mjs";
import { t as runBestEffortCleanup } from "./non-fatal-cleanup-BoCq8AND.mjs";
import { t as closeTrackedBrowserTabsForSessions } from "./browser-maintenance-DaqQmL1H.mjs";
//#region src/browser-lifecycle-cleanup.ts
function isBrowserCleanupDisabled(cfg) {
return cfg?.browser?.enabled === false || cfg?.plugins?.entries?.browser?.enabled === false;
}
async function cleanupBrowserSessionsForLifecycleEnd(params) {
const { cfg, onError, ...cleanupParams } = params;
if (isBrowserCleanupDisabled(cfg)) return;
const sessionKeys = normalizeUniqueStringEntries(params.sessionKeys.flatMap((key) => {
const parsed = parseAgentSessionKey(key);
return parsed ? [`agent:${parsed.agentId}:${parsed.rest}`] : [];
}));
if (sessionKeys.length === 0) return;
await runBestEffortCleanup({
cleanup: async () => {
await closeTrackedBrowserTabsForSessions({
...cleanupParams,
sessionKeys
});
},
onError
});
}
//#endregion
export { cleanupBrowserSessionsForLifecycleEnd as t };