@provos/ironcurtain 0.9.1 → 0.11.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 (502) hide show
  1. package/README.md +69 -10
  2. package/dist/auth/oauth-provider.js +1 -4
  3. package/dist/auth/oauth-provider.js.map +1 -1
  4. package/dist/cli.js +40 -2
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config/config-command.js +174 -10
  7. package/dist/config/config-command.js.map +1 -1
  8. package/dist/config/first-start.js +61 -0
  9. package/dist/config/first-start.js.map +1 -1
  10. package/dist/config/generated/compiled-policy.json +528 -161
  11. package/dist/config/generated/test-scenarios.json +4810 -170
  12. package/dist/config/generated/tool-annotations.json +34 -47
  13. package/dist/config/index.d.ts +58 -0
  14. package/dist/config/index.js +97 -15
  15. package/dist/config/index.js.map +1 -1
  16. package/dist/config/mcp-servers.json +2 -2
  17. package/dist/config/model-provider.d.ts +8 -2
  18. package/dist/config/model-provider.js +52 -9
  19. package/dist/config/model-provider.js.map +1 -1
  20. package/dist/config/paths.d.ts +181 -0
  21. package/dist/config/paths.js +326 -23
  22. package/dist/config/paths.js.map +1 -1
  23. package/dist/config/types.d.ts +7 -1
  24. package/dist/config/user-config.d.ts +61 -4
  25. package/dist/config/user-config.js +108 -21
  26. package/dist/config/user-config.js.map +1 -1
  27. package/dist/config/validate-policy-dir.d.ts +10 -0
  28. package/dist/config/validate-policy-dir.js +59 -0
  29. package/dist/config/validate-policy-dir.js.map +1 -0
  30. package/dist/cron/compile-task-policy.js +1 -0
  31. package/dist/cron/compile-task-policy.js.map +1 -1
  32. package/dist/cron/job-commands.js +22 -2
  33. package/dist/cron/job-commands.js.map +1 -1
  34. package/dist/cron/types.d.ts +16 -2
  35. package/dist/cron/types.js +1 -3
  36. package/dist/cron/types.js.map +1 -1
  37. package/dist/daemon/daemon-command.js +16 -2
  38. package/dist/daemon/daemon-command.js.map +1 -1
  39. package/dist/daemon/ironcurtain-daemon.d.ts +44 -1
  40. package/dist/daemon/ironcurtain-daemon.js +210 -8
  41. package/dist/daemon/ironcurtain-daemon.js.map +1 -1
  42. package/dist/docker/adapters/claude-code.d.ts +2 -1
  43. package/dist/docker/adapters/claude-code.js +320 -131
  44. package/dist/docker/adapters/claude-code.js.map +1 -1
  45. package/dist/docker/adapters/goose.d.ts +12 -11
  46. package/dist/docker/adapters/goose.js +80 -27
  47. package/dist/docker/adapters/goose.js.map +1 -1
  48. package/dist/docker/agent-adapter.d.ts +178 -4
  49. package/dist/docker/agent-adapter.js +14 -0
  50. package/dist/docker/agent-adapter.js.map +1 -1
  51. package/dist/docker/agent-registry.js +3 -2
  52. package/dist/docker/agent-registry.js.map +1 -1
  53. package/dist/docker/code-mode-proxy.d.ts +27 -0
  54. package/dist/docker/code-mode-proxy.js +3 -0
  55. package/dist/docker/code-mode-proxy.js.map +1 -1
  56. package/dist/docker/container-lifecycle.d.ts +15 -0
  57. package/dist/docker/container-lifecycle.js +32 -0
  58. package/dist/docker/container-lifecycle.js.map +1 -0
  59. package/dist/docker/docker-agent-session.d.ts +113 -62
  60. package/dist/docker/docker-agent-session.js +241 -300
  61. package/dist/docker/docker-agent-session.js.map +1 -1
  62. package/dist/docker/docker-infrastructure.d.ts +256 -21
  63. package/dist/docker/docker-infrastructure.js +585 -30
  64. package/dist/docker/docker-infrastructure.js.map +1 -1
  65. package/dist/docker/docker-manager.d.ts +36 -1
  66. package/dist/docker/docker-manager.js +168 -26
  67. package/dist/docker/docker-manager.js.map +1 -1
  68. package/dist/docker/docker-progress-sink.d.ts +43 -0
  69. package/dist/docker/docker-progress-sink.js +299 -0
  70. package/dist/docker/docker-progress-sink.js.map +1 -0
  71. package/dist/docker/mitm-proxy.d.ts +90 -1
  72. package/dist/docker/mitm-proxy.js +720 -40
  73. package/dist/docker/mitm-proxy.js.map +1 -1
  74. package/dist/docker/oauth-credentials.d.ts +46 -3
  75. package/dist/docker/oauth-credentials.js +56 -14
  76. package/dist/docker/oauth-credentials.js.map +1 -1
  77. package/dist/docker/oauth-token-manager.js +2 -2
  78. package/dist/docker/oauth-token-manager.js.map +1 -1
  79. package/dist/docker/orientation.d.ts +1 -1
  80. package/dist/docker/provider-config.d.ts +81 -2
  81. package/dist/docker/provider-config.js +222 -28
  82. package/dist/docker/provider-config.js.map +1 -1
  83. package/dist/docker/proxy-tools.d.ts +0 -2
  84. package/dist/docker/proxy-tools.js +2 -7
  85. package/dist/docker/proxy-tools.js.map +1 -1
  86. package/dist/docker/pty-session.d.ts +49 -1
  87. package/dist/docker/pty-session.js +212 -90
  88. package/dist/docker/pty-session.js.map +1 -1
  89. package/dist/docker/pty-types.d.ts +0 -2
  90. package/dist/docker/pty-types.js +0 -2
  91. package/dist/docker/pty-types.js.map +1 -1
  92. package/dist/docker/resource-limits.d.ts +125 -0
  93. package/dist/docker/resource-limits.js +200 -0
  94. package/dist/docker/resource-limits.js.map +1 -0
  95. package/dist/docker/spawn-with-idle-timeout.d.ts +39 -0
  96. package/dist/docker/spawn-with-idle-timeout.js +152 -0
  97. package/dist/docker/spawn-with-idle-timeout.js.map +1 -0
  98. package/dist/docker/sse-extractor.d.ts +51 -0
  99. package/dist/docker/sse-extractor.js +303 -0
  100. package/dist/docker/sse-extractor.js.map +1 -0
  101. package/dist/docker/token-stream-bus.d.ts +83 -0
  102. package/dist/docker/token-stream-bus.js +98 -0
  103. package/dist/docker/token-stream-bus.js.map +1 -0
  104. package/dist/docker/token-stream-types.d.ts +71 -0
  105. package/dist/docker/token-stream-types.js +8 -0
  106. package/dist/docker/token-stream-types.js.map +1 -0
  107. package/dist/docker/types.d.ts +61 -6
  108. package/dist/doctor/checks.d.ts +138 -0
  109. package/dist/doctor/checks.js +511 -0
  110. package/dist/doctor/checks.js.map +1 -0
  111. package/dist/doctor/doctor-command.d.ts +29 -0
  112. package/dist/doctor/doctor-command.js +160 -0
  113. package/dist/doctor/doctor-command.js.map +1 -0
  114. package/dist/doctor/mcp-liveness.d.ts +28 -0
  115. package/dist/doctor/mcp-liveness.js +84 -0
  116. package/dist/doctor/mcp-liveness.js.map +1 -0
  117. package/dist/doctor/oauth-checks.d.ts +23 -0
  118. package/dist/doctor/oauth-checks.js +157 -0
  119. package/dist/doctor/oauth-checks.js.map +1 -0
  120. package/dist/doctor/output.d.ts +26 -0
  121. package/dist/doctor/output.js +82 -0
  122. package/dist/doctor/output.js.map +1 -0
  123. package/dist/escalation/listener-command.js +0 -3
  124. package/dist/escalation/listener-command.js.map +1 -1
  125. package/dist/event-bus/typed-event-bus.d.ts +26 -0
  126. package/dist/event-bus/typed-event-bus.js +35 -0
  127. package/dist/event-bus/typed-event-bus.js.map +1 -0
  128. package/dist/index.js +32 -9
  129. package/dist/index.js.map +1 -1
  130. package/dist/logger.js +31 -2
  131. package/dist/logger.js.map +1 -1
  132. package/dist/memory/auto-save.d.ts +18 -4
  133. package/dist/memory/auto-save.js +46 -6
  134. package/dist/memory/auto-save.js.map +1 -1
  135. package/dist/memory/memory-policy.d.ts +41 -0
  136. package/dist/memory/memory-policy.js +36 -0
  137. package/dist/memory/memory-policy.js.map +1 -0
  138. package/dist/mux/mux-app.d.ts +2 -0
  139. package/dist/mux/mux-app.js +30 -34
  140. package/dist/mux/mux-app.js.map +1 -1
  141. package/dist/mux/mux-command.d.ts +10 -1
  142. package/dist/mux/mux-command.js +62 -35
  143. package/dist/mux/mux-command.js.map +1 -1
  144. package/dist/mux/mux-renderer.js +22 -17
  145. package/dist/mux/mux-renderer.js.map +1 -1
  146. package/dist/mux/pty-bridge.d.ts +2 -0
  147. package/dist/mux/pty-bridge.js +3 -0
  148. package/dist/mux/pty-bridge.js.map +1 -1
  149. package/dist/mux/session-scanner.d.ts +7 -0
  150. package/dist/mux/session-scanner.js +21 -2
  151. package/dist/mux/session-scanner.js.map +1 -1
  152. package/dist/mux/types.d.ts +0 -4
  153. package/dist/mux/types.js.map +1 -1
  154. package/dist/{pipeline → observability}/llm-logger.d.ts +9 -3
  155. package/dist/{pipeline → observability}/llm-logger.js +16 -4
  156. package/dist/observability/llm-logger.js.map +1 -0
  157. package/dist/observe/observe-command.d.ts +12 -0
  158. package/dist/observe/observe-command.js +298 -0
  159. package/dist/observe/observe-command.js.map +1 -0
  160. package/dist/observe/observe-renderer.d.ts +24 -0
  161. package/dist/observe/observe-renderer.js +87 -0
  162. package/dist/observe/observe-renderer.js.map +1 -0
  163. package/dist/observe/observe-tui-rain.d.ts +42 -0
  164. package/dist/observe/observe-tui-rain.js +531 -0
  165. package/dist/observe/observe-tui-rain.js.map +1 -0
  166. package/dist/observe/observe-tui-text-panel.d.ts +46 -0
  167. package/dist/observe/observe-tui-text-panel.js +525 -0
  168. package/dist/observe/observe-tui-text-panel.js.map +1 -0
  169. package/dist/observe/observe-tui-types.d.ts +270 -0
  170. package/dist/observe/observe-tui-types.js +200 -0
  171. package/dist/observe/observe-tui-types.js.map +1 -0
  172. package/dist/observe/observe-tui-word-scorer.d.ts +143 -0
  173. package/dist/observe/observe-tui-word-scorer.js +572 -0
  174. package/dist/observe/observe-tui-word-scorer.js.map +1 -0
  175. package/dist/observe/observe-tui.d.ts +59 -0
  176. package/dist/observe/observe-tui.js +592 -0
  177. package/dist/observe/observe-tui.js.map +1 -0
  178. package/dist/persona/compile-persona-policy.js +1 -0
  179. package/dist/persona/compile-persona-policy.js.map +1 -1
  180. package/dist/persona/memory-gate.d.ts +19 -0
  181. package/dist/persona/memory-gate.js +33 -0
  182. package/dist/persona/memory-gate.js.map +1 -0
  183. package/dist/persona/persona-command.js +41 -6
  184. package/dist/persona/persona-command.js.map +1 -1
  185. package/dist/persona/resolve.d.ts +22 -0
  186. package/dist/persona/resolve.js +45 -2
  187. package/dist/persona/resolve.js.map +1 -1
  188. package/dist/persona/types.d.ts +16 -0
  189. package/dist/pipeline/annotate.d.ts +7 -1
  190. package/dist/pipeline/annotate.js +92 -2
  191. package/dist/pipeline/annotate.js.map +1 -1
  192. package/dist/pipeline/compile.js +2 -0
  193. package/dist/pipeline/compile.js.map +1 -1
  194. package/dist/pipeline/constitution-compiler.d.ts +25 -14
  195. package/dist/pipeline/constitution-compiler.js +107 -38
  196. package/dist/pipeline/constitution-compiler.js.map +1 -1
  197. package/dist/pipeline/dynamic-list-types.d.ts +3 -6
  198. package/dist/pipeline/dynamic-list-types.js +3 -16
  199. package/dist/pipeline/dynamic-list-types.js.map +1 -1
  200. package/dist/pipeline/parallel-progress.d.ts +59 -0
  201. package/dist/pipeline/parallel-progress.js +263 -0
  202. package/dist/pipeline/parallel-progress.js.map +1 -0
  203. package/dist/pipeline/pipeline-runner.d.ts +49 -8
  204. package/dist/pipeline/pipeline-runner.js +419 -231
  205. package/dist/pipeline/pipeline-runner.js.map +1 -1
  206. package/dist/pipeline/pipeline-shared.d.ts +59 -1
  207. package/dist/pipeline/pipeline-shared.js +127 -12
  208. package/dist/pipeline/pipeline-shared.js.map +1 -1
  209. package/dist/pipeline/policy-verifier.js +16 -3
  210. package/dist/pipeline/policy-verifier.js.map +1 -1
  211. package/dist/pipeline/proxy-mcp-connections.js +17 -2
  212. package/dist/pipeline/proxy-mcp-connections.js.map +1 -1
  213. package/dist/pipeline/scenario-generator.d.ts +4 -8
  214. package/dist/pipeline/scenario-generator.js +13 -46
  215. package/dist/pipeline/scenario-generator.js.map +1 -1
  216. package/dist/pipeline/server-prefilter.d.ts +31 -0
  217. package/dist/pipeline/server-prefilter.js +115 -0
  218. package/dist/pipeline/server-prefilter.js.map +1 -0
  219. package/dist/pipeline/types.d.ts +5 -0
  220. package/dist/sandbox/index.d.ts +14 -0
  221. package/dist/sandbox/index.js +335 -116
  222. package/dist/sandbox/index.js.map +1 -1
  223. package/dist/sandbox/ironcurtain-protocol.d.ts +52 -0
  224. package/dist/sandbox/ironcurtain-protocol.js +185 -0
  225. package/dist/sandbox/ironcurtain-protocol.js.map +1 -0
  226. package/dist/session/agent-session.d.ts +6 -0
  227. package/dist/session/agent-session.js +16 -5
  228. package/dist/session/agent-session.js.map +1 -1
  229. package/dist/session/cli-transport.js +0 -6
  230. package/dist/session/cli-transport.js.map +1 -1
  231. package/dist/session/index.d.ts +35 -14
  232. package/dist/session/index.js +324 -130
  233. package/dist/session/index.js.map +1 -1
  234. package/dist/session/preflight.d.ts +50 -13
  235. package/dist/session/preflight.js +252 -80
  236. package/dist/session/preflight.js.map +1 -1
  237. package/dist/session/prompts.d.ts +2 -5
  238. package/dist/session/prompts.js.map +1 -1
  239. package/dist/session/session-manager.d.ts +61 -6
  240. package/dist/session/session-manager.js +72 -10
  241. package/dist/session/session-manager.js.map +1 -1
  242. package/dist/session/session-metadata.d.ts +21 -5
  243. package/dist/session/session-metadata.js +34 -12
  244. package/dist/session/session-metadata.js.map +1 -1
  245. package/dist/session/types.d.ts +311 -5
  246. package/dist/session/types.js +57 -1
  247. package/dist/session/types.js.map +1 -1
  248. package/dist/signal/setup-signal.js +13 -21
  249. package/dist/signal/setup-signal.js.map +1 -1
  250. package/dist/signal/signal-bot-daemon.d.ts +16 -1
  251. package/dist/signal/signal-bot-daemon.js +39 -27
  252. package/dist/signal/signal-bot-daemon.js.map +1 -1
  253. package/dist/signal/signal-container.js +7 -1
  254. package/dist/signal/signal-container.js.map +1 -1
  255. package/dist/skills/discovery.d.ts +77 -0
  256. package/dist/skills/discovery.js +206 -0
  257. package/dist/skills/discovery.js.map +1 -0
  258. package/dist/skills/index.d.ts +4 -0
  259. package/dist/skills/index.js +3 -0
  260. package/dist/skills/index.js.map +1 -0
  261. package/dist/skills/staging.d.ts +28 -0
  262. package/dist/skills/staging.js +68 -0
  263. package/dist/skills/staging.js.map +1 -0
  264. package/dist/skills/types.d.ts +46 -0
  265. package/dist/skills/types.js +2 -0
  266. package/dist/skills/types.js.map +1 -0
  267. package/dist/trusted-process/approval-whitelist.d.ts +0 -2
  268. package/dist/trusted-process/approval-whitelist.js +17 -17
  269. package/dist/trusted-process/approval-whitelist.js.map +1 -1
  270. package/dist/trusted-process/async-mutex.d.ts +32 -0
  271. package/dist/trusted-process/async-mutex.js +50 -0
  272. package/dist/trusted-process/async-mutex.js.map +1 -0
  273. package/dist/trusted-process/audit-log.d.ts +38 -1
  274. package/dist/trusted-process/audit-log.js +82 -13
  275. package/dist/trusted-process/audit-log.js.map +1 -1
  276. package/dist/trusted-process/call-circuit-breaker.js +2 -1
  277. package/dist/trusted-process/call-circuit-breaker.js.map +1 -1
  278. package/dist/trusted-process/control-server.d.ts +101 -0
  279. package/dist/trusted-process/control-server.js +282 -0
  280. package/dist/trusted-process/control-server.js.map +1 -0
  281. package/dist/trusted-process/domain-utils.d.ts +6 -6
  282. package/dist/trusted-process/domain-utils.js +7 -23
  283. package/dist/trusted-process/domain-utils.js.map +1 -1
  284. package/dist/trusted-process/error-prefixes.d.ts +16 -0
  285. package/dist/trusted-process/error-prefixes.js +17 -0
  286. package/dist/trusted-process/error-prefixes.js.map +1 -0
  287. package/dist/trusted-process/index.d.ts +40 -23
  288. package/dist/trusted-process/index.js +131 -225
  289. package/dist/trusted-process/index.js.map +1 -1
  290. package/dist/trusted-process/list-matcher.d.ts +17 -0
  291. package/dist/trusted-process/list-matcher.js +31 -0
  292. package/dist/trusted-process/list-matcher.js.map +1 -0
  293. package/dist/trusted-process/mcp-client-manager.d.ts +35 -6
  294. package/dist/trusted-process/mcp-client-manager.js +40 -45
  295. package/dist/trusted-process/mcp-client-manager.js.map +1 -1
  296. package/dist/trusted-process/mcp-proxy-server.d.ts +31 -120
  297. package/dist/trusted-process/mcp-proxy-server.js +166 -657
  298. package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
  299. package/dist/trusted-process/policy-engine.d.ts +16 -4
  300. package/dist/trusted-process/policy-engine.js +90 -45
  301. package/dist/trusted-process/policy-engine.js.map +1 -1
  302. package/dist/trusted-process/policy-roots.d.ts +6 -0
  303. package/dist/trusted-process/policy-roots.js +20 -0
  304. package/dist/trusted-process/policy-roots.js.map +1 -1
  305. package/dist/trusted-process/sandbox-integration.d.ts +12 -0
  306. package/dist/trusted-process/sandbox-integration.js +26 -0
  307. package/dist/trusted-process/sandbox-integration.js.map +1 -1
  308. package/dist/trusted-process/tool-call-coordinator.d.ts +269 -0
  309. package/dist/trusted-process/tool-call-coordinator.js +508 -0
  310. package/dist/trusted-process/tool-call-coordinator.js.map +1 -0
  311. package/dist/trusted-process/tool-call-pipeline.d.ts +205 -0
  312. package/dist/trusted-process/tool-call-pipeline.js +798 -0
  313. package/dist/trusted-process/tool-call-pipeline.js.map +1 -0
  314. package/dist/trusted-process/tool-description-hints.d.ts +1 -1
  315. package/dist/types/argument-roles.d.ts +1 -1
  316. package/dist/types/argument-roles.js +14 -1
  317. package/dist/types/argument-roles.js.map +1 -1
  318. package/dist/types/audit.d.ts +9 -0
  319. package/dist/{session → types}/errors.d.ts +8 -2
  320. package/dist/{session → types}/errors.js +8 -2
  321. package/dist/types/errors.js.map +1 -0
  322. package/dist/types/reserved-servers.d.ts +11 -0
  323. package/dist/types/reserved-servers.js +12 -0
  324. package/dist/types/reserved-servers.js.map +1 -0
  325. package/dist/types/server-listing.d.ts +14 -0
  326. package/dist/types/server-listing.js +2 -0
  327. package/dist/types/server-listing.js.map +1 -0
  328. package/dist/types/slug.d.ts +2 -0
  329. package/dist/types/slug.js +2 -0
  330. package/dist/types/slug.js.map +1 -1
  331. package/dist/types/url-normalize.d.ts +16 -0
  332. package/dist/types/url-normalize.js +33 -0
  333. package/dist/types/url-normalize.js.map +1 -0
  334. package/dist/utils/error-message.d.ts +8 -0
  335. package/dist/utils/error-message.js +11 -0
  336. package/dist/utils/error-message.js.map +1 -0
  337. package/dist/utils/exec-error.d.ts +19 -0
  338. package/dist/utils/exec-error.js +16 -0
  339. package/dist/utils/exec-error.js.map +1 -0
  340. package/dist/utils/is-plain-object.d.ts +7 -0
  341. package/dist/utils/is-plain-object.js +12 -0
  342. package/dist/utils/is-plain-object.js.map +1 -0
  343. package/dist/utils/preflight-checks.d.ts +16 -0
  344. package/dist/utils/preflight-checks.js +178 -0
  345. package/dist/utils/preflight-checks.js.map +1 -0
  346. package/dist/web-ui/__tests__/json-rpc-dispatch.test.d.ts +7 -0
  347. package/dist/web-ui/__tests__/json-rpc-dispatch.test.js +725 -0
  348. package/dist/web-ui/__tests__/json-rpc-dispatch.test.js.map +1 -0
  349. package/dist/web-ui/dispatch/escalation-dispatch.d.ts +7 -0
  350. package/dist/web-ui/dispatch/escalation-dispatch.js +52 -0
  351. package/dist/web-ui/dispatch/escalation-dispatch.js.map +1 -0
  352. package/dist/web-ui/dispatch/job-dispatch.d.ts +8 -0
  353. package/dist/web-ui/dispatch/job-dispatch.js +83 -0
  354. package/dist/web-ui/dispatch/job-dispatch.js.map +1 -0
  355. package/dist/web-ui/dispatch/persona-dispatch.d.ts +6 -0
  356. package/dist/web-ui/dispatch/persona-dispatch.js +116 -0
  357. package/dist/web-ui/dispatch/persona-dispatch.js.map +1 -0
  358. package/dist/web-ui/dispatch/session-dispatch.d.ts +9 -0
  359. package/dist/web-ui/dispatch/session-dispatch.js +201 -0
  360. package/dist/web-ui/dispatch/session-dispatch.js.map +1 -0
  361. package/dist/web-ui/dispatch/token-stream-dispatch.d.ts +15 -0
  362. package/dist/web-ui/dispatch/token-stream-dispatch.js +55 -0
  363. package/dist/web-ui/dispatch/token-stream-dispatch.js.map +1 -0
  364. package/dist/web-ui/dispatch/types.d.ts +31 -0
  365. package/dist/web-ui/dispatch/types.js +68 -0
  366. package/dist/web-ui/dispatch/types.js.map +1 -0
  367. package/dist/web-ui/dispatch/workflow-dispatch.d.ts +103 -0
  368. package/dist/web-ui/dispatch/workflow-dispatch.js +925 -0
  369. package/dist/web-ui/dispatch/workflow-dispatch.js.map +1 -0
  370. package/dist/web-ui/json-rpc-dispatch.d.ts +12 -0
  371. package/dist/web-ui/json-rpc-dispatch.js +34 -0
  372. package/dist/web-ui/json-rpc-dispatch.js.map +1 -0
  373. package/dist/web-ui/state-graph.d.ts +13 -0
  374. package/dist/web-ui/state-graph.js +82 -0
  375. package/dist/web-ui/state-graph.js.map +1 -0
  376. package/dist/web-ui/token-stream-bridge.d.ts +76 -0
  377. package/dist/web-ui/token-stream-bridge.js +265 -0
  378. package/dist/web-ui/token-stream-bridge.js.map +1 -0
  379. package/dist/web-ui/web-event-bus.d.ts +152 -0
  380. package/dist/web-ui/web-event-bus.js +19 -0
  381. package/dist/web-ui/web-event-bus.js.map +1 -0
  382. package/dist/web-ui/web-session-transport.d.ts +31 -0
  383. package/dist/web-ui/web-session-transport.js +109 -0
  384. package/dist/web-ui/web-session-transport.js.map +1 -0
  385. package/dist/web-ui/web-ui-server.d.ts +76 -0
  386. package/dist/web-ui/web-ui-server.js +461 -0
  387. package/dist/web-ui/web-ui-server.js.map +1 -0
  388. package/dist/web-ui/web-ui-types.d.ts +290 -0
  389. package/dist/web-ui/web-ui-types.js +32 -0
  390. package/dist/web-ui/web-ui-types.js.map +1 -0
  391. package/dist/web-ui/ws-utils.d.ts +5 -0
  392. package/dist/web-ui/ws-utils.js +12 -0
  393. package/dist/web-ui/ws-utils.js.map +1 -0
  394. package/dist/web-ui-static/assets/index-BFO5z1js.js +76 -0
  395. package/dist/web-ui-static/assets/index-CCUwrkIL.css +1 -0
  396. package/dist/web-ui-static/assets/orbitron-latin-700-normal-4jsRXGGJ.woff2 +0 -0
  397. package/dist/web-ui-static/assets/orbitron-latin-700-normal-DmYOh-W9.woff +0 -0
  398. package/dist/web-ui-static/index.html +14 -0
  399. package/dist/workflow/artifacts.d.ts +59 -0
  400. package/dist/workflow/artifacts.js +188 -0
  401. package/dist/workflow/artifacts.js.map +1 -0
  402. package/dist/workflow/checkpoint-selection.d.ts +34 -0
  403. package/dist/workflow/checkpoint-selection.js +48 -0
  404. package/dist/workflow/checkpoint-selection.js.map +1 -0
  405. package/dist/workflow/checkpoint.d.ts +35 -0
  406. package/dist/workflow/checkpoint.js +84 -0
  407. package/dist/workflow/checkpoint.js.map +1 -0
  408. package/dist/workflow/cli-support.d.ts +92 -0
  409. package/dist/workflow/cli-support.js +423 -0
  410. package/dist/workflow/cli-support.js.map +1 -0
  411. package/dist/workflow/definition-loader.d.ts +32 -0
  412. package/dist/workflow/definition-loader.js +56 -0
  413. package/dist/workflow/definition-loader.js.map +1 -0
  414. package/dist/workflow/discovery.d.ts +78 -0
  415. package/dist/workflow/discovery.js +203 -0
  416. package/dist/workflow/discovery.js.map +1 -0
  417. package/dist/workflow/errors.d.ts +66 -0
  418. package/dist/workflow/errors.js +49 -0
  419. package/dist/workflow/errors.js.map +1 -0
  420. package/dist/workflow/guards.d.ts +8 -0
  421. package/dist/workflow/guards.js +38 -0
  422. package/dist/workflow/guards.js.map +1 -0
  423. package/dist/workflow/lint-integration.d.ts +64 -0
  424. package/dist/workflow/lint-integration.js +56 -0
  425. package/dist/workflow/lint-integration.js.map +1 -0
  426. package/dist/workflow/lint.d.ts +66 -0
  427. package/dist/workflow/lint.js +410 -0
  428. package/dist/workflow/lint.js.map +1 -0
  429. package/dist/workflow/machine-builder.d.ts +90 -0
  430. package/dist/workflow/machine-builder.js +485 -0
  431. package/dist/workflow/machine-builder.js.map +1 -0
  432. package/dist/workflow/message-log.d.ts +85 -0
  433. package/dist/workflow/message-log.js +40 -0
  434. package/dist/workflow/message-log.js.map +1 -0
  435. package/dist/workflow/orchestrator.d.ts +450 -0
  436. package/dist/workflow/orchestrator.js +1941 -0
  437. package/dist/workflow/orchestrator.js.map +1 -0
  438. package/dist/workflow/prompt-builder.d.ts +39 -0
  439. package/dist/workflow/prompt-builder.js +242 -0
  440. package/dist/workflow/prompt-builder.js.map +1 -0
  441. package/dist/workflow/run-state-command.d.ts +9 -0
  442. package/dist/workflow/run-state-command.js +414 -0
  443. package/dist/workflow/run-state-command.js.map +1 -0
  444. package/dist/workflow/run-state-debug-capture.d.ts +40 -0
  445. package/dist/workflow/run-state-debug-capture.js +101 -0
  446. package/dist/workflow/run-state-debug-capture.js.map +1 -0
  447. package/dist/workflow/status-parser.d.ts +68 -0
  448. package/dist/workflow/status-parser.js +259 -0
  449. package/dist/workflow/status-parser.js.map +1 -0
  450. package/dist/workflow/types.d.ts +498 -0
  451. package/dist/workflow/types.js +83 -0
  452. package/dist/workflow/types.js.map +1 -0
  453. package/dist/workflow/validate.d.ts +58 -0
  454. package/dist/workflow/validate.js +499 -0
  455. package/dist/workflow/validate.js.map +1 -0
  456. package/dist/workflow/workflow-command.d.ts +26 -0
  457. package/dist/workflow/workflow-command.js +648 -0
  458. package/dist/workflow/workflow-command.js.map +1 -0
  459. package/dist/workflow/workflow-discovery.d.ts +25 -0
  460. package/dist/workflow/workflow-discovery.js +100 -0
  461. package/dist/workflow/workflow-discovery.js.map +1 -0
  462. package/dist/workflow/workflow-manager.d.ts +122 -0
  463. package/dist/workflow/workflow-manager.js +308 -0
  464. package/dist/workflow/workflow-manager.js.map +1 -0
  465. package/dist/workflow/workflows/design-and-code/workflow.yaml +169 -0
  466. package/dist/workflow/workflows/test-email-summary/skills/email-formatting/SKILL.md +55 -0
  467. package/dist/workflow/workflows/test-email-summary/skills/gmail-query-syntax/SKILL.md +63 -0
  468. package/dist/workflow/workflows/test-email-summary/skills/json-schema-emails/SKILL.md +41 -0
  469. package/dist/workflow/workflows/test-email-summary/skills/json-schema-emails/schema.json +34 -0
  470. package/dist/workflow/workflows/test-email-summary/skills/summary-style-guide/SKILL.md +51 -0
  471. package/dist/workflow/workflows/test-email-summary/workflow.yaml +89 -0
  472. package/dist/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +201 -0
  473. package/dist/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +166 -0
  474. package/dist/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +185 -0
  475. package/dist/workflow/workflows/vuln-discovery/workflow.yaml +920 -0
  476. package/dist/workflow/worktree.d.ts +43 -0
  477. package/dist/workflow/worktree.js +106 -0
  478. package/dist/workflow/worktree.js.map +1 -0
  479. package/docker/Dockerfile.base +12 -1
  480. package/docker/Dockerfile.base.arm64 +17 -1
  481. package/docker/entrypoint-claude-code.sh +46 -0
  482. package/docker/entrypoint-goose.sh +25 -0
  483. package/package.json +22 -8
  484. package/packages/web-ui/README.md +113 -0
  485. package/packages/web-ui/docs/workflow-state-machine.png +0 -0
  486. package/src/config/generated/compiled-policy.json +528 -161
  487. package/src/config/generated/test-scenarios.json +4810 -170
  488. package/src/config/generated/tool-annotations.json +34 -47
  489. package/src/config/mcp-servers.json +2 -2
  490. package/src/workflow/workflows/design-and-code/workflow.yaml +169 -0
  491. package/src/workflow/workflows/test-email-summary/skills/email-formatting/SKILL.md +55 -0
  492. package/src/workflow/workflows/test-email-summary/skills/gmail-query-syntax/SKILL.md +63 -0
  493. package/src/workflow/workflows/test-email-summary/skills/json-schema-emails/SKILL.md +41 -0
  494. package/src/workflow/workflows/test-email-summary/skills/json-schema-emails/schema.json +34 -0
  495. package/src/workflow/workflows/test-email-summary/skills/summary-style-guide/SKILL.md +51 -0
  496. package/src/workflow/workflows/test-email-summary/workflow.yaml +89 -0
  497. package/src/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +201 -0
  498. package/src/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +166 -0
  499. package/src/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +185 -0
  500. package/src/workflow/workflows/vuln-discovery/workflow.yaml +920 -0
  501. package/dist/pipeline/llm-logger.js.map +0 -1
  502. package/dist/session/errors.js.map +0 -1
