@bastani/atomic 0.9.5-alpha.8 → 0.9.5

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 (530) hide show
  1. package/CHANGELOG.md +122 -0
  2. package/README.md +2 -2
  3. package/dist/builtin/cursor/CHANGELOG.md +12 -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 +37 -0
  7. package/dist/builtin/intercom/README.md +4 -2
  8. package/dist/builtin/intercom/broker/broker.ts +6 -114
  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/pending-send-registry.ts +142 -0
  12. package/dist/builtin/intercom/broker/send-handler.ts +106 -0
  13. package/dist/builtin/intercom/broker/send-signature.ts +37 -0
  14. package/dist/builtin/intercom/foreground-detach-handoff.ts +136 -0
  15. package/dist/builtin/intercom/index-heavy.ts +49 -53
  16. package/dist/builtin/intercom/index.ts +278 -262
  17. package/dist/builtin/intercom/lazy-heavy-proxy.ts +114 -0
  18. package/dist/builtin/intercom/lazy-subagent-ack.ts +20 -0
  19. package/dist/builtin/intercom/lazy-tool-execution.ts +39 -0
  20. package/dist/builtin/intercom/lifecycle-lease.ts +51 -0
  21. package/dist/builtin/intercom/lifecycle.ts +37 -20
  22. package/dist/builtin/intercom/package.json +3 -6
  23. package/dist/builtin/intercom/reply-routing.ts +17 -0
  24. package/dist/builtin/intercom/subagent-relay.ts +58 -12
  25. package/dist/builtin/intercom/types.ts +3 -3
  26. package/dist/builtin/mcp/CHANGELOG.md +38 -0
  27. package/dist/builtin/mcp/OAUTH.md +1 -0
  28. package/dist/builtin/mcp/README.md +10 -6
  29. package/dist/builtin/mcp/apps-cancellation.ts +32 -0
  30. package/dist/builtin/mcp/call-tool-result.ts +9 -0
  31. package/dist/builtin/mcp/caller-wait.ts +50 -0
  32. package/dist/builtin/mcp/command-registration.ts +82 -0
  33. package/dist/builtin/mcp/direct-tool-executor.ts +279 -0
  34. package/dist/builtin/mcp/direct-tools.ts +40 -255
  35. package/dist/builtin/mcp/host-html-template.ts +4 -2
  36. package/dist/builtin/mcp/index.ts +274 -239
  37. package/dist/builtin/mcp/init.ts +96 -126
  38. package/dist/builtin/mcp/mcp-auth-flow.ts +247 -237
  39. package/dist/builtin/mcp/mcp-callback-server.ts +89 -68
  40. package/dist/builtin/mcp/mcp-oauth-provider.ts +23 -1
  41. package/dist/builtin/mcp/metadata-hydration.ts +52 -0
  42. package/dist/builtin/mcp/package.json +3 -3
  43. package/dist/builtin/mcp/proxy-auth.ts +4 -4
  44. package/dist/builtin/mcp/proxy-call.ts +111 -40
  45. package/dist/builtin/mcp/proxy-connect.ts +35 -15
  46. package/dist/builtin/mcp/proxy-info-modes.ts +106 -23
  47. package/dist/builtin/mcp/proxy-modes.ts +3 -3
  48. package/dist/builtin/mcp/session-cleanup-barrier.ts +43 -0
  49. package/dist/builtin/mcp/startup-warmup.ts +98 -0
  50. package/dist/builtin/mcp/state-lease.ts +12 -0
  51. package/dist/builtin/mcp/tool-result-renderer.ts +3 -3
  52. package/dist/builtin/mcp/ui-server.ts +8 -8
  53. package/dist/builtin/mcp/ui-session.ts +9 -18
  54. package/dist/builtin/subagents/CHANGELOG.md +78 -0
  55. package/dist/builtin/subagents/README.md +30 -29
  56. package/dist/builtin/subagents/agents/code-simplifier.md +2 -2
  57. package/dist/builtin/subagents/agents/codebase-analyzer.md +2 -2
  58. package/dist/builtin/subagents/agents/codebase-locator.md +2 -2
  59. package/dist/builtin/subagents/agents/codebase-online-researcher.md +2 -2
  60. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +2 -2
  61. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +2 -2
  62. package/dist/builtin/subagents/agents/codebase-research-locator.md +2 -2
  63. package/dist/builtin/subagents/agents/debugger.md +2 -2
  64. package/dist/builtin/subagents/agents/worker.md +2 -2
  65. package/dist/builtin/subagents/package.json +5 -5
  66. package/dist/builtin/subagents/prompts/review-loop.md +1 -1
  67. package/dist/builtin/subagents/skills/subagent/SKILL.md +37 -36
  68. package/dist/builtin/subagents/src/extension/api-lifecycle.ts +64 -0
  69. package/dist/builtin/subagents/src/extension/fanout-child.ts +44 -51
  70. package/dist/builtin/subagents/src/extension/index.ts +289 -320
  71. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +7 -10
  72. package/dist/builtin/subagents/src/extension/schemas.ts +22 -5
  73. package/dist/builtin/subagents/src/extension/startup-maintenance.ts +89 -0
  74. package/dist/builtin/subagents/src/extension/tool-description.ts +29 -0
  75. package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +13 -2
  76. package/dist/builtin/subagents/src/intercom/result-intercom.ts +4 -4
  77. package/dist/builtin/subagents/src/runs/background/async-event-journal.ts +106 -0
  78. package/dist/builtin/subagents/src/runs/background/async-execution-common.ts +26 -20
  79. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +13 -2
  80. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +3 -0
  81. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +1 -1
  82. package/dist/builtin/subagents/src/runs/background/completion-claims.ts +189 -0
  83. package/dist/builtin/subagents/src/runs/background/completion-dedupe.ts +44 -7
  84. package/dist/builtin/subagents/src/runs/background/completion-notification.ts +34 -0
  85. package/dist/builtin/subagents/src/runs/background/notify.ts +72 -22
  86. package/dist/builtin/subagents/src/runs/background/result-delivery-processor.ts +232 -0
  87. package/dist/builtin/subagents/src/runs/background/result-file-claims.ts +151 -0
  88. package/dist/builtin/subagents/src/runs/background/result-quarantine.ts +72 -0
  89. package/dist/builtin/subagents/src/runs/background/result-retry-scheduler.ts +48 -0
  90. package/dist/builtin/subagents/src/runs/background/result-status.ts +81 -0
  91. package/dist/builtin/subagents/src/runs/background/result-watcher-data.ts +59 -0
  92. package/dist/builtin/subagents/src/runs/background/result-watcher.ts +177 -233
  93. package/dist/builtin/subagents/src/runs/background/run-id-resolver.ts +3 -2
  94. package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +73 -14
  95. package/dist/builtin/subagents/src/runs/background/subagent-runner-streaming.ts +29 -15
  96. package/dist/builtin/subagents/src/runs/background/top-level-async.ts +1 -2
  97. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +1 -0
  98. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +1 -0
  99. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +1 -0
  100. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +7 -9
  101. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +3 -13
  102. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +2 -15
  103. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-finalize.ts +2 -2
  104. package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +63 -46
  105. package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +48 -0
  106. package/dist/builtin/subagents/src/runs/foreground/execution-detach-route.ts +17 -0
  107. package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +39 -26
  108. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +3 -1
  109. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +3 -51
  110. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +6 -11
  111. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +11 -2
  112. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +2 -0
  113. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +5 -112
  114. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +2 -0
  115. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +68 -118
  116. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +79 -7
  117. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +2 -2
  118. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +3 -0
  119. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +2 -2
  120. package/dist/builtin/subagents/src/runs/shared/pi-spawn.ts +55 -12
  121. package/dist/builtin/subagents/src/shared/artifacts.ts +22 -11
  122. package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +294 -0
  123. package/dist/builtin/subagents/src/shared/exclusive-file-publication.ts +44 -0
  124. package/dist/builtin/subagents/src/shared/jsonl-writer.ts +1 -0
  125. package/dist/builtin/subagents/src/shared/model-info.ts +2 -2
  126. package/dist/builtin/subagents/src/shared/settings.ts +20 -10
  127. package/dist/builtin/subagents/src/shared/types-async.ts +3 -1
  128. package/dist/builtin/subagents/src/shared/types-config.ts +2 -0
  129. package/dist/builtin/subagents/src/shared/types-runtime.ts +3 -2
  130. package/dist/builtin/subagents/src/slash/slash-commands.ts +9 -12
  131. package/dist/builtin/subagents/src/slash/slash-live-state.ts +63 -32
  132. package/dist/builtin/subagents/src/tui/render-result.ts +7 -0
  133. package/dist/builtin/subagents/src/tui/render-stable-output.ts +1 -0
  134. package/dist/builtin/subagents/src/tui/render-widget.ts +157 -89
  135. package/dist/builtin/web-access/CHANGELOG.md +28 -0
  136. package/dist/builtin/web-access/README.md +4 -0
  137. package/dist/builtin/web-access/content-tools.ts +8 -3
  138. package/dist/builtin/web-access/index-heavy.ts +1 -1
  139. package/dist/builtin/web-access/index.ts +190 -46
  140. package/dist/builtin/web-access/lifecycle-lease.ts +38 -0
  141. package/dist/builtin/web-access/package.json +2 -2
  142. package/dist/builtin/web-access/result-renderers.ts +1 -1
  143. package/dist/builtin/web-access/summary-review.ts +1 -1
  144. package/dist/builtin/web-access/web-search-activity.ts +1 -1
  145. package/dist/builtin/web-access/web-search-return.ts +7 -0
  146. package/dist/builtin/web-access/web-search-summary.ts +1 -1
  147. package/dist/builtin/web-access/web-search-tool.ts +4 -2
  148. package/dist/builtin/workflows/CHANGELOG.md +86 -0
  149. package/dist/builtin/workflows/README.md +5 -5
  150. package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +27 -4
  151. package/dist/builtin/workflows/builtin/goal-runner.ts +86 -27
  152. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +10 -0
  153. package/dist/builtin/workflows/builtin/ralph-core.ts +9 -9
  154. package/dist/builtin/workflows/builtin/ralph-models.ts +71 -36
  155. package/dist/builtin/workflows/builtin/ralph-runner.ts +20 -31
  156. package/dist/builtin/workflows/package.json +2 -2
  157. package/dist/builtin/workflows/skills/impeccable/SKILL.md +16 -13
  158. package/dist/builtin/workflows/skills/impeccable/reference/adapt.md +1 -0
  159. package/dist/builtin/workflows/skills/impeccable/reference/adapt.native.md +58 -0
  160. package/dist/builtin/workflows/skills/impeccable/reference/android.md +40 -0
  161. package/dist/builtin/workflows/skills/impeccable/reference/animate.md +2 -0
  162. package/dist/builtin/workflows/skills/impeccable/reference/audit.md +2 -0
  163. package/dist/builtin/workflows/skills/impeccable/reference/audit.native.md +139 -0
  164. package/dist/builtin/workflows/skills/impeccable/reference/bolder.md +69 -62
  165. package/dist/builtin/workflows/skills/impeccable/reference/critique.md +21 -7
  166. package/dist/builtin/workflows/skills/impeccable/reference/document.md +1 -1
  167. package/dist/builtin/workflows/skills/impeccable/reference/hooks.md +92 -0
  168. package/dist/builtin/workflows/skills/impeccable/reference/init.md +29 -7
  169. package/dist/builtin/workflows/skills/impeccable/reference/ios.md +45 -0
  170. package/dist/builtin/workflows/skills/impeccable/reference/layout.md +25 -1
  171. package/dist/builtin/workflows/skills/impeccable/reference/typeset.md +23 -1
  172. package/dist/builtin/workflows/skills/impeccable/scripts/context-signals.mjs +2 -1
  173. package/dist/builtin/workflows/skills/impeccable/scripts/context.mjs +75 -14
  174. package/dist/builtin/workflows/skills/impeccable/scripts/detector/browser/injected/index.mjs +1 -1
  175. package/dist/builtin/workflows/skills/impeccable/scripts/detector/cli/main.mjs +31 -0
  176. package/dist/builtin/workflows/skills/impeccable/scripts/detector/design-system.mjs +64 -0
  177. package/dist/builtin/workflows/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +118 -11
  178. package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +16 -11
  179. package/dist/builtin/workflows/skills/impeccable/scripts/detector/registry/antipatterns.mjs +66 -0
  180. package/dist/builtin/workflows/skills/impeccable/scripts/detector/rules/checks.mjs +42 -10
  181. package/dist/builtin/workflows/skills/impeccable/scripts/detector/shared/fonts.mjs +30 -0
  182. package/dist/builtin/workflows/skills/impeccable/scripts/detector/shared/page.mjs +4 -6
  183. package/dist/builtin/workflows/skills/impeccable/scripts/hook-admin.mjs +660 -0
  184. package/dist/builtin/workflows/skills/impeccable/scripts/hook-before-edit.mjs +516 -0
  185. package/dist/builtin/workflows/skills/impeccable/scripts/hook-lib.mjs +1764 -0
  186. package/dist/builtin/workflows/skills/impeccable/scripts/hook.mjs +61 -0
  187. package/dist/builtin/workflows/skills/impeccable/scripts/lib/impeccable-config.mjs +4 -2
  188. package/dist/builtin/workflows/skills/impeccable/scripts/lib/is-generated.mjs +2 -2
  189. package/dist/builtin/workflows/skills/impeccable/scripts/live/svelte-component.mjs +13 -16
  190. package/dist/builtin/workflows/skills/impeccable/scripts/live-accept.mjs +17 -11
  191. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser.js +104 -37
  192. package/dist/builtin/workflows/skills/impeccable/scripts/live-wrap.mjs +9 -0
  193. package/dist/builtin/workflows/src/durable/backend.ts +12 -0
  194. package/dist/builtin/workflows/src/durable/dbos-backend.ts +17 -1
  195. package/dist/builtin/workflows/src/durable/resume-catalog.ts +12 -0
  196. package/dist/builtin/workflows/src/durable/resume-runtime.ts +5 -2
  197. package/dist/builtin/workflows/src/durable/stage-primitive.ts +2 -1
  198. package/dist/builtin/workflows/src/durable/types.ts +16 -0
  199. package/dist/builtin/workflows/src/engine/primitives/task.ts +3 -1
  200. package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +1 -2
  201. package/dist/builtin/workflows/src/engine/run-returned-status.ts +50 -16
  202. package/dist/builtin/workflows/src/engine/run.ts +20 -19
  203. package/dist/builtin/workflows/src/engine/runtime.ts +5 -0
  204. package/dist/builtin/workflows/src/extension/extension-factory.ts +3 -0
  205. package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +9 -2
  206. package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +137 -27
  207. package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +22 -6
  208. package/dist/builtin/workflows/src/extension/public-types.ts +1 -1
  209. package/dist/builtin/workflows/src/extension/workflow-command-completions.ts +13 -1
  210. package/dist/builtin/workflows/src/extension/workflow-command-registration.ts +19 -4
  211. package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +9 -0
  212. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +17 -22
  213. package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +48 -23
  214. package/dist/builtin/workflows/src/extension/workflow-schema.ts +15 -2
  215. package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +20 -8
  216. package/dist/builtin/workflows/src/extension/workflow-tool.ts +24 -8
  217. package/dist/builtin/workflows/src/runs/background/status.ts +4 -3
  218. package/dist/builtin/workflows/src/runs/foreground/executor-direct-helpers.ts +29 -8
  219. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +1 -1
  220. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +3 -2
  221. package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +1 -1
  222. package/dist/builtin/workflows/src/runs/shared/worktree-git.ts +155 -20
  223. package/dist/builtin/workflows/src/runs/shared/worktree-types.ts +6 -0
  224. package/dist/builtin/workflows/src/runs/shared/worktree.ts +2 -1
  225. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +2 -2
  226. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +2 -2
  227. package/dist/builtin/workflows/src/shared/resume-continuation.ts +2 -0
  228. package/dist/builtin/workflows/src/shared/returned-run-status.ts +116 -0
  229. package/dist/builtin/workflows/src/shared/workflow-failures-decisions.ts +2 -0
  230. package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +21 -3
  231. package/dist/builtin/workflows/src/tui/graph-view-state.ts +3 -0
  232. package/dist/builtin/workflows/src/tui/graph-view-types.ts +3 -0
  233. package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +1 -23
  234. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +54 -9
  235. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +5 -2
  236. package/dist/builtin/workflows/src/tui/status-list.ts +22 -15
  237. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +4 -4
  238. package/dist/cli/args.d.ts.map +1 -1
  239. package/dist/cli/args.js +2 -2
  240. package/dist/cli/args.js.map +1 -1
  241. package/dist/core/agent-session-auto-compaction.d.ts +23 -3
  242. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  243. package/dist/core/agent-session-auto-compaction.js +129 -17
  244. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  245. package/dist/core/agent-session-events.d.ts.map +1 -1
  246. package/dist/core/agent-session-events.js +9 -1
  247. package/dist/core/agent-session-events.js.map +1 -1
  248. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  249. package/dist/core/agent-session-message-queue.js +1 -1
  250. package/dist/core/agent-session-message-queue.js.map +1 -1
  251. package/dist/core/agent-session-methods.d.ts +6 -3
  252. package/dist/core/agent-session-methods.d.ts.map +1 -1
  253. package/dist/core/agent-session-methods.js.map +1 -1
  254. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  255. package/dist/core/agent-session-prompt.js +2 -2
  256. package/dist/core/agent-session-prompt.js.map +1 -1
  257. package/dist/core/agent-session-retry.d.ts.map +1 -1
  258. package/dist/core/agent-session-retry.js +1 -1
  259. package/dist/core/agent-session-retry.js.map +1 -1
  260. package/dist/core/agent-session-services.d.ts.map +1 -1
  261. package/dist/core/agent-session-services.js +3 -2
  262. package/dist/core/agent-session-services.js.map +1 -1
  263. package/dist/core/agent-session-types.d.ts.map +1 -1
  264. package/dist/core/agent-session-types.js +1 -1
  265. package/dist/core/agent-session-types.js.map +1 -1
  266. package/dist/core/agent-session.d.ts +4 -2
  267. package/dist/core/agent-session.d.ts.map +1 -1
  268. package/dist/core/agent-session.js +4 -2
  269. package/dist/core/agent-session.js.map +1 -1
  270. package/dist/core/anthropic-thinking-guard.d.ts +5 -5
  271. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  272. package/dist/core/anthropic-thinking-guard.js +42 -32
  273. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  274. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  275. package/dist/core/atomic-guide-command.js +15 -15
  276. package/dist/core/atomic-guide-command.js.map +1 -1
  277. package/dist/core/auth-storage.d.ts.map +1 -1
  278. package/dist/core/auth-storage.js +14 -9
  279. package/dist/core/auth-storage.js.map +1 -1
  280. package/dist/core/compaction/compaction.d.ts +2 -0
  281. package/dist/core/compaction/compaction.d.ts.map +1 -1
  282. package/dist/core/compaction/compaction.js +79 -46
  283. package/dist/core/compaction/compaction.js.map +1 -1
  284. package/dist/core/compaction/context-assistant-turns.d.ts +42 -0
  285. package/dist/core/compaction/context-assistant-turns.d.ts.map +1 -0
  286. package/dist/core/compaction/context-assistant-turns.js +87 -0
  287. package/dist/core/compaction/context-assistant-turns.js.map +1 -0
  288. package/dist/core/compaction/context-compaction-critical.d.ts +1 -1
  289. package/dist/core/compaction/context-compaction-critical.d.ts.map +1 -1
  290. package/dist/core/compaction/context-compaction-critical.js +2 -2
  291. package/dist/core/compaction/context-compaction-critical.js.map +1 -1
  292. package/dist/core/compaction/context-compaction-eviction-alternates.d.ts +18 -0
  293. package/dist/core/compaction/context-compaction-eviction-alternates.d.ts.map +1 -0
  294. package/dist/core/compaction/context-compaction-eviction-alternates.js +186 -0
  295. package/dist/core/compaction/context-compaction-eviction-alternates.js.map +1 -0
  296. package/dist/core/compaction/context-compaction-eviction.d.ts +10 -2
  297. package/dist/core/compaction/context-compaction-eviction.d.ts.map +1 -1
  298. package/dist/core/compaction/context-compaction-eviction.js +196 -146
  299. package/dist/core/compaction/context-compaction-eviction.js.map +1 -1
  300. package/dist/core/compaction/context-compaction-prompt.d.ts.map +1 -1
  301. package/dist/core/compaction/context-compaction-prompt.js +1 -1
  302. package/dist/core/compaction/context-compaction-prompt.js.map +1 -1
  303. package/dist/core/compaction/context-compaction-types.d.ts +2 -0
  304. package/dist/core/compaction/context-compaction-types.d.ts.map +1 -1
  305. package/dist/core/compaction/context-compaction-types.js.map +1 -1
  306. package/dist/core/compaction/context-deletion-application.d.ts +5 -4
  307. package/dist/core/compaction/context-deletion-application.d.ts.map +1 -1
  308. package/dist/core/compaction/context-deletion-application.js +17 -15
  309. package/dist/core/compaction/context-deletion-application.js.map +1 -1
  310. package/dist/core/compaction/context-deletion-store.d.ts.map +1 -1
  311. package/dist/core/compaction/context-deletion-store.js +1 -1
  312. package/dist/core/compaction/context-deletion-store.js.map +1 -1
  313. package/dist/core/compaction/context-deletion-targets.d.ts +2 -1
  314. package/dist/core/compaction/context-deletion-targets.d.ts.map +1 -1
  315. package/dist/core/compaction/context-deletion-targets.js +36 -31
  316. package/dist/core/compaction/context-deletion-targets.js.map +1 -1
  317. package/dist/core/compaction/context-deletion-tool-helpers.d.ts.map +1 -1
  318. package/dist/core/compaction/context-deletion-tool-helpers.js +116 -43
  319. package/dist/core/compaction/context-deletion-tool-helpers.js.map +1 -1
  320. package/dist/core/compaction/context-transcript-analysis.d.ts +1 -2
  321. package/dist/core/compaction/context-transcript-analysis.d.ts.map +1 -1
  322. package/dist/core/compaction/context-transcript-analysis.js +33 -37
  323. package/dist/core/compaction/context-transcript-analysis.js.map +1 -1
  324. package/dist/core/copilot-model-synthesis.d.ts.map +1 -1
  325. package/dist/core/copilot-model-synthesis.js +3 -1
  326. package/dist/core/copilot-model-synthesis.js.map +1 -1
  327. package/dist/core/extensions/loader-virtual-modules.d.ts +8 -1
  328. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  329. package/dist/core/extensions/loader-virtual-modules.js +2 -1
  330. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  331. package/dist/core/extensions/provider-types.d.ts +2 -7
  332. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  333. package/dist/core/extensions/provider-types.js.map +1 -1
  334. package/dist/core/footer-data-provider.d.ts +6 -0
  335. package/dist/core/footer-data-provider.d.ts.map +1 -1
  336. package/dist/core/footer-data-provider.js +72 -29
  337. package/dist/core/footer-data-provider.js.map +1 -1
  338. package/dist/core/messages.d.ts +9 -0
  339. package/dist/core/messages.d.ts.map +1 -1
  340. package/dist/core/messages.js +100 -18
  341. package/dist/core/messages.js.map +1 -1
  342. package/dist/core/model-registry-builtins.d.ts.map +1 -1
  343. package/dist/core/model-registry-builtins.js +5 -0
  344. package/dist/core/model-registry-builtins.js.map +1 -1
  345. package/dist/core/model-registry-custom-loader.d.ts.map +1 -1
  346. package/dist/core/model-registry-custom-loader.js +49 -8
  347. package/dist/core/model-registry-custom-loader.js.map +1 -1
  348. package/dist/core/model-registry-dynamic.d.ts.map +1 -1
  349. package/dist/core/model-registry-dynamic.js +11 -5
  350. package/dist/core/model-registry-dynamic.js.map +1 -1
  351. package/dist/core/model-registry-loader.d.ts.map +1 -1
  352. package/dist/core/model-registry-loader.js +8 -0
  353. package/dist/core/model-registry-loader.js.map +1 -1
  354. package/dist/core/model-registry-schemas.d.ts +93 -8
  355. package/dist/core/model-registry-schemas.d.ts.map +1 -1
  356. package/dist/core/model-registry-schemas.js +24 -12
  357. package/dist/core/model-registry-schemas.js.map +1 -1
  358. package/dist/core/model-registry-types.d.ts +7 -6
  359. package/dist/core/model-registry-types.d.ts.map +1 -1
  360. package/dist/core/model-registry-types.js.map +1 -1
  361. package/dist/core/model-registry.d.ts +5 -0
  362. package/dist/core/model-registry.d.ts.map +1 -1
  363. package/dist/core/model-registry.js +23 -0
  364. package/dist/core/model-registry.js.map +1 -1
  365. package/dist/core/model-resolver-cli.d.ts.map +1 -1
  366. package/dist/core/model-resolver-cli.js +33 -5
  367. package/dist/core/model-resolver-cli.js.map +1 -1
  368. package/dist/core/model-resolver-initial.d.ts +6 -1
  369. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  370. package/dist/core/model-resolver-initial.js +12 -7
  371. package/dist/core/model-resolver-initial.js.map +1 -1
  372. package/dist/core/model-resolver.d.ts +1 -1
  373. package/dist/core/model-resolver.d.ts.map +1 -1
  374. package/dist/core/model-resolver.js +1 -1
  375. package/dist/core/model-resolver.js.map +1 -1
  376. package/dist/core/openai-responses-payload-sanitizer.d.ts +1 -0
  377. package/dist/core/openai-responses-payload-sanitizer.d.ts.map +1 -1
  378. package/dist/core/openai-responses-payload-sanitizer.js +24 -9
  379. package/dist/core/openai-responses-payload-sanitizer.js.map +1 -1
  380. package/dist/core/resource-loader-context-files.d.ts +1 -0
  381. package/dist/core/resource-loader-context-files.d.ts.map +1 -1
  382. package/dist/core/resource-loader-context-files.js +13 -10
  383. package/dist/core/resource-loader-context-files.js.map +1 -1
  384. package/dist/core/sdk.d.ts.map +1 -1
  385. package/dist/core/sdk.js +2 -2
  386. package/dist/core/sdk.js.map +1 -1
  387. package/dist/core/session-entry-normalization.d.ts +7 -0
  388. package/dist/core/session-entry-normalization.d.ts.map +1 -0
  389. package/dist/core/session-entry-normalization.js +14 -0
  390. package/dist/core/session-entry-normalization.js.map +1 -0
  391. package/dist/core/session-manager-core.d.ts.map +1 -1
  392. package/dist/core/session-manager-core.js +1 -0
  393. package/dist/core/session-manager-core.js.map +1 -1
  394. package/dist/core/session-manager-history.d.ts +2 -2
  395. package/dist/core/session-manager-history.d.ts.map +1 -1
  396. package/dist/core/session-manager-history.js +127 -108
  397. package/dist/core/session-manager-history.js.map +1 -1
  398. package/dist/core/settings-manager-basic-accessors.d.ts +2 -2
  399. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  400. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  401. package/dist/core/settings-types.d.ts +1 -1
  402. package/dist/core/settings-types.d.ts.map +1 -1
  403. package/dist/core/settings-types.js.map +1 -1
  404. package/dist/core/slash-commands.d.ts +2 -0
  405. package/dist/core/slash-commands.d.ts.map +1 -1
  406. package/dist/core/slash-commands.js +141 -0
  407. package/dist/core/slash-commands.js.map +1 -1
  408. package/dist/core/tools/bash.d.ts.map +1 -1
  409. package/dist/core/tools/bash.js +11 -8
  410. package/dist/core/tools/bash.js.map +1 -1
  411. package/dist/index.d.ts +1 -0
  412. package/dist/index.d.ts.map +1 -1
  413. package/dist/index.js +1 -0
  414. package/dist/index.js.map +1 -1
  415. package/dist/main-deferred-startup.d.ts.map +1 -1
  416. package/dist/main-deferred-startup.js +2 -2
  417. package/dist/main-deferred-startup.js.map +1 -1
  418. package/dist/main-early-input.d.ts.map +1 -1
  419. package/dist/main-early-input.js +7 -0
  420. package/dist/main-early-input.js.map +1 -1
  421. package/dist/main-session.d.ts.map +1 -1
  422. package/dist/main-session.js +1 -0
  423. package/dist/main-session.js.map +1 -1
  424. package/dist/main.d.ts.map +1 -1
  425. package/dist/main.js +1 -1
  426. package/dist/main.js.map +1 -1
  427. package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
  428. package/dist/modes/interactive/components/chat-session-host-actions.js +0 -1
  429. package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
  430. package/dist/modes/interactive/components/settings-selector-options.d.ts.map +1 -1
  431. package/dist/modes/interactive/components/settings-selector-options.js +3 -1
  432. package/dist/modes/interactive/components/settings-selector-options.js.map +1 -1
  433. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  434. package/dist/modes/interactive/components/thinking-selector.js +2 -1
  435. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  436. package/dist/modes/interactive/interactive-agent-events.d.ts.map +1 -1
  437. package/dist/modes/interactive/interactive-agent-events.js +3 -1
  438. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  439. package/dist/modes/interactive/interactive-autocomplete.d.ts.map +1 -1
  440. package/dist/modes/interactive/interactive-autocomplete.js +21 -9
  441. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  442. package/dist/modes/interactive/interactive-child-ordering.d.ts +7 -0
  443. package/dist/modes/interactive/interactive-child-ordering.d.ts.map +1 -0
  444. package/dist/modes/interactive/interactive-child-ordering.js +26 -0
  445. package/dist/modes/interactive/interactive-child-ordering.js.map +1 -0
  446. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  447. package/dist/modes/interactive/interactive-deferred-startup.js +43 -30
  448. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  449. package/dist/modes/interactive/interactive-hotkeys-debug.d.ts.map +1 -1
  450. package/dist/modes/interactive/interactive-hotkeys-debug.js +1 -0
  451. package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
  452. package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
  453. package/dist/modes/interactive/interactive-input-handling.js +41 -6
  454. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  455. package/dist/modes/interactive/interactive-mode-base.d.ts +3 -0
  456. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  457. package/dist/modes/interactive/interactive-mode-base.js +3 -0
  458. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  459. package/dist/modes/interactive/interactive-mode-deps.d.ts +2 -2
  460. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  461. package/dist/modes/interactive/interactive-mode-deps.js +2 -2
  462. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  463. package/dist/modes/interactive/interactive-mode-surface.d.ts +2 -2
  464. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  465. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  466. package/dist/modes/interactive/interactive-model-routing.d.ts.map +1 -1
  467. package/dist/modes/interactive/interactive-model-routing.js +11 -4
  468. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  469. package/dist/modes/interactive/interactive-process-lifecycle.d.ts.map +1 -1
  470. package/dist/modes/interactive/interactive-process-lifecycle.js +0 -3
  471. package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
  472. package/dist/modes/interactive/interactive-render-chat.d.ts.map +1 -1
  473. package/dist/modes/interactive/interactive-render-chat.js +15 -1
  474. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  475. package/dist/modes/interactive/interactive-session-routing.d.ts.map +1 -1
  476. package/dist/modes/interactive/interactive-session-routing.js +5 -1
  477. package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
  478. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  479. package/dist/modes/interactive/interactive-startup.js +20 -21
  480. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  481. package/dist/modes/interactive/theme/global-theme.d.ts.map +1 -1
  482. package/dist/modes/interactive/theme/global-theme.js +26 -2
  483. package/dist/modes/interactive/theme/global-theme.js.map +1 -1
  484. package/dist/modes/interactive/theme/theme-class.d.ts +1 -1
  485. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  486. package/dist/modes/interactive/theme/theme-class.js +2 -0
  487. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  488. package/dist/utils/clipboard-image.d.ts.map +1 -1
  489. package/dist/utils/clipboard-image.js +3 -0
  490. package/dist/utils/clipboard-image.js.map +1 -1
  491. package/dist/utils/fs-watch.d.ts +24 -1
  492. package/dist/utils/fs-watch.d.ts.map +1 -1
  493. package/dist/utils/fs-watch.js +60 -5
  494. package/dist/utils/fs-watch.js.map +1 -1
  495. package/docs/changelog.mdx +19 -0
  496. package/docs/compaction.md +60 -49
  497. package/docs/custom-provider.md +18 -5
  498. package/docs/development.md +4 -0
  499. package/docs/extensions.md +11 -2
  500. package/docs/json.md +1 -1
  501. package/docs/models.md +69 -10
  502. package/docs/providers.md +1 -1
  503. package/docs/quickstart.md +12 -8
  504. package/docs/rpc.md +2 -2
  505. package/docs/sdk.md +1 -1
  506. package/docs/settings.md +4 -4
  507. package/docs/subagents.md +40 -5
  508. package/docs/tools.md +1 -1
  509. package/docs/usage.md +4 -2
  510. package/docs/windows.md +4 -0
  511. package/docs/workflows.md +33 -48
  512. package/examples/extensions/preset.ts +2 -2
  513. package/examples/extensions/subagent/README.md +2 -2
  514. package/examples/extensions/subagent/index.ts +1 -2
  515. package/examples/extensions/subagent/schemas.ts +4 -1
  516. package/examples/sdk/12-full-control.ts +1 -1
  517. package/npm-shrinkwrap.json +48 -51
  518. package/package.json +7 -7
  519. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-behavior.ts +0 -75
  520. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-component.ts +0 -202
  521. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-edit.ts +0 -97
  522. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-editor.ts +0 -160
  523. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-frame.ts +0 -72
  524. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-modes.ts +0 -161
  525. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-selectors.ts +0 -203
  526. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-selectors.ts +0 -234
  527. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-state.ts +0 -103
  528. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-types.ts +0 -29
  529. package/dist/builtin/subagents/src/runs/foreground/chain-clarify.ts +0 -9
  530. package/dist/builtin/subagents/src/runs/foreground/chain-execution-clarify.ts +0 -117
