@oh-my-pi/pi-tui 18.2.3 → 18.2.5

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 (750) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +43 -0
  3. package/dist/types/app-keybindings.d.ts +395 -0
  4. package/dist/types/apps/autoresearch-dashboard.d.ts +43 -0
  5. package/dist/types/apps/autoresearch-data.d.ts +15 -0
  6. package/dist/types/apps/cleanse-board.d.ts +66 -0
  7. package/dist/types/apps/cleanse-picker.d.ts +23 -0
  8. package/dist/types/apps/debug/log-formatting.d.ts +6 -0
  9. package/dist/types/apps/debug/log-viewer.d.ts +81 -0
  10. package/dist/types/apps/debug/protocol-probe.d.ts +42 -0
  11. package/dist/types/apps/debug/raw-sse-buffer.d.ts +58 -0
  12. package/dist/types/apps/debug/raw-sse.d.ts +26 -0
  13. package/dist/types/apps/debug/terminal-info.d.ts +34 -0
  14. package/dist/types/apps/debug/viewer-frame.d.ts +52 -0
  15. package/dist/types/apps/git/avatar.d.ts +9 -0
  16. package/dist/types/apps/git/colors.d.ts +49 -0
  17. package/dist/types/apps/git/diff-pane.d.ts +188 -0
  18. package/dist/types/apps/git/git-tui.d.ts +66 -0
  19. package/dist/types/apps/git/sidebar.d.ts +149 -0
  20. package/dist/types/apps/git/state.d.ts +117 -0
  21. package/dist/types/apps/if-bench-board.d.ts +75 -0
  22. package/dist/types/apps/live-visualizer.d.ts +33 -0
  23. package/dist/types/apps/ps-data.d.ts +51 -0
  24. package/dist/types/apps/ps-top.d.ts +33 -0
  25. package/dist/types/apps/session-picker.d.ts +26 -0
  26. package/dist/types/apps/setup-model-picker.d.ts +13 -0
  27. package/dist/types/apps/standalone-picker.d.ts +42 -0
  28. package/dist/types/autocomplete.d.ts +4 -0
  29. package/dist/types/chat/advisor-message.d.ts +11 -0
  30. package/dist/types/chat/assistant-message.d.ts +106 -0
  31. package/dist/types/chat/background-tan-message.d.ts +9 -0
  32. package/dist/types/chat/bash-execution.d.ts +47 -0
  33. package/dist/types/chat/cache-invalidation-marker.d.ts +50 -0
  34. package/dist/types/chat/chat-transcript-builder.d.ts +50 -0
  35. package/dist/types/chat/collab-prompt-message.d.ts +10 -0
  36. package/dist/types/chat/compaction-summary-message.d.ts +54 -0
  37. package/dist/types/chat/custom-message.d.ts +10 -0
  38. package/dist/types/chat/display-preferences.d.ts +13 -0
  39. package/dist/types/chat/eval-execution.d.ts +29 -0
  40. package/dist/types/chat/execution-shared.d.ts +51 -0
  41. package/dist/types/chat/extension-types.d.ts +28 -0
  42. package/dist/types/chat/hook-message.d.ts +10 -0
  43. package/dist/types/chat/image-loading.d.ts +46 -0
  44. package/dist/types/chat/late-diagnostics-message.d.ts +21 -0
  45. package/dist/types/chat/messages.d.ts +189 -0
  46. package/dist/types/chat/reaction.d.ts +30 -0
  47. package/dist/types/chat/read-target.d.ts +4 -0
  48. package/dist/types/chat/read-tool-group.d.ts +67 -0
  49. package/dist/types/chat/served-model-marker.d.ts +47 -0
  50. package/dist/types/chat/skill-message.d.ts +33 -0
  51. package/dist/types/chat/skill-title-input.d.ts +14 -0
  52. package/dist/types/chat/stripped-tool-calls-placeholder.d.ts +12 -0
  53. package/dist/types/chat/thinking-display.d.ts +12 -0
  54. package/dist/types/chat/todo-reminder.d.ts +13 -0
  55. package/dist/types/chat/tool-execution.d.ts +138 -0
  56. package/dist/types/chat/transcript-browser.d.ts +93 -0
  57. package/dist/types/chat/transcript-entry.d.ts +45 -0
  58. package/dist/types/chat/transcript-outline.d.ts +86 -0
  59. package/dist/types/chat/transcript-render-helpers.d.ts +92 -0
  60. package/dist/types/chat/ttsr-notification.d.ts +23 -0
  61. package/dist/types/chat/user-message.d.ts +52 -0
  62. package/dist/types/chrome/chat-block.d.ts +64 -0
  63. package/dist/types/chrome/collab-qrcode.d.ts +28 -0
  64. package/dist/types/chrome/context-thresholds.d.ts +10 -0
  65. package/dist/types/chrome/countdown-timer.d.ts +14 -0
  66. package/dist/types/chrome/diff.d.ts +14 -0
  67. package/dist/types/chrome/dynamic-border.d.ts +16 -0
  68. package/dist/types/chrome/error-block.d.ts +17 -0
  69. package/dist/types/chrome/form-theme.d.ts +3 -0
  70. package/dist/types/chrome/format.d.ts +12 -0
  71. package/dist/types/chrome/index.d.ts +20 -0
  72. package/dist/types/chrome/keybinding-hints.d.ts +40 -0
  73. package/dist/types/chrome/live-board.d.ts +23 -0
  74. package/dist/types/chrome/local-date.d.ts +4 -0
  75. package/dist/types/chrome/message-divider.d.ts +22 -0
  76. package/dist/types/chrome/message-frame.d.ts +52 -0
  77. package/dist/types/chrome/message-notice.d.ts +35 -0
  78. package/dist/types/chrome/overlay-box.d.ts +74 -0
  79. package/dist/types/chrome/qrcode.d.ts +48 -0
  80. package/dist/types/chrome/segment-track.d.ts +27 -0
  81. package/dist/types/chrome/select-list-mouse-routing.d.ts +4 -0
  82. package/dist/types/chrome/selector-helpers.d.ts +52 -0
  83. package/dist/types/chrome/shared.d.ts +5 -0
  84. package/dist/types/chrome/streaming-panel.d.ts +19 -0
  85. package/dist/types/chrome/tool-activity.d.ts +17 -0
  86. package/dist/types/chrome/transcript-container.d.ts +129 -0
  87. package/dist/types/chrome/transcript-status.d.ts +12 -0
  88. package/dist/types/chrome/visual-truncate.d.ts +19 -0
  89. package/dist/types/components/disclosure.d.ts +42 -0
  90. package/dist/types/components/form.d.ts +130 -0
  91. package/dist/types/components/image.d.ts +18 -16
  92. package/dist/types/components/key-value-list.d.ts +24 -0
  93. package/dist/types/components/layout/geometry.d.ts +73 -0
  94. package/dist/types/components/layout/row.d.ts +55 -0
  95. package/dist/types/components/layout/split-pane.d.ts +80 -0
  96. package/dist/types/components/layout/stack.d.ts +50 -0
  97. package/dist/types/components/menu-selection.d.ts +71 -0
  98. package/dist/types/components/metric.d.ts +44 -0
  99. package/dist/types/components/progress-bar.d.ts +36 -0
  100. package/dist/types/components/scroll-view.d.ts +53 -19
  101. package/dist/types/components/scroll-viewport.d.ts +46 -0
  102. package/dist/types/components/section.d.ts +19 -0
  103. package/dist/types/components/select-list.d.ts +46 -2
  104. package/dist/types/components/settings-list.d.ts +20 -0
  105. package/dist/types/components/table.d.ts +32 -0
  106. package/dist/types/components/tree-view.d.ts +130 -0
  107. package/dist/types/components/wizard-step.d.ts +60 -0
  108. package/dist/types/hotkeys-markdown.d.ts +7 -0
  109. package/dist/types/index.d.ts +17 -0
  110. package/dist/types/keybinding-matchers.d.ts +35 -0
  111. package/dist/types/keys.d.ts +2 -2
  112. package/dist/types/lang-from-path.d.ts +9 -0
  113. package/dist/types/overlays/advisor-config.d.ts +114 -0
  114. package/dist/types/overlays/agent-activity.d.ts +41 -0
  115. package/dist/types/overlays/agent-hub-projection.d.ts +33 -0
  116. package/dist/types/overlays/agent-hub-renderer.d.ts +53 -0
  117. package/dist/types/overlays/agent-hub-types.d.ts +99 -0
  118. package/dist/types/overlays/agent-hub.d.ts +126 -0
  119. package/dist/types/overlays/agent-transcript-viewer.d.ts +71 -0
  120. package/dist/types/overlays/agents-hub.d.ts +72 -0
  121. package/dist/types/overlays/ask-dialog.d.ts +88 -0
  122. package/dist/types/overlays/bordered-loader.d.ts +11 -0
  123. package/dist/types/overlays/btw-history-panel.d.ts +29 -0
  124. package/dist/types/overlays/btw-history.d.ts +17 -0
  125. package/dist/types/overlays/btw-panel.d.ts +26 -0
  126. package/dist/types/overlays/cleanse-panel.d.ts +36 -0
  127. package/dist/types/overlays/codex-reset-fireworks.d.ts +52 -0
  128. package/dist/types/overlays/composer-shape-preview.d.ts +47 -0
  129. package/dist/types/overlays/composer-shape-registry.d.ts +50 -0
  130. package/dist/types/overlays/copy-selector.d.ts +48 -0
  131. package/dist/types/overlays/copy-targets.d.ts +63 -0
  132. package/dist/types/overlays/error-banner.d.ts +13 -0
  133. package/dist/types/overlays/extensions/display-text.d.ts +10 -0
  134. package/dist/types/overlays/extensions/extension-dashboard.d.ts +63 -0
  135. package/dist/types/overlays/extensions/extension-list.d.ts +54 -0
  136. package/dist/types/overlays/extensions/inspector-model.d.ts +109 -0
  137. package/dist/types/overlays/extensions/inspector-panel.d.ts +17 -0
  138. package/dist/types/overlays/extensions/live-tool-session.d.ts +28 -0
  139. package/dist/types/overlays/extensions/mcp-runtime.d.ts +107 -0
  140. package/dist/types/overlays/extensions/state-manager.d.ts +42 -0
  141. package/dist/types/overlays/extensions/types.d.ts +165 -0
  142. package/dist/types/overlays/history-search.d.ts +16 -0
  143. package/dist/types/overlays/hook-editor.d.ts +44 -0
  144. package/dist/types/overlays/hook-input.d.ts +20 -0
  145. package/dist/types/overlays/hook-selector.d.ts +71 -0
  146. package/dist/types/overlays/hub-frame.d.ts +77 -0
  147. package/dist/types/overlays/login-dialog.d.ts +43 -0
  148. package/dist/types/overlays/logout-account-selector.d.ts +15 -0
  149. package/dist/types/overlays/mcp-add-wizard.d.ts +87 -0
  150. package/dist/types/overlays/model-browser.d.ts +213 -0
  151. package/dist/types/overlays/model-hub.d.ts +72 -0
  152. package/dist/types/overlays/model-picker.d.ts +74 -0
  153. package/dist/types/overlays/model-selector.d.ts +52 -0
  154. package/dist/types/overlays/move-overlay.d.ts +39 -0
  155. package/dist/types/overlays/oauth-selector.d.ts +41 -0
  156. package/dist/types/overlays/omfg-panel.d.ts +20 -0
  157. package/dist/types/overlays/pause-screen.d.ts +43 -0
  158. package/dist/types/overlays/plan-review-overlay.d.ts +89 -0
  159. package/dist/types/overlays/plan-save-overlay.d.ts +19 -0
  160. package/dist/types/overlays/plan-toc.d.ts +41 -0
  161. package/dist/types/overlays/plugin-selector.d.ts +28 -0
  162. package/dist/types/overlays/plugin-settings.d.ts +180 -0
  163. package/dist/types/overlays/queue-mode-selector.d.ts +11 -0
  164. package/dist/types/overlays/reset-usage-selector.d.ts +23 -0
  165. package/dist/types/overlays/rewind-selector.d.ts +61 -0
  166. package/dist/types/overlays/running-subagent-badge.d.ts +6 -0
  167. package/dist/types/overlays/session-account-selector.d.ts +24 -0
  168. package/dist/types/overlays/session-info-overlay.d.ts +17 -0
  169. package/dist/types/overlays/session-observer-registry.d.ts +77 -0
  170. package/dist/types/overlays/session-selector.d.ts +131 -0
  171. package/dist/types/overlays/settings-defs.d.ts +119 -0
  172. package/dist/types/overlays/settings-selector.d.ts +73 -0
  173. package/dist/types/overlays/show-images-selector.d.ts +11 -0
  174. package/dist/types/overlays/snapcompact-shape-preview.d.ts +31 -0
  175. package/dist/types/overlays/theme-selector.d.ts +12 -0
  176. package/dist/types/overlays/thinking-selector.d.ts +12 -0
  177. package/dist/types/overlays/tiny-title-download-progress.d.ts +21 -0
  178. package/dist/types/overlays/tree-selector.d.ts +92 -0
  179. package/dist/types/overlays/usage-dashboard.d.ts +94 -0
  180. package/dist/types/overlays/usage-display.d.ts +5 -0
  181. package/dist/types/overlays/usage-row.d.ts +17 -0
  182. package/dist/types/prompt/attachment-chips.d.ts +19 -0
  183. package/dist/types/prompt/composer-attachments.d.ts +71 -0
  184. package/dist/types/prompt/composer-cache.d.ts +37 -0
  185. package/dist/types/prompt/composer.d.ts +159 -0
  186. package/dist/types/prompt/custom-editor.d.ts +261 -0
  187. package/dist/types/prompt/editor-top-gap.d.ts +18 -0
  188. package/dist/types/prompt/emoji-autocomplete.d.ts +16 -0
  189. package/dist/types/prompt/github-ref-autocomplete.d.ts +35 -0
  190. package/dist/types/prompt/gradient-highlight.d.ts +32 -0
  191. package/dist/types/prompt/image-format.d.ts +4 -0
  192. package/dist/types/prompt/image-references.d.ts +26 -0
  193. package/dist/types/prompt/interactive-context-helpers.d.ts +43 -0
  194. package/dist/types/prompt/internal-url-autocomplete.d.ts +56 -0
  195. package/dist/types/prompt/macos-spelling.d.ts +44 -0
  196. package/dist/types/prompt/magic-keyword-boundary.d.ts +9 -0
  197. package/dist/types/prompt/magic-keywords.d.ts +26 -0
  198. package/dist/types/prompt/markdown-prose.d.ts +15 -0
  199. package/dist/types/prompt/model-mention-autocomplete.d.ts +25 -0
  200. package/dist/types/prompt/model-mention-syntax.d.ts +24 -0
  201. package/dist/types/prompt/orchestrate.d.ts +13 -0
  202. package/dist/types/prompt/prompt-action-autocomplete.d.ts +56 -0
  203. package/dist/types/prompt/queue-input.d.ts +8 -0
  204. package/dist/types/prompt/skill-tokens.d.ts +13 -0
  205. package/dist/types/prompt/tools-markdown.d.ts +12 -0
  206. package/dist/types/prompt/ultrathink.d.ts +13 -0
  207. package/dist/types/prompt/usage-amounts.d.ts +26 -0
  208. package/dist/types/prompt/video.d.ts +18 -0
  209. package/dist/types/prompt/welcome.d.ts +83 -0
  210. package/dist/types/prompt/workflow.d.ts +13 -0
  211. package/dist/types/render/code-cell.d.ts +51 -0
  212. package/dist/types/render/file-list.d.ts +22 -0
  213. package/dist/types/render/hyperlink.d.ts +80 -0
  214. package/dist/types/render/index.d.ts +16 -0
  215. package/dist/types/render/output-block.d.ts +54 -0
  216. package/dist/types/render/output-pane.d.ts +80 -0
  217. package/dist/types/render/render-utils.d.ts +312 -0
  218. package/dist/types/render/sixel.d.ts +21 -0
  219. package/dist/types/render/status-line.d.ts +23 -0
  220. package/dist/types/render/tool-card.d.ts +71 -0
  221. package/dist/types/render/tree-list.d.ts +29 -0
  222. package/dist/types/render/types.d.ts +17 -0
  223. package/dist/types/render/utils.d.ts +43 -0
  224. package/dist/types/render/width-aware-text.d.ts +23 -0
  225. package/dist/types/setup/lazy.d.ts +3 -0
  226. package/dist/types/setup/scenes/composer.d.ts +3 -0
  227. package/dist/types/setup/scenes/glyph.d.ts +3 -0
  228. package/dist/types/setup/scenes/model.d.ts +3 -0
  229. package/dist/types/setup/scenes/outro.d.ts +2 -0
  230. package/dist/types/setup/scenes/providers.d.ts +3 -0
  231. package/dist/types/setup/scenes/sign-in.d.ts +21 -0
  232. package/dist/types/setup/scenes/splash.d.ts +11 -0
  233. package/dist/types/setup/scenes/theme.d.ts +3 -0
  234. package/dist/types/setup/scenes/types.d.ts +110 -0
  235. package/dist/types/setup/scenes/web-search.d.ts +22 -0
  236. package/dist/types/setup/setup-version.d.ts +11 -0
  237. package/dist/types/setup/startup-splash.d.ts +9 -0
  238. package/dist/types/setup/wizard-overlay.d.ts +16 -0
  239. package/dist/types/setup/wizard.d.ts +25 -0
  240. package/dist/types/status-line/component.d.ts +182 -0
  241. package/dist/types/status-line/context-usage.d.ts +156 -0
  242. package/dist/types/status-line/footer.d.ts +30 -0
  243. package/dist/types/status-line/git-utils.d.ts +22 -0
  244. package/dist/types/status-line/host.d.ts +129 -0
  245. package/dist/types/status-line/index.d.ts +6 -0
  246. package/dist/types/status-line/loop.d.ts +18 -0
  247. package/dist/types/status-line/metrics.d.ts +21 -0
  248. package/dist/types/status-line/presets.d.ts +3 -0
  249. package/dist/types/status-line/schema.d.ts +15 -0
  250. package/dist/types/status-line/segments.d.ts +5 -0
  251. package/dist/types/status-line/separators.d.ts +3 -0
  252. package/dist/types/status-line/types.d.ts +236 -0
  253. package/dist/types/stdin-buffer.d.ts +4 -0
  254. package/dist/types/theme/color.d.ts +24 -0
  255. package/dist/types/theme/defaults/index.d.ts +9489 -0
  256. package/dist/types/theme/index.d.ts +4 -0
  257. package/dist/types/theme/loader.d.ts +23 -0
  258. package/dist/types/theme/mermaid-cache.d.ts +26 -0
  259. package/dist/types/theme/schema-validation.d.ts +3 -0
  260. package/dist/types/theme/schema.d.ts +25 -0
  261. package/dist/types/theme/session-color.d.ts +43 -0
  262. package/dist/types/theme/shimmer.d.ts +44 -0
  263. package/dist/types/theme/symbols.d.ts +34 -0
  264. package/dist/types/theme/theme-class.d.ts +299 -0
  265. package/dist/types/theme/theme.d.ts +111 -0
  266. package/dist/types/theme/tui-adapters.d.ts +30 -0
  267. package/dist/types/thinking.d.ts +165 -0
  268. package/dist/types/tools/agent-tree.d.ts +36 -0
  269. package/dist/types/tools/ask.d.ts +67 -0
  270. package/dist/types/tools/ast-edit.d.ts +53 -0
  271. package/dist/types/tools/ast-grep.d.ts +52 -0
  272. package/dist/types/tools/autoresearch.d.ts +156 -0
  273. package/dist/types/tools/bash-interactive.d.ts +28 -0
  274. package/dist/types/tools/bash.d.ts +103 -0
  275. package/dist/types/tools/conflict-detect.d.ts +43 -0
  276. package/dist/types/tools/debug.d.ts +60 -0
  277. package/dist/types/tools/default-renderer.d.ts +24 -0
  278. package/dist/types/tools/edit.d.ts +158 -0
  279. package/dist/types/tools/eval-format/code-mode-declarations.d.ts +5 -0
  280. package/dist/types/tools/eval-format/index.d.ts +5 -0
  281. package/dist/types/tools/eval-format/javascript.d.ts +2 -0
  282. package/dist/types/tools/eval-format/python.d.ts +2 -0
  283. package/dist/types/tools/eval.d.ts +94 -0
  284. package/dist/types/tools/fetch.d.ts +42 -0
  285. package/dist/types/tools/gh-format.d.ts +8 -0
  286. package/dist/types/tools/github.d.ts +144 -0
  287. package/dist/types/tools/glob.d.ts +44 -0
  288. package/dist/types/tools/goal.d.ts +42 -0
  289. package/dist/types/tools/grep.d.ts +64 -0
  290. package/dist/types/tools/grouped-file-output.d.ts +71 -0
  291. package/dist/types/tools/hashline-format.d.ts +28 -0
  292. package/dist/types/tools/hub.d.ts +340 -0
  293. package/dist/types/tools/index.d.ts +4 -0
  294. package/dist/types/tools/json-tree.d.ts +59 -0
  295. package/dist/types/tools/line-ranges.d.ts +29 -0
  296. package/dist/types/tools/list-limit.d.ts +15 -0
  297. package/dist/types/tools/lsp.d.ts +72 -0
  298. package/dist/types/tools/match-line-format.d.ts +11 -0
  299. package/dist/types/tools/mcp.d.ts +81 -0
  300. package/dist/types/tools/memory.d.ts +67 -0
  301. package/dist/types/tools/output-meta.d.ts +151 -0
  302. package/dist/types/tools/read.d.ts +139 -0
  303. package/dist/types/tools/renderer.d.ts +98 -0
  304. package/dist/types/tools/report-tool-issue.d.ts +8 -0
  305. package/dist/types/tools/resolve.d.ts +47 -0
  306. package/dist/types/tools/streaming-output.d.ts +282 -0
  307. package/dist/types/tools/subprocess.d.ts +24 -0
  308. package/dist/types/tools/task-repair-args.d.ts +53 -0
  309. package/dist/types/tools/task-yield-assembly.d.ts +20 -0
  310. package/dist/types/tools/task.d.ts +425 -0
  311. package/dist/types/tools/terminal-output.d.ts +8 -0
  312. package/dist/types/tools/think.d.ts +13 -0
  313. package/dist/types/tools/todo.d.ts +118 -0
  314. package/dist/types/tools/tool-errors.d.ts +7 -0
  315. package/dist/types/tools/vibe.d.ts +120 -0
  316. package/dist/types/tools/web-search.d.ts +195 -0
  317. package/dist/types/tools/write.d.ts +76 -0
  318. package/dist/types/tools/xd-url.d.ts +13 -0
  319. package/dist/types/tools/xdev.d.ts +52 -0
  320. package/dist/types/tui.d.ts +18 -0
  321. package/dist/types/utils.d.ts +2 -0
  322. package/package.json +37 -3
  323. package/src/app-keybindings.ts +760 -0
  324. package/src/apps/autoresearch-dashboard.ts +500 -0
  325. package/src/apps/autoresearch-data.ts +64 -0
  326. package/src/apps/cleanse-board.ts +341 -0
  327. package/src/apps/cleanse-picker.ts +57 -0
  328. package/src/apps/debug/log-formatting.ts +53 -0
  329. package/src/apps/debug/log-viewer.ts +868 -0
  330. package/src/apps/debug/protocol-probe.ts +267 -0
  331. package/src/apps/debug/raw-sse-buffer.ts +449 -0
  332. package/src/apps/debug/raw-sse.ts +282 -0
  333. package/src/apps/debug/terminal-info.ts +115 -0
  334. package/src/apps/debug/viewer-frame.ts +174 -0
  335. package/src/apps/git/avatar.ts +52 -0
  336. package/src/apps/git/colors.ts +109 -0
  337. package/src/apps/git/diff-pane.ts +1512 -0
  338. package/src/apps/git/git-tui.ts +889 -0
  339. package/src/apps/git/sidebar.ts +1204 -0
  340. package/src/apps/git/state.ts +113 -0
  341. package/src/apps/if-bench-board.ts +324 -0
  342. package/src/apps/live-visualizer.ts +238 -0
  343. package/src/apps/ps-data.ts +116 -0
  344. package/src/apps/ps-top.ts +422 -0
  345. package/src/apps/session-picker.ts +95 -0
  346. package/src/apps/setup-model-picker.ts +21 -0
  347. package/src/apps/standalone-picker.ts +111 -0
  348. package/src/autocomplete.ts +9 -13
  349. package/src/chat/advisor-message.ts +175 -0
  350. package/src/chat/assistant-message.ts +1214 -0
  351. package/src/chat/background-tan-message.ts +35 -0
  352. package/src/chat/bash-execution.ts +394 -0
  353. package/src/chat/cache-invalidation-marker.ts +94 -0
  354. package/src/chat/chat-transcript-builder.ts +593 -0
  355. package/src/chat/collab-prompt-message.ts +34 -0
  356. package/src/chat/compaction-summary-message.ts +261 -0
  357. package/src/chat/custom-message.ts +23 -0
  358. package/src/chat/display-preferences.ts +24 -0
  359. package/src/chat/eval-execution.ts +172 -0
  360. package/src/chat/execution-shared.ts +113 -0
  361. package/src/chat/extension-types.ts +46 -0
  362. package/src/chat/hook-message.ts +20 -0
  363. package/src/chat/image-loading.ts +122 -0
  364. package/src/chat/late-diagnostics-message.ts +92 -0
  365. package/src/chat/messages.ts +305 -0
  366. package/src/chat/reaction.ts +65 -0
  367. package/src/chat/read-target.ts +7 -0
  368. package/src/chat/read-tool-group.ts +873 -0
  369. package/src/chat/served-model-marker.ts +91 -0
  370. package/src/chat/skill-message.ts +220 -0
  371. package/src/chat/skill-title-input.ts +41 -0
  372. package/src/chat/stripped-tool-calls-placeholder.ts +35 -0
  373. package/src/chat/thinking-display.ts +312 -0
  374. package/src/chat/todo-reminder.ts +33 -0
  375. package/src/chat/tool-execution.ts +1395 -0
  376. package/src/chat/transcript-browser.ts +268 -0
  377. package/src/chat/transcript-entry.ts +96 -0
  378. package/src/chat/transcript-outline.ts +260 -0
  379. package/src/chat/transcript-render-helpers.ts +315 -0
  380. package/src/chat/ttsr-notification.ts +123 -0
  381. package/src/chat/user-message.ts +287 -0
  382. package/src/chrome/chat-block.ts +110 -0
  383. package/src/chrome/collab-qrcode.ts +74 -0
  384. package/src/chrome/context-thresholds.ts +85 -0
  385. package/src/chrome/countdown-timer.ts +74 -0
  386. package/src/chrome/diff.ts +266 -0
  387. package/src/chrome/dynamic-border.ts +36 -0
  388. package/src/chrome/error-block.ts +63 -0
  389. package/src/chrome/form-theme.ts +10 -0
  390. package/src/chrome/format.ts +66 -0
  391. package/src/chrome/index.ts +21 -0
  392. package/src/chrome/keybinding-hints.ts +55 -0
  393. package/src/chrome/live-board.ts +123 -0
  394. package/src/chrome/local-date.ts +20 -0
  395. package/src/chrome/message-divider.ts +51 -0
  396. package/src/chrome/message-frame.ts +164 -0
  397. package/src/chrome/message-notice.ts +103 -0
  398. package/src/chrome/overlay-box.ts +301 -0
  399. package/src/chrome/qrcode.ts +539 -0
  400. package/src/chrome/segment-track.ts +86 -0
  401. package/src/chrome/select-list-mouse-routing.ts +11 -0
  402. package/src/chrome/selector-helpers.ts +119 -0
  403. package/src/chrome/shared.ts +27 -0
  404. package/src/chrome/streaming-panel.ts +72 -0
  405. package/src/chrome/tool-activity.ts +44 -0
  406. package/src/chrome/transcript-container.ts +902 -0
  407. package/src/chrome/transcript-status.ts +27 -0
  408. package/src/chrome/visual-truncate.ts +70 -0
  409. package/src/components/disclosure.ts +235 -0
  410. package/src/components/editor.ts +10 -12
  411. package/src/components/form.ts +566 -0
  412. package/src/components/image.ts +80 -53
  413. package/src/components/input.ts +6 -27
  414. package/src/components/key-value-list.ts +88 -0
  415. package/src/components/layout/geometry.ts +202 -0
  416. package/src/components/layout/row.ts +283 -0
  417. package/src/components/layout/split-pane.ts +349 -0
  418. package/src/components/layout/stack.ts +261 -0
  419. package/src/components/markdown.ts +16 -12
  420. package/src/components/menu-selection.ts +248 -0
  421. package/src/components/metric.ts +132 -0
  422. package/src/components/progress-bar.ts +140 -0
  423. package/src/components/scroll-view.ts +372 -70
  424. package/src/components/scroll-viewport.ts +154 -0
  425. package/src/components/section.ts +77 -0
  426. package/src/components/select-list.ts +238 -159
  427. package/src/components/settings-list.ts +103 -80
  428. package/src/components/table.ts +127 -0
  429. package/src/components/tree-view.ts +481 -0
  430. package/src/components/wizard-step.ts +229 -0
  431. package/src/deccara.ts +1 -3
  432. package/src/hotkeys-markdown.ts +100 -0
  433. package/src/index.ts +18 -0
  434. package/src/keybinding-matchers.ts +99 -0
  435. package/src/keys.ts +2 -2
  436. package/src/lang-from-path.ts +252 -0
  437. package/src/overlays/advisor-config.ts +761 -0
  438. package/src/overlays/agent-activity.ts +113 -0
  439. package/src/overlays/agent-hub-projection.ts +250 -0
  440. package/src/overlays/agent-hub-renderer.ts +281 -0
  441. package/src/overlays/agent-hub-types.ts +74 -0
  442. package/src/overlays/agent-hub.ts +1562 -0
  443. package/src/overlays/agent-transcript-viewer.ts +669 -0
  444. package/src/overlays/agents-hub.ts +1203 -0
  445. package/src/overlays/ask-dialog.ts +1202 -0
  446. package/src/overlays/bordered-loader.ts +41 -0
  447. package/src/overlays/btw-history-panel.ts +591 -0
  448. package/src/overlays/btw-history.ts +33 -0
  449. package/src/overlays/btw-panel.ts +167 -0
  450. package/src/overlays/cleanse-panel.ts +167 -0
  451. package/src/overlays/codex-reset-fireworks.ts +375 -0
  452. package/src/overlays/composer-shape-preview.ts +137 -0
  453. package/src/overlays/composer-shape-registry.ts +82 -0
  454. package/src/overlays/copy-selector.ts +618 -0
  455. package/src/overlays/copy-targets.ts +210 -0
  456. package/src/overlays/error-banner.ts +39 -0
  457. package/src/overlays/extensions/display-text.ts +39 -0
  458. package/src/overlays/extensions/extension-dashboard.ts +645 -0
  459. package/src/overlays/extensions/extension-list.ts +667 -0
  460. package/src/overlays/extensions/inspector-model.ts +484 -0
  461. package/src/overlays/extensions/inspector-panel.ts +669 -0
  462. package/src/overlays/extensions/live-tool-session.ts +67 -0
  463. package/src/overlays/extensions/mcp-runtime.ts +289 -0
  464. package/src/overlays/extensions/state-manager.ts +337 -0
  465. package/src/overlays/extensions/types.ts +208 -0
  466. package/src/overlays/history-search.ts +268 -0
  467. package/src/overlays/hook-editor.ts +272 -0
  468. package/src/overlays/hook-input.ts +84 -0
  469. package/src/overlays/hook-selector.ts +635 -0
  470. package/src/overlays/hub-frame.ts +262 -0
  471. package/src/overlays/login-dialog.ts +231 -0
  472. package/src/overlays/logout-account-selector.ts +115 -0
  473. package/src/overlays/mcp-add-wizard.ts +1436 -0
  474. package/src/overlays/model-browser.ts +1176 -0
  475. package/src/overlays/model-hub.ts +2279 -0
  476. package/src/overlays/model-picker.ts +285 -0
  477. package/src/overlays/model-selector.ts +107 -0
  478. package/src/overlays/move-overlay.ts +197 -0
  479. package/src/overlays/oauth-selector.ts +446 -0
  480. package/src/overlays/omfg-panel.ts +136 -0
  481. package/src/overlays/pause-screen.ts +198 -0
  482. package/src/overlays/plan-review-overlay.ts +1227 -0
  483. package/src/overlays/plan-save-overlay.ts +74 -0
  484. package/src/overlays/plan-toc.ts +139 -0
  485. package/src/overlays/plugin-selector.ts +97 -0
  486. package/src/overlays/plugin-settings.ts +839 -0
  487. package/src/overlays/queue-mode-selector.ts +55 -0
  488. package/src/overlays/reset-usage-selector.ts +170 -0
  489. package/src/overlays/rewind-selector.ts +499 -0
  490. package/src/overlays/running-subagent-badge.ts +19 -0
  491. package/src/overlays/session-account-selector.ts +68 -0
  492. package/src/overlays/session-info-overlay.ts +96 -0
  493. package/src/overlays/session-observer-registry.ts +289 -0
  494. package/src/overlays/session-selector.ts +1137 -0
  495. package/src/overlays/settings-defs.ts +315 -0
  496. package/src/overlays/settings-selector.ts +1415 -0
  497. package/src/overlays/show-images-selector.ts +44 -0
  498. package/src/overlays/snapcompact-shape-preview-doc.md +14 -0
  499. package/src/overlays/snapcompact-shape-preview.ts +192 -0
  500. package/src/overlays/theme-selector.ts +62 -0
  501. package/src/overlays/thinking-selector.ts +51 -0
  502. package/src/overlays/tiny-title-download-progress.ts +102 -0
  503. package/src/overlays/tree-selector.ts +1121 -0
  504. package/src/overlays/usage-dashboard.ts +629 -0
  505. package/src/overlays/usage-display.ts +45 -0
  506. package/src/overlays/usage-row.ts +118 -0
  507. package/src/prompt/attachment-chips.ts +201 -0
  508. package/src/prompt/composer-attachments.ts +280 -0
  509. package/src/prompt/composer-cache.ts +304 -0
  510. package/src/prompt/composer.ts +934 -0
  511. package/src/prompt/custom-editor.ts +1392 -0
  512. package/src/prompt/data/emojis.json +1 -0
  513. package/src/prompt/editor-top-gap.ts +28 -0
  514. package/src/prompt/emoji-autocomplete.ts +285 -0
  515. package/src/prompt/github-ref-autocomplete.ts +75 -0
  516. package/src/prompt/gradient-highlight.ts +101 -0
  517. package/src/prompt/image-format.ts +28 -0
  518. package/src/prompt/image-references.ts +102 -0
  519. package/src/prompt/interactive-context-helpers.ts +126 -0
  520. package/src/prompt/internal-url-autocomplete.ts +155 -0
  521. package/src/prompt/macos-spelling.ts +456 -0
  522. package/src/prompt/magic-keyword-boundary.ts +23 -0
  523. package/src/prompt/magic-keywords.ts +42 -0
  524. package/src/prompt/markdown-prose.ts +245 -0
  525. package/src/prompt/model-mention-autocomplete.ts +94 -0
  526. package/src/prompt/model-mention-syntax.ts +41 -0
  527. package/src/prompt/orchestrate.ts +26 -0
  528. package/src/prompt/prompt-action-autocomplete.ts +337 -0
  529. package/src/prompt/queue-input.ts +132 -0
  530. package/src/prompt/skill-tokens.ts +36 -0
  531. package/src/prompt/tips.txt +27 -0
  532. package/src/prompt/tools-markdown.ts +29 -0
  533. package/src/prompt/ultrathink.ts +26 -0
  534. package/src/prompt/usage-amounts.ts +99 -0
  535. package/src/prompt/video.ts +47 -0
  536. package/src/prompt/welcome.ts +605 -0
  537. package/src/prompt/workflow.ts +26 -0
  538. package/src/render/code-cell.ts +244 -0
  539. package/src/render/file-list.ts +58 -0
  540. package/src/render/hyperlink.ts +192 -0
  541. package/src/render/index.ts +17 -0
  542. package/src/render/output-block.ts +267 -0
  543. package/src/render/output-pane.ts +299 -0
  544. package/src/render/render-utils.ts +1182 -0
  545. package/src/render/sixel.ts +69 -0
  546. package/src/render/status-line.ts +55 -0
  547. package/src/render/tool-card.ts +272 -0
  548. package/src/render/tree-list.ts +188 -0
  549. package/src/render/types.ts +19 -0
  550. package/src/render/utils.ts +109 -0
  551. package/src/render/width-aware-text.ts +60 -0
  552. package/src/setup/lazy.ts +17 -0
  553. package/src/setup/scenes/composer.ts +127 -0
  554. package/src/setup/scenes/glyph.ts +120 -0
  555. package/src/setup/scenes/model.ts +138 -0
  556. package/src/setup/scenes/outro.ts +24 -0
  557. package/src/setup/scenes/providers.ts +107 -0
  558. package/src/setup/scenes/sign-in.ts +373 -0
  559. package/src/setup/scenes/splash.ts +192 -0
  560. package/src/setup/scenes/theme.ts +343 -0
  561. package/src/setup/scenes/types.ts +111 -0
  562. package/src/setup/scenes/web-search.ts +165 -0
  563. package/src/setup/setup-version.ts +11 -0
  564. package/src/setup/startup-splash.ts +107 -0
  565. package/src/setup/wizard-overlay.ts +319 -0
  566. package/src/setup/wizard.ts +101 -0
  567. package/src/status-line/component.ts +3003 -0
  568. package/src/status-line/context-usage.ts +688 -0
  569. package/src/status-line/footer.ts +323 -0
  570. package/src/status-line/git-utils.ts +42 -0
  571. package/src/status-line/host.ts +97 -0
  572. package/src/status-line/index.ts +6 -0
  573. package/src/status-line/loop.ts +28 -0
  574. package/src/status-line/metrics.ts +94 -0
  575. package/src/status-line/presets.ts +107 -0
  576. package/src/status-line/schema.ts +57 -0
  577. package/src/status-line/segments.ts +934 -0
  578. package/src/status-line/separators.ts +55 -0
  579. package/src/status-line/types.ts +227 -0
  580. package/src/stdin-buffer.ts +4 -2
  581. package/src/theme/color.ts +95 -0
  582. package/src/theme/dark.json +95 -0
  583. package/src/theme/defaults/alabaster.json +93 -0
  584. package/src/theme/defaults/amethyst.json +96 -0
  585. package/src/theme/defaults/anthracite.json +93 -0
  586. package/src/theme/defaults/basalt.json +91 -0
  587. package/src/theme/defaults/birch.json +95 -0
  588. package/src/theme/defaults/dark-abyss.json +91 -0
  589. package/src/theme/defaults/dark-arctic.json +104 -0
  590. package/src/theme/defaults/dark-aurora.json +95 -0
  591. package/src/theme/defaults/dark-catppuccin.json +107 -0
  592. package/src/theme/defaults/dark-cavern.json +91 -0
  593. package/src/theme/defaults/dark-celestial.json +106 -0
  594. package/src/theme/defaults/dark-copper.json +95 -0
  595. package/src/theme/defaults/dark-cosmos.json +90 -0
  596. package/src/theme/defaults/dark-cyberpunk.json +102 -0
  597. package/src/theme/defaults/dark-dracula.json +98 -0
  598. package/src/theme/defaults/dark-eclipse.json +91 -0
  599. package/src/theme/defaults/dark-ember.json +95 -0
  600. package/src/theme/defaults/dark-equinox.json +90 -0
  601. package/src/theme/defaults/dark-forest.json +96 -0
  602. package/src/theme/defaults/dark-github.json +105 -0
  603. package/src/theme/defaults/dark-gruvbox.json +112 -0
  604. package/src/theme/defaults/dark-lavender.json +95 -0
  605. package/src/theme/defaults/dark-lunar.json +89 -0
  606. package/src/theme/defaults/dark-midnight.json +95 -0
  607. package/src/theme/defaults/dark-monochrome.json +94 -0
  608. package/src/theme/defaults/dark-monokai.json +98 -0
  609. package/src/theme/defaults/dark-nebula.json +90 -0
  610. package/src/theme/defaults/dark-nord.json +98 -0
  611. package/src/theme/defaults/dark-ocean.json +101 -0
  612. package/src/theme/defaults/dark-one.json +100 -0
  613. package/src/theme/defaults/dark-poimandres.json +115 -0
  614. package/src/theme/defaults/dark-rainforest.json +91 -0
  615. package/src/theme/defaults/dark-reef.json +91 -0
  616. package/src/theme/defaults/dark-retro.json +92 -0
  617. package/src/theme/defaults/dark-rose-pine.json +96 -0
  618. package/src/theme/defaults/dark-sakura.json +95 -0
  619. package/src/theme/defaults/dark-slate.json +95 -0
  620. package/src/theme/defaults/dark-solarized.json +97 -0
  621. package/src/theme/defaults/dark-solstice.json +90 -0
  622. package/src/theme/defaults/dark-starfall.json +91 -0
  623. package/src/theme/defaults/dark-sunset.json +99 -0
  624. package/src/theme/defaults/dark-swamp.json +90 -0
  625. package/src/theme/defaults/dark-synthwave.json +103 -0
  626. package/src/theme/defaults/dark-taiga.json +91 -0
  627. package/src/theme/defaults/dark-terminal.json +95 -0
  628. package/src/theme/defaults/dark-tokyo-night.json +101 -0
  629. package/src/theme/defaults/dark-tundra.json +91 -0
  630. package/src/theme/defaults/dark-twilight.json +91 -0
  631. package/src/theme/defaults/dark-volcanic.json +91 -0
  632. package/src/theme/defaults/graphite.json +92 -0
  633. package/src/theme/defaults/index.ts +201 -0
  634. package/src/theme/defaults/light-arctic.json +107 -0
  635. package/src/theme/defaults/light-aurora-day.json +91 -0
  636. package/src/theme/defaults/light-canyon.json +91 -0
  637. package/src/theme/defaults/light-catppuccin.json +106 -0
  638. package/src/theme/defaults/light-cirrus.json +90 -0
  639. package/src/theme/defaults/light-coral.json +95 -0
  640. package/src/theme/defaults/light-cyberpunk.json +96 -0
  641. package/src/theme/defaults/light-dawn.json +90 -0
  642. package/src/theme/defaults/light-dunes.json +91 -0
  643. package/src/theme/defaults/light-eucalyptus.json +95 -0
  644. package/src/theme/defaults/light-forest.json +100 -0
  645. package/src/theme/defaults/light-frost.json +95 -0
  646. package/src/theme/defaults/light-github.json +115 -0
  647. package/src/theme/defaults/light-glacier.json +91 -0
  648. package/src/theme/defaults/light-gruvbox.json +108 -0
  649. package/src/theme/defaults/light-haze.json +90 -0
  650. package/src/theme/defaults/light-honeycomb.json +95 -0
  651. package/src/theme/defaults/light-lagoon.json +91 -0
  652. package/src/theme/defaults/light-lavender.json +95 -0
  653. package/src/theme/defaults/light-meadow.json +91 -0
  654. package/src/theme/defaults/light-mint.json +95 -0
  655. package/src/theme/defaults/light-monochrome.json +101 -0
  656. package/src/theme/defaults/light-ocean.json +99 -0
  657. package/src/theme/defaults/light-one.json +99 -0
  658. package/src/theme/defaults/light-opal.json +91 -0
  659. package/src/theme/defaults/light-orchard.json +91 -0
  660. package/src/theme/defaults/light-paper.json +95 -0
  661. package/src/theme/defaults/light-poimandres.json +115 -0
  662. package/src/theme/defaults/light-prism.json +90 -0
  663. package/src/theme/defaults/light-retro.json +98 -0
  664. package/src/theme/defaults/light-sand.json +95 -0
  665. package/src/theme/defaults/light-savanna.json +91 -0
  666. package/src/theme/defaults/light-solarized.json +102 -0
  667. package/src/theme/defaults/light-soleil.json +90 -0
  668. package/src/theme/defaults/light-sunset.json +99 -0
  669. package/src/theme/defaults/light-synthwave.json +98 -0
  670. package/src/theme/defaults/light-tokyo-night.json +111 -0
  671. package/src/theme/defaults/light-wetland.json +91 -0
  672. package/src/theme/defaults/light-zenith.json +89 -0
  673. package/src/theme/defaults/limestone.json +94 -0
  674. package/src/theme/defaults/mahogany.json +97 -0
  675. package/src/theme/defaults/marble.json +93 -0
  676. package/src/theme/defaults/obsidian.json +91 -0
  677. package/src/theme/defaults/onyx.json +91 -0
  678. package/src/theme/defaults/pearl.json +93 -0
  679. package/src/theme/defaults/porcelain.json +91 -0
  680. package/src/theme/defaults/quartz.json +96 -0
  681. package/src/theme/defaults/sandstone.json +95 -0
  682. package/src/theme/defaults/titanium.json +90 -0
  683. package/src/theme/index.ts +5 -0
  684. package/src/theme/light.json +93 -0
  685. package/src/theme/loader.ts +200 -0
  686. package/src/theme/mermaid-cache.ts +92 -0
  687. package/src/theme/schema-validation.ts +119 -0
  688. package/src/theme/schema.ts +168 -0
  689. package/src/theme/session-color.ts +253 -0
  690. package/src/theme/shimmer.ts +307 -0
  691. package/src/theme/symbols.ts +1433 -0
  692. package/src/theme/theme-class.ts +787 -0
  693. package/src/theme/theme-schema.json +463 -0
  694. package/src/theme/theme.ts +810 -0
  695. package/src/theme/tui-adapters.ts +339 -0
  696. package/src/thinking.ts +380 -0
  697. package/src/tools/agent-tree.ts +128 -0
  698. package/src/tools/ask.ts +482 -0
  699. package/src/tools/ast-edit.ts +210 -0
  700. package/src/tools/ast-grep.ts +171 -0
  701. package/src/tools/autoresearch.ts +287 -0
  702. package/src/tools/bash-interactive.ts +295 -0
  703. package/src/tools/bash.ts +468 -0
  704. package/src/tools/conflict-detect.ts +77 -0
  705. package/src/tools/debug.ts +167 -0
  706. package/src/tools/default-renderer.ts +172 -0
  707. package/src/tools/edit.ts +1258 -0
  708. package/src/tools/eval-format/code-mode-declarations.ts +61 -0
  709. package/src/tools/eval-format/index.ts +16 -0
  710. package/src/tools/eval-format/javascript.ts +952 -0
  711. package/src/tools/eval-format/python.ts +544 -0
  712. package/src/tools/eval.ts +835 -0
  713. package/src/tools/fetch.ts +226 -0
  714. package/src/tools/gh-format.ts +18 -0
  715. package/src/tools/github.ts +686 -0
  716. package/src/tools/glob.ts +213 -0
  717. package/src/tools/goal.ts +153 -0
  718. package/src/tools/grep.ts +385 -0
  719. package/src/tools/grouped-file-output.ts +211 -0
  720. package/src/tools/hashline-format.ts +59 -0
  721. package/src/tools/hub.ts +1488 -0
  722. package/src/tools/index.ts +71 -0
  723. package/src/tools/json-tree.ts +388 -0
  724. package/src/tools/line-ranges.ts +98 -0
  725. package/src/tools/list-limit.ts +43 -0
  726. package/src/tools/lsp.ts +702 -0
  727. package/src/tools/match-line-format.ts +20 -0
  728. package/src/tools/mcp.ts +309 -0
  729. package/src/tools/memory.ts +220 -0
  730. package/src/tools/output-meta.ts +367 -0
  731. package/src/tools/read.ts +628 -0
  732. package/src/tools/renderer.ts +107 -0
  733. package/src/tools/report-tool-issue.ts +13 -0
  734. package/src/tools/resolve.ts +139 -0
  735. package/src/tools/streaming-output.ts +1576 -0
  736. package/src/tools/subprocess.ts +39 -0
  737. package/src/tools/task-repair-args.ts +118 -0
  738. package/src/tools/task-yield-assembly.ts +147 -0
  739. package/src/tools/task.ts +2110 -0
  740. package/src/tools/terminal-output.ts +153 -0
  741. package/src/tools/think.ts +28 -0
  742. package/src/tools/todo.ts +580 -0
  743. package/src/tools/tool-errors.ts +15 -0
  744. package/src/tools/vibe.ts +420 -0
  745. package/src/tools/web-search.ts +409 -0
  746. package/src/tools/write.ts +511 -0
  747. package/src/tools/xd-url.ts +28 -0
  748. package/src/tools/xdev.ts +201 -0
  749. package/src/tui.ts +70 -8
  750. package/src/utils.ts +8 -0
