@bastani/atomic 0.9.18-alpha.5 → 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 (375) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/README.md +3 -3
  3. package/dist/builtin/intercom/CHANGELOG.md +33 -0
  4. package/dist/builtin/intercom/README.md +17 -2
  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 +1406 -209
  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 +13 -5
  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/compaction/branch-summarization.d.ts +2 -2
  117. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  118. package/dist/core/compaction/branch-summarization.js +4 -4
  119. package/dist/core/compaction/branch-summarization.js.map +1 -1
  120. package/dist/core/extensions/api-types.d.ts +8 -2
  121. package/dist/core/extensions/api-types.d.ts.map +1 -1
  122. package/dist/core/extensions/api-types.js.map +1 -1
  123. package/dist/core/extensions/context-types.d.ts +12 -0
  124. package/dist/core/extensions/context-types.d.ts.map +1 -1
  125. package/dist/core/extensions/context-types.js.map +1 -1
  126. package/dist/core/extensions/runner-shortcuts.d.ts.map +1 -1
  127. package/dist/core/extensions/runner-shortcuts.js +0 -1
  128. package/dist/core/extensions/runner-shortcuts.js.map +1 -1
  129. package/dist/core/fast-model-routing-transport.d.ts +12 -0
  130. package/dist/core/fast-model-routing-transport.d.ts.map +1 -0
  131. package/dist/core/{codex-fast-mode-transport.js → fast-model-routing-transport.js} +29 -29
  132. package/dist/core/fast-model-routing-transport.js.map +1 -0
  133. package/dist/core/fast-model-routing.d.ts +57 -0
  134. package/dist/core/fast-model-routing.d.ts.map +1 -0
  135. package/dist/core/fast-model-routing.js +201 -0
  136. package/dist/core/fast-model-routing.js.map +1 -0
  137. package/dist/core/fast-model-variants.d.ts +98 -0
  138. package/dist/core/fast-model-variants.d.ts.map +1 -0
  139. package/dist/core/fast-model-variants.js +148 -0
  140. package/dist/core/fast-model-variants.js.map +1 -0
  141. package/dist/core/http-dispatcher.d.ts.map +1 -1
  142. package/dist/core/http-dispatcher.js +4 -2
  143. package/dist/core/http-dispatcher.js.map +1 -1
  144. package/dist/core/keybindings.d.ts +0 -10
  145. package/dist/core/keybindings.d.ts.map +1 -1
  146. package/dist/core/keybindings.js +0 -8
  147. package/dist/core/keybindings.js.map +1 -1
  148. package/dist/core/messages.d.ts +1 -1
  149. package/dist/core/messages.d.ts.map +1 -1
  150. package/dist/core/messages.js.map +1 -1
  151. package/dist/core/model-config.d.ts +15 -0
  152. package/dist/core/model-config.d.ts.map +1 -1
  153. package/dist/core/model-config.js +3 -0
  154. package/dist/core/model-config.js.map +1 -1
  155. package/dist/core/model-resolver-initial.js +1 -1
  156. package/dist/core/model-resolver-initial.js.map +1 -1
  157. package/dist/core/model-runtime-streaming.d.ts +14 -1
  158. package/dist/core/model-runtime-streaming.d.ts.map +1 -1
  159. package/dist/core/model-runtime-streaming.js +25 -3
  160. package/dist/core/model-runtime-streaming.js.map +1 -1
  161. package/dist/core/model-runtime.d.ts +39 -2
  162. package/dist/core/model-runtime.d.ts.map +1 -1
  163. package/dist/core/model-runtime.js +91 -7
  164. package/dist/core/model-runtime.js.map +1 -1
  165. package/dist/core/provider-composer-internal.d.ts.map +1 -1
  166. package/dist/core/provider-composer-internal.js +8 -2
  167. package/dist/core/provider-composer-internal.js.map +1 -1
  168. package/dist/core/sdk.d.ts.map +1 -1
  169. package/dist/core/sdk.js +18 -18
  170. package/dist/core/sdk.js.map +1 -1
  171. package/dist/core/session-manager-archive.d.ts.map +1 -1
  172. package/dist/core/session-manager-archive.js +25 -2
  173. package/dist/core/session-manager-archive.js.map +1 -1
  174. package/dist/core/settings-manager-core.d.ts +0 -2
  175. package/dist/core/settings-manager-core.d.ts.map +1 -1
  176. package/dist/core/settings-manager-core.js +2 -9
  177. package/dist/core/settings-manager-core.js.map +1 -1
  178. package/dist/core/settings-manager-internals.d.ts +0 -1
  179. package/dist/core/settings-manager-internals.d.ts.map +1 -1
  180. package/dist/core/settings-manager-internals.js.map +1 -1
  181. package/dist/core/settings-manager-ui-accessors.d.ts +0 -8
  182. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
  183. package/dist/core/settings-manager-ui-accessors.js +0 -53
  184. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  185. package/dist/core/settings-manager.d.ts +1 -1
  186. package/dist/core/settings-manager.d.ts.map +1 -1
  187. package/dist/core/settings-manager.js.map +1 -1
  188. package/dist/core/settings-types.d.ts +0 -5
  189. package/dist/core/settings-types.d.ts.map +1 -1
  190. package/dist/core/settings-types.js.map +1 -1
  191. package/dist/core/skills.d.ts +1 -1
  192. package/dist/core/skills.d.ts.map +1 -1
  193. package/dist/core/skills.js +4 -2
  194. package/dist/core/skills.js.map +1 -1
  195. package/dist/core/slash-commands.d.ts.map +1 -1
  196. package/dist/core/slash-commands.js +0 -1
  197. package/dist/core/slash-commands.js.map +1 -1
  198. package/dist/core/system-prompt.js +7 -7
  199. package/dist/core/system-prompt.js.map +1 -1
  200. package/dist/core/tools/edit.d.ts +1 -1
  201. package/dist/core/tools/edit.d.ts.map +1 -1
  202. package/dist/core/tools/edit.js +128 -3
  203. package/dist/core/tools/edit.js.map +1 -1
  204. package/dist/core/tools/hashline.d.ts +2 -2
  205. package/dist/core/tools/hashline.d.ts.map +1 -1
  206. package/dist/core/tools/hashline.js +40 -10
  207. package/dist/core/tools/hashline.js.map +1 -1
  208. package/dist/core/tools/write.d.ts.map +1 -1
  209. package/dist/core/tools/write.js +8 -8
  210. package/dist/core/tools/write.js.map +1 -1
  211. package/dist/core/workflow-stage-admission.d.ts +6 -0
  212. package/dist/core/workflow-stage-admission.d.ts.map +1 -1
  213. package/dist/core/workflow-stage-admission.js +14 -0
  214. package/dist/core/workflow-stage-admission.js.map +1 -1
  215. package/dist/index-extensions.d.ts +1 -1
  216. package/dist/index-extensions.d.ts.map +1 -1
  217. package/dist/index-extensions.js.map +1 -1
  218. package/dist/index.d.ts +5 -5
  219. package/dist/index.d.ts.map +1 -1
  220. package/dist/index.js +4 -5
  221. package/dist/index.js.map +1 -1
  222. package/dist/modes/interactive/components/atomic-working-status.d.ts +4 -0
  223. package/dist/modes/interactive/components/atomic-working-status.d.ts.map +1 -1
  224. package/dist/modes/interactive/components/atomic-working-status.js +26 -1
  225. package/dist/modes/interactive/components/atomic-working-status.js.map +1 -1
  226. package/dist/modes/interactive/components/custom-editor.d.ts +7 -0
  227. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  228. package/dist/modes/interactive/components/custom-editor.js +43 -0
  229. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  230. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  231. package/dist/modes/interactive/components/footer.js +0 -6
  232. package/dist/modes/interactive/components/footer.js.map +1 -1
  233. package/dist/modes/interactive/components/index.d.ts +1 -2
  234. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  235. package/dist/modes/interactive/components/index.js +0 -1
  236. package/dist/modes/interactive/components/index.js.map +1 -1
  237. package/dist/modes/interactive/components/model-selector.d.ts +1 -1
  238. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  239. package/dist/modes/interactive/components/model-selector.js +6 -11
  240. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  241. package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -5
  242. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  243. package/dist/modes/interactive/components/scoped-models-selector.js +3 -19
  244. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  245. package/dist/modes/interactive/components/settings-selector-items.js +1 -1
  246. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  247. package/dist/modes/interactive/components/thinking-selector.d.ts +1 -2
  248. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  249. package/dist/modes/interactive/components/thinking-selector.js +4 -11
  250. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  251. package/dist/modes/interactive/components/transcript-follow-indicator.js +3 -3
  252. package/dist/modes/interactive/components/transcript-follow-indicator.js.map +1 -1
  253. package/dist/modes/interactive/interactive-agent-events.js +8 -8
  254. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  255. package/dist/modes/interactive/interactive-autocomplete.js +5 -16
  256. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  257. package/dist/modes/interactive/interactive-bash-compact.js +2 -9
  258. package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
  259. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  260. package/dist/modes/interactive/interactive-deferred-startup.js +3 -0
  261. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  262. package/dist/modes/interactive/interactive-editor-actions.js +2 -2
  263. package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
  264. package/dist/modes/interactive/interactive-extension-custom-ui.js +1 -0
  265. package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
  266. package/dist/modes/interactive/interactive-extension-dialogs.js +7 -0
  267. package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
  268. package/dist/modes/interactive/interactive-extension-runtime.js +20 -10
  269. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  270. package/dist/modes/interactive/interactive-hotkeys-debug.js +1 -5
  271. package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
  272. package/dist/modes/interactive/interactive-initial-session-binding.d.ts.map +1 -1
  273. package/dist/modes/interactive/interactive-initial-session-binding.js +3 -0
  274. package/dist/modes/interactive/interactive-initial-session-binding.js.map +1 -1
  275. package/dist/modes/interactive/interactive-input-handling.js +0 -8
  276. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  277. package/dist/modes/interactive/interactive-mode-base.d.ts +5 -1
  278. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  279. package/dist/modes/interactive/interactive-mode-base.js +15 -9
  280. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  281. package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -3
  282. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  283. package/dist/modes/interactive/interactive-mode-deps.js +1 -3
  284. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  285. package/dist/modes/interactive/interactive-mode-surface.d.ts +9 -12
  286. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  287. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  288. package/dist/modes/interactive/interactive-model-routing.js +10 -13
  289. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  290. package/dist/modes/interactive/interactive-render-chat.js +29 -0
  291. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  292. package/dist/modes/interactive/interactive-selectors.js +2 -32
  293. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  294. package/dist/modes/interactive/interactive-session-routing.js +1 -5
  295. package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
  296. package/dist/modes/interactive/interactive-session-runtime.js +1 -5
  297. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  298. package/dist/modes/interactive/interactive-slash-commands.js +6 -13
  299. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  300. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  301. package/dist/modes/interactive/interactive-startup.js +19 -13
  302. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  303. package/dist/modes/interactive/interactive-tui.d.ts.map +1 -1
  304. package/dist/modes/interactive/interactive-tui.js +27 -3
  305. package/dist/modes/interactive/interactive-tui.js.map +1 -1
  306. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  307. package/dist/modes/interactive-engine/engine-custom-ui.js +1 -0
  308. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  309. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  310. package/dist/modes/interactive-engine/isolated-runtime.js +4 -1
  311. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  312. package/dist/utils/child-process.d.ts.map +1 -1
  313. package/dist/utils/child-process.js +13 -6
  314. package/dist/utils/child-process.js.map +1 -1
  315. package/dist/utils/exif-orientation.d.ts.map +1 -1
  316. package/dist/utils/exif-orientation.js +2 -3
  317. package/dist/utils/exif-orientation.js.map +1 -1
  318. package/dist/utils/tools-manager.d.ts +1 -0
  319. package/dist/utils/tools-manager.d.ts.map +1 -1
  320. package/dist/utils/tools-manager.js +33 -18
  321. package/dist/utils/tools-manager.js.map +1 -1
  322. package/docs/custom-provider.md +2 -0
  323. package/docs/docs.json +14 -2
  324. package/docs/extensions.md +9 -4
  325. package/docs/intercom.md +32 -7
  326. package/docs/keybindings.md +8 -6
  327. package/docs/models/evals.md +394 -0
  328. package/docs/models/model-selection.md +54 -27
  329. package/docs/models/pareto-efficiency.md +33 -16
  330. package/docs/models.md +37 -1
  331. package/docs/packages.md +2 -2
  332. package/docs/providers.md +44 -20
  333. package/docs/quickstart.md +8 -6
  334. package/docs/rpc.md +3 -3
  335. package/docs/sdk.md +2 -16
  336. package/docs/settings.md +19 -22
  337. package/docs/skills.md +4 -2
  338. package/docs/subagents.md +9 -3
  339. package/docs/tools/edit.md +373 -0
  340. package/docs/tools.md +3 -7
  341. package/docs/tui.md +2 -1
  342. package/docs/usage.md +3 -5
  343. package/docs/workflows/api-reference.md +1395 -0
  344. package/docs/workflows/authoring.md +678 -0
  345. package/docs/workflows/builtins.md +245 -0
  346. package/docs/workflows/operations.md +811 -0
  347. package/docs/workflows/reliable-design.md +2099 -0
  348. package/docs/workflows/verification.md +62 -0
  349. package/docs/workflows.md +15 -5183
  350. package/npm-shrinkwrap.json +584 -69
  351. package/package.json +7 -7
  352. package/dist/client/remote-session.d.ts +0 -64
  353. package/dist/client/remote-session.d.ts.map +0 -1
  354. package/dist/client/remote-session.js +0 -351
  355. package/dist/client/remote-session.js.map +0 -1
  356. package/dist/client/transcript.d.ts +0 -12
  357. package/dist/client/transcript.d.ts.map +0 -1
  358. package/dist/client/transcript.js +0 -98
  359. package/dist/client/transcript.js.map +0 -1
  360. package/dist/core/codex-fast-mode-transport.d.ts +0 -12
  361. package/dist/core/codex-fast-mode-transport.d.ts.map +0 -1
  362. package/dist/core/codex-fast-mode-transport.js.map +0 -1
  363. package/dist/core/codex-fast-mode.d.ts +0 -53
  364. package/dist/core/codex-fast-mode.d.ts.map +0 -1
  365. package/dist/core/codex-fast-mode.js +0 -249
  366. package/dist/core/codex-fast-mode.js.map +0 -1
  367. package/dist/modes/interactive/components/fast-mode-selector.d.ts +0 -27
  368. package/dist/modes/interactive/components/fast-mode-selector.d.ts.map +0 -1
  369. package/dist/modes/interactive/components/fast-mode-selector.js +0 -107
  370. package/dist/modes/interactive/components/fast-mode-selector.js.map +0 -1
  371. package/dist/server/create-harness.d.ts +0 -53
  372. package/dist/server/create-harness.d.ts.map +0 -1
  373. package/dist/server/create-harness.js +0 -360
  374. package/dist/server/create-harness.js.map +0 -1
  375. package/docs/models/artificial-analysis-index.md +0 -83
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/mcp",
3
- "version": "0.9.18-alpha.5",
3
+ "version": "0.9.18-alpha.6",
4
4
  "private": true,