@@ -5,7 +5,7 @@
5
5
  An open-source Atomic workflow extension: install it, author workflows in TypeScript, run them from chat.
6
6
  </p>
7
7
 
8
- Use workflows by default for non-trivial tasks, structured requests, and objectives with verifiable done criteria, including implementation, build, debugging, bug-fix, migration, new-feature, scoped multi-file, and validation-heavy docs/code work. Prompt language such as `do X until Y`, `repeat until`, `iterate until`, `review/fix until passing`, or `run checks and fix until green` is a strong signal to map the work to a workflow with an explicit stop condition rather than a direct chat turn.
8
+ Use the least orchestration that fits the user's intent: keep interactive/exploratory work inline, use bounded single/chain/parallel subagents while the parent remains in control, and use workflows for clearly delegated, well-defined autonomous jobs that are likely long-running/background-oriented or materially need durable stages, artifacts/checkpoints, resumability, HIL, gates, retries, or bounded loops. Multiple steps, files, tests, validation, or parallelism alone do not require a workflow. Loop or stop-condition requests such as `do X until Y`, `repeat until`, `iterate until`, `review/fix until passing`, `run checks and fix until green`, or `keep going until done` are key workflow signals when the user delegates execution because they already define control flow and a completion condition. When workflow execution fits, Atomic may always author a custom TypeScript `workflow({...})` inline with normal coding tools if that shape best achieves the task; it is not limited to installed workflows or direct modes. Named workflows can be builtin, project, user, or package supplied, and direct task/tasks/chain modes cover one-off tracked shapes.
9
9
 
