UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

71 lines (70 loc) 4.21 kB
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 };