@bastani/atomic 0.9.4 → 0.9.5-alpha.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 (759) hide show
  1. package/CHANGELOG.md +136 -2
  2. package/README.md +2 -2
  3. package/dist/builtin/cursor/CHANGELOG.md +6 -0
  4. package/dist/builtin/cursor/package.json +3 -3
  5. package/dist/builtin/cursor/src/model-mapper.ts +6 -3
  6. package/dist/builtin/intercom/CHANGELOG.md +31 -0
  7. package/dist/builtin/intercom/README.md +29 -21
  8. package/dist/builtin/intercom/broker/broker.ts +9 -120
  9. package/dist/builtin/intercom/broker/client.ts +29 -54
  10. package/dist/builtin/intercom/broker/delivered-message-cache.ts +44 -0
  11. package/dist/builtin/intercom/broker/paths.ts +42 -5
  12. package/dist/builtin/intercom/broker/pending-send-registry.ts +142 -0
  13. package/dist/builtin/intercom/broker/send-handler.ts +106 -0
  14. package/dist/builtin/intercom/broker/send-signature.ts +37 -0
  15. package/dist/builtin/intercom/broker/spawn.ts +78 -10
  16. package/dist/builtin/intercom/config.ts +6 -3
  17. package/dist/builtin/intercom/contact-supervisor-tool.ts +6 -4
  18. package/dist/builtin/intercom/foreground-detach-handoff.ts +136 -0
  19. package/dist/builtin/intercom/index-heavy.ts +50 -54
  20. package/dist/builtin/intercom/index.ts +320 -272
  21. package/dist/builtin/intercom/intercom-tool.ts +9 -3
  22. package/dist/builtin/intercom/lazy-heavy-proxy.ts +114 -0
  23. package/dist/builtin/intercom/lazy-subagent-ack.ts +20 -0
  24. package/dist/builtin/intercom/lazy-tool-execution.ts +39 -0
  25. package/dist/builtin/intercom/lifecycle-lease.ts +51 -0
  26. package/dist/builtin/intercom/lifecycle.ts +37 -20
  27. package/dist/builtin/intercom/package.json +12 -6
  28. package/dist/builtin/intercom/reply-routing.ts +17 -0
  29. package/dist/builtin/intercom/result-renderers.ts +1 -1
  30. package/dist/builtin/intercom/subagent-relay.ts +58 -12
  31. package/dist/builtin/intercom/types.ts +3 -3
  32. package/dist/builtin/intercom/ui/compose.ts +2 -2
  33. package/dist/builtin/intercom/ui/inline-message.ts +2 -2
  34. package/dist/builtin/intercom/ui/session-list.ts +2 -2
  35. package/dist/builtin/mcp/CHANGELOG.md +23 -0
  36. package/dist/builtin/mcp/OAUTH.md +1 -0
  37. package/dist/builtin/mcp/README.md +10 -6
  38. package/dist/builtin/mcp/apps-cancellation.ts +32 -0
  39. package/dist/builtin/mcp/call-tool-result.ts +9 -0
  40. package/dist/builtin/mcp/caller-wait.ts +50 -0
  41. package/dist/builtin/mcp/command-registration.ts +82 -0
  42. package/dist/builtin/mcp/direct-tool-executor.ts +279 -0
  43. package/dist/builtin/mcp/direct-tools.ts +40 -255
  44. package/dist/builtin/mcp/host-html-template.ts +4 -2
  45. package/dist/builtin/mcp/index.ts +274 -239
  46. package/dist/builtin/mcp/init.ts +96 -126
  47. package/dist/builtin/mcp/mcp-auth-flow.ts +247 -237
  48. package/dist/builtin/mcp/mcp-callback-server.ts +89 -68
  49. package/dist/builtin/mcp/mcp-oauth-provider.ts +23 -1
  50. package/dist/builtin/mcp/metadata-hydration.ts +52 -0
  51. package/dist/builtin/mcp/package.json +3 -3
  52. package/dist/builtin/mcp/proxy-auth.ts +4 -4
  53. package/dist/builtin/mcp/proxy-call.ts +111 -40
  54. package/dist/builtin/mcp/proxy-connect.ts +35 -15
  55. package/dist/builtin/mcp/proxy-info-modes.ts +106 -23
  56. package/dist/builtin/mcp/proxy-modes.ts +3 -3
  57. package/dist/builtin/mcp/session-cleanup-barrier.ts +43 -0
  58. package/dist/builtin/mcp/startup-warmup.ts +98 -0
  59. package/dist/builtin/mcp/state-lease.ts +12 -0
  60. package/dist/builtin/mcp/tool-result-renderer.ts +3 -3
  61. package/dist/builtin/mcp/ui-server.ts +8 -8
  62. package/dist/builtin/mcp/ui-session.ts +9 -18
  63. package/dist/builtin/subagents/CHANGELOG.md +60 -0
  64. package/dist/builtin/subagents/README.md +30 -29
  65. package/dist/builtin/subagents/agents/code-simplifier.md +2 -2
  66. package/dist/builtin/subagents/agents/codebase-analyzer.md +2 -2
  67. package/dist/builtin/subagents/agents/codebase-locator.md +2 -2
  68. package/dist/builtin/subagents/agents/codebase-online-researcher.md +2 -2
  69. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +2 -2
  70. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +2 -2
  71. package/dist/builtin/subagents/agents/codebase-research-locator.md +2 -2
  72. package/dist/builtin/subagents/agents/debugger.md +2 -2
  73. package/dist/builtin/subagents/agents/worker.md +2 -2
  74. package/dist/builtin/subagents/package.json +5 -5
  75. package/dist/builtin/subagents/prompts/review-loop.md +1 -1
  76. package/dist/builtin/subagents/skills/subagent/SKILL.md +37 -36
  77. package/dist/builtin/subagents/src/extension/api-lifecycle.ts +64 -0
  78. package/dist/builtin/subagents/src/extension/fanout-child.ts +44 -51
  79. package/dist/builtin/subagents/src/extension/index.ts +289 -320
  80. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +7 -10
  81. package/dist/builtin/subagents/src/extension/schemas.ts +22 -5
  82. package/dist/builtin/subagents/src/extension/startup-maintenance.ts +89 -0
  83. package/dist/builtin/subagents/src/extension/tool-description.ts +29 -0
  84. package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +13 -2
  85. package/dist/builtin/subagents/src/intercom/result-intercom.ts +4 -4
  86. package/dist/builtin/subagents/src/runs/background/async-event-journal.ts +106 -0
  87. package/dist/builtin/subagents/src/runs/background/async-execution-common.ts +26 -20
  88. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +13 -2
  89. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +3 -0
  90. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +1 -1
  91. package/dist/builtin/subagents/src/runs/background/completion-claims.ts +189 -0
  92. package/dist/builtin/subagents/src/runs/background/completion-dedupe.ts +44 -7
  93. package/dist/builtin/subagents/src/runs/background/completion-notification.ts +34 -0
  94. package/dist/builtin/subagents/src/runs/background/notify.ts +72 -22
  95. package/dist/builtin/subagents/src/runs/background/result-delivery-processor.ts +232 -0
  96. package/dist/builtin/subagents/src/runs/background/result-file-claims.ts +151 -0
  97. package/dist/builtin/subagents/src/runs/background/result-quarantine.ts +72 -0
  98. package/dist/builtin/subagents/src/runs/background/result-retry-scheduler.ts +48 -0
  99. package/dist/builtin/subagents/src/runs/background/result-status.ts +81 -0
  100. package/dist/builtin/subagents/src/runs/background/result-watcher-data.ts +59 -0
  101. package/dist/builtin/subagents/src/runs/background/result-watcher.ts +177 -233
  102. package/dist/builtin/subagents/src/runs/background/run-id-resolver.ts +3 -2
  103. package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +73 -14
  104. package/dist/builtin/subagents/src/runs/background/subagent-runner-streaming.ts +29 -15
  105. package/dist/builtin/subagents/src/runs/background/top-level-async.ts +1 -2
  106. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +1 -0
  107. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +1 -0
  108. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +1 -0
  109. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +7 -9
  110. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +3 -13
  111. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +2 -15
  112. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-finalize.ts +2 -2
  113. package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +63 -46
  114. package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +48 -0
  115. package/dist/builtin/subagents/src/runs/foreground/execution-detach-route.ts +17 -0
  116. package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +39 -26
  117. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +3 -1
  118. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +3 -51
  119. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +6 -11
  120. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +11 -2
  121. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +2 -0
  122. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +5 -112
  123. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +2 -0
  124. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +68 -118
  125. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +79 -7
  126. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +2 -2
  127. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +3 -0
  128. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +2 -2
  129. package/dist/builtin/subagents/src/runs/shared/pi-spawn.ts +55 -12
  130. package/dist/builtin/subagents/src/shared/artifacts.ts +22 -11
  131. package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +294 -0
  132. package/dist/builtin/subagents/src/shared/exclusive-file-publication.ts +44 -0
  133. package/dist/builtin/subagents/src/shared/jsonl-writer.ts +1 -0
  134. package/dist/builtin/subagents/src/shared/model-info.ts +2 -2
  135. package/dist/builtin/subagents/src/shared/settings.ts +20 -10
  136. package/dist/builtin/subagents/src/shared/types-async.ts +3 -1
  137. package/dist/builtin/subagents/src/shared/types-config.ts +2 -0
  138. package/dist/builtin/subagents/src/shared/types-runtime.ts +3 -2
  139. package/dist/builtin/subagents/src/slash/slash-commands.ts +9 -12
  140. package/dist/builtin/subagents/src/slash/slash-live-state.ts +63 -32
  141. package/dist/builtin/subagents/src/tui/render-event-formatting.ts +15 -48
  142. package/dist/builtin/subagents/src/tui/render-layout.ts +9 -0
  143. package/dist/builtin/subagents/src/tui/render-result.ts +7 -0
  144. package/dist/builtin/subagents/src/tui/render-stable-output.ts +1 -0
  145. package/dist/builtin/subagents/src/tui/render-widget-graph.ts +27 -25
  146. package/dist/builtin/subagents/src/tui/render-widget.ts +177 -132
  147. package/dist/builtin/subagents/src/tui/render.ts +1 -1
  148. package/dist/builtin/web-access/CHANGELOG.md +14 -0
  149. package/dist/builtin/web-access/README.md +4 -0
  150. package/dist/builtin/web-access/content-tools.ts +8 -3
  151. package/dist/builtin/web-access/index-heavy.ts +1 -1
  152. package/dist/builtin/web-access/index.ts +190 -46
  153. package/dist/builtin/web-access/lifecycle-lease.ts +38 -0
  154. package/dist/builtin/web-access/package.json +2 -2
  155. package/dist/builtin/web-access/result-renderers.ts +1 -1
  156. package/dist/builtin/web-access/summary-review.ts +1 -1
  157. package/dist/builtin/web-access/web-search-activity.ts +1 -1
  158. package/dist/builtin/web-access/web-search-return.ts +7 -0
  159. package/dist/builtin/web-access/web-search-summary.ts +1 -1
  160. package/dist/builtin/web-access/web-search-tool.ts +4 -2
  161. package/dist/builtin/workflows/CHANGELOG.md +98 -0
  162. package/dist/builtin/workflows/README.md +20 -16
  163. package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +33 -9
  164. package/dist/builtin/workflows/builtin/goal-artifacts.ts +3 -1
  165. package/dist/builtin/workflows/builtin/goal-ledger.ts +3 -0
  166. package/dist/builtin/workflows/builtin/goal-prompts.ts +39 -5
  167. package/dist/builtin/workflows/builtin/goal-reducer.ts +21 -0
  168. package/dist/builtin/workflows/builtin/goal-reports.ts +23 -0
  169. package/dist/builtin/workflows/builtin/goal-review.ts +85 -6
  170. package/dist/builtin/workflows/builtin/goal-runner.ts +122 -49
  171. package/dist/builtin/workflows/builtin/goal-schemas.ts +22 -0
  172. package/dist/builtin/workflows/builtin/goal-types.ts +25 -1
  173. package/dist/builtin/workflows/builtin/goal.d.ts +5 -0
  174. package/dist/builtin/workflows/builtin/goal.ts +13 -2
  175. package/dist/builtin/workflows/builtin/index.d.ts +8 -0
  176. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +16 -5
  177. package/dist/builtin/workflows/builtin/ralph-core.ts +100 -15
  178. package/dist/builtin/workflows/builtin/ralph-models.ts +98 -66
  179. package/dist/builtin/workflows/builtin/ralph-review-gate.ts +37 -5
  180. package/dist/builtin/workflows/builtin/ralph-reviewer-prompt.ts +159 -0
  181. package/dist/builtin/workflows/builtin/ralph-runner.ts +75 -165
  182. package/dist/builtin/workflows/builtin/ralph.d.ts +3 -0
  183. package/dist/builtin/workflows/builtin/ralph.ts +4 -1
  184. package/dist/builtin/workflows/builtin/review-convergence.ts +111 -0
  185. package/dist/builtin/workflows/builtin/shared-prompts.ts +20 -1
  186. package/dist/builtin/workflows/package.json +2 -2
  187. package/dist/builtin/workflows/skills/create-spec/SKILL.md +2 -0
  188. package/dist/builtin/workflows/skills/impeccable/SKILL.md +16 -13
  189. package/dist/builtin/workflows/skills/impeccable/reference/adapt.md +1 -0
  190. package/dist/builtin/workflows/skills/impeccable/reference/adapt.native.md +58 -0
  191. package/dist/builtin/workflows/skills/impeccable/reference/android.md +40 -0
  192. package/dist/builtin/workflows/skills/impeccable/reference/animate.md +2 -0
  193. package/dist/builtin/workflows/skills/impeccable/reference/audit.md +2 -0
  194. package/dist/builtin/workflows/skills/impeccable/reference/audit.native.md +139 -0
  195. package/dist/builtin/workflows/skills/impeccable/reference/bolder.md +69 -62
  196. package/dist/builtin/workflows/skills/impeccable/reference/critique.md +21 -7
  197. package/dist/builtin/workflows/skills/impeccable/reference/document.md +1 -1
  198. package/dist/builtin/workflows/skills/impeccable/reference/hooks.md +92 -0
  199. package/dist/builtin/workflows/skills/impeccable/reference/init.md +29 -7
  200. package/dist/builtin/workflows/skills/impeccable/reference/ios.md +45 -0
  201. package/dist/builtin/workflows/skills/impeccable/reference/layout.md +25 -1
  202. package/dist/builtin/workflows/skills/impeccable/reference/typeset.md +23 -1
  203. package/dist/builtin/workflows/skills/impeccable/scripts/context-signals.mjs +2 -1
  204. package/dist/builtin/workflows/skills/impeccable/scripts/context.mjs +75 -14
  205. package/dist/builtin/workflows/skills/impeccable/scripts/detector/browser/injected/index.mjs +1 -1
  206. package/dist/builtin/workflows/skills/impeccable/scripts/detector/cli/main.mjs +31 -0
  207. package/dist/builtin/workflows/skills/impeccable/scripts/detector/design-system.mjs +64 -0
  208. package/dist/builtin/workflows/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +118 -11
  209. package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +16 -11
  210. package/dist/builtin/workflows/skills/impeccable/scripts/detector/registry/antipatterns.mjs +66 -0
  211. package/dist/builtin/workflows/skills/impeccable/scripts/detector/rules/checks.mjs +42 -10
  212. package/dist/builtin/workflows/skills/impeccable/scripts/detector/shared/fonts.mjs +30 -0
  213. package/dist/builtin/workflows/skills/impeccable/scripts/detector/shared/page.mjs +4 -6
  214. package/dist/builtin/workflows/skills/impeccable/scripts/hook-admin.mjs +660 -0
  215. package/dist/builtin/workflows/skills/impeccable/scripts/hook-before-edit.mjs +516 -0
  216. package/dist/builtin/workflows/skills/impeccable/scripts/hook-lib.mjs +1764 -0
  217. package/dist/builtin/workflows/skills/impeccable/scripts/hook.mjs +61 -0
  218. package/dist/builtin/workflows/skills/impeccable/scripts/lib/impeccable-config.mjs +4 -2
  219. package/dist/builtin/workflows/skills/impeccable/scripts/lib/is-generated.mjs +2 -2
  220. package/dist/builtin/workflows/skills/impeccable/scripts/live/svelte-component.mjs +13 -16
  221. package/dist/builtin/workflows/skills/impeccable/scripts/live-accept.mjs +17 -11
  222. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser.js +104 -37
  223. package/dist/builtin/workflows/skills/impeccable/scripts/live-wrap.mjs +9 -0
  224. package/dist/builtin/workflows/src/durable/backend.ts +12 -0
  225. package/dist/builtin/workflows/src/durable/child-primitive.ts +12 -8
  226. package/dist/builtin/workflows/src/durable/dbos-backend.ts +63 -2
  227. package/dist/builtin/workflows/src/durable/dbos-envelope.ts +28 -0
  228. package/dist/builtin/workflows/src/durable/resume-catalog.ts +12 -0
  229. package/dist/builtin/workflows/src/durable/resume-runtime.ts +5 -2
  230. package/dist/builtin/workflows/src/durable/stage-primitive.ts +167 -28
  231. package/dist/builtin/workflows/src/durable/types.ts +30 -1
  232. package/dist/builtin/workflows/src/engine/primitives/task.ts +3 -1
  233. package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +1 -2
  234. package/dist/builtin/workflows/src/engine/run-returned-status.ts +50 -16
  235. package/dist/builtin/workflows/src/engine/run.ts +32 -32
  236. package/dist/builtin/workflows/src/engine/runtime.ts +5 -0
  237. package/dist/builtin/workflows/src/extension/extension-factory.ts +3 -0
  238. package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +9 -2
  239. package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +137 -27
  240. package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +22 -6
  241. package/dist/builtin/workflows/src/extension/public-types.ts +1 -1
  242. package/dist/builtin/workflows/src/extension/workflow-command-completions.ts +13 -1
  243. package/dist/builtin/workflows/src/extension/workflow-command-registration.ts +19 -4
  244. package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +9 -0
  245. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +17 -17
  246. package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +48 -23
  247. package/dist/builtin/workflows/src/extension/workflow-schema.ts +15 -2
  248. package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +20 -8
  249. package/dist/builtin/workflows/src/extension/workflow-tool.ts +24 -8
  250. package/dist/builtin/workflows/src/runs/background/status.ts +4 -3
  251. package/dist/builtin/workflows/src/runs/foreground/executor-continuation.ts +13 -3
  252. package/dist/builtin/workflows/src/runs/foreground/executor-direct-helpers.ts +29 -8
  253. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +1 -1
  254. package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +8 -0
  255. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +4 -3
  256. package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +2 -0
  257. package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +18 -19
  258. package/dist/builtin/workflows/src/runs/foreground/stage-runner-unresolved-overflow.ts +38 -0
  259. package/dist/builtin/workflows/src/runs/foreground/stage-tool-execution-buffer.ts +47 -0
  260. package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +1 -1
  261. package/dist/builtin/workflows/src/runs/shared/worktree-git.ts +155 -20
  262. package/dist/builtin/workflows/src/runs/shared/worktree-types.ts +6 -0
  263. package/dist/builtin/workflows/src/runs/shared/worktree.ts +2 -1
  264. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +2 -2
  265. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +2 -2
  266. package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +18 -1
  267. package/dist/builtin/workflows/src/shared/persistence-restore.ts +23 -5
  268. package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +4 -0
  269. package/dist/builtin/workflows/src/shared/resume-continuation.ts +2 -0
  270. package/dist/builtin/workflows/src/shared/returned-run-status.ts +116 -0
  271. package/dist/builtin/workflows/src/shared/workflow-failures-decisions.ts +2 -0
  272. package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +21 -3
  273. package/dist/builtin/workflows/src/tui/graph-view-state.ts +3 -0
  274. package/dist/builtin/workflows/src/tui/graph-view-types.ts +3 -0
  275. package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +1 -23
  276. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +54 -9
  277. package/dist/builtin/workflows/src/tui/stage-chat-view-pending-tools.ts +9 -0
  278. package/dist/builtin/workflows/src/tui/stage-chat-view-render-settings.ts +27 -0
  279. package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +5 -6
  280. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +5 -2
  281. package/dist/builtin/workflows/src/tui/status-list.ts +22 -15
  282. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +4 -4
  283. package/dist/bun/internal-intercom-broker.d.ts +6 -0
  284. package/dist/bun/internal-intercom-broker.d.ts.map +1 -0
  285. package/dist/bun/internal-intercom-broker.js +39 -0
  286. package/dist/bun/internal-intercom-broker.js.map +1 -0
  287. package/dist/bun/split-loader.d.ts +2 -0
  288. package/dist/bun/split-loader.d.ts.map +1 -0
  289. package/dist/bun/split-loader.js +50 -0
  290. package/dist/bun/split-loader.js.map +1 -0
  291. package/dist/cli/args.d.ts.map +1 -1
  292. package/dist/cli/args.js +2 -2
  293. package/dist/cli/args.js.map +1 -1
  294. package/dist/config.d.ts.map +1 -1
  295. package/dist/config.js +6 -4
  296. package/dist/config.js.map +1 -1
  297. package/dist/core/agent-session-auto-compaction.d.ts +26 -6
  298. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  299. package/dist/core/agent-session-auto-compaction.js +178 -19
  300. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  301. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  302. package/dist/core/agent-session-compaction.js +25 -4
  303. package/dist/core/agent-session-compaction.js.map +1 -1
  304. package/dist/core/agent-session-events.d.ts.map +1 -1
  305. package/dist/core/agent-session-events.js +12 -2
  306. package/dist/core/agent-session-events.js.map +1 -1
  307. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  308. package/dist/core/agent-session-extension-bindings.js +1 -1
  309. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  310. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  311. package/dist/core/agent-session-message-queue.js +1 -1
  312. package/dist/core/agent-session-message-queue.js.map +1 -1
  313. package/dist/core/agent-session-methods.d.ts +13 -4
  314. package/dist/core/agent-session-methods.d.ts.map +1 -1
  315. package/dist/core/agent-session-methods.js.map +1 -1
  316. package/dist/core/agent-session-models.d.ts +2 -2
  317. package/dist/core/agent-session-models.d.ts.map +1 -1
  318. package/dist/core/agent-session-models.js.map +1 -1
  319. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  320. package/dist/core/agent-session-prompt.js +2 -1
  321. package/dist/core/agent-session-prompt.js.map +1 -1
  322. package/dist/core/agent-session-retry.d.ts +2 -0
  323. package/dist/core/agent-session-retry.d.ts.map +1 -1
  324. package/dist/core/agent-session-retry.js +152 -4
  325. package/dist/core/agent-session-retry.js.map +1 -1
  326. package/dist/core/agent-session-services.d.ts +1 -0
  327. package/dist/core/agent-session-services.d.ts.map +1 -1
  328. package/dist/core/agent-session-services.js +4 -2
  329. package/dist/core/agent-session-services.js.map +1 -1
  330. package/dist/core/agent-session-types.d.ts +15 -1
  331. package/dist/core/agent-session-types.d.ts.map +1 -1
  332. package/dist/core/agent-session-types.js +1 -1
  333. package/dist/core/agent-session-types.js.map +1 -1
  334. package/dist/core/agent-session.d.ts +6 -0
  335. package/dist/core/agent-session.d.ts.map +1 -1
  336. package/dist/core/agent-session.js +6 -0
  337. package/dist/core/agent-session.js.map +1 -1
  338. package/dist/core/anthropic-thinking-guard.d.ts +5 -5
  339. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  340. package/dist/core/anthropic-thinking-guard.js +42 -32
  341. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  342. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  343. package/dist/core/atomic-guide-command.js +15 -15
  344. package/dist/core/atomic-guide-command.js.map +1 -1
  345. package/dist/core/auth-storage.d.ts.map +1 -1
  346. package/dist/core/auth-storage.js +14 -9
  347. package/dist/core/auth-storage.js.map +1 -1
  348. package/dist/core/builtin-packages.d.ts.map +1 -1
  349. package/dist/core/builtin-packages.js +8 -4
  350. package/dist/core/builtin-packages.js.map +1 -1
  351. package/dist/core/compaction/compaction.d.ts +2 -0
  352. package/dist/core/compaction/compaction.d.ts.map +1 -1
  353. package/dist/core/compaction/compaction.js +79 -46
  354. package/dist/core/compaction/compaction.js.map +1 -1
  355. package/dist/core/compaction/context-assistant-turns.d.ts +42 -0
  356. package/dist/core/compaction/context-assistant-turns.d.ts.map +1 -0
  357. package/dist/core/compaction/context-assistant-turns.js +87 -0
  358. package/dist/core/compaction/context-assistant-turns.js.map +1 -0
  359. package/dist/core/compaction/context-compaction-critical.d.ts +15 -0
  360. package/dist/core/compaction/context-compaction-critical.d.ts.map +1 -0
  361. package/dist/core/compaction/context-compaction-critical.js +57 -0
  362. package/dist/core/compaction/context-compaction-critical.js.map +1 -0
  363. package/dist/core/compaction/context-compaction-eviction-alternates.d.ts +18 -0
  364. package/dist/core/compaction/context-compaction-eviction-alternates.d.ts.map +1 -0
  365. package/dist/core/compaction/context-compaction-eviction-alternates.js +186 -0
  366. package/dist/core/compaction/context-compaction-eviction-alternates.js.map +1 -0
  367. package/dist/core/compaction/context-compaction-eviction.d.ts +12 -0
  368. package/dist/core/compaction/context-compaction-eviction.d.ts.map +1 -0
  369. package/dist/core/compaction/context-compaction-eviction.js +222 -0
  370. package/dist/core/compaction/context-compaction-eviction.js.map +1 -0
  371. package/dist/core/compaction/context-compaction-prompt.d.ts.map +1 -1
  372. package/dist/core/compaction/context-compaction-prompt.js +1 -1
  373. package/dist/core/compaction/context-compaction-prompt.js.map +1 -1
  374. package/dist/core/compaction/context-compaction-runner.d.ts +7 -1
  375. package/dist/core/compaction/context-compaction-runner.d.ts.map +1 -1
  376. package/dist/core/compaction/context-compaction-runner.js +113 -21
  377. package/dist/core/compaction/context-compaction-runner.js.map +1 -1
  378. package/dist/core/compaction/context-compaction-types.d.ts +2 -0
  379. package/dist/core/compaction/context-compaction-types.d.ts.map +1 -1
  380. package/dist/core/compaction/context-compaction-types.js.map +1 -1
  381. package/dist/core/compaction/context-deletion-application.d.ts +5 -4
  382. package/dist/core/compaction/context-deletion-application.d.ts.map +1 -1
  383. package/dist/core/compaction/context-deletion-application.js +17 -15
  384. package/dist/core/compaction/context-deletion-application.js.map +1 -1
  385. package/dist/core/compaction/context-deletion-store.d.ts.map +1 -1
  386. package/dist/core/compaction/context-deletion-store.js +1 -1
  387. package/dist/core/compaction/context-deletion-store.js.map +1 -1
  388. package/dist/core/compaction/context-deletion-targets.d.ts +2 -1
  389. package/dist/core/compaction/context-deletion-targets.d.ts.map +1 -1
  390. package/dist/core/compaction/context-deletion-targets.js +36 -31
  391. package/dist/core/compaction/context-deletion-targets.js.map +1 -1
  392. package/dist/core/compaction/context-deletion-tool-helpers.d.ts.map +1 -1
  393. package/dist/core/compaction/context-deletion-tool-helpers.js +116 -43
  394. package/dist/core/compaction/context-deletion-tool-helpers.js.map +1 -1
  395. package/dist/core/compaction/context-transcript-analysis.d.ts +4 -2
  396. package/dist/core/compaction/context-transcript-analysis.d.ts.map +1 -1
  397. package/dist/core/compaction/context-transcript-analysis.js +36 -40
  398. package/dist/core/compaction/context-transcript-analysis.js.map +1 -1
  399. package/dist/core/copilot-anthropic-sse-repair.d.ts +23 -0
  400. package/dist/core/copilot-anthropic-sse-repair.d.ts.map +1 -0
  401. package/dist/core/copilot-anthropic-sse-repair.js +340 -0
  402. package/dist/core/copilot-anthropic-sse-repair.js.map +1 -0
  403. package/dist/core/copilot-gemini-reasoning.d.ts +16 -8
  404. package/dist/core/copilot-gemini-reasoning.d.ts.map +1 -1
  405. package/dist/core/copilot-gemini-reasoning.js +27 -22
  406. package/dist/core/copilot-gemini-reasoning.js.map +1 -1
  407. package/dist/core/copilot-hosts.d.ts +12 -0
  408. package/dist/core/copilot-hosts.d.ts.map +1 -0
  409. package/dist/core/copilot-hosts.js +33 -0
  410. package/dist/core/copilot-hosts.js.map +1 -0
  411. package/dist/core/copilot-model-catalog.d.ts.map +1 -1
  412. package/dist/core/copilot-model-catalog.js +3 -2
  413. package/dist/core/copilot-model-catalog.js.map +1 -1
  414. package/dist/core/copilot-model-synthesis.d.ts.map +1 -1
  415. package/dist/core/copilot-model-synthesis.js +3 -1
  416. package/dist/core/copilot-model-synthesis.js.map +1 -1
  417. package/dist/core/extensions/agent-events.d.ts +1 -1
  418. package/dist/core/extensions/agent-events.d.ts.map +1 -1
  419. package/dist/core/extensions/agent-events.js.map +1 -1
  420. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  421. package/dist/core/extensions/loader-core.js +6 -0
  422. package/dist/core/extensions/loader-core.js.map +1 -1
  423. package/dist/core/extensions/loader-virtual-modules.d.ts +8 -1
  424. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  425. package/dist/core/extensions/loader-virtual-modules.js +10 -4
  426. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  427. package/dist/core/extensions/provider-types.d.ts +2 -7
  428. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  429. package/dist/core/extensions/provider-types.js.map +1 -1
  430. package/dist/core/footer-data-provider.d.ts +6 -0
  431. package/dist/core/footer-data-provider.d.ts.map +1 -1
  432. package/dist/core/footer-data-provider.js +72 -29
  433. package/dist/core/footer-data-provider.js.map +1 -1
  434. package/dist/core/http-dispatcher.d.ts.map +1 -1
  435. package/dist/core/http-dispatcher.js +5 -5
  436. package/dist/core/http-dispatcher.js.map +1 -1
  437. package/dist/core/messages.d.ts +9 -0
  438. package/dist/core/messages.d.ts.map +1 -1
  439. package/dist/core/messages.js +100 -18
  440. package/dist/core/messages.js.map +1 -1
  441. package/dist/core/model-registry-builtins.d.ts.map +1 -1
  442. package/dist/core/model-registry-builtins.js +5 -0
  443. package/dist/core/model-registry-builtins.js.map +1 -1
  444. package/dist/core/model-registry-custom-loader.d.ts.map +1 -1
  445. package/dist/core/model-registry-custom-loader.js +49 -8
  446. package/dist/core/model-registry-custom-loader.js.map +1 -1
  447. package/dist/core/model-registry-dynamic.d.ts.map +1 -1
  448. package/dist/core/model-registry-dynamic.js +11 -5
  449. package/dist/core/model-registry-dynamic.js.map +1 -1
  450. package/dist/core/model-registry-loader.d.ts.map +1 -1
  451. package/dist/core/model-registry-loader.js +8 -0
  452. package/dist/core/model-registry-loader.js.map +1 -1
  453. package/dist/core/model-registry-schemas.d.ts +93 -8
  454. package/dist/core/model-registry-schemas.d.ts.map +1 -1
  455. package/dist/core/model-registry-schemas.js +24 -12
  456. package/dist/core/model-registry-schemas.js.map +1 -1
  457. package/dist/core/model-registry-types.d.ts +7 -6
  458. package/dist/core/model-registry-types.d.ts.map +1 -1
  459. package/dist/core/model-registry-types.js.map +1 -1
  460. package/dist/core/model-registry.d.ts +5 -0
  461. package/dist/core/model-registry.d.ts.map +1 -1
  462. package/dist/core/model-registry.js +23 -0
  463. package/dist/core/model-registry.js.map +1 -1
  464. package/dist/core/model-resolver-cli.d.ts.map +1 -1
  465. package/dist/core/model-resolver-cli.js +33 -5
  466. package/dist/core/model-resolver-cli.js.map +1 -1
  467. package/dist/core/model-resolver-initial.d.ts +6 -1
  468. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  469. package/dist/core/model-resolver-initial.js +12 -7
  470. package/dist/core/model-resolver-initial.js.map +1 -1
  471. package/dist/core/model-resolver-scope.d.ts +9 -0
  472. package/dist/core/model-resolver-scope.d.ts.map +1 -1
  473. package/dist/core/model-resolver-scope.js +12 -4
  474. package/dist/core/model-resolver-scope.js.map +1 -1
  475. package/dist/core/model-resolver.d.ts +4 -3
  476. package/dist/core/model-resolver.d.ts.map +1 -1
  477. package/dist/core/model-resolver.js +2 -2
  478. package/dist/core/model-resolver.js.map +1 -1
  479. package/dist/core/openai-responses-payload-sanitizer.d.ts +7 -0
  480. package/dist/core/openai-responses-payload-sanitizer.d.ts.map +1 -0
  481. package/dist/core/openai-responses-payload-sanitizer.js +74 -0
  482. package/dist/core/openai-responses-payload-sanitizer.js.map +1 -0
  483. package/dist/core/package-manager-auto-resources.d.ts +2 -2
  484. package/dist/core/package-manager-auto-resources.d.ts.map +1 -1
  485. package/dist/core/package-manager-auto-resources.js +32 -52
  486. package/dist/core/package-manager-auto-resources.js.map +1 -1
  487. package/dist/core/package-manager-resolver.d.ts.map +1 -1
  488. package/dist/core/package-manager-resolver.js +23 -14
  489. package/dist/core/package-manager-resolver.js.map +1 -1
  490. package/dist/core/package-manager-resource-collector.d.ts +3 -3
  491. package/dist/core/package-manager-resource-collector.d.ts.map +1 -1
  492. package/dist/core/package-manager-resource-collector.js +76 -73
  493. package/dist/core/package-manager-resource-collector.js.map +1 -1
  494. package/dist/core/package-manager-resource-files.d.ts +9 -8
  495. package/dist/core/package-manager-resource-files.d.ts.map +1 -1
  496. package/dist/core/package-manager-resource-files.js +92 -81
  497. package/dist/core/package-manager-resource-files.js.map +1 -1
  498. package/dist/core/prompt-templates-async.d.ts +3 -0
  499. package/dist/core/prompt-templates-async.d.ts.map +1 -0
  500. package/dist/core/prompt-templates-async.js +118 -0
  501. package/dist/core/prompt-templates-async.js.map +1 -0
  502. package/dist/core/provider-context-usage.d.ts +11 -0
  503. package/dist/core/provider-context-usage.d.ts.map +1 -0
  504. package/dist/core/provider-context-usage.js +58 -0
  505. package/dist/core/provider-context-usage.js.map +1 -0
  506. package/dist/core/resource-loader-assets.d.ts +3 -3
  507. package/dist/core/resource-loader-assets.d.ts.map +1 -1
  508. package/dist/core/resource-loader-assets.js +66 -83
  509. package/dist/core/resource-loader-assets.js.map +1 -1
  510. package/dist/core/resource-loader-context-files.d.ts +1 -0
  511. package/dist/core/resource-loader-context-files.d.ts.map +1 -1
  512. package/dist/core/resource-loader-context-files.js +13 -10
  513. package/dist/core/resource-loader-context-files.js.map +1 -1
  514. package/dist/core/resource-loader-core.d.ts +1 -1
  515. package/dist/core/resource-loader-core.d.ts.map +1 -1
  516. package/dist/core/resource-loader-core.js +5 -5
  517. package/dist/core/resource-loader-core.js.map +1 -1
  518. package/dist/core/resource-loader-extensions.d.ts.map +1 -1
  519. package/dist/core/resource-loader-extensions.js +4 -0
  520. package/dist/core/resource-loader-extensions.js.map +1 -1
  521. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  522. package/dist/core/resource-loader-reload.js +54 -7
  523. package/dist/core/resource-loader-reload.js.map +1 -1
  524. package/dist/core/resource-loader-types.d.ts +7 -1
  525. package/dist/core/resource-loader-types.d.ts.map +1 -1
  526. package/dist/core/resource-loader-types.js.map +1 -1
  527. package/dist/core/sdk-types.d.ts +2 -0
  528. package/dist/core/sdk-types.d.ts.map +1 -1
  529. package/dist/core/sdk-types.js.map +1 -1
  530. package/dist/core/sdk.d.ts.map +1 -1
  531. package/dist/core/sdk.js +9 -6
  532. package/dist/core/sdk.js.map +1 -1
  533. package/dist/core/session-entry-normalization.d.ts +7 -0
  534. package/dist/core/session-entry-normalization.d.ts.map +1 -0
  535. package/dist/core/session-entry-normalization.js +14 -0
  536. package/dist/core/session-entry-normalization.js.map +1 -0
  537. package/dist/core/session-manager-core.d.ts.map +1 -1
  538. package/dist/core/session-manager-core.js +1 -0
  539. package/dist/core/session-manager-core.js.map +1 -1
  540. package/dist/core/session-manager-history.d.ts +2 -2
  541. package/dist/core/session-manager-history.d.ts.map +1 -1
  542. package/dist/core/session-manager-history.js +127 -108
  543. package/dist/core/session-manager-history.js.map +1 -1
  544. package/dist/core/settings-manager-basic-accessors.d.ts +3 -2
  545. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  546. package/dist/core/settings-manager-basic-accessors.js +6 -0
  547. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  548. package/dist/core/settings-manager-core.d.ts.map +1 -1
  549. package/dist/core/settings-manager-core.js +3 -2
  550. package/dist/core/settings-manager-core.js.map +1 -1
  551. package/dist/core/settings-storage.d.ts.map +1 -1
  552. package/dist/core/settings-storage.js +2 -1
  553. package/dist/core/settings-storage.js.map +1 -1
  554. package/dist/core/settings-types.d.ts +2 -1
  555. package/dist/core/settings-types.d.ts.map +1 -1
  556. package/dist/core/settings-types.js.map +1 -1
  557. package/dist/core/skills-async.d.ts +3 -0
  558. package/dist/core/skills-async.d.ts.map +1 -0
  559. package/dist/core/skills-async.js +269 -0
  560. package/dist/core/skills-async.js.map +1 -0
  561. package/dist/core/slash-commands.d.ts +2 -0
  562. package/dist/core/slash-commands.d.ts.map +1 -1
  563. package/dist/core/slash-commands.js +141 -0
  564. package/dist/core/slash-commands.js.map +1 -1
  565. package/dist/core/tools/bash.d.ts.map +1 -1
  566. package/dist/core/tools/bash.js +11 -8
  567. package/dist/core/tools/bash.js.map +1 -1
  568. package/dist/core/trust-manager.d.ts +9 -0
  569. package/dist/core/trust-manager.d.ts.map +1 -1
  570. package/dist/core/trust-manager.js +44 -2
  571. package/dist/core/trust-manager.js.map +1 -1
  572. package/dist/index-extensions.d.ts +1 -1
  573. package/dist/index-extensions.d.ts.map +1 -1
  574. package/dist/index-extensions.js.map +1 -1
  575. package/dist/index.d.ts +2 -1
  576. package/dist/index.d.ts.map +1 -1
  577. package/dist/index.js +2 -1
  578. package/dist/index.js.map +1 -1
  579. package/dist/main-deferred-startup.d.ts +33 -0
  580. package/dist/main-deferred-startup.d.ts.map +1 -0
  581. package/dist/main-deferred-startup.js +44 -0
  582. package/dist/main-deferred-startup.js.map +1 -0
  583. package/dist/main-early-input.d.ts +41 -0
  584. package/dist/main-early-input.d.ts.map +1 -0
  585. package/dist/main-early-input.js +154 -0
  586. package/dist/main-early-input.js.map +1 -0
  587. package/dist/main-session.d.ts.map +1 -1
  588. package/dist/main-session.js +1 -0
  589. package/dist/main-session.js.map +1 -1
  590. package/dist/main.d.ts +0 -6
  591. package/dist/main.d.ts.map +1 -1
  592. package/dist/main.js +47 -39
  593. package/dist/main.js.map +1 -1
  594. package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
  595. package/dist/modes/interactive/components/chat-session-host-actions.js +0 -1
  596. package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
  597. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
  598. package/dist/modes/interactive/components/chat-session-host-events.js +15 -0
  599. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
  600. package/dist/modes/interactive/components/settings-selector-options.d.ts.map +1 -1
  601. package/dist/modes/interactive/components/settings-selector-options.js +3 -1
  602. package/dist/modes/interactive/components/settings-selector-options.js.map +1 -1
  603. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  604. package/dist/modes/interactive/components/thinking-selector.js +2 -1
  605. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  606. package/dist/modes/interactive/interactive-agent-events.d.ts.map +1 -1
  607. package/dist/modes/interactive/interactive-agent-events.js +37 -2
  608. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  609. package/dist/modes/interactive/interactive-auth-login.d.ts.map +1 -1
  610. package/dist/modes/interactive/interactive-auth-login.js +0 -1
  611. package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
  612. package/dist/modes/interactive/interactive-autocomplete.d.ts.map +1 -1
  613. package/dist/modes/interactive/interactive-autocomplete.js +21 -9
  614. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  615. package/dist/modes/interactive/interactive-child-ordering.d.ts +7 -0
  616. package/dist/modes/interactive/interactive-child-ordering.d.ts.map +1 -0
  617. package/dist/modes/interactive/interactive-child-ordering.js +26 -0
  618. package/dist/modes/interactive/interactive-child-ordering.js.map +1 -0
  619. package/dist/modes/interactive/interactive-deferred-startup.d.ts +8 -1
  620. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  621. package/dist/modes/interactive/interactive-deferred-startup.js +86 -26
  622. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  623. package/dist/modes/interactive/interactive-editor-actions.d.ts.map +1 -1
  624. package/dist/modes/interactive/interactive-editor-actions.js +13 -13
  625. package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
  626. package/dist/modes/interactive/interactive-extension-runtime.d.ts.map +1 -1
  627. package/dist/modes/interactive/interactive-extension-runtime.js +16 -0
  628. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  629. package/dist/modes/interactive/interactive-hotkeys-debug.d.ts.map +1 -1
  630. package/dist/modes/interactive/interactive-hotkeys-debug.js +4 -3
  631. package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
  632. package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
  633. package/dist/modes/interactive/interactive-input-handling.js +360 -230
  634. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  635. package/dist/modes/interactive/interactive-mode-base.d.ts +19 -4
  636. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  637. package/dist/modes/interactive/interactive-mode-base.js +46 -4
  638. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  639. package/dist/modes/interactive/interactive-mode-deps.d.ts +3 -3
  640. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  641. package/dist/modes/interactive/interactive-mode-deps.js +3 -3
  642. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  643. package/dist/modes/interactive/interactive-mode-surface.d.ts +27 -17
  644. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  645. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  646. package/dist/modes/interactive/interactive-mode-types.d.ts +8 -1
  647. package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
  648. package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
  649. package/dist/modes/interactive/interactive-model-routing.d.ts.map +1 -1
  650. package/dist/modes/interactive/interactive-model-routing.js +14 -10
  651. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  652. package/dist/modes/interactive/interactive-onboarding.d.ts +0 -9
  653. package/dist/modes/interactive/interactive-onboarding.d.ts.map +1 -1
  654. package/dist/modes/interactive/interactive-onboarding.js +24 -201
  655. package/dist/modes/interactive/interactive-onboarding.js.map +1 -1
  656. package/dist/modes/interactive/interactive-process-lifecycle.d.ts.map +1 -1
  657. package/dist/modes/interactive/interactive-process-lifecycle.js +43 -9
  658. package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
  659. package/dist/modes/interactive/interactive-render-chat.d.ts.map +1 -1
  660. package/dist/modes/interactive/interactive-render-chat.js +93 -10
  661. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  662. package/dist/modes/interactive/interactive-resource-disclosure.d.ts.map +1 -1
  663. package/dist/modes/interactive/interactive-resource-disclosure.js +3 -2
  664. package/dist/modes/interactive/interactive-resource-disclosure.js.map +1 -1
  665. package/dist/modes/interactive/interactive-resource-rendering.d.ts.map +1 -1
  666. package/dist/modes/interactive/interactive-resource-rendering.js +10 -8
  667. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
  668. package/dist/modes/interactive/interactive-session-routing.d.ts.map +1 -1
  669. package/dist/modes/interactive/interactive-session-routing.js +9 -5
  670. package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
  671. package/dist/modes/interactive/interactive-session-runtime.d.ts.map +1 -1
  672. package/dist/modes/interactive/interactive-session-runtime.js +1 -1
  673. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  674. package/dist/modes/interactive/interactive-slash-commands.d.ts.map +1 -1
  675. package/dist/modes/interactive/interactive-slash-commands.js +1 -1
  676. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  677. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  678. package/dist/modes/interactive/interactive-startup.js +102 -98
  679. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  680. package/dist/modes/interactive/theme/global-theme.d.ts.map +1 -1
  681. package/dist/modes/interactive/theme/global-theme.js +26 -2
  682. package/dist/modes/interactive/theme/global-theme.js.map +1 -1
  683. package/dist/modes/interactive/theme/theme-class.d.ts +1 -1
  684. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  685. package/dist/modes/interactive/theme/theme-class.js +2 -0
  686. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  687. package/dist/modes/interactive/theme/theme-loading.d.ts +1 -0
  688. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  689. package/dist/modes/interactive/theme/theme-loading.js +3 -0
  690. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  691. package/dist/modes/interactive/theme/theme.d.ts +1 -1
  692. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  693. package/dist/modes/interactive/theme/theme.js +1 -1
  694. package/dist/modes/interactive/theme/theme.js.map +1 -1
  695. package/dist/utils/child-process.d.ts +8 -1
  696. package/dist/utils/child-process.d.ts.map +1 -1
  697. package/dist/utils/child-process.js +39 -6
  698. package/dist/utils/child-process.js.map +1 -1
  699. package/dist/utils/clipboard-image.d.ts.map +1 -1
  700. package/dist/utils/clipboard-image.js +3 -0
  701. package/dist/utils/clipboard-image.js.map +1 -1
  702. package/dist/utils/event-loop.d.ts +7 -0
  703. package/dist/utils/event-loop.d.ts.map +1 -0
  704. package/dist/utils/event-loop.js +14 -0
  705. package/dist/utils/event-loop.js.map +1 -0
  706. package/dist/utils/fs-watch.d.ts +24 -1
  707. package/dist/utils/fs-watch.d.ts.map +1 -1
  708. package/dist/utils/fs-watch.js +60 -5
  709. package/dist/utils/fs-watch.js.map +1 -1
  710. package/dist/utils/json.d.ts +4 -0
  711. package/dist/utils/json.d.ts.map +1 -1
  712. package/dist/utils/json.js +8 -0
  713. package/dist/utils/json.js.map +1 -1
  714. package/dist/utils/module-require.d.ts +11 -0
  715. package/dist/utils/module-require.d.ts.map +1 -1
  716. package/dist/utils/module-require.js +14 -1
  717. package/dist/utils/module-require.js.map +1 -1
  718. package/dist/utils/split-launcher.d.ts +38 -0
  719. package/dist/utils/split-launcher.d.ts.map +1 -0
  720. package/dist/utils/split-launcher.js +63 -0
  721. package/dist/utils/split-launcher.js.map +1 -0
  722. package/docs/changelog.mdx +19 -0
  723. package/docs/compaction.md +100 -64
  724. package/docs/custom-provider.md +18 -5
  725. package/docs/development.md +4 -0
  726. package/docs/extensions.md +11 -2
  727. package/docs/json.md +3 -1
  728. package/docs/keybindings.md +2 -2
  729. package/docs/models.md +69 -10
  730. package/docs/providers.md +3 -2
  731. package/docs/quickstart.md +15 -11
  732. package/docs/rpc.md +5 -3
  733. package/docs/sdk.md +1 -1
  734. package/docs/settings.md +33 -3
  735. package/docs/subagents.md +40 -5
  736. package/docs/terminal-setup.md +4 -0
  737. package/docs/tools.md +1 -1
  738. package/docs/usage.md +8 -6
  739. package/docs/windows.md +4 -0
  740. package/docs/workflows.md +59 -36
  741. package/examples/extensions/preset.ts +2 -2
  742. package/examples/extensions/subagent/README.md +2 -2
  743. package/examples/extensions/subagent/index.ts +1 -2
  744. package/examples/extensions/subagent/schemas.ts +4 -1
  745. package/examples/sdk/12-full-control.ts +1 -1
  746. package/npm-shrinkwrap.json +538 -51
  747. package/package.json +10 -9
  748. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-behavior.ts +0 -75
  749. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-component.ts +0 -202
  750. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-edit.ts +0 -97
  751. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-editor.ts +0 -160
  752. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-frame.ts +0 -72
  753. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-modes.ts +0 -161
  754. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-selectors.ts +0 -203
  755. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-selectors.ts +0 -234
  756. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-state.ts +0 -103
  757. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-types.ts +0 -29
  758. package/dist/builtin/subagents/src/runs/foreground/chain-clarify.ts +0 -9
  759. package/dist/builtin/subagents/src/runs/foreground/chain-execution-clarify.ts +0 -117
