@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
@@ -78,14 +78,25 @@ export async function runOpenClaudeDesignWorkflow(ctx: OpenClaudeDesignContext):
78
78
  // strictly dominated in Atomic's benchmark (see ralph-models.ts). Opus stays
79
79
  // at :xhigh here — visual quality, not $/task, is the objective for design.
80
80
  const designModelConfig = {
81
- model: "anthropic/claude-fable-5:xhigh",
81
+ model: "anthropic/claude-fable-5:high",
82
82
  fallbackModels: [
83
- "github-copilot/claude-opus-4.8 (1m):xhigh",
84
- "anthropic/claude-opus-4-8:xhigh",
83
+ "github-copilot/claude-opus-4.8 (1m):high",
84
+ "anthropic/claude-opus-4-8:high",
85
+ "cursor/claude-fable-5:high",
86
+ "cursor/claude-opus-4-8-thinking:high",
87
+ "openai-codex/gpt-5.6-sol:xhigh",
88
+ "github-copilot/gpt-5.6-sol:xhigh",
89
+ "openai/gpt-5.6-sol:xhigh",
90
+ "cursor/gpt-5.6-sol:xhigh",
91
+ "cursor/grok-4.5",
85
92
  "zai/glm-5.2:xhigh",
86
93
  "zai-coding-cn/glm-5.2:xhigh",
87
- "openrouter/anthropic/claude-fable-5:xhigh",
88
- "openrouter/anthropic/claude-opus-4-8:xhigh",
94
+ "cursor/glm-5.2",
95
+ "openrouter/anthropic/claude-fable-5:high",
96
+ "openrouter/anthropic/claude-opus-4-8:high",
97
+ "openrouter/openai/gpt-5.6-sol:xhigh",
98
+ "openrouter/sakana/fugu-ultra:high",
99
+ "openrouter/x-ai/grok-4.5",
89
100
  "openrouter/z-ai/glm-5.2:xhigh"
90
101
  ],
91
102
  };
@@ -3,29 +3,45 @@ import { tmpdir } from "node:os";
3
3
  import { dirname, join } from "node:path";
4
4
  import { Type } from "typebox";
5
5
  import type { WorkflowTaskResult } from "../src/shared/types.js";
6
- import { E2E_VERIFICATION_GUIDANCE } from "./shared-prompts.js";
6
+ import { E2E_VERIFICATION_GUIDANCE, LITERAL_OBJECTIVE_CONTRACT } from "./shared-prompts.js";
7
7
  import type { ReviewDecision } from "./ralph-review-gate.js";
8
+ import { reviewDecisionApproved } from "./ralph-review-gate.js";
9
+ import {
10
+ parseFailureDiagnostics,
11
+ finalActionRemaining,
12
+ reviewerFailureText,
13
+ summarizeReviewConvergence,
14
+ type ParsedReviewDecision,
15
+ type ReviewConvergenceSummary,
16
+ } from "./review-convergence.js";
17
+
8
18
 
9
19
  export const DEFAULT_MAX_LOOPS = 10;
10
20
  const DEFAULT_RESEARCH_DIR = "research";
11
21
  const IMPLEMENTATION_NOTES_FILENAME = "implementation-notes.md";
12
22
  const QA_E2E_VIDEO_FILENAME = "qa-e2e-evidence.webm";
13
23
  const MAX_RESEARCH_SLUG_LENGTH = 80;
14
- // Reviewer fan-out launches three independent reviewers; the loop stops only when
15
- // all three reviewers independently approve. Approval is severity-aware: a
16
- // reviewer approves when it judged the patch correct, reported no reviewer_error,
17
- // and filed no *blocking* (P0/P1/P2) finding. P3 nice-to-haves no longer keep the
24
+ // Reviewer fan-out launches two independent reviewers; the loop stops only when
25
+ // both reviewers independently approve. Approval is severity-aware: a reviewer
26
+ // approves when it judged the patch correct, reported no reviewer_error, and
27
+ // filed no *blocking* (P0/P1/P2) finding. P3 nice-to-haves no longer keep the
18
28
  // loop iterating, so a single low-priority nit (or a placeholder finding) can no
19
29
  // longer strand an otherwise-approved patch. Requiring unanimous approval still
20
- // means a blocking finding from any one reviewer keeps the loop going. See
30
+ // means a blocking finding from either reviewer keeps the loop going. See
21
31
  // ./ralph-review-gate.ts for the gate types and decision logic.