10
10
  <p align="center">
11
11
  <a href="#authoring-api">Authoring API</a>
@@ -300,7 +300,7 @@ Worktree semantics:
300
300
  - Symlinked repo/worktree paths preserve their logical spelling in the default cwd, matching Codex-style worktree behavior.
301
301
  - Explicit `cwd` still wins. Relative `cwd` values are resolved against the worktree default cwd; absolute `cwd` values are used as provided.
302
302
 
303
- `worktree: true` is different: it creates temporary isolated worktrees for direct task/parallel/chain execution and cleans them up afterward. It is mutually exclusive with `gitWorktreeDir`, which is intended for named/reusable worktrees that remain available across retries.
303
+ `worktree: true` is different: it creates temporary isolated worktrees for direct task/parallel/chain execution and cleans them up afterward. It is mutually exclusive with `gitWorktreeDir`, which is intended for named/reusable worktrees that remain available across retries and `/workflow resume`. Durable resume records the original invocation cwd and resolved reusable-worktree metadata, then replays from that original repository context rather than whichever cwd the resumed interactive session currently has. Reusable worktree setup is cached within a workflow run, read-only Git repository probes retry a transient timeout once, and slow Git subprocess failures include the exact command, cwd, timeout, elapsed time, exit status/signal, and spawn error details.
304
304
 
