@provos/ironcurtain 0.10.0 → 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 (467) hide show
  1. package/README.md +60 -8
  2. package/dist/auth/oauth-provider.js +1 -4
  3. package/dist/auth/oauth-provider.js.map +1 -1
  4. package/dist/cli.js +38 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config/config-command.js +162 -7
  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/paths.d.ts +175 -0
  18. package/dist/config/paths.js +308 -14
  19. package/dist/config/paths.js.map +1 -1
  20. package/dist/config/types.d.ts +7 -1
  21. package/dist/config/user-config.d.ts +53 -5
  22. package/dist/config/user-config.js +96 -30
  23. package/dist/config/user-config.js.map +1 -1
  24. package/dist/config/validate-policy-dir.d.ts +10 -0
  25. package/dist/config/validate-policy-dir.js +59 -0
  26. package/dist/config/validate-policy-dir.js.map +1 -0
  27. package/dist/cron/job-commands.js +22 -2
  28. package/dist/cron/job-commands.js.map +1 -1
  29. package/dist/cron/types.d.ts +16 -2
  30. package/dist/cron/types.js +1 -3
  31. package/dist/cron/types.js.map +1 -1
  32. package/dist/daemon/daemon-command.js +16 -2
  33. package/dist/daemon/daemon-command.js.map +1 -1
  34. package/dist/daemon/ironcurtain-daemon.d.ts +44 -1
  35. package/dist/daemon/ironcurtain-daemon.js +210 -8
  36. package/dist/daemon/ironcurtain-daemon.js.map +1 -1
  37. package/dist/docker/adapters/claude-code.js +194 -20
  38. package/dist/docker/adapters/claude-code.js.map +1 -1
  39. package/dist/docker/adapters/goose.d.ts +12 -11
  40. package/dist/docker/adapters/goose.js +80 -27
  41. package/dist/docker/adapters/goose.js.map +1 -1
  42. package/dist/docker/agent-adapter.d.ts +178 -4
  43. package/dist/docker/agent-adapter.js +14 -0
  44. package/dist/docker/agent-adapter.js.map +1 -1
  45. package/dist/docker/code-mode-proxy.d.ts +27 -0
  46. package/dist/docker/code-mode-proxy.js +3 -0
  47. package/dist/docker/code-mode-proxy.js.map +1 -1
  48. package/dist/docker/docker-agent-session.d.ts +113 -62
  49. package/dist/docker/docker-agent-session.js +242 -294
  50. package/dist/docker/docker-agent-session.js.map +1 -1
  51. package/dist/docker/docker-infrastructure.d.ts +246 -21
  52. package/dist/docker/docker-infrastructure.js +520 -29
  53. package/dist/docker/docker-infrastructure.js.map +1 -1
  54. package/dist/docker/docker-manager.d.ts +36 -1
  55. package/dist/docker/docker-manager.js +135 -30
  56. package/dist/docker/docker-manager.js.map +1 -1
  57. package/dist/docker/docker-progress-sink.d.ts +43 -0
  58. package/dist/docker/docker-progress-sink.js +299 -0
  59. package/dist/docker/docker-progress-sink.js.map +1 -0
  60. package/dist/docker/mitm-proxy.d.ts +84 -1
  61. package/dist/docker/mitm-proxy.js +380 -18
  62. package/dist/docker/mitm-proxy.js.map +1 -1
  63. package/dist/docker/oauth-credentials.d.ts +46 -3
  64. package/dist/docker/oauth-credentials.js +56 -14
  65. package/dist/docker/oauth-credentials.js.map +1 -1
  66. package/dist/docker/oauth-token-manager.js +2 -2
  67. package/dist/docker/oauth-token-manager.js.map +1 -1
  68. package/dist/docker/orientation.d.ts +1 -1
  69. package/dist/docker/provider-config.d.ts +49 -2
  70. package/dist/docker/provider-config.js +202 -28
  71. package/dist/docker/provider-config.js.map +1 -1
  72. package/dist/docker/proxy-tools.d.ts +0 -2
  73. package/dist/docker/proxy-tools.js +2 -7
  74. package/dist/docker/proxy-tools.js.map +1 -1
  75. package/dist/docker/pty-session.d.ts +49 -1
  76. package/dist/docker/pty-session.js +199 -69
  77. package/dist/docker/pty-session.js.map +1 -1
  78. package/dist/docker/pty-types.d.ts +0 -2
  79. package/dist/docker/pty-types.js +0 -2
  80. package/dist/docker/pty-types.js.map +1 -1
  81. package/dist/docker/resource-limits.d.ts +125 -0
  82. package/dist/docker/resource-limits.js +200 -0
  83. package/dist/docker/resource-limits.js.map +1 -0
  84. package/dist/docker/spawn-with-idle-timeout.d.ts +39 -0
  85. package/dist/docker/spawn-with-idle-timeout.js +152 -0
  86. package/dist/docker/spawn-with-idle-timeout.js.map +1 -0
  87. package/dist/docker/sse-extractor.d.ts +51 -0
  88. package/dist/docker/sse-extractor.js +303 -0
  89. package/dist/docker/sse-extractor.js.map +1 -0
  90. package/dist/docker/token-stream-bus.d.ts +83 -0
  91. package/dist/docker/token-stream-bus.js +98 -0
  92. package/dist/docker/token-stream-bus.js.map +1 -0
  93. package/dist/docker/token-stream-types.d.ts +71 -0
  94. package/dist/docker/token-stream-types.js +8 -0
  95. package/dist/docker/token-stream-types.js.map +1 -0
  96. package/dist/docker/types.d.ts +53 -6
  97. package/dist/doctor/checks.d.ts +138 -0
  98. package/dist/doctor/checks.js +511 -0
  99. package/dist/doctor/checks.js.map +1 -0
  100. package/dist/doctor/doctor-command.d.ts +29 -0
  101. package/dist/doctor/doctor-command.js +160 -0
  102. package/dist/doctor/doctor-command.js.map +1 -0
  103. package/dist/doctor/mcp-liveness.d.ts +28 -0
  104. package/dist/doctor/mcp-liveness.js +84 -0
  105. package/dist/doctor/mcp-liveness.js.map +1 -0
  106. package/dist/doctor/oauth-checks.d.ts +23 -0
  107. package/dist/doctor/oauth-checks.js +157 -0
  108. package/dist/doctor/oauth-checks.js.map +1 -0
  109. package/dist/doctor/output.d.ts +26 -0
  110. package/dist/doctor/output.js +82 -0
  111. package/dist/doctor/output.js.map +1 -0
  112. package/dist/escalation/listener-command.js +0 -3
  113. package/dist/escalation/listener-command.js.map +1 -1
  114. package/dist/event-bus/typed-event-bus.d.ts +26 -0
  115. package/dist/event-bus/typed-event-bus.js +35 -0
  116. package/dist/event-bus/typed-event-bus.js.map +1 -0
  117. package/dist/index.js +24 -9
  118. package/dist/index.js.map +1 -1
  119. package/dist/logger.js +31 -2
  120. package/dist/logger.js.map +1 -1
  121. package/dist/memory/auto-save.d.ts +18 -4
  122. package/dist/memory/auto-save.js +46 -6
  123. package/dist/memory/auto-save.js.map +1 -1
  124. package/dist/memory/memory-policy.d.ts +41 -0
  125. package/dist/memory/memory-policy.js +36 -0
  126. package/dist/memory/memory-policy.js.map +1 -0
  127. package/dist/mux/mux-command.d.ts +10 -1
  128. package/dist/mux/mux-command.js +56 -35
  129. package/dist/mux/mux-command.js.map +1 -1
  130. package/dist/mux/mux-renderer.js +2 -12
  131. package/dist/mux/mux-renderer.js.map +1 -1
  132. package/dist/mux/session-scanner.js +1 -2
  133. package/dist/mux/session-scanner.js.map +1 -1
  134. package/dist/{pipeline → observability}/llm-logger.d.ts +8 -3
  135. package/dist/{pipeline → observability}/llm-logger.js +8 -3
  136. package/dist/observability/llm-logger.js.map +1 -0
  137. package/dist/observe/observe-command.d.ts +12 -0
  138. package/dist/observe/observe-command.js +298 -0
  139. package/dist/observe/observe-command.js.map +1 -0
  140. package/dist/observe/observe-renderer.d.ts +24 -0
  141. package/dist/observe/observe-renderer.js +87 -0
  142. package/dist/observe/observe-renderer.js.map +1 -0
  143. package/dist/observe/observe-tui-rain.d.ts +42 -0
  144. package/dist/observe/observe-tui-rain.js +531 -0
  145. package/dist/observe/observe-tui-rain.js.map +1 -0
  146. package/dist/observe/observe-tui-text-panel.d.ts +46 -0
  147. package/dist/observe/observe-tui-text-panel.js +525 -0
  148. package/dist/observe/observe-tui-text-panel.js.map +1 -0
  149. package/dist/observe/observe-tui-types.d.ts +270 -0
  150. package/dist/observe/observe-tui-types.js +200 -0
  151. package/dist/observe/observe-tui-types.js.map +1 -0
  152. package/dist/observe/observe-tui-word-scorer.d.ts +143 -0
  153. package/dist/observe/observe-tui-word-scorer.js +572 -0
  154. package/dist/observe/observe-tui-word-scorer.js.map +1 -0
  155. package/dist/observe/observe-tui.d.ts +59 -0
  156. package/dist/observe/observe-tui.js +592 -0
  157. package/dist/observe/observe-tui.js.map +1 -0
  158. package/dist/persona/memory-gate.d.ts +19 -0
  159. package/dist/persona/memory-gate.js +33 -0
  160. package/dist/persona/memory-gate.js.map +1 -0
  161. package/dist/persona/persona-command.js +41 -6
  162. package/dist/persona/persona-command.js.map +1 -1
  163. package/dist/persona/resolve.d.ts +22 -0
  164. package/dist/persona/resolve.js +45 -2
  165. package/dist/persona/resolve.js.map +1 -1
  166. package/dist/persona/types.d.ts +16 -0
  167. package/dist/pipeline/constitution-compiler.d.ts +25 -14
  168. package/dist/pipeline/constitution-compiler.js +107 -38
  169. package/dist/pipeline/constitution-compiler.js.map +1 -1
  170. package/dist/pipeline/dynamic-list-types.d.ts +3 -6
  171. package/dist/pipeline/dynamic-list-types.js +3 -16
  172. package/dist/pipeline/dynamic-list-types.js.map +1 -1
  173. package/dist/pipeline/pipeline-runner.js +89 -50
  174. package/dist/pipeline/pipeline-runner.js.map +1 -1
  175. package/dist/pipeline/pipeline-shared.d.ts +1 -1
  176. package/dist/pipeline/pipeline-shared.js +3 -11
  177. package/dist/pipeline/pipeline-shared.js.map +1 -1
  178. package/dist/pipeline/policy-verifier.js +16 -3
  179. package/dist/pipeline/policy-verifier.js.map +1 -1
  180. package/dist/pipeline/proxy-mcp-connections.js +17 -2
  181. package/dist/pipeline/proxy-mcp-connections.js.map +1 -1
  182. package/dist/pipeline/scenario-generator.d.ts +4 -8
  183. package/dist/pipeline/scenario-generator.js +13 -46
  184. package/dist/pipeline/scenario-generator.js.map +1 -1
  185. package/dist/sandbox/index.d.ts +14 -0
  186. package/dist/sandbox/index.js +335 -116
  187. package/dist/sandbox/index.js.map +1 -1
  188. package/dist/sandbox/ironcurtain-protocol.d.ts +52 -0
  189. package/dist/sandbox/ironcurtain-protocol.js +185 -0
  190. package/dist/sandbox/ironcurtain-protocol.js.map +1 -0
  191. package/dist/session/agent-session.d.ts +6 -0
  192. package/dist/session/agent-session.js +16 -5
  193. package/dist/session/agent-session.js.map +1 -1
  194. package/dist/session/cli-transport.js +0 -6
  195. package/dist/session/cli-transport.js.map +1 -1
  196. package/dist/session/index.d.ts +35 -14
  197. package/dist/session/index.js +324 -130
  198. package/dist/session/index.js.map +1 -1
  199. package/dist/session/preflight.d.ts +50 -13
  200. package/dist/session/preflight.js +252 -80
  201. package/dist/session/preflight.js.map +1 -1
  202. package/dist/session/prompts.d.ts +2 -5
  203. package/dist/session/prompts.js.map +1 -1
  204. package/dist/session/session-manager.d.ts +61 -6
  205. package/dist/session/session-manager.js +72 -10
  206. package/dist/session/session-manager.js.map +1 -1
  207. package/dist/session/session-metadata.d.ts +21 -5
  208. package/dist/session/session-metadata.js +34 -12
  209. package/dist/session/session-metadata.js.map +1 -1
  210. package/dist/session/types.d.ts +311 -5
  211. package/dist/session/types.js +57 -1
  212. package/dist/session/types.js.map +1 -1
  213. package/dist/signal/setup-signal.js +13 -21
  214. package/dist/signal/setup-signal.js.map +1 -1
  215. package/dist/signal/signal-bot-daemon.d.ts +16 -1
  216. package/dist/signal/signal-bot-daemon.js +39 -27
  217. package/dist/signal/signal-bot-daemon.js.map +1 -1
  218. package/dist/signal/signal-container.js +7 -1
  219. package/dist/signal/signal-container.js.map +1 -1
  220. package/dist/skills/discovery.d.ts +77 -0
  221. package/dist/skills/discovery.js +206 -0
  222. package/dist/skills/discovery.js.map +1 -0
  223. package/dist/skills/index.d.ts +4 -0
  224. package/dist/skills/index.js +3 -0
  225. package/dist/skills/index.js.map +1 -0
  226. package/dist/skills/staging.d.ts +28 -0
  227. package/dist/skills/staging.js +68 -0
  228. package/dist/skills/staging.js.map +1 -0
  229. package/dist/skills/types.d.ts +46 -0
  230. package/dist/skills/types.js +2 -0
  231. package/dist/skills/types.js.map +1 -0
  232. package/dist/trusted-process/approval-whitelist.d.ts +0 -2
  233. package/dist/trusted-process/approval-whitelist.js +17 -17
  234. package/dist/trusted-process/approval-whitelist.js.map +1 -1
  235. package/dist/trusted-process/async-mutex.d.ts +32 -0
  236. package/dist/trusted-process/async-mutex.js +50 -0
  237. package/dist/trusted-process/async-mutex.js.map +1 -0
  238. package/dist/trusted-process/audit-log.d.ts +38 -1
  239. package/dist/trusted-process/audit-log.js +82 -13
  240. package/dist/trusted-process/audit-log.js.map +1 -1
  241. package/dist/trusted-process/call-circuit-breaker.js +2 -1
  242. package/dist/trusted-process/call-circuit-breaker.js.map +1 -1
  243. package/dist/trusted-process/control-server.d.ts +101 -0
  244. package/dist/trusted-process/control-server.js +282 -0
  245. package/dist/trusted-process/control-server.js.map +1 -0
  246. package/dist/trusted-process/domain-utils.d.ts +6 -6
  247. package/dist/trusted-process/domain-utils.js +7 -23
  248. package/dist/trusted-process/domain-utils.js.map +1 -1
  249. package/dist/trusted-process/error-prefixes.d.ts +16 -0
  250. package/dist/trusted-process/error-prefixes.js +17 -0
  251. package/dist/trusted-process/error-prefixes.js.map +1 -0
  252. package/dist/trusted-process/index.d.ts +40 -23
  253. package/dist/trusted-process/index.js +131 -225
  254. package/dist/trusted-process/index.js.map +1 -1
  255. package/dist/trusted-process/list-matcher.d.ts +17 -0
  256. package/dist/trusted-process/list-matcher.js +31 -0
  257. package/dist/trusted-process/list-matcher.js.map +1 -0
  258. package/dist/trusted-process/mcp-client-manager.d.ts +35 -6
  259. package/dist/trusted-process/mcp-client-manager.js +40 -45
  260. package/dist/trusted-process/mcp-client-manager.js.map +1 -1
  261. package/dist/trusted-process/mcp-proxy-server.d.ts +31 -120
  262. package/dist/trusted-process/mcp-proxy-server.js +166 -657
  263. package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
  264. package/dist/trusted-process/policy-engine.d.ts +16 -4
  265. package/dist/trusted-process/policy-engine.js +90 -45
  266. package/dist/trusted-process/policy-engine.js.map +1 -1
  267. package/dist/trusted-process/policy-roots.d.ts +6 -0
  268. package/dist/trusted-process/policy-roots.js +20 -0
  269. package/dist/trusted-process/policy-roots.js.map +1 -1
  270. package/dist/trusted-process/sandbox-integration.d.ts +12 -0
  271. package/dist/trusted-process/sandbox-integration.js +18 -0
  272. package/dist/trusted-process/sandbox-integration.js.map +1 -1
  273. package/dist/trusted-process/tool-call-coordinator.d.ts +269 -0
  274. package/dist/trusted-process/tool-call-coordinator.js +508 -0
  275. package/dist/trusted-process/tool-call-coordinator.js.map +1 -0
  276. package/dist/trusted-process/tool-call-pipeline.d.ts +205 -0
  277. package/dist/trusted-process/tool-call-pipeline.js +798 -0
  278. package/dist/trusted-process/tool-call-pipeline.js.map +1 -0
  279. package/dist/trusted-process/tool-description-hints.d.ts +1 -1
  280. package/dist/types/argument-roles.d.ts +1 -1
  281. package/dist/types/argument-roles.js +14 -1
  282. package/dist/types/argument-roles.js.map +1 -1
  283. package/dist/types/audit.d.ts +9 -0
  284. package/dist/{session → types}/errors.d.ts +8 -2
  285. package/dist/{session → types}/errors.js +8 -2
  286. package/dist/types/errors.js.map +1 -0
  287. package/dist/types/reserved-servers.d.ts +11 -0
  288. package/dist/types/reserved-servers.js +12 -0
  289. package/dist/types/reserved-servers.js.map +1 -0
  290. package/dist/types/server-listing.d.ts +14 -0
  291. package/dist/types/server-listing.js +2 -0
  292. package/dist/types/server-listing.js.map +1 -0
  293. package/dist/types/slug.d.ts +2 -0
  294. package/dist/types/slug.js +2 -0
  295. package/dist/types/slug.js.map +1 -1
  296. package/dist/types/url-normalize.d.ts +16 -0
  297. package/dist/types/url-normalize.js +33 -0
  298. package/dist/types/url-normalize.js.map +1 -0
  299. package/dist/utils/error-message.d.ts +8 -0
  300. package/dist/utils/error-message.js +11 -0
  301. package/dist/utils/error-message.js.map +1 -0
  302. package/dist/utils/exec-error.d.ts +19 -0
  303. package/dist/utils/exec-error.js +16 -0
  304. package/dist/utils/exec-error.js.map +1 -0
  305. package/dist/utils/is-plain-object.d.ts +7 -0
  306. package/dist/utils/is-plain-object.js +12 -0
  307. package/dist/utils/is-plain-object.js.map +1 -0
  308. package/dist/utils/preflight-checks.d.ts +16 -0
  309. package/dist/utils/preflight-checks.js +178 -0
  310. package/dist/utils/preflight-checks.js.map +1 -0
  311. package/dist/web-ui/__tests__/json-rpc-dispatch.test.d.ts +7 -0
  312. package/dist/web-ui/__tests__/json-rpc-dispatch.test.js +725 -0
  313. package/dist/web-ui/__tests__/json-rpc-dispatch.test.js.map +1 -0
  314. package/dist/web-ui/dispatch/escalation-dispatch.d.ts +7 -0
  315. package/dist/web-ui/dispatch/escalation-dispatch.js +52 -0
  316. package/dist/web-ui/dispatch/escalation-dispatch.js.map +1 -0
  317. package/dist/web-ui/dispatch/job-dispatch.d.ts +8 -0
  318. package/dist/web-ui/dispatch/job-dispatch.js +83 -0
  319. package/dist/web-ui/dispatch/job-dispatch.js.map +1 -0
  320. package/dist/web-ui/dispatch/persona-dispatch.d.ts +6 -0
  321. package/dist/web-ui/dispatch/persona-dispatch.js +116 -0
  322. package/dist/web-ui/dispatch/persona-dispatch.js.map +1 -0
  323. package/dist/web-ui/dispatch/session-dispatch.d.ts +9 -0
  324. package/dist/web-ui/dispatch/session-dispatch.js +201 -0
  325. package/dist/web-ui/dispatch/session-dispatch.js.map +1 -0
  326. package/dist/web-ui/dispatch/token-stream-dispatch.d.ts +15 -0
  327. package/dist/web-ui/dispatch/token-stream-dispatch.js +55 -0
  328. package/dist/web-ui/dispatch/token-stream-dispatch.js.map +1 -0
  329. package/dist/web-ui/dispatch/types.d.ts +31 -0
  330. package/dist/web-ui/dispatch/types.js +68 -0
  331. package/dist/web-ui/dispatch/types.js.map +1 -0
  332. package/dist/web-ui/dispatch/workflow-dispatch.d.ts +103 -0
  333. package/dist/web-ui/dispatch/workflow-dispatch.js +925 -0
  334. package/dist/web-ui/dispatch/workflow-dispatch.js.map +1 -0
  335. package/dist/web-ui/json-rpc-dispatch.d.ts +12 -0
  336. package/dist/web-ui/json-rpc-dispatch.js +34 -0
  337. package/dist/web-ui/json-rpc-dispatch.js.map +1 -0
  338. package/dist/web-ui/state-graph.d.ts +13 -0
  339. package/dist/web-ui/state-graph.js +82 -0
  340. package/dist/web-ui/state-graph.js.map +1 -0
  341. package/dist/web-ui/token-stream-bridge.d.ts +76 -0
  342. package/dist/web-ui/token-stream-bridge.js +265 -0
  343. package/dist/web-ui/token-stream-bridge.js.map +1 -0
  344. package/dist/web-ui/web-event-bus.d.ts +152 -0
  345. package/dist/web-ui/web-event-bus.js +19 -0
  346. package/dist/web-ui/web-event-bus.js.map +1 -0
  347. package/dist/web-ui/web-session-transport.d.ts +31 -0
  348. package/dist/web-ui/web-session-transport.js +109 -0
  349. package/dist/web-ui/web-session-transport.js.map +1 -0
  350. package/dist/web-ui/web-ui-server.d.ts +76 -0
  351. package/dist/web-ui/web-ui-server.js +461 -0
  352. package/dist/web-ui/web-ui-server.js.map +1 -0
  353. package/dist/web-ui/web-ui-types.d.ts +290 -0
  354. package/dist/web-ui/web-ui-types.js +32 -0
  355. package/dist/web-ui/web-ui-types.js.map +1 -0
  356. package/dist/web-ui/ws-utils.d.ts +5 -0
  357. package/dist/web-ui/ws-utils.js +12 -0
  358. package/dist/web-ui/ws-utils.js.map +1 -0
  359. package/dist/web-ui-static/assets/index-BFO5z1js.js +76 -0
  360. package/dist/web-ui-static/assets/index-CCUwrkIL.css +1 -0
  361. package/dist/web-ui-static/assets/orbitron-latin-700-normal-4jsRXGGJ.woff2 +0 -0
  362. package/dist/web-ui-static/assets/orbitron-latin-700-normal-DmYOh-W9.woff +0 -0
  363. package/dist/web-ui-static/index.html +14 -0
  364. package/dist/workflow/artifacts.d.ts +59 -0
  365. package/dist/workflow/artifacts.js +188 -0
  366. package/dist/workflow/artifacts.js.map +1 -0
  367. package/dist/workflow/checkpoint-selection.d.ts +34 -0
  368. package/dist/workflow/checkpoint-selection.js +48 -0
  369. package/dist/workflow/checkpoint-selection.js.map +1 -0
  370. package/dist/workflow/checkpoint.d.ts +35 -0
  371. package/dist/workflow/checkpoint.js +84 -0
  372. package/dist/workflow/checkpoint.js.map +1 -0
  373. package/dist/workflow/cli-support.d.ts +92 -0
  374. package/dist/workflow/cli-support.js +423 -0
  375. package/dist/workflow/cli-support.js.map +1 -0
  376. package/dist/workflow/definition-loader.d.ts +32 -0
  377. package/dist/workflow/definition-loader.js +56 -0
  378. package/dist/workflow/definition-loader.js.map +1 -0
  379. package/dist/workflow/discovery.d.ts +78 -0
  380. package/dist/workflow/discovery.js +203 -0
  381. package/dist/workflow/discovery.js.map +1 -0
  382. package/dist/workflow/errors.d.ts +66 -0
  383. package/dist/workflow/errors.js +49 -0
  384. package/dist/workflow/errors.js.map +1 -0
  385. package/dist/workflow/guards.d.ts +8 -0
  386. package/dist/workflow/guards.js +38 -0
  387. package/dist/workflow/guards.js.map +1 -0
  388. package/dist/workflow/lint-integration.d.ts +64 -0
  389. package/dist/workflow/lint-integration.js +56 -0
  390. package/dist/workflow/lint-integration.js.map +1 -0
  391. package/dist/workflow/lint.d.ts +66 -0
  392. package/dist/workflow/lint.js +410 -0
  393. package/dist/workflow/lint.js.map +1 -0
  394. package/dist/workflow/machine-builder.d.ts +90 -0
  395. package/dist/workflow/machine-builder.js +485 -0
  396. package/dist/workflow/machine-builder.js.map +1 -0
  397. package/dist/workflow/message-log.d.ts +85 -0
  398. package/dist/workflow/message-log.js +40 -0
  399. package/dist/workflow/message-log.js.map +1 -0
  400. package/dist/workflow/orchestrator.d.ts +450 -0
  401. package/dist/workflow/orchestrator.js +1941 -0
  402. package/dist/workflow/orchestrator.js.map +1 -0
  403. package/dist/workflow/prompt-builder.d.ts +39 -0
  404. package/dist/workflow/prompt-builder.js +242 -0
  405. package/dist/workflow/prompt-builder.js.map +1 -0
  406. package/dist/workflow/run-state-command.d.ts +9 -0
  407. package/dist/workflow/run-state-command.js +414 -0
  408. package/dist/workflow/run-state-command.js.map +1 -0
  409. package/dist/workflow/run-state-debug-capture.d.ts +40 -0
  410. package/dist/workflow/run-state-debug-capture.js +101 -0
  411. package/dist/workflow/run-state-debug-capture.js.map +1 -0
  412. package/dist/workflow/status-parser.d.ts +68 -0
  413. package/dist/workflow/status-parser.js +259 -0
  414. package/dist/workflow/status-parser.js.map +1 -0
  415. package/dist/workflow/types.d.ts +498 -0
  416. package/dist/workflow/types.js +83 -0
  417. package/dist/workflow/types.js.map +1 -0
  418. package/dist/workflow/validate.d.ts +58 -0
  419. package/dist/workflow/validate.js +499 -0
  420. package/dist/workflow/validate.js.map +1 -0
  421. package/dist/workflow/workflow-command.d.ts +26 -0
  422. package/dist/workflow/workflow-command.js +648 -0
  423. package/dist/workflow/workflow-command.js.map +1 -0
  424. package/dist/workflow/workflow-discovery.d.ts +25 -0
  425. package/dist/workflow/workflow-discovery.js +100 -0
  426. package/dist/workflow/workflow-discovery.js.map +1 -0
  427. package/dist/workflow/workflow-manager.d.ts +122 -0
  428. package/dist/workflow/workflow-manager.js +308 -0
  429. package/dist/workflow/workflow-manager.js.map +1 -0
  430. package/dist/workflow/workflows/design-and-code/workflow.yaml +169 -0
  431. package/dist/workflow/workflows/test-email-summary/skills/email-formatting/SKILL.md +55 -0
  432. package/dist/workflow/workflows/test-email-summary/skills/gmail-query-syntax/SKILL.md +63 -0
  433. package/dist/workflow/workflows/test-email-summary/skills/json-schema-emails/SKILL.md +41 -0
  434. package/dist/workflow/workflows/test-email-summary/skills/json-schema-emails/schema.json +34 -0
  435. package/dist/workflow/workflows/test-email-summary/skills/summary-style-guide/SKILL.md +51 -0
  436. package/dist/workflow/workflows/test-email-summary/workflow.yaml +89 -0
  437. package/dist/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +201 -0
  438. package/dist/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +166 -0
  439. package/dist/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +185 -0
  440. package/dist/workflow/workflows/vuln-discovery/workflow.yaml +920 -0
  441. package/dist/workflow/worktree.d.ts +43 -0
  442. package/dist/workflow/worktree.js +106 -0
  443. package/dist/workflow/worktree.js.map +1 -0
  444. package/docker/Dockerfile.base +9 -0
  445. package/docker/Dockerfile.base.arm64 +9 -0
  446. package/docker/entrypoint-claude-code.sh +46 -0
  447. package/docker/entrypoint-goose.sh +25 -0
  448. package/package.json +19 -8
  449. package/packages/web-ui/README.md +113 -0
  450. package/packages/web-ui/docs/workflow-state-machine.png +0 -0
  451. package/src/config/generated/compiled-policy.json +528 -161
  452. package/src/config/generated/test-scenarios.json +4810 -170
  453. package/src/config/generated/tool-annotations.json +34 -47
  454. package/src/config/mcp-servers.json +2 -2
  455. package/src/workflow/workflows/design-and-code/workflow.yaml +169 -0
  456. package/src/workflow/workflows/test-email-summary/skills/email-formatting/SKILL.md +55 -0
  457. package/src/workflow/workflows/test-email-summary/skills/gmail-query-syntax/SKILL.md +63 -0
  458. package/src/workflow/workflows/test-email-summary/skills/json-schema-emails/SKILL.md +41 -0
  459. package/src/workflow/workflows/test-email-summary/skills/json-schema-emails/schema.json +34 -0
  460. package/src/workflow/workflows/test-email-summary/skills/summary-style-guide/SKILL.md +51 -0
  461. package/src/workflow/workflows/test-email-summary/workflow.yaml +89 -0
  462. package/src/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +201 -0
  463. package/src/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +166 -0
  464. package/src/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +185 -0
  465. package/src/workflow/workflows/vuln-discovery/workflow.yaml +920 -0
  466. package/dist/pipeline/llm-logger.js.map +0 -1
  467. package/dist/session/errors.js.map +0 -1
