UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

94 lines (93 loc) 3.58 kB
import { n as getRuntimeConfig } from "./io.runtime-B9iJRs3w.js"; import "./config-Cs0XXL3x.js"; import { a as getPluginRuntimeGatewayRequestScope } from "./gateway-request-scope-BCMYlsDI.js"; import { n as recordRuntimeActionDecision } from "./runtime-action-decision-C4JNkXkP.js"; import { a as prepareAgentRunAdmission, i as getAdmittedRunDelegatedAuthority, r as createOperationalRunInstanceRef } from "./admitted-run-context-CHY5SdVF.js"; import { t as runEmbeddedAgent } from "./embedded-agent-D9hkv0XX.js"; import { randomUUID } from "node:crypto"; //#region src/plugins/runtime/runtime-embedded-agent.runtime.ts /** Lazy runtime adapter for plugin-owned embedded-agent execution. */ const runPluginEmbeddedAgent = async (params) => { const pluginId = getPluginRuntimeGatewayRequestScope()?.pluginId; if (!pluginId) throw new Error("Plugin embedded-agent execution requires an active plugin runtime scope."); if ("admittedRunContext" in params || "preparedRunAdmission" in params || "compactionCountOwner" in params || "onCompactionAccounting" in params || "onContextAccountingEvent" in params || "onDeferredLifecycleOwner" in params || "onDeferredLifecycleAbort" in params) throw new Error("Plugin embedded-agent execution cannot supply host run authority."); params.abortSignal?.throwIfAborted(); const decisionOccurrenceId = randomUUID(); let admittedRunContext; const preparedRunAdmission = prepareAgentRunAdmission({ cfg: params.config ?? getRuntimeConfig(), operationalRunInstance: createOperationalRunInstanceRef(params.runId), facts: { runId: params.runId, agentId: params.sessionTarget?.agentId ?? params.agentId ?? "main", ingress: { kind: "plugin", boundary: "plugin-runtime", rawSourceRef: pluginId, state: "present" } }, onAdmitted: (context) => { admittedRunContext = context; const token = context.executionIdentityToken; recordRuntimeActionDecision({ token, family: "plugin", operation: "run", outcome: "allowed", coverageState: "enforced", reasonCode: "plugin_runtime_owner_admitted", owner: "plugin-runtime", decisionBoundary: "plugin.runtime.run-embedded-agent", policyRefs: ["plugin:registered-owner", "run:admission"], summary: "The registered plugin owner passed exact run admission.", remediation: [], discriminator: JSON.stringify([ pluginId, params.runId, decisionOccurrenceId, "admission" ]) }); } }); let closed = false; const close = () => { if (!closed) { closed = true; preparedRunAdmission.close(); } }; params.abortSignal?.addEventListener("abort", close, { once: true }); try { params.abortSignal?.throwIfAborted(); const result = await runEmbeddedAgent({ ...params, preparedRunAdmission }); if (admittedRunContext && getAdmittedRunDelegatedAuthority(admittedRunContext)) recordRuntimeActionDecision({ token: admittedRunContext.executionIdentityToken, family: "plugin", operation: "run", outcome: "allowed", coverageState: "attribution-only", reasonCode: "plugin_runtime_completed", owner: "plugin-runtime", decisionBoundary: "plugin.runtime.run-embedded-agent", summary: "The plugin-owned runtime completed; this is attribution, not authorization.", remediation: [], discriminator: JSON.stringify([ pluginId, params.runId, decisionOccurrenceId, "completion" ]) }); return result; } finally { params.abortSignal?.removeEventListener("abort", close); close(); } }; //#endregion export { runPluginEmbeddedAgent };