@pentoshi/clai 4.14.4 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) hide show
  1. package/CONTRIBUTING.md +4 -0
  2. package/PROVIDERS.md +2 -0
  3. package/README.md +41 -5
  4. package/dist/agent/compaction-summary.d.ts +6 -1
  5. package/dist/agent/compaction-summary.js +46 -20
  6. package/dist/agent/compaction-summary.js.map +1 -1
  7. package/dist/agent/confirm-port.d.ts +3 -8
  8. package/dist/agent/confirm-port.js +9 -7
  9. package/dist/agent/confirm-port.js.map +1 -1
  10. package/dist/agent/context/compact-with-summary.js +55 -14
  11. package/dist/agent/context/compact-with-summary.js.map +1 -1
  12. package/dist/agent/context/compaction-recent-history.js +4 -2
  13. package/dist/agent/context/compaction-recent-history.js.map +1 -1
  14. package/dist/agent/context/compaction-user-instructions.d.ts +12 -0
  15. package/dist/agent/context/compaction-user-instructions.js +264 -0
  16. package/dist/agent/context/compaction-user-instructions.js.map +1 -0
  17. package/dist/agent/context/compaction-work-history.d.ts +13 -0
  18. package/dist/agent/context/compaction-work-history.js +150 -0
  19. package/dist/agent/context/compaction-work-history.js.map +1 -0
  20. package/dist/agent/context-manager.js +19 -5
  21. package/dist/agent/context-manager.js.map +1 -1
  22. package/dist/agent/plan-implement-compact.js +2 -1
  23. package/dist/agent/plan-implement-compact.js.map +1 -1
  24. package/dist/agent/subagents/read-only-tools.js +2 -2
  25. package/dist/agent/subagents/read-only-tools.js.map +1 -1
  26. package/dist/agent/turn/loop/stream-session.js +33 -27
  27. package/dist/agent/turn/loop/stream-session.js.map +1 -1
  28. package/dist/agent/turn/tool-execution/authorization.js +1 -1
  29. package/dist/agent/turn/tool-execution/authorization.js.map +1 -1
  30. package/dist/app/adapters/current-store-adapter.js +2 -2
  31. package/dist/app/adapters/current-store-adapter.js.map +1 -1
  32. package/dist/app/adapters/current-updates-adapter.d.ts +1 -1
  33. package/dist/app/adapters/current-updates-adapter.js +4 -13
  34. package/dist/app/adapters/current-updates-adapter.js.map +1 -1
  35. package/dist/app/commands/catalog.js +1 -0
  36. package/dist/app/commands/catalog.js.map +1 -1
  37. package/dist/app/controllers/session-changes.d.ts +24 -0
  38. package/dist/app/controllers/session-changes.js +75 -0
  39. package/dist/app/controllers/session-changes.js.map +1 -0
  40. package/dist/app/controllers/session-controller.d.ts +9 -0
  41. package/dist/app/controllers/session-controller.js +67 -7
  42. package/dist/app/controllers/session-controller.js.map +1 -1
  43. package/dist/app/ports/confirm-port.d.ts +4 -1
  44. package/dist/app/ports/persistence-port.d.ts +2 -0
  45. package/dist/app/ports/transcript-item.d.ts +2 -0
  46. package/dist/app/ports/updates-port.d.ts +1 -1
  47. package/dist/classic/app/ClassicApp.js +42 -33
  48. package/dist/classic/app/ClassicApp.js.map +1 -1
  49. package/dist/classic/app/action-handlers.js +7 -0
  50. package/dist/classic/app/action-handlers.js.map +1 -1
  51. package/dist/classic/app/app-wiring.d.ts +8 -1
  52. package/dist/classic/app/app-wiring.js +23 -4
  53. package/dist/classic/app/app-wiring.js.map +1 -1
  54. package/dist/classic/app/paint-pacing.d.ts +3 -1
  55. package/dist/classic/app/paint-pacing.js +9 -1
  56. package/dist/classic/app/paint-pacing.js.map +1 -1
  57. package/dist/classic/app/use-feed.js +8 -3
  58. package/dist/classic/app/use-feed.js.map +1 -1
  59. package/dist/classic/app/wiring-composer-pointer.d.ts +3 -0
  60. package/dist/classic/app/wiring-composer-pointer.js +22 -0
  61. package/dist/classic/app/wiring-composer-pointer.js.map +1 -0
  62. package/dist/classic/app/wiring-disclosure.d.ts +3 -0
  63. package/dist/classic/app/wiring-disclosure.js +31 -0
  64. package/dist/classic/app/wiring-disclosure.js.map +1 -0
  65. package/dist/classic/app/wiring-interactions.d.ts +1 -0
  66. package/dist/classic/app/wiring-interactions.js +16 -16
  67. package/dist/classic/app/wiring-interactions.js.map +1 -1
  68. package/dist/classic/app/wiring-jump-to-latest.d.ts +3 -0
  69. package/dist/classic/app/wiring-jump-to-latest.js +38 -0
  70. package/dist/classic/app/wiring-jump-to-latest.js.map +1 -0
  71. package/dist/classic/app/wiring-lifecycle.d.ts +1 -1
  72. package/dist/classic/app/wiring-lifecycle.js +19 -10
  73. package/dist/classic/app/wiring-lifecycle.js.map +1 -1
  74. package/dist/classic/app/wiring-selection.d.ts +1 -0
  75. package/dist/classic/app/wiring-selection.js +10 -1
  76. package/dist/classic/app/wiring-selection.js.map +1 -1
  77. package/dist/classic/app/wiring-types.d.ts +12 -1
  78. package/dist/classic/blocks/assistant-lines.js +1 -1
  79. package/dist/classic/blocks/assistant-lines.js.map +1 -1
  80. package/dist/classic/blocks/batch-lines.d.ts +1 -1
  81. package/dist/classic/blocks/batch-lines.js +47 -59
  82. package/dist/classic/blocks/batch-lines.js.map +1 -1
  83. package/dist/classic/blocks/block-context.d.ts +8 -1
  84. package/dist/classic/blocks/block-context.js.map +1 -1
  85. package/dist/classic/blocks/compacted-lines.d.ts +0 -1
  86. package/dist/classic/blocks/compacted-lines.js +12 -44
  87. package/dist/classic/blocks/compacted-lines.js.map +1 -1
  88. package/dist/classic/blocks/diff-lines.d.ts +3 -5
  89. package/dist/classic/blocks/diff-lines.js +113 -152
  90. package/dist/classic/blocks/diff-lines.js.map +1 -1
  91. package/dist/classic/blocks/disclosure-lines.d.ts +16 -0
  92. package/dist/classic/blocks/disclosure-lines.js +20 -0
  93. package/dist/classic/blocks/disclosure-lines.js.map +1 -0
  94. package/dist/classic/blocks/intro-lines.js +2 -0
  95. package/dist/classic/blocks/intro-lines.js.map +1 -1
  96. package/dist/classic/blocks/notice-lines.js +4 -16
  97. package/dist/classic/blocks/notice-lines.js.map +1 -1
  98. package/dist/classic/blocks/output-lines.d.ts +10 -0
  99. package/dist/classic/blocks/output-lines.js +35 -0
  100. package/dist/classic/blocks/output-lines.js.map +1 -0
  101. package/dist/classic/blocks/thinking-lines.d.ts +0 -1
  102. package/dist/classic/blocks/thinking-lines.js +15 -32
  103. package/dist/classic/blocks/thinking-lines.js.map +1 -1
  104. package/dist/classic/blocks/tool-label.d.ts +2 -0
  105. package/dist/classic/blocks/tool-label.js +8 -0
  106. package/dist/classic/blocks/tool-label.js.map +1 -0
  107. package/dist/classic/blocks/tool-lines.d.ts +3 -5
  108. package/dist/classic/blocks/tool-lines.js +90 -150
  109. package/dist/classic/blocks/tool-lines.js.map +1 -1
  110. package/dist/classic/blocks/turn-summary-lines.js +7 -1
  111. package/dist/classic/blocks/turn-summary-lines.js.map +1 -1
  112. package/dist/classic/blocks/user-lines.js +9 -15
  113. package/dist/classic/blocks/user-lines.js.map +1 -1
  114. package/dist/classic/bootstrap/start-classic.js +2 -0
  115. package/dist/classic/bootstrap/start-classic.js.map +1 -1
  116. package/dist/classic/chrome/Composer.d.ts +4 -2
  117. package/dist/classic/chrome/Composer.js +12 -6
  118. package/dist/classic/chrome/Composer.js.map +1 -1
  119. package/dist/classic/chrome/composer-controller.d.ts +3 -0
  120. package/dist/classic/chrome/composer-controller.js +15 -22
  121. package/dist/classic/chrome/composer-controller.js.map +1 -1
  122. package/dist/classic/chrome/composer-frame.d.ts +1 -1
  123. package/dist/classic/chrome/composer-frame.js +2 -1
  124. package/dist/classic/chrome/composer-frame.js.map +1 -1
  125. package/dist/classic/chrome/composer-mentions.d.ts +2 -0
  126. package/dist/classic/chrome/composer-mentions.js +16 -0
  127. package/dist/classic/chrome/composer-mentions.js.map +1 -0
  128. package/dist/classic/chrome/composer-pointer.d.ts +13 -0
  129. package/dist/classic/chrome/composer-pointer.js +22 -0
  130. package/dist/classic/chrome/composer-pointer.js.map +1 -0
  131. package/dist/classic/chrome/directory-row.d.ts +20 -2
  132. package/dist/classic/chrome/directory-row.js +45 -1
  133. package/dist/classic/chrome/directory-row.js.map +1 -1
  134. package/dist/classic/chrome/editor-view.js +6 -1
  135. package/dist/classic/chrome/editor-view.js.map +1 -1
  136. package/dist/classic/chrome/queue-rows.d.ts +1 -0
  137. package/dist/classic/chrome/queue-rows.js +12 -2
  138. package/dist/classic/chrome/queue-rows.js.map +1 -1
  139. package/dist/classic/chrome/status-rows.d.ts +1 -0
  140. package/dist/classic/chrome/status-rows.js +5 -4
  141. package/dist/classic/chrome/status-rows.js.map +1 -1
  142. package/dist/classic/chrome/toast-rows.js +7 -6
  143. package/dist/classic/chrome/toast-rows.js.map +1 -1
  144. package/dist/classic/feed/LiveTail.d.ts +4 -3
  145. package/dist/classic/feed/LiveTail.js +26 -15
  146. package/dist/classic/feed/LiveTail.js.map +1 -1
  147. package/dist/classic/feed/feed-blocks.d.ts +2 -0
  148. package/dist/classic/feed/feed-blocks.js +4 -2
  149. package/dist/classic/feed/feed-blocks.js.map +1 -1
  150. package/dist/classic/feed/transcript-disclosure.d.ts +6 -0
  151. package/dist/classic/feed/transcript-disclosure.js +9 -0
  152. package/dist/classic/feed/transcript-disclosure.js.map +1 -0
  153. package/dist/classic/feed/transcript-resources.d.ts +23 -0
  154. package/dist/classic/feed/transcript-resources.js +140 -0
  155. package/dist/classic/feed/transcript-resources.js.map +1 -0
  156. package/dist/classic/feed/transcript-window.js +43 -18
  157. package/dist/classic/feed/transcript-window.js.map +1 -1
  158. package/dist/classic/input/input-router.d.ts +2 -0
  159. package/dist/classic/input/input-router.js +6 -0
  160. package/dist/classic/input/input-router.js.map +1 -1
  161. package/dist/classic/input/raw-decoder.js +3 -2
  162. package/dist/classic/input/raw-decoder.js.map +1 -1
  163. package/dist/classic/panels/confirm-panel.js +17 -10
  164. package/dist/classic/panels/confirm-panel.js.map +1 -1
  165. package/dist/classic/panels/pager-panel.d.ts +6 -2
  166. package/dist/classic/panels/pager-panel.js +11 -4
  167. package/dist/classic/panels/pager-panel.js.map +1 -1
  168. package/dist/classic/panels/panel-controller.js +4 -1
  169. package/dist/classic/panels/panel-controller.js.map +1 -1
  170. package/dist/classic/panels/panel-host.js +1 -1
  171. package/dist/classic/panels/panel-host.js.map +1 -1
  172. package/dist/classic/panels/panel-wheel.js +1 -1
  173. package/dist/classic/panels/panel-wheel.js.map +1 -1
  174. package/dist/classic/render/shell-width.d.ts +0 -2
  175. package/dist/classic/render/shell-width.js +0 -6
  176. package/dist/classic/render/shell-width.js.map +1 -1
  177. package/dist/commands/update/detection.d.ts +20 -0
  178. package/dist/commands/update/detection.js +207 -0
  179. package/dist/commands/update/detection.js.map +1 -0
  180. package/dist/commands/update/download.d.ts +3 -0
  181. package/dist/commands/update/download.js +63 -0
  182. package/dist/commands/update/download.js.map +1 -0
  183. package/dist/commands/update/installers.d.ts +16 -5
  184. package/dist/commands/update/installers.js +12 -513
  185. package/dist/commands/update/installers.js.map +1 -1
  186. package/dist/commands/update/lock.d.ts +6 -0
  187. package/dist/commands/update/lock.js +86 -0
  188. package/dist/commands/update/lock.js.map +1 -0
  189. package/dist/commands/update/metadata.d.ts +6 -0
  190. package/dist/commands/update/metadata.js +36 -0
  191. package/dist/commands/update/metadata.js.map +1 -0
  192. package/dist/commands/update/native.d.ts +3 -0
  193. package/dist/commands/update/native.js +179 -0
  194. package/dist/commands/update/native.js.map +1 -0
  195. package/dist/commands/update/package-managers.d.ts +4 -0
  196. package/dist/commands/update/package-managers.js +158 -0
  197. package/dist/commands/update/package-managers.js.map +1 -0
  198. package/dist/commands/update/process.d.ts +17 -0
  199. package/dist/commands/update/process.js +114 -0
  200. package/dist/commands/update/process.js.map +1 -0
  201. package/dist/commands/update/source-worker.d.ts +2 -0
  202. package/dist/commands/update/source-worker.js +71 -0
  203. package/dist/commands/update/source-worker.js.map +1 -0
  204. package/dist/commands/update/source.d.ts +2 -0
  205. package/dist/commands/update/source.js +79 -0
  206. package/dist/commands/update/source.js.map +1 -0
  207. package/dist/commands/update/verification.d.ts +7 -0
  208. package/dist/commands/update/verification.js +73 -0
  209. package/dist/commands/update/verification.js.map +1 -0
  210. package/dist/commands/update/windows-stage.d.ts +21 -0
  211. package/dist/commands/update/windows-stage.js +186 -0
  212. package/dist/commands/update/windows-stage.js.map +1 -0
  213. package/dist/commands/update-install.d.ts +4 -13
  214. package/dist/commands/update-install.js +20 -152
  215. package/dist/commands/update-install.js.map +1 -1
  216. package/dist/commands/update.d.ts +4 -9
  217. package/dist/commands/update.js +51 -103
  218. package/dist/commands/update.js.map +1 -1
  219. package/dist/index.js +1 -1
  220. package/dist/index.js.map +1 -1
  221. package/dist/instructions/record.d.ts +1 -1
  222. package/dist/instructions/record.js +3 -3
  223. package/dist/llm/free-client.d.ts +2 -0
  224. package/dist/llm/free-client.js +52 -0
  225. package/dist/llm/free-client.js.map +1 -0
  226. package/dist/llm/free.d.ts +1 -0
  227. package/dist/llm/free.js +77 -176
  228. package/dist/llm/free.js.map +1 -1
  229. package/dist/llm/key-rotation.d.ts +1 -0
  230. package/dist/llm/key-rotation.js +13 -2
  231. package/dist/llm/key-rotation.js.map +1 -1
  232. package/dist/llm/reasoning-errors.js +1 -1
  233. package/dist/llm/reasoning-errors.js.map +1 -1
  234. package/dist/llm/responses-error.d.ts +3 -0
  235. package/dist/llm/responses-error.js +37 -0
  236. package/dist/llm/responses-error.js.map +1 -0
  237. package/dist/llm/responses-http.js +5 -2
  238. package/dist/llm/responses-http.js.map +1 -1
  239. package/dist/llm/responses-replay.d.ts +2 -0
  240. package/dist/llm/responses-replay.js +37 -1
  241. package/dist/llm/responses-replay.js.map +1 -1
  242. package/dist/llm/responses-stream-events.js +3 -20
  243. package/dist/llm/responses-stream-events.js.map +1 -1
  244. package/dist/llm/responses-stream.js +2 -0
  245. package/dist/llm/responses-stream.js.map +1 -1
  246. package/dist/llm/wire/reasoning-artifacts.js +1 -1
  247. package/dist/llm/wire/reasoning-artifacts.js.map +1 -1
  248. package/dist/noninteractive/stdio-confirm-port.js +4 -3
  249. package/dist/noninteractive/stdio-confirm-port.js.map +1 -1
  250. package/dist/os/bun-runtime.js +2 -1
  251. package/dist/os/bun-runtime.js.map +1 -1
  252. package/dist/os/update-origin.d.ts +7 -0
  253. package/dist/os/update-origin.js +30 -0
  254. package/dist/os/update-origin.js.map +1 -0
  255. package/dist/prompts/embedded.js +2 -2
  256. package/dist/prompts/embedded.js.map +1 -1
  257. package/dist/prompts/index.js +25 -22
  258. package/dist/prompts/index.js.map +1 -1
  259. package/dist/prompts/system.agent.md +7 -1
  260. package/dist/prompts/system.ask.md +1 -1
  261. package/dist/safety/filesystem-permissions.d.ts +8 -0
  262. package/dist/safety/filesystem-permissions.js +38 -18
  263. package/dist/safety/filesystem-permissions.js.map +1 -1
  264. package/dist/safety/patterns.d.ts +1 -1
  265. package/dist/safety/patterns.js +7 -7
  266. package/dist/safety/patterns.js.map +1 -1
  267. package/dist/safety/permission-mode.js +1 -1
  268. package/dist/safety/permission-mode.js.map +1 -1
  269. package/dist/safety/shell-classification.js +1 -1
  270. package/dist/safety/shell-classification.js.map +1 -1
  271. package/dist/session-runtime/client.js +2 -1
  272. package/dist/session-runtime/client.js.map +1 -1
  273. package/dist/session-runtime/view-manager.js +1 -1
  274. package/dist/session-runtime/view-manager.js.map +1 -1
  275. package/dist/store/history/jsonl-lock.js +10 -7
  276. package/dist/store/history/jsonl-lock.js.map +1 -1
  277. package/dist/store/history/recovery.d.ts +1 -0
  278. package/dist/store/history/recovery.js +2 -1
  279. package/dist/store/history/recovery.js.map +1 -1
  280. package/dist/store/history/sqlite-backend.js +2 -0
  281. package/dist/store/history/sqlite-backend.js.map +1 -1
  282. package/dist/store/history.d.ts +2 -2
  283. package/dist/store/history.js +8 -4
  284. package/dist/store/history.js.map +1 -1
  285. package/dist/store/session-prompts.d.ts +5 -0
  286. package/dist/store/session-prompts.js +60 -1
  287. package/dist/store/session-prompts.js.map +1 -1
  288. package/dist/tools/definitions/aggregate.js +7 -2
  289. package/dist/tools/definitions/aggregate.js.map +1 -1
  290. package/dist/tools/definitions/fs-read.js +1 -1
  291. package/dist/tools/definitions/fs-read.js.map +1 -1
  292. package/dist/tools/fs/read-input.d.ts +1 -1
  293. package/dist/tools/fs/read-input.js +2 -2
  294. package/dist/tools/fs/read-input.js.map +1 -1
  295. package/dist/tools/instructions.js +8 -1
  296. package/dist/tools/instructions.js.map +1 -1
  297. package/dist/tui-v2/app/App.js +18 -7
  298. package/dist/tui-v2/app/App.js.map +1 -1
  299. package/dist/tui-v2/bootstrap/frame-pacing.d.ts +4 -0
  300. package/dist/tui-v2/bootstrap/frame-pacing.js +5 -0
  301. package/dist/tui-v2/bootstrap/frame-pacing.js.map +1 -0
  302. package/dist/tui-v2/bootstrap/runtime-view.js +2 -0
  303. package/dist/tui-v2/bootstrap/runtime-view.js.map +1 -1
  304. package/dist/tui-v2/bootstrap/start-tui-v2.js +2 -0
  305. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  306. package/dist/tui-v2/components/modal/confirm-modal.d.ts +2 -0
  307. package/dist/tui-v2/components/modal/confirm-modal.js +21 -35
  308. package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -1
  309. package/dist/tui-v2/components/overlay/overlay-host.js +1 -1
  310. package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
  311. package/dist/tui-v2/components/pager/pager.js +4 -1
  312. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  313. package/dist/tui-v2/components/plan/plan-interaction.d.ts +11 -0
  314. package/dist/tui-v2/components/plan/plan-interaction.js +56 -0
  315. package/dist/tui-v2/components/plan/plan-interaction.js.map +1 -0
  316. package/dist/tui-v2/components/plan/plan-view.d.ts +7 -1
  317. package/dist/tui-v2/components/plan/plan-view.js +78 -175
  318. package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
  319. package/dist/tui-v2/components/plan/task-title.d.ts +9 -0
  320. package/dist/tui-v2/components/plan/task-title.js +17 -0
  321. package/dist/tui-v2/components/plan/task-title.js.map +1 -0
  322. package/dist/tui-v2/components/plan/use-task-disclosure.d.ts +25 -0
  323. package/dist/tui-v2/components/plan/use-task-disclosure.js +125 -0
  324. package/dist/tui-v2/components/plan/use-task-disclosure.js.map +1 -0
  325. package/dist/tui-v2/components/queue/queue-panel.js +2 -7
  326. package/dist/tui-v2/components/queue/queue-panel.js.map +1 -1
  327. package/dist/tui-v2/components/status/jump-to-latest.d.ts +7 -0
  328. package/dist/tui-v2/components/status/jump-to-latest.js +16 -0
  329. package/dist/tui-v2/components/status/jump-to-latest.js.map +1 -0
  330. package/dist/tui-v2/components/status/status-line.d.ts +1 -0
  331. package/dist/tui-v2/components/status/status-line.js +14 -4
  332. package/dist/tui-v2/components/status/status-line.js.map +1 -1
  333. package/dist/tui-v2/components/toast/toast-host.js +4 -7
  334. package/dist/tui-v2/components/toast/toast-host.js.map +1 -1
  335. package/dist/tui-v2/components/transcript/file-diff-card.d.ts +1 -0
  336. package/dist/tui-v2/components/transcript/file-diff-card.js +25 -11
  337. package/dist/tui-v2/components/transcript/file-diff-card.js.map +1 -1
  338. package/dist/tui-v2/components/transcript/tool-card.js +24 -20
  339. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  340. package/dist/tui-v2/components/transcript/transcript-row.js +6 -3
  341. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  342. package/dist/tui-v2/components/transcript/transcript-scroll-port.d.ts +1 -0
  343. package/dist/tui-v2/components/transcript/transcript-scroll-port.js +3 -1
  344. package/dist/tui-v2/components/transcript/transcript-scroll-port.js.map +1 -1
  345. package/dist/tui-v2/components/transcript/transcript-scrollbar.js +17 -11
  346. package/dist/tui-v2/components/transcript/transcript-scrollbar.js.map +1 -1
  347. package/dist/tui-v2/components/transcript/transcript-view.js +41 -21
  348. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  349. package/dist/tui-v2/composer/composer-editor.js +17 -9
  350. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  351. package/dist/tui-v2/rendering/pager-markdown.d.ts +3 -0
  352. package/dist/tui-v2/rendering/pager-markdown.js +3 -0
  353. package/dist/tui-v2/rendering/pager-markdown.js.map +1 -1
  354. package/dist/types.d.ts +12 -0
  355. package/dist/types.js.map +1 -1
  356. package/dist/ui/mentions/file-suggestions.js +17 -8
  357. package/dist/ui/mentions/file-suggestions.js.map +1 -1
  358. package/dist/ui-core/actions/action-id.d.ts +1 -1
  359. package/dist/ui-core/actions/action-id.js +7 -0
  360. package/dist/ui-core/actions/action-id.js.map +1 -1
  361. package/dist/ui-core/actions/format-shortcuts.js +9 -0
  362. package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
  363. package/dist/ui-core/bootstrap/overlay-ports.js +8 -3
  364. package/dist/ui-core/bootstrap/overlay-ports.js.map +1 -1
  365. package/dist/ui-core/bootstrap/session-resume.js +1 -0
  366. package/dist/ui-core/bootstrap/session-resume.js.map +1 -1
  367. package/dist/ui-core/commands/change-commands.d.ts +4 -0
  368. package/dist/ui-core/commands/change-commands.js +48 -0
  369. package/dist/ui-core/commands/change-commands.js.map +1 -0
  370. package/dist/ui-core/commands/command-handlers.js +2 -0
  371. package/dist/ui-core/commands/command-handlers.js.map +1 -1
  372. package/dist/ui-core/commands/config-commands.js +12 -6
  373. package/dist/ui-core/commands/config-commands.js.map +1 -1
  374. package/dist/ui-core/commands/prompt-commands.d.ts +1 -1
  375. package/dist/ui-core/commands/prompt-commands.js +12 -2
  376. package/dist/ui-core/commands/prompt-commands.js.map +1 -1
  377. package/dist/ui-core/composer/arrow-intent.js +2 -0
  378. package/dist/ui-core/composer/arrow-intent.js.map +1 -1
  379. package/dist/ui-core/composer/paste-placeholder.js +2 -2
  380. package/dist/ui-core/composer/paste-placeholder.js.map +1 -1
  381. package/dist/ui-core/composer/prompt-history.d.ts +12 -0
  382. package/dist/ui-core/composer/prompt-history.js +75 -1
  383. package/dist/ui-core/composer/prompt-history.js.map +1 -1
  384. package/dist/ui-core/composer/saved-prompt-history.d.ts +5 -0
  385. package/dist/ui-core/composer/saved-prompt-history.js +33 -0
  386. package/dist/ui-core/composer/saved-prompt-history.js.map +1 -0
  387. package/dist/ui-core/controllers/overlay-controller.d.ts +1 -0
  388. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  389. package/dist/ui-core/controllers/toast-controller.js +4 -4
  390. package/dist/ui-core/controllers/toast-controller.js.map +1 -1
  391. package/dist/ui-core/react/use-transcript-store.js +4 -2
  392. package/dist/ui-core/react/use-transcript-store.js.map +1 -1
  393. package/dist/ui-core/rendering/artifact-pager-source.d.ts +3 -0
  394. package/dist/ui-core/rendering/artifact-pager-source.js.map +1 -1
  395. package/dist/ui-core/rendering/batch-sections.d.ts +3 -2
  396. package/dist/ui-core/rendering/batch-sections.js +5 -5
  397. package/dist/ui-core/rendering/batch-sections.js.map +1 -1
  398. package/dist/ui-core/rendering/card-style.d.ts +2 -0
  399. package/dist/ui-core/rendering/card-style.js +3 -0
  400. package/dist/ui-core/rendering/card-style.js.map +1 -0
  401. package/dist/ui-core/rendering/confirmation-preview.d.ts +9 -0
  402. package/dist/ui-core/rendering/confirmation-preview.js +33 -0
  403. package/dist/ui-core/rendering/confirmation-preview.js.map +1 -0
  404. package/dist/ui-core/rendering/duration.d.ts +2 -1
  405. package/dist/ui-core/rendering/duration.js +4 -6
  406. package/dist/ui-core/rendering/duration.js.map +1 -1
  407. package/dist/ui-core/rendering/intro-header.d.ts +1 -0
  408. package/dist/ui-core/rendering/intro-header.js +19 -15
  409. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  410. package/dist/ui-core/rendering/jump-to-latest.d.ts +1 -0
  411. package/dist/ui-core/rendering/jump-to-latest.js +7 -0
  412. package/dist/ui-core/rendering/jump-to-latest.js.map +1 -0
  413. package/dist/ui-core/rendering/line-change-labels.d.ts +6 -0
  414. package/dist/ui-core/rendering/line-change-labels.js +12 -0
  415. package/dist/ui-core/rendering/line-change-labels.js.map +1 -0
  416. package/dist/ui-core/rendering/markdown.d.ts +5 -1
  417. package/dist/ui-core/rendering/markdown.js +20 -5
  418. package/dist/ui-core/rendering/markdown.js.map +1 -1
  419. package/dist/ui-core/rendering/plan-view.js +24 -12
  420. package/dist/ui-core/rendering/plan-view.js.map +1 -1
  421. package/dist/ui-core/rendering/render-markdown-lines.d.ts +3 -0
  422. package/dist/ui-core/rendering/render-markdown-lines.js +6 -1
  423. package/dist/ui-core/rendering/render-markdown-lines.js.map +1 -1
  424. package/dist/ui-core/rendering/session-prompts-pager-source.js +2 -0
  425. package/dist/ui-core/rendering/session-prompts-pager-source.js.map +1 -1
  426. package/dist/ui-core/rendering/status-segments.js +10 -5
  427. package/dist/ui-core/rendering/status-segments.js.map +1 -1
  428. package/dist/ui-core/rendering/subagent-presentation.js +39 -11
  429. package/dist/ui-core/rendering/subagent-presentation.js.map +1 -1
  430. package/dist/ui-core/rendering/subagent-source.js +11 -48
  431. package/dist/ui-core/rendering/subagent-source.js.map +1 -1
  432. package/dist/ui-core/rendering/subagent-tool-usage.d.ts +5 -0
  433. package/dist/ui-core/rendering/subagent-tool-usage.js +42 -0
  434. package/dist/ui-core/rendering/subagent-tool-usage.js.map +1 -0
  435. package/dist/ui-core/rendering/task-disclosure.d.ts +19 -0
  436. package/dist/ui-core/rendering/task-disclosure.js +70 -0
  437. package/dist/ui-core/rendering/task-disclosure.js.map +1 -0
  438. package/dist/ui-core/rendering/tool-diff-preview.d.ts +21 -0
  439. package/dist/ui-core/rendering/tool-diff-preview.js +27 -0
  440. package/dist/ui-core/rendering/tool-diff-preview.js.map +1 -0
  441. package/dist/ui-core/rendering/tool-presenter.d.ts +4 -2
  442. package/dist/ui-core/rendering/tool-presenter.js +19 -4
  443. package/dist/ui-core/rendering/tool-presenter.js.map +1 -1
  444. package/dist/ui-core/rendering/tool-usage-label.d.ts +2 -0
  445. package/dist/ui-core/rendering/tool-usage-label.js +42 -0
  446. package/dist/ui-core/rendering/tool-usage-label.js.map +1 -0
  447. package/dist/ui-core/state/hydrate/classic-transcript.js +2 -0
  448. package/dist/ui-core/state/hydrate/classic-transcript.js.map +1 -1
  449. package/dist/ui-core/state/transcript/apply-app-event.js +16 -5
  450. package/dist/ui-core/state/transcript/apply-app-event.js.map +1 -1
  451. package/dist/ui-core/state/transcript-hydrate.js +1 -0
  452. package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
  453. package/dist/ui-core/state/transcript-types.d.ts +4 -0
  454. package/dist/ui-core/state/transcript-types.js.map +1 -1
  455. package/dist/version.generated.d.ts +2 -2
  456. package/dist/version.generated.js +2 -2
  457. package/package.json +1 -1
  458. package/dist/classic/feed/ScrollbarGutter.d.ts +0 -9
  459. package/dist/classic/feed/ScrollbarGutter.js +0 -41
  460. package/dist/classic/feed/ScrollbarGutter.js.map +0 -1
  461. package/dist/classic/feed/scrollbar-rows.d.ts +0 -5
  462. package/dist/classic/feed/scrollbar-rows.js +0 -17
  463. package/dist/classic/feed/scrollbar-rows.js.map +0 -1
