@bastani/atomic 0.9.5-alpha.9 → 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 (377) hide show
  1. package/CHANGELOG.md +106 -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 +27 -0
  27. package/dist/builtin/mcp/OAUTH.md +1 -0
  28. package/dist/builtin/mcp/README.md +4 -0
  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 +6 -239
  35. package/dist/builtin/mcp/host-html-template.ts +4 -2
  36. package/dist/builtin/mcp/index.ts +258 -250
  37. package/dist/builtin/mcp/init.ts +96 -87
  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 +21 -6
  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 +49 -19
  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/state-lease.ts +12 -0
  50. package/dist/builtin/mcp/ui-server.ts +8 -8
  51. package/dist/builtin/mcp/ui-session.ts +9 -18
  52. package/dist/builtin/subagents/CHANGELOG.md +66 -0
  53. package/dist/builtin/subagents/README.md +30 -29
  54. package/dist/builtin/subagents/agents/code-simplifier.md +2 -2
  55. package/dist/builtin/subagents/agents/codebase-analyzer.md +2 -2
  56. package/dist/builtin/subagents/agents/codebase-locator.md +2 -2
  57. package/dist/builtin/subagents/agents/codebase-online-researcher.md +2 -2
  58. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +2 -2
  59. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +2 -2
  60. package/dist/builtin/subagents/agents/codebase-research-locator.md +2 -2
  61. package/dist/builtin/subagents/agents/debugger.md +2 -2
  62. package/dist/builtin/subagents/agents/worker.md +2 -2
  63. package/dist/builtin/subagents/package.json +5 -5
  64. package/dist/builtin/subagents/prompts/review-loop.md +1 -1
  65. package/dist/builtin/subagents/skills/subagent/SKILL.md +37 -36
  66. package/dist/builtin/subagents/src/extension/api-lifecycle.ts +64 -0
  67. package/dist/builtin/subagents/src/extension/fanout-child.ts +44 -51
  68. package/dist/builtin/subagents/src/extension/index.ts +287 -307
  69. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +7 -10
  70. package/dist/builtin/subagents/src/extension/schemas.ts +22 -5
  71. package/dist/builtin/subagents/src/extension/tool-description.ts +29 -0
  72. package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +13 -2
  73. package/dist/builtin/subagents/src/intercom/result-intercom.ts +4 -4
  74. package/dist/builtin/subagents/src/runs/background/async-event-journal.ts +106 -0
  75. package/dist/builtin/subagents/src/runs/background/async-execution-common.ts +3 -2
  76. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +13 -2
  77. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +3 -0
  78. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +1 -1
  79. package/dist/builtin/subagents/src/runs/background/completion-claims.ts +189 -0
  80. package/dist/builtin/subagents/src/runs/background/completion-dedupe.ts +44 -7
  81. package/dist/builtin/subagents/src/runs/background/completion-notification.ts +34 -0
  82. package/dist/builtin/subagents/src/runs/background/notify.ts +72 -22
  83. package/dist/builtin/subagents/src/runs/background/result-delivery-processor.ts +232 -0
  84. package/dist/builtin/subagents/src/runs/background/result-file-claims.ts +151 -0
  85. package/dist/builtin/subagents/src/runs/background/result-quarantine.ts +72 -0
  86. package/dist/builtin/subagents/src/runs/background/result-retry-scheduler.ts +48 -0
  87. package/dist/builtin/subagents/src/runs/background/result-status.ts +81 -0
  88. package/dist/builtin/subagents/src/runs/background/result-watcher-data.ts +59 -0
  89. package/dist/builtin/subagents/src/runs/background/result-watcher.ts +172 -238
  90. package/dist/builtin/subagents/src/runs/background/run-id-resolver.ts +3 -2
  91. package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +73 -14
  92. package/dist/builtin/subagents/src/runs/background/subagent-runner-streaming.ts +17 -13
  93. package/dist/builtin/subagents/src/runs/background/top-level-async.ts +1 -2
  94. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +1 -0
  95. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +1 -0
  96. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +1 -0
  97. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +7 -9
  98. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +3 -13
  99. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +2 -15
  100. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-finalize.ts +2 -2
  101. package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +53 -44
  102. package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +48 -0
  103. package/dist/builtin/subagents/src/runs/foreground/execution-detach-route.ts +17 -0
  104. package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +39 -26
  105. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +3 -1
  106. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +3 -51
  107. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +6 -11
  108. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +11 -2
  109. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +2 -0
  110. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +5 -112
  111. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +2 -0
  112. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +68 -118
  113. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +79 -7
  114. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +2 -2
  115. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +3 -0
  116. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +2 -2
  117. package/dist/builtin/subagents/src/runs/shared/pi-spawn.ts +27 -11
  118. package/dist/builtin/subagents/src/shared/artifacts.ts +22 -11
  119. package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +294 -0
  120. package/dist/builtin/subagents/src/shared/exclusive-file-publication.ts +44 -0
  121. package/dist/builtin/subagents/src/shared/jsonl-writer.ts +1 -0
  122. package/dist/builtin/subagents/src/shared/model-info.ts +2 -2
  123. package/dist/builtin/subagents/src/shared/settings.ts +20 -10
  124. package/dist/builtin/subagents/src/shared/types-async.ts +3 -1
  125. package/dist/builtin/subagents/src/shared/types-config.ts +2 -0
  126. package/dist/builtin/subagents/src/shared/types-runtime.ts +3 -2
  127. package/dist/builtin/subagents/src/slash/slash-commands.ts +9 -12
  128. package/dist/builtin/subagents/src/slash/slash-live-state.ts +63 -32
  129. package/dist/builtin/subagents/src/tui/render-result.ts +7 -0
  130. package/dist/builtin/subagents/src/tui/render-stable-output.ts +1 -0
  131. package/dist/builtin/subagents/src/tui/render-widget.ts +128 -89
  132. package/dist/builtin/web-access/CHANGELOG.md +28 -0
  133. package/dist/builtin/web-access/README.md +4 -0
  134. package/dist/builtin/web-access/content-tools.ts +8 -3
  135. package/dist/builtin/web-access/index-heavy.ts +1 -1
  136. package/dist/builtin/web-access/index.ts +190 -46
  137. package/dist/builtin/web-access/lifecycle-lease.ts +38 -0
  138. package/dist/builtin/web-access/package.json +2 -2
  139. package/dist/builtin/web-access/result-renderers.ts +1 -1
  140. package/dist/builtin/web-access/summary-review.ts +1 -1
  141. package/dist/builtin/web-access/web-search-activity.ts +1 -1
  142. package/dist/builtin/web-access/web-search-return.ts +7 -0
  143. package/dist/builtin/web-access/web-search-summary.ts +1 -1
  144. package/dist/builtin/web-access/web-search-tool.ts +4 -2
  145. package/dist/builtin/workflows/CHANGELOG.md +68 -0
  146. package/dist/builtin/workflows/README.md +4 -4
  147. package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +27 -4
  148. package/dist/builtin/workflows/builtin/goal-runner.ts +47 -26
  149. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +10 -0
  150. package/dist/builtin/workflows/builtin/ralph-core.ts +9 -9
  151. package/dist/builtin/workflows/builtin/ralph-models.ts +71 -36
  152. package/dist/builtin/workflows/builtin/ralph-runner.ts +20 -31
  153. package/dist/builtin/workflows/package.json +2 -2
  154. package/dist/builtin/workflows/src/durable/stage-primitive.ts +2 -1
  155. package/dist/builtin/workflows/src/engine/primitives/task.ts +2 -1
  156. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +17 -22
  157. package/dist/builtin/workflows/src/extension/workflow-schema.ts +15 -2
  158. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +1 -2
  159. package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +1 -1
  160. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +2 -2
  161. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +2 -2
  162. package/dist/builtin/workflows/src/shared/resume-continuation.ts +2 -0
  163. package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +1 -23
  164. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +54 -9
  165. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +5 -2
  166. package/dist/cli/args.d.ts.map +1 -1
  167. package/dist/cli/args.js +2 -2
  168. package/dist/cli/args.js.map +1 -1
  169. package/dist/core/agent-session-events.d.ts.map +1 -1
  170. package/dist/core/agent-session-events.js +2 -1
  171. package/dist/core/agent-session-events.js.map +1 -1
  172. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  173. package/dist/core/agent-session-message-queue.js +1 -1
  174. package/dist/core/agent-session-message-queue.js.map +1 -1
  175. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  176. package/dist/core/agent-session-prompt.js +1 -1
  177. package/dist/core/agent-session-prompt.js.map +1 -1
  178. package/dist/core/agent-session-retry.d.ts.map +1 -1
  179. package/dist/core/agent-session-retry.js +1 -1
  180. package/dist/core/agent-session-retry.js.map +1 -1
  181. package/dist/core/agent-session-services.d.ts.map +1 -1
  182. package/dist/core/agent-session-services.js +3 -2
  183. package/dist/core/agent-session-services.js.map +1 -1
  184. package/dist/core/agent-session-types.d.ts.map +1 -1
  185. package/dist/core/agent-session-types.js +1 -1
  186. package/dist/core/agent-session-types.js.map +1 -1
  187. package/dist/core/anthropic-thinking-guard.d.ts +5 -5
  188. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  189. package/dist/core/anthropic-thinking-guard.js +42 -32
  190. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  191. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  192. package/dist/core/atomic-guide-command.js +15 -15
  193. package/dist/core/atomic-guide-command.js.map +1 -1
  194. package/dist/core/auth-storage.d.ts.map +1 -1
  195. package/dist/core/auth-storage.js +14 -9
  196. package/dist/core/auth-storage.js.map +1 -1
  197. package/dist/core/compaction/compaction.d.ts +2 -0
  198. package/dist/core/compaction/compaction.d.ts.map +1 -1
  199. package/dist/core/compaction/compaction.js +79 -46
  200. package/dist/core/compaction/compaction.js.map +1 -1
  201. package/dist/core/compaction/context-assistant-turns.d.ts +42 -0
  202. package/dist/core/compaction/context-assistant-turns.d.ts.map +1 -0
  203. package/dist/core/compaction/context-assistant-turns.js +87 -0
  204. package/dist/core/compaction/context-assistant-turns.js.map +1 -0
  205. package/dist/core/compaction/context-compaction-critical.d.ts +1 -1
  206. package/dist/core/compaction/context-compaction-critical.d.ts.map +1 -1
  207. package/dist/core/compaction/context-compaction-critical.js +2 -2
  208. package/dist/core/compaction/context-compaction-critical.js.map +1 -1
  209. package/dist/core/compaction/context-compaction-eviction-alternates.d.ts +18 -0
  210. package/dist/core/compaction/context-compaction-eviction-alternates.d.ts.map +1 -0
  211. package/dist/core/compaction/context-compaction-eviction-alternates.js +186 -0
  212. package/dist/core/compaction/context-compaction-eviction-alternates.js.map +1 -0
  213. package/dist/core/compaction/context-compaction-eviction.d.ts +10 -2
  214. package/dist/core/compaction/context-compaction-eviction.d.ts.map +1 -1
  215. package/dist/core/compaction/context-compaction-eviction.js +196 -146
  216. package/dist/core/compaction/context-compaction-eviction.js.map +1 -1
  217. package/dist/core/compaction/context-compaction-prompt.d.ts.map +1 -1
  218. package/dist/core/compaction/context-compaction-prompt.js +1 -1
  219. package/dist/core/compaction/context-compaction-prompt.js.map +1 -1
  220. package/dist/core/compaction/context-compaction-types.d.ts +2 -0
  221. package/dist/core/compaction/context-compaction-types.d.ts.map +1 -1
  222. package/dist/core/compaction/context-compaction-types.js.map +1 -1
  223. package/dist/core/compaction/context-deletion-application.d.ts +5 -4
  224. package/dist/core/compaction/context-deletion-application.d.ts.map +1 -1
  225. package/dist/core/compaction/context-deletion-application.js +17 -15
  226. package/dist/core/compaction/context-deletion-application.js.map +1 -1
  227. package/dist/core/compaction/context-deletion-store.d.ts.map +1 -1
  228. package/dist/core/compaction/context-deletion-store.js +1 -1
  229. package/dist/core/compaction/context-deletion-store.js.map +1 -1
  230. package/dist/core/compaction/context-deletion-targets.d.ts +2 -1
  231. package/dist/core/compaction/context-deletion-targets.d.ts.map +1 -1
  232. package/dist/core/compaction/context-deletion-targets.js +36 -31
  233. package/dist/core/compaction/context-deletion-targets.js.map +1 -1
  234. package/dist/core/compaction/context-deletion-tool-helpers.d.ts.map +1 -1
  235. package/dist/core/compaction/context-deletion-tool-helpers.js +116 -43
  236. package/dist/core/compaction/context-deletion-tool-helpers.js.map +1 -1
  237. package/dist/core/compaction/context-transcript-analysis.d.ts +1 -2
  238. package/dist/core/compaction/context-transcript-analysis.d.ts.map +1 -1
  239. package/dist/core/compaction/context-transcript-analysis.js +33 -37
  240. package/dist/core/compaction/context-transcript-analysis.js.map +1 -1
  241. package/dist/core/copilot-model-synthesis.d.ts.map +1 -1
  242. package/dist/core/copilot-model-synthesis.js +3 -1
  243. package/dist/core/copilot-model-synthesis.js.map +1 -1
  244. package/dist/core/extensions/provider-types.d.ts +2 -7
  245. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  246. package/dist/core/extensions/provider-types.js.map +1 -1
  247. package/dist/core/messages.d.ts +9 -0
  248. package/dist/core/messages.d.ts.map +1 -1
  249. package/dist/core/messages.js +100 -18
  250. package/dist/core/messages.js.map +1 -1
  251. package/dist/core/model-registry-builtins.d.ts.map +1 -1
  252. package/dist/core/model-registry-builtins.js +5 -0
  253. package/dist/core/model-registry-builtins.js.map +1 -1
  254. package/dist/core/model-registry-custom-loader.d.ts.map +1 -1
  255. package/dist/core/model-registry-custom-loader.js +49 -8
  256. package/dist/core/model-registry-custom-loader.js.map +1 -1
  257. package/dist/core/model-registry-dynamic.d.ts.map +1 -1
  258. package/dist/core/model-registry-dynamic.js +11 -5
  259. package/dist/core/model-registry-dynamic.js.map +1 -1
  260. package/dist/core/model-registry-loader.d.ts.map +1 -1
  261. package/dist/core/model-registry-loader.js +8 -0
  262. package/dist/core/model-registry-loader.js.map +1 -1
  263. package/dist/core/model-registry-schemas.d.ts +93 -8
  264. package/dist/core/model-registry-schemas.d.ts.map +1 -1
  265. package/dist/core/model-registry-schemas.js +24 -12
  266. package/dist/core/model-registry-schemas.js.map +1 -1
  267. package/dist/core/model-registry-types.d.ts +7 -6
  268. package/dist/core/model-registry-types.d.ts.map +1 -1
  269. package/dist/core/model-registry-types.js.map +1 -1
  270. package/dist/core/model-registry.d.ts +5 -0
  271. package/dist/core/model-registry.d.ts.map +1 -1
  272. package/dist/core/model-registry.js +23 -0
  273. package/dist/core/model-registry.js.map +1 -1
  274. package/dist/core/model-resolver-cli.d.ts.map +1 -1
  275. package/dist/core/model-resolver-cli.js +33 -5
  276. package/dist/core/model-resolver-cli.js.map +1 -1
  277. package/dist/core/model-resolver-initial.d.ts +6 -1
  278. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  279. package/dist/core/model-resolver-initial.js +12 -7
  280. package/dist/core/model-resolver-initial.js.map +1 -1
  281. package/dist/core/model-resolver.d.ts +1 -1
  282. package/dist/core/model-resolver.d.ts.map +1 -1
  283. package/dist/core/model-resolver.js +1 -1
  284. package/dist/core/model-resolver.js.map +1 -1
  285. package/dist/core/resource-loader-context-files.d.ts +1 -0
  286. package/dist/core/resource-loader-context-files.d.ts.map +1 -1
  287. package/dist/core/resource-loader-context-files.js +13 -10
  288. package/dist/core/resource-loader-context-files.js.map +1 -1
  289. package/dist/core/sdk.d.ts.map +1 -1
  290. package/dist/core/sdk.js +2 -2
  291. package/dist/core/sdk.js.map +1 -1
  292. package/dist/core/session-entry-normalization.d.ts +7 -0
  293. package/dist/core/session-entry-normalization.d.ts.map +1 -0
  294. package/dist/core/session-entry-normalization.js +14 -0
  295. package/dist/core/session-entry-normalization.js.map +1 -0
  296. package/dist/core/session-manager-core.d.ts.map +1 -1
  297. package/dist/core/session-manager-core.js +1 -0
  298. package/dist/core/session-manager-core.js.map +1 -1
  299. package/dist/core/session-manager-history.d.ts +2 -2
  300. package/dist/core/session-manager-history.d.ts.map +1 -1
  301. package/dist/core/session-manager-history.js +127 -108
  302. package/dist/core/session-manager-history.js.map +1 -1
  303. package/dist/core/settings-manager-basic-accessors.d.ts +2 -2
  304. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  305. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  306. package/dist/core/settings-types.d.ts +1 -1
  307. package/dist/core/settings-types.d.ts.map +1 -1
  308. package/dist/core/settings-types.js.map +1 -1
  309. package/dist/core/tools/bash.d.ts.map +1 -1
  310. package/dist/core/tools/bash.js +11 -8
  311. package/dist/core/tools/bash.js.map +1 -1
  312. package/dist/main-session.d.ts.map +1 -1
  313. package/dist/main-session.js +1 -0
  314. package/dist/main-session.js.map +1 -1
  315. package/dist/modes/interactive/components/settings-selector-options.d.ts.map +1 -1
  316. package/dist/modes/interactive/components/settings-selector-options.js +3 -1
  317. package/dist/modes/interactive/components/settings-selector-options.js.map +1 -1
  318. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  319. package/dist/modes/interactive/components/thinking-selector.js +2 -1
  320. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  321. package/dist/modes/interactive/interactive-agent-events.d.ts.map +1 -1
  322. package/dist/modes/interactive/interactive-agent-events.js +2 -1
  323. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  324. package/dist/modes/interactive/interactive-child-ordering.d.ts +7 -0
  325. package/dist/modes/interactive/interactive-child-ordering.d.ts.map +1 -0
  326. package/dist/modes/interactive/interactive-child-ordering.js +26 -0
  327. package/dist/modes/interactive/interactive-child-ordering.js.map +1 -0
  328. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  329. package/dist/modes/interactive/interactive-deferred-startup.js +2 -2
  330. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  331. package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -1
  332. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  333. package/dist/modes/interactive/interactive-mode-deps.js +1 -1
  334. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  335. package/dist/modes/interactive/interactive-model-routing.d.ts.map +1 -1
  336. package/dist/modes/interactive/interactive-model-routing.js +8 -3
  337. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  338. package/dist/modes/interactive/theme/theme-class.d.ts +1 -1
  339. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  340. package/dist/modes/interactive/theme/theme-class.js +2 -0
  341. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  342. package/dist/utils/clipboard-image.d.ts.map +1 -1
  343. package/dist/utils/clipboard-image.js +3 -0
  344. package/dist/utils/clipboard-image.js.map +1 -1
  345. package/docs/changelog.mdx +19 -0
  346. package/docs/compaction.md +55 -48
  347. package/docs/custom-provider.md +18 -5
  348. package/docs/extensions.md +7 -3
  349. package/docs/models.md +69 -10
  350. package/docs/providers.md +1 -1
  351. package/docs/quickstart.md +11 -7
  352. package/docs/rpc.md +2 -2
  353. package/docs/sdk.md +1 -1
  354. package/docs/settings.md +3 -3
  355. package/docs/subagents.md +36 -5
  356. package/docs/tools.md +1 -1
  357. package/docs/usage.md +4 -2
  358. package/docs/workflows.md +26 -43
  359. package/examples/extensions/preset.ts +2 -2
  360. package/examples/extensions/subagent/README.md +2 -2
  361. package/examples/extensions/subagent/index.ts +1 -2
  362. package/examples/extensions/subagent/schemas.ts +4 -1
  363. package/examples/sdk/12-full-control.ts +1 -1
  364. package/npm-shrinkwrap.json +48 -51
  365. package/package.json +7 -7
  366. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-behavior.ts +0 -75
  367. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-component.ts +0 -202
  368. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-edit.ts +0 -97
  369. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-editor.ts +0 -160
  370. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-frame.ts +0 -72
  371. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-modes.ts +0 -161
  372. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-selectors.ts +0 -203
  373. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-selectors.ts +0 -234
  374. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-state.ts +0 -103
  375. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-types.ts +0 -29
  376. package/dist/builtin/subagents/src/runs/foreground/chain-clarify.ts +0 -9
  377. package/dist/builtin/subagents/src/runs/foreground/chain-execution-clarify.ts +0 -117