22
- export const REVIEWER_COUNT = 3;
32
+ export const REVIEWER_COUNT = 2;
23
33
 
24
34
  const reviewFindingSchema = Type.Object(
25
35
  {
26
36
  title: Type.String(),
27
37
  body: Type.String(),
28
38
  confidence_score: Type.Number({ minimum: 0, maximum: 1 }),
39
+ objective_alignment: Type.Union([
40
+ Type.Literal("required_by_objective"),
41
+ Type.Literal("consistent_with_objective"),
42
+ Type.Literal("beyond_objective"),
43
+ Type.Literal("contradicts_objective"),
44
+ ]),
29
45
  priority: Type.Optional(
30
46
  Type.Union([Type.Integer({ minimum: 0, maximum: 3 }), Type.Null()]),
31
47
  ),
@@ -46,6 +62,20 @@ const reviewFindingSchema = Type.Object(
46
62
  { additionalProperties: false },
47
63
  );
48
64
 
65
+ const requirementsTraceabilitySchema = Type.Object(
66
+ {
67
+ requirement: Type.String(),
68
+ status: Type.Union([
69
+ Type.Literal("proven"),
70
+ Type.Literal("contradicted"),
71
+ Type.Literal("missing"),
72
+ Type.Literal("unverified"),
73
+ ]),
74
+ evidence: Type.String(),
75
+ },
76
+ { additionalProperties: false },
77
+ );
78
+
49
79
  const reviewerErrorSchema = Type.Object(
50
80
  {
51
81
  kind: Type.Union([
@@ -69,6 +99,7 @@ export const reviewDecisionSchema = Type.Object(
69
99
  ]),
70
100
  overall_explanation: Type.String(),
71
101
  overall_confidence_score: Type.Number({ minimum: 0, maximum: 1 }),
102
+ requirements_traceability: Type.Array(requirementsTraceabilitySchema),
72
103
  stop_review_loop: Type.Boolean(),
73
104
  reviewer_error: Type.Optional(
74
105
  Type.Union([Type.Null(), reviewerErrorSchema]),
@@ -170,6 +201,7 @@ export function renderQaE2eVideoGuidance(qaVideoPath: string): string {
170
201
  `Record that QA E2E pass as a reviewable video so the user can watch the feature working. After \`playwright-cli open\`, start recording with \`playwright-cli video-start ${qaVideoPath}\`, annotate the scenario with \`playwright-cli video-chapter\` / \`playwright-cli video-show-actions\`, exercise the full user scenario, then \`playwright-cli video-stop\`. Write the video to exactly this path and overwrite any prior recording so it always reflects the latest implemented state: ${qaVideoPath}`,
171
202
  `After recording, add the video to the implementation notes as a reference: include a \`## QA E2E Video\` entry with the absolute path ${qaVideoPath} and a one-line description of the proven scenario, so the user can review the proof when this stage finishes.`,
172
203
  "If the change has no user-visible UI scenario (pure refactor, docs, infra, or non-UI library code), do not fabricate a video; record in the implementation notes that no QA E2E video applies and why.",
204
+ "Assume credentials, auth, and browser environment access exist until a concrete attempt proves otherwise. Before declaring the QA E2E video impractical, check credential/auth state with non-destructive commands, attempt to launch the app/flow, and record the exact command(s) plus observed failure output.",
173
205
  "If `playwright-cli` or a browser runtime is unavailable, install it once per the skill (`npm install -g @playwright/cli@latest`, then `npx playwright install chromium` for a missing browser executable). If it still cannot run, record the smallest validation actually performed and note that the QA E2E video could not be produced — never claim a video exists when it does not.",
174
206
  ].join("\n");
175
207
  }
@@ -178,6 +210,43 @@ export function reviewDecisionFromResult(result: WorkflowTaskResult): ReviewDeci
178
210
  return result.structured as ReviewDecision | undefined;
179
211
  }
180
212
 
213
+ export function parsedReviewDecisionFromResult(
214
+ result: WorkflowTaskResult,
215
+ reviewer: string,
216
+ ): ParsedReviewDecision<ReviewDecision> {
217
+ const parsed = reviewDecisionFromResult(result);
218
+ if (parsed !== undefined) {
219
+ return { decision: parsed, parsed: true, diagnostics: [] };
220
+ }
221
+ const diagnostics = parseFailureDiagnostics(reviewer, result.text);
222
+ return {
223
+ decision: reviewerErrorDecision(diagnostics.join("\n")),
224
+ parsed: false,
225
+ diagnostics,
226
+ };
227
+ }
228
+
229
+ export function ralphReviewConvergence(args: {
230
+ readonly decision: ReviewDecision;
231
+ readonly parsed: boolean;
232
+ readonly diagnostics: readonly string[];
233
+ readonly allowFinalActionRemaining: boolean;
234
+ }): ReviewConvergenceSummary {
235
+ const approved = reviewDecisionApproved(args.decision, {
236
+ allowFinalActionRemaining: args.allowFinalActionRemaining,
237
+ });
238
+ const hasFinalActionRemaining = args.allowFinalActionRemaining &&
239
+ finalActionRemaining(args.decision.requirements_traceability);
240
+ return summarizeReviewConvergence({
241
+ parsed: args.parsed,
242
+ approved,
243
+ stopReviewLoop: args.decision.stop_review_loop,
244
+ nextAction: approved && hasFinalActionRemaining ? "pull-request" : approved ? "finish" : "implementation",
245
+ finalActionRemaining: approved && hasFinalActionRemaining,
246
+ diagnostics: args.diagnostics,
247
+ });
248
+ }
249
+
181
250
  export function reviewerErrorDecision(error: string): ReviewDecision {
182
251
  return {
183
252
  findings: [],
@@ -186,6 +255,7 @@ export function reviewerErrorDecision(error: string): ReviewDecision {
186
255
  "Reviewer execution failed, so the review gate cannot safely approve the current repository state.",
187
256
  overall_confidence_score: 0,
188
257
  stop_review_loop: false,
258
+ requirements_traceability: [],
189
259
  reviewer_error: {
190
260
  kind: "reviewer_failure",
191
261
  message: error,
@@ -196,14 +266,12 @@ export function reviewerErrorDecision(error: string): ReviewDecision {
196
266
  }
197
267
 
198
268
  export function reviewerErrorResult(
199
- error: string,
269
+ error: unknown,
200
270
  ): WorkflowTaskResult {
201
- const structured = reviewerErrorDecision(error);
202
271
  return {
203
272
  name: "reviewer-error",
204
273
  stageName: "reviewer-error",
205
- text: JSON.stringify(structured, null, 2),
206
- structured,
274
+ text: reviewerFailureText(error),
207
275
  };
208
276
  }
209
277
 
@@ -218,14 +286,17 @@ export function artifactSafeName(value: string): string {
218
286
  type ReviewArtifact = {
219
287
  readonly reviewer: string;
220
288
  readonly decision: ReviewDecision;
289
+ readonly convergence_decision: ReviewConvergenceSummary;
221
290
  readonly raw_text: string;
222
291
  };
223
292
 
224
293
  type ReviewRoundArtifact = {
294
+ readonly convergence_decision: ReviewConvergenceSummary;
225
295
  readonly reviews: readonly {
226
296
  readonly reviewer: string;
227
297
  readonly artifact_path: string;
228
298
  readonly decision: ReviewDecision;
299
+ readonly convergence_decision: ReviewConvergenceSummary;
229
300
  }[];
230
301
  };
231
302
 
@@ -258,6 +329,7 @@ export function forkContinuationOptions(
258
329
 
259
330
  export function renderResearchPromptRefinementPrompt(args: {
260
331
  readonly request: string;
332
+ readonly acceptanceCriteria: string;
261
333
  readonly workflowCwdContext: PromptSection;
262
334
  readonly latestReviewReportPath: string | undefined;
263
335
  }): string {
@@ -265,6 +337,9 @@ export function renderResearchPromptRefinementPrompt(args: {
265
337
  return [
266
338
  basePrompt,
267
339
  taggedPrompt([
340
+ ["objective", `Research the full requested task: ${args.request}`],
341
+ ["acceptance_criteria", args.acceptanceCriteria],
342
+ ["literal_contract", LITERAL_OBJECTIVE_CONTRACT],
268
343
  args.workflowCwdContext,
269
344
  [
270
345
  "review_findings",
@@ -272,7 +347,7 @@ export function renderResearchPromptRefinementPrompt(args: {
272
347
  ? "No prior review artifact is available."
273
348
  : [
274
349
  `Latest review round artifact: ${args.latestReviewReportPath}`,
275
- "Read this JSON artifact and include unresolved reviewer findings in the transformed research question so follow-up research addresses reviewer discoveries.",
350
+ "Read this JSON artifact and include unresolved reviewer findings in the transformed research question only when they are consistent with the literal objective and acceptance criteria.",
276
351
  ].join("\n"),
277
352
  ],
278
353
  [
@@ -285,6 +360,8 @@ export function renderResearchPromptRefinementPrompt(args: {
285
360
 
286
361
  export function renderResearchPrompt(args: {
287
362
  readonly transformedResearchQuestion: string;
363
+ readonly prompt: string;
364
+ readonly acceptanceCriteria: string;
288
365
  readonly workflowCwdContext: PromptSection;
289
366
  readonly latestReviewReportPath: string | undefined;
290
367
  readonly researchPath: string;
@@ -293,6 +370,9 @@ export function renderResearchPrompt(args: {
293
370
  return [
294
371
  basePrompt,
295
372
  taggedPrompt([
373
+ ["objective", `Research implementation requirements for: ${args.prompt}`],
374
+ ["acceptance_criteria", args.acceptanceCriteria],
375
+ ["literal_contract", LITERAL_OBJECTIVE_CONTRACT],
296
376
  args.workflowCwdContext,
297
377
  [
298
378
  "review_findings",
@@ -318,6 +398,7 @@ export function renderResearchPrompt(args: {
318
398
 
319
399
  export function renderForkedOrchestratorPrompt(args: {
320
400
  readonly prompt: string;
401
+ readonly acceptanceCriteria: string;
321
402
  readonly workflowCwdContext: PromptSection;
322
403
  readonly researchPath: string;
323
404
  readonly implementationNotesPath: string;
@@ -331,6 +412,8 @@ export function renderForkedOrchestratorPrompt(args: {
331
412
  ].join("\n"),
332
413
  ],
333
414
  ["objective", `Implement the full requested task: ${args.prompt}`],
415
+ ["acceptance_criteria", args.acceptanceCriteria],
416
+ ["literal_contract", LITERAL_OBJECTIVE_CONTRACT],
334
417
  args.workflowCwdContext,
335
418
  [
336
419
  "research",
@@ -351,10 +434,10 @@ export function renderForkedOrchestratorPrompt(args: {
351
434
  [
352
435
  "output_format",
353
436
  [
354
- "After subagents have done the work, return Markdown with headings:",
437
+ "After the implementation work is complete, return Markdown with headings:",
355
438
  "1. Research file — the path you read",
356
- "2. Delegations performed — subagents spawned and what each completed",
357
- "3. Changes made — concrete changes from subagent work, not intentions",
439
+ "2. Delegations performed — subagents used and what each completed, or none when direct work was sufficient",
440
+ "3. Changes made — concrete completed changes, not intentions",
358
441
  "4. Files touched",
359
442
  "5. Validation run / recommended",
360
443
  "6. Deferred work or blockers",
@@ -367,6 +450,7 @@ export function renderForkedOrchestratorPrompt(args: {
367
450
 
368
451
  export type RalphInputs = {
369
452
  readonly prompt?: string;
453
+ readonly acceptance_criteria?: string;
370
454
  readonly max_loops?: number;
371
455
  readonly base_branch?: string;
372
456
  readonly git_worktree_dir?: string;
@@ -375,6 +459,7 @@ export type RalphInputs = {
375
459
 
376
460
  export type RalphWorkflowOptions = {
377
461
  readonly prompt: string;
462
+ readonly acceptanceCriteria: string;
378
463
  readonly maxLoops: number;
379
464
  readonly comparisonBaseBranch: string;
380
465
  readonly workflowStartCwd: string;
@@ -1,135 +1,167 @@
1
1
  import { reviewDecisionSchema } from "./ralph-core.js";
2
2
 
3
- // Model chains are curated from Atomic's agentic-coding benchmark
4
- // (pass@1 / avg $ per task, 2026-07-02):
5
- // - Placement principle: REVIEWERS get best-in-class verification quality
6
- // (fable-5:xhigh 70%/$13.41 leads reviewer-A and the goal reviewer);
7
- // EVERY OTHER stage gets the best measured performance-per-dollar
8
- // (gpt-5.5:xhigh 67%/$7.23 for hard stages, gpt-5.5:medium 54%/$2.75 for
9
- // workhorse stages, gpt-5.5:low $1.20 for retrieval).
10
- // - Pareto frontier: gpt-5.5 low ($1.20/27%) gpt-5.5 medium ($2.75/54%) →
11
- // fable-5 low ($3.76/60%) gpt-5.5 high ($5.10/64%) → fable-5 medium
12
- // ($6.09/65%) gpt-5.5 xhigh ($7.23/67%) fable-5 high ($9.18/69%)
13
- // fable-5 xhigh ($13.41/70%).
14
- // - Dropped as strictly dominated: claude-sonnet-5 (40-54% at $4-26, up to
15
- // 268 steps), claude-sonnet-4.6 (30%/$5.52), gemini-3.1-pro (12%/$9.48),
16
- // gemini-3.5-flash (37%/$7.34, 276k output tokens).
17
- // - claude-opus-4.8 rides at :high — its value point (52%/$4.28); :xhigh
18
- // doubles the cost for +2pts.
19
- // - glm-5.2 is reviewer-C's diversity primary only (third model family
20
- // decorrelates review errors); elsewhere it is a budget fallback. Note:
21
- // GLM-5.2 has only two real reasoning tiers — its thinkingLevelMap collapses
3
+ // Model chains are curated from Atomic's agentic-coding benchmark and the
4
+ // July 2026 frontier refresh:
5
+ // - Critical synthesis/review stages prefer fable-5:xhigh, then gpt-5.5 xhigh
6
+ // variants, openrouter fugu-ultra, long-context opus, and GLM fallbacks.
7
+ // - Research remains on gpt-5.5:medium / fable-5:low for perf-per-dollar.
8
+ // - Reviewer B keeps gpt-5.5:xhigh as an independent frontier family to
9
+ // decorrelate review errors from reviewer A.
10
+ // - Dominated benchmark models stay out of the chains: claude-sonnet-5,
11
+ // claude-sonnet-4.6, gemini-3.1-pro, and gemini-3.5-flash.
12
+ // - GLM-5.2 has only two real reasoning tiers — its thinkingLevelMap collapses
22
13
  // minimal/low/medium/high to "high" and xhigh to "max" — so chains only use
23
14
  // :high (budget tier, 36%/$2.84) or :xhigh (best tier, 44%/$3.92); the
24
15
  // openrouter/z-ai mirror maps :xhigh exclusively, so it is always :xhigh.
25
16
 
26
17
  export const promptEngineerModelConfig = {
27
- model: "openai-codex/gpt-5.5:xhigh",
18
+ model: "anthropic/claude-fable-5:high",
28
19
  fallbackModels: [
20
+ "openai-codex/gpt-5.6-sol:xhigh",
21
+ "github-copilot/gpt-5.6-sol:xhigh",
22
+ "openai/gpt-5.6-sol:xhigh",
23
+ "openai-codex/gpt-5.5:xhigh",
29
24
  "github-copilot/gpt-5.5:xhigh",
30
25
  "openai/gpt-5.5:xhigh",
31
- "anthropic/claude-fable-5:xhigh",
32
26
  "github-copilot/claude-opus-4.8 (1m):high",
33
27
  "anthropic/claude-opus-4-8:high",
28
+ "cursor/claude-fable-5:high",
29
+ "cursor/gpt-5.6-sol:xhigh",
30
+ "cursor/gpt-5.5:high",
31
+ "cursor/claude-opus-4-8-thinking:high",
32
+ "cursor/grok-4.5",
34
33
  "zai/glm-5.2:xhigh",
35
34
  "zai-coding-cn/glm-5.2:xhigh",
35
+ "cursor/glm-5.2",
36
+ "openrouter/anthropic/claude-fable-5:high",
37
+ "openrouter/openai/gpt-5.6-sol:xhigh",
38
+ "openrouter/sakana/fugu-ultra:high",
36
39
  "openrouter/openai/gpt-5.5:xhigh",
37
- "openrouter/anthropic/claude-fable-5:xhigh",
38
40
  "openrouter/anthropic/claude-opus-4-8:high",
41
+ "openrouter/x-ai/grok-4.5",
39
42
  "openrouter/z-ai/glm-5.2:xhigh"
40
43
  ],
41
44
  excludedTools: ["ask_user_question"],
42
45
  };
43
46
 
44
47
  export const researchModelConfig = {
45
- model: "openai-codex/gpt-5.5:medium",
48
+ model: "openai-codex/gpt-5.6-sol:medium",
46
49
  fallbackModels: [
47
- "github-copilot/gpt-5.5:medium",
48
- "openai/gpt-5.5:medium",
49
- "anthropic/claude-fable-5:low",
50
- "github-copilot/claude-opus-4.8 (1m):medium",
51
- "anthropic/claude-opus-4-8:medium",
52
- "zai/glm-5.2:high",
53
- "zai-coding-cn/glm-5.2:high",
54
- "openrouter/openai/gpt-5.5:medium",
55
- "openrouter/anthropic/claude-fable-5:low",
56
- "openrouter/anthropic/claude-opus-4-8:medium",
57
- "openrouter/z-ai/glm-5.2:xhigh"
50
+ "github-copilot/gpt-5.6-sol:medium",
51
+ "openai/gpt-5.6-sol:medium",
52
+ "openai-codex/gpt-5.5:medium",
53
+ "github-copilot/gpt-5.5:medium",
54
+ "openai/gpt-5.5:medium",
55
+ "anthropic/claude-fable-5:low",
56
+ "github-copilot/claude-opus-4.8 (1m):medium",
57
+ "anthropic/claude-opus-4-8:medium",
58
+ "cursor/gpt-5.6-sol:medium",
59
+ "cursor/gpt-5.5:medium",
60
+ "cursor/claude-fable-5:low",
61
+ "cursor/claude-opus-4-8-thinking:medium",
62
+ "cursor/grok-4.5",
63
+ "zai/glm-5.2:high",
64
+ "zai-coding-cn/glm-5.2:high",
65
+ "cursor/glm-5.2",
66
+ "openrouter/openai/gpt-5.6-sol:medium",
67
+ "openrouter/openai/gpt-5.5:medium",
68
+ "openrouter/anthropic/claude-fable-5:low",
69
+ "openrouter/anthropic/claude-opus-4-8:medium",
70
+ "openrouter/x-ai/grok-4.5",
71
+ "openrouter/z-ai/glm-5.2:high"
58
72
  ],
59
73
  excludedTools: ["ask_user_question"],
60
74
  };
61
75
 
62
76
  export const orchestratorModelConfig = {
63
- model: "openai-codex/gpt-5.5:medium",
64
- fallbackModels: [
65
- "github-copilot/gpt-5.5:medium",
66
- "openai/gpt-5.5:medium",
67
- "anthropic/claude-fable-5:low",
68
- "github-copilot/claude-opus-4.8 (1m):medium",
69
- "anthropic/claude-opus-4-8:medium",
70
- "zai/glm-5.2:high",
71
- "zai-coding-cn/glm-5.2:high",
72
- "openrouter/openai/gpt-5.5:medium",
73
- "openrouter/anthropic/claude-fable-5:low",
74
- "openrouter/anthropic/claude-opus-4-8:medium",
75
- "openrouter/z-ai/glm-5.2:xhigh"
76
- ],
77
- excludedTools: ["ask_user_question"],
78
- };
79
-
80
- export const reviewerAModelConfig = {
81
- model: "anthropic/claude-fable-5:xhigh",
77
+ model: "openai-codex/gpt-5.6-sol:xhigh",
82
78
  fallbackModels: [
79
+ "github-copilot/gpt-5.6-sol:xhigh",
80
+ "openai/gpt-5.6-sol:xhigh",
81
+ "anthropic/claude-fable-5:high",
83
82
  "openai-codex/gpt-5.5:xhigh",
84
83
  "github-copilot/gpt-5.5:xhigh",
85
84
  "openai/gpt-5.5:xhigh",
86
85
  "github-copilot/claude-opus-4.8 (1m):high",
87
86
  "anthropic/claude-opus-4-8:high",
87
+ "cursor/gpt-5.6-sol:xhigh",
88
+ "cursor/claude-fable-5:high",
89
+ "cursor/gpt-5.5:high",
90
+ "cursor/claude-opus-4-8-thinking:high",
91
+ "cursor/grok-4.5",
88
92
  "zai/glm-5.2:xhigh",
89
93
  "zai-coding-cn/glm-5.2:xhigh",
90
- "openrouter/anthropic/claude-fable-5:xhigh",
94
+ "cursor/glm-5.2",
95
+ "openrouter/openai/gpt-5.6-sol:xhigh",
96
+ "openrouter/anthropic/claude-fable-5:high",
97
+ "openrouter/sakana/fugu-ultra:high",
91
98
  "openrouter/openai/gpt-5.5:xhigh",
92
99
  "openrouter/anthropic/claude-opus-4-8:high",
100
+ "openrouter/x-ai/grok-4.5",
93
101
  "openrouter/z-ai/glm-5.2:xhigh"
94
102
  ],
95
103
  excludedTools: ["ask_user_question"],
96
- schema: reviewDecisionSchema,
97
104
  };
98
105
 
99
- export const reviewerBModelConfig = {
100
- model: "openai-codex/gpt-5.5:xhigh",
106
+ export const reviewerAModelConfig = {
107
+ model: "anthropic/claude-fable-5:high",
101
108
  fallbackModels: [
109
+ "openai-codex/gpt-5.6-sol:max",
110
+ "github-copilot/gpt-5.6-sol:max",
111
+ "openai/gpt-5.6-sol:max",
112
+ "openai-codex/gpt-5.5:xhigh",
102
113
  "github-copilot/gpt-5.5:xhigh",
103
114
  "openai/gpt-5.5:xhigh",
104
- "anthropic/claude-fable-5:xhigh",
105
115
  "github-copilot/claude-opus-4.8 (1m):high",
106
116
  "anthropic/claude-opus-4-8:high",
117
+ "cursor/claude-fable-5:high",
118
+ "cursor/gpt-5.6-sol:max",
119
+ "cursor/gpt-5.5:high",
120
+ "cursor/claude-opus-4-8-thinking:high",
121
+ "cursor/grok-4.5",
107
122
  "zai/glm-5.2:xhigh",
108
123
  "zai-coding-cn/glm-5.2:xhigh",
124
+ "cursor/glm-5.2",
125
+ "openrouter/anthropic/claude-fable-5:high",
126
+ "openrouter/openai/gpt-5.6-sol:max",
127
+ "openrouter/sakana/fugu-ultra:high",
109
128
  "openrouter/openai/gpt-5.5:xhigh",
110
- "openrouter/anthropic/claude-fable-5:xhigh",
111
129
  "openrouter/anthropic/claude-opus-4-8:high",
130
+ "openrouter/x-ai/grok-4.5",
112
131
  "openrouter/z-ai/glm-5.2:xhigh"
113
132
  ],
114
133
  excludedTools: ["ask_user_question"],
115
134
  schema: reviewDecisionSchema,
116
135
  };
117
136
 
118
- export const reviewerCModelConfig = {
119
- model: "zai/glm-5.2:xhigh",
137
+ export const reviewerBModelConfig = {
138
+ model: "openai-codex/gpt-5.6-sol:max",
120
139
  fallbackModels: [
121
- "zai-coding-cn/glm-5.2:xhigh",
122
- "openrouter/z-ai/glm-5.2:xhigh",
140
+ "github-copilot/gpt-5.6-sol:max",
141
+ "openai/gpt-5.6-sol:max",
123
142
  "openai-codex/gpt-5.5:xhigh",
124
143
  "github-copilot/gpt-5.5:xhigh",
125
144
  "openai/gpt-5.5:xhigh",
126
- "anthropic/claude-fable-5:xhigh",
145
+ "anthropic/claude-fable-5:high",
127
146
  "github-copilot/claude-opus-4.8 (1m):high",
128
147
  "anthropic/claude-opus-4-8:high",
148
+ "cursor/gpt-5.6-sol:max",
149
+ "cursor/gpt-5.5:high",
150
+ "cursor/claude-fable-5:high",
151
+ "cursor/claude-opus-4-8-thinking:high",
152
+ "cursor/grok-4.5",
153
+ "zai/glm-5.2:xhigh",
154
+ "zai-coding-cn/glm-5.2:xhigh",
155
+ "cursor/glm-5.2",
156
+ "openrouter/openai/gpt-5.6-sol:max",
129
157
  "openrouter/openai/gpt-5.5:xhigh",
130
- "openrouter/anthropic/claude-fable-5:xhigh",
131
- "openrouter/anthropic/claude-opus-4-8:high"
158
+ "openrouter/anthropic/claude-fable-5:high",
159
+ "openrouter/sakana/fugu-ultra:high",
160
+ "openrouter/anthropic/claude-opus-4-8:high",
161
+ "openrouter/x-ai/grok-4.5",
162
+ "openrouter/z-ai/glm-5.2:xhigh"
132
163
  ],
133
164
  excludedTools: ["ask_user_question"],
134
165
  schema: reviewDecisionSchema,
135
166
  };
167
+
@@ -1,3 +1,5 @@
1
+ import { traceabilityProvenExceptFinalAction } from "./review-convergence.js";
2
+
1
3
  /**
2
4
  * Review-gate severity logic for the builtin `ralph` workflow.
3
5
  *
@@ -23,10 +25,17 @@
23
25
  * depend on the model correctly deriving that flag.
24
26
  */
25
27
 
28
+ export type ObjectiveAlignment =
29
+ | "required_by_objective"
30
+ | "consistent_with_objective"
31
+ | "beyond_objective"
32
+ | "contradicts_objective";
33
+
26
34
  export type ReviewFinding = {
27
35
  readonly title: string;
28
36
  readonly body: string;
29
37
  readonly confidence_score: number;
38
+ readonly objective_alignment: ObjectiveAlignment;
30
39
  readonly priority?: number | null;
31
40
  readonly code_location: {
32
41
  readonly absolute_file_path: string;
@@ -46,12 +55,19 @@ export type ReviewerError = {
46
55
  readonly message: string;
47
56
  readonly attempted_recovery: string;
48
57
  };
58
+ export type RequirementTraceability = {
59
+ readonly requirement: string;
60
+ readonly status: "proven" | "contradicted" | "missing" | "unverified";
61
+ readonly evidence: string;
62
+ };
63
+
49
64
 
50
65
  export type ReviewDecision = {
51
66
  readonly findings: readonly ReviewFinding[];
52
67
  readonly overall_correctness: "patch is correct" | "patch is incorrect";
53
68
  readonly overall_explanation: string;
54
69
  readonly overall_confidence_score: number;
70
+ readonly requirements_traceability: readonly RequirementTraceability[];
55
71
  readonly stop_review_loop: boolean;
56
72
  readonly reviewer_error?: ReviewerError | null;
57
73
  };
@@ -69,6 +85,13 @@ export const MAX_BLOCKING_PRIORITY = 2;
69
85
  * approves.
70
86
  */
71
87
  export function isBlockingFinding(finding: ReviewFinding): boolean {
88
+ const alignment = finding.objective_alignment;
89
+ if (alignment === "beyond_objective" || alignment === "contradicts_objective") {
90
+ return false;
91
+ }
92
+ if (alignment !== "required_by_objective" && alignment !== "consistent_with_objective") {
93
+ return true;
94
+ }
72
95
  const priority = finding.priority;
73
96
  if (priority === undefined || priority === null) return true;
74
97
  return priority <= MAX_BLOCKING_PRIORITY;
@@ -76,14 +99,23 @@ export function isBlockingFinding(finding: ReviewFinding): boolean {
76
99
 
77
100
  /**
78
101
  * A single reviewer approves (would stop the loop) when it judged the patch
79
- * correct, surfaced no reviewer execution error, and filed no blocking
80
- * (P0/P1/P2) finding. P3 nice-to-haves and placeholder/dummy findings do not
81
- * block approval.
102
+ * correct, surfaced no reviewer execution error, filed no blocking (P0/P1/P2)
103
+ * finding, and supplied a non-empty requirement traceability map where every
104
+ * explicit requirement is proven. P3 nice-to-haves and placeholder/dummy
105
+ * findings do not block approval.
82
106
  */
83
- export function reviewDecisionApproved(decision: ReviewDecision): boolean {
107
+ export function reviewDecisionApproved(
108
+ decision: ReviewDecision,
109
+ options: { readonly allowFinalActionRemaining?: boolean } = {},
110
+ ): boolean {
111
+ const traceability = decision.requirements_traceability;
84
112
  return (
85
113
  decision.overall_correctness === "patch is correct" &&
86
114
  decision.reviewer_error == null &&
87
- !decision.findings.some(isBlockingFinding)
115
+ !decision.findings.some(isBlockingFinding) &&
116
+ traceabilityProvenExceptFinalAction({
117
+ traceability,
118
+ allowFinalActionRemaining: options.allowFinalActionRemaining === true,
119
+ })
88
120
  );
89
121
  }