@@ -1,189 +1,129 @@
1
- import { isItemExpanded, } from "../../ui-core/state/transcript-types.js";
2
- import { presentFsReadArgs, presentOutput, presentTool, TOOL_PREVIEW_HEAD_LINES, TOOL_PREVIEW_TAIL_LINES, } from "../../ui-core/rendering/tool-presenter.js";
1
+ import { isItemExpanded } from "../../ui-core/state/transcript-types.js";
2
+ import { presentFsReadArgs, presentTool, toolStatusText } from "../../ui-core/rendering/tool-presenter.js";
3
3
  import { shouldShowToolElapsed } from "../../ui-core/rendering/duration.js";
4
- import { clipToWidth, trimTrailingSpaces } from "../render/ansi-text.js";
5
- import { adaptPresenterGlyphs } from "../render/glyphs.js";
6
- import { wrapAnsiLine } from "../render/wrap.js";
4
+ import { restoredTerminalArgs } from "../../agent/parser/terminal-args.js";
5
+ import { sanitizeDisplayText } from "../../ui-core/rendering/sanitize-display.js";
7
6
  import { parseFsReadSections } from "../../tools/fs/read-sections.js";
8
- import { middleClipText } from "../../ui-core/rendering/text-width.js";
7
+ import { clipToWidth } from "../render/ansi-text.js";
9
8
  import { layoutWidth } from "../render/measure.js";
