@pentoshi/clai 4.8.4 → 4.9.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 (267) hide show
  1. package/README.md +69 -3
  2. package/dist/agent/finalize-gate.js +0 -9
  3. package/dist/agent/finalize-gate.js.map +1 -1
  4. package/dist/agent/plan-mode-reminders.js +5 -5
  5. package/dist/agent/plan-mode-reminders.js.map +1 -1
  6. package/dist/agent/plan-tool.d.ts +1 -0
  7. package/dist/agent/plan-tool.js +50 -21
  8. package/dist/agent/plan-tool.js.map +1 -1
  9. package/dist/agent/reliability-policy.d.ts +9 -0
  10. package/dist/agent/reliability-policy.js +36 -1
  11. package/dist/agent/reliability-policy.js.map +1 -1
  12. package/dist/agent/runner.d.ts +4 -0
  13. package/dist/agent/runner.js +193 -116
  14. package/dist/agent/runner.js.map +1 -1
  15. package/dist/agent/task-analyzer.d.ts +8 -18
  16. package/dist/agent/task-analyzer.js +75 -182
  17. package/dist/agent/task-analyzer.js.map +1 -1
  18. package/dist/agent/task-evidence.js +10 -0
  19. package/dist/agent/task-evidence.js.map +1 -1
  20. package/dist/agent/tool-call-parser.js +14 -13
  21. package/dist/agent/tool-call-parser.js.map +1 -1
  22. package/dist/app/adapters/current-agent-adapter.d.ts +5 -1
  23. package/dist/app/adapters/current-agent-adapter.js +2 -1
  24. package/dist/app/adapters/current-agent-adapter.js.map +1 -1
  25. package/dist/app/commands/catalog.js +5 -0
  26. package/dist/app/commands/catalog.js.map +1 -1
  27. package/dist/app/controllers/session-compact-helper.js +3 -6
  28. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  29. package/dist/app/ports/transcript-item.d.ts +4 -0
  30. package/dist/classic/app/ClassicApp.js +1 -1
  31. package/dist/classic/app/ClassicApp.js.map +1 -1
  32. package/dist/classic/app/action-handlers.js +4 -0
  33. package/dist/classic/app/action-handlers.js.map +1 -1
  34. package/dist/classic/app/app-wiring.js +1 -0
  35. package/dist/classic/app/app-wiring.js.map +1 -1
  36. package/dist/classic/app/wiring-lifecycle.js +1 -0
  37. package/dist/classic/app/wiring-lifecycle.js.map +1 -1
  38. package/dist/classic/blocks/compacted-lines.js +3 -0
  39. package/dist/classic/blocks/compacted-lines.js.map +1 -1
  40. package/dist/classic/blocks/thinking-lines.js +11 -2
  41. package/dist/classic/blocks/thinking-lines.js.map +1 -1
  42. package/dist/classic/bootstrap/start-classic.js +3 -0
  43. package/dist/classic/bootstrap/start-classic.js.map +1 -1
  44. package/dist/classic/chrome/Composer.d.ts +6 -0
  45. package/dist/classic/chrome/Composer.js +2 -3
  46. package/dist/classic/chrome/Composer.js.map +1 -1
  47. package/dist/classic/chrome/composer-controller.d.ts +6 -1
  48. package/dist/classic/chrome/composer-controller.js +18 -8
  49. package/dist/classic/chrome/composer-controller.js.map +1 -1
  50. package/dist/classic/chrome/editor-view.d.ts +2 -1
  51. package/dist/classic/chrome/editor-view.js +1 -1
  52. package/dist/classic/chrome/editor-view.js.map +1 -1
  53. package/dist/classic/chrome/status-rows.js +3 -2
  54. package/dist/classic/chrome/status-rows.js.map +1 -1
  55. package/dist/classic/panels/TextEditorPanel.d.ts +3 -0
  56. package/dist/classic/panels/TextEditorPanel.js +7 -0
  57. package/dist/classic/panels/TextEditorPanel.js.map +1 -0
  58. package/dist/classic/panels/panel-controller.js +28 -1
  59. package/dist/classic/panels/panel-controller.js.map +1 -1
  60. package/dist/classic/panels/panel-effect.d.ts +3 -0
  61. package/dist/classic/panels/panel-effect.js.map +1 -1
  62. package/dist/classic/panels/panel-effects.js +3 -0
  63. package/dist/classic/panels/panel-effects.js.map +1 -1
  64. package/dist/classic/panels/panel-host.js +3 -0
  65. package/dist/classic/panels/panel-host.js.map +1 -1
  66. package/dist/classic/panels/panel-types.d.ts +2 -0
  67. package/dist/classic/panels/secret-panel.d.ts +1 -1
  68. package/dist/classic/panels/secret-panel.js +4 -2
  69. package/dist/classic/panels/secret-panel.js.map +1 -1
  70. package/dist/classic/panels/text-editor-panel.d.ts +33 -0
  71. package/dist/classic/panels/text-editor-panel.js +101 -0
  72. package/dist/classic/panels/text-editor-panel.js.map +1 -0
  73. package/dist/llm/adapters/anthropic-tools.d.ts +2 -1
  74. package/dist/llm/adapters/anthropic-tools.js +55 -4
  75. package/dist/llm/adapters/anthropic-tools.js.map +1 -1
  76. package/dist/llm/anthropic.js +1 -1
  77. package/dist/llm/anthropic.js.map +1 -1
  78. package/dist/llm/aws-mantle.js +2 -0
  79. package/dist/llm/aws-mantle.js.map +1 -1
  80. package/dist/llm/meta.js +62 -68
  81. package/dist/llm/meta.js.map +1 -1
  82. package/dist/llm/provider.js +7 -7
  83. package/dist/llm/request-plan.js +7 -2
  84. package/dist/llm/request-plan.js.map +1 -1
  85. package/dist/llm/tool-protocol.d.ts +1 -0
  86. package/dist/llm/tool-protocol.js +7 -0
  87. package/dist/llm/tool-protocol.js.map +1 -1
  88. package/dist/mcp/client.d.ts +27 -0
  89. package/dist/mcp/client.js +119 -0
  90. package/dist/mcp/client.js.map +1 -0
  91. package/dist/mcp/config-file.d.ts +35 -0
  92. package/dist/mcp/config-file.js +217 -0
  93. package/dist/mcp/config-file.js.map +1 -0
  94. package/dist/mcp/discovery.d.ts +4 -0
  95. package/dist/mcp/discovery.js +409 -0
  96. package/dist/mcp/discovery.js.map +1 -0
  97. package/dist/mcp/format.d.ts +17 -0
  98. package/dist/mcp/format.js +122 -0
  99. package/dist/mcp/format.js.map +1 -0
  100. package/dist/mcp/index.d.ts +15 -0
  101. package/dist/mcp/index.js +16 -0
  102. package/dist/mcp/index.js.map +1 -0
  103. package/dist/mcp/jsonrpc.d.ts +40 -0
  104. package/dist/mcp/jsonrpc.js +175 -0
  105. package/dist/mcp/jsonrpc.js.map +1 -0
  106. package/dist/mcp/manager.d.ts +36 -0
  107. package/dist/mcp/manager.js +300 -0
  108. package/dist/mcp/manager.js.map +1 -0
  109. package/dist/mcp/mentions.d.ts +9 -0
  110. package/dist/mcp/mentions.js +44 -0
  111. package/dist/mcp/mentions.js.map +1 -0
  112. package/dist/mcp/names.d.ts +15 -0
  113. package/dist/mcp/names.js +59 -0
  114. package/dist/mcp/names.js.map +1 -0
  115. package/dist/mcp/results.d.ts +6 -0
  116. package/dist/mcp/results.js +182 -0
  117. package/dist/mcp/results.js.map +1 -0
  118. package/dist/mcp/runtime.d.ts +107 -0
  119. package/dist/mcp/runtime.js +505 -0
  120. package/dist/mcp/runtime.js.map +1 -0
  121. package/dist/mcp/substitution.d.ts +13 -0
  122. package/dist/mcp/substitution.js +74 -0
  123. package/dist/mcp/substitution.js.map +1 -0
  124. package/dist/mcp/transport-http.d.ts +53 -0
  125. package/dist/mcp/transport-http.js +433 -0
  126. package/dist/mcp/transport-http.js.map +1 -0
  127. package/dist/mcp/transport-stdio.d.ts +39 -0
  128. package/dist/mcp/transport-stdio.js +268 -0
  129. package/dist/mcp/transport-stdio.js.map +1 -0
  130. package/dist/mcp/transport.d.ts +20 -0
  131. package/dist/mcp/transport.js +44 -0
  132. package/dist/mcp/transport.js.map +1 -0
  133. package/dist/mcp/types.d.ts +179 -0
  134. package/dist/mcp/types.js +30 -0
  135. package/dist/mcp/types.js.map +1 -0
  136. package/dist/mcp/validation.d.ts +16 -0
  137. package/dist/mcp/validation.js +222 -0
  138. package/dist/mcp/validation.js.map +1 -0
  139. package/dist/modes/agent.d.ts +2 -0
  140. package/dist/modes/agent.js.map +1 -1
  141. package/dist/noninteractive/start-noninteractive.js +4 -0
  142. package/dist/noninteractive/start-noninteractive.js.map +1 -1
  143. package/dist/prompts/embedded.js +2 -2
  144. package/dist/prompts/embedded.js.map +1 -1
  145. package/dist/prompts/index.d.ts +3 -0
  146. package/dist/prompts/index.js +70 -55
  147. package/dist/prompts/index.js.map +1 -1
  148. package/dist/prompts/system.agent.md +34 -10
  149. package/dist/prompts/system.ask.md +8 -0
  150. package/dist/safety/classifier.js +4 -0
  151. package/dist/safety/classifier.js.map +1 -1
  152. package/dist/store/logs.js +17 -6
  153. package/dist/store/logs.js.map +1 -1
  154. package/dist/store/plan.d.ts +2 -0
  155. package/dist/store/plan.js.map +1 -1
  156. package/dist/store/session-workspace.js +2 -1
  157. package/dist/store/session-workspace.js.map +1 -1
  158. package/dist/tools/definitions.js +18 -0
  159. package/dist/tools/definitions.js.map +1 -1
  160. package/dist/tools/external-tools.d.ts +30 -0
  161. package/dist/tools/external-tools.js +52 -0
  162. package/dist/tools/external-tools.js.map +1 -0
  163. package/dist/tools/registry.js +36 -5
  164. package/dist/tools/registry.js.map +1 -1
  165. package/dist/tui-v2/bootstrap/start-tui-v2.js +3 -0
  166. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  167. package/dist/tui-v2/components/completion/completion-menu.d.ts +4 -6
  168. package/dist/tui-v2/components/completion/completion-menu.js +34 -16
  169. package/dist/tui-v2/components/completion/completion-menu.js.map +1 -1
  170. package/dist/tui-v2/components/composer/composer-input-box.js +3 -1
  171. package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
  172. package/dist/tui-v2/components/modal/secret-modal.js +6 -4
  173. package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
  174. package/dist/tui-v2/components/modal/text-editor-modal.d.ts +19 -0
  175. package/dist/tui-v2/components/modal/text-editor-modal.js +85 -0
  176. package/dist/tui-v2/components/modal/text-editor-modal.js.map +1 -0
  177. package/dist/tui-v2/components/overlay/overlay-host.js +2 -1
  178. package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
  179. package/dist/tui-v2/components/transcript/compacted-row.js +12 -3
  180. package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
  181. package/dist/tui-v2/components/transcript/thinking-block.d.ts +9 -1
  182. package/dist/tui-v2/components/transcript/thinking-block.js +253 -49
  183. package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
  184. package/dist/tui-v2/components/transcript/thinking-presentation.d.ts +46 -0
  185. package/dist/tui-v2/components/transcript/thinking-presentation.js +84 -0
  186. package/dist/tui-v2/components/transcript/thinking-presentation.js.map +1 -0
  187. package/dist/tui-v2/components/transcript/transcript-row.d.ts +2 -0
  188. package/dist/tui-v2/components/transcript/transcript-row.js +7 -2
  189. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  190. package/dist/tui-v2/components/transcript/transcript-view.js +195 -83
  191. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  192. package/dist/tui-v2/composer/composer-editor.js +54 -39
  193. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  194. package/dist/tui-v2/composer/composer-highlight.d.ts +20 -0
  195. package/dist/tui-v2/composer/composer-highlight.js +97 -0
  196. package/dist/tui-v2/composer/composer-highlight.js.map +1 -0
  197. package/dist/tui-v2/composer/textarea-keybindings.d.ts +5 -0
  198. package/dist/tui-v2/composer/textarea-keybindings.js +12 -0
  199. package/dist/tui-v2/composer/textarea-keybindings.js.map +1 -1
  200. package/dist/ui/mentions.js +4 -1
  201. package/dist/ui/mentions.js.map +1 -1
  202. package/dist/ui-core/actions/action-id.d.ts +1 -1
  203. package/dist/ui-core/actions/action-id.js +1 -0
  204. package/dist/ui-core/actions/action-id.js.map +1 -1
  205. package/dist/ui-core/actions/format-shortcuts.js +5 -0
  206. package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
  207. package/dist/ui-core/actions/keymap.js +3 -0
  208. package/dist/ui-core/actions/keymap.js.map +1 -1
  209. package/dist/ui-core/bootstrap/composition-root.d.ts +3 -0
  210. package/dist/ui-core/bootstrap/composition-root.js +5 -1
  211. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  212. package/dist/ui-core/commands/command-handlers.js +2 -0
  213. package/dist/ui-core/commands/command-handlers.js.map +1 -1
  214. package/dist/ui-core/commands/mcp-commands.d.ts +3 -0
  215. package/dist/ui-core/commands/mcp-commands.js +310 -0
  216. package/dist/ui-core/commands/mcp-commands.js.map +1 -0
  217. package/dist/ui-core/commands/picker-commands.d.ts +1 -1
  218. package/dist/ui-core/commands/picker-commands.js +2 -2
  219. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  220. package/dist/ui-core/commands/session-commands.js +1 -0
  221. package/dist/ui-core/commands/session-commands.js.map +1 -1
  222. package/dist/ui-core/composer/completion-viewport.d.ts +40 -0
  223. package/dist/ui-core/composer/completion-viewport.js +105 -0
  224. package/dist/ui-core/composer/completion-viewport.js.map +1 -0
  225. package/dist/ui-core/controllers/overlay-controller.d.ts +24 -3
  226. package/dist/ui-core/controllers/overlay-controller.js +35 -4
  227. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  228. package/dist/ui-core/rendering/artifact-pager-source.d.ts +1 -0
  229. package/dist/ui-core/rendering/artifact-pager-source.js +67 -1
  230. package/dist/ui-core/rendering/artifact-pager-source.js.map +1 -1
  231. package/dist/ui-core/rendering/duration.d.ts +3 -1
  232. package/dist/ui-core/rendering/duration.js +14 -0
  233. package/dist/ui-core/rendering/duration.js.map +1 -1
  234. package/dist/ui-core/rendering/exit-summary.js +4 -4
  235. package/dist/ui-core/rendering/format-help.js +4 -0
  236. package/dist/ui-core/rendering/format-help.js.map +1 -1
  237. package/dist/ui-core/rendering/intro-header.js +4 -4
  238. package/dist/ui-core/rendering/open-tool-output.js +90 -32
  239. package/dist/ui-core/rendering/open-tool-output.js.map +1 -1
  240. package/dist/ui-core/rendering/theme.d.ts +5 -3
  241. package/dist/ui-core/rendering/theme.js +8 -4
  242. package/dist/ui-core/rendering/theme.js.map +1 -1
  243. package/dist/ui-core/rendering/wordmark.d.ts +2 -2
  244. package/dist/ui-core/rendering/wordmark.js +62 -62
  245. package/dist/ui-core/rendering/wordmark.js.map +1 -1
  246. package/dist/ui-core/state/thinking-copy.d.ts +13 -0
  247. package/dist/ui-core/state/thinking-copy.js +33 -0
  248. package/dist/ui-core/state/thinking-copy.js.map +1 -0
  249. package/dist/ui-core/state/transcript-hydrate.js +20 -0
  250. package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
  251. package/dist/ui-core/state/transcript-reducer.js +140 -62
  252. package/dist/ui-core/state/transcript-reducer.js.map +1 -1
  253. package/dist/ui-core/state/transcript-store.d.ts +10 -0
  254. package/dist/ui-core/state/transcript-store.js +235 -31
  255. package/dist/ui-core/state/transcript-store.js.map +1 -1
  256. package/dist/ui-core/state/transcript-types.d.ts +10 -0
  257. package/dist/ui-core/state/transcript-types.js +1 -0
  258. package/dist/ui-core/state/transcript-types.js.map +1 -1
  259. package/dist/ui-core/state/transcript-window.d.ts +32 -0
  260. package/dist/ui-core/state/transcript-window.js +63 -0
  261. package/dist/ui-core/state/transcript-window.js.map +1 -0
  262. package/dist/version.generated.d.ts +2 -2
  263. package/dist/version.generated.js +2 -2
  264. package/package.json +1 -1
  265. package/dist/tui-v2/composer/skill-highlight.d.ts +0 -3
  266. package/dist/tui-v2/composer/skill-highlight.js +0 -63
  267. package/dist/tui-v2/composer/skill-highlight.js.map +0 -1
