@provos/ironcurtain 0.7.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/README.md +29 -100
  2. package/dist/auth/auth-command.d.ts +15 -0
  3. package/dist/auth/auth-command.js +424 -0
  4. package/dist/auth/auth-command.js.map +1 -0
  5. package/dist/auth/oauth-flow.d.ts +46 -0
  6. package/dist/auth/oauth-flow.js +279 -0
  7. package/dist/auth/oauth-flow.js.map +1 -0
  8. package/dist/auth/oauth-provider.d.ts +55 -0
  9. package/dist/auth/oauth-provider.js +73 -0
  10. package/dist/auth/oauth-provider.js.map +1 -0
  11. package/dist/auth/oauth-registry.d.ts +34 -0
  12. package/dist/auth/oauth-registry.js +69 -0
  13. package/dist/auth/oauth-registry.js.map +1 -0
  14. package/dist/auth/oauth-token-provider.d.ts +52 -0
  15. package/dist/auth/oauth-token-provider.js +159 -0
  16. package/dist/auth/oauth-token-provider.js.map +1 -0
  17. package/dist/auth/oauth-token-store.d.ts +30 -0
  18. package/dist/auth/oauth-token-store.js +93 -0
  19. package/dist/auth/oauth-token-store.js.map +1 -0
  20. package/dist/auth/providers/google-scopes.d.ts +35 -0
  21. package/dist/auth/providers/google-scopes.js +183 -0
  22. package/dist/auth/providers/google-scopes.js.map +1 -0
  23. package/dist/auth/providers/google.d.ts +2 -0
  24. package/dist/auth/providers/google.js +28 -0
  25. package/dist/auth/providers/google.js.map +1 -0
  26. package/dist/cli.js +6 -0
  27. package/dist/cli.js.map +1 -1
  28. package/dist/config/config-command.js +39 -1
  29. package/dist/config/config-command.js.map +1 -1
  30. package/dist/config/constitution-readonly.md +14 -11
  31. package/dist/config/constitution-user-base.md +15 -0
  32. package/dist/config/first-start.js +4 -1
  33. package/dist/config/first-start.js.map +1 -1
  34. package/dist/config/generated/test-scenarios.json +1 -1
  35. package/dist/config/generated/tool-annotations.json +10617 -296
  36. package/dist/config/generated-readonly/compiled-policy.json +787 -244
  37. package/dist/config/index.d.ts +2 -2
  38. package/dist/config/index.js +8 -0
  39. package/dist/config/index.js.map +1 -1
  40. package/dist/config/mcp-servers.json +31 -2
  41. package/dist/config/paths.d.ts +20 -0
  42. package/dist/config/paths.js +43 -0
  43. package/dist/config/paths.js.map +1 -1
  44. package/dist/config/types.d.ts +8 -0
  45. package/dist/config/user-config.d.ts +29 -0
  46. package/dist/config/user-config.js +30 -0
  47. package/dist/config/user-config.js.map +1 -1
  48. package/dist/cron/constitution-generator.d.ts +2 -1
  49. package/dist/cron/constitution-generator.js +35 -36
  50. package/dist/cron/constitution-generator.js.map +1 -1
  51. package/dist/cron/headless-transport.d.ts +4 -0
  52. package/dist/cron/headless-transport.js +1 -1
  53. package/dist/cron/headless-transport.js.map +1 -1
  54. package/dist/daemon/ironcurtain-daemon.js +7 -1
  55. package/dist/daemon/ironcurtain-daemon.js.map +1 -1
  56. package/dist/docker/adapters/claude-code.js +32 -5
  57. package/dist/docker/adapters/claude-code.js.map +1 -1
  58. package/dist/docker/agent-adapter.d.ts +40 -0
  59. package/dist/docker/claude-md-seed.d.ts +27 -0
  60. package/dist/docker/claude-md-seed.js +42 -0
  61. package/dist/docker/claude-md-seed.js.map +1 -0
  62. package/dist/docker/docker-agent-session.d.ts +3 -1
  63. package/dist/docker/docker-agent-session.js +51 -28
  64. package/dist/docker/docker-agent-session.js.map +1 -1
  65. package/dist/docker/docker-infrastructure.d.ts +15 -1
  66. package/dist/docker/docker-infrastructure.js +105 -9
  67. package/dist/docker/docker-infrastructure.js.map +1 -1
  68. package/dist/docker/docker-manager.d.ts +2 -0
  69. package/dist/docker/docker-manager.js +9 -1
  70. package/dist/docker/docker-manager.js.map +1 -1
  71. package/dist/docker/mitm-proxy.d.ts +65 -0
  72. package/dist/docker/mitm-proxy.js +288 -31
  73. package/dist/docker/mitm-proxy.js.map +1 -1
  74. package/dist/docker/package-types.d.ts +127 -0
  75. package/dist/docker/package-types.js +8 -0
  76. package/dist/docker/package-types.js.map +1 -0
  77. package/dist/docker/package-validator.d.ts +41 -0
  78. package/dist/docker/package-validator.js +90 -0
  79. package/dist/docker/package-validator.js.map +1 -0
  80. package/dist/docker/platform.d.ts +6 -6
  81. package/dist/docker/platform.js +8 -6
  82. package/dist/docker/platform.js.map +1 -1
  83. package/dist/docker/proxy-tools.d.ts +80 -0
  84. package/dist/docker/proxy-tools.js +248 -0
  85. package/dist/docker/proxy-tools.js.map +1 -0
  86. package/dist/docker/pty-session.d.ts +15 -0
  87. package/dist/docker/pty-session.js +253 -73
  88. package/dist/docker/pty-session.js.map +1 -1
  89. package/dist/docker/pty-types.d.ts +28 -0
  90. package/dist/docker/pty-types.js +2 -0
  91. package/dist/docker/pty-types.js.map +1 -1
  92. package/dist/docker/registry-proxy.d.ts +142 -0
  93. package/dist/docker/registry-proxy.js +856 -0
  94. package/dist/docker/registry-proxy.js.map +1 -0
  95. package/dist/escalation/escalation-watcher.d.ts +3 -1
  96. package/dist/escalation/escalation-watcher.js +6 -2
  97. package/dist/escalation/escalation-watcher.js.map +1 -1
  98. package/dist/escalation/listener-command.js +24 -10
  99. package/dist/escalation/listener-command.js.map +1 -1
  100. package/dist/escalation/listener-lock.d.ts +5 -0
  101. package/dist/escalation/listener-lock.js +14 -0
  102. package/dist/escalation/listener-lock.js.map +1 -1
  103. package/dist/index.js +16 -3
  104. package/dist/index.js.map +1 -1
  105. package/dist/memory/auto-save.d.ts +25 -0
  106. package/dist/memory/auto-save.js +89 -0
  107. package/dist/memory/auto-save.js.map +1 -0
  108. package/dist/memory/memory-annotations.d.ts +47 -0
  109. package/dist/memory/memory-annotations.js +87 -0
  110. package/dist/memory/memory-annotations.js.map +1 -0
  111. package/dist/memory/memory-prompt.d.ts +12 -0
  112. package/dist/memory/memory-prompt.js +20 -0
  113. package/dist/memory/memory-prompt.js.map +1 -0
  114. package/dist/memory/resolve-memory-path.d.ts +20 -0
  115. package/dist/memory/resolve-memory-path.js +30 -0
  116. package/dist/memory/resolve-memory-path.js.map +1 -0
  117. package/dist/mux/mux-app.d.ts +4 -0
  118. package/dist/mux/mux-app.js +246 -28
  119. package/dist/mux/mux-app.js.map +1 -1
  120. package/dist/mux/mux-command.d.ts +2 -2
  121. package/dist/mux/mux-command.js +14 -22
  122. package/dist/mux/mux-command.js.map +1 -1
  123. package/dist/mux/mux-escalation-manager.d.ts +9 -3
  124. package/dist/mux/mux-escalation-manager.js +69 -19
  125. package/dist/mux/mux-escalation-manager.js.map +1 -1
  126. package/dist/mux/mux-input-handler.d.ts +59 -3
  127. package/dist/mux/mux-input-handler.js +270 -32
  128. package/dist/mux/mux-input-handler.js.map +1 -1
  129. package/dist/mux/mux-renderer.d.ts +19 -1
  130. package/dist/mux/mux-renderer.js +466 -11
  131. package/dist/mux/mux-renderer.js.map +1 -1
  132. package/dist/mux/persona-scanner.d.ts +19 -0
  133. package/dist/mux/persona-scanner.js +53 -0
  134. package/dist/mux/persona-scanner.js.map +1 -0
  135. package/dist/mux/pty-bridge.d.ts +8 -0
  136. package/dist/mux/pty-bridge.js +19 -1
  137. package/dist/mux/pty-bridge.js.map +1 -1
  138. package/dist/mux/session-scanner.d.ts +18 -0
  139. package/dist/mux/session-scanner.js +65 -0
  140. package/dist/mux/session-scanner.js.map +1 -0
  141. package/dist/mux/types.d.ts +36 -1
  142. package/dist/mux/types.js +14 -1
  143. package/dist/mux/types.js.map +1 -1
  144. package/dist/persona/persona-command.js +130 -93
  145. package/dist/persona/persona-command.js.map +1 -1
  146. package/dist/persona/persona-prompt.d.ts +7 -7
  147. package/dist/persona/persona-prompt.js +14 -29
  148. package/dist/persona/persona-prompt.js.map +1 -1
  149. package/dist/persona/resolve.js +5 -2
  150. package/dist/persona/resolve.js.map +1 -1
  151. package/dist/pipeline/annotate.js +1 -7
  152. package/dist/pipeline/annotate.js.map +1 -1
  153. package/dist/pipeline/compile.d.ts +5 -2
  154. package/dist/pipeline/compile.js +23 -11
  155. package/dist/pipeline/compile.js.map +1 -1
  156. package/dist/pipeline/constitution-compiler.d.ts +302 -3
  157. package/dist/pipeline/constitution-compiler.js +285 -23
  158. package/dist/pipeline/constitution-compiler.js.map +1 -1
  159. package/dist/pipeline/generate-with-repair.d.ts +2 -2
  160. package/dist/pipeline/generate-with-repair.js +2 -2
  161. package/dist/pipeline/handwritten-scenarios.d.ts +20 -7
  162. package/dist/pipeline/handwritten-scenarios.js +20 -41
  163. package/dist/pipeline/handwritten-scenarios.js.map +1 -1
  164. package/dist/pipeline/list-resolver.d.ts +18 -20
  165. package/dist/pipeline/list-resolver.js +28 -36
  166. package/dist/pipeline/list-resolver.js.map +1 -1
  167. package/dist/pipeline/pipeline-runner.d.ts +102 -13
  168. package/dist/pipeline/pipeline-runner.js +497 -237
  169. package/dist/pipeline/pipeline-runner.js.map +1 -1
  170. package/dist/pipeline/pipeline-shared.d.ts +7 -9
  171. package/dist/pipeline/pipeline-shared.js +8 -18
  172. package/dist/pipeline/pipeline-shared.js.map +1 -1
  173. package/dist/pipeline/policy-verifier.d.ts +32 -5
  174. package/dist/pipeline/policy-verifier.js +137 -8
  175. package/dist/pipeline/policy-verifier.js.map +1 -1
  176. package/dist/pipeline/proxy-mcp-connections.d.ts +25 -0
  177. package/dist/pipeline/proxy-mcp-connections.js +121 -0
  178. package/dist/pipeline/proxy-mcp-connections.js.map +1 -0
  179. package/dist/pipeline/refresh-lists.js +21 -13
  180. package/dist/pipeline/refresh-lists.js.map +1 -1
  181. package/dist/pipeline/scenario-generator.d.ts +29 -49
  182. package/dist/pipeline/scenario-generator.js +180 -143
  183. package/dist/pipeline/scenario-generator.js.map +1 -1
  184. package/dist/pipeline/scenario-schema-validator.d.ts +51 -0
  185. package/dist/pipeline/scenario-schema-validator.js +132 -0
  186. package/dist/pipeline/scenario-schema-validator.js.map +1 -0
  187. package/dist/pipeline/tool-annotator.d.ts +9 -8
  188. package/dist/pipeline/tool-annotator.js +48 -95
  189. package/dist/pipeline/tool-annotator.js.map +1 -1
  190. package/dist/pipeline/types.d.ts +31 -24
  191. package/dist/sandbox/index.d.ts +26 -10
  192. package/dist/sandbox/index.js +151 -40
  193. package/dist/sandbox/index.js.map +1 -1
  194. package/dist/servers/fetch-server.js +10 -5
  195. package/dist/servers/fetch-server.js.map +1 -1
  196. package/dist/session/agent-session.d.ts +8 -20
  197. package/dist/session/agent-session.js +22 -70
  198. package/dist/session/agent-session.js.map +1 -1
  199. package/dist/session/base-transport.d.ts +17 -1
  200. package/dist/session/base-transport.js +25 -1
  201. package/dist/session/base-transport.js.map +1 -1
  202. package/dist/session/cli-transport.d.ts +5 -0
  203. package/dist/session/cli-transport.js +48 -25
  204. package/dist/session/cli-transport.js.map +1 -1
  205. package/dist/session/index.d.ts +25 -1
  206. package/dist/session/index.js +57 -8
  207. package/dist/session/index.js.map +1 -1
  208. package/dist/session/prompts.js +8 -9
  209. package/dist/session/prompts.js.map +1 -1
  210. package/dist/session/session-manager.d.ts +6 -0
  211. package/dist/session/session-manager.js +12 -0
  212. package/dist/session/session-manager.js.map +1 -1
  213. package/dist/session/types.d.ts +11 -1
  214. package/dist/session/types.js.map +1 -1
  215. package/dist/session/workspace-validation.js +37 -6
  216. package/dist/session/workspace-validation.js.map +1 -1
  217. package/dist/signal/signal-bot-daemon.js +24 -8
  218. package/dist/signal/signal-bot-daemon.js.map +1 -1
  219. package/dist/signal/signal-transport.d.ts +5 -2
  220. package/dist/signal/signal-transport.js +3 -3
  221. package/dist/signal/signal-transport.js.map +1 -1
  222. package/dist/trusted-process/approval-whitelist.d.ts +117 -0
  223. package/dist/trusted-process/approval-whitelist.js +237 -0
  224. package/dist/trusted-process/approval-whitelist.js.map +1 -0
  225. package/dist/trusted-process/gworkspace-credentials.d.ts +40 -0
  226. package/dist/trusted-process/gworkspace-credentials.js +45 -0
  227. package/dist/trusted-process/gworkspace-credentials.js.map +1 -0
  228. package/dist/trusted-process/index.d.ts +11 -1
  229. package/dist/trusted-process/index.js +83 -53
  230. package/dist/trusted-process/index.js.map +1 -1
  231. package/dist/trusted-process/mcp-proxy-server.d.ts +23 -0
  232. package/dist/trusted-process/mcp-proxy-server.js +409 -94
  233. package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
  234. package/dist/trusted-process/policy-engine.d.ts +12 -3
  235. package/dist/trusted-process/policy-engine.js +33 -23
  236. package/dist/trusted-process/policy-engine.js.map +1 -1
  237. package/dist/trusted-process/policy-types.d.ts +17 -0
  238. package/dist/trusted-process/sandbox-integration.d.ts +23 -0
  239. package/dist/trusted-process/sandbox-integration.js +115 -3
  240. package/dist/trusted-process/sandbox-integration.js.map +1 -1
  241. package/dist/trusted-process/token-file-refresher.d.ts +69 -0
  242. package/dist/trusted-process/token-file-refresher.js +120 -0
  243. package/dist/trusted-process/token-file-refresher.js.map +1 -0
  244. package/dist/types/argument-roles.d.ts +7 -1
  245. package/dist/types/argument-roles.js +50 -0
  246. package/dist/types/argument-roles.js.map +1 -1
  247. package/dist/types/audit.d.ts +11 -0
  248. package/docker/Dockerfile.base +22 -0
  249. package/docker/Dockerfile.base.arm64 +44 -4
  250. package/docker/Dockerfile.claude-code +2 -2
  251. package/docker/entrypoint-claude-code.sh +24 -6
  252. package/package.json +8 -2
  253. package/src/config/constitution-user-base.md +15 -0
  254. package/src/config/generated/test-scenarios.json +1 -1
  255. package/src/config/generated/tool-annotations.json +10617 -296
  256. package/src/config/mcp-servers.json +31 -2
  257. package/dist/pipeline/mcp-connections.d.ts +0 -16
  258. package/dist/pipeline/mcp-connections.js +0 -61
  259. package/dist/pipeline/mcp-connections.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario-schema-validator.js","sourceRoot":"","sources":["../../src/pipeline/scenario-schema-validator.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,18 @@