305
305
  For advanced integrations, the SDK also exports `setupGitWorktree(options)`, which returns `{ worktreeRoot, cwd, repositoryRoot, created }` and uses the same validation/path behavior as the executor.
306
306
 
@@ -542,7 +542,7 @@ Tradeoff: `Type.Unsafe<T>()` does not deeply validate at runtime — it trusts t
542
542
 
543
543
  Input overrides are bare `key=value` tokens (no leading `--`). Values are JSON-parsed when possible, so numbers, booleans, and quoted strings work as expected (e.g. `count=3`, `flag=true`, `prompt="multi word value"`). A whole-object override can be passed as a single JSON token (e.g. `{"prompt":"...","count":3}`). Runtime validation is strict: unknown input keys, missing required values, type mismatches, and invalid `select` choices fail before a named workflow run starts.
544
544
 
545
- Workflows always run as **background tasks** in interactive sessions — the chat editor stays free while a run executes. Press **F2** (or `/workflow connect <run-id>`) to attach to the live graph viewer; HIL prompts (`ctx.ui.input/confirm/select/editor/custom`) appear as awaiting-input graph nodes. Press Enter on a focused node, or click a visible graph node directly, to open that stage and answer locally, never as a modal dialog over the chat. Attached stage chats capture mouse/trackpad wheel events by default so scrolling stays inside the active stage transcript or prompt instead of falling through to terminal/main-chat scrollback. Press `ctrl+t` to toggle **copy mode**: copy mode disables workflow-chat mouse reporting so normal terminal/tmux text selection can work; press `ctrl+t` again to leave copy mode and restore workflow-chat scrolling. While copy mode is on, wheel/trackpad gestures are handled by the terminal/tmux and may scroll terminal scrollback, so leave copy mode before using the wheel again. Human input is detected when those runtime `ctx.ui.*` calls execute; workflows no longer have a declaration-time HIL flag.
545
+ Workflows always run as **background tasks** in interactive sessions — the chat editor stays free while a run executes. Press **F2** (or `/workflow connect <run-id>`) to attach to the live graph viewer; HIL prompts (`ctx.ui.input/confirm/select/editor/custom`) appear as awaiting-input graph nodes. Press Enter on a focused node, or click a visible graph node directly, to open that stage and answer locally, never as a modal dialog over the chat. Attached stage chats capture mouse/trackpad wheel events by default so scrolling stays inside the active stage transcript or prompt instead of falling through to terminal/main-chat scrollback. Press `ctrl+t` to toggle **copy mode**: copy mode disables workflow-chat mouse reporting so normal terminal/tmux text selection can work; press `ctrl+t` again to leave copy mode and restore workflow-chat scrolling. Archived read-only stage transcripts show the same copy-mode footer/status, allowing their transcript text to be selected and copied while preserving `esc` close and `ctrl+d` graph navigation. While copy mode is on, wheel/trackpad gestures are handled by the terminal/tmux and may scroll terminal scrollback, so leave copy mode before using the wheel again. Human input is detected when those runtime `ctx.ui.*` calls execute; workflows no longer have a declaration-time HIL flag.
546
546
 
