@bastani/atomic 0.9.18-alpha.4 → 0.9.18-alpha.6

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 (409) hide show
  1. package/CHANGELOG.md +115 -0
  2. package/README.md +3 -3
  3. package/dist/builtin/intercom/CHANGELOG.md +41 -0
  4. package/dist/builtin/intercom/README.md +18 -3
  5. package/dist/builtin/intercom/broker/broker.ts +670 -127
  6. package/dist/builtin/intercom/broker/client.ts +149 -35
  7. package/dist/builtin/intercom/broker/delivered-message-cache.ts +497 -37
  8. package/dist/builtin/intercom/broker/framing.ts +4 -2
  9. package/dist/builtin/intercom/broker/paths.ts +10 -0
  10. package/dist/builtin/intercom/broker/pending-send-registry.ts +1 -2
  11. package/dist/builtin/intercom/broker/send-handler.ts +311 -52
  12. package/dist/builtin/intercom/broker/send-signature.ts +4 -2
  13. package/dist/builtin/intercom/broker/socket-writes.ts +103 -0
  14. package/dist/builtin/intercom/broker/spawn.ts +9 -4
  15. package/dist/builtin/intercom/index.bundle.mjs +1419 -213
  16. package/dist/builtin/intercom/package.json +2 -2
  17. package/dist/builtin/intercom/recoverable-disconnect.ts +52 -0
  18. package/dist/builtin/intercom/retry-policy.ts +8 -0
  19. package/dist/builtin/intercom/skills/intercom/SKILL.md +17 -9
  20. package/dist/builtin/intercom/types.ts +25 -8
  21. package/dist/builtin/intercom/workflow-stage-path-matching.ts +90 -0
  22. package/dist/builtin/intercom/workflow-stage-target.ts +57 -0
  23. package/dist/builtin/mcp/index.bundle.mjs +427 -126
  24. package/dist/builtin/mcp/package.json +2 -2
  25. package/dist/builtin/subagents/CHANGELOG.md +19 -0
  26. package/dist/builtin/subagents/README.md +3 -3
  27. package/dist/builtin/subagents/agents/code-simplifier.md +2 -2
  28. package/dist/builtin/subagents/agents/codebase-analyzer.md +2 -2
  29. package/dist/builtin/subagents/agents/codebase-locator.md +2 -2
  30. package/dist/builtin/subagents/agents/codebase-online-researcher.md +11 -11
  31. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +2 -2
  32. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +2 -2
  33. package/dist/builtin/subagents/agents/codebase-research-locator.md +2 -2
  34. package/dist/builtin/subagents/agents/debugger.md +3 -3
  35. package/dist/builtin/subagents/agents/worker.md +2 -2
  36. package/dist/builtin/subagents/package.json +3 -3
  37. package/dist/builtin/subagents/skills/qlty/SKILL.md +29 -101
  38. package/dist/builtin/subagents/skills/qlty/references/manual-configuration.md +52 -0
  39. package/dist/builtin/subagents/skills/subagent/SKILL.md +11 -11
  40. package/dist/builtin/subagents/src/extension/index.bundle.mjs +49 -132
  41. package/dist/builtin/web-access/package.json +2 -2
  42. package/dist/builtin/workflows/CHANGELOG.md +44 -0
  43. package/dist/builtin/workflows/README.md +7 -7
  44. package/dist/builtin/workflows/builtin/adversarial-verification.js +2 -2
  45. package/dist/builtin/workflows/builtin/{chunk-szz1ajz9.js → chunk-42s7sw0b.js} +9 -2
  46. package/dist/builtin/workflows/builtin/{chunk-2dqb5s2q.js → chunk-79fjkcvh.js} +1 -1
  47. package/dist/builtin/workflows/builtin/{chunk-n58a7v26.js → chunk-b0v2xab1.js} +181 -10
  48. package/dist/builtin/workflows/builtin/{chunk-fghhy2a5.js → chunk-ed4jfn5t.js} +23 -5
  49. package/dist/builtin/workflows/builtin/{chunk-h3r2vkzc.js → chunk-hqpe2cyx.js} +60 -21
  50. package/dist/builtin/workflows/builtin/{chunk-hzzn6adg.js → chunk-k3w87x8y.js} +1 -1
  51. package/dist/builtin/workflows/builtin/{chunk-82ha8p41.js → chunk-n8h4yyew.js} +1 -1
  52. package/dist/builtin/workflows/builtin/{chunk-qwzvgxnq.js → chunk-reqr3sr3.js} +1 -1
  53. package/dist/builtin/workflows/builtin/{chunk-c53y8bdh.js → chunk-wgccch41.js} +1 -1
  54. package/dist/builtin/workflows/builtin/{chunk-0x6e303p.js → chunk-zbekjqew.js} +20 -7
  55. package/dist/builtin/workflows/builtin/{chunk-29wrp38a.js → chunk-ze5x3d1r.js} +1 -1
  56. package/dist/builtin/workflows/builtin/classify-and-act.js +2 -2
  57. package/dist/builtin/workflows/builtin/fan-out-and-synthesize.js +2 -2
  58. package/dist/builtin/workflows/builtin/generate-and-filter.js +2 -2
  59. package/dist/builtin/workflows/builtin/goal.js +3 -3
  60. package/dist/builtin/workflows/builtin/index.js +11 -11
  61. package/dist/builtin/workflows/builtin/loop-until-done.js +2 -2
  62. package/dist/builtin/workflows/builtin/open-claude-design.js +2 -2
  63. package/dist/builtin/workflows/builtin/ralph.js +3 -3
  64. package/dist/builtin/workflows/builtin/steering-context.js +1 -1
  65. package/dist/builtin/workflows/builtin/tournament.js +2 -2
  66. package/dist/builtin/workflows/package.json +2 -2
  67. package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +39 -52
  68. package/dist/builtin/workflows/skills/prompt-engineer/references/advanced_patterns.md +9 -37
  69. package/dist/builtin/workflows/skills/prompt-engineer/references/claude_fable_5.md +49 -0
  70. package/dist/builtin/workflows/skills/prompt-engineer/references/claude_fable_5_1.md +57 -0
  71. package/dist/builtin/workflows/skills/prompt-engineer/references/claude_opus_4_8.md +57 -0
  72. package/dist/builtin/workflows/skills/prompt-engineer/references/claude_opus_5.md +47 -0
  73. package/dist/builtin/workflows/skills/prompt-engineer/references/claude_sonnet_5.md +57 -0
  74. package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_5_5.md +60 -0
  75. package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_5_6.md +58 -0
  76. package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_6_astra.md +58 -0
  77. package/dist/builtin/workflows/skills/prompt-engineer/references/quality_improvement.md +18 -4
  78. package/dist/builtin/workflows/src/extension/index.bundle.mjs +3194 -737
  79. package/dist/builtin/workflows/src/index.js +899 -436
  80. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +0 -10
  81. package/dist/cli/list-models.d.ts.map +1 -1
  82. package/dist/cli/list-models.js +4 -0
  83. package/dist/cli/list-models.js.map +1 -1
  84. package/dist/client/index.d.ts +1 -2
  85. package/dist/client/index.d.ts.map +1 -1
  86. package/dist/client/index.js +1 -2
  87. package/dist/client/index.js.map +1 -1
  88. package/dist/config.d.ts +0 -9
  89. package/dist/config.d.ts.map +1 -1
  90. package/dist/config.js +0 -45
  91. package/dist/config.js.map +1 -1
  92. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  93. package/dist/core/agent-session-compaction.js +8 -6
  94. package/dist/core/agent-session-compaction.js.map +1 -1
  95. package/dist/core/agent-session-methods.d.ts +1 -0
  96. package/dist/core/agent-session-methods.d.ts.map +1 -1
  97. package/dist/core/agent-session-methods.js.map +1 -1
  98. package/dist/core/agent-session-models.d.ts.map +1 -1
  99. package/dist/core/agent-session-models.js +3 -4
  100. package/dist/core/agent-session-models.js.map +1 -1
  101. package/dist/core/agent-session-queue-pause.d.ts.map +1 -1
  102. package/dist/core/agent-session-queue-pause.js +6 -0
  103. package/dist/core/agent-session-queue-pause.js.map +1 -1
  104. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  105. package/dist/core/agent-session-runtime.js +15 -7
  106. package/dist/core/agent-session-runtime.js.map +1 -1
  107. package/dist/core/agent-session-tool-hooks.js +1 -1
  108. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  109. package/dist/core/agent-session-tree.d.ts.map +1 -1
  110. package/dist/core/agent-session-tree.js +8 -0
  111. package/dist/core/agent-session-tree.js.map +1 -1
  112. package/dist/core/agent-session.d.ts +2 -0
  113. package/dist/core/agent-session.d.ts.map +1 -1
  114. package/dist/core/agent-session.js +2 -0
  115. package/dist/core/agent-session.js.map +1 -1
  116. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  117. package/dist/core/anthropic-thinking-guard.js +71 -5
  118. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  119. package/dist/core/compaction/branch-summarization.d.ts +2 -2
  120. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  121. package/dist/core/compaction/branch-summarization.js +4 -4
  122. package/dist/core/compaction/branch-summarization.js.map +1 -1
  123. package/dist/core/extensions/api-types.d.ts +8 -2
  124. package/dist/core/extensions/api-types.d.ts.map +1 -1
  125. package/dist/core/extensions/api-types.js.map +1 -1
  126. package/dist/core/extensions/context-types.d.ts +12 -0
  127. package/dist/core/extensions/context-types.d.ts.map +1 -1
  128. package/dist/core/extensions/context-types.js.map +1 -1
  129. package/dist/core/extensions/provider-types.d.ts +2 -2
  130. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  131. package/dist/core/extensions/provider-types.js.map +1 -1
  132. package/dist/core/extensions/runner-shortcuts.d.ts.map +1 -1
  133. package/dist/core/extensions/runner-shortcuts.js +0 -1
  134. package/dist/core/extensions/runner-shortcuts.js.map +1 -1
  135. package/dist/core/fast-model-routing-transport.d.ts +12 -0
  136. package/dist/core/fast-model-routing-transport.d.ts.map +1 -0
  137. package/dist/core/{codex-fast-mode-transport.js → fast-model-routing-transport.js} +29 -29
  138. package/dist/core/fast-model-routing-transport.js.map +1 -0
  139. package/dist/core/fast-model-routing.d.ts +57 -0
  140. package/dist/core/fast-model-routing.d.ts.map +1 -0
  141. package/dist/core/fast-model-routing.js +201 -0
  142. package/dist/core/fast-model-routing.js.map +1 -0
  143. package/dist/core/fast-model-variants.d.ts +98 -0
  144. package/dist/core/fast-model-variants.d.ts.map +1 -0
  145. package/dist/core/fast-model-variants.js +148 -0
  146. package/dist/core/fast-model-variants.js.map +1 -0
  147. package/dist/core/http-dispatcher.d.ts.map +1 -1
  148. package/dist/core/http-dispatcher.js +4 -2
  149. package/dist/core/http-dispatcher.js.map +1 -1
  150. package/dist/core/keybindings.d.ts +0 -10
  151. package/dist/core/keybindings.d.ts.map +1 -1
  152. package/dist/core/keybindings.js +0 -8
  153. package/dist/core/keybindings.js.map +1 -1
  154. package/dist/core/messages.d.ts +1 -1
  155. package/dist/core/messages.d.ts.map +1 -1
  156. package/dist/core/messages.js.map +1 -1
  157. package/dist/core/model-config.d.ts +24 -4
  158. package/dist/core/model-config.d.ts.map +1 -1
  159. package/dist/core/model-config.js +6 -2
  160. package/dist/core/model-config.js.map +1 -1
  161. package/dist/core/model-resolver-initial.js +1 -1
  162. package/dist/core/model-resolver-initial.js.map +1 -1
  163. package/dist/core/model-runtime-streaming.d.ts +14 -1
  164. package/dist/core/model-runtime-streaming.d.ts.map +1 -1
  165. package/dist/core/model-runtime-streaming.js +25 -3
  166. package/dist/core/model-runtime-streaming.js.map +1 -1
  167. package/dist/core/model-runtime.d.ts +39 -2
  168. package/dist/core/model-runtime.d.ts.map +1 -1
  169. package/dist/core/model-runtime.js +91 -7
  170. package/dist/core/model-runtime.js.map +1 -1
  171. package/dist/core/provider-composer-internal.d.ts +1 -1
  172. package/dist/core/provider-composer-internal.d.ts.map +1 -1
  173. package/dist/core/provider-composer-internal.js +8 -2
  174. package/dist/core/provider-composer-internal.js.map +1 -1
  175. package/dist/core/sdk.d.ts.map +1 -1
  176. package/dist/core/sdk.js +21 -18
  177. package/dist/core/sdk.js.map +1 -1
  178. package/dist/core/session-manager-archive.d.ts.map +1 -1
  179. package/dist/core/session-manager-archive.js +25 -2
  180. package/dist/core/session-manager-archive.js.map +1 -1
  181. package/dist/core/settings-manager-core.d.ts +0 -2
  182. package/dist/core/settings-manager-core.d.ts.map +1 -1
  183. package/dist/core/settings-manager-core.js +2 -9
  184. package/dist/core/settings-manager-core.js.map +1 -1
  185. package/dist/core/settings-manager-internals.d.ts +0 -1
  186. package/dist/core/settings-manager-internals.d.ts.map +1 -1
  187. package/dist/core/settings-manager-internals.js.map +1 -1
  188. package/dist/core/settings-manager-ui-accessors.d.ts +0 -8
  189. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
  190. package/dist/core/settings-manager-ui-accessors.js +0 -53
  191. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  192. package/dist/core/settings-manager.d.ts +1 -1
  193. package/dist/core/settings-manager.d.ts.map +1 -1
  194. package/dist/core/settings-manager.js.map +1 -1
  195. package/dist/core/settings-types.d.ts +0 -5
  196. package/dist/core/settings-types.d.ts.map +1 -1
  197. package/dist/core/settings-types.js.map +1 -1
  198. package/dist/core/skills.d.ts +1 -1
  199. package/dist/core/skills.d.ts.map +1 -1
  200. package/dist/core/skills.js +4 -2
  201. package/dist/core/skills.js.map +1 -1
  202. package/dist/core/slash-commands.d.ts.map +1 -1
  203. package/dist/core/slash-commands.js +0 -1
  204. package/dist/core/slash-commands.js.map +1 -1
  205. package/dist/core/system-prompt.js +7 -7
  206. package/dist/core/system-prompt.js.map +1 -1
  207. package/dist/core/tools/bash.d.ts.map +1 -1
  208. package/dist/core/tools/bash.js +10 -7
  209. package/dist/core/tools/bash.js.map +1 -1
  210. package/dist/core/tools/edit.d.ts +1 -1
  211. package/dist/core/tools/edit.d.ts.map +1 -1
  212. package/dist/core/tools/edit.js +153 -8
  213. package/dist/core/tools/edit.js.map +1 -1
  214. package/dist/core/tools/find.d.ts.map +1 -1
  215. package/dist/core/tools/find.js +9 -8
  216. package/dist/core/tools/find.js.map +1 -1
  217. package/dist/core/tools/grep.d.ts.map +1 -1
  218. package/dist/core/tools/grep.js +4 -3
  219. package/dist/core/tools/grep.js.map +1 -1
  220. package/dist/core/tools/hashline.d.ts +2 -2
  221. package/dist/core/tools/hashline.d.ts.map +1 -1
  222. package/dist/core/tools/hashline.js +40 -10
  223. package/dist/core/tools/hashline.js.map +1 -1
  224. package/dist/core/tools/ls.d.ts.map +1 -1
  225. package/dist/core/tools/ls.js +2 -2
  226. package/dist/core/tools/ls.js.map +1 -1
  227. package/dist/core/tools/read.d.ts.map +1 -1
  228. package/dist/core/tools/read.js +12 -11
  229. package/dist/core/tools/read.js.map +1 -1
  230. package/dist/core/tools/search.d.ts.map +1 -1
  231. package/dist/core/tools/search.js +20 -19
  232. package/dist/core/tools/search.js.map +1 -1
  233. package/dist/core/tools/write.d.ts.map +1 -1
  234. package/dist/core/tools/write.js +22 -21
  235. package/dist/core/tools/write.js.map +1 -1
  236. package/dist/core/workflow-stage-admission.d.ts +6 -0
  237. package/dist/core/workflow-stage-admission.d.ts.map +1 -1
  238. package/dist/core/workflow-stage-admission.js +14 -0
  239. package/dist/core/workflow-stage-admission.js.map +1 -1
  240. package/dist/index-extensions.d.ts +1 -1
  241. package/dist/index-extensions.d.ts.map +1 -1
  242. package/dist/index-extensions.js.map +1 -1
  243. package/dist/index.d.ts +5 -5
  244. package/dist/index.d.ts.map +1 -1
  245. package/dist/index.js +4 -5
  246. package/dist/index.js.map +1 -1
  247. package/dist/modes/interactive/components/atomic-working-status.d.ts +4 -0
  248. package/dist/modes/interactive/components/atomic-working-status.d.ts.map +1 -1
  249. package/dist/modes/interactive/components/atomic-working-status.js +26 -1
  250. package/dist/modes/interactive/components/atomic-working-status.js.map +1 -1
  251. package/dist/modes/interactive/components/custom-editor.d.ts +7 -0
  252. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  253. package/dist/modes/interactive/components/custom-editor.js +43 -0
  254. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  255. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  256. package/dist/modes/interactive/components/footer.js +0 -6
  257. package/dist/modes/interactive/components/footer.js.map +1 -1
  258. package/dist/modes/interactive/components/index.d.ts +1 -2
  259. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  260. package/dist/modes/interactive/components/index.js +0 -1
  261. package/dist/modes/interactive/components/index.js.map +1 -1
  262. package/dist/modes/interactive/components/model-selector.d.ts +1 -1
  263. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  264. package/dist/modes/interactive/components/model-selector.js +12 -25
  265. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  266. package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -5
  267. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  268. package/dist/modes/interactive/components/scoped-models-selector.js +16 -34
  269. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  270. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
  271. package/dist/modes/interactive/components/settings-selector-items.js +10 -5
  272. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  273. package/dist/modes/interactive/components/settings-selector-submenus.d.ts +1 -1
  274. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  275. package/dist/modes/interactive/components/settings-selector-submenus.js +10 -7
  276. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  277. package/dist/modes/interactive/components/thinking-selector.d.ts +1 -2
  278. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  279. package/dist/modes/interactive/components/thinking-selector.js +6 -13
  280. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  281. package/dist/modes/interactive/components/transcript-follow-indicator.js +3 -3
  282. package/dist/modes/interactive/components/transcript-follow-indicator.js.map +1 -1
  283. package/dist/modes/interactive/components/trust-selector.js +2 -2
  284. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  285. package/dist/modes/interactive/interactive-agent-events.js +8 -8
  286. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  287. package/dist/modes/interactive/interactive-autocomplete.js +5 -16
  288. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  289. package/dist/modes/interactive/interactive-bash-compact.js +2 -9
  290. package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
  291. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  292. package/dist/modes/interactive/interactive-deferred-startup.js +3 -0
  293. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  294. package/dist/modes/interactive/interactive-editor-actions.js +2 -2
  295. package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
  296. package/dist/modes/interactive/interactive-extension-custom-ui.js +1 -0
  297. package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
  298. package/dist/modes/interactive/interactive-extension-dialogs.js +7 -0
  299. package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
  300. package/dist/modes/interactive/interactive-extension-runtime.js +20 -10
  301. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  302. package/dist/modes/interactive/interactive-hotkeys-debug.js +1 -5
  303. package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
  304. package/dist/modes/interactive/interactive-initial-session-binding.d.ts.map +1 -1
  305. package/dist/modes/interactive/interactive-initial-session-binding.js +3 -0
  306. package/dist/modes/interactive/interactive-initial-session-binding.js.map +1 -1
  307. package/dist/modes/interactive/interactive-input-handling.js +0 -8
  308. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  309. package/dist/modes/interactive/interactive-mode-base.d.ts +5 -1
  310. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  311. package/dist/modes/interactive/interactive-mode-base.js +15 -9
  312. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  313. package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -3
  314. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  315. package/dist/modes/interactive/interactive-mode-deps.js +1 -3
  316. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  317. package/dist/modes/interactive/interactive-mode-surface.d.ts +9 -12
  318. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  319. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  320. package/dist/modes/interactive/interactive-model-routing.js +10 -13
  321. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  322. package/dist/modes/interactive/interactive-render-chat.js +29 -0
  323. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  324. package/dist/modes/interactive/interactive-selectors.js +2 -32
  325. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  326. package/dist/modes/interactive/interactive-session-routing.js +1 -5
  327. package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
  328. package/dist/modes/interactive/interactive-session-runtime.js +1 -5
  329. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  330. package/dist/modes/interactive/interactive-slash-commands.js +6 -13
  331. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  332. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  333. package/dist/modes/interactive/interactive-startup.js +19 -13
  334. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  335. package/dist/modes/interactive/interactive-tui.d.ts.map +1 -1
  336. package/dist/modes/interactive/interactive-tui.js +27 -3
  337. package/dist/modes/interactive/interactive-tui.js.map +1 -1
  338. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  339. package/dist/modes/interactive-engine/engine-custom-ui.js +1 -0
  340. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  341. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  342. package/dist/modes/interactive-engine/isolated-runtime.js +4 -1
  343. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  344. package/dist/utils/child-process.d.ts.map +1 -1
  345. package/dist/utils/child-process.js +13 -6
  346. package/dist/utils/child-process.js.map +1 -1
  347. package/dist/utils/exif-orientation.d.ts.map +1 -1
  348. package/dist/utils/exif-orientation.js +2 -3
  349. package/dist/utils/exif-orientation.js.map +1 -1
  350. package/dist/utils/tools-manager.d.ts +1 -0
  351. package/dist/utils/tools-manager.d.ts.map +1 -1
  352. package/dist/utils/tools-manager.js +33 -18
  353. package/dist/utils/tools-manager.js.map +1 -1
  354. package/docs/compaction.md +2 -0
  355. package/docs/custom-provider.md +4 -1
  356. package/docs/docs.json +14 -2
  357. package/docs/extensions.md +11 -4
  358. package/docs/intercom.md +33 -8
  359. package/docs/keybindings.md +8 -6
  360. package/docs/models/evals.md +394 -0
  361. package/docs/models/model-selection.md +60 -25
  362. package/docs/models/pareto-efficiency.md +33 -15
  363. package/docs/models.md +80 -1
  364. package/docs/packages.md +2 -2
  365. package/docs/providers.md +44 -20
  366. package/docs/quickstart.md +8 -6
  367. package/docs/rpc.md +3 -3
  368. package/docs/sdk.md +2 -16
  369. package/docs/settings.md +19 -22
  370. package/docs/skills.md +4 -2
  371. package/docs/subagents.md +9 -3
  372. package/docs/terminal-setup.md +15 -0
  373. package/docs/tools/edit.md +373 -0
  374. package/docs/tools.md +3 -7
  375. package/docs/tui.md +2 -1
  376. package/docs/usage.md +3 -5
  377. package/docs/workflows/api-reference.md +1395 -0
  378. package/docs/workflows/authoring.md +678 -0
  379. package/docs/workflows/builtins.md +245 -0
  380. package/docs/workflows/operations.md +811 -0
  381. package/docs/workflows/reliable-design.md +2099 -0
  382. package/docs/workflows/verification.md +62 -0
  383. package/docs/workflows.md +15 -5183
  384. package/npm-shrinkwrap.json +584 -69
  385. package/package.json +7 -7
  386. package/dist/client/remote-session.d.ts +0 -64
  387. package/dist/client/remote-session.d.ts.map +0 -1
  388. package/dist/client/remote-session.js +0 -351
  389. package/dist/client/remote-session.js.map +0 -1
  390. package/dist/client/transcript.d.ts +0 -12
  391. package/dist/client/transcript.d.ts.map +0 -1
  392. package/dist/client/transcript.js +0 -98
  393. package/dist/client/transcript.js.map +0 -1
  394. package/dist/core/codex-fast-mode-transport.d.ts +0 -12
  395. package/dist/core/codex-fast-mode-transport.d.ts.map +0 -1
  396. package/dist/core/codex-fast-mode-transport.js.map +0 -1
  397. package/dist/core/codex-fast-mode.d.ts +0 -53
  398. package/dist/core/codex-fast-mode.d.ts.map +0 -1
  399. package/dist/core/codex-fast-mode.js +0 -249
  400. package/dist/core/codex-fast-mode.js.map +0 -1
  401. package/dist/modes/interactive/components/fast-mode-selector.d.ts +0 -27
  402. package/dist/modes/interactive/components/fast-mode-selector.d.ts.map +0 -1
  403. package/dist/modes/interactive/components/fast-mode-selector.js +0 -107
  404. package/dist/modes/interactive/components/fast-mode-selector.js.map +0 -1
  405. package/dist/server/create-harness.d.ts +0 -53
  406. package/dist/server/create-harness.d.ts.map +0 -1
  407. package/dist/server/create-harness.js +0 -360
  408. package/dist/server/create-harness.js.map +0 -1
  409. package/docs/models/artificial-analysis-index.md +0 -83
