@bastani/atomic 0.9.13-alpha.1 → 0.9.13-alpha.2

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 (1048) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/README.md +35 -17
  3. package/dist/builtin/i-have-adhd/CHANGELOG.md +17 -0
  4. package/dist/builtin/i-have-adhd/LICENSE +21 -0
  5. package/dist/builtin/i-have-adhd/README.md +18 -0
  6. package/dist/builtin/i-have-adhd/index.ts +238 -0
  7. package/dist/builtin/i-have-adhd/package.json +56 -0
  8. package/dist/builtin/i-have-adhd/skills/i-have-adhd/SKILL.md +140 -0
  9. package/dist/builtin/intercom/CHANGELOG.md +19 -0
  10. package/dist/builtin/intercom/README.md +25 -4
  11. package/dist/builtin/intercom/broker/bounded-stderr-install.ts +18 -0
  12. package/dist/builtin/intercom/broker/bounded-stderr.ts +132 -0
  13. package/dist/builtin/intercom/broker/broker.ts +12 -23
  14. package/dist/builtin/intercom/broker/client.ts +70 -3
  15. package/dist/builtin/intercom/broker/paths.ts +9 -0
  16. package/dist/builtin/intercom/broker/presence-handler.ts +103 -0
  17. package/dist/builtin/intercom/broker/spawn.ts +128 -29
  18. package/dist/builtin/intercom/foreground-detach-handoff.ts +30 -14
  19. package/dist/builtin/intercom/group.ts +64 -25
  20. package/dist/builtin/intercom/index-heavy.ts +38 -5
  21. package/dist/builtin/intercom/index.ts +7 -3
  22. package/dist/builtin/intercom/intercom-tool.ts +82 -5
  23. package/dist/builtin/intercom/lazy-subagent-ack.ts +11 -6
  24. package/dist/builtin/intercom/package.json +2 -3
  25. package/dist/builtin/intercom/runtime-group.ts +13 -0
  26. package/dist/builtin/intercom/skills/intercom/SKILL.md +30 -2
  27. package/dist/builtin/intercom/subagent-relay.ts +32 -16
  28. package/dist/builtin/intercom/terminal-ordering-barrier.ts +21 -4
  29. package/dist/builtin/intercom/types.ts +3 -1
  30. package/dist/builtin/intercom/ui/compose.ts +8 -6
  31. package/dist/builtin/intercom/ui/session-list.ts +7 -5
  32. package/dist/builtin/mcp/CHANGELOG.md +13 -0
  33. package/dist/builtin/mcp/glimpse-ui.ts +2 -1
  34. package/dist/builtin/mcp/index.ts +1 -11
  35. package/dist/builtin/mcp/mcp-panel.ts +35 -34
  36. package/dist/builtin/mcp/mcp-setup-panel.ts +35 -33
  37. package/dist/builtin/mcp/npx-resolver.ts +3 -2
  38. package/dist/builtin/mcp/package.json +3 -3
  39. package/dist/builtin/mcp/sampling-handler.ts +5 -1
  40. package/dist/builtin/mcp/server-manager.ts +4 -7
  41. package/dist/builtin/subagents/CHANGELOG.md +33 -0
  42. package/dist/builtin/subagents/README.md +124 -323
  43. package/dist/builtin/subagents/agents/worker.md +1 -1
  44. package/dist/builtin/subagents/package.json +5 -5
  45. package/dist/builtin/subagents/prompts/parallel-context-build.md +2 -2
  46. package/dist/builtin/subagents/prompts/parallel-handoff-plan.md +4 -4
  47. package/dist/builtin/subagents/prompts/review-loop.md +1 -1
  48. package/dist/builtin/subagents/skills/subagent/SKILL.md +39 -102
  49. package/dist/builtin/subagents/src/agents/agent-discovery.ts +1 -29
  50. package/dist/builtin/subagents/src/agents/agent-loaders.ts +1 -40
  51. package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +6 -135
  52. package/dist/builtin/subagents/src/agents/agent-management.ts +52 -282
  53. package/dist/builtin/subagents/src/agents/agent-paths.ts +0 -22
  54. package/dist/builtin/subagents/src/agents/agent-types.ts +0 -40
  55. package/dist/builtin/subagents/src/agents/agents.ts +0 -3
  56. package/dist/builtin/subagents/src/agents/identity.ts +2 -4
  57. package/dist/builtin/subagents/src/agents/skills-paths.ts +8 -1
  58. package/dist/builtin/subagents/src/extension/doctor.ts +3 -23
  59. package/dist/builtin/subagents/src/extension/index.ts +9 -7
  60. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +2 -2
  61. package/dist/builtin/subagents/src/extension/schemas.ts +1 -157
  62. package/dist/builtin/subagents/src/extension/startup-maintenance.ts +0 -2
  63. package/dist/builtin/subagents/src/extension/tool-description.ts +4 -13
  64. package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +6 -2
  65. package/dist/builtin/subagents/src/intercom/result-intercom.ts +20 -22
  66. package/dist/builtin/subagents/src/intercom/supervisor-authorization.ts +9 -2
  67. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +97 -16
  68. package/dist/builtin/subagents/src/runs/background/completion-notification.ts +8 -3
  69. package/dist/builtin/subagents/src/runs/background/notify.ts +54 -18
  70. package/dist/builtin/subagents/src/runs/foreground/execution-updates.ts +0 -5
  71. package/dist/builtin/subagents/src/runs/foreground/execution.ts +1 -4
  72. package/dist/builtin/subagents/src/runs/foreground/inprocess-run-sync.ts +117 -15
  73. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +11 -40
  74. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +11 -22
  75. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +10 -173
  76. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +6 -4
  77. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +9 -2
  78. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +9 -2
  79. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +32 -12
  80. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +2 -6
  81. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-worktree.ts +1 -14
  82. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +56 -31
  83. package/dist/builtin/subagents/src/runs/inprocess/background-single.ts +46 -30
  84. package/dist/builtin/subagents/src/runs/inprocess/background.ts +2 -1
  85. package/dist/builtin/subagents/src/runs/inprocess/runner.ts +343 -89
  86. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-projection.ts +0 -2
  87. package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-sanitize.ts +1 -3
  88. package/dist/builtin/subagents/src/runs/shared/intercom-group.ts +23 -7
  89. package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +0 -86
  90. package/dist/builtin/subagents/src/runs/shared/worktree.ts +7 -2
  91. package/dist/builtin/subagents/src/shared/formatters.ts +2 -56
  92. package/dist/builtin/subagents/src/shared/settings.ts +14 -350
  93. package/dist/builtin/subagents/src/shared/types-async.ts +8 -31
  94. package/dist/builtin/subagents/src/shared/types-config.ts +20 -22
  95. package/dist/builtin/subagents/src/shared/types-depth.ts +30 -56
  96. package/dist/builtin/subagents/src/shared/types-results.ts +9 -58
  97. package/dist/builtin/subagents/src/shared/types-runtime.ts +0 -1
  98. package/dist/builtin/subagents/src/shared/utils.ts +5 -0
  99. package/dist/builtin/subagents/src/slash/bridge-settlement.ts +87 -0
  100. package/dist/builtin/subagents/src/slash/prompt-template-bridge.ts +47 -7
  101. package/dist/builtin/subagents/src/slash/slash-bridge.ts +27 -7
  102. package/dist/builtin/subagents/src/slash/slash-commands.ts +37 -82
  103. package/dist/builtin/subagents/src/slash/slash-live-state.ts +1 -92
  104. package/dist/builtin/subagents/src/tui/render-event-formatting.ts +2 -35
  105. package/dist/builtin/subagents/src/tui/render-progress.ts +89 -0
  106. package/dist/builtin/subagents/src/tui/render-result-compact.ts +43 -71
  107. package/dist/builtin/subagents/src/tui/render-result.ts +41 -90
  108. package/dist/builtin/subagents/src/tui/render-stable-output.ts +0 -5
  109. package/dist/builtin/subagents/src/tui/render-widget-graph.ts +6 -55
  110. package/dist/builtin/web-access/CHANGELOG.md +14 -0
  111. package/dist/builtin/web-access/chrome-cookies.ts +3 -2
  112. package/dist/builtin/web-access/github-api.ts +7 -6
  113. package/dist/builtin/web-access/github-extract.ts +2 -1
  114. package/dist/builtin/web-access/package.json +3 -3
  115. package/dist/builtin/web-access/subprocess.ts +3 -1
  116. package/dist/builtin/web-access/summary-review.ts +2 -2
  117. package/dist/builtin/web-access/web-search-features.ts +38 -22
  118. package/dist/builtin/web-access/web-search-summary.ts +2 -2
  119. package/dist/builtin/workflows/CHANGELOG.md +45 -0
  120. package/dist/builtin/workflows/README.md +41 -1
  121. package/dist/builtin/workflows/builtin/open-claude-design-utils.ts +3 -0
  122. package/dist/builtin/workflows/builtin/ralph-models.ts +25 -20
  123. package/dist/builtin/workflows/builtin/shared-prompts.ts +5 -2
  124. package/dist/builtin/workflows/package.json +2 -2
  125. package/dist/builtin/workflows/src/durable/backend.ts +18 -1
  126. package/dist/builtin/workflows/src/durable/completed-catalog-stage-groups.ts +60 -3
  127. package/dist/builtin/workflows/src/durable/completed-catalog.ts +67 -1
  128. package/dist/builtin/workflows/src/durable/completed-subtree.ts +22 -7
  129. package/dist/builtin/workflows/src/durable/dbos-metadata.ts +4 -0
  130. package/dist/builtin/workflows/src/durable/local-command.ts +2 -1
  131. package/dist/builtin/workflows/src/durable/types.ts +17 -1
  132. package/dist/builtin/workflows/src/durable/workflow-child-result.ts +3 -1
  133. package/dist/builtin/workflows/src/engine/primitives/workflow.ts +1 -1
  134. package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +10 -2
  135. package/dist/builtin/workflows/src/engine/run-durable-topology.ts +9 -2
  136. package/dist/builtin/workflows/src/extension/atomic-stage-session.ts +7 -1
  137. package/dist/builtin/workflows/src/extension/companions.ts +1 -1
  138. package/dist/builtin/workflows/src/extension/index.bundle.mjs +947 -447
  139. package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +31 -3
  140. package/dist/builtin/workflows/src/extension/mcp.ts +13 -2
  141. package/dist/builtin/workflows/src/extension/render-result.ts +1 -0
  142. package/dist/builtin/workflows/src/extension/ui-surface.ts +7 -20
  143. package/dist/builtin/workflows/src/extension/wiring.ts +33 -6
  144. package/dist/builtin/workflows/src/extension/workflow-ports.ts +14 -6
  145. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +11 -6
  146. package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +8 -0
  147. package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +2 -0
  148. package/dist/builtin/workflows/src/intercom/intercom-routing.ts +12 -6
  149. package/dist/builtin/workflows/src/intercom/result-intercom.ts +35 -4
  150. package/dist/builtin/workflows/src/runs/background/status.ts +15 -0
  151. package/dist/builtin/workflows/src/runs/foreground/executor-abort.ts +11 -3
  152. package/dist/builtin/workflows/src/runs/foreground/executor-child-boundary.ts +2 -1
  153. package/dist/builtin/workflows/src/runs/foreground/executor-exit-manager.ts +26 -2
  154. package/dist/builtin/workflows/src/runs/foreground/executor-run-finalizers.ts +3 -2
  155. package/dist/builtin/workflows/src/runs/shared/worktree-git-runner.ts +5 -2
  156. package/dist/builtin/workflows/src/runs/shared/worktree-setup.ts +2 -0
  157. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +5 -3
  158. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +5 -3
  159. package/dist/builtin/workflows/src/shared/graph-store-snapshot.ts +34 -2
  160. package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +23 -6
  161. package/dist/builtin/workflows/src/shared/stage-ui-broker.ts +10 -4
  162. package/dist/builtin/workflows/src/shared/store-public-types.ts +4 -2
  163. package/dist/builtin/workflows/src/shared/store-types.ts +1 -1
  164. package/dist/builtin/workflows/src/shared/workflow-artifact-env.ts +21 -0
  165. package/dist/builtin/workflows/src/shared/workflow-artifacts.ts +2 -5
  166. package/dist/builtin/workflows/src/tui/dispatch-confirm.ts +37 -2
  167. package/dist/builtin/workflows/src/tui/graph-view-constants.ts +0 -15
  168. package/dist/builtin/workflows/src/tui/graph-view-graph-render.ts +38 -47
  169. package/dist/builtin/workflows/src/tui/graph-view-input.ts +48 -45
  170. package/dist/builtin/workflows/src/tui/graph-view-layout.ts +266 -0
  171. package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +1 -86
  172. package/dist/builtin/workflows/src/tui/graph-view-render.ts +209 -91
  173. package/dist/builtin/workflows/src/tui/graph-view-state.ts +5 -7
  174. package/dist/builtin/workflows/src/tui/graph-view-types.ts +13 -7
  175. package/dist/builtin/workflows/src/tui/inline-form-editor.ts +8 -6
  176. package/dist/builtin/workflows/src/tui/inline-form-overlay.ts +2 -1
  177. package/dist/builtin/workflows/src/tui/inputs-overlay.ts +7 -4
  178. package/dist/builtin/workflows/src/tui/inputs-picker-input.ts +66 -0
  179. package/dist/builtin/workflows/src/tui/keybindings-adapter.ts +1 -0
  180. package/dist/builtin/workflows/src/tui/node-card.ts +1 -1
  181. package/dist/builtin/workflows/src/tui/overlay-adapter.ts +18 -46
  182. package/dist/builtin/workflows/src/tui/overlay-terminal-modes.ts +15 -26
  183. package/dist/builtin/workflows/src/tui/session-overlays.ts +5 -2
  184. package/dist/builtin/workflows/src/tui/session-picker.ts +27 -0
  185. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +5 -14
  186. package/dist/builtin/workflows/src/tui/stage-chat-view-input.ts +8 -7
  187. package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +12 -3
  188. package/dist/builtin/workflows/src/tui/stage-chat-view-types.ts +1 -11
  189. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +0 -8
  190. package/dist/builtin/workflows/src/tui/status-list.ts +1 -0
  191. package/dist/builtin/workflows/src/tui/store-widget-installer.ts +2 -6
  192. package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +0 -15
  193. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +2 -26
  194. package/dist/builtin/workflows/src/tui/workflow-status.ts +3 -3
  195. package/dist/bun/split-loader.js +2 -0
  196. package/dist/bun/split-loader.js.map +1 -1
  197. package/dist/cli/args.d.ts.map +1 -1
  198. package/dist/cli/args.js +6 -2
  199. package/dist/cli/args.js.map +1 -1
  200. package/dist/cli/auth-check.d.ts +35 -0
  201. package/dist/cli/auth-check.d.ts.map +1 -0
  202. package/dist/cli/auth-check.js +100 -0
  203. package/dist/cli/auth-check.js.map +1 -0
  204. package/dist/cli/auth-command.d.ts +27 -0
  205. package/dist/cli/auth-command.d.ts.map +1 -0
  206. package/dist/cli/auth-command.js +150 -0
  207. package/dist/cli/auth-command.js.map +1 -0
  208. package/dist/cli/config-selector.js +2 -2
  209. package/dist/cli/config-selector.js.map +1 -1
  210. package/dist/cli/credential-print.d.ts +18 -23
  211. package/dist/cli/credential-print.d.ts.map +1 -1
  212. package/dist/cli/credential-print.js +42 -88
  213. package/dist/cli/credential-print.js.map +1 -1
  214. package/dist/cli/experimental/auth.d.ts +16 -0
  215. package/dist/cli/experimental/auth.d.ts.map +1 -0
  216. package/dist/cli/experimental/auth.js +13 -0
  217. package/dist/cli/experimental/auth.js.map +1 -0
  218. package/dist/cli/experimental/cli.d.ts +6 -0
  219. package/dist/cli/experimental/cli.d.ts.map +1 -0
  220. package/dist/cli/experimental/cli.js +5 -0
  221. package/dist/cli/experimental/cli.js.map +1 -0
  222. package/dist/cli/experimental/command-options.d.ts +17 -0
  223. package/dist/cli/experimental/command-options.d.ts.map +1 -0
  224. package/dist/cli/experimental/command-options.js +35 -0
  225. package/dist/cli/experimental/command-options.js.map +1 -0
  226. package/dist/cli/experimental/command.d.ts +63 -0
  227. package/dist/cli/experimental/command.d.ts.map +1 -0
  228. package/dist/cli/experimental/command.js +127 -0
  229. package/dist/cli/experimental/command.js.map +1 -0
  230. package/dist/cli/experimental/commands/client.d.ts +13 -0
  231. package/dist/cli/experimental/commands/client.d.ts.map +1 -0
  232. package/dist/cli/experimental/commands/client.js +25 -0
  233. package/dist/cli/experimental/commands/client.js.map +1 -0
  234. package/dist/cli/experimental/commands/pi.d.ts +15 -0
  235. package/dist/cli/experimental/commands/pi.d.ts.map +1 -0
  236. package/dist/cli/experimental/commands/pi.js +28 -0
  237. package/dist/cli/experimental/commands/pi.js.map +1 -0
  238. package/dist/cli/experimental/commands/server.d.ts +13 -0
  239. package/dist/cli/experimental/commands/server.d.ts.map +1 -0
  240. package/dist/cli/experimental/commands/server.js +25 -0
  241. package/dist/cli/experimental/commands/server.js.map +1 -0
  242. package/dist/cli/experimental/transport-address.d.ts +10 -0
  243. package/dist/cli/experimental/transport-address.d.ts.map +1 -0
  244. package/dist/cli/experimental/transport-address.js +38 -0
  245. package/dist/cli/experimental/transport-address.js.map +1 -0
  246. package/dist/cli/session-picker.js +2 -2
  247. package/dist/cli/session-picker.js.map +1 -1
  248. package/dist/cli/startup-ui.d.ts.map +1 -1
  249. package/dist/cli/startup-ui.js +4 -10
  250. package/dist/cli/startup-ui.js.map +1 -1
  251. package/dist/cli.js +2 -0
  252. package/dist/cli.js.map +1 -1
  253. package/dist/client/index.d.ts +3 -0
  254. package/dist/client/index.d.ts.map +1 -0
  255. package/dist/client/index.js +3 -0
  256. package/dist/client/index.js.map +1 -0
  257. package/dist/client/remote-session.d.ts +64 -0
  258. package/dist/client/remote-session.d.ts.map +1 -0
  259. package/dist/client/remote-session.js +351 -0
  260. package/dist/client/remote-session.js.map +1 -0
  261. package/dist/client/transcript.d.ts +12 -0
  262. package/dist/client/transcript.d.ts.map +1 -0
  263. package/dist/client/transcript.js +98 -0
  264. package/dist/client/transcript.js.map +1 -0
  265. package/dist/core/agent-session-auto-compaction.d.ts +17 -13
  266. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  267. package/dist/core/agent-session-auto-compaction.js +146 -64
  268. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  269. package/dist/core/agent-session-bash.d.ts.map +1 -1
  270. package/dist/core/agent-session-bash.js +2 -0
  271. package/dist/core/agent-session-bash.js.map +1 -1
  272. package/dist/core/agent-session-compaction.d.ts +3 -6
  273. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  274. package/dist/core/agent-session-compaction.js +64 -28
  275. package/dist/core/agent-session-compaction.js.map +1 -1
  276. package/dist/core/agent-session-events.d.ts +1 -11
  277. package/dist/core/agent-session-events.d.ts.map +1 -1
  278. package/dist/core/agent-session-events.js +15 -23
  279. package/dist/core/agent-session-events.js.map +1 -1
  280. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  281. package/dist/core/agent-session-extension-bindings.js +4 -2
  282. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  283. package/dist/core/agent-session-methods.d.ts +6 -2
  284. package/dist/core/agent-session-methods.d.ts.map +1 -1
  285. package/dist/core/agent-session-methods.js.map +1 -1
  286. package/dist/core/agent-session-models.d.ts +1 -0
  287. package/dist/core/agent-session-models.d.ts.map +1 -1
  288. package/dist/core/agent-session-models.js +11 -4
  289. package/dist/core/agent-session-models.js.map +1 -1
  290. package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
  291. package/dist/core/agent-session-post-tool-compaction.js +22 -6
  292. package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
  293. package/dist/core/agent-session-runtime-auth.d.ts.map +1 -1
  294. package/dist/core/agent-session-runtime-auth.js +3 -0
  295. package/dist/core/agent-session-runtime-auth.js.map +1 -1
  296. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  297. package/dist/core/agent-session-tool-hooks.js +25 -14
  298. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  299. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  300. package/dist/core/agent-session-tool-registry.js +4 -0
  301. package/dist/core/agent-session-tool-registry.js.map +1 -1
  302. package/dist/core/agent-session-types.d.ts +2 -0
  303. package/dist/core/agent-session-types.d.ts.map +1 -1
  304. package/dist/core/agent-session-types.js.map +1 -1
  305. package/dist/core/agent-session.d.ts +6 -0
  306. package/dist/core/agent-session.d.ts.map +1 -1
  307. package/dist/core/agent-session.js +30 -0
  308. package/dist/core/agent-session.js.map +1 -1
  309. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  310. package/dist/core/atomic-guide-command.js +2 -3
  311. package/dist/core/atomic-guide-command.js.map +1 -1
  312. package/dist/core/auth-storage.d.ts +18 -1
  313. package/dist/core/auth-storage.d.ts.map +1 -1
  314. package/dist/core/auth-storage.js +83 -0
  315. package/dist/core/auth-storage.js.map +1 -1
  316. package/dist/core/bash-executor.d.ts +5 -0
  317. package/dist/core/bash-executor.d.ts.map +1 -1
  318. package/dist/core/bash-executor.js +43 -19
  319. package/dist/core/bash-executor.js.map +1 -1
  320. package/dist/core/builtin-packages.d.ts.map +1 -1
  321. package/dist/core/builtin-packages.js +6 -0
  322. package/dist/core/builtin-packages.js.map +1 -1
  323. package/dist/core/codex-fast-mode.d.ts.map +1 -1
  324. package/dist/core/codex-fast-mode.js +8 -3
  325. package/dist/core/codex-fast-mode.js.map +1 -1
  326. package/dist/core/exec.d.ts.map +1 -1
  327. package/dist/core/exec.js +4 -3
  328. package/dist/core/exec.js.map +1 -1
  329. package/dist/core/extensions/agent-events.d.ts +0 -1
  330. package/dist/core/extensions/agent-events.d.ts.map +1 -1
  331. package/dist/core/extensions/agent-events.js.map +1 -1
  332. package/dist/core/extensions/api-types.d.ts +5 -3
  333. package/dist/core/extensions/api-types.d.ts.map +1 -1
  334. package/dist/core/extensions/api-types.js.map +1 -1
  335. package/dist/core/extensions/context-types.d.ts +15 -0
  336. package/dist/core/extensions/context-types.d.ts.map +1 -1
  337. package/dist/core/extensions/context-types.js.map +1 -1
  338. package/dist/core/extensions/event-results.d.ts +5 -0
  339. package/dist/core/extensions/event-results.d.ts.map +1 -1
  340. package/dist/core/extensions/event-results.js.map +1 -1
  341. package/dist/core/extensions/index.d.ts +2 -1
  342. package/dist/core/extensions/index.d.ts.map +1 -1
  343. package/dist/core/extensions/index.js +1 -0
  344. package/dist/core/extensions/index.js.map +1 -1
  345. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  346. package/dist/core/extensions/loader-api.js +14 -1
  347. package/dist/core/extensions/loader-api.js.map +1 -1
  348. package/dist/core/extensions/loader-discovery.d.ts.map +1 -1
  349. package/dist/core/extensions/loader-discovery.js +3 -23
  350. package/dist/core/extensions/loader-discovery.js.map +1 -1
  351. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  352. package/dist/core/extensions/loader-runtime.js +20 -3
  353. package/dist/core/extensions/loader-runtime.js.map +1 -1
  354. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  355. package/dist/core/extensions/loader-virtual-modules.js +7 -1
  356. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  357. package/dist/core/extensions/message-types.d.ts +6 -0
  358. package/dist/core/extensions/message-types.d.ts.map +1 -1
  359. package/dist/core/extensions/message-types.js.map +1 -1
  360. package/dist/core/extensions/provider-types.d.ts +9 -3
  361. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  362. package/dist/core/extensions/provider-types.js.map +1 -1
  363. package/dist/core/extensions/runner-registries.d.ts +2 -1
  364. package/dist/core/extensions/runner-registries.d.ts.map +1 -1
  365. package/dist/core/extensions/runner-registries.js +3 -0
  366. package/dist/core/extensions/runner-registries.js.map +1 -1
  367. package/dist/core/extensions/runner-ui.d.ts.map +1 -1
  368. package/dist/core/extensions/runner-ui.js +1 -0
  369. package/dist/core/extensions/runner-ui.js.map +1 -1
  370. package/dist/core/extensions/runner.d.ts +2 -1
  371. package/dist/core/extensions/runner.d.ts.map +1 -1
  372. package/dist/core/extensions/runner.js +6 -2
  373. package/dist/core/extensions/runner.js.map +1 -1
  374. package/dist/core/extensions/runtime-types.d.ts +4 -1
  375. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  376. package/dist/core/extensions/runtime-types.js.map +1 -1
  377. package/dist/core/extensions/stale-context.d.ts +5 -0
  378. package/dist/core/extensions/stale-context.d.ts.map +1 -0
  379. package/dist/core/extensions/stale-context.js +11 -0
  380. package/dist/core/extensions/stale-context.js.map +1 -0
  381. package/dist/core/extensions/ui-types.d.ts +14 -11
  382. package/dist/core/extensions/ui-types.d.ts.map +1 -1
  383. package/dist/core/extensions/ui-types.js.map +1 -1
  384. package/dist/core/footer-data-provider.d.ts.map +1 -1
  385. package/dist/core/footer-data-provider.js +3 -2
  386. package/dist/core/footer-data-provider.js.map +1 -1
  387. package/dist/core/index.d.ts +1 -1
  388. package/dist/core/index.d.ts.map +1 -1
  389. package/dist/core/index.js.map +1 -1
  390. package/dist/core/intercom-runtime-group.d.ts +13 -0
  391. package/dist/core/intercom-runtime-group.d.ts.map +1 -0
  392. package/dist/core/intercom-runtime-group.js +23 -0
  393. package/dist/core/intercom-runtime-group.js.map +1 -0
  394. package/dist/core/keybindings.d.ts +44 -4
  395. package/dist/core/keybindings.d.ts.map +1 -1
  396. package/dist/core/model-config.d.ts +39 -5
  397. package/dist/core/model-config.d.ts.map +1 -1
  398. package/dist/core/model-config.js +6 -0
  399. package/dist/core/model-config.js.map +1 -1
  400. package/dist/core/model-registry.d.ts +12 -5
  401. package/dist/core/model-registry.d.ts.map +1 -1
  402. package/dist/core/model-registry.js +20 -12
  403. package/dist/core/model-registry.js.map +1 -1
  404. package/dist/core/model-resolver-cli.d.ts.map +1 -1
  405. package/dist/core/model-resolver-cli.js +46 -14
  406. package/dist/core/model-resolver-cli.js.map +1 -1
  407. package/dist/core/model-resolver-defaults.d.ts.map +1 -1
  408. package/dist/core/model-resolver-defaults.js +2 -0
  409. package/dist/core/model-resolver-defaults.js.map +1 -1
  410. package/dist/core/model-resolver-scope.d.ts +2 -0
  411. package/dist/core/model-resolver-scope.d.ts.map +1 -1
  412. package/dist/core/model-resolver-scope.js +12 -9
  413. package/dist/core/model-resolver-scope.js.map +1 -1
  414. package/dist/core/model-resolver.d.ts +1 -1
  415. package/dist/core/model-resolver.d.ts.map +1 -1
  416. package/dist/core/model-resolver.js +1 -1
  417. package/dist/core/model-resolver.js.map +1 -1
  418. package/dist/core/model-runtime-snapshot.d.ts +10 -0
  419. package/dist/core/model-runtime-snapshot.d.ts.map +1 -1
  420. package/dist/core/model-runtime-snapshot.js +14 -1
  421. package/dist/core/model-runtime-snapshot.js.map +1 -1
  422. package/dist/core/model-runtime-streaming.d.ts +3 -1
  423. package/dist/core/model-runtime-streaming.d.ts.map +1 -1
  424. package/dist/core/model-runtime-streaming.js +16 -0
  425. package/dist/core/model-runtime-streaming.js.map +1 -1
  426. package/dist/core/model-runtime-types.d.ts +2 -0
  427. package/dist/core/model-runtime-types.d.ts.map +1 -1
  428. package/dist/core/model-runtime-types.js.map +1 -1
  429. package/dist/core/model-runtime.d.ts +37 -10
  430. package/dist/core/model-runtime.d.ts.map +1 -1
  431. package/dist/core/model-runtime.js +312 -113
  432. package/dist/core/model-runtime.js.map +1 -1
  433. package/dist/core/oauth-login.d.ts.map +1 -1
  434. package/dist/core/oauth-login.js +2 -1
  435. package/dist/core/oauth-login.js.map +1 -1
  436. package/dist/core/openai-responses-payload-sanitizer.d.ts.map +1 -1
  437. package/dist/core/openai-responses-payload-sanitizer.js +18 -2
  438. package/dist/core/openai-responses-payload-sanitizer.js.map +1 -1
  439. package/dist/core/package-manager-git.d.ts.map +1 -1
  440. package/dist/core/package-manager-git.js +56 -10
  441. package/dist/core/package-manager-git.js.map +1 -1
  442. package/dist/core/package-manager-manifest.d.ts +1 -1
  443. package/dist/core/package-manager-manifest.d.ts.map +1 -1
  444. package/dist/core/package-manager-manifest.js +19 -9
  445. package/dist/core/package-manager-manifest.js.map +1 -1
  446. package/dist/core/package-manager-resource-collector.js.map +1 -1
  447. package/dist/core/package-manager-resource-files.d.ts.map +1 -1
  448. package/dist/core/package-manager-resource-files.js +1 -2
  449. package/dist/core/package-manager-resource-files.js.map +1 -1
  450. package/dist/core/provider-composer-internal.d.ts +10 -2
  451. package/dist/core/provider-composer-internal.d.ts.map +1 -1
  452. package/dist/core/provider-composer-internal.js +7 -3
  453. package/dist/core/provider-composer-internal.js.map +1 -1
  454. package/dist/core/provider-composer.d.ts.map +1 -1
  455. package/dist/core/provider-composer.js +19 -12
  456. package/dist/core/provider-composer.js.map +1 -1
  457. package/dist/core/provider-display-names.d.ts.map +1 -1
  458. package/dist/core/provider-display-names.js +2 -0
  459. package/dist/core/provider-display-names.js.map +1 -1
  460. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  461. package/dist/core/remote-catalog-provider.js +77 -67
  462. package/dist/core/remote-catalog-provider.js.map +1 -1
  463. package/dist/core/resolve-config-value.d.ts.map +1 -1
  464. package/dist/core/resolve-config-value.js +3 -0
  465. package/dist/core/resolve-config-value.js.map +1 -1
  466. package/dist/core/resource-loader-context-files.d.ts.map +1 -1
  467. package/dist/core/resource-loader-context-files.js +13 -5
  468. package/dist/core/resource-loader-context-files.js.map +1 -1
  469. package/dist/core/runtime-credentials.d.ts +5 -5
  470. package/dist/core/runtime-credentials.d.ts.map +1 -1
  471. package/dist/core/runtime-credentials.js +8 -8
  472. package/dist/core/runtime-credentials.js.map +1 -1
  473. package/dist/core/session-manager-list.d.ts.map +1 -1
  474. package/dist/core/session-manager-list.js +3 -1
  475. package/dist/core/session-manager-list.js.map +1 -1
  476. package/dist/core/settings-manager-ui-accessors.d.ts +8 -1
  477. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
  478. package/dist/core/settings-manager-ui-accessors.js +31 -0
  479. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  480. package/dist/core/settings-manager.d.ts +2 -1
  481. package/dist/core/settings-manager.d.ts.map +1 -1
  482. package/dist/core/settings-manager.js.map +1 -1
  483. package/dist/core/settings-merge.d.ts.map +1 -1
  484. package/dist/core/settings-merge.js +13 -16
  485. package/dist/core/settings-merge.js.map +1 -1
  486. package/dist/core/settings-types.d.ts +5 -0
  487. package/dist/core/settings-types.d.ts.map +1 -1
  488. package/dist/core/settings-types.js.map +1 -1
  489. package/dist/core/slash-commands.d.ts.map +1 -1
  490. package/dist/core/slash-commands.js +0 -2
  491. package/dist/core/slash-commands.js.map +1 -1
  492. package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts +2 -2
  493. package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts.map +1 -1
  494. package/dist/core/tools/ask-user-question/state/questionnaire-session.js +39 -2
  495. package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
  496. package/dist/core/tools/bash-async-execution.d.ts +2 -0
  497. package/dist/core/tools/bash-async-execution.d.ts.map +1 -1
  498. package/dist/core/tools/bash-async-execution.js +4 -1
  499. package/dist/core/tools/bash-async-execution.js.map +1 -1
  500. package/dist/core/tools/bash-async-output.d.ts +1 -0
  501. package/dist/core/tools/bash-async-output.d.ts.map +1 -1
  502. package/dist/core/tools/bash-async-output.js +62 -27
  503. package/dist/core/tools/bash-async-output.js.map +1 -1
  504. package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
  505. package/dist/core/tools/bash-pty-native.js +2 -1
  506. package/dist/core/tools/bash-pty-native.js.map +1 -1
  507. package/dist/core/tools/bash.d.ts +9 -0
  508. package/dist/core/tools/bash.d.ts.map +1 -1
  509. package/dist/core/tools/bash.js +34 -16
  510. package/dist/core/tools/bash.js.map +1 -1
  511. package/dist/core/tools/directory-tree.d.ts +11 -0
  512. package/dist/core/tools/directory-tree.d.ts.map +1 -1
  513. package/dist/core/tools/directory-tree.js +26 -0
  514. package/dist/core/tools/directory-tree.js.map +1 -1
  515. package/dist/core/tools/edit.d.ts +4 -0
  516. package/dist/core/tools/edit.d.ts.map +1 -1
  517. package/dist/core/tools/edit.js +12 -8
  518. package/dist/core/tools/edit.js.map +1 -1
  519. package/dist/core/tools/errno.d.ts +25 -0
  520. package/dist/core/tools/errno.d.ts.map +1 -0
  521. package/dist/core/tools/errno.js +29 -0
  522. package/dist/core/tools/errno.js.map +1 -0
  523. package/dist/core/tools/find.d.ts +8 -1
  524. package/dist/core/tools/find.d.ts.map +1 -1
  525. package/dist/core/tools/find.js +20 -15
  526. package/dist/core/tools/find.js.map +1 -1
  527. package/dist/core/tools/grep.d.ts.map +1 -1
  528. package/dist/core/tools/grep.js +5 -1
  529. package/dist/core/tools/grep.js.map +1 -1
  530. package/dist/core/tools/index.d.ts +7 -7
  531. package/dist/core/tools/index.d.ts.map +1 -1
  532. package/dist/core/tools/index.js +7 -7
  533. package/dist/core/tools/index.js.map +1 -1
  534. package/dist/core/tools/ls.d.ts +4 -0
  535. package/dist/core/tools/ls.d.ts.map +1 -1
  536. package/dist/core/tools/ls.js +5 -1
  537. package/dist/core/tools/ls.js.map +1 -1
  538. package/dist/core/tools/output-accumulator.d.ts +8 -1
  539. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  540. package/dist/core/tools/output-accumulator.js +50 -28
  541. package/dist/core/tools/output-accumulator.js.map +1 -1
  542. package/dist/core/tools/oversized-tool-result.d.ts.map +1 -1
  543. package/dist/core/tools/oversized-tool-result.js +129 -22
  544. package/dist/core/tools/oversized-tool-result.js.map +1 -1
  545. package/dist/core/tools/persisted-output-file.d.ts +80 -0
  546. package/dist/core/tools/persisted-output-file.d.ts.map +1 -0
  547. package/dist/core/tools/persisted-output-file.js +284 -0
  548. package/dist/core/tools/persisted-output-file.js.map +1 -0
  549. package/dist/core/tools/read.d.ts +10 -0
  550. package/dist/core/tools/read.d.ts.map +1 -1
  551. package/dist/core/tools/read.js +20 -8
  552. package/dist/core/tools/read.js.map +1 -1
  553. package/dist/core/tools/search.d.ts +4 -0
  554. package/dist/core/tools/search.d.ts.map +1 -1
  555. package/dist/core/tools/search.js +5 -1
  556. package/dist/core/tools/search.js.map +1 -1
  557. package/dist/core/tools/session-temp-cleanup.d.ts +133 -0
  558. package/dist/core/tools/session-temp-cleanup.d.ts.map +1 -0
  559. package/dist/core/tools/session-temp-cleanup.js +669 -0
  560. package/dist/core/tools/session-temp-cleanup.js.map +1 -0
  561. package/dist/core/tools/session-temp-dir.d.ts +116 -0
  562. package/dist/core/tools/session-temp-dir.d.ts.map +1 -0
  563. package/dist/core/tools/session-temp-dir.js +409 -0
  564. package/dist/core/tools/session-temp-dir.js.map +1 -0
  565. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  566. package/dist/core/tools/tool-definition-wrapper.js +2 -0
  567. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  568. package/dist/core/tools/tool-limits.d.ts +11 -0
  569. package/dist/core/tools/tool-limits.d.ts.map +1 -1
  570. package/dist/core/tools/tool-limits.js +11 -0
  571. package/dist/core/tools/tool-limits.js.map +1 -1
  572. package/dist/core/tools/windows-directory-security.d.ts +82 -0
  573. package/dist/core/tools/windows-directory-security.d.ts.map +1 -0
  574. package/dist/core/tools/windows-directory-security.js +238 -0
  575. package/dist/core/tools/windows-directory-security.js.map +1 -0
  576. package/dist/core/tools/write.d.ts +4 -0
  577. package/dist/core/tools/write.d.ts.map +1 -1
  578. package/dist/core/tools/write.js +8 -4
  579. package/dist/core/tools/write.js.map +1 -1
  580. package/dist/core/trust-manager.js +1 -1
  581. package/dist/core/trust-manager.js.map +1 -1
  582. package/dist/extensions/llama/huggingface-ui.d.ts +1 -1
  583. package/dist/extensions/llama/huggingface-ui.d.ts.map +1 -1
  584. package/dist/extensions/llama/huggingface-ui.js +6 -5
  585. package/dist/extensions/llama/huggingface-ui.js.map +1 -1
  586. package/dist/extensions/llama/index.d.ts.map +1 -1
  587. package/dist/extensions/llama/index.js +11 -2
  588. package/dist/extensions/llama/index.js.map +1 -1
  589. package/dist/extensions/llama/provider.d.ts.map +1 -1
  590. package/dist/extensions/llama/provider.js +24 -8
  591. package/dist/extensions/llama/provider.js.map +1 -1
  592. package/dist/extensions/llama/ui.d.ts.map +1 -1
  593. package/dist/extensions/llama/ui.js +5 -2
  594. package/dist/extensions/llama/ui.js.map +1 -1
  595. package/dist/index-extensions.d.ts +2 -2
  596. package/dist/index-extensions.d.ts.map +1 -1
  597. package/dist/index-extensions.js +1 -1
  598. package/dist/index-extensions.js.map +1 -1
  599. package/dist/index.d.ts +5 -2
  600. package/dist/index.d.ts.map +1 -1
  601. package/dist/index.js +6 -2
  602. package/dist/index.js.map +1 -1
  603. package/dist/main-runtime-api-key.d.ts +2 -2
  604. package/dist/main-runtime-api-key.d.ts.map +1 -1
  605. package/dist/main-runtime-api-key.js +7 -2
  606. package/dist/main-runtime-api-key.js.map +1 -1
  607. package/dist/main-session.js +2 -2
  608. package/dist/main-session.js.map +1 -1
  609. package/dist/main.d.ts.map +1 -1
  610. package/dist/main.js +130 -26
  611. package/dist/main.js.map +1 -1
  612. package/dist/modes/index.d.ts +1 -0
  613. package/dist/modes/index.d.ts.map +1 -1
  614. package/dist/modes/index.js.map +1 -1
  615. package/dist/modes/interactive/components/assistant-message.d.ts +6 -2
  616. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  617. package/dist/modes/interactive/components/assistant-message.js +18 -5
  618. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  619. package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
  620. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  621. package/dist/modes/interactive/components/bordered-loader.js +5 -4
  622. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  623. package/dist/modes/interactive/components/branch-summary-message.d.ts +2 -1
  624. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  625. package/dist/modes/interactive/components/branch-summary-message.js +3 -2
  626. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  627. package/dist/modes/interactive/components/chat-message-renderer.d.ts +17 -7
  628. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  629. package/dist/modes/interactive/components/chat-message-renderer.js +35 -69
  630. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  631. package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
  632. package/dist/modes/interactive/components/chat-session-host-actions.js +11 -3
  633. package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
  634. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
  635. package/dist/modes/interactive/components/chat-session-host-events.js +25 -15
  636. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
  637. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
  638. package/dist/modes/interactive/components/chat-session-host-rendering.js +9 -4
  639. package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
  640. package/dist/modes/interactive/components/chat-session-host-state.d.ts +2 -0
  641. package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
  642. package/dist/modes/interactive/components/chat-session-host-state.js +2 -0
  643. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
  644. package/dist/modes/interactive/components/chat-session-host.d.ts +9 -0
  645. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  646. package/dist/modes/interactive/components/chat-session-host.js +14 -0
  647. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  648. package/dist/modes/interactive/components/chat-transcript.d.ts +32 -0
  649. package/dist/modes/interactive/components/chat-transcript.d.ts.map +1 -1
  650. package/dist/modes/interactive/components/chat-transcript.js +173 -5
  651. package/dist/modes/interactive/components/chat-transcript.js.map +1 -1
  652. package/dist/modes/interactive/components/config-selector-list.d.ts +1 -1
  653. package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
  654. package/dist/modes/interactive/components/config-selector-list.js +9 -8
  655. package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
  656. package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
  657. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  658. package/dist/modes/interactive/components/custom-editor.js +32 -10
  659. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  660. package/dist/modes/interactive/components/custom-message.d.ts +2 -1
  661. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  662. package/dist/modes/interactive/components/custom-message.js +3 -2
  663. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  664. package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
  665. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  666. package/dist/modes/interactive/components/extension-editor.js +3 -2
  667. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  668. package/dist/modes/interactive/components/extension-input.d.ts +1 -1
  669. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  670. package/dist/modes/interactive/components/extension-input.js +1 -0
  671. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  672. package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
  673. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  674. package/dist/modes/interactive/components/extension-selector.js +4 -0
  675. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  676. package/dist/modes/interactive/components/fast-mode-selector.d.ts +1 -1
  677. package/dist/modes/interactive/components/fast-mode-selector.d.ts.map +1 -1
  678. package/dist/modes/interactive/components/fast-mode-selector.js +7 -5
  679. package/dist/modes/interactive/components/fast-mode-selector.js.map +1 -1
  680. package/dist/modes/interactive/components/first-time-setup.d.ts +1 -1
  681. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  682. package/dist/modes/interactive/components/first-time-setup.js +3 -0
  683. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  684. package/dist/modes/interactive/components/footer.js +1 -1
  685. package/dist/modes/interactive/components/footer.js.map +1 -1
  686. package/dist/modes/interactive/components/host-input-form.d.ts +1 -1
  687. package/dist/modes/interactive/components/host-input-form.d.ts.map +1 -1
  688. package/dist/modes/interactive/components/host-input-form.js +6 -5
  689. package/dist/modes/interactive/components/host-input-form.js.map +1 -1
  690. package/dist/modes/interactive/components/index.d.ts +1 -1
  691. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  692. package/dist/modes/interactive/components/index.js.map +1 -1
  693. package/dist/modes/interactive/components/login-dialog.d.ts +1 -1
  694. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  695. package/dist/modes/interactive/components/login-dialog.js +2 -1
  696. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  697. package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
  698. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  699. package/dist/modes/interactive/components/markdown-transform.js +19 -0
  700. package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
  701. package/dist/modes/interactive/components/mermaid.d.ts +11 -0
  702. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
  703. package/dist/modes/interactive/components/mermaid.js +81 -0
  704. package/dist/modes/interactive/components/mermaid.js.map +1 -0
  705. package/dist/modes/interactive/components/model-selector.d.ts +2 -2
  706. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  707. package/dist/modes/interactive/components/model-selector.js +9 -6
  708. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  709. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
  710. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  711. package/dist/modes/interactive/components/oauth-selector.js +3 -2
  712. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  713. package/dist/modes/interactive/components/scoped-models-selector.d.ts +6 -2
  714. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  715. package/dist/modes/interactive/components/scoped-models-selector.js +39 -13
  716. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  717. package/dist/modes/interactive/components/session-selector-delete.d.ts.map +1 -1
  718. package/dist/modes/interactive/components/session-selector-delete.js +2 -1
  719. package/dist/modes/interactive/components/session-selector-delete.js.map +1 -1
  720. package/dist/modes/interactive/components/session-selector-list.d.ts +1 -1
  721. package/dist/modes/interactive/components/session-selector-list.d.ts.map +1 -1
  722. package/dist/modes/interactive/components/session-selector-list.js +12 -11
  723. package/dist/modes/interactive/components/session-selector-list.js.map +1 -1
  724. package/dist/modes/interactive/components/session-selector.d.ts +1 -1
  725. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  726. package/dist/modes/interactive/components/session-selector.js +3 -3
  727. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  728. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
  729. package/dist/modes/interactive/components/settings-selector-handlers.js +9 -0
  730. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  731. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
  732. package/dist/modes/interactive/components/settings-selector-items.js +21 -0
  733. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  734. package/dist/modes/interactive/components/settings-selector-submenus.d.ts +3 -3
  735. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  736. package/dist/modes/interactive/components/settings-selector-submenus.js +6 -1
  737. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  738. package/dist/modes/interactive/components/settings-selector-types.d.ts +8 -1
  739. package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
  740. package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
  741. package/dist/modes/interactive/components/skill-invocation-message.d.ts +2 -1
  742. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  743. package/dist/modes/interactive/components/skill-invocation-message.js +3 -2
  744. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  745. package/dist/modes/interactive/components/tool-execution.d.ts +2 -0
  746. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  747. package/dist/modes/interactive/components/tool-execution.js +50 -27
  748. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  749. package/dist/modes/interactive/components/tree-selector-component.d.ts +1 -1
  750. package/dist/modes/interactive/components/tree-selector-component.d.ts.map +1 -1
  751. package/dist/modes/interactive/components/tree-selector-component.js +2 -3
  752. package/dist/modes/interactive/components/tree-selector-component.js.map +1 -1
  753. package/dist/modes/interactive/components/tree-selector-help.d.ts +1 -1
  754. package/dist/modes/interactive/components/tree-selector-help.d.ts.map +1 -1
  755. package/dist/modes/interactive/components/tree-selector-help.js +3 -1
  756. package/dist/modes/interactive/components/tree-selector-help.js.map +1 -1
  757. package/dist/modes/interactive/components/tree-selector-label-input.d.ts +1 -1
  758. package/dist/modes/interactive/components/tree-selector-label-input.d.ts.map +1 -1
  759. package/dist/modes/interactive/components/tree-selector-label-input.js +1 -0
  760. package/dist/modes/interactive/components/tree-selector-label-input.js.map +1 -1
  761. package/dist/modes/interactive/components/tree-selector-list.d.ts +1 -1
  762. package/dist/modes/interactive/components/tree-selector-list.d.ts.map +1 -1
  763. package/dist/modes/interactive/components/tree-selector-list.js +3 -0
  764. package/dist/modes/interactive/components/tree-selector-list.js.map +1 -1
  765. package/dist/modes/interactive/components/trust-selector.d.ts +1 -1
  766. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  767. package/dist/modes/interactive/components/trust-selector.js +4 -0
  768. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  769. package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
  770. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  771. package/dist/modes/interactive/components/user-message-selector.js +4 -0
  772. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  773. package/dist/modes/interactive/components/user-message.d.ts +4 -1
  774. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  775. package/dist/modes/interactive/components/user-message.js +10 -2
  776. package/dist/modes/interactive/components/user-message.js.map +1 -1
  777. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  778. package/dist/modes/interactive/external-editor.js +2 -1
  779. package/dist/modes/interactive/external-editor.js.map +1 -1
  780. package/dist/modes/interactive/interactive-agent-events.js +36 -18
  781. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  782. package/dist/modes/interactive/interactive-auth-login.js +9 -2
  783. package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
  784. package/dist/modes/interactive/interactive-auth-routing.d.ts.map +1 -1
  785. package/dist/modes/interactive/interactive-auth-routing.js +5 -1
  786. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
  787. package/dist/modes/interactive/interactive-bash-compact.js +16 -4
  788. package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
  789. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  790. package/dist/modes/interactive/interactive-deferred-startup.js +3 -0
  791. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  792. package/dist/modes/interactive/interactive-editor-actions.js +2 -0
  793. package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
  794. package/dist/modes/interactive/interactive-extension-context.js +12 -7
  795. package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
  796. package/dist/modes/interactive/interactive-extension-custom-ui.js +1 -0
  797. package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
  798. package/dist/modes/interactive/interactive-extension-dialogs.js +7 -0
  799. package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
  800. package/dist/modes/interactive/interactive-extension-widgets.js +7 -24
  801. package/dist/modes/interactive/interactive-extension-widgets.js.map +1 -1
  802. package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
  803. package/dist/modes/interactive/interactive-input-handling.js +9 -8
  804. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  805. package/dist/modes/interactive/interactive-mode-base.d.ts +52 -3
  806. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  807. package/dist/modes/interactive/interactive-mode-base.js +143 -5
  808. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  809. package/dist/modes/interactive/interactive-mode-deps.d.ts +2 -2
  810. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  811. package/dist/modes/interactive/interactive-mode-deps.js +2 -2
  812. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  813. package/dist/modes/interactive/interactive-mode-surface.d.ts +9 -3
  814. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  815. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  816. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  817. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  818. package/dist/modes/interactive/interactive-mode.js +1 -0
  819. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  820. package/dist/modes/interactive/interactive-model-routing.js +107 -41
  821. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  822. package/dist/modes/interactive/interactive-process-lifecycle.js +1 -1
  823. package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
  824. package/dist/modes/interactive/interactive-render-chat.js +24 -6
  825. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  826. package/dist/modes/interactive/interactive-selectors.js +44 -5
  827. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  828. package/dist/modes/interactive/interactive-session-runtime.js +1 -0
  829. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  830. package/dist/modes/interactive/interactive-slash-commands.js +9 -4
  831. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  832. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  833. package/dist/modes/interactive/interactive-startup.js +37 -18
  834. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  835. package/dist/modes/interactive/interactive-tui.d.ts +21 -0
  836. package/dist/modes/interactive/interactive-tui.d.ts.map +1 -0
  837. package/dist/modes/interactive/interactive-tui.js +279 -0
  838. package/dist/modes/interactive/interactive-tui.js.map +1 -0
  839. package/dist/modes/interactive/streaming-assistant-message.d.ts +34 -0
  840. package/dist/modes/interactive/streaming-assistant-message.d.ts.map +1 -0
  841. package/dist/modes/interactive/streaming-assistant-message.js +76 -0
  842. package/dist/modes/interactive/streaming-assistant-message.js.map +1 -0
  843. package/dist/modes/interactive/theme/catppuccin-frappe.json +1 -0
  844. package/dist/modes/interactive/theme/catppuccin-latte.json +1 -0
  845. package/dist/modes/interactive/theme/catppuccin-macchiato.json +1 -0
  846. package/dist/modes/interactive/theme/catppuccin-mocha.json +1 -0
  847. package/dist/modes/interactive/theme/dark.json +1 -0
  848. package/dist/modes/interactive/theme/light.json +1 -0
  849. package/dist/modes/interactive/theme/terminal-detection.d.ts +10 -0
  850. package/dist/modes/interactive/theme/terminal-detection.d.ts.map +1 -1
  851. package/dist/modes/interactive/theme/terminal-detection.js +19 -0
  852. package/dist/modes/interactive/theme/terminal-detection.js.map +1 -1
  853. package/dist/modes/interactive/theme/theme-class.d.ts +2 -2
  854. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  855. package/dist/modes/interactive/theme/theme-class.js +5 -1
  856. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  857. package/dist/modes/interactive/theme/theme-controller.d.ts +3 -1
  858. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  859. package/dist/modes/interactive/theme/theme-controller.js +10 -13
  860. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  861. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  862. package/dist/modes/interactive/theme/theme-loading.js +1 -0
  863. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  864. package/dist/modes/interactive/theme/theme-schema.d.ts +4 -0
  865. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  866. package/dist/modes/interactive/theme/theme-schema.js +2 -1
  867. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  868. package/dist/modes/interactive/theme/theme-schema.json +5 -1
  869. package/dist/modes/interactive/theme/theme.d.ts +1 -1
  870. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  871. package/dist/modes/interactive/theme/theme.js +1 -1
  872. package/dist/modes/interactive/theme/theme.js.map +1 -1
  873. package/dist/modes/interactive-engine/engine-custom-ui.d.ts +1 -1
  874. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  875. package/dist/modes/interactive-engine/engine-custom-ui.js +28 -11
  876. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  877. package/dist/modes/interactive-engine/engine-render-service.js +3 -3
  878. package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
  879. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +2 -1
  880. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
  881. package/dist/modes/interactive-engine/extension-ui-bridge.js +2 -2
  882. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
  883. package/dist/modes/interactive-engine/isolated-runtime.d.ts +7 -0
  884. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  885. package/dist/modes/interactive-engine/isolated-runtime.js +7 -0
  886. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  887. package/dist/modes/interactive-engine/protocol.d.ts +12 -10
  888. package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
  889. package/dist/modes/interactive-engine/protocol.js +14 -11
  890. package/dist/modes/interactive-engine/protocol.js.map +1 -1
  891. package/dist/modes/interactive-engine/remote-component.d.ts +11 -1
  892. package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
  893. package/dist/modes/interactive-engine/remote-component.js +48 -8
  894. package/dist/modes/interactive-engine/remote-component.js.map +1 -1
  895. package/dist/modes/interactive-engine/terminal-mode-controller.d.ts +19 -12
  896. package/dist/modes/interactive-engine/terminal-mode-controller.d.ts.map +1 -1
  897. package/dist/modes/interactive-engine/terminal-mode-controller.js +54 -35
  898. package/dist/modes/interactive-engine/terminal-mode-controller.js.map +1 -1
  899. package/dist/modes/json-event.d.ts +28 -0
  900. package/dist/modes/json-event.d.ts.map +1 -0
  901. package/dist/modes/json-event.js +12 -0
  902. package/dist/modes/json-event.js.map +1 -0
  903. package/dist/modes/print-mode.d.ts.map +1 -1
  904. package/dist/modes/print-mode.js +2 -1
  905. package/dist/modes/print-mode.js.map +1 -1
  906. package/dist/modes/rpc/rpc-client-process.d.ts +1 -0
  907. package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
  908. package/dist/modes/rpc/rpc-client-process.js +5 -1
  909. package/dist/modes/rpc/rpc-client-process.js.map +1 -1
  910. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  911. package/dist/modes/rpc/rpc-client.js +7 -2
  912. package/dist/modes/rpc/rpc-client.js.map +1 -1
  913. package/dist/modes/rpc/rpc-command-handler.js +1 -1
  914. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  915. package/dist/modes/rpc/rpc-event-buffer.d.ts +9 -0
  916. package/dist/modes/rpc/rpc-event-buffer.d.ts.map +1 -1
  917. package/dist/modes/rpc/rpc-event-buffer.js +10 -5
  918. package/dist/modes/rpc/rpc-event-buffer.js.map +1 -1
  919. package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
  920. package/dist/modes/rpc/rpc-extension-ui.js +3 -0
  921. package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
  922. package/dist/modes/rpc/rpc-input.js +1 -1
  923. package/dist/modes/rpc/rpc-input.js.map +1 -1
  924. package/dist/modes/rpc/rpc-output-buffer.d.ts +9 -0
  925. package/dist/modes/rpc/rpc-output-buffer.d.ts.map +1 -1
  926. package/dist/modes/rpc/rpc-output-buffer.js +10 -5
  927. package/dist/modes/rpc/rpc-output-buffer.js.map +1 -1
  928. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
  929. package/dist/modes/rpc/rpc-provider-auth.js +3 -0
  930. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
  931. package/dist/modes/rpc/rpc-responses.d.ts +1 -1
  932. package/dist/modes/rpc/rpc-responses.d.ts.map +1 -1
  933. package/dist/modes/rpc/rpc-responses.js +13 -1
  934. package/dist/modes/rpc/rpc-responses.js.map +1 -1
  935. package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -1
  936. package/dist/modes/rpc/rpc-session-binding.js +2 -1
  937. package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
  938. package/dist/modes/rpc/rpc-types.d.ts +9 -2
  939. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  940. package/dist/modes/rpc/rpc-types.js.map +1 -1
  941. package/dist/rpc-entry.js +2 -0
  942. package/dist/rpc-entry.js.map +1 -1
  943. package/dist/self-update-plan.d.ts.map +1 -1
  944. package/dist/self-update-plan.js +5 -4
  945. package/dist/self-update-plan.js.map +1 -1
  946. package/dist/server/create-harness.d.ts +53 -0
  947. package/dist/server/create-harness.d.ts.map +1 -0
  948. package/dist/server/create-harness.js +349 -0
  949. package/dist/server/create-harness.js.map +1 -0
  950. package/dist/utils/agent-attribution.d.ts +2 -0
  951. package/dist/utils/agent-attribution.d.ts.map +1 -0
  952. package/dist/utils/agent-attribution.js +2 -0
  953. package/dist/utils/agent-attribution.js.map +1 -0
  954. package/dist/utils/child-process.d.ts +3 -1
  955. package/dist/utils/child-process.d.ts.map +1 -1
  956. package/dist/utils/child-process.js +24 -4
  957. package/dist/utils/child-process.js.map +1 -1
  958. package/dist/utils/clipboard-image.d.ts.map +1 -1
  959. package/dist/utils/clipboard-image.js +2 -1
  960. package/dist/utils/clipboard-image.js.map +1 -1
  961. package/dist/utils/clipboard.d.ts.map +1 -1
  962. package/dist/utils/clipboard.js +12 -3
  963. package/dist/utils/clipboard.js.map +1 -1
  964. package/dist/utils/management-http.d.ts +23 -0
  965. package/dist/utils/management-http.d.ts.map +1 -0
  966. package/dist/utils/management-http.js +50 -0
  967. package/dist/utils/management-http.js.map +1 -0
  968. package/dist/utils/open-browser.d.ts.map +1 -1
  969. package/dist/utils/open-browser.js +2 -1
  970. package/dist/utils/open-browser.js.map +1 -1
  971. package/dist/utils/paths.d.ts +2 -0
  972. package/dist/utils/paths.d.ts.map +1 -1
  973. package/dist/utils/paths.js +13 -0
  974. package/dist/utils/paths.js.map +1 -1
  975. package/dist/utils/shell.d.ts.map +1 -1
  976. package/dist/utils/shell.js +17 -4
  977. package/dist/utils/shell.js.map +1 -1
  978. package/dist/utils/tool-result-images.d.ts +17 -0
  979. package/dist/utils/tool-result-images.d.ts.map +1 -0
  980. package/dist/utils/tool-result-images.js +41 -0
  981. package/dist/utils/tool-result-images.js.map +1 -0
  982. package/dist/utils/tools-manager.d.ts.map +1 -1
  983. package/dist/utils/tools-manager.js +7 -8
  984. package/dist/utils/tools-manager.js.map +1 -1
  985. package/dist/utils/version-check.d.ts +4 -0
  986. package/dist/utils/version-check.d.ts.map +1 -1
  987. package/dist/utils/version-check.js +20 -2
  988. package/dist/utils/version-check.js.map +1 -1
  989. package/docs/compaction.md +2 -1
  990. package/docs/custom-provider.md +15 -7
  991. package/docs/development.md +1 -0
  992. package/docs/docs.json +1 -0
  993. package/docs/environment-variables.md +4 -0
  994. package/docs/extensions.md +102 -18
  995. package/docs/i-have-adhd.md +36 -0
  996. package/docs/intercom.md +26 -6
  997. package/docs/json.md +2 -2
  998. package/docs/keybindings.md +55 -12
  999. package/docs/models/model-selection.md +34 -8
  1000. package/docs/models.md +28 -3
  1001. package/docs/providers.md +20 -2
  1002. package/docs/quickstart.md +5 -5
  1003. package/docs/rpc.md +18 -12
  1004. package/docs/sdk.md +43 -7
  1005. package/docs/security.md +10 -10
  1006. package/docs/sessions.md +2 -0
  1007. package/docs/settings.md +25 -5
  1008. package/docs/subagents.md +15 -30
  1009. package/docs/themes.md +5 -3
  1010. package/docs/tools.md +21 -1
  1011. package/docs/tui.md +41 -24
  1012. package/docs/usage.md +40 -14
  1013. package/docs/windows.md +2 -0
  1014. package/docs/workflows.md +216 -20
  1015. package/examples/extensions/custom-provider-anthropic/index.ts +9 -2
  1016. package/examples/extensions/custom-provider-gitlab-duo/index.ts +9 -2
  1017. package/examples/extensions/modal-editor.ts +8 -10
  1018. package/examples/extensions/rainbow-editor.ts +3 -2
  1019. package/examples/extensions/subagent/README.md +16 -45
  1020. package/examples/extensions/subagent/index.ts +6 -96
  1021. package/examples/extensions/subagent/render.ts +0 -78
  1022. package/examples/extensions/subagent/runner.ts +0 -3
  1023. package/examples/extensions/subagent/schemas.ts +0 -13
  1024. package/examples/extensions/subagent/types.ts +1 -2
  1025. package/examples/sdk/09-api-keys-and-oauth.ts +6 -2
  1026. package/examples/sdk/12-full-control.ts +8 -2
  1027. package/examples/sdk/README.md +4 -1
  1028. package/npm-shrinkwrap.json +191 -634
  1029. package/package.json +14 -7
  1030. package/dist/builtin/subagents/src/agents/chain-serializer.ts +0 -257
  1031. package/dist/builtin/subagents/src/runs/foreground/chain-execution-details.ts +0 -38
  1032. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +0 -280
  1033. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +0 -217
  1034. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +0 -271
  1035. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +0 -271
  1036. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +0 -200
  1037. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +0 -184
  1038. package/dist/builtin/subagents/src/runs/foreground/execution-structured-retries.ts +0 -19
  1039. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +0 -109
  1040. package/dist/builtin/subagents/src/runs/shared/chain-outputs.ts +0 -126
  1041. package/dist/builtin/subagents/src/runs/shared/dynamic-fanout.ts +0 -393
  1042. package/dist/builtin/subagents/src/runs/shared/structured-output.ts +0 -150
  1043. package/dist/builtin/subagents/src/runs/shared/workflow-graph.ts +0 -232
  1044. package/dist/builtin/subagents/src/slash/saved-chain-mapping.ts +0 -60
  1045. package/dist/builtin/subagents/src/tui/render-chain-graph.ts +0 -341
  1046. package/examples/extensions/subagent/prompts/implement-and-review.md +0 -10
  1047. package/examples/extensions/subagent/prompts/implement.md +0 -10
  1048. package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -9
