UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

37 lines (36 loc) 1.5 kB
import { c as resolveAgentConfig } from "./agent-scope-config-DcbEhP0R.js"; import { j as parseSessionDeliveryRoute } from "./session-key-BnWWjqNc.js"; import { n as pickSandboxToolPolicy } from "./sandbox-tool-policy-G7E6RfNN.js"; import "./agent-scope-DbtJyKUL.js"; import { o as resolveToolsBySender } from "./group-policy-BXx44oG5.js"; //#region src/agents/sender-tool-policy.ts /** * Sender-scoped sandbox tool policy resolver. * Applies per-agent toolsBySender matches before global sender policy so * channel delivery can narrow tool access by sender identity. */ /** Resolves sender-scoped sandbox tool policy, preferring agent config over global config. */ function resolveSenderToolPolicy(params) { const cfg = params.config; if (!cfg) return; const sender = { messageProvider: parseSessionDeliveryRoute(params.sessionKey)?.channel ?? params.messageProvider, senderId: params.senderId, senderName: params.senderName, senderUsername: params.senderUsername, senderE164: params.senderE164 }; const agentTools = params.agentId && params.agentId.trim() ? resolveAgentConfig(cfg, params.agentId)?.tools : void 0; const agentPolicy = resolveToolsBySender({ toolsBySender: agentTools?.toolsBySender, ...sender }); if (agentPolicy) return pickSandboxToolPolicy(agentPolicy); const globalPolicy = resolveToolsBySender({ toolsBySender: cfg.tools?.toolsBySender, ...sender }); return pickSandboxToolPolicy(globalPolicy); } //#endregion export { resolveSenderToolPolicy as t };