MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / resolveToolkitPolicy

Function resolveToolkitPolicy

packages/plugins/toolkits/src/server.ts:153–178  ·  view source on GitHub ↗
(
  toolId: string,
  connections: readonly ToolkitConnectionRecord[],
  policies: readonly ToolkitPolicyRecord[],
  defaultRequiresApproval?: boolean,
)

Source from the content-addressed store, hash-verified

151};
152
153const resolveToolkitPolicy = (
154 toolId: string,
155 connections: readonly ToolkitConnectionRecord[],
156 policies: readonly ToolkitPolicyRecord[],
157 defaultRequiresApproval?: boolean,
158): EffectivePolicy => {
159 const legacyPolicyIds = legacyConnectionPolicyIds(policies, connections);
160 const connected =
161 connections.some((connection) => matchPattern(connection.pattern, toolId)) ||
162 policies.some(
163 (policy) => legacyPolicyIds.has(policy.id) && matchPattern(policy.pattern, toolId),
164 );
165 if (!connected) return blockedPolicy();
166
167 for (const policy of [...policies].sort(comparePositioned)) {
168 if (legacyPolicyIds.has(policy.id)) continue;
169 if (!matchPattern(policy.pattern, toolId)) continue;
170 return {
171 action: policy.action,
172 source: "user",
173 pattern: policy.pattern,
174 policyId: policy.id,
175 };
176 }
177 return pluginDefaultPolicy(defaultRequiresApproval);
178};
179
180const legacyConnectionPolicyIds = (
181 policies: readonly ToolkitPolicyRecord[],

Callers 2

resolvePolicyForSlugFunction · 0.70

Calls 4

matchPatternFunction · 0.90
blockedPolicyFunction · 0.85
pluginDefaultPolicyFunction · 0.70

Tested by

no test coverage detected