@provos/ironcurtain 0.11.0 → 0.12.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 (365) hide show
  1. package/README.md +9 -7
  2. package/dist/cli-help.d.ts +12 -0
  3. package/dist/cli-help.js +21 -0
  4. package/dist/cli-help.js.map +1 -1
  5. package/dist/cli.js +8 -6
  6. package/dist/cli.js.map +1 -1
  7. package/dist/config/agent-model-guard.d.ts +14 -0
  8. package/dist/config/agent-model-guard.js +24 -0
  9. package/dist/config/agent-model-guard.js.map +1 -0
  10. package/dist/config/config-command.js +116 -1
  11. package/dist/config/config-command.js.map +1 -1
  12. package/dist/config/first-start.js +2 -8
  13. package/dist/config/first-start.js.map +1 -1
  14. package/dist/config/model-provider.d.ts +9 -0
  15. package/dist/config/model-provider.js +13 -0
  16. package/dist/config/model-provider.js.map +1 -1
  17. package/dist/config/paths.d.ts +48 -6
  18. package/dist/config/paths.js +63 -8
  19. package/dist/config/paths.js.map +1 -1
  20. package/dist/config/user-config.d.ts +48 -1
  21. package/dist/config/user-config.js +49 -1
  22. package/dist/config/user-config.js.map +1 -1
  23. package/dist/daemon/daemon-command.js +14 -5
  24. package/dist/daemon/daemon-command.js.map +1 -1
  25. package/dist/daemon/ironcurtain-daemon.d.ts +18 -0
  26. package/dist/daemon/ironcurtain-daemon.js +22 -1
  27. package/dist/daemon/ironcurtain-daemon.js.map +1 -1
  28. package/dist/daemon-client/daemon-client.d.ts +123 -0
  29. package/dist/daemon-client/daemon-client.js +324 -0
  30. package/dist/daemon-client/daemon-client.js.map +1 -0
  31. package/dist/docker/adapters/codex.d.ts +9 -0
  32. package/dist/docker/adapters/codex.js +297 -0
  33. package/dist/docker/adapters/codex.js.map +1 -0
  34. package/dist/docker/agent-adapter.d.ts +5 -1
  35. package/dist/docker/agent-adapter.js +2 -0
  36. package/dist/docker/agent-adapter.js.map +1 -1
  37. package/dist/docker/agent-registry.js +5 -0
  38. package/dist/docker/agent-registry.js.map +1 -1
  39. package/dist/docker/apple-container-manager.d.ts +49 -0
  40. package/dist/docker/apple-container-manager.js +464 -0
  41. package/dist/docker/apple-container-manager.js.map +1 -0
  42. package/dist/docker/code-mode-proxy.d.ts +11 -0
  43. package/dist/docker/code-mode-proxy.js +3 -1
  44. package/dist/docker/code-mode-proxy.js.map +1 -1
  45. package/dist/docker/container-lifecycle.d.ts +2 -2
  46. package/dist/docker/container-lifecycle.js.map +1 -1
  47. package/dist/docker/container-runtime.d.ts +29 -0
  48. package/dist/docker/container-runtime.js +76 -0
  49. package/dist/docker/container-runtime.js.map +1 -0
  50. package/dist/docker/docker-agent-session.js +30 -1
  51. package/dist/docker/docker-agent-session.js.map +1 -1
  52. package/dist/docker/docker-infrastructure.d.ts +186 -9
  53. package/dist/docker/docker-infrastructure.js +521 -77
  54. package/dist/docker/docker-infrastructure.js.map +1 -1
  55. package/dist/docker/docker-manager.d.ts +25 -5
  56. package/dist/docker/docker-manager.js +262 -22
  57. package/dist/docker/docker-manager.js.map +1 -1
  58. package/dist/docker/docker-probe.d.ts +45 -0
  59. package/dist/docker/docker-probe.js +86 -0
  60. package/dist/docker/docker-probe.js.map +1 -0
  61. package/dist/docker/docker-progress-sink.d.ts +1 -1
  62. package/dist/docker/mitm-proxy.d.ts +52 -1
  63. package/dist/docker/mitm-proxy.js +234 -10
  64. package/dist/docker/mitm-proxy.js.map +1 -1
  65. package/dist/docker/network-topology.d.ts +81 -0
  66. package/dist/docker/network-topology.js +160 -0
  67. package/dist/docker/network-topology.js.map +1 -0
  68. package/dist/docker/oauth-credentials.d.ts +13 -0
  69. package/dist/docker/oauth-credentials.js +125 -0
  70. package/dist/docker/oauth-credentials.js.map +1 -1
  71. package/dist/docker/package-types.d.ts +1 -1
  72. package/dist/docker/provider-config.d.ts +29 -1
  73. package/dist/docker/provider-config.js +93 -3
  74. package/dist/docker/provider-config.js.map +1 -1
  75. package/dist/docker/provision-lock.d.ts +46 -0
  76. package/dist/docker/provision-lock.js +152 -0
  77. package/dist/docker/provision-lock.js.map +1 -0
  78. package/dist/docker/pty-session.d.ts +15 -0
  79. package/dist/docker/pty-session.js +139 -67
  80. package/dist/docker/pty-session.js.map +1 -1
  81. package/dist/docker/registry-proxy.d.ts +46 -0
  82. package/dist/docker/registry-proxy.js +255 -1
  83. package/dist/docker/registry-proxy.js.map +1 -1
  84. package/dist/docker/resource-limits.d.ts +14 -5
  85. package/dist/docker/resource-limits.js +11 -8
  86. package/dist/docker/resource-limits.js.map +1 -1
  87. package/dist/docker/trajectory-capture.d.ts +79 -0
  88. package/dist/docker/trajectory-capture.js +521 -0
  89. package/dist/docker/trajectory-capture.js.map +1 -0
  90. package/dist/docker/trajectory-reassembler.d.ts +286 -0
  91. package/dist/docker/trajectory-reassembler.js +990 -0
  92. package/dist/docker/trajectory-reassembler.js.map +1 -0
  93. package/dist/docker/trajectory-tap.d.ts +100 -0
  94. package/dist/docker/trajectory-tap.js +410 -0
  95. package/dist/docker/trajectory-tap.js.map +1 -0
  96. package/dist/docker/trajectory-types.d.ts +187 -0
  97. package/dist/docker/trajectory-types.js +43 -0
  98. package/dist/docker/trajectory-types.js.map +1 -0
  99. package/dist/docker/types.d.ts +53 -7
  100. package/dist/doctor/checks.d.ts +36 -3
  101. package/dist/doctor/checks.js +102 -15
  102. package/dist/doctor/checks.js.map +1 -1
  103. package/dist/doctor/doctor-command.js +39 -9
  104. package/dist/doctor/doctor-command.js.map +1 -1
  105. package/dist/doctor/mcp-liveness.d.ts +1 -1
  106. package/dist/doctor/mcp-liveness.js +12 -4
  107. package/dist/doctor/mcp-liveness.js.map +1 -1
  108. package/dist/index.js +30 -12
  109. package/dist/index.js.map +1 -1
  110. package/dist/mux/mux-app.d.ts +2 -0
  111. package/dist/mux/mux-app.js +1 -0
  112. package/dist/mux/mux-app.js.map +1 -1
  113. package/dist/mux/mux-command.js +19 -6
  114. package/dist/mux/mux-command.js.map +1 -1
  115. package/dist/mux/pty-bridge.d.ts +2 -0
  116. package/dist/mux/pty-bridge.js +3 -0
  117. package/dist/mux/pty-bridge.js.map +1 -1
  118. package/dist/observe/observe-command.js +112 -125
  119. package/dist/observe/observe-command.js.map +1 -1
  120. package/dist/persona/broad-policy-validator.d.ts +95 -0
  121. package/dist/persona/broad-policy-validator.js +171 -0
  122. package/dist/persona/broad-policy-validator.js.map +1 -0
  123. package/dist/persona/compile-persona-policy.d.ts +54 -2
  124. package/dist/persona/compile-persona-policy.js +29 -4
  125. package/dist/persona/compile-persona-policy.js.map +1 -1
  126. package/dist/persona/event-bus-progress-reporter.d.ts +57 -0
  127. package/dist/persona/event-bus-progress-reporter.js +66 -0
  128. package/dist/persona/event-bus-progress-reporter.js.map +1 -0
  129. package/dist/persona/persona-command.js +46 -76
  130. package/dist/persona/persona-command.js.map +1 -1
  131. package/dist/persona/persona-compile-orchestrator.d.ts +101 -0
  132. package/dist/persona/persona-compile-orchestrator.js +504 -0
  133. package/dist/persona/persona-compile-orchestrator.js.map +1 -0
  134. package/dist/persona/persona-service.d.ts +137 -0
  135. package/dist/persona/persona-service.js +263 -0
  136. package/dist/persona/persona-service.js.map +1 -0
  137. package/dist/persona/policy-mutation-audit.d.ts +109 -0
  138. package/dist/persona/policy-mutation-audit.js +179 -0
  139. package/dist/persona/policy-mutation-audit.js.map +1 -0
  140. package/dist/persona/rule-delta.d.ts +30 -0
  141. package/dist/persona/rule-delta.js +82 -0
  142. package/dist/persona/rule-delta.js.map +1 -0
  143. package/dist/persona/types.d.ts +12 -0
  144. package/dist/pipeline/annotate.js +10 -2
  145. package/dist/pipeline/annotate.js.map +1 -1
  146. package/dist/pipeline/compile.js +14 -2
  147. package/dist/pipeline/compile.js.map +1 -1
  148. package/dist/pipeline/pipeline-runner.d.ts +63 -4
  149. package/dist/pipeline/pipeline-runner.js +159 -50
  150. package/dist/pipeline/pipeline-runner.js.map +1 -1
  151. package/dist/pipeline/pipeline-shared.d.ts +32 -3
  152. package/dist/pipeline/pipeline-shared.js +76 -8
  153. package/dist/pipeline/pipeline-shared.js.map +1 -1
  154. package/dist/pipeline/refresh-lists.js +3 -5
  155. package/dist/pipeline/refresh-lists.js.map +1 -1
  156. package/dist/sandbox/index.d.ts +19 -4
  157. package/dist/sandbox/index.js +31 -18
  158. package/dist/sandbox/index.js.map +1 -1
  159. package/dist/session/index.js +10 -1
  160. package/dist/session/index.js.map +1 -1
  161. package/dist/session/preflight.d.ts +1 -30
  162. package/dist/session/preflight.js +52 -85
  163. package/dist/session/preflight.js.map +1 -1
  164. package/dist/session/types.d.ts +9 -0
  165. package/dist/signal/bot-command.js +6 -1
  166. package/dist/signal/bot-command.js.map +1 -1
  167. package/dist/signal/setup-signal.js +1 -1
  168. package/dist/signal/setup-signal.js.map +1 -1
  169. package/dist/signal/signal-container.d.ts +3 -3
  170. package/dist/signal/signal-container.js +2 -2
  171. package/dist/signal/signal-container.js.map +1 -1
  172. package/dist/trusted-process/call-circuit-breaker.d.ts +6 -0
  173. package/dist/trusted-process/call-circuit-breaker.js +22 -3
  174. package/dist/trusted-process/call-circuit-breaker.js.map +1 -1
  175. package/dist/trusted-process/container-command.d.ts +35 -0
  176. package/dist/trusted-process/container-command.js +49 -0
  177. package/dist/trusted-process/container-command.js.map +1 -0
  178. package/dist/trusted-process/mcp-proxy-server.js +35 -3
  179. package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
  180. package/dist/trusted-process/policy-engine.js +13 -2
  181. package/dist/trusted-process/policy-engine.js.map +1 -1
  182. package/dist/trusted-process/tcp-server-transport.d.ts +12 -1
  183. package/dist/trusted-process/tcp-server-transport.js +9 -1
  184. package/dist/trusted-process/tcp-server-transport.js.map +1 -1
  185. package/dist/trusted-process/tool-call-coordinator.d.ts +22 -8
  186. package/dist/trusted-process/tool-call-coordinator.js +149 -65
  187. package/dist/trusted-process/tool-call-coordinator.js.map +1 -1
  188. package/dist/trusted-process/tool-call-pipeline.d.ts +8 -0
  189. package/dist/trusted-process/tool-call-pipeline.js +68 -34
  190. package/dist/trusted-process/tool-call-pipeline.js.map +1 -1
  191. package/dist/util/atomic-write.d.ts +31 -0
  192. package/dist/util/atomic-write.js +43 -0
  193. package/dist/util/atomic-write.js.map +1 -0
  194. package/dist/web-ui/conn-registry.d.ts +14 -0
  195. package/dist/web-ui/conn-registry.js +25 -0
  196. package/dist/web-ui/conn-registry.js.map +1 -0
  197. package/dist/web-ui/dispatch/persona-dispatch.d.ts +46 -2
  198. package/dist/web-ui/dispatch/persona-dispatch.js +209 -56
  199. package/dist/web-ui/dispatch/persona-dispatch.js.map +1 -1
  200. package/dist/web-ui/dispatch/session-dispatch.js +22 -4
  201. package/dist/web-ui/dispatch/session-dispatch.js.map +1 -1
  202. package/dist/web-ui/dispatch/types.d.ts +23 -0
  203. package/dist/web-ui/dispatch/types.js +4 -0
  204. package/dist/web-ui/dispatch/types.js.map +1 -1
  205. package/dist/web-ui/dispatch/workflow-dispatch.js +116 -5
  206. package/dist/web-ui/dispatch/workflow-dispatch.js.map +1 -1
  207. package/dist/web-ui/json-rpc-dispatch.js +1 -1
  208. package/dist/web-ui/json-rpc-dispatch.js.map +1 -1
  209. package/dist/web-ui/web-event-bus.d.ts +25 -1
  210. package/dist/web-ui/web-event-bus.js.map +1 -1
  211. package/dist/web-ui/web-ui-server.d.ts +14 -0
  212. package/dist/web-ui/web-ui-server.js +16 -0
  213. package/dist/web-ui/web-ui-server.js.map +1 -1
  214. package/dist/web-ui/web-ui-types.d.ts +133 -5
  215. package/dist/web-ui/web-ui-types.js.map +1 -1
  216. package/dist/web-ui-static/assets/index-BD5U6ILh.css +1 -0
  217. package/dist/web-ui-static/assets/index-FMsHWEfK.js +79 -0
  218. package/dist/web-ui-static/index.html +2 -2
  219. package/dist/workflow/cli-shared.d.ts +62 -0
  220. package/dist/workflow/cli-shared.js +117 -0
  221. package/dist/workflow/cli-shared.js.map +1 -0
  222. package/dist/workflow/cli-support.js +0 -2
  223. package/dist/workflow/cli-support.js.map +1 -1
  224. package/dist/workflow/container-snapshots.d.ts +29 -0
  225. package/dist/workflow/container-snapshots.js +137 -0
  226. package/dist/workflow/container-snapshots.js.map +1 -0
  227. package/dist/workflow/daemon-gate-commands.d.ts +21 -0
  228. package/dist/workflow/daemon-gate-commands.js +599 -0
  229. package/dist/workflow/daemon-gate-commands.js.map +1 -0
  230. package/dist/workflow/discovery.d.ts +29 -0
  231. package/dist/workflow/discovery.js +67 -7
  232. package/dist/workflow/discovery.js.map +1 -1
  233. package/dist/workflow/lane-template.d.ts +89 -0
  234. package/dist/workflow/lane-template.js +141 -0
  235. package/dist/workflow/lane-template.js.map +1 -0
  236. package/dist/workflow/lint.d.ts +7 -1
  237. package/dist/workflow/lint.js +186 -3
  238. package/dist/workflow/lint.js.map +1 -1
  239. package/dist/workflow/machine-builder.d.ts +90 -2
  240. package/dist/workflow/machine-builder.js +222 -29
  241. package/dist/workflow/machine-builder.js.map +1 -1
  242. package/dist/workflow/message-log.d.ts +15 -1
  243. package/dist/workflow/message-log.js.map +1 -1
  244. package/dist/workflow/orchestrator.d.ts +505 -1
  245. package/dist/workflow/orchestrator.js +1722 -69
  246. package/dist/workflow/orchestrator.js.map +1 -1
  247. package/dist/workflow/prompt-builder.js +2 -1
  248. package/dist/workflow/prompt-builder.js.map +1 -1
  249. package/dist/workflow/run-state-command.js +1 -1
  250. package/dist/workflow/run-state-command.js.map +1 -1
  251. package/dist/workflow/status-parser.js +19 -4
  252. package/dist/workflow/status-parser.js.map +1 -1
  253. package/dist/workflow/types.d.ts +123 -23
  254. package/dist/workflow/types.js +2 -0
  255. package/dist/workflow/types.js.map +1 -1
  256. package/dist/workflow/validate.d.ts +23 -1
  257. package/dist/workflow/validate.js +311 -22
  258. package/dist/workflow/validate.js.map +1 -1
  259. package/dist/workflow/workflow-command.d.ts +0 -17
  260. package/dist/workflow/workflow-command.js +110 -88
  261. package/dist/workflow/workflow-command.js.map +1 -1
  262. package/dist/workflow/workflow-discovery.d.ts +2 -0
  263. package/dist/workflow/workflow-discovery.js +22 -1
  264. package/dist/workflow/workflow-discovery.js.map +1 -1
  265. package/dist/workflow/workflow-manager.d.ts +34 -0
  266. package/dist/workflow/workflow-manager.js +52 -1
  267. package/dist/workflow/workflow-manager.js.map +1 -1
  268. package/dist/workflow/workflows/design-and-code/README.md +50 -0
  269. package/dist/workflow/workflows/deterministic-eval-smoke/scripts/format_report.js +29 -0
  270. package/dist/workflow/workflows/deterministic-eval-smoke/scripts/package.json +5 -0
  271. package/dist/workflow/workflows/deterministic-eval-smoke/scripts/requirements.txt +1 -0
  272. package/dist/workflow/workflows/deterministic-eval-smoke/scripts/run_eval.py +41 -0
  273. package/dist/workflow/workflows/deterministic-eval-smoke/workflow.yaml +57 -0
  274. package/dist/workflow/workflows/deterministic-verdict-smoke/scripts/classify.py +18 -0
  275. package/dist/workflow/workflows/deterministic-verdict-smoke/workflow.yaml +51 -0
  276. package/dist/workflow/workflows/evolve/scripts/LICENSE +201 -0
  277. package/dist/workflow/workflows/evolve/scripts/README.md +314 -0
  278. package/dist/workflow/workflows/evolve/scripts/evolve-brief +16 -0
  279. package/dist/workflow/workflows/evolve/scripts/evolve-cognition +16 -0
  280. package/dist/workflow/workflows/evolve/scripts/evolve-db +16 -0
  281. package/dist/workflow/workflows/evolve/scripts/evolve-eval +16 -0
  282. package/dist/workflow/workflows/evolve/scripts/evolve-files +16 -0
  283. package/dist/workflow/workflows/evolve/scripts/evolve-summary +16 -0
  284. package/dist/workflow/workflows/evolve/scripts/evolve_core/__init__.py +14 -0
  285. package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/__init__.py +17 -0
  286. package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/base.py +21 -0
  287. package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/factory.py +90 -0
  288. package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/greedy.py +17 -0
  289. package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/island.py +316 -0
  290. package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/random.py +18 -0
  291. package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/ucb1.py +55 -0
  292. package/dist/workflow/workflows/evolve/scripts/evolve_core/best_snapshot.py +62 -0
  293. package/dist/workflow/workflows/evolve/scripts/evolve_core/cli.py +752 -0
  294. package/dist/workflow/workflows/evolve/scripts/evolve_core/cognition.py +127 -0
  295. package/dist/workflow/workflows/evolve/scripts/evolve_core/database.py +218 -0
  296. package/dist/workflow/workflows/evolve/scripts/evolve_core/diff.py +57 -0
  297. package/dist/workflow/workflows/evolve/scripts/evolve_core/embedding.py +84 -0
  298. package/dist/workflow/workflows/evolve/scripts/evolve_core/file_lock.py +45 -0
  299. package/dist/workflow/workflows/evolve/scripts/evolve_core/run_state.py +343 -0
  300. package/dist/workflow/workflows/evolve/scripts/evolve_core/sampling_config.py +173 -0
  301. package/dist/workflow/workflows/evolve/scripts/evolve_core/structures.py +93 -0
  302. package/dist/workflow/workflows/evolve/scripts/evolve_core/vector_index.py +191 -0
  303. package/dist/workflow/workflows/evolve/scripts/evolve_result.py +1503 -0
  304. package/dist/workflow/workflows/evolve/scripts/requirements.txt +2 -0
  305. package/dist/workflow/workflows/evolve/workflow.yaml +646 -0
  306. package/dist/workflow/workflows/test-email-summary/workflow.yaml +1 -0
  307. package/dist/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +6 -1
  308. package/dist/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +1 -0
  309. package/dist/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +4 -0
  310. package/dist/workflow/workflows/vuln-discovery/workflow.yaml +13 -8
  311. package/docker/Dockerfile.base +22 -0
  312. package/docker/Dockerfile.base.arm64 +18 -0
  313. package/docker/Dockerfile.claude-code +3 -1
  314. package/docker/Dockerfile.codex +17 -0
  315. package/docker/Dockerfile.goose +3 -1
  316. package/docker/entrypoint-claude-code.sh +6 -45
  317. package/docker/entrypoint-codex.sh +42 -0
  318. package/docker/entrypoint-goose.sh +5 -24
  319. package/docker/entrypoint-uid-remap.sh +93 -0
  320. package/package.json +9 -4
  321. package/src/workflow/workflows/design-and-code/README.md +50 -0
  322. package/src/workflow/workflows/deterministic-eval-smoke/scripts/format_report.js +29 -0
  323. package/src/workflow/workflows/deterministic-eval-smoke/scripts/package.json +5 -0
  324. package/src/workflow/workflows/deterministic-eval-smoke/scripts/requirements.txt +1 -0
  325. package/src/workflow/workflows/deterministic-eval-smoke/scripts/run_eval.py +41 -0
  326. package/src/workflow/workflows/deterministic-eval-smoke/workflow.yaml +57 -0
  327. package/src/workflow/workflows/deterministic-verdict-smoke/scripts/classify.py +18 -0
  328. package/src/workflow/workflows/deterministic-verdict-smoke/workflow.yaml +51 -0
  329. package/src/workflow/workflows/evolve/scripts/LICENSE +201 -0
  330. package/src/workflow/workflows/evolve/scripts/README.md +314 -0
  331. package/src/workflow/workflows/evolve/scripts/evolve-brief +16 -0
  332. package/src/workflow/workflows/evolve/scripts/evolve-cognition +16 -0
  333. package/src/workflow/workflows/evolve/scripts/evolve-db +16 -0
  334. package/src/workflow/workflows/evolve/scripts/evolve-eval +16 -0
  335. package/src/workflow/workflows/evolve/scripts/evolve-files +16 -0
  336. package/src/workflow/workflows/evolve/scripts/evolve-summary +16 -0
  337. package/src/workflow/workflows/evolve/scripts/evolve_core/__init__.py +14 -0
  338. package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/__init__.py +17 -0
  339. package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/base.py +21 -0
  340. package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/factory.py +90 -0
  341. package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/greedy.py +17 -0
  342. package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/island.py +316 -0
  343. package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/random.py +18 -0
  344. package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/ucb1.py +55 -0
  345. package/src/workflow/workflows/evolve/scripts/evolve_core/best_snapshot.py +62 -0
  346. package/src/workflow/workflows/evolve/scripts/evolve_core/cli.py +752 -0
  347. package/src/workflow/workflows/evolve/scripts/evolve_core/cognition.py +127 -0
  348. package/src/workflow/workflows/evolve/scripts/evolve_core/database.py +218 -0
  349. package/src/workflow/workflows/evolve/scripts/evolve_core/diff.py +57 -0
  350. package/src/workflow/workflows/evolve/scripts/evolve_core/embedding.py +84 -0
  351. package/src/workflow/workflows/evolve/scripts/evolve_core/file_lock.py +45 -0
  352. package/src/workflow/workflows/evolve/scripts/evolve_core/run_state.py +343 -0
  353. package/src/workflow/workflows/evolve/scripts/evolve_core/sampling_config.py +173 -0
  354. package/src/workflow/workflows/evolve/scripts/evolve_core/structures.py +93 -0
  355. package/src/workflow/workflows/evolve/scripts/evolve_core/vector_index.py +191 -0
  356. package/src/workflow/workflows/evolve/scripts/evolve_result.py +1503 -0
  357. package/src/workflow/workflows/evolve/scripts/requirements.txt +2 -0
  358. package/src/workflow/workflows/evolve/workflow.yaml +646 -0
  359. package/src/workflow/workflows/test-email-summary/workflow.yaml +1 -0
  360. package/src/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +6 -1
  361. package/src/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +1 -0
  362. package/src/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +4 -0
  363. package/src/workflow/workflows/vuln-discovery/workflow.yaml +13 -8
  364. package/dist/web-ui-static/assets/index-BFO5z1js.js +0 -76
  365. package/dist/web-ui-static/assets/index-CCUwrkIL.css +0 -1
