UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

34 lines (33 loc) 1.74 kB
import { a as collectExplicitDenylist } from "./tool-policy-Wi0C45cX.js"; import { r as getPluginToolMeta } from "./tool-metadata-B5aqo73s.js"; import { t as applyToolPolicyPipeline } from "./tool-policy-pipeline-BwOD5Xc9.js"; import { r as resolveConversationToolPolicies, t as buildConversationToolPolicyPipelineSteps } from "./conversation-tool-policy-pipeline-BzM9yFTb.js"; import { t as buildDeclaredToolAllowlistContext } from "./tool-policy-declared-context-CcJz-5tf.js"; //#region src/agents/embedded-agent-runner/effective-tool-policy.ts function applyFinalEffectiveToolPolicy(params) { if (params.bundledTools.length === 0) return params.bundledTools; const capabilityProfile = params.conversationCapabilityProfile; const { trustedGroup } = capabilityProfile.policy; if (trustedGroup.dropped) params.warn("effective tool policy: dropping caller-provided groupId that does not match session-derived group context"); const policies = resolveConversationToolPolicies({ capabilityProfile }); const pipelineSteps = buildConversationToolPolicyPipelineSteps({ capabilityProfile, policies, includeRuntimeToolPolicy: false }).map((step) => Object.assign({}, step, { suppressUnavailableCoreToolWarning: true })); return applyToolPolicyPipeline({ tools: params.bundledTools, toolMeta: (tool) => getPluginToolMeta(tool), warn: params.warn, steps: pipelineSteps, onFilter: params.onFilter, declaredToolAllowlist: buildDeclaredToolAllowlistContext({ config: params.config, workspaceDir: params.workspaceDir, metadataSnapshot: params.metadataSnapshot, toolDenylist: collectExplicitDenylist(pipelineSteps.map((step) => step.policy)) }) }); } //#endregion export { applyFinalEffectiveToolPolicy as t };