@@ -1,18 +1,67 @@
1
1
  import type { WorkflowTaskResult } from "../src/shared/types.js";
2
2
  import type { ReviewDecision, ReviewRecord } from "./goal-types.js";
3
+ import {
4
+ finalActionRemaining,
5
+ parseFailureDiagnostics,
6
+ summarizeReviewConvergence,
7
+ traceabilityProvenExceptFinalAction,
8
+ type ParsedReviewDecision,
9
+ } from "./review-convergence.js";
3
10
 
4
11
  export function reviewDecisionFromResult(result: WorkflowTaskResult): ReviewDecision | undefined {
5
12
  return result.structured as ReviewDecision | undefined;
6
13
  }
7
14
 
8
- export function reviewApproved(decision: ReviewDecision): boolean {
9
- const hasBlockingFindings = decision.findings.some(
10
- (finding) => finding.priority !== 3,
11
- );
15
+ export function parsedReviewDecisionFromResult(
16
+ result: WorkflowTaskResult,
17
+ reviewer: string,
18
+ ): ParsedReviewDecision<ReviewDecision> {
19
+ const parsed = reviewDecisionFromResult(result);
20
+ if (parsed !== undefined) {
21
+ return { decision: parsed, parsed: true, diagnostics: [] };
22
+ }
23
+ const diagnostics = parseFailureDiagnostics(reviewer, result.text);
24
+ return {
25
+ decision: reviewerErrorDecision(diagnostics.join("\n")),
26
+ parsed: false,
27
+ diagnostics,
28
+ };
29
+ }
30
+
31
+ const NON_BLOCKING_ALIGNMENTS = new Set([
32
+ "beyond_objective",
33
+ "contradicts_objective",
34
+ ]);
35
+
36
+ function findingBlocksApproval(finding: ReviewDecision["findings"][number]): boolean {
37
+ const alignment = finding.objective_alignment;
38
+ if (NON_BLOCKING_ALIGNMENTS.has(alignment)) return false;
39
+ if (alignment !== "required_by_objective" && alignment !== "consistent_with_objective") {
40
+ return true;
41
+ }
42
+ return finding.priority !== 3;
43
+ }
44
+
45
+ function traceabilityApproves(
46
+ decision: ReviewDecision,
47
+ allowFinalActionRemaining: boolean,
48
+ ): boolean {
49
+ return traceabilityProvenExceptFinalAction({
50
+ traceability: decision.requirements_traceability,
51
+ allowFinalActionRemaining,
52
+ });
53
+ }
54
+
55
+ export function reviewApproved(
56
+ decision: ReviewDecision,
57
+ options: { readonly allowFinalActionRemaining?: boolean } = {},
58
+ ): boolean {
59
+ const hasBlockingFindings = decision.findings.some(findingBlocksApproval);
12
60
  return (
13
61
  decision.stop_review_loop === true &&
14
62
  decision.overall_correctness === "patch is correct" &&
15
63
  decision.goal_oracle_satisfied === true &&
64
+ traceabilityApproves(decision, options.allowFinalActionRemaining === true) &&
16
65
  !hasBlockingFindings &&
17
66
  decision.reviewer_error == null
18
67
  );
@@ -26,6 +75,7 @@ export function reviewerErrorDecision(message: string): ReviewDecision {
26
75
  "Reviewer execution failed, so the review gate cannot safely approve the current repository state.",
27
76
  overall_confidence_score: 0,
28
77
  goal_oracle_satisfied: false,
78
+ requirements_traceability: [],
29
79
  receipt_assessment:
30
80
  "No reviewer receipt could be produced because reviewer execution failed.",
31
81
  verification_remaining: "Recover reviewer execution and re-run oracle validation.",
@@ -57,18 +107,43 @@ export function reviewDecisionToRecord(args: {
57
107
  readonly reviewer: string;
58
108
  readonly artifactPath: string;
59
109
  readonly decision: ReviewDecision;
110
+ readonly parsed: boolean;
111
+ readonly diagnostics: readonly string[];
112
+ readonly allowFinalActionRemaining: boolean;
60
113
  }): ReviewRecord {
61
114
  const blocker = blockerFromReviewDecision(args.decision);
62
- const approved = reviewApproved(args.decision);
115
+ const approved = reviewApproved(args.decision, {
116
+ allowFinalActionRemaining: args.allowFinalActionRemaining,
117
+ });
118
+ const hasFinalActionRemaining = args.allowFinalActionRemaining &&
119
+ finalActionRemaining(args.decision.requirements_traceability);
63
120
  const verificationGap = args.decision.verification_remaining.trim();
121
+ const traceabilityGaps = args.decision.requirements_traceability
122
+ .filter((entry) => entry.status !== "proven")
123
+ .map((entry) => `${entry.status}: ${entry.requirement} — ${entry.evidence}`);
64
124
  const gaps = [
65
- ...args.decision.findings.map((finding) => `${finding.title}: ${finding.body}`),
125
+ ...args.decision.findings.map((finding) =>
126
+ `[${finding.objective_alignment}] ${finding.title}: ${finding.body}`
127
+ ),
128
+ ...traceabilityGaps,
66
129
  ...(approved || verificationGap.length === 0 ? [] : [verificationGap]),
67
130
  ...(args.decision.reviewer_error == null
68
131
  ? []
69
132
  : [`${args.decision.reviewer_error.kind}: ${args.decision.reviewer_error.message}`]),
70
133
  ];
71
134
 
135
+ const nextAction = approved
136
+ ? hasFinalActionRemaining ? "pull-request" : "finish"
137
+ : blocker === null ? "implementation" : "blocked";
138
+ const convergenceDecision = summarizeReviewConvergence({
139
+ parsed: args.parsed,
140
+ approved,
141
+ stopReviewLoop: args.decision.stop_review_loop,
142
+ nextAction,
143
+ finalActionRemaining: approved && hasFinalActionRemaining,
144
+ diagnostics: args.diagnostics,
145
+ });
146
+
72
147
  return {
73
148
  ...args.decision,
74
149
  decision: approved ? "complete" : blocker === null ? "continue" : "blocked",
@@ -80,5 +155,9 @@ export function reviewDecisionToRecord(args: {
80
155
  turn: args.turn,
81
156
  reviewer: args.reviewer,
82
157
  artifact_path: args.artifactPath,
158
+ parsed: args.parsed,
159
+ approved,
160
+ parse_diagnostics: args.diagnostics,
161
+ convergence_decision: convergenceDecision,
83
162
  };
84
163
  }
@@ -8,8 +8,9 @@ import {
8
8
  type GoalWorkflowInputs,
9
9
  type GoalWorkflowOutputs,
10
10
  type ReviewRecord,
11
+ type ReducerDecision,
11
12
  } from "./goal-types.js";
12
- import { writeReviewArtifact, writeReviewRoundArtifact } from "./goal-artifacts.js";
13
+ import { artifactSafeName, writeReviewArtifact, writeReviewRoundArtifact } from "./goal-artifacts.js";
13
14
  import { appendLifecycleEvent, createGoalLedger, writeGoalLedger } from "./goal-ledger.js";
14
15
  import {
15
16
  collectRemainingWork,
@@ -17,14 +18,13 @@ import {
17
18
  } from "./goal-reducer.js";
18
19
  import { formatReviewReport, renderFinalReport } from "./goal-reports.js";
19
20
  import {
20
- reviewDecisionFromResult,
21
- reviewerErrorDecision,
21
+ parsedReviewDecisionFromResult,
22
22
  reviewDecisionToRecord,
23
23
  } from "./goal-review.js";
24
+ import { reviewerFailureText } from "./review-convergence.js";
24
25
  import {
25
26
  WORKER_PREFLIGHT_CONTRACT,
26
27
  WORKER_RECEIPT_CONTRACT,
27
- goalRunnerTools,
28
28
  renderForkedGoalWorkerPrompt,
29
29
  renderGoalContinuationPrompt,
30
30
  renderReviewerPrompt,
@@ -76,6 +76,27 @@ type GoalWorkflowOptions = {
76
76
  readonly workflowStartCwd: string;
77
77
  };
78
78
 
79
+ function reviewerExecutionFailedDecision(input: {
80
+ readonly turn: number;
81
+ readonly reviewQuorum: number;
82
+ readonly reviews: readonly ReviewRecord[];
83
+ readonly reason: string;
84
+ }): ReducerDecision {
85
+ return {
86
+ turn: input.turn,
87
+ decision: "needs_human",
88
+ reason: input.reason,
89
+ complete_votes: input.reviews.filter((review) => review.decision === "complete").length,
90
+ review_quorum: input.reviewQuorum,
91
+ parsed: input.reviews.every((review) => review.parsed),
92
+ approved: false,
93
+ stopReviewLoop: false,
94
+ nextAction: "needs_human",
95
+ finalActionRemaining: false,
96
+ diagnostics: input.reviews.flatMap((review) => review.parse_diagnostics),
97
+ };
98
+ }
99
+
79
100
  export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkflowOptions): Promise<GoalWorkflowOutputs> {
80
101
  const inputs = ctx.inputs;
81
102
  const createPr = options.createPr;
@@ -85,49 +106,72 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
85
106
  throw new Error("goal requires an objective input.");
86
107
  }
87
108
  const objective = rawObjective;
109
+ const acceptanceCriteria = inputs.acceptance_criteria?.trim() || objective;
88
110
 
89
111
  const maxTurns = positiveInteger(inputs.max_turns, DEFAULT_MAX_TURNS);
90
112
  const reviewQuorum = DEFAULT_REVIEW_QUORUM;
91
113
  const blockerThreshold = Math.min(DEFAULT_BLOCKER_THRESHOLD, maxTurns);
92
114
  const comparisonBaseBranch = normalizeBranchInput(inputs.base_branch, "origin/main");
93
- const { ledger, ledgerPath, artifactDir } = await createGoalLedger(objective);
115
+ const { ledger, ledgerPath, artifactDir } = await createGoalLedger(objective, acceptanceCriteria);
94
116
 
95
- // Chains curated from Atomic's agentic-coding benchmark (see
96
- // ralph-models.ts for the frontier data and drop rationale).
117
+ // Chains curated from Atomic's agentic-coding benchmark; see ralph-models.ts for frontier data and drop rationale.
97
118
  const workerModelConfig = {
98
- model: "openai-codex/gpt-5.5:medium",
119
+ model: "openai-codex/gpt-5.6-sol:medium",
99
120
  fallbackModels: [
100
- "github-copilot/gpt-5.5:medium",
101
- "openai/gpt-5.5:medium",
102
- "anthropic/claude-fable-5:low",
103
- "github-copilot/claude-opus-4.8 (1m):medium",
104
- "anthropic/claude-opus-4-8:medium",
105
- "zai/glm-5.2:high",
106
- "zai-coding-cn/glm-5.2:high",
107
- "openrouter/openai/gpt-5.5:medium",
108
- "openrouter/anthropic/claude-fable-5:low",
109
- "openrouter/anthropic/claude-opus-4-8:medium",
110
- "openrouter/z-ai/glm-5.2:xhigh"
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"
111
143
  ],
112
- tools: goalRunnerTools,
144
+ excludedTools: ["ask_user_question"],
113
145
  };
114
146
 
115
147
  const reviewerModelConfig = {
116
- model: "anthropic/claude-fable-5:xhigh",
148
+ model: "anthropic/claude-fable-5:high",
117
149
  fallbackModels: [
118
- "openai-codex/gpt-5.5:xhigh",
119
- "github-copilot/gpt-5.5:xhigh",
120
- "openai/gpt-5.5:xhigh",
121
- "github-copilot/claude-opus-4.8 (1m):high",
122
- "anthropic/claude-opus-4-8:high",
123
- "zai/glm-5.2:xhigh",
124
- "zai-coding-cn/glm-5.2:xhigh",
125
- "openrouter/anthropic/claude-fable-5:xhigh",
126
- "openrouter/openai/gpt-5.5:xhigh",
127
- "openrouter/anthropic/claude-opus-4-8:high",
128
- "openrouter/z-ai/glm-5.2:xhigh"
150
+ "openai-codex/gpt-5.6-sol:max",
151
+ "github-copilot/gpt-5.6-sol:max",
152
+ "openai/gpt-5.6-sol:max",
153
+ "openai-codex/gpt-5.5:xhigh",
154
+ "github-copilot/gpt-5.5:xhigh",
155
+ "openai/gpt-5.5:xhigh",
156
+ "github-copilot/claude-opus-4.8 (1m):high",
157
+ "anthropic/claude-opus-4-8:high",
158
+ "cursor/claude-fable-5:high",
159
+ "cursor/gpt-5.6-sol:max",
160
+ "cursor/gpt-5.5:high",
161
+ "cursor/claude-opus-4-8-thinking:high",
162
+ "cursor/grok-4.5",
163
+ "zai/glm-5.2:xhigh",
164
+ "zai-coding-cn/glm-5.2:xhigh",
165
+ "cursor/glm-5.2",
166
+ "openrouter/anthropic/claude-fable-5:high",
167
+ "openrouter/openai/gpt-5.6-sol:max",
168
+ "openrouter/sakana/fugu-ultra:high",
169
+ "openrouter/openai/gpt-5.5:xhigh",
170
+ "openrouter/anthropic/claude-opus-4-8:high",
171
+ "openrouter/x-ai/grok-4.5",
172
+ "openrouter/z-ai/glm-5.2:xhigh"
129
173
  ],
130
- tools: goalRunnerTools,
174
+ excludedTools: ["ask_user_question"],
131
175
  schema: reviewDecisionSchema,
132
176
  };
133
177
 
@@ -191,6 +235,12 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
191
235
  reason: terminalRemainingWork,
192
236
  complete_votes: 0,
193
237
  review_quorum: reviewQuorum,
238
+ parsed: false,
239
+ approved: false,
240
+ stopReviewLoop: false,
241
+ nextAction: "needs_human",
242
+ finalActionRemaining: false,
243
+ diagnostics: [terminalRemainingWork],
194
244
  });
195
245
  appendLifecycleEvent(ledger, "status_decided", terminalRemainingWork, turn);
196
246
  await writeGoalLedger(ledgerPath, ledger);
@@ -223,6 +273,7 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
223
273
  comparisonBaseBranch,
224
274
  reviewQuorum,
225
275
  blockerThreshold,
276
+ createPr,
226
277
  }),
227
278
  reads: [ledgerPath, workTurnPath],
228
279
  ...reviewerModelConfig,
@@ -247,42 +298,48 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
247
298
  ];
248
299
 
249
300
  let reviewResults: WorkflowTaskResult[];
301
+ let reviewerBatchFailed = false;
250
302
  try {
251
303
  reviewResults = await ctx.parallel(reviewerSteps, {
252
304
  task: objective,
253
- failFast: false,
305
+ failFast: true,
254
306
  });
255
307
  } catch (err) {
256
- const message = err instanceof Error ? err.message : String(err);
257
- const structured = reviewerErrorDecision(message);
308
+ reviewerBatchFailed = true;
258
309
  reviewResults = [
259
310
  {
260
311
  name: "reviewer-error",
261
312
  stageName: "reviewer-error",
262
- text: JSON.stringify(structured, null, 2),
263
- structured,
313
+ text: reviewerFailureText(err),
264
314
  },
265
315
  ];
266
316
  }
267
317
 
268
318
  latestReviews = await Promise.all(reviewResults.map(async (result) => {
269
319
  const reviewerName = result.name ?? result.stageName;
270
- const parsed = reviewDecisionFromResult(result) ??
271
- reviewerErrorDecision(
272
- `Reviewer ${reviewerName} returned no structured decision.`,
273
- );
274
- const reviewArtifactPath = await writeReviewArtifact(
320
+ const normalizedReviewerName = reviewerName.replace(/-\d+$/u, "");
321
+ const parsed = parsedReviewDecisionFromResult(result, reviewerName);
322
+ const reviewArtifactPath = join(
275
323
  artifactDir,
276
- reviewerName.replace(/-\d+$/u, ""),
277
- parsed,
278
- result.text,
324
+ `review-${artifactSafeName(normalizedReviewerName)}.json`,
279
325
  );
280
- return reviewDecisionToRecord({
326
+ const record = reviewDecisionToRecord({
281
327
  turn,
282
- reviewer: reviewerName.replace(/-\d+$/u, ""),
328
+ reviewer: normalizedReviewerName,
283
329
  artifactPath: reviewArtifactPath,
284
- decision: parsed,
330
+ decision: parsed.decision,
331
+ parsed: parsed.parsed,
332
+ diagnostics: parsed.diagnostics,
333
+ allowFinalActionRemaining: createPr,
285
334
  });
335
+ await writeReviewArtifact(
336
+ artifactDir,
337
+ normalizedReviewerName,
338
+ parsed.decision,
339
+ result.text,
340
+ record.convergence_decision,
341
+ );
342
+ return record;
286
343
  }));
287
344
  latestReviewArtifactPaths = latestReviews.map((review) => review.artifact_path);
288
345
  latestReviewReportPath = await writeReviewRoundArtifact(
@@ -296,12 +353,27 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
296
353
  `Recorded ${latestReviews.length} reviewer decisions.`,
297
354
  turn,
298
355
  );
356
+ if (reviewerBatchFailed) {
357
+ terminalRemainingWork = collectRemainingWork(latestReviews);
358
+ const reason = `Reviewer execution failed before quorum could be established. Remaining work: ${terminalRemainingWork}`;
359
+ ledger.decisions.push(reviewerExecutionFailedDecision({
360
+ turn,
361
+ reviewQuorum,
362
+ reviews: latestReviews,
363
+ reason,
364
+ }));
365
+ ledger.status = "needs_human";
366
+ appendLifecycleEvent(ledger, "status_decided", reason, turn);
367
+ await writeGoalLedger(ledgerPath, ledger);
368
+ break;
369
+ }
299
370
 
300
371
  const reducerOutcome = reduceGoalDecision(ledger, latestReviews, {
301
372
  turn,
302
373
  maxTurns,
303
374
  reviewQuorum,
304
375
  blockerThreshold,
376
+ nextActionOnComplete: createPr ? "pull-request" : "finish",
305
377
  });
306
378
  if (reducerOutcome.blockerObservation !== undefined) {
307
379
  ledger.blockers.push(reducerOutcome.blockerObservation);
@@ -415,6 +487,7 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
415
487
  approved: ledger.status === "complete",
416
488
  goal_id: ledger.goal_id,
417
489
  objective: ledger.objective,
490
+ acceptance_criteria: ledger.acceptance_criteria,
418
491
  ledger_path: ledgerPath,
419
492
  turns_completed: ledger.turns,
420
493
  iterations_completed: ledger.turns,
@@ -5,6 +5,12 @@ const reviewFindingSchema = Type.Object(
5
5
  title: Type.String(),
6
6
  body: Type.String(),
7
7
  confidence_score: Type.Number({ minimum: 0, maximum: 1 }),
8
+ objective_alignment: Type.Union([
9
+ Type.Literal("required_by_objective"),
10
+ Type.Literal("consistent_with_objective"),
11
+ Type.Literal("beyond_objective"),
12
+ Type.Literal("contradicts_objective"),
13
+ ]),
8
14
  priority: Type.Optional(
9
15
  Type.Union([Type.Integer({ minimum: 0, maximum: 3 }), Type.Null()]),
10
16
  ),
@@ -25,6 +31,21 @@ const reviewFindingSchema = Type.Object(
25
31
  { additionalProperties: false },
26
32
  );
27
33
 
34
+
35
+ const requirementsTraceabilitySchema = Type.Object(
36
+ {
37
+ requirement: Type.String(),
38
+ status: Type.Union([
39
+ Type.Literal("proven"),
40
+ Type.Literal("contradicted"),
41
+ Type.Literal("missing"),
42
+ Type.Literal("unverified"),
43
+ ]),
44
+ evidence: Type.String(),
45
+ },
46
+ { additionalProperties: false },
47
+ );
48
+
28
49
  const reviewerErrorSchema = Type.Object(
29
50
  {
30
51
  kind: Type.Union([
@@ -49,6 +70,7 @@ export const reviewDecisionSchema = Type.Object(
49
70
  overall_explanation: Type.String(),
50
71
  overall_confidence_score: Type.Number({ minimum: 0, maximum: 1 }),
51
72
  goal_oracle_satisfied: Type.Boolean(),
73
+ requirements_traceability: Type.Array(requirementsTraceabilitySchema),
52
74
  receipt_assessment: Type.String(),
53
75
  verification_remaining: Type.String(),
54
76
  stop_review_loop: Type.Boolean(),
@@ -1,3 +1,5 @@
1
+ import type { ReviewConvergenceSummary } from "./review-convergence.js";
2
+
1
3
  export const DEFAULT_MAX_TURNS = 10;
2
4
  // Goal Runner runs three independent reviewer personas; two approvals form a majority.
3
5
  export const DEFAULT_REVIEW_QUORUM = 2;
@@ -14,10 +16,23 @@ export type WorkReceipt = {
14
16
  readonly summary: string;
15
17
  };
16
18
 
19
+ export type ObjectiveAlignment =
20
+ | "required_by_objective"
21
+ | "consistent_with_objective"
22
+ | "beyond_objective"
23
+ | "contradicts_objective";
24
+
25
+ export type RequirementTraceability = {
26
+ readonly requirement: string;
27
+ readonly status: "proven" | "contradicted" | "missing" | "unverified";
28
+ readonly evidence: string;
29
+ };
30
+
17
31
  export type ReviewFinding = {
18
32
  readonly title: string;
19
33
  readonly body: string;
20
34
  readonly confidence_score: number;
35
+ readonly objective_alignment: ObjectiveAlignment;
21
36
  readonly priority?: number | null;
22
37
  readonly code_location: {
23
38
  readonly absolute_file_path: string;
@@ -44,6 +59,7 @@ export type ReviewDecision = {
44
59
  readonly overall_explanation: string;
45
60
  readonly overall_confidence_score: number;
46
61
  readonly goal_oracle_satisfied: boolean;
62
+ readonly requirements_traceability: readonly RequirementTraceability[];
47
63
  readonly receipt_assessment: string;
48
64
  readonly verification_remaining: string;
49
65
  readonly stop_review_loop: boolean;
@@ -60,6 +76,10 @@ export type ReviewRecord = ReviewDecision & {
60
76
  readonly turn: number;
61
77
  readonly reviewer: string;
62
78
  readonly artifact_path: string;
79
+ readonly parsed: boolean;
80
+ readonly approved: boolean;
81
+ readonly parse_diagnostics: readonly string[];
82
+ readonly convergence_decision: ReviewConvergenceSummary;
63
83
  };
64
84
 
65
85
  export type BlockerObservation = {
@@ -68,7 +88,7 @@ export type BlockerObservation = {
68
88
  readonly reviewers: readonly string[];
69
89
  };
70
90
 
71
- export type ReducerDecision = {
91
+ export type ReducerDecision = ReviewConvergenceSummary & {
72
92
  readonly turn: number;
73
93
  readonly decision: "complete" | "continue" | "blocked" | "needs_human";
74
94
  readonly reason: string;
@@ -93,6 +113,7 @@ export type GoalLifecycleEvent = {
93
113
  export type GoalLedger = {
94
114
  readonly goal_id: string;
95
115
  readonly objective: string;
116
+ readonly acceptance_criteria: string;
96
117
  status: GoalStatus;
97
118
  turns: number;
98
119
  readonly created_at: string;
@@ -112,8 +133,10 @@ export type ReducerOutcome = {
112
133
 
113
134
  export type GoalWorkflowInputs = {
114
135
  readonly objective: string;
136
+ readonly acceptance_criteria?: string;
115
137
  readonly max_turns: number;
116
138
  readonly base_branch: string;
139
+ readonly git_worktree_dir: string;
117
140
  readonly create_pr: boolean;
118
141
  };
119
142
 
@@ -123,6 +146,7 @@ export type GoalWorkflowOutputs = {
123
146
  readonly approved?: boolean;
124
147
  readonly goal_id?: string;
125
148
  readonly objective?: string;
149
+ readonly acceptance_criteria?: string;
126
150
  readonly ledger_path?: string;
127
151
  readonly turns_completed?: number;
128
152
  readonly iterations_completed?: number;
@@ -11,15 +11,19 @@ export type GoalWorkflowReceipt = {
11
11
 
12
12
  export type GoalWorkflowInputs = WorkflowInputValues & {
13
13
  readonly objective: string;
14
+ readonly acceptance_criteria?: string;
14
15
  readonly max_turns: number;
15
16
  readonly base_branch: string;
17
+ readonly git_worktree_dir: string;
16
18
  readonly create_pr: boolean;
17
19
  };
18
20
 
19
21
  export type GoalWorkflowRunInputs = WorkflowInputValues & {
20
22
  readonly objective: string;
23
+ readonly acceptance_criteria?: string;
21
24
  readonly max_turns?: number;
22
25
  readonly base_branch?: string;
26
+ readonly git_worktree_dir?: string;
23
27
  readonly create_pr?: boolean;
24
28
  };
25
29
 
@@ -29,6 +33,7 @@ export type GoalWorkflowOutputs = WorkflowOutputValues & {
29
33
  readonly approved?: boolean;
30
34
  readonly goal_id?: string;
31
35
  readonly objective?: string;
36
+ readonly acceptance_criteria?: string;
32
37
  readonly ledger_path?: string;
33
38
  readonly turns_completed?: number;
34
39
  readonly iterations_completed?: number;
@@ -13,9 +13,10 @@ import { DEFAULT_MAX_TURNS } from "./goal-types.js";
13
13
 
14
14
  export default workflow({
15
15
  name: "goal",
16
- description: "Goal Runner workflow with bounded LM turns, ledger artifacts, parallel reviewers, and reducer-gated completion.",
16
+ description: "Goal Runner workflow with bounded LM turns, immutable acceptance criteria, ledger artifacts, parallel reviewers, and reducer-gated completion. When launching follow-up goal runs from review findings, pass the ORIGINAL task text as acceptance_criteria so deltas cannot drift from the literal contract.",
17
17
  inputs: {
18
- objective: Type.String({ description: "The objective for the Goal Runner workflow." }),
18
+ objective: Type.String({ description: "The objective or delta for this Goal Runner workflow run." }),
19
+ acceptance_criteria: Type.Optional(Type.String({ description: "Original immutable task contract this run must remain consistent with. Defaults to objective. Orchestrators launching follow-up runs from reviewer findings should pass the ORIGINAL task text here." })),
19
20
  max_turns: Type.Number({
20
21
  default: DEFAULT_MAX_TURNS,
21
22
  description: "Maximum worker/review turns before Goal Runner stops as needs_human.",
@@ -24,6 +25,11 @@ export default workflow({
24
25
  default: "origin/main",
25
26
  description: "Optional branch reviewers compare the current code delta against (default origin/main).",
26
27
  }),
28
+ git_worktree_dir: Type.String({
29
+ default: "",
30
+ description:
31
+ "Optional Git worktree path. Must start inside a Git repo; absolute paths are used as-is, relative paths resolve from the repo root, existing Git worktrees from the invoking repository are reused/shared as-is, and missing paths are created from base_branch.",
32
+ }),
27
33
  create_pr: Type.Boolean({
28
34
  default: false,
29
35
  description:
@@ -39,6 +45,7 @@ export default workflow({
39
45
  approved: Type.Optional(Type.Boolean({ description: "Whether the reducer reached complete." })),
40
46
  goal_id: Type.Optional(Type.String({ description: "Per-run goal identifier stored in the ledger." })),
41
47
  objective: Type.Optional(Type.String({ description: "Raw goal objective used by the run." })),
48
+ acceptance_criteria: Type.Optional(Type.String({ description: "Immutable acceptance criteria used by the run." })),
42
49
  ledger_path: Type.Optional(Type.String({ description: "OS-temp path to goal-ledger.json with receipts, reviewer decisions, blockers, and lifecycle events." })),
43
50
  turns_completed: Type.Optional(Type.Number({ description: "Worker/review turns completed." })),
44
51
  iterations_completed: Type.Optional(Type.Number({ description: "Worker/review turns completed, retained for status summaries." })),
@@ -53,6 +60,10 @@ export default workflow({
53
60
  review_report_path: Type.Optional(Type.String({ description: "JSON artifact path for the latest reviewer decision round." })),
54
61
  pr_report: Type.Optional(Type.String({ description: "Pull-request report emitted only when create_pr=true, Goal reaches complete, and the final pull-request stage runs." })),
55
62
  },
63
+ worktreeFromInputs: {
64
+ gitWorktreeDir: "git_worktree_dir",
65
+ baseBranch: "base_branch",
66
+ },
56
67
  run: async (ctx) => {
57
68
  const workflowCtx = ctx;
58
69
  const workflowStartCwd = workflowCtx.cwd ?? process.cwd();
@@ -37,14 +37,18 @@ export type GoalWorkflowReceipt = {
37
37
  };
38
38
  export type GoalWorkflowInputs = WorkflowInputValues & {
39
39
  readonly objective: string;
40
+ readonly acceptance_criteria?: string;
40
41
  readonly max_turns: number;
41
42
  readonly base_branch: string;
43
+ readonly git_worktree_dir: string;
42
44
  readonly create_pr: boolean;
43
45
  };
44
46
  export type GoalWorkflowRunInputs = WorkflowInputValues & {
45
47
  readonly objective: string;
48
+ readonly acceptance_criteria?: string;
46
49
  readonly max_turns?: number;
47
50
  readonly base_branch?: string;
51
+ readonly git_worktree_dir?: string;
48
52
  readonly create_pr?: boolean;
49
53
  };
50
54
  export type GoalWorkflowOutputs = WorkflowOutputValues & {
@@ -53,6 +57,7 @@ export type GoalWorkflowOutputs = WorkflowOutputValues & {
53
57
  readonly approved?: boolean;
54
58
  readonly goal_id?: string;
55
59
  readonly objective?: string;
60
+ readonly acceptance_criteria?: string;
56
61
  readonly ledger_path?: string;
57
62
  readonly turns_completed?: number;
58
63
  readonly iterations_completed?: number;
@@ -70,6 +75,7 @@ export type GoalWorkflowDefinition = WorkflowDefinition<
70
75
 
71
76
  export type RalphWorkflowInputs = WorkflowInputValues & {
72
77
  readonly prompt: string;
78
+ readonly acceptance_criteria?: string;
73
79
  readonly max_loops: number;
74
80
  readonly base_branch: string;
75
81
  readonly git_worktree_dir: string;
@@ -77,6 +83,7 @@ export type RalphWorkflowInputs = WorkflowInputValues & {
77
83
  };
78
84
  export type RalphWorkflowRunInputs = WorkflowInputValues & {
79
85
  readonly prompt: string;
86
+ readonly acceptance_criteria?: string;
80
87
  readonly max_loops?: number;
81
88
  readonly base_branch?: string;
82
89
  readonly git_worktree_dir?: string;
@@ -89,6 +96,7 @@ export type RalphWorkflowOutputs = WorkflowOutputValues & {
89
96
  readonly research?: string;
90
97
  readonly research_path?: string;
91
98
  readonly implementation_notes_path?: string;
99
+ readonly qa_video_path?: string;
92
100
  readonly pr_report?: string;
93
101
  readonly approved?: boolean;
94
102
  readonly iterations_completed?: number;