5
5
  "description": "Atomic extension that adapts MCP (Model Context Protocol) servers into the coding agent. Fork of: https://github.com/nicobailon/pi-mcp-adapter",
6
6
  "contributors": [
@@ -33,7 +33,7 @@
33
33
  "peerDependencies": {
34
34
  "@bastani/atomic": "*",
35
35
  "@bastani/pi-ai": "*",
36
- "@earendil-works/pi-tui": "^0.84.4",
36
+ "@earendil-works/pi-tui": "^0.85.1",
37
37
  "zod": "^3.25.0 || ^4.0.0"
38
38
  },
39
39
  "peerDependenciesMeta": {
@@ -2,6 +2,25 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.9.18-alpha.6] - 2026-09-04
6
+
7
+ ### Breaking Changes
8
+
9
+ - Removed the redundant `fastMode` fields from subagent result, progress, runtime metadata, persisted artifact metadata, and run-history records. Agents now select fast inference by pinning a canonical `-fast` model ID in `model` or fallback model fields, for example `openai-codex/gpt-5.6-sol-fast:medium`.
10
+
11
+ ### Changed
12
+
13
+ - Subagent labels now render the complete selected model ID, including `-fast`, without appending a separate `fast` badge.
14
+ - Updated bundled agents to GPT-6 Astra at `low`, with debugger at `xhigh`. Added Astra and Claude Fable 5.1 provider fallbacks ahead of older models. Locator roles now use the same ordered fallback chain as the other ordinary agents, including Sol, GPT-5.5, and Opus 4.8 at `medium`.
15
+
16
+ - The qlty skill now selects checks from repository/user priorities, preserves existing tools and read-only boundaries, and supports manual offline configuration when initialization or installation is unavailable. It separates prepared configuration from executed checks without weakening authoritative project validation.
17
+ - Subagent default guidance now honors task-scoped inline/no-workflow requests, including complex work, while preserving testing, review, safety and reconciliation of active workflow effects.
18
+ - Orchestrator guidance for agents without a declared model now cites the measured per-evaluation scores in `packages/coding-agent/docs/models/evals.md` by task type, in addition to the role guidance in `model-selection.md`.
19
+
20
+ ### Fixed
21
+
22
+ - Workflow stages now cancel their still-running subagents at completion, including single and parallel children detached for Intercom coordination. Cancelled children keep the `interrupted` status, `cause: "abort"`, and normal cleanup. Late findings and completion notifications from those children no longer reach the parent/main chat. Exact run ownership preserves other stages' child traffic, and already-submitted Intercom sends retain their transport receipts and retry identities. Detached children still notify normally while their owning stage is live ([#2840](https://github.com/bastani-inc/atomic/issues/2840)).
23
+
5
24
  ## [0.9.16] - 2026-08-29
6
25
 
7
26
  Cumulative release of the `0.9.16-alpha.1` – `0.9.16-alpha.11` prereleases. The summary below covers the user-visible outcome of that work; the per-change detail remains in the prerelease sections below.
@@ -156,7 +156,7 @@ Use `~/.atomic/agent/settings.json` for a user override or `.atomic/settings.jso
156
156
 
157
157
  Any parent chat or workflow stage that orchestrates subagents should omit the explicit `model` argument when the named agent already declares a model or fallback policy. Override it only for the user's exact model request or a documented task-specific need, and record the reason before launch; diversity alone does not justify an ad hoc model.
158
158
 
159
- When an agent declares no model or fallback policy, consult `packages/coding-agent/docs/models/model-selection.md`, then call `workflow({ action: "models" })` when available. Use only a catalog-returned `fullId` and only a thinking level listed for that entry. If the catalog tool is unavailable, returns no models, or has no recommended model for the role, leave the child unpinned and report the limitation instead of inventing a model or inspecting credentials.
159
+ When an agent declares no model or fallback policy, consult `packages/coding-agent/docs/models/model-selection.md` for the role guidance and `packages/coding-agent/docs/models/evals.md` for the measured per-evaluation scores by task type, then call `workflow({ action: "models" })` when available. Use only a catalog-returned `fullId` and only a thinking level listed for that entry. If the catalog tool is unavailable, returns no models, or has no recommended model for the role, leave the child unpinned and report the limitation instead of inventing a model or inspecting credentials.
160
160
 
161
161
  Workflow invocations receive a stable, non-`default` Intercom group automatically. Their stages and delegated children inherit it across single, parallel, and follow-up calls, so omit `group` unless you intend to create a different coordination subgroup. Outside a workflow, children inherit the launching session's group. `contact_supervisor` remains available across group boundaries.
162
162
 
@@ -216,7 +216,7 @@ For parallel runs, the claim interrupts every active sibling and prevents queued
216
216
 
217
217
  With the Intercom bridge active, the parent may load and connect its Intercom runtime before initial child execution to issue the exact child's broker capability. The child connection remains tool-driven. A claimed `contact_supervisor` decision or interview still yields before child send or reply-waiter admission; `intercom.ask` connects the child to resolve both targets.
218
218
 
219
- Parent-side Atomic still sends grouped completion results through Intercom: one grouped message per foreground parent `subagent` run and one per detached child completion. Intercom-confirmed delivery returns a compact receipt with artifact/session paths; without that confirmation, the normal full output is preserved. Grouped messages include child Intercom targets and full child summaries.
219
+ Parent-side Atomic sends grouped completion results through Intercom: one grouped message per foreground parent `subagent` run and one per detached child completion while its owning session remains live. When a workflow stage completes, Atomic cancels its still-running detached children and suppresses their late findings and completion notifications instead of forwarding them to the parent/main chat. Intercom-confirmed delivery returns a compact receipt with artifact/session paths; without that confirmation, the normal full output is preserved. Grouped messages include child Intercom targets and full child summaries.
220
220
 
221
221
  If a child appears stalled, needs-attention notices can show up in the parent session with useful next actions, such as checking `subagent({ action: "status" })`, interrupting the run, or nudging the child.
222
222
 
@@ -647,7 +647,7 @@ Metadata records timing, usage, typed status, termination cause, final model, at
647
647
 
648
648
  Session files are stored under a per-run session directory. With `context: "fork"`, each child starts from the parent’s current leaf through the session manager; this is a real session fork, not an injected summary.
649
649
 
650
- Foreground completions notify the originating session. The in-process status watch emits live lifecycle updates, and the extension consumes the terminal event to render completion notifications. These notifications use tool blocks with the same background treatment as regular subagent tool blocks: success when the child completed, error when it failed, and pending when it was interrupted. Each block keeps the status glyph, agent name, outcome, duration, result preview, `ctrl+o` expand hint, and session file path.
650
+ Foreground completions notify the originating session while it remains live. When a workflow stage completes, Atomic cancels the stage's still-running children—including children detached for Intercom coordination—and does not route their late findings or completion notices to the parent/main chat. Unrelated stages' children remain live. The in-process status watch emits live lifecycle updates, and the extension consumes the terminal event to render completion notifications. These notifications use tool blocks with the same background treatment as regular subagent tool blocks: success when the child completed, error when it failed, and pending when it was interrupted. Each block keeps the status glyph, agent name, outcome, duration, result preview, `ctrl+o` expand hint, and session file path.
651
651
 
652
652
  Foreground runs persist their session and user-facing artifacts beside the parent session:
653
653
 
@@ -8,8 +8,8 @@ description: |
8
8
  - Production-quality refinement of a working draft ("ugly but working CSV parser").
9
9
  - Code that has gotten messy after several iterations.
10
10
  tools: read, edit, write, search, find, ls, bash, todo
11
- model: openai-codex/gpt-5.6-sol:medium
12
- fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
11
+ model: openai-codex/gpt-6-astra:low
12
+ fallbackModels: github-copilot/gpt-6-astra:low, openai/gpt-6-astra:low, anthropic/claude-fable-5-1:low, github-copilot/claude-fable-5-1:low, openai-codex/gpt-5.6-sol:medium, github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-6-astra:low, openrouter/anthropic/claude-fable-5-1:low, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
13
13
  skills: tdd, playwright-cli, tmux
14
14
  ---
15
15
 
@@ -2,8 +2,8 @@
2
2
  name: codebase-analyzer
3
3
  description: Analyzes codebase implementation details. Call the codebase-analyzer agent when you need to find detailed information about specific components.
4
4
  tools: read, search, find, ls, todo
5
- model: openai-codex/gpt-5.6-sol:medium
6
- fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
5
+ model: openai-codex/gpt-6-astra:low
6
+ fallbackModels: github-copilot/gpt-6-astra:low, openai/gpt-6-astra:low, anthropic/claude-fable-5-1:low, github-copilot/claude-fable-5-1:low, openai-codex/gpt-5.6-sol:medium, github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-6-astra:low, openrouter/anthropic/claude-fable-5-1:low, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
7
7
  skills: tdd, playwright-cli, tmux
8
8
  ---
9
9
 
@@ -2,8 +2,8 @@
2
2
  name: codebase-locator
3
3
  description: Locates files, directories, and components relevant to a feature or task. Basically a "super search/find/ls tool."
4
4
  tools: read, search, find, ls
5
- model: openai-codex/gpt-5.6-sol:low
6
- fallbackModels: github-copilot/gpt-5.6-sol:low, openai/gpt-5.6-sol:low, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-5.6-sol:low, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:low, openrouter/anthropic/claude-opus-4-8:low, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
5
+ model: openai-codex/gpt-6-astra:low
6
+ fallbackModels: github-copilot/gpt-6-astra:low, openai/gpt-6-astra:low, anthropic/claude-fable-5-1:low, github-copilot/claude-fable-5-1:low, openai-codex/gpt-5.6-sol:medium, github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-6-astra:low, openrouter/anthropic/claude-fable-5-1:low, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
7
7
  ---
8
8
 
9
9
  ## Role and goal
@@ -2,8 +2,8 @@
2
2
  name: codebase-online-researcher
3
3
  description: Online research for up-to-date documentation and library-source knowledge. Use when you need authoritative external information — official docs, ecosystem context, version-specific behavior, GitHub permalinks into open-source libraries, or video tutorials.
4
4
  tools: read, search, find, ls, bash, web_search, fetch_content, get_search_content, todo
5
- model: openai-codex/gpt-5.6-sol:medium
6
- fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
5
+ model: openai-codex/gpt-6-astra:low
6
+ fallbackModels: github-copilot/gpt-6-astra:low, openai/gpt-6-astra:low, anthropic/claude-fable-5-1:low, github-copilot/claude-fable-5-1:low, openai-codex/gpt-5.6-sol:medium, github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-6-astra:low, openrouter/anthropic/claude-fable-5-1:low, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
7
7
  skills: playwright-cli
8
8
  ---
9
9
 
@@ -67,15 +67,15 @@ Prioritize official sources, recognized experts, reputable technical material, a
67
67
 
68
68
  Recovery rules that change behavior:
69
69
 
70
- | Failure | Recovery |
71
- | --- | --- |
72
- | `search` finds nothing | Broaden to concept names rather than exact symbols. |
73
- | `gh` is rate-limited | Use git operations in the existing local clone. |
74
- | Repository is too large | Use the API-only view returned by `fetch_content`, or `forceClone: true` when a clone is necessary. |
75
- | Clone path is missing | A slash-bearing branch may have misresolved; list the repository tree and navigate it. |
76
- | Implementation remains uncertain | Label the uncertainty, state the hypothesis, and cite the evidence found. |
77
- | Video extraction fails | Ensure Chrome is signed into gemini.google.com or set `GEMINI_API_KEY`. |
78
- | `web_search` fails | Check provider configuration; try `provider: "gemini"` when a Perplexity key is unavailable. |
70
+ | Failure | Recovery |
71
+ | -------------------------------- | --------------------------------------------------------------------------------------------------- |
72
+ | `search` finds nothing | Broaden to concept names rather than exact symbols. |
73
+ | `gh` is rate-limited | Use git operations in the existing local clone. |
74
+ | Repository is too large | Use the API-only view returned by `fetch_content`, or `forceClone: true` when a clone is necessary. |
75
+ | Clone path is missing | A slash-bearing branch may have misresolved; list the repository tree and navigate it. |
76
+ | Implementation remains uncertain | Label the uncertainty, state the hypothesis, and cite the evidence found. |
77
+ | Video extraction fails | Ensure Chrome is signed into gemini.google.com or set `GEMINI_API_KEY`. |
78
+ | `web_search` fails | Check provider configuration; try `provider: "gemini"` when a Perplexity key is unavailable. |
79
79
 
80
80
  A page-level 403 needs no manual recovery when the automatic Gemini fallback is configured.
81
81
 
@@ -2,8 +2,8 @@
2
2
  name: codebase-pattern-finder
3
3
  description: Find similar implementations, usage examples, or existing patterns in the codebase that can be modeled after.
4
4
  tools: read, search, find, ls
5
- model: openai-codex/gpt-5.6-sol:low
6
- fallbackModels: github-copilot/gpt-5.6-sol:low, openai/gpt-5.6-sol:low, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-5.6-sol:low, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:low, openrouter/anthropic/claude-opus-4-8:low, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
5
+ model: openai-codex/gpt-6-astra:low
6
+ fallbackModels: github-copilot/gpt-6-astra:low, openai/gpt-6-astra:low, anthropic/claude-fable-5-1:low, github-copilot/claude-fable-5-1:low, openai-codex/gpt-5.6-sol:medium, github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-6-astra:low, openrouter/anthropic/claude-fable-5-1:low, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
7
7
  ---
8
8
 
9
9
  ## Role and goal
@@ -2,8 +2,8 @@
2
2
  name: codebase-research-analyzer
3
3
  description: Analyzes local research documents to extract high-value insights, decisions, and technical details while filtering out noise. Use this when you want to deep dive on a research topic or understand the rationale behind decisions.
4
4
  tools: read, search, find, ls, todo
5
- model: openai-codex/gpt-5.6-sol:medium
6
- fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
5
+ model: openai-codex/gpt-6-astra:low
6
+ fallbackModels: github-copilot/gpt-6-astra:low, openai/gpt-6-astra:low, anthropic/claude-fable-5-1:low, github-copilot/claude-fable-5-1:low, openai-codex/gpt-5.6-sol:medium, github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-6-astra:low, openrouter/anthropic/claude-fable-5-1:low, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
7
7
  ---
8
8
 
9
9
  ## Role and goal
@@ -2,8 +2,8 @@
2
2
  name: codebase-research-locator
3
3
  description: Discovers local research documents that are relevant to the current research task.
4
4
  tools: read, search, find, ls
5
- model: openai-codex/gpt-5.6-sol:low
6
- fallbackModels: github-copilot/gpt-5.6-sol:low, openai/gpt-5.6-sol:low, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:low, github-copilot/gpt-5.5:low, openai/gpt-5.5:low, anthropic/claude-opus-4-8:low, github-copilot/claude-opus-4.8:low, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-5.6-sol:low, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:low, openrouter/anthropic/claude-opus-4-8:low, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
5
+ model: openai-codex/gpt-6-astra:low
6
+ fallbackModels: github-copilot/gpt-6-astra:low, openai/gpt-6-astra:low, anthropic/claude-fable-5-1:low, github-copilot/claude-fable-5-1:low, openai-codex/gpt-5.6-sol:medium, github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-6-astra:low, openrouter/anthropic/claude-fable-5-1:low, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
7
7
  ---
8
8
 
9
9
  ## Role and goal
@@ -2,8 +2,8 @@
2
2
  name: debugger
3
3
  description: Debug and fix errors, test failures, and unexpected behavior. Use PROACTIVELY when encountering issues, analyzing stack traces, or investigating system problems.
4
4
  tools: read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo
5
- model: openai-codex/gpt-5.6-sol:xhigh
6
- fallbackModels: github-copilot/gpt-5.6-sol:xhigh, openai/gpt-5.6-sol:xhigh, anthropic/claude-opus-5:high, github-copilot/claude-opus-5:high, anthropic/claude-fable-5:high, github-copilot/claude-fable-5:high, kimi-coding/k3:max, moonshotai/kimi-k3:max, moonshotai-cn/kimi-k3:max, openai-codex/gpt-5.5:xhigh, github-copilot/gpt-5.5:xhigh, openai/gpt-5.5:xhigh, anthropic/claude-opus-4-8:high, github-copilot/claude-opus-4.8:high, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-5.6-sol:xhigh, openrouter/anthropic/claude-opus-5:high, openrouter/anthropic/claude-fable-5:high, openrouter/moonshotai/kimi-k3:max, openrouter/sakana/fugu-ultra:high, openrouter/openai/gpt-5.5:xhigh, openrouter/anthropic/claude-opus-4-8:high, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
5
+ model: openai-codex/gpt-6-astra:xhigh
6
+ fallbackModels: github-copilot/gpt-6-astra:xhigh, openai/gpt-6-astra:xhigh, anthropic/claude-fable-5-1:high, github-copilot/claude-fable-5-1:high, anthropic/claude-opus-5:high, github-copilot/claude-opus-5:high, anthropic/claude-fable-5:high, github-copilot/claude-fable-5:high, openai-codex/gpt-5.6-sol:xhigh, github-copilot/gpt-5.6-sol:xhigh, openai/gpt-5.6-sol:xhigh, kimi-coding/k3:max, moonshotai/kimi-k3:max, moonshotai-cn/kimi-k3:max, openai-codex/gpt-5.5:xhigh, github-copilot/gpt-5.5:xhigh, openai/gpt-5.5:xhigh, anthropic/claude-opus-4-8:high, github-copilot/claude-opus-4.8:high, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-6-astra:xhigh, openrouter/anthropic/claude-fable-5-1:high, openrouter/anthropic/claude-opus-5:high, openrouter/anthropic/claude-fable-5:high, openrouter/openai/gpt-5.6-sol:xhigh, openrouter/moonshotai/kimi-k3:max, openrouter/sakana/fugu-ultra:high, openrouter/openai/gpt-5.5:xhigh, openrouter/anthropic/claude-opus-4-8:high, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
7
7
  skills: tdd, playwright-cli, tmux
8
8
  ---
9
9
 
@@ -23,7 +23,7 @@ Use `search` for symbols, callers, errors, logs, and imports; `find` for paths (
23
23
 
24
24
  Drive project debuggers such as `bun --inspect`, `node --inspect-brk`, or `python -m pdb` through `bash`. For a small hypothesis, run a throwaway script such as `bun run /tmp/repro.ts` rather than maintaining a REPL. Add strategic logging when needed, not broad print spam.
25
25
 
26
- For external documentation, errors, or library issues, use `fetch_content <url>` first; then `/llms.txt`; then `bash` with `curl <url> -H "Accept: text/markdown"`; then the `playwright-cli` skill only for JavaScript, login, or interaction. `web_search` and `get_search_content` support discovery and bulk retrieval. Prefer `fetch_content` over a browser for static content.
26
+ For external documentation, errors, or library issues, use `fetch_content <url>` first; then `/llms.txt`; then `bash` with `curl <url> -H Accept: text/markdown`; then the `playwright-cli` skill only for JavaScript, login, or interaction. `web_search` and `get_search_content` support discovery and bulk retrieval. Prefer `fetch_content` over a browser for static content.
27
27
 
28
28
  If the `playwright-cli` command is missing, follow its skill instructions, including `npx --no-install playwright-cli --version` or `npm install -g @playwright/cli@latest`; use `npx playwright install chromium` when its browser is missing.
29
29
 
@@ -5,8 +5,8 @@ systemPromptMode: replace
5
5
  inheritProjectContext: true
6
6
  inheritSkills: false
7
7
  tools: read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo
8
- model: openai-codex/gpt-5.6-sol:medium
9
- fallbackModels: github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
8
+ model: openai-codex/gpt-6-astra:low
9
+ fallbackModels: github-copilot/gpt-6-astra:low, openai/gpt-6-astra:low, anthropic/claude-fable-5-1:low, github-copilot/claude-fable-5-1:low, openai-codex/gpt-5.6-sol:medium, github-copilot/gpt-5.6-sol:medium, openai/gpt-5.6-sol:medium, anthropic/claude-opus-5:low, github-copilot/claude-opus-5:low, openai-codex/gpt-5.5:medium, github-copilot/gpt-5.5:medium, openai/gpt-5.5:medium, anthropic/claude-fable-5:low, github-copilot/claude-fable-5:low, anthropic/claude-opus-4-8:medium, github-copilot/claude-opus-4.8:medium, xai/grok-4.6:xhigh, github-copilot/grok-4.6:xhigh, zai/glm-5.3:high, zai-coding-cn/glm-5.3:high, zai/glm-5.3-flash:high, zai-coding-cn/glm-5.3-flash:high, baseten/zai-org/GLM-5.3:high, baseten/zai-org/GLM-5.3-Flash:high, openrouter/openai/gpt-6-astra:low, openrouter/anthropic/claude-fable-5-1:low, openrouter/openai/gpt-5.6-sol:medium, openrouter/anthropic/claude-opus-5:low, openrouter/openai/gpt-5.5:medium, openrouter/anthropic/claude-fable-5:low, openrouter/anthropic/claude-opus-4-8:medium, openrouter/x-ai/grok-4.6, openrouter/z-ai/glm-5.3:high, openrouter/z-ai/glm-5.3-flash:high
10
10
  skills: tdd, playwright-cli, tmux
11
11
  defaultContext: fork
12
12
  defaultProgress: true
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/subagents",
3
- "version": "0.9.18-alpha.5",
3
+ "version": "0.9.18-alpha.6",
4
4
  "private": true,
5
5
  "description": "Atomic extension for delegating tasks to subagents with parallel execution. Fork of: https://github.com/nicobailon/pi-subagents",
6
6
  "contributors": [
@@ -35,8 +35,8 @@
35
35
  "peerDependencies": {
36
36
  "@bastani/atomic": "*",
37
37
  "@bastani/pi-ai": "*",
38
- "@earendil-works/pi-agent-core": "^0.84.4",
39
- "@earendil-works/pi-tui": "^0.84.4"
38
+ "@earendil-works/pi-agent-core": "^0.85.1",
39
+ "@earendil-works/pi-tui": "^0.85.1"
40
40
  },
41
41
  "peerDependenciesMeta": {
42
42
  "@bastani/atomic": {
@@ -1,123 +1,51 @@
1
1
  ---
2
2
  name: qlty
3
- description: Code quality checks, formatting, and metrics via qlty CLI. Use when asked to verify code quality, add or run verifiers, make sure code is high quality before commit or handoff, lint or auto-format a codebase, measure complexity, cohesion, or lines of code, or find code smells like duplication and deep nesting.
3
+ description: Code quality checks, formatting, and metrics via qlty CLI. Use when asked to verify code quality, add or run verifiers, lint or format code, measure complexity, or find code smells. Includes environment-aware setup and manual offline configuration when qlty is missing or installation is restricted.
4
4
  ---
5
5
 
6
- # Qlty Code Quality
6
+ # Qlty code quality
7
7
 
8
- `qlty` is a universal code quality tool: one CLI that drives 70+ linters, auto-formatters, and security scanners across 40+ languages and technologies, plus its own static analysis for metrics and code smells.
8
+ Use qlty to coordinate relevant linters, formatters and built-in analysis. Repository checks in AGENTS.md, package scripts and CI remain authoritative. Prefer the project's tools and user priorities over generic language presets: a TypeScript repository using Biome does not need a competing ESLint/Prettier rollout.
9
9
 
10
- **Prefer the `qlty` CLI over ad-hoc per-tool linter invocations.** Do not reach for `eslint`, `ruff`, `rubocop`, `shellcheck`, `prettier`, `gofmt`, and friends one at a time. Run them through `qlty check` / `qlty fmt` so every language in the repository is covered by one command, with one config, one cache, and one consistent issue format. Fall back to invoking a tool directly only when the repository's own scripts require it (for example a project's `npm run check`) or when qlty has no plugin for it.
10
+ ## Choose useful checks
11
11
 
12
- ## Documentation
12
+ Inspect the task, languages, existing config, scripts, lockfiles and baseline findings. Select reliable, low-noise checks that address the requested risks. Security plugins, linter extensions and metrics are choices, not a checklist to maximize. Record commands, scope, output and a relevant baseline; fix in-scope findings rather than reporting complexity numbers without context.
13
13
 
14
- **Reference <https://docs.qlty.sh/llms.txt> heavily.** It is the authoritative index of every qlty documentation page, each available as Markdown by appending `.md` to the page URL. Fetch the index first, then fetch the specific pages you need — command pages under `https://docs.qlty.sh/cli/commands/`, concepts under `https://docs.qlty.sh/cli/concepts/`, and language support under `https://docs.qlty.sh/languages/`.
14
+ ## Check environment and authorization
15
15
 
16
- Local excerpts of the most-used pages live in [references/](references/), each attributed to its upstream URL:
16
+ 1. Look for existing `.qlty/qlty.toml`, installed `qlty --version`, cached plugins and runtimes. Preserve existing configuration; do not run init over it.
17
+ 2. During authorized coding, missing configuration is not a blocker: run `qlty init --no` when available, inspect its generated suggestions and tailor them. Configuration is a reviewable change. Explicit read-only tasks remain read-only, or use isolated scratch configuration.
18
+ 3. Prefer installed/cached tools. Install missing tools/plugins when online access and permissions permit. A known offline or restricted environment is sufficient reason not to attempt prohibited downloads; otherwise make a reasonable capability check or one bounded setup attempt. Do not repeat blocked installs or require production credentials.
19
+ 4. If the binary is missing or init cannot run, read [manual configuration](references/manual-configuration.md) and prepare repo-appropriate `.qlty/qlty.toml` by hand when configuration changes are in scope. This requires no network. Validate TOML and available schema support, and label configuration preparation separately from checks executed.
20
+ 5. Continue available repository checks when optional qlty installation or execution is unavailable. Report the constraint, attempted commands and observed output, checks actually run and coverage still missing. Optional qlty availability is not a universal completion gate and does not relax authoritative checks.
17
21
 
18
- - [references/quickstart.md](references/quickstart.md) install, `qlty init`, first run
19
- - [references/commands.md](references/commands.md) — `check`, `fmt`, `metrics`, `smells`, `init`, `plugins`
20
- - [references/plugins-and-extensions.md](references/plugins-and-extensions.md) — enabling plugins, linter extensions, `qlty.toml`
21
- - [references/coding-with-ai-agents.md](references/coding-with-ai-agents.md) — upstream's own guidance for agents
22
+ ## Installation when permitted
22
23
 
23
- The local copies are point-in-time excerpts. When they disagree with the live docs, the live docs win fetch from `llms.txt`.
24
+ The documented macOS/Linux installer is `curl https://qlty.sh | sh`. Inspect installer and platform support before executing downloaded code. The default binary location is `~/.qlty/bin`; check that location before reinstalling and add it to this shell's PATH if appropriate. `QLTY_NO_MODIFY_PATH=1` prevents shell-profile edits; `QLTY_INSTALL_BIN_PATH` chooses another installation directory. Windows support varies by release; verify current support rather than assuming POSIX commands work there.
24
25
 
25
- ## When to Use
26
+ Online, start with <https://docs.qlty.sh/llms.txt> and fetch relevant command/plugin documentation. Offline, use bundled references instead of attempting the network. Never invent plugin versions or flags.
26
27
 
27
- - **Check code for linting issues before commit or handoff.** `qlty check` is the last gate before you hand work to a human or another stage.
28
- - **Auto-fix formatting and style issues.** `qlty fmt` rewrites files; `qlty check --fix` applies lint auto-fixes.
29
- - **Calculate code metrics** — complexity, lines of code, cohesion, duplication — with `qlty metrics`.
30
- - **Find code smells** — duplicated code, deeply nested control flow, overly complex functions — with `qlty smells`.
31
- - **When a user asks for "verifiers", or asks you to make sure the code is high quality, use this skill.** Those requests mean: enable the right linters for this codebase, then run the check/fmt/metrics/smells loop and fix what it reports.
28
+ ## Run and report
32
29
 
33
- ## Install
34
-
35
- Skip this if `qlty --version` already works.
36
-
37
- ```bash
38
- # macOS & Linux
39
- curl https://qlty.sh | bash
40
- ```
41
-
42
- Upstream documents the same installer as `curl https://qlty.sh | sh`; both work, the script is POSIX `sh`.
43
-
44
- ```powershell
45
- # Windows
46
- powershell -c "iwr https://qlty.sh | iex"
47
- ```
48
-
49
- The binary lands in `~/.qlty/bin` and **that directory must be on `PATH`**. The installer appends an export to your shell rc file, which does not help a non-interactive or already-running shell — export it yourself when a command reports `qlty: command not found`:
50
-
51
- ```bash
52
- export PATH="$HOME/.qlty/bin:$PATH"
53
- ```
54
-
55
- Two useful installer environment variables: `QLTY_INSTALL_BIN_PATH` puts the binary somewhere already on `PATH` (for example `$HOME/.local/bin`), and `QLTY_NO_MODIFY_PATH=1` suppresses the rc-file edit. qlty supports macOS and Linux on x64 and arm64 (glibc and musl); Windows support is newer, so verify it rather than assuming.
56
-
57
- ## Enable the right plugins for this codebase
58
-
59
- Blindly running `qlty check` in a repository with no configuration finds nothing. Tailor the plugin set to the codebase first — this is what turns qlty from a lint runner into a quality bar.
60
-
61
- ```bash
62
- qlty init # detect file types, write .qlty/qlty.toml with a baseline plugin set
63
- qlty plugins list # every available plugin
64
- qlty plugins enable eslint # enable one the baseline missed
65
- ```
66
-
67
- Then review `.qlty/qlty.toml` against what the repository actually uses: a TypeScript repo usually wants `eslint` plus `prettier`, Python wants `ruff`, Go wants `staticcheck`/`gofmt`, shell wants `shellcheck`/`shfmt`, and almost every repo benefits from `trivy` or `gitleaks` for secrets and vulnerabilities. Enable security and type-checking plugins deliberately; they are the ones that catch defects rather than style.
68
-
69
- Also enable **linter extensions** — the plugin ecosystem of each linter (`eslint-plugin-react`, `eslint-plugin-security`, RuboCop extensions, Ruff/Pylint/Bandit packages). In `qlty.toml`, either list them with `extra_packages` or point at the project's own dependency manifest with `package_file`:
70
-
71
- ```toml
72
- [[plugin]]
73
- name = "eslint"
74
- version = "8.57.0"
75
- extra_packages = ["eslint-plugin-react@7.33.2", "eslint-plugin-security@3.0.1"]
76
- ```
77
-
78
- See [references/plugins-and-extensions.md](references/plugins-and-extensions.md) and <https://docs.qlty.sh/cli/linter-extensions.md>.
79
-
80
- `qlty init` writes `.qlty/qlty.toml` into the repository. In someone else's checkout that is a real, reviewable change — say so before running it, and do not leave it behind uncommitted in a repository you were only asked to inspect.
81
-
82
- ## Core commands
83
-
84
- All of `check`, `fmt`, and `smells` must run inside a Git repository with qlty initialized, and default to **changed files only**; pass `--all` or explicit paths to widen. `check` and `fmt` install any missing plugins and language runtimes on demand, so the first run is slow and needs network access.
30
+ Use explicit paths or a suitable upstream base to keep checks in scope. Commands default to changed files; `--all` widens coverage. `check` and `fmt` may install plugin runtimes on first use. A cached plugin can work offline, but uncached dependencies cannot. Installed built-in `metrics` and `smells` may work offline without plugin downloads; configuration source resolution can still need locally available definitions. A missing binary runs none of these checks.
85
31
 
86
32
  ```bash
87
- qlty check # lint changed files
88
- qlty check --all # lint the whole repository
89
- qlty check --all --filter=eslint # one plugin only
90
- qlty check --fix --level=low # apply auto-fixes, surface low-severity and up
91
- qlty check --upstream origin/main # only what this branch changed
92
-
93
- qlty fmt # auto-format changed files
94
- qlty fmt --all # auto-format everything
95
-
96
- qlty metrics --all --max-depth 2 # per-directory summary
97
- qlty metrics --all --sort complexity --limit 10 # the 10 most complex files
98
- qlty metrics --functions path/to/file.ts # function-level complexity
99
-
100
- qlty smells --all # duplication, deep nesting, high complexity
101
- qlty smells --upstream origin/main # smells introduced by this branch
33
+ qlty check
34
+ qlty check --upstream origin/main
35
+ qlty metrics --functions path/to/file.ts
36
+ qlty smells path/to/file.ts
102
37
  ```
103
38
 
104
- `--level` sets what is displayed (`note`, `fmt`, `low`, `medium`, `high`); `--fail-level` sets what makes the command exit non-zero. `--sarif` emits SARIF for tooling.
105
-
106
- ## Offline use
107
-
108
- The `qlty` binary is self-contained, but its commands split on network needs:
109
-
110
- - **Offline-safe:** `qlty metrics` and `qlty smells` use qlty's own built-in static analysis — no plugin or runtime downloads, so they work with no network at all.
111
- - **Network on first use:** `qlty check` and `qlty fmt` install the enabled plugins and any qlty-managed language runtimes on demand, per repository, on their first run. With no network that first run fails.
112
-
113
- In a network-restricted environment (sandboxes, locked-down CI, benchmark runs), either pre-warm the cache while you still have network — run `qlty init` and one `qlty check --all` in the target repository so plugins and runtimes land in `~/.qlty` — or scope quality verification to `qlty metrics` and `qlty smells` and say so in your report rather than presenting them as full lint coverage.
39
+ Choose the relevant subset. For authorized formatting/fixes, use scoped `qlty fmt` or `qlty check --fix --level=low`, inspect the diff and rerun checks. Do not use `--all` formatting by habit or rewrite files during read-only review. Avoid unsafe auto-fixes and broad churn. `--level` controls displayed severity; `--fail-level` controls failure severity. Do not suppress errors to manufacture a green result.
114
40
 
115
- ## Working loop
41
+ Report four distinct facts: configuration prepared/changed, checks passed with command/output, failed checks, and checks not run with reasons. A parsed TOML file is not lint, security, metrics or full schema evidence. A clean run with no applicable plugins is not full quality coverage.
116
42
 
117
- Upstream's own recommendation for agents, and a good default here:
43
+ ## Bundled references
118
44
 
119
- 1. `qlty fmt` before committing formatting churn should never reach a reviewer.
120
- 2. `qlty check --fix --level=low` before finishing, then fix by hand whatever it could not auto-fix.
121
- 3. For a quality-focused request, add `qlty smells --all` and `qlty metrics --all --sort complexity --limit 10`, and act on the worst offenders rather than reporting the numbers.
45
+ - [Manual configuration](references/manual-configuration.md): offline/missing-binary recipe and source-backed TOML.
46
+ - [Quickstart](references/quickstart.md): installation and initialization.
47
+ - [Commands](references/commands.md): exact init/check/fmt/metrics/smells/plugin flags.
48
+ - [Plugins and extensions](references/plugins-and-extensions.md): definitions, extra packages and package-file choices.
49
+ - [Upstream agent examples](references/coding-with-ai-agents.md): source excerpts, not a mandate to run every command or download in restricted environments.
122
50
 
123
- Report what you ran and what it found. A clean `qlty check` is evidence; "I made it high quality" is not.
51
+ These are dated source excerpts. Prefer current official documentation when reachable; preserve the environment and authorization rules above when an upstream example assumes unrestricted installation.
@@ -0,0 +1,52 @@
1
+ # Manual configuration without downloads
2
+
3
+ Sources: [qlty.toml specification](https://docs.qlty.sh/cli/qlty-toml.md) and [init](https://docs.qlty.sh/cli/commands/init.md), inspected 2026-09-05. This is adaptation guidance, not a verbatim upstream excerpt.
4
+
5
+ When qlty is missing, init fails, or installation is prohibited, configuration can still be prepared offline. First inspect existing `.qlty/qlty.toml`; preserve it and make only task-relevant changes. For read-only work, leave the checkout unchanged or prepare an isolated scratch fixture. Do not create a new repository/worktree copy merely to evade a task's checkout constraint.
6
+
7
+ ## Minimal built-in analysis configuration
8
+
9
+ For a repository whose generated files live under `dist` and whose tests live under `test`, this is a valid starting point. Adapt patterns to observed layout, not assumptions:
10
+
11
+ ```toml
12
+ config_version = "0"
13
+ exclude_patterns = ["**/dist/**"]
14
+ test_patterns = ["**/test/**"]
15
+ ```
16
+
17
+ `config_version` is the string `"0"`, not a number. No plugin or remote source is required in this minimal example. It prepares built-in analysis configuration, not lint or security coverage. It does not mean metrics or smells have run.
18
+
19
+ When installed qlty is available, `qlty init --no --skip-plugins --skip-default-source` can prepare a similar no-download starting point; inspect installed help first. Do not repeat it over existing config.
20
+
21
+ ## Add only justified plugins
22
+
23
+ Use locally available plugin definitions, a known project configuration, or bundled references to identify supported names/options. Keep the repository's existing formatter and linter; do not add competing presets. When plugin versions are not locally known, omit the optional version rather than inventing a pin, and record that resolution/execution remains unverified.
24
+
25
+ The official specification supports the default plugin source and plugin declarations:
26
+
27
+ ```toml
28
+ config_version = "0"
29
+
30
+ [[source]]
31
+ name = "default"
32
+ default = true
33
+
34
+ [[plugin]]
35
+ name = "shellcheck"
36
+ ```
37
+
38
+ This example is appropriate only when shell analysis is relevant. Preparing it offline does not fetch its source, plugin or runtime. Uncached source resolution or plugin installation can need network even if the qlty binary exists. Prefer a known cached/local source where available; see `qlty init --source` in [commands](commands.md). Do not invent local source paths.
39
+
40
+ For linter extensions, use either `extra_packages` or `package_file`, not both; consult [plugins and extensions](plugins-and-extensions.md). Avoid introducing new lockfiles or changing the project's package manager.
41
+
42
+ ## Validate what is available
43
+
44
+ Python 3.11+ can check TOML syntax without network:
45
+
46
+ ```bash
47
+ python3 -c 'import pathlib,tomllib; p=pathlib.Path(".qlty/qlty.toml"); c=tomllib.loads(p.read_text()); assert c["config_version"] == "0"; print("TOML parsed; config_version is string 0")'
48
+ ```
49
+
50
+ This checks syntax and one required field, not the full qlty schema or plugin availability. If qlty is installed, run a relevant command such as `qlty metrics --all` in the authorized fixture to exercise configuration loading and built-in analysis. Use available schema tooling if present. Report any unavailable schema validation and do not download validators in a prohibited environment.
51
+
52
+ For a cached-plugin run, record the actual `qlty check` command and output; do not infer it passed from cache-directory existence. For a missing binary, report only configuration preparation and whichever authoritative repository checks actually ran. Missing optional qlty does not turn successful implementation into failure, but required project checks remain required.
@@ -67,17 +67,17 @@ Builtin agents load at the lowest priority. Project agents override user agents,
67
67
 
68
68
  | Agent | Purpose | Default model | Thinking | Tools | Notes |
69
69
  | ---------------------------- | ----------------------------------------------------------------- | --------------------- | -------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
70
- | `codebase-locator` | Locate files, directories, tests, and configs relevant to a topic | `openai/gpt-5.4-mini` | low | read, search, find, ls, bash | Read-only finder. Returns a categorized file map; no analysis. |
71
- | `codebase-analyzer` | Explain how specific code currently works | `openai/gpt-5.5` | low | read, search, find, ls, bash | Read-only. Traces flow with `file:line` references; does not critique. |
72
- | `codebase-pattern-finder` | Find similar implementations or conventions | `openai/gpt-5.4-mini` | low | read, search, find, ls, bash | Read-only. Returns code snippets with `file:line` references. |
73
- | `codebase-research-locator` | Discover prior `research/` and `specs/` docs | `openai/gpt-5.4-mini` | low | read, search, find, ls, bash | Read-only. Sorts by date, tiers by recency, flags supersession. |
74
- | `codebase-research-analyzer` | Extract decisions and constraints from prior docs | `openai/gpt-5.5` | low | read, search, find, ls, bash | Read-only. Filters aggressively for what still applies today. |
75
- | `codebase-online-researcher` | Web research with authoritative sources | `openai/gpt-5.5` | low | read, search, find, ls, bash, write, web_search, fetch_content, get_search_content | Has the `playwright-cli` skill. Persists keepers to `research/web/`. |
76
- | `code-simplifier` | Clean up recently changed code without changing behavior | `openai/gpt-5.5` | low | read, edit, write, search, find, ls, bash | **Writer.** Scopes to recently modified code by default; preserves all observable behavior. |
77
- | `debugger` | Reproduce, diagnose, and fix failing behavior | `openai-codex/gpt-5.6-sol:xhigh` | xhigh | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Can coordinate with the parent; inspect-only mode requires an explicit instruction. |
78
- | `worker` | Implement normal tasks and approved orchestrator handoffs | `openai-codex/gpt-5.6-sol:medium` | medium | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Defaults to forked context; escalates unapproved decisions instead of guessing. |
79
-
80
- Each builtin declares an explicit `model` and `fallbackModels` sequence (typically `github-copilot/<same>`, then `anthropic/claude-opus-4-8`, then `github-copilot/claude-opus-4.7`). The current user-selected model is automatically appended as the last fallback and de-duplicated. Override per run with inline config:
70
+ | `codebase-locator` | Locate files, directories, tests, and configs relevant to a topic | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash | Read-only finder. Returns a categorized file map; no analysis. |
71
+ | `codebase-analyzer` | Explain how specific code currently works | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash | Read-only. Traces flow with `file:line` references; does not critique. |
72
+ | `codebase-pattern-finder` | Find similar implementations or conventions | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash | Read-only. Returns code snippets with `file:line` references. |
73
+ | `codebase-research-locator` | Discover prior `research/` and `specs/` docs | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash | Read-only. Sorts by date, tiers by recency, flags supersession. |
74
+ | `codebase-research-analyzer` | Extract decisions and constraints from prior docs | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash | Read-only. Filters aggressively for what still applies today. |
75
+ | `codebase-online-researcher` | Web research with authoritative sources | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash, write, web_search, fetch_content, get_search_content | Has the `playwright-cli` skill. Persists keepers to `research/web/`. |
76
+ | `code-simplifier` | Clean up recently changed code without changing behavior | `openai-codex/gpt-6-astra:low` | low | read, edit, write, search, find, ls, bash | **Writer.** Scopes to recently modified code by default; preserves all observable behavior. |
77
+ | `debugger` | Reproduce, diagnose, and fix failing behavior | `openai-codex/gpt-6-astra:xhigh` | xhigh | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Can coordinate with the parent; inspect-only mode requires an explicit instruction. |
78
+ | `worker` | Implement normal tasks and approved orchestrator handoffs | `openai-codex/gpt-6-astra:low` | low | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Defaults to forked context; escalates unapproved decisions instead of guessing. |
79
+
80
+ Each builtin declares an explicit `model` and ordered `fallbackModels` sequence. Astra-led agents try GitHub Copilot Astra, OpenAI Astra, Anthropic Fable 5.1, then GitHub Copilot Fable 5.1 before older models. Ordinary agents use Astra/Fable 5.1 at `low`; debugger uses Astra at `xhigh` and Fable 5.1 at `high`. See each definition for its full provider-specific chain. The current user-selected model is automatically appended as the last fallback and de-duplicated. Override per run with inline config:
81
81
 
82
82
  ```typescript
83
83
  subagent({ agent: "codebase-analyzer", task: "Trace the auth flow", model: "anthropic/claude-sonnet-4" })