@pentoshi/clai 3.9.2 → 3.9.4

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 (407) hide show
  1. package/dist/agent/compaction-attempt.d.ts +22 -0
  2. package/dist/agent/compaction-attempt.js +69 -0
  3. package/dist/agent/compaction-attempt.js.map +1 -0
  4. package/dist/agent/compaction-summary.d.ts +27 -0
  5. package/dist/agent/compaction-summary.js +62 -0
  6. package/dist/agent/compaction-summary.js.map +1 -1
  7. package/dist/agent/context-breakdown.d.ts +2 -0
  8. package/dist/agent/context-breakdown.js +37 -0
  9. package/dist/agent/context-breakdown.js.map +1 -1
  10. package/dist/agent/context-manager.d.ts +7 -1
  11. package/dist/agent/context-manager.js +64 -15
  12. package/dist/agent/context-manager.js.map +1 -1
  13. package/dist/agent/continue-orient.d.ts +8 -0
  14. package/dist/agent/continue-orient.js +26 -3
  15. package/dist/agent/continue-orient.js.map +1 -1
  16. package/dist/agent/durable-envelope.d.ts +39 -0
  17. package/dist/agent/durable-envelope.js +195 -0
  18. package/dist/agent/durable-envelope.js.map +1 -0
  19. package/dist/agent/events.d.ts +21 -0
  20. package/dist/agent/loop-guard.d.ts +13 -5
  21. package/dist/agent/loop-guard.js +114 -1
  22. package/dist/agent/loop-guard.js.map +1 -1
  23. package/dist/agent/outcomes.d.ts +29 -0
  24. package/dist/agent/outcomes.js +118 -3
  25. package/dist/agent/outcomes.js.map +1 -1
  26. package/dist/agent/plan-decision.js +8 -3
  27. package/dist/agent/plan-decision.js.map +1 -1
  28. package/dist/agent/plan-tool.d.ts +5 -0
  29. package/dist/agent/plan-tool.js +166 -6
  30. package/dist/agent/plan-tool.js.map +1 -1
  31. package/dist/agent/reliability-policy.d.ts +11 -6
  32. package/dist/agent/reliability-policy.js +19 -13
  33. package/dist/agent/reliability-policy.js.map +1 -1
  34. package/dist/agent/request-budget.d.ts +24 -0
  35. package/dist/agent/request-budget.js +59 -0
  36. package/dist/agent/request-budget.js.map +1 -0
  37. package/dist/agent/responder-context.js +2 -2
  38. package/dist/agent/responder-context.js.map +1 -1
  39. package/dist/agent/responder-parent.d.ts +30 -0
  40. package/dist/agent/responder-parent.js +82 -0
  41. package/dist/agent/responder-parent.js.map +1 -0
  42. package/dist/agent/runner.d.ts +15 -2
  43. package/dist/agent/runner.js +766 -213
  44. package/dist/agent/runner.js.map +1 -1
  45. package/dist/agent/scope-context.d.ts +5 -0
  46. package/dist/agent/scope-context.js +7 -1
  47. package/dist/agent/scope-context.js.map +1 -1
  48. package/dist/agent/session-policy.js +1 -0
  49. package/dist/agent/session-policy.js.map +1 -1
  50. package/dist/agent/stop-summary.js +13 -7
  51. package/dist/agent/stop-summary.js.map +1 -1
  52. package/dist/agent/task-analyzer.js +7 -3
  53. package/dist/agent/task-analyzer.js.map +1 -1
  54. package/dist/agent/task-evidence.js +2 -0
  55. package/dist/agent/task-evidence.js.map +1 -1
  56. package/dist/agent/task-sync.d.ts +11 -0
  57. package/dist/agent/task-sync.js +31 -0
  58. package/dist/agent/task-sync.js.map +1 -1
  59. package/dist/agent/tool-call-parser.d.ts +6 -13
  60. package/dist/agent/tool-call-parser.js +186 -82
  61. package/dist/agent/tool-call-parser.js.map +1 -1
  62. package/dist/agent/tool-history.d.ts +8 -2
  63. package/dist/agent/tool-history.js +8 -1
  64. package/dist/agent/tool-history.js.map +1 -1
  65. package/dist/agent/turn-outcome.d.ts +4 -1
  66. package/dist/agent/turn-outcome.js +16 -2
  67. package/dist/agent/turn-outcome.js.map +1 -1
  68. package/dist/app/adapters/agent-event-adapter.js +27 -0
  69. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  70. package/dist/app/adapters/current-agent-adapter.js +1 -0
  71. package/dist/app/adapters/current-agent-adapter.js.map +1 -1
  72. package/dist/app/adapters/current-interactive-sessions-adapter.d.ts +4 -0
  73. package/dist/app/adapters/current-interactive-sessions-adapter.js +11 -0
  74. package/dist/app/adapters/current-interactive-sessions-adapter.js.map +1 -0
  75. package/dist/app/adapters/current-jobs-adapter.js +4 -3
  76. package/dist/app/adapters/current-jobs-adapter.js.map +1 -1
  77. package/dist/app/adapters/current-store-adapter.js +4 -3
  78. package/dist/app/adapters/current-store-adapter.js.map +1 -1
  79. package/dist/app/adapters/current-updates-adapter.d.ts +1 -1
  80. package/dist/app/adapters/current-updates-adapter.js +34 -5
  81. package/dist/app/adapters/current-updates-adapter.js.map +1 -1
  82. package/dist/app/adapters/quiet-meta-tools.js +2 -1
  83. package/dist/app/adapters/quiet-meta-tools.js.map +1 -1
  84. package/dist/app/controllers/cancel-all-result.d.ts +8 -0
  85. package/dist/app/controllers/cancel-all-result.js +32 -0
  86. package/dist/app/controllers/cancel-all-result.js.map +1 -0
  87. package/dist/app/controllers/job-controller.d.ts +4 -3
  88. package/dist/app/controllers/job-controller.js +9 -6
  89. package/dist/app/controllers/job-controller.js.map +1 -1
  90. package/dist/app/controllers/plan-controller.js +14 -0
  91. package/dist/app/controllers/plan-controller.js.map +1 -1
  92. package/dist/app/controllers/responder-settlement.js +2 -2
  93. package/dist/app/controllers/responder-settlement.js.map +1 -1
  94. package/dist/app/controllers/session-compact-helper.d.ts +23 -1
  95. package/dist/app/controllers/session-compact-helper.js +117 -7
  96. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  97. package/dist/app/controllers/session-context-usage.d.ts +24 -0
  98. package/dist/app/controllers/session-context-usage.js +89 -0
  99. package/dist/app/controllers/session-context-usage.js.map +1 -0
  100. package/dist/app/controllers/session-controller.d.ts +25 -17
  101. package/dist/app/controllers/session-controller.js +142 -128
  102. package/dist/app/controllers/session-controller.js.map +1 -1
  103. package/dist/app/controllers/session-prompt-queue.d.ts +3 -0
  104. package/dist/app/controllers/session-prompt-queue.js +20 -1
  105. package/dist/app/controllers/session-prompt-queue.js.map +1 -1
  106. package/dist/app/controllers/session-responder.js +16 -6
  107. package/dist/app/controllers/session-responder.js.map +1 -1
  108. package/dist/app/controllers/session-turn-request.d.ts +18 -0
  109. package/dist/app/controllers/session-turn-request.js +31 -0
  110. package/dist/app/controllers/session-turn-request.js.map +1 -0
  111. package/dist/app/controllers/turn-continuation.d.ts +14 -0
  112. package/dist/app/controllers/turn-continuation.js +46 -0
  113. package/dist/app/controllers/turn-continuation.js.map +1 -0
  114. package/dist/app/events/app-event.d.ts +21 -0
  115. package/dist/app/events/app-event.js +1 -0
  116. package/dist/app/events/app-event.js.map +1 -1
  117. package/dist/app/ports/agent-port.d.ts +7 -0
  118. package/dist/app/ports/interactive-sessions-port.d.ts +21 -0
  119. package/dist/app/ports/interactive-sessions-port.js +9 -0
  120. package/dist/app/ports/interactive-sessions-port.js.map +1 -0
  121. package/dist/app/ports/jobs-port.d.ts +4 -3
  122. package/dist/app/ports/persistence-port.d.ts +11 -0
  123. package/dist/app/ports/updates-port.d.ts +8 -0
  124. package/dist/attachments/service.js +13 -2
  125. package/dist/attachments/service.js.map +1 -1
  126. package/dist/commands/providers.js +13 -10
  127. package/dist/commands/providers.js.map +1 -1
  128. package/dist/commands/update.d.ts +4 -0
  129. package/dist/commands/update.js +14 -0
  130. package/dist/commands/update.js.map +1 -1
  131. package/dist/index.js +21 -8
  132. package/dist/index.js.map +1 -1
  133. package/dist/interactive-session/artifact-writer.d.ts +54 -0
  134. package/dist/interactive-session/artifact-writer.js +161 -0
  135. package/dist/interactive-session/artifact-writer.js.map +1 -0
  136. package/dist/interactive-session/cleanup.d.ts +36 -0
  137. package/dist/interactive-session/cleanup.js +157 -0
  138. package/dist/interactive-session/cleanup.js.map +1 -0
  139. package/dist/interactive-session/config.d.ts +118 -0
  140. package/dist/interactive-session/config.js +141 -0
  141. package/dist/interactive-session/config.js.map +1 -0
  142. package/dist/interactive-session/input-policy.d.ts +41 -0
  143. package/dist/interactive-session/input-policy.js +163 -0
  144. package/dist/interactive-session/input-policy.js.map +1 -0
  145. package/dist/interactive-session/manager.d.ts +107 -0
  146. package/dist/interactive-session/manager.js +927 -0
  147. package/dist/interactive-session/manager.js.map +1 -0
  148. package/dist/interactive-session/output-store.d.ts +81 -0
  149. package/dist/interactive-session/output-store.js +239 -0
  150. package/dist/interactive-session/output-store.js.map +1 -0
  151. package/dist/interactive-session/output-view.d.ts +20 -0
  152. package/dist/interactive-session/output-view.js +142 -0
  153. package/dist/interactive-session/output-view.js.map +1 -0
  154. package/dist/interactive-session/recovery-journal.d.ts +55 -0
  155. package/dist/interactive-session/recovery-journal.js +115 -0
  156. package/dist/interactive-session/recovery-journal.js.map +1 -0
  157. package/dist/interactive-session/registry.d.ts +59 -0
  158. package/dist/interactive-session/registry.js +170 -0
  159. package/dist/interactive-session/registry.js.map +1 -0
  160. package/dist/interactive-session/runtime.d.ts +107 -0
  161. package/dist/interactive-session/runtime.js +191 -0
  162. package/dist/interactive-session/runtime.js.map +1 -0
  163. package/dist/interactive-session/session-runtime.d.ts +50 -0
  164. package/dist/interactive-session/session-runtime.js +63 -0
  165. package/dist/interactive-session/session-runtime.js.map +1 -0
  166. package/dist/interactive-session/streaming-redactor.d.ts +53 -0
  167. package/dist/interactive-session/streaming-redactor.js +263 -0
  168. package/dist/interactive-session/streaming-redactor.js.map +1 -0
  169. package/dist/interactive-session/telemetry.d.ts +30 -0
  170. package/dist/interactive-session/telemetry.js +47 -0
  171. package/dist/interactive-session/telemetry.js.map +1 -0
  172. package/dist/interactive-session/transport-factory.d.ts +8 -0
  173. package/dist/interactive-session/transport-factory.js +16 -0
  174. package/dist/interactive-session/transport-factory.js.map +1 -0
  175. package/dist/interactive-session/transport-node-pty.d.ts +49 -0
  176. package/dist/interactive-session/transport-node-pty.js +219 -0
  177. package/dist/interactive-session/transport-node-pty.js.map +1 -0
  178. package/dist/interactive-session/transport-pipe.d.ts +9 -0
  179. package/dist/interactive-session/transport-pipe.js +215 -0
  180. package/dist/interactive-session/transport-pipe.js.map +1 -0
  181. package/dist/interactive-session/transport.d.ts +104 -0
  182. package/dist/interactive-session/transport.js +89 -0
  183. package/dist/interactive-session/transport.js.map +1 -0
  184. package/dist/interactive-session/types.d.ts +254 -0
  185. package/dist/interactive-session/types.js +191 -0
  186. package/dist/interactive-session/types.js.map +1 -0
  187. package/dist/llm/adapters/anthropic-tools.d.ts +14 -1
  188. package/dist/llm/adapters/anthropic-tools.js +36 -5
  189. package/dist/llm/adapters/anthropic-tools.js.map +1 -1
  190. package/dist/llm/adapters/gemini-tools.d.ts +3 -1
  191. package/dist/llm/adapters/gemini-tools.js +5 -2
  192. package/dist/llm/adapters/gemini-tools.js.map +1 -1
  193. package/dist/llm/adapters/ollama-tools.js +8 -3
  194. package/dist/llm/adapters/ollama-tools.js.map +1 -1
  195. package/dist/llm/adapters/openai-tools.js +8 -1
  196. package/dist/llm/adapters/openai-tools.js.map +1 -1
  197. package/dist/llm/agentrouter.js +2 -0
  198. package/dist/llm/agentrouter.js.map +1 -1
  199. package/dist/llm/anthropic.d.ts +8 -0
  200. package/dist/llm/anthropic.js +68 -9
  201. package/dist/llm/anthropic.js.map +1 -1
  202. package/dist/llm/aws-mantle.js +60 -12
  203. package/dist/llm/aws-mantle.js.map +1 -1
  204. package/dist/llm/bynara.js +2 -0
  205. package/dist/llm/bynara.js.map +1 -1
  206. package/dist/llm/capabilities.d.ts +7 -0
  207. package/dist/llm/capabilities.js +22 -0
  208. package/dist/llm/capabilities.js.map +1 -1
  209. package/dist/llm/gemini.d.ts +3 -0
  210. package/dist/llm/gemini.js +71 -11
  211. package/dist/llm/gemini.js.map +1 -1
  212. package/dist/llm/groq.d.ts +20 -1
  213. package/dist/llm/groq.js +32 -4
  214. package/dist/llm/groq.js.map +1 -1
  215. package/dist/llm/http.d.ts +29 -0
  216. package/dist/llm/http.js +122 -29
  217. package/dist/llm/http.js.map +1 -1
  218. package/dist/llm/kimchi.js +2 -0
  219. package/dist/llm/kimchi.js.map +1 -1
  220. package/dist/llm/nvidia.js +2 -0
  221. package/dist/llm/nvidia.js.map +1 -1
  222. package/dist/llm/ollama.d.ts +5 -0
  223. package/dist/llm/ollama.js +53 -6
  224. package/dist/llm/ollama.js.map +1 -1
  225. package/dist/llm/openai.js +2 -0
  226. package/dist/llm/openai.js.map +1 -1
  227. package/dist/llm/openrouter.js +2 -0
  228. package/dist/llm/openrouter.js.map +1 -1
  229. package/dist/llm/qwen-cloud.js +2 -0
  230. package/dist/llm/qwen-cloud.js.map +1 -1
  231. package/dist/llm/router.d.ts +16 -0
  232. package/dist/llm/router.js +79 -23
  233. package/dist/llm/router.js.map +1 -1
  234. package/dist/llm/sampling.d.ts +32 -0
  235. package/dist/llm/sampling.js +48 -0
  236. package/dist/llm/sampling.js.map +1 -0
  237. package/dist/llm/stream-progress.d.ts +4 -0
  238. package/dist/llm/stream-progress.js +43 -0
  239. package/dist/llm/stream-progress.js.map +1 -0
  240. package/dist/llm/system-messages.d.ts +29 -0
  241. package/dist/llm/system-messages.js +51 -0
  242. package/dist/llm/system-messages.js.map +1 -0
  243. package/dist/llm/token-usage.d.ts +4 -1
  244. package/dist/llm/token-usage.js +56 -4
  245. package/dist/llm/token-usage.js.map +1 -1
  246. package/dist/llm/tool-protocol.js +30 -0
  247. package/dist/llm/tool-protocol.js.map +1 -1
  248. package/dist/os/process-identity.d.ts +46 -0
  249. package/dist/os/process-identity.js +147 -0
  250. package/dist/os/process-identity.js.map +1 -0
  251. package/dist/os/process-tree.d.ts +15 -0
  252. package/dist/os/process-tree.js +77 -0
  253. package/dist/os/process-tree.js.map +1 -0
  254. package/dist/prompts/embedded.js +1 -1
  255. package/dist/prompts/embedded.js.map +1 -1
  256. package/dist/prompts/system.agent.md +13 -12
  257. package/dist/repl/prompt-line.d.ts +5 -0
  258. package/dist/repl/prompt-line.js +7 -1
  259. package/dist/repl/prompt-line.js.map +1 -1
  260. package/dist/repl.js +71 -41
  261. package/dist/repl.js.map +1 -1
  262. package/dist/safety/classifier.js +98 -44
  263. package/dist/safety/classifier.js.map +1 -1
  264. package/dist/safety/engagement-policy.d.ts +8 -0
  265. package/dist/safety/engagement-policy.js +52 -7
  266. package/dist/safety/engagement-policy.js.map +1 -1
  267. package/dist/safety/patterns.d.ts +44 -0
  268. package/dist/safety/patterns.js +168 -37
  269. package/dist/safety/patterns.js.map +1 -1
  270. package/dist/store/config.d.ts +9 -1
  271. package/dist/store/config.js +51 -1
  272. package/dist/store/config.js.map +1 -1
  273. package/dist/store/history-index.d.ts +12 -0
  274. package/dist/store/history-index.js +47 -18
  275. package/dist/store/history-index.js.map +1 -1
  276. package/dist/store/history.d.ts +5 -2
  277. package/dist/store/history.js +153 -62
  278. package/dist/store/history.js.map +1 -1
  279. package/dist/store/plan.d.ts +81 -5
  280. package/dist/store/plan.js +406 -46
  281. package/dist/store/plan.js.map +1 -1
  282. package/dist/store/redaction-cache.d.ts +12 -0
  283. package/dist/store/redaction-cache.js +51 -0
  284. package/dist/store/redaction-cache.js.map +1 -0
  285. package/dist/store/responder-settlement.d.ts +5 -1
  286. package/dist/store/responder-settlement.js +42 -30
  287. package/dist/store/responder-settlement.js.map +1 -1
  288. package/dist/store/scope.js +36 -27
  289. package/dist/store/scope.js.map +1 -1
  290. package/dist/store/task-transitions.d.ts +19 -0
  291. package/dist/store/task-transitions.js +46 -0
  292. package/dist/store/task-transitions.js.map +1 -0
  293. package/dist/tools/capabilities.js +33 -18
  294. package/dist/tools/capabilities.js.map +1 -1
  295. package/dist/tools/command-intent.d.ts +24 -0
  296. package/dist/tools/command-intent.js +158 -4
  297. package/dist/tools/command-intent.js.map +1 -1
  298. package/dist/tools/definitions.d.ts +5 -1
  299. package/dist/tools/definitions.js +257 -21
  300. package/dist/tools/definitions.js.map +1 -1
  301. package/dist/tools/fs.d.ts +16 -0
  302. package/dist/tools/fs.js +122 -46
  303. package/dist/tools/fs.js.map +1 -1
  304. package/dist/tools/image.js +1 -1
  305. package/dist/tools/image.js.map +1 -1
  306. package/dist/tools/interactive-session-tools.d.ts +11 -0
  307. package/dist/tools/interactive-session-tools.js +261 -0
  308. package/dist/tools/interactive-session-tools.js.map +1 -0
  309. package/dist/tools/jobs.d.ts +78 -4
  310. package/dist/tools/jobs.js +486 -127
  311. package/dist/tools/jobs.js.map +1 -1
  312. package/dist/tools/net-ping-sweep.d.ts +3 -1
  313. package/dist/tools/net-ping-sweep.js +64 -26
  314. package/dist/tools/net-ping-sweep.js.map +1 -1
  315. package/dist/tools/nmap-runner.js +5 -2
  316. package/dist/tools/nmap-runner.js.map +1 -1
  317. package/dist/tools/pdf.js +50 -7
  318. package/dist/tools/pdf.js.map +1 -1
  319. package/dist/tools/registry.js +158 -96
  320. package/dist/tools/registry.js.map +1 -1
  321. package/dist/tools/shell.d.ts +24 -2
  322. package/dist/tools/shell.js +113 -28
  323. package/dist/tools/shell.js.map +1 -1
  324. package/dist/tools/tool-types.d.ts +2 -0
  325. package/dist/tools/validate.d.ts +8 -5
  326. package/dist/tools/validate.js +177 -7
  327. package/dist/tools/validate.js.map +1 -1
  328. package/dist/tools/wordlists.js +69 -17
  329. package/dist/tools/wordlists.js.map +1 -1
  330. package/dist/tui/state.d.ts +4 -0
  331. package/dist/tui/state.js +88 -2
  332. package/dist/tui/state.js.map +1 -1
  333. package/dist/tui-v2/actions/keymap.js +3 -8
  334. package/dist/tui-v2/actions/keymap.js.map +1 -1
  335. package/dist/tui-v2/app/App.js +52 -4
  336. package/dist/tui-v2/app/App.js.map +1 -1
  337. package/dist/tui-v2/app/commands/config-commands.js +5 -2
  338. package/dist/tui-v2/app/commands/config-commands.js.map +1 -1
  339. package/dist/tui-v2/app/commands/picker-commands.js +3 -0
  340. package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
  341. package/dist/tui-v2/app/plan-lifecycle.d.ts +1 -1
  342. package/dist/tui-v2/app/plan-lifecycle.js +2 -1
  343. package/dist/tui-v2/app/plan-lifecycle.js.map +1 -1
  344. package/dist/tui-v2/bootstrap/composition-root.d.ts +3 -0
  345. package/dist/tui-v2/bootstrap/composition-root.js +3 -0
  346. package/dist/tui-v2/bootstrap/composition-root.js.map +1 -1
  347. package/dist/tui-v2/bootstrap/start-tui-v2.js +10 -0
  348. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  349. package/dist/tui-v2/components/composer/composer-input-box.d.ts +1 -1
  350. package/dist/tui-v2/components/composer/composer-input-box.js +12 -3
  351. package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
  352. package/dist/tui-v2/components/jobs/jobs-panel.js +19 -6
  353. package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
  354. package/dist/tui-v2/components/plan/plan-view.js +9 -6
  355. package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
  356. package/dist/tui-v2/components/status/status-line.d.ts +15 -0
  357. package/dist/tui-v2/components/status/status-line.js +33 -25
  358. package/dist/tui-v2/components/status/status-line.js.map +1 -1
  359. package/dist/tui-v2/components/transcript/assistant-message.js +17 -9
  360. package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
  361. package/dist/tui-v2/components/transcript/compacted-row.js +49 -22
  362. package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
  363. package/dist/tui-v2/components/transcript/intro-card.js +3 -0
  364. package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
  365. package/dist/tui-v2/components/transcript/thinking-block.js +2 -1
  366. package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
  367. package/dist/tui-v2/components/transcript/transcript-view.js +27 -2
  368. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  369. package/dist/tui-v2/components/transcript/use-transcript-selection.js +57 -6
  370. package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -1
  371. package/dist/tui-v2/composer/composer-editor.js +12 -6
  372. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  373. package/dist/tui-v2/rendering/incremental-strip.d.ts +11 -0
  374. package/dist/tui-v2/rendering/incremental-strip.js +89 -0
  375. package/dist/tui-v2/rendering/incremental-strip.js.map +1 -0
  376. package/dist/tui-v2/rendering/plan-view.d.ts +12 -0
  377. package/dist/tui-v2/rendering/plan-view.js +71 -2
  378. package/dist/tui-v2/rendering/plan-view.js.map +1 -1
  379. package/dist/tui-v2/rendering/streaming-markdown.d.ts +25 -0
  380. package/dist/tui-v2/rendering/streaming-markdown.js +108 -0
  381. package/dist/tui-v2/rendering/streaming-markdown.js.map +1 -0
  382. package/dist/tui-v2/rendering/thinking-tail.d.ts +5 -0
  383. package/dist/tui-v2/rendering/thinking-tail.js +26 -0
  384. package/dist/tui-v2/rendering/thinking-tail.js.map +1 -0
  385. package/dist/tui-v2/state/transcript-hydrate.js +6 -2
  386. package/dist/tui-v2/state/transcript-hydrate.js.map +1 -1
  387. package/dist/tui-v2/state/transcript-reducer.js +146 -25
  388. package/dist/tui-v2/state/transcript-reducer.js.map +1 -1
  389. package/dist/tui-v2/state/transcript-types.d.ts +6 -0
  390. package/dist/tui-v2/state/transcript-types.js +17 -0
  391. package/dist/tui-v2/state/transcript-types.js.map +1 -1
  392. package/dist/types.d.ts +34 -0
  393. package/dist/types.js.map +1 -1
  394. package/dist/ui/intro-header.d.ts +1 -0
  395. package/dist/ui/intro-header.js +10 -13
  396. package/dist/ui/intro-header.js.map +1 -1
  397. package/dist/ui/markdown.js +9 -2
  398. package/dist/ui/markdown.js.map +1 -1
  399. package/dist/ui/mentions.d.ts +5 -0
  400. package/dist/ui/mentions.js +66 -7
  401. package/dist/ui/mentions.js.map +1 -1
  402. package/dist/ui/thinking.d.ts +5 -1
  403. package/dist/ui/thinking.js +3 -2
  404. package/dist/ui/thinking.js.map +1 -1
  405. package/dist/version.generated.d.ts +2 -2
  406. package/dist/version.generated.js +2 -2
  407. package/package.json +2 -1