@@ -6,6 +6,51 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.9.13-alpha.2] - 2026-08-12
10
+
11
+ ### Breaking Changes
12
+
13
+ - Custom workflow UI components must return `true` when they consume input and `false` when they do not. In fullscreen mode, an unhandled result lets the transcript process matching viewport navigation keys instead of swallowing them.
14
+ - Added `failed` to the `ctx.exit()` status union. Author-initiated failed exits persist their reason and partial declared outputs, return the discriminated `{ exited: true, status: "failed" }` child result instead of throwing, and default to non-resumable unless `resumable: true` is set. Downstream exhaustive switches over `WorkflowExitStatus` must handle the new failed-exit case ([#2242](https://github.com/bastani-inc/atomic/issues/2242)).
15
+
16
+ ### Changed
17
+
18
+ - Updated the Ralph research stage model configuration. The primary model moves from `openai-codex/gpt-5.6-luna:max` to `anthropic/claude-opus-5:high`, and the fallback chain is rebuilt around high/xhigh thinking levels: GPT-5.6 Sol at `xhigh` replaces the Luna variants, Claude Fable 5 and Claude Opus 4.8 step up from `low`/`medium` to `high`, GPT-5.5 and GLM-5.2 step up to `xhigh`, and Kimi K3 (`kimi-coding`, `moonshotai`, `moonshotai-cn`, and OpenRouter) plus `openrouter/sakana/fugu-ultra:high` join the chain.
19
+ - Extended workflow-authoring guidance with a stacked implementation-slices starter pattern: authors target roughly 100–500 changed lines between verification points by default, route each slice through a child lifecycle, explicitly create or check out each named branch before its child because `base_branch` and `git_worktree_dir` alone do not create feature branches, stack each verified branch and worktree, and stop at the first failed gate while preserving earlier verification ([#2262](https://github.com/bastani-inc/atomic/issues/2262)).
20
+ - Updated authored-workflow model guidance to treat benchmark thinking levels as measurement settings, assign effort by stage role and failure cost, require a compact `Stage | Model | Thinking | Role` declaration before launch, reserve `max` for high-cost-of-error roles or explicit user requests, and apply catalog-aware role policy to primary and fallback attempts ([#2203](https://github.com/bastani-inc/atomic/issues/2203)).
21
+ - Added bounded constructive-quorum deliberation to Goal and Ralph reviewer prompts: reviewers form independent preliminary verdicts, exchange evidence once over Intercom, and record evidence-backed verdict changes before the existing reducer counts final votes ([#2237](https://github.com/bastani-inc/atomic/issues/2237)).
22
+
23
+ - Rebuilt the workflow graph overlay on pi-tui 0.84.1's `VStack` and `ScrollView` layout primitives. The graph body now adapts to terminal height and resize, supports vertical wheel scrolling and a draggable scrollbar, and keeps wide-graph horizontal panning and existing prompt/navigation key handling ([#2223](https://github.com/bastani-inc/atomic/issues/2223)).
24
+ - Retired the legacy terminal-row callback thread from graph and stage-chat views. The two fullscreen-frame consumers still read `terminal.rows` directly: GraphView uses it for the overlay frame, and StageChatView uses it for the chat line count, falling back to the unhosted `VIEW_LINE_COUNT = 32` frame when no host is present. `PiCustomComponent.render` supplies only a width, so the #2223 viewport-row criterion remains partial at those call paths ([#2223](https://github.com/bastani-inc/atomic/issues/2223)).
25
+
26
+ - Workflow command, worktree Git/setup-hook, and Playwright CLI subprocesses now receive `AI_AGENT=atomic` for generic child-process attribution without mutating caller-supplied environment objects.
27
+
28
+ ### Fixed
29
+ - Fixed completed `ctx.exit()` runs losing the reserved returned-status convention, legacy child replay records losing their exit discriminator, and failed author-exit resume surfaces falling back to snapshot inspection instead of durable retry.
30
+ - Fixed workflow graph node cards appending the Codex `fast` marker to dependency metadata; cards now show only topology details such as `root`, `1 dep`, or `<n> deps` while fast-mode state remains available to the stage and its model label ([#2337](https://github.com/bastani-inc/atomic/issues/2337)).
31
+
32
+ - Fixed the workflow graph overlay statusline echoing the `i-have-adhd` extension's `ADHD Mode` badge. The badge remains in the main-chat footer while other extension statuses continue to render in the overlay ([#2341](https://github.com/bastani-inc/atomic/issues/2341)).
33
+
34
+ - Fixed fullscreen workflow graph and stage-chat mouse routing. Focused workflow overlays now receive SGR/X10 wheel and click press/release sequences through the host's bounded custom-input reply channel before pi-tui's alternate-screen viewport, restoring graph scrolling and click-to-attach without a workflow-owned TTY-tracking seam; the fullscreen route also mirrors consumed left-button events into pi-tui's application-owned selection path ([#2303](https://github.com/bastani-inc/atomic/issues/2303)).
35
+ - Fixed graph overlay rendering to keep its live vertical position in pi-tui's `ScrollView` and preserve OSC-8 hyperlink terminators when normalizing layout rows.
36
+
37
+ - Fixed switcher wheel input scrolling an obscured graph and the scrollbar covering the final graph column; overflow now reserves its scrollbar column and the switcher owns wheel selection ([#2223](https://github.com/bastani-inc/atomic/issues/2223)).
38
+ - Restored natural graph geometry for unhosted overlays by removing the fixed-height fallback and kept pi-tui's layout metadata aligned with sparse, deeply scrolled content, so large graphs track their natural geometry without corrupting OSC-8 rows ([#2223](https://github.com/bastani-inc/atomic/issues/2223)).
39
+
40
+ - Fixed the inline workflow form editor not inheriting the host's `autocompleteMaxVisible` setting when Atomic installs it as a custom editor.
41
+ - Fixed late workflow messages and MCP scope cleanup that finish after an extension reload. Stale event-bus calls now stop without retrying through stale APIs, while active routes keep their normal fallback behavior.
42
+ - Fixed workflow stale-context guards by consuming the host's exported predicate instead of copying its error-message marker.
43
+ - Fixed late-message routing to reject stale drops consistently for Intercom and generic batches, so a resolved route means delivery was accepted instead of silently treating a dropped message as routed; non-stale failures still propagate.
44
+
45
+ - Fixed the `DISPATCHED` confirmation panel being torn apart by any workflow input containing a newline. Input values were truncated by visible width, which a control character does not have, so an embedded newline survived truncation and emitted extra physical lines that no border ever wrapped — the box was destroyed from that row down. Multi-line inputs are ordinary, so this fired for most real launches: a `prompt` or an `acceptance_criteria` block reliably reproduced it. String values and the object/array JSON projection now collapse control characters, `U+2028`, and `U+2029` to single spaces before truncation, so a run card stays one row per value. `U+2028`/`U+2029` are included because `JSON.stringify` does not escape them and some terminals still break lines on them. As a side effect, escape sequences in an input value can no longer inject ANSI styling into the chat surface.
46
+ - Fixed workflow stages being unable to use the `subagent` tool at all. The stage policy set `managementActions: "full"` and `fanoutAuthorized: false` together, which contradict: stages could neither delegate nor, because of the companion subagents defect, run read-only management such as `subagent list`. Workflow stages are top-level sessions rather than subagent children, so the policy now sets `fanoutAuthorized: true`, restoring the delegation the workflow docs already describe. Nesting remains bounded by the typed in-process depth policy and Rust admission’s five-level ceiling ([#2220](https://github.com/bastani-inc/atomic/pull/2220), regression from [#2205](https://github.com/bastani-inc/atomic/pull/2205)).
47
+ - Fixed nested subagents in workflow-stage sessions losing the bundled `subagent` extension. In-process child resource loading now carries the bundled package roots and disables only the workflow extension's repeated stage lifecycle, so a stage can delegate and its nested child receives the bundled tools instead of only the base built-in ones ([#2220](https://github.com/bastani-inc/atomic/pull/2220), regression from [#2205](https://github.com/bastani-inc/atomic/pull/2205)).
48
+ - Fixed a stage chat opened on a stage that was already mid-turn showing an empty transcript. The stage's assistant message joins the handle's message list only when its turn ends, and streaming updates now carry a delta rather than the message so far, so a chat mounted after the stream started had nothing to draw and nothing that would restate it — a stage held mid-turn stayed blank for the whole turn. The chat now seeds itself from the stage session's in-flight assistant message when it mounts, and the deltas that arrive after that continue the same message.
49
+
50
+ ### Removed
51
+
52
+ - Removed workflow-owned mouse-scroll reporting and attached-stage copy mode. Fullscreen pi-tui now keeps application-owned drag and multi-click selection available over workflow overlays, and `ctrl+t` is left to the host keybindings. Copy still uses OSC 52; terminals that refuse OSC 52 writes require the modifier-drag bypass (Shift/Option, as provided by the terminal).
53
+
9
54
  ## [0.9.13-alpha.1] - 2026-08-05
10
55
 
11
56
  ### Added
@@ -298,6 +298,44 @@ import openClaudeDesignWorkflow from "@bastani/workflows/builtin/open-claude-des
298
298
 
299
299
  Only `workflow({...})` definitions can be passed to `ctx.workflow(...)`; registry names, strings, and path objects are intentionally not supported for child workflow calls. Missing or invalid module imports fail when the workflow file itself is loaded. A parent receives the child's declared `outputs` from the child `run()` return object. Missing required outputs, schema type mismatches, returning an undeclared output, and non-JSON-serializable returned child values fail the child call before the parent continues.
300
300
 
301
+ ### Early exit with `ctx.exit()`
302
+
303
+ Use `ctx.exit()` when the workflow intentionally ends before its normal `run()` return. It accepts `completed | skipped | cancelled | blocked | failed`, an optional reason, partial declared outputs, and `resumable` for an author-initiated failed outcome.
304
+
305
+ ```typescript
306
+ if (allRejected) {
307
+ return ctx.exit({
308
+ status: "failed",
309
+ reason: "The upstream API rejected every candidate",
310
+ outputs: { attempted: candidates.length },
311
+ resumable: true, // failed exits default to false
312
+ });
313
+ }
314
+ ```
315
+
316
+ Choose the status by the outcome:
317
+
318
+ - `completed` means the objective was met and declared outputs are complete and trustworthy.
319
+ - `skipped` means a precondition made the run a valid no-op; no work was needed.
320
+ - `cancelled` means the work is no longer wanted; it is a decision, not a defect.
321
+ - `blocked` means valid progress needs a changed condition or a later decision. A bounded reviewer or repair loop that does not converge is blocked, not failed.
322
+ - `failed` means required work was attempted and definitively could not complete. Do not use it for a non-converged reviewer loop. Failed exits are non-resumable by default; set `resumable: true` when a later durable retry is intended. `resumable` is valid only with `failed`; another status records a non-resumable authoring failure.
323
+
324
+ `reason` from a valid author exit is persisted and shown in status and lifecycle notices. An exit rejected during validation is finalized as an ordinary failed run rather than an accepted author exit. `outputs` may be a partial subset of the declared `outputs` contract, but every provided key must be declared, schema-valid, and JSON-serializable. Missing required keys are allowed only on the exit path. A durable retry re-dispatches the workflow with completed checkpoints replayed. The low-level `resumeRun()` helper only inspects terminal runs and reports the durable retry path; it does not silently claim that it resumed one.
325
+
326
+ When a child uses `ctx.exit()`, `ctx.workflow(child)` returns a discriminated result instead of throwing. Check `child.exited` before reading a required output:
327
+
328
+ ```typescript
329
+ const child = await ctx.workflow(researchWorkflow);
330
+ if (child.exited === true) {
331
+ // child.status includes failed; outputs may be partial.
332
+ return ctx.exit({ status: child.status, reason: child.exitReason ?? "research stopped early" });
333
+ }
334
+ return { report: child.outputs.report };
335
+ ```
336
+
337
+ An author-initiated failed exit returns `{ exited: true, status: "failed" }` to its parent with its reason and partial outputs. An unintentional child failure still throws, so `exited` remains an intent discriminator.
338
+
301
339
  ### Reusable Git worktrees
302
340
 
303
341
  Use `gitWorktreeDir` when a workflow should run in a reusable Git worktree instead of the invoking checkout. The executor creates the worktree if it is missing, reuses it when it already exists as a same-repository worktree root, defaults workflow `ctx.cwd` to the matching path inside that worktree for `worktreeFromInputs`, and defaults stage/task `cwd` to that worktree path.
@@ -425,6 +463,8 @@ export default workflow({
425
463
 
426
464
  Set `model` and `fallbackModels` on the authored stage/task/chain/parallel item that needs them.
427
465
 
466
+ For authored workflows, choose thinking effort by stage role and failure cost rather than copying a benchmark's level onto every stage. Before launch, record each model stage's role, failure cost, primary model, thinking level, and fallback policy, then print a compact `Stage | Model | Thinking | Role` assignment with a short rationale. Reserve `max` for high-cost-of-error roles or an explicit user request; use `high` for demanding analysis, planning, and repair; use `medium` for user-impact review and reporting; and keep deterministic checks as tool nodes with no model call. Apply the same role policy independently to every fallback, not a mechanical `max` inheritance. Use only levels listed in the configured catalog's `availableThinkingLevels`; if a level is unsupported, choose another catalog model or leave the stage unpinned rather than inventing a suffix.
467
+
428
468
  When pi exposes its model registry, workflow runs validate user-specified `model` / `fallbackModels` before starting model-backed work and report all unavailable or ambiguous IDs together. Bare model IDs are accepted only when they resolve uniquely or match the current provider; otherwise use `provider/model`. Fallback attempts may send the same prompt/context to a different provider, so choose fallbacks that fit your cost, privacy, and data-handling requirements.
429
469
 
430
470
  ### `createRegistry` — grouping workflows
@@ -595,7 +635,7 @@ Tradeoff: `Type.Unsafe<T>()` does not deeply validate at runtime — it trusts t
595
635
 
596
636
  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.
597
637
 
598
- Named workflow launches always run as **background tasks** in interactive sessions. Run `/workflow connect <run>` to see agents working and chat with and steer each stage. Foreground launches are reserved for explicit user requests or technical requirements, with notice before launch. Press **F2** to open the same 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. `ctrl+x` is the workflow hierarchy chord: attached stage chats show **ctrl+x return to graph**, while graph surfaces show **ctrl+x leave graph · return to main chat**. Workflow surfaces consume it before configurable editor/tool actions. Composer and prompt drafts survive leaving a stage, and pending custom questions remain pending for reattachment. `ctrl+d` and `q` are not workflow navigation controls; ordinary editor/prompt Ctrl+D behavior and printable prompt `q` remain available. Existing `esc`, `ctrl+c`, and graph `h` close/hide behavior is unchanged. While the graph pane is active, vertical wheel/trackpad gestures pan vertically and horizontal gestures pan wide graphs left and right when the terminal reports them, without falling through to the main chat or terminal scrollback. 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+x` 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.
638
+ Named workflow launches always run as **background tasks** in interactive sessions. Run `/workflow connect <run>` to see agents working and chat with and steer each stage. Foreground launches are reserved for explicit user requests or technical requirements, with notice before launch. Press **F2** to open the same 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. `ctrl+x` is the workflow hierarchy chord: attached stage chats show **ctrl+x return to graph**, while graph surfaces show **ctrl+x leave graph · return to main chat**. Workflow surfaces consume it before configurable editor/tool actions. Composer and prompt drafts survive leaving a stage, and pending custom questions remain pending for reattachment. `ctrl+d` and `q` are not workflow navigation controls; ordinary editor/prompt Ctrl+D behavior and printable prompt `q` remain available. Existing `esc`, `ctrl+c`, and graph `h` close/hide behavior is unchanged. While the graph pane is active, vertical wheel/trackpad gestures pan vertically and horizontal gestures pan wide graphs left and right when the terminal reports them, without falling through to the main chat or terminal scrollback. Focused graph and stage-chat overlays receive those gestures through the fullscreen application route. Fullscreen pi-tui owns application selection, so drag and multi-click selection also work over workflow overlays; copied text uses OSC 52, and terminals that refuse OSC 52 writes rely on the modifier-drag bypass (Shift/Option, as provided by the terminal). `ctrl+t` is not a workflow control: focused workflow overlays leave it to the host `app.thinking.toggle` action, while inline tree selectors keep `app.tree.filter.noTools`. Human input is detected when those runtime `ctx.ui.*` calls execute; workflows no longer have a declaration-time HIL flag.
599
639
 
600
640
  Typing into an attached stage chat and pressing Enter steers: the message is consumed after the current assistant response finishes its tool batch and before the next model request, matching normal session steering. Ctrl+F queues a follow-up, consumed only when the agent would otherwise stop. Queued entries belong to the stage session rather than the pane, so leaving the stage and reattaching restores the pending `Steering:` / `Follow-up:` rows, and a detached stage node carries a `✉ N queued` badge in the graph.
601
641
 
@@ -3,6 +3,7 @@ import { mkdirSync } from "node:fs";
3
3
  import { tmpdir, userInfo } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { Type } from "typebox";
6
+ import { createChildProcessEnvironment } from "@bastani/atomic";
6
7
  import type { WorkflowTaskResult } from "../src/shared/types.js";
7
8
 
8
9
 
@@ -229,6 +230,7 @@ export function ensurePlaywrightCli(): PlaywrightCliStatus {
229
230
  stdio: "ignore",
230
231
  timeout: 15_000,
231
232
  shell: isWindows,
233
+ env: createChildProcessEnvironment(),
232
234
  });
233
235
  return probe.status === 0;
234
236
  } catch {
@@ -265,6 +267,7 @@ export function ensurePlaywrightCli(): PlaywrightCliStatus {
265
267
  stdio: "ignore",
266
268
  timeout: 180_000,
267
269
  shell: isWindows,
270
+ env: createChildProcessEnvironment(),
268
271
  });
269
272
  if (install.status === 0) {
270
273
  return {
@@ -48,29 +48,34 @@ export const promptEngineerModelConfig = {
48
48
  };
49
49
 
50
50
  export const researchModelConfig = {
51
- model: "openai-codex/gpt-5.6-luna:max",
51
+ model: "anthropic/claude-opus-5:high",
52
52
  fallbackModels: [
53
- "github-copilot/gpt-5.6-luna:max",
54
- "openai/gpt-5.6-luna:max",
55
- "anthropic/claude-opus-5:low",
56
- "github-copilot/claude-opus-5:low",
57
- "anthropic/claude-fable-5:low",
58
- "github-copilot/claude-fable-5:low",
59
- "openai-codex/gpt-5.5:medium",
60
- "github-copilot/gpt-5.5:medium",
61
- "openai/gpt-5.5:medium",
62
- "anthropic/claude-opus-4-8:medium",
63
- "github-copilot/claude-opus-4.8:medium",
53
+ "github-copilot/claude-opus-5:high",
54
+ "openai-codex/gpt-5.6-sol:xhigh",
55
+ "github-copilot/gpt-5.6-sol:xhigh",
56
+ "openai/gpt-5.6-sol:xhigh",
57
+ "anthropic/claude-fable-5:high",
58
+ "github-copilot/claude-fable-5:high",
59
+ "kimi-coding/k3:max",
60
+ "moonshotai/kimi-k3:max",
61
+ "moonshotai-cn/kimi-k3:max",
62
+ "openai-codex/gpt-5.5:xhigh",
63
+ "github-copilot/gpt-5.5:xhigh",
64
+ "openai/gpt-5.5:xhigh",
65
+ "anthropic/claude-opus-4-8:high",
66
+ "github-copilot/claude-opus-4.8:high",
64
67
  "xai/grok-4.5:high",
65
- "zai/glm-5.2:high",
66
- "zai-coding-cn/glm-5.2:high",
67
- "openrouter/openai/gpt-5.6-luna:max",
68
- "openrouter/anthropic/claude-opus-5:low",
69
- "openrouter/openai/gpt-5.5:medium",
70
- "openrouter/anthropic/claude-fable-5:low",
71
- "openrouter/anthropic/claude-opus-4-8:medium",
68
+ "zai/glm-5.2:xhigh",
69
+ "zai-coding-cn/glm-5.2:xhigh",
70
+ "openrouter/anthropic/claude-opus-5:high",
71
+ "openrouter/openai/gpt-5.6-sol:xhigh",
72
+ "openrouter/anthropic/claude-fable-5:high",
73
+ "openrouter/moonshotai/kimi-k3:max",
74
+ "openrouter/sakana/fugu-ultra:high",
75
+ "openrouter/openai/gpt-5.5:xhigh",
76
+ "openrouter/anthropic/claude-opus-4-8:high",
72
77
  "openrouter/x-ai/grok-4.5",
73
- "openrouter/z-ai/glm-5.2:high"
78
+ "openrouter/z-ai/glm-5.2:xhigh"
74
79
  ],
75
80
  excludedTools: ["ask_user_question"],
76
81
  };
@@ -117,10 +117,13 @@ export const CONTRACT_FIDELITY_AUDIT = [
117
117
  ].join("\n");
118
118
 
119
119
  export const REVIEWER_INTERCOM_COORDINATION_PROTOCOL = [
120
- "Concurrent reviewer coordination:",
120
+ "Concurrent reviewer coordination (constructive quorum):",
121
121
  "- At review start, use Intercom to discover sibling reviewers and share validation plans and check ownership.",
122
122
  "- Claim, serialize, announce, and release expensive or conflicting shared-checkout/environment work such as suites, builds, package operations, browser/E2E sessions, migrations, and generated-artifact steps; share reusable command evidence.",
123
- "- Coordination is operational only: inspect independently and return your own verdict rather than copying or deferring to sibling conclusions.",
123
+ "- First, inspect independently and form a preliminary assessment before reading or relying on sibling findings or verdicts. After the exchange, inspect independently and return your own verdict rather than copying or deferring to sibling conclusions.",
124
+ "- Then run exactly one bounded evidence-exchange round over Intercom: share your preliminary verdict, concise findings, and evidence; challenge blocking findings, surface defects a sibling missed, and correct objective/acceptance-criteria misreadings. Do not start a second round or continue substantive discussion.",
125
+ "- Verdicts change only through concrete evidence, never through deference to a sibling's approval or rejection; inspect shared evidence yourself before deciding.",
126
+ "- In `overall_explanation`, record whether deliberation changed your preliminary verdict and, if it did, which concrete evidence caused the change. If it did not, say so; return your own structured decision even when dissent remains.",
124
127
  ].join("\n");
125
128
 
126
129
  export const REVIEWER_INDEPENDENT_VERIFICATION_CONTRACT = [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/workflows",
3
- "version": "0.9.13-alpha.1",
3
+ "version": "0.9.13-alpha.2",
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.83.0"
86
+ "@earendil-works/pi-tui": "^0.84.1"
87
87
  },
88
88
  "peerDependenciesMeta": {
89
89
  "@bastani/atomic": {
@@ -231,7 +231,7 @@ export class InMemoryDurableBackend implements DurableWorkflowBackend {
231
231
  ...(handle.rootWorkflowId !== undefined ? { rootWorkflowId: handle.rootWorkflowId } : {}),
232
232
  ...(handle.resumable !== undefined ? { resumable: handle.resumable } : {}),
233
233
  ...workflowFailureFields(
234
- handle.error !== undefined ? handle : handle.status === "running" ? undefined : existing?.handle,
234
+ hasWorkflowFailureMetadata(handle) ? handle : handle.status === "running" ? undefined : existing?.handle,
235
235
  ),
236
236
  ...(handle.ownerExecutorId !== undefined
237
237
  ? { ownerExecutorId: handle.ownerExecutorId }
@@ -371,6 +371,8 @@ export class InMemoryDurableBackend implements DurableWorkflowBackend {
371
371
  rec.handle = {
372
372
  ...rec.handle,
373
373
  error: undefined,
374
+ exited: undefined,
375
+ exitReason: undefined,
374
376
  failureKind: undefined,
375
377
  failureCode: undefined,
376
378
  failureRecoverability: undefined,
@@ -527,12 +529,27 @@ function isHistoricalHandle(handle: DurableWorkflowHandle): boolean {
527
529
  );
528
530
  }
529
531
 
532
+ function hasWorkflowFailureMetadata(handle: Partial<DurableWorkflowHandle>): boolean {
533
+ return (
534
+ handle.error !== undefined ||
535
+ handle.exited !== undefined ||
536
+ handle.exitReason !== undefined ||
537
+ handle.failureKind !== undefined ||
538
+ handle.failureCode !== undefined ||
539
+ handle.failureRecoverability !== undefined ||
540
+ handle.failureDisposition !== undefined ||
541
+ handle.failedToolNodeId !== undefined
542
+ );
543
+ }
544
+
530
545
  function workflowFailureFields(
531
546
  handle: Partial<DurableWorkflowHandle> | undefined,
532
547
  ): Partial<DurableWorkflowFailureMetadata> {
533
548
  if (handle === undefined) return {};
534
549
  return {
535
550
  ...(handle.error !== undefined ? { error: handle.error } : {}),
551
+ ...(handle.exited !== undefined ? { exited: handle.exited } : {}),
552
+ ...(handle.exitReason !== undefined ? { exitReason: handle.exitReason } : {}),
536
553
  ...(handle.failureKind !== undefined ? { failureKind: handle.failureKind } : {}),
537
554
  ...(handle.failureCode !== undefined ? { failureCode: handle.failureCode } : {}),
538
555
  ...(handle.failureRecoverability !== undefined ? { failureRecoverability: handle.failureRecoverability } : {}),
@@ -119,15 +119,27 @@ export function validateRunGroups(
119
119
  grouped: Map<string, StageDraft[]>,
120
120
  rootRunId: string,
121
121
  tools: readonly DurableToolCheckpoint[],
122
+ checkpoints: readonly DurableCheckpoint[],
122
123
  ): boolean {
123
124
  const toolsFor = (runId: string) =>
124
125
  tools.filter((checkpoint) => (checkpoint.topology?.run?.runId ?? rootRunId) === runId);
125
126
  const owners = new Map<string, StageDraft>();
127
+ const syntheticChildIds = new Set<string>();
126
128
  for (const [parentRunId, drafts] of grouped) {
127
129
  for (const draft of drafts) {
128
130
  const childRunId = childRunIdFromDraft(draft);
129
131
  if (childRunId === undefined) continue;
130
- if (!grouped.has(childRunId) || childRunId === parentRunId || owners.has(childRunId)) return false;
132
+ if (childRunId === parentRunId || owners.has(childRunId)) return false;
133
+ if (!grouped.has(childRunId)) {
134
+ if (
135
+ !isSyntheticExitedChild(draft, parentRunId, childRunId, rootRunId) ||
136
+ childScopedEvidenceExists(checkpoints, draft.replayKey, childRunId)
137
+ )
138
+ return false;
139
+ syntheticChildIds.add(childRunId);
140
+ owners.set(childRunId, draft);
141
+ continue;
142
+ }
131
143
  const childRun = runTopologyFor(grouped.get(childRunId)!, toolsFor(childRunId));
132
144
  if (
133
145
  childRun?.parentRunId !== parentRunId ||
@@ -146,6 +158,7 @@ export function validateRunGroups(
146
158
  return false;
147
159
  }
148
160
  for (const runId of owners.keys()) {
161
+ if (syntheticChildIds.has(runId)) continue;
149
162
  const seen = new Set<string>();
150
163
  let current: string | undefined = runId;
151
164
  while (current !== undefined && current !== rootRunId) {
@@ -158,6 +171,48 @@ export function validateRunGroups(
158
171
  return true;
159
172
  }
160
173
 
174
+ export function isSyntheticExitedChild(
175
+ draft: StageDraft,
176
+ parentRunId: string,
177
+ childRunId: string,
178
+ rootRunId: string,
179
+ ): boolean {
180
+ const child = workflowChildFromDraft(draft);
181
+ const boundary = draft.topology?.boundary;
182
+ return (
183
+ child?.runId === childRunId &&
184
+ child.exited === true &&
185
+ boundary?.event === "terminal" &&
186
+ boundary.status === "completed" &&
187
+ boundary.child.runId === childRunId &&
188
+ boundary.child.parentRunId === parentRunId &&
189
+ boundary.child.parentStageId === draft.topology?.stageId &&
190
+ boundary.child.rootRunId === rootRunId
191
+ );
192
+ }
193
+
194
+ /** Raw scoped records disprove a zero-stage child reconstruction. */
195
+ export function childScopedEvidenceExists(
196
+ checkpoints: readonly DurableCheckpoint[],
197
+ boundaryReplayKey: string,
198
+ childRunId: string,
199
+ ): boolean {
200
+ const prefix = `${boundaryReplayKey}:`;
201
+ return checkpoints.some((checkpoint) => {
202
+ const lookupIdentity =
203
+ checkpoint.kind === "tool"
204
+ ? checkpoint.argsHash
205
+ : checkpoint.kind === "ui"
206
+ ? checkpoint.promptHash
207
+ : checkpoint.replayKey;
208
+ return (
209
+ checkpoint.checkpointId.startsWith(prefix) ||
210
+ lookupIdentity.startsWith(prefix) ||
211
+ (checkpoint.kind !== "ui" && checkpoint.topology?.run?.runId === childRunId)
212
+ );
213
+ });
214
+ }
215
+
161
216
  export function retainReachableRunGroups(grouped: Map<string, StageDraft[]>, rootRunId: string): void {
162
217
  const reachable = new Set([rootRunId]);
163
218
  const pending = [rootRunId];
@@ -267,14 +322,16 @@ function valueOrExisting<
267
322
 
268
323
  export function workflowChildFromDraft(draft: StageDraft): StageSnapshot["workflowChild"] | undefined {
269
324
  const strict = parseWorkflowChildResult(draft.output);
270
- const child = strict ?? (hasCurrentStageIdentity(draft) ? undefined : parseLegacyWorkflowChildResult(draft.output));
325
+ const legacy = hasCurrentStageIdentity(draft) ? undefined : parseLegacyWorkflowChildResult(draft.output);
326
+ const child = strict ?? legacy;
271
327
  if (child === undefined) return undefined;
328
+ const exited = strict?.exited ?? false;
272
329
  return {
273
330
  alias: child.workflow,
274
331
  workflow: child.workflow,
275
332
  runId: child.runId,
276
333
  status: child.status,
277
- ...(child.exited !== undefined ? { exited: child.exited } : {}),
334
+ exited,
278
335
  outputs: child.outputs,
279
336
  ...(typeof child.exitReason === "string" ? { exitReason: child.exitReason } : {}),
280
337
  };
@@ -7,7 +7,9 @@ import {
7
7
  boundaryOwner,
8
8
  childRunIdFromDraft,
9
9
  childRunStatus,
10
+ childScopedEvidenceExists,
10
11
  compareDraftSourceOrder,
12
+ isSyntheticExitedChild,
11
13
  mergeStageDraft,
12
14
  mergeStageGroup,
13
15
  retainReachableRunGroups,
@@ -107,6 +109,8 @@ export function completedWorkflowRunSnapshots(
107
109
  endedAt: handle.updatedAt,
108
110
  durationMs: rootDuration,
109
111
  ...(handle.error !== undefined ? { error: handle.error } : {}),
112
+ ...(handle.exited !== undefined ? { exited: handle.exited } : {}),
113
+ ...(handle.exitReason !== undefined ? { exitReason: handle.exitReason } : {}),
110
114
  ...(handle.failureKind !== undefined ? { failureKind: handle.failureKind } : {}),
111
115
  ...(handle.failureCode !== undefined ? { failureCode: handle.failureCode } : {}),
112
116
  ...(handle.failureRecoverability !== undefined ? { failureRecoverability: handle.failureRecoverability } : {}),
@@ -284,7 +288,26 @@ function runSnapshotsFromCheckpoints(
284
288
  }
285
289
  for (const group of grouped.values()) group.sort(compareDraftSourceOrder);
286
290
  retainReachableRunGroups(grouped, rootRunId);
287
- if (!validateRunGroups(grouped, rootRunId, toolCheckpoints)) return [];
291
+ if (!validateRunGroups(grouped, rootRunId, toolCheckpoints, checkpoints)) return [];
292
+ const syntheticChildren: Array<{
293
+ readonly parentRunId: string;
294
+ readonly owner: StageDraft;
295
+ readonly child: NonNullable<StageSnapshot["workflowChild"]>;
296
+ }> = [];
297
+ for (const [parentRunId, runDrafts] of grouped) {
298
+ for (const draft of runDrafts) {
299
+ const child = workflowChildFromDraft(draft);
300
+ if (child?.exited !== true || grouped.has(child.runId)) continue;
301
+ if (
302
+ !isSyntheticExitedChild(draft, parentRunId, child.runId, rootRunId) ||
303
+ childScopedEvidenceExists(checkpoints, draft.replayKey, child.runId)
304
+ ) {
305
+ if (strict) return [];
306
+ continue;
307
+ }
308
+ syntheticChildren.push({ parentRunId, owner: draft, child });
309
+ }
310
+ }
288
311
 
289
312
  const idMaps = new Map<string, Map<string, string>>();
290
313
  for (const [runId, runDrafts] of grouped) {
@@ -321,6 +344,7 @@ function runSnapshotsFromCheckpoints(
321
344
  }
322
345
 
323
346
  const runs: RunSnapshot[] = [];
347
+ const emittedRunIds = new Set<string>();
324
348
  for (const [runId, runDrafts] of grouped) {
325
349
  const ids = idMaps.get(runId)!;
326
350
  const ownedTools = toolCheckpoints.filter(
@@ -361,6 +385,7 @@ function runSnapshotsFromCheckpoints(
361
385
  const parentStageId =
362
386
  declaredParentStageId ??
363
387
  (boundarySourceId === undefined ? undefined : idMaps.get(parentRunId)?.get(boundarySourceId));
388
+ const ownerChild = owner === undefined ? undefined : workflowChildFromDraft(owner);
364
389
  runs.push({
365
390
  id: runId,
366
391
  name: run?.runName ?? rootRunName,
@@ -374,6 +399,47 @@ function runSnapshotsFromCheckpoints(
374
399
  ...(run?.parentRunId !== undefined ? { parentRunId: run.parentRunId } : {}),
375
400
  ...(parentStageId !== undefined ? { parentStageId } : {}),
376
401
  ...(run?.rootRunId !== undefined ? { rootRunId: run.rootRunId } : {}),
402
+ ...(ownerChild?.exited === true
403
+ ? {
404
+ result: ownerChild.outputs,
405
+ exited: true,
406
+ ...(ownerChild.exitReason !== undefined ? { exitReason: ownerChild.exitReason } : {}),
407
+ }
408
+ : {}),
409
+ resumable: false,
410
+ });
411
+ emittedRunIds.add(runId);
412
+ }
413
+ for (const { parentRunId, owner, child } of syntheticChildren) {
414
+ if (!emittedRunIds.has(parentRunId)) {
415
+ if (strict) return [];
416
+ continue;
417
+ }
418
+ const topology = owner.topology!;
419
+ const boundary = topology.boundary!;
420
+ const parentStageId = idMaps.get(parentRunId)?.get(topology.stageId);
421
+ if (parentStageId === undefined) {
422
+ if (strict) return [];
423
+ continue;
424
+ }
425
+ const startedAt = owner.startedAt ?? owner.firstCompletedAt;
426
+ const endedAt = owner.endedAt ?? owner.firstCompletedAt;
427
+ runs.push({
428
+ id: child.runId,
429
+ name: boundary.child.runName,
430
+ inputs: {},
431
+ status: child.status,
432
+ stages: [],
433
+ toolNodes: [],
434
+ startedAt,
435
+ endedAt,
436
+ durationMs: Math.max(0, endedAt - startedAt),
437
+ parentRunId,
438
+ parentStageId,
439
+ rootRunId: boundary.child.rootRunId,
440
+ result: child.outputs,
441
+ exited: true,
442
+ ...(child.exitReason !== undefined ? { exitReason: child.exitReason } : {}),
377
443
  resumable: false,
378
444
  });
379
445
  }
@@ -1,6 +1,7 @@
1
1
  import type { RunSnapshot } from "../shared/store-types.js";
2
2
  import type { DurableWorkflowBackend } from "./backend.js";
3
3
  import { durableNestedRunSnapshots } from "./completed-catalog.js";
4
+ import { parseWorkflowChildResult } from "./workflow-child-result.js";
4
5
 
5
6
  /** Return one cached boundary's exact subtree only when every selected node is fully terminal. */
6
7
  export function durableCompletedNestedRunSubtree(
@@ -10,6 +11,12 @@ export function durableCompletedNestedRunSubtree(
10
11
  ): readonly RunSnapshot[] | undefined {
11
12
  const nested = durableNestedRunSnapshots(backend, rootWorkflowId);
12
13
  if (!nested.some((run) => run.id === childRunId)) return undefined;
14
+ const intentionalExitStatuses = new Map<string, RunSnapshot["status"]>();
15
+ for (const checkpoint of backend.listCheckpoints(rootWorkflowId)) {
16
+ if (checkpoint.kind !== "stage") continue;
17
+ const child = parseWorkflowChildResult(checkpoint.output);
18
+ if (child?.exited === true) intentionalExitStatuses.set(child.runId, child.status);
19
+ }
13
20
  const included = new Set([childRunId]);
14
21
  let priorSize = -1;
15
22
  while (priorSize !== included.size) {
@@ -20,16 +27,24 @@ export function durableCompletedNestedRunSubtree(
20
27
  }
21
28
  const subtree = nested.filter((run) => included.has(run.id));
22
29
  const complete =
23
- subtree.length === included.size &&
24
- subtree.every(
25
- (run) =>
26
- run.status === "completed" &&
27
- run.endedAt !== undefined &&
28
- run.stages.every((stage) => isTerminalStage(stage.status) && stage.endedAt !== undefined),
29
- );
30
+ subtree.length === included.size && subtree.every((run) => isCompleteCachedRun(run, intentionalExitStatuses));
30
31
  return complete ? subtree : undefined;
31
32
  }
32
33
 
34
+ function isCompleteCachedRun(
35
+ run: RunSnapshot,
36
+ intentionalExitStatuses: ReadonlyMap<string, RunSnapshot["status"]>,
37
+ ): boolean {
38
+ if (
39
+ run.endedAt === undefined ||
40
+ !run.stages.every((stage) => isTerminalStage(stage.status) && stage.endedAt !== undefined)
41
+ ) {
42
+ return false;
43
+ }
44
+ if (run.status === "completed" || run.exited === true) return true;
45
+ return intentionalExitStatuses.get(run.id) === run.status;
46
+ }
47
+
33
48
  function isTerminalStage(status: RunSnapshot["stages"][number]["status"]): boolean {
34
49
  return status === "completed" || status === "failed" || status === "skipped";
35
50
  }
@@ -59,6 +59,8 @@ export function encodeMetadata(metadata: DurableWorkflowMetadata): WorkflowSeria
59
59
  ...(metadata.label !== undefined ? { label: metadata.label } : {}),
60
60
  ...(metadata.rootWorkflowId !== undefined ? { rootWorkflowId: metadata.rootWorkflowId } : {}),
61
61
  ...(metadata.resumable !== undefined ? { resumable: metadata.resumable } : {}),
62
+ ...(metadata.exited !== undefined ? { exited: metadata.exited } : {}),
63
+ ...(metadata.exitReason !== undefined ? { exitReason: metadata.exitReason } : {}),
62
64
  ...(metadata.error !== undefined ? { error: metadata.error } : {}),
63
65
  ...(metadata.failureKind !== undefined ? { failureKind: metadata.failureKind } : {}),
64
66
  ...(metadata.failureCode !== undefined ? { failureCode: metadata.failureCode } : {}),
@@ -156,6 +158,8 @@ function parseDurableWorkflowMetadata(
156
158
  (metadata.label !== undefined && typeof metadata.label !== "string") ||
157
159
  (metadata.rootWorkflowId !== undefined && typeof metadata.rootWorkflowId !== "string") ||
158
160
  (metadata.resumable !== undefined && typeof metadata.resumable !== "boolean") ||
161
+ (metadata.exited !== undefined && typeof metadata.exited !== "boolean") ||
162
+ (metadata.exitReason !== undefined && typeof metadata.exitReason !== "string") ||
159
163
  (metadata.error !== undefined && typeof metadata.error !== "string") ||
160
164
  (metadata.failureKind !== undefined && !isWorkflowFailureKind(metadata.failureKind)) ||
161
165
  (metadata.failureCode !== undefined && !isWorkflowFailureCode(metadata.failureCode)) ||
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { spawn } from "node:child_process";
4
4
  import { connect } from "node:net";
5
+ import { createChildProcessEnvironment } from "@bastani/atomic";
5
6
 
6
7
  export interface LocalCommandResult {
7
8
  readonly exitCode: number;
@@ -27,7 +28,7 @@ export function runLocalCommand(
27
28
  const child = spawn(command, [...args], {
28
29
  stdio: ["ignore", "pipe", "pipe"],
29
30
  windowsHide: true,
30
- ...(options?.env !== undefined ? { env: { ...process.env, ...options.env } } : {}),
31
+ env: createChildProcessEnvironment(options?.env ? { ...options.env } : undefined),
31
32
  ...(options?.uid !== undefined ? { uid: options.uid } : {}),
32
33
  ...(options?.gid !== undefined ? { gid: options.gid } : {}),
33
34
  });