@oh-my-pi/pi-tui 18.2.4 → 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 (748) hide show
  1. package/CHANGELOG.md +23 -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/key-value-list.d.ts +24 -0
  92. package/dist/types/components/layout/geometry.d.ts +73 -0
  93. package/dist/types/components/layout/row.d.ts +55 -0
  94. package/dist/types/components/layout/split-pane.d.ts +80 -0
  95. package/dist/types/components/layout/stack.d.ts +50 -0
  96. package/dist/types/components/menu-selection.d.ts +71 -0
  97. package/dist/types/components/metric.d.ts +44 -0
  98. package/dist/types/components/progress-bar.d.ts +36 -0
  99. package/dist/types/components/scroll-view.d.ts +53 -19
  100. package/dist/types/components/scroll-viewport.d.ts +46 -0
  101. package/dist/types/components/section.d.ts +19 -0
  102. package/dist/types/components/select-list.d.ts +46 -2
  103. package/dist/types/components/settings-list.d.ts +20 -0
  104. package/dist/types/components/table.d.ts +32 -0
  105. package/dist/types/components/tree-view.d.ts +130 -0
  106. package/dist/types/components/wizard-step.d.ts +60 -0
  107. package/dist/types/hotkeys-markdown.d.ts +7 -0
  108. package/dist/types/index.d.ts +17 -0
  109. package/dist/types/keybinding-matchers.d.ts +35 -0
  110. package/dist/types/keys.d.ts +2 -2
  111. package/dist/types/lang-from-path.d.ts +9 -0
  112. package/dist/types/overlays/advisor-config.d.ts +114 -0
  113. package/dist/types/overlays/agent-activity.d.ts +41 -0
  114. package/dist/types/overlays/agent-hub-projection.d.ts +33 -0
  115. package/dist/types/overlays/agent-hub-renderer.d.ts +53 -0
  116. package/dist/types/overlays/agent-hub-types.d.ts +99 -0
  117. package/dist/types/overlays/agent-hub.d.ts +126 -0
  118. package/dist/types/overlays/agent-transcript-viewer.d.ts +71 -0
  119. package/dist/types/overlays/agents-hub.d.ts +72 -0
  120. package/dist/types/overlays/ask-dialog.d.ts +88 -0
  121. package/dist/types/overlays/bordered-loader.d.ts +11 -0
  122. package/dist/types/overlays/btw-history-panel.d.ts +29 -0
  123. package/dist/types/overlays/btw-history.d.ts +17 -0
  124. package/dist/types/overlays/btw-panel.d.ts +26 -0
  125. package/dist/types/overlays/cleanse-panel.d.ts +36 -0
  126. package/dist/types/overlays/codex-reset-fireworks.d.ts +52 -0
  127. package/dist/types/overlays/composer-shape-preview.d.ts +47 -0
  128. package/dist/types/overlays/composer-shape-registry.d.ts +50 -0
  129. package/dist/types/overlays/copy-selector.d.ts +48 -0
  130. package/dist/types/overlays/copy-targets.d.ts +63 -0
  131. package/dist/types/overlays/error-banner.d.ts +13 -0
  132. package/dist/types/overlays/extensions/display-text.d.ts +10 -0
  133. package/dist/types/overlays/extensions/extension-dashboard.d.ts +63 -0
  134. package/dist/types/overlays/extensions/extension-list.d.ts +54 -0
  135. package/dist/types/overlays/extensions/inspector-model.d.ts +109 -0
  136. package/dist/types/overlays/extensions/inspector-panel.d.ts +17 -0
  137. package/dist/types/overlays/extensions/live-tool-session.d.ts +28 -0
  138. package/dist/types/overlays/extensions/mcp-runtime.d.ts +107 -0
  139. package/dist/types/overlays/extensions/state-manager.d.ts +42 -0
  140. package/dist/types/overlays/extensions/types.d.ts +165 -0
  141. package/dist/types/overlays/history-search.d.ts +16 -0
  142. package/dist/types/overlays/hook-editor.d.ts +44 -0
  143. package/dist/types/overlays/hook-input.d.ts +20 -0
  144. package/dist/types/overlays/hook-selector.d.ts +71 -0
  145. package/dist/types/overlays/hub-frame.d.ts +77 -0
  146. package/dist/types/overlays/login-dialog.d.ts +43 -0
  147. package/dist/types/overlays/logout-account-selector.d.ts +15 -0
  148. package/dist/types/overlays/mcp-add-wizard.d.ts +87 -0
  149. package/dist/types/overlays/model-browser.d.ts +213 -0
  150. package/dist/types/overlays/model-hub.d.ts +72 -0
  151. package/dist/types/overlays/model-picker.d.ts +74 -0
  152. package/dist/types/overlays/model-selector.d.ts +52 -0
  153. package/dist/types/overlays/move-overlay.d.ts +39 -0
  154. package/dist/types/overlays/oauth-selector.d.ts +41 -0
  155. package/dist/types/overlays/omfg-panel.d.ts +20 -0
  156. package/dist/types/overlays/pause-screen.d.ts +43 -0
  157. package/dist/types/overlays/plan-review-overlay.d.ts +89 -0
  158. package/dist/types/overlays/plan-save-overlay.d.ts +19 -0
  159. package/dist/types/overlays/plan-toc.d.ts +41 -0
  160. package/dist/types/overlays/plugin-selector.d.ts +28 -0
  161. package/dist/types/overlays/plugin-settings.d.ts +180 -0
  162. package/dist/types/overlays/queue-mode-selector.d.ts +11 -0
  163. package/dist/types/overlays/reset-usage-selector.d.ts +23 -0
  164. package/dist/types/overlays/rewind-selector.d.ts +61 -0
  165. package/dist/types/overlays/running-subagent-badge.d.ts +6 -0
  166. package/dist/types/overlays/session-account-selector.d.ts +24 -0
  167. package/dist/types/overlays/session-info-overlay.d.ts +17 -0
  168. package/dist/types/overlays/session-observer-registry.d.ts +77 -0
  169. package/dist/types/overlays/session-selector.d.ts +131 -0
  170. package/dist/types/overlays/settings-defs.d.ts +119 -0
  171. package/dist/types/overlays/settings-selector.d.ts +73 -0
  172. package/dist/types/overlays/show-images-selector.d.ts +11 -0
  173. package/dist/types/overlays/snapcompact-shape-preview.d.ts +31 -0
  174. package/dist/types/overlays/theme-selector.d.ts +12 -0
  175. package/dist/types/overlays/thinking-selector.d.ts +12 -0
  176. package/dist/types/overlays/tiny-title-download-progress.d.ts +21 -0
  177. package/dist/types/overlays/tree-selector.d.ts +92 -0
  178. package/dist/types/overlays/usage-dashboard.d.ts +94 -0
  179. package/dist/types/overlays/usage-display.d.ts +5 -0
  180. package/dist/types/overlays/usage-row.d.ts +17 -0
  181. package/dist/types/prompt/attachment-chips.d.ts +19 -0
  182. package/dist/types/prompt/composer-attachments.d.ts +71 -0
  183. package/dist/types/prompt/composer-cache.d.ts +37 -0
  184. package/dist/types/prompt/composer.d.ts +159 -0
  185. package/dist/types/prompt/custom-editor.d.ts +261 -0
  186. package/dist/types/prompt/editor-top-gap.d.ts +18 -0
  187. package/dist/types/prompt/emoji-autocomplete.d.ts +16 -0
  188. package/dist/types/prompt/github-ref-autocomplete.d.ts +35 -0
  189. package/dist/types/prompt/gradient-highlight.d.ts +32 -0
  190. package/dist/types/prompt/image-format.d.ts +4 -0
  191. package/dist/types/prompt/image-references.d.ts +26 -0
  192. package/dist/types/prompt/interactive-context-helpers.d.ts +43 -0
  193. package/dist/types/prompt/internal-url-autocomplete.d.ts +56 -0
  194. package/dist/types/prompt/macos-spelling.d.ts +44 -0
  195. package/dist/types/prompt/magic-keyword-boundary.d.ts +9 -0
  196. package/dist/types/prompt/magic-keywords.d.ts +26 -0
  197. package/dist/types/prompt/markdown-prose.d.ts +15 -0
  198. package/dist/types/prompt/model-mention-autocomplete.d.ts +25 -0
  199. package/dist/types/prompt/model-mention-syntax.d.ts +24 -0
  200. package/dist/types/prompt/orchestrate.d.ts +13 -0
  201. package/dist/types/prompt/prompt-action-autocomplete.d.ts +56 -0
  202. package/dist/types/prompt/queue-input.d.ts +8 -0
  203. package/dist/types/prompt/skill-tokens.d.ts +13 -0
  204. package/dist/types/prompt/tools-markdown.d.ts +12 -0
  205. package/dist/types/prompt/ultrathink.d.ts +13 -0
  206. package/dist/types/prompt/usage-amounts.d.ts +26 -0
  207. package/dist/types/prompt/video.d.ts +18 -0
  208. package/dist/types/prompt/welcome.d.ts +83 -0
  209. package/dist/types/prompt/workflow.d.ts +13 -0
  210. package/dist/types/render/code-cell.d.ts +51 -0
  211. package/dist/types/render/file-list.d.ts +22 -0
  212. package/dist/types/render/hyperlink.d.ts +80 -0
  213. package/dist/types/render/index.d.ts +16 -0
  214. package/dist/types/render/output-block.d.ts +54 -0
  215. package/dist/types/render/output-pane.d.ts +80 -0
  216. package/dist/types/render/render-utils.d.ts +312 -0
  217. package/dist/types/render/sixel.d.ts +21 -0
  218. package/dist/types/render/status-line.d.ts +23 -0
  219. package/dist/types/render/tool-card.d.ts +71 -0
  220. package/dist/types/render/tree-list.d.ts +29 -0
  221. package/dist/types/render/types.d.ts +17 -0
  222. package/dist/types/render/utils.d.ts +43 -0
  223. package/dist/types/render/width-aware-text.d.ts +23 -0
  224. package/dist/types/setup/lazy.d.ts +3 -0
  225. package/dist/types/setup/scenes/composer.d.ts +3 -0
  226. package/dist/types/setup/scenes/glyph.d.ts +3 -0
  227. package/dist/types/setup/scenes/model.d.ts +3 -0
  228. package/dist/types/setup/scenes/outro.d.ts +2 -0
  229. package/dist/types/setup/scenes/providers.d.ts +3 -0
  230. package/dist/types/setup/scenes/sign-in.d.ts +21 -0
  231. package/dist/types/setup/scenes/splash.d.ts +11 -0
  232. package/dist/types/setup/scenes/theme.d.ts +3 -0
  233. package/dist/types/setup/scenes/types.d.ts +110 -0
  234. package/dist/types/setup/scenes/web-search.d.ts +22 -0
  235. package/dist/types/setup/setup-version.d.ts +11 -0
  236. package/dist/types/setup/startup-splash.d.ts +9 -0
  237. package/dist/types/setup/wizard-overlay.d.ts +16 -0
  238. package/dist/types/setup/wizard.d.ts +25 -0
  239. package/dist/types/status-line/component.d.ts +182 -0
  240. package/dist/types/status-line/context-usage.d.ts +156 -0
  241. package/dist/types/status-line/footer.d.ts +30 -0
  242. package/dist/types/status-line/git-utils.d.ts +22 -0
  243. package/dist/types/status-line/host.d.ts +129 -0
  244. package/dist/types/status-line/index.d.ts +6 -0
  245. package/dist/types/status-line/loop.d.ts +18 -0
  246. package/dist/types/status-line/metrics.d.ts +21 -0
  247. package/dist/types/status-line/presets.d.ts +3 -0
  248. package/dist/types/status-line/schema.d.ts +15 -0
  249. package/dist/types/status-line/segments.d.ts +5 -0
  250. package/dist/types/status-line/separators.d.ts +3 -0
  251. package/dist/types/status-line/types.d.ts +236 -0
  252. package/dist/types/stdin-buffer.d.ts +4 -0
  253. package/dist/types/theme/color.d.ts +24 -0
  254. package/dist/types/theme/defaults/index.d.ts +9489 -0
  255. package/dist/types/theme/index.d.ts +4 -0
  256. package/dist/types/theme/loader.d.ts +23 -0
  257. package/dist/types/theme/mermaid-cache.d.ts +26 -0
  258. package/dist/types/theme/schema-validation.d.ts +3 -0
  259. package/dist/types/theme/schema.d.ts +25 -0
  260. package/dist/types/theme/session-color.d.ts +43 -0
  261. package/dist/types/theme/shimmer.d.ts +44 -0
  262. package/dist/types/theme/symbols.d.ts +34 -0
  263. package/dist/types/theme/theme-class.d.ts +299 -0
  264. package/dist/types/theme/theme.d.ts +111 -0
  265. package/dist/types/theme/tui-adapters.d.ts +30 -0
  266. package/dist/types/thinking.d.ts +165 -0
  267. package/dist/types/tools/agent-tree.d.ts +36 -0
  268. package/dist/types/tools/ask.d.ts +67 -0
  269. package/dist/types/tools/ast-edit.d.ts +53 -0
  270. package/dist/types/tools/ast-grep.d.ts +52 -0
  271. package/dist/types/tools/autoresearch.d.ts +156 -0
  272. package/dist/types/tools/bash-interactive.d.ts +28 -0
  273. package/dist/types/tools/bash.d.ts +103 -0
  274. package/dist/types/tools/conflict-detect.d.ts +43 -0
  275. package/dist/types/tools/debug.d.ts +60 -0
  276. package/dist/types/tools/default-renderer.d.ts +24 -0
  277. package/dist/types/tools/edit.d.ts +158 -0
  278. package/dist/types/tools/eval-format/code-mode-declarations.d.ts +5 -0
  279. package/dist/types/tools/eval-format/index.d.ts +5 -0
  280. package/dist/types/tools/eval-format/javascript.d.ts +2 -0
  281. package/dist/types/tools/eval-format/python.d.ts +2 -0
  282. package/dist/types/tools/eval.d.ts +94 -0
  283. package/dist/types/tools/fetch.d.ts +42 -0
  284. package/dist/types/tools/gh-format.d.ts +8 -0
  285. package/dist/types/tools/github.d.ts +144 -0
  286. package/dist/types/tools/glob.d.ts +44 -0
  287. package/dist/types/tools/goal.d.ts +42 -0
  288. package/dist/types/tools/grep.d.ts +64 -0
  289. package/dist/types/tools/grouped-file-output.d.ts +71 -0
  290. package/dist/types/tools/hashline-format.d.ts +28 -0
  291. package/dist/types/tools/hub.d.ts +340 -0
  292. package/dist/types/tools/index.d.ts +4 -0
  293. package/dist/types/tools/json-tree.d.ts +59 -0
  294. package/dist/types/tools/line-ranges.d.ts +29 -0
  295. package/dist/types/tools/list-limit.d.ts +15 -0
  296. package/dist/types/tools/lsp.d.ts +72 -0
  297. package/dist/types/tools/match-line-format.d.ts +11 -0
  298. package/dist/types/tools/mcp.d.ts +81 -0
  299. package/dist/types/tools/memory.d.ts +67 -0
  300. package/dist/types/tools/output-meta.d.ts +151 -0
  301. package/dist/types/tools/read.d.ts +139 -0
  302. package/dist/types/tools/renderer.d.ts +98 -0
  303. package/dist/types/tools/report-tool-issue.d.ts +8 -0
  304. package/dist/types/tools/resolve.d.ts +47 -0
  305. package/dist/types/tools/streaming-output.d.ts +282 -0
  306. package/dist/types/tools/subprocess.d.ts +24 -0
  307. package/dist/types/tools/task-repair-args.d.ts +53 -0
  308. package/dist/types/tools/task-yield-assembly.d.ts +20 -0
  309. package/dist/types/tools/task.d.ts +425 -0
  310. package/dist/types/tools/terminal-output.d.ts +8 -0
  311. package/dist/types/tools/think.d.ts +13 -0
  312. package/dist/types/tools/todo.d.ts +118 -0
  313. package/dist/types/tools/tool-errors.d.ts +7 -0
  314. package/dist/types/tools/vibe.d.ts +120 -0
  315. package/dist/types/tools/web-search.d.ts +195 -0
  316. package/dist/types/tools/write.d.ts +76 -0
  317. package/dist/types/tools/xd-url.d.ts +13 -0
  318. package/dist/types/tools/xdev.d.ts +52 -0
  319. package/dist/types/tui.d.ts +18 -0
  320. package/dist/types/utils.d.ts +2 -0
  321. package/package.json +37 -3
  322. package/src/app-keybindings.ts +760 -0
  323. package/src/apps/autoresearch-dashboard.ts +500 -0
  324. package/src/apps/autoresearch-data.ts +64 -0
  325. package/src/apps/cleanse-board.ts +341 -0
  326. package/src/apps/cleanse-picker.ts +57 -0
  327. package/src/apps/debug/log-formatting.ts +53 -0
  328. package/src/apps/debug/log-viewer.ts +868 -0
  329. package/src/apps/debug/protocol-probe.ts +267 -0
  330. package/src/apps/debug/raw-sse-buffer.ts +449 -0
  331. package/src/apps/debug/raw-sse.ts +282 -0
  332. package/src/apps/debug/terminal-info.ts +115 -0
  333. package/src/apps/debug/viewer-frame.ts +174 -0
  334. package/src/apps/git/avatar.ts +52 -0
  335. package/src/apps/git/colors.ts +109 -0
  336. package/src/apps/git/diff-pane.ts +1512 -0
  337. package/src/apps/git/git-tui.ts +889 -0
  338. package/src/apps/git/sidebar.ts +1204 -0
  339. package/src/apps/git/state.ts +113 -0
  340. package/src/apps/if-bench-board.ts +324 -0
  341. package/src/apps/live-visualizer.ts +238 -0
  342. package/src/apps/ps-data.ts +116 -0
  343. package/src/apps/ps-top.ts +422 -0
  344. package/src/apps/session-picker.ts +95 -0
  345. package/src/apps/setup-model-picker.ts +21 -0
  346. package/src/apps/standalone-picker.ts +111 -0
  347. package/src/autocomplete.ts +9 -13
  348. package/src/chat/advisor-message.ts +175 -0
  349. package/src/chat/assistant-message.ts +1214 -0
  350. package/src/chat/background-tan-message.ts +35 -0
  351. package/src/chat/bash-execution.ts +394 -0
  352. package/src/chat/cache-invalidation-marker.ts +94 -0
  353. package/src/chat/chat-transcript-builder.ts +593 -0
  354. package/src/chat/collab-prompt-message.ts +34 -0
  355. package/src/chat/compaction-summary-message.ts +261 -0
  356. package/src/chat/custom-message.ts +23 -0
  357. package/src/chat/display-preferences.ts +24 -0
  358. package/src/chat/eval-execution.ts +172 -0
  359. package/src/chat/execution-shared.ts +113 -0
  360. package/src/chat/extension-types.ts +46 -0
  361. package/src/chat/hook-message.ts +20 -0
  362. package/src/chat/image-loading.ts +122 -0
  363. package/src/chat/late-diagnostics-message.ts +92 -0
  364. package/src/chat/messages.ts +305 -0
  365. package/src/chat/reaction.ts +65 -0
  366. package/src/chat/read-target.ts +7 -0
  367. package/src/chat/read-tool-group.ts +873 -0
  368. package/src/chat/served-model-marker.ts +91 -0
  369. package/src/chat/skill-message.ts +220 -0
  370. package/src/chat/skill-title-input.ts +41 -0
  371. package/src/chat/stripped-tool-calls-placeholder.ts +35 -0
  372. package/src/chat/thinking-display.ts +312 -0
  373. package/src/chat/todo-reminder.ts +33 -0
  374. package/src/chat/tool-execution.ts +1395 -0
  375. package/src/chat/transcript-browser.ts +268 -0
  376. package/src/chat/transcript-entry.ts +96 -0
  377. package/src/chat/transcript-outline.ts +260 -0
  378. package/src/chat/transcript-render-helpers.ts +315 -0
  379. package/src/chat/ttsr-notification.ts +123 -0
  380. package/src/chat/user-message.ts +287 -0
  381. package/src/chrome/chat-block.ts +110 -0
  382. package/src/chrome/collab-qrcode.ts +74 -0
  383. package/src/chrome/context-thresholds.ts +85 -0
  384. package/src/chrome/countdown-timer.ts +74 -0
  385. package/src/chrome/diff.ts +266 -0
  386. package/src/chrome/dynamic-border.ts +36 -0
  387. package/src/chrome/error-block.ts +63 -0
  388. package/src/chrome/form-theme.ts +10 -0
  389. package/src/chrome/format.ts +66 -0
  390. package/src/chrome/index.ts +21 -0
  391. package/src/chrome/keybinding-hints.ts +55 -0
  392. package/src/chrome/live-board.ts +123 -0
  393. package/src/chrome/local-date.ts +20 -0
  394. package/src/chrome/message-divider.ts +51 -0
  395. package/src/chrome/message-frame.ts +164 -0
  396. package/src/chrome/message-notice.ts +103 -0
  397. package/src/chrome/overlay-box.ts +301 -0
  398. package/src/chrome/qrcode.ts +539 -0
  399. package/src/chrome/segment-track.ts +86 -0
  400. package/src/chrome/select-list-mouse-routing.ts +11 -0
  401. package/src/chrome/selector-helpers.ts +119 -0
  402. package/src/chrome/shared.ts +27 -0
  403. package/src/chrome/streaming-panel.ts +72 -0
  404. package/src/chrome/tool-activity.ts +44 -0
  405. package/src/chrome/transcript-container.ts +902 -0
  406. package/src/chrome/transcript-status.ts +27 -0
  407. package/src/chrome/visual-truncate.ts +70 -0
  408. package/src/components/disclosure.ts +235 -0
  409. package/src/components/editor.ts +10 -12
  410. package/src/components/form.ts +566 -0
  411. package/src/components/input.ts +6 -27
  412. package/src/components/key-value-list.ts +88 -0
  413. package/src/components/layout/geometry.ts +202 -0
  414. package/src/components/layout/row.ts +283 -0
  415. package/src/components/layout/split-pane.ts +349 -0
  416. package/src/components/layout/stack.ts +261 -0
  417. package/src/components/markdown.ts +16 -12
  418. package/src/components/menu-selection.ts +248 -0
  419. package/src/components/metric.ts +132 -0
  420. package/src/components/progress-bar.ts +140 -0
  421. package/src/components/scroll-view.ts +372 -70
  422. package/src/components/scroll-viewport.ts +154 -0
  423. package/src/components/section.ts +77 -0
  424. package/src/components/select-list.ts +238 -159
  425. package/src/components/settings-list.ts +103 -80
  426. package/src/components/table.ts +127 -0
  427. package/src/components/tree-view.ts +481 -0
  428. package/src/components/wizard-step.ts +229 -0
  429. package/src/deccara.ts +1 -3
  430. package/src/hotkeys-markdown.ts +100 -0
  431. package/src/index.ts +18 -0
  432. package/src/keybinding-matchers.ts +99 -0
  433. package/src/keys.ts +2 -2
  434. package/src/lang-from-path.ts +252 -0
  435. package/src/overlays/advisor-config.ts +761 -0
  436. package/src/overlays/agent-activity.ts +113 -0
  437. package/src/overlays/agent-hub-projection.ts +250 -0
  438. package/src/overlays/agent-hub-renderer.ts +281 -0
  439. package/src/overlays/agent-hub-types.ts +74 -0
  440. package/src/overlays/agent-hub.ts +1562 -0
  441. package/src/overlays/agent-transcript-viewer.ts +669 -0
  442. package/src/overlays/agents-hub.ts +1203 -0
  443. package/src/overlays/ask-dialog.ts +1202 -0
  444. package/src/overlays/bordered-loader.ts +41 -0
  445. package/src/overlays/btw-history-panel.ts +591 -0
  446. package/src/overlays/btw-history.ts +33 -0
  447. package/src/overlays/btw-panel.ts +167 -0
  448. package/src/overlays/cleanse-panel.ts +167 -0
  449. package/src/overlays/codex-reset-fireworks.ts +375 -0
  450. package/src/overlays/composer-shape-preview.ts +137 -0
  451. package/src/overlays/composer-shape-registry.ts +82 -0
  452. package/src/overlays/copy-selector.ts +618 -0
  453. package/src/overlays/copy-targets.ts +210 -0
  454. package/src/overlays/error-banner.ts +39 -0
  455. package/src/overlays/extensions/display-text.ts +39 -0
  456. package/src/overlays/extensions/extension-dashboard.ts +645 -0
  457. package/src/overlays/extensions/extension-list.ts +667 -0
  458. package/src/overlays/extensions/inspector-model.ts +484 -0
  459. package/src/overlays/extensions/inspector-panel.ts +669 -0
  460. package/src/overlays/extensions/live-tool-session.ts +67 -0
  461. package/src/overlays/extensions/mcp-runtime.ts +289 -0
  462. package/src/overlays/extensions/state-manager.ts +337 -0
  463. package/src/overlays/extensions/types.ts +208 -0
  464. package/src/overlays/history-search.ts +268 -0
  465. package/src/overlays/hook-editor.ts +272 -0
  466. package/src/overlays/hook-input.ts +84 -0
  467. package/src/overlays/hook-selector.ts +635 -0
  468. package/src/overlays/hub-frame.ts +262 -0
  469. package/src/overlays/login-dialog.ts +231 -0
  470. package/src/overlays/logout-account-selector.ts +115 -0
  471. package/src/overlays/mcp-add-wizard.ts +1436 -0
  472. package/src/overlays/model-browser.ts +1176 -0
  473. package/src/overlays/model-hub.ts +2279 -0
  474. package/src/overlays/model-picker.ts +285 -0
  475. package/src/overlays/model-selector.ts +107 -0
  476. package/src/overlays/move-overlay.ts +197 -0
  477. package/src/overlays/oauth-selector.ts +446 -0
  478. package/src/overlays/omfg-panel.ts +136 -0
  479. package/src/overlays/pause-screen.ts +198 -0
  480. package/src/overlays/plan-review-overlay.ts +1227 -0
  481. package/src/overlays/plan-save-overlay.ts +74 -0
  482. package/src/overlays/plan-toc.ts +139 -0
  483. package/src/overlays/plugin-selector.ts +97 -0
  484. package/src/overlays/plugin-settings.ts +839 -0
  485. package/src/overlays/queue-mode-selector.ts +55 -0
  486. package/src/overlays/reset-usage-selector.ts +170 -0
  487. package/src/overlays/rewind-selector.ts +499 -0
  488. package/src/overlays/running-subagent-badge.ts +19 -0
  489. package/src/overlays/session-account-selector.ts +68 -0
  490. package/src/overlays/session-info-overlay.ts +96 -0
  491. package/src/overlays/session-observer-registry.ts +289 -0
  492. package/src/overlays/session-selector.ts +1137 -0
  493. package/src/overlays/settings-defs.ts +315 -0
  494. package/src/overlays/settings-selector.ts +1415 -0
  495. package/src/overlays/show-images-selector.ts +44 -0
  496. package/src/overlays/snapcompact-shape-preview-doc.md +14 -0
  497. package/src/overlays/snapcompact-shape-preview.ts +192 -0
  498. package/src/overlays/theme-selector.ts +62 -0
  499. package/src/overlays/thinking-selector.ts +51 -0
  500. package/src/overlays/tiny-title-download-progress.ts +102 -0
  501. package/src/overlays/tree-selector.ts +1121 -0
  502. package/src/overlays/usage-dashboard.ts +629 -0
  503. package/src/overlays/usage-display.ts +45 -0
  504. package/src/overlays/usage-row.ts +118 -0
  505. package/src/prompt/attachment-chips.ts +201 -0
  506. package/src/prompt/composer-attachments.ts +280 -0
  507. package/src/prompt/composer-cache.ts +304 -0
  508. package/src/prompt/composer.ts +934 -0
  509. package/src/prompt/custom-editor.ts +1392 -0
  510. package/src/prompt/data/emojis.json +1 -0
  511. package/src/prompt/editor-top-gap.ts +28 -0
  512. package/src/prompt/emoji-autocomplete.ts +285 -0
  513. package/src/prompt/github-ref-autocomplete.ts +75 -0
  514. package/src/prompt/gradient-highlight.ts +101 -0
  515. package/src/prompt/image-format.ts +28 -0
  516. package/src/prompt/image-references.ts +102 -0
  517. package/src/prompt/interactive-context-helpers.ts +126 -0
  518. package/src/prompt/internal-url-autocomplete.ts +155 -0
  519. package/src/prompt/macos-spelling.ts +456 -0
  520. package/src/prompt/magic-keyword-boundary.ts +23 -0
  521. package/src/prompt/magic-keywords.ts +42 -0
  522. package/src/prompt/markdown-prose.ts +245 -0
  523. package/src/prompt/model-mention-autocomplete.ts +94 -0
  524. package/src/prompt/model-mention-syntax.ts +41 -0
  525. package/src/prompt/orchestrate.ts +26 -0
  526. package/src/prompt/prompt-action-autocomplete.ts +337 -0
  527. package/src/prompt/queue-input.ts +132 -0
  528. package/src/prompt/skill-tokens.ts +36 -0
  529. package/src/prompt/tips.txt +27 -0
  530. package/src/prompt/tools-markdown.ts +29 -0
  531. package/src/prompt/ultrathink.ts +26 -0
  532. package/src/prompt/usage-amounts.ts +99 -0
  533. package/src/prompt/video.ts +47 -0
  534. package/src/prompt/welcome.ts +605 -0
  535. package/src/prompt/workflow.ts +26 -0
  536. package/src/render/code-cell.ts +244 -0
  537. package/src/render/file-list.ts +58 -0
  538. package/src/render/hyperlink.ts +192 -0
  539. package/src/render/index.ts +17 -0
  540. package/src/render/output-block.ts +267 -0
  541. package/src/render/output-pane.ts +299 -0
  542. package/src/render/render-utils.ts +1182 -0
  543. package/src/render/sixel.ts +69 -0
  544. package/src/render/status-line.ts +55 -0
  545. package/src/render/tool-card.ts +272 -0
  546. package/src/render/tree-list.ts +188 -0
  547. package/src/render/types.ts +19 -0
  548. package/src/render/utils.ts +109 -0
  549. package/src/render/width-aware-text.ts +60 -0
  550. package/src/setup/lazy.ts +17 -0
  551. package/src/setup/scenes/composer.ts +127 -0
  552. package/src/setup/scenes/glyph.ts +120 -0
  553. package/src/setup/scenes/model.ts +138 -0
  554. package/src/setup/scenes/outro.ts +24 -0
  555. package/src/setup/scenes/providers.ts +107 -0
  556. package/src/setup/scenes/sign-in.ts +373 -0
  557. package/src/setup/scenes/splash.ts +192 -0
  558. package/src/setup/scenes/theme.ts +343 -0
  559. package/src/setup/scenes/types.ts +111 -0
  560. package/src/setup/scenes/web-search.ts +165 -0
  561. package/src/setup/setup-version.ts +11 -0
  562. package/src/setup/startup-splash.ts +107 -0
  563. package/src/setup/wizard-overlay.ts +319 -0
  564. package/src/setup/wizard.ts +101 -0
  565. package/src/status-line/component.ts +3003 -0
  566. package/src/status-line/context-usage.ts +688 -0
  567. package/src/status-line/footer.ts +323 -0
  568. package/src/status-line/git-utils.ts +42 -0
  569. package/src/status-line/host.ts +97 -0
  570. package/src/status-line/index.ts +6 -0
  571. package/src/status-line/loop.ts +28 -0
  572. package/src/status-line/metrics.ts +94 -0
  573. package/src/status-line/presets.ts +107 -0
  574. package/src/status-line/schema.ts +57 -0
  575. package/src/status-line/segments.ts +934 -0
  576. package/src/status-line/separators.ts +55 -0
  577. package/src/status-line/types.ts +227 -0
  578. package/src/stdin-buffer.ts +4 -2
  579. package/src/theme/color.ts +95 -0
  580. package/src/theme/dark.json +95 -0
  581. package/src/theme/defaults/alabaster.json +93 -0
  582. package/src/theme/defaults/amethyst.json +96 -0
  583. package/src/theme/defaults/anthracite.json +93 -0
  584. package/src/theme/defaults/basalt.json +91 -0
  585. package/src/theme/defaults/birch.json +95 -0
  586. package/src/theme/defaults/dark-abyss.json +91 -0
  587. package/src/theme/defaults/dark-arctic.json +104 -0
  588. package/src/theme/defaults/dark-aurora.json +95 -0
  589. package/src/theme/defaults/dark-catppuccin.json +107 -0
  590. package/src/theme/defaults/dark-cavern.json +91 -0
  591. package/src/theme/defaults/dark-celestial.json +106 -0
  592. package/src/theme/defaults/dark-copper.json +95 -0
  593. package/src/theme/defaults/dark-cosmos.json +90 -0
  594. package/src/theme/defaults/dark-cyberpunk.json +102 -0
  595. package/src/theme/defaults/dark-dracula.json +98 -0
  596. package/src/theme/defaults/dark-eclipse.json +91 -0
  597. package/src/theme/defaults/dark-ember.json +95 -0
  598. package/src/theme/defaults/dark-equinox.json +90 -0
  599. package/src/theme/defaults/dark-forest.json +96 -0
  600. package/src/theme/defaults/dark-github.json +105 -0
  601. package/src/theme/defaults/dark-gruvbox.json +112 -0
  602. package/src/theme/defaults/dark-lavender.json +95 -0
  603. package/src/theme/defaults/dark-lunar.json +89 -0
  604. package/src/theme/defaults/dark-midnight.json +95 -0
  605. package/src/theme/defaults/dark-monochrome.json +94 -0
  606. package/src/theme/defaults/dark-monokai.json +98 -0
  607. package/src/theme/defaults/dark-nebula.json +90 -0
  608. package/src/theme/defaults/dark-nord.json +98 -0
  609. package/src/theme/defaults/dark-ocean.json +101 -0
  610. package/src/theme/defaults/dark-one.json +100 -0
  611. package/src/theme/defaults/dark-poimandres.json +115 -0
  612. package/src/theme/defaults/dark-rainforest.json +91 -0
  613. package/src/theme/defaults/dark-reef.json +91 -0
  614. package/src/theme/defaults/dark-retro.json +92 -0
  615. package/src/theme/defaults/dark-rose-pine.json +96 -0
  616. package/src/theme/defaults/dark-sakura.json +95 -0
  617. package/src/theme/defaults/dark-slate.json +95 -0
  618. package/src/theme/defaults/dark-solarized.json +97 -0
  619. package/src/theme/defaults/dark-solstice.json +90 -0
  620. package/src/theme/defaults/dark-starfall.json +91 -0
  621. package/src/theme/defaults/dark-sunset.json +99 -0
  622. package/src/theme/defaults/dark-swamp.json +90 -0
  623. package/src/theme/defaults/dark-synthwave.json +103 -0
  624. package/src/theme/defaults/dark-taiga.json +91 -0
  625. package/src/theme/defaults/dark-terminal.json +95 -0
  626. package/src/theme/defaults/dark-tokyo-night.json +101 -0
  627. package/src/theme/defaults/dark-tundra.json +91 -0
  628. package/src/theme/defaults/dark-twilight.json +91 -0
  629. package/src/theme/defaults/dark-volcanic.json +91 -0
  630. package/src/theme/defaults/graphite.json +92 -0
  631. package/src/theme/defaults/index.ts +201 -0
  632. package/src/theme/defaults/light-arctic.json +107 -0
  633. package/src/theme/defaults/light-aurora-day.json +91 -0
  634. package/src/theme/defaults/light-canyon.json +91 -0
  635. package/src/theme/defaults/light-catppuccin.json +106 -0
  636. package/src/theme/defaults/light-cirrus.json +90 -0
  637. package/src/theme/defaults/light-coral.json +95 -0
  638. package/src/theme/defaults/light-cyberpunk.json +96 -0
  639. package/src/theme/defaults/light-dawn.json +90 -0
  640. package/src/theme/defaults/light-dunes.json +91 -0
  641. package/src/theme/defaults/light-eucalyptus.json +95 -0
  642. package/src/theme/defaults/light-forest.json +100 -0
  643. package/src/theme/defaults/light-frost.json +95 -0
  644. package/src/theme/defaults/light-github.json +115 -0
  645. package/src/theme/defaults/light-glacier.json +91 -0
  646. package/src/theme/defaults/light-gruvbox.json +108 -0
  647. package/src/theme/defaults/light-haze.json +90 -0
  648. package/src/theme/defaults/light-honeycomb.json +95 -0
  649. package/src/theme/defaults/light-lagoon.json +91 -0
  650. package/src/theme/defaults/light-lavender.json +95 -0
  651. package/src/theme/defaults/light-meadow.json +91 -0
  652. package/src/theme/defaults/light-mint.json +95 -0
  653. package/src/theme/defaults/light-monochrome.json +101 -0
  654. package/src/theme/defaults/light-ocean.json +99 -0
  655. package/src/theme/defaults/light-one.json +99 -0
  656. package/src/theme/defaults/light-opal.json +91 -0
  657. package/src/theme/defaults/light-orchard.json +91 -0
  658. package/src/theme/defaults/light-paper.json +95 -0
  659. package/src/theme/defaults/light-poimandres.json +115 -0
  660. package/src/theme/defaults/light-prism.json +90 -0
  661. package/src/theme/defaults/light-retro.json +98 -0
  662. package/src/theme/defaults/light-sand.json +95 -0
  663. package/src/theme/defaults/light-savanna.json +91 -0
  664. package/src/theme/defaults/light-solarized.json +102 -0
  665. package/src/theme/defaults/light-soleil.json +90 -0
  666. package/src/theme/defaults/light-sunset.json +99 -0
  667. package/src/theme/defaults/light-synthwave.json +98 -0
  668. package/src/theme/defaults/light-tokyo-night.json +111 -0
  669. package/src/theme/defaults/light-wetland.json +91 -0
  670. package/src/theme/defaults/light-zenith.json +89 -0
  671. package/src/theme/defaults/limestone.json +94 -0
  672. package/src/theme/defaults/mahogany.json +97 -0
  673. package/src/theme/defaults/marble.json +93 -0
  674. package/src/theme/defaults/obsidian.json +91 -0
  675. package/src/theme/defaults/onyx.json +91 -0
  676. package/src/theme/defaults/pearl.json +93 -0
  677. package/src/theme/defaults/porcelain.json +91 -0
  678. package/src/theme/defaults/quartz.json +96 -0
  679. package/src/theme/defaults/sandstone.json +95 -0
  680. package/src/theme/defaults/titanium.json +90 -0
  681. package/src/theme/index.ts +5 -0
  682. package/src/theme/light.json +93 -0
  683. package/src/theme/loader.ts +200 -0
  684. package/src/theme/mermaid-cache.ts +92 -0
  685. package/src/theme/schema-validation.ts +119 -0
  686. package/src/theme/schema.ts +168 -0
  687. package/src/theme/session-color.ts +253 -0
  688. package/src/theme/shimmer.ts +307 -0
  689. package/src/theme/symbols.ts +1433 -0
  690. package/src/theme/theme-class.ts +787 -0
  691. package/src/theme/theme-schema.json +463 -0
  692. package/src/theme/theme.ts +810 -0
  693. package/src/theme/tui-adapters.ts +339 -0
  694. package/src/thinking.ts +380 -0
  695. package/src/tools/agent-tree.ts +128 -0
  696. package/src/tools/ask.ts +482 -0
  697. package/src/tools/ast-edit.ts +210 -0
  698. package/src/tools/ast-grep.ts +171 -0
  699. package/src/tools/autoresearch.ts +287 -0
  700. package/src/tools/bash-interactive.ts +295 -0
  701. package/src/tools/bash.ts +468 -0
  702. package/src/tools/conflict-detect.ts +77 -0
  703. package/src/tools/debug.ts +167 -0
  704. package/src/tools/default-renderer.ts +172 -0
  705. package/src/tools/edit.ts +1258 -0
  706. package/src/tools/eval-format/code-mode-declarations.ts +61 -0
  707. package/src/tools/eval-format/index.ts +16 -0
  708. package/src/tools/eval-format/javascript.ts +952 -0
  709. package/src/tools/eval-format/python.ts +544 -0
  710. package/src/tools/eval.ts +835 -0
  711. package/src/tools/fetch.ts +226 -0
  712. package/src/tools/gh-format.ts +18 -0
  713. package/src/tools/github.ts +686 -0
  714. package/src/tools/glob.ts +213 -0
  715. package/src/tools/goal.ts +153 -0
  716. package/src/tools/grep.ts +385 -0
  717. package/src/tools/grouped-file-output.ts +211 -0
  718. package/src/tools/hashline-format.ts +59 -0
  719. package/src/tools/hub.ts +1488 -0
  720. package/src/tools/index.ts +71 -0
  721. package/src/tools/json-tree.ts +388 -0
  722. package/src/tools/line-ranges.ts +98 -0
  723. package/src/tools/list-limit.ts +43 -0
  724. package/src/tools/lsp.ts +702 -0
  725. package/src/tools/match-line-format.ts +20 -0
  726. package/src/tools/mcp.ts +309 -0
  727. package/src/tools/memory.ts +220 -0
  728. package/src/tools/output-meta.ts +367 -0
  729. package/src/tools/read.ts +628 -0
  730. package/src/tools/renderer.ts +107 -0
  731. package/src/tools/report-tool-issue.ts +13 -0
  732. package/src/tools/resolve.ts +139 -0
  733. package/src/tools/streaming-output.ts +1576 -0
  734. package/src/tools/subprocess.ts +39 -0
  735. package/src/tools/task-repair-args.ts +118 -0
  736. package/src/tools/task-yield-assembly.ts +147 -0
  737. package/src/tools/task.ts +2110 -0
  738. package/src/tools/terminal-output.ts +153 -0
  739. package/src/tools/think.ts +28 -0
  740. package/src/tools/todo.ts +580 -0
  741. package/src/tools/tool-errors.ts +15 -0
  742. package/src/tools/vibe.ts +420 -0
  743. package/src/tools/web-search.ts +409 -0
  744. package/src/tools/write.ts +511 -0
  745. package/src/tools/xd-url.ts +28 -0
  746. package/src/tools/xdev.ts +201 -0
  747. package/src/tui.ts +57 -4
  748. package/src/utils.ts +8 -0