@@ -12,10 +12,28 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@opentui/reac
12
12
  */
13
13
  import { useEffect, useState } from "react";
14
14
  import { TextAttributes } from "@opentui/core";
15
- import { formatContextChip, } from "../../../llm/token-usage.js";
15
+ import { formatTokenCount, } from "../../../llm/token-usage.js";
16
16
  import { useSessionState } from "../../state/use-session-state.js";
17
17
  import { EMPTY_SCROLL_METRICS, transcriptScrollPort, } from "../transcript/transcript-scroll-port.js";
18
18
  const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
19
+ export function busyCancelHint(_density) {
20
+ return {
21
+ short: "esc: cancel",
22
+ expand: "cancel active work",
23
+ };
24
+ }
25
+ export function armedCancelHint() {
26
+ return "esc again to cancel";
27
+ }
28
+ // Thin idle row: the chords users reach for, not every binding. The full list
29
+ // lives behind /shortcuts.
30
+ export function idleHintIds(density) {
31
+ if (density === "xs" || density === "sm")
32
+ return [];
33
+ if (density === "md")
34
+ return ["commands", "thinking", "output"];
35
+ return ["commands", "thinking", "output", "shortcuts"];
36
+ }
19
37
  /** Map content width → chrome density. */
20
38
  export function statusDensityForWidth(width) {
21
39
  if (width < 48)
@@ -84,22 +102,11 @@ function formatActivity(activity, elapsedSec, maxLen) {
84
102
  }
85
103
  return `${base} · ${elapsedSec}s`;
86
104
  }