@@ -444,10 +444,11 @@
444
444
  "comment": "Stages specified files or all changes in the repository for the next commit.",
445
445
  "args": {
446
446
  "path": [
447
- "read-path"
447
+ "read-path",
448
+ "write-history"
448
449
  ],
449
450
  "files": [
450
- "read-path"
451
+ "none"
451
452
  ],
452
453
  "update": [
453
454
  "none"
@@ -506,7 +507,7 @@
506
507
  "read-path"
507
508
  ],
508
509
  "file": [
509
- "read-path"
510
+ "none"
510
511
  ],
511
512
  "startLine": [
512
513
  "none"
@@ -791,7 +792,8 @@
791
792
  "args": {
792
793
  "path": [
793
794
  "read-path",
794
- "write-history"
795
+ "write-history",
796
+ "write-path"
795
797
  ],
796
798
  "target": [
797
799
  "branch-name"
@@ -803,7 +805,7 @@
803
805
  "none"
804
806
  ],
805
807
  "paths": [
806
- "read-path"
808
+ "none"
807
809
  ],
808
810
  "track": [
809
811
  "none"
@@ -1144,7 +1146,7 @@
1144
1146
  "none"
1145
1147
  ],
1146
1148
  "filesToStage": [
1147
- "read-path"
1149
+ "none"
1148
1150
  ],
1149
1151
  "forceUnsignedOnFailure": [
1150
1152
  "none"
@@ -1238,7 +1240,7 @@
1238
1240
  "none"
1239
1241
  ],
1240
1242
  "paths": [
1241
- "read-path"
1243
+ "none"
1242
1244
  ],
1243
1245
  "staged": [
1244
1246
  "none"
@@ -1318,7 +1320,8 @@
1318
1320
  "comment": "Downloads objects and refs from a remote repository without merging them into the local branch.",
1319
1321
  "args": {
1320
1322
  "path": [
1321
- "read-path"
1323
+ "read-path",
1324
+ "write-history"
1322
1325
  ],
1323
1326
  "remote": [
1324
1327
  "git-remote-url"
@@ -1434,7 +1437,7 @@
1434
1437
  "branch-name"
1435
1438
  ],
1436
1439
  "filePath": [
1437
- "read-path"
1440
+ "none"
1438
1441
  ],
1439
1442
  "oneline": [
1440
1443
  "none"
@@ -1934,39 +1937,9 @@
1934
1937
  "name": [
1935
1938
  "none"
1936
1939
  ],
1937
- "url": {
1938
- "default": [
1939
- "git-remote-url"
1940
- ],
1941
- "when": [
1942
- {
1943
- "condition": {
1944
- "arg": "mode",
1945
- "in": [
1946
- "list",
1947
- "get-url"
1948
- ]
1949
- },
1950
- "roles": [
1951
- "none"
1952
- ]
1953
- },
1954
- {
1955
- "condition": {
1956
- "arg": "mode",
1957
- "in": [
1958
- "add",
1959
- "rename",
1960
- "set-url",
1961
- "remove"
1962
- ]
1963
- },
1964
- "roles": [
1965
- "git-remote-url"
1966
- ]
1967
- }
1968
- ]
1969
- },
1940
+ "url": [
1941
+ "none"
1942
+ ],
1970
1943
  "newName": [
1971
1944
  "none"
1972
1945
  ],
@@ -2039,7 +2012,7 @@
2039
2012
  "none"
2040
2013
  ],
2041
2014
  "paths": [
2042
- "read-path"
2015
+ "none"
2043
2016
  ],
2044
2017
  "confirmed": [
2045
2018
  "none"
@@ -2091,9 +2064,23 @@
2091
2064
  "toolName": "git_set_working_dir",
2092
2065
  "comment": "Sets the session-level default working directory for all subsequent git operations.",
2093
2066
  "args": {
2094
- "path": [
2095
- "read-path"
2096
- ],
2067
+ "path": {
2068
+ "default": [
2069
+ "read-path"
2070
+ ],
2071
+ "when": [
2072
+ {
2073
+ "condition": {
2074
+ "arg": "initializeIfNotPresent",
2075
+ "equals": true
2076
+ },
2077
+ "roles": [
2078
+ "read-path",
2079
+ "write-path"
2080
+ ]
2081
+ }
2082
+ ]
2083
+ },
2097
2084
  "validateGitRepo": [
2098
2085
  "none"
2099
2086
  ],
@@ -2152,7 +2139,7 @@
2152
2139
  "none"
2153
2140
  ],
2154
2141
  "filePath": [
2155
- "read-path"
2142
+ "none"
2156
2143
  ]
2157
2144
  },
2158
2145
  "serverName": "git",
@@ -32,6 +32,20 @@ export declare function computeProtectedPaths(opts: {
32
32
  * (runtime) and `loadPipelineConfig()` (pipeline) use this.
33
33
  */
34
34
  export declare function resolveMcpServerPaths(mcpServers: Record<string, MCPServerConfig>): void;
35
+ /**
36
+ * Rewrites the filesystem MCP server's allowed-directory arg to match
37
+ * `allowedDirectory`. Must be called whenever `allowedDirectory` changes
38
+ * (e.g. during session/workflow setup), otherwise the filesystem server
39
+ * spawns with a stale path and fails with ENOENT.
40
+ *
41
+ * The filesystem server's args are `["-y", "<pkg>", "<path>"]`, so the
42
+ * path is always the last argument. We replace it unconditionally to
43
+ * cover both the initial load (args contain the sentinel) and subsequent
44
+ * re-patches (args already contain a previous allowed directory).
45
+ */
46
+ export declare function applyAllowedDirectoryToMcpArgs(mcpServers: Record<string, {
47
+ args: string[];
48
+ }>, allowedDirectory: string): void;
35
49
  export declare function loadConfig(): IronCurtainConfig;
36
50
  /**
37
51
  * Extracts domain allowlists from MCP server sandbox network configurations.
@@ -56,6 +70,37 @@ export declare function extractServerDomainAllowlists(mcpServers: Record<string,
56
70
  * last `ironcurtain compile-policy` run.
57
71
  */
58
72
  export declare function checkConstitutionFreshness(compiledPolicy: CompiledPolicyFile, constitutionPath: string): void;
73
+ /**
74
+ * Pure diff between the configured MCP servers and the servers covered by
75
+ * `tool-annotations.json`. Used by both the runtime freshness check and
76
+ * the compile-time preventive check, which format the same drift data
77
+ * differently.
78
+ *
79
+ * - `missing`: configured servers with no annotations entry (these will
80
+ * silently default-deny every call via the policy engine's
81
+ * structural-unknown-tool fallback).
82
+ * - `orphaned`: annotated servers no longer configured (informational).
83
+ */
84
+ export declare function findAnnotationServerDrift(toolAnnotations: StoredToolAnnotationsFile, mcpServers: Record<string, MCPServerConfig>): {
85
+ missing: string[];
86
+ orphaned: string[];
87
+ };
88
+ /**
89
+ * Runtime freshness check: emits stderr warnings when the on-disk
90
+ * tool-annotations.json no longer matches the configured MCP servers.
91
+ *
92
+ * The warning suggests re-running annotations for each specific server,
93
+ * not `--all`, so the user only re-classifies what actually changed.
94
+ */
95
+ export declare function checkAnnotationFreshness(toolAnnotations: StoredToolAnnotationsFile, mcpServers: Record<string, MCPServerConfig>): void;
96
+ /**
97
+ * Quotes a user-supplied identifier for inclusion in a stderr message or a
98
+ * copy-paste shell command. Escapes control characters, quotes, and
99
+ * backslashes via JSON string semantics, and wraps the result in double
100
+ * quotes. The output is both safe to print (no terminal injection) and
101
+ * safe to paste into bash (`--server "name"`).
102
+ */
103
+ export declare function safeForDisplay(identifier: string): string;
59
104
  /**
60
105
  * Options for loading generated policy artifacts with split directories.
61
106
  * Allows policy files and tool annotations to come from different dirs.
@@ -73,3 +118,16 @@ export declare function loadGeneratedPolicy(options: PolicyLoadOptions): {
73
118
  toolAnnotations: StoredToolAnnotationsFile;
74
119
  dynamicLists: DynamicListsFile | undefined;
75
120
  };
121
+ /**
122
+ * Loads only the per-persona / per-policy artifacts (compiled-policy.json
123
+ * and optional dynamic-lists.json). Tool annotations are deliberately not
124
+ * read here because they are globally-scoped: a persona directory only
125
+ * ships policy + lists, not annotations.
126
+ *
127
+ * Used by `ToolCallCoordinator.loadPolicy` during a hot-swap to pick up
128
+ * the new policy without touching the retained annotations.
129
+ */
130
+ export declare function loadPersonaPolicyArtifacts(policyDir: string): {
131
+ compiledPolicy: CompiledPolicyFile;
132
+ dynamicLists: DynamicListsFile | undefined;
133
+ };
@@ -4,17 +4,22 @@ import { fileURLToPath } from 'node:url';
4
4
  import { computeConstitutionHash, getIronCurtainHome, getUserConfigPath, getUserConstitutionBasePath, getUserConstitutionPath, getUserGeneratedDir, } from './paths.js';
5
5
  import { resolveRealPath } from '../types/argument-roles.js';
6
6
  import { loadUserConfig } from './user-config.js';
7
- import { RESERVED_SERVER_NAMES } from '../docker/proxy-tools.js';
7
+ import { RESERVED_SERVER_NAMES } from '../types/reserved-servers.js';
8
8
  const __filename = fileURLToPath(import.meta.url);
9
9
  const __dirname = dirname(__filename);
10
10
  const isCompiled = __filename.endsWith('.js');
11
11
  /**
12
- * Returns the user-local generated dir if it contains compiled-policy.json,
13
- * otherwise falls back to the package-bundled generated dir.
12
+ * Returns the user-local generated dir if it contains the given artifact,
13
+ * otherwise falls back to the package-bundled dir. Used independently for
14
+ * `compiled-policy.json` and `tool-annotations.json` so a user who drops
15
+ * an updated annotations file into `~/.ironcurtain/generated/` has it
16
+ * picked up even without a corresponding compiled policy there (tool
17
+ * annotations are globally scoped — see sandbox/index.ts comment on
18
+ * `toolAnnotationsDir`).
14
19
  */
15
- function resolveGeneratedDir(packageGeneratedDir) {
20
+ function resolveArtifactDir(filename, packageGeneratedDir) {
16
21
  const userDir = getUserGeneratedDir();
17
- if (existsSync(resolve(userDir, 'compiled-policy.json'))) {
22
+ if (existsSync(resolve(userDir, filename))) {
18
23
  return userDir;
19
24
  }
20
25
  return packageGeneratedDir;
@@ -117,6 +122,26 @@ function resolveInternalServerPaths(config, packageRoot, compiled) {
117
122
  }
118
123
  }
119
124
  }
125
+ /**
126
+ * Rewrites the filesystem MCP server's allowed-directory arg to match
127
+ * `allowedDirectory`. Must be called whenever `allowedDirectory` changes
128
+ * (e.g. during session/workflow setup), otherwise the filesystem server
129
+ * spawns with a stale path and fails with ENOENT.
130
+ *
131
+ * The filesystem server's args are `["-y", "<pkg>", "<path>"]`, so the
132
+ * path is always the last argument. We replace it unconditionally to
133
+ * cover both the initial load (args contain the sentinel) and subsequent
134
+ * re-patches (args already contain a previous allowed directory).
135
+ */
136
+ export function applyAllowedDirectoryToMcpArgs(mcpServers, allowedDirectory) {
137
+ const fsServer = mcpServers['filesystem'];
138
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- defensive: key may not exist in external JSON
139
+ if (!fsServer)
140
+ return;
141
+ if (fsServer.args.length === 0)
142
+ return;
143
+ fsServer.args[fsServer.args.length - 1] = allowedDirectory;
144
+ }
120
145
  /**
121
146
  * Translates the typed webSearch config into flat env vars for the fetch server.
122
147
  */
@@ -161,20 +186,13 @@ export function loadConfig() {
161
186
  // Sync the filesystem server's allowed directory with the configured value.
162
187
  // The mcp-servers.json ships with a default path that may differ from
163
188
  // the ALLOWED_DIRECTORY environment variable.
164
- const fsServer = mcpServers['filesystem'];
165
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- defensive: key may not exist in external JSON
166
- if (fsServer) {
167
- const defaultDir = '/tmp/ironcurtain-sandbox';
168
- const dirIndex = fsServer.args.indexOf(defaultDir);
169
- if (dirIndex !== -1) {
170
- fsServer.args[dirIndex] = allowedDirectory;
171
- }
172
- }
189
+ applyAllowedDirectoryToMcpArgs(mcpServers, allowedDirectory);
173
190
  // Resolve all relative paths (node_modules/ and ./src/) to absolute paths.
174
191
  resolveMcpServerPaths(mcpServers);
175
192
  const constitutionPath = resolve(__dirname, 'constitution.md');
176
193
  const packageGeneratedDir = resolve(__dirname, 'generated');
177
- const generatedDir = resolveGeneratedDir(packageGeneratedDir);
194
+ const generatedDir = resolveArtifactDir('compiled-policy.json', packageGeneratedDir);
195
+ const toolAnnotationsDir = resolveArtifactDir('tool-annotations.json', packageGeneratedDir);
178
196
  const protectedPaths = computeProtectedPaths({
179
197
  constitutionPath,
180
198
  generatedDir,
@@ -209,6 +227,7 @@ export function loadConfig() {
209
227
  mcpServers,
210
228
  protectedPaths,
211
229
  generatedDir,
230
+ toolAnnotationsDir,
212
231
  constitutionPath,
213
232
  agentModelId: finalUserConfig.agentModelId,
214
233
  escalationTimeoutSeconds: finalUserConfig.escalationTimeoutSeconds,
@@ -258,12 +277,75 @@ export function checkConstitutionFreshness(compiledPolicy, constitutionPath) {
258
277
  'Run `ironcurtain compile-policy` to update the compiled policy.\n');
259
278
  }
260
279
  }
280
+ /**
281
+ * Pure diff between the configured MCP servers and the servers covered by
282
+ * `tool-annotations.json`. Used by both the runtime freshness check and
283
+ * the compile-time preventive check, which format the same drift data
284
+ * differently.
285
+ *
286
+ * - `missing`: configured servers with no annotations entry (these will
287
+ * silently default-deny every call via the policy engine's
288
+ * structural-unknown-tool fallback).
289
+ * - `orphaned`: annotated servers no longer configured (informational).
290
+ */
291
+ export function findAnnotationServerDrift(toolAnnotations, mcpServers) {
292
+ const configuredNames = new Set(Object.keys(mcpServers));
293
+ const annotatedNames = new Set(Object.keys(toolAnnotations.servers));
294
+ return {
295
+ missing: [...configuredNames].filter((name) => !annotatedNames.has(name)).sort(),
296
+ orphaned: [...annotatedNames].filter((name) => !configuredNames.has(name)).sort(),
297
+ };
298
+ }
299
+ /**
300
+ * Runtime freshness check: emits stderr warnings when the on-disk
301
+ * tool-annotations.json no longer matches the configured MCP servers.
302
+ *
303
+ * The warning suggests re-running annotations for each specific server,
304
+ * not `--all`, so the user only re-classifies what actually changed.
305
+ */
306
+ export function checkAnnotationFreshness(toolAnnotations, mcpServers) {
307
+ const { missing, orphaned } = findAnnotationServerDrift(toolAnnotations, mcpServers);
308
+ if (missing.length > 0) {
309
+ process.stderr.write(`Warning: ${missing.length} configured MCP server(s) have no tool annotations: ${missing.map(safeForDisplay).join(', ')}. ` +
310
+ `Tools from these servers will be denied by the policy engine until annotated.\n`);
311
+ for (const name of missing) {
312
+ process.stderr.write(` Run \`ironcurtain annotate-tools --server ${safeForDisplay(name)}\` to annotate this server.\n`);
313
+ }
314
+ }
315
+ if (orphaned.length > 0) {
316
+ process.stderr.write(`Note: tool-annotations.json contains server(s) no longer in mcp-servers.json: ${orphaned.map(safeForDisplay).join(', ')}.\n`);
317
+ }
318
+ }
319
+ /**
320
+ * Quotes a user-supplied identifier for inclusion in a stderr message or a
321
+ * copy-paste shell command. Escapes control characters, quotes, and
322
+ * backslashes via JSON string semantics, and wraps the result in double
323
+ * quotes. The output is both safe to print (no terminal injection) and
324
+ * safe to paste into bash (`--server "name"`).
325
+ */
326
+ export function safeForDisplay(identifier) {
327
+ return JSON.stringify(identifier);
328
+ }
261
329
  export function loadGeneratedPolicy(options) {
262
330
  const compiledPolicy = JSON.parse(readGeneratedFile(options.policyDir, 'compiled-policy.json', options.fallbackDir));
263
331
  const toolAnnotations = JSON.parse(readGeneratedFile(options.toolAnnotationsDir, 'tool-annotations.json', options.fallbackDir));
264
332
  const dynamicLists = loadOptionalGeneratedFile(options.policyDir, 'dynamic-lists.json', options.fallbackDir);
265
333
  return { compiledPolicy, toolAnnotations, dynamicLists };
266
334
  }
335
+ /**
336
+ * Loads only the per-persona / per-policy artifacts (compiled-policy.json
337
+ * and optional dynamic-lists.json). Tool annotations are deliberately not
338
+ * read here because they are globally-scoped: a persona directory only
339
+ * ships policy + lists, not annotations.
340
+ *
341
+ * Used by `ToolCallCoordinator.loadPolicy` during a hot-swap to pick up
342
+ * the new policy without touching the retained annotations.
343
+ */
344
+ export function loadPersonaPolicyArtifacts(policyDir) {
345
+ const compiledPolicy = JSON.parse(readGeneratedFile(policyDir, 'compiled-policy.json'));
346
+ const dynamicLists = loadOptionalGeneratedFile(policyDir, 'dynamic-lists.json');
347
+ return { compiledPolicy, dynamicLists };
348
+ }
267
349
  /**
268
350
  * Loads an optional generated artifact file. Returns undefined if not found.
269
351
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -44,10 +44,10 @@
44
44
  "args": ["-y", "@alanse/mcp-server-google-workspace@1.0.2"],
45
45
  "env": {},
46
46
  "_comment": "npm registry domains are needed for the initial npx -y install. To remove them, vendor the package as a local dependency instead.",
47
+ "_comment2": "On Linux, the @anthropic-ai/sandbox-runtime apply-seccomp binary is executed from node_modules inside the sandbox. Denying ~ blocks access to this binary if the project is in the home directory. We deny specific sensitive directories instead. TODO: separate development and production into different sandbox configs.",
47
48
  "sandbox": {
48
49
  "filesystem": {
49
- "denyRead": ["~"],
50
- "allowRead": ["/usr", "/lib", "/etc"]
50
+ "denyRead": ["~/.gnupg", "~/.aws", "~/.ssh"]
51
51
  },
52
52
  "network": {
53
53
  "allowedDomains": [
@@ -1,3 +1,4 @@
1
+ import type { BundleId } from '../session/types.js';
1
2
  /**
2
3
  * Returns the IronCurtain home directory.
3
4
  * Defaults to ~/.ironcurtain, overridable via IRONCURTAIN_HOME env var.
@@ -7,6 +8,14 @@ export declare function getIronCurtainHome(): string;
7
8
  * Returns the sessions base directory: {home}/sessions/
8
9
  */
9
10
  export declare function getSessionsDir(): string;
11
+ /**
12
+ * Filenames shared across session-scoped and workflow-state-scoped
13
+ * layouts. Centralized so the "single source of truth" for how session
14
+ * artifacts are named does not drift between helpers and call sites.
15
+ */
16
+ export declare const SESSION_LOG_FILENAME = "session.log";
17
+ export declare const SESSION_METADATA_FILENAME = "session-metadata.json";
18
+ export declare const SESSION_STATE_FILENAME = "session-state.json";
10
19
  /**
11
20
  * Returns the session directory for a given session ID:
12
21
  * {home}/sessions/{sessionId}/
@@ -143,6 +152,20 @@ export declare function loadConstitutionText(packageBasePath: string): string;
143
152
  * Loads the combined constitution and returns its SHA-256 hex digest.
144
153
  */
145
154
  export declare function computeConstitutionHash(basePath: string): string;
155
+ /**
156
+ * Returns the user workflows directory: {home}/workflows/
157
+ * Users can place custom workflow definitions here.
158
+ */
159
+ export declare function getUserWorkflowsDir(): string;
160
+ /**
161
+ * Returns the user-global skills directory: {home}/skills/
162
+ *
163
+ * Skills placed here are layered into every Docker session regardless
164
+ * of workflow or persona. See `src/skills/discovery.ts` for the
165
+ * resolution order (user-global → persona → workflow, last-wins on
166
+ * collision) and `docs/designs/skills-capability.md` for the format.
167
+ */
168
+ export declare function getUserSkillsDir(): string;
146
169
  /**
147
170
  * Returns the OAuth directory: {home}/oauth/
148
171
  * Stores provider credentials and token files.
@@ -165,6 +188,14 @@ export declare function getOAuthCredentialsPath(providerId: string): string;
165
188
  * can communicate with a running daemon (e.g., add-job, run-job).
166
189
  */
167
190
  export declare function getDaemonSocketPath(): string;
191
+ /**
192
+ * Returns the web UI state file path: {home}/web-ui.json
193
+ *
194
+ * The daemon writes connection info (port + auth token) here on startup
195
+ * so CLI commands (e.g., `observe`) can connect to the WebSocket server.
196
+ * The file is removed on daemon shutdown.
197
+ */
198
+ export declare function getWebUiStatePath(): string;
168
199
  /**
169
200
  * Returns the jobs base directory: {home}/jobs/
170
201
  */
@@ -188,3 +219,147 @@ export declare function getJobWorkspaceDir(jobId: string): string;
188
219
  * {home}/jobs/{jobId}/runs/
189
220
  */
190
221
  export declare function getJobRunsDir(jobId: string): string;
222
+ /**
223
+ * Returns the workflow runs base directory: {home}/workflow-runs/
224
+ */
225
+ export declare function getWorkflowRunsDir(): string;
226
+ /**
227
+ * Returns the directory for a specific workflow run:
228
+ * {home}/workflow-runs/{workflowId}/
229
+ */
230
+ export declare function getWorkflowRunDir(workflowId: string): string;
231
+ /**
232
+ * Returns the containers root for a workflow run:
233
+ * {home}/workflow-runs/{workflowId}/containers/
234
+ *
235
+ * Each bundle (one Docker container + its MITM/Code-Mode proxies, CA,
236
+ * fake keys, audit log, and per-state artifacts) lives under
237
+ * `containers/<bundleId>/`. A single-scope workflow has one entry; a
238
+ * bifurcated workflow with distinct `containerScope` values has one
239
+ * entry per distinct scope.
240
+ */
241
+ export declare function getWorkflowContainersDir(workflowId: string): string;
242
+ /**
243
+ * Returns the outer directory for a single bundle within a workflow run:
244
+ * {home}/workflow-runs/{workflowId}/containers/{bundleId}/
245
+ *
246
+ * Contains the bundle's audit log, its inner `bundle/` directory with
247
+ * sockets/CA/fake keys/orientation, and the per-state `states/` tree.
248
+ */
249
+ export declare function getBundleDir(workflowId: string, bundleId: BundleId): string;
250
+ /**
251
+ * Returns the inner bundle artifact directory:
252
+ * {home}/workflow-runs/{workflowId}/containers/{bundleId}/bundle/
253
+ *
254
+ * Holds the bundle-scoped files that `DockerInfrastructure` manages:
255
+ * MCP/MITM sockets, CA cert, fake keys, orientation scripts, and the
256
+ * effective system prompt. Bind-mounted into the Docker container for
257
+ * the UDS endpoints.
258
+ */
259
+ export declare function getBundleBundleDir(workflowId: string, bundleId: BundleId): string;
260
+ /**
261
+ * Returns the per-bundle audit log path:
262
+ * {home}/workflow-runs/{workflowId}/containers/{bundleId}/audit.jsonl
263
+ *
264
+ * One audit file per bundle (coordinator). Each entry is tagged with
265
+ * the active `persona` so consumers can reconstruct per-persona /
266
+ * per-re-entry slices by scanning.
267
+ */
268
+ export declare function getBundleAuditLogPath(workflowId: string, bundleId: BundleId): string;
269
+ /**
270
+ * Returns the per-bundle states root:
271
+ * {home}/workflow-runs/{workflowId}/containers/{bundleId}/states/
272
+ *
273
+ * Each agent state invocation (including re-entries) that borrows this
274
+ * bundle gets its own subdirectory keyed by `{stateId}.{N}`.
275
+ */
276
+ export declare function getBundleStatesDir(workflowId: string, bundleId: BundleId): string;
277
+ /**
278
+ * Returns the per-invocation artifact directory for a single state:
279
+ * {home}/workflow-runs/{workflowId}/containers/{bundleId}/states/{stateSlug}/
280
+ *
281
+ * Holds this invocation's `session.log` and `session-metadata.json`.
282
+ * `stateSlug` is `{stateId}.{N}` (e.g., `fetch.1`, `plan.2`).
283
+ */
284
+ export declare function getInvocationDir(workflowId: string, bundleId: BundleId, stateSlug: string): string;
285
+ /**
286
+ * Picks the next available `{stateId}.{N}` slug in `statesDir`. Returns
287
+ * `${stateId}.1` when no matching dir exists; otherwise the max existing
288
+ * N plus 1. Used so every state entry (true logical re-visits AND resume
289
+ * legs of a single visit) gets its own forensic dir — `session.log` and
290
+ * `session-metadata.json` no longer interleave across resume attempts.
291
+ */
292
+ export declare function nextStateSlug(statesDir: string, stateId: string): string;
293
+ /**
294
+ * Returns the coordinator control socket path for a bundle:
295
+ * {home}/run/{bundleId[0:12]}/ctrl.sock
296
+ *
297
+ * The coordinator listens on this UDS to accept policy hot-swap
298
+ * requests from the orchestrator. The socket sits under the bundle's
299
+ * per-bundle runtime root (mode `0o700`) so filesystem permissions
300
+ * gate access.
301
+ *
302
+ * The directory slug is truncated to 12 chars of `bundleId` so the
303
+ * assembled path fits under macOS `sockaddr_un.sun_path` (104 chars).
304
+ * 16^12 ≈ 2.8e14 combinations — collisions in the host-wide
305
+ * `run/<slug>/` namespace are astronomical.
306
+ */
307
+ export declare function getBundleControlSocketPath(bundleId: BundleId): string;
308
+ /**
309
+ * Returns the per-bundle runtime root directory:
310
+ * {home}/run/{bundleId[0:12]}/
311
+ *
312
+ * Holds the coordinator control socket plus two subdirectories
313
+ * (`sockets/` and `host/`) so the bind-mounted UDS files can be
314
+ * co-located without exposing host-only sockets to the container.
315
+ */
316
+ export declare function getBundleRuntimeRoot(bundleId: BundleId): string;
317
+ /**
318
+ * Returns the per-bundle container-visible sockets directory:
319
+ * {home}/run/{bundleId[0:12]}/sockets/
320
+ *
321
+ * Two UDS files live here:
322
+ * - `proxy.sock` (Code Mode proxy — bind-mounted into container)
323
+ * - `mitm-proxy.sock` (MITM proxy — bind-mounted into container)
324
+ *
325
+ * This directory is what `prepareDockerInfrastructure()` bind-mounts as
326
+ * `/run/ironcurtain/` inside the container (read-write). Only these two
327
+ * socket files live here — no audit logs, escalation files, or other
328
+ * session artifacts.
329
+ */
330
+ export declare function getBundleSocketsDir(bundleId: BundleId): string;
331
+ /**
332
+ * Returns the per-bundle host-only directory:
333
+ * {home}/run/{bundleId[0:12]}/host/
334
+ *
335
+ * Holds UDS files that must NOT be visible to the container
336
+ * (currently just the MITM control socket).
337
+ */
338
+ export declare function getBundleHostOnlyDir(bundleId: BundleId): string;
339
+ /**
340
+ * Code Mode proxy UDS path for a bundle:
341
+ * {home}/run/{bundleId[0:12]}/sockets/proxy.sock
342
+ *
343
+ * Bound by the host-side Code Mode proxy; reachable inside the
344
+ * container as `/run/ironcurtain/proxy.sock` via the bind mount on
345
+ * `getBundleSocketsDir()`.
346
+ */
347
+ export declare function getBundleProxySocketPath(bundleId: BundleId): string;
348
+ /**
349
+ * MITM proxy UDS path for a bundle:
350
+ * {home}/run/{bundleId[0:12]}/sockets/mitm-proxy.sock
351
+ *
352
+ * Bound by the host-side MITM proxy; reachable inside the container as
353
+ * `/run/ironcurtain/mitm-proxy.sock` via the bind mount on
354
+ * `getBundleSocketsDir()`.
355
+ */
356
+ export declare function getBundleMitmProxySocketPath(bundleId: BundleId): string;
357
+ /**
358
+ * MITM control UDS path for a bundle:
359
+ * {home}/run/{bundleId[0:12]}/host/mitm-control.sock
360
+ *
361
+ * Host-local only — lives under `host/` rather than `sockets/` so the
362
+ * bind mount that exposes `sockets/` at `/run/ironcurtain/` does not
363
+ * expose this socket to the container.
364
+ */
365
+ export declare function getBundleMitmControlSocketPath(bundleId: BundleId): string;