openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
71 lines (70 loc) • 4.21 kB
JavaScript
import { t as GatewayDrainingError } from "./gateway-work-admission-R1IpuDim.js";
import { d as isAgentRunDirectAbortReason, f as isAgentRunRestartAbortReason, h as resolveAgentRunErrorLifecycleFields, i as AGENT_RUN_RESTART_ABORT_STOP_REASON, p as isAgentRunSupersededAbortReason } from "./run-termination-jabvTOp5.js";
import { t as CommandLaneClearedError } from "./command-queue-C3Fv2rcU.js";
import { r as isFallbackSummaryError } from "./model-fallback-attempt-hBQW6kuE.js";
//#region src/auto-reply/reply/agent-runner-execution-status.ts
/** Projects closed execution independently of later reply delivery. */
function resolveAgentTurnExecutionStatus(outcome) {
if (outcome?.kind === "settled") return outcome.status;
return outcome?.kind === "aborted" ? "cancelled" : "failed";
}
//#endregion
//#region src/auto-reply/reply/reply-operation-abort.ts
function buildRestartLifecycleReplyText() {
return "⚠️ Gateway is restarting. Please wait a few seconds and try again.";
}
function isReplyOperationUserAbort(replyOperation) {
if (replyOperation?.result?.kind === "aborted" && replyOperation.result.code === "aborted_by_user") return true;
const abortSignal = replyOperation?.abortSignal;
return abortSignal?.aborted === true && !isAgentRunRestartAbortReason(abortSignal.reason) && !isAgentRunSupersededAbortReason(abortSignal.reason);
}
function isReplyOperationRestartAbort(replyOperation) {
if (replyOperation?.result?.kind === "aborted" && replyOperation.result.code === "aborted_for_restart") return true;
const abortSignal = replyOperation?.abortSignal;
return abortSignal?.aborted === true && isAgentRunRestartAbortReason(abortSignal.reason);
}
function resolveReplyOperationTerminationFields(error, signal, replyOperation) {
return {
...resolveAgentRunErrorLifecycleFields(error, signal),
...isReplyOperationRestartAbort(replyOperation) ? {
aborted: true,
stopReason: AGENT_RUN_RESTART_ABORT_STOP_REASON
} : {}
};
}
function isReplyOperationSuperseded(replyOperation) {
if (replyOperation?.result?.kind === "aborted" && replyOperation.result.code === "aborted_for_supersession") return true;
const abortSignal = replyOperation?.abortSignal;
return abortSignal?.aborted === true && isAgentRunSupersededAbortReason(abortSignal.reason);
}
function resolveReplyOperationAbortReason(replyOperation, error) {
return isAgentRunRestartAbortReason(error) || isReplyOperationRestartAbort(replyOperation) ? "restart" : isReplyOperationSuperseded(replyOperation) ? "superseded" : isAgentRunDirectAbortReason(error) || isReplyOperationUserAbort(replyOperation) ? "user" : void 0;
}
function resolveRestartLifecycleError(error) {
const pending = [error];
const seen = /* @__PURE__ */ new Set();
for (const candidate of pending) {
if (!candidate || seen.has(candidate)) continue;
seen.add(candidate);
if (candidate instanceof GatewayDrainingError || candidate instanceof CommandLaneClearedError) return candidate;
if (isFallbackSummaryError(candidate)) pending.push(...candidate.attempts.map((attempt) => attempt.error));
if (candidate instanceof Error && "cause" in candidate) pending.push(candidate.cause);
}
}
//#endregion
//#region src/auto-reply/reply/reply-operation-run-state.ts
const REPLY_OPERATION_RUN_STATE = Symbol("openclaw.replyOperationRunState");
function resolveReplyOperationRunState(options) {
return options?.[REPLY_OPERATION_RUN_STATE];
}
function recordReplyOperationAgentTurn(states, owner, outcome) {
for (const state of states ?? []) {
state.agentTurn = resolveAgentTurnExecutionStatus(outcome ?? (owner?.result?.kind === "aborted" ? owner.result : void 0));
state.agentTurnOwner = owner;
}
}
function resolveReplyOperationAgentTurn(state) {
return isReplyOperationSuperseded(state?.agentTurnOwner) ? "superseded" : state?.agentTurn;
}
//#endregion
export { buildRestartLifecycleReplyText as a, resolveReplyOperationTerminationFields as c, resolveReplyOperationRunState as i, resolveRestartLifecycleError as l, recordReplyOperationAgentTurn as n, isReplyOperationSuperseded as o, resolveReplyOperationAgentTurn as r, resolveReplyOperationAbortReason as s, REPLY_OPERATION_RUN_STATE as t, resolveAgentTurnExecutionStatus as u };