87
- /**
88
- * Context chip tiers (session fill, not cumulative billing):
89
- * - xs: bare count (`12.4k` / `~12.4k`)
90
- * - sm+: `ctx:12.4k` / `ctx:~12.4k`
91
- */
92
- function contextChipForDensity(usage, density) {
105
+ /** Raw current context-token count; request budgets remain internal. */
106
+ export function contextChipForDensity(usage, _density) {
93
107
  if (!usage)
94
108
  return undefined;
95
- const chip = formatContextChip(usage, {
96
- compact: density === "xs" || density === "sm" || density === "md",
97
- });
98
- if (density === "xs") {
99
- // Drop the `ctx:` prefix on the narrowest tier.
100
- return chip.replace(/^ctx:/i, "");
101
- }
102
- return chip;
109
+ return `ctx ${formatTokenCount(usage.contextTokens)}`;
103
110
  }
104
111
  function ContextChip(props) {
105
112
  const { chip, theme, exact } = props;
@@ -109,8 +116,8 @@ function ContextChip(props) {
109
116
  flexShrink: 0,
110
117
  } }));
111
118
  }
112
- function sep(theme, tight = false) {
113
- return (_jsx("text", { selectable: false, content: tight ? " " : " │ ", style: { fg: theme.muted, flexShrink: 0 } }));
119
+ function sep(theme) {
120
+ return (_jsx("text", { selectable: false, content: " \u2502 ", style: { fg: theme.muted, flexShrink: 0 } }));
114
121
  }
115
122
  /** Far-right amber remaining-line badges. */
116
123
  function ScrollRemainderBadges(props) {
@@ -136,8 +143,7 @@ function ClickableHint(props) {
136
143
  const { short, expand, active, theme, onClick, accent = false } = props;
137
144
  const [hovered, setHovered] = useState(false);
138
145
  const full = expand ?? short;
139
- // Hover always shows the expanded phrase (with padding so the chip reads).
140
- const content = hovered ? ` ${full} ` : accent ? ` ${short} ` : short;
146
+ const content = hovered ? full : short;
141
147
  const fg = hovered
142
148
  ? theme.white
143
149
  : active || accent
@@ -176,7 +182,7 @@ function ModeBadge(props) {
176
182
  } }));