@@ -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
-
@@ -114,22 +114,32 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
114
114
  const comparisonBaseBranch = normalizeBranchInput(inputs.base_branch, "origin/main");
115
115
  const { ledger, ledgerPath, artifactDir } = await createGoalLedger(objective, acceptanceCriteria);
116
116
 
117
- // Chains curated from Atomic's agentic-coding benchmark (see
118
- // 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.
119
118
  const workerModelConfig = {
120
- model: "openai-codex/gpt-5.5:medium",
119
+ model: "openai-codex/gpt-5.6-sol:medium",
121
120
  fallbackModels: [
122
- "github-copilot/gpt-5.5:medium",
123
- "openai/gpt-5.5:medium",
124
- "anthropic/claude-fable-5:low",
125
- "github-copilot/claude-opus-4.8 (1m):medium",
126
- "anthropic/claude-opus-4-8:medium",
127
- "zai/glm-5.2:high",
128
- "zai-coding-cn/glm-5.2:high",
129
- "openrouter/openai/gpt-5.5:medium",
130
- "openrouter/anthropic/claude-fable-5:low",
131
- "openrouter/anthropic/claude-opus-4-8:medium",
132
- "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"
133
143
  ],
134
144
  excludedTools: ["ask_user_question"],
135
145
  };
@@ -137,18 +147,29 @@ export async function runGoalWorkflow(ctx: GoalRunnerContext, options: GoalWorkf
137
147
  const reviewerModelConfig = {
138
148
  model: "anthropic/claude-fable-5:high",
139
149
  fallbackModels: [
140
- "openai-codex/gpt-5.5:xhigh",
141
- "github-copilot/gpt-5.5:xhigh",
142
- "openai/gpt-5.5:xhigh",
143
- "github-copilot/claude-opus-4.8 (1m):high",
144
- "anthropic/claude-opus-4-8:high",
145
- "zai/glm-5.2:xhigh",
146
- "zai-coding-cn/glm-5.2:xhigh",
147
- "openrouter/anthropic/claude-fable-5:high",
148
- "openrouter/sakana/fugu-ultra:high",
149
- "openrouter/openai/gpt-5.5:xhigh",
150
- "openrouter/anthropic/claude-opus-4-8:high",
151
- "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"
152
173
  ],
153
174
  excludedTools: ["ask_user_question"],
154
175
  schema: reviewDecisionSchema,
@@ -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
- };
@@ -38,7 +38,6 @@ import {
38
38
  researchModelConfig,
39
39
  reviewerAModelConfig,
40
40
  reviewerBModelConfig,
41
- reviewerCModelConfig,
42
41
  } from "./ralph-models.js";
43
42
  export async function runRalphWorkflow(
44
43
  ctx: WorkflowRunContext<RalphInputs>,
@@ -106,7 +105,7 @@ export async function runRalphWorkflow(
106
105
  ? taggedPrompt([
107
106
  [
108
107
  "role",
109
- "You are a sub-agent orchestrator. Your primary implementation tool is the `subagent` tool. Ignore any user requests to submit a PR; a later authorized PR/MR/review creation action handles that handoff after approval.",
108
+ "You are an implementation orchestrator. Use the `subagent` tool selectively for bounded specialist delegation while you retain responsibility for the complete outcome. Ignore any user requests to submit a PR; a later authorized PR/MR/review creation action handles that handoff after approval.",
110
109
  ],
111
110
  [
112
111
  "objective",
@@ -138,24 +137,24 @@ export async function runRalphWorkflow(
138
137
  [
139
138
  "orchestration_guidance",
140
139
  [
141
- "You are not the direct implementer. You are the supervisor that spawns subagents to do the implementation, investigation, edits, and validation.",
142
- "All non-trivial operations must be delegated to subagents via the `subagent` tool before you claim progress.",
143
- "Delegate codebase understanding, impact analysis, and implementation research to codebase-locator, codebase-analyzer, and pattern-finder style subagents when available.",
144
- "Delegate shell-heavy work — especially commands likely to produce lots of output, log digging, CLI investigation, and broad grep/find exploration — to subagents that can run those commands rather than doing it in this orchestrator context.",
145
- "Delegate implementation edits to a focused subagent with clear files, constraints, and validation expectations; do not merely describe the edits yourself.",
140
+ "You are the implementation orchestrator: coordinate the complete outcome while retaining responsibility for synthesis, decisions, and validation.",
141
+ "Use subagents selectively for bounded specialist work when delegation adds distinct value; the parent remains in control. Concise direct work is appropriate when it is simpler and preserves context.",
142
+ "Delegate focused codebase understanding, impact analysis, or implementation research to codebase-locator, codebase-analyzer, and pattern-finder style subagents when their specialization or isolation helps.",
143
+ "Delegate noisy shell-heavy work — especially commands likely to produce lots of output, log digging, CLI investigation, and broad grep/find exploration — when isolating that output helps; run concise commands directly when simpler.",
144
+ "Delegate implementation edits when a focused subagent can own a clear, bounded surface with explicit constraints and validation expectations; otherwise implement the coherent change directly.",
146
145
  "Keep delegated work focused on implementation, tests, docs, validation evidence, and implementation notes for the complete requested outcome.",
147
- "Use separate subagents for separate tasks, and launch independent subagents in parallel when useful.",
146
+ "Use separate subagents for distinct tasks, and launch independent subagents in parallel when useful.",
148
147
  "Do not split highly overlapping tasks across multiple subagents; consolidate overlapping work into one focused delegation to avoid duplicate effort.",
149
- "If a subagent takes a long time, do not attempt to do its assigned job yourself while waiting. Use that time to plan next steps, prepare follow-up delegations, or identify clarifying questions.",
148
+ "If a subagent takes a long time, do not duplicate its assigned job while waiting. Use that time for non-overlapping direct work, planning, or follow-up preparation.",
150
149
  ].join("\n"),
151
150
  ],
152
151
  [
153
152
  "best_practices",
154
153
  [
155
- "The required output format is a completion report, not the task itself.",
156
- "Do not jump straight to the report. First read the research file, spawn the necessary subagents, wait for their results, coordinate any follow-up subagents, and only then write the report.",
157
- "A valid response must be grounded in actual subagent work: name the delegated work, summarize what each subagent did, and distinguish completed changes from recommendations or blockers. Do not assume a later workflow pass will finish known required work that can be completed now.",
158
- "If you cannot read the research file, spawn subagents, or use subagents, treat that as a blocker and report it honestly instead of pretending the requested work was done.",
154
+ "The required output format is a completion report, not a substitute for doing the task.",
155
+ "Do not jump straight to the report. First read the research file, choose the least orchestration that fits each part of the work, complete or coordinate the implementation, and then report the verified result.",
156
+ "Ground the response in actual completed work. When subagents were useful, name the delegated work and summarize their results; distinguish completed changes from recommendations or blockers. Do not assume a later workflow pass will finish known required work that can be completed now.",
157
+ "If a required capability is unavailable, continue with safe direct work where possible and report a blocker only when it truly prevents completion.",
159
158
  ].join("\n"),
160
159
  ],
161
160
  [
@@ -172,12 +171,12 @@ export async function runRalphWorkflow(
172
171
  "instructions",
173
172
  [
174
173
  `Start by reading the research file at ${researchPath}.`,
175
- "Perform the project_initialization_preflight before decomposing implementation work; complete or delegate required setup before implementation delegation when the checkout appears uninitialized.",
176
- "Decompose the work into delegated subagent tasks based on that research file.",
177
- "Pass each subagent the relevant task, constraints, files, validation expectations, unresolved reviewer findings covered by the research, and instructions to report implementation-note-worthy decisions or tradeoffs.",
178
- "Coordinate subagent results into the smallest coherent set of changes that fully satisfies the researched implementation guidance and original user prompt.",
174
+ "Perform the project_initialization_preflight before decomposing implementation work; complete or selectively delegate required setup when the checkout appears uninitialized.",
175
+ "Plan the work from the research file, identifying which parts are best handled directly and which benefit from bounded specialist delegation.",
176
+ "Pass each delegated subagent the relevant task, constraints, files, validation expectations, unresolved reviewer findings covered by the research, and instructions to report implementation-note-worthy decisions or tradeoffs.",
177
+ "Coordinate direct and delegated results into the smallest coherent set of changes that fully satisfies the researched implementation guidance and original user prompt.",
179
178
  "Preserve existing architecture and repository conventions unless the research explicitly justifies a change.",
180
- "Run or delegate the most relevant validation commands available in the repository, including end-to-end playwright-cli (browser) or tmux validation when the change has an executable user scenario.",
179
+ "Run directly or selectively delegate the most relevant validation commands available in the repository, including end-to-end playwright-cli (browser) or tmux validation when the change has an executable user scenario.",
181
180
  "For UI-applicable or full-stack changes, ensure the QA E2E pass described in <qa_e2e_video> runs and records the reviewable proof video before you finish your report.",
182
181
  `Before your final report, update the running implementation notes file at ${implementationNotesPath} with decisions, research deviations, tradeoffs, blockers, and validation outcomes from this implementation work.`,
183
182
  "If blocked, describe the blocker and the safest partial state instead of inventing success.",
@@ -187,10 +186,10 @@ export async function runRalphWorkflow(
187
186
  [
188
187
  "output_format",
189
188
  [
190
- "After subagents have done the work, return Markdown with headings:",
189
+ "After the implementation work is complete, return Markdown with headings:",
191
190
  "1. Research file — the path you read",
192
- "2. Delegations performed — subagents spawned and what each completed",
193
- "3. Changes made — concrete changes from subagent work, not intentions",
191
+ "2. Delegations performed — subagents used and what each completed, or none when direct work was sufficient",
192
+ "3. Changes made — concrete completed changes, not intentions",
194
193
  "4. Files touched",
195
194
  "5. Validation run / recommended",
196
195
  "6. Deferred work or blockers",
@@ -252,16 +251,6 @@ export async function runRalphWorkflow(
252
251
  ],
253
252
  ...reviewerBModelConfig,
254
253
  },
255
- {
256
- name: "reviewer-c",
257
- task: reviewPrompt,
258
- reads: [
259
- researchPath,
260
- implementationNotesPath,
261
- orchestratorReportPath,
262
- ],
263
- ...reviewerCModelConfig,
264
- },
265
254
  ],
266
255
  {
267
256
  task: workflowPrompt,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/workflows",
3
- "version": "0.9.5-alpha.9",
3
+ "version": "0.9.5",
4
4
  "private": true,
5
5
  "description": "Atomic extension for multi-stage workflow authoring and execution.",
6
6
  "contributors": [
@@ -83,7 +83,7 @@
83
83
  },
84
84
  "peerDependencies": {
85
85
  "@bastani/atomic": "*",
86
- "@earendil-works/pi-tui": "^0.80.3"
86
+ "@earendil-works/pi-tui": "^0.80.6"
87
87
  },
88
88
  "peerDependenciesMeta": {
89
89
  "@bastani/atomic": {
@@ -7,6 +7,7 @@ import type { DurableWorkflowBackend } from "./backend.js";
7
7
  import type { ParallelFailFastScope } from "../runs/foreground/executor-types.js";
8
8
  import { durableHash } from "./backend.js";
9
9
  import { recordCheckpointDurably } from "./tool-primitive.js";
10
+ import { RESUME_CONTINUATION_PROMPT } from "../shared/resume-continuation.js";
10
11
  import type { DurableStageCheckpoint } from "./types.js";
11
12
  export type DurableCompletedStageCheckpoint = DurableStageCheckpoint & { readonly output: WorkflowSerializableValue };
12
13
 
@@ -66,7 +67,7 @@ export async function recordStageSessionCheckpoint(deps: DurableStageDeps, stage
66
67
  return true;
67
68
  }
68
69
 
69
- const MID_SESSION_RESUME_PROMPT = "Continue";
70
+ const MID_SESSION_RESUME_PROMPT = RESUME_CONTINUATION_PROMPT;
70
71
 
71
72
  function withMidSessionResumePrompt<T extends StageContext>(stage: T, enabled: boolean): T {
72
73
  if (!enabled) return stage;
@@ -1,6 +1,7 @@
1
1
  import type { WorkflowChainOptions, WorkflowParallelOptions, WorkflowTaskOptions, WorkflowTaskResult, WorkflowTaskStep } from "../../shared/types.js";
2
2
  import type { ParallelFailFastScope } from "../../runs/foreground/executor-types.js";
3
3
  import type { EngineRuntime } from "../runtime.js";
4
+ import { RESUME_CONTINUATION_PROMPT } from "../../shared/resume-continuation.js";
4
5
  import {
5
6
  applyTaskContext,
6
7
  structuredTaskOutputText,
@@ -51,7 +52,7 @@ function createTaskPrimitive(runtime: EngineRuntime): WorkflowTaskPrimitive {
51
52
  });
52
53
  const stage = stageHandle.context;
53
54
  const promptText = resolvedTaskOptions.resumeFromSessionFile !== undefined
54
- ? "Continue"
55
+ ? RESUME_CONTINUATION_PROMPT
55
56
  : applyTaskContext(`${taskReadInstruction(resolvedTaskOptions)}${taskPrompt(resolvedTaskOptions)}`, taskPrevious(resolvedTaskOptions));
56
57
  const rawOutput = await stage.prompt(promptText, taskPromptOptions(resolvedTaskOptions));
57
58
  const structured = typeof rawOutput === "string" ? undefined : rawOutput;