@bastani/atomic 0.8.13-0 → 0.8.14-0

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 (355) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/builtin/intercom/package.json +1 -1
  3. package/dist/builtin/mcp/host-html-template.ts +1 -1
  4. package/dist/builtin/mcp/init.ts +15 -2
  5. package/dist/builtin/mcp/mcp-callback-server.ts +10 -9
  6. package/dist/builtin/mcp/package.json +1 -1
  7. package/dist/builtin/mcp/ui-session.ts +9 -6
  8. package/dist/builtin/subagents/CHANGELOG.md +8 -1
  9. package/dist/builtin/subagents/README.md +39 -32
  10. package/dist/builtin/subagents/package.json +1 -1
  11. package/dist/builtin/subagents/skills/subagent/SKILL.md +11 -11
  12. package/dist/builtin/subagents/src/agents/agent-management.ts +6 -1
  13. package/dist/builtin/subagents/src/agents/agent-serializer.ts +2 -0
  14. package/dist/builtin/subagents/src/agents/agents.ts +44 -19
  15. package/dist/builtin/subagents/src/extension/config.ts +16 -0
  16. package/dist/builtin/subagents/src/extension/fanout-child.ts +246 -0
  17. package/dist/builtin/subagents/src/extension/index.ts +466 -603
  18. package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +6 -4
  19. package/dist/builtin/subagents/src/intercom/result-intercom.ts +109 -1
  20. package/dist/builtin/subagents/src/runs/background/async-execution.ts +124 -19
  21. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +41 -6
  22. package/dist/builtin/subagents/src/runs/background/async-resume.ts +28 -15
  23. package/dist/builtin/subagents/src/runs/background/async-status.ts +60 -30
  24. package/dist/builtin/subagents/src/runs/background/result-watcher.ts +111 -54
  25. package/dist/builtin/subagents/src/runs/background/run-id-resolver.ts +83 -0
  26. package/dist/builtin/subagents/src/runs/background/run-status.ts +79 -3
  27. package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +46 -1
  28. package/dist/builtin/subagents/src/runs/background/subagent-runner.ts +66 -14
  29. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +10 -3
  30. package/dist/builtin/subagents/src/runs/foreground/execution.ts +14 -2
  31. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +320 -23
  32. package/dist/builtin/subagents/src/runs/shared/completion-guard.ts +23 -1
  33. package/dist/builtin/subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +369 -0
  34. package/dist/builtin/subagents/src/runs/shared/nested-events.ts +935 -0
  35. package/dist/builtin/subagents/src/runs/shared/nested-path.ts +52 -0
  36. package/dist/builtin/subagents/src/runs/shared/nested-render.ts +115 -0
  37. package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +1 -0
  38. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +82 -9
  39. package/dist/builtin/subagents/src/runs/shared/pi-spawn.ts +1 -1
  40. package/dist/builtin/subagents/src/runs/shared/single-output.ts +12 -2
  41. package/dist/builtin/subagents/src/runs/shared/subagent-prompt-runtime.ts +32 -10
  42. package/dist/builtin/subagents/src/runs/shared/worktree.ts +3 -2
  43. package/dist/builtin/subagents/src/shared/artifacts.ts +0 -1
  44. package/dist/builtin/subagents/src/shared/types.ts +96 -1
  45. package/dist/builtin/subagents/src/shared/utils.ts +10 -2
  46. package/dist/builtin/subagents/src/slash/slash-commands.ts +468 -625
  47. package/dist/builtin/subagents/src/tui/render.ts +1227 -2093
  48. package/dist/builtin/web-access/package.json +1 -1
  49. package/dist/builtin/workflows/CHANGELOG.md +24 -0
  50. package/dist/builtin/workflows/README.md +28 -11
  51. package/dist/builtin/workflows/builtin/deep-research-codebase.ts +323 -40
  52. package/dist/builtin/workflows/builtin/ralph.ts +362 -176
  53. package/dist/builtin/workflows/package.json +2 -5
  54. package/dist/builtin/workflows/skills/research-codebase/SKILL.md +1 -1
  55. package/dist/builtin/workflows/skills/skill-creator/LICENSE.txt +202 -0
  56. package/dist/builtin/workflows/skills/skill-creator/SKILL.md +489 -0
  57. package/dist/builtin/workflows/skills/skill-creator/agents/analyzer.md +274 -0
  58. package/dist/builtin/workflows/skills/skill-creator/agents/comparator.md +202 -0
  59. package/dist/builtin/workflows/skills/skill-creator/agents/grader.md +223 -0
  60. package/dist/builtin/workflows/skills/skill-creator/assets/eval_review.html +146 -0
  61. package/dist/builtin/workflows/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  62. package/dist/builtin/workflows/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  63. package/dist/builtin/workflows/skills/skill-creator/references/schemas.md +430 -0
  64. package/dist/builtin/workflows/skills/skill-creator/scripts/__init__.py +0 -0
  65. package/dist/builtin/workflows/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  66. package/dist/builtin/workflows/skills/skill-creator/scripts/generate_report.py +326 -0
  67. package/dist/builtin/workflows/skills/skill-creator/scripts/improve_description.py +247 -0
  68. package/dist/builtin/workflows/skills/skill-creator/scripts/package_skill.py +136 -0
  69. package/dist/builtin/workflows/skills/skill-creator/scripts/quick_validate.py +103 -0
  70. package/dist/builtin/workflows/skills/skill-creator/scripts/run_eval.py +310 -0
  71. package/dist/builtin/workflows/skills/skill-creator/scripts/run_loop.py +328 -0
  72. package/dist/builtin/workflows/skills/skill-creator/scripts/utils.py +47 -0
  73. package/dist/builtin/workflows/src/extension/index.ts +869 -93
  74. package/dist/builtin/workflows/src/extension/render-call.ts +34 -1
  75. package/dist/builtin/workflows/src/extension/render-result.ts +126 -21
  76. package/dist/builtin/workflows/src/extension/runtime.ts +91 -3
  77. package/dist/builtin/workflows/src/extension/wiring.ts +38 -12
  78. package/dist/builtin/workflows/src/extension/workflow-schema.ts +62 -5
  79. package/dist/builtin/workflows/src/runs/background/runner.ts +3 -3
  80. package/dist/builtin/workflows/src/runs/background/status.ts +42 -8
  81. package/dist/builtin/workflows/src/runs/foreground/executor.ts +410 -95
  82. package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +5 -2
  83. package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +8 -0
  84. package/dist/builtin/workflows/src/runs/shared/model-fallback.ts +6 -4
  85. package/dist/builtin/workflows/src/runs/shared/worktree.ts +3 -2
  86. package/dist/builtin/workflows/src/shared/persistence-restore.ts +138 -5
  87. package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +30 -0
  88. package/dist/builtin/workflows/src/shared/render-inputs-schema.ts +78 -120
  89. package/dist/builtin/workflows/src/shared/stage-ui-broker.ts +193 -0
  90. package/dist/builtin/workflows/src/shared/store-types.ts +26 -1
  91. package/dist/builtin/workflows/src/shared/store.ts +145 -17
  92. package/dist/builtin/workflows/src/shared/timing.ts +6 -2
  93. package/dist/builtin/workflows/src/shared/workflow-failures.ts +375 -0
  94. package/dist/builtin/workflows/src/tui/chat-surface.ts +68 -17
  95. package/dist/builtin/workflows/src/tui/connectors.ts +2 -2
  96. package/dist/builtin/workflows/src/tui/dispatch-confirm.ts +24 -26
  97. package/dist/builtin/workflows/src/tui/graph-canvas.ts +4 -8
  98. package/dist/builtin/workflows/src/tui/graph-view.ts +17 -14
  99. package/dist/builtin/workflows/src/tui/header.ts +38 -0
  100. package/dist/builtin/workflows/src/tui/inline-form-card.ts +161 -238
  101. package/dist/builtin/workflows/src/tui/inline-form-editor.ts +68 -73
  102. package/dist/builtin/workflows/src/tui/inline-form-overlay.ts +2 -3
  103. package/dist/builtin/workflows/src/tui/inline-form-store.ts +2 -1
  104. package/dist/builtin/workflows/src/tui/inputs-overlay.ts +1 -3
  105. package/dist/builtin/workflows/src/tui/inputs-picker.ts +286 -399
  106. package/dist/builtin/workflows/src/tui/keybindings-adapter.ts +11 -0
  107. package/dist/builtin/workflows/src/tui/node-card.ts +2 -1
  108. package/dist/builtin/workflows/src/tui/overlay-adapter.ts +9 -1
  109. package/dist/builtin/workflows/src/tui/prompt-card.ts +46 -19
  110. package/dist/builtin/workflows/src/tui/run-detail.ts +63 -80
  111. package/dist/builtin/workflows/src/tui/session-confirm.ts +9 -3
  112. package/dist/builtin/workflows/src/tui/session-picker.ts +19 -16
  113. package/dist/builtin/workflows/src/tui/stage-chat-layout.ts +88 -0
  114. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +368 -879
  115. package/dist/builtin/workflows/src/tui/status-helpers.ts +4 -0
  116. package/dist/builtin/workflows/src/tui/status-list.ts +67 -75
  117. package/dist/builtin/workflows/src/tui/store-widget-installer.ts +50 -12
  118. package/dist/builtin/workflows/src/tui/submit-pane.ts +164 -0
  119. package/dist/builtin/workflows/src/tui/switcher.ts +27 -4
  120. package/dist/builtin/workflows/src/tui/text-helpers.ts +98 -4
  121. package/dist/builtin/workflows/src/tui/widget.ts +90 -68
  122. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +23 -2
  123. package/dist/builtin/workflows/src/tui/workflow-list.ts +44 -68
  124. package/dist/cli/file-processor.d.ts.map +1 -1
  125. package/dist/cli/file-processor.js +2 -3
  126. package/dist/cli/file-processor.js.map +1 -1
  127. package/dist/config.d.ts.map +1 -1
  128. package/dist/config.js +3 -10
  129. package/dist/config.js.map +1 -1
  130. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  131. package/dist/core/agent-session-runtime.js +2 -1
  132. package/dist/core/agent-session-runtime.js.map +1 -1
  133. package/dist/core/agent-session-services.d.ts.map +1 -1
  134. package/dist/core/agent-session-services.js +3 -2
  135. package/dist/core/agent-session-services.js.map +1 -1
  136. package/dist/core/agent-session.d.ts +6 -0
  137. package/dist/core/agent-session.d.ts.map +1 -1
  138. package/dist/core/agent-session.js +16 -2
  139. package/dist/core/agent-session.js.map +1 -1
  140. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  141. package/dist/core/atomic-guide-command.js +8 -9
  142. package/dist/core/atomic-guide-command.js.map +1 -1
  143. package/dist/core/auth-storage.d.ts.map +1 -1
  144. package/dist/core/auth-storage.js +3 -2
  145. package/dist/core/auth-storage.js.map +1 -1
  146. package/dist/core/bash-executor.d.ts.map +1 -1
  147. package/dist/core/bash-executor.js +2 -1
  148. package/dist/core/bash-executor.js.map +1 -1
  149. package/dist/core/export-html/index.d.ts.map +1 -1
  150. package/dist/core/export-html/index.js +8 -6
  151. package/dist/core/export-html/index.js.map +1 -1
  152. package/dist/core/export-html/template.js +6 -3
  153. package/dist/core/extensions/loader.d.ts.map +1 -1
  154. package/dist/core/extensions/loader.js +12 -29
  155. package/dist/core/extensions/loader.js.map +1 -1
  156. package/dist/core/model-registry.d.ts.map +1 -1
  157. package/dist/core/model-registry.js +5 -1
  158. package/dist/core/model-registry.js.map +1 -1
  159. package/dist/core/package-manager.d.ts +8 -0
  160. package/dist/core/package-manager.d.ts.map +1 -1
  161. package/dist/core/package-manager.js +145 -58
  162. package/dist/core/package-manager.js.map +1 -1
  163. package/dist/core/prompt-templates.d.ts.map +1 -1
  164. package/dist/core/prompt-templates.js +6 -20
  165. package/dist/core/prompt-templates.js.map +1 -1
  166. package/dist/core/resource-loader.d.ts.map +1 -1
  167. package/dist/core/resource-loader.js +38 -31
  168. package/dist/core/resource-loader.js.map +1 -1
  169. package/dist/core/sdk.d.ts.map +1 -1
  170. package/dist/core/sdk.js +9 -4
  171. package/dist/core/sdk.js.map +1 -1
  172. package/dist/core/session-manager.d.ts.map +1 -1
  173. package/dist/core/session-manager.js +32 -24
  174. package/dist/core/session-manager.js.map +1 -1
  175. package/dist/core/settings-manager.d.ts.map +1 -1
  176. package/dist/core/settings-manager.js +8 -15
  177. package/dist/core/settings-manager.js.map +1 -1
  178. package/dist/core/skills.d.ts.map +1 -1
  179. package/dist/core/skills.js +8 -22
  180. package/dist/core/skills.js.map +1 -1
  181. package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts +5 -4
  182. package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts.map +1 -1
  183. package/dist/core/tools/ask-user-question/state/questionnaire-session.js +34 -11
  184. package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
  185. package/dist/core/tools/ask-user-question/state/selectors/contract.d.ts +1 -0
  186. package/dist/core/tools/ask-user-question/state/selectors/contract.d.ts.map +1 -1
  187. package/dist/core/tools/ask-user-question/state/selectors/contract.js.map +1 -1
  188. package/dist/core/tools/ask-user-question/state/selectors/projections.d.ts.map +1 -1
  189. package/dist/core/tools/ask-user-question/state/selectors/projections.js +1 -0
  190. package/dist/core/tools/ask-user-question/state/selectors/projections.js.map +1 -1
  191. package/dist/core/tools/ask-user-question/state/state-reducer.d.ts +1 -2
  192. package/dist/core/tools/ask-user-question/state/state-reducer.d.ts.map +1 -1
  193. package/dist/core/tools/ask-user-question/state/state-reducer.js +26 -9
  194. package/dist/core/tools/ask-user-question/state/state-reducer.js.map +1 -1
  195. package/dist/core/tools/ask-user-question/state/state.d.ts +4 -0
  196. package/dist/core/tools/ask-user-question/state/state.d.ts.map +1 -1
  197. package/dist/core/tools/ask-user-question/state/state.js.map +1 -1
  198. package/dist/core/tools/ask-user-question/view/components/option-list-view.d.ts +1 -0
  199. package/dist/core/tools/ask-user-question/view/components/option-list-view.d.ts.map +1 -1
  200. package/dist/core/tools/ask-user-question/view/components/option-list-view.js +1 -0
  201. package/dist/core/tools/ask-user-question/view/components/option-list-view.js.map +1 -1
  202. package/dist/core/tools/ask-user-question/view/components/wrapping-select.d.ts +9 -6
  203. package/dist/core/tools/ask-user-question/view/components/wrapping-select.d.ts.map +1 -1
  204. package/dist/core/tools/ask-user-question/view/components/wrapping-select.js +28 -7
  205. package/dist/core/tools/ask-user-question/view/components/wrapping-select.js.map +1 -1
  206. package/dist/core/tools/ask-user-question/view/props-adapter.d.ts.map +1 -1
  207. package/dist/core/tools/ask-user-question/view/props-adapter.js +4 -1
  208. package/dist/core/tools/ask-user-question/view/props-adapter.js.map +1 -1
  209. package/dist/core/tools/bash.d.ts.map +1 -1
  210. package/dist/core/tools/bash.js +56 -53
  211. package/dist/core/tools/bash.js.map +1 -1
  212. package/dist/core/tools/edit-diff.d.ts +3 -1
  213. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  214. package/dist/core/tools/edit-diff.js +8 -1
  215. package/dist/core/tools/edit-diff.js.map +1 -1
  216. package/dist/core/tools/edit.d.ts +3 -1
  217. package/dist/core/tools/edit.d.ts.map +1 -1
  218. package/dist/core/tools/edit.js +44 -81
  219. package/dist/core/tools/edit.js.map +1 -1
  220. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  221. package/dist/core/tools/file-mutation-queue.js +27 -12
  222. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  223. package/dist/core/tools/find.d.ts.map +1 -1
  224. package/dist/core/tools/find.js +2 -3
  225. package/dist/core/tools/find.js.map +1 -1
  226. package/dist/core/tools/grep.d.ts.map +1 -1
  227. package/dist/core/tools/grep.js +3 -3
  228. package/dist/core/tools/grep.js.map +1 -1
  229. package/dist/core/tools/ls.d.ts.map +1 -1
  230. package/dist/core/tools/ls.js +5 -5
  231. package/dist/core/tools/ls.js.map +1 -1
  232. package/dist/core/tools/output-accumulator.d.ts +2 -0
  233. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  234. package/dist/core/tools/output-accumulator.js +11 -4
  235. package/dist/core/tools/output-accumulator.js.map +1 -1
  236. package/dist/core/tools/path-utils.d.ts +2 -0
  237. package/dist/core/tools/path-utils.d.ts.map +1 -1
  238. package/dist/core/tools/path-utils.js +39 -21
  239. package/dist/core/tools/path-utils.js.map +1 -1
  240. package/dist/core/tools/read.d.ts.map +1 -1
  241. package/dist/core/tools/read.js +9 -8
  242. package/dist/core/tools/read.js.map +1 -1
  243. package/dist/core/tools/truncate.d.ts.map +1 -1
  244. package/dist/core/tools/truncate.js +12 -2
  245. package/dist/core/tools/truncate.js.map +1 -1
  246. package/dist/core/tools/write.d.ts.map +1 -1
  247. package/dist/core/tools/write.js +20 -35
  248. package/dist/core/tools/write.js.map +1 -1
  249. package/dist/index.d.ts +2 -1
  250. package/dist/index.d.ts.map +1 -1
  251. package/dist/index.js +4 -1
  252. package/dist/index.js.map +1 -1
  253. package/dist/main.d.ts.map +1 -1
  254. package/dist/main.js +5 -6
  255. package/dist/main.js.map +1 -1
  256. package/dist/modes/interactive/chat-input-actions.d.ts +24 -0
  257. package/dist/modes/interactive/chat-input-actions.d.ts.map +1 -0
  258. package/dist/modes/interactive/chat-input-actions.js +179 -0
  259. package/dist/modes/interactive/chat-input-actions.js.map +1 -0
  260. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -0
  261. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  262. package/dist/modes/interactive/components/chat-message-renderer.js +14 -3
  263. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  264. package/dist/modes/interactive/components/chat-session-host.d.ts +157 -0
  265. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -0
  266. package/dist/modes/interactive/components/chat-session-host.js +1007 -0
  267. package/dist/modes/interactive/components/chat-session-host.js.map +1 -0
  268. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  269. package/dist/modes/interactive/components/config-selector.js +1 -1
  270. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  271. package/dist/modes/interactive/components/footer.d.ts +1 -0
  272. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  273. package/dist/modes/interactive/components/footer.js +14 -5
  274. package/dist/modes/interactive/components/footer.js.map +1 -1
  275. package/dist/modes/interactive/components/index.d.ts +1 -0
  276. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  277. package/dist/modes/interactive/components/index.js +1 -0
  278. package/dist/modes/interactive/components/index.js.map +1 -1
  279. package/dist/modes/interactive/components/login-dialog.d.ts +9 -1
  280. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  281. package/dist/modes/interactive/components/login-dialog.js +29 -4
  282. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  283. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  284. package/dist/modes/interactive/interactive-mode.js +18 -67
  285. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  286. package/dist/utils/child-process.d.ts +1 -0
  287. package/dist/utils/child-process.d.ts.map +1 -1
  288. package/dist/utils/child-process.js +8 -0
  289. package/dist/utils/child-process.js.map +1 -1
  290. package/dist/utils/clipboard-native.d.ts +3 -1
  291. package/dist/utils/clipboard-native.d.ts.map +1 -1
  292. package/dist/utils/clipboard-native.js +14 -8
  293. package/dist/utils/clipboard-native.js.map +1 -1
  294. package/dist/utils/image-resize-core.d.ts +30 -0
  295. package/dist/utils/image-resize-core.d.ts.map +1 -0
  296. package/dist/utils/image-resize-core.js +124 -0
  297. package/dist/utils/image-resize-core.js.map +1 -0
  298. package/dist/utils/image-resize-worker.d.ts +2 -0
  299. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  300. package/dist/utils/image-resize-worker.js +31 -0
  301. package/dist/utils/image-resize-worker.js.map +1 -0
  302. package/dist/utils/image-resize.d.ts +7 -27
  303. package/dist/utils/image-resize.d.ts.map +1 -1
  304. package/dist/utils/image-resize.js +75 -115
  305. package/dist/utils/image-resize.js.map +1 -1
  306. package/dist/utils/paths.d.ts +16 -1
  307. package/dist/utils/paths.d.ts.map +1 -1
  308. package/dist/utils/paths.js +49 -7
  309. package/dist/utils/paths.js.map +1 -1
  310. package/docs/changelog.mdx +29 -0
  311. package/docs/compaction.md +1 -1
  312. package/docs/custom-provider.md +2 -2
  313. package/docs/development.md +1 -1
  314. package/docs/docs.json +98 -143
  315. package/docs/extensions.md +29 -16
  316. package/docs/favicon.svg +29 -0
  317. package/docs/images/interactive-mode.png +0 -0
  318. package/docs/images/tree-view.png +0 -0
  319. package/docs/images/workflow-command.png +0 -0
  320. package/docs/images/workflow-graph.png +0 -0
  321. package/docs/images/workflow-input-picker.png +0 -0
  322. package/docs/images/workflow-list.png +0 -0
  323. package/docs/index.md +10 -1
  324. package/docs/logo.svg +59 -0
  325. package/docs/packages.md +3 -3
  326. package/docs/providers.md +1 -1
  327. package/docs/quickstart.md +98 -2
  328. package/docs/rpc.md +8 -8
  329. package/docs/sdk.md +23 -12
  330. package/docs/sessions.md +1 -1
  331. package/docs/skills.md +15 -1
  332. package/docs/termux.md +11 -1
  333. package/docs/themes.md +6 -6
  334. package/docs/tui.md +18 -18
  335. package/docs/usage.md +1 -1
  336. package/docs/workflows.md +172 -2
  337. package/examples/extensions/subagent/index.ts +2 -1
  338. package/package.json +6 -6
  339. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/SKILL.md +0 -0
  340. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/references/element-attributes.md +0 -0
  341. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/references/playwright-tests.md +0 -0
  342. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/references/request-mocking.md +0 -0
  343. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/references/running-code.md +0 -0
  344. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/references/session-management.md +0 -0
  345. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/references/spec-driven-testing.md +0 -0
  346. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/references/storage-state.md +0 -0
  347. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/references/test-generation.md +0 -0
  348. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/references/tracing.md +0 -0
  349. /package/dist/builtin/{workflows → subagents}/skills/playwright-cli/references/video-recording.md +0 -0
  350. /package/dist/builtin/{workflows → subagents}/skills/tdd/SKILL.md +0 -0
  351. /package/dist/builtin/{workflows → subagents}/skills/tdd/deep-modules.md +0 -0
  352. /package/dist/builtin/{workflows → subagents}/skills/tdd/interface-design.md +0 -0
  353. /package/dist/builtin/{workflows → subagents}/skills/tdd/mocking.md +0 -0
  354. /package/dist/builtin/{workflows → subagents}/skills/tdd/refactoring.md +0 -0
  355. /package/dist/builtin/{workflows → subagents}/skills/tdd/tests.md +0 -0
