@bastani/atomic 0.8.26-alpha.1 → 0.8.26-alpha.10

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 (303) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/README.md +5 -5
  3. package/dist/builtin/intercom/CHANGELOG.md +54 -0
  4. package/dist/builtin/intercom/package.json +2 -2
  5. package/dist/builtin/mcp/CHANGELOG.md +54 -0
  6. package/dist/builtin/mcp/package.json +3 -3
  7. package/dist/builtin/subagents/CHANGELOG.md +55 -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/subagents/src/runs/background/subagent-runner.ts +55 -12
  18. package/dist/builtin/subagents/src/runs/foreground/execution.ts +71 -12
  19. package/dist/builtin/subagents/src/runs/shared/acceptance.ts +2 -1
  20. package/dist/builtin/subagents/src/runs/shared/final-drain.ts +34 -0
  21. package/dist/builtin/subagents/src/runs/shared/model-fallback.ts +416 -7
  22. package/dist/builtin/subagents/src/runs/shared/worktree.ts +2 -2
  23. package/dist/builtin/web-access/CHANGELOG.md +54 -0
  24. package/dist/builtin/web-access/package.json +2 -2
  25. package/dist/builtin/workflows/CHANGELOG.md +66 -0
  26. package/dist/builtin/workflows/README.md +10 -8
  27. package/dist/builtin/workflows/builtin/deep-research-codebase.ts +11 -8
  28. package/dist/builtin/workflows/builtin/goal.ts +137 -109
  29. package/dist/builtin/workflows/builtin/index.d.ts +2 -0
  30. package/dist/builtin/workflows/builtin/open-claude-design.ts +228 -151
  31. package/dist/builtin/workflows/builtin/ralph.d.ts +2 -0
  32. package/dist/builtin/workflows/builtin/ralph.ts +452 -279
  33. package/dist/builtin/workflows/package.json +2 -2
  34. package/dist/builtin/workflows/skills/create-spec/SKILL.md +14 -0
  35. package/dist/builtin/workflows/skills/research-codebase/SKILL.md +29 -10
  36. package/dist/builtin/workflows/src/extension/index.ts +10 -2
  37. package/dist/builtin/workflows/src/extension/runtime.ts +35 -3
  38. package/dist/builtin/workflows/src/extension/wiring.ts +13 -1
  39. package/dist/builtin/workflows/src/runs/background/status.ts +52 -6
  40. package/dist/builtin/workflows/src/runs/foreground/executor.ts +453 -21
  41. package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +77 -11
  42. package/dist/builtin/workflows/src/runs/shared/model-fallback.ts +402 -8
  43. package/dist/builtin/workflows/src/runs/shared/worktree.ts +2 -2
  44. package/dist/builtin/workflows/src/shared/authoring-contract.d.ts +2 -2
  45. package/dist/builtin/workflows/src/shared/persistence-restore.ts +182 -6
  46. package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +76 -6
  47. package/dist/builtin/workflows/src/shared/stage-prompt.ts +33 -2
  48. package/dist/builtin/workflows/src/shared/store-types.ts +31 -0
  49. package/dist/builtin/workflows/src/shared/store.ts +160 -18
  50. package/dist/builtin/workflows/src/shared/types.ts +3 -3
  51. package/dist/builtin/workflows/src/shared/workflow-failures.ts +758 -132
  52. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +39 -3
  53. package/dist/builtin/workflows/src/tui/store-widget-installer.ts +74 -74
  54. package/dist/core/agent-session.d.ts +33 -6
  55. package/dist/core/agent-session.d.ts.map +1 -1
  56. package/dist/core/agent-session.js +157 -182
  57. package/dist/core/agent-session.js.map +1 -1
  58. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  59. package/dist/core/atomic-guide-command.js +11 -9
  60. package/dist/core/atomic-guide-command.js.map +1 -1
  61. package/dist/core/compaction/branch-summarization.d.ts +1 -1
  62. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  63. package/dist/core/compaction/branch-summarization.js +6 -3
  64. package/dist/core/compaction/branch-summarization.js.map +1 -1
  65. package/dist/core/compaction/compaction.d.ts.map +1 -1
  66. package/dist/core/compaction/compaction.js +23 -10
  67. package/dist/core/compaction/compaction.js.map +1 -1
  68. package/dist/core/compaction/context-compaction.d.ts +175 -0
  69. package/dist/core/compaction/context-compaction.d.ts.map +1 -0
  70. package/dist/core/compaction/context-compaction.js +1636 -0
  71. package/dist/core/compaction/context-compaction.js.map +1 -0
  72. package/dist/core/compaction/index.d.ts +1 -0
  73. package/dist/core/compaction/index.d.ts.map +1 -1
  74. package/dist/core/compaction/index.js +1 -0
  75. package/dist/core/compaction/index.js.map +1 -1
  76. package/dist/core/extensions/types.d.ts +3 -2
  77. package/dist/core/extensions/types.d.ts.map +1 -1
  78. package/dist/core/extensions/types.js.map +1 -1
  79. package/dist/core/footer-data-provider.d.ts.map +1 -1
  80. package/dist/core/footer-data-provider.js +3 -0
  81. package/dist/core/footer-data-provider.js.map +1 -1
  82. package/dist/core/index.d.ts +1 -1
  83. package/dist/core/index.d.ts.map +1 -1
  84. package/dist/core/index.js.map +1 -1
  85. package/dist/core/package-manager.d.ts.map +1 -1
  86. package/dist/core/package-manager.js +14 -7
  87. package/dist/core/package-manager.js.map +1 -1
  88. package/dist/core/session-manager.d.ts +41 -1
  89. package/dist/core/session-manager.d.ts.map +1 -1
  90. package/dist/core/session-manager.js +146 -7
  91. package/dist/core/session-manager.js.map +1 -1
  92. package/dist/core/slash-commands.d.ts.map +1 -1
  93. package/dist/core/slash-commands.js +1 -1
  94. package/dist/core/slash-commands.js.map +1 -1
  95. package/dist/core/tools/ask-user-question/tool/format-answer.d.ts +5 -5
  96. package/dist/core/tools/ask-user-question/tool/format-answer.d.ts.map +1 -1
  97. package/dist/core/tools/ask-user-question/tool/format-answer.js +5 -5
  98. package/dist/core/tools/ask-user-question/tool/format-answer.js.map +1 -1
  99. package/dist/core/tools/ask-user-question/tool/response-envelope.d.ts +16 -3
  100. package/dist/core/tools/ask-user-question/tool/response-envelope.d.ts.map +1 -1
  101. package/dist/core/tools/ask-user-question/tool/response-envelope.js +21 -3
  102. package/dist/core/tools/ask-user-question/tool/response-envelope.js.map +1 -1
  103. package/dist/index.d.ts +4 -3
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +3 -2
  106. package/dist/index.js.map +1 -1
  107. package/dist/modes/index.d.ts +1 -1
  108. package/dist/modes/index.d.ts.map +1 -1
  109. package/dist/modes/index.js.map +1 -1
  110. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  111. package/dist/modes/interactive/components/chat-session-host.js +17 -0
  112. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  113. package/dist/modes/interactive/components/context-compaction-summary-message.d.ts +17 -0
  114. package/dist/modes/interactive/components/context-compaction-summary-message.d.ts.map +1 -0
  115. package/dist/modes/interactive/components/context-compaction-summary-message.js +83 -0
  116. package/dist/modes/interactive/components/context-compaction-summary-message.js.map +1 -0
  117. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  118. package/dist/modes/interactive/components/footer.js +4 -1
  119. package/dist/modes/interactive/components/footer.js.map +1 -1
  120. package/dist/modes/interactive/components/index.d.ts +1 -0
  121. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  122. package/dist/modes/interactive/components/index.js +1 -0
  123. package/dist/modes/interactive/components/index.js.map +1 -1
  124. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  125. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  126. package/dist/modes/interactive/interactive-mode.js +75 -10
  127. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  128. package/dist/modes/rpc/rpc-client.d.ts +13 -8
  129. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  130. package/dist/modes/rpc/rpc-client.js +8 -1
  131. package/dist/modes/rpc/rpc-client.js.map +1 -1
  132. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  133. package/dist/modes/rpc/rpc-mode.js +4 -0
  134. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  135. package/dist/modes/rpc/rpc-types.d.ts +14 -3
  136. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  137. package/dist/modes/rpc/rpc-types.js.map +1 -1
  138. package/dist/utils/git-env.d.ts +10 -0
  139. package/dist/utils/git-env.d.ts.map +1 -0
  140. package/dist/utils/git-env.js +33 -0
  141. package/dist/utils/git-env.js.map +1 -0
  142. package/docs/compaction.md +185 -50
  143. package/docs/custom-provider.md +11 -9
  144. package/docs/extensions.md +46 -42
  145. package/docs/index.md +13 -6
  146. package/docs/json.md +15 -12
  147. package/docs/packages.md +2 -0
  148. package/docs/providers.md +4 -1
  149. package/docs/quickstart.md +18 -11
  150. package/docs/rpc.md +38 -23
  151. package/docs/sdk.md +17 -8
  152. package/docs/session-format.md +26 -13
  153. package/docs/sessions.md +3 -3
  154. package/docs/settings.md +2 -2
  155. package/docs/skills.md +1 -15
  156. package/docs/termux.md +9 -10
  157. package/docs/themes.md +2 -2
  158. package/docs/tmux.md +3 -3
  159. package/docs/tui.md +19 -32
  160. package/docs/usage.md +2 -2
  161. package/docs/workflows.md +60 -16
  162. package/package.json +6 -12
  163. package/dist/builtin/subagents/skills/browser-use/SKILL.md +0 -234
  164. package/dist/builtin/subagents/skills/browser-use/references/cdp-python.md +0 -76
  165. package/dist/builtin/subagents/skills/browser-use/references/multi-session.md +0 -92
  166. package/node_modules/@earendil-works/pi-tui/README.md +0 -779
  167. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts +0 -54
  168. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts.map +0 -1
  169. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js +0 -632
  170. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js.map +0 -1
  171. package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts +0 -22
  172. package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts.map +0 -1
  173. package/node_modules/@earendil-works/pi-tui/dist/components/box.js +0 -104
  174. package/node_modules/@earendil-works/pi-tui/dist/components/box.js.map +0 -1
  175. package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.d.ts +0 -22
  176. package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.d.ts.map +0 -1
  177. package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.js +0 -35
  178. package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.js.map +0 -1
  179. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +0 -249
  180. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +0 -1
  181. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +0 -1857
  182. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +0 -1
  183. package/node_modules/@earendil-works/pi-tui/dist/components/image.d.ts +0 -28
  184. package/node_modules/@earendil-works/pi-tui/dist/components/image.d.ts.map +0 -1
  185. package/node_modules/@earendil-works/pi-tui/dist/components/image.js +0 -89
  186. package/node_modules/@earendil-works/pi-tui/dist/components/image.js.map +0 -1
  187. package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts +0 -37
  188. package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts.map +0 -1
  189. package/node_modules/@earendil-works/pi-tui/dist/components/input.js +0 -378
  190. package/node_modules/@earendil-works/pi-tui/dist/components/input.js.map +0 -1
  191. package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts +0 -31
  192. package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts.map +0 -1
  193. package/node_modules/@earendil-works/pi-tui/dist/components/loader.js +0 -69
  194. package/node_modules/@earendil-works/pi-tui/dist/components/loader.js.map +0 -1
  195. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +0 -96
  196. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +0 -1
  197. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +0 -644
  198. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +0 -1
  199. package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts +0 -50
  200. package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts.map +0 -1
  201. package/node_modules/@earendil-works/pi-tui/dist/components/select-list.js +0 -159
  202. package/node_modules/@earendil-works/pi-tui/dist/components/select-list.js.map +0 -1
  203. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts +0 -50
  204. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts.map +0 -1
  205. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js +0 -185
  206. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js.map +0 -1
  207. package/node_modules/@earendil-works/pi-tui/dist/components/spacer.d.ts +0 -12
  208. package/node_modules/@earendil-works/pi-tui/dist/components/spacer.d.ts.map +0 -1
  209. package/node_modules/@earendil-works/pi-tui/dist/components/spacer.js +0 -23
  210. package/node_modules/@earendil-works/pi-tui/dist/components/spacer.js.map +0 -1
  211. package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts +0 -19
  212. package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts.map +0 -1
  213. package/node_modules/@earendil-works/pi-tui/dist/components/text.js +0 -89
  214. package/node_modules/@earendil-works/pi-tui/dist/components/text.js.map +0 -1
  215. package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.d.ts +0 -13
  216. package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.d.ts.map +0 -1
  217. package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.js +0 -51
  218. package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.js.map +0 -1
  219. package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts +0 -39
  220. package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts.map +0 -1
  221. package/node_modules/@earendil-works/pi-tui/dist/editor-component.js +0 -2
  222. package/node_modules/@earendil-works/pi-tui/dist/editor-component.js.map +0 -1
  223. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.d.ts +0 -16
  224. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.d.ts.map +0 -1
  225. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.js +0 -110
  226. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.js.map +0 -1
  227. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +0 -23
  228. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +0 -1
  229. package/node_modules/@earendil-works/pi-tui/dist/index.js +0 -32
  230. package/node_modules/@earendil-works/pi-tui/dist/index.js.map +0 -1
  231. package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts +0 -193
  232. package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts.map +0 -1
  233. package/node_modules/@earendil-works/pi-tui/dist/keybindings.js +0 -174
  234. package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +0 -1
  235. package/node_modules/@earendil-works/pi-tui/dist/keys.d.ts +0 -184
  236. package/node_modules/@earendil-works/pi-tui/dist/keys.d.ts.map +0 -1
  237. package/node_modules/@earendil-works/pi-tui/dist/keys.js +0 -1173
  238. package/node_modules/@earendil-works/pi-tui/dist/keys.js.map +0 -1
  239. package/node_modules/@earendil-works/pi-tui/dist/kill-ring.d.ts +0 -28
  240. package/node_modules/@earendil-works/pi-tui/dist/kill-ring.d.ts.map +0 -1
  241. package/node_modules/@earendil-works/pi-tui/dist/kill-ring.js +0 -44
  242. package/node_modules/@earendil-works/pi-tui/dist/kill-ring.js.map +0 -1
  243. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts +0 -3
  244. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts.map +0 -1
  245. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js +0 -53
  246. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js.map +0 -1
  247. package/node_modules/@earendil-works/pi-tui/dist/stdin-buffer.d.ts +0 -50
  248. package/node_modules/@earendil-works/pi-tui/dist/stdin-buffer.d.ts.map +0 -1
  249. package/node_modules/@earendil-works/pi-tui/dist/stdin-buffer.js +0 -361
  250. package/node_modules/@earendil-works/pi-tui/dist/stdin-buffer.js.map +0 -1
  251. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts +0 -90
  252. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts.map +0 -1
  253. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js +0 -366
  254. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js.map +0 -1
  255. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +0 -113
  256. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +0 -1
  257. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +0 -472
  258. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +0 -1
  259. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +0 -227
  260. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +0 -1
  261. package/node_modules/@earendil-works/pi-tui/dist/tui.js +0 -1106
  262. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +0 -1
  263. package/node_modules/@earendil-works/pi-tui/dist/undo-stack.d.ts +0 -17
  264. package/node_modules/@earendil-works/pi-tui/dist/undo-stack.d.ts.map +0 -1
  265. package/node_modules/@earendil-works/pi-tui/dist/undo-stack.js +0 -25
  266. package/node_modules/@earendil-works/pi-tui/dist/undo-stack.js.map +0 -1
  267. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts +0 -84
  268. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts.map +0 -1
  269. package/node_modules/@earendil-works/pi-tui/dist/utils.js +0 -1029
  270. package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +0 -1
  271. package/node_modules/@earendil-works/pi-tui/dist/word-navigation.d.ts +0 -25
  272. package/node_modules/@earendil-works/pi-tui/dist/word-navigation.d.ts.map +0 -1
  273. package/node_modules/@earendil-works/pi-tui/dist/word-navigation.js +0 -96
  274. package/node_modules/@earendil-works/pi-tui/dist/word-navigation.js.map +0 -1
  275. package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  276. package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  277. package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  278. package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  279. package/node_modules/@earendil-works/pi-tui/package.json +0 -47
  280. package/node_modules/get-east-asian-width/index.d.ts +0 -60
  281. package/node_modules/get-east-asian-width/index.js +0 -30
  282. package/node_modules/get-east-asian-width/license +0 -9
  283. package/node_modules/get-east-asian-width/lookup-data.js +0 -21
  284. package/node_modules/get-east-asian-width/lookup.js +0 -138
  285. package/node_modules/get-east-asian-width/package.json +0 -71
  286. package/node_modules/get-east-asian-width/readme.md +0 -65
  287. package/node_modules/get-east-asian-width/utilities.js +0 -24
  288. package/node_modules/marked/LICENSE.md +0 -44
  289. package/node_modules/marked/README.md +0 -106
  290. package/node_modules/marked/bin/main.js +0 -282
  291. package/node_modules/marked/bin/marked.js +0 -15
  292. package/node_modules/marked/lib/marked.cjs +0 -2211
  293. package/node_modules/marked/lib/marked.cjs.map +0 -7
  294. package/node_modules/marked/lib/marked.d.cts +0 -728
  295. package/node_modules/marked/lib/marked.d.ts +0 -728
  296. package/node_modules/marked/lib/marked.esm.js +0 -2189
  297. package/node_modules/marked/lib/marked.esm.js.map +0 -7
  298. package/node_modules/marked/lib/marked.umd.js +0 -2213
  299. package/node_modules/marked/lib/marked.umd.js.map +0 -7
  300. package/node_modules/marked/man/marked.1 +0 -111
  301. package/node_modules/marked/man/marked.1.md +0 -92
  302. package/node_modules/marked/marked.min.js +0 -69
  303. package/node_modules/marked/package.json +0 -111