10
- import { clipRow, COLLAPSED_LINE_ROWS, EXPANDED_LINE_ROWS, FIELD_LINE_ROWS, formatElapsed, joinMeta, separator, wrapBoundedRows, } from "./block-context.js";
11
- export const TOOL_COLLAPSED_BODY_ROWS = TOOL_PREVIEW_HEAD_LINES + TOOL_PREVIEW_TAIL_LINES + 1;
12
- export const TOOL_EXPANDED_BODY_ROWS = 40;
13
- export const TOOL_LIVE_BODY_ROWS = 8;
14
- const BODY_INDENT = 4;
15
- const FIELD_INDENT = " ";
16
- const SUMMARY_TOOLS = new Set(["fs.read"]);
17
- const STATUS_TOKEN = {
9
+ import { wrapAnsiLine } from "../render/wrap.js";
10
+ import { clipRow, formatElapsed, joinMeta, separator } from "./block-context.js";
11
+ import { appendDisclosure } from "./disclosure-lines.js";
12
+ import { classicToolLabel } from "./tool-label.js";
13
+ import { logicalOutputLines, outputBodyRows, OUTPUT_PREVIEW_LINES, PREVIEW_LINE_CHARS } from "./output-lines.js";
14
+ export const TOOL_STATUS_TOKEN = {
18
15
  queued: "muted",
19
16
  running: "activity",
20
17
  ok: "success",
21
18
  failed: "diffDel",
22
- blocked: "activity",
23
- };
24
- const META_TOKEN = {
25
- queued: "muted",
26
- running: "activity",
27
- ok: "hint",
28
- failed: "diffDel",
29
- blocked: "activity",
19
+ blocked: "diffDel",
30
20
  };
31
21
  export function toolGlyph(ctx, status) {
32
- const glyphs = ctx.glyphs;
33
- switch (status) {
34
- case "queued":
35
- return glyphs.toolQueued;
36
- case "running":
37
- return glyphs.toolRunning;
38
- case "ok":
39
- return glyphs.toolOk;
40
- case "failed":
41
- return glyphs.toolFailed;
42
- default:
43
- return glyphs.toolBlocked;
44
- }
22
+ if (status === "queued")
23
+ return ctx.glyphs.toolQueued;
24
+ if (status === "blocked")
25
+ return ctx.glyphs.toolBlocked;
26
+ return ctx.ink.unicode ? "•" : "*";
45
27
  }
46
28
  export function toolElapsed(ctx, item) {
47
29
  if (item.status === "blocked" || !shouldShowToolElapsed(item.name))
48
30
  return undefined;
49
- const end = item.endedAt;
50
31
  const open = item.status === "running" || item.status === "queued";
51
- const span = open ? ctx.now - item.timestamp : end === undefined ? -1 : end - item.timestamp;
32
+ const span = open ? ctx.now - item.timestamp : item.endedAt === undefined ? -1 : item.endedAt - item.timestamp;
52
33
  const label = formatElapsed(span);
53
- return label === "" ? undefined : label;
34
+ return label || undefined;
54
35
  }
55
36
  export function toolSuffix(ctx, item, statusLabel) {
56
- const label = item.status === "ok" ? undefined : statusLabel;
57
- const body = joinMeta(ctx, [label, toolElapsed(ctx, item)]);
58
- return body === "" ? "" : ctx.ink.fg(META_TOKEN[item.status], body);
37
+ const label = item.status === "ok" ? undefined : toolStatusText(statusLabel);
38
+ const token = item.status === "failed" || item.status === "blocked" ? "diffDel" : "hint";
39
+ const elapsed = toolElapsed(ctx, item);
40
+ return joinMeta(ctx, [label ? ctx.ink.fg(token, label) : undefined, elapsed ? ctx.ink.fg("userBorder", elapsed) : undefined]);
59
41
  }
60
42
  export function hintRows(ctx, indent, text) {
61
- const budget = Math.max(1, ctx.width - layoutWidth(indent));
62
- return wrapAnsiLine(text, budget).map((row) => clipRow(ctx, `${indent}${ctx.ink.fg("hint", row)}`));
63
- }
64
- function argLines(presented) {
65
- return (presented.argsDisplay ?? "")
66
- .split("\n")
67
- .map((line) => line.trim())
68
- .filter((line) => line.length > 0);
69
- }
70
- function toolTitle(ctx, item, presented) {
71
- const glyph = ctx.ink.fg(STATUS_TOKEN[item.status], toolGlyph(ctx, item.status));
72
- return `${glyph} ${ctx.ink.style(presented.name, { fg: "cyan", bold: true })}`;
73
- }
74
- function metaSuffix(ctx, item, presented) {
75
- const suffix = toolSuffix(ctx, item, presented.statusLabel);
76
- return suffix === "" ? "" : `${ctx.ink.fg("hint", separator(ctx))}${suffix}`;
77
- }
78
- function headline(ctx, item, presented, inline) {
79
- const title = toolTitle(ctx, item, presented);
80
- const args = inline === undefined ? "" : ` ${ctx.ink.fg("muted", `(${inline})`)}`;
81
- const meta = metaSuffix(ctx, item, presented);
82
- const line = `${title}${args}${meta}`;
83
- if (layoutWidth(line) <= ctx.width)
84
- return [line];
85
- const head = clipToWidth(`${title}${args}`, ctx.width, ctx.glyphs.ellipsis);
86
- const suffix = toolSuffix(ctx, item, presented.statusLabel);
87
- if (suffix === "")
88
- return [head];
89
- const budget = Math.max(1, ctx.width - FIELD_INDENT.length);
90
- return [head, ...wrapAnsiLine(suffix, budget).map((row) => clipRow(ctx, `${FIELD_INDENT}${row}`))];
91
- }
92
- function inlineFits(ctx, item, presented, args) {
93
- const used = layoutWidth(toolTitle(ctx, item, presented)) + layoutWidth(args) + 3;
94
- return used + layoutWidth(metaSuffix(ctx, item, presented)) <= ctx.width;
95
- }
96
- function fieldLines(ctx, label, value, token) {
97
- const prefix = `${FIELD_INDENT}${ctx.ink.fg("muted", `${label}: `)}`;
98
- const budget = Math.max(8, ctx.width - layoutWidth(prefix));
99
- return wrapBoundedRows(ctx, ctx.ink.fg(token, value), budget, FIELD_LINE_ROWS).map((row, index) => clipRow(ctx, index === 0 ? `${prefix}${row}` : `${" ".repeat(layoutWidth(prefix))}${row}`));
100
- }
101
- function fsReadHeaderLines(ctx, item, presented) {
102
- const args = presentFsReadArgs(item.argsDisplay);
103
- const lines = headline(ctx, item, presented, undefined);
104
- const files = args.files ?? [args];
105
- const sections = args.files ? parseFsReadSections(ctx.spool.tail(item.toolCallId)) : [];
106
- for (let index = 0; index < files.length; index += 1) {
107
- const file = files[index];
43
+ return wrapAnsiLine(text, Math.max(1, ctx.width - layoutWidth(indent)))
44
+ .map((row) => clipRow(ctx, `${indent}${ctx.ink.fg("hint", row)}`));
45
+ }
46
+ function inputSource(item) {
47
+ return sanitizeDisplayText(restoredTerminalArgs(item.name, item.argsDisplay)).replace(/\s+$/, "");
48
+ }
49
+ function headline(ctx, item, input = "") {
50
+ const token = TOOL_STATUS_TOKEN[item.status];
51
+ const title = `${ctx.ink.fg(token, toolGlyph(ctx, item.status))} ${ctx.ink.style(classicToolLabel(item), { fg: token, bold: true })}`;
52
+ const suffix = toolSuffix(ctx, item, presentTool(item).statusLabel);
53
+ const meta = suffix ? `${ctx.ink.fg("hint", separator(ctx))}${suffix}` : "";
54
+ const budget = Math.max(1, ctx.width - layoutWidth(meta));
55
+ const args = input ? ` ${ctx.ink.fg("inputBorder", input)}` : "";
56
+ const head = clipToWidth(`${title}${args}`, budget, ctx.glyphs.ellipsis);
57
+ return clipRow(ctx, `${head}${meta}`);
58
+ }
59
+ function readHeaderLines(ctx, item, expanded) {
60
+ const parsed = presentFsReadArgs(item.argsDisplay);
61
+ const files = parsed.files ?? [parsed];
62
+ const sections = parseFsReadSections(ctx.spool.tail(item.toolCallId));
63
+ const lines = [headline(ctx, item)];
64
+ for (const [index, file] of files.entries()) {
65
+ if (!file.path)
66
+ continue;
108
67
  const section = sections.find((entry) => entry.index === index + 1);
109
- const glyph = section ? `${section.ok ? ctx.glyphs.toolOk : ctx.glyphs.toolFailed} ` : "";
110
- const label = args.files ? `file ${index + 1}/${files.length}` : "file";
111
- const pathBudget = Math.max(8, ctx.width - FIELD_INDENT.length - label.length - 2 - layoutWidth(glyph));
112
- const path = middleClipText(file.path, pathBudget);
113
- if (file.options)
114
- lines.push(...fieldLines(ctx, "options", file.options, "inputBorder"));
115
- if (path)
116
- lines.push(...fieldLines(ctx, label, `${glyph}${path}`, section?.ok === false ? "diffDel" : "inputBorder"));
68
+ const token = section?.ok === false ? "diffDel" : "inputBorder";
69
+ const body = `${ctx.ink.fg("toolOutput", "Read")} ${ctx.ink.fg(token, file.path)}`;
70
+ const prefix = index === 0 ? ` ${ctx.glyphs.bodyBranch} ` : " ";
71
+ const width = Math.max(1, ctx.width - 4);
72
+ const rows = expanded ? wrapAnsiLine(body, width) : [clipToWidth(body, width, ctx.glyphs.ellipsis)];
73
+ for (const [row, chunk] of rows.entries())
74
+ lines.push(clipRow(ctx, `${row === 0 ? prefix : " "}${chunk}`));
75
+ }
76
+ if (expanded && item.argsDisplay.trim()) {
77
+ lines.push(...hintRows(ctx, " ", "Input"));
78
+ lines.push(...outputBodyRows(ctx, logicalOutputLines(inputSource(item)), true, { token: "inputBorder", branch: false }));
117
79
  }
118
80
  return lines;
119
81
  }
120
82
  export function toolHeaderLines(ctx, item) {
121
- const presented = presentTool(item);
83
+ const expanded = isItemExpanded(ctx.state, item);
122
84
  if (item.name === "fs.read")
123
- return fsReadHeaderLines(ctx, item, presented);
124
- const args = argLines(presented);
125
- if (args.length === 1 && inlineFits(ctx, item, presented, args[0])) {
126
- return headline(ctx, item, presented, args[0]);
85
+ return readHeaderLines(ctx, item, expanded);
86
+ const input = inputSource(item);
87
+ const first = input.split("\n", 1)[0]?.trim() ?? "";
88
+ const multiline = input.includes("\n");
89
+ const preview = first.slice(0, PREVIEW_LINE_CHARS);
90
+ const clipped = multiline || preview !== first ? `${preview} ${ctx.glyphs.ellipsis}` : preview;
91
+ const lines = [headline(ctx, item, clipped)];
92
+ const inputBudget = Math.max(0, ctx.width - layoutWidth(headline(ctx, item)) - 1);
93
+ if (expanded && input && (multiline || layoutWidth(first) > inputBudget)) {
94
+ lines.push(...hintRows(ctx, " ", "Input"));
95
+ lines.push(...outputBodyRows(ctx, logicalOutputLines(input), true, { token: "inputBorder", branch: false }));
127
96
  }
128
- const head = headline(ctx, item, presented, undefined);
129
- if (args.length === 0)
130
- return head;
131
- const budget = Math.max(8, ctx.width - FIELD_INDENT.length);
132
- const rows = args.flatMap((line) => wrapBoundedRows(ctx, ctx.ink.fg("muted", `(${line})`), budget, FIELD_LINE_ROWS));
133
- return [...head, ...rows.map((row) => trimTrailingSpaces(`${FIELD_INDENT}${row}`))];
134
- }
135
- export function outputToggleLabel(expanded) {
136
- return expanded ? "Ctrl+O to minimize" : "Ctrl+O to expand";
97
+ return lines;
137
98
  }
138
99
  function bodySource(ctx, item) {
139
- const tail = ctx.spool.tail(item.toolCallId);
140
- const detail = item.status === "blocked" ? item.reason : item.summary;
141
- return tail.trim().length > 0 ? tail : (detail ?? "");
100
+ const output = ctx.spool.tail(item.toolCallId);
101
+ return output.trim() ? output : (item.status === "blocked" ? item.reason : item.summary) ?? "";
142
102
  }
143
103
  export function buildToolBodyLines(ctx, item, options = {}) {
144
104
  const expanded = isItemExpanded(ctx.state, item);
145
- const indent = " ".repeat(BODY_INDENT);
146
105
  const failed = item.status === "failed" || item.status === "blocked";
147
- if (SUMMARY_TOOLS.has(item.name) && !expanded && !failed) {
148
- return hintRows(ctx, FIELD_INDENT, outputToggleLabel(false));
149
- }
150
- const source = bodySource(ctx, item);
151
- if (source.trim().length === 0) {
152
- return hintRows(ctx, indent, outputToggleLabel(expanded));
153
- }
154
- const presented = presentOutput(source, ctx.spool.state(item.toolCallId), expanded, item.name);
155
- const collapsedRows = item.name.startsWith("terminal.") ? 12 : TOOL_COLLAPSED_BODY_ROWS;
156
- const cap = options.maxRows ?? (expanded ? TOOL_EXPANDED_BODY_ROWS : collapsedRows);
157
- const kept = presented.lines.slice(0, Math.max(0, cap));
158
- const hidden = presented.lines.length - kept.length;
159
- const branch = ctx.ink.fg("hint", ` ${ctx.glyphs.bodyBranch} `);
160
- const budget = Math.max(1, ctx.width - BODY_INDENT);
161
- const lineRows = expanded ? EXPANDED_LINE_ROWS : COLLAPSED_LINE_ROWS;
162
- const lines = [];
163
- for (const [index, raw] of kept.entries()) {
164
- const painted = ctx.ink.fg("toolText", adaptPresenterGlyphs(raw, ctx.ink.unicode));
165
- for (const [row, chunk] of wrapBoundedRows(ctx, painted, budget, lineRows).entries()) {
166
- const prefix = index === 0 && row === 0 ? branch : indent;
167
- lines.push(trimTrailingSpaces(`${prefix}${chunk}`));
168
- }
106
+ const source = logicalOutputLines(bodySource(ctx, item), item.name);
107
+ const hiddenRead = item.name === "fs.read" && !expanded && !failed;
108
+ const lines = hiddenRead ? [] : outputBodyRows(ctx, source, expanded, { maxLines: options.maxRows ?? OUTPUT_PREVIEW_LINES });
109
+ const spoolState = ctx.spool.state(item.toolCallId);
110
+ const notice = ctx.spool.notice?.(item.toolCallId);
111
+ if (expanded && notice)
112
+ lines.push(...hintRows(ctx, " ", notice));
113
+ if (expanded && spoolState?.truncated && !notice)
114
+ lines.push(...hintRows(ctx, " ", "Earlier output is saved in the artifact"));
115
+ if (expanded && (notice?.startsWith("Large output") || spoolState?.truncated && !notice) && item.artifactPath) {
116
+ appendDisclosure(ctx, lines, true, { label: "+ full output", chord: "/output", action: "output" });
169
117
  }
170
- if (presented.truncatedNotice) {
171
- lines.push(...hintRows(ctx, indent, presented.truncatedNotice));
118
+ if (source.length === 0 && !hiddenRead) {
119
+ const open = item.status === "queued" || item.status === "running";
120
+ lines.push(...outputBodyRows(ctx, [open ? "waiting for output" : "(no output)"], false, { token: "hint" }));
172
121
  }
173
- const body = joinMeta(ctx, [
174
- hidden > 0
175
- ? `${ctx.glyphs.ellipsis} +${hidden} line${hidden === 1 ? "" : "s"}`
176
- : undefined,
177
- outputToggleLabel(expanded),
178
- item.artifactPath ? "saved" : undefined,
179
- ]);
180
- lines.push(...hintRows(ctx, indent, body));
122
+ appendDisclosure(ctx, lines, expanded, { hidden: hiddenRead || spoolState?.truncated ? 0 : Math.max(0, source.length - (options.maxRows ?? OUTPUT_PREVIEW_LINES)) });
181
123
  return lines;
182
124
  }
183
125
  export function buildToolLines(ctx, item, options = {}) {
184
- return [
185
- ...toolHeaderLines(ctx, item),
186
- ...buildToolBodyLines(ctx, item, options),
187
- ];
126
+ const header = toolHeaderLines(ctx, item);
127
+ return [...header, ...buildToolBodyLines({ ...ctx, lineOffset: header.length }, item, options)];
188
128
  }
189
129
  //# sourceMappingURL=tool-lines.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-lines.js","sourceRoot":"","sources":["../../../src/classic/blocks/tool-lines.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-lines.js","sourceRoot":"","sources":["../../../src/classic/blocks/tool-lines.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,13 @@
1
1
  import { turnSummaryLabel } from "../../ui-core/rendering/duration.js";
2
+ import { lineChangeLabels } from "../../ui-core/rendering/line-change-labels.js";
2
3
  import { clipRow } from "./block-context.js";
3
4
  export function buildTurnSummaryLines(ctx, item) {
4
5
  const mark = ctx.ink.unicode ? "✻" : "*";
5
- return [clipRow(ctx, ctx.ink.fg("muted", `${mark} ${turnSummaryLabel(item.durationMs, item.status)}`))];
6
+ const timing = ctx.ink.fg("muted", `${mark} ${turnSummaryLabel(item.durationMs, item.status)}`);
7
+ const changes = lineChangeLabels(item.changes);
8
+ const counts = changes
9
+ ? `${ctx.ink.fg("muted", " · ")}${ctx.ink.fg("success", changes.added)} ${ctx.ink.fg("diffDel", changes.removed)}`
10
+ : "";
11
+ return [clipRow(ctx, timing + counts)];
6
12
  }
7
13
  //# sourceMappingURL=turn-summary-lines.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn-summary-lines.js","sourceRoot":"","sources":["../../../src/classic/blocks/turn-summary-lines.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAEhE,MAAM,UAAU,qBAAqB,CAAC,GAAiB,EAAE,IAAqB;IAC5E,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1G,CAAC"}
1
+ {"version":3,"file":"turn-summary-lines.js","sourceRoot":"","sources":["../../../src/classic/blocks/turn-summary-lines.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAEhE,MAAM,UAAU,qBAAqB,CAAC,GAAiB,EAAE,IAAqB;IAC5E,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO;QACpB,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QAClH,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -2,26 +2,20 @@ import { sanitizeDisplayText } from "../../ui-core/rendering/sanitize-display.js
2
2
  import { wrapUserPrompt } from "../../ui-core/rendering/user-message-wrap.js";
3
3
  import { sealStyle } from "../render/ansi-text.js";
4
4
  import { clipRow } from "./block-context.js";
5
+ import { appendDisclosure } from "./disclosure-lines.js";
5
6
  export const USER_COLLAPSE_ROWS = 6;
6
7
  const USER_KEPT_ROWS = 5;
7
- const TEXT_COLUMN = 3;
8
- const RIGHT_PAD = 1;
9
- function userRow(ctx, body) {
10
- const rail = ctx.ink.fg("userBorder", ctx.glyphs.userRail);
11
- const row = clipRow(ctx, `${rail} ${body}`);
12
- return ctx.ink.richColor ? ctx.ink.band(row, ctx.width, { bg: "userBg" }) : sealStyle(row);
13
- }
14
8
  export function buildUserLines(ctx, item) {
15
9
  const text = sanitizeDisplayText(item.text).replace(/\s+$/, "");
16
- const wrapped = wrapUserPrompt(text, ctx.width, TEXT_COLUMN + RIGHT_PAD);
17
- const body = wrapped.length > 0 ? wrapped : [""];
18
- const collapse = body.length > USER_COLLAPSE_ROWS;
10
+ const body = wrapUserPrompt(text, ctx.width, 3);
11
+ const expanded = ctx.state.itemOverrides.get(item.id) ?? false;
12
+ const collapse = !expanded && body.length > USER_COLLAPSE_ROWS;
19
13
  const shown = collapse ? body.slice(0, USER_KEPT_ROWS) : body;
20
- const lines = shown.map((line) => userRow(ctx, ctx.ink.fg("foreground", line)));
21
- if (collapse) {
22
- const hidden = body.length - USER_KEPT_ROWS;
23
- lines.push(userRow(ctx, ctx.ink.fg("muted", `${ctx.glyphs.ellipsis} +${hidden} line${hidden === 1 ? "" : "s"}`)));
14
+ const mark = ctx.ink.fg("userBorder", ctx.ink.unicode ? "› " : "> ");
15
+ const lines = shown.map((line, index) => clipRow(ctx, `${index === 0 ? mark : " "}${ctx.ink.fg("foreground", line)}`));
16
+ if (collapse || expanded && body.length > USER_COLLAPSE_ROWS) {
17
+ appendDisclosure(ctx, lines, expanded, { hidden: body.length - shown.length, indent: 2, chord: "Enter" });
24
18
  }
25
- return lines;
19
+ return lines.map((row) => ctx.ink.richColor ? ctx.ink.band(row, ctx.width, { bg: "userBg" }) : sealStyle(row));
26
20
  }
27
21
  //# sourceMappingURL=user-lines.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-lines.js","sourceRoot":"","sources":["../../../src/classic/blocks/user-lines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,SAAS,OAAO,CAAC,GAAiB,EAAE,IAAY;IAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAiB,EAAE,IAAc;IAC9D,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC;IAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAChF,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;QAC5C,KAAK,CAAC,IAAI,CACR,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,QAAQ,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CACtG,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"user-lines.js","sourceRoot":"","sources":["../../../src/classic/blocks/user-lines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,cAAc,CAAC,GAAiB,EAAE,IAAc;IAC9D,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;IAC/D,MAAM,QAAQ,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC;IAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACxH,IAAI,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAC7D,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACjH,CAAC"}
@@ -17,6 +17,7 @@ import { getLogsDirRoot } from "../../store/paths.js";
17
17
  import { setAllowInteractiveStdinInherit } from "../../tools/shell.js";
18
18
  import { ClassicApp } from "../app/ClassicApp.js";
19
19
  import { createClassicAppWiring } from "../app/app-wiring.js";
20
+ import { CLASSIC_MAX_FPS } from "../app/paint-pacing.js";
20
21
  import { createOsc52Renderer } from "./osc52-renderer.js";
21
22
  import { createClassicRenderer } from "./renderer-handle.js";
22
23
  import { createTerminalSession } from "./terminal-session.js";
@@ -30,6 +31,7 @@ export const CLASSIC_INK_OPTIONS = {
30
31
  alternateScreen: false,
31
32
  concurrent: false,
32
33
  incrementalRendering: true,
34
+ maxFps: CLASSIC_MAX_FPS * 2,
33
35
  };
34
36
  export async function startClassic(options = {}) {
35
37
  setAllowInteractiveStdinInherit(false);
@@ -1 +1 @@
1
- {"version":3,"file":"start-classic.js","sourceRoot":"","sources":["../../../src/classic/bootstrap/start-classic.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start-classic.js","sourceRoot":"","sources":["../../../src/classic/bootstrap/start-classic.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { ReactNode } from "react";
1
+ import { type ReactNode } from "react";
2
+ import type { ComposerPointerView } from "./composer-pointer.js";
2
3
  import type { InkTheme } from "../render/ink-theme.js";
3
4
  import type { ComposerFrame } from "./composer-frame.js";
4
5
  import type { EditorState } from "./editor-model.js";
@@ -10,6 +11,7 @@ export interface ComposerProps {
10
11
  readonly scrollTop?: number | undefined;
11
12
  readonly onScrollTop?: ((top: number) => void) | undefined;
12
13
  readonly accentSpans?: readonly EditorSpan[] | undefined;
14
+ readonly onLayout?: ((view: ComposerPointerView | undefined) => void) | undefined;
13
15
  }
14
16
  export declare function composerTopBorder(ink: InkTheme, frame: ComposerFrame): string;
15
- export declare function Composer(props: ComposerProps): ReactNode;
17
+ export declare const Composer: import("react").MemoExoticComponent<(props: ComposerProps) => ReactNode>;
@@ -1,12 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from "ink";
3
+ import { memo, useEffect, useMemo } from "react";
3
4
  import { clipToWidth, padToWidth } from "../render/ansi-text.js";
4
5
  import { layoutWidth } from "../render/measure.js";
5
6
  import { layoutEditor, renderEditor, scrollTop, } from "./editor-view.js";
6
7
  export function composerTopBorder(ink, frame) {
7
8
  const glyphs = ink.glyphs;
8
9
  const inner = Math.max(0, frame.width - 2);
9
- const paint = (text) => ink.fg(frame.borderColor, text);
10
+ const paint = (text) => ink.hex(frame.borderColor, text);
10
11
  if (inner === 0)
11
12
  return paint(`${glyphs.boxTopLeft}${glyphs.boxTopRight}`);
12
13
  const meta = clipToWidth(frame.meta, Math.max(0, inner - 4), "");
@@ -23,14 +24,19 @@ export function composerTopBorder(ink, frame) {
23
24
  function bottomBorder(ink, frame) {
24
25
  const glyphs = ink.glyphs;
25
26
  const inner = Math.max(0, frame.width - 2);
26
- return ink.fg(frame.borderColor, `${glyphs.boxBottomLeft}${glyphs.rule.repeat(inner)}${glyphs.boxBottomRight}`);
27
+ return ink.hex(frame.borderColor, `${glyphs.boxBottomLeft}${glyphs.rule.repeat(inner)}${glyphs.boxBottomRight}`);
27
28
  }
28
- export function Composer(props) {
29
+ export const Composer = memo(function Composer(props) {
29
30
  const { ink, frame, state } = props;
30
- const layout = layoutEditor(state, frame.textWidth);
31
+ const layout = useMemo(() => layoutEditor(state, frame.textWidth), [state, frame.textWidth]);
31
32
  const top = scrollTop(layout, frame.textRows, props.scrollTop ?? 0);
32
33
  if (props.onScrollTop && top !== props.scrollTop)
33
34
  props.onScrollTop(top);
35
+ const onLayout = props.onLayout;
36
+ useEffect(() => {
37
+ onLayout?.({ state, layout, scrollTop: top, height: frame.textRows });
38
+ return () => onLayout?.(undefined);
39
+ }, [onLayout, state, layout, top, frame.textRows]);
34
40
  const rendered = renderEditor({
35
41
  state,
36
42
  layout,
@@ -42,7 +48,7 @@ export function Composer(props) {
42
48
  ...(props.accentSpans ? { accentSpans: props.accentSpans } : {}),
43
49
  });
44
50
  const glyphs = ink.glyphs;
45
- const vertical = ink.fg(frame.borderColor, glyphs.boxVertical);
51
+ const vertical = ink.hex(frame.borderColor, glyphs.boxVertical);
46
52
  return (_jsxs(Box, { flexDirection: "column", width: frame.width, flexShrink: 0, children: [_jsx(Text, { wrap: "truncate", children: composerTopBorder(ink, frame) }), rendered.rows.map((row, index) => {
47
53
  const clipped = (index === 0 && rendered.clippedAbove) ||
48
54
  (index === rendered.rows.length - 1 && rendered.clippedBelow);
@@ -52,5 +58,5 @@ export function Composer(props) {
52
58
  const inner = padToWidth(`${mark}${text}${clipMark}`, frame.width - 2);
53
59
  return (_jsx(Text, { wrap: "truncate", children: `${vertical}${inner}${vertical}` }, `composer-row-${index}`));
54
60
  }), _jsx(Text, { wrap: "truncate", children: bottomBorder(ink, frame) })] }));
55
- }
61
+ });
56
62
  //# sourceMappingURL=Composer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../../src/classic/chrome/Composer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../../src/classic/chrome/Composer.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { type ClipboardImageCapture } from "../../attachments/clipboard-image.js
4
4
  import type { ActionId } from "../../ui-core/actions/action-id.js";
5
5
  import { type CompletionMenu } from "../../ui-core/composer/completion.js";
6
6
  import { type PastePlaceholderEntry } from "../../ui-core/composer/paste-placeholder.js";
7
+ import { PromptHistory } from "../../ui-core/composer/prompt-history.js";
7
8
  import type { EditorSpan } from "./editor-view.js";
8
9
  import { type EditorState } from "./editor-model.js";
9
10
  export interface McpMentionTarget {
@@ -29,6 +30,7 @@ export interface ComposerControllerDeps {
29
30
  readonly onJumpTop: () => void;
30
31
  readonly captureClipboardImage?: (() => ClipboardImageCapture) | undefined;
31
32
  readonly now?: (() => number) | undefined;
33
+ readonly promptHistory?: PromptHistory | undefined;
32
34
  }
33
35
  export declare class ComposerController {
34
36
  private readonly deps;
@@ -43,6 +45,7 @@ export declare class ComposerController {
43
45
  subscribe: (listener: () => void) => (() => void);
44
46
  setTextWidth(width: number): void;
45
47
  get text(): string;
48
+ setCursor(offset: number): void;
46
49
  expand(value: string): string;
47
50
  menuOpen(): boolean;
48
51
  menuItemCount(): number;