openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
34 lines (33 loc) • 1.3 kB
JavaScript
import "./agent-scope-MrLta7Pq.js";
import { r as resolveAgentConfig } from "./agent-scope-config-CgCYpZfK.js";
import { n as pickSandboxToolPolicy } from "./sandbox-tool-policy-BRuLtPlA.js";
import { i as resolveToolsBySender } from "./group-policy-CShy7eWv.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: params.messageProvider,
senderId: params.senderId,
senderName: params.senderName,
senderUsername: params.senderUsername,
senderE164: params.senderE164
};
const agentPolicy = resolveToolsBySender({
toolsBySender: (params.agentId && params.agentId.trim() ? resolveAgentConfig(cfg, params.agentId)?.tools : void 0)?.toolsBySender,
...sender
});
if (agentPolicy) return pickSandboxToolPolicy(agentPolicy);
return pickSandboxToolPolicy(resolveToolsBySender({
toolsBySender: cfg.tools?.toolsBySender,
...sender
}));
}
//#endregion
export { resolveSenderToolPolicy as t };