@@ -42,6 +42,7 @@ import { BranchSummaryMessageComponent } from "./components/branch-summary-messa
42
42
  import { chatEntriesFromAgentMessages, renderChatMessageEntry, } from "./components/chat-message-renderer.js";
43
43
  import { addChatTranscriptEntry } from "./components/chat-transcript.js";
44
44
  import { CompactionSummaryMessageComponent } from "./components/compaction-summary-message.js";
45
+ import { ContextCompactionSummaryMessageComponent } from "./components/context-compaction-summary-message.js";
45
46
  import { CountdownTimer } from "./components/countdown-timer.js";
46
47
  import { CustomEditor } from "./components/custom-editor.js";
47
48
  import { CustomMessageComponent } from "./components/custom-message.js";
@@ -88,6 +89,13 @@ class ExpandableText extends Text {
88
89
  this.setText(this.expanded ? this.getExpandedText() : this.getCollapsedText());
89
90
  }
90
91
  }
92
+ function isContextCompactionResult(result) {
93
+ return (typeof result === "object" &&
94
+ result !== null &&
95
+ "stats" in result &&
96
+ "deletedTargets" in result &&
97
+ "protectedEntryIds" in result);
98
+ }
91
99
  const DEAD_TERMINAL_ERROR_CODES = new Set(["EIO", "EPIPE", "ENOTCONN"]);