177
183
  }
178
184
  export function StatusLine(props) {
179
- const { session, mode, theme, activity, width, hasActivePlan, planVisible, thinkingExpanded = false, outputExpanded = false, onToggleThinking, onToggleOutput, onTogglePlan, onJumpTop, onJumpBottom, onClearDraft, onOpenShortcuts, onCycleMode, } = props;
185
+ const { session, mode, theme, activity, width, hasActivePlan, planVisible, thinkingExpanded = false, outputExpanded = false, onToggleThinking, onToggleOutput, onTogglePlan, onJumpTop, onJumpBottom, onClearDraft, onOpenShortcuts, onCycleMode, cancelArmed = false, onRequestCancel, } = props;
180
186
  const state = useSessionState(session);
181
187
  const [frame, setFrame] = useState(0);
182
188
  const [elapsed, setElapsed] = useState(0);
@@ -214,6 +220,7 @@ export function StatusLine(props) {
214
220
  }, [busy, startedAt, activity]);
215
221
  const ctxChip = contextChipForDensity(state.contextUsage, density);
216
222
  const scrollCompact = density === "xs" || density === "sm";
223
+ const idleHints = idleHintIds(density);
217
224
  // ── Running / compacting ──────────────────────────────────────────────
218
225
  if (busy) {
219
226
  // Left: MODE · spinner · activity·timer · Esc:cancel · ^H · queue
@@ -242,9 +249,10 @@ export function StatusLine(props) {
242
249
  alignItems: "center",
243
250
  flexShrink: 1,
244
251
  minWidth: 0,
245
- }, children: [_jsx(ModeBadge, { mode: mode, theme: theme, short: shortMode }), _jsx("text", { selectable: false, content: " " }), _jsx("text", { selectable: false, content: `${SPINNER_FRAMES[frame]} `, style: { fg: theme.spinner, flexShrink: 0 } }), activityText ? (_jsx("text", { selectable: false, content: clip(activityText, activityMax), style: { fg: theme.activity, flexShrink: 1 } })) : null, density !== "xs" && !state.compacting ? (_jsxs(_Fragment, { children: [_jsx("text", { selectable: false, content: " ", style: { flexShrink: 0 } }), _jsx(ClickableHint, { short: density === "sm" ? "Esc×2" : "Esc×2 · cancel all", expand: "cancel turn, queue, and jobs", active: false, theme: theme, accent: true, onClick: () => {
246
- void session.cancelAll();
247
- } })] })) : null, showTasks ? (_jsxs(_Fragment, { children: [_jsx("text", { selectable: false, content: " " }), _jsx(ClickableHint, { short: tasksToggleLabel(planVisible, density), expand: planVisible ? "hide tasks" : "show tasks", active: planVisible, theme: theme, onClick: onTogglePlan })] })) : null, queued > 0 && density !== "xs" ? (_jsxs(_Fragment, { children: [_jsx("text", { selectable: false, content: " " }), _jsx("text", { selectable: false, content: `${queued}q`, style: { fg: theme.mode, flexShrink: 0 } })] })) : null] }), _jsxs("box", { style: {
252
+ }, children: [_jsx(ModeBadge, { mode: mode, theme: theme, short: shortMode }), sep(theme), _jsx("text", { selectable: false, content: `${SPINNER_FRAMES[frame]} `, style: { fg: theme.spinner, flexShrink: 0 } }), activityText ? (_jsx("text", { selectable: false, content: clip(activityText, activityMax), style: { fg: theme.activity, flexShrink: 1 } })) : null, cancelArmed || (density !== "xs" && !state.compacting) ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: cancelArmed ? armedCancelHint() : busyCancelHint(density).short, expand: cancelArmed ? armedCancelHint() : busyCancelHint(density).expand, active: cancelArmed, theme: theme, accent: true,
253
+ // Same arm/confirm ladder as pressing Esc — a click must not
254
+ // skip the confirmation the keyboard path requires.
255
+ onClick: onRequestCancel })] })) : null, showTasks ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: tasksToggleLabel(planVisible, density), expand: planVisible ? "hide tasks" : "show tasks", active: planVisible, theme: theme, onClick: onTogglePlan })] })) : null, queued > 0 && density !== "xs" ? (_jsxs(_Fragment, { children: [sep(theme), _jsx("text", { selectable: false, content: `${queued}q`, style: { fg: theme.mode, flexShrink: 0 } })] })) : null] }), _jsxs("box", { style: {
248
256
  flexDirection: "row",
249
257
  alignItems: "center",
250
258
  flexShrink: 0,
@@ -269,11 +277,11 @@ export function StatusLine(props) {
269
277
  flexShrink: 1,
270
278
  minWidth: 0,
271
279
  overflow: "hidden",
272
- }, children: [_jsx(ModeBadge, { mode: mode, theme: theme, short: shortMode }), density !== "xs" ? (_jsxs(_Fragment, { children: [_jsx("text", { selectable: false, content: " " }), _jsx(ClickableHint, { short: "\u21E7\u21E5", expand: "cycle mode", active: false, theme: theme, onClick: onCycleMode })] })) : null, density === "md" || density === "lg" ? (_jsxs(_Fragment, { children: [sep(theme), _jsx("text", { selectable: false, content: density === "lg" ? "/:commands" : "/", style: { fg: theme.muted, flexShrink: 0 } })] })) : null, density === "md" || density === "lg" ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: "^T", expand: thinkingExpanded ? "hide thinking" : "show thinking", active: thinkingExpanded, theme: theme, onClick: onToggleThinking }), sep(theme), _jsx(ClickableHint, { short: "^O", expand: outputExpanded ? "hide output" : "show output", active: outputExpanded, theme: theme, onClick: onToggleOutput }), sep(theme), _jsx(ClickableHint, { short: "^U", expand: "jump to top", active: false, theme: theme, onClick: onJumpTop }), sep(theme), _jsx(ClickableHint, { short: "^D", expand: "jump to end", active: false, theme: theme, onClick: onJumpBottom }), sep(theme), _jsx(ClickableHint, { short: "^X", expand: "clear draft", active: false, theme: theme, onClick: onClearDraft })] })) : null, density === "lg" ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: "/shortcuts", expand: "keyboard shortcuts", active: false, theme: theme, onClick: onOpenShortcuts })] })) : null, showTasks ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: tasksToggleLabel(planVisible, density), expand: planVisible ? "hide tasks" : "show tasks", active: planVisible, theme: theme, onClick: onTogglePlan })] })) : null, queued > 0 && density !== "xs" ? (_jsxs(_Fragment, { children: [sep(theme), _jsx("text", { selectable: false, content: density === "sm" ? `${queued}q` : `${queued} queued`, style: { fg: theme.mode, flexShrink: 0 } })] })) : null] }), _jsxs("box", { style: {
280
+ }, children: [_jsx(ModeBadge, { mode: mode, theme: theme, short: shortMode }), cancelArmed ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: armedCancelHint(), expand: armedCancelHint(), active: true, theme: theme, accent: true, onClick: onRequestCancel })] })) : null, density !== "xs" ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: "\u21E7\u21E5", expand: "cycle mode", active: false, theme: theme, onClick: onCycleMode })] })) : null, idleHints.includes("commands") ? (_jsxs(_Fragment, { children: [sep(theme), _jsx("text", { selectable: false, content: density === "lg" ? "/:commands" : "/", style: { fg: theme.muted, flexShrink: 0 } })] })) : null, idleHints.includes("thinking") ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: "^T", expand: thinkingExpanded ? "hide thinking" : "show thinking", active: thinkingExpanded, theme: theme, onClick: onToggleThinking })] })) : null, idleHints.includes("output") ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: "^O", expand: outputExpanded ? "hide output" : "show output", active: outputExpanded, theme: theme, onClick: onToggleOutput })] })) : null, idleHints.includes("shortcuts") ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: "/shortcuts", expand: "keyboard shortcuts", active: false, theme: theme, onClick: onOpenShortcuts })] })) : null, showTasks ? (_jsxs(_Fragment, { children: [sep(theme), _jsx(ClickableHint, { short: tasksToggleLabel(planVisible, density), expand: planVisible ? "hide tasks" : "show tasks", active: planVisible, theme: theme, onClick: onTogglePlan })] })) : null, queued > 0 && density !== "xs" ? (_jsxs(_Fragment, { children: [sep(theme), _jsx("text", { selectable: false, content: density === "sm" ? `${queued}q` : `${queued} queued`, style: { fg: theme.mode, flexShrink: 0 } })] })) : null] }), _jsxs("box", { style: {
273
281
  flexDirection: "row",
274
282
  alignItems: "center",
275
283
  flexShrink: 0,
276
284
  justifyContent: "flex-end",
277
- }, children: [ctxChip ? (_jsxs(_Fragment, { children: [_jsx("text", { selectable: false, content: " " }), _jsx(ContextChip, { chip: ctxChip, theme: theme, exact: state.contextUsage?.exact === true })] })) : null, _jsx(ScrollRemainderBadges, { theme: theme, metrics: scrollMetrics, compact: scrollCompact })] })] }));
285
+ }, children: [ctxChip ? (_jsx(_Fragment, { children: _jsx(ContextChip, { chip: ctxChip, theme: theme, exact: state.contextUsage?.exact === true }) })) : null, _jsx(ScrollRemainderBadges, { theme: theme, metrics: scrollMetrics, compact: scrollCompact })] })] }));
278
286
  }
