|
1 | 1 | // Summarizes extra security audit findings for user-facing output. |
2 | | -import { resolveProviderToolPolicy } from "../agents/agent-tools.policy.js"; |
| 2 | +import { |
| 3 | +resolveConfiguredToolPolicies, |
| 4 | +resolveProviderToolPolicy, |
| 5 | +} from "../agents/agent-tools.policy.js"; |
3 | 6 | import { parseModelRef } from "../agents/model-selection-normalize.js"; |
4 | 7 | import { resolveSandboxConfigForAgent } from "../agents/sandbox/config.js"; |
5 | | -import { resolveSandboxToolPolicyForAgent } from "../agents/sandbox/tool-policy.js"; |
6 | 8 | import type { SandboxToolPolicy } from "../agents/sandbox/types.js"; |
7 | 9 | import { isToolAllowedByPolicies } from "../agents/tool-policy-match.js"; |
8 | | -import { resolveToolProfilePolicy } from "../agents/tool-policy.js"; |
9 | 10 | import type { OpenClawConfig } from "../config/types.openclaw.js"; |
10 | 11 | import type { AgentToolsConfig } from "../config/types.tools.js"; |
11 | 12 | import { hasConfiguredInternalHooks } from "../hooks/configured.js"; |
12 | 13 | import { hasConfiguredWebSearchCredential } from "../plugins/web-search-credential-presence.js"; |
13 | 14 | import { inferParamBFromIdOrName } from "../shared/model-param-b.js"; |
14 | 15 | import { collectAuditModelRefs } from "./audit-model-refs.js"; |
15 | | -import { pickSandboxToolPolicy } from "../agents/sandbox-tool-policy.js"; |
16 | 16 | |
17 | 17 | /** Lightweight audit finding shape used by summary-only audit helpers. */ |
18 | 18 | export type SecurityAuditFinding = { |
@@ -67,46 +67,23 @@ function resolveToolPolicies(params: {
|
67 | 67 | modelProvider?: string; |
68 | 68 | modelId?: string; |
69 | 69 | }): SandboxToolPolicy[] { |
70 | | -const policies: SandboxToolPolicy[] = []; |
71 | | -const profile = params.agentTools?.profile ?? params.cfg.tools?.profile; |
72 | | -const profilePolicy = resolveToolProfilePolicy(profile); |
73 | | -if (profilePolicy) { |
74 | | -policies.push(profilePolicy); |
75 | | -} |
76 | | - |
77 | | -const globalPolicy = pickSandboxToolPolicy(params.cfg.tools ?? undefined); |
78 | | -if (globalPolicy) { |
79 | | -policies.push(globalPolicy); |
80 | | -} |
81 | | - |
82 | | -const agentPolicy = pickSandboxToolPolicy(params.agentTools); |
83 | | -if (agentPolicy) { |
84 | | -policies.push(agentPolicy); |
85 | | -} |
86 | | - |
87 | 70 | const globalProviderPolicy = resolveProviderToolPolicy({ |
88 | 71 | byProvider: params.cfg.tools?.byProvider, |
89 | 72 | modelProvider: params.modelProvider, |
90 | 73 | modelId: params.modelId, |
91 | 74 | }); |
92 | | -if (globalProviderPolicy) { |
93 | | -policies.push(globalProviderPolicy); |
94 | | -} |
95 | | - |
96 | 75 | const agentProviderPolicy = resolveProviderToolPolicy({ |
97 | 76 | byProvider: params.agentTools?.byProvider, |
98 | 77 | modelProvider: params.modelProvider, |
99 | 78 | modelId: params.modelId, |
100 | 79 | }); |
101 | | -if (agentProviderPolicy) { |
102 | | -policies.push(agentProviderPolicy); |
103 | | -} |
104 | | - |
105 | | -if (params.sandboxMode === "all") { |
106 | | -policies.push(resolveSandboxToolPolicyForAgent(params.cfg, params.agentId ?? undefined)); |
107 | | -} |
108 | | - |
109 | | -return policies; |
| 80 | +return resolveConfiguredToolPolicies({ |
| 81 | +cfg: params.cfg, |
| 82 | +agentTools: params.agentTools, |
| 83 | +sandboxMode: params.sandboxMode, |
| 84 | +agentId: params.agentId, |
| 85 | +extraPolicies: [globalProviderPolicy, agentProviderPolicy], |
| 86 | +}); |
110 | 87 | } |
111 | 88 | |
112 | 89 | function hasWebSearchKey(cfg: OpenClawConfig, env: NodeJS.ProcessEnv): boolean { |
|