@@ -12,9 +12,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
12
12
  import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, } from "react";
13
13
  import { useKeyboard, useRenderer, useTerminalDimensions } from "@opentui/react";
14
14
  import { chordFromKeyEvent } from "../../input/chord-from-opentui-key.js";
15
+ import { wheelChatDelta } from "../../composer/composer-wheel.js";
15
16
  import { useTranscriptState } from "../../../ui-core/react/use-transcript-store.js";
16
17
  import { useSessionState } from "../../../ui-core/react/use-session-state.js";
17
18
  import { isFileDiffExpanded, isItemExpanded, transcriptItems, } from "../../../ui-core/state/transcript-types.js";
19
+ import { DEFAULT_TRANSCRIPT_MOUNT_ROWS, resolveTranscriptMountWindow, resolveTranscriptScrollIntent, shiftTranscriptWindowStart, transcriptWindowStartForItem, shouldPinTranscriptBottom, } from "../../../ui-core/state/transcript-window.js";
20
+ import { copyFocusedThinking } from "../../../ui-core/state/thinking-copy.js";
18
21
  import { findMatches, nextMatchIndex, prevMatchIndex, } from "../../../ui-core/state/transcript-search.js";
19
22
  import { TranscriptRow } from "./transcript-row.js";
20
23
  import { SearchBar } from "./search-bar.js";
