@bastani/atomic 0.9.9 → 0.9.10

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 (864) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/README.md +2 -0
  3. package/dist/builtin/cursor/CHANGELOG.md +12 -0
  4. package/dist/builtin/cursor/package.json +3 -3
  5. package/dist/builtin/intercom/CHANGELOG.md +30 -0
  6. package/dist/builtin/intercom/README.md +12 -4
  7. package/dist/builtin/intercom/broker/broker.ts +96 -14
  8. package/dist/builtin/intercom/broker/client-message-validation.ts +39 -0
  9. package/dist/builtin/intercom/broker/client.ts +101 -92
  10. package/dist/builtin/intercom/broker/group-isolation.ts +28 -0
  11. package/dist/builtin/intercom/broker/send-handler.ts +62 -10
  12. package/dist/builtin/intercom/broker/send-signature.ts +3 -0
  13. package/dist/builtin/intercom/broker/supervisor-channel.ts +126 -0
  14. package/dist/builtin/intercom/closed-workflow-stage-message.ts +66 -0
  15. package/dist/builtin/intercom/config.ts +10 -0
  16. package/dist/builtin/intercom/contact-supervisor-tool.ts +14 -10
  17. package/dist/builtin/intercom/foreground-detach-handoff.ts +12 -2
  18. package/dist/builtin/intercom/group.ts +46 -0
  19. package/dist/builtin/intercom/inbound-message-admission.ts +79 -0
  20. package/dist/builtin/intercom/incoming-message-delivery.ts +49 -0
  21. package/dist/builtin/intercom/index-heavy.ts +148 -94
  22. package/dist/builtin/intercom/index.ts +66 -4
  23. package/dist/builtin/intercom/intercom-test-seams.ts +6 -0
  24. package/dist/builtin/intercom/intercom-tool.ts +71 -20
  25. package/dist/builtin/intercom/intercom-utils.ts +15 -2
  26. package/dist/builtin/intercom/late-stage-message-router.ts +148 -0
  27. package/dist/builtin/intercom/lifecycle.ts +10 -4
  28. package/dist/builtin/intercom/package.json +2 -2
  29. package/dist/builtin/intercom/reconnect-backoff.ts +6 -0
  30. package/dist/builtin/intercom/reply-tracker.ts +8 -0
  31. package/dist/builtin/intercom/skills/intercom/SKILL.md +2 -0
  32. package/dist/builtin/intercom/stable-delivery-retry.ts +32 -0
  33. package/dist/builtin/intercom/subagent-relay.ts +67 -14
  34. package/dist/builtin/intercom/supervisor-authorization-registry.ts +22 -0
  35. package/dist/builtin/intercom/terminal-ordering-barrier.ts +144 -25
  36. package/dist/builtin/intercom/types.ts +18 -5
  37. package/dist/builtin/intercom/workflow-reply-tracker.ts +19 -0
  38. package/dist/builtin/intercom/workflow-stage-admission.ts +43 -0
  39. package/dist/builtin/intercom/workflow-stage-delivery-failure.ts +77 -0
  40. package/dist/builtin/mcp/CHANGELOG.md +22 -0
  41. package/dist/builtin/mcp/README.md +6 -2
  42. package/dist/builtin/mcp/config.ts +8 -8
  43. package/dist/builtin/mcp/direct-tool-executor.ts +7 -6
  44. package/dist/builtin/mcp/package.json +3 -3
  45. package/dist/builtin/mcp/proxy-call.ts +5 -4
  46. package/dist/builtin/mcp/sampling-handler.ts +7 -2
  47. package/dist/builtin/mcp/tool-call-timeout.ts +101 -0
  48. package/dist/builtin/mcp/tool-result-renderer.ts +3 -2
  49. package/dist/builtin/mcp/types.ts +5 -0
  50. package/dist/builtin/mcp/ui-server.ts +3 -2
  51. package/dist/builtin/subagents/CHANGELOG.md +42 -0
  52. package/dist/builtin/subagents/README.md +6 -3
  53. package/dist/builtin/subagents/agents/code-simplifier.md +1 -1
  54. package/dist/builtin/subagents/agents/codebase-analyzer.md +1 -1
  55. package/dist/builtin/subagents/agents/codebase-locator.md +1 -1
  56. package/dist/builtin/subagents/agents/codebase-online-researcher.md +1 -1
  57. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +1 -1
  58. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +1 -1
  59. package/dist/builtin/subagents/agents/codebase-research-locator.md +1 -1
  60. package/dist/builtin/subagents/agents/debugger.md +1 -1
  61. package/dist/builtin/subagents/agents/worker.md +1 -1
  62. package/dist/builtin/subagents/package.json +4 -4
  63. package/dist/builtin/subagents/skills/subagent/SKILL.md +1 -1
  64. package/dist/builtin/subagents/src/extension/index.ts +37 -61
  65. package/dist/builtin/subagents/src/extension/notification-content.ts +80 -0
  66. package/dist/builtin/subagents/src/extension/schemas.ts +9 -0
  67. package/dist/builtin/subagents/src/extension/tool-description.ts +1 -0
  68. package/dist/builtin/subagents/src/intercom/supervisor-authorization.ts +23 -0
  69. package/dist/builtin/subagents/src/runs/background/async-execution-chain.ts +4 -0
  70. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +2 -0
  71. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +4 -0
  72. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +75 -13
  73. package/dist/builtin/subagents/src/runs/background/async-status.ts +19 -0
  74. package/dist/builtin/subagents/src/runs/background/completion-notification.ts +4 -3
  75. package/dist/builtin/subagents/src/runs/background/notify.ts +76 -15
  76. package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +1 -1
  77. package/dist/builtin/subagents/src/runs/background/subagent-runner-dynamic.ts +13 -0
  78. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel.ts +1 -0
  79. package/dist/builtin/subagents/src/runs/background/subagent-runner-sequential.ts +1 -0
  80. package/dist/builtin/subagents/src/runs/background/subagent-runner-step.ts +2 -1
  81. package/dist/builtin/subagents/src/runs/background/subagent-runner-types.ts +4 -0
  82. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +13 -0
  83. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +19 -2
  84. package/dist/builtin/subagents/src/runs/foreground/detached-cleanup-barrier.ts +26 -0
  85. package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +19 -30
  86. package/dist/builtin/subagents/src/runs/foreground/execution-intercom-detach.ts +47 -0
  87. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +60 -2
  88. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +21 -0
  89. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +21 -2
  90. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +6 -1
  91. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +2 -0
  92. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +2 -0
  93. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +1 -1
  94. package/dist/builtin/subagents/src/runs/shared/intercom-group.ts +50 -0
  95. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +16 -0
  96. package/dist/builtin/subagents/src/runs/shared/worktree-post-create.ts +75 -0
  97. package/dist/builtin/subagents/src/runs/shared/worktree-root.ts +51 -0
  98. package/dist/builtin/subagents/src/runs/shared/worktree.ts +69 -77
  99. package/dist/builtin/subagents/src/shared/types-config.ts +6 -0
  100. package/dist/builtin/subagents/src/slash/slash-commands.ts +3 -2
  101. package/dist/builtin/subagents/src/tui/render-result-compact.ts +5 -3
  102. package/dist/builtin/subagents/src/tui/render-result.ts +5 -3
  103. package/dist/builtin/subagents/src/tui/render-widget-graph.ts +7 -4
  104. package/dist/builtin/web-access/CHANGELOG.md +22 -0
  105. package/dist/builtin/web-access/extract-frames.ts +14 -13
  106. package/dist/builtin/web-access/extract.ts +2 -2
  107. package/dist/builtin/web-access/gemini-api.ts +0 -3
  108. package/dist/builtin/web-access/gemini-web-config.ts +1 -3
  109. package/dist/builtin/web-access/gemini-web.ts +1 -0
  110. package/dist/builtin/web-access/package.json +2 -2
  111. package/dist/builtin/web-access/perplexity.ts +0 -3
  112. package/dist/builtin/web-access/result-renderers.ts +7 -5
  113. package/dist/builtin/web-access/subprocess.ts +100 -0
  114. package/dist/builtin/web-access/summary-review.ts +14 -3
  115. package/dist/builtin/web-access/video-extract.ts +12 -17
  116. package/dist/builtin/web-access/web-search-browser.ts +18 -10
  117. package/dist/builtin/web-access/web-search-summary.ts +9 -2
  118. package/dist/builtin/web-access/youtube-extract.ts +22 -25
  119. package/dist/builtin/workflows/CHANGELOG.md +153 -0
  120. package/dist/builtin/workflows/README.md +76 -38
  121. package/dist/builtin/workflows/ambient.d.ts +30 -0
  122. package/dist/builtin/workflows/builtin/adversarial-verification-prompts.ts +15 -0
  123. package/dist/builtin/workflows/builtin/adversarial-verification-runner.ts +93 -0
  124. package/dist/builtin/workflows/builtin/adversarial-verification.d.ts +11 -0
  125. package/dist/builtin/workflows/builtin/adversarial-verification.ts +24 -0
  126. package/dist/builtin/workflows/builtin/classify-and-act-prompts.ts +11 -0
  127. package/dist/builtin/workflows/builtin/classify-and-act-runner.ts +110 -0
  128. package/dist/builtin/workflows/builtin/classify-and-act.d.ts +24 -0
  129. package/dist/builtin/workflows/builtin/classify-and-act.ts +35 -0
  130. package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +8 -2
  131. package/dist/builtin/workflows/builtin/fan-out-and-synthesize-prompts.ts +11 -0
  132. package/dist/builtin/workflows/builtin/fan-out-and-synthesize-runner.ts +96 -0
  133. package/dist/builtin/workflows/builtin/fan-out-and-synthesize.d.ts +23 -0
  134. package/dist/builtin/workflows/builtin/fan-out-and-synthesize.ts +32 -0
  135. package/dist/builtin/workflows/builtin/generate-and-filter-prompts.ts +15 -0
  136. package/dist/builtin/workflows/builtin/generate-and-filter-runner.ts +75 -0
  137. package/dist/builtin/workflows/builtin/generate-and-filter.d.ts +11 -0
  138. package/dist/builtin/workflows/builtin/generate-and-filter.ts +26 -0
  139. package/dist/builtin/workflows/builtin/goal-models.ts +72 -0
  140. package/dist/builtin/workflows/builtin/goal-runner.ts +2 -64
  141. package/dist/builtin/workflows/builtin/index.d.ts +44 -0
  142. package/dist/builtin/workflows/builtin/index.ts +6 -0
  143. package/dist/builtin/workflows/builtin/loop-until-done-prompts.ts +79 -0
  144. package/dist/builtin/workflows/builtin/loop-until-done-runner.ts +189 -0
  145. package/dist/builtin/workflows/builtin/loop-until-done.d.ts +34 -0
  146. package/dist/builtin/workflows/builtin/loop-until-done.ts +31 -0
  147. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +6 -1
  148. package/dist/builtin/workflows/builtin/pattern-artifact-root.ts +28 -0
  149. package/dist/builtin/workflows/builtin/ralph-models.ts +26 -5
  150. package/dist/builtin/workflows/builtin/ralph-runner.ts +1 -0
  151. package/dist/builtin/workflows/builtin/tournament-prompts.ts +79 -0
  152. package/dist/builtin/workflows/builtin/tournament-runner.ts +188 -0
  153. package/dist/builtin/workflows/builtin/tournament.d.ts +33 -0
  154. package/dist/builtin/workflows/builtin/tournament.ts +34 -0
  155. package/dist/builtin/workflows/package.json +2 -2
  156. package/dist/builtin/workflows/src/authoring.d.ts +2 -6
  157. package/dist/builtin/workflows/src/durable/backend.ts +163 -120
  158. package/dist/builtin/workflows/src/durable/completed-catalog.ts +37 -64
  159. package/dist/builtin/workflows/src/durable/completed-inspection.ts +4 -72
  160. package/dist/builtin/workflows/src/durable/dbos-backend.ts +242 -195
  161. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres.ts +207 -0
  162. package/dist/builtin/workflows/src/durable/dbos-envelope.ts +42 -42
  163. package/dist/builtin/workflows/src/durable/dbos-lifecycle.ts +155 -0
  164. package/dist/builtin/workflows/src/durable/dbos-local-postgres.ts +126 -0
  165. package/dist/builtin/workflows/src/durable/dbos-metadata.ts +105 -58
  166. package/dist/builtin/workflows/src/durable/dbos-prompt-reservations.ts +320 -0
  167. package/dist/builtin/workflows/src/durable/dbos-sdk-handle.ts +161 -0
  168. package/dist/builtin/workflows/src/durable/dbos-status-transition.ts +62 -0
  169. package/dist/builtin/workflows/src/durable/dbos-tombstone.ts +2 -2
  170. package/dist/builtin/workflows/src/durable/durable-hash.ts +20 -0
  171. package/dist/builtin/workflows/src/durable/factory.ts +23 -83
  172. package/dist/builtin/workflows/src/durable/format-version.ts +4 -10
  173. package/dist/builtin/workflows/src/durable/index.ts +16 -20
  174. package/dist/builtin/workflows/src/durable/local-command.ts +63 -0
  175. package/dist/builtin/workflows/src/durable/prompt-reservation-state.ts +177 -0
  176. package/dist/builtin/workflows/src/durable/prompt-reservations.ts +36 -0
  177. package/dist/builtin/workflows/src/durable/resume-catalog.ts +2 -200
  178. package/dist/builtin/workflows/src/durable/resume-eligibility.ts +42 -2
  179. package/dist/builtin/workflows/src/durable/resume-runtime.ts +121 -118
  180. package/dist/builtin/workflows/src/durable/retention-policy.ts +42 -0
  181. package/dist/builtin/workflows/src/durable/run-timing.ts +98 -0
  182. package/dist/builtin/workflows/src/durable/scoped-backend.ts +62 -14
  183. package/dist/builtin/workflows/src/durable/stage-primitive.ts +15 -2
  184. package/dist/builtin/workflows/src/durable/tool-primitive.ts +11 -7
  185. package/dist/builtin/workflows/src/durable/types.ts +25 -18
  186. package/dist/builtin/workflows/src/durable/ui-primitive.ts +117 -29
  187. package/dist/builtin/workflows/src/durable/workflow-status-transition.ts +30 -0
  188. package/dist/builtin/workflows/src/engine/primitives/parallel.ts +20 -5
  189. package/dist/builtin/workflows/src/engine/primitives/task.ts +3 -2
  190. package/dist/builtin/workflows/src/engine/primitives/ui.ts +6 -3
  191. package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +14 -22
  192. package/dist/builtin/workflows/src/engine/run-durable-stage-session.ts +14 -14
  193. package/dist/builtin/workflows/src/engine/run.ts +35 -37
  194. package/dist/builtin/workflows/src/engine/runtime.ts +3 -0
  195. package/dist/builtin/workflows/src/engine/workflow-activity.ts +9 -0
  196. package/dist/builtin/workflows/src/extension/completed-stage-intercom-ask.ts +155 -0
  197. package/dist/builtin/workflows/src/extension/config-file-loader.ts +13 -0
  198. package/dist/builtin/workflows/src/extension/config-loader.ts +20 -0
  199. package/dist/builtin/workflows/src/extension/dispatcher.ts +56 -17
  200. package/dist/builtin/workflows/src/extension/extension-factory.ts +13 -10
  201. package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +37 -59
  202. package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +16 -18
  203. package/dist/builtin/workflows/src/extension/lifecycle-notification-delivery.ts +83 -0
  204. package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +80 -41
  205. package/dist/builtin/workflows/src/extension/postmortem-deps.ts +73 -0
  206. package/dist/builtin/workflows/src/extension/public-types.ts +11 -51
  207. package/dist/builtin/workflows/src/extension/render-call.ts +3 -9
  208. package/dist/builtin/workflows/src/extension/render-result.ts +22 -7
  209. package/dist/builtin/workflows/src/extension/runtime-active-block-claim.ts +78 -0
  210. package/dist/builtin/workflows/src/extension/runtime-durable-resume.ts +50 -29
  211. package/dist/builtin/workflows/src/extension/runtime.ts +70 -219
  212. package/dist/builtin/workflows/src/extension/ui-surface.ts +107 -3
  213. package/dist/builtin/workflows/src/extension/wiring.ts +76 -7
  214. package/dist/builtin/workflows/src/extension/workflow-command-completions.ts +10 -5
  215. package/dist/builtin/workflows/src/extension/workflow-command-registration.ts +27 -5
  216. package/dist/builtin/workflows/src/extension/workflow-durable-resume-command.ts +49 -19
  217. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +8 -8
  218. package/dist/builtin/workflows/src/extension/workflow-resume-picker-rows.ts +81 -0
  219. package/dist/builtin/workflows/src/extension/workflow-resume-shadow.ts +55 -0
  220. package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +193 -145
  221. package/dist/builtin/workflows/src/extension/workflow-schema.ts +9 -133
  222. package/dist/builtin/workflows/src/extension/workflow-status-summary.ts +189 -0
  223. package/dist/builtin/workflows/src/extension/workflow-targets.ts +1 -1
  224. package/dist/builtin/workflows/src/extension/workflow-tool-content.ts +78 -3
  225. package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +185 -89
  226. package/dist/builtin/workflows/src/extension/workflow-tool-send.ts +92 -11
  227. package/dist/builtin/workflows/src/extension/workflow-tool.ts +18 -24
  228. package/dist/builtin/workflows/src/runs/background/durable-resume-transition.ts +63 -0
  229. package/dist/builtin/workflows/src/runs/background/quit.ts +139 -29
  230. package/dist/builtin/workflows/src/runs/background/resume-acknowledgements.ts +97 -0
  231. package/dist/builtin/workflows/src/runs/background/run-inspect.ts +111 -0
  232. package/dist/builtin/workflows/src/runs/background/runner.ts +46 -17
  233. package/dist/builtin/workflows/src/runs/background/startup-admission.ts +77 -0
  234. package/dist/builtin/workflows/src/runs/background/status.ts +133 -224
  235. package/dist/builtin/workflows/src/runs/background/workflow-lifecycle-aggregate.ts +44 -0
  236. package/dist/builtin/workflows/src/runs/foreground/executor-direct-helpers.ts +57 -256
  237. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +7 -4
  238. package/dist/builtin/workflows/src/runs/foreground/executor-lifecycle.ts +12 -1
  239. package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +39 -0
  240. package/dist/builtin/workflows/src/runs/foreground/executor-queued-user-message.ts +75 -0
  241. package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +44 -12
  242. package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +63 -12
  243. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +30 -4
  244. package/dist/builtin/workflows/src/runs/foreground/executor-stage-replay.ts +3 -0
  245. package/dist/builtin/workflows/src/runs/foreground/executor-stage-types.ts +4 -1
  246. package/dist/builtin/workflows/src/runs/foreground/executor-task-prompts.ts +0 -67
  247. package/dist/builtin/workflows/src/runs/foreground/executor-types.ts +6 -0
  248. package/dist/builtin/workflows/src/runs/foreground/executor.ts +0 -1
  249. package/dist/builtin/workflows/src/runs/foreground/postmortem-stage-chat.ts +169 -0
  250. package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +38 -1
  251. package/dist/builtin/workflows/src/runs/foreground/stage-runner-candidate.ts +21 -0
  252. package/dist/builtin/workflows/src/runs/foreground/stage-runner-context.ts +21 -3
  253. package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +85 -84
  254. package/dist/builtin/workflows/src/runs/foreground/stage-runner-message-admission.ts +195 -0
  255. package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +12 -5
  256. package/dist/builtin/workflows/src/runs/foreground/stage-runner-replacement.ts +42 -0
  257. package/dist/builtin/workflows/src/runs/foreground/stage-runner-send-user-message.ts +100 -8
  258. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session-options.ts +51 -0
  259. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session.ts +19 -0
  260. package/dist/builtin/workflows/src/runs/foreground/stage-runner-types.ts +28 -2
  261. package/dist/builtin/workflows/src/runs/shared/prompt-callsite.ts +4 -6
  262. package/dist/builtin/workflows/src/runs/shared/worktree-git-runner.ts +89 -0
  263. package/dist/builtin/workflows/src/runs/shared/worktree-git.ts +29 -133
  264. package/dist/builtin/workflows/src/runs/shared/worktree-post-create.ts +130 -0
  265. package/dist/builtin/workflows/src/runs/shared/worktree-root.ts +84 -0
  266. package/dist/builtin/workflows/src/runs/shared/worktree-setup.ts +77 -63
  267. package/dist/builtin/workflows/src/runs/shared/worktree-types.ts +4 -0
  268. package/dist/builtin/workflows/src/sdk-surface.ts +1 -1
  269. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +29 -22
  270. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +26 -24
  271. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +5 -0
  272. package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +5 -0
  273. package/dist/builtin/workflows/src/shared/intercom-group.ts +51 -0
  274. package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +6 -0
  275. package/dist/builtin/workflows/src/shared/persistence-restore.ts +4 -0
  276. package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +3 -0
  277. package/dist/builtin/workflows/src/shared/prompt-callsite-context.ts +13 -0
  278. package/dist/builtin/workflows/src/shared/returned-run-status.ts +2 -1
  279. package/dist/builtin/workflows/src/shared/session-transcript.ts +74 -0
  280. package/dist/builtin/workflows/src/shared/store-stage-methods.ts +1 -0
  281. package/dist/builtin/workflows/src/shared/store-types.ts +8 -0
  282. package/dist/builtin/workflows/src/shared/timing.ts +4 -1
  283. package/dist/builtin/workflows/src/shared/types.ts +2 -6
  284. package/dist/builtin/workflows/src/tui/chat-surface-message.ts +2 -42
  285. package/dist/builtin/workflows/src/tui/dispatch-confirm.ts +2 -2
  286. package/dist/builtin/workflows/src/tui/graph-view-constants.ts +7 -3
  287. package/dist/builtin/workflows/src/tui/graph-view-input.ts +29 -67
  288. package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +15 -10
  289. package/dist/builtin/workflows/src/tui/graph-view-state.ts +0 -2
  290. package/dist/builtin/workflows/src/tui/graph-view-types.ts +3 -9
  291. package/dist/builtin/workflows/src/tui/host-input-form.ts +62 -0
  292. package/dist/builtin/workflows/src/tui/mouse-input.ts +63 -0
  293. package/dist/builtin/workflows/src/tui/node-card.ts +1 -0
  294. package/dist/builtin/workflows/src/tui/overlay-adapter.ts +67 -42
  295. package/dist/builtin/workflows/src/tui/overlay-terminal-modes.ts +49 -0
  296. package/dist/builtin/workflows/src/tui/session-overlays.ts +3 -104
  297. package/dist/builtin/workflows/src/tui/session-picker.ts +3 -12
  298. package/dist/builtin/workflows/src/tui/stage-chat-composer-drafts.ts +19 -0
  299. package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +30 -10
  300. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +19 -9
  301. package/dist/builtin/workflows/src/tui/stage-chat-view-input.ts +25 -38
  302. package/dist/builtin/workflows/src/tui/stage-chat-view-render-helpers.ts +1 -1
  303. package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +7 -6
  304. package/dist/builtin/workflows/src/tui/stage-chat-view-types.ts +7 -1
  305. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +3 -1
  306. package/dist/builtin/workflows/src/tui/store-widget-installer.ts +19 -20
  307. package/dist/builtin/workflows/src/tui/switcher.ts +4 -4
  308. package/dist/builtin/workflows/src/tui/widget.ts +46 -33
  309. package/dist/builtin/workflows/src/tui/workflow-attach-pane-handle.ts +26 -0
  310. package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +14 -2
  311. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +26 -27
  312. package/dist/builtin/workflows/src/tui/workflow-resume-selector.ts +208 -69
  313. package/dist/bun/cli.js +3 -0
  314. package/dist/bun/cli.js.map +1 -1
  315. package/dist/cli/session-picker.d.ts.map +1 -1
  316. package/dist/cli/session-picker.js +3 -0
  317. package/dist/cli/session-picker.js.map +1 -1
  318. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  319. package/dist/core/agent-session-auto-compaction.js +19 -2
  320. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  321. package/dist/core/agent-session-compaction.js +2 -2
  322. package/dist/core/agent-session-compaction.js.map +1 -1
  323. package/dist/core/agent-session-events.d.ts.map +1 -1
  324. package/dist/core/agent-session-events.js +5 -3
  325. package/dist/core/agent-session-events.js.map +1 -1
  326. package/dist/core/agent-session-export.js +1 -1
  327. package/dist/core/agent-session-export.js.map +1 -1
  328. package/dist/core/agent-session-extension-bindings.d.ts +2 -4
  329. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  330. package/dist/core/agent-session-extension-bindings.js +9 -2
  331. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  332. package/dist/core/agent-session-message-queue.d.ts +6 -0
  333. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  334. package/dist/core/agent-session-message-queue.js +107 -36
  335. package/dist/core/agent-session-message-queue.js.map +1 -1
  336. package/dist/core/agent-session-methods.d.ts +18 -7
  337. package/dist/core/agent-session-methods.d.ts.map +1 -1
  338. package/dist/core/agent-session-methods.js.map +1 -1
  339. package/dist/core/agent-session-models.d.ts +3 -1
  340. package/dist/core/agent-session-models.d.ts.map +1 -1
  341. package/dist/core/agent-session-models.js +1 -1
  342. package/dist/core/agent-session-models.js.map +1 -1
  343. package/dist/core/agent-session-post-tool-compaction.d.ts +16 -0
  344. package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -0
  345. package/dist/core/agent-session-post-tool-compaction.js +113 -0
  346. package/dist/core/agent-session-post-tool-compaction.js.map +1 -0
  347. package/dist/core/agent-session-prompt.d.ts +12 -1
  348. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  349. package/dist/core/agent-session-prompt.js +22 -5
  350. package/dist/core/agent-session-prompt.js.map +1 -1
  351. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  352. package/dist/core/agent-session-runtime.js +3 -0
  353. package/dist/core/agent-session-runtime.js.map +1 -1
  354. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  355. package/dist/core/agent-session-tool-hooks.js +21 -0
  356. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  357. package/dist/core/agent-session-tree.d.ts.map +1 -1
  358. package/dist/core/agent-session-tree.js +2 -1
  359. package/dist/core/agent-session-tree.js.map +1 -1
  360. package/dist/core/agent-session-types.d.ts +7 -0
  361. package/dist/core/agent-session-types.d.ts.map +1 -1
  362. package/dist/core/agent-session-types.js.map +1 -1
  363. package/dist/core/agent-session.d.ts +6 -0
  364. package/dist/core/agent-session.d.ts.map +1 -1
  365. package/dist/core/agent-session.js +18 -1
  366. package/dist/core/agent-session.js.map +1 -1
  367. package/dist/core/async/job-manager.d.ts +1 -0
  368. package/dist/core/async/job-manager.d.ts.map +1 -1
  369. package/dist/core/async/job-manager.js +29 -5
  370. package/dist/core/async/job-manager.js.map +1 -1
  371. package/dist/core/async/session-manager.d.ts +2 -4
  372. package/dist/core/async/session-manager.d.ts.map +1 -1
  373. package/dist/core/async/session-manager.js +5 -32
  374. package/dist/core/async/session-manager.js.map +1 -1
  375. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  376. package/dist/core/atomic-guide-command.js +2 -0
  377. package/dist/core/atomic-guide-command.js.map +1 -1
  378. package/dist/core/auth-storage.d.ts +20 -10
  379. package/dist/core/auth-storage.d.ts.map +1 -1
  380. package/dist/core/auth-storage.js +151 -92
  381. package/dist/core/auth-storage.js.map +1 -1
  382. package/dist/core/callback-activity.d.ts +27 -0
  383. package/dist/core/callback-activity.d.ts.map +1 -0
  384. package/dist/core/callback-activity.js +44 -0
  385. package/dist/core/callback-activity.js.map +1 -0
  386. package/dist/core/compaction/branch-summarization.d.ts +4 -1
  387. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  388. package/dist/core/compaction/branch-summarization.js +4 -3
  389. package/dist/core/compaction/branch-summarization.js.map +1 -1
  390. package/dist/core/compaction/compaction-boundary.d.ts +1 -1
  391. package/dist/core/compaction/compaction-boundary.d.ts.map +1 -1
  392. package/dist/core/compaction/compaction-boundary.js +10 -23
  393. package/dist/core/compaction/compaction-boundary.js.map +1 -1
  394. package/dist/core/compaction/compaction-runner.d.ts +4 -1
  395. package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
  396. package/dist/core/compaction/compaction-runner.js +1 -1
  397. package/dist/core/compaction/compaction-runner.js.map +1 -1
  398. package/dist/core/compaction/compaction-types.d.ts +3 -2
  399. package/dist/core/compaction/compaction-types.d.ts.map +1 -1
  400. package/dist/core/compaction/compaction-types.js.map +1 -1
  401. package/dist/core/compaction/compaction.d.ts +6 -6
  402. package/dist/core/compaction/compaction.d.ts.map +1 -1
  403. package/dist/core/compaction/compaction.js +12 -9
  404. package/dist/core/compaction/compaction.js.map +1 -1
  405. package/dist/core/compaction/index.d.ts +1 -0
  406. package/dist/core/compaction/index.d.ts.map +1 -1
  407. package/dist/core/compaction/index.js +1 -0
  408. package/dist/core/compaction/index.js.map +1 -1
  409. package/dist/core/compaction/range-planner-diagnostics.d.ts +101 -0
  410. package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -0
  411. package/dist/core/compaction/range-planner-diagnostics.js +116 -0
  412. package/dist/core/compaction/range-planner-diagnostics.js.map +1 -0
  413. package/dist/core/compaction/range-planner.d.ts +13 -3
  414. package/dist/core/compaction/range-planner.d.ts.map +1 -1
  415. package/dist/core/compaction/range-planner.js +117 -68
  416. package/dist/core/compaction/range-planner.js.map +1 -1
  417. package/dist/core/compaction/truncated-range-recovery.d.ts +47 -0
  418. package/dist/core/compaction/truncated-range-recovery.d.ts.map +1 -0
  419. package/dist/core/compaction/truncated-range-recovery.js +112 -0
  420. package/dist/core/compaction/truncated-range-recovery.js.map +1 -0
  421. package/dist/core/extensions/api-types.d.ts +2 -2
  422. package/dist/core/extensions/api-types.d.ts.map +1 -1
  423. package/dist/core/extensions/api-types.js.map +1 -1
  424. package/dist/core/extensions/context-types.d.ts +23 -1
  425. package/dist/core/extensions/context-types.d.ts.map +1 -1
  426. package/dist/core/extensions/context-types.js.map +1 -1
  427. package/dist/core/extensions/index.d.ts +1 -1
  428. package/dist/core/extensions/index.d.ts.map +1 -1
  429. package/dist/core/extensions/index.js.map +1 -1
  430. package/dist/core/extensions/loader-api.js +2 -2
  431. package/dist/core/extensions/loader-api.js.map +1 -1
  432. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  433. package/dist/core/extensions/loader-core.js +8 -1
  434. package/dist/core/extensions/loader-core.js.map +1 -1
  435. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  436. package/dist/core/extensions/loader-virtual-modules.js +9 -6
  437. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  438. package/dist/core/extensions/message-types.d.ts +17 -0
  439. package/dist/core/extensions/message-types.d.ts.map +1 -1
  440. package/dist/core/extensions/message-types.js.map +1 -1
  441. package/dist/core/extensions/provider-types.d.ts +3 -0
  442. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  443. package/dist/core/extensions/provider-types.js.map +1 -1
  444. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  445. package/dist/core/extensions/runner-events.js +11 -10
  446. package/dist/core/extensions/runner-events.js.map +1 -1
  447. package/dist/core/extensions/runtime-types.d.ts +2 -2
  448. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  449. package/dist/core/extensions/runtime-types.js.map +1 -1
  450. package/dist/core/extensions/ui-types.d.ts +78 -0
  451. package/dist/core/extensions/ui-types.d.ts.map +1 -1
  452. package/dist/core/extensions/ui-types.js.map +1 -1
  453. package/dist/core/model-registry-auth.d.ts +2 -1
  454. package/dist/core/model-registry-auth.d.ts.map +1 -1
  455. package/dist/core/model-registry-auth.js +25 -6
  456. package/dist/core/model-registry-auth.js.map +1 -1
  457. package/dist/core/model-registry-builtins.d.ts +3 -2
  458. package/dist/core/model-registry-builtins.d.ts.map +1 -1
  459. package/dist/core/model-registry-builtins.js +12 -6
  460. package/dist/core/model-registry-builtins.js.map +1 -1
  461. package/dist/core/model-registry-dynamic.d.ts +1 -0
  462. package/dist/core/model-registry-dynamic.d.ts.map +1 -1
  463. package/dist/core/model-registry-dynamic.js +53 -13
  464. package/dist/core/model-registry-dynamic.js.map +1 -1
  465. package/dist/core/model-registry-loader.d.ts +2 -1
  466. package/dist/core/model-registry-loader.d.ts.map +1 -1
  467. package/dist/core/model-registry-loader.js +2 -2
  468. package/dist/core/model-registry-loader.js.map +1 -1
  469. package/dist/core/model-registry-types.d.ts +10 -3
  470. package/dist/core/model-registry-types.d.ts.map +1 -1
  471. package/dist/core/model-registry-types.js.map +1 -1
  472. package/dist/core/model-registry.d.ts +15 -1
  473. package/dist/core/model-registry.d.ts.map +1 -1
  474. package/dist/core/model-registry.js +214 -30
  475. package/dist/core/model-registry.js.map +1 -1
  476. package/dist/core/models-store.d.ts +25 -0
  477. package/dist/core/models-store.d.ts.map +1 -0
  478. package/dist/core/models-store.js +73 -0
  479. package/dist/core/models-store.js.map +1 -0
  480. package/dist/core/oauth-compat.d.ts +17 -0
  481. package/dist/core/oauth-compat.d.ts.map +1 -0
  482. package/dist/core/oauth-compat.js +2 -0
  483. package/dist/core/oauth-compat.js.map +1 -0
  484. package/dist/core/oauth-provider-bridge.d.ts +40 -0
  485. package/dist/core/oauth-provider-bridge.d.ts.map +1 -0
  486. package/dist/core/oauth-provider-bridge.js +169 -0
  487. package/dist/core/oauth-provider-bridge.js.map +1 -0
  488. package/dist/core/output-guard.d.ts +2 -0
  489. package/dist/core/output-guard.d.ts.map +1 -1
  490. package/dist/core/output-guard.js +14 -0
  491. package/dist/core/output-guard.js.map +1 -1
  492. package/dist/core/remote-catalog-provider.d.ts +5 -0
  493. package/dist/core/remote-catalog-provider.d.ts.map +1 -0
  494. package/dist/core/remote-catalog-provider.js +138 -0
  495. package/dist/core/remote-catalog-provider.js.map +1 -0
  496. package/dist/core/sdk.d.ts.map +1 -1
  497. package/dist/core/sdk.js +8 -3
  498. package/dist/core/sdk.js.map +1 -1
  499. package/dist/core/session-manager-core.d.ts +1 -1
  500. package/dist/core/session-manager-core.d.ts.map +1 -1
  501. package/dist/core/session-manager-core.js +1 -1
  502. package/dist/core/session-manager-core.js.map +1 -1
  503. package/dist/core/session-manager-entries.d.ts +1 -1
  504. package/dist/core/session-manager-entries.d.ts.map +1 -1
  505. package/dist/core/session-manager-entries.js.map +1 -1
  506. package/dist/core/session-manager-history.d.ts +2 -2
  507. package/dist/core/session-manager-history.js +2 -2
  508. package/dist/core/session-manager-history.js.map +1 -1
  509. package/dist/core/session-manager-list.d.ts.map +1 -1
  510. package/dist/core/session-manager-list.js +65 -23
  511. package/dist/core/session-manager-list.js.map +1 -1
  512. package/dist/core/session-manager-types.d.ts +3 -2
  513. package/dist/core/session-manager-types.d.ts.map +1 -1
  514. package/dist/core/session-manager-types.js.map +1 -1
  515. package/dist/core/slash-commands.d.ts.map +1 -1
  516. package/dist/core/slash-commands.js +9 -5
  517. package/dist/core/slash-commands.js.map +1 -1
  518. package/dist/core/tools/bash.d.ts.map +1 -1
  519. package/dist/core/tools/bash.js +2 -3
  520. package/dist/core/tools/bash.js.map +1 -1
  521. package/dist/core/tools/find.js +2 -2
  522. package/dist/core/tools/find.js.map +1 -1
  523. package/dist/core/tools/grep.js +2 -2
  524. package/dist/core/tools/grep.js.map +1 -1
  525. package/dist/core/tools/ls.js +2 -2
  526. package/dist/core/tools/ls.js.map +1 -1
  527. package/dist/core/tools/read.d.ts.map +1 -1
  528. package/dist/core/tools/read.js +4 -3
  529. package/dist/core/tools/read.js.map +1 -1
  530. package/dist/core/tools/todos-render.d.ts.map +1 -1
  531. package/dist/core/tools/todos-render.js +3 -2
  532. package/dist/core/tools/todos-render.js.map +1 -1
  533. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  534. package/dist/core/tools/tool-definition-wrapper.js +3 -2
  535. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  536. package/dist/core/tools/write.js +2 -2
  537. package/dist/core/tools/write.js.map +1 -1
  538. package/dist/core/workflow-stage-admission.d.ts +29 -0
  539. package/dist/core/workflow-stage-admission.d.ts.map +1 -0
  540. package/dist/core/workflow-stage-admission.js +81 -0
  541. package/dist/core/workflow-stage-admission.js.map +1 -0
  542. package/dist/index-extensions.d.ts +1 -1
  543. package/dist/index-extensions.d.ts.map +1 -1
  544. package/dist/index-extensions.js.map +1 -1
  545. package/dist/index.d.ts +4 -1
  546. package/dist/index.d.ts.map +1 -1
  547. package/dist/index.js +4 -1
  548. package/dist/index.js.map +1 -1
  549. package/dist/main-types.d.ts +13 -0
  550. package/dist/main-types.d.ts.map +1 -0
  551. package/dist/main-types.js +2 -0
  552. package/dist/main-types.js.map +1 -0
  553. package/dist/main.d.ts +2 -5
  554. package/dist/main.d.ts.map +1 -1
  555. package/dist/main.js +25 -17
  556. package/dist/main.js.map +1 -1
  557. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  558. package/dist/modes/interactive/components/assistant-message.js +17 -12
  559. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  560. package/dist/modes/interactive/components/atomic-banner.d.ts +7 -0
  561. package/dist/modes/interactive/components/atomic-banner.d.ts.map +1 -1
  562. package/dist/modes/interactive/components/atomic-banner.js +20 -0
  563. package/dist/modes/interactive/components/atomic-banner.js.map +1 -1
  564. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  565. package/dist/modes/interactive/components/bash-execution.js +5 -3
  566. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  567. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  568. package/dist/modes/interactive/components/branch-summary-message.js +3 -4
  569. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  570. package/dist/modes/interactive/components/chat-message-renderer.d.ts +4 -0
  571. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  572. package/dist/modes/interactive/components/chat-message-renderer.js +4 -0
  573. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  574. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
  575. package/dist/modes/interactive/components/chat-session-host-events.js +79 -8
  576. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
  577. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
  578. package/dist/modes/interactive/components/chat-session-host-rendering.js +4 -2
  579. package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
  580. package/dist/modes/interactive/components/chat-session-host.d.ts +1 -0
  581. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  582. package/dist/modes/interactive/components/chat-session-host.js +4 -1
  583. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  584. package/dist/modes/interactive/components/compaction-boundary-message.d.ts.map +1 -1
  585. package/dist/modes/interactive/components/compaction-boundary-message.js +3 -4
  586. package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
  587. package/dist/modes/interactive/components/host-input-form-mount.d.ts +14 -0
  588. package/dist/modes/interactive/components/host-input-form-mount.d.ts.map +1 -0
  589. package/dist/modes/interactive/components/host-input-form-mount.js +79 -0
  590. package/dist/modes/interactive/components/host-input-form-mount.js.map +1 -0
  591. package/dist/modes/interactive/components/host-input-form.d.ts +52 -0
  592. package/dist/modes/interactive/components/host-input-form.d.ts.map +1 -0
  593. package/dist/modes/interactive/components/host-input-form.js +278 -0
  594. package/dist/modes/interactive/components/host-input-form.js.map +1 -0
  595. package/dist/modes/interactive/components/host-session-picker.d.ts +46 -0
  596. package/dist/modes/interactive/components/host-session-picker.d.ts.map +1 -0
  597. package/dist/modes/interactive/components/host-session-picker.js +183 -0
  598. package/dist/modes/interactive/components/host-session-picker.js.map +1 -0
  599. package/dist/modes/interactive/components/index.d.ts +1 -1
  600. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  601. package/dist/modes/interactive/components/index.js +1 -1
  602. package/dist/modes/interactive/components/index.js.map +1 -1
  603. package/dist/modes/interactive/components/keybinding-hints.d.ts +2 -0
  604. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  605. package/dist/modes/interactive/components/keybinding-hints.js +12 -0
  606. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  607. package/dist/modes/interactive/components/login-dialog.d.ts +3 -1
  608. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  609. package/dist/modes/interactive/components/login-dialog.js +8 -2
  610. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  611. package/dist/modes/interactive/components/model-selector.d.ts +7 -1
  612. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  613. package/dist/modes/interactive/components/model-selector.js +57 -10
  614. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  615. package/dist/modes/interactive/components/session-selector.d.ts +15 -0
  616. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  617. package/dist/modes/interactive/components/session-selector.js +35 -3
  618. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  619. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  620. package/dist/modes/interactive/components/skill-invocation-message.js +3 -2
  621. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  622. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  623. package/dist/modes/interactive/components/tool-execution.js +9 -0
  624. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  625. package/dist/modes/interactive/interactive-agent-events.js +24 -10
  626. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  627. package/dist/modes/interactive/interactive-auth-login.js +7 -1
  628. package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
  629. package/dist/modes/interactive/interactive-auth-routing.js +3 -3
  630. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
  631. package/dist/modes/interactive/interactive-autocomplete.js +49 -0
  632. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  633. package/dist/modes/interactive/interactive-bash-compact.js +2 -0
  634. package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
  635. package/dist/modes/interactive/interactive-extension-context.js +14 -0
  636. package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
  637. package/dist/modes/interactive/interactive-extension-runtime.js +1 -1
  638. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  639. package/dist/modes/interactive/interactive-global-clear.d.ts +13 -0
  640. package/dist/modes/interactive/interactive-global-clear.d.ts.map +1 -0
  641. package/dist/modes/interactive/interactive-global-clear.js +11 -0
  642. package/dist/modes/interactive/interactive-global-clear.js.map +1 -0
  643. package/dist/modes/interactive/interactive-input-handling.js +17 -10
  644. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  645. package/dist/modes/interactive/interactive-mode-base.d.ts +6 -1
  646. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  647. package/dist/modes/interactive/interactive-mode-base.js +25 -2
  648. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  649. package/dist/modes/interactive/interactive-mode-deps.d.ts +4 -3
  650. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  651. package/dist/modes/interactive/interactive-mode-deps.js +2 -2
  652. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  653. package/dist/modes/interactive/interactive-mode-helpers.d.ts +4 -1
  654. package/dist/modes/interactive/interactive-mode-helpers.d.ts.map +1 -1
  655. package/dist/modes/interactive/interactive-mode-helpers.js +14 -1
  656. package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
  657. package/dist/modes/interactive/interactive-mode-surface.d.ts +3 -2
  658. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  659. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  660. package/dist/modes/interactive/interactive-mode-types.d.ts +3 -0
  661. package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
  662. package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
  663. package/dist/modes/interactive/interactive-model-routing.js +7 -4
  664. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  665. package/dist/modes/interactive/interactive-queueing.js +2 -2
  666. package/dist/modes/interactive/interactive-queueing.js.map +1 -1
  667. package/dist/modes/interactive/interactive-render-chat.js +25 -4
  668. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  669. package/dist/modes/interactive/interactive-session-routing.js +3 -0
  670. package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
  671. package/dist/modes/interactive/interactive-slash-commands.js +5 -2
  672. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  673. package/dist/modes/interactive/interactive-startup.d.ts +1 -1
  674. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  675. package/dist/modes/interactive/interactive-startup.js +22 -9
  676. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  677. package/dist/modes/interactive/interactive-terminal-title.d.ts +6 -0
  678. package/dist/modes/interactive/interactive-terminal-title.d.ts.map +1 -0
  679. package/dist/modes/interactive/interactive-terminal-title.js +7 -0
  680. package/dist/modes/interactive/interactive-terminal-title.js.map +1 -0
  681. package/dist/modes/interactive-engine/activity-watchdog.d.ts +45 -0
  682. package/dist/modes/interactive-engine/activity-watchdog.d.ts.map +1 -0
  683. package/dist/modes/interactive-engine/activity-watchdog.js +74 -0
  684. package/dist/modes/interactive-engine/activity-watchdog.js.map +1 -0
  685. package/dist/modes/interactive-engine/create-isolated-runtime.d.ts +14 -0
  686. package/dist/modes/interactive-engine/create-isolated-runtime.d.ts.map +1 -0
  687. package/dist/modes/interactive-engine/create-isolated-runtime.js +56 -0
  688. package/dist/modes/interactive-engine/create-isolated-runtime.js.map +1 -0
  689. package/dist/modes/interactive-engine/engine-args.d.ts +10 -0
  690. package/dist/modes/interactive-engine/engine-args.d.ts.map +1 -0
  691. package/dist/modes/interactive-engine/engine-args.js +55 -0
  692. package/dist/modes/interactive-engine/engine-args.js.map +1 -0
  693. package/dist/modes/interactive-engine/engine-child-liveness.d.ts +7 -0
  694. package/dist/modes/interactive-engine/engine-child-liveness.d.ts.map +1 -0
  695. package/dist/modes/interactive-engine/engine-child-liveness.js +50 -0
  696. package/dist/modes/interactive-engine/engine-child-liveness.js.map +1 -0
  697. package/dist/modes/interactive-engine/engine-custom-ui.d.ts +47 -0
  698. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -0
  699. package/dist/modes/interactive-engine/engine-custom-ui.js +276 -0
  700. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -0
  701. package/dist/modes/interactive-engine/engine-input-form.d.ts +13 -0
  702. package/dist/modes/interactive-engine/engine-input-form.d.ts.map +1 -0
  703. package/dist/modes/interactive-engine/engine-input-form.js +49 -0
  704. package/dist/modes/interactive-engine/engine-input-form.js.map +1 -0
  705. package/dist/modes/interactive-engine/engine-monitor.d.ts +18 -0
  706. package/dist/modes/interactive-engine/engine-monitor.d.ts.map +1 -0
  707. package/dist/modes/interactive-engine/engine-monitor.js +63 -0
  708. package/dist/modes/interactive-engine/engine-monitor.js.map +1 -0
  709. package/dist/modes/interactive-engine/engine-render-service.d.ts +17 -0
  710. package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -0
  711. package/dist/modes/interactive-engine/engine-render-service.js +150 -0
  712. package/dist/modes/interactive-engine/engine-render-service.js.map +1 -0
  713. package/dist/modes/interactive-engine/engine-session-picker.d.ts +22 -0
  714. package/dist/modes/interactive-engine/engine-session-picker.d.ts.map +1 -0
  715. package/dist/modes/interactive-engine/engine-session-picker.js +106 -0
  716. package/dist/modes/interactive-engine/engine-session-picker.js.map +1 -0
  717. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +23 -0
  718. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -0
  719. package/dist/modes/interactive-engine/extension-ui-bridge.js +126 -0
  720. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -0
  721. package/dist/modes/interactive-engine/input-form-host.d.ts +15 -0
  722. package/dist/modes/interactive-engine/input-form-host.d.ts.map +1 -0
  723. package/dist/modes/interactive-engine/input-form-host.js +44 -0
  724. package/dist/modes/interactive-engine/input-form-host.js.map +1 -0
  725. package/dist/modes/interactive-engine/isolated-runtime.d.ts +75 -0
  726. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -0
  727. package/dist/modes/interactive-engine/isolated-runtime.js +448 -0
  728. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -0
  729. package/dist/modes/interactive-engine/protocol.d.ts +184 -0
  730. package/dist/modes/interactive-engine/protocol.d.ts.map +1 -0
  731. package/dist/modes/interactive-engine/protocol.js +254 -0
  732. package/dist/modes/interactive-engine/protocol.js.map +1 -0
  733. package/dist/modes/interactive-engine/remote-command-catalog.d.ts +33 -0
  734. package/dist/modes/interactive-engine/remote-command-catalog.d.ts.map +1 -0
  735. package/dist/modes/interactive-engine/remote-command-catalog.js +51 -0
  736. package/dist/modes/interactive-engine/remote-command-catalog.js.map +1 -0
  737. package/dist/modes/interactive-engine/remote-component.d.ts +16 -0
  738. package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -0
  739. package/dist/modes/interactive-engine/remote-component.js +209 -0
  740. package/dist/modes/interactive-engine/remote-component.js.map +1 -0
  741. package/dist/modes/interactive-engine/remote-frame-clamp.d.ts +25 -0
  742. package/dist/modes/interactive-engine/remote-frame-clamp.d.ts.map +1 -0
  743. package/dist/modes/interactive-engine/remote-frame-clamp.js +43 -0
  744. package/dist/modes/interactive-engine/remote-frame-clamp.js.map +1 -0
  745. package/dist/modes/interactive-engine/remote-renderer.d.ts +59 -0
  746. package/dist/modes/interactive-engine/remote-renderer.d.ts.map +1 -0
  747. package/dist/modes/interactive-engine/remote-renderer.js +123 -0
  748. package/dist/modes/interactive-engine/remote-renderer.js.map +1 -0
  749. package/dist/modes/interactive-engine/session-picker-host.d.ts +25 -0
  750. package/dist/modes/interactive-engine/session-picker-host.d.ts.map +1 -0
  751. package/dist/modes/interactive-engine/session-picker-host.js +75 -0
  752. package/dist/modes/interactive-engine/session-picker-host.js.map +1 -0
  753. package/dist/modes/interactive-engine/terminal-mode-controller.d.ts +43 -0
  754. package/dist/modes/interactive-engine/terminal-mode-controller.d.ts.map +1 -0
  755. package/dist/modes/interactive-engine/terminal-mode-controller.js +109 -0
  756. package/dist/modes/interactive-engine/terminal-mode-controller.js.map +1 -0
  757. package/dist/modes/rpc/bounded-writer.d.ts +27 -0
  758. package/dist/modes/rpc/bounded-writer.d.ts.map +1 -0
  759. package/dist/modes/rpc/bounded-writer.js +103 -0
  760. package/dist/modes/rpc/bounded-writer.js.map +1 -0
  761. package/dist/modes/rpc/jsonl.d.ts +15 -12
  762. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  763. package/dist/modes/rpc/jsonl.js +102 -28
  764. package/dist/modes/rpc/jsonl.js.map +1 -1
  765. package/dist/modes/rpc/rpc-client-api.d.ts +83 -0
  766. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -0
  767. package/dist/modes/rpc/rpc-client-api.js +64 -0
  768. package/dist/modes/rpc/rpc-client-api.js.map +1 -0
  769. package/dist/modes/rpc/rpc-client-process.d.ts +19 -0
  770. package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -0
  771. package/dist/modes/rpc/rpc-client-process.js +79 -0
  772. package/dist/modes/rpc/rpc-client-process.js.map +1 -0
  773. package/dist/modes/rpc/rpc-client-waits.d.ts +8 -0
  774. package/dist/modes/rpc/rpc-client-waits.d.ts.map +1 -0
  775. package/dist/modes/rpc/rpc-client-waits.js +33 -0
  776. package/dist/modes/rpc/rpc-client-waits.js.map +1 -0
  777. package/dist/modes/rpc/rpc-client.d.ts +48 -124
  778. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  779. package/dist/modes/rpc/rpc-client.js +295 -249
  780. package/dist/modes/rpc/rpc-client.js.map +1 -1
  781. package/dist/modes/rpc/rpc-command-handler.d.ts +5 -1
  782. package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
  783. package/dist/modes/rpc/rpc-command-handler.js +79 -3
  784. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  785. package/dist/modes/rpc/rpc-event-buffer.d.ts +11 -0
  786. package/dist/modes/rpc/rpc-event-buffer.d.ts.map +1 -0
  787. package/dist/modes/rpc/rpc-event-buffer.js +30 -0
  788. package/dist/modes/rpc/rpc-event-buffer.js.map +1 -0
  789. package/dist/modes/rpc/rpc-extension-ui.d.ts +7 -1
  790. package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
  791. package/dist/modes/rpc/rpc-extension-ui.js +54 -32
  792. package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
  793. package/dist/modes/rpc/rpc-input-scheduler.d.ts +16 -0
  794. package/dist/modes/rpc/rpc-input-scheduler.d.ts.map +1 -0
  795. package/dist/modes/rpc/rpc-input-scheduler.js +69 -0
  796. package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -0
  797. package/dist/modes/rpc/rpc-input.d.ts +2 -1
  798. package/dist/modes/rpc/rpc-input.d.ts.map +1 -1
  799. package/dist/modes/rpc/rpc-input.js +4 -9
  800. package/dist/modes/rpc/rpc-input.js.map +1 -1
  801. package/dist/modes/rpc/rpc-keybindings-reload.d.ts +27 -0
  802. package/dist/modes/rpc/rpc-keybindings-reload.d.ts.map +1 -0
  803. package/dist/modes/rpc/rpc-keybindings-reload.js +69 -0
  804. package/dist/modes/rpc/rpc-keybindings-reload.js.map +1 -0
  805. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  806. package/dist/modes/rpc/rpc-mode.js +63 -8
  807. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  808. package/dist/modes/rpc/rpc-output-buffer.d.ts +10 -0
  809. package/dist/modes/rpc/rpc-output-buffer.d.ts.map +1 -0
  810. package/dist/modes/rpc/rpc-output-buffer.js +70 -0
  811. package/dist/modes/rpc/rpc-output-buffer.js.map +1 -0
  812. package/dist/modes/rpc/rpc-session-binding.d.ts +16 -1
  813. package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -1
  814. package/dist/modes/rpc/rpc-session-binding.js +16 -3
  815. package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
  816. package/dist/modes/rpc/rpc-types.d.ts +109 -0
  817. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  818. package/dist/modes/rpc/rpc-types.js.map +1 -1
  819. package/dist/package-manager-cli-parser.d.ts +2 -0
  820. package/dist/package-manager-cli-parser.d.ts.map +1 -1
  821. package/dist/package-manager-cli-parser.js +24 -5
  822. package/dist/package-manager-cli-parser.js.map +1 -1
  823. package/dist/package-manager-cli.d.ts +7 -0
  824. package/dist/package-manager-cli.d.ts.map +1 -1
  825. package/dist/package-manager-cli.js +65 -1
  826. package/dist/package-manager-cli.js.map +1 -1
  827. package/dist/utils/shell.d.ts +1 -0
  828. package/dist/utils/shell.d.ts.map +1 -1
  829. package/dist/utils/shell.js +46 -0
  830. package/dist/utils/shell.js.map +1 -1
  831. package/docs/changelog.mdx +11 -0
  832. package/docs/compaction.md +53 -17
  833. package/docs/custom-provider.md +24 -5
  834. package/docs/development.md +9 -7
  835. package/docs/docs.json +1 -0
  836. package/docs/extensions.md +30 -16
  837. package/docs/intercom.md +489 -0
  838. package/docs/json.md +1 -1
  839. package/docs/keybindings.md +1 -1
  840. package/docs/packages.md +1 -0
  841. package/docs/quickstart.md +11 -5
  842. package/docs/rpc.md +9 -7
  843. package/docs/sdk.md +6 -0
  844. package/docs/session-format.md +7 -6
  845. package/docs/sessions.md +4 -2
  846. package/docs/settings.md +2 -2
  847. package/docs/subagents.md +7 -2
  848. package/docs/tui.md +61 -2
  849. package/docs/usage.md +6 -5
  850. package/docs/workflows.md +2572 -1379
  851. package/examples/extensions/handoff.ts +1 -1
  852. package/examples/extensions/qna.ts +1 -1
  853. package/examples/extensions/summarize.ts +1 -1
  854. package/npm-shrinkwrap.json +225 -76
  855. package/package.json +7 -6
  856. package/dist/builtin/workflows/src/durable/file-backend.ts +0 -439
  857. package/dist/builtin/workflows/src/durable/file-lock.ts +0 -153
  858. package/dist/builtin/workflows/src/durable/file-state.ts +0 -104
  859. package/dist/builtin/workflows/src/extension/runtime-direct.ts +0 -96
  860. package/dist/builtin/workflows/src/extension/workflow-tool-helpers.ts +0 -66
  861. package/dist/builtin/workflows/src/runs/foreground/executor-direct-output.ts +0 -91
  862. package/dist/builtin/workflows/src/runs/foreground/executor-direct.ts +0 -282
  863. package/dist/builtin/workflows/src/shared/resumable-workflow-notices.ts +0 -43
  864. package/dist/builtin/workflows/src/tui/session-confirm.ts +0 -299