@@ -11,7 +11,7 @@
11
11
  * across batches.
12
12
  */
13
13
  import type { LanguageModel, SystemModelMessage } from 'ai';
14
- import type { ConditionalRoles, DynamicListsFile, StoredToolAnnotation, ToolAnnotation, TestScenario } from './types.js';
14
+ import type { ConditionalRoles, DynamicListsFile, StoredToolAnnotation, TestScenario } from './types.js';
15
15
  export declare const SCENARIO_BATCH_SIZE = 25;
16
16
  /**
17
17
  * Formats a ## Dynamic List Values section for inclusion in prompts.
@@ -29,18 +29,14 @@ export declare function formatConditionalRoles(argName: string, spec: Conditiona
29
29
  * Builds the stable system prompt portion for the scenario generator.
30
30
  * Contains: role preamble, constitution, annotations, system config, and instructions.
31
31
  * This is the cacheable part.
32
- *
33
- * @param storedAnnotations - Optional raw annotations with conditional role specs.
34
- * When provided, the prompt includes discriminator argument names and valid values
35
- * so the LLM generates scenarios with correct argument names for multi-mode tools.
36
32
  */
37
- export declare function buildGeneratorSystemPrompt(constitutionText: string, annotations: ToolAnnotation[], sandboxDirectory: string, permittedDirectories?: string[], dynamicLists?: DynamicListsFile, storedAnnotations?: StoredToolAnnotation[]): string;
33
+ export declare function buildGeneratorSystemPrompt(constitutionText: string, annotations: StoredToolAnnotation[], sandboxDirectory: string, permittedDirectories?: string[], dynamicLists?: DynamicListsFile): string;
38
34
  /**
39
35
  * Generates test scenarios by batching annotations into groups of
40
36
  * SCENARIO_BATCH_SIZE, running generateObjectWithRepair per batch with
41
37
  * scoped system prompts and Zod schemas, then deduplicating results.
42
38
  */