279
287
  //# sourceMappingURL=status-line.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-line.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/status/status-line.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-line.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/status/status-line.tsx"],"names":[],"mappings":"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"}
@@ -10,10 +10,10 @@ import { jsxs as _jsxs, jsx as _jsx } from "@opentui/react/jsx-runtime";
10
10
  * Wrap budget must follow the chat pane width (not full terminal) so markdown
11
11
  * tables stay inside the column when the plan/task pane is open.
12
12
  */
13
- import { useMemo } from "react";
13
+ import { useMemo, useRef } from "react";
14
14
  import { TextAttributes } from "@opentui/core";
15
15
  import { useTerminalDimensions } from "@opentui/react";
16
- import { renderMarkdownLines } from "../../rendering/render-markdown-lines.js";
16
+ import { EMPTY_MARKDOWN_STREAM_CACHE, renderStreamingMarkdown, } from "../../rendering/streaming-markdown.js";
17
17
  import { SELECTABLE_LINE_STYLE } from "./selectable-line.js";
18
18
  export function AssistantMessage(props) {
19
19
  const { item, theme, contentWidth } = props;
@@ -21,13 +21,21 @@ export function AssistantMessage(props) {
21
21
  // Prefer shell chat width so tables reflow beside the plan pane; fall back
22
22
  // to classic term−chrome when contentWidth is not threaded yet.
23
23
  const wrapWidth = Math.max(20, contentWidth != null ? contentWidth : Math.max(40, termWidth - 8));
24
- const lines = useMemo(() => item.text
25
- ? renderMarkdownLines(item.text, {
26
- width: wrapWidth,
27
- defaultFg: theme.response,
28
- stripOuterIndent: true,
29
- })
30
- : [], [item.text, wrapWidth, theme.response]);
24
+ const cacheRef = useRef(EMPTY_MARKDOWN_STREAM_CACHE);
25
+ const lines = useMemo(() => {
26
+ const rendered = renderStreamingMarkdown({
27
+ text: item.text,
28
+ streaming: item.streaming,
29
+ options: {
30
+ width: wrapWidth,
31
+ defaultFg: theme.response,
32
+ stripOuterIndent: true,
33
+ },
34
+ cache: cacheRef.current,
35
+ });
36
+ cacheRef.current = rendered.cache;
37
+ return rendered.lines;
38
+ }, [item.text, item.streaming, wrapWidth, theme.response]);
31
39
  // Hide fence-only / empty streaming rows so raw tool JSON never flashes as
32
40
  // a hollow "◆ Response …" before tool cards land.
33
41
  if (!item.text.trim() && item.streaming)
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-message.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/transcript/assistant-message.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,UAAU,gBAAgB,CAAC,KAKhC;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC5C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,qBAAqB,EAAE,CAAC;IACrD,2EAA2E;IAC3E,gEAAgE;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,EAAE,EACF,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,CAAC,CAAC,CAClE,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CACH,IAAI,CAAC,IAAI;QACP,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE;YAC7B,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,KAAK,CAAC,QAAQ;YACzB,gBAAgB,EAAE,IAAI;SACvB,CAAC;QACJ,CAAC,CAAC,EAAE,EACR,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CACvC,CAAC;IAEF,2EAA2E;IAC3E,kDAAkD;IAClD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,OAAO,CACL,eAAK,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAClF,gBACE,UAAU,QACV,KAAK,EAAE;oBACL,EAAE,EAAE,KAAK,CAAC,OAAO;oBACjB,UAAU,EAAE,cAAc,CAAC,IAAI;iBAChC,gCAEU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAChC,EAEP,eAAM,OAAO,EAAC,GAAG,EAAC,UAAU,SAAG,EAC9B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,cAAK,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,YACpF,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAKzB,eAEE,OAAO,EAAE,OAAO,IAAI,GAAG,EACvB,UAAU,QACV,QAAQ,EAAC,MAAM;oBACf,qEAAqE;oBACrE,KAAK,EAAE,qBAAqB,IALvB,CAAC,CAMN,CACH,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"assistant-message.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/transcript/assistant-message.tsx"],"names":[],"mappings":"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"}
@@ -1,14 +1,16 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
2
2
  /** @jsxImportSource @opentui/react */
