UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

94 lines (93 loc) 3.22 kB
import { t as ErrorCodes } from "./gateway-error-details-w0nAGBBp.js"; import { c as getAgentRunContext } from "./agent-run-registry-CKYKdfNd.js"; import { n as validateAgentParams, r as validateAgentWaitParams } from "./src-BiL5aQto.js"; import { d as errorShape } from "./error-codes-Bo8q2D1o.js"; import { i as operatorSessionCap } from "./operator-role-policy-wsr1DeJv.js"; import { F as isGatewayAdmin, r as createSessionListEntryFilter, z as resolveSessionSharingTarget } from "./session-sharing-B7MI8hNo.js"; import { t as assertValidParams } from "./validation-pzrlzFvo.js"; import { i as prepareAgentRequestPreflight, n as resolveAgentTurnRunObserver, r as createAgentTurnService, t as captureAgentTurnPrincipal } from "./principal-CyvMFpus.js"; //#region src/gateway/agent-turn/io.ts function createAgentTurnIo(respond) { const emit = (frame, meta) => { if (meta === void 0) { respond(...frame); return; } respond(...frame, meta); }; return { emitAcceptance: emit, emitFinal: emit }; } //#endregion //#region src/gateway/server-methods/agent-run-handler.ts const agentRunHandler = async ({ params, respond, context, client, isWebchatConnect, sessionMutationCommitGuard }) => { sessionMutationCommitGuard?.(); const io = createAgentTurnIo(respond); if (!assertValidParams(params, validateAgentParams, "agent", (ok, payload, error, meta) => io.emitAcceptance([ ok, payload, error ], meta))) return; const request = params; const principal = captureAgentTurnPrincipal(client); const preflight = prepareAgentRequestPreflight({ request, context, client: principal, io }); if (!preflight) return; const onRunObserved = resolveAgentTurnRunObserver({ principal, registerToolEventRecipient: context.registerToolEventRecipient }); await createAgentTurnService({ context, isWebchatConnect }).startTurn({ assertAdmissionCurrent: sessionMutationCommitGuard, preflight, principal, io, onRunObserved }); }; //#endregion //#region src/gateway/server-methods/agent-wait.ts const agentWaitHandler = async ({ params, respond, context, client, isWebchatConnect }) => { if (!assertValidParams(params, validateAgentWaitParams, "agent.wait", respond)) return; const gatewayClient = client ?? null; if (gatewayClient?.authenticatedUserProfile && !isGatewayAdmin(gatewayClient)) { const cfg = context.getRuntimeConfig(); if (operatorSessionCap(gatewayClient, cfg) === "none") { const run = getAgentRunContext(params.runId); const target = run?.sessionKey ? resolveSessionSharingTarget({ cfg, sessionKey: run.sessionKey, agentId: run.agentId }) : null; const visibilityFilter = createSessionListEntryFilter({ client: gatewayClient, cfg }); if (!target || visibilityFilter?.(target.storeKey, target.entry) === false) { respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "agent run was not found")); return; } } } respond(true, await createAgentTurnService({ context, isWebchatConnect }).waitForTurn(params)); }; //#endregion //#region src/gateway/server-methods/agent.ts const agentHandlers = { agent: agentRunHandler, "agent.wait": agentWaitHandler }; //#endregion export { agentHandlers };