@@ -0,0 +1,425 @@
1
+ import type { Usage } from "@oh-my-pi/pi-ai";
2
+ import type { ThemeColor } from "../theme/theme.js";
3
+ import type { ConfiguredThinkingLevel } from "../render/render-utils.js";
4
+ import { type Component } from "../tui.js";
5
+ import type { RenderResultOptions } from "./renderer.js";
6
+ import { type Theme } from "../theme/theme.js";
7
+ /** Render context threaded in from `ToolExecutionComponent.#buildRenderContext`. */
8
+ interface TaskRenderContext {
9
+ hasResult?: boolean;
10
+ /**
11
+ * The block left the transcript live region (detached spawn the transcript
12
+ * has moved past, or a sealed block): progress rows render static gray, so
13
+ * commit-eligible rows do not repaint after entering native scrollback.
14
+ */
15
+ frozen?: boolean;
16
+ /**
17
+ * Wall clock for time-derived rows (current-tool elapsed, retry countdown).
18
+ * The component freezes it once the block settles or any of its rows enter
19
+ * native scrollback, so identical-input rebuilds stay byte-identical with
20
+ * committed history. Absent: render with the live clock.
21
+ */
22
+ nowMs?: number;
23
+ }
24
+ type TaskRenderOptions = RenderResultOptions & {
25
+ renderContext?: TaskRenderContext;
26
+ };
27
+ /** Formats sanitized task identifiers as hierarchy breadcrumbs. */
28
+ export declare function formatTaskId(id: string): string;
29
+ /** Dim `⟨agent⟩` badge for a non-default agent type; empty for the generic worker. */
30
+ export declare function agentTypeBadge(agent: string | undefined, theme: Theme): string;
31
+ /**
32
+ * Render the tool call arguments.
33
+ */
34
+ export declare function renderCall(args: TaskParams, options: TaskRenderOptions, theme: Theme): Component;
35
+ /**
36
+ * Render the tool result.
37
+ */
38
+ export declare function renderResult(result: {
39
+ content: Array<{
40
+ type: string;
41
+ text?: string;
42
+ }>;
43
+ details?: TaskToolDetails;
44
+ isError?: boolean;
45
+ }, options: TaskRenderOptions, theme: Theme, args?: TaskParams): Component;
46
+ /** Tests whether a persisted tool result carries a task snapshot. */
47
+ export declare function isTaskToolDetails(value: unknown): value is TaskToolDetails;
48
+ /**
49
+ * Subagent ids visible on a task tool card, for click-to-focus hit-testing.
50
+ * Reads `progress[]` (in-flight) and `results[]` (settled) defensively — card
51
+ * details arrive as `unknown` through the tool-result pipeline — and recurses
52
+ * into the same nested snapshots the card renders (`extractedToolData.task`
53
+ * details plus the in-flight snapshot), so a click on a nested worker row
54
+ * resolves to that worker instead of an outer agent. Callers intersect with
55
+ * the live registry, which decides focusability and recency.
56
+ */
57
+ export declare function taskCardAgentIds(details: unknown): string[];
58
+ /** Renders settled child-task snapshots with bounded recursion and cycle detection. */
59
+ export declare function renderNestedTaskResults(detailsList: TaskToolDetails[], expanded: boolean, theme: Theme, seen?: WeakSet<object>, depth?: number, maxWidth?: number): string[];
60
+ /** Renders task calls and their live or settled agent results. */
61
+ export declare const taskToolRenderer: {
62
+ renderCall: typeof renderCall;
63
+ renderResult: typeof renderResult;
64
+ mergeCallAndResult: true;
65
+ };
66
+ /** Source of an agent definition */
67
+ export type AgentSource = "bundled" | "user" | "project";
68
+ /**
69
+ * Enforcement policy for a structured subagent output schema.
70
+ *
71
+ * `permissive` preserves legacy retry-budget overrides; `strict` turns every
72
+ * invalid final payload, including an exhausted retry override, into a failed
73
+ * `schema_violation` result.
74
+ */
75
+ export type StructuredSubagentSchemaMode = "permissive" | "strict";
76
+ /** Origin of the schema selected for a structured subagent invocation. */
77
+ export type StructuredSubagentSchemaSource = "caller" | "agent" | "session" | "none";
78
+ /** Final validation state of a structured subagent invocation. */
79
+ export type StructuredSubagentValidationStatus = "valid" | "invalid" | "unavailable";
80
+ /**
81
+ * Parsed structured completion and its schema-validation metadata.
82
+ *
83
+ * `data` is present whenever a payload could be assembled or parsed, even when
84
+ * strict validation rejects it. `error` explains unavailable or invalid
85
+ * validation without requiring consumers to parse presentation text.
86
+ */
87
+ export interface StructuredSubagentOutput {
88
+ source: StructuredSubagentSchemaSource;
89
+ mode: StructuredSubagentSchemaMode;
90
+ status: StructuredSubagentValidationStatus;
91
+ data?: unknown;
92
+ error?: string;
93
+ }
94
+ /** Display cap for a normalized one-line label (roster line, registry `displayName`, prompt field). */
95
+ export declare const LABEL_MAX = 80;
96
+ /** Single task item. Fields are optional defensively: args stream in token by token. */
97
+ export interface TaskItem {
98
+ /** Stable agent name; becomes the registry/IRC id. Default = generated AdjectiveNoun. */
99
+ name?: string;
100
+ /** Agent type to run this item (e.g. "scout"). Defaults to the spawn policy's default agent. */
101
+ agent?: string;
102
+ /** The work; required by the schema. */
103
+ task?: string;
104
+ /** Per-spawn thinking effort: lowest/middle/highest level the resolved model supports. Overrides the agent's default selector (e.g. `auto`). */
105
+ effort?: "lo" | "med" | "hi";
106
+ /** Caller-provided output schema; its presence overrides the selected agent's schema. */
107
+ outputSchema?: unknown;
108
+ /** Validation behavior for a caller-provided or inherited output schema. */
109
+ schemaMode?: "permissive" | "strict";
110
+ /** Eval-defined tool names exposed to this child. */
111
+ tools?: string[];
112
+ /** Run this spawn in an isolated worktree (batch form; flat form carries it top-level). */
113
+ isolated?: boolean;
114
+ }
115
+ /**
116
+ * Runtime params union over both wire shapes. The model sees exactly one shape
117
+ * (`{ context, tasks[] }` when `task.batch` is on, `{ name?, agent?, task }`
118
+ * otherwise); runtime stays permissive so internal callers and stale
119
+ * transcripts using the flat form keep working under either setting.
120
+ */
121
+ export interface TaskParams {
122
+ /** Stable agent name (flat form). */
123
+ name?: string;
124
+ /** Agent type to spawn (flat form); omitted values resolve from the session spawn policy. */
125
+ agent?: string;
126
+ /** The work (flat form). */
127
+ task?: string;
128
+ /** Per-spawn thinking effort (flat form): lowest/middle/highest level the resolved model supports. */
129
+ effort?: "lo" | "med" | "hi";
130
+ /** Caller-provided output schema; its presence overrides the selected agent's schema. */
131
+ outputSchema?: unknown;
132
+ /** Validation behavior for a caller-provided or inherited output schema. */
133
+ schemaMode?: "permissive" | "strict";
134
+ /** Eval-defined tool names exposed to the flat-form child. */
135
+ tools?: string[];
136
+ /** Batch form (`task.batch`): one subagent per item. */
137
+ tasks?: TaskItem[];
138
+ /** Batch form: shared background prepended to every assignment; required by the batch schema. */
139
+ context?: string;
140
+ /** Run in an isolated worktree (flat form; per-item in batch form). */
141
+ isolated?: boolean;
142
+ }
143
+ /**
144
+ * One-line, length-capped label safe for a single roster line, a registry
145
+ * `displayName`, or a system-prompt field. Collapses every run of whitespace
146
+ * AND control/format characters — including U+0085 NEL, ESC/ANSI, and the
147
+ * zero-width separators that `\s` misses — to a single space, then caps length.
148
+ * So untrusted text (a generated task label, a peer activity gist) can neither
149
+ * break the line, inject prompt structure, nor smuggle terminal escapes. Caps at
150
+ * `max` characters (clamped to >= 1; default `LABEL_MAX`), appending an ellipsis when truncated.
151
+ */
152
+ export declare function oneLineLabel(text: string, max?: number): string;
153
+ /** A code review finding reported by the reviewer agent */
154
+ export interface ReviewFinding {
155
+ title: string;
156
+ body: string;
157
+ priority: number;
158
+ confidence: number;
159
+ file_path: string;
160
+ line_start: number;
161
+ line_end: number;
162
+ }
163
+ /** Review summary submitted by the reviewer agent */
164
+ export interface ReviewSummary {
165
+ overall_correctness: "correct" | "incorrect";
166
+ explanation: string;
167
+ confidence: number;
168
+ }
169
+ /** Structured review data extracted from reviewer agent */
170
+ export interface ReviewData {
171
+ findings: ReviewFinding[];
172
+ summary?: ReviewSummary;
173
+ }
174
+ /** Details extracted from a subagent `yield` tool call for final-result assembly and task rendering. */
175
+ export interface YieldItem {
176
+ data?: unknown;
177
+ status?: "success" | "aborted";
178
+ error?: string;
179
+ /** A string label is terminal; a non-empty array of labels is incremental. */
180
+ type?: string | string[];
181
+ /** Resolve this yield's payload from the latest durable assistant text instead of `data`. */
182
+ useLastTurn?: boolean;
183
+ /** True when an incremental workpool yield completed every item in its batch. */
184
+ complete?: boolean;
185
+ /**
186
+ * Set by the in-tool yield validator when it exhausted its retry budget and
187
+ * accepted schema-invalid data anyway. The executor preserves that override
188
+ * during post-mortem validation.
189
+ */
190
+ schemaOverridden?: boolean;
191
+ }
192
+ /** Progress tracking for a single agent */
193
+ export interface AgentProgress {
194
+ index: number;
195
+ id: string;
196
+ agent: string;
197
+ agentSource: AgentSource;
198
+ status: "pending" | "running" | "completed" | "failed" | "aborted";
199
+ task: string;
200
+ assignment?: string;
201
+ description?: string;
202
+ lastIntent?: string;
203
+ currentTool?: string;
204
+ currentToolArgs?: string;
205
+ currentToolStartMs?: number;
206
+ recentTools: Array<{
207
+ tool: string;
208
+ args: string;
209
+ endMs: number;
210
+ }>;
211
+ recentOutput: string[];
212
+ toolCount: number;
213
+ /** Count of assistant requests (assistant message_end events) across the run. Drives the soft request budget guard. */
214
+ requests: number;
215
+ /** Cumulative input + output + cacheWrite tokens across all turns. Excludes cacheRead (re-reads cached context every turn, making cumulative sum misleading). */
216
+ tokens: number;
217
+ /**
218
+ * Current per-turn context size: latest assistant message's `usage.totalTokens`.
219
+ * This is the number to compare against `contextWindow` — what compaction
220
+ * decides on, what the user typically reads as "how full is the context".
221
+ * Distinct from `tokens`, which is a lifetime billing-volume counter.
222
+ */
223
+ contextTokens?: number;
224
+ /** Model's context window in tokens, when known. Lets the UI render `<curr>/<window>` gauges. */
225
+ contextWindow?: number;
226
+ /** Cumulative billing cost in USD, accumulated incrementally from message_end events. */
227
+ cost: number;
228
+ durationMs: number;
229
+ modelOverride?: string | string[];
230
+ /** Explicit pre-expansion model role alias selected for this run. */
231
+ modelRole?: string;
232
+ /** Resolved model display string in the form `<provider>/<id>`, optionally suffixed with `:<thinkingLevel>` when the level was set explicitly. Undefined when the model could not be resolved. */
233
+ resolvedModel?: string;
234
+ /** Provider/id including routing, with no added thinking suffix. */
235
+ resolvedModelIdentity?: string;
236
+ /** Explicit thinking metadata; never inferred from the model identity. */
237
+ resolvedThinkingLevel?: ConfiguredThinkingLevel;
238
+ /** True when {@link resolvedModel} is the target of an active retry fallback (not the originally configured model). Lets observer-only UIs (collab guests, Agent Hub rows with no live session) flag the fallback and keep the provider. */
239
+ resolvedModelIsFallback?: boolean;
240
+ /** True when a live advisor was attached to this run's session, not merely enabled in settings. */
241
+ advisor?: boolean;
242
+ /** Data extracted by registered subprocess tool handlers (keyed by tool name) */
243
+ extractedToolData?: Record<string, unknown[]>;
244
+ /**
245
+ * Auto-retry state when the subagent is sleeping between provider retries
246
+ * (e.g. 429 rate-limit with retry-after). Cleared when the retry resolves
247
+ * or fails. Surfacing this to the parent prevents the task tool from
248
+ * looking indefinitely "in progress" when a child is actually blocked on
249
+ * provider quota.
250
+ */
251
+ retryState?: {
252
+ attempt: number;
253
+ maxAttempts: number;
254
+ delayMs: number;
255
+ errorMessage: string;
256
+ startedAtMs: number;
257
+ };
258
+ /**
259
+ * Terminal retry failure surfaced once the subagent gave up retrying
260
+ * (e.g. retry-after exceeded the cap, or all attempts exhausted). Carries
261
+ * the final error so the parent UI can render "blocked: rate-limited"
262
+ * instead of waiting for a status that never arrives.
263
+ */
264
+ retryFailure?: {
265
+ attempt: number;
266
+ errorMessage: string;
267
+ };
268
+ /**
269
+ * Snapshot of the most recent `task` tool call's in-flight `TaskToolDetails`,
270
+ * captured from `tool_execution_update`. Lets the parent UI surface live
271
+ * nested-subagent progress while this agent is still inside its own `task`
272
+ * call. Cleared when the call ends — finalized data lives in
273
+ * `extractedToolData.task` after that.
274
+ */
275
+ inflightTaskDetails?: TaskToolDetails;
276
+ }
277
+ /** Result from a single agent execution */
278
+ export interface SingleResult {
279
+ index: number;
280
+ id: string;
281
+ agent: string;
282
+ agentSource: AgentSource;
283
+ task: string;
284
+ assignment?: string;
285
+ description?: string;
286
+ lastIntent?: string;
287
+ exitCode: number;
288
+ output: string;
289
+ stderr: string;
290
+ truncated: boolean;
291
+ /**
292
+ * Parsed structured completion and validation metadata, when this invocation
293
+ * selected an output schema or strict schema mode.
294
+ */
295
+ structuredOutput?: StructuredSubagentOutput;
296
+ durationMs: number;
297
+ /** Cumulative input + output + cacheWrite tokens across all turns. Excludes cacheRead (re-reads cached context every turn, making cumulative sum misleading). */
298
+ tokens: number;
299
+ /** Count of assistant requests (assistant message_end events) across the run. */
300
+ requests: number;
301
+ /** Latest per-turn context size at task completion. See `AgentProgress.contextTokens`. */
302
+ contextTokens?: number;
303
+ /** Model's context window in tokens, when known. */
304
+ contextWindow?: number;
305
+ modelOverride?: string | string[];
306
+ /** Explicit pre-expansion model role alias selected for this run. */
307
+ modelRole?: string;
308
+ /** Resolved model display string in the form `<provider>/<id>`, optionally suffixed with `:<thinkingLevel>` when the level was set explicitly. Omitted from tool-result JSON when undefined to keep wire payloads small. */
309
+ resolvedModel?: string;
310
+ /** Retains the unambiguous identity from {@link AgentProgress.resolvedModelIdentity}. */
311
+ resolvedModelIdentity?: string;
312
+ /** Retains {@link AgentProgress.resolvedThinkingLevel} after settlement. */
313
+ resolvedThinkingLevel?: ConfiguredThinkingLevel;
314
+ /** True when {@link resolvedModel} is the target of an active retry fallback. Mirrors {@link AgentProgress.resolvedModelIsFallback} onto the settled result. */
315
+ resolvedModelIsFallback?: boolean;
316
+ /** Retains {@link AgentProgress.advisor} after the advised session is disposed. */
317
+ advisor?: boolean;
318
+ error?: string;
319
+ aborted?: boolean;
320
+ abortReason?: string;
321
+ /** Aggregated usage from the subprocess, accumulated incrementally from message_end events. */
322
+ usage?: Usage;
323
+ /** Output path for the task result */
324
+ outputPath?: string;
325
+ /**
326
+ * Ran inside an isolation worktree. Such agents are parked without a
327
+ * reviver once the worktree is torn down, so they are never resumable or
328
+ * messageable after the run — summaries must not suggest otherwise.
329
+ */
330
+ isolated?: boolean;
331
+ /** Patch path for isolated worktree output */
332
+ patchPath?: string;
333
+ /**
334
+ * Whether `patchPath` holds a non-empty root-repo diff. `false` when the
335
+ * agent's changes all live in nested repos (see `nestedPatchPaths`), so
336
+ * summaries do not claim the root patch captured anything.
337
+ */
338
+ hasRootChanges?: boolean;
339
+ /** Branch name for isolated branch-mode output */
340
+ branchName?: string;
341
+ /**
342
+ * Baseline commit SHA the task branch was created from. Passed to
343
+ * `mergeTaskBranches` so cherry-pick uses the inclusive range
344
+ * `branchBaseSha..branchName` and preserves every agent commit's message.
345
+ */
346
+ branchBaseSha?: string;
347
+ /** Nested repo patches to apply after parent merge */
348
+ nestedPatches?: NestedRepoPatch[];
349
+ /**
350
+ * On-disk copies of `nestedPatches`, one file per nested repo, written
351
+ * before the isolation workspace is torn down. The workspace is the only
352
+ * other copy of that work, so these paths are the durable record.
353
+ */
354
+ nestedPatchPaths?: string[];
355
+ /** Data extracted by registered subprocess tool handlers (keyed by tool name) */
356
+ extractedToolData?: Record<string, unknown[]>;
357
+ /**
358
+ * Terminal retry failure, when the subagent exited because the auto-retry
359
+ * loop gave up (retry-after exceeded the cap, or all attempts exhausted).
360
+ * Lets the parent task tool surface a "blocked: rate-limited" outcome
361
+ * instead of a generic failure.
362
+ */
363
+ retryFailure?: {
364
+ attempt: number;
365
+ errorMessage: string;
366
+ };
367
+ /** Output metadata for agent:// URL integration */
368
+ outputMeta?: {
369
+ lineCount: number;
370
+ charCount: number;
371
+ };
372
+ }
373
+ /** Tool details for TUI rendering */
374
+ export interface TaskToolDetails {
375
+ projectAgentsDir: string | null;
376
+ results: SingleResult[];
377
+ totalDurationMs: number;
378
+ /** Aggregated usage across all subagents. */
379
+ usage?: Usage;
380
+ outputPaths?: string[];
381
+ progress?: AgentProgress[];
382
+ async?: {
383
+ state: "running" | "completed" | "failed";
384
+ jobId: string;
385
+ type: "task";
386
+ };
387
+ }
388
+ /** Patch and baseline metadata for an isolated nested repository. */
389
+ export interface NestedRepoPatch {
390
+ relativePath: string;
391
+ patch: string;
392
+ }
393
+ /** Severity level of a review finding. */
394
+ export type FindingPriority = "P0" | "P1" | "P2" | "P3";
395
+ /** Severity ordering, glyph, and color for a review finding. */
396
+ export interface FindingPriorityInfo {
397
+ ord: 0 | 1 | 2 | 3;
398
+ symbol: "status.error" | "status.warning" | "status.info";
399
+ color: ThemeColor;
400
+ }
401
+ /** Review severity levels in descending priority. */
402
+ export declare const PRIORITY_LABELS: FindingPriority[];
403
+ /** Tests whether a value is a supported review severity. */
404
+ export declare function isFindingPriority(value: unknown): value is FindingPriority;
405
+ /** Returns display metadata for a review severity. */
406
+ export declare function getPriorityInfo(priority: FindingPriority): FindingPriorityInfo;
407
+ /** Validated source location and content of a review finding. */
408
+ export interface FindingDetails {
409
+ title: string;
410
+ body: string;
411
+ priority: FindingPriority;
412
+ confidence: number;
413
+ file_path: string;
414
+ line_start: number;
415
+ line_end: number;
416
+ }
417
+ /** Validates and normalizes a persisted review finding. */
418
+ export declare function parseFindingDetails(value: unknown): FindingDetails | undefined;
419
+ /** SubmitReviewDetails - used for rendering review results from yield tool */
420
+ export interface SubmitReviewDetails {
421
+ overall_correctness: "correct" | "incorrect";
422
+ explanation: string;
423
+ confidence: number;
424
+ }
425
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { Terminal as XtermTerminal } from "@oh-my-pi/pi-utils/vterm";
2
+ import type * as XtermModule from "@oh-my-pi/pi-utils/vterm";
3
+ /** Lazily load the headless terminal shared by PTY display paths. */
4
+ export declare function loadXtermTerminal(): Promise<typeof XtermModule.Terminal>;
5
+ /** Applies the active tool-output color while preserving safe styles from a virtual terminal row. */
6
+ export declare function styleTerminalRow(row: string, baseForeground: string): string;
7
+ /** Reads terminal screen rows as sanitized text plus only the styles the TUI may replay. */
8
+ export declare function readTerminalRows(terminal: XtermTerminal, startRow: number, rowCount: number): string[];
@@ -0,0 +1,13 @@
1
+ import { type Component } from "../index.js";
2
+ import type { RenderResultOptions } from "./renderer.js";
3
+ import { type Theme } from "../theme/theme.js";
4
+ /** Streamed private scratchpad text. */
5
+ export type ThinkRenderArgs = {
6
+ thoughts?: string;
7
+ };
8
+ /** Render private scratchpad text without a result block. */
9
+ export declare const thinkToolRenderer: {
10
+ inline: true;
11
+ renderCall(args: ThinkRenderArgs, _options: RenderResultOptions, uiTheme: Theme): Component;
12
+ renderResult(): undefined;
13
+ };
@@ -0,0 +1,118 @@
1
+ import type { Component } from "../index.js";
2
+ import type { RenderResultOptions } from "./renderer.js";
3
+ import type { Theme } from "../theme/theme.js";
4
+ /** Lifecycle state of a todo item. */
5
+ export type TodoStatus = "pending" | "in_progress" | "completed" | "abandoned" | "blocked";
6
+ /** Operation names accepted by the todo tool and echoed in successful result details. */
7
+ export type TodoOperation = "init" | "start" | "done" | "rm" | "drop" | "block" | "unblock" | "append" | "view";
8
+ /** A task displayed within a todo phase. */
9
+ export interface TodoItem {
10
+ content: string;
11
+ status: TodoStatus;
12
+ /** When `status === "blocked"`, an optional note on what the task is waiting for. */
13
+ blocker?: string;
14
+ details?: string;
15
+ notes?: string[];
16
+ }
17
+ /** A named group of todo tasks. */
18
+ export interface TodoPhase {
19
+ name: string;
20
+ tasks: TodoItem[];
21
+ }
22
+ /** A task that became complete in the latest update. */
23
+ export interface TodoCompletionTransition {
24
+ phase: string;
25
+ content: string;
26
+ }
27
+ /** Todo snapshot and transitions displayed after an operation. */
28
+ export interface TodoToolDetails {
29
+ /** Operation that produced this snapshot; absent on legacy transcript entries. */
30
+ op?: TodoOperation;
31
+ phases: TodoPhase[];
32
+ storage: "session" | "memory";
33
+ completedTasks?: TodoCompletionTransition[];
34
+ }
35
+ /**
36
+ * Report whether `content` likely names the same work as any entry in
37
+ * `descriptions`. Used by the sticky todo panel to light up a pending todo
38
+ * when an in-flight subagent is doing the work for it, without requiring
39
+ * the caller to flip the todo's status.
40
+ *
41
+ * Matching is normalize-then-equal first (lowercased; punctuation and
42
+ * whitespace runs both collapsed to a single space; trimmed), with a
43
+ * substring fallback in either direction so minor wording drift
44
+ * ("Sonnet #2: bug scan" vs "Sonnet #2") still links up. The substring
45
+ * fallback requires at least {@link TODO_DESCRIPTION_MIN_OVERLAP} chars on
46
+ * the contained side.
47
+ */
48
+ export declare function todoMatchesAnyDescription(content: string, descriptions: readonly string[]): boolean;
49
+ /** Whether a todo is settled: completed or deliberately abandoned. Shared so
50
+ * the collapsed viewport, the HUD progress counters, and the HUD's closed-todo
51
+ * auto-clear can never disagree about what "done" hides. */
52
+ export declare function isClosedTodo<T extends {
53
+ status: TodoStatus;
54
+ }>(task: T): boolean;
55
+ /** Result of {@link selectCollapsedTodos}: the rows to render plus an optional
56
+ * summary line (empty string ⇒ no summary row). */
57
+ export interface CollapsedTodoSelection<T> {
58
+ items: T[];
59
+ summary: string;
60
+ }
61
+ /**
62
+ * Walking-viewport selection for a phase's collapsed todo preview (#5873).
63
+ *
64
+ * Applied to `tasks` in todo order: the open tasks run through
65
+ * {@link selectWithinCap}, led by the last {@link COLLAPSED_CLOSED_CONTEXT}
66
+ * closed tasks in todo order so a checked row remains visible even when callers
67
+ * complete work out of sequence. The lead is additive — it never costs an open
68
+ * row — and a phase with no open work left falls back to its closed tasks so the
69
+ * sticky HUD's closed-todo persistence still has something to render.
70
+ *
71
+ * `summary` counts the open tasks that did not fit; the closed lead is context,
72
+ * not part of the budget.
73
+ */
74
+ export declare function selectCollapsedTodos<T extends {
75
+ status: TodoStatus;
76
+ }>(tasks: T[], isMatched: (task: T) => boolean, cap: number): CollapsedTodoSelection<T>;
77
+ type TodoRenderOp = {
78
+ op?: string;
79
+ task?: string;
80
+ phase?: string;
81
+ items?: string[];
82
+ };
83
+ /** New single-op shape `{op,...}`; legacy `{ops:[...]}` still seen in old transcripts. */
84
+ type TodoRenderArgs = TodoRenderOp & {
85
+ ops?: TodoRenderOp[];
86
+ };
87
+ /** One-based ASCII roman numeral for display (I, II, III, IV, …). */
88
+ export declare function phaseRomanNumeral(oneBasedIndex: number): string;
89
+ /**
90
+ * Display-only phase header: `I. Foundation`. State and prompts never see this.
91
+ *
92
+ * Sanitized for the same reason task labels are: this is a render boundary and
93
+ * the name may carry provider or session text holding control sequences. The
94
+ * raw `phase.name` stays the lookup key everywhere else.
95
+ */
96
+ export declare function formatPhaseDisplayName(name: string, oneBasedIndex: number): string;
97
+ /** Frames held before revealing a completion strike. */
98
+ export declare const TODO_STRIKE_HOLD_FRAMES = 2;
99
+ /** Frames used to reveal a completion strike. */
100
+ export declare const TODO_STRIKE_REVEAL_FRAMES = 12;
101
+ /** Total frames in the completion strike animation. */
102
+ export declare const TODO_STRIKE_TOTAL_FRAMES: number;
103
+ /** Wire the live-subagent description source for {@link todoToolRenderer}. */
104
+ export declare function setActiveTodoDescriptionsProvider(provider: () => readonly string[]): void;
105
+ /** Render todo operations and phased task snapshots. */
106
+ export declare const todoToolRenderer: {
107
+ renderCall(args: TodoRenderArgs, options: RenderResultOptions, uiTheme: Theme): Component;
108
+ renderResult(result: {
109
+ content: Array<{
110
+ type: string;
111
+ text?: string;
112
+ }>;
113
+ details?: TodoToolDetails;
114
+ isError?: boolean;
115
+ }, options: RenderResultOptions, uiTheme: Theme, args?: TodoRenderArgs): Component;
116
+ mergeCallAndResult: true;
117
+ };
118
+ export {};
@@ -0,0 +1,7 @@
1
+ /** Structured tool failure shared by selector parsing and host tool execution. */
2
+ export declare class ToolError extends Error {
3
+ readonly context?: Record<string, unknown> | undefined;
4
+ constructor(message: string, context?: Record<string, unknown> | undefined);
5
+ /** Render error for LLM consumption. Override for custom formatting. */
6
+ render(): string;
7
+ }