@@ -2,14 +2,30 @@
2
2
 
3
3
  This page gets you from install to a useful first Atomic session.
4
4
 
5
+ ## Prerequisites
6
+
7
+ - **Node.js 24 LTS or newer** — Atomic requires the latest Node LTS runtime. Check with `node --version`.
8
+ - **A package manager** — use npm (included with Node), pnpm, Yarn, or Bun. Use Bun 1.3.14+ for Bun installs or workflow-authoring examples.
9
+ - **Model-provider access** — bring an API key or sign in with `/login` after startup.
10
+ - **A compatible terminal** — for the best TUI experience, use a terminal with Kitty keyboard protocol support. See [Terminal setup](terminal-setup.md). On Windows, use Git Bash or WSL.
11
+
5
12
  ## Install
6
13
 
7
- Atomic is distributed as an npm package:
14
+ Atomic is distributed through npm-compatible package managers. Choose one:
8
15
 
9
16
  ```bash
17
+ # npm
10
18
  npm install -g @bastani/atomic
19
+
20
+ # Bun
21
+ bun install -g @bastani/atomic
22
+
23
+ # pnpm
24
+ pnpm add -g @bastani/atomic
11
25
  ```
12
26
 
27
+ Atomic does not require package install scripts. If you want to disable dependency lifecycle scripts during the Atomic install, you can add `--ignore-scripts` to the install command.
28
+
13
29
  Then start Atomic in the project directory you want it to work on:
14
30
 
15
31
  ```bash
@@ -46,7 +62,85 @@ See [Providers](providers.md) for all supported providers, environment variables
46
62
 
47
63
  ## First session
48
64
 
49
- Once Atomic starts, type a request and press Enter:
65
+ Once Atomic starts, the fastest way to get value is to kick off a built-in workflow or invoke a skill — Atomic plans and executes multi-stage work for you.
66
+
67
+ For an interactive tour any time, run `/atomic` inside the TUI; `/atomic overview`, `/atomic workflows`, and `/atomic example` walk through the same flow in more depth.
68
+
69
+ ### Try the built-in workflows
70
+
71
+ Atomic ships with three workflows you can run immediately. Use `/workflow list` to see them and `/workflow inputs <name>` to inspect their inputs in your environment.
72
+
73
+ | Workflow | When to use | Example |
74
+ |---|---|---|
75
+ | `deep-research-codebase` | Broad, cross-cutting research before you decide what to change. Scout → research-history → parallel specialist waves → aggregator. | `/workflow deep-research-codebase prompt="How do payment retries work end to end?"` |
76
+ | `ralph` | Larger implementation loops with built-in plan → orchestrate → simplify → parallel review iteration. | `/workflow ralph prompt="Implement specs/2026-03-rate-limit.md and validate the behavior" max_loops=5` |
77
+ | `open-claude-design` | UI and design-system work with generation, critique, and refinement loops; renders a live `preview.html` you can iterate against. | `/workflow open-claude-design prompt="Refresh the settings page hierarchy" output_type=page` |
78
+
79
+ <p align="center"><img src="images/workflow-list.png" alt="Workflow List" width="600" /></p>
80
+
81
+ Inputs are bare `key=value` tokens. Values are JSON-parsed when possible, so `max_loops=5`, `flag=true`, and `prompt="multi word value"` preserve useful types. If you call `/workflow <name>` without required inputs, the TUI opens an inline picker; pass `--no-picker` to skip it.
82
+
83
+ You can also launch workflows with **natural language** — just describe the task in chat and ask Atomic to run the matching workflow:
84
+
85
+ ```text
86
+ Run a deep codebase research workflow on how the rate limiter behaves under burst traffic.
87
+ ```
88
+
89
+ Atomic picks the workflow, fills in inputs from the request, and confirms before launch.
90
+
91
+ ### Monitor and steer a run
92
+
93
+ Named workflow runs execute in the background. After launch you get a run id; use it to inspect, attach, pause, or resume:
94
+
95
+ ```text
96
+ /workflow status # list in-flight runs (add --all for ended runs)
97
+ /workflow connect <run-id> # open the graph viewer (F2 also opens the latest)
98
+ /workflow attach <run-id> <stage> # chat with one stage
99
+ /workflow interrupt <run-id> # pause resumably
100
+ /workflow resume <run-id> "go" # send a steer message and resume
101
+ /workflow kill <run-id> # destructive abort
102
+ ```
103
+
104
+ Human-in-the-loop prompts (`ctx.ui.input`, `confirm`, `select`, `editor`) surface in the graph viewer, not as chat modals — connect to the run to answer them. See [Workflows](workflows.md) for the full reference and authoring guide.
105
+
106
+ ### Top skills to invoke directly
107
+
108
+ Skills are reusable expert instructions. Trigger one with `/skill:<name>` followed by a request:
109
+
110
+ | Skill | When to use | Example |
111
+ |---|---|---|
112
+ | `research-codebase` | Scoped research that writes a grounded artifact for one subsystem or question. | `/skill:research-codebase how the rate limiter works in src/middleware/` |
113
+ | `create-spec` | Turn research into an implementation-ready plan. | `/skill:create-spec from research/docs/2026-03-rate-limit.md` |
114
+ | `prompt-engineer` | Tighten a vague prompt before a long run. | `/skill:prompt-engineer Draft a sharper repo-research prompt for payment retries end to end.` |
115
+ | `tdd` | Test-first feature or bug work. | `/skill:tdd` |
116
+ | `impeccable` | Critique or refine frontend and product UI. | `/skill:impeccable` |
117
+
118
+ Use `/skill:research-codebase` for a focused area and `/workflow deep-research-codebase` when the answer spans the whole repo. A typical flow is `/skill:research-codebase` → `/skill:create-spec` → `/workflow ralph` to implement and validate.
119
+
120
+ ### Create your own workflow in natural language
121
+
122
+ You do not have to write TypeScript to add a new workflow. Describe what you want in plain chat and Atomic will design and write it for you using the [Workflows](workflows.md) reference as the source of truth:
123
+
124
+ ```text
125
+ Create a reusable Atomic workflow called review-changes. It takes one
126
+ required text input `target` (a diff, PR, or review focus). Run two reviewers
127
+ in parallel with fresh context — one for correctness and missing tests, one
128
+ for edge cases and maintainability — then a synthesis stage that
129
+ consolidates findings into blockers vs. suggestions and returns
130
+ { consolidated_review, decision }.
131
+ ```
132
+
133
+ Atomic will:
134
+
135
+ - ask clarifying questions if stage purpose, inputs, models, or handoffs are ambiguous,
136
+ - write a `.atomic/workflows/<name>.ts` definition that uses `defineWorkflow(...).input(...).run(...).compile()`,
137
+ - and reload so you can immediately run it with `/workflow <name>`.
138
+
139
+ The same plain-chat approach works for editing or hardening an existing workflow — ask Atomic to add a stage, switch a model, save artifacts, or wire in a human approval gate. For the full authoring reference, see [Workflows](workflows.md).
140
+
141
+ ### Default tools and prompts
142
+
143
+ If you'd rather start with a plain prompt, just type a request and press Enter:
50
144
 
51
145
  ```text
