openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
32 lines (31 loc) • 1.27 kB
JavaScript
import "./session-lifecycle-admission-CS8v45tk.js";
import { m as waitForChatAbortControllerRemoval } from "./chat-abort-qLn3eFOg.js";
import { t as abortChatRunsForSessionKeyWithPartials } from "./chat-abort-runtime-CKI3fkKr.js";
import { t as createChatAbortOps } from "./chat-abort-ops-zvMvu0-3.js";
//#region src/gateway/server-worker-placement-cancel.ts
async function cancelGatewayWorkerSessionWork(context, request) {
request.assertCurrent();
let controllerDrain = Promise.resolve(true);
if ((await abortChatRunsForSessionKeyWithPartials({
context,
ops: createChatAbortOps(context),
sessionId: request.sessionId,
sessionKey: request.sessionKeys[0],
sessionKeyAliases: request.sessionKeys.slice(1),
agentId: request.agentId,
requester: { isAdmin: true },
includeProtectedRuns: true,
abortOrigin: "rpc",
stopReason: "rpc",
onCancellationStarted: request.onCancellationStarted,
onControllerTargets: (targets) => {
controllerDrain = waitForChatAbortControllerRemoval({
entries: context.chatAbortControllers,
targets,
timeoutMs: 15e3
});
}
})).unauthorized || !await controllerDrain) throw new Error("Session cancellation did not persist before cloud worker stop");
}
//#endregion
export { cancelGatewayWorkerSessionWork };