@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
@@ -45,6 +45,8 @@ export declare function resolveWorkflowSkillsOptions(skills: readonly string[] |
45
45
  * See `docs/designs/workflow-session-identity.md` §2.4 / §6.
46
46
  */
47
47
  export declare const DEFAULT_CONTAINER_SCOPE = "primary";
48
+ /** Reserved deterministic result verdict emitted when a declared result file cannot be read or parsed. */
49
+ export declare const DETERMINISTIC_RESULT_ERROR_VERDICT = "result_file_error";
48
50
  /**
49
51
  * Unique identifier for a workflow instance. Branded to prevent accidental
50
52
  * mixing with other string identifiers.
@@ -57,6 +59,13 @@ export declare function createWorkflowId(): WorkflowId;
57
59
  export interface WorkflowDefinition {
58
60
  readonly name: string;
59
61
  readonly description: string;
62
+ /**
63
+ * When true, the workflow is omitted from the web UI — both the start
64
+ * picker and the active/past-run tables. The CLI `workflow list` still
65
+ * shows it. Use for smoke-test / fixture workflows that should remain
66
+ * runnable from the CLI without cluttering the UI. Default: false.
67
+ */
68
+ readonly hidden?: boolean;
60
69
  readonly initial: string;
61
70
  readonly states: Record<string, WorkflowStateDefinition>;
62
71
  readonly settings?: WorkflowSettings;
@@ -70,8 +79,8 @@ export interface WorkflowSettings {
70
79
  readonly maxRounds?: number;
71
80
  /** Git repository path for worktree management. */
72
81
  readonly gitRepoPath?: string;
73
- /** Max parallel agent sessions. Default: 3. */
74
- readonly maxParallelism?: number;
82
+ /** Number of synchronous evolve workers. Default: 1. */
83
+ readonly workers?: number;
75
84
  /**
76
85
  * Optional system prompt text appended to the base system prompt
77
86
  * for ALL agent states in this workflow. Use for workspace
@@ -107,11 +116,40 @@ export interface WorkflowSettings {
107
116
  * Ignored for builtin workflows (no Docker infrastructure to share).
108
117
  */
109
118
  readonly sharedContainer?: boolean;
119
+ /**
120
+ * When true, aborted shared-container workflow stops snapshot each live
121
+ * container's writable layer so resume can recreate the scope from the
122
+ * recorded immutable image digest. Default: false.
123
+ */
124
+ readonly snapshotOnStop?: boolean;
110
125
  }
111
126
  /**
112
127
  * State definition. Discriminated on `type`.
113
128
  */
114
129
  export type WorkflowStateDefinition = AgentStateDefinition | HumanGateStateDefinition | DeterministicStateDefinition | TerminalStateDefinition;
130
+ export interface FanOutDefinition {
131
+ /**
132
+ * Lane multiplicity. `'workers'` defers to `settings.workers`; the
133
+ * `number` branch is a per-state override for workflows that want a
134
+ * fixed-width segment independent of the global worker count.
135
+ */
136
+ readonly count: 'workers' | number;
137
+ /**
138
+ * Join discipline. Only barrier joins are supported today (every lane
139
+ * must complete before the segment exits); async joins are a future,
140
+ * deliberately reviewed extension.
141
+ */
142
+ readonly join: 'barrier';
143
+ }
144
+ export interface LaneResourceRequest {
145
+ readonly cpu?: number;
146
+ readonly mem?: string;
147
+ readonly gpu?: number;
148
+ }
149
+ export interface StateScheduleDefinition {
150
+ readonly pool: 'eval' | 'agent';
151
+ readonly resources?: LaneResourceRequest;
152
+ }
115
153
  export interface AgentStateDefinition {
116
154
  readonly type: 'agent';
117
155
  readonly description: string;
@@ -133,8 +171,25 @@ export interface AgentStateDefinition {
133
171
  readonly outputs: readonly string[];
134
172
  /** Transitions evaluated in order; first match wins. */
135
173
  readonly transitions: readonly AgentTransitionDefinition[];
136
- /** When true, each parallel instance gets a dedicated git worktree. */
174
+ /**
175
+ * Legacy field from the old per-instance parallel model (one git
176
+ * worktree per parallel instance). Unused on the `workers`/lane path —
177
+ * native fan-out lanes are scheduled by the pump, not by per-state
178
+ * worktree opt-in. Retained for backward compatibility with existing
179
+ * manifests; do not wire new behavior to it.
180
+ */
137
181
  readonly worktree?: boolean;
182
+ /**
183
+ * Marks this state as a member of a parent fan-out segment. Parent fan-out
184
+ * states factor these members into child round machines at runtime.
185
+ */
186
+ readonly fanOutMember?: boolean;
187
+ /** Fan-out topology metadata for a parent segment driver state. */
188
+ readonly fanOut?: FanOutDefinition;
189
+ /** Ordered fan-out segment member state IDs. */
190
+ readonly segment?: readonly string[];
191
+ /** Scheduling metadata for lane-local execution. Schema-only until Phase 8. */
192
+ readonly schedule?: StateScheduleDefinition;
138
193
  /**
139
194
  * When false, re-invocations of this state resume the previous agent
140
195
  * session via --continue, receiving an abbreviated re-visit prompt.
@@ -217,6 +272,34 @@ export interface DeterministicStateDefinition {
217
272
  * Never a shell string -- per CLAUDE.md safe coding rules.
218
273
  */
219
274
  readonly run: readonly (readonly string[])[];
275
+ /**
276
+ * When true, execute the command arrays inside the workflow's shared
277
+ * Docker container via docker exec instead of on the host.
278
+ */
279
+ readonly container?: boolean;
280
+ /**
281
+ * Shared-container scope to exec into when `container` is true. Defaults
282
+ * to DEFAULT_CONTAINER_SCOPE.
283
+ */
284
+ readonly containerScope?: string;
285
+ /**
286
+ * Per-command timeout in milliseconds for deterministic execution.
287
+ * Undefined uses the runner default.
288
+ */
289
+ readonly timeoutMs?: number;
290
+ /**
291
+ * Workspace-relative JSON result file written by a containerized helper.
292
+ * Container-only; see validate.ts for path and routing constraints.
293
+ */
294
+ readonly resultFile?: string;
295
+ /** Fan-out topology metadata for a parent segment driver state. */
296
+ readonly fanOut?: FanOutDefinition;
297
+ /** Ordered fan-out segment member state IDs. */
298
+ readonly segment?: readonly string[];
299
+ /** Marks this state as a member of a parent fan-out segment. */
300
+ readonly fanOutMember?: boolean;
301
+ /** Scheduling metadata for lane-local execution. Schema-only until Phase 8. */
302
+ readonly schedule?: StateScheduleDefinition;
220
303
  readonly transitions: readonly AgentTransitionDefinition[];
221
304
  }
222
305
  export interface TerminalStateDefinition {
@@ -341,31 +424,38 @@ export type WorkflowEvent = {
341
424
  readonly prompt?: string;
342
425
  } | {
343
426
  readonly type: 'HUMAN_ABORT';
344
- } | {
345
- readonly type: 'PARALLEL_ALL_COMPLETED';
346
- readonly results: readonly ParallelSlotResult[];
347
- } | {
348
- readonly type: 'PARALLEL_SLOT_FAILED';
349
- readonly key: string;
350
- readonly error: string;
351
- } | {
352
- readonly type: 'MERGE_SUCCEEDED';
353
- } | {
354
- readonly type: 'MERGE_CONFLICT';
355
- readonly conflictDetails: string;
356
427
  };
428
+ export interface WorkflowLanePreparedResult {
429
+ readonly passed: boolean;
430
+ readonly testCount?: number;
431
+ readonly errors?: string;
432
+ readonly verdict?: string;
433
+ readonly payload?: Record<string, unknown>;
434
+ }
435
+ export interface WorkflowLaneContext {
436
+ readonly id: number;
437
+ /** Container-absolute lane scratch directory, e.g. /workspace/.evolve_runs/main/current/lane_0. */
438
+ readonly dir: string;
439
+ /** Workspace-relative lane scratch directory, e.g. .evolve_runs/main/current/lane_0. */
440
+ readonly relativeDir: string;
441
+ /** Deterministic results prepared by the fan-out barrier before the child actor starts. */
442
+ readonly preparedResults?: Readonly<Record<string, WorkflowLanePreparedResult>>;
443
+ }
357
444
  export interface WorkflowContext {
358
445
  readonly taskDescription: string;
446
+ readonly lane?: WorkflowLaneContext;
359
447
  readonly artifacts: Record<string, string>;
360
448
  readonly round: number;
361
449
  readonly maxRounds: number;
362
450
  /** Per-role output hash for stall detection. */
363
451
  readonly previousOutputHashes: Record<string, string>;
364
452
  readonly previousTestCount: number | null;
453
+ readonly lastDeterministicResult?: {
454
+ readonly verdict?: string;
455
+ readonly payload?: Record<string, unknown>;
456
+ };
365
457
  readonly humanPrompt: string | null;
366
458
  readonly reviewHistory: readonly string[];
367
- readonly parallelResults: Record<string, ParallelSlotResult>;
368
- readonly worktreeBranches: readonly string[];
369
459
  readonly totalTokens: number;
370
460
  readonly lastError: string | null;
371
461
  /**
@@ -427,12 +517,6 @@ export interface AgentSlot {
427
517
  export interface WorkflowResult {
428
518
  readonly finalArtifacts: Record<string, string>;
429
519
  }
430
- export interface ParallelSlotResult {
431
- readonly key: string;
432
- readonly status: 'success' | 'failed';
433
- readonly error?: string;
434
- readonly worktreeBranch?: string;
435
- }
436
520
  export interface HumanGateRequest {
437
521
  readonly gateId: string;
438
522
  readonly workflowId: string;
@@ -480,6 +564,18 @@ export interface WorkflowCheckpoint {
480
564
  * from `definitionPath`'s package dir).
481
565
  */
482
566
  readonly workflowSkillsDir?: string;
567
+ /**
568
+ * Per-run staged copy of the workflow package's `scripts/` tree (when
569
+ * the package shipped one). Mounted read-only at /workflow-scripts for
570
+ * shared-container deterministic states.
571
+ */
572
+ readonly workflowScriptsDir?: string;
573
+ /**
574
+ * Per-containerScope Docker image snapshots captured at an aborted stop.
575
+ * `image` is the immutable sha256 image id and is the source of truth;
576
+ * `tag` is cosmetic only.
577
+ */
578
+ readonly containerSnapshots?: Readonly<Record<string, ContainerSnapshotRef>>;
483
579
  /**
484
580
  * Terminal-phase status, populated only when the workflow has reached a terminal
485
581
  * phase (completed / aborted / failed / waiting_human). Absent for mid-run
@@ -487,6 +583,10 @@ export interface WorkflowCheckpoint {
487
583
  */
488
584
  readonly finalStatus?: WorkflowStatus;
489
585
  }
586
+ export interface ContainerSnapshotRef {
587
+ readonly image: string;
588
+ readonly tag?: string;
589
+ }
490
590
  export interface TransitionRecord {
491
591
  readonly from: string;
492
592
  readonly to: string;
@@ -53,6 +53,8 @@ export function resolveWorkflowSkillsOptions(skills, skillsDir) {
53
53
  * See `docs/designs/workflow-session-identity.md` §2.4 / §6.
54
54
  */
55
55
  export const DEFAULT_CONTAINER_SCOPE = 'primary';
56
+ /** Reserved deterministic result verdict emitted when a declared result file cannot be read or parsed. */
57
+ export const DETERMINISTIC_RESULT_ERROR_VERDICT = 'result_file_error';
56
58
  /** Creates a new unique WorkflowId. */
57
59
  export function createWorkflowId() {
58
60
  return randomUUID();
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAA0D,EAC1D,SAA6B;IAM7B,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC9D,MAAM,MAAM,GAA8D,EAAE,CAAC;IAC7E,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAYjD,uCAAuC;AACvC,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,EAAgB,CAAC;AACpC,CAAC;AAoQD,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAgCpE,yEAAyE;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,WAAW;IACX,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,OAAO;CAC0C,CAAC;AA+HpD,MAAM,UAAU,qBAAqB,CAAC,IAAsB;IAC1D,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAC9D,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAA0D,EAC1D,SAA6B;IAM7B,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC9D,MAAM,MAAM,GAA8D,EAAE,CAAC;IAC7E,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEjD,0GAA0G;AAC1G,MAAM,CAAC,MAAM,kCAAkC,GAAG,mBAAmB,CAAC;AAYtE,uCAAuC;AACvC,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,EAAgB,CAAC;AACpC,CAAC;AAwVD,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAgCpE,yEAAyE;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,WAAW;IACX,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,OAAO;CAC0C,CAAC;AAyIpD,MAAM,UAAU,qBAAqB,CAAC,IAAsB;IAC1D,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAC9D,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC"}
@@ -1,8 +1,29 @@
1
- import type { WorkflowDefinition, WorkflowStateDefinition } from './types.js';
1
+ import type { WorkflowDefinition, WorkflowStateDefinition, AgentTransitionDefinition } from './types.js';
2
2
  export declare class WorkflowValidationError extends Error {
3
3
  readonly issues: readonly string[];
4
4
  constructor(issues: readonly string[]);
5
5
  }
6
+ /**
7
+ * The two state types that run an ordered `transitions` list with
8
+ * agent-style `guard`/`when` routing (agent + deterministic). Human-gate
9
+ * transitions use a different (event-keyed) shape, so they are excluded.
10
+ */
11
+ export type ExecutableState = Extract<WorkflowStateDefinition, {
12
+ readonly type: 'agent' | 'deterministic';
13
+ }>;
14
+ /**
15
+ * True for {@link ExecutableState}s. Narrows the union so call sites can
16
+ * read `state.transitions` / `state.segment` without re-spelling the
17
+ * `Extract<...>` longhand.
18
+ */
19
+ export declare function isExecutableState(state: WorkflowStateDefinition): state is ExecutableState;
20
+ export declare function collectTransitionTargets(state: WorkflowStateDefinition): string[];
21
+ /**
22
+ * True if any transition routes on a `when: { verdict: ... }` clause. Shared by
23
+ * the container-only validation rule (`validateContainerScopes`) and the WF012
24
+ * lint (which requires such states to declare a `resultFile`).
25
+ */
26
+ export declare function usesVerdictEdges(transitions: readonly AgentTransitionDefinition[]): boolean;
6
27
  /**
7
28
  * Parses a workflow input artifact reference. A trailing `?` marks the
8
29
  * input as optional — the consumer may skip it if the artifact isn't
@@ -14,6 +35,7 @@ export declare function parseArtifactRef(ref: string): {
14
35
  };
15
36
  export declare function collectOutputArtifacts(states: Record<string, WorkflowStateDefinition>): Set<string>;
16
37
  export declare function findReachableStates(initial: string, states: Record<string, WorkflowStateDefinition>): Set<string>;
38
+ export declare function isSafeWorkspaceRelativePath(path: string): boolean;
17
39
  /**
18
40
  * One issue produced by {@link iterateSkillRefIssues}. Surface code
19
41
  * (validate vs lint) formats the user-facing wording.