43
- export declare function generateScenarios(constitutionText: string, annotations: ToolAnnotation[], handwrittenScenarios: TestScenario[], sandboxDirectory: string, llm: LanguageModel, permittedDirectories?: string[], onProgress?: (message: string) => void, dynamicLists?: DynamicListsFile, wrapSystemPrompt?: (prompt: string) => string | SystemModelMessage, storedAnnotations?: StoredToolAnnotation[]): Promise<TestScenario[]>;
39
+ export declare function generateScenarios(constitutionText: string, annotations: StoredToolAnnotation[], handwrittenScenarios: TestScenario[], sandboxDirectory: string, llm: LanguageModel, permittedDirectories?: string[], onProgress?: (message: string) => void, dynamicLists?: DynamicListsFile, wrapSystemPrompt?: (prompt: string) => string | SystemModelMessage): Promise<TestScenario[]>;
44
40
  /**
45
41
  * Generates replacement scenarios for structurally discarded ones.
46
42
  * Uses a single-shot generateObjectWithRepair call (no batching needed
@@ -49,4 +45,4 @@ export declare function generateScenarios(constitutionText: string, annotations:
49
45
  export declare function repairScenarios(discardedScenarios: {
50
46
  scenario: TestScenario;
51
47
  feedback: string;
52
- }[], constitutionText: string, annotations: ToolAnnotation[], sandboxDirectory: string, llm: LanguageModel, permittedDirectories?: string[], dynamicLists?: DynamicListsFile, onProgress?: (message: string) => void, storedAnnotations?: StoredToolAnnotation[]): Promise<TestScenario[]>;
48
+ }[], constitutionText: string, annotations: StoredToolAnnotation[], sandboxDirectory: string, llm: LanguageModel, permittedDirectories?: string[], dynamicLists?: DynamicListsFile, onProgress?: (message: string) => void): Promise<TestScenario[]>;
@@ -85,17 +85,15 @@ export function formatConditionalRoles(argName, spec) {
85
85
  }
86
86
  /**
87
87
  * Formats a tool annotation summary line for the scenario generator prompt.
88
- * When a stored annotation is available, includes conditional role details
89
- * so the LLM knows the exact discriminator argument names and valid values.
88
+ * Conditional role specs are surfaced with their discriminator argument names
89
+ * and valid values; static role arrays render as flat lists.
90
90
  */
