@bastani/atomic 0.8.26-alpha.6 → 0.8.26-alpha.7

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 (240) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +7 -4
  3. package/dist/builtin/intercom/CHANGELOG.md +6 -0
  4. package/dist/builtin/intercom/package.json +2 -2
  5. package/dist/builtin/mcp/CHANGELOG.md +6 -0
  6. package/dist/builtin/mcp/package.json +3 -3
  7. package/dist/builtin/subagents/CHANGELOG.md +6 -0
  8. package/dist/builtin/subagents/agents/codebase-online-researcher.md +9 -9
  9. package/dist/builtin/subagents/agents/debugger.md +6 -6
  10. package/dist/builtin/subagents/package.json +4 -4
  11. package/dist/builtin/subagents/prompts/parallel-handoff-plan.md +1 -1
  12. package/dist/builtin/subagents/skills/browser/EXAMPLES.md +151 -0
  13. package/dist/builtin/subagents/skills/browser/LICENSE.txt +21 -0
  14. package/dist/builtin/subagents/skills/browser/REFERENCE.md +451 -0
  15. package/dist/builtin/subagents/skills/browser/SKILL.md +170 -0
  16. package/dist/builtin/subagents/skills/subagent/SKILL.md +4 -4
  17. package/dist/builtin/web-access/CHANGELOG.md +6 -0
  18. package/dist/builtin/web-access/package.json +2 -2
  19. package/dist/builtin/workflows/CHANGELOG.md +11 -0
  20. package/dist/builtin/workflows/builtin/deep-research-codebase.ts +4 -1
  21. package/dist/builtin/workflows/builtin/goal.ts +127 -99
  22. package/dist/builtin/workflows/builtin/open-claude-design.ts +224 -147
  23. package/dist/builtin/workflows/builtin/ralph.ts +160 -197
  24. package/dist/builtin/workflows/package.json +2 -2
  25. package/dist/builtin/workflows/skills/research-codebase/SKILL.md +1 -1
  26. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +9 -0
  27. package/dist/core/agent-session.d.ts +28 -1
  28. package/dist/core/agent-session.d.ts.map +1 -1
  29. package/dist/core/agent-session.js +110 -28
  30. package/dist/core/agent-session.js.map +1 -1
  31. package/dist/core/compaction/branch-summarization.d.ts +1 -1
  32. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  33. package/dist/core/compaction/branch-summarization.js +6 -3
  34. package/dist/core/compaction/branch-summarization.js.map +1 -1
  35. package/dist/core/compaction/compaction.d.ts.map +1 -1
  36. package/dist/core/compaction/compaction.js +23 -10
  37. package/dist/core/compaction/compaction.js.map +1 -1
  38. package/dist/core/compaction/context-compaction.d.ts +61 -0
  39. package/dist/core/compaction/context-compaction.d.ts.map +1 -0
  40. package/dist/core/compaction/context-compaction.js +602 -0
  41. package/dist/core/compaction/context-compaction.js.map +1 -0
  42. package/dist/core/compaction/index.d.ts +1 -0
  43. package/dist/core/compaction/index.d.ts.map +1 -1
  44. package/dist/core/compaction/index.js +1 -0
  45. package/dist/core/compaction/index.js.map +1 -1
  46. package/dist/core/index.d.ts +1 -1
  47. package/dist/core/index.d.ts.map +1 -1
  48. package/dist/core/index.js.map +1 -1
  49. package/dist/core/session-manager.d.ts +41 -1
  50. package/dist/core/session-manager.d.ts.map +1 -1
  51. package/dist/core/session-manager.js +146 -7
  52. package/dist/core/session-manager.js.map +1 -1
  53. package/dist/core/slash-commands.d.ts.map +1 -1
  54. package/dist/core/slash-commands.js +1 -0
  55. package/dist/core/slash-commands.js.map +1 -1
  56. package/dist/index.d.ts +3 -3
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -2
  59. package/dist/index.js.map +1 -1
  60. package/dist/modes/index.d.ts +1 -1
  61. package/dist/modes/index.d.ts.map +1 -1
  62. package/dist/modes/index.js.map +1 -1
  63. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  64. package/dist/modes/interactive/components/chat-session-host.js +17 -0
  65. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  66. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  67. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  68. package/dist/modes/interactive/interactive-mode.js +74 -0
  69. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  70. package/dist/modes/rpc/rpc-client.d.ts +12 -7
  71. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  72. package/dist/modes/rpc/rpc-client.js +8 -1
  73. package/dist/modes/rpc/rpc-client.js.map +1 -1
  74. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  75. package/dist/modes/rpc/rpc-mode.js +4 -0
  76. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  77. package/dist/modes/rpc/rpc-types.d.ts +13 -2
  78. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  79. package/dist/modes/rpc/rpc-types.js.map +1 -1
  80. package/docs/compaction.md +42 -23
  81. package/docs/custom-provider.md +11 -9
  82. package/docs/extensions.md +35 -35
  83. package/docs/index.md +1 -8
  84. package/docs/json.md +14 -11
  85. package/docs/packages.md +2 -0
  86. package/docs/providers.md +4 -1
  87. package/docs/quickstart.md +5 -12
  88. package/docs/rpc.md +44 -8
  89. package/docs/sdk.md +1 -8
  90. package/docs/session-format.md +25 -12
  91. package/docs/sessions.md +2 -1
  92. package/docs/skills.md +1 -15
  93. package/docs/termux.md +9 -10
  94. package/docs/themes.md +2 -2
  95. package/docs/tmux.md +3 -3
  96. package/docs/tui.md +19 -32
  97. package/docs/usage.md +2 -0
  98. package/docs/workflows.md +44 -2
  99. package/package.json +4 -12
  100. package/dist/builtin/subagents/skills/browser-use/SKILL.md +0 -234
  101. package/dist/builtin/subagents/skills/browser-use/references/cdp-python.md +0 -76
  102. package/dist/builtin/subagents/skills/browser-use/references/multi-session.md +0 -92
  103. package/node_modules/@earendil-works/pi-tui/README.md +0 -779
  104. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts +0 -54
  105. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts.map +0 -1
  106. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js +0 -632
  107. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js.map +0 -1
  108. package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts +0 -22
  109. package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts.map +0 -1
  110. package/node_modules/@earendil-works/pi-tui/dist/components/box.js +0 -104
  111. package/node_modules/@earendil-works/pi-tui/dist/components/box.js.map +0 -1
  112. package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.d.ts +0 -22
  113. package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.d.ts.map +0 -1
  114. package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.js +0 -35
  115. package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.js.map +0 -1
  116. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +0 -249
  117. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +0 -1
  118. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +0 -1857
  119. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +0 -1
  120. package/node_modules/@earendil-works/pi-tui/dist/components/image.d.ts +0 -28
  121. package/node_modules/@earendil-works/pi-tui/dist/components/image.d.ts.map +0 -1
  122. package/node_modules/@earendil-works/pi-tui/dist/components/image.js +0 -89
  123. package/node_modules/@earendil-works/pi-tui/dist/components/image.js.map +0 -1
  124. package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts +0 -37
  125. package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts.map +0 -1
  126. package/node_modules/@earendil-works/pi-tui/dist/components/input.js +0 -378
  127. package/node_modules/@earendil-works/pi-tui/dist/components/input.js.map +0 -1
  128. package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts +0 -31
  129. package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts.map +0 -1
  130. package/node_modules/@earendil-works/pi-tui/dist/components/loader.js +0 -69
  131. package/node_modules/@earendil-works/pi-tui/dist/components/loader.js.map +0 -1
  132. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +0 -96
  133. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +0 -1
  134. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +0 -644
  135. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +0 -1
  136. package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts +0 -50
  137. package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts.map +0 -1
  138. package/node_modules/@earendil-works/pi-tui/dist/components/select-list.js +0 -159
  139. package/node_modules/@earendil-works/pi-tui/dist/components/select-list.js.map +0 -1
  140. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts +0 -50
  141. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts.map +0 -1
  142. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js +0 -185
  143. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js.map +0 -1
  144. package/node_modules/@earendil-works/pi-tui/dist/components/spacer.d.ts +0 -12
  145. package/node_modules/@earendil-works/pi-tui/dist/components/spacer.d.ts.map +0 -1
  146. package/node_modules/@earendil-works/pi-tui/dist/components/spacer.js +0 -23
  147. package/node_modules/@earendil-works/pi-tui/dist/components/spacer.js.map +0 -1
  148. package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts +0 -19
  149. package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts.map +0 -1
  150. package/node_modules/@earendil-works/pi-tui/dist/components/text.js +0 -89
  151. package/node_modules/@earendil-works/pi-tui/dist/components/text.js.map +0 -1
  152. package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.d.ts +0 -13
  153. package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.d.ts.map +0 -1
  154. package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.js +0 -51
  155. package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.js.map +0 -1
  156. package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts +0 -39
  157. package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts.map +0 -1
  158. package/node_modules/@earendil-works/pi-tui/dist/editor-component.js +0 -2
  159. package/node_modules/@earendil-works/pi-tui/dist/editor-component.js.map +0 -1
  160. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.d.ts +0 -16
  161. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.d.ts.map +0 -1
  162. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.js +0 -110
  163. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.js.map +0 -1
  164. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +0 -23
  165. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +0 -1
  166. package/node_modules/@earendil-works/pi-tui/dist/index.js +0 -32
  167. package/node_modules/@earendil-works/pi-tui/dist/index.js.map +0 -1
  168. package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts +0 -193
  169. package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts.map +0 -1
  170. package/node_modules/@earendil-works/pi-tui/dist/keybindings.js +0 -174
  171. package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +0 -1
  172. package/node_modules/@earendil-works/pi-tui/dist/keys.d.ts +0 -184
  173. package/node_modules/@earendil-works/pi-tui/dist/keys.d.ts.map +0 -1
  174. package/node_modules/@earendil-works/pi-tui/dist/keys.js +0 -1173
  175. package/node_modules/@earendil-works/pi-tui/dist/keys.js.map +0 -1
  176. package/node_modules/@earendil-works/pi-tui/dist/kill-ring.d.ts +0 -28
  177. package/node_modules/@earendil-works/pi-tui/dist/kill-ring.d.ts.map +0 -1
  178. package/node_modules/@earendil-works/pi-tui/dist/kill-ring.js +0 -44
  179. package/node_modules/@earendil-works/pi-tui/dist/kill-ring.js.map +0 -1
  180. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts +0 -3
  181. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts.map +0 -1
  182. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js +0 -53
  183. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js.map +0 -1
  184. package/node_modules/@earendil-works/pi-tui/dist/stdin-buffer.d.ts +0 -50
  185. package/node_modules/@earendil-works/pi-tui/dist/stdin-buffer.d.ts.map +0 -1
  186. package/node_modules/@earendil-works/pi-tui/dist/stdin-buffer.js +0 -361
  187. package/node_modules/@earendil-works/pi-tui/dist/stdin-buffer.js.map +0 -1
  188. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts +0 -90
  189. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts.map +0 -1
  190. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js +0 -366
  191. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js.map +0 -1
  192. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +0 -113
  193. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +0 -1
  194. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +0 -472
  195. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +0 -1
  196. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +0 -227
  197. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +0 -1
  198. package/node_modules/@earendil-works/pi-tui/dist/tui.js +0 -1106
  199. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +0 -1
  200. package/node_modules/@earendil-works/pi-tui/dist/undo-stack.d.ts +0 -17
  201. package/node_modules/@earendil-works/pi-tui/dist/undo-stack.d.ts.map +0 -1
  202. package/node_modules/@earendil-works/pi-tui/dist/undo-stack.js +0 -25
  203. package/node_modules/@earendil-works/pi-tui/dist/undo-stack.js.map +0 -1
  204. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts +0 -84
  205. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts.map +0 -1
  206. package/node_modules/@earendil-works/pi-tui/dist/utils.js +0 -1029
  207. package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +0 -1
  208. package/node_modules/@earendil-works/pi-tui/dist/word-navigation.d.ts +0 -25
  209. package/node_modules/@earendil-works/pi-tui/dist/word-navigation.d.ts.map +0 -1
  210. package/node_modules/@earendil-works/pi-tui/dist/word-navigation.js +0 -96
  211. package/node_modules/@earendil-works/pi-tui/dist/word-navigation.js.map +0 -1
  212. package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  213. package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  214. package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  215. package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  216. package/node_modules/@earendil-works/pi-tui/package.json +0 -47
  217. package/node_modules/get-east-asian-width/index.d.ts +0 -60
  218. package/node_modules/get-east-asian-width/index.js +0 -30
  219. package/node_modules/get-east-asian-width/license +0 -9
  220. package/node_modules/get-east-asian-width/lookup-data.js +0 -21
  221. package/node_modules/get-east-asian-width/lookup.js +0 -138
  222. package/node_modules/get-east-asian-width/package.json +0 -71
  223. package/node_modules/get-east-asian-width/readme.md +0 -65
  224. package/node_modules/get-east-asian-width/utilities.js +0 -24
  225. package/node_modules/marked/LICENSE.md +0 -44
  226. package/node_modules/marked/README.md +0 -106
  227. package/node_modules/marked/bin/main.js +0 -282
  228. package/node_modules/marked/bin/marked.js +0 -15
  229. package/node_modules/marked/lib/marked.cjs +0 -2211
  230. package/node_modules/marked/lib/marked.cjs.map +0 -7
  231. package/node_modules/marked/lib/marked.d.cts +0 -728
  232. package/node_modules/marked/lib/marked.d.ts +0 -728
  233. package/node_modules/marked/lib/marked.esm.js +0 -2189
  234. package/node_modules/marked/lib/marked.esm.js.map +0 -7
  235. package/node_modules/marked/lib/marked.umd.js +0 -2213
  236. package/node_modules/marked/lib/marked.umd.js.map +0 -7
  237. package/node_modules/marked/man/marked.1 +0 -111
  238. package/node_modules/marked/man/marked.1.md +0 -92
  239. package/node_modules/marked/marked.min.js +0 -69
  240. package/node_modules/marked/package.json +0 -111