547
547
  Durable resume preserves the original completed-stage shape: replayed stage/task/parallel/child checkpoints retain summaries, durations, session/model metadata, and parallel branch parentage in the graph instead of flattening fanout branches into a sequential replay chain.
548
548
 
@@ -557,7 +557,7 @@ Prompt answer replay is live-memory only. `StageSnapshot.promptAnswerState` repo
557
557
  ```json
558
558
  {
559
559
  "name": "workflow",
560
- "description": "Run named workflows or direct one-off task/tasks/chain workflows; discover with list/get/inputs, inspect status/stages/stage details, send prompt answers or steering, pause/resume/interrupt/kill runs, and reload workflow resources. For large stage handoffs, write context to files/artifacts, pass paths via reads, and prompt downstream agents to 'Read the file at <path>...' instead of injecting large previous text. For transcripts, prefer status/stages/stage to get sessionFile/transcriptPath, quote the exact path without rewriting separators (Windows backslashes are valid), then search it with rg/grep and read small ranges; transcript is path-only by default when sessionFile/transcriptPath exists, explicit tail/limit returns bounded previews, and missing transcript paths fall back to a small preview.",
560
+ "description": "Run named builtin, project, user, or package workflows, or direct one-off task/tasks/chain workflows; when workflow execution fits but another shape would better achieve the task, author a custom TypeScript workflow({...}) inline with normal coding tools, reload it, and run it; discover with list/get/inputs, inspect status/stages/stage details, send prompt answers or steering, pause/resume/interrupt/kill runs, and reload workflow resources. For large stage handoffs, write context to files/artifacts, pass paths via reads, and prompt downstream agents to 'Read the file at <path>...' instead of injecting large previous text. For transcripts, prefer status/stages/stage to get sessionFile/transcriptPath, quote the exact path without rewriting separators (Windows backslashes are valid), then search it with rg/grep and read small ranges; transcript is path-only by default when sessionFile/transcriptPath exists, explicit tail/limit returns bounded previews, and missing transcript paths fall back to a small preview.",
561
561
  "parameters": {
562
562
  "workflow": "string (optional) — workflow ID or normalized name",
563
563
  "inputs": "object (optional) — key/value map of workflow inputs",
@@ -683,7 +683,7 @@ Child workflow outputs: `result`, `status`, `approved`, `goal_id`, `objective`,
683
683
 
684
684
  ### `ralph`
685
685
 
686
- Raw prompt → prompt-engineering research → orchestrate → review workflow with optional final-stage PR handoff: use the raw prompt as the operative objective, keep optional `acceptance_criteria` as the immutable original task contract (defaulting to `prompt`), transform the prompt into a codebase and online research question with `/skill:prompt-engineer`, run `/skill:research-codebase` against it, write findings under `research/`, delegate implementation through sub-agents from that research, run parallel reviewers across Claude Fable 5, GPT-5.5 Codex, and Gemini 3.1 Pro model families, and iterate until approval or the loop limit. Ralph's research, orchestrator, and reviewer prompts receive the objective next to the literal acceptance contract; when launching follow-up Ralph runs from reviewer findings, pass the ORIGINAL task text as `acceptance_criteria` so deltas cannot drift from the contract. Ralph's orchestrator and reviewers are prompted to verify user-visible behavior end-to-end when practical with `playwright-cli`-skilled subagents for web/frontend flows that may depend on backend/API behavior and tmux-skilled subagents for TUI or terminal-app scenarios. They must assume credentials/auth/environment access exists until concrete non-destructive checks plus an actual launch/flow attempt prove otherwise; skipped E2E is valid only when exact attempted commands and observed failure output are recorded. For UI-applicable or full-stack changes, the orchestrator runs a `playwright-cli` end-to-end QA pass and records a reviewable proof video, references it in the implementation notes, and exposes it as the `qa_video_path` output; reviewers receive that path and inspect the actual video before treating it as proof. Review decisions include `requirements_traceability`, a non-empty clause-by-clause map over every prompt/acceptance-criteria requirement, and Ralph approval requires every entry to be `proven`; worker-authored tests/snapshots passing are circular evidence unless tied to independent current-state proof. When `create_pr=true`, the final `pull-request` stage attaches or links that video to the created PR/MR/review. Follow-up iterations pass unresolved review artifacts into prompt-engineering/research and fork research from prior research session data when available. Ralph skips PR creation by default; prompt text alone does not opt in. Pass `create_pr=true` to authorize only the final `pull-request` stage to inspect provider credentials and attempt provider-appropriate PR/MR/review creation (for example GitHub `gh`, Azure Repos `az repos pr create`, or Sapling/Phabricator tooling). Ralph's own PR-creation instructions live in that final stage. Reviewers inspect repository infrastructure directly as needed; Ralph no longer runs separate `infra-*` discovery stages.
686
+ Raw prompt → prompt-engineering research → orchestrate → review workflow with optional final-stage PR handoff: use the raw prompt as the operative objective, keep optional `acceptance_criteria` as the immutable original task contract (defaulting to `prompt`), transform the prompt into a codebase and online research question with `/skill:prompt-engineer`, run `/skill:research-codebase` against it, write findings under `research/`, delegate implementation through sub-agents from that research, run parallel reviewers across Claude Fable 5 and GPT-5.5 Codex model families, and iterate until approval or the loop limit. Ralph's research, orchestrator, and reviewer prompts receive the objective next to the literal acceptance contract; when launching follow-up Ralph runs from reviewer findings, pass the ORIGINAL task text as `acceptance_criteria` so deltas cannot drift from the contract. Ralph's orchestrator and reviewers are prompted to verify user-visible behavior end-to-end when practical with `playwright-cli`-skilled subagents for web/frontend flows that may depend on backend/API behavior and tmux-skilled subagents for TUI or terminal-app scenarios. They must assume credentials/auth/environment access exists until concrete non-destructive checks plus an actual launch/flow attempt prove otherwise; skipped E2E is valid only when exact attempted commands and observed failure output are recorded. For UI-applicable or full-stack changes, the orchestrator runs a `playwright-cli` end-to-end QA pass and records a reviewable proof video, references it in the implementation notes, and exposes it as the `qa_video_path` output; reviewers receive that path and inspect the actual video before treating it as proof. Review decisions include `requirements_traceability`, a non-empty clause-by-clause map over every prompt/acceptance-criteria requirement, and Ralph approval requires every entry to be `proven`; worker-authored tests/snapshots passing are circular evidence unless tied to independent current-state proof. When `create_pr=true`, the final `pull-request` stage attaches or links that video to the created PR/MR/review. Follow-up iterations pass unresolved review artifacts into prompt-engineering/research and fork research from prior research session data when available. Ralph skips PR creation by default; prompt text alone does not opt in. Pass `create_pr=true` to authorize only the final `pull-request` stage to inspect provider credentials and attempt provider-appropriate PR/MR/review creation (for example GitHub `gh`, Azure Repos `az repos pr create`, or Sapling/Phabricator tooling). Ralph's own PR-creation instructions live in that final stage. Reviewers inspect repository infrastructure directly as needed; Ralph no longer runs separate `infra-*` discovery stages.
687
687
 
688
688
  ```text