@@ -12,11 +12,14 @@ import type {
12
12
  SessionDirectory,
13
13
  WorkflowStageRosterAnnouncement,
14
14
  WorkflowStageRosterEntry,
15
+ WorkflowFutureStageRosterEntry,
16
+ WorkflowPossibleStageAnnouncement,
15
17
  } from "../types.js";
16
18
  import { buildSendSignature, PendingSendRegistry } from "./pending-send-registry.js";
17
19
  import { readSubagentMessageSource } from "../source-ownership.js";
18
20
  import { isMessage, isSessionInfo } from "./client-message-validation.js";
19
21
  import { normalizeGroups } from "../group.js";
22
+ import { IntercomClientDisconnectedError } from "../recoverable-disconnect.js";
20
23
 
21
24
  const BROKER_SOCKET = getBrokerSocketPath();
22
25
  const GROUP_REQUEST_TIMEOUT_MS = 5000;
@@ -30,6 +33,10 @@ export interface SendOptions {
30
33
  expectsReply?: boolean;
31
34
  replyError?: string;
32
35
  messageId?: string;
36
+ /** Internal caller-issued target identity; transport still uses the `to` argument. */
37
+ logicalTarget?: string;
38
+ /** Public reply must use the broker's exact pending reverse question route. */
39
+ requirePendingReply?: true;
33
40
  }