52
146
  Summarize this repository and tell me how to run its checks.
@@ -136,6 +230,8 @@ Use `--mode json` for JSON event output or `--mode rpc` for process integration.
136
230
  ## Next steps
137
231
 
138
232
  - [Using Atomic](usage.md) - interactive mode, slash commands, sessions, context files, and CLI reference.
233
+ - [Workflows](workflows.md) - run, inspect, and author multi-stage automation (including the three built-in workflows).
234
+ - [Skills](skills.md) - reusable expert instructions invoked with `/skill:<name>`.
139
235
  - [Providers](providers.md) - authentication and model setup.
140
236
  - [Settings](settings.md) - global and project configuration.
141
237
  - [Keybindings](keybindings.md) - shortcuts and customization.
package/docs/rpc.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  RPC mode enables headless operation of the coding agent via a JSON protocol over stdin/stdout. This is useful for embedding the agent in other applications, IDEs, or custom UIs.
4
4
 
5
- **Note for Node.js/TypeScript users**: If you're building a Node.js application, consider using `AgentSession` directly from `@bastani/atomic` instead of spawning a subprocess. See [`src/core/agent-session.ts`](../src/core/agent-session.ts) for the API. For a subprocess-based TypeScript client, see [`src/modes/rpc/rpc-client.ts`](../src/modes/rpc/rpc-client.ts).
5
+ **Note for Node.js/TypeScript users**: If you're building a Node.js application, consider using `AgentSession` directly from `@bastani/atomic` instead of spawning a subprocess. See [`src/core/agent-session.ts`](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/core/agent-session.ts) for the API. For a subprocess-based TypeScript client, see [`src/modes/rpc/rpc-client.ts`](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/modes/rpc/rpc-client.ts).
6
6
 