3
3
  /**
4
4
  * Compacted-context card — compact summary strip; full memory opens in the
5
5
  * pager modal (same as tool OUTPUT), not an in-chat mega-expand.
6
6
  */
7
- import { useMemo } from "react";
7
+ import { Fragment, useMemo, useRef } from "react";
8
8
  import { TextAttributes } from "@opentui/core";
9
9
  import { useTerminalDimensions } from "@opentui/react";
10
+ import { compactionTokenLabel } from "../../state/transcript-types.js";
10
11
  import { displayCompactSummary } from "../../state/transcript-hydrate.js";
11
- import { renderMarkdownLines } from "../../rendering/render-markdown-lines.js";
12
+ import { EMPTY_MARKDOWN_STREAM_CACHE, renderStreamingMarkdown, } from "../../rendering/streaming-markdown.js";
13
+ import { liveCompactionHeadTail } from "../../rendering/thinking-tail.js";
12
14
  import { useClickWithoutDrag } from "./use-click-without-drag.js";
13
15
  const PREVIEW_LINES = 4;
14
16
  export function CompactedRow(props) {
@@ -17,23 +19,44 @@ export function CompactedRow(props) {
17
19
  const wrapWidth = Math.max(20, contentWidth != null
18
20
  ? Math.max(20, contentWidth - 4)
19
21
  : Math.max(40, termWidth - 10));
20
- const summary = displayCompactSummary(item.summary);
21
- const allLines = useMemo(() => renderMarkdownLines(summary, {
22
- width: wrapWidth,
23
- defaultFg: theme.foreground,
24
- stripOuterIndent: true,
25
- }), [summary, wrapWidth, theme.foreground]);
26
- const preview = allLines.slice(0, PREVIEW_LINES);
27
- const hidden = Math.max(0, allLines.length - PREVIEW_LINES);
28
- const tokenLabel = item.beforeTokens > 0 || item.afterTokens > 0
29
- ? `~${item.beforeTokens.toLocaleString()} → ~${item.afterTokens.toLocaleString()} tokens`
30
- : "";
22
+ const fullSummary = item.streaming
23
+ ? item.summary
24
+ : displayCompactSummary(item.summary);
25
+ const visibleSummary = item.streaming
26
+ ? liveCompactionHeadTail(fullSummary)
27
+ : fullSummary;
28
+ const cacheRef = useRef(EMPTY_MARKDOWN_STREAM_CACHE);
29
+ const allLines = useMemo(() => {
30
+ const rendered = renderStreamingMarkdown({
31
+ text: visibleSummary,
32
+ streaming: item.streaming === true,
33
+ options: {
34
+ width: wrapWidth,
35
+ defaultFg: theme.foreground,
36
+ stripOuterIndent: true,
37
+ },
38
+ cache: cacheRef.current,
39
+ });
40
+ cacheRef.current = rendered.cache;
41
+ return rendered.lines;
42
+ }, [visibleSummary, item.streaming, wrapWidth, theme.foreground]);
43
+ const showLiveGap = item.streaming === true && allLines.length > 10;
44
+ const preview = item.streaming
45
+ ? showLiveGap
46
+ ? [...allLines.slice(0, PREVIEW_LINES), ...allLines.slice(-6)]
47
+ : allLines
48
+ : allLines.slice(0, PREVIEW_LINES);
49
+ const hidden = item.streaming
50
+ ? Math.max(0, allLines.length - preview.length)
51
+ : Math.max(0, allLines.length - PREVIEW_LINES);
52
+ const tokenLabel = compactionTokenLabel(item);
31
53
  const openPager = () => {
32
- const title = tokenLabel
33
- ? `Compacted context · ${tokenLabel}`
34
- : "Compacted context";
35
- // Compacted memory is always markdown-friendly — start formatted.
36
- services.overlay.openPager(title, summary, undefined, undefined, "force");
54
+ const title = item.streaming
55
+ ? "Compacted context · streaming"
56
+ : tokenLabel
57
+ ? `Compacted context · ${tokenLabel}`
58
+ : "Compacted context";
59
+ services.overlay.openPager(title, fullSummary, undefined, undefined, "force");
37
60
  };
38
61
  const click = useClickWithoutDrag(openPager);
39
62
  const borderFg = theme.activity;
@@ -52,11 +75,11 @@ export function CompactedRow(props) {
52
75
  width: "100%",
53
76
  paddingTop: 0,
54
77
  paddingBottom: 0,
55
- }, children: [_jsx("text", { selectable: true, style: { fg: borderFg, attributes: TextAttributes.BOLD }, children: "\u2726 Compacted context" }), _jsx("text", { content: " ", selectable: true }), _jsx("text", { selectable: true, style: {
78
+ }, children: [_jsxs("text", { selectable: true, style: { fg: borderFg, attributes: TextAttributes.BOLD }, children: ["\u2726 Compacted context", item.streaming ? " …" : ""] }), _jsx("text", { content: " ", selectable: true }), _jsx("text", { selectable: true, style: {
56
79
  fg: borderFg,
57
80
  bg: theme.chip,
58
81
  attributes: TextAttributes.BOLD,
59
- }, children: " memory " }), tokenLabel ? (_jsxs(_Fragment, { children: [_jsx("text", { content: " ", selectable: true }), _jsx("text", { selectable: true, style: { fg: theme.muted, attributes: TextAttributes.DIM }, children: tokenLabel })] })) : null] }), preview.length > 0 ? (_jsxs("box", { style: {
82
+ }, children: " memory " }), tokenLabel ? (_jsxs(_Fragment, { children: [_jsx("text", { content: " ", selectable: true }), _jsx("text", { selectable: true, style: { fg: theme.muted, attributes: TextAttributes.DIM }, children: tokenLabel })] })) : null] }), preview.length > 0 || item.streaming ? (_jsxs("box", { style: {
60
83
  flexDirection: "column",
61
84
  width: "100%",
62
85
  marginTop: 0,
@@ -65,6 +88,10 @@ export function CompactedRow(props) {
65
88
  fg: theme.white,
66
89
  bg: theme.chipTeal,
67
90
  attributes: TextAttributes.BOLD,
68
- }, children: " SUMMARY " }), preview.map((content, i) => (_jsxs("box", { style: { flexDirection: "row", width: "100%" }, children: [_jsx("text", { selectable: true, style: { fg: theme.muted, flexShrink: 0 }, children: "│ " }), _jsx("text", { content: content ?? " ", selectable: true, style: { width: "100%", flexGrow: 1 } })] }, `l-${i}`))), hidden > 0 ? (_jsxs("text", { selectable: true, style: { width: "100%" }, children: [_jsx("span", { style: { fg: theme.muted }, children: "│ " }), _jsx("span", { style: { fg: theme.muted, attributes: TextAttributes.DIM }, children: `··· ${hidden} more lines ···` })] })) : null] })) : null, _jsxs("box", { style: { flexDirection: "row", width: "100%", marginTop: 0 }, children: [_jsx("text", { selectable: false, style: { fg: theme.cyan }, children: "› " }), _jsx("text", { selectable: false, style: { fg: theme.cyan, attributes: TextAttributes.DIM }, children: "click or Ctrl+O to open full memory in pager" })] })] }));
91
+ }, children: item.streaming ? " STREAMING MARKDOWN " : " SUMMARY " }), preview.length === 0 && item.streaming ? (_jsx("text", { selectable: true, style: { fg: theme.muted }, children: "\u2502 Building compacted memory\u2026" })) : null, preview.map((content, i) => (_jsxs(Fragment, { children: [showLiveGap && i === PREVIEW_LINES ? (_jsxs("text", { selectable: true, style: { width: "100%" }, children: [_jsx("span", { style: { fg: theme.muted }, children: "│ " }), _jsx("span", { style: { fg: theme.muted, attributes: TextAttributes.DIM }, children: `··· ${hidden} streaming lines omitted ···` })] })) : null, _jsxs("box", { style: { flexDirection: "row", width: "100%" }, children: [_jsx("text", { selectable: true, style: { fg: theme.muted, flexShrink: 0 }, children: "│ " }), _jsx("text", { content: content ?? " ", selectable: true, wrapMode: "none", style: { width: "100%", flexGrow: 1 } })] })] }, `l-${i}`))), !item.streaming && hidden > 0 ? (_jsxs("text", { selectable: true, style: { width: "100%" }, children: [_jsx("span", { style: { fg: theme.muted }, children: "│ " }), _jsx("span", { style: { fg: theme.muted, attributes: TextAttributes.DIM }, children: `··· ${hidden} more lines ···` })] })) : null, item.error ? (_jsx("text", { selectable: true, style: { fg: theme.diffDel }, children: `Compaction stopped: ${item.error}` })) : null] })) : item.error ? (_jsx("text", { selectable: true, style: { fg: theme.diffDel }, children: `Compaction stopped: ${item.error}` })) : null, _jsxs("box", { style: { flexDirection: "row", width: "100%", marginTop: 0 }, children: [_jsx("text", { selectable: false, style: { fg: theme.cyan }, children: "› " }), _jsx("text", { selectable: false, style: { fg: theme.cyan, attributes: TextAttributes.DIM }, children: item.streaming
92
+ ? "rendering bounded top + live tail · click for current memory"
93
+ : item.error
94
+ ? "original context retained · no compacted memory was applied"
95
+ : "click or Ctrl+O to open full memory in pager" })] })] }));
69
96
  }