2
2
  * Tool Annotator -- LLM-driven classification of MCP tool capabilities.
3
3
  *
4
4
  * Given a set of MCP tool schemas from a server, the annotator uses an LLM
5
- * to classify each tool's effect, side effects, and argument roles. A
6
- * compile-time heuristic validator catches annotation gaps before they
7
- * reach runtime.
5
+ * to classify each tool's argument roles. Results are processed in batches
6
+ * with Zod schema validation and repair loops to ensure correctness.
8
7
  */
9
8
  import type { LanguageModel } from 'ai';
10
9
  import type { StoredToolAnnotation } from './types.js';
10
+ /** Default number of tools per LLM call. */
11
+ export declare const ANNOTATION_BATCH_SIZE = 25;
12
+ /**
13
+ * Splits an array into chunks of at most `size` elements.
14
+ * Returns the original array (wrapped) if it fits in one chunk.
15
+ */
16
+ export declare function chunk<T>(items: T[], size: number): T[][];
11
17
  export interface MCPToolSchema {
12
18
  name: string;
13
19
  description?: string;
@@ -17,8 +23,3 @@ export interface MCPToolSchema {
17
23
  export declare function buildRoleDescriptions(serverName?: string): string;
18
24
  export declare function buildAnnotationPrompt(serverName: string, tools: MCPToolSchema[]): string;
19
25
  export declare function annotateTools(serverName: string, tools: MCPToolSchema[], llm: LanguageModel, onProgress?: (message: string) => void): Promise<StoredToolAnnotation[]>;
20
- export interface HeuristicValidationResult {
21
- valid: boolean;
22
- warnings: string[];
23
- }
24
- export declare function validateAnnotationsHeuristic(tools: MCPToolSchema[], annotations: StoredToolAnnotation[]): HeuristicValidationResult;
@@ -2,13 +2,29 @@
2
2
  * Tool Annotator -- LLM-driven classification of MCP tool capabilities.
3
3
  *
4
4
  * Given a set of MCP tool schemas from a server, the annotator uses an LLM
5
- * to classify each tool's effect, side effects, and argument roles. A
6
- * compile-time heuristic validator catches annotation gaps before they
7
- * reach runtime.
5
+ * to classify each tool's argument roles. Results are processed in batches
6
+ * with Zod schema validation and repair loops to ensure correctness.
8
7
  */
9
8
  import { z } from 'zod';
10
- import { ARGUMENT_ROLE_REGISTRY, extractDefaultRoles, getRoleDefinition, getRolesForServer, isConditionalRoles, } from '../types/argument-roles.js';
9
+ import { ARGUMENT_ROLE_REGISTRY, getRolesForServer, isConditionalRoles, } from '../types/argument-roles.js';
11
10
  import { generateObjectWithRepair } from './generate-with-repair.js';
11
+ /** Default number of tools per LLM call. */
12
+ export const ANNOTATION_BATCH_SIZE = 25;
13
+ /**
14
+ * Splits an array into chunks of at most `size` elements.
15
+ * Returns the original array (wrapped) if it fits in one chunk.
16
+ */
17
+ export function chunk(items, size) {
18
+ if (size <= 0)
19
+ throw new RangeError(`chunk size must be positive, got ${size}`);
20
+ if (items.length <= size)
21
+ return [items];
22
+ const result = [];
23
+ for (let i = 0; i < items.length; i += size) {
24
+ result.push(items.slice(i, i + size));
25
+ }
26
+ return result;
27
+ }
12
28
  function buildAnnotationsResponseSchema(serverName, tools) {
13
29
  const toolNames = tools.map((t) => t.name);
14
30
  // Build a per-server role enum so the schema rejects irrelevant roles
@@ -54,7 +70,6 @@ function buildAnnotationsResponseSchema(serverName, tools) {
54
70
  const toolAnnotationSchema = z.object({
55
71
  toolName: z.enum(toolNames),
56
72
  comment: z.string(),
57
- sideEffects: z.boolean(),
58
73
  args: z.record(z.string(), argumentRoleSpecSchema),
59
74
  });
60
75
  return z.object({
@@ -116,12 +131,7 @@ export function buildAnnotationPrompt(serverName, tools) {
116
131
 
117
132
  1. **comment**: A brief one-sentence description of what the tool does.
118
133
 
119
- 2. **sideEffects**: Whether the tool has security-relevant side effects.
120
- - true if the tool modifies state OR can disclose information from resource paths (information disclosure is a security-relevant side effect)
121
- - false ONLY if the tool has NO path arguments AND makes no state changes (e.g., a pure configuration query tool)
122
- - When in doubt, mark as true (conservative)
123
-
124
- 3. **args**: For each argument in the tool's input schema, assign an ARRAY of one or more roles:
134
+ 2. **args**: For each argument in the tool's input schema, assign an ARRAY of one or more roles:
125
135
  ${buildRoleDescriptions(serverName)}
126
136
 
127
137
  IMPORTANT: Each value in the args object MUST be an ARRAY of roles, even for single roles.
@@ -137,7 +147,6 @@ Here is a complete example annotation for a move_file tool that shows multi-role
137
147
  {
138
148
  "toolName": "move_file",
139
149
  "comment": "Moves or renames a file or directory from a source path to a destination path in a single operation.",
140
- "sideEffects": true,
141
150
  "args": {
142
151
  "source": ["read-path", "delete-path"],
143
152
  "destination": ["write-path"]
@@ -218,93 +227,37 @@ Return annotations for ALL ${tools.length} tools. Use the exact tool names as pr
218
227
  export async function annotateTools(serverName, tools, llm, onProgress) {
219
228
  if (tools.length === 0)
220
229
  return [];
221
- const schema = buildAnnotationsResponseSchema(serverName, tools);
222
- const prompt = buildAnnotationPrompt(serverName, tools);
223
- const { output } = await generateObjectWithRepair({
224
- model: llm,
225
- schema,
226
- prompt,
227
- onProgress,
228
- });
229
- const annotations = output.annotations.map((a) => ({
230
- ...a,
231
- serverName,
232
- }));
233
- // Validate all input tools are represented in the output
234
- const annotatedNames = new Set(annotations.map((a) => a.toolName));
230
+ const batches = chunk(tools, ANNOTATION_BATCH_SIZE);
231
+ const allAnnotations = [];
232
+ for (let i = 0; i < batches.length; i++) {
233
+ const batch = batches[i];
234
+ if (batches.length > 1) {
235
+ onProgress?.(`Batch ${i + 1}/${batches.length} (${batch.length} tools)`);
236
+ }
237
+ const schema = buildAnnotationsResponseSchema(serverName, batch);
238
+ const prompt = buildAnnotationPrompt(serverName, batch);
239
+ const { output } = await generateObjectWithRepair({
240
+ model: llm,
241
+ schema,
242
+ prompt,
243
+ onProgress: batches.length > 1 ? (msg) => onProgress?.(`Batch ${i + 1}/${batches.length}: ${msg}`) : onProgress,
244
+ });
245
+ // Build a lookup from tool name to inputSchema for this batch
246
+ const schemaByName = new Map(batch.map((t) => [t.name, t.inputSchema]));
247
+ const batchAnnotations = output.annotations.map((a) => ({
248
+ ...a,
249
+ serverName,
250
+ inputSchema: schemaByName.get(a.toolName) ?? { type: 'object' },
251
+ }));
252
+ allAnnotations.push(...batchAnnotations);
253
+ }
254
+ // Validate all input tools are represented across all batches
255
+ const annotatedNames = new Set(allAnnotations.map((a) => a.toolName));
235
256
  const missingTools = tools.filter((t) => !annotatedNames.has(t.name));
236
257
  if (missingTools.length > 0) {
237
258
  const names = missingTools.map((t) => t.name).join(', ');
238
259
  throw new Error(`Annotation incomplete: missing tools: ${names}`);
239
260
  }
240
- return annotations;
241
- }
242
- // -----------------------------------------------------------------------
243
- // Compile-time heuristic validation
244
- // -----------------------------------------------------------------------
245
- /** Argument names that strongly suggest filesystem path arguments. */
246
- const PATH_INDICATOR_NAMES = ['path', 'file', 'dir', 'directory', 'source', 'destination'];
247
- function looksLikePathArgument(argName) {
248
- const lower = argName.toLowerCase();
249
- return PATH_INDICATOR_NAMES.some((indicator) => lower.includes(indicator));
250
- }
251
- function hasPathLikeValues(schema) {
252
- const properties = schema['properties'];
253
- if (!properties)
254
- return false;
255
- for (const prop of Object.values(properties)) {
256
- const defaultVal = prop['default'];
257
- if (typeof defaultVal === 'string' && (defaultVal.startsWith('/') || defaultVal.startsWith('.'))) {
258
- return true;
259
- }
260
- const examples = prop['examples'];
261
- if (Array.isArray(examples)) {
262
- for (const ex of examples) {
263
- if (typeof ex === 'string' && (ex.startsWith('/') || ex.startsWith('.'))) {
264
- return true;
265
- }
266
- }
267
- }
268
- }
269
- return false;
270
- }
271
- export function validateAnnotationsHeuristic(tools, annotations) {
272
- const annotationsByName = new Map();
273
- for (const a of annotations) {
274
- annotationsByName.set(a.toolName, a);
275
- }
276
- const warnings = [];
277
- for (const tool of tools) {
278
- const annotation = annotationsByName.get(tool.name);
279
- if (!annotation) {
280
- warnings.push(`Tool "${tool.name}" has no annotation`);
281
- continue;
282
- }
283
- const properties = (tool.inputSchema['properties'] ?? {});
284
- for (const [argName, argSchema] of Object.entries(properties)) {
285
- if (!looksLikePathArgument(argName))
286
- continue;
287
- // Skip non-string arguments (booleans, enums, numbers named "directories" etc.)
288
- const argType = argSchema['type'];
289
- if (argType === 'boolean' || argType === 'number' || argType === 'integer')
290
- continue;
291
- const roles = argName in annotation.args ? extractDefaultRoles(annotation.args[argName]) : undefined;
292
- const hasPathRole = roles && roles.some((r) => getRoleDefinition(r).isResourceIdentifier);
293
- if (!hasPathRole) {
294
- warnings.push(`Tool "${tool.name}" argument "${argName}" looks like a path but has no path role in annotation`);
295
- }
296
- }
297
- // Check for path-like default values or examples
298
- if (hasPathLikeValues(tool.inputSchema)) {
299
- const hasAnyPathRole = Object.values(annotation.args).some((spec) => extractDefaultRoles(spec).some((r) => getRoleDefinition(r).isResourceIdentifier));
300
- if (!hasAnyPathRole) {
301
- warnings.push(`Tool "${tool.name}" schema has path-like defaults/examples but no path roles in annotation`);
302
- }
303
- }
304
- }
305
- return {
306
- valid: warnings.length === 0,
307
- warnings,
308
- };
261
+ return allAnnotations;
309
262
  }
310
263
  //# sourceMappingURL=tool-annotator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-annotator.js","sourceRoot":"","sources":["../../src/pipeline/tool-annotator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAUrE,SAAS,8BAA8B,CAAC,UAAkB,EAAE,KAAsB;IAChF,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAA0B,CAAC;IAEpE,sEAAsE;IACtE,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAsC,CAAC;IAC5G,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE9C,yEAAyE;IACzE,iDAAiD;IACjD,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1G,sEAAsE;IACtE,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,eAAe,GAAG,CAAC;SACtB,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;QAC/B,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;QACpC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;KAChE,CAAC;SACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;QACJ,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACtG,OAAO,KAAK,KAAK,CAAC,CAAC;IACrB,CAAC,EACD,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAC5D,CAAC;IAEJ,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;QACtC,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,CAAC;SAC7B,MAAM,CAAC;QACN,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;KACtC,CAAC;SACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC,EACD,EAAE,OAAO,EAAE,yDAAyD,EAAE,CACvE,CAAC;IAEJ,oEAAoE;IACpE,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAEnF,6DAA6D;IAC7D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,CAA4B,CAAC;QAC7E,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;QACpC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;QACxB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC;KACnD,CAAC,CAAC;IAEH,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE;YAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,GAAG,CAAC,QAAQ,CAAC;wBACX,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;wBACjB,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,gDAAgD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,0EAA0E;qBAC7K,CAAC,CAAC;gBACL,CAAC;gBAED,wEAAwE;gBACxE,kEAAkE;gBAClE,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrD,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;4BACpC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gCACzB,GAAG,CAAC,QAAQ,CAAC;oCACX,IAAI,EAAE,QAAQ;oCACd,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC;oCAC1B,OAAO,EACL,wBAAwB,OAAO,kCAAkC,OAAO,KAAK;wCAC7E,kFAAkF;iCACrF,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,qBAAqB,CAAC,UAAmB;IACvD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,OAAO,EAAE,CAAC,CAAC;IACnG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,KAAsB;IAC9E,MAAM,gBAAgB,GAAG,KAAK;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,OAAO;YACL,SAAS,CAAC,CAAC,IAAI,EAAE;YACjB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;YACpD,iBAAiB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;SAC1D;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,CAAC;SACD,IAAI,CAAC,aAAa,CAAC,CAAC;IAEvB,OAAO,oFAAoF,UAAU;;;;;;;;;;EAUrG,qBAAqB,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFjC,gBAAgB;;6BAEW,KAAK,CAAC,MAAM,+CAA+C,CAAC;AACzF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAkB,EAClB,KAAsB,EACtB,GAAkB,EAClB,UAAsC;IAEtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,MAAM,GAAG,8BAA8B,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAExD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,wBAAwB,CAAC;QAChD,KAAK,EAAE,GAAG;QACV,MAAM;QACN,MAAM;QACN,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,WAAW,GAA2B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,GAAG,CAAC;QACJ,UAAU;KACX,CAAC,CAAC,CAAC;IAEJ,yDAAyD;IACzD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,0EAA0E;AAC1E,oCAAoC;AACpC,0EAA0E;AAE1E,sEAAsE;AACtE,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAE3F,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA+B;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAwD,CAAC;IAC/F,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACjG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACzE,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAOD,MAAM,UAAU,4BAA4B,CAC1C,KAAsB,EACtB,WAAmC;IAEnC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAgC,CAAC;IAClE,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,qBAAqB,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,CAA4C,CAAC;QAErG,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;gBAAE,SAAS;YAE9C,gFAAgF;YAChF,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS;YAErF,MAAM,KAAK,GAAG,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrG,MAAM,WAAW,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YAE1F,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,eAAe,OAAO,wDAAwD,CAAC,CAAC;YAClH,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAClE,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CACjF,CAAC;YACF,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,0EAA0E,CAAC,CAAC;YAC9G,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC5B,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tool-annotator.js","sourceRoot":"","sources":["../../src/pipeline/tool-annotator.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,6 @@ export interface ToolAnnotation {
15
15
  toolName: string;
16
16
  serverName: string;
17
17
  comment: string;
18
- sideEffects: boolean;
19
18
  args: Record<string, ArgumentRole[]>;
20
19
  }
21
20
  export interface ToolAnnotationsFile {
@@ -66,6 +65,8 @@ export type ArgumentRoleSpec = ArgumentRole[] | ConditionalRoles;
66
65
  */
67
66
  export interface StoredToolAnnotation extends Omit<ToolAnnotation, 'args'> {
68
67
  args: Record<string, ArgumentRoleSpec>;
68
+ /** JSON Schema for the tool's input, captured from the MCP server at annotation time. */
69
+ inputSchema: Record<string, unknown>;
69
70
  }
70
71
  /**
71
72
  * The tool-annotations.json file format.
@@ -94,7 +95,6 @@ export interface CompiledRuleCondition {
94
95
  roles?: ArgumentRole[];
95
96
  server?: string[];
96
97
  tool?: string[];
97
- sideEffects?: boolean;
98
98
  paths?: PathCondition;
99
99
  domains?: DomainCondition;
100
100
  /** Non-domain list conditions (emails, identifiers). */
@@ -187,6 +187,18 @@ export interface CompiledPolicyFile {
187
187
  /** List definitions emitted by the compiler. Empty if no dynamic lists needed. */
188
188
  listDefinitions?: ListDefinition[];
189
189
  }
190
+ /**
191
+ * Per-server compiled policy artifact.
192
+ * Written to generated/servers/{serverName}/compiled-policy.json.
193
+ */
194
+ export interface ServerCompiledPolicyFile {
195
+ readonly generatedAt: string;
196
+ readonly serverName: string;
197
+ readonly constitutionHash: string;
198
+ readonly inputHash: string;
199
+ readonly rules: CompiledRule[];
200
+ readonly listDefinitions?: ListDefinition[];
201
+ }
190
202
  /**
191
203
  * Expected decision for a test scenario.
192
204
  * 'not-allow' means any non-allow decision (deny or escalate) is acceptable.
@@ -257,28 +269,6 @@ export interface ScenarioCorrection {
257
269
  correctedDecision: Decision;
258
270
  correctedReasoning: string;
259
271
  }
260
- /**
261
- * Feedback from the verify-repair loop that should be communicated
262
- * to the scenario generator on its next turn. Each field is optional;
263
- * only the feedback that applies to the current repair iteration is set.
264
- */
265
- export interface ScenarioFeedback {
266
- /**
267
- * Scenarios whose expectations were corrected by the verifier judge.
268
- * The generator should avoid reproducing the original (wrong) expectations.
269
- */
270
- readonly corrections: ReadonlyArray<ScenarioCorrection>;
271
- /**
272
- * Scenarios discarded because they conflict with structural invariants.
273
- * The generator should not regenerate scenarios with the same tool+args+expectation.
274
- */
275
- readonly discardedScenarios: ReadonlyArray<DiscardedScenario>;
276
- /**
277
- * Probe scenarios generated by the verifier that revealed coverage gaps.
278
- * The generator can use these as hints for what areas need better coverage.
279
- */
280
- readonly probeScenarios: ReadonlyArray<TestScenario>;
281
- }
282
272
  export interface RepairContext {
283
273
  failedScenarios: ExecutionResult[];
284
274
  judgeAnalysis: string;
@@ -286,3 +276,20 @@ export interface RepairContext {
286
276
  existingListDefinitions?: ListDefinition[];
287
277
  handwrittenScenarios?: TestScenario[];
288
278
  }
279
+ export type RulePatchOp = {
280
+ op: 'update';
281
+ ruleName: string;
282
+ rule: CompiledRule;
283
+ } | {
284
+ op: 'add';
285
+ afterRule?: string;
286
+ rule: CompiledRule;
287
+ } | {
288
+ op: 'delete';
289
+ ruleName: string;
290
+ };
291
+ export interface RulePatch {
292
+ reasoning: string;
293
+ operations: RulePatchOp[];
294
+ listDefinitions?: ListDefinition[];
295
+ }
@@ -9,11 +9,26 @@
9
9
  import '@utcp/mcp';
10
10
  import type { IronCurtainConfig } from '../config/types.js';
11
11
  /**
12
- * Transforms a UTCP tool name (dotted) into the actual callable function name
13
- * in the sandbox. Mirrors UTCP Code Mode's sanitizeIdentifier() behavior:
14
- * split on first dot (manual name), join remaining parts with underscores.
12
+ * Mirrors UTCP Code Mode's sanitizeIdentifier() behavior the property name
13
+ * that UTCP actually creates on `global.tools` in the V8 isolate.
15
14
  *
16
- * Example: "filesystem.filesystem.list_directory" → "filesystem.filesystem_list_directory"
15
+ * Example: "tools.filesystem.read_file" → "tools.filesystem_read_file"
16
+ */
17
+ export declare function toUtcpCallable(toolName: string): string;
18
+ /**
19
+ * Transforms a UTCP tool name (dotted) into the user-facing callable name
20
+ * with server-namespace prefix stripping.
21
+ *
22
+ * For 3+ segment names (tools.<server>.<tool>):
23
+ * - Extract server and tool segments
24
+ * - If tool starts with `serverName_`, strip that prefix
25
+ * - Return `server.strippedTool`
26
+ *
27
+ * Examples:
28
+ * "tools.filesystem.read_file" → "filesystem.read_file"
29
+ * "tools.git.git_add" → "git.add"
30
+ * "tools.memory.memory_context" → "memory.context"
31
+ * "tools.a.b.c" → "a.b_c"
17
32
  */
18
33
  export declare function toCallableName(toolName: string): string;
19
34
  /**
@@ -51,16 +66,17 @@ export declare function buildHelpSnippet(helpData: HelpData): string;
51
66
  export declare class Sandbox {
52
67
  private client;
53
68
  private toolCatalog;
54
- private interfacePatchSnippet;
55
- private helpSnippet;
69
+ private preamble;
56
70
  private helpData;
57
71
  initialize(config: IronCurtainConfig): Promise<void>;
58
72
  /**
59
- * Builds the tool catalog, the __getToolInterface patch, and help data in one pass.
73
+ * Builds the tool catalog, the __getToolInterface patch, namespace alias
74
+ * snippet, and help data in one pass.
60
75
  *
61
- * The catalog is a compact one-line-per-tool listing using callable names.
62
- * The patch snippet maps callable names back to raw UTCP names so that
63
- * __getToolInterface works with either naming convention.
76
+ * The catalog is a compact one-line-per-tool listing using new callable names.
77
+ * The patch snippet maps both new and old callable names back to raw UTCP
78
+ * names so that __getToolInterface works with any naming convention.
79
+ * The alias snippet creates server-namespace globals so the new names work.
64
80
  * The help data groups tools by server for progressive disclosure.
65
81
  */
66
82
  private buildToolCatalogAndPatch;