7
7
  ## Starting RPC Mode
8
8
 
@@ -209,7 +209,7 @@ Response:
209
209
  }
210
210
  ```
211
211
 
212
- Messages are `AgentMessage` objects (see [Message Types](#message-types)).
212
+ Messages are `AgentMessage` objects (see [Types](#types)).
213
213
 
214
214
  ### Model
215
215
 
@@ -1200,10 +1200,10 @@ Parse errors:
1200
1200
  ## Types
1201
1201
 
1202
1202
  Source files:
1203
- - [`packages/ai/src/types.ts`](../../ai/src/types.ts) - `Model`, `UserMessage`, `AssistantMessage`, `ToolResultMessage`
1204
- - [`packages/agent/src/types.ts`](../../agent/src/types.ts) - `AgentMessage`, `AgentEvent`
1205
- - [`src/core/messages.ts`](../src/core/messages.ts) - `BashExecutionMessage`
1206
- - [`src/modes/rpc/rpc-types.ts`](../src/modes/rpc/rpc-types.ts) - RPC command/response types, extension UI request/response types
1203
+ - [`packages/ai/src/types.ts`](https://github.com/earendil-works/pi-mono/blob/main/packages/ai/src/types.ts) - `Model`, `UserMessage`, `AssistantMessage`, `ToolResultMessage`
1204
+ - [`packages/agent/src/types.ts`](https://github.com/earendil-works/pi-mono/blob/main/packages/agent/src/types.ts) - `AgentMessage`, `AgentEvent`
1205
+ - [`src/core/messages.ts`](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/core/messages.ts) - `BashExecutionMessage`
1206
+ - [`src/modes/rpc/rpc-types.ts`](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/modes/rpc/rpc-types.ts) - RPC command/response types, extension UI request/response types
1207
1207
 
1208
1208
  ### Model
1209
1209
 
@@ -1350,9 +1350,9 @@ for event in read_events():
1350
1350
 
1351
1351
  ## Example: Interactive Client (Node.js)
1352
1352
 
1353
- See [`test/rpc-example.ts`](../test/rpc-example.ts) for a complete interactive example, or [`src/modes/rpc/rpc-client.ts`](../src/modes/rpc/rpc-client.ts) for a typed client implementation.
1353
+ See [`test/rpc-example.ts`](https://github.com/flora131/atomic/blob/main/packages/coding-agent/test/rpc-example.ts) for a complete interactive example, or [`src/modes/rpc/rpc-client.ts`](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/modes/rpc/rpc-client.ts) for a typed client implementation.
1354
1354
 
1355
- For a complete example of handling the extension UI protocol, see [`examples/rpc-extension-ui.ts`](../examples/rpc-extension-ui.ts) which pairs with the [`examples/extensions/rpc-demo.ts`](../examples/extensions/rpc-demo.ts) extension.
1355
+ For a complete example of handling the extension UI protocol, see [`examples/rpc-extension-ui.ts`](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/rpc-extension-ui.ts) which pairs with the [`examples/extensions/rpc-demo.ts`](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/rpc-demo.ts) extension.
1356
1356
 
1357
1357
  ```javascript