@@ -0,0 +1,35 @@
1
+ import { Type } from "typebox";
2
+ import { workflow } from "../src/authoring/workflow.js";
3
+ import { runClassifyAndAct } from "./classify-and-act-runner.js";
4
+
5
+ export const DEFAULT_ACTION_CATEGORIES = ["analysis", "implementation", "research"] as const;
6
+
7
+ export default workflow({
8
+ name: "classify-and-act",
9
+ description: "Classify a task with structured confidence, route deterministically to an isolated category action, and ask for human selection when confidence is low.",
10
+ inputs: {
11
+ prompt: Type.String({ description: "Task to classify and execute." }),
12
+ categories: Type.Array(Type.String({ minLength: 1 }), {
13
+ minItems: 1,
14
+ maxItems: 8,
15
+ default: [...DEFAULT_ACTION_CATEGORIES],
16
+ description: "Ordered action categories available to the classifier and fallback chooser.",
17
+ }),
18
+ confidence_threshold: Type.Number({
19
+ minimum: 0.5,
20
+ maximum: 0.99,
21
+ default: 0.75,
22
+ description: "Minimum structured confidence required to route without human selection.",
23
+ }),
24
+ },
25
+ outputs: {
26
+ result: Type.String({ description: "Category-specific action report." }),
27
+ category: Type.String({ description: "Selected category, including any human fallback selection." }),
28
+ confidence: Type.Number({ minimum: 0, maximum: 1, description: "Classifier confidence before fallback." }),
29
+ action: Type.String({ description: "Executed category-specific action stage name." }),
30
+ classification_path: Type.String({ description: "Structured classification artifact path." }),
31
+ action_path: Type.String({ description: "Category action report artifact path." }),
32
+ artifact_dir: Type.String({ description: "Per-run artifact directory." }),
33
+ },
34
+ run: async (ctx) => await runClassifyAndAct(ctx),
35
+ });
@@ -40,6 +40,9 @@ export const PLANNER_MODEL_CONFIG = {
40
40
  "openai-codex/gpt-5.6-sol:xhigh",
41
41
  "github-copilot/gpt-5.6-sol:xhigh",
42
42
  "openai/gpt-5.6-sol:xhigh",
43
+ "kimi-coding/k3:max",
44
+ "moonshotai/kimi-k3:max",
45
+ "moonshotai-cn/kimi-k3:max",
43
46
  "openai-codex/gpt-5.5:xhigh",
44
47
  "github-copilot/gpt-5.5:xhigh",
45
48
  "openai/gpt-5.5:xhigh",
@@ -49,12 +52,14 @@ export const PLANNER_MODEL_CONFIG = {
49
52
  "cursor/gpt-5.6-sol:xhigh",
50
53
  "cursor/gpt-5.5:high",
51
54
  "cursor/claude-opus-4-8-thinking:high",
52
- "cursor/grok-4.5",
55
+ "xai/grok-4.5:high",
56
+ "cursor/grok-4.5:high",
53
57
  "zai/glm-5.2:xhigh",
54
58
  "zai-coding-cn/glm-5.2:xhigh",
55
59
  "cursor/glm-5.2",
56
60
  "openrouter/anthropic/claude-fable-5:high",
57
61
  "openrouter/openai/gpt-5.6-sol:xhigh",
62
+ "openrouter/moonshotai/kimi-k3:max",
58
63
  "openrouter/sakana/fugu-ultra:high",
59
64
  "openrouter/openai/gpt-5.5:xhigh",
60
65
  "openrouter/anthropic/claude-opus-4-8:high",
@@ -81,7 +86,8 @@ export const EXPLORER_MODEL_CONFIG = {
81
86
  "cursor/gpt-5.6-terra:high",
82
87
  "cursor/gpt-5.5:low",
83
88
  "cursor/claude-opus-4-8-thinking:low",
84
- "cursor/grok-4.5",
89
+ "xai/grok-4.5:high",
90
+ "cursor/grok-4.5:high",
85
91
  "zai/glm-5.2:high",
86
92
  "zai-coding-cn/glm-5.2:high",
87
93
  "cursor/glm-5.2",
@@ -0,0 +1,11 @@
1
+ export function partitionPrompt(prompt: string, maxBranches: number): string {
2
+ return `<role>\nYou partition work into independent evidence-producing branches.\n</role>\n\n<objective>\nPartition this task: ${prompt}\n</objective>\n\n<requirements>\nReturn between 1 and ${maxBranches} non-overlapping partitions. Split by files, sources, claims, candidates, or work items that can be evaluated independently. Give each partition a concise label and a self-contained objective. Avoid duplicate scope and identify boundaries explicitly. Return only the structured result requested by the schema.\n</requirements>`;
3
+ }
4
+
5
+ export function branchPrompt(input: { readonly prompt: string; readonly label: string; readonly objective: string }): string {
6
+ return `<role>\nYou own one independent branch of a larger task.\n</role>\n\n<overall_task>\n${input.prompt}\n</overall_task>\n\n<branch>\n${input.label}: ${input.objective}\n</branch>\n\n<success_criteria>\nInvestigate only this branch, cite concrete files/sources/commands or other observable evidence, distinguish findings from uncertainty, and produce a standalone artifact that a synthesizer can audit.\n</success_criteria>\n\n<output_format>\nMarkdown with Scope, Findings, Evidence, Conflicts or uncertainty, and Recommendations headings.\n</output_format>`;
7
+ }
8
+
9
+ export function synthesisPrompt(prompt: string, manifestPath: string): string {
10
+ return `<role>\nYou synthesize independent branch artifacts at a strict barrier.\n</role>\n\n<objective>\nProduce the final answer for: ${prompt}\n</objective>\n\n<artifact_contract>\nRead ${manifestPath} first, then read every branch artifact listed there. Do not omit a completed branch and do not assume access to branch conversations.\n</artifact_contract>\n\n<success_criteria>\nDeduplicate overlapping findings, explicitly resolve or preserve conflicting claims, retain material uncertainty, and cite branch labels and artifact paths for important conclusions. The answer must be traceable to evidence rather than majority vote.\n</success_criteria>\n\n<output_format>\nMarkdown with Executive synthesis, Consolidated findings, Conflicts and resolutions, Evidence index, and Remaining uncertainty headings.\n</output_format>`;
11
+ }
@@ -0,0 +1,96 @@
1
+ import { readFile, writeFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { Type } from "typebox";
4
+ import type { WorkflowRunContext, WorkflowSerializableValue, WorkflowTaskStep } from "../src/shared/types.js";
5
+ import { branchPrompt, partitionPrompt, synthesisPrompt } from "./fan-out-and-synthesize-prompts.js";
6
+ import { stableArtifactRoot } from "./pattern-artifact-root.js";
7
+
8
+ const partitionSchema = Type.Object({
9
+ partitions: Type.Array(Type.Object({
10
+ label: Type.String({ minLength: 1 }),
11
+ objective: Type.String({ minLength: 1 }),
12
+ }, { additionalProperties: false }), { minItems: 1, maxItems: 12 }),
13
+ }, { additionalProperties: false });
14
+
15
+ type Inputs = {
16
+ readonly prompt: string;
17
+ readonly max_branches: number;
18
+ readonly max_concurrency: number;
19
+ } & Record<string, WorkflowSerializableValue>;
20
+ type Partition = { readonly label: string; readonly objective: string };
21
+ export type FanOutAndSynthesizeResult = {
22
+ readonly result: string;
23
+ readonly partitions: string[];
24
+ readonly branch_artifact_paths: string[];
25
+ readonly synthesis_path: string;
26
+ readonly artifact_dir: string;
27
+ readonly manifest_path: string;
28
+ };
29
+
30
+ function safeName(value: string, index: number): string {
31
+ const normalized = value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
32
+ return `${String(index + 1).padStart(2, "0")}-${normalized || "branch"}`;
33
+ }
34
+ async function artifactText(path: string, fallback: string): Promise<string> {
35
+ try { return await readFile(path, "utf8"); } catch { return fallback; }
36
+ }
37
+ function parsedPartitions(value: WorkflowSerializableValue | undefined, limit: number, prompt: string): Partition[] {
38
+ if (typeof value !== "object" || value === null || !("partitions" in value) || !Array.isArray(value.partitions)) {
39
+ return [{ label: "whole-task", objective: prompt }];
40
+ }
41
+ const result: Partition[] = [];
42
+ for (const candidate of value.partitions) {
43
+ if (typeof candidate !== "object" || candidate === null || !("label" in candidate) || !("objective" in candidate)) continue;
44
+ const label = String(candidate.label).trim();
45
+ const objective = String(candidate.objective).trim();
46
+ if (label !== "" && objective !== "") result.push({ label, objective });
47
+ if (result.length >= limit) break;
48
+ }
49
+ return result.length > 0 ? result : [{ label: "whole-task", objective: prompt }];
50
+ }
51
+
52
+ export async function runFanOutAndSynthesize(ctx: WorkflowRunContext<Inputs>): Promise<FanOutAndSynthesizeResult> {
53
+ const artifactDir = await stableArtifactRoot(ctx, "fan-out-and-synthesize");
54
+ const plan = await ctx.task("partition", {
55
+ prompt: partitionPrompt(ctx.inputs.prompt, ctx.inputs.max_branches),
56
+ schema: partitionSchema,
57
+ context: "fresh",
58
+ });
59
+ const partitions = parsedPartitions(plan.structured, ctx.inputs.max_branches, ctx.inputs.prompt);
60
+ const partitionPath = join(artifactDir, "partition-plan.json");
61
+ await writeFile(partitionPath, JSON.stringify({ task: ctx.inputs.prompt, partitions }, null, 2));
62
+
63
+ const branchPaths = partitions.map((partition, index) => join(artifactDir, `branch-${safeName(partition.label, index)}.md`));
64
+ const steps: WorkflowTaskStep[] = partitions.map((partition, index) => ({
65
+ name: `branch-${safeName(partition.label, index)}`,
66
+ prompt: branchPrompt({ prompt: ctx.inputs.prompt, ...partition }),
67
+ context: "fresh",
68
+ reads: [partitionPath],
69
+ output: branchPaths[index]!,
70
+ outputMode: "file-only",
71
+ }));
72
+ await ctx.parallel(steps, { concurrency: Math.min(ctx.inputs.max_concurrency, partitions.length), failFast: false });
73
+
74
+ const manifestPath = join(artifactDir, "manifest.json");
75
+ await writeFile(manifestPath, JSON.stringify({
76
+ task: ctx.inputs.prompt,
77
+ partition_plan: partitionPath,
78
+ branches: partitions.map((partition, index) => ({ ...partition, artifact_path: branchPaths[index] })),
79
+ }, null, 2));
80
+ const synthesisPath = join(artifactDir, "synthesis.md");
81
+ const synthesis = await ctx.task("synthesize", {
82
+ prompt: synthesisPrompt(ctx.inputs.prompt, manifestPath),
83
+ context: "fresh",
84
+ reads: [manifestPath, ...branchPaths],
85
+ output: synthesisPath,
86
+ outputMode: "file-only",
87
+ });
88
+ return {
89
+ result: await artifactText(synthesisPath, synthesis.text),
90
+ partitions: partitions.map((partition) => partition.label),
91
+ branch_artifact_paths: branchPaths,
92
+ synthesis_path: synthesisPath,
93
+ artifact_dir: artifactDir,
94
+ manifest_path: manifestPath,
95
+ };
96
+ }
@@ -0,0 +1,23 @@
1
+ import type { WorkflowDefinition, WorkflowInputValues, WorkflowOutputValues } from "../src/authoring.js";
2
+
3
+ export type FanOutAndSynthesizeWorkflowInputs = WorkflowInputValues & {
4
+ readonly prompt: string;
5
+ readonly max_branches: number;
6
+ readonly max_concurrency: number;
7
+ };
8
+ export type FanOutAndSynthesizeWorkflowRunInputs = WorkflowInputValues & {
9
+ readonly prompt: string;
10
+ readonly max_branches?: number;
11
+ readonly max_concurrency?: number;
12
+ };
13
+ export type FanOutAndSynthesizeWorkflowOutputs = WorkflowOutputValues & {
14
+ readonly result: string;
15
+ readonly partitions: string[];
16
+ readonly branch_artifact_paths: string[];
17
+ readonly synthesis_path: string;
18
+ readonly artifact_dir: string;
19
+ readonly manifest_path: string;
20
+ };
21
+ export type FanOutAndSynthesizeWorkflowDefinition = WorkflowDefinition<FanOutAndSynthesizeWorkflowInputs, FanOutAndSynthesizeWorkflowOutputs, FanOutAndSynthesizeWorkflowRunInputs>;
22
+ declare const definition: FanOutAndSynthesizeWorkflowDefinition;
23
+ export default definition;
@@ -0,0 +1,32 @@
1
+ import { Type } from "typebox";
2
+ import { workflow } from "../src/authoring/workflow.js";
3
+ import { runFanOutAndSynthesize } from "./fan-out-and-synthesize-runner.js";
4
+
5
+ export default workflow({
6
+ name: "fan-out-and-synthesize",
7
+ description: "Partition a task, run bounded independent artifact branches, then synthesize all evidence at an explicit barrier.",
8
+ inputs: {
9
+ prompt: Type.String({ description: "Task to partition, investigate, and synthesize." }),
10
+ max_branches: Type.Integer({
11
+ minimum: 1,
12
+ maximum: 12,
13
+ default: 4,
14
+ description: "Maximum number of independent partitions produced and executed.",
15
+ }),
16
+ max_concurrency: Type.Integer({
17
+ minimum: 1,
18
+ maximum: 12,
19
+ default: 4,
20
+ description: "Maximum number of branch agents running concurrently.",
21
+ }),
22
+ },
23
+ outputs: {
24
+ result: Type.String({ description: "Evidence-citing synthesized report." }),
25
+ partitions: Type.Array(Type.String(), { description: "Ordered labels for executed partitions." }),
26
+ branch_artifact_paths: Type.Array(Type.String(), { description: "Ordered branch artifact paths consumed by synthesis." }),
27
+ synthesis_path: Type.String({ description: "Final synthesis artifact path." }),
28
+ artifact_dir: Type.String({ description: "Per-run artifact directory." }),
29
+ manifest_path: Type.String({ description: "Barrier manifest linking partitions to branch artifacts." }),
30
+ },
31
+ run: async (ctx) => await runFanOutAndSynthesize(ctx),
32
+ });
@@ -0,0 +1,15 @@
1
+ export function renderGeneratorPrompt(task: string, ordinal: number): string {
2
+ return `<role>\nYou independently generate candidate ${ordinal}; do not imitate or assume other candidates.\n</role>\n\n<objective>\n${task}\n</objective>\n\n<requirements>\nProduce one distinct, concrete candidate. Explain its value, constraints, risks, and how it can be evaluated.\n</requirements>\n\n<output_format>\nA self-contained candidate artifact with title, proposal, rationale, risks, and evaluation evidence.\n</output_format>`;
3
+ }
4
+
5
+ export function renderFilterPrompt(task: string, candidatePaths: readonly string[], shortlistSize: number): string {
6
+ return `<role>\nYou deduplicate and filter independently generated candidates.\n</role>\n\n<objective>\nSelect at most ${shortlistSize} strongest candidates for: ${task}\n</objective>\n\n<artifacts>\nRead every candidate: ${candidatePaths.join(", ")}\n</artifacts>\n\n<rubric>\nFirst collapse substantively equivalent candidates. Then score fit to the task, feasibility, evidence, distinctiveness, and risk. Near-duplicates must not gain weight by repetition. Record every discarded candidate and a concrete reason.\n</rubric>\n\n<output_format>\nCall structured_output with shortlist (candidate artifact paths in ranked order) and discarded entries containing path and reason.\n</output_format>`;
7
+ }
8
+
9
+ export function renderJudgePrompt(task: string, filterPath: string, shortlistSize: number): string {
10
+ return `<role>\nYou independently judge the filtered shortlist against the explicit rubric.\n</role>\n\n<objective>\nReturn at most ${shortlistSize} ranked candidate paths that best satisfy: ${task}\n</objective>\n\n<artifacts>\nRead the filter report at ${filterPath} and every candidate path it references.\n</artifacts>\n\n<rubric>\nCheck task fit, feasibility, evidence, distinctiveness, and material risk. Do not restore a duplicate merely because it is phrased differently.\n</rubric>\n\n<output_format>\nCall structured_output with shortlist and rationale.\n</output_format>`;
11
+ }
12
+
13
+ export function renderFinalShortlistPrompt(task: string, decisionPath: string): string {
14
+ return `<role>\nYou present a concise, actionable final shortlist.\n</role>\n\n<objective>\nSummarize the selected candidates for: ${task}\n</objective>\n\n<artifact>\nRead the authoritative selection at ${decisionPath}; follow its order and do not add candidates.\n</artifact>\n\n<output_format>\nRanked markdown shortlist with candidate path, differentiator, evidence, tradeoffs, and recommended next evaluation.\n</output_format>`;
15
+ }
@@ -0,0 +1,75 @@
1
+ import { readFile, writeFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { Type, type Static } from "typebox";
4
+ import type { WorkflowRunContext, WorkflowSerializableValue } from "../src/shared/types.js";
5
+ import { renderFilterPrompt, renderFinalShortlistPrompt, renderGeneratorPrompt, renderJudgePrompt } from "./generate-and-filter-prompts.js";
6
+ import { stableArtifactRoot } from "./pattern-artifact-root.js";
7
+
8
+ const filterSchema = Type.Object({
9
+ shortlist: Type.Array(Type.String()),
10
+ discarded: Type.Array(Type.Object({ path: Type.String(), reason: Type.String() }, { additionalProperties: false })),
11
+ }, { additionalProperties: false });
12
+ const judgeSchema = Type.Object({ shortlist: Type.Array(Type.String()), rationale: Type.String() }, { additionalProperties: false });
13
+ type FilterDecision = Static<typeof filterSchema>;
14
+ type JudgeDecision = Static<typeof judgeSchema>;
15
+ type Inputs = { readonly prompt: string; readonly num_candidates: number; readonly shortlist_size: number; readonly use_judge: boolean; readonly max_concurrency: number } & Record<string, WorkflowSerializableValue>;
16
+ export type GenerateAndFilterResult = {
17
+ readonly result: string;
18
+ readonly shortlist: string[];
19
+ readonly candidate_artifact_paths: string[];
20
+ readonly filter_path: string;
21
+ readonly judge_path: string | null;
22
+ readonly final_path: string;
23
+ readonly artifact_dir: string;
24
+ readonly manifest_path: string;
25
+ };
26
+ function isRecord(value: WorkflowSerializableValue): value is Record<string, WorkflowSerializableValue> { return typeof value === "object" && value !== null && !Array.isArray(value); }
27
+ function strings(value: WorkflowSerializableValue | undefined): value is string[] { return Array.isArray(value) && value.every((entry) => typeof entry === "string"); }
28
+ function filterDecision(value: WorkflowSerializableValue | undefined): FilterDecision | undefined {
29
+ if (value === undefined || !isRecord(value) || !strings(value.shortlist) || !Array.isArray(value.discarded)) return undefined;
30
+ const valid = value.discarded.every((entry) => isRecord(entry) && typeof entry.path === "string" && typeof entry.reason === "string");
31
+ return valid ? value as FilterDecision : undefined;
32
+ }
33
+ function judgeDecision(value: WorkflowSerializableValue | undefined): JudgeDecision | undefined {
34
+ return value !== undefined && isRecord(value) && strings(value.shortlist) && typeof value.rationale === "string" ? value as JudgeDecision : undefined;
35
+ }
36
+
37
+ export async function runGenerateAndFilter(ctx: WorkflowRunContext<Inputs>): Promise<GenerateAndFilterResult> {
38
+ const root = await stableArtifactRoot(ctx, "generate-and-filter");
39
+ const candidatePaths = Array.from({ length: ctx.inputs.num_candidates }, (_, index) => join(root, `candidate-${index + 1}.md`));
40
+ const shortlistLimit = Math.min(ctx.inputs.shortlist_size, ctx.inputs.num_candidates);
41
+ await ctx.parallel(candidatePaths.map((path, index) => ({
42
+ name: `generate-${index + 1}`, prompt: renderGeneratorPrompt(ctx.inputs.prompt, index + 1), context: "fresh" as const,
43
+ output: path, outputMode: "file-only" as const,
44
+ })), { concurrency: ctx.inputs.max_concurrency, failFast: false });
45
+ const manifestPath = join(root, "manifest.json");
46
+ await writeFile(manifestPath, JSON.stringify({ task: ctx.inputs.prompt, candidate_artifact_paths: candidatePaths }, null, 2));
47
+
48
+ const filterPath = join(root, "filter.json");
49
+ const filtered = await ctx.task("dedupe-and-filter", {
50
+ prompt: renderFilterPrompt(ctx.inputs.prompt, candidatePaths, shortlistLimit), context: "fresh",
51
+ reads: [manifestPath, ...candidatePaths], schema: filterSchema, output: filterPath, outputMode: "file-only",
52
+ });
53
+ const selectCandidates = (paths: readonly string[]): string[] => [...new Set(paths.filter((path) => candidatePaths.includes(path)))].slice(0, shortlistLimit);
54
+ const fallbackShortlist = candidatePaths.slice(0, shortlistLimit);
55
+ const filteredShortlist = selectCandidates(filterDecision(filtered.structured)?.shortlist ?? []);
56
+ let shortlist = filteredShortlist.length > 0 ? filteredShortlist : fallbackShortlist;
57
+ let judgePath: string | null = null;
58
+ let decisionPath = filterPath;
59
+ if (ctx.inputs.use_judge) {
60
+ judgePath = join(root, "judge.json");
61
+ const judged = await ctx.task("judge", {
62
+ prompt: renderJudgePrompt(ctx.inputs.prompt, filterPath, shortlistLimit), context: "fresh",
63
+ reads: [filterPath, ...shortlist], schema: judgeSchema, output: judgePath, outputMode: "file-only",
64
+ });
65
+ const judgedShortlist = selectCandidates(judgeDecision(judged.structured)?.shortlist ?? []);
66
+ shortlist = judgedShortlist.length > 0 ? judgedShortlist : shortlist;
67
+ decisionPath = judgePath;
68
+ }
69
+ const finalPath = join(root, "shortlist.md");
70
+ await ctx.task("final-shortlist", {
71
+ prompt: renderFinalShortlistPrompt(ctx.inputs.prompt, decisionPath), context: "fresh",
72
+ reads: [decisionPath, ...shortlist], output: finalPath, outputMode: "file-only",
73
+ });
74
+ return { result: await readFile(finalPath, "utf8"), shortlist, candidate_artifact_paths: candidatePaths, filter_path: filterPath, judge_path: judgePath, final_path: finalPath, artifact_dir: root, manifest_path: manifestPath };
75
+ }
@@ -0,0 +1,11 @@
1
+ import type { WorkflowDefinition, WorkflowInputValues, WorkflowOutputValues } from "../src/authoring.js";
2
+ export type GenerateAndFilterInputs = WorkflowInputValues & { readonly prompt: string; readonly num_candidates: number; readonly shortlist_size: number; readonly use_judge: boolean; readonly max_concurrency: number };
3
+ export type GenerateAndFilterRunInputs = WorkflowInputValues & { readonly prompt: string; readonly num_candidates?: number; readonly shortlist_size?: number; readonly use_judge?: boolean; readonly max_concurrency?: number };
4
+ export type GenerateAndFilterOutputs = WorkflowOutputValues & {
5
+ readonly result: string; readonly shortlist: string[]; readonly candidate_artifact_paths: string[];
6
+ readonly filter_path: string; readonly judge_path: string | null; readonly final_path: string;
7
+ readonly artifact_dir: string; readonly manifest_path: string;
8
+ };
9
+ export type GenerateAndFilterDefinition = WorkflowDefinition<GenerateAndFilterInputs, GenerateAndFilterOutputs, GenerateAndFilterRunInputs>;
10
+ declare const workflow: GenerateAndFilterDefinition;
11
+ export default workflow;
@@ -0,0 +1,26 @@
1
+ import { Type } from "typebox";
2
+ import { workflow } from "../src/authoring/workflow.js";
3
+ import { runGenerateAndFilter } from "./generate-and-filter-runner.js";
4
+
5
+ export default workflow({
6
+ name: "generate-and-filter",
7
+ description: "Generate more independent candidates than needed, deduplicate and filter them by rubric, optionally judge them, and return a parent-consumable shortlist.",
8
+ inputs: {
9
+ prompt: Type.String({ description: "Prompt for candidate generation and selection." }),
10
+ num_candidates: Type.Integer({ minimum: 2, maximum: 20, default: 8, description: "Number of independent candidates to generate." }),
11
+ shortlist_size: Type.Integer({ minimum: 1, maximum: 10, default: 3, description: "Maximum number of candidates in the final shortlist." }),
12
+ use_judge: Type.Boolean({ default: true, description: "Whether an independent judge reviews the filtered shortlist." }),
13
+ max_concurrency: Type.Integer({ minimum: 1, maximum: 12, default: 4, description: "Maximum simultaneous generator stages." }),
14
+ },
15
+ outputs: {
16
+ result: Type.String({ description: "Final human-readable shortlist report." }),
17
+ shortlist: Type.Array(Type.String(), { description: "Ranked paths to selected candidate artifacts." }),
18
+ candidate_artifact_paths: Type.Array(Type.String(), { description: "Paths to every generated candidate artifact." }),
19
+ filter_path: Type.String({ description: "Path to the dedupe and filter decision." }),
20
+ judge_path: Type.Union([Type.String(), Type.Null()], { description: "Path to the optional judge decision, or null when disabled." }),
21
+ final_path: Type.String({ description: "Path to the final shortlist report." }),
22
+ artifact_dir: Type.String({ description: "Directory containing run artifacts." }),
23
+ manifest_path: Type.String({ description: "Path to the candidate artifact manifest." }),
24
+ },
25
+ run: runGenerateAndFilter,
26
+ });
@@ -0,0 +1,72 @@
1
+ import { reviewDecisionSchema } from "./goal-schemas.js";
2
+
3
+ // Model chains are curated from Atomic's agentic-coding benchmark; see
4
+ // ralph-models.ts for frontier data and drop rationale.
5
+ export const workerModelConfig = {
6
+ model: "openai-codex/gpt-5.6-sol:medium",
7
+ fallbackModels: [
8
+ "github-copilot/gpt-5.6-sol:medium",
9
+ "openai/gpt-5.6-sol:medium",
10
+ "openai-codex/gpt-5.5:medium",
11
+ "github-copilot/gpt-5.5:medium",
12
+ "openai/gpt-5.5:medium",
13
+ "anthropic/claude-fable-5:low",
14
+ "github-copilot/claude-opus-4.8 (1m):medium",
15
+ "anthropic/claude-opus-4-8:medium",
16
+ "cursor/gpt-5.6-sol:medium",
17
+ "cursor/gpt-5.5:medium",
18
+ "cursor/claude-fable-5:low",
19
+ "cursor/claude-opus-4-8-thinking:medium",
20
+ "xai/grok-4.5:high",
21
+ "cursor/grok-4.5:high",
22
+ "zai/glm-5.2:high",
23
+ "zai-coding-cn/glm-5.2:high",
24
+ "cursor/glm-5.2",
25
+ "openrouter/openai/gpt-5.6-sol:medium",
26
+ "openrouter/openai/gpt-5.5:medium",
27
+ "openrouter/anthropic/claude-fable-5:low",
28
+ "openrouter/anthropic/claude-opus-4-8:medium",
29
+ "openrouter/x-ai/grok-4.5",
30
+ "openrouter/z-ai/glm-5.2:xhigh"
31
+ ],
32
+ excludedTools: ["ask_user_question"],
33
+ };
34
+
35
+ // Keep this model list identical to Ralph reviewer-a while preserving an
36
+ // independent Goal configuration and Goal's richer decision schema.
37
+ // Reviewer-a leads its fallbacks with Kimi K3 so reviewer A and B decorrelate.
38
+ export const reviewerModelConfig = {
39
+ model: "anthropic/claude-fable-5:high",
40
+ fallbackModels: [
41
+ "kimi-coding/k3:max",
42
+ "moonshotai/kimi-k3:max",
43
+ "moonshotai-cn/kimi-k3:max",
44
+ "openai-codex/gpt-5.6-sol:xhigh",
45
+ "github-copilot/gpt-5.6-sol:xhigh",
46
+ "openai/gpt-5.6-sol:xhigh",
47
+ "openai-codex/gpt-5.5:xhigh",
48
+ "github-copilot/gpt-5.5:xhigh",
49
+ "openai/gpt-5.5:xhigh",
50
+ "github-copilot/claude-opus-4.8 (1m):high",
51
+ "anthropic/claude-opus-4-8:high",
52
+ "cursor/claude-fable-5:high",
53
+ "cursor/gpt-5.6-sol:xhigh",
54
+ "cursor/gpt-5.5:high",
55
+ "cursor/claude-opus-4-8-thinking:high",
56
+ "xai/grok-4.5:high",
57
+ "cursor/grok-4.5:high",
58
+ "zai/glm-5.2:xhigh",
59
+ "zai-coding-cn/glm-5.2:xhigh",
60
+ "cursor/glm-5.2",
61
+ "openrouter/anthropic/claude-fable-5:high",
62
+ "openrouter/moonshotai/kimi-k3:max",
63
+ "openrouter/openai/gpt-5.6-sol:xhigh",
64
+ "openrouter/sakana/fugu-ultra:high",
65
+ "openrouter/openai/gpt-5.5:xhigh",
66
+ "openrouter/anthropic/claude-opus-4-8:high",
67
+ "openrouter/x-ai/grok-4.5",
68
+ "openrouter/z-ai/glm-5.2:xhigh"
69
+ ],
70
+ excludedTools: ["ask_user_question"],
71
+ schema: reviewDecisionSchema,
72
+ };
@@ -1,6 +1,6 @@
1
1
  import { join } from "node:path";
2
2
  import type { WorkflowParallelOptions, WorkflowTaskOptions, WorkflowTaskResult, WorkflowTaskStep } from "../src/shared/types.js";
3
- import { reviewDecisionSchema } from "./goal-schemas.js";
3
+ import { reviewerModelConfig, workerModelConfig } from "./goal-models.js";
4
4
  import {
5
5
  DEFAULT_BLOCKER_THRESHOLD,
6
6
  DEFAULT_MAX_TURNS,
@@ -114,69 +114,6 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
114
114
  const comparisonBaseBranch = normalizeBranchInput(inputs.base_branch, "origin/main");
115
115
  const { ledger, ledgerPath, artifactDir } = await createGoalLedger(objective, acceptanceCriteria);
116
116
 
117
- // Chains curated from Atomic's agentic-coding benchmark; see ralph-models.ts for frontier data and drop rationale.
118
- const workerModelConfig = {
119
- model: "openai-codex/gpt-5.6-sol:medium",
120
- fallbackModels: [
121
- "github-copilot/gpt-5.6-sol:medium",
122
- "openai/gpt-5.6-sol:medium",
123
- "openai-codex/gpt-5.5:medium",
124
- "github-copilot/gpt-5.5:medium",
125
- "openai/gpt-5.5:medium",
126
- "anthropic/claude-fable-5:low",
127
- "github-copilot/claude-opus-4.8 (1m):medium",
128
- "anthropic/claude-opus-4-8:medium",
129
- "cursor/gpt-5.6-sol:medium",
130
- "cursor/gpt-5.5:medium",
131
- "cursor/claude-fable-5:low",
132
- "cursor/claude-opus-4-8-thinking:medium",
133
- "cursor/grok-4.5",
134
- "zai/glm-5.2:high",
135
- "zai-coding-cn/glm-5.2:high",
136
- "cursor/glm-5.2",
137
- "openrouter/openai/gpt-5.6-sol:medium",
138
- "openrouter/openai/gpt-5.5:medium",
139
- "openrouter/anthropic/claude-fable-5:low",
140
- "openrouter/anthropic/claude-opus-4-8:medium",
141
- "openrouter/x-ai/grok-4.5",
142
- "openrouter/z-ai/glm-5.2:xhigh"
143
- ],
144
- excludedTools: ["ask_user_question"],
145
- };
146
-
147
- // Keep this model list identical to Ralph reviewer-a while preserving an
148
- // independent Goal configuration and Goal's richer decision schema.
149
- const reviewerModelConfig = {
150
- model: "anthropic/claude-fable-5:high",
151
- fallbackModels: [
152
- "openai-codex/gpt-5.6-sol:xhigh",
153
- "github-copilot/gpt-5.6-sol:xhigh",
154
- "openai/gpt-5.6-sol:xhigh",
155
- "openai-codex/gpt-5.5:xhigh",
156
- "github-copilot/gpt-5.5:xhigh",
157
- "openai/gpt-5.5:xhigh",
158
- "github-copilot/claude-opus-4.8 (1m):high",
159
- "anthropic/claude-opus-4-8:high",
160
- "cursor/claude-fable-5:high",
161
- "cursor/gpt-5.6-sol:xhigh",
162
- "cursor/gpt-5.5:high",
163
- "cursor/claude-opus-4-8-thinking:high",
164
- "cursor/grok-4.5",
165
- "zai/glm-5.2:xhigh",
166
- "zai-coding-cn/glm-5.2:xhigh",
167
- "cursor/glm-5.2",
168
- "openrouter/anthropic/claude-fable-5:high",
169
- "openrouter/openai/gpt-5.6-sol:xhigh",
170
- "openrouter/sakana/fugu-ultra:high",
171
- "openrouter/openai/gpt-5.5:xhigh",
172
- "openrouter/anthropic/claude-opus-4-8:high",
173
- "openrouter/x-ai/grok-4.5",
174
- "openrouter/z-ai/glm-5.2:xhigh"
175
- ],
176
- excludedTools: ["ask_user_question"],
177
- schema: reviewDecisionSchema,
178
- };
179
-
180
117
  let latestReviews: ReviewRecord[] = [];
181
118
  let latestReviewArtifactPaths: string[] = [];
182
119
  let latestReviewReportPath: string | undefined;
@@ -304,6 +241,7 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
304
241
  reviewResults = await ctx.parallel(reviewerSteps, {
305
242
  task: objective,
306
243
  failFast: true,
244
+ group: `goal-reviewers-turn-${turn}`,
307
245
  });
308
246
  } catch (err) {
309
247
  reviewerBatchFailed = true;
@@ -142,6 +142,50 @@ export type OpenClaudeDesignWorkflowDefinition = WorkflowDefinition<
142
142
  OpenClaudeDesignWorkflowRunInputs
143
143
  >;
144
144
 
145
+ export {
146
+ default as adversarialVerification,
147
+ type AdversarialVerificationDefinition,
148
+ type AdversarialVerificationInputs,
149
+ type AdversarialVerificationOutputs,
150
+ type AdversarialVerificationRunInputs,
151
+ } from "./adversarial-verification.js";
152
+ export {
153
+ default as classifyAndAct,
154
+ type ClassifyAndActWorkflowDefinition,
155
+ type ClassifyAndActWorkflowInputs,
156
+ type ClassifyAndActWorkflowOutputs,
157
+ type ClassifyAndActWorkflowRunInputs,
158
+ } from "./classify-and-act.js";
159
+ export {
160
+ default as fanOutAndSynthesize,
161
+ type FanOutAndSynthesizeWorkflowDefinition,
162
+ type FanOutAndSynthesizeWorkflowInputs,
163
+ type FanOutAndSynthesizeWorkflowOutputs,
164
+ type FanOutAndSynthesizeWorkflowRunInputs,
165
+ } from "./fan-out-and-synthesize.js";
166
+ export {
167
+ default as generateAndFilter,
168
+ type GenerateAndFilterDefinition,
169
+ type GenerateAndFilterInputs,
170
+ type GenerateAndFilterOutputs,
171
+ type GenerateAndFilterRunInputs,
172
+ } from "./generate-and-filter.js";
173
+ export {
174
+ default as loopUntilDone,
175
+ type LoopUntilDoneWorkflowDefinition,
176
+ type LoopUntilDoneWorkflowInputs,
177
+ type LoopUntilDoneWorkflowOutputs,
178
+ type LoopUntilDoneWorkflowRunInputs,
179
+ type LoopUntilDoneWorkflowStatus,
180
+ } from "./loop-until-done.js";
181
+ export {
182
+ default as tournament,
183
+ type TournamentWorkflowDefinition,
184
+ type TournamentWorkflowInputs,
185
+ type TournamentWorkflowOutputs,
186
+ type TournamentWorkflowRunInputs,
187
+ } from "./tournament.js";
188
+
145
189
  export declare const deepResearchCodebase: DeepResearchCodebaseWorkflowDefinition;
146
190
  export declare const goal: GoalWorkflowDefinition;
147
191
  export declare const ralph: RalphWorkflowDefinition;
@@ -5,7 +5,13 @@
5
5
  * package metadata pointing at this directory.
6
6
  */
7
7
 
8
+ export { default as adversarialVerification } from "./adversarial-verification.js";
9
+ export { default as classifyAndAct } from "./classify-and-act.js";
8
10
  export { default as deepResearchCodebase } from "./deep-research-codebase.js";
11
+ export { default as fanOutAndSynthesize } from "./fan-out-and-synthesize.js";
12
+ export { default as generateAndFilter } from "./generate-and-filter.js";
9
13
  export { default as goal } from "./goal.js";
10
14
  export { default as ralph } from "./ralph.js";
11
15
  export { default as openClaudeDesign } from "./open-claude-design.js";
16
+ export { default as loopUntilDone } from "./loop-until-done.js";
17
+ export { default as tournament } from "./tournament.js";