70
97
  //# sourceMappingURL=compacted-row.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compacted-row.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/transcript/compacted-row.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compacted-row.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/transcript/compacted-row.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GAExB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,UAAU,YAAY,CAAC,KAS5B;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IACtD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,qBAAqB,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,EAAE,EACF,YAAY,IAAI,IAAI;QAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC,CACjC,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;QAChC,CAAC,CAAC,IAAI,CAAC,OAAO;QACd,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS;QACnC,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC;QACrC,CAAC,CAAC,WAAW,CAAC;IAChB,MAAM,QAAQ,GAAG,MAAM,CAAsB,2BAA2B,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,MAAM,QAAQ,GAAG,uBAAuB,CAAC;YACvC,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI;YAClC,OAAO,EAAE;gBACP,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,KAAK,CAAC,UAAU;gBAC3B,gBAAgB,EAAE,IAAI;aACvB;YACD,KAAK,EAAE,QAAQ,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;QAClC,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAElE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;IACpE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS;QAC5B,CAAC,CAAC,WAAW;YACX,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,QAAQ;QACZ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS;QAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,GAAS,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS;YAC1B,CAAC,CAAC,+BAA+B;YACjC,CAAC,CAAC,UAAU;gBACV,CAAC,CAAC,uBAAuB,UAAU,EAAE;gBACrC,CAAC,CAAC,mBAAmB,CAAC;QAC1B,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEhC,OAAO,CACL,eACE,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,MAAM,QACN,WAAW,EAAC,SAAS,EACrB,KAAK,EAAE;YACL,aAAa,EAAE,QAAQ;YACvB,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,QAAQ;YACrB,eAAe,EAAE,KAAK,CAAC,gBAAgB;YACvC,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;SACjB,EACD,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,aAE1B,eACE,KAAK,EAAE;oBACL,aAAa,EAAE,KAAK;oBACpB,KAAK,EAAE,MAAM;oBACb,UAAU,EAAE,CAAC;oBACb,aAAa,EAAE,CAAC;iBACjB,aAED,gBAAM,UAAU,QAAC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,yCACnD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IACzC,EACP,eAAM,OAAO,EAAC,GAAG,EAAC,UAAU,SAAG,EAC/B,eACE,UAAU,QACV,KAAK,EAAE;4BACL,EAAE,EAAE,QAAQ;4BACZ,EAAE,EAAE,KAAK,CAAC,IAAI;4BACd,UAAU,EAAE,cAAc,CAAC,IAAI;yBAChC,YAEA,UAAU,GACN,EACN,UAAU,CAAC,CAAC,CAAC,CACZ,8BACE,eAAM,OAAO,EAAC,GAAG,EAAC,UAAU,SAAG,EAC/B,eAAM,UAAU,QAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,GAAG,EAAE,YACxE,UAAU,GACN,IACN,CACJ,CAAC,CAAC,CAAC,IAAI,IACJ,EAEL,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CACtC,eACE,KAAK,EAAE;oBACL,aAAa,EAAE,QAAQ;oBACvB,KAAK,EAAE,MAAM;oBACb,SAAS,EAAE,CAAC;oBACZ,UAAU,EAAE,CAAC;iBACd,aAED,eACE,UAAU,QACV,KAAK,EAAE;4BACL,EAAE,EAAE,KAAK,CAAC,KAAK;4BACf,EAAE,EAAE,KAAK,CAAC,QAAQ;4BAClB,UAAU,EAAE,cAAc,CAAC,IAAI;yBAChC,YAEA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,GACjD,EACN,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CACxC,eAAM,UAAU,QAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,uDAEpC,CACR,CAAC,CAAC,CAAC,IAAI,EACP,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,MAAC,QAAQ,eACN,WAAW,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,CACpC,gBAAM,UAAU,QAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aACvC,eAAM,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,YAAG,IAAI,GAAQ,EAC/C,eAAM,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,GAAG,EAAE,YAC7D,OAAO,MAAM,8BAA8B,GACvC,IACF,CACR,CAAC,CAAC,CAAC,IAAI,EACR,eAAK,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aACjD,eAAM,UAAU,QAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,YACvD,IAAI,GACA,EACP,eACE,OAAO,EAAE,OAAO,IAAI,GAAG,EACvB,UAAU,QACV,QAAQ,EAAC,MAAM,EACf,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GACrC,IACE,KAnBO,KAAK,CAAC,EAAE,CAoBZ,CACZ,CAAC,EACD,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/B,gBAAM,UAAU,QAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aACvC,eAAM,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,YAAG,IAAI,GAAQ,EAC/C,eAAM,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,GAAG,EAAE,YAC7D,OAAO,MAAM,iBAAiB,GAC1B,IACF,CACR,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACZ,eAAM,UAAU,QAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,YAC1C,uBAAuB,IAAI,CAAC,KAAK,EAAE,GAC/B,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACf,eAAM,UAAU,QAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,YAC1C,uBAAuB,IAAI,CAAC,KAAK,EAAE,GAC/B,CACR,CAAC,CAAC,CAAC,IAAI,EAER,eAAK,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,aAC/D,eAAM,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,YAC/C,IAAI,GACA,EACP,eACE,UAAU,EAAE,KAAK,EACjB,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,GAAG,EAAE,YAExD,IAAI,CAAC,SAAS;4BACb,CAAC,CAAC,8DAA8D;4BAChE,CAAC,CAAC,IAAI,CAAC,KAAK;gCACV,CAAC,CAAC,6DAA6D;gCAC/D,CAAC,CAAC,8CAA8C,GAC/C,IACH,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -34,6 +34,7 @@ export function IntroCard(props) {