@@ -0,0 +1,109 @@
1
+ import { type Extension, type ExtensionState } from "./types.js";
2
+ export interface LiveToolRecord {
3
+ name: string;
4
+ label?: string;
5
+ description?: string;
6
+ parameters?: unknown;
7
+ hidden?: boolean;
8
+ loadMode?: "essential" | "discoverable";
9
+ /** Origin class from session `ToolInfo.sourceInfo.source`. */
10
+ source?: "builtin" | "mcp" | "sdk" | "extension";
11
+ /** Originating module path when the session actually has one. */
12
+ sourcePath?: string;
13
+ }
14
+ export interface ToolRuntimeSource {
15
+ getLiveTool(name: string): LiveToolRecord | undefined;
16
+ listLiveTools?(): LiveToolRecord[];
17
+ }
18
+ export interface ToolParamView {
19
+ name: string;
20
+ type: string;
21
+ required: boolean;
22
+ flag: string;
23
+ description?: string;
24
+ }
25
+ export interface CommandPreview {
26
+ description?: string;
27
+ body: string;
28
+ argumentHint?: string;
29
+ usesArguments: boolean;
30
+ }
31
+ export declare function isPlaceholderToolDescription(name: string, description: string | undefined): boolean;
32
+ /** First JSDoc on a custom-tool file, minus symlink footnotes. */
33
+ export declare function parseToolFileHeader(source: string): string | undefined;
34
+ export interface ExtensionInspectorSource {
35
+ readToolHeader?(filePath: string): string | undefined;
36
+ /** Optional application parser for raw frontmatter; otherwise fields must already be normalized. */
37
+ parseRule?(raw: Record<string, unknown>): {
38
+ condition?: string[];
39
+ astCondition?: string[];
40
+ scope?: string[];
41
+ agents?: string[];
42
+ };
43
+ }
44
+ /** Display fields already parsed from command frontmatter. */
45
+ export declare function slashCommandFrontmatterDisplay(frontmatter: Record<string, unknown>): {
46
+ description?: string;
47
+ argumentHint?: string;
48
+ };
49
+ export declare function commandPreview(content: string | undefined): CommandPreview;
50
+ export declare function toolParamsFromSchema(schema: unknown): ToolParamView[];
51
+ export declare function liveToolsForExtension(ext: Extension, source: ToolRuntimeSource | undefined): LiveToolRecord[];
52
+ export declare function liveToolDetail(live: LiveToolRecord | undefined): string | undefined;
53
+ /** Project-local items only. Uses the directory that contains `.omp`, when present. */
54
+ export declare function projectListHint(ext: Extension): string | undefined;
55
+ export declare function joinListHints(...parts: Array<string | undefined>): string | undefined;
56
+ export declare function formatExtensionListHint(ext: Extension, lives?: LiveToolRecord[]): string | undefined;
57
+ export declare function toolInspectorData(ext: Extension, lives: LiveToolRecord[], source?: ExtensionInspectorSource): {
58
+ label?: string;
59
+ description?: string;
60
+ params: ToolParamView[];
61
+ runtimeDetail?: string;
62
+ factory: LiveToolRecord[];
63
+ };
64
+ export declare function ruleInspectorData(ext: Extension, source?: ExtensionInspectorSource): {
65
+ description?: string;
66
+ alwaysApply: boolean;
67
+ globs?: string[];
68
+ condition?: string[];
69
+ astCondition?: string[];
70
+ scope?: string[];
71
+ agents?: string[];
72
+ interruptMode?: string;
73
+ content: string;
74
+ runtimeDetail?: string;
75
+ };
76
+ export declare function skillInspectorData(ext: Extension): {
77
+ description?: string;
78
+ content: string;
79
+ globs?: string[];
80
+ alwaysApply: boolean;
81
+ hidden: boolean;
82
+ runtimeDetail?: string;
83
+ };
84
+ export declare function commandInspectorData(ext: Extension): {
85
+ description?: string;
86
+ body: string;
87
+ argumentHint?: string;
88
+ usesArguments: boolean;
89
+ runtimeDetail?: string;
90
+ };
91
+ export declare function hookInspectorData(ext: Extension): {
92
+ hookType?: string;
93
+ tool?: string;
94
+ runtimeDetail?: string;
95
+ };
96
+ export declare function promptInspectorData(ext: Extension): {
97
+ content: string;
98
+ runtimeDetail?: string;
99
+ };
100
+ export declare function instructionInspectorData(ext: Extension): {
101
+ content: string;
102
+ applyTo?: string;
103
+ runtimeDetail?: string;
104
+ };
105
+ export declare function contextInspectorData(ext: Extension): {
106
+ content: string;
107
+ runtimeDetail?: string;
108
+ };
109
+ export declare function enablementLabel(state: ExtensionState, reason?: string, shadowedBy?: string): string;
@@ -0,0 +1,17 @@
1
+ import type { Component } from "../../tui.js";
2
+ import { type ExtensionInspectorSource, type ToolRuntimeSource } from "./inspector-model.js";
3
+ import { type MCPRuntimeSource } from "./mcp-runtime.js";
4
+ import { type Extension } from "./types.js";
5
+ export type { ToolRuntimeSource };
6
+ export declare class InspectorPanel implements Component {
7
+ #private;
8
+ constructor(source?: ExtensionInspectorSource);
9
+ setExtension(extension: Extension | null): void;
10
+ setMcpSource(source: MCPRuntimeSource | undefined): void;
11
+ setToolSource(source: ToolRuntimeSource | undefined): void;
12
+ setHeight(height: number): void;
13
+ isExpanded(): boolean;
14
+ toggleExpanded(): boolean;
15
+ invalidate(): void;
16
+ render(width: number): readonly string[];
17
+ }
@@ -0,0 +1,28 @@
1
+ export interface LiveToolInfo {
2
+ name: string;
3
+ sourceInfo: {
4
+ source: string;
5
+ path?: string;
6
+ };
7
+ }
8
+ import type { LiveToolRecord, ToolRuntimeSource } from "./inspector-model.js";
9
+ /** Session methods the `/extensions` live-tool join actually uses. */
10
+ export interface LiveToolSessionLookup {
11
+ getToolByName(name: string): {
12
+ name: string;
13
+ label?: string;
14
+ description?: string;
15
+ parameters?: unknown;
16
+ hidden?: boolean;
17
+ loadMode?: "essential" | "discoverable";
18
+ } | undefined;
19
+ getAllToolInfos(): LiveToolInfo[];
20
+ }
21
+ /** Convert an already-fetched ToolInfo plus the registered tool. */
22
+ export declare function liveToolRecordFromInfo(session: LiveToolSessionLookup, info: LiveToolInfo): LiveToolRecord | undefined;
23
+ /** One-name lookup. Obtains a fresh ToolInfo snapshot for that name. */
24
+ export declare function liveToolRecordFromSession(session: LiveToolSessionLookup, name: string): LiveToolRecord | undefined;
25
+ /** List every live tool. Calls `getAllToolInfos()` once. */
26
+ export declare function listLiveToolRecords(session: LiveToolSessionLookup): LiveToolRecord[];
27
+ /** One list snapshot for a dashboard/list/inspector render. Not a persistent cache. */
28
+ export declare function snapshotToolRuntimeSource(source: ToolRuntimeSource | undefined): ToolRuntimeSource | undefined;
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Live MCP runtime view-model for `/extensions`.
3
+ *
4
+ * Discovery yields config (`MCPServer`). `MCPManager` holds the live connection.
5
+ * This module joins them by server name without stuffing runtime objects into
6
+ * `Extension.raw`.
7
+ */
8
+ /** Config and connection fields actually consumed by the dashboard. */
9
+ export interface MCPServerConfigDisplay {
10
+ type?: string;
11
+ transport?: string;
12
+ command?: string;
13
+ args?: string[];
14
+ url?: string;
15
+ env?: Record<string, unknown>;
16
+ }
17
+ export interface MCPServerDisplay extends MCPServerConfigDisplay {
18
+ name: string;
19
+ enabled?: boolean;
20
+ _source: unknown;
21
+ }
22
+ export interface MCPImplementationDisplay {
23
+ name: string;
24
+ version?: string;
25
+ title?: string;
26
+ description?: string;
27
+ websiteUrl?: string;
28
+ }
29
+ export interface MCPResourceDisplay {
30
+ name: string;
31
+ title?: string;
32
+ description?: string;
33
+ uri?: string;
34
+ uriTemplate?: string;
35
+ }
36
+ export interface MCPConnectionDisplay {
37
+ name: string;
38
+ config: MCPServerConfigDisplay;
39
+ serverInfo?: MCPImplementationDisplay;
40
+ instructions?: string;
41
+ tools?: Array<{
42
+ name: string;
43
+ title?: string;
44
+ description?: string;
45
+ annotations?: {
46
+ title?: string;
47
+ };
48
+ inputSchema?: unknown;
49
+ }>;
50
+ resources?: MCPResourceDisplay[];
51
+ resourceTemplates?: MCPResourceDisplay[];
52
+ prompts?: MCPResourceDisplay[];
53
+ }
54
+ export type MCPConnectionHealth = "connected" | "connecting" | "disconnected" | "inactive";
55
+ export interface MCPRuntimeCatalogItem {
56
+ name: string;
57
+ title?: string;
58
+ description?: string;
59
+ /** MCP `inputSchema` / bridged `parameters`. Rendered on expand. */
60
+ parameters?: unknown;
61
+ }
62
+ export interface MCPRuntimeSnapshot {
63
+ health: MCPConnectionHealth;
64
+ transport: "stdio" | "sse" | "http";
65
+ title?: string;
66
+ description?: string;
67
+ websiteUrl?: string;
68
+ implementationName?: string;
69
+ implementationVersion?: string;
70
+ instructions?: string;
71
+ tools: MCPRuntimeCatalogItem[];
72
+ resources: MCPRuntimeCatalogItem[];
73
+ prompts: MCPRuntimeCatalogItem[];
74
+ command?: string;
75
+ args?: string[];
76
+ url?: string;
77
+ envCount: number;
78
+ }
79
+ /** Narrow manager surface so tests can stub without constructing MCPManager. */
80
+ export interface MCPRuntimeSource {
81
+ getConnectionStatus(name: string): "connected" | "connecting" | "disconnected";
82
+ getConnection(name: string): MCPConnectionDisplay | undefined;
83
+ getTools(): Array<{
84
+ mcpServerName?: string;
85
+ mcpToolName?: string;
86
+ description?: string;
87
+ label?: string;
88
+ parameters?: unknown;
89
+ }>;
90
+ getServerResources?(name: string): {
91
+ resources: MCPResourceDisplay[];
92
+ templates: MCPResourceDisplay[];
93
+ } | undefined;
94
+ getServerPrompts?(name: string): MCPResourceDisplay[] | undefined;
95
+ }
96
+ export declare function isDiscoveredMcpServer(raw: unknown): raw is MCPServerDisplay;
97
+ export declare function inferMcpTransport(server: MCPServerDisplay | MCPServerConfigDisplay): "stdio" | "sse" | "http";
98
+ export declare function snapshotMcpRuntime(server: MCPServerDisplay, manager: MCPRuntimeSource | undefined, opts?: {
99
+ enabled?: boolean;
100
+ shadowed?: boolean;
101
+ }): MCPRuntimeSnapshot;
102
+ export declare function formatMcpListHint(snapshot: MCPRuntimeSnapshot): string;
103
+ export declare function formatMcpHealthLabel(health: MCPConnectionHealth): string;
104
+ export declare function visibleMcpTools(tools: MCPRuntimeCatalogItem[], limit?: number): {
105
+ shown: MCPRuntimeCatalogItem[];
106
+ hidden: number;
107
+ };
@@ -0,0 +1,42 @@
1
+ import { type DashboardState, type DisabledReason, type Extension, type ExtensionState, type FlatTreeItem, type ProviderTab, type ExtensionProvider, type TreeNode } from "./types.js";
2
+ export declare function resolveExtensionState(source: {
3
+ provider: string;
4
+ level: string;
5
+ }, isDisabled: boolean, isShadowed: boolean | undefined, providers: readonly ExtensionProvider[]): {
6
+ state: ExtensionState;
7
+ disabledReason?: DisabledReason;
8
+ };
9
+ /**
10
+ * Build sidebar tree from extensions.
11
+ * Groups by provider → kind.
12
+ */
13
+ export declare function buildSidebarTree(extensions: Extension[], providers: readonly ExtensionProvider[]): TreeNode[];
14
+ /**
15
+ * Flatten tree for keyboard navigation.
16
+ */
17
+ export declare function flattenTree(tree: TreeNode[]): FlatTreeItem[];
18
+ /**
19
+ * Apply fuzzy filter to extensions.
20
+ */
21
+ export declare function applyFilter(extensions: Extension[], query: string): Extension[];
22
+ /**
23
+ * Build provider tabs from extensions.
24
+ */
25
+ export declare function buildProviderTabs(extensions: Extension[], providers: readonly ExtensionProvider[]): ProviderTab[];
26
+ /**
27
+ * Filter extensions by provider tab.
28
+ */
29
+ export declare function filterByProvider(extensions: Extension[], providerId: string): Extension[];
30
+ /**
31
+ * Apply setting-backed item disable overrides to an existing dashboard state.
32
+ * This gives the UI immediate feedback while the full capability refresh runs.
33
+ */
34
+ export declare function applyDisabledExtensionsToState(state: DashboardState, disabledIds: string[], providers?: readonly ExtensionProvider[]): DashboardState;
35
+ /**
36
+ * Create initial dashboard state.
37
+ */
38
+ export declare function createInitialState(extensions: Extension[], providers: readonly ExtensionProvider[]): DashboardState;
39
+ /**
40
+ * Refresh state after toggle.
41
+ */
42
+ export declare function refreshState(state: DashboardState, extensions: Extension[], providers: readonly ExtensionProvider[]): DashboardState;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Types for the Extension Control Center dashboard.
3
+ */
4
+ /** Discovery snapshot used by provider controls, independent of the loader. */
5
+ export interface ExtensionProvider {
6
+ id: string;
7
+ displayName: string;
8
+ enabled: boolean;
9
+ userSourceEnabled: boolean;
10
+ foreignUserSource: boolean;
11
+ }
12
+ /**
13
+ * Extension kinds matching capability types.
14
+ */
15
+ export type ExtensionKind = "extension-module" | "skill" | "rule" | "tool" | "mcp" | "prompt" | "instruction" | "context-file" | "hook" | "slash-command";
16
+ /**
17
+ * Extension state (active, disabled, or shadowed).
18
+ */
19
+ export type ExtensionState = "active" | "disabled" | "shadowed";
20
+ /**
21
+ * Reason why an extension is disabled.
22
+ */
23
+ export type DisabledReason = "provider-disabled" | "user-opt-in" | "item-disabled" | "shadowed";
24
+ /**
25
+ * Unified extension representation for the dashboard.
26
+ * Normalizes all capability types into a common shape.
27
+ */
28
+ export interface Extension {
29
+ /** Unique ID: `${kind}:${name}` */
30
+ id: string;
31
+ /** Extension kind */
32
+ kind: ExtensionKind;
33
+ /** Extension name */
34
+ name: string;
35
+ /** Display name (may differ from name) */
36
+ displayName: string;
37
+ /** Description if available */
38
+ description?: string;
39
+ /** Trigger pattern (slash command, glob, regex) */
40
+ trigger?: string;
41
+ /** Absolute path to source file */
42
+ path: string;
43
+ /** Source metadata */
44
+ source: {
45
+ provider: string;
46
+ providerName: string;
47
+ level: "user" | "project" | "native";
48
+ };
49
+ /** Current state */
50
+ state: ExtensionState;
51
+ /** Reason for disabled state */
52
+ disabledReason?: DisabledReason;
53
+ /** If shadowed, what shadows it */
54
+ shadowedBy?: string;
55
+ /**
56
+ * Raw item data for inspector. For `kind: "mcp"` this remains the discovered
57
+ * `MCPServer` config — live connection state is joined at render time via
58
+ * {@link snapshotMcpRuntime}, not stuffed into this bag.
59
+ */
60
+ raw: unknown;
61
+ }
62
+ /**
63
+ * True when this row is a lower-precedence copy of another same-name item.
64
+ * Disablement takes display precedence (`state === "disabled"`), but the
65
+ * discovery `_shadowed` flag (and `shadowedBy`) still mark the row as a
66
+ * loser — it must not be toggleable and must not join the winner's live state.
67
+ */
68
+ export declare function isShadowedExtension(ext: Extension): boolean;
69
+ /**
70
+ * Tree node types for sidebar hierarchy.
71
+ */
72
+ export type TreeNodeType = "provider" | "kind" | "item";
73
+ /**
74
+ * Sidebar tree node.
75
+ */
76
+ export interface TreeNode {
77
+ /** Unique ID */
78
+ id: string;
79
+ /** Display label */
80
+ label: string;
81
+ /** Node type (provider can be toggled, kind groups items) */
82
+ type: TreeNodeType;
83
+ /** Whether this node/provider is enabled */
84
+ enabled: boolean;
85
+ /** Whether collapsed */
86
+ collapsed: boolean;
87
+ /** Child nodes */
88
+ children: TreeNode[];
89
+ /** Extension count (for display) */
90
+ count?: number;
91
+ }
92
+ /**
93
+ * Flattened tree item for navigation.
94
+ */
95
+ export interface FlatTreeItem {
96
+ node: TreeNode;
97
+ depth: number;
98
+ index: number;
99
+ }
100
+ /**
101
+ * Focus region in the tabbed dashboard.
102
+ */
103
+ export type FocusRegion = "tabs" | "list";
104
+ /**
105
+ * Provider tab representation.
106
+ */
107
+ export interface ProviderTab {
108
+ /** Provider ID (or "all" for the ALL tab) */
109
+ id: string;
110
+ /** Display label */
111
+ label: string;
112
+ /** Whether provider is enabled (always true for "all") */
113
+ enabled: boolean;
114
+ /** Extension count for this provider */
115
+ count: number;
116
+ }
117
+ /**
118
+ * Tabbed dashboard state.
119
+ */
120
+ export interface DashboardState {
121
+ /** Provider tabs */
122
+ tabs: ProviderTab[];
123
+ /** Active tab index */
124
+ activeTabIndex: number;
125
+ /** All extensions (unfiltered) */
126
+ extensions: Extension[];
127
+ /** Extensions filtered by active tab */
128
+ tabFiltered: Extension[];
129
+ /** Extensions filtered by search (applied after tab filter) */
130
+ searchFiltered: Extension[];
131
+ /** Current search query */
132
+ searchQuery: string;
133
+ /** Selected index in main list */
134
+ listIndex: number;
135
+ /** Scroll offset for main list */
136
+ scrollOffset: number;
137
+ /** Currently selected extension for inspector */
138
+ selected: Extension | null;
139
+ }
140
+ /**
141
+ * Callbacks from dashboard to parent.
142
+ */
143
+ export interface DashboardCallbacks {
144
+ /** Called when provider is toggled */
145
+ onProviderToggle: (providerId: string, enabled: boolean) => void;
146
+ /** Called when extension item is toggled */
147
+ onExtensionToggle: (extensionId: string, enabled: boolean) => void;
148
+ /** Called when dashboard is closed */
149
+ onClose: () => void;
150
+ }
151
+ /**
152
+ * Create extension ID from kind and name.
153
+ */
154
+ export declare function makeExtensionId(kind: ExtensionKind, name: string): string;
155
+ /**
156
+ * Parse extension ID into kind and name.
157
+ */
158
+ export declare function parseExtensionId(id: string): {
159
+ kind: ExtensionKind;
160
+ name: string;
161
+ } | null;
162
+ /**
163
+ * Map SourceMeta to extension source shape.
164
+ */
165
+ export declare function sourceFromMeta(meta: Extension["source"]): Extension["source"];
@@ -0,0 +1,16 @@
1
+ /** Prompt history fields displayed in search results. */
2
+ export interface HistorySearchEntry {
3
+ prompt: string;
4
+ created_at: number;
5
+ }
6
+ /** Searchable prompt history supplied by the host. */
7
+ export interface HistorySource {
8
+ search(query: string, limit: number): HistorySearchEntry[];
9
+ getRecent(limit: number): HistorySearchEntry[];
10
+ }
11
+ import { OverlayPanel } from "../chrome/overlay-box.js";
12
+ export declare class HistorySearchComponent extends OverlayPanel {
13
+ #private;
14
+ constructor(historyStorage: HistorySource, onSelect: (prompt: string) => void, onCancel: () => void);
15
+ handleInput(keyData: string): void;
16
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Multi-line editor component for hooks and ask custom input.
3
+ * Supports Ctrl+G for external editor.
4
+ *
5
+ * Two modes:
6
+ * - Default (hook): Enter inserts newline, the `app.message.followUp` chord
7
+ * (Ctrl+Q / Ctrl+Enter) submits, bordered popup
8
+ * - Prompt-style (ask): Enter submits, Shift+Enter inserts newline, legacy ask chrome
9
+ */
10
+ import { type Focusable, type TUI } from "../index.js";
11
+ import { OverlayPanel } from "../chrome/overlay-box.js";
12
+ export interface HookEditorOptions {
13
+ /** Edit text with the host's configured external editor. */
14
+ externalEditor?: (text: string) => Promise<string | null>;
15
+ /** When true, use prompt-style keybindings with the legacy ask prompt chrome. */
16
+ promptStyle?: boolean;
17
+ /**
18
+ * Max rows the inner Editor may occupy. When omitted, the editor is
19
+ * bounded to the current terminal height minus the component's chrome
20
+ * (≈10 rows) so long content scrolls instead of pushing the submit
21
+ * hint out of view.
22
+ */
23
+ maxHeight?: number;
24
+ }
25
+ /** Interactive multiline dialog used by hooks and the ask tool's Other response. */
26
+ export declare class HookEditorComponent extends OverlayPanel implements Focusable {
27
+ #private;
28
+ /** Focus state mirrored to the nested editor during rendering. */
29
+ focused: boolean;
30
+ constructor(tui: TUI, title: string, prefill: string | undefined, onSubmit: (value: string) => void, onCancel: () => void, options?: HookEditorOptions);
31
+ /** Keep the nested editor's software/hardware cursor mode aligned with the dialog focus target. */
32
+ setUseTerminalCursor(useTerminalCursor: boolean): void;
33
+ /** Render the dialog after forwarding its focus state to the nested editor. */
34
+ render(width: number): readonly string[];
35
+ handleInput(keyData: string): void;
36
+ /** Reserve ordered clipboard delivery. Completion accepts nonempty text once, or releases on undefined. */
37
+ beginPaste(): (text: string | undefined) => boolean;
38
+ dispose(): void;
39
+ /** Route non-bracketed paste transports (e.g. kitty's OSC 5522 enhanced clipboard)
40
+ * into the inner editor, mirroring bracketed-paste semantics. Without this hook,
41
+ * enhanced-paste routing falls back to the main prompt editor hidden behind the
42
+ * dialog (#2127 routing contract). */
43
+ pasteText(text: string): void;
44
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Simple text input component for hooks.
3
+ */
4
+ import { type TUI } from "../index.js";
5
+ import { OverlayPanel } from "../chrome/overlay-box.js";
6
+ export interface HookInputOptions {
7
+ tui?: TUI;
8
+ timeout?: number;
9
+ onTimeout?: () => void;
10
+ }
11
+ export declare class HookInputComponent extends OverlayPanel {
12
+ #private;
13
+ constructor(title: string, _placeholder: string | undefined, onSubmit: (value: string) => void, onCancel: () => void, opts?: HookInputOptions);
14
+ handleInput(keyData: string): void;
15
+ /** Route non-bracketed paste transports (e.g. kitty's OSC 5522 enhanced clipboard)
16
+ * into the inner field, mirroring bracketed-paste semantics. Pasting counts as
17
+ * interaction, so the timeout countdown resets like any keystroke. */
18
+ pasteText(text: string): void;
19
+ dispose(): void;
20
+ }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Generic selector component for hooks.
3
+ * Displays a list of string options with keyboard navigation.
4
+ */
5
+ import { type TUI } from "../index.js";
6
+ import { OverlayPanel } from "../chrome/overlay-box.js";
7
+ /** One segment of a {@link HookSelectorSlider} — a label and an optional
8
+ * detail line (e.g. the resolved model name) shown beneath the track while
9
+ * the segment is active. Segment colors come from the track's theme palette,
10
+ * assigned by position. */
11
+ export interface HookSelectorSliderSegment {
12
+ label: string;
13
+ /** Secondary line rendered under the track when this segment is selected. */
14
+ detail?: string;
15
+ }
16
+ /**
17
+ * A horizontal left/right selector rendered above the option list. Unlike the
18
+ * up/down option cursor, the slider is moved with the left/right arrows from
19
+ * any list position, letting the caller capture an orthogonal choice (e.g. the
20
+ * model tier to continue execution with) alongside the selected option.
21
+ */
22
+ export interface HookSelectorSlider {
23
+ /** Dim caption rendered before the slider track (e.g. "continue with"). */
24
+ caption?: string;
25
+ segments: HookSelectorSliderSegment[];
26
+ /** Initially highlighted segment index. */
27
+ index: number;
28
+ /** Invoked with the new index whenever the slider moves. */
29
+ onChange?: (index: number) => void;
30
+ }
31
+ export interface HookSelectorOptions {
32
+ tui?: TUI;
33
+ timeout?: number;
34
+ onTimeout?: () => void;
35
+ onTimeoutStart?: () => void;
36
+ onTimeoutReset?: () => void;
37
+ initialIndex?: number;
38
+ outline?: boolean;
39
+ maxVisible?: number;
40
+ onLeft?: () => void;
41
+ onRight?: () => void;
42
+ onExternalEditor?: () => void;
43
+ helpText?: string;
44
+ slider?: HookSelectorSlider;
45
+ /** Indices into the original options that cannot be selected: they render
46
+ * dimmed, are skipped during navigation, and reject enter/timeout. */
47
+ disabledIndices?: readonly number[];
48
+ /** Render a leading radio/checkbox marker before each markable option,
49
+ * matching the ask transcript. "radio" fills the marker on the cursor row
50
+ * (single-choice); "checkbox" reflects {@link checkedIndices} per row
51
+ * (multi-select). Options at or beyond {@link markableCount} keep the plain
52
+ * cursor prefix — used for trailing control rows like "Other"/"Done". */
53
+ selectionMarker?: "radio" | "checkbox";
54
+ /** For `selectionMarker: "checkbox"`: original-indices currently checked. */
55
+ checkedIndices?: readonly number[];
56
+ /** Number of leading options (original order) that receive a selection
57
+ * marker. Defaults to every option when {@link selectionMarker} is set. */
58
+ markableCount?: number;
59
+ }
60
+ export interface HookSelectorOption {
61
+ label: string;
62
+ description?: string;
63
+ }
64
+ export type HookSelectorOptionInput = string | HookSelectorOption;
65
+ export declare class HookSelectorComponent extends OverlayPanel {
66
+ #private;
67
+ constructor(title: string, options: HookSelectorOptionInput[], onSelect: (option: string) => void, onCancel: () => void, opts?: HookSelectorOptions);
68
+ handleInput(keyData: string): void;
69
+ render(width: number): readonly string[];
70
+ dispose(): void;
71
+ }