91
- function formatAnnotationForPrompt(annotation, storedAnnotation) {
92
- const args = storedAnnotation?.args ?? annotation.args;
93
- const argsDesc = Object.entries(args)
91
+ function formatAnnotationForPrompt(annotation) {
92
+ const argsDesc = Object.entries(annotation.args)
94
93
  .map(([name, spec]) => {
95
94
  if (isConditionalRoles(spec)) {
96
95
  return formatConditionalRoles(name, spec);
97
96
  }
98
- // After isConditionalRoles check, spec is always ArgumentRole[]
99
97
  return `${name}: [${spec.join(', ')}]`;
100
98
  })
101
99
  .join(', ');
@@ -105,25 +103,9 @@ function formatAnnotationForPrompt(annotation, storedAnnotation) {
105
103
  * Builds the stable system prompt portion for the scenario generator.
106
104
  * Contains: role preamble, constitution, annotations, system config, and instructions.
107
105
  * This is the cacheable part.
108
- *
109
- * @param storedAnnotations - Optional raw annotations with conditional role specs.
110
- * When provided, the prompt includes discriminator argument names and valid values
111
- * so the LLM generates scenarios with correct argument names for multi-mode tools.
112
106
  */
113
- export function buildGeneratorSystemPrompt(constitutionText, annotations, sandboxDirectory, permittedDirectories, dynamicLists, storedAnnotations) {
114
- // Build a lookup from stored annotations for conditional role detail
115
- const storedByKey = new Map();
116
- if (storedAnnotations) {
117
- for (const sa of storedAnnotations) {
118
- storedByKey.set(`${sa.serverName}/${sa.toolName}`, sa);
119
- }
120
- }
121
- const annotationsSummary = annotations
122
- .map((a) => {
123
- const stored = storedByKey.get(`${a.serverName}/${a.toolName}`);
124
- return formatAnnotationForPrompt(a, stored);
125
- })
126
- .join('\n');
107
+ export function buildGeneratorSystemPrompt(constitutionText, annotations, sandboxDirectory, permittedDirectories, dynamicLists) {
108
+ const annotationsSummary = annotations.map(formatAnnotationForPrompt).join('\n');
127
109
  return `You are generating test scenarios for a security policy engine. Each scenario is a concrete tool call with an expected policy decision.
128
110
 
129
111
  ## Constitution
@@ -134,7 +116,7 @@ ${constitutionText}
134
116
 
135
117
  ${annotationsSummary}
136
118
 
137
- ${storedAnnotations ? `## Valid Tool Arguments (from MCP input schemas)\n\n${formatToolArgNames(storedAnnotations)}\n\nCRITICAL: Only use argument names listed above for each tool. Using unlisted argument names will cause validation failure.\n` : ''}
119
+ ${annotations.length > 0 ? `## Valid Tool Arguments (from MCP input schemas)\n\n${formatToolArgNames(annotations)}\n\nCRITICAL: Only use argument names listed above for each tool. Using unlisted argument names will cause validation failure.\n` : ''}
138
120
  ## System Configuration
139
121
 
140
122
  - Sandbox directory: ${sandboxDirectory}
@@ -222,18 +204,11 @@ Generate test scenarios following the instructions above.`;
222
204
  * SCENARIO_BATCH_SIZE, running generateObjectWithRepair per batch with
223
205
  * scoped system prompts and Zod schemas, then deduplicating results.
224
206
  */
225
- export async function generateScenarios(constitutionText, annotations, handwrittenScenarios, sandboxDirectory, llm, permittedDirectories, onProgress, dynamicLists, wrapSystemPrompt, storedAnnotations) {
207
+ export async function generateScenarios(constitutionText, annotations, handwrittenScenarios, sandboxDirectory, llm, permittedDirectories, onProgress, dynamicLists, wrapSystemPrompt) {
226
208
  if (annotations.length === 0)
227
209
  return [...handwrittenScenarios];
228
210
  const batches = chunk(annotations, SCENARIO_BATCH_SIZE);
229
211
  const allGenerated = [];
230
- // Build stored annotation lookup for batching
231
- const storedByKey = new Map();
232
- if (storedAnnotations) {
233
- for (const sa of storedAnnotations) {
234
- storedByKey.set(`${sa.serverName}/${sa.toolName}`, sa);
235
- }
236
- }
237
212
  for (let i = 0; i < batches.length; i++) {
238
213
  const batch = batches[i];
239
214
  if (batches.length > 1) {
@@ -242,17 +217,11 @@ export async function generateScenarios(constitutionText, annotations, handwritt
242
217
  // Scoped schema: only this batch's server/tool names
243
218
  const serverNames = [...new Set(batch.map((a) => a.serverName))];
244
219
  const toolNames = [...new Set(batch.map((a) => a.toolName))];
245
- // Filter stored annotations to this batch
246
- const batchStored = storedAnnotations
247
- ? batch
248
- .map((a) => storedByKey.get(`${a.serverName}/${a.toolName}`))
249
- .filter((sa) => sa !== undefined)
250
- : undefined;
251
220
  // Build Zod schema with superRefine that validates argument names at parse time
252
- const argsSuperRefine = batchStored ? buildScenarioArgsSuperRefine(buildToolArgNamesMap(batchStored)) : undefined;
221
+ const argsSuperRefine = buildScenarioArgsSuperRefine(buildToolArgNamesMap(batch));
253
222
  const schema = buildGeneratorResponseSchema(serverNames, toolNames, argsSuperRefine);
254
223
  // Per-batch system prompt with only this batch's annotations
255
- const batchPromptText = buildGeneratorSystemPrompt(constitutionText, batch, sandboxDirectory, permittedDirectories, dynamicLists, batchStored);
224
+ const batchPromptText = buildGeneratorSystemPrompt(constitutionText, batch, sandboxDirectory, permittedDirectories, dynamicLists);
256
225
  // Apply cache strategy wrapping if provided
257
226
  const batchSystem = wrapSystemPrompt ? wrapSystemPrompt(batchPromptText) : batchPromptText;
258
227
  // Filter handwritten scenarios to those relevant to this batch (composite key avoids cross-server collisions)
@@ -289,12 +258,10 @@ export async function generateScenarios(constitutionText, annotations, handwritt
289
258
  * Uses a single-shot generateObjectWithRepair call (no batching needed
290
259
  * since the discarded set is typically small).
291
260
  */
292
- export async function repairScenarios(discardedScenarios, constitutionText, annotations, sandboxDirectory, llm, permittedDirectories, dynamicLists, onProgress, storedAnnotations) {
261
+ export async function repairScenarios(discardedScenarios, constitutionText, annotations, sandboxDirectory, llm, permittedDirectories, dynamicLists, onProgress) {
293
262
  const serverNames = [...new Set(annotations.map((a) => a.serverName))];
294
263
  const toolNames = [...new Set(annotations.map((a) => a.toolName))];
295
- const argsSuperRefine = storedAnnotations
296
- ? buildScenarioArgsSuperRefine(buildToolArgNamesMap(storedAnnotations))
297
- : undefined;
264
+ const argsSuperRefine = buildScenarioArgsSuperRefine(buildToolArgNamesMap(annotations));
298
265
  const schema = buildGeneratorResponseSchema(serverNames, toolNames, argsSuperRefine);
299
266
  const discardedList = discardedScenarios
300
267
  .map((b, i) => `${i + 1}. "${b.scenario.description}" (${b.scenario.request.serverName}/${b.scenario.request.toolName}): ${b.feedback}`)
@@ -305,7 +272,7 @@ Generate replacement scenarios that cover similar tools and decision types but w
305
272
  ${discardedList}
306
273
 
307
274
  Generate one replacement scenario per discarded scenario.`;
308
- const system = buildGeneratorSystemPrompt(constitutionText, annotations, sandboxDirectory, permittedDirectories, dynamicLists, storedAnnotations);
275
+ const system = buildGeneratorSystemPrompt(constitutionText, annotations, sandboxDirectory, permittedDirectories, dynamicLists);
309
276
  const { output } = await generateObjectWithRepair({
310
277
  model: llm,
311
278
  schema,
@@ -1 +1 @@
1
- {"version":3,"file":"scenario-generator.js","sourceRoot":"","sources":["../../src/pipeline/scenario-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scenario-generator.js","sourceRoot":"","sources":["../../src/pipeline/scenario-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Haiku-based server pre-filter for policy compilation.
3
+ *
4
+ * Uses a cheap classification model (Haiku) to determine whether each
5
+ * MCP server can be skipped before invoking the expensive compilation
6
+ * model. If the input text (constitution, task description, or persona
7
+ * definition) has no specific guidance for a server, that server is
8
+ * skipped and default-deny handles all its tools.
9
+ */
10
+ import type { LanguageModel } from 'ai';
11
+ import type { ConstitutionKind } from './pipeline-runner.js';
12
+ import type { ToolAnnotation } from './types.js';
13
+ /** Result of the pre-filter for a single server. */
14
+ export interface PrefilterDecision {
15
+ readonly serverName: string;
16
+ readonly skip: boolean;
17
+ readonly reason: string;
18
+ }
19
+ /**
20
+ * Determines whether a server can be skipped during policy compilation.
21
+ *
22
+ * Errors are caught internally and result in skip: false (fail-open).
23
+ */
24
+ export declare function checkServerRelevance(text: string, serverName: string, tools: ReadonlyArray<ToolAnnotation>, model: LanguageModel, kind: ConstitutionKind): Promise<PrefilterDecision>;
25
+ /**
26
+ * Runs the pre-filter for all servers concurrently.
27
+ *
28
+ * Short-circuits when text is empty/whitespace (returns skip: true
29
+ * for all servers without making any LLM calls).
30
+ */
31
+ export declare function prefilterServers(text: string, servers: Array<[string, ReadonlyArray<ToolAnnotation>]>, model: LanguageModel, kind: ConstitutionKind): Promise<PrefilterDecision[]>;
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Haiku-based server pre-filter for policy compilation.
3
+ *
4
+ * Uses a cheap classification model (Haiku) to determine whether each
5
+ * MCP server can be skipped before invoking the expensive compilation
6
+ * model. If the input text (constitution, task description, or persona
7
+ * definition) has no specific guidance for a server, that server is
8
+ * skipped and default-deny handles all its tools.
9
+ */
10
+ import pLimit from 'p-limit';
11
+ import { z } from 'zod';
12
+ import { generateObjectWithRepair } from './generate-with-repair.js';
13
+ /** Cap concurrent pre-filter LLM calls to avoid rate-limit bursts. */
14
+ const PREFILTER_CONCURRENCY = 5;
15
+ // ---------------------------------------------------------------------------
16
+ // Schema
17
+ // ---------------------------------------------------------------------------
18
+ const serverRelevanceSchema = z.object({
19
+ skip: z
20
+ .boolean()
21
+ .describe("true if the input text contains no specific guidance that would require or allow any of this server's tools. When in doubt, set to false."),
22
+ reason: z.string().describe('Brief explanation of why the server is or is not relevant to the input text'),
23
+ });
24
+ // ---------------------------------------------------------------------------
25
+ // Prompt
26
+ // ---------------------------------------------------------------------------
27
+ function buildPrefilterPrompt(serverName, tools, kind) {
28
+ const toolList = tools.map((t) => `- ${t.toolName}: ${t.comment}`).join('\n');
29
+ const taskFraming = kind === 'constitution'
30
+ ? `Based ONLY on the user guidance below, determine whether ANY of this server's tools would be specifically allowed or granted special permissions.
31
+
32
+ The user guidance is relevant to this server if it:
33
+ - Mentions the server by name
34
+ - Mentions capabilities that map to this server's tools (e.g., "read files" maps to a filesystem server, "search GitHub issues" maps to a GitHub server)
35
+ - Grants permissions for operations this server provides
36
+
37
+ The user guidance is NOT relevant if it:
38
+ - Contains no mention of this server's domain of functionality
39
+ - Only contains general principles that don't translate to specific allow rules for this server's tools
40
+
41
+ If the user guidance contains no specific permissions for this server, the server can be safely skipped — a default-deny policy will handle all its tools.`
42
+ : `Based ONLY on the task description below, determine whether accomplishing this task would require ANY of this server's tools.
43
+
44
+ The task is relevant to this server if it:
45
+ - Describes work that directly requires this server's capabilities (e.g., "analyze CSV files" requires filesystem tools, "check open PRs" requires GitHub tools)
46
+ - References data, resources, or operations that this server provides access to
47
+
48
+ The task is NOT relevant to this server if it:
49
+ - Describes work entirely outside this server's domain of functionality
50
+ - Makes no reference to resources or operations this server provides
51
+
52
+ If the task does not require any of this server's tools, the server can be safely skipped — a default-deny policy will handle all its tools.`;
53
+ return `You are evaluating whether an input text is relevant to a specific MCP server's tools.
54
+
55
+ ## Server: "${serverName}"
56
+
57
+ ### Available tools:
58
+ ${toolList}
59
+
60
+ ## Task
61
+
62
+ ${taskFraming}
63
+
64
+ **Important: When in doubt, set skip to false.** It is better to compile rules unnecessarily than to skip a server that needs them.
65
+
66
+ Respond with a JSON object: { "skip": boolean, "reason": string }`;
67
+ }
68
+ // ---------------------------------------------------------------------------
69
+ // Core functions
70
+ // ---------------------------------------------------------------------------
71
+ /**
72
+ * Determines whether a server can be skipped during policy compilation.
73
+ *
74
+ * Errors are caught internally and result in skip: false (fail-open).
75
+ */
76
+ export async function checkServerRelevance(text, serverName, tools, model, kind) {
77
+ try {
78
+ const { output } = await generateObjectWithRepair({
79
+ model,
80
+ schema: serverRelevanceSchema,
81
+ system: buildPrefilterPrompt(serverName, tools, kind),
82
+ prompt: text || '(no guidance provided)',
83
+ maxRepairAttempts: 1,
84
+ maxOutputTokens: 256,
85
+ });
86
+ return { serverName, skip: output.skip, reason: output.reason };
87
+ }
88
+ catch (err) {
89
+ const message = err instanceof Error ? err.message : String(err);
90
+ return {
91
+ serverName,
92
+ skip: false,
93
+ reason: `Pre-filter error (proceeding with compilation): ${message}`,
94
+ };
95
+ }
96
+ }
97
+ /**
98
+ * Runs the pre-filter for all servers concurrently.
99
+ *
100
+ * Short-circuits when text is empty/whitespace (returns skip: true
101
+ * for all servers without making any LLM calls).
102
+ */
103
+ export async function prefilterServers(text, servers, model, kind) {
104
+ const trimmed = text.trim();
105
+ if (trimmed === '') {
106
+ return servers.map(([serverName]) => ({
107
+ serverName,
108
+ skip: true,
109
+ reason: 'No input text provided — all servers skipped by default',
110
+ }));
111
+ }
112
+ const limit = pLimit(PREFILTER_CONCURRENCY);
113
+ return Promise.all(servers.map(([serverName, tools]) => limit(() => checkServerRelevance(trimmed, serverName, tools, model, kind))));
114
+ }
115
+ //# sourceMappingURL=server-prefilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-prefilter.js","sourceRoot":"","sources":["../../src/pipeline/server-prefilter.ts"],"names":[],"mappings":"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"}
@@ -186,6 +186,11 @@ export interface CompiledPolicyFile {
186
186
  rules: CompiledRule[];
187
187
  /** List definitions emitted by the compiler. Empty if no dynamic lists needed. */
188
188
  listDefinitions?: ListDefinition[];
189
+ /** Servers skipped by the pre-filter (all calls denied by default). */
190
+ skippedServers?: Array<{
191
+ readonly serverName: string;
192
+ readonly reason: string;
193
+ }>;
189
194
  }
190
195
  /**
191
196
  * Per-server compiled policy artifact.
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import '@utcp/mcp';
10
10
  import type { IronCurtainConfig } from '../config/types.js';
11
+ import { ToolCallCoordinator } from '../trusted-process/tool-call-coordinator.js';
11
12
  /**
12
13
  * Mirrors UTCP Code Mode's sanitizeIdentifier() behavior — the property name
13
14
  * that UTCP actually creates on `global.tools` in the V8 isolate.
@@ -68,6 +69,19 @@ export declare class Sandbox {
68
69
  private toolCatalog;
69
70
  private preamble;
70
71
  private helpData;
72
+ private coordinator;
73
+ /**
74
+ * Per-sandbox UTCP manual name (e.g., `tools_abc123_...`). Unique
75
+ * per instance so concurrent sandboxes don't overwrite each other's
76
+ * coordinator binding. The same name is used as the V8 global UTCP
77
+ * creates in the isolate; snippets reference it directly.
78
+ */
79
+ private readonly manualName;
80
+ /**
81
+ * Exposes the policy coordinator once the sandbox is initialized.
82
+ * Returns `null` before `initialize()` completes.
83
+ */
84
+ getCoordinator(): ToolCallCoordinator | null;
71
85
  initialize(config: IronCurtainConfig): Promise<void>;
72
86
  /**
73
87
  * Builds the tool catalog, the __getToolInterface patch, namespace alias