34
34
  // composer meta line, even before the session selection is populated.
35
35
  const provider = session.provider ?? cfg.defaultProvider;
36
36
  const model = session.model ?? cfg.defaultModel;
37
+ const variant = cfg.thinking.enabled ? cfg.thinking.effort : "off";
37
38
  const lines = useMemo(() => renderIntroHeaderLines({
38
39
  width,
39
40
  version,
@@ -42,6 +43,7 @@ export function IntroCard(props) {
42
43
  model,
43
44
  permissions,
44
45
  workdir,
46
+ variant,
45
47
  }).map((line) => ansiToStyledText(line.length === 0 ? " " : line)), [
46
48
  width,
47
49
  version,
@@ -50,6 +52,7 @@ export function IntroCard(props) {
50
52
  model,
51
53
  permissions,
52
54
  workdir,
55
+ variant,
53
56
  ]);
54
57
  return (_jsx("box", { id: "intro-card", style: { flexDirection: "column", width: "100%", marginBottom: 1 }, children: lines.map((content, i) => (_jsx("text", { content: content, selectable: false }, i))) }));
55
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"intro-card.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/transcript/intro-card.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAS7C,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,qBAAqB,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,SAAS,CAAC;IACjD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;IAE1C,4EAA4E;IAC5E,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,eAAe,CAAC;IACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC;IAEhD,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CACH,sBAAsB,CAAC;QACrB,KAAK;QACL,OAAO;QACP,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ;QACR,KAAK;QACL,WAAW;QACX,OAAO;KACR,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EACpE;QACE,KAAK;QACL,OAAO;QACP,OAAO,CAAC,IAAI;QACZ,QAAQ;QACR,KAAK;QACL,WAAW;QACX,OAAO;KACR,CACF,CAAC;IAEF,OAAO,CACL,cACE,EAAE,EAAC,YAAY,EACf,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,YAEjE,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CACzB,eAAc,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,IAAtC,CAAC,CAAyC,CACtD,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"intro-card.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/transcript/intro-card.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
2
  import { TextAttributes } from "@opentui/core";
3
+ import { liveThinkingTail } from "../../rendering/thinking-tail.js";
3
4
  export function ThinkingBlock(props) {
4
5
  const { item, theme, expanded, onToggle } = props;
5
6
  // Always show live content while streaming; after finalize, honor toggle.
@@ -24,6 +25,6 @@ export function ThinkingBlock(props) {
24
25
  attributes: TextAttributes.ITALIC,
25
26
  // Full pane width so drag-select does not require aiming at glyphs.
26
27
  width: "100%",
27
- }, children: item.content }) })) : null] }));
28
+ }, children: item.streaming ? liveThinkingTail(item.content) : item.content }) })) : null] }));
28
29
  }
29
30
  //# sourceMappingURL=thinking-block.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thinking-block.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/transcript/thinking-block.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,cAAc,EAAmB,MAAM,eAAe,CAAC;AAKhE,MAAM,UAAU,aAAa,CAAC,KAK7B;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAClD,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;IAC5C,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAQ,EAAE;QAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,yDAAyD;QACzD,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS;QAC3B,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,sCAAsC,CAAC;IAE7C,OAAO,CACL,eAAK,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAClF,cAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,YACxD,eACE,UAAU,QACV,KAAK,EAAE;wBACL,EAAE,EAAE,KAAK,CAAC,QAAQ;wBAClB,UAAU,EAAE,cAAc,CAAC,MAAM;qBAClC,YAEA,MAAM,GACF,GACH,EACL,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAC1B,cAAK,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YACpE,eACE,UAAU,QACV,KAAK,EAAE;wBACL,EAAE,EAAE,KAAK,CAAC,QAAQ;wBAClB,UAAU,EAAE,cAAc,CAAC,MAAM;wBACjC,oEAAoE;wBACpE,KAAK,EAAE,MAAM;qBACd,YAEA,IAAI,CAAC,OAAO,GACR,GACH,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"thinking-block.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/transcript/thinking-block.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,cAAc,EAAmB,MAAM,eAAe,CAAC;AAIhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,MAAM,UAAU,aAAa,CAAC,KAK7B;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAClD,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;IAC5C,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAQ,EAAE;QAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,yDAAyD;QACzD,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS;QAC3B,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,sCAAsC,CAAC;IAE7C,OAAO,CACL,eAAK,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAClF,cAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,YACxD,eACE,UAAU,QACV,KAAK,EAAE;wBACL,EAAE,EAAE,KAAK,CAAC,QAAQ;wBAClB,UAAU,EAAE,cAAc,CAAC,MAAM;qBAClC,YAEA,MAAM,GACF,GACH,EACL,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAC1B,cAAK,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YACpE,eACE,UAAU,QACV,KAAK,EAAE;wBACL,EAAE,EAAE,KAAK,CAAC,QAAQ;wBAClB,UAAU,EAAE,cAAc,CAAC,MAAM;wBACjC,oEAAoE;wBACpE,KAAK,EAAE,MAAM;qBACd,YAEA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAC1D,GACH,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
@@ -10,7 +10,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
10
10
  * content changes as a belt-and-suspenders for layout races.
11
11
  */
12
12
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
13
- import { useKeyboard, useTerminalDimensions } from "@opentui/react";
13
+ import { useKeyboard, useRenderer, useTerminalDimensions } from "@opentui/react";
14
14
  import { chordFromKeyEvent } from "../../actions/chord-from-key.js";
15
15
  import { useTranscriptState } from "../../state/use-transcript-store.js";
16
16
  import { useSessionState } from "../../state/use-session-state.js";
@@ -22,6 +22,7 @@ import { notify } from "../../notify.js";
22
22
  import { IntroCard } from "./intro-card.js";
23
23
  import { EMPTY_SCROLL_METRICS, publishTranscriptScrollMetrics, registerTranscriptAutoScroll, registerTranscriptJumpHandlers, registerTranscriptScrollPort, } from "./transcript-scroll-port.js";
24
24
  import { useNativeSelectionCopy } from "./use-native-selection-copy.js";
25
+ import { useTranscriptSelection } from "./use-transcript-selection.js";
25
26
  /** Hide OpenTUI's native scrollbar chrome. */
26
27
  const HIDDEN_SCROLLBARS = {
27
28
  visible: false,
@@ -103,7 +104,7 @@ export function TranscriptView(props) {
103
104
  parts.push(`n:${item.id}:${item.text.length}`);
104
105
  break;
105
106
  case "compacted":
106
- parts.push(`c:${item.id}`);
107
+ parts.push(`c:${item.id}:${item.summary.length}:${item.streaming ? 1 : 0}:${item.error?.length ?? 0}`);
107
108
  break;
108
109
  default:
109
110
  parts.push(id);
@@ -129,6 +130,16 @@ export function TranscriptView(props) {
129
130
  const searchActive = query.trim().length > 0;
130
131
  // Drag-select on response/thinking text → OSC 52 copy on release.
131
132
  useNativeSelectionCopy(services);
133
+ const renderer = useRenderer();
134
+ // Keyboard selection (select-all / copy / clear) goes through the pane
135
+ // selection controller; mouse drag stays on OpenTUI's native selection.
136
+ const selection = useTranscriptSelection({
137
+ services,
138
+ state,
139
+ spool: services.session.spool,
140
+ scrollRef,
141
+ focused,
142
+ });
132
143
  /**
133
144
  * Click/touch in the chat pane: claim keyboard so ↑/↓ scroll the transcript
134
145
  * instead of walking prompt history. Child handlers (YOU bubble, tool card)
@@ -462,6 +473,20 @@ export function TranscriptView(props) {
462
473
  openSearch();
463
474
  return;
464
475
  }
476
+ // Selection chords first: Esc only lands here when there is a selection to
477
+ // clear, so the global cancel ladder still sees every other Esc.
478
+ if (selection.handleKey(key, chord))
479
+ return;
480
+ if (chord === "escape" && renderer.hasSelection) {
481
+ key.preventDefault();
482
+ try {
483
+ renderer.clearSelection();
484
+ }
485
+ catch {
486
+ /* renderer already torn down */
487
+ }
488
+ return;
489
+ }
465
490
  // Arrow / page scroll when transcript owns focus.
466
491
  if (services.focus.activeContext() === "transcript") {
467
492
  const sb = scrollRef.current;