@@ -2249,6 +2249,15 @@ export class InteractiveMode {
2249
2249
  await this.handleClearCommand();
2250
2250
  return;
2251
2251
  }
2252
+ if (/^\/context-compact(?:\s|$)/.test(text)) {
2253
+ this.editor.setText("");
2254
+ if (text !== "/context-compact") {
2255
+ this.showWarning("Usage: /context-compact");
2256
+ return;
2257
+ }
2258
+ await this.handleContextCompactCommand();
2259
+ return;
2260
+ }
2252
2261
  if (text === "/compact" || text.startsWith("/compact ")) {
2253
2262
  const customInstructions = text.startsWith("/compact ")
2254
2263
  ? text.slice(9).trim()
@@ -2602,6 +2611,52 @@ export class InteractiveMode {
2602
2611
  this.ui.requestRender();
2603
2612
  break;
2604
2613
  }
2614
+ case "context_compaction_start": {
2615
+ if (this.settingsManager.getShowTerminalProgress()) {
2616
+ this.ui.terminal.setProgress(true);
2617
+ }
2618
+ this.autoCompactionEscapeHandler = this.defaultEditor.onEscape;
2619
+ this.defaultEditor.onEscape = () => {
2620
+ this.session.abortCompaction();
2621
+ };
2622
+ this.statusContainer.clear();
2623
+ const cancelHint = `(${keyText("app.interrupt")} Cancel)`;
2624
+ this.autoCompactionLoader = new Loader(this.ui, (spinner) => theme.fg("accent", spinner), (text) => theme.fg("muted", text), `Context-compacting... ${cancelHint}`);
2625
+ this.statusContainer.addChild(this.autoCompactionLoader);
2626
+ this.ui.requestRender();
2627
+ break;
2628
+ }
2629
+ case "context_compaction_end": {
2630
+ if (this.settingsManager.getShowTerminalProgress()) {
2631
+ this.ui.terminal.setProgress(false);
2632
+ }
2633
+ if (this.autoCompactionEscapeHandler) {
2634
+ this.defaultEditor.onEscape = this.autoCompactionEscapeHandler;
2635
+ this.autoCompactionEscapeHandler = undefined;
2636
+ }
2637
+ if (this.autoCompactionLoader) {
2638
+ this.autoCompactionLoader.stop();
2639
+ this.autoCompactionLoader = undefined;
2640
+ this.statusContainer.clear();
2641
+ }
2642
+ if (event.aborted) {
2643
+ this.showError("Context compaction cancelled");
2644
+ }
2645
+ else if (event.result) {
2646
+ this.chatContainer.clear();
2647
+ this.rebuildChatFromMessages();
2648
+ const stats = event.result.stats;
2649
+ const backup = event.result.backupPath ? ` Backup: ${event.result.backupPath}` : "";
2650
+ this.showStatus(`Context-compacted ${stats.objectsDeleted} object${stats.objectsDeleted === 1 ? "" : "s"} (${stats.tokensBefore} → ${stats.tokensAfter} tokens, ${stats.percentReduction}% reduction).${backup}`);
2651
+ this.footer.invalidate();
2652
+ }
2653
+ else if (event.errorMessage) {
2654
+ this.showError(event.errorMessage);
2655
+ }
2656
+ void this.flushCompactionQueue({ willRetry: event.willRetry });
2657
+ this.ui.requestRender();
2658
+ break;
2659
+ }
2605
2660
  case "auto_retry_start": {
2606
2661
  // Set up escape to abort retry
2607
2662
  this.retryEscapeHandler = this.defaultEditor.onEscape;
@@ -4853,6 +4908,25 @@ export class InteractiveMode {
4853
4908
  // Ignore, will be emitted as an event
4854
4909
  }
4855
4910
  }
4911
+ async handleContextCompactCommand() {
4912
+ const entries = this.sessionManager.getEntries();
4913
+ const messageCount = entries.filter((e) => e.type === "message").length;
4914
+ if (messageCount < 2) {
4915
+ this.showWarning("Nothing to context-compact (no messages yet)");
4916
+ return;
4917
+ }
4918
+ if (this.loadingAnimation) {
4919
+ this.loadingAnimation.stop();
4920
+ this.loadingAnimation = undefined;
4921
+ }
4922
+ this.statusContainer.clear();
4923
+ try {
4924
+ await this.session.contextCompact();
4925
+ }
4926
+ catch {
4927
+ // Ignore, will be emitted as an event
4928
+ }
4929
+ }
4856
4930
  stop() {
4857
4931
  this.unregisterSignalHandlers();
4858
4932
  if (this.settingsManager.getShowTerminalProgress()) {