Files
openclaw/src/auto-reply/reply/queue-policy.ts
T
2026-06-04 02:41:04 -04:00

30 lines
894 B
TypeScript

// Resolves queue mode and admission policy for a reply turn.
import type { QueueSettings } from "./queue.js";
/** Queue decisions for messages that arrive while an agent run is active. */
export type ActiveRunQueueAction = "run-now" | "enqueue-followup" | "drop";
/** Resolves whether an active session should run, queue, or drop a new inbound turn. */
export function resolveActiveRunQueueAction(params: {
isActive: boolean;
isHeartbeat: boolean;
shouldFollowup: boolean;
queueMode: QueueSettings["mode"];
resetTriggered?: boolean;
}): ActiveRunQueueAction {
if (!params.isActive) {
return "run-now";
}
if (params.isHeartbeat) {
return "drop";
}
if (params.resetTriggered) {
return "run-now";
}
// Follow-up queueing is only meaningful for non-heartbeat user turns.
if (params.shouldFollowup) {
return "enqueue-followup";
}
return "run-now";
}