@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
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/workflow/lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/workflow/lint.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type AnyStateMachine } from 'xstate';
2
- import type { WorkflowDefinition, WorkflowContext, AgentStateDefinition, AgentOutput } from './types.js';
2
+ import type { WorkflowDefinition, WorkflowContext, AgentStateDefinition, DeterministicStateDefinition, AgentOutput } from './types.js';
3
3
  import type { AgentConversationId } from '../session/types.js';
4
+ type ExecutableStateDefinition = AgentStateDefinition | DeterministicStateDefinition;
4
5
  /** Input provided to each invoked agent service. */
5
6
  export interface AgentInvokeInput {
6
7
  readonly stateId: string;
@@ -40,16 +41,88 @@ export interface DeterministicInvokeInput {
40
41
  readonly stateId: string;
41
42
  readonly commands: readonly (readonly string[])[];
42
43
  readonly context: WorkflowContext;
44
+ readonly container?: boolean;
45
+ readonly containerScope?: string;
46
+ readonly timeoutMs?: number;
47
+ readonly resultFile?: string;
43
48
  }
44
49
  /** Result from a deterministic (test/lint) state. */
45
50
  export interface DeterministicInvokeResult {
46
51
  readonly passed: boolean;
47
52
  readonly testCount?: number;
48
53
  readonly errors?: string;
54
+ readonly verdict?: string;
55
+ readonly payload?: Record<string, unknown>;
56
+ }
57
+ /**
58
+ * Input provided to a parent fan-out state invoke. `stateConfig` carries the
59
+ * `fanOut`/`segment` markers the orchestrator reads to resolve the worker
60
+ * count and the round sub-chain; `context` is the parent's context at fan-out
61
+ * time, cloned into each lane's child actor.
62
+ */
63
+ export interface FanOutInvokeInput {
64
+ readonly stateId: string;
65
+ readonly stateConfig: ExecutableStateDefinition;
66
+ readonly context: WorkflowContext;
67
+ }
68
+ /**
69
+ * The three synthetic terminal states every child round machine carries are
70
+ * `recorded`/`blocked`/`errored` (see `buildRoundChildDefinition`). `drained`
71
+ * is not a child terminal; it is the parent-side outcome synthesized for a
72
+ * peer actor stopped by drain-on-escalation after another child blocked or
73
+ * errored. Typed as a closed union so the join's branches are
74
+ * exhaustive-checkable.
75
+ */
76
+ export type RoundChildStatus = 'recorded' | 'blocked' | 'errored' | 'drained';
77
+ /**
78
+ * The fully-resolved result of joining one child round actor: the terminal
79
+ * it reached plus the context it carried there. `context` is read by the
80
+ * parent to thread per-lane updates (e.g. the `evaluator_blocked` reason on
81
+ * `previousAgentOutput`) back onto the parent FSM after the barrier.
82
+ */
83
+ export interface RoundChildOutcome {
84
+ readonly index: number;
85
+ readonly status: RoundChildStatus;
86
+ readonly context: WorkflowContext;
87
+ readonly drainedBy?: {
88
+ readonly index: number;
89
+ readonly status: 'blocked' | 'errored';
90
+ readonly reason: string;
91
+ };
92
+ }
93
+ /**
94
+ * Per-lane summary surfaced on the fan-out result for observability. When a lane
95
+ * was `drained` (stopped because a peer blocked/errored), `drainedBy` names the
96
+ * triggering peer and carries its reason, so the join log records WHICH lane's
97
+ * escalation stopped this one — signal the bare `drained` status alone lacks.
98
+ */
99
+ export interface RoundChildSummary {
100
+ readonly index: number;
101
+ readonly status: RoundChildStatus;
102
+ readonly drainedBy?: {
103
+ readonly index: number;
104
+ readonly status: 'blocked' | 'errored';
105
+ readonly reason: string;
106
+ };
107
+ }
108
+ /**
109
+ * Result returned by the fan-out pump after all children have joined. Shaped
110
+ * as a `DeterministicInvokeResult` so the parent `workers` state's transitions
111
+ * match on `verdict` exactly like a normal deterministic state. The verdict
112
+ * space is `recorded` (batch advanced) | `escalate` (at least one lane blocked;
113
+ * route to human review) | `result_file_error` (errored-only lane / segment
114
+ * misconfiguration). `context` is the joined context promoted onto the parent
115
+ * FSM; `children` is the per-lane status summary, for observability only.
116
+ */
117
+ export interface FanOutInvokeResult extends DeterministicInvokeResult {
118
+ readonly context: WorkflowContext;
119
+ readonly children?: readonly RoundChildSummary[];
49
120
  }
50
121
  export interface BuildMachineResult {
51
122
  /** The XState machine (with placeholder actors). */
52
123
  readonly machine: AnyStateMachine;
124
+ /** Child round machines keyed by the parent fan-out state that invokes them. */
125
+ readonly roundMachinesByState: ReadonlyMap<string, AnyStateMachine>;
53
126
  /** Set of state names that are human gates (for snapshot.matches()). */
54
127
  readonly gateStateNames: ReadonlySet<string>;
55
128
  /** Set of state names that are terminal (for completion detection). */
@@ -76,6 +149,20 @@ export declare function truncateAgentOutput(text: string): string;
76
149
  * Exported for testing.
77
150
  */
78
151
  export declare function createInitialContext(definition: WorkflowDefinition): Omit<WorkflowContext, 'taskDescription'>;
152
+ interface BuildWorkflowMachineOptions {
153
+ readonly contextFromInput?: boolean;
154
+ readonly buildRoundMachines?: boolean;
155
+ /**
156
+ * When set, every executable state's `onError` routes here instead of the
157
+ * `findErrorTarget` heuristic. Used by the child round-machine build: a
158
+ * child definition has no gate / `failed` / `aborted` terminal, so
159
+ * `findErrorTarget` would fall through to the first synthetic terminal
160
+ * (`recorded`) and silently treat a crashed lane as a recorded round.
161
+ * Forcing `onErrorTarget: 'errored'` makes a service rejection land in the
162
+ * `errored` lane-verdict terminal, where the barrier maps it to a fail.
163
+ */
164
+ readonly onErrorTarget?: string;
165
+ }
79
166
  /**
80
167
  * Builds an XState v5 machine from a validated WorkflowDefinition.
81
168
  *
@@ -87,4 +174,5 @@ export declare function createInitialContext(definition: WorkflowDefinition): Om
87
174
  * Guards are registered with concrete implementations from the guards
88
175
  * module. Actions for context updates are defined inline via `assign`.
89
176
  */
90
- export declare function buildWorkflowMachine(definition: WorkflowDefinition, taskDescription: string): BuildMachineResult;
177
+ export declare function buildWorkflowMachine(definition: WorkflowDefinition, taskDescription: string, options?: BuildWorkflowMachineOptions): BuildMachineResult;
178
+ export {};
@@ -2,6 +2,7 @@ import { setup, assign, fromPromise } from 'xstate';
2
2
  import { guardImplementations } from './guards.js';
3
3
  import { stripStatusBlock } from './status-parser.js';
4
4
  import { isAgentInvocationError } from './errors.js';
5
+ import { laneScopeEvolveCurrentPath, templateLaneCommand } from './lane-template.js';
5
6
  // ---------------------------------------------------------------------------
6
7
  // Extraction helpers (used by guards and actions inside the machine)
7
8
  // ---------------------------------------------------------------------------
@@ -64,8 +65,6 @@ export function createInitialContext(definition) {
64
65
  previousTestCount: null,
65
66
  humanPrompt: null,
66
67
  reviewHistory: [],
67
- parallelResults: {},
68
- worktreeBranches: [],
69
68
  totalTokens: 0,
70
69
  lastError: null,
71
70
  agentConversationsByState: {},
@@ -124,7 +123,10 @@ function collectTransitionActions(t, defaultContextAction) {
124
123
  function compileAction(action) {
125
124
  return { type: 'resetVisitCounts', params: { stateIds: action.stateIds } };
126
125
  }
127
- function buildAgentOnDoneTransitions(transitions) {
126
+ // Shared onDone-transition builder for agent and deterministic states: both map a
127
+ // `when:` clause to the __matchesWhen guard, else a bare `guard:`, and run a
128
+ // per-state-type context-update action. Only the update action differs.
129
+ function buildOnDoneTransitions(transitions, updateAction, mapTarget = (transition) => transition.to) {
128
130
  return transitions.map((t) => {
129
131
  let guard;
130
132
  if (t.when) {
@@ -134,13 +136,13 @@ function buildAgentOnDoneTransitions(transitions) {
134
136
  guard = t.guard;
135
137
  }
136
138
  return {
137
- target: t.to,
139
+ target: mapTarget(t),
138
140
  ...(guard ? { guard } : {}),
139
- actions: collectTransitionActions(t, 'updateContextFromAgentResult'),
141
+ actions: collectTransitionActions(t, updateAction),
140
142
  };
141
143
  });
142
144
  }
143
- function buildAgentState(stateId, config, definition) {
145
+ function buildAgentState(stateId, config, definition, options = {}) {
144
146
  return {
145
147
  entry: [{ type: 'incrementVisitCount', params: { stateId } }],
146
148
  invoke: {
@@ -151,30 +153,57 @@ function buildAgentState(stateId, config, definition) {
151
153
  stateConfig: config,
152
154
  context,
153
155
  }),
154
- onDone: buildAgentOnDoneTransitions(config.transitions),
156
+ onDone: buildOnDoneTransitions(config.transitions, 'updateContextFromAgentResult', options.mapTransitionTarget),
155
157
  onError: {
156
- target: findErrorTarget(config, definition),
158
+ target: options.onErrorTarget ?? findErrorTarget(config, definition),
157
159
  actions: ['storeError', 'updateContextFromAgentInvocationError'],
158
160
  },
159
161
  },
160
162
  };
161
163
  }
162
- function buildDeterministicState(stateId, config, definition) {
163
- const onDoneTransitions = config.transitions.map((t) => ({
164
- target: t.to,
165
- ...(t.guard ? { guard: t.guard } : {}),
166
- actions: collectTransitionActions(t, 'updateContextFromDeterministicResult'),
167
- }));
164
+ function buildDeterministicState(stateId, config, definition, options = {}) {
165
+ const onDoneTransitions = buildOnDoneTransitions(config.transitions, 'updateContextFromDeterministicResult', options.mapTransitionTarget);
168
166
  return {
169
167
  invoke: {
170
168
  id: stateId,
171
169
  src: 'deterministicService',
172
170
  input: ({ context }) => ({
173
171
  stateId,
174
- commands: config.run,
172
+ commands: config.run.map((command) => templateLaneCommand(command, context)),
175
173
  context,
174
+ container: config.container ?? false,
175
+ containerScope: config.containerScope,
176
+ timeoutMs: config.timeoutMs,
177
+ resultFile: config.resultFile ? laneScopeEvolveCurrentPath(config.resultFile, context) : undefined,
176
178
  }),
177
179
  onDone: onDoneTransitions,
180
+ onError: {
181
+ target: options.onErrorTarget ?? findErrorTarget(config, definition),
182
+ actions: ['storeError'],
183
+ },
184
+ },
185
+ };
186
+ }
187
+ /**
188
+ * Builds the parent `workers` state: a single XState invoke of `fanOutService`
189
+ * (the orchestrator's `runFanOutSegment`). From the parent FSM's vantage the
190
+ * whole batch is ONE invoke — the N child round actors live inside the invoke
191
+ * body, not in the parent's state value, so the parent's `snapshot.value` stays
192
+ * the string `"workers"` (single-active-state spine, §6.4). `onDone` runs
193
+ * `updateContextFromFanOutResult` (promote the joined context) then follows the
194
+ * verdict-matched edge; `onError` routes to the definition's error target.
195
+ */
196
+ function buildFanOutState(stateId, config, definition) {
197
+ return {
198
+ invoke: {
199
+ id: stateId,
200
+ src: 'fanOutService',
201
+ input: ({ context }) => ({
202
+ stateId,
203
+ stateConfig: config,
204
+ context,
205
+ }),
206
+ onDone: buildOnDoneTransitions(config.transitions, 'updateContextFromFanOutResult'),
178
207
  onError: {
179
208
  target: findErrorTarget(config, definition),
180
209
  actions: ['storeError'],
@@ -201,9 +230,97 @@ function buildHumanGateState(_stateId, config) {
201
230
  }
202
231
  return { on };
203
232
  }
204
- // ---------------------------------------------------------------------------
205
- // Machine builder
206
- // ---------------------------------------------------------------------------
233
+ /** The three synthetic terminal state names every child round machine carries. */
234
+ const ROUND_CHILD_RECORDED = 'recorded';
235
+ const ROUND_CHILD_BLOCKED = 'blocked';
236
+ const ROUND_CHILD_ERRORED = 'errored';
237
+ /**
238
+ * Factors a fan-out segment (the round sub-chain
239
+ * `sample -> researcher -> evaluate -> analysis_record`) into a standalone
240
+ * child machine definition. Each member is copied verbatim except for two
241
+ * rewrites: its out-of-segment transition targets are remapped to one of
242
+ * three synthetic terminals via {@link mapRoundChildTarget}, and the
243
+ * `fanOut`/`segment` markers are stripped so the recursive
244
+ * `buildWorkflowMachine` does not try to re-factor the member into yet
245
+ * another child.
246
+ *
247
+ * The three synthetic terminals (`recorded`, `blocked`, `errored`) are the
248
+ * lane verdict surface — every lane finishes in exactly one, and the parent
249
+ * barrier reads it to decide the batch verdict (§6.1). `initial: segment[0]`
250
+ * starts the child at the first segment member. `settings` are inherited from
251
+ * the parent so the child's per-lane `maxVisits` guard fires natively from the
252
+ * member's own declared limits (§6.1).
253
+ */
254
+ function buildRoundChildDefinition(definition, fanOutStateId, segment) {
255
+ const segmentSet = new Set(segment);
256
+ const states = {};
257
+ for (const memberId of segment) {
258
+ const member = definition.states[memberId];
259
+ if (member.type !== 'agent' && member.type !== 'deterministic') {
260
+ throw new Error(`fan-out state "${fanOutStateId}" segment member "${memberId}" is not executable`);
261
+ }
262
+ const transitions = member.transitions.map((transition) => ({
263
+ ...transition,
264
+ to: mapRoundChildTarget(definition, transition, segmentSet),
265
+ }));
266
+ // The agent and deterministic arms produce byte-identical state objects
267
+ // (strip the fan-out markers, override transitions); the only difference
268
+ // is the discriminated-union narrowing of `member`, so one block covers
269
+ // both once the `type` guard above has run. `_fanOut`/`_segment` are
270
+ // destructured only to omit them from `rest`; `void` marks them used.
271
+ const { fanOut: _fanOut, segment: _segment, ...rest } = member;
272
+ void _fanOut;
273
+ void _segment;
274
+ states[memberId] = { ...rest, transitions };
275
+ }
276
+ states[ROUND_CHILD_RECORDED] = {
277
+ type: 'terminal',
278
+ description: `Fan-out segment "${fanOutStateId}" recorded successfully.`,
279
+ };
280
+ states[ROUND_CHILD_BLOCKED] = {
281
+ type: 'terminal',
282
+ description: `Fan-out segment "${fanOutStateId}" needs human review.`,
283
+ };
284
+ states[ROUND_CHILD_ERRORED] = {
285
+ type: 'terminal',
286
+ description: `Fan-out segment "${fanOutStateId}" failed.`,
287
+ };
288
+ return {
289
+ name: `${definition.name}-${fanOutStateId}-round`,
290
+ description: `Child round machine for ${definition.name}.${fanOutStateId}`,
291
+ initial: segment[0],
292
+ settings: definition.settings,
293
+ states,
294
+ };
295
+ }
296
+ /**
297
+ * Maps a segment member's transition target onto a child round-machine
298
+ * target. In-segment edges pass through unchanged; everything that would
299
+ * leave the segment is collapsed onto one of the three synthetic terminals.
300
+ *
301
+ * The mapping table:
302
+ * - target is another segment member -> passthrough (the target name)
303
+ * - `when.verdict === 'recorded'` -> `recorded` (round committed a node)
304
+ * - `when.verdict === 'evaluator_blocked'` -> `blocked` (needs human review)
305
+ * - any other named verdict -> `errored` (unexpected verdict)
306
+ * - target is a human_gate state -> `blocked` (escalation edge)
307
+ * - else (bare fallthrough / failed) -> `errored`
308
+ */
309
+ function mapRoundChildTarget(definition, transition, segment) {
310
+ if (segment.has(transition.to))
311
+ return transition.to;
312
+ const verdict = transition.when?.verdict;
313
+ if (verdict === 'recorded')
314
+ return ROUND_CHILD_RECORDED;
315
+ if (verdict === 'evaluator_blocked')
316
+ return ROUND_CHILD_BLOCKED;
317
+ if (typeof verdict === 'string')
318
+ return ROUND_CHILD_ERRORED;
319
+ const targetState = definition.states[transition.to];
320
+ if (targetState.type === 'human_gate')
321
+ return ROUND_CHILD_BLOCKED;
322
+ return ROUND_CHILD_ERRORED;
323
+ }
207
324
  /**
208
325
  * Builds an XState v5 machine from a validated WorkflowDefinition.
209
326
  *
@@ -215,8 +332,9 @@ function buildHumanGateState(_stateId, config) {
215
332
  * Guards are registered with concrete implementations from the guards
216
333
  * module. Actions for context updates are defined inline via `assign`.
217
334
  */
218
- export function buildWorkflowMachine(definition, taskDescription) {
335
+ export function buildWorkflowMachine(definition, taskDescription, options = {}) {
219
336
  const states = {};
337
+ const roundMachinesByState = new Map();
220
338
  const gateStateNames = new Set();
221
339
  const terminalStateNames = new Set();
222
340
  // Per-state maxVisits map, built at machine-construction time and
@@ -224,16 +342,26 @@ export function buildWorkflowMachine(definition, taskDescription) {
224
342
  // agent states can declare `maxVisits`; states without it are absent
225
343
  // from the map and the guard returns false for them.
226
344
  const maxVisitsByState = new Map();
345
+ // For child round machines, every executable member's error path is forced
346
+ // to the synthetic `errored` terminal (see `onErrorTarget` doc above); the
347
+ // parent machine leaves it undefined and falls back to `findErrorTarget`.
348
+ const executableOptions = { onErrorTarget: options.onErrorTarget };
227
349
  for (const [stateId, stateDef] of Object.entries(definition.states)) {
228
350
  switch (stateDef.type) {
229
351
  case 'agent':
230
- states[stateId] = buildAgentState(stateId, stateDef, definition);
352
+ states[stateId] =
353
+ stateDef.fanOut !== undefined
354
+ ? buildFanOutState(stateId, stateDef, definition)
355
+ : buildAgentState(stateId, stateDef, definition, executableOptions);
231
356
  if (typeof stateDef.maxVisits === 'number') {
232
357
  maxVisitsByState.set(stateId, stateDef.maxVisits);
233
358
  }
234
359
  break;
235
360
  case 'deterministic':
236
- states[stateId] = buildDeterministicState(stateId, stateDef, definition);
361
+ states[stateId] =
362
+ stateDef.fanOut !== undefined
363
+ ? buildFanOutState(stateId, stateDef, definition)
364
+ : buildDeterministicState(stateId, stateDef, definition, executableOptions);
237
365
  break;
238
366
  case 'human_gate':
239
367
  states[stateId] = buildHumanGateState(stateId, stateDef);
@@ -245,6 +373,26 @@ export function buildWorkflowMachine(definition, taskDescription) {
245
373
  break;
246
374
  }
247
375
  }
376
+ if (options.buildRoundMachines !== false) {
377
+ for (const [stateId, stateDef] of Object.entries(definition.states)) {
378
+ if ((stateDef.type !== 'agent' && stateDef.type !== 'deterministic') || stateDef.fanOut === undefined) {
379
+ continue;
380
+ }
381
+ const segment = stateDef.segment ?? [];
382
+ if (segment.length === 0)
383
+ continue;
384
+ const childDefinition = buildRoundChildDefinition(definition, stateId, segment);
385
+ const child = buildWorkflowMachine(childDefinition, taskDescription, {
386
+ contextFromInput: true,
387
+ buildRoundMachines: false,
388
+ // A segment member's service rejection must land in the child's
389
+ // `errored` terminal, not fall through `findErrorTarget` to the
390
+ // first terminal (`recorded`). See `onErrorTarget` above.
391
+ onErrorTarget: ROUND_CHILD_ERRORED,
392
+ });
393
+ roundMachinesByState.set(stateId, child.machine);
394
+ }
395
+ }
248
396
  // Build XState guard implementations compatible with XState's guard API.
249
397
  // XState v5 guards receive ({ context, event }) but the event type
250
398
  // during onDone is the xstate done event, not our WorkflowEvent.
@@ -304,14 +452,20 @@ export function buildWorkflowMachine(definition, taskDescription) {
304
452
  // directly (via extractInvokeResult inline) rather than on WorkflowEvent.
305
453
  xstateGuards['__matchesWhen'] = ({ event }, params) => {
306
454
  const doneEvent = event;
307
- let agentOutput;
455
+ let matchSource;
308
456
  if (doneEvent.type.startsWith('xstate.done.actor.')) {
309
457
  const result = extractInvokeResult(doneEvent);
310
458
  if (result) {
311
- agentOutput = result.output;
459
+ matchSource = result.output;
460
+ }
461
+ else {
462
+ const detResult = doneEvent.output;
463
+ if (typeof detResult?.verdict === 'string') {
464
+ matchSource = { verdict: detResult.verdict };
465
+ }
312
466
  }
313
467
  }
314
- if (!agentOutput)
468
+ if (!matchSource)
315
469
  return false;
316
470
  // Defensive: fail closed if params are missing or when is empty/missing.
317
471
  // Validation prevents these cases, but we don't want a silent unconditional
@@ -324,7 +478,7 @@ export function buildWorkflowMachine(definition, taskDescription) {
324
478
  }
325
479
  const when = whenMap;
326
480
  for (const [key, expected] of Object.entries(when)) {
327
- const actual = agentOutput[key];
481
+ const actual = matchSource[key];
328
482
  if (actual !== expected)
329
483
  return false;
330
484
  }
@@ -334,6 +488,7 @@ export function buildWorkflowMachine(definition, taskDescription) {
334
488
  types: {
335
489
  context: {},
336
490
  events: {},
491
+ input: {},
337
492
  },
338
493
  actors: {
339
494
  agentService: fromPromise(() => {
@@ -342,6 +497,9 @@ export function buildWorkflowMachine(definition, taskDescription) {
342
497
  deterministicService: fromPromise(() => {
343
498
  return Promise.reject(new Error('deterministicService must be provided via machine.provide()'));
344
499
  }),
500
+ fanOutService: fromPromise(() => {
501
+ return Promise.reject(new Error('fanOutService must be provided via machine.provide()'));
502
+ }),
345
503
  },
346
504
  guards: xstateGuards,
347
505
  actions: {
@@ -382,8 +540,20 @@ export function buildWorkflowMachine(definition, taskDescription) {
382
540
  const result = doneEvent.output;
383
541
  if (!result)
384
542
  return {};
543
+ // Only attach lastDeterministicResult when the state actually produced a
544
+ // verdict/payload (a result-file state). Guard-only deterministic states
545
+ // leave context byte-identical to the legacy path (the field stays absent).
546
+ const verdictUpdate = result.verdict !== undefined || result.payload !== undefined
547
+ ? {
548
+ lastDeterministicResult: {
549
+ ...(result.verdict !== undefined ? { verdict: result.verdict } : {}),
550
+ ...(result.payload !== undefined ? { payload: result.payload } : {}),
551
+ },
552
+ }
553
+ : {};
385
554
  const baseUpdate = {
386
555
  previousTestCount: result.testCount ?? context.previousTestCount,
556
+ ...verdictUpdate,
387
557
  };
388
558
  if (result.passed)
389
559
  return baseUpdate;
@@ -398,6 +568,20 @@ export function buildWorkflowMachine(definition, taskDescription) {
398
568
  previousStateName: stateId,
399
569
  };
400
570
  }),
571
+ // Promotes the batch's joined context onto the parent FSM after a
572
+ // fan-out invoke resolves (the parent was frozen at `workers` for the
573
+ // whole batch — see runFanOutSegment). The result already carries the
574
+ // chosen lane's full WorkflowContext, so this replaces context wholesale.
575
+ // `if (!result) return {}` keeps the existing context unchanged when the
576
+ // invoke produced no output — never blanks the parent context on a
577
+ // malformed/empty result.
578
+ updateContextFromFanOutResult: assign(({ event }) => {
579
+ const doneEvent = event;
580
+ const result = doneEvent.output;
581
+ if (!result)
582
+ return {};
583
+ return result.context;
584
+ }),
401
585
  storeHumanPrompt: assign(({ event }) => ({
402
586
  humanPrompt: event.prompt ?? null,
403
587
  })),
@@ -470,14 +654,23 @@ export function buildWorkflowMachine(definition, taskDescription) {
470
654
  }).createMachine({
471
655
  id: definition.name,
472
656
  initial: definition.initial,
473
- context: () => ({
474
- ...createInitialContext(definition),
475
- taskDescription,
476
- }),
657
+ context: ({ input }) => {
658
+ if (options.contextFromInput) {
659
+ if (!input?.context) {
660
+ throw new Error(`machine "${definition.name}" requires input.context`);
661
+ }
662
+ return input.context;
663
+ }
664
+ return {
665
+ ...createInitialContext(definition),
666
+ taskDescription,
667
+ };
668
+ },
477
669
  states,
478
670
  });
479
671
  return {
480
672
  machine,
673
+ roundMachinesByState,
481
674
  gateStateNames,
482
675
  terminalStateNames,
483
676
  };