92
100
  function isDeadTerminalError(error) {
93
101
  if (!error || typeof error !== "object" || !("code" in error)) {
@@ -2249,12 +2257,13 @@ export class InteractiveMode {
2249
2257
  await this.handleClearCommand();
2250
2258
  return;
2251
2259
  }
2252
- if (text === "/compact" || text.startsWith("/compact ")) {
2253
- const customInstructions = text.startsWith("/compact ")
2254
- ? text.slice(9).trim()
2255
- : undefined;
2260
+ if (/^\/compact(?:\s|$)/.test(text)) {
2256
2261
  this.editor.setText("");
2257
- await this.handleCompactCommand(customInstructions);
2262
+ if (text !== "/compact") {
2263
+ this.showWarning("Usage: /compact");
2264
+ return;
2265
+ }
2266
+ await this.handleCompactCommand();
2258
2267
  return;
2259
2268
  }
2260
2269
  if (text === "/reload") {
@@ -2553,10 +2562,11 @@ export class InteractiveMode {
2553
2562
  };
2554
2563
  this.statusContainer.clear();
2555
2564
  const cancelHint = `(${keyText("app.interrupt")} Cancel)`;
2565
+ const isOverflowAutoCompaction = event.reason === "overflow";
2556
2566
  const label = event.reason === "manual"
2557
2567
  ? `Compacting context... ${cancelHint}`
2558
- : `${event.reason === "overflow" ? "Context overflow detected, " : ""}Auto-compacting... ${cancelHint}`;
2559
- this.autoCompactionLoader = new Loader(this.ui, (spinner) => theme.fg("accent", spinner), (text) => theme.fg("muted", text), label);
2568
+ : `${isOverflowAutoCompaction ? "Context overflow detected. " : ""}Auto-compacting... ${cancelHint}`;
2569
+ this.autoCompactionLoader = new Loader(this.ui, (spinner) => theme.fg("accent", spinner), (text) => theme.fg(isOverflowAutoCompaction ? "warning" : "muted", text), label);
2560
2570
  this.statusContainer.addChild(this.autoCompactionLoader);
2561
2571
  this.ui.requestRender();
2562
2572
  break;
@@ -2585,7 +2595,12 @@ export class InteractiveMode {
2585
2595
  else if (event.result) {
2586
2596
  this.chatContainer.clear();
2587
2597
  this.rebuildChatFromMessages();
2588
- this.addMessageToChat(createCompactionSummaryMessage(event.result.summary, event.result.tokensBefore, new Date().toISOString()));
2598
+ if (isContextCompactionResult(event.result)) {
2599
+ this.addContextCompactionSummaryToChat(event.result);
2600
+ }
2601
+ else {
2602
+ this.addMessageToChat(createCompactionSummaryMessage(event.result.summary, event.result.tokensBefore, new Date().toISOString()));
2603
+ }
2589
2604
  this.footer.invalidate();
2590
2605
  }
2591
2606
  else if (event.errorMessage) {
@@ -2601,6 +2616,50 @@ export class InteractiveMode {
2601
2616
  this.ui.requestRender();
2602
2617
  break;
2603
2618
  }
2619
+ case "context_compaction_start": {
2620
+ if (this.settingsManager.getShowTerminalProgress()) {
2621
+ this.ui.terminal.setProgress(true);
2622
+ }
2623
+ this.autoCompactionEscapeHandler = this.defaultEditor.onEscape;
2624
+ this.defaultEditor.onEscape = () => {
2625
+ this.session.abortCompaction();
2626
+ };
2627
+ this.statusContainer.clear();
2628
+ const cancelHint = `(${keyText("app.interrupt")} Cancel)`;
2629
+ this.autoCompactionLoader = new Loader(this.ui, (spinner) => theme.fg("accent", spinner), (text) => theme.fg("muted", text), `Compacting context... ${cancelHint}`);
2630
+ this.statusContainer.addChild(this.autoCompactionLoader);
2631
+ this.ui.requestRender();
2632
+ break;
2633
+ }
2634
+ case "context_compaction_end": {
2635
+ if (this.settingsManager.getShowTerminalProgress()) {
2636
+ this.ui.terminal.setProgress(false);
2637
+ }
2638
+ if (this.autoCompactionEscapeHandler) {
2639
+ this.defaultEditor.onEscape = this.autoCompactionEscapeHandler;
2640
+ this.autoCompactionEscapeHandler = undefined;
2641
+ }
2642
+ if (this.autoCompactionLoader) {
2643
+ this.autoCompactionLoader.stop();
2644
+ this.autoCompactionLoader = undefined;
2645
+ this.statusContainer.clear();
2646
+ }
2647
+ if (event.aborted) {
2648
+ this.showError("Context compaction cancelled");
2649
+ }
2650
+ else if (event.result) {
2651
+ this.chatContainer.clear();
2652
+ this.rebuildChatFromMessages();
2653
+ this.addContextCompactionSummaryToChat(event.result);
2654
+ this.footer.invalidate();
2655
+ }
2656
+ else if (event.errorMessage) {
2657
+ this.showError(event.errorMessage);
2658
+ }
2659
+ void this.flushCompactionQueue({ willRetry: event.willRetry });
2660
+ this.ui.requestRender();
2661
+ break;
2662
+ }
2604
2663
  case "auto_retry_start": {
2605
2664
  // Set up escape to abort retry
2606
2665
  this.retryEscapeHandler = this.defaultEditor.onEscape;
@@ -2700,6 +2759,12 @@ export class InteractiveMode {
2700
2759
  addChatTranscriptEntry(this.chatContainer, component, entry.role);
2701
2760
  return component;
2702
2761
  }
2762
+ addContextCompactionSummaryToChat(result) {
2763
+ this.chatContainer.addChild(new Spacer(1));
2764
+ const component = new ContextCompactionSummaryMessageComponent(result, this.getMarkdownThemeWithSettings());
2765
+ component.setExpanded(this.toolOutputExpanded);
2766
+ this.chatContainer.addChild(component);
2767
+ }
2703
2768
  addMessageToChat(message, options) {
2704
2769
  switch (message.role) {
2705
2770
  case "bashExecution": {
@@ -4833,7 +4898,7 @@ export class InteractiveMode {
4833
4898
  this.bashComponent = undefined;
4834
4899
  this.ui.requestRender();
4835
4900
  }
4836
- async handleCompactCommand(customInstructions) {
4901
+ async handleCompactCommand() {
4837
4902
  const entries = this.sessionManager.getEntries();
4838
4903
  const messageCount = entries.filter((e) => e.type === "message").length;
4839
4904
  if (messageCount < 2) {
@@ -4846,7 +4911,7 @@ export class InteractiveMode {
4846
4911
  }
4847
4912
  this.statusContainer.clear();
4848
4913
  try {
4849
- await this.session.compact(customInstructions);
4914
+ await this.session.compact();
4850
4915
  }
4851
4916
  catch {
4852
4917
  // Ignore, will be emitted as an event