@@ -2,13 +2,13 @@
2
2
  * Shared container lifecycle helpers used by both DockerAgentSession and
3
3
  * runPtySession to avoid duplicating stop/remove/network-cleanup logic.
4
4
  */
5
- import type { DockerManager } from './types.js';
5
+ import type { ContainerRuntime } from './types.js';
6
6
  /**
7
7
  * Stop and remove Docker containers and their per-session network in parallel.
8
8
  * Best-effort: individual failures are swallowed so one broken container
9
9
  * doesn't prevent cleanup of the others.
10
10
  */
11
- export declare function cleanupContainers(docker: DockerManager, opts: {
11
+ export declare function cleanupContainers(docker: ContainerRuntime, opts: {
12
12
  containerId: string | null;
13
13
  sidecarContainerId: string | null;
14
14
  networkName: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"container-lifecycle.js","sourceRoot":"","sources":["../../src/docker/container-lifecycle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAqB,EACrB,IAIC;IAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7B,QAAQ,CAAC,IAAI,CACX,MAAM;aACH,IAAI,CAAC,GAAG,CAAC;aACT,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC9B,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACnB,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACpC,QAAQ,CAAC,IAAI,CACX,MAAM;aACH,IAAI,CAAC,GAAG,CAAC;aACT,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC9B,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACnB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5B,qEAAqE;IACrE,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"container-lifecycle.js","sourceRoot":"","sources":["../../src/docker/container-lifecycle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAwB,EACxB,IAIC;IAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7B,QAAQ,CAAC,IAAI,CACX,MAAM;aACH,IAAI,CAAC,GAAG,CAAC;aACT,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC9B,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACnB,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACpC,QAAQ,CAAC,IAAI,CACX,MAAM;aACH,IAAI,CAAC,GAAG,CAAC;aACT,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC9B,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACnB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5B,qEAAqE;IACrE,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Container runtime selection seam.
3
+ *
4
+ * Agent-session infrastructure obtains its ContainerRuntime through this
5
+ * factory instead of constructing a specific implementation, so adding a
6
+ * runtime is a new case here rather than a change at every call site.
7
+ * Docker-specific host services (signal-cli container, daemon orphan
8
+ * sweeps) intentionally keep using `createDockerManager()` directly.
9
+ *
10
+ * See docs/designs/apple-container-runtime.md.
11
+ */
12
+ import type { ContainerRuntime } from './types.js';
13
+ import type { DockerAvailability } from './docker-probe.js';
14
+ import type { ContainerRuntimeSetting } from '../config/user-config.js';
15
+ export declare const CONTAINER_RUNTIME_KINDS: readonly ["docker", "apple-container"];
16
+ export type ContainerRuntimeKind = (typeof CONTAINER_RUNTIME_KINDS)[number];
17
+ /** Test hook: clears the memoized 'auto' probe result. */
18
+ export declare function resetRuntimeKindResolutionForTests(): void;
19
+ /**
20
+ * Resolves which runtime kind agent sessions should use.
21
+ *
22
+ * Precedence: `IRONCURTAIN_CONTAINER_RUNTIME` env override > the
23
+ * `containerRuntime` config field > 'auto'. 'auto' picks apple-container
24
+ * when its availability probe passes (Apple silicon, macOS 26+,
25
+ * container CLI >= 1.0 with services running) and Docker otherwise.
26
+ * See docs/designs/apple-container-runtime.md, design decision 6.
27
+ */
28
+ export declare function resolveRuntimeKind(configured?: ContainerRuntimeSetting, env?: NodeJS.ProcessEnv, appleProbe?: () => Promise<DockerAvailability>): Promise<ContainerRuntimeKind>;
29
+ export declare function createContainerRuntime(kind?: ContainerRuntimeKind): ContainerRuntime;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Container runtime selection seam.
3
+ *
4
+ * Agent-session infrastructure obtains its ContainerRuntime through this
5
+ * factory instead of constructing a specific implementation, so adding a
6
+ * runtime is a new case here rather than a change at every call site.
7
+ * Docker-specific host services (signal-cli container, daemon orphan
8
+ * sweeps) intentionally keep using `createDockerManager()` directly.
9
+ *
10
+ * See docs/designs/apple-container-runtime.md.
11
+ */
12
+ import { createDockerManager } from './docker-manager.js';
13
+ import { createAppleContainerManager, checkAppleContainerAvailable } from './apple-container-manager.js';
14
+ import * as logger from '../logger.js';
15
+ export const CONTAINER_RUNTIME_KINDS = ['docker', 'apple-container'];
16
+ function isContainerRuntimeKind(value) {
17
+ return CONTAINER_RUNTIME_KINDS.includes(value);
18
+ }
19
+ /**
20
+ * Parses the `IRONCURTAIN_CONTAINER_RUNTIME` env override. Returns
21
+ * undefined when unset; unknown values fail loudly rather than silently
22
+ * running a different sandbox than the operator asked for.
23
+ */
24
+ function parseEnvOverride(env) {
25
+ const requested = env.IRONCURTAIN_CONTAINER_RUNTIME;
26
+ if (requested === undefined || requested === '')
27
+ return undefined;
28
+ if (!isContainerRuntimeKind(requested)) {
29
+ throw new Error(`Unknown IRONCURTAIN_CONTAINER_RUNTIME value "${requested}" (expected one of: ${CONTAINER_RUNTIME_KINDS.join(', ')})`);
30
+ }
31
+ return requested;
32
+ }
33
+ /**
34
+ * Memoized result of the 'auto' probe. One process serves one machine,
35
+ * so the answer cannot change mid-run, and memoizing keeps the three
36
+ * resolution sites (session preflight, infrastructure setup, image
37
+ * ensure) agreeing without re-probing the container apiserver.
38
+ */
39
+ let autoResolution;
40
+ /** Test hook: clears the memoized 'auto' probe result. */
41
+ export function resetRuntimeKindResolutionForTests() {
42
+ autoResolution = undefined;
43
+ }
44
+ /**
45
+ * Resolves which runtime kind agent sessions should use.
46
+ *
47
+ * Precedence: `IRONCURTAIN_CONTAINER_RUNTIME` env override > the
48
+ * `containerRuntime` config field > 'auto'. 'auto' picks apple-container
49
+ * when its availability probe passes (Apple silicon, macOS 26+,
50
+ * container CLI >= 1.0 with services running) and Docker otherwise.
51
+ * See docs/designs/apple-container-runtime.md, design decision 6.
52
+ */
53
+ export async function resolveRuntimeKind(configured = 'auto', env = process.env, appleProbe = checkAppleContainerAvailable) {
54
+ const override = parseEnvOverride(env);
55
+ if (override !== undefined)
56
+ return override;
57
+ if (configured !== 'auto')
58
+ return configured;
59
+ if (autoResolution === undefined) {
60
+ const apple = await appleProbe();
61
+ autoResolution = apple.available ? 'apple-container' : 'docker';
62
+ logger.info(apple.available
63
+ ? `containerRuntime=auto: using apple-container (probe passed)`
64
+ : `containerRuntime=auto: using docker (apple-container unavailable: ${apple.reason})`);
65
+ }
66
+ return autoResolution;
67
+ }
68
+ export function createContainerRuntime(kind = 'docker') {
69
+ switch (kind) {
70
+ case 'docker':
71
+ return createDockerManager();
72
+ case 'apple-container':
73
+ return createAppleContainerManager();
74
+ }
75
+ }
76
+ //# sourceMappingURL=container-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-runtime.js","sourceRoot":"","sources":["../../src/docker/container-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACzG,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAU,CAAC;AAG9E,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAQ,uBAA6C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,GAAsB;IAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,6BAA6B,CAAC;IACpD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClE,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,gDAAgD,SAAS,uBAAuB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtH,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,IAAI,cAAgD,CAAC;AAErD,0DAA0D;AAC1D,MAAM,UAAU,kCAAkC;IAChD,cAAc,GAAG,SAAS,CAAC;AAC7B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,aAAsC,MAAM,EAC5C,MAAyB,OAAO,CAAC,GAAG,EACpC,aAAgD,4BAA4B;IAE5E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC;IAE7C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;QACjC,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChE,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,SAAS;YACb,CAAC,CAAC,6DAA6D;YAC/D,CAAC,CAAC,qEAAqE,KAAK,CAAC,MAAM,GAAG,CACzF,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAA6B,QAAQ;IAC1E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,mBAAmB,EAAE,CAAC;QAC/B,KAAK,iBAAiB;YACpB,OAAO,2BAA2B,EAAE,CAAC;IACzC,CAAC;AACH,CAAC"}
@@ -126,6 +126,22 @@ export class DockerAgentSession {
126
126
  // an entry the proxy just wrote.
127
127
  this.auditTailer = new AuditLogTailer(this.infra.auditLogPath, (event) => this.emitDiagnostic(event));
128
128
  this.auditTailer.start();
129
+ // Trajectory capture is driven HERE only in standalone (owns-infra)
130
+ // mode: the session owns the bundle and runs exactly one Claude session
131
+ // through it, with no fsmState (not a workflow) and no persona, so
132
+ // `{ sessionId }` alone is correct. In borrow mode (workflow shared
133
+ // container) the orchestrator drives the capture lifecycle and supplies
134
+ // the full `{ sessionId, persona, fsmState }`; the session must NOT also
135
+ // call begin/end here, or the orchestrator's richer call would be
136
+ // silently dropped by the dispatcher's first-wins idempotency, losing
137
+ // persona/fsmState on the `session-start` manifest entry.
138
+ // No-op when capture is disabled (writer absent). The `ownsInfra` gate
139
+ // is a real lifecycle decision (borrow mode lets the orchestrator drive
140
+ // begin/end); the method is always present.
141
+ // See docs/designs/mitm-token-trajectory-capture.md §11.
142
+ if (this.ownsInfra) {
143
+ this.infra.beginCaptureSession({ sessionId: this.sessionId });
144
+ }
129
145
  this.status = 'ready';
130
146
  }
131
147
  getInfo() {
@@ -183,7 +199,7 @@ export class DockerAgentSession {
183
199
  logger.info(`[docker-agent] stderr: ${stderr.substring(0, 500)}`);
184
200
  }
185
201
  this.cumulativeActiveMs += Date.now() - turnStartMs;
186
- const response = this.infra.adapter.extractResponse(exitCode, stdout);
202
+ const response = this.infra.adapter.extractResponse(exitCode, stdout, stderr);
187
203
  if (response.costUsd !== undefined) {
188
204
  this.cumulativeCostUsd = response.costUsd;
189
205
  }
@@ -310,6 +326,19 @@ export class DockerAgentSession {
310
326
  this.status = 'closed';
311
327
  this.escalationWatcher?.stop();
312
328
  this.auditTailer?.stop();
329
+ // Trajectory capture: end the capture session BEFORE infrastructure
330
+ // teardown so the `session-end` manifest entry is durable. The
331
+ // infrastructure-teardown safety net inside destroyDockerInfrastructure
332
+ // would otherwise emit a synthetic poisoned end. Pre-empting it keeps
333
+ // the manifest clean for normal exits. Gated on `ownsInfra` to stay
334
+ // symmetric with the begin call above: in borrow mode the orchestrator
335
+ // owns begin/end, so the session calling end alone would terminate a
336
+ // capture session the orchestrator is still using.
337
+ if (this.ownsInfra) {
338
+ await this.infra.endCaptureSession(this.sessionId).catch((err) => {
339
+ logger.warn(`endCaptureSession failed: ${err instanceof Error ? err.message : String(err)}`);
340
+ });
341
+ }
313
342
  if (this.ownsInfra) {
314
343
  await destroyDockerInfrastructure(this.infra);
315
344
  }
@@ -1 +1 @@
1
- {"version":3,"file":"docker-agent-session.js","sourceRoot":"","sources":["../../src/docker/docker-agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker-agent-session.js","sourceRoot":"","sources":["../../src/docker/docker-agent-session.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,11 @@ import { type AgentAdapter, type AgentId, type ConversationStateConfig } from '.
12
12
  import type { ResolvedUserConfig } from '../config/user-config.js';
13
13
  import type { DockerProxy } from './code-mode-proxy.js';
14
14
  import type { MitmProxy } from './mitm-proxy.js';
15
+ import type { TrajectoryCaptureWriter } from './trajectory-capture.js';
15
16
  import type { CertificateAuthority } from './ca.js';
16
- import type { DockerManager } from './types.js';
17
+ import type { ContainerRuntime } from './types.js';
18
+ import type { ContainerRuntimeKind } from './container-runtime.js';
19
+ import type { HostOnlyNetwork, NetworkTopology } from './network-topology.js';
17
20
  import { type ProviderConfig, type UpstreamTarget } from './provider-config.js';
18
21
  import type { ResolvedSkill } from '../skills/types.js';
19
22
  /**
@@ -105,14 +108,30 @@ export interface PreContainerInfrastructure {
105
108
  readonly auditLogPath: string;
106
109
  readonly proxy: DockerProxy;
107
110
  readonly mitmProxy: MitmProxy;
108
- readonly docker: DockerManager;
111
+ readonly docker: ContainerRuntime;
109
112
  readonly adapter: AgentAdapter;
110
113
  readonly ca: CertificateAuthority;
111
114
  readonly fakeKeys: Map<string, string>;
112
115
  readonly orientationDir: string;
113
116
  readonly systemPrompt: string;
114
117
  readonly image: string;
118
+ /** Container runtime backend this bundle was built for. */
119
+ readonly runtimeKind: ContainerRuntimeKind;
120
+ /**
121
+ * Proxy-transport topology (see network-topology.ts). `useTcp` is the
122
+ * legacy projection `topology !== 'uds'`, kept for existing consumers.
123
+ */
124
+ readonly topology: NetworkTopology;
115
125
  readonly useTcp: boolean;
126
+ /**
127
+ * Per-bundle host-only network, present only on `tcp-hostonly`
128
+ * bundles. Created during the prepare phase (the gateway address is
129
+ * needed for orientation and container env before any container
130
+ * exists); `createSessionContainers` attaches the agent container to
131
+ * it and reports it as `internalNetwork` so the standard teardown
132
+ * paths remove it.
133
+ */
134
+ readonly hostOnlyNetwork?: HostOnlyNetwork;
116
135
  readonly socketsDir: string;
117
136
  /** MITM proxy listen address (port for TCP mode, socketPath for UDS mode). */
118
137
  readonly mitmAddr: {
@@ -138,6 +157,24 @@ export interface PreContainerInfrastructure {
138
157
  /** Container target path; copied verbatim from `adapter.skills.containerPath`. */
139
158
  readonly target: string;
140
159
  };
160
+ /** Host-side workflow scripts dir mounted read-only into the container. */
161
+ readonly scriptsMount?: {
162
+ readonly hostDir: string;
163
+ readonly target: string;
164
+ };
165
+ /** Host-side cached Python venv mounted at /opt/workflow-venv for workflow helpers. */
166
+ readonly workflowPythonVenvMount?: {
167
+ readonly hostDir: string;
168
+ readonly target: string;
169
+ readonly cacheKey: string;
170
+ };
171
+ /** Host-side cached node_modules mounted for workflow helper scripts. */
172
+ readonly workflowNodeModulesMount?: {
173
+ readonly hostDir: string;
174
+ readonly target: string;
175
+ readonly cacheKey: string;
176
+ readonly hasPackageLock: boolean;
177
+ };
141
178
  /**
142
179
  * Re-stages the bundle's skills with the given resolved set.
143
180
  * No-op when `skillsMount` is undefined or when the set is byte-identical
@@ -157,6 +194,48 @@ export interface PreContainerInfrastructure {
157
194
  * wrapper over `MitmProxy.setTokenSessionId()`.
158
195
  */
159
196
  setTokenSessionId(id: import('../session/types.js').SessionId | undefined): void;
197
+ /**
198
+ * Begin trajectory capture for a session. Atomically:
199
+ * 1. sets the proxy's captureSessionId (`MitmProxy.setCaptureSessionId`)
200
+ * 2. sets the proxy's capturePersona (`MitmProxy.setCapturePersona`)
201
+ * 3. opens the per-session trajectory file and appends a `session-start`
202
+ * manifest entry (`TrajectoryCaptureWriter.beginSession`)
203
+ *
204
+ * No-op when capture is disabled (writer is undefined). MUST be called
205
+ * before the agent process is unblocked, so the first exchange the
206
+ * agent emits is already tagged with the right session. See
207
+ * docs/designs/mitm-token-trajectory-capture.md §11.
208
+ *
209
+ * Always present (never optional): the method is inert when the writer
210
+ * is undefined, so "always present, sometimes a no-op" is correct.
211
+ * Making it required turns "forgot to wire capture" into a compile
212
+ * error instead of a silent no-op.
213
+ */
214
+ beginCaptureSession: (opts: {
215
+ sessionId: import('../session/types.js').SessionId;
216
+ persona?: string;
217
+ fsmState?: string;
218
+ }) => void;
219
+ /**
220
+ * End trajectory capture for a session. Drives the dispatcher's two-phase
221
+ * endSession (§9: flip endRequested, drain in-flight reassembly, enqueue
222
+ * `session-end` with counter snapshot). MUST be awaited BEFORE
223
+ * `session.close()` so the manifest entry is durable even if `session.close()`
224
+ * throws.
225
+ *
226
+ * No-op when capture is disabled. Always present (never optional): the
227
+ * method is inert when the writer is undefined, so "always present,
228
+ * sometimes a no-op" is correct, and a consumer that forgets to wire
229
+ * capture now fails to compile rather than silently dropping it.
230
+ */
231
+ endCaptureSession: (sessionId: import('../session/types.js').SessionId) => Promise<void>;
232
+ /**
233
+ * Internal: trajectory-capture writer reference, exposed so
234
+ * `destroyDockerInfrastructure` / `destroyWorkflowInfrastructure` can
235
+ * call `writer.close()` as the infrastructure-teardown safety net
236
+ * (§9). Undefined when capture is disabled. Not for orchestrator use.
237
+ */
238
+ readonly captureWriter?: TrajectoryCaptureWriter;
160
239
  }
161
240
  /**
162
241
  * Full Docker session infrastructure, including a running main container.
@@ -193,9 +272,36 @@ export interface DockerInfrastructure extends PreContainerInfrastructure {
193
272
  * alongside the always-present `ironcurtain.bundle=<bundleId>`. When
194
273
  * unset, only `ironcurtain.bundle` is emitted (standalone CLI / PTY).
195
274
  */
275
+ /**
276
+ * Optional trajectory-capture inputs threaded through to the MITM
277
+ * proxy. Carries the RAW CLI/RPC override — this function is the single
278
+ * place that resolves enablement against config (`override ?? config >
279
+ * false`), so consumers never duplicate the `?? userConfig.capture?.enabled`
280
+ * precedence. When this object is absent, or resolution yields false, no
281
+ * writer is constructed and no taps are installed — zero cost on the
282
+ * forwarding path. See docs/designs/mitm-token-trajectory-capture.md.
283
+ */
284
+ export interface CaptureSetupInput {
285
+ /**
286
+ * Raw CLI/RPC override (boolean | undefined); undefined falls through
287
+ * to `config.userConfig.capture?.enabled`, then to false. The single
288
+ * resolution point lives in `prepareDockerInfrastructure`.
289
+ */
290
+ readonly override?: boolean;
291
+ /**
292
+ * Absolute path where `{sessionId}.jsonl` and `manifest.jsonl` are
293
+ * written. A real per-path difference (session dir vs bundle dir), so
294
+ * the caller supplies it rather than the infra layer deriving it.
295
+ */
296
+ readonly capturesDir: string;
297
+ /** Human-readable agent name (e.g. `'claude-code'`). */
298
+ readonly recordedAgentName?: string;
299
+ /** Workflow run ID, when this bundle belongs to a workflow run. */
300
+ readonly workflowRunId?: WorkflowId;
301
+ }
196
302
  export declare function prepareDockerInfrastructure(config: IronCurtainConfig, mode: SessionMode & {
197
303
  kind: 'docker';
198
- }, bundleDir: string, workspaceDir: string, escalationDir: string, bundleId: BundleId, workflowId?: WorkflowId, scope?: string, resolvedSkills?: readonly ResolvedSkill[]): Promise<PreContainerInfrastructure>;
304
+ }, bundleDir: string, workspaceDir: string, escalationDir: string, bundleId: BundleId, workflowId?: WorkflowId, scope?: string, resolvedSkills?: readonly ResolvedSkill[], captureInput?: CaptureSetupInput, scriptsDir?: string): Promise<PreContainerInfrastructure>;
199
305
  /**
200
306
  * Creates the full Docker session infrastructure, including a running
201
307
  * `sleep infinity` agent container (and, on macOS TCP mode, the socat
@@ -207,7 +313,7 @@ export declare function prepareDockerInfrastructure(config: IronCurtainConfig, m
207
313
  */
208
314
  export declare function createDockerInfrastructure(config: IronCurtainConfig, mode: SessionMode & {
209
315
  kind: 'docker';
210
- }, bundleDir: string, workspaceDir: string, escalationDir: string, bundleId: BundleId, workflowId?: WorkflowId, scope?: string, resolvedSkills?: readonly ResolvedSkill[]): Promise<DockerInfrastructure>;
316
+ }, bundleDir: string, workspaceDir: string, escalationDir: string, bundleId: BundleId, workflowId?: WorkflowId, scope?: string, resolvedSkills?: readonly ResolvedSkill[], captureInput?: CaptureSetupInput, scriptsDir?: string, options?: CreateDockerInfrastructureOptions): Promise<DockerInfrastructure>;
211
317
  /**
212
318
  * Tears down a fully-formed `DockerInfrastructure` bundle: main container,
213
319
  * TCP-mode sidecar and internal network (if present), MITM proxy, and Code
@@ -264,6 +370,14 @@ export interface ContainerResources {
264
370
  readonly sidecarContainerId?: string;
265
371
  readonly internalNetwork?: string;
266
372
  }
373
+ export interface CreateDockerInfrastructureOptions {
374
+ /**
375
+ * Optional immutable image ref used only for the main container's
376
+ * `docker create`. The normal agent image is still ensured first so
377
+ * workflow dependency caches keep their base-image hash.
378
+ */
379
+ readonly baseImageOverride?: string;
380
+ }
267
381
  /**
268
382
  * Creates and starts the main agent container (plus TCP-mode sidecar and
269
383
  * internal network on macOS). Cleans up any partially-created resources
@@ -271,17 +385,55 @@ export interface ContainerResources {
271
385
  *
272
386
  * Exported for testability: tests exercise the mount/env configuration and
273
387
  * the rollback-on-failure path by passing a mock `PreContainerInfrastructure`
274
- * with a scripted `DockerManager`.
388
+ * with a scripted `ContainerRuntime`.
275
389
  */
276
- export declare function createSessionContainers(core: PreContainerInfrastructure, config: IronCurtainConfig): Promise<ContainerResources>;
390
+ export declare function createSessionContainers(core: PreContainerInfrastructure, config: IronCurtainConfig, options?: CreateDockerInfrastructureOptions): Promise<ContainerResources>;
391
+ /**
392
+ * Writes /etc/apt/apt.conf.d/90-ironcurtain-proxy inside a running
393
+ * container via exec (as root). Used by the tcp-hostonly topology in
394
+ * both batch and PTY modes — Apple container's virtiofs shares
395
+ * directories only, so the single-file bind mount the Docker topologies
396
+ * use is rejected. The URL is built from our own gateway address and
397
+ * OS-assigned port — runtime-generated values, not untrusted input — so
398
+ * embedding it in the sh script is safe.
399
+ */
400
+ export declare function writeHostOnlyAptProxyConfig(docker: ContainerRuntime, containerId: string, proxyUrl: string): Promise<void>;
401
+ /**
402
+ * Fail-closed startup gate for the tcp-hostonly topology
403
+ * (docs/designs/apple-container-runtime.md, design decision 4). Asserts
404
+ * from inside the container that (a) the host-side proxies are reachable
405
+ * at the vmnet gateway and (b) internet egress is blocked by the
406
+ * host-only network. Either failure aborts session initialization —
407
+ * never a silent fallback to a weaker network configuration. Shared by
408
+ * batch (`createSessionContainers`) and PTY (`runPtySession`) modes.
409
+ */
410
+ export declare function checkHostOnlyConnectivity(docker: ContainerRuntime, containerId: string, gateway: string, mcpPort: number): Promise<void>;
411
+ /**
412
+ * Whether an OAuth credential set can be refreshed: true only when a
413
+ * non-empty refresh token is present. Externally-managed Codex tokens
414
+ * (`auth_mode: 'chatgptAuthTokens'`) carry an empty refresh token and must
415
+ * NOT be refreshed by IronCurtain. Pure helper, exported for testability.
416
+ */
417
+ export declare function canRefreshOAuth(refreshToken: string): boolean;
418
+ /**
419
+ * Resolves the real credential for a provider host.
420
+ *
421
+ * For Anthropic hosts in OAuth mode, uses the OAuth access token.
422
+ * For all other cases, falls back to the API key from config.
423
+ */
424
+ export declare function resolveRealKey(host: string, config: IronCurtainConfig, oauthAccessToken: string | undefined): string;
277
425
  /**
278
426
  * Creates and seeds the conversation state directory for agents that
279
427
  * support session resume. Idempotent: skips seeding if the directory
280
428
  * already exists (resume case).
281
429
  *
282
- * As a defense-in-depth measure, always deletes `.credentials.json`
283
- * from the state directory the MITM proxy handles auth independently,
284
- * so any credentials file left by the agent is stale.
430
+ * As a defense-in-depth measure, always deletes stale credential files
431
+ * (`.credentials.json` for Claude Code, `auth.json` for Codex) from the
432
+ * state directory the MITM proxy handles auth independently, and each
433
+ * agent's entrypoint recreates its credential file from env on every
434
+ * start, so any credential file lingering across resumes is stale. The
435
+ * unlinks are no-ops for adapters whose state dir has neither file (e.g.
436
+ * Goose), since a missing file is swallowed.
285
437
  */
286
438
  export declare function prepareConversationStateDir(sessionDir: string, config: ConversationStateConfig): string;
287
439
  /**
@@ -297,6 +449,31 @@ export declare function prepareConversationStateDir(sessionDir: string, config:
297
449
  * cached, so a second call from the session-init path is a cheap no-op.
298
450
  */
299
451
  export declare function ensureDockerImage(agentId: AgentId, userConfig: ResolvedUserConfig): Promise<void>;
452
+ export declare function ensureImage(image: string, docker: ContainerRuntime, ca: CertificateAuthority): Promise<string>;
453
+ export declare function computeWorkflowDependencyHash(agentBuildHash: string, scriptsDir: string): string;
454
+ /**
455
+ * Wraps an in-container command so the workflow dependency bins are prepended
456
+ * to the container's LIVE `$PATH` at exec time, rather than replacing the
457
+ * image's PATH at container-creation time.
458
+ *
459
+ * Why a runtime shell instead of an `-e PATH=...` env: Docker `-e` REPLACES the
460
+ * image PATH (it does not append), which would discard the base image's own
461
+ * PATH — including the NVM directory where `node`/`npm` live on the x86
462
+ * devcontainer base. Expanding `$PATH` inside the container at exec time is
463
+ * base-image-agnostic: it preserves whatever PATH the image ships and merely
464
+ * prepends the workflow venv bin (for bare `python`) and the installed Node
465
+ * package bins (`node_modules/.bin`).
466
+ *
467
+ * Returns the original command unchanged when neither dependency mount is
468
+ * present, so non-dependency workflows keep the plain exec path.
469
+ *
470
+ * Shell-safety: the only interpolated values are the hardcoded container
471
+ * constants `WORKFLOW_PYTHON_VENV_DIR` / `WORKFLOW_NODE_MODULES_DIR`. The
472
+ * caller's command and its arguments are passed verbatim as positional
473
+ * parameters consumed by `exec "$@"` — never string-interpolated — so no
474
+ * word-splitting or injection is possible.
475
+ */
476
+ export declare function buildWorkflowExecCommand(bundle: Pick<DockerInfrastructure, 'workflowPythonVenvMount' | 'workflowNodeModulesMount'>, command: readonly string[]): readonly string[];
300
477
  /**
301
478
  * Applies upstream target overrides from environment variables to provider configs.
302
479
  *