@bastani/atomic 0.8.27 → 0.8.28-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/README.md +120 -118
  3. package/dist/builtin/intercom/package.json +1 -1
  4. package/dist/builtin/mcp/package.json +2 -2
  5. package/dist/builtin/subagents/package.json +1 -1
  6. package/dist/builtin/web-access/package.json +1 -1
  7. package/dist/builtin/workflows/CHANGELOG.md +22 -0
  8. package/dist/builtin/workflows/README.md +11 -9
  9. package/dist/builtin/workflows/builtin/open-claude-design.ts +150 -13
  10. package/dist/builtin/workflows/package.json +1 -1
  11. package/dist/builtin/workflows/src/authoring.d.ts +5 -2
  12. package/dist/builtin/workflows/src/extension/background-ui-adapter.ts +3 -1
  13. package/dist/builtin/workflows/src/extension/hil-answer-notifications.ts +17 -25
  14. package/dist/builtin/workflows/src/extension/index.ts +133 -18
  15. package/dist/builtin/workflows/src/extension/render-result.ts +22 -2
  16. package/dist/builtin/workflows/src/extension/workflow-schema.ts +3 -3
  17. package/dist/builtin/workflows/src/runs/foreground/executor.ts +210 -16
  18. package/dist/builtin/workflows/src/sdk-surface.ts +1 -1
  19. package/dist/builtin/workflows/src/shared/authoring-contract.d.ts +42 -5
  20. package/dist/builtin/workflows/src/shared/store-types.ts +8 -2
  21. package/dist/builtin/workflows/src/shared/store.ts +51 -0
  22. package/dist/builtin/workflows/src/shared/types.ts +14 -4
  23. package/dist/builtin/workflows/src/tui/chat-surface.ts +32 -33
  24. package/dist/builtin/workflows/src/tui/graph-view.ts +4 -1
  25. package/dist/builtin/workflows/src/tui/prompt-card.ts +6 -0
  26. package/dist/builtin/workflows/src/tui/run-detail.ts +11 -4
  27. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +11 -1
  28. package/dist/builtin/workflows/src/tui/status-list.ts +32 -2
  29. package/dist/cli/args.d.ts +4 -0
  30. package/dist/cli/args.d.ts.map +1 -1
  31. package/dist/cli/args.js +35 -0
  32. package/dist/cli/args.js.map +1 -1
  33. package/dist/cli/project-trust.d.ts +10 -0
  34. package/dist/cli/project-trust.d.ts.map +1 -0
  35. package/dist/cli/project-trust.js +36 -0
  36. package/dist/cli/project-trust.js.map +1 -0
  37. package/dist/cli/startup-ui.d.ts +7 -0
  38. package/dist/cli/startup-ui.d.ts.map +1 -0
  39. package/dist/cli/startup-ui.js +57 -0
  40. package/dist/cli/startup-ui.js.map +1 -0
  41. package/dist/config.d.ts.map +1 -1
  42. package/dist/config.js +24 -3
  43. package/dist/config.js.map +1 -1
  44. package/dist/core/agent-session-runtime.d.ts +3 -1
  45. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  46. package/dist/core/agent-session-runtime.js +1 -0
  47. package/dist/core/agent-session-runtime.js.map +1 -1
  48. package/dist/core/agent-session-services.d.ts +2 -1
  49. package/dist/core/agent-session-services.d.ts.map +1 -1
  50. package/dist/core/agent-session-services.js +2 -2
  51. package/dist/core/agent-session-services.js.map +1 -1
  52. package/dist/core/agent-session.d.ts +9 -5
  53. package/dist/core/agent-session.d.ts.map +1 -1
  54. package/dist/core/agent-session.js +205 -51
  55. package/dist/core/agent-session.js.map +1 -1
  56. package/dist/core/auth-guidance.d.ts +10 -1
  57. package/dist/core/auth-guidance.d.ts.map +1 -1
  58. package/dist/core/auth-guidance.js +26 -1
  59. package/dist/core/auth-guidance.js.map +1 -1
  60. package/dist/core/auth-storage.d.ts.map +1 -1
  61. package/dist/core/auth-storage.js +4 -3
  62. package/dist/core/auth-storage.js.map +1 -1
  63. package/dist/core/compaction/branch-summarization.d.ts +5 -3
  64. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  65. package/dist/core/compaction/branch-summarization.js +16 -10
  66. package/dist/core/compaction/branch-summarization.js.map +1 -1
  67. package/dist/core/compaction/compaction.d.ts +4 -84
  68. package/dist/core/compaction/compaction.d.ts.map +1 -1
  69. package/dist/core/compaction/compaction.js +20 -502
  70. package/dist/core/compaction/compaction.js.map +1 -1
  71. package/dist/core/compaction/context-compaction.d.ts.map +1 -1
  72. package/dist/core/compaction/context-compaction.js +39 -82
  73. package/dist/core/compaction/context-compaction.js.map +1 -1
  74. package/dist/core/compaction/index.d.ts +1 -1
  75. package/dist/core/compaction/index.d.ts.map +1 -1
  76. package/dist/core/compaction/index.js +1 -1
  77. package/dist/core/compaction/index.js.map +1 -1
  78. package/dist/core/compaction/utils.d.ts +1 -1
  79. package/dist/core/compaction/utils.d.ts.map +1 -1
  80. package/dist/core/compaction/utils.js +1 -1
  81. package/dist/core/compaction/utils.js.map +1 -1
  82. package/dist/core/experimental.d.ts +2 -0
  83. package/dist/core/experimental.d.ts.map +1 -0
  84. package/dist/core/experimental.js +5 -0
  85. package/dist/core/experimental.js.map +1 -0
  86. package/dist/core/export-html/template.js +19 -6
  87. package/dist/core/extensions/index.d.ts +1 -1
  88. package/dist/core/extensions/index.d.ts.map +1 -1
  89. package/dist/core/extensions/index.js.map +1 -1
  90. package/dist/core/extensions/loader.d.ts +1 -1
  91. package/dist/core/extensions/loader.d.ts.map +1 -1
  92. package/dist/core/extensions/loader.js +6 -4
  93. package/dist/core/extensions/loader.js.map +1 -1
  94. package/dist/core/extensions/runner.d.ts +11 -4
  95. package/dist/core/extensions/runner.d.ts.map +1 -1
  96. package/dist/core/extensions/runner.js +53 -3
  97. package/dist/core/extensions/runner.js.map +1 -1
  98. package/dist/core/extensions/types.d.ts +44 -12
  99. package/dist/core/extensions/types.d.ts.map +1 -1
  100. package/dist/core/extensions/types.js.map +1 -1
  101. package/dist/core/footer-data-provider.d.ts +2 -0
  102. package/dist/core/footer-data-provider.d.ts.map +1 -1
  103. package/dist/core/footer-data-provider.js +27 -1
  104. package/dist/core/footer-data-provider.js.map +1 -1
  105. package/dist/core/index.d.ts +2 -1
  106. package/dist/core/index.d.ts.map +1 -1
  107. package/dist/core/index.js +1 -0
  108. package/dist/core/index.js.map +1 -1
  109. package/dist/core/messages.d.ts +1 -11
  110. package/dist/core/messages.d.ts.map +1 -1
  111. package/dist/core/messages.js +10 -25
  112. package/dist/core/messages.js.map +1 -1
  113. package/dist/core/model-registry.d.ts.map +1 -1
  114. package/dist/core/model-registry.js +64 -7
  115. package/dist/core/model-registry.js.map +1 -1
  116. package/dist/core/model-resolver.d.ts.map +1 -1
  117. package/dist/core/model-resolver.js +1 -0
  118. package/dist/core/model-resolver.js.map +1 -1
  119. package/dist/core/output-guard.d.ts +1 -0
  120. package/dist/core/output-guard.d.ts.map +1 -1
  121. package/dist/core/output-guard.js +52 -22
  122. package/dist/core/output-guard.js.map +1 -1
  123. package/dist/core/package-manager.d.ts +1 -0
  124. package/dist/core/package-manager.d.ts.map +1 -1
  125. package/dist/core/package-manager.js +20 -8
  126. package/dist/core/package-manager.js.map +1 -1
  127. package/dist/core/project-trust.d.ts +15 -0
  128. package/dist/core/project-trust.d.ts.map +1 -0
  129. package/dist/core/project-trust.js +58 -0
  130. package/dist/core/project-trust.js.map +1 -0
  131. package/dist/core/prompt-templates.d.ts +5 -4
  132. package/dist/core/prompt-templates.d.ts.map +1 -1
  133. package/dist/core/prompt-templates.js +30 -29
  134. package/dist/core/prompt-templates.js.map +1 -1
  135. package/dist/core/provider-attribution.d.ts +4 -0
  136. package/dist/core/provider-attribution.d.ts.map +1 -0
  137. package/dist/core/provider-attribution.js +73 -0
  138. package/dist/core/provider-attribution.js.map +1 -0
  139. package/dist/core/provider-display-names.d.ts.map +1 -1
  140. package/dist/core/provider-display-names.js +3 -0
  141. package/dist/core/provider-display-names.js.map +1 -1
  142. package/dist/core/resolve-config-value.d.ts +9 -1
  143. package/dist/core/resolve-config-value.d.ts.map +1 -1
  144. package/dist/core/resolve-config-value.js +134 -11
  145. package/dist/core/resolve-config-value.js.map +1 -1
  146. package/dist/core/resource-loader.d.ts +12 -2
  147. package/dist/core/resource-loader.d.ts.map +1 -1
  148. package/dist/core/resource-loader.js +108 -18
  149. package/dist/core/resource-loader.js.map +1 -1
  150. package/dist/core/sdk.d.ts.map +1 -1
  151. package/dist/core/sdk.js +12 -42
  152. package/dist/core/sdk.js.map +1 -1
  153. package/dist/core/session-manager.d.ts +11 -15
  154. package/dist/core/session-manager.d.ts.map +1 -1
  155. package/dist/core/session-manager.js +111 -111
  156. package/dist/core/session-manager.js.map +1 -1
  157. package/dist/core/settings-manager.d.ts +15 -5
  158. package/dist/core/settings-manager.d.ts.map +1 -1
  159. package/dist/core/settings-manager.js +69 -14
  160. package/dist/core/settings-manager.js.map +1 -1
  161. package/dist/core/slash-commands.d.ts.map +1 -1
  162. package/dist/core/slash-commands.js +1 -0
  163. package/dist/core/slash-commands.js.map +1 -1
  164. package/dist/core/system-prompt.d.ts.map +1 -1
  165. package/dist/core/system-prompt.js +0 -3
  166. package/dist/core/system-prompt.js.map +1 -1
  167. package/dist/core/tools/bash.d.ts.map +1 -1
  168. package/dist/core/tools/bash.js +2 -1
  169. package/dist/core/tools/bash.js.map +1 -1
  170. package/dist/core/tools/edit.d.ts.map +1 -1
  171. package/dist/core/tools/edit.js +7 -10
  172. package/dist/core/tools/edit.js.map +1 -1
  173. package/dist/core/tools/find.d.ts.map +1 -1
  174. package/dist/core/tools/find.js +1 -1
  175. package/dist/core/tools/find.js.map +1 -1
  176. package/dist/core/tools/grep.d.ts.map +1 -1
  177. package/dist/core/tools/grep.js +1 -1
  178. package/dist/core/tools/grep.js.map +1 -1
  179. package/dist/core/tools/ls.d.ts.map +1 -1
  180. package/dist/core/tools/ls.js +1 -1
  181. package/dist/core/tools/ls.js.map +1 -1
  182. package/dist/core/tools/oversized-tool-result.d.ts +53 -0
  183. package/dist/core/tools/oversized-tool-result.d.ts.map +1 -0
  184. package/dist/core/tools/oversized-tool-result.js +206 -0
  185. package/dist/core/tools/oversized-tool-result.js.map +1 -0
  186. package/dist/core/tools/read.d.ts +12 -0
  187. package/dist/core/tools/read.d.ts.map +1 -1
  188. package/dist/core/tools/read.js +99 -34
  189. package/dist/core/tools/read.js.map +1 -1
  190. package/dist/core/tools/render-utils.d.ts +6 -0
  191. package/dist/core/tools/render-utils.d.ts.map +1 -1
  192. package/dist/core/tools/render-utils.js +17 -1
  193. package/dist/core/tools/render-utils.js.map +1 -1
  194. package/dist/core/tools/tool-definition-wrapper.d.ts +6 -0
  195. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  196. package/dist/core/tools/tool-definition-wrapper.js +2 -0
  197. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  198. package/dist/core/tools/tool-limits.d.ts +25 -0
  199. package/dist/core/tools/tool-limits.d.ts.map +1 -0
  200. package/dist/core/tools/tool-limits.js +25 -0
  201. package/dist/core/tools/tool-limits.js.map +1 -0
  202. package/dist/core/tools/write.d.ts.map +1 -1
  203. package/dist/core/tools/write.js +1 -1
  204. package/dist/core/tools/write.js.map +1 -1
  205. package/dist/core/trust-manager.d.ts +31 -0
  206. package/dist/core/trust-manager.d.ts.map +1 -0
  207. package/dist/core/trust-manager.js +196 -0
  208. package/dist/core/trust-manager.js.map +1 -0
  209. package/dist/index.d.ts +12 -7
  210. package/dist/index.d.ts.map +1 -1
  211. package/dist/index.js +8 -4
  212. package/dist/index.js.map +1 -1
  213. package/dist/main.d.ts.map +1 -1
  214. package/dist/main.js +142 -30
  215. package/dist/main.js.map +1 -1
  216. package/dist/migrations.d.ts +3 -1
  217. package/dist/migrations.d.ts.map +1 -1
  218. package/dist/migrations.js +325 -7
  219. package/dist/migrations.js.map +1 -1
  220. package/dist/modes/index.d.ts +1 -1
  221. package/dist/modes/index.d.ts.map +1 -1
  222. package/dist/modes/index.js.map +1 -1
  223. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  224. package/dist/modes/interactive/components/bash-execution.js +2 -2
  225. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  226. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -5
  227. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  228. package/dist/modes/interactive/components/chat-message-renderer.js +5 -9
  229. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  230. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  231. package/dist/modes/interactive/components/chat-session-host.js +0 -3
  232. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  233. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  234. package/dist/modes/interactive/components/footer.js +6 -0
  235. package/dist/modes/interactive/components/footer.js.map +1 -1
  236. package/dist/modes/interactive/components/index.d.ts +1 -1
  237. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  238. package/dist/modes/interactive/components/index.js +1 -1
  239. package/dist/modes/interactive/components/index.js.map +1 -1
  240. package/dist/modes/interactive/components/login-dialog.d.ts +1 -1
  241. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  242. package/dist/modes/interactive/components/login-dialog.js +9 -16
  243. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  244. package/dist/modes/interactive/components/settings-selector.d.ts +3 -1
  245. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  246. package/dist/modes/interactive/components/settings-selector.js +20 -0
  247. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  248. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  249. package/dist/modes/interactive/components/tool-execution.js +22 -0
  250. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  251. package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  252. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  253. package/dist/modes/interactive/components/trust-selector.js +85 -0
  254. package/dist/modes/interactive/components/trust-selector.js.map +1 -0
  255. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  256. package/dist/modes/interactive/components/user-message.js +1 -1
  257. package/dist/modes/interactive/components/user-message.js.map +1 -1
  258. package/dist/modes/interactive/interactive-mode.d.ts +9 -0
  259. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  260. package/dist/modes/interactive/interactive-mode.js +134 -36
  261. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  262. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  263. package/dist/modes/interactive/theme/theme.js +10 -0
  264. package/dist/modes/interactive/theme/theme.js.map +1 -1
  265. package/dist/modes/print-mode.d.ts.map +1 -1
  266. package/dist/modes/print-mode.js +1 -0
  267. package/dist/modes/print-mode.js.map +1 -1
  268. package/dist/modes/rpc/rpc-client.d.ts +4 -1
  269. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  270. package/dist/modes/rpc/rpc-client.js +52 -8
  271. package/dist/modes/rpc/rpc-client.js.map +1 -1
  272. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  273. package/dist/modes/rpc/rpc-mode.js +24 -5
  274. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  275. package/dist/modes/rpc/rpc-types.d.ts +1 -1
  276. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  277. package/dist/modes/rpc/rpc-types.js.map +1 -1
  278. package/dist/package-manager-cli.d.ts +6 -2
  279. package/dist/package-manager-cli.d.ts.map +1 -1
  280. package/dist/package-manager-cli.js +104 -10
  281. package/dist/package-manager-cli.js.map +1 -1
  282. package/dist/utils/changelog.d.ts +1 -0
  283. package/dist/utils/changelog.d.ts.map +1 -1
  284. package/dist/utils/changelog.js +72 -0
  285. package/dist/utils/changelog.js.map +1 -1
  286. package/dist/utils/deprecation.d.ts +4 -0
  287. package/dist/utils/deprecation.d.ts.map +1 -0
  288. package/dist/utils/deprecation.js +13 -0
  289. package/dist/utils/deprecation.js.map +1 -0
  290. package/dist/utils/git.d.ts.map +1 -1
  291. package/dist/utils/git.js +54 -22
  292. package/dist/utils/git.js.map +1 -1
  293. package/dist/utils/json.d.ts +3 -0
  294. package/dist/utils/json.d.ts.map +1 -0
  295. package/dist/utils/json.js +7 -0
  296. package/dist/utils/json.js.map +1 -0
  297. package/dist/utils/open-browser.d.ts +9 -0
  298. package/dist/utils/open-browser.d.ts.map +1 -0
  299. package/dist/utils/open-browser.js +22 -0
  300. package/dist/utils/open-browser.js.map +1 -0
  301. package/docs/compaction.md +210 -181
  302. package/docs/containerization.md +111 -0
  303. package/docs/custom-provider.md +9 -9
  304. package/docs/development.md +1 -1
  305. package/docs/docs.json +2 -0
  306. package/docs/extensions.md +71 -24
  307. package/docs/index.md +2 -0
  308. package/docs/json.md +3 -4
  309. package/docs/models.md +10 -10
  310. package/docs/packages.md +1 -1
  311. package/docs/prompt-templates.md +9 -2
  312. package/docs/providers.md +18 -5
  313. package/docs/quickstart.md +1 -0
  314. package/docs/rpc.md +3 -2
  315. package/docs/sdk.md +5 -0
  316. package/docs/security.md +56 -0
  317. package/docs/session-format.md +14 -23
  318. package/docs/sessions.md +11 -1
  319. package/docs/settings.md +23 -9
  320. package/docs/skills.md +1 -1
  321. package/docs/terminal-setup.md +44 -2
  322. package/docs/themes.md +1 -1
  323. package/docs/tmux.md +4 -2
  324. package/docs/tui.md +14 -5
  325. package/docs/usage.md +17 -3
  326. package/docs/workflows.md +11 -9
  327. package/examples/README.md +1 -1
  328. package/examples/extensions/README.md +9 -6
  329. package/examples/extensions/bash-spawn-hook.ts +1 -1
  330. package/examples/extensions/built-in-tool-renderer.ts +1 -1
  331. package/examples/extensions/claude-rules.ts +1 -1
  332. package/examples/extensions/commands.ts +1 -1
  333. package/examples/extensions/custom-compaction.ts +43 -106
  334. package/examples/extensions/custom-header.ts +1 -1
  335. package/examples/extensions/custom-provider-anthropic/index.ts +3 -3
  336. package/examples/extensions/custom-provider-anthropic/package-lock.json +4 -4
  337. package/examples/extensions/custom-provider-anthropic/package.json +6 -6
  338. package/examples/extensions/custom-provider-gitlab-duo/index.ts +55 -4
  339. package/examples/extensions/custom-provider-gitlab-duo/package.json +3 -3
  340. package/examples/extensions/doom-overlay/README.md +1 -1
  341. package/examples/extensions/doom-overlay/index.ts +2 -2
  342. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  343. package/examples/extensions/gondolin/index.ts +523 -0
  344. package/examples/extensions/gondolin/package-lock.json +185 -0
  345. package/examples/extensions/gondolin/package.json +19 -0
  346. package/examples/extensions/handoff.ts +7 -45
  347. package/examples/extensions/hidden-thinking-label.ts +1 -1
  348. package/examples/extensions/inline-bash.ts +2 -2
  349. package/examples/extensions/input-transform-streaming.ts +39 -0
  350. package/examples/extensions/input-transform.ts +3 -3
  351. package/examples/extensions/interactive-shell.ts +2 -2
  352. package/examples/extensions/mac-system-theme.ts +2 -2
  353. package/examples/extensions/minimal-mode.ts +1 -1
  354. package/examples/extensions/modal-editor.ts +1 -1
  355. package/examples/extensions/model-status.ts +1 -1
  356. package/examples/extensions/overlay-qa-tests.ts +198 -179
  357. package/examples/extensions/overlay-test.ts +1 -1
  358. package/examples/extensions/pirate.ts +1 -1
  359. package/examples/extensions/preset.ts +14 -12
  360. package/examples/extensions/project-trust.ts +64 -0
  361. package/examples/extensions/prompt-customizer.ts +1 -1
  362. package/examples/extensions/qna.ts +1 -1
  363. package/examples/extensions/question.ts +1 -1
  364. package/examples/extensions/questionnaire.ts +1 -1
  365. package/examples/extensions/rainbow-editor.ts +1 -1
  366. package/examples/extensions/sandbox/index.ts +16 -14
  367. package/examples/extensions/sandbox/package-lock.json +90 -90
  368. package/examples/extensions/sandbox/package.json +17 -17
  369. package/examples/extensions/snake.ts +1 -1
  370. package/examples/extensions/space-invaders.ts +1 -1
  371. package/examples/extensions/ssh.ts +2 -2
  372. package/examples/extensions/subagent/README.md +13 -13
  373. package/examples/extensions/subagent/agents.ts +4 -2
  374. package/examples/extensions/subagent/index.ts +6 -6
  375. package/examples/extensions/summarize.ts +1 -1
  376. package/examples/extensions/tic-tac-toe.ts +1 -1
  377. package/examples/extensions/titlebar-spinner.ts +1 -1
  378. package/examples/extensions/todo.ts +1 -1
  379. package/examples/extensions/tool-override.ts +1 -1
  380. package/examples/extensions/tools.ts +6 -1
  381. package/examples/extensions/trigger-compact.ts +5 -4
  382. package/examples/extensions/with-deps/package-lock.json +4 -4
  383. package/examples/extensions/with-deps/package.json +7 -7
  384. package/examples/extensions/working-indicator.ts +4 -4
  385. package/examples/extensions/working-message-test.ts +1 -1
  386. package/examples/sdk/01-minimal.ts +1 -1
  387. package/examples/sdk/03-custom-prompt.ts +1 -1
  388. package/examples/sdk/04-skills.ts +1 -1
  389. package/examples/sdk/06-extensions.ts +2 -2
  390. package/examples/sdk/08-prompt-templates.ts +1 -1
  391. package/examples/sdk/09-api-keys-and-oauth.ts +2 -2
  392. package/examples/sdk/README.md +2 -2
  393. package/package.json +8 -8
  394. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  395. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  396. package/dist/modes/interactive/components/compaction-summary-message.js +0 -43
  397. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,12 +2,87 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.8.28-alpha.2] - 2026-06-10