689
689
  /workflow ralph prompt="Migrate the database layer to Drizzle ORM" max_loops=3 base_branch=develop
@@ -37,18 +37,29 @@ export const FILE_ONLY_OUTPUT = "file-only" satisfies WorkflowOutputMode;
37
37
  export const PLANNER_MODEL_CONFIG = {
38
38
  model: "anthropic/claude-fable-5:high",
39
39
  fallbackModels: [
40
+ "openai-codex/gpt-5.6-sol:xhigh",
41
+ "github-copilot/gpt-5.6-sol:xhigh",
42
+ "openai/gpt-5.6-sol:xhigh",
40
43
  "openai-codex/gpt-5.5:xhigh",
41
44
  "github-copilot/gpt-5.5:xhigh",
42
45
  "openai/gpt-5.5:xhigh",
43
46
  "github-copilot/claude-opus-4.8 (1m):high",
44
47
  "anthropic/claude-opus-4-8:high",
48
+ "cursor/claude-fable-5:high",
49
+ "cursor/gpt-5.6-sol:xhigh",
50
+ "cursor/gpt-5.5:high",
51
+ "cursor/claude-opus-4-8-thinking:high",
52
+ "cursor/grok-4.5",
45
53
  "zai/glm-5.2:xhigh",
46
54
  "zai-coding-cn/glm-5.2:xhigh",
55
+ "cursor/glm-5.2",
47
56
  "openrouter/anthropic/claude-fable-5:high",
57
+ "openrouter/openai/gpt-5.6-sol:xhigh",
48
58
  "openrouter/sakana/fugu-ultra:high",
49
59
  "openrouter/openai/gpt-5.5:xhigh",
50
60
  "openrouter/anthropic/claude-opus-4-8:high",
51
- "openrouter/z-ai/glm-5.2:xhigh"
61
+ "openrouter/x-ai/grok-4.5",
62
+ "openrouter/z-ai/glm-5.2:xhigh",
52
63
  ],
53
64
  excludedTools: ["ask_user_question"],
54
65
  } as const;