34
41
 
35
42
  export interface SendResult {
@@ -37,23 +44,32 @@ export interface SendResult {
37
44
  delivered: boolean;
38
45
  queued?: boolean;
39
46
  reason?: string;
40
- reasonCode?: "message_id_conflict";
41
- runId?: string;
42
- stageKey?: string;
47
+ reasonCode?: "message_id_conflict" | "session_not_found";
48
+ target?: string;
43
49
  position?: number;
50
+ /** D4 speculative accept: the sticky target is not in the run's persisted possible-stage set. */
51
+ notInKnownSet?: true;
44
52
  }
45
53
 
46
54
  export interface PendingStageMessageRequest {
47
55
  readonly requestId: string;
48
56
  readonly from: SessionInfo;
49
57
  readonly runId: string;
50
- readonly stageKey: string;
58
+ readonly target: string;
51
59
  readonly message: Message;
52
60
  readonly senderRegistrationName?: string;
53
61
  readonly senderReturnAddress?: string;
54
62
  readonly live?: boolean;
55
63
  }
56
64
 
65
+ /** Broker → route owner: the live stage targets a sticky broadcast was actually written to. */
66
+ export interface StickyLiveDeliveredNotice {
67
+ readonly runId: string;
68
+ readonly messageId: string;
69
+ readonly target: string;
70
+ readonly deliveredTargets: readonly string[];
71
+ }
72
+
57
73
  export interface PendingStageNotificationRequest {
58
74
  readonly requestId: string;
59
75
  readonly from: SessionInfo;
@@ -61,9 +77,14 @@ export interface PendingStageNotificationRequest {
61
77
  }
62
78
 
63
79
  export type PendingStageMessageResult =
64
- | { readonly outcome: "queued"; readonly position: number }
80
+ | {
81
+ readonly outcome: "queued";
82
+ readonly position: number;
83
+ readonly notInKnownSet?: true;
84
+ readonly forwardTargets?: readonly string[];
85
+ }
65
86
  | { readonly outcome: "delivered" }
66
- | { readonly outcome: "forward" }
87
+ | { readonly outcome: "forward"; readonly target: string }
67
88
  | { readonly outcome: "refused"; readonly reason: string; readonly reasonCode?: "message_id_conflict" };
68
89
  export interface PresenceUpdates {
69
90
  name?: string;
@@ -83,6 +104,24 @@ function toError(error: unknown): Error {
83
104
  }
84
105
 
85
106
 
107
+
108
+ function isWorkflowFutureStageRosterEntries(value: unknown): value is WorkflowFutureStageRosterEntry[] {
109
+ return (
110
+ Array.isArray(value) &&
111
+ value.every(
112
+ (entry) =>
113
+ typeof entry === "object" &&
114
+ entry !== null &&
115
+ (entry as WorkflowFutureStageRosterEntry).kind === "workflow-future-stage" &&
116
+ typeof (entry as WorkflowFutureStageRosterEntry).runId === "string" &&
117
+ typeof (entry as WorkflowFutureStageRosterEntry).target === "string" &&
118
+ typeof (entry as WorkflowFutureStageRosterEntry).queuedCount === "number" &&
119
+ Number.isInteger((entry as WorkflowFutureStageRosterEntry).queuedCount) &&
120
+ (entry as WorkflowFutureStageRosterEntry).queuedCount >= 0 &&
121
+ typeof (entry as WorkflowFutureStageRosterEntry).group === "string",
122
+ )
123
+ );
124
+ }
86
125
  function isWorkflowStageRosterEntries(value: unknown): value is WorkflowStageRosterEntry[] {
87
126
  return (
88
127
  Array.isArray(value) &&
@@ -181,7 +220,7 @@ export class IntercomClient extends EventEmitter {
181
220
  }
182
221
 
183
222
  if (socket.destroyed || socket.writableEnded || !socket.writable) {
184
- throw new Error("Client disconnected");
223
+ throw new IntercomClientDisconnectedError();
185
224
  }
186
225
 
187
226
  return socket;
@@ -240,7 +279,7 @@ export class IntercomClient extends EventEmitter {
240
279
  const onClose = () => {
241
280
  const wasConnecting = !settled && !this._sessionId;
242
281
  const wasDisconnecting = this.disconnecting;
243
- const disconnectError = this.disconnectError ?? new Error("Client disconnected");
282
+ const disconnectError = this.disconnectError ?? new IntercomClientDisconnectedError();
244
283
  this.disconnecting = false;
245
284
  cleanupConnectionAttempt();
246
285
  cleanupSocketListeners();
@@ -262,7 +301,21 @@ export class IntercomClient extends EventEmitter {
262
301
 
263
302
  const onSocketError = (err: Error) => {
264
303
  if (connectionEstablished) {
265
- this.disconnectError = err;
304
+ // A transport error on an already-registered socket (ECONNRESET, EPIPE,
305
+ // ETIMEDOUT, or a write-after-end from our own write) is a *recoverable*
306
+ // disconnect: the broker connection is gone, and the lightweight wrapper
307
+ // re-imports and reconnects on the next call. Record it as the typed
308
+ // recoverable error so `onClose` rejects pending work and emits
309
+ // `disconnected` with something the classifier recognizes, and keep the
310
+ // raw transport error as `cause` so the code is still diagnosable.
311
+ //
312
+ // `??=`, not `=`: `onReaderError` records a protocol error and then
313
+ // destroys the socket, and a socket 'error' can still follow. Overwriting
314
+ // would silently downgrade a non-recoverable protocol failure into a
315
+ // recoverable one. First error recorded wins.
316
+ this.disconnectError ??= new IntercomClientDisconnectedError({ cause: err });
317
+ // The raw error keeps flowing to `error` listeners: that channel exists for
318
+ // diagnosis, and the transport code is what a debugger wants to see.
266
319
  this.emit("error", err);
267
320
  }
268
321
  };
@@ -359,19 +412,24 @@ export class IntercomClient extends EventEmitter {
359
412
  break;
360
413
  }
361
414
  case "sessions": {
362
- const { requestId, sessions, workflowStages } = brokerMessage;
415
+ const { requestId, sessions, workflowStages, workflowFutureStages } = brokerMessage;
363
416
  if (
364
417
  typeof requestId !== "string" ||
365
418
  !Array.isArray(sessions) ||
366
419
  !sessions.every(isSessionInfo) ||
367
- (workflowStages !== undefined && !isWorkflowStageRosterEntries(workflowStages))
420
+ (workflowStages !== undefined && !isWorkflowStageRosterEntries(workflowStages)) ||
421
+ (workflowFutureStages !== undefined && !isWorkflowFutureStageRosterEntries(workflowFutureStages))
368
422
  ) {
369
423
  throw new Error("Invalid sessions message");
370
424
  }
371
425
  const pending = this.pendingLists.get(requestId);
372
426
  if (!pending) return;
373
427
  this.pendingLists.delete(requestId);
374
- pending.resolve({ sessions, workflowStages: workflowStages ?? [] });
428
+ pending.resolve({
429
+ sessions,
430
+ workflowStages: workflowStages ?? [],
431
+ workflowFutureStages: workflowFutureStages ?? [],
432
+ });
375
433
  break;
376
434
  }
377
435
  case "groups": {
@@ -416,14 +474,14 @@ export class IntercomClient extends EventEmitter {
416
474
  break;
417
475
  }
418
476
  case "pending_stage_message": {
419
- const { requestId, from, senderRegistrationName, senderReturnAddress, runId, stageKey, message, live } = brokerMessage;
477
+ const { requestId, from, senderRegistrationName, senderReturnAddress, runId, target, message, live } = brokerMessage;
420
478
  if (
421
479
  typeof requestId !== "string" ||
422
480
  !isSessionInfo(from) ||
423
481
  (senderRegistrationName !== undefined && typeof senderRegistrationName !== "string") ||
424
482
  (senderReturnAddress !== undefined && typeof senderReturnAddress !== "string") ||
425
483
  typeof runId !== "string" ||
426
- typeof stageKey !== "string" ||
484
+ typeof target !== "string" ||
427
485
  !isMessage(message) ||
428
486
  (live !== undefined && typeof live !== "boolean")
429
487
  ) {
@@ -435,7 +493,7 @@ export class IntercomClient extends EventEmitter {
435
493
  ...(senderRegistrationName === undefined ? {} : { senderRegistrationName }),
436
494
  ...(senderReturnAddress === undefined ? {} : { senderReturnAddress }),
437
495
  runId,
438
- stageKey,
496
+ target,
439
497
  message,
440
498
  ...(live === true ? { live: true } : {}),
441
499
  } satisfies PendingStageMessageRequest);
@@ -453,6 +511,25 @@ export class IntercomClient extends EventEmitter {
453
511
  } satisfies PendingStageNotificationRequest);
454
512
  break;
455
513
  }
514
+ case "sticky_live_delivered": {
515
+ const { runId, messageId, target, deliveredTargets } = brokerMessage;
516
+ if (
517
+ typeof runId !== "string" ||
518
+ typeof messageId !== "string" ||
519
+ typeof target !== "string" ||
520
+ !Array.isArray(deliveredTargets) ||
521
+ !deliveredTargets.every((entry) => typeof entry === "string")
522
+ ) {
523
+ throw new Error("Invalid sticky live-delivery event");
524
+ }
525
+ this.emit("sticky_live_delivered", {
526
+ runId,
527
+ messageId,
528
+ target,
529
+ deliveredTargets,
530
+ } satisfies StickyLiveDeliveredNotice);
531
+ break;
532
+ }
456
533
  case "live_workflow_stage_route_registered": {
457
534
  const { requestId } = brokerMessage;
458
535
  if (typeof requestId !== "string") throw new Error("Invalid live workflow-stage route registration");
@@ -463,18 +540,25 @@ export class IntercomClient extends EventEmitter {
463
540
  break;
464
541
  }
465
542
  case "queued": {
466
- const { messageId, attemptId, runId, stageKey, position } = brokerMessage;
543
+ const { messageId, attemptId, target, position, notInKnownSet } = brokerMessage;
467
544
  if (
468
545
  typeof messageId !== "string" ||
469
546
  (attemptId !== undefined && typeof attemptId !== "string") ||
470
- typeof runId !== "string" ||
471
- typeof stageKey !== "string" ||
547
+ typeof target !== "string" ||
472
548
  typeof position !== "number" ||
473
- position < 1
549
+ position < 1 ||
550
+ (notInKnownSet !== undefined && notInKnownSet !== true)
474
551
  ) {
475
552
  throw new Error("Invalid queued message");
476
553
  }
477
- const result = { id: messageId, delivered: false, queued: true, runId, stageKey, position } as const;
554
+ const result = {
555
+ id: messageId,
556
+ delivered: false,
557
+ queued: true,
558
+ target,
559
+ position,
560
+ ...(notInKnownSet === true ? { notInKnownSet: true as const } : {}),
561
+ } as const;
478
562
  if (attemptId === undefined) this.pendingSends.resolveLegacy(messageId, result);
479
563
  else this.pendingSends.resolve(messageId, attemptId, result);
480
564
  break;
@@ -495,7 +579,7 @@ export class IntercomClient extends EventEmitter {
495
579
  typeof messageId !== "string" ||
496
580
  (attemptId !== undefined && typeof attemptId !== "string") ||
497
581
  typeof reason !== "string" ||
498
- (reasonCode !== undefined && reasonCode !== "message_id_conflict")
582
+ (reasonCode !== undefined && reasonCode !== "message_id_conflict" && reasonCode !== "session_not_found")
499
583
  ) {
500
584
  throw new Error("Invalid delivery_failed message");
501
585
  }
@@ -603,7 +687,7 @@ export class IntercomClient extends EventEmitter {
603
687
  }
604
688
  this.disconnecting = true;
605
689
  this.disconnectError = null;
606
- this.failPending(new Error("Client disconnected"));
690
+ this.failPending(new IntercomClientDisconnectedError());
607
691
  await new Promise<void>((resolve) => {
608
692
  let settled = false;
609
693
  const finish = () => {
@@ -768,8 +852,16 @@ export class IntercomClient extends EventEmitter {
768
852
  group: string,
769
853
  capability: string,
770
854
  stages?: WorkflowStageRosterAnnouncement[],
855
+ possibleStages?: WorkflowPossibleStageAnnouncement[],
771
856
  ): void {
772
- writeMessage(this.requireActiveSocket(), { type: "register_pending_stage_route", runId, group, capability, stages });
857
+ writeMessage(this.requireActiveSocket(), {
858
+ type: "register_pending_stage_route",
859
+ runId,
860
+ group,
861
+ capability,
862
+ stages,
863
+ possibleStages,
864
+ });
773
865
  }
774
866
 
775
867
  registerLiveWorkflowStageRoute(runId: string, stageKeys: readonly string[], capability: string): Promise<void> {
@@ -802,16 +894,25 @@ export class IntercomClient extends EventEmitter {
802
894
  writeMessage(
803
895
  socket,
804
896
  result.outcome === "queued"
805
- ? { type: "pending_stage_message_result", requestId, outcome: "queued", position: result.position }
806
- : result.outcome === "refused"
807
- ? {
808
- type: "pending_stage_message_result",
809
- requestId,
810
- outcome: "refused",
811
- reason: result.reason,
812
- ...(result.reasonCode === undefined ? {} : { reasonCode: result.reasonCode }),
813
- }
814
- : { type: "pending_stage_message_result", requestId, outcome: result.outcome },
897
+ ? {
898
+ type: "pending_stage_message_result",
899
+ requestId,
900
+ outcome: "queued",
901
+ position: result.position,
902
+ ...(result.notInKnownSet === true ? { notInKnownSet: true as const } : {}),
903
+ ...(result.forwardTargets === undefined ? {} : { forwardTargets: [...result.forwardTargets] }),
904
+ }
905
+ : result.outcome === "forward"
906
+ ? { type: "pending_stage_message_result", requestId, outcome: "forward", target: result.target }
907
+ : result.outcome === "refused"
908
+ ? {
909
+ type: "pending_stage_message_result",
910
+ requestId,
911
+ outcome: "refused",
912
+ reason: result.reason,
913
+ ...(result.reasonCode === undefined ? {} : { reasonCode: result.reasonCode }),
914
+ }
915
+ : { type: "pending_stage_message_result", requestId, outcome: result.outcome },
815
916
  );
816
917
  }
817
918
 
@@ -863,7 +964,12 @@ export class IntercomClient extends EventEmitter {
863
964
  const messageId = options.messageId ?? randomUUID();
864
965
  let acquired;
865
966
  try {
866
- acquired = this.pendingSends.acquire(messageId, buildSendSignature(to, options), 10000);
967
+ const pendingSignature = JSON.stringify({
968
+ transportTarget: to,
969
+ logicalSignature: buildSendSignature(options.logicalTarget ?? to, options),
970
+ requirePendingReply: options.requirePendingReply ?? false,
971
+ });
972
+ acquired = this.pendingSends.acquire(messageId, pendingSignature, 10000);
867
973
  } catch (error) {
868
974
  return Promise.reject(toError(error));
869
975
  }
@@ -878,7 +984,15 @@ export class IntercomClient extends EventEmitter {
878
984
  content: { text: options.text, attachments: options.attachments },
879
985
  };
880
986
  try {
881
- writeMessage(socket, { type, to, message, attemptId: acquired.attempt.attemptId, ...extra });
987
+ writeMessage(socket, {
988
+ type,
989
+ to,
990
+ ...(options.logicalTarget === undefined ? {} : { logicalTarget: options.logicalTarget }),
991
+ ...(options.requirePendingReply === undefined ? {} : { requirePendingReply: options.requirePendingReply }),
992
+ message,
993
+ attemptId: acquired.attempt.attemptId,
994
+ ...extra,
995
+ });
882
996
  } catch (error) {
883
997
  this.pendingSends.reject(acquired.attempt, toError(error));
884
998
  }