6
+
7
+ ### Security
8
+
9
+ - Bumped the transitive `shell-quote` dependency from `1.8.3` to `1.8.4` in the `examples/extensions/sandbox` lockfile, resolving the critical advisory [GHSA-w7jw-789q-3m8p](https://github.com/advisories/GHSA-w7jw-789q-3m8p) (`shell-quote` `quote()` does not escape newlines in object `.op` values). The bump stays within `@anthropic-ai/sandbox-runtime`'s existing `^1.8.3` range.
10
+
11
+ ### Added
12
+
13
+ - Added upstream pi 0.76.0-0.79.1 coding-agent compatibility exports for package asset path helpers (`getPackageDir`, bundled asset/documentation/example paths), CLI argument parsing (`Args`, `parseArgs`), `SettingsManagerCreateOptions`, image conversion (`convertToPng`), and RPC extension UI request/response types so extensions can reference the same public APIs as upstream while retaining Atomic package identity.
14
+ - Added the shared JSON comment/trailing-comma stripping utility used by model configuration migrations, aligning Atomic with upstream's safer config-value migration path.
15
+ - Added the upstream project-trust selector UI (`/trust` slash command and `TrustSelectorComponent`) so saved project-trust decisions can be reviewed and changed inside an interactive session, plus the corresponding upstream component test.
16
+ - Added the upstream `project-trust`, `git-merge-and-resolve`, and `input-transform-streaming` example extensions, adapted to Atomic package identity and config directory conventions.
17
+ - Added upstream `docs/security.md` and `docs/containerization.md`, rebranded to Atomic naming, config directories, environment variables, and package identity, and wired them into the docs navigation.
18
+ - Added the upstream Gondolin tool-routing example extension under `examples/extensions/gondolin`, rebranded for Atomic usage/imports so the new containerization guide points at a shipped example, and kept host shell environment secrets out of guest VM tool execution.
19
+ - Added shared `warnDeprecation` and `openBrowser` utilities from upstream and routed `registerProvider` legacy env-var migration and OAuth browser-launch through them.
20
+ - Added upstream regression coverage for experimental feature gating, config-value env-var syntax migration (`auth.json`/`models.json` and `registerProvider`), the ported example extensions, startup input buffering, resume-command formatting, changelog link normalization, RPC child-process exits, SDK stream options, read-only session-id handling, startup session naming, exclude-tools behavior, signal shutdown cleanup, and extension OAuth prompt input stability.
21
+
22
+ ### Changed
23
+
24
+ - Bumped the bundled upstream pi libraries `@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`, and `@earendil-works/pi-tui` from `^0.78.1` to `^0.79.1`, bringing in upstream AI/model and TUI fixes such as Claude Fable 5 and Azure metadata updates, GPT-5 token/context metadata fixes, provider thinking-payload compatibility updates, autocomplete/CJK prompt rendering fixes, and keyboard-protocol fallback improvements.
25
+ - Ported upstream prompt-template argument default handling so programmatic callers can omit explicit prompt paths and default-inclusion options while existing Atomic resource-loading behavior remains explicit and unchanged.
26
+ - Added `${N:-default}` positional default support in prompt templates, matching upstream slash-template substitution behavior without recursively expanding argument/default values.
27
+
28
+ ### Fixed
29
+
30
+ - Fixed oversized tool-call results flooding model context by persisting large results to disk instead of returning them inline. Following the Claude Code tool-result storage convention, when a tool result's text content exceeds the system-wide cap of 50,000 characters (`DEFAULT_MAX_RESULT_SIZE_CHARS`) or a lower per-tool character cap, the full output is written to a session-scoped file (`<sessionDir>/tool-results/<toolCallId>.txt`) and the model receives a compact `<persisted-output>` message containing the file path plus a 2KB preview of the head of the output instead of the full payload. Tools can declare `maxResultSizeChars: Infinity` to opt out when they already self-bound model-visible output and provide their own full-output file; the built-in `bash` and `read` tools use that opt-out. Writes use the `wx` flag so repeated/replayed calls reuse the existing file (idempotent), size labels are reported in UTF-8 bytes while the threshold remains character-based, and persistence degrades gracefully — image results and any result that cannot be written to disk are returned unchanged. Tool `details` metadata is passed through untouched ([#1322](https://github.com/bastani-inc/atomic/issues/1322)).
31
+ - Fixed the Read tool to block text file-read results above 50,000 characters (matching the mehmoodosman/claude-code `DEFAULT_MAX_RESULT_SIZE_CHARS` limit) and return incremental-read guidance, including byte-slice guidance for oversized single-line selections, instead of inserting oversized file contents into model context ([#1323](https://github.com/bastani-inc/atomic/issues/1323)).
32
+ - Hardened the prompt-template argument substitution against polynomial-time regex backtracking (ReDoS) by length-bounding the `${N:-default}` default-value capture when scanning template content read from disk (an Atomic divergence from upstream; the bound far exceeds any realistic default value).
33
+ - Fixed the containerization guide to link the Gondolin example extension via an absolute repository URL instead of a relative `../examples/...` path so docs link validation passes.
34
+ - Fixed custom OpenAI Responses model validation to accept the upstream `supportsDeveloperRole` compatibility flag in `models.json`.
35
+ - Fixed provider auth-status reporting for explicit `$ENV_VAR` config values so missing environment variables are reported as unconfigured instead of as literal `models.json` API keys.
36
+ - Rebranded provider attribution headers for OpenRouter and NVIDIA NIM so Atomic sends Atomic identity rather than upstream Pi identity when install telemetry is enabled, matched OpenRouter-compatible custom endpoints by exact hostname rather than substring, and rebranded the Gondolin VM session label.
37
+ - Fixed config-value migrations to cover legacy `~/.pi/agent` config roots that Atomic still reads as compatibility fallbacks while preserving uppercase literal credentials when no matching environment variable exists and preserving `models.json` JSONC comments/formatting while rewriting only the intended `apiKey`/header fields.
38
+ - Fixed the initial `--resume` session picker so its all-sessions pane honors a custom `--session-dir`.
39
+ - Fixed interactive startup input handling so prompts submitted before the main input loop is installed are queued instead of dropped.
40
+ - Fixed RPC client requests to reject promptly when the child agent process exits or its stdio fails, and completed the RPC-mode output/backpressure and `excludeFromContext` bash-command port so high-volume JSONL output is flushed before continuation/shutdown.
41
+ - Fixed SDK provider stream options so HTTP idle timeouts and WebSocket connect timeouts from settings are forwarded to provider streams, while preserving per-request overrides.
42
+ - Fixed self-update command generation to bypass npm/pnpm/Bun minimum-release-age delays when reinstalling Atomic globally and documented the newly ported session, tool exclusion, and project-trust CLI flags in public usage docs/README.
43
+ - Fixed auth storage writes to consistently create/update `auth.json` with `0600` file mode.
44
+ - Fixed WSL repositories on Windows-mounted paths to poll Git `HEAD` changes so the footer branch display updates reliably.
45
+ - Fixed branch summarization to use the session stream function for provider request behavior parity and to count image content during token estimation.
46
+ - Fixed footer cache-hit-rate display, settings selector default project-trust editing, tool self-render image rendering, and collapsed tool-output hint styling.
47
+ - Fixed extension command contexts to expose live base system-prompt options, hid `streamingBehavior` from idle input handlers, and continued agent turns for follow-ups queued during `agent_end` extension handlers.
48
+ - Fixed signal-triggered interactive shutdown ordering so extension `session_shutdown` cleanup runs before terminal restore writes, and interactive quits print a resume command for persisted sessions.
49
+ - Fixed OAuth login dialog prompt/manual input rendering so submitted values remain stable after later prompts reuse the input component.
50
+ - Fixed changelog link normalization to produce Atomic repository/tag-pinned links from local package links and legacy pi-mono repository URLs using Atomic's unprefixed release tags, and wired normalization into startup and `/changelog` display output.
51
+ - Fixed custom model/provider/extension docs and API comments to use explicit `$ENV_VAR` config-value syntax now that bare uppercase strings are treated as literals, clarified that legacy uppercase env-like auth values are migrated only when the referenced environment variable is present during migration, restored real provider authentication environment variable names such as `ANTHROPIC_API_KEY`/`AZURE_OPENAI_API_VERSION`, corrected README/RPC/session-format/SDK/example path branding to use `atomic`, `ATOMIC_*`, and `.atomic` as primary with `PI_*`/`.pi` labeled legacy, removed the nonexistent `ATOMIC_CACHE_RETENTION` README entry in favor of the real provider-specific `PI_CACHE_RETENTION` knob, fixed README Atomic package anchors and package CLI examples, updated preset/sandbox/subagent examples to load project config from `.atomic` before legacy `.pi` and only after `ctx.isProjectTrusted()` approves project-local resources where applicable, documented context files as project-trust inputs in the security guide, documented the new `project_trust` extension event, `ctx.isProjectTrusted()`, and shipped project-trust/Gondolin/streaming-input examples, and updated README philosophy/example comments so Atomic's bundled workflows, subagents, MCP, web access, intercom, and todo capabilities are documented as shipped first-party features rather than absent upstream-Pi capabilities.
52
+ - Fixed extension-triggered RPC session reloads to preserve the current steering and follow-up queue modes across reload.
53
+ - Fixed plain metadata commands (`--version`, `--help`, and `--list-models`) to keep their output on stdout for scripts/completions, while package auto-install/startup chatter is kept off stdout and explicit non-interactive modes such as `-p --help` and `--mode json --help` continue routing all output away from stdout.
54
+ - Fixed the resume session picker so all-session listing respects a custom `--session-dir` instead of falling back to the default global session directory.
55
+ - Ported upstream tool path rendering support for edit tool output, including terminal hyperlink support when available, and accompanying upstream regression coverage for argument parsing, extension input events, session file operations, syntax highlighting, and related helpers.
56
+ - Fixed the ported coding-agent package tests by adding upstream CLI parsing and runtime wiring for named sessions, exact session ids, project trust approval overrides, and tool exclusion; extension runner context mode/project-trust APIs and input streaming behavior; prompt-guideline exposure in tool metadata; safer export-HTML markdown URL sanitization; Ant Ling default model selection; syntax highlight mappings for regex/diff scopes; custom session-id validation and propagation; cwd-scoped flat session listing; and streaming session-file reads for very large transcripts.
57
+ - Ported the upstream project-trust store and resolver foundation so project trust decisions can be remembered, `--approve`/`--no-approve` affects runtime trust state, extension `ctx.isProjectTrusted()` reflects the active decision instead of always reporting trusted, startup settings and project-local migrations are gated before project config is read, first-run interactive or extension project-trust approval immediately reruns trusted project migrations for the current startup, `defaultProjectTrust: "always"` is honored before startup project migrations/session lookup, untrusted sessions bootstrap without loading project-local extensions/resources, project-setting writes are refused while untrusted, trust-store lock acquisition retries transient contention, untrusted sessions skip project-local context/system prompt discovery, context-only projects with `AGENTS.md`/`CLAUDE.md` are trust-gated instead of implicitly trusted, reload-created project config can persist implicit startup trust for future sessions, `/trust` saves decisions through the active runtime agent directory, legacy `.pi` project config roots are gated behind trust alongside `.atomic`, user-global `~/.agents/skills` no longer makes every child project require project approval, read-only help/model-list commands avoid interactive trust prompts, session-only trust decisions persist across runtime reloads in the current process, stored trust decisions can still be reviewed by pre-trust extension handlers, pre-trust extensions are reused for the final extension set instead of initialized twice, interactive session switches use the active TUI context for trust prompts, package/config commands now resolve project trust before reading or writing project package settings, and manager-level project package install/remove operations refuse to touch project package storage while untrusted.
58
+ ## [0.8.28-alpha.1] - 2026-06-09
59
+
60
+ ### Changed
61
+
62
+ - Changed Atomic compaction to be verbatim-only across manual `/compact`, automatic threshold/overflow compaction, SDK/RPC compaction, and extension-triggered compaction. All compaction now records validated `context_compaction` deletion targets and rebuilds active context with retained transcript content verbatim and unchanged. Retained file paths, exact commands, error strings, and line numbers are never paraphrased or rewritten.
63
+ - Changed compaction extension hooks (`session_before_compact`, `session_compact`) to receive verbatim context-compaction preparations/results and allow cancellation or locally validated deletion requests instead of custom generated summaries. The before-compact hook now yields `ContextCompactionPreparation` and accepts `{ cancel: true }` or `{ deletionRequest }` returns; the after-compact hook now receives `ContextCompactionResult` and `contextCompactionEntry`.
64
+ - Changed the verbatim compaction critical-overflow recovery prompt to evict in an explicit priority order when context still exceeds the token budget after compaction: removable reasoning traces are evicted first, then removable user/custom/summary context. Existing safety/retention rules (recent entries, unresolved errors, failed commands, and at least one task-bearing entry) are preserved ([#1308](https://github.com/bastani-inc/atomic/issues/1308)).
65
+
66
+ ### Fixed
67
+
68
+ - Fixed `AgentSession.prompt` surfacing the confusing `No API key found for undefined` error when a model never resolved to a real provider (for example an unknown/unresolved model id reaching the prompt path as a bare string). The prompt path now fails fast with a clear `Unknown model: "<id>" did not resolve to an available provider` message, and `No API key found` guidance no longer renders a literal `undefined` provider.
69
+
70
+ ### Removed
71
+
72
+ - Removed the legacy summary-compaction runtime path, summary prompts, `CompactionEntry` active-context injection, `CompactionSummaryMessage` active message type, custom compaction instructions (`CompactOptions.customInstructions`, RPC `compact.customInstructions`, `/compact [instructions]`), `compaction.keepRecentTokens` setting, summary-compaction public exports (`CompactionResult`, `CompactionPreparation`, `appendCompaction()`, `prepareCompaction()`, `generateSummary()`, summary `compact()`), and summary-compaction docs and examples. Historical `type:"compaction"` JSONL lines on disk are inert and are not injected into active LLM context.
73
+
5
74
  ## [0.8.27] - 2026-06-08
6
75
 
7
76
  ### Fixed
8
77
 
9
78
  - Fixed `/compact` and auto-compaction regressions by removing the native `better-sqlite3` dependency from transcript-bound deletion tools and preserving the currently selected reasoning level for the compaction planner ([#1310](https://github.com/bastani-inc/atomic/issues/1310)).
10
79
 
80
+ ## [0.8.27-alpha.1] - 2026-06-08
81
+
82
+ ### Fixed
83
+
84
+ - Fixed `/compact` and auto-compaction regressions by removing the native `better-sqlite3` dependency from transcript-bound deletion tools and preserving the currently selected reasoning level for the compaction planner ([#1310](https://github.com/bastani-inc/atomic/issues/1310)).
85
+
11
86
  ## [0.8.26] - 2026-06-08
12
87
 
13
88
  ### Added
package/README.md CHANGED
@@ -13,27 +13,17 @@
13
13
 
14
14
  ---
15
15
 
16
- Pi is a minimal terminal coding harness. Adapt pi to your workflows, not the other way around, without having to fork and modify pi internals. Extend it with TypeScript [Extensions](#extensions), [Skills](#skills), [Prompt Templates](#prompt-templates), and [Themes](#themes). Put your extensions, skills, prompt templates, and themes in [Pi Packages](#pi-packages) and share them with others via npm or git.
16
+ Atomic is a minimal terminal coding harness. Adapt Atomic to your workflows, not the other way around, without having to fork and modify Atomic internals. Extend it with TypeScript [Extensions](#extensions), [Skills](#skills), [Prompt Templates](#prompt-templates), and [Themes](#themes). Put your extensions, skills, prompt templates, and themes in [Atomic Packages](#atomic-packages) and share them with others via npm or git.
17
17
 
18
- Pi ships with powerful defaults but skips features like sub agents and plan mode. Instead, you can ask pi to build what you want or install a third party pi package that matches your workflow.
18
+ Atomic ships with powerful defaults plus first-party bundled extensions for workflows, subagents, MCP, web access, and intercom. You can still adapt or replace any workflow by writing extensions, skills, prompt templates, themes, or Atomic packages that match how you work.
19
19
 
20
- Pi runs in four modes: interactive, print or JSON, RPC for process integration, and an SDK for embedding in your own apps. See [openclaw/openclaw](https://github.com/openclaw/openclaw) for a real-world SDK integration.
20
+ Atomic runs in four modes: interactive, print or JSON, RPC for process integration, and an SDK for embedding in your own apps. See [openclaw/openclaw](https://github.com/openclaw/openclaw) for a real-world SDK integration.
21
21
 
22
22
  ## Share your OSS coding agent sessions
23
23
 
24
- If you use pi for open source work, please share your coding agent sessions.
24
+ If you use Atomic for open source work, consider sharing coding-agent sessions using an Atomic-owned workflow or your team's dataset process.
25
25
 
26
- Public OSS session data helps improve models, prompts, tools, and evaluations using real development workflows.
27
-
28
- For the full explanation, see [this post on X](https://x.com/badlogicgames/status/2037811643774652911).
29
-
30
- To publish sessions, use [`badlogic/pi-share-hf`](https://github.com/badlogic/pi-share-hf). Read its README.md for setup instructions. All you need is a Hugging Face account, the Hugging Face CLI, and `pi-share-hf`.
31
-
32
- You can also watch [this video](https://x.com/badlogicgames/status/2041151967695634619), where I show how I publish my `pi-mono` sessions.
33
-
34
- I regularly publish my own `pi-mono` work sessions here:
35
-
36
- - [badlogicgames/pi-mono on Hugging Face](https://huggingface.co/datasets/badlogicgames/pi-mono)
26
+ Public OSS session data can help improve models, prompts, tools, and evaluations using real development workflows. Upstream Pi session-sharing resources may still be useful for historical context, but they are not the primary Atomic publication path.
37
27
 
38
28
  ## Table of Contents
39
29
 
@@ -54,7 +44,7 @@ I regularly publish my own `pi-mono` work sessions here:
54
44
  - [Skills](#skills)
55
45
  - [Extensions](#extensions)
56
46
  - [Themes](#themes)
57
- - [Pi Packages](#pi-packages)
47
+ - [Atomic Packages](#atomic-packages)
58
48
  - [Programmatic Usage](#programmatic-usage)
59
49
  - [Philosophy](#philosophy)
60
50
  - [CLI Reference](#cli-reference)
@@ -64,7 +54,7 @@ I regularly publish my own `pi-mono` work sessions here:
64
54
  ## Quick Start
65
55
 
66
56
  ```bash
67
- curl -fsSL https://pi.dev/install.sh | sh
57
+ bun install -g @bastani/atomic
68
58
  ```
69
59
 
70
60
  Or with npm:
@@ -77,17 +67,17 @@ Authenticate with an API key:
77
67
 
78
68
  ```bash
79
69
  export ANTHROPIC_API_KEY=sk-ant-...
80
- pi
70
+ atomic
81
71
  ```
82
72
 
83
73
  Or use your existing subscription:
84
74
 
85
75
  ```bash
86
- pi
76
+ atomic
87
77
  /login # Then select provider
88
78
  ```
89
79
 
90
- Then just talk to pi. By default, pi gives the model four tools: `read`, `write`, `edit`, and `bash`. The model uses these to fulfill your requests. Add capabilities via [skills](#skills), [prompt templates](#prompt-templates), [extensions](#extensions), or [pi packages](#pi-packages).
80
+ Then just talk to Atomic. By default, Atomic gives the model four tools: `read`, `write`, `edit`, and `bash`. The model uses these to fulfill your requests. Add capabilities via [skills](#skills), [prompt templates](#prompt-templates), [extensions](#extensions), or [Atomic packages](#atomic-packages).
91
81
 
92
82
  **Platform notes:** [Windows](docs/windows.md) | [Termux (Android)](docs/termux.md) | [tmux](docs/tmux.md) | [Terminal setup](docs/terminal-setup.md) | [Shell aliases](docs/shell-aliases.md)
93
83
 
@@ -95,7 +85,7 @@ Then just talk to pi. By default, pi gives the model four tools: `read`, `write`
95
85
 
96
86
  ## Providers & Models
97
87
 
98
- For each built-in provider, pi maintains a list of tool-capable models, updated with every release. Authenticate via subscription (`/login`) or API key, then select any model from that provider via `/model` (or CTRL+L).
88
+ For each built-in provider, Atomic maintains a list of tool-capable models, updated with every release. Authenticate via subscription (`/login`) or API key, then select any model from that provider via `/model` (or CTRL+L).
99
89
 
100
90
  **Subscriptions:**
101
91
  - Anthropic Claude Pro/Max
@@ -133,7 +123,7 @@ For each built-in provider, pi maintains a list of tool-capable models, updated
133
123
 
134
124
  See [docs/providers.md](docs/providers.md) for detailed setup instructions.
135
125
 
136
- **Custom providers & models:** Add providers via `~/.pi/agent/models.json` if they speak a supported API (OpenAI, Anthropic, Google). For custom APIs or OAuth, use extensions. See [docs/models.md](docs/models.md) and [docs/custom-provider.md](docs/custom-provider.md).
126
+ **Custom providers & models:** Add providers via `~/.atomic/agent/models.json` (legacy `~/.pi/agent/models.json` also works) if they speak a supported API (OpenAI, Anthropic, Google). For custom APIs or OAuth, use extensions. See [docs/models.md](docs/models.md) and [docs/custom-provider.md](docs/custom-provider.md).
137
127
 
138
128
  ---
139
129
 
@@ -191,7 +181,7 @@ Type `/` in the editor to trigger commands. [Extensions](#extensions) can regist
191
181
 
192
182
  ### Keyboard Shortcuts
193
183
 
194
- See `/hotkeys` for the full list. Customize via `~/.pi/agent/keybindings.json`. See [docs/keybindings.md](docs/keybindings.md).
184
+ See `/hotkeys` for the full list. Customize via `~/.atomic/agent/keybindings.json` (legacy `~/.pi/agent/keybindings.json` also works). See [docs/keybindings.md](docs/keybindings.md).
195
185
 
196
186
  **Commonly used:**
197
187
 
@@ -216,7 +206,7 @@ Submit messages while the agent is working:
216
206
  - **Escape** aborts and restores queued messages to editor
217
207
  - **ALT+Up** retrieves queued messages back to editor
218
208
 
219
- On Windows Terminal, `ALT+Enter` is fullscreen by default. Remap it in [docs/terminal-setup.md](docs/terminal-setup.md) so pi can receive the follow-up shortcut.
209
+ On Windows Terminal, `ALT+Enter` is fullscreen by default. Remap it in [docs/terminal-setup.md](docs/terminal-setup.md) so Atomic can receive the follow-up shortcut.
220
210
 
221
211
  Configure delivery in [settings](docs/settings.md): `steeringMode` and `followUpMode` can be `"one-at-a-time"` (default, waits for response) or `"all"` (delivers all queued at once). `transport` selects provider transport preference (`"sse"`, `"websocket"`, or `"auto"`) for providers that support multiple transports.
222
212
 
@@ -228,17 +218,19 @@ Sessions are stored as JSONL files with a tree structure. Each entry has an `id`
228
218
 
229
219
  ### Management
230
220
 
231
- Sessions auto-save to `~/.pi/agent/sessions/` organized by working directory.
221
+ Sessions auto-save to `~/.atomic/agent/sessions/` organized by working directory (legacy `~/.pi/agent/sessions/` sessions remain readable for compatibility).
232
222
 
233
223
  ```bash
234
- pi -c # Continue most recent session
235
- pi -r # Browse and select from past sessions
236
- pi --no-session # Ephemeral mode (don't save)
237
- pi --session <path|id> # Use specific session file or ID
238
- pi --fork <path|id> # Fork specific session file or ID into a new session
224
+ atomic -c # Continue most recent session
225
+ atomic -r # Browse and select from past sessions
226
+ atomic --no-session # Ephemeral mode (don't save)
227
+ atomic --session <path|id> # Use specific session file or partial ID
228
+ atomic --session-id <id> # Use/create an exact project-local session ID
229
+ atomic --name "Refactor" # Set the session display name
230
+ atomic --fork <path|id> # Fork specific session file or ID into a new session
239
231
  ```
240
232
 
241
- Use `/session` in interactive mode to see the current session ID before reusing it with `--session <id>` or `--fork <id>`.
233
+ Use `/session` in interactive mode to see the current session ID before reusing it with `--session <id>`, `--session-id <id>`, or `--fork <id>`.
242
234
 
243
235
  ### Branching
244
236
 
@@ -274,26 +266,26 @@ Use `/settings` to modify common options, or edit JSON files directly:
274
266
 
275
267
  | Location | Scope |
276
268
  |----------|-------|
277
- | `~/.pi/agent/settings.json` | Global (all projects) |
278
- | `.pi/settings.json` | Project (overrides global) |
269
+ | `~/.atomic/agent/settings.json` | Global (all projects; legacy `~/.pi/agent/settings.json` also works) |
270
+ | `.atomic/settings.json` | Project (overrides global; legacy `.pi/settings.json` also works after trust) |
279
271
 
280
272
  See [docs/settings.md](docs/settings.md) for all options.
281
273
 
282
274
  ### Telemetry and update checks
283
275
 
284
- Pi has two separate startup features:
276
+ Atomic has two separate startup features:
285
277
 
286
- - **Update check:** fetches `https://pi.dev/api/latest-version` to check whether a newer Pi version exists. Disable it with `PI_SKIP_VERSION_CHECK=1`. Disabling update checks only turns off this check.
287
- - **Install/update telemetry:** after first install or a changelog-detected update, sends an anonymous version ping to `https://pi.dev/api/report-install`. Opt out by setting `enableInstallTelemetry` to `false` in `settings.json`, or by setting `PI_TELEMETRY=0`. This does not disable update checks; Pi may still contact `pi.dev` for the latest version unless update checks are disabled or offline mode is enabled.
278
+ - **Update check:** checks whether a newer Atomic version exists. Disable it with `ATOMIC_SKIP_VERSION_CHECK=1` (`PI_SKIP_VERSION_CHECK=1` remains a legacy alias). Disabling update checks only turns off this check.
279
+ - **Install/update telemetry:** after first install or a changelog-detected update, sends an anonymous version ping. Opt out by setting `enableInstallTelemetry` to `false` in `settings.json`, or by setting `ATOMIC_TELEMETRY=0` (`PI_TELEMETRY=0` remains a legacy alias). This does not disable update checks; Atomic may still check for the latest version unless update checks are disabled or offline mode is enabled.
288
280
 
289
- Use `--offline` or `PI_OFFLINE=1` to disable all startup network operations described here, including update checks, package update checks, and install/update telemetry.
281
+ Use `--offline` or `ATOMIC_OFFLINE=1` (`PI_OFFLINE=1` remains a legacy alias) to disable all startup network operations described here, including update checks, package update checks, and install/update telemetry.
290
282
 
291
283
  ---
292
284
 
293
285
  ## Context Files
294
286
 
295
- Pi loads `AGENTS.md` (or `CLAUDE.md`) at startup from:
296
- - `~/.pi/agent/AGENTS.md` (global)
287
+ Atomic loads `AGENTS.md` (or `CLAUDE.md`) at startup from:
288
+ - `~/.atomic/agent/AGENTS.md` (global; legacy `~/.pi/agent/AGENTS.md` also works)
297
289
  - Parent directories (walking up from cwd)
298
290
  - Current directory
299
291
 
@@ -303,7 +295,7 @@ Disable context file loading with `--no-context-files` (or `-nc`).
303
295
 
304
296
  ### System Prompt
305
297
 
306
- Replace the default system prompt with `.pi/SYSTEM.md` (project) or `~/.pi/agent/SYSTEM.md` (global). Append without replacing via `APPEND_SYSTEM.md`.
298
+ Replace the default system prompt with `.atomic/SYSTEM.md` (project; legacy `.pi/SYSTEM.md` also works) or `~/.atomic/agent/SYSTEM.md` (global; legacy `~/.pi/agent/SYSTEM.md` also works). Append without replacing via `APPEND_SYSTEM.md`.
307
299
 
308
300
  ---
309
301
 
@@ -314,19 +306,19 @@ Replace the default system prompt with `.pi/SYSTEM.md` (project) or `~/.pi/agent
314
306
  Reusable prompts as Markdown files. Type `/name` to expand.
315
307
 
316
308
  ```markdown
317
- <!-- ~/.pi/agent/prompts/review.md -->
309
+ <!-- ~/.atomic/agent/prompts/review.md -->
318
310
  Review this code for bugs, security issues, and performance problems.
319
311
  Focus on: {{focus}}
320
312
  ```
321
313
 
322
- Place in `~/.pi/agent/prompts/`, `.pi/prompts/`, or a [pi package](#pi-packages) to share with others. See [docs/prompt-templates.md](docs/prompt-templates.md).
314
+ Place in `~/.atomic/agent/prompts/`, `.atomic/prompts/` (legacy `~/.pi/agent/prompts/` and `.pi/prompts/` also work), or an [Atomic package](#atomic-packages) to share with others. See [docs/prompt-templates.md](docs/prompt-templates.md).
323
315
 
324
316
  ### Skills
325
317
 
326
318
  On-demand capability packages following the [Agent Skills standard](https://agentskills.io). Invoke via `/skill:name` or let the agent load them automatically.
327
319
 
328
320
  ```markdown
329
- <!-- ~/.pi/agent/skills/my-skill/SKILL.md -->
321
+ <!-- ~/.atomic/agent/skills/my-skill/SKILL.md -->
330
322
  # My Skill
331
323
  Use this skill when the user asks about X.
332
324
 
@@ -335,11 +327,11 @@ Use this skill when the user asks about X.
335
327
  2. Then that
336
328
  ```
337
329
 
338
- Place in `~/.pi/agent/skills/`, `~/.agents/skills/`, `.pi/skills/`, or `.agents/skills/` (from `cwd` up through parent directories) or a [pi package](#pi-packages) to share with others. See [docs/skills.md](docs/skills.md).
330
+ Place in `~/.atomic/agent/skills/`, `~/.agents/skills/`, `.atomic/skills/` (legacy `~/.pi/agent/skills/` and `.pi/skills/` also work), or `.agents/skills/` (from `cwd` up through parent directories) or an [Atomic package](#atomic-packages) to share with others. See [docs/skills.md](docs/skills.md).
339
331
 
340
332
  ### Extensions
341
333
 
342
- TypeScript modules that extend pi with custom tools, commands, keyboard shortcuts, event handlers, and UI components.
334
+ TypeScript modules that extend Atomic with custom tools, commands, keyboard shortcuts, event handlers, and UI components.
343
335
 
344
336
  ```typescript
345
337
  export default function (pi: ExtensionAPI) {
@@ -349,7 +341,7 @@ export default function (pi: ExtensionAPI) {
349
341
  }
350
342
  ```
351
343
 
352
- The default export can also be `async`. pi waits for async extension factories before startup continues, which is useful for one-time initialization such as fetching remote model lists before calling `pi.registerProvider()`.
344
+ The default export can also be `async`. Atomic waits for async extension factories before startup continues, which is useful for one-time initialization such as fetching remote model lists before calling `pi.registerProvider()`.
353
345
 
354
346
  **What's possible:**
355
347
  - Custom tools (or replace built-in tools entirely)
@@ -361,54 +353,54 @@ The default export can also be `async`. pi waits for async extension factories b
361
353
  - Git checkpointing and auto-commit
362
354
  - SSH and sandbox execution
363
355
  - MCP server integration
364
- - Make pi look like Claude Code
356
+ - Make Atomic look like Claude Code
365
357
  - Games while waiting (yes, Doom runs)
366
358
  - ...anything you can dream up
367
359
 
368
- Place in `~/.pi/agent/extensions/`, `.pi/extensions/`, or a [pi package](#pi-packages) to share with others. See [docs/extensions.md](docs/extensions.md) and [examples/extensions/](examples/extensions/).
360
+ Place in `~/.atomic/agent/extensions/`, `.atomic/extensions/` (legacy `~/.pi/agent/extensions/` and `.pi/extensions/` also work), or an [Atomic package](#atomic-packages) to share with others. See [docs/extensions.md](docs/extensions.md) and [examples/extensions/](examples/extensions/).
369
361
 
370
362
  ### Themes
371
363
 
372
- Built-in: `dark`, `light`, `catppuccin-frappe`, `catppuccin-latte`, `catppuccin-macchiato`, and `catppuccin-mocha`. Custom themes hot-reload: modify the active theme file and pi immediately applies changes.
364
+ Built-in: `dark`, `light`, `catppuccin-frappe`, `catppuccin-latte`, `catppuccin-macchiato`, and `catppuccin-mocha`. Custom themes hot-reload: modify the active theme file and Atomic immediately applies changes.
373
365
 
374
- Place in `~/.pi/agent/themes/`, `.pi/themes/`, or a [pi package](#pi-packages) to share with others. See [docs/themes.md](docs/themes.md).
366
+ Place in `~/.atomic/agent/themes/`, `.atomic/themes/` (legacy `~/.pi/agent/themes/` and `.pi/themes/` also work), or an [Atomic package](#atomic-packages) to share with others. See [docs/themes.md](docs/themes.md).
375
367
 
376
- ### Pi Packages
368
+ ### Atomic Packages
377
369
 
378
- Bundle and share extensions, skills, prompts, and themes via npm or git. Find packages on [npmjs.com](https://www.npmjs.com/search?q=keywords%3Api-package) or [Discord](https://discord.com/channels/1456806362351669492/1457744485428629628).
370
+ Bundle and share extensions, skills, prompts, and themes via npm or git. Find packages on [npmjs.com](https://www.npmjs.com/search?q=keywords%3Aatomic-package) or [Discord](https://discord.com/channels/1456806362351669492/1457744485428629628).
379
371
 
380
- > **Security:** Pi packages run with full system access. Extensions execute arbitrary code, and skills can instruct the model to perform any action including running executables. Review source code before installing third-party packages.
372
+ > **Security:** Atomic packages run with full system access. Extensions execute arbitrary code, and skills can instruct the model to perform any action including running executables. Review source code before installing third-party packages.
381
373
 
382
374
  ```bash
383
- pi install npm:@foo/pi-tools
384
- pi install npm:@foo/pi-tools@1.2.3 # pinned version
385
- pi install git:github.com/user/repo
386
- pi install git:github.com/user/repo@v1 # tag or commit
387
- pi install git:git@github.com:user/repo
388
- pi install git:git@github.com:user/repo@v1 # tag or commit
389
- pi install https://github.com/user/repo
390
- pi install https://github.com/user/repo@v1 # tag or commit
391
- pi install ssh://git@github.com/user/repo
392
- pi install ssh://git@github.com/user/repo@v1 # tag or commit
393
- pi remove npm:@foo/pi-tools
394
- pi uninstall npm:@foo/pi-tools # alias for remove
395
- pi list
396
- pi update # update pi and packages (skips pinned packages)
397
- pi update --extensions # update packages only
398
- pi update --self # update pi only
399
- pi update --self --force # reinstall pi even if current
400
- pi update npm:@foo/pi-tools # update one package
401
- pi config # enable/disable extensions, skills, prompts, themes
375
+ atomic install npm:@foo/atomic-tools
376
+ atomic install npm:@foo/atomic-tools@1.2.3 # pinned version
377
+ atomic install git:github.com/user/repo
378
+ atomic install git:github.com/user/repo@v1 # tag or commit
379
+ atomic install git:git@github.com:user/repo
380
+ atomic install git:git@github.com:user/repo@v1 # tag or commit
381
+ atomic install https://github.com/user/repo
382
+ atomic install https://github.com/user/repo@v1 # tag or commit
383
+ atomic install ssh://git@github.com/user/repo
384
+ atomic install ssh://git@github.com/user/repo@v1 # tag or commit
385
+ atomic remove npm:@foo/atomic-tools
386
+ atomic uninstall npm:@foo/atomic-tools # alias for remove
387
+ atomic list
388
+ atomic update # update Atomic and packages (skips pinned packages)
389
+ atomic update --extensions # update packages only
390
+ atomic update --self # update Atomic only
391
+ atomic update --self --force # reinstall Atomic even if current
392
+ atomic update npm:@foo/atomic-tools # update one package
393
+ atomic config # enable/disable extensions, skills, prompts, themes
402
394
  ```
403
395
 
404
- Packages install to `~/.pi/agent/git/` (git) or global npm. Use `-l` for project-local installs (`.pi/git/`, `.pi/npm/`). Git packages install dependencies with `npm install --omit=dev` by default, so runtime deps must be listed under `dependencies`; when `npmCommand` is configured, git packages use plain `install` for compatibility with wrappers. If you use a Node version manager and want package installs to reuse a stable npm context, set `npmCommand` in `settings.json`, for example `["mise", "exec", "node@20", "--", "npm"]`.
396
+ Packages install to `~/.atomic/agent/git/` (git) or global npm. Use `-l` for project-local installs (`.atomic/git/`, `.atomic/npm/`; legacy `.pi/git/` and `.pi/npm/` are compatibility fallbacks). Git packages install dependencies with `npm install --omit=dev` by default, so runtime deps must be listed under `dependencies`; when `npmCommand` is configured, git packages use plain `install` for compatibility with wrappers. If you use a Node version manager and want package installs to reuse a stable npm context, set `npmCommand` in `settings.json`, for example `["mise", "exec", "node@20", "--", "npm"]`.
405
397
 
406
398
  Create a package by adding an app-name manifest key to `package.json` (`atomic` for this package). The legacy `pi` key is still accepted as a backwards-compatible shim:
407
399
 
408
400
  ```json
409
401
  {
410
- "name": "my-pi-package",
411
- "keywords": ["pi-package"],
402
+ "name": "my-atomic-package",
403
+ "keywords": ["atomic-package"],
412
404
  "atomic": {
413
405
  "extensions": ["./extensions"],
414
406
  "skills": ["./skills"],
@@ -452,7 +444,7 @@ See [docs/sdk.md](docs/sdk.md) and [examples/sdk/](examples/sdk/).
452
444
  For non-Node.js integrations, use RPC mode over stdin/stdout:
453
445
 
454
446
  ```bash
455
- pi --mode rpc
447
+ atomic --mode rpc
456
448
  ```
457
449
 
458
450
  RPC mode uses strict LF-delimited JSONL framing. Clients must split records on `\n` only. Do not use generic line readers like Node `readline`, which also split on Unicode separators inside JSON payloads.
@@ -463,43 +455,41 @@ See [docs/rpc.md](docs/rpc.md) for the protocol.
463
455
 
464
456
  ## Philosophy
465
457
 
466
- Pi is aggressively extensible so it doesn't have to dictate your workflow. Features that other tools bake in can be built with [extensions](#extensions), [skills](#skills), or installed from third-party [pi packages](#pi-packages). This keeps the core minimal while letting you shape pi to fit how you work.
467
-
468
- **No MCP.** Build CLI tools with READMEs (see [Skills](#skills)), or build an extension that adds MCP support. [Why?](https://mariozechner.at/posts/2025-11-02-what-if-you-dont-need-mcp/)
458
+ Atomic is aggressively extensible so it does not have to dictate your workflow. The distribution bundles first-party extensions for workflows, subagents, MCP, web access, and intercom, while still letting you build or install alternative [extensions](#extensions), [skills](#skills), and [Atomic packages](#atomic-packages). This keeps Atomic adaptable without forcing every workflow into the core CLI.
469
459
 
470
- **No sub-agents.** There's many ways to do this. Spawn pi instances via tmux, or build your own with [extensions](#extensions), or install a package that does it your way.
460
+ **Bundled subagents and workflows.** Atomic includes the first-party subagents and workflows packages. Use them as shipped, customize them, or replace them with your own extensions if your workflow needs a different orchestration model.
471
461
 
472
- **No permission popups.** Run in a container, or build your own confirmation flow with [extensions](#extensions) inline with your environment and security requirements.
462
+ **Bundled MCP, web access, and intercom.** Atomic ships first-party integrations for MCP tools, web/repository/document/video extraction, and cross-session coordination. These are packaged extensions rather than hard-coded agent behavior, so they remain configurable and replaceable.
473
463
 
474
- **No plan mode.** Write plans to files, or build it with [extensions](#extensions), or install a package.
464
+ **Security stays explicit.** Run in a container, use project trust controls, or build confirmation flows with [extensions](#extensions) inline with your environment and security requirements.
475
465
 
476
- **No built-in to-dos.** They confuse models. Use a TODO.md file, or build your own with [extensions](#extensions).
466
+ **Composable planning and task tracking.** Use the bundled workflow/subagent/todo capabilities, write plans to files, or install a package that matches your team's process.
477
467
 
478
- **No background bash.** Use tmux. Full observability, direct interaction.
468
+ **No hidden background bash.** Use tmux or explicit extensions for background work. Full observability, direct interaction.
479
469
 
480
- Read the [blog post](https://mariozechner.at/posts/2025-11-30-pi-coding-agent/) for the full rationale.
470
+ Upstream Pi's minimal-core rationale is documented in the [original blog post](https://mariozechner.at/posts/2025-11-30-pi-coding-agent/); Atomic preserves the extensibility model while also bundling first-party capabilities for common workflows.
481
471
 
482
472
  ---
483
473
 
484
474
  ## CLI Reference
485
475
 
486
476
  ```bash
487
- pi [options] [@files...] [messages...]
477
+ atomic [options] [@files...] [messages...]
488
478
  ```
489
479
 
490
480
  ### Package Commands
491
481
 
492
482
  ```bash
493
- pi install <source> [-l] # Install package, -l for project-local
494
- pi remove <source> [-l] # Remove package
495
- pi uninstall <source> [-l] # Alias for remove
496
- pi update [source|self|pi] # Update pi and packages (skips pinned packages)
497
- pi update --extensions # Update packages only
498
- pi update --self # Update pi only
499
- pi update --self --force # Reinstall pi even if current
500
- pi update --extension <src> # Update one package
501
- pi list # List installed packages
502
- pi config # Enable/disable package resources
483
+ atomic install <source> [-l] # Install package, -l for project-local
484
+ atomic remove <source> [-l] # Remove package
485
+ atomic uninstall <source> [-l] # Alias for remove
486
+ atomic update [source|self|atomic] # Update Atomic and packages (skips pinned packages)
487
+ atomic update --extensions # Update packages only
488
+ atomic update --self # Update Atomic only
489
+ atomic update --self --force # Reinstall Atomic even if current
490
+ atomic update --extension <src> # Update one package
491
+ atomic list # List installed packages
492
+ atomic config # Enable/disable package resources
503
493
  ```
504
494
 
505
495
  ### Modes
@@ -512,10 +502,10 @@ pi config # Enable/disable package resources
512
502
  | `--mode rpc` | RPC mode for process integration (see [docs/rpc.md](docs/rpc.md)) |
513
503
  | `--export <in> [out]` | Export session to HTML |
514
504
 
515
- In print mode, pi also reads piped stdin and merges it into the initial prompt:
505
+ In print mode, Atomic also reads piped stdin and merges it into the initial prompt:
516
506
 
517
507
  ```bash
518
- cat README.md | pi -p "Summarize this text"
508
+ cat README.md | atomic -p "Summarize this text"
519
509
  ```
520
510
 
521
511
  ### Model Options
@@ -536,8 +526,10 @@ cat README.md | pi -p "Summarize this text"
536
526
  | `-c`, `--continue` | Continue most recent session |
537
527
  | `-r`, `--resume` | Browse and select session |
538
528
  | `--session <path\|id>` | Use specific session file or partial UUID |
529
+ | `--session-id <id>` | Use an exact project session ID, creating it if missing |
539
530
  | `--fork <path\|id>` | Fork specific session file or partial UUID into a new session |
540
531
  | `--session-dir <dir>` | Custom session storage directory |
532
+ | `--name <name>`, `-n <name>` | Set the session display name |
541
533
  | `--no-session` | Ephemeral mode (don't save) |
542
534
 
543
535
  ### Tool Options
@@ -545,10 +537,20 @@ cat README.md | pi -p "Summarize this text"
545
537
  | Option | Description |
546
538
  |--------|-------------|
547
539
  | `--tools <list>`, `-t <list>` | Allowlist specific tool names across built-in, extension, and custom tools |
540
+ | `--exclude-tools <list>`, `-xt <list>` | Denylist specific built-in, extension, and custom tools |
548
541
  | `--no-builtin-tools`, `-nbt` | Disable built-in tools by default but keep extension/custom tools enabled |
549
542
  | `--no-tools`, `-nt` | Disable all tools by default |
550
543
 
551
- Available built-in tools: `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`
544
+ Default built-in tools: `read`, `bash`, `edit`, `write`, `ask_user_question`, `todo`. Additional built-in read-only tools are available through tool options: `grep`, `find`, `ls`. Use `--exclude-tools` to disable one or more tools while leaving the rest available.
545
+
546
+ ### Project Trust Options
547
+
548
+ | Option | Description |
549
+ |--------|-------------|
550
+ | `--approve`, `-a` | Trust project-local files/resources for this run |
551
+ | `--no-approve`, `-na` | Ignore project-local files/resources for this run |
552
+
553
+ Project trust gates `.atomic`/legacy `.pi` project resources, project package settings, project-local context files, and `.agents/skills` discovered from the project tree. Saved trust decisions can be managed with `/trust`; see [docs/security.md](docs/security.md).
552
554
 
553
555
  ### Resource Options
554
556
 
@@ -581,53 +583,53 @@ Combine `--no-*` with explicit flags to load exactly what you need, ignoring set
581
583
  Prefix files with `@` to include in the message:
582
584
 
583
585
  ```bash
584
- pi @prompt.md "Answer this"
585
- pi -p @screenshot.png "What's in this image?"
586
- pi @code.ts @test.ts "Review these files"
586
+ atomic @prompt.md "Answer this"
587
+ atomic -p @screenshot.png "What's in this image?"
588
+ atomic @code.ts @test.ts "Review these files"
587
589
  ```
588
590
 
589
591
  ### Examples
590
592
 
591
593
  ```bash
592
594
  # Interactive with initial prompt
593
- pi "List all .ts files in src/"
595
+ atomic "List all .ts files in src/"
594
596
 
595
597
  # Non-interactive
596
- pi -p "Summarize this codebase"
598
+ atomic -p "Summarize this codebase"
597
599
 
598
600
  # Non-interactive with piped stdin
599
- cat README.md | pi -p "Summarize this text"
601
+ cat README.md | atomic -p "Summarize this text"
600
602
 
601
603
  # Different model
602
- pi --provider openai --model gpt-4o "Help me refactor"
604
+ atomic --provider openai --model gpt-4o "Help me refactor"
603
605
 
604
606
  # Model with provider prefix (no --provider needed)
605
- pi --model openai/gpt-4o "Help me refactor"
607
+ atomic --model openai/gpt-4o "Help me refactor"
606
608
 
607
609
  # Model with thinking level shorthand
608
- pi --model sonnet:high "Solve this complex problem"
610
+ atomic --model sonnet:high "Solve this complex problem"
609
611
 
610
612
  # Limit model cycling
611
- pi --models "claude-*,gpt-4o"
613
+ atomic --models "claude-*,gpt-4o"
612
614
 
613
615
  # Read-only mode
614
- pi --tools read,grep,find,ls -p "Review the code"
616
+ atomic --tools read,grep,find,ls -p "Review the code"
615
617
 
616
618
  # High thinking level
617
- pi --thinking high "Solve this complex problem"
619
+ atomic --thinking high "Solve this complex problem"
618
620
  ```
619
621
 
620
622
  ### Environment Variables
621
623
 
622
624
  | Variable | Description |
623
625
  |----------|-------------|
624
- | `PI_CODING_AGENT_DIR` | Override config directory (default: `~/.pi/agent`) |
625
- | `PI_CODING_AGENT_SESSION_DIR` | Override session storage directory (overridden by `--session-dir`) |
626
- | `PI_PACKAGE_DIR` | Override package directory (useful for Nix/Guix where store paths tokenize poorly) |
627
- | `PI_OFFLINE` | Disable startup network operations, including update checks, package update checks, and install/update telemetry |
628
- | `PI_SKIP_VERSION_CHECK` | Skip the Pi version update check at startup. This prevents the `pi.dev` latest-version request |
629
- | `PI_TELEMETRY` | Override install/update telemetry. Use `1`/`true`/`yes` to enable or `0`/`false`/`no` to disable. This does not disable update checks |
630
- | `PI_CACHE_RETENTION` | Set to `long` for extended prompt cache (Anthropic: 1h, OpenAI: 24h) |
626
+ | `ATOMIC_CODING_AGENT_DIR` | Override config directory (default: `~/.atomic/agent`; `PI_CODING_AGENT_DIR` is a legacy alias) |
627
+ | `ATOMIC_CODING_AGENT_SESSION_DIR` | Override session storage directory (overridden by `--session-dir`; `PI_CODING_AGENT_SESSION_DIR` is a legacy alias) |
628
+ | `ATOMIC_PACKAGE_DIR` | Override package directory (useful for Nix/Guix where store paths tokenize poorly; `PI_PACKAGE_DIR` is a legacy alias) |
629
+ | `ATOMIC_OFFLINE` | Disable startup network operations, including update checks, package update checks, and install/update telemetry (`PI_OFFLINE` is a legacy alias) |
630
+ | `ATOMIC_SKIP_VERSION_CHECK` | Skip the Atomic version update check at startup. `PI_SKIP_VERSION_CHECK` is a legacy alias. |
631
+ | `ATOMIC_TELEMETRY` | Override install/update telemetry. Use `1`/`true`/`yes` to enable or `0`/`false`/`no` to disable. This does not disable update checks (`PI_TELEMETRY` is a legacy alias). |
632
+ | `PI_CACHE_RETENTION` | Provider/upstream-specific prompt-cache retention knob; set to `long` where supported. This is not an `ATOMIC_*` alias and has no Atomic-prefixed equivalent. |
631
633
  | `VISUAL`, `EDITOR` | External editor for CTRL+G |
632
634
 
633
635
  ---
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/intercom",
3
- "version": "0.8.27",
3
+ "version": "0.8.28-alpha.2",
4
4
  "private": true,
5
5
  "description": "Atomic extension providing a private coordination channel between parent and child agent sessions. Fork of: https://github.com/nicobailon/pi-intercom",
6
6
  "contributors": [