@@ -58,16 +69,26 @@ export const PLANNER_MODEL_CONFIG = {
58
69
  // and glm-5.2:high (36%/$2.84) back it up; unbenchmarked minis/haiku/flash
59
70
  // are excluded.
60
71
  export const EXPLORER_MODEL_CONFIG = {
61
- model: "openai-codex/gpt-5.5:low",
72
+ model: "openai-codex/gpt-5.6-terra:high",
62
73
  fallbackModels: [
74
+ "github-copilot/gpt-5.6-terra:high",
75
+ "openai/gpt-5.6-terra:high",
76
+ "openai-codex/gpt-5.5:low",
63
77
  "github-copilot/gpt-5.5:low",
64
78
  "openai/gpt-5.5:low",
65
79
  "github-copilot/claude-opus-4.8 (1m):low",
66
80
  "anthropic/claude-opus-4-8:low",
81
+ "cursor/gpt-5.6-terra:high",
82
+ "cursor/gpt-5.5:low",
83
+ "cursor/claude-opus-4-8-thinking:low",
84
+ "cursor/grok-4.5",
67
85
  "zai/glm-5.2:high",
68
86
  "zai-coding-cn/glm-5.2:high",
87
+ "cursor/glm-5.2",
88
+ "openrouter/openai/gpt-5.6-terra:high",
69
89
  "openrouter/openai/gpt-5.5:low",
70
90
  "openrouter/anthropic/claude-opus-4-8:low",
91
+ "openrouter/x-ai/grok-4.5",
71
92
  "openrouter/z-ai/glm-5.2:xhigh",
72
93
  ],
73
94
  excludedTools: ["ask_user_question"],
@@ -92,7 +113,10 @@ export function taggedPrompt(sections: readonly PromptSection[]): string {
92
113
  .join("\n\n");
93
114
  }
94
115
 
95
- export function positiveInteger(value: number | undefined, fallback: number): number {
116
+ export function positiveInteger(
117
+ value: number | undefined,
118
+ fallback: number,
119
+ ): number {
96
120
  return typeof value === "number" && Number.isFinite(value) && value > 0
97
121
  ? Math.floor(value)
98
122
  : fallback;
@@ -351,4 +375,3 @@ export function displayRelativePath(path: string, fromCwd: string): string {
351
375
  }
352
376
  return displayPath(path);
353
377
  }
354
-
@@ -8,6 +8,7 @@ import {
8
8
  type GoalWorkflowInputs,
9
9
  type GoalWorkflowOutputs,
10
10
  type ReviewRecord,
11
+ type ReducerDecision,
11
12
  } from "./goal-types.js";
12
13
  import { artifactSafeName, writeReviewArtifact, writeReviewRoundArtifact } from "./goal-artifacts.js";
13
14
  import { appendLifecycleEvent, createGoalLedger, writeGoalLedger } from "./goal-ledger.js";
@@ -75,6 +76,27 @@ type GoalWorkflowOptions = {
75
76
  readonly workflowStartCwd: string;
76
77
  };
77
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
+
78
100
  export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkflowOptions): Promise<GoalWorkflowOutputs> {
79
101
  const inputs = ctx.inputs;
80
102
  const createPr = options.createPr;
@@ -92,22 +114,32 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
92
114
  const comparisonBaseBranch = normalizeBranchInput(inputs.base_branch, "origin/main");
93
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
144
  excludedTools: ["ask_user_question"],
113
145
  };
@@ -115,18 +147,29 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
115
147
  const reviewerModelConfig = {
116
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:high",
126
- "openrouter/sakana/fugu-ultra:high",
127
- "openrouter/openai/gpt-5.5:xhigh",
128
- "openrouter/anthropic/claude-opus-4-8:high",
129
- "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"
130
173
  ],
131
174
  excludedTools: ["ask_user_question"],
132
175
  schema: reviewDecisionSchema,
@@ -255,12 +298,14 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
255
298
  ];
256
299
 
257
300
  let reviewResults: WorkflowTaskResult[];
301
+ let reviewerBatchFailed = false;
258
302
  try {
259
303
  reviewResults = await ctx.parallel(reviewerSteps, {
260
304
  task: objective,
261
- failFast: false,
305
+ failFast: true,
262
306
  });
263
307
  } catch (err) {
308
+ reviewerBatchFailed = true;
264
309
  reviewResults = [
265
310
  {
266
311
  name: "reviewer-error",
@@ -308,6 +353,20 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
308
353
  `Recorded ${latestReviews.length} reviewer decisions.`,
309
354
  turn,
310
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
+ }
311
370
 
312
371
  const reducerOutcome = reduceGoalDecision(ledger, latestReviews, {
313
372
  turn,
@@ -82,11 +82,21 @@ export async function runOpenClaudeDesignWorkflow(ctx: OpenClaudeDesignContext):
82
82
  fallbackModels: [
83
83
  "github-copilot/claude-opus-4.8 (1m):high",
84
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",
94
+ "cursor/glm-5.2",
87
95
  "openrouter/anthropic/claude-fable-5:high",
88
96
  "openrouter/anthropic/claude-opus-4-8:high",
97
+ "openrouter/openai/gpt-5.6-sol:xhigh",
89
98
  "openrouter/sakana/fugu-ultra:high",
99
+ "openrouter/x-ai/grok-4.5",
90
100
  "openrouter/z-ai/glm-5.2:xhigh"
91
101
  ],
92
102
  };
@@ -21,15 +21,15 @@ const DEFAULT_RESEARCH_DIR = "research";
21
21
  const IMPLEMENTATION_NOTES_FILENAME = "implementation-notes.md";
22
22
  const QA_E2E_VIDEO_FILENAME = "qa-e2e-evidence.webm";
23
23
  const MAX_RESEARCH_SLUG_LENGTH = 80;
24
- // Reviewer fan-out launches three independent reviewers; the loop stops only when
25
- // all three reviewers independently approve. Approval is severity-aware: a
26
- // reviewer approves when it judged the patch correct, reported no reviewer_error,
27
- // 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
28
28
  // loop iterating, so a single low-priority nit (or a placeholder finding) can no
29
29
  // longer strand an otherwise-approved patch. Requiring unanimous approval still
30
- // 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
31
31
  // ./ralph-review-gate.ts for the gate types and decision logic.
32
- export const REVIEWER_COUNT = 3;
32
+ export const REVIEWER_COUNT = 2;
33
33
 
34
34
  const reviewFindingSchema = Type.Object(
35
35
  {
@@ -434,10 +434,10 @@ export function renderForkedOrchestratorPrompt(args: {
434
434
  [
435
435
  "output_format",
436
436
  [
437
- "After subagents have done the work, return Markdown with headings:",
437
+ "After the implementation work is complete, return Markdown with headings:",
438
438
  "1. Research file — the path you read",
439
- "2. Delegations performed — subagents spawned and what each completed",
440
- "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",
441
441
  "4. Files touched",
442
442
  "5. Validation run / recommended",
443
443
  "6. Deferred work or blockers",
@@ -5,9 +5,8 @@ import { reviewDecisionSchema } from "./ralph-core.js";
5
5
  // - Critical synthesis/review stages prefer fable-5:xhigh, then gpt-5.5 xhigh
6
6
  // variants, openrouter fugu-ultra, long-context opus, and GLM fallbacks.
7
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;
9
- // reviewer C leads with GLM-5.2 xhigh, with openrouter fugu-ultra retained
10
- // mid-chain, to decorrelate review errors.
8
+ // - Reviewer B keeps gpt-5.5:xhigh as an independent frontier family to
9
+ // decorrelate review errors from reviewer A.
11
10
  // - Dominated benchmark models stay out of the chains: claude-sonnet-5,
12
11
  // claude-sonnet-4.6, gemini-3.1-pro, and gemini-3.5-flash.
13
12
  // - GLM-5.2 has only two real reasoning tiers — its thinkingLevelMap collapses
@@ -18,54 +17,87 @@ import { reviewDecisionSchema } from "./ralph-core.js";
18
17
  export const promptEngineerModelConfig = {
19
18
  model: "anthropic/claude-fable-5:high",
20
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",
21
23
  "openai-codex/gpt-5.5:xhigh",
22
24
  "github-copilot/gpt-5.5:xhigh",
23
25
  "openai/gpt-5.5:xhigh",
24
26
  "github-copilot/claude-opus-4.8 (1m):high",
25
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",
26
33
  "zai/glm-5.2:xhigh",
27
34
  "zai-coding-cn/glm-5.2:xhigh",
35
+ "cursor/glm-5.2",
28
36
  "openrouter/anthropic/claude-fable-5:high",
37
+ "openrouter/openai/gpt-5.6-sol:xhigh",
29
38
  "openrouter/sakana/fugu-ultra:high",
30
39
  "openrouter/openai/gpt-5.5:xhigh",
31
40
  "openrouter/anthropic/claude-opus-4-8:high",
41
+ "openrouter/x-ai/grok-4.5",
32
42
  "openrouter/z-ai/glm-5.2:xhigh"
33
43
  ],
34
44
  excludedTools: ["ask_user_question"],
35
45
  };
36
46
 
37
47
  export const researchModelConfig = {
38
- model: "openai-codex/gpt-5.5:medium",
48
+ model: "openai-codex/gpt-5.6-sol:medium",
39
49
  fallbackModels: [
40
- "github-copilot/gpt-5.5:medium",
41
- "openai/gpt-5.5:medium",
42
- "anthropic/claude-fable-5:low",
43
- "github-copilot/claude-opus-4.8 (1m):medium",
44
- "anthropic/claude-opus-4-8:medium",
45
- "zai/glm-5.2:high",
46
- "zai-coding-cn/glm-5.2:high",
47
- "openrouter/openai/gpt-5.5:medium",
48
- "openrouter/anthropic/claude-fable-5:low",
49
- "openrouter/anthropic/claude-opus-4-8:medium",
50
- "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"
51
72
  ],
52
73
  excludedTools: ["ask_user_question"],
53
74
  };
54
75
 
55
76
  export const orchestratorModelConfig = {
56
- model: "anthropic/claude-fable-5:high",
77
+ model: "openai-codex/gpt-5.6-sol:xhigh",
57
78
  fallbackModels: [
79
+ "github-copilot/gpt-5.6-sol:xhigh",
80
+ "openai/gpt-5.6-sol:xhigh",
81
+ "anthropic/claude-fable-5:high",
58
82
  "openai-codex/gpt-5.5:xhigh",
59
83
  "github-copilot/gpt-5.5:xhigh",
60
84
  "openai/gpt-5.5:xhigh",
61
85
  "github-copilot/claude-opus-4.8 (1m):high",
62
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",
63
92
  "zai/glm-5.2:xhigh",
64
93
  "zai-coding-cn/glm-5.2:xhigh",
94
+ "cursor/glm-5.2",
95
+ "openrouter/openai/gpt-5.6-sol:xhigh",
65
96
  "openrouter/anthropic/claude-fable-5:high",
66
97
  "openrouter/sakana/fugu-ultra:high",
67
98
  "openrouter/openai/gpt-5.5:xhigh",
68
99
  "openrouter/anthropic/claude-opus-4-8:high",
100
+ "openrouter/x-ai/grok-4.5",
69
101
  "openrouter/z-ai/glm-5.2:xhigh"
70
102
  ],
71
103
  excludedTools: ["ask_user_question"],
@@ -74,17 +106,28 @@ export const orchestratorModelConfig = {
74
106
  export const reviewerAModelConfig = {
75
107
  model: "anthropic/claude-fable-5:high",
76
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",
77
112
  "openai-codex/gpt-5.5:xhigh",
78
113
  "github-copilot/gpt-5.5:xhigh",
79
114
  "openai/gpt-5.5:xhigh",
80
115
  "github-copilot/claude-opus-4.8 (1m):high",
81
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",
82
122
  "zai/glm-5.2:xhigh",
83
123
  "zai-coding-cn/glm-5.2:xhigh",
124
+ "cursor/glm-5.2",
84
125
  "openrouter/anthropic/claude-fable-5:high",
126
+ "openrouter/openai/gpt-5.6-sol:max",
85
127
  "openrouter/sakana/fugu-ultra:high",
86
128
  "openrouter/openai/gpt-5.5:xhigh",
87
129
  "openrouter/anthropic/claude-opus-4-8:high",
130
+ "openrouter/x-ai/grok-4.5",
88
131
  "openrouter/z-ai/glm-5.2:xhigh"
89
132
  ],
90
133
  excludedTools: ["ask_user_question"],
@@ -92,41 +135,33 @@ export const reviewerAModelConfig = {
92
135
  };
93
136
 
94
137
  export const reviewerBModelConfig = {
95
- model: "openai-codex/gpt-5.5:xhigh",
138
+ model: "openai-codex/gpt-5.6-sol:max",
96
139
  fallbackModels: [
140
+ "github-copilot/gpt-5.6-sol:max",
141
+ "openai/gpt-5.6-sol:max",
142
+ "openai-codex/gpt-5.5:xhigh",
97
143
  "github-copilot/gpt-5.5:xhigh",
98
144
  "openai/gpt-5.5:xhigh",
99
145
  "anthropic/claude-fable-5:high",
100
146
  "github-copilot/claude-opus-4.8 (1m):high",
101
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",
102
153
  "zai/glm-5.2:xhigh",
103
154
  "zai-coding-cn/glm-5.2:xhigh",
155
+ "cursor/glm-5.2",
156
+ "openrouter/openai/gpt-5.6-sol:max",
104
157
  "openrouter/openai/gpt-5.5:xhigh",
105
158
  "openrouter/anthropic/claude-fable-5:high",
106
159
  "openrouter/sakana/fugu-ultra:high",
107
160
  "openrouter/anthropic/claude-opus-4-8:high",
161
+ "openrouter/x-ai/grok-4.5",
108
162
  "openrouter/z-ai/glm-5.2:xhigh"
109
163
  ],
110
164
  excludedTools: ["ask_user_question"],
111
165
  schema: reviewDecisionSchema,
112
166
  };
113
167
 
114
- export const reviewerCModelConfig = {
115
- model: "zai/glm-5.2:xhigh",
116
- fallbackModels: [
117
- "zai-coding-cn/glm-5.2:xhigh",
118
- "openai-codex/gpt-5.5:xhigh",
119
- "github-copilot/gpt-5.5:xhigh",
120
- "openai/gpt-5.5:xhigh",
121
- "anthropic/claude-fable-5:high",
122
- "github-copilot/claude-opus-4.8 (1m):high",
123
- "anthropic/claude-opus-4-8:high",
124
- "openrouter/sakana/fugu-ultra:high",
125
- "openrouter/z-ai/glm-5.2:xhigh",
126
- "openrouter/openai/gpt-5.5:xhigh",
127
- "openrouter/anthropic/claude-fable-5:high",
128
- "openrouter/anthropic/claude-opus-4-8:high"
129
- ],
130
- excludedTools: ["ask_user_question"],
131
- schema: reviewDecisionSchema,
132
- };