@@ -33,7 +36,7 @@ function maxScrollTop(sb) {
33
36
  const vh = sb.viewport?.height ?? 0;
34
37
  return Math.max(0, sb.scrollHeight - vh);
35
38
  }
36
- function isNearBottom(sb, slack = 2) {
39
+ function isNearBottom(sb, slack = 0) {
37
40
  const max = maxScrollTop(sb);
38
41
  if (max <= 0)
39
42
  return true;
@@ -98,21 +101,33 @@ export function TranscriptView(props) {
98
101
  const { width: termWidth } = useTerminalDimensions();
99
102
  const paneWidth = Math.max(20, contentWidth ?? termWidth - 6);
100
103
  const introWidth = Math.max(40, paneWidth);
104
+ const [windowStart, setWindowStart] = useState(undefined);
105
+ const mountWindow = useMemo(() => resolveTranscriptMountWindow(items.length, windowStart, DEFAULT_TRANSCRIPT_MOUNT_ROWS), [items.length, windowStart]);
106
+ const mountedItems = useMemo(() => items.slice(mountWindow.start, mountWindow.end), [items, mountWindow.start, mountWindow.end]);
101
107
  const internalScrollRef = useRef(null);
102
108
  const scrollRef = (externalScrollRef ?? internalScrollRef);
103
109
  const closeOverlay = useRef(undefined);
104
- const lastCount = useRef(items.length);
110
+ const lastTailId = useRef(items.at(-1)?.id);
105
111
  /**
106
112
  * Product-level follow flag (force re-pin). OpenTUI sticky scroll is the
107
113
  * primary follower; this tracks intentional scroll-away.
108
114
  */
109
115
  const followBottom = useRef(true);
116
+ /**
117
+ * Render mirror of `followBottom`. The ref is mutated synchronously by
118
+ * scroll handlers, but `stickyScroll` is read during render, so re-engaging
119
+ * follow (End / Ctrl+D) must also re-render or native sticky stays off and
120
+ * the viewport never settles at a growing bottom.
121
+ */
122
+ const [followSticky, setFollowSticky] = useState(true);
110
123
  const wasRunning = useRef(false);
111
124
  const dragPointer = useRef(undefined);
112
125
  const dragFrame = useRef(undefined);
113
126
  const pointerGestureActive = useRef(false);
114
127
  const copySemanticOnRelease = useRef(false);
115
128
  const scrollSnapshot = useRef(undefined);
129
+ const windowShiftPending = useRef(false);
130
+ const pendingWindowJump = useRef(undefined);
116
131
  const followKey = useTranscriptFollowKey(state, session.running);
117
132
  const [searchOpen, setSearchOpen] = useState(false);
118
133
  /** Sticky query kept after Enter so n/N + highlights work (pager model). */
@@ -185,7 +200,7 @@ export function TranscriptView(props) {
185
200
  function updateTranscriptDrag(x, y) {
186
201
  const pointer = { x, y };
187
202
  selection.onMouseDrag(pointer);
188
- followBottom.current = false;
203
+ setFollowing(false);
189
204
  const sb = scrollRef.current;
190
205
  if (!sb)
191
206
  return;
@@ -248,11 +263,14 @@ export function TranscriptView(props) {
248
263
  if (event.defaultPrevented)
249
264
  return;
250
265
  stopDragRefresh();
266
+ // A press anywhere outside a thinking card releases its wheel focus.
267
+ // Presses inside a card body arrive defaultPrevented and return above.
268
+ services.transcript.blurThinking();
251
269
  pointerGestureActive.current = true;
252
270
  copySemanticOnRelease.current = false;
253
271
  selection.onMouseDown(event);
254
272
  services.focus.focusRegion("transcript");
255
- followBottom.current = false;
273
+ setFollowing(false);
256
274
  }
257
275
  function onTranscriptMouseDrag(event) {
258
276
  updateTranscriptDrag(event.x, event.y);
@@ -272,13 +290,21 @@ export function TranscriptView(props) {
272
290
  scrollRef.current?.stopAutoScroll();
273
291
  }
274
292
  /** Scroll to the true bottom after layout settles (double-rAF). */
275
- function pinToBottom() {
276
- if (pointerGestureActive.current)
277
- return;
278
- const sb = scrollRef.current;
279
- if (!sb)
280
- return;
293
+ function pinToBottom(options) {
294
+ const forced = options?.forced === true;
281
295
  const go = () => {
296
+ if (!followBottom.current)
297
+ return;
298
+ if (!shouldPinTranscriptBottom({
299
+ following: followBottom.current,
300
+ pointerGestureActive: pointerGestureActive.current,
301
+ forced,
302
+ })) {
303
+ return;
304
+ }
305
+ const sb = scrollRef.current;
306
+ if (!sb)
307
+ return;
282
308
  const next = maxScrollTop(sb);
283
309
  if (sb.scrollTop === next)
284
310
  return;
@@ -291,19 +317,79 @@ export function TranscriptView(props) {
291
317
  requestAnimationFrame(go);
292
318
  });
293
319
  }
294
- function setFollowing(on) {
320
+ function setFollowing(on, options) {
295
321
  followBottom.current = on;
296
- if (on)
297
- pinToBottom();
322
+ setFollowSticky(on);
323
+ if (!on) {
324
+ setWindowStart((current) => current ?? mountWindow.start);
325
+ return;
326
+ }
327
+ const tail = resolveTranscriptMountWindow(items.length, undefined, DEFAULT_TRANSCRIPT_MOUNT_ROWS);
328
+ if (mountWindow.start !== tail.start) {
329
+ pendingWindowJump.current = { edge: "bottom" };
330
+ windowShiftPending.current = true;
331
+ }
332
+ else {
333
+ pendingWindowJump.current = undefined;
334
+ windowShiftPending.current = false;
335
+ }
336
+ setWindowStart(undefined);
337
+ pinToBottom(options);
298
338
  }
299
- // /history hydrate (or /new) swaps the first item id — re-pin to bottom.
300
- const sessionFingerprint = state.order[0] ?? "__empty__";
339
+ function updateFollowingFromPosition(atLiveBottom) {
340
+ setFollowing(atLiveBottom && mountWindow.newerCount === 0);
341
+ }
342
+ function changeWindow(nextStart, jump) {
343
+ const resolved = resolveTranscriptMountWindow(items.length, nextStart, DEFAULT_TRANSCRIPT_MOUNT_ROWS);
344
+ if (resolved.start === mountWindow.start)
345
+ return false;
346
+ pendingWindowJump.current = jump;
347
+ windowShiftPending.current = true;
348
+ setWindowStart(resolved.start);
349
+ followBottom.current = false;
350
+ return true;
351
+ }
352
+ function showOlderWindow() {
353
+ if (mountWindow.olderCount === 0 || windowShiftPending.current)
354
+ return false;
355
+ const next = shiftTranscriptWindowStart(items.length, mountWindow.start, "older", DEFAULT_TRANSCRIPT_MOUNT_ROWS);
356
+ const itemId = mountedItems[0]?.id;
357
+ return changeWindow(next, itemId ? { itemId } : { edge: "bottom" });
358
+ }
359
+ function showNewerWindow() {
360
+ if (mountWindow.newerCount === 0 || windowShiftPending.current)
361
+ return false;
362
+ const next = shiftTranscriptWindowStart(items.length, mountWindow.start, "newer", DEFAULT_TRANSCRIPT_MOUNT_ROWS);
363
+ const itemId = mountedItems.at(-1)?.id;
364
+ return changeWindow(next, itemId ? { itemId } : { edge: "top" });
365
+ }
366
+ useLayoutEffect(() => {
367
+ const jump = pendingWindowJump.current;
368
+ if (!jump)
369
+ return;
370
+ const frame = requestAnimationFrame(() => {
371
+ const sb = scrollRef.current;
372
+ if (sb) {
373
+ if (jump.itemId)
374
+ sb.scrollChildIntoView(jump.itemId);
375
+ else if (jump.edge === "top")
376
+ sb.scrollTo(0);
377
+ else if (jump.edge === "bottom")
378
+ sb.scrollTo(maxScrollTop(sb));
379
+ publishScrollRemainder(sb);
380
+ }
381
+ pendingWindowJump.current = undefined;
382
+ windowShiftPending.current = false;
383
+ });
384
+ return () => cancelAnimationFrame(frame);
385
+ }, [mountWindow.start, mountWindow.end]);
386
+ const sessionFingerprint = session.sessionId;
301
387
  const lastSessionFp = useRef(sessionFingerprint);
302
388
  useEffect(() => {
303
389
  if (sessionFingerprint === lastSessionFp.current)
304
390
  return;
305
391
  lastSessionFp.current = sessionFingerprint;
306
- lastCount.current = items.length;
392
+ lastTailId.current = items.at(-1)?.id;
307
393
  setFollowing(true);
308
394
  }, [sessionFingerprint, items.length]);
309
395
  // New agent turn: always re-engage follow so the live stream is visible.
@@ -315,27 +401,24 @@ export function TranscriptView(props) {
315
401
  wasRunning.current = running;
316
402
  }, [session.running, state.runningStatus]);
317
403
  useEffect(() => {
318
- const grew = items.length - lastCount.current;
319
- lastCount.current = items.length;
404
+ const tailId = items.at(-1)?.id;
405
+ const tailChanged = tailId !== lastTailId.current;
406
+ lastTailId.current = tailId;
320
407
  if (pointerGestureActive.current)
321
408
  return;
322
- // New user prompt always re-engages follow (classic: show what you just sent).
323
- if (grew > 0) {
324
- const last = items[items.length - 1];
409
+ if (tailChanged) {
410
+ const last = items.at(-1);
325
411
  if (last?.kind === "user") {
326
- followBottom.current = true;
412
+ setFollowing(true);
327
413
  }
328
414
  }
329
- // While a turn is live, keep following unless the user has scrolled away.
330
- // (followBottom is cleared by wheel/keys; stickyScroll also respects that.)
331
415
  if (followBottom.current) {
332
416
  pinToBottom();
333
417
  return;
334
418
  }
335
- if (grew > 0) {
419
+ if (tailChanged) {
336
420
  const sb = scrollRef.current;
337
421
  if (!sb || isNearBottom(sb)) {
338
- // Near bottom → re-engage follow.
339
422
  setFollowing(true);
340
423
  }
341
424
  }
@@ -358,37 +441,49 @@ export function TranscriptView(props) {
358
441
  sb.verticalScrollBar.visible = false;
359
442
  sb.horizontalScrollBar.visible = false;
360
443
  }, [items.length, introWidth]);
444
+ function scrollMainBy(dy) {
445
+ if (!Number.isFinite(dy) || dy === 0)
446
+ return;
447
+ if (dy < 0)
448
+ setFollowing(false);
449
+ clearNativeSelection();
450
+ const sb = scrollRef.current;
451
+ if (!sb)
452
+ return;
453
+ const intent = resolveTranscriptScrollIntent(sb.scrollTop, maxScrollTop(sb), dy);
454
+ if (intent.reachedOlderEdge && showOlderWindow())
455
+ return;
456
+ if (intent.reachedNewerEdge && showNewerWindow())
457
+ return;
458
+ sb.scrollTo(intent.nextScrollTop);
459
+ if (!intent.leaveTail)
460
+ updateFollowingFromPosition(intent.atBottom);
461
+ publishScrollRemainder(sb);
462
+ }
361
463
  // App + composer forward every free wheel event here so trackpad never
362
464
  // lands on the focused textarea and walks prompt history instead.
363
465
  useEffect(() => {
364
- return registerTranscriptScrollPort((dy) => {
365
- clearNativeSelection();
366
- const sb = scrollRef.current;
367
- if (!sb)
368
- return;
369
- const max = maxScrollTop(sb);
370
- const next = Math.max(0, Math.min(max, sb.scrollTop + dy));
371
- sb.scrollTo(next);
372
- followBottom.current = next >= max - 1;
373
- publishScrollRemainder(sb);
374
- });
375
- }, []);
466
+ return registerTranscriptScrollPort(scrollMainBy);
467
+ }, [items.length, mountWindow.start, mountWindow.end]);
376
468
  // g / G absolute jumps (also reachable from App when transcript is focused).
377
469
  useEffect(() => {
378
470
  return registerTranscriptJumpHandlers(() => {
379
471
  clearNativeSelection();
472
+ if (mountWindow.start > 0) {
473
+ changeWindow(0, { edge: "top" });
474
+ return;
475
+ }
380
476
  const sb = scrollRef.current;
381
477
  if (!sb)
382
478
  return;
479
+ setFollowing(false);
383
480
  sb.scrollTo(0);
384
- followBottom.current = false;
385
481
  publishScrollRemainder(sb);
386
482
  }, () => {
387
- followBottom.current = true;
388
- pinToBottom();
483
+ jumpToBottom();
389
484
  queueMicrotask(() => publishScrollRemainder(scrollRef.current));
390
485
  });
391
- }, []);
486
+ }, [items.length, mountWindow.start, mountWindow.end]);
392
487
  // Publish ▲/▼ remaining-line metrics for the status strip under the input.
393
488
  // Poll lightly: OpenTUI ScrollBox has no scroll-event subscription.
394
489
  useEffect(() => {
@@ -423,7 +518,11 @@ export function TranscriptView(props) {
423
518
  };
424
519
  }, []);
425
520
  function jumpToBottom() {
426
- setFollowing(true);
521
+ // An explicit jump ends any pointer gesture: a press released outside the
522
+ // transcript never delivers mouse-up here, and a stale flag would
523
+ // otherwise swallow every later End / Ctrl+D.
524
+ pointerGestureActive.current = false;
525
+ setFollowing(true, { forced: true });
427
526
  }
428
527
  function openSearch() {
429
528
  // Allow re-opening the filter to edit the sticky query.
@@ -443,7 +542,7 @@ export function TranscriptView(props) {
443
542
  }
444
543
  }
445
544
  setSearchOpen(true);
446
- followBottom.current = false;
545
+ setFollowing(false);
447
546
  }
448
547
  /** Drop filter input + sticky query + highlights. */
449
548
  function clearSearch() {
@@ -470,8 +569,14 @@ export function TranscriptView(props) {
470
569
  if (!match)
471
570
  return;
472
571
  clearNativeSelection();
473
- followBottom.current = false;
474
- // Defer until after paint so the row id exists in the scroll tree.
572
+ setFollowing(false);
573
+ const itemIndex = items.findIndex((item) => item.id === match.itemId);
574
+ if (itemIndex >= 0 &&
575
+ (itemIndex < mountWindow.start || itemIndex >= mountWindow.end)) {
576
+ const start = transcriptWindowStartForItem(items.length, itemIndex, DEFAULT_TRANSCRIPT_MOUNT_ROWS);
577
+ if (changeWindow(start, { itemId: match.itemId }))
578
+ return;
579
+ }
475
580
  queueMicrotask(() => {
476
581
  scrollRef.current?.scrollChildIntoView(match.itemId);
477
582
  publishScrollRemainder(scrollRef.current);
@@ -531,25 +636,13 @@ export function TranscriptView(props) {
531
636
  const openUserPrompt = useCallback((prompt) => {
532
637
  services.overlay.openPromptActions({ prompt, onResend: () => resendPrompt(prompt) });
533
638
  }, [services, resendPrompt]);
534
- /**
535
- * Wheel over the chat pane: claim focus so ↑/↓ don’t walk prompt history,
536
- * and stop bubble so App doesn’t also scroll via the port (double-step).
537
- * Actual motion is handled by ScrollBox’s native onMouseEvent.
538
- */
539
639
  function onWheelScroll(event) {
540
640
  if (!event.scroll)
541
641
  return;
542
- clearNativeSelection();
642
+ event.preventDefault();
543
643
  event.stopPropagation();
544
644
  services.focus.focusRegion("transcript");
545
- // Keep followBottom in sync after the native ScrollBox applies the delta.
546
- queueMicrotask(() => {
547
- const sb = scrollRef.current;
548
- if (!sb)
549
- return;
550
- followBottom.current = isNearBottom(sb);
551
- publishScrollRemainder(sb);
552
- });
645
+ scrollMainBy(wheelChatDelta(event.scroll.direction, event.scroll.delta));
553
646
  }
554
647
  useKeyboard((key) => {
555
648
  if (key.eventType === "release")
@@ -594,6 +687,38 @@ export function TranscriptView(props) {
594
687
  openSearch();
595
688
  return;
596
689
  }
690
+ // `c` copies the focused thinking card, then releases it so the chat
691
+ // scrolls normally again. Ignored when no card is focused, so the chord
692
+ // stays free everywhere else.
693
+ if (services.focus.activeContext() === "transcript" &&
694
+ services.router.resolve(chord, "transcript") === "transcript.copy-thinking" &&
695
+ state.focusedThinkingId !== undefined) {
696
+ key.preventDefault();
697
+ void copyFocusedThinking(state, services.ports.clipboard).then((result) => {
698
+ if (result === "copied") {
699
+ services.transcript.blurThinking();
700
+ services.toast.success("Reasoning copied", {
701
+ key: "clipboard",
702
+ durationMs: 1600,
703
+ });
704
+ return;
705
+ }
706
+ if (result === "empty") {
707
+ services.toast.info("Nothing to copy", {
708
+ key: "clipboard",
709
+ durationMs: 1400,
710
+ });
711
+ return;
712
+ }
713
+ if (result === "failed") {
714
+ services.toast.error("Copy failed", {
715
+ key: "clipboard",
716
+ durationMs: 2200,
717
+ });
718
+ }
719
+ });
720
+ return;
721
+ }
597
722
  // Selection chords first: Esc only lands here when there is a selection to
598
723
  // clear, so the global cancel ladder still sees every other Esc.
599
724
  if (selection.handleKey(key, chord))
@@ -614,49 +739,36 @@ export function TranscriptView(props) {
614
739
  if (!sb)
615
740
  return;
616
741
  const page = sb.viewport.height || 10;
617
- const max = maxScrollTop(sb);
618
742
  if (chord === "up" || chord === "k") {
619
743
  key.preventDefault();
620
- clearNativeSelection();
621
- sb.scrollTo(Math.max(0, sb.scrollTop - 1));
622
- followBottom.current = false;
623
- publishScrollRemainder(sb);
744
+ scrollMainBy(-1);
624
745
  }
625
746
  else if (chord === "down" || chord === "j") {
626
747
  key.preventDefault();
627
- clearNativeSelection();
628
- const next = Math.min(max, sb.scrollTop + 1);
629
- sb.scrollTo(next);
630
- followBottom.current = next >= max - 1;
631
- publishScrollRemainder(sb);
748
+ scrollMainBy(1);
632
749
  }
633
750
  else if (chord === "pageup") {
634
751
  key.preventDefault();
635
- clearNativeSelection();
636
- sb.scrollTo(Math.max(0, sb.scrollTop - page));
637
- followBottom.current = false;
638
- publishScrollRemainder(sb);
752
+ scrollMainBy(-page);
639
753
  }
640
754
  else if (chord === "pagedown") {
641
755
  key.preventDefault();
642
- clearNativeSelection();
643
- const next = Math.min(max, sb.scrollTop + page);
644
- sb.scrollTo(next);
645
- followBottom.current = next >= max - 1;
646
- publishScrollRemainder(sb);
756
+ scrollMainBy(page);
647
757
  }
648
758
  else if (chord === "end" || chord === "ctrl+d") {
649
- // ^D / End — absolute bottom of the chat.
650
759
  key.preventDefault();
651
760
  jumpToBottom();
652
761
  publishScrollRemainder(sb);
653
762
  }
654
763
  else if (chord === "home" || chord === "ctrl+u") {
655
- // ^U / Home — absolute top of the chat (intro card).
656
764
  key.preventDefault();
657
765
  clearNativeSelection();
766
+ if (mountWindow.start > 0) {
767
+ changeWindow(0, { edge: "top" });
768
+ return;
769
+ }
770
+ setFollowing(false);
658
771
  sb.scrollTo(0);
659
- followBottom.current = false;
660
772
  publishScrollRemainder(sb);
661
773
  }
662
774
  }
@@ -670,6 +782,6 @@ export function TranscriptView(props) {
670
782
  focused: focused,
671
783
  // Native auto-follow: when content grows and the user is (or returns)
672
784
  // at the bottom, stay pinned to the latest agent output.
673
- stickyScroll: true, stickyStart: items.length > 0 ? "bottom" : "top", viewportCulling: true, scrollY: true, scrollX: false, scrollbarOptions: HIDDEN_SCROLLBARS, verticalScrollbarOptions: HIDDEN_SCROLLBARS, horizontalScrollbarOptions: HIDDEN_SCROLLBARS, style: { flexGrow: 1, width: "100%" }, onMouseScroll: onWheelScroll, children: [_jsx(IntroCard, { services: services, theme: theme, width: introWidth }), items.map((item) => (_jsx(TranscriptRow, { item: item, expanded: isItemExpanded(state, item), fileDiffExpanded: item.kind === "tool" ? isFileDiffExpanded(state, item.id) : false, expandThinkingGlobal: state.expandThinkingGlobal, expandOutputGlobal: state.expandOutputGlobal, expandFileDiffsGlobal: state.expandFileDiffsGlobal, theme: theme, store: services.transcript, spool: services.session.spool, services: services, onOpenUserPrompt: openUserPrompt, contentWidth: paneWidth, searchMatched: searchActive && matchedItemIds.has(item.id), searchActiveMatch: item.id === activeMatchItemId }, item.id)))] })] }));
785
+ stickyScroll: followSticky, stickyStart: items.length > 0 ? "bottom" : "top", viewportCulling: true, scrollY: true, scrollX: false, scrollbarOptions: HIDDEN_SCROLLBARS, verticalScrollbarOptions: HIDDEN_SCROLLBARS, horizontalScrollbarOptions: HIDDEN_SCROLLBARS, style: { flexGrow: 1, width: "100%" }, onMouseScroll: onWheelScroll, children: [_jsx(IntroCard, { services: services, theme: theme, width: introWidth }), mountWindow.olderCount > 0 ? (_jsx("box", { id: "transcript-window-older", style: { width: "100%", paddingLeft: 1, paddingBottom: 1 }, children: _jsx("text", { style: { fg: theme.muted }, children: `↑ ${mountWindow.olderCount.toLocaleString()} earlier rows · scroll up or PageUp to load` }) })) : null, mountedItems.map((item) => (_jsx(TranscriptRow, { item: item, expanded: isItemExpanded(state, item), fileDiffExpanded: item.kind === "tool" ? isFileDiffExpanded(state, item.id) : false, expandThinkingGlobal: state.expandThinkingGlobal, expandOutputGlobal: state.expandOutputGlobal, expandFileDiffsGlobal: state.expandFileDiffsGlobal, theme: theme, store: services.transcript, spool: services.session.spool, services: services, onOpenUserPrompt: openUserPrompt, contentWidth: paneWidth, searchMatched: searchActive && matchedItemIds.has(item.id), searchActiveMatch: item.id === activeMatchItemId, thinkingFocused: state.focusedThinkingId === item.id }, item.id))), mountWindow.newerCount > 0 ? (_jsx("box", { id: "transcript-window-newer", style: { width: "100%", paddingLeft: 1, paddingTop: 1 }, children: _jsx("text", { style: { fg: theme.muted }, children: `↓ ${mountWindow.newerCount.toLocaleString()} newer rows · scroll down or PageDown to load` }) })) : null] })] }));
674
786
  }
675
787
  //# sourceMappingURL=transcript-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transcript-view.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/transcript/transcript-view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transcript-view.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/transcript/transcript-view.tsx"],"names":[],"mappings":"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"}