1358
1358
  const { spawn } = require("child_process");
package/docs/sdk.md CHANGED
@@ -11,7 +11,7 @@ The SDK provides programmatic access to atomic's agent capabilities. Use it to e
11
11
  - Build custom tools that spawn sub-agents
12
12
  - Test agent behavior programmatically
13
13
 
14
- See [examples/sdk/](../examples/sdk/) for working examples from minimal to full control.
14
+ See [examples/sdk/](https://github.com/flora131/atomic/tree/main/packages/coding-agent/examples/sdk) for working examples from minimal to full control.
15
15
 
16
16
  ## Quick Start
17
17
 
@@ -39,10 +39,21 @@ await session.prompt("What files are in the current directory?");
39
39
 
40
40
  ## Installation
41
41
 
42
+ Choose npm, Bun, or pnpm:
43
+
42
44
  ```bash
45
+ # npm
43
46
  npm install @bastani/atomic
47
+
48
+ # Bun
49
+ bun add @bastani/atomic
50
+
51
+ # pnpm
52
+ pnpm add @bastani/atomic
44
53
  ```
45
54
 
55
+ Atomic does not require package install scripts. If you want to disable dependency lifecycle scripts during the Atomic install, you can add `--ignore-scripts` to the install command.
56
+
46
57
  The SDK is included in the main package. No separate installation needed.
47
58
 
48
59
  ## Core Concepts
@@ -407,7 +418,7 @@ If no model is provided:
407
418
  2. Uses default from settings
408
419
  3. Falls back to first available model
409
420
 
410
- > See [examples/sdk/02-custom-model.ts](../examples/sdk/02-custom-model.ts)
421
+ > See [examples/sdk/02-custom-model.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/02-custom-model.ts)
411
422
 
412
423
  ### API Keys and OAuth
413
424
 
@@ -448,7 +459,7 @@ const { session } = await createAgentSession({
448
459
  const simpleRegistry = ModelRegistry.inMemory(authStorage);
449
460
  ```
450
461
 
451
- > See [examples/sdk/09-api-keys-and-oauth.ts](../examples/sdk/09-api-keys-and-oauth.ts)
462
+ > See [examples/sdk/09-api-keys-and-oauth.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/09-api-keys-and-oauth.ts)
452
463
 
453
464
  ### System Prompt
454
465
 
@@ -465,7 +476,7 @@ await loader.reload();
465
476
  const { session } = await createAgentSession({ resourceLoader: loader });
466
477
  ```
467
478
 
468
- > See [examples/sdk/03-custom-prompt.ts](../examples/sdk/03-custom-prompt.ts)
479
+ > See [examples/sdk/03-custom-prompt.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/03-custom-prompt.ts)
469
480
 
470
481
  ### Tools
471
482
 
@@ -513,7 +524,7 @@ const { session } = await createAgentSession({
513
524
  });
514
525
  ```
515
526
 
516
- > See [examples/sdk/05-tools.ts](../examples/sdk/05-tools.ts)
527
+ > See [examples/sdk/05-tools.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/05-tools.ts)
517
528
 
518
529
  ### Custom Tools
519
530
 
@@ -547,7 +558,7 @@ Custom tools passed via `customTools` are combined with extension-registered too
547
558
 
548
559
  If you pass `tools`, include each custom or extension tool name you want enabled, for example `tools: ["read", "bash", "my_tool"]`.
549
560
 
550
- > See [examples/sdk/05-tools.ts](../examples/sdk/05-tools.ts)
561
+ > See [examples/sdk/05-tools.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/05-tools.ts)
551
562
 
552
563
  ### Extensions
553
564
 
@@ -587,7 +598,7 @@ await loader.reload();
587
598
  eventBus.on("my-extension:status", (data) => console.log(data));
588
599
  ```
589
600
 
590
- > See [examples/sdk/06-extensions.ts](../examples/sdk/06-extensions.ts) and [docs/extensions.md](extensions.md)
601
+ > See [examples/sdk/06-extensions.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/06-extensions.ts) and [docs/extensions.md](extensions.md)
591
602
 
592
603
  ### Skills
593
604
 
@@ -617,7 +628,7 @@ await loader.reload();
617
628
  const { session } = await createAgentSession({ resourceLoader: loader });
618
629
  ```
619
630
 
620
- > See [examples/sdk/04-skills.ts](../examples/sdk/04-skills.ts)
631
+ > See [examples/sdk/04-skills.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/04-skills.ts)
621
632
 
622
633
  ### Context Files
623
634
 
@@ -637,7 +648,7 @@ await loader.reload();
637
648
  const { session } = await createAgentSession({ resourceLoader: loader });
638
649
  ```
639
650
 
640
- > See [examples/sdk/07-context-files.ts](../examples/sdk/07-context-files.ts)
651
+ > See [examples/sdk/07-context-files.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/07-context-files.ts)
641
652
 
642
653
  ### Slash Commands
643
654
 
@@ -666,7 +677,7 @@ await loader.reload();
666
677
  const { session } = await createAgentSession({ resourceLoader: loader });
667
678
  ```
668
679
 
669
- > See [examples/sdk/08-prompt-templates.ts](../examples/sdk/08-prompt-templates.ts)
680
+ > See [examples/sdk/08-prompt-templates.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/08-prompt-templates.ts)
670
681
 
671
682
  ### Session Management
672
683
 
@@ -770,7 +781,7 @@ sm.branchWithSummary(id, "Summary..."); // Branch with context summary
770
781
  sm.createBranchedSession(leafId); // Extract path to new file
771
782
  ```
772
783
 
773
- > See [examples/sdk/11-sessions.ts](../examples/sdk/11-sessions.ts) and [Session Format](session-format.md)
784
+ > See [examples/sdk/11-sessions.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/11-sessions.ts) and [Session Format](session-format.md)
774
785
 
775
786
  ### Settings Management
776
787
 
@@ -821,7 +832,7 @@ Project overrides global. Nested objects merge keys. Setters modify global setti
821
832
  - Call `await settingsManager.flush()` when you need a durability boundary (for example, before process exit or before asserting file contents in tests).
822
833
  - `SettingsManager` does not print settings I/O errors. Use `settingsManager.drainErrors()` and report them in your app layer.
823
834
 
824
- > See [examples/sdk/10-settings.ts](../examples/sdk/10-settings.ts)
835
+ > See [examples/sdk/10-settings.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/sdk/10-settings.ts)
825
836
 
826
837
  ## ResourceLoader
827
838
 
package/docs/sessions.md CHANGED
@@ -62,7 +62,7 @@ Named sessions are easier to find in `/resume` and `atomic -r`.
62
62
 
63
63
  Sessions are stored as trees. Every entry has an `id` and `parentId`, and the current position is the active leaf. `/tree` lets you jump to any previous point and continue from there without creating a new file.
64
64
 
65
- <p align="center"><img src="images/tree-view.png" alt="Tree View" width="600"></p>
65
+ <p align="center"><img src="images/tree-view.png" alt="Tree View" width="600" /></p>
66
66
 
67
67
  Example shape:
68
68
 
package/docs/skills.md CHANGED
@@ -116,9 +116,16 @@ description: What this skill does and when to use it. Be specific.
116
116
 
117
117
  ## Setup
118
118
 
119
- Run once before first use:
119
+ Run once before first use (choose one):
120
120
  ```bash
121
+ # npm
121
122
  cd /path/to/skill && npm install
123
+
124
+ # Bun
125
+ cd /path/to/skill && bun install
126
+
127
+ # pnpm
128
+ cd /path/to/skill && pnpm install
122
129
  ```
123
130
 
124
131
  ## Usage
@@ -209,7 +216,14 @@ description: Web search and content extraction via Brave Search API. Use for sea
209
216
  ## Setup
210
217
 
211
218
  ```bash
219
+ # npm
212
220
  cd /path/to/brave-search && npm install
221
+
222
+ # Bun
223
+ cd /path/to/brave-search && bun install
224
+
225
+ # pnpm
226
+ cd /path/to/brave-search && pnpm install
213
227
  ```
214
228
 
215
229
  ## Search
package/docs/termux.md CHANGED
@@ -16,9 +16,17 @@ pkg update && pkg upgrade
16
16
  # Install dependencies
17
17
  pkg install nodejs termux-api git
18
18
 
19
- # Install Atomic
19
+ # Install Atomic (choose one package manager available in Termux)
20
+ # npm is installed by `pkg install nodejs`; Bun and pnpm must be installed separately before using those commands.
21
+ # npm
20
22
  npm install -g @bastani/atomic
21
23
 
24
+ # Bun
25
+ bun install -g @bastani/atomic
26
+
27
+ # pnpm
28
+ pnpm add -g @bastani/atomic
29
+
22
30
  # Create config directory
23
31
  mkdir -p ~/.atomic/agent
24
32
 
@@ -26,6 +34,8 @@ mkdir -p ~/.atomic/agent
26
34
  atomic
27
35
  ```
28
36
 
37
+ Atomic does not require package install scripts. If you want to disable dependency lifecycle scripts during the Atomic install, you can add `--ignore-scripts` to the install command.
38
+
29
39
  ## Clipboard Support
30
40
 
31
41
  Clipboard operations use `termux-clipboard-set` and `termux-clipboard-get` when running in Termux. The Termux:API app must be installed for these to work.
package/docs/themes.md CHANGED
@@ -291,9 +291,9 @@ echo $COLORTERM # Should output "truecolor" or "24bit"
291
291
  ## Examples
292
292
 
293
293
  See the built-in themes:
294
- - [dark.json](../src/modes/interactive/theme/dark.json)
295
- - [light.json](../src/modes/interactive/theme/light.json)
296
- - [catppuccin-frappe.json](../src/modes/interactive/theme/catppuccin-frappe.json)
297
- - [catppuccin-latte.json](../src/modes/interactive/theme/catppuccin-latte.json)
298
- - [catppuccin-macchiato.json](../src/modes/interactive/theme/catppuccin-macchiato.json)
299
- - [catppuccin-mocha.json](../src/modes/interactive/theme/catppuccin-mocha.json)
294
+ - [dark.json](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/modes/interactive/theme/dark.json)
295
+ - [light.json](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/modes/interactive/theme/light.json)
296
+ - [catppuccin-frappe.json](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/modes/interactive/theme/catppuccin-frappe.json)
297
+ - [catppuccin-latte.json](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/modes/interactive/theme/catppuccin-latte.json)
298
+ - [catppuccin-macchiato.json](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/modes/interactive/theme/catppuccin-macchiato.json)
299
+ - [catppuccin-mocha.json](https://github.com/flora131/atomic/blob/main/packages/coding-agent/src/modes/interactive/theme/catppuccin-mocha.json)
package/docs/tui.md CHANGED
@@ -175,7 +175,7 @@ await showMenu(); // First show
175
175
  await showMenu(); // "Back" = just call again
176
176
  ```
177
177
 
178
- See [overlay-qa-tests.ts](../examples/extensions/overlay-qa-tests.ts) for comprehensive examples covering anchors, margins, stacking, responsive visibility, and animation.
178
+ See [overlay-qa-tests.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/overlay-qa-tests.ts) for comprehensive examples covering anchors, margins, stacking, responsive visibility, and animation.
179
179
 
180
180
  ## Built-in Components
181
181
 
@@ -644,7 +644,7 @@ pi.registerCommand("pick", {
644
644
  });
645
645
  ```
646
646
 
647
- **Examples:** [preset.ts](../examples/extensions/preset.ts), [tools.ts](../examples/extensions/tools.ts)
647
+ **Examples:** [preset.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/preset.ts), [tools.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/tools.ts)
648
648
 
649
649
  ### Pattern 2: Async Operation with Cancel (BorderedLoader)
650
650
 
@@ -676,7 +676,7 @@ pi.registerCommand("fetch", {
676
676
  });
677
677
  ```
678
678
 
679
- **Examples:** [qna.ts](../examples/extensions/qna.ts), [handoff.ts](../examples/extensions/handoff.ts)
679
+ **Examples:** [qna.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/qna.ts), [handoff.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/handoff.ts)
680
680
 
681
681
  ### Pattern 3: Settings/Toggles (SettingsList)
682
682
 
@@ -720,7 +720,7 @@ pi.registerCommand("settings", {
720
720
  });
721
721
  ```
722
722
 
723
- **Examples:** [tools.ts](../examples/extensions/tools.ts)
723
+ **Examples:** [tools.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/tools.ts)
724
724
 
725
725
  ### Pattern 4: Persistent Status Indicator
726
726
 
@@ -734,7 +734,7 @@ ctx.ui.setStatus("my-ext", ctx.ui.theme.fg("accent", "● active"));
734
734
  ctx.ui.setStatus("my-ext", undefined);
735
735
  ```
736
736
 
737
- **Examples:** [status-line.ts](../examples/extensions/status-line.ts), [plan-mode.ts](../examples/extensions/plan-mode.ts), [preset.ts](../examples/extensions/preset.ts)
737
+ **Examples:** [status-line.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/status-line.ts), [plan-mode/index.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/plan-mode/index.ts), [preset.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/preset.ts)
738
738
 
739
739
  ### Pattern 4b: Working Indicator Customization
740
740
 
@@ -764,7 +764,7 @@ ctx.ui.setWorkingIndicator();
764
764
 
765
765
  This only affects the normal streaming working indicator. Compaction and retry loaders keep their built-in styling. Custom frames are rendered verbatim, so extensions must add their own colors when needed.
766
766
 
767
- **Examples:** [working-indicator.ts](../examples/extensions/working-indicator.ts)
767
+ **Examples:** [working-indicator.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/working-indicator.ts)
768
768
 
769
769
  ### Pattern 5: Widgets Above/Below Editor
770
770
 
@@ -794,7 +794,7 @@ ctx.ui.setWidget("my-widget", (_tui, theme) => {
794
794
  ctx.ui.setWidget("my-widget", undefined);
795
795
  ```
796
796
 
797
- **Examples:** [plan-mode.ts](../examples/extensions/plan-mode.ts)
797
+ **Examples:** [plan-mode/index.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/plan-mode/index.ts)
798
798
 
799
799
  ### Pattern 6: Custom Footer
800
800
 
@@ -816,7 +816,7 @@ ctx.ui.setFooter(undefined); // restore default
816
816
 
817
817
  Token stats available via `ctx.sessionManager.getBranch()` and `ctx.model`.
818
818
 
819
- **Examples:** [custom-footer.ts](../examples/extensions/custom-footer.ts)
819
+ **Examples:** [custom-footer.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/custom-footer.ts)
820
820
 
821
821
  ### Pattern 7: Custom Editor (vim mode, etc.)
822
822
 
@@ -892,7 +892,7 @@ export default function (pi: ExtensionAPI) {
892
892
  - **Factory pattern**: `setEditorComponent` receives a factory function that gets `tui`, `theme`, and `keybindings`
893
893
  - **Pass `undefined`** to restore the default editor: `ctx.ui.setEditorComponent(undefined)`
894
894
 
895
- **Examples:** [modal-editor.ts](../examples/extensions/modal-editor.ts)
895
+ **Examples:** [modal-editor.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/modal-editor.ts)
896
896
 
897
897
  ## Key Rules
898
898
 
@@ -908,12 +908,12 @@ export default function (pi: ExtensionAPI) {
908
908
 
909
909
  ## Examples
910
910
 
911
- - **Selection UI**: [examples/extensions/preset.ts](../examples/extensions/preset.ts) - SelectList with DynamicBorder framing
912
- - **Async with cancel**: [examples/extensions/qna.ts](../examples/extensions/qna.ts) - BorderedLoader for LLM calls
913
- - **Settings toggles**: [examples/extensions/tools.ts](../examples/extensions/tools.ts) - SettingsList for tool enable/disable
914
- - **Status indicators**: [examples/extensions/plan-mode.ts](../examples/extensions/plan-mode.ts) - setStatus and setWidget
915
- - **Working indicator**: [examples/extensions/working-indicator.ts](../examples/extensions/working-indicator.ts) - setWorkingIndicator
916
- - **Custom footer**: [examples/extensions/custom-footer.ts](../examples/extensions/custom-footer.ts) - setFooter with stats
917
- - **Custom editor**: [examples/extensions/modal-editor.ts](../examples/extensions/modal-editor.ts) - Vim-like modal editing
918
- - **Snake game**: [examples/extensions/snake.ts](../examples/extensions/snake.ts) - Full game with keyboard input, game loop
919
- - **Custom tool rendering**: [examples/extensions/todo.ts](../examples/extensions/todo.ts) - renderCall and renderResult
911
+ - **Selection UI**: [examples/extensions/preset.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/preset.ts) - SelectList with DynamicBorder framing
912
+ - **Async with cancel**: [examples/extensions/qna.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/qna.ts) - BorderedLoader for LLM calls
913
+ - **Settings toggles**: [examples/extensions/tools.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/tools.ts) - SettingsList for tool enable/disable
914
+ - **Status indicators**: [examples/extensions/plan-mode/index.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/plan-mode/index.ts) - setStatus and setWidget
915
+ - **Working indicator**: [examples/extensions/working-indicator.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/working-indicator.ts) - setWorkingIndicator
916
+ - **Custom footer**: [examples/extensions/custom-footer.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/custom-footer.ts) - setFooter with stats
917
+ - **Custom editor**: [examples/extensions/modal-editor.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/modal-editor.ts) - Vim-like modal editing
918
+ - **Snake game**: [examples/extensions/snake.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/snake.ts) - Full game with keyboard input, game loop
919
+ - **Custom tool rendering**: [examples/extensions/todo.ts](https://github.com/flora131/atomic/blob/main/packages/coding-agent/examples/extensions/todo.ts) - renderCall and renderResult
package/docs/usage.md CHANGED
@@ -4,7 +4,7 @@ This page collects day-to-day usage details that do not fit on the quickstart pa
4
4
 
5
5
  ## Interactive Mode
6
6
 
7
- <p align="center"><img src="images/interactive-mode.png" alt="Interactive Mode" width="600"></p>
7
+ <p align="center"><img src="images/interactive-mode.png" alt="Interactive Mode" width="600" /></p>
8
8
 
9
9
  The interface has four main areas:
10
10