@linxiraos/pi-tui 1.1.15 → 1.1.17

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 (763) hide show
  1. package/CHANGELOG.md +638 -2
  2. package/README.md +43 -0
  3. package/THIRD-PARTY-NOTICES.txt +54 -25
  4. package/dist/types/app-keybindings.d.ts +395 -0
  5. package/dist/types/apps/autoresearch-dashboard.d.ts +43 -0
  6. package/dist/types/apps/autoresearch-data.d.ts +15 -0
  7. package/dist/types/apps/cleanse-board.d.ts +66 -0
  8. package/dist/types/apps/cleanse-picker.d.ts +23 -0
  9. package/dist/types/apps/debug/log-formatting.d.ts +6 -0
  10. package/dist/types/apps/debug/log-viewer.d.ts +81 -0
  11. package/dist/types/apps/debug/protocol-probe.d.ts +42 -0
  12. package/dist/types/apps/debug/raw-sse-buffer.d.ts +58 -0
  13. package/dist/types/apps/debug/raw-sse.d.ts +26 -0
  14. package/dist/types/apps/debug/terminal-info.d.ts +34 -0
  15. package/dist/types/apps/debug/viewer-frame.d.ts +52 -0
  16. package/dist/types/apps/git/avatar.d.ts +9 -0
  17. package/dist/types/apps/git/colors.d.ts +49 -0
  18. package/dist/types/apps/git/diff-pane.d.ts +188 -0
  19. package/dist/types/apps/git/git-tui.d.ts +66 -0
  20. package/dist/types/apps/git/sidebar.d.ts +149 -0
  21. package/dist/types/apps/git/state.d.ts +117 -0
  22. package/dist/types/apps/if-bench-board.d.ts +75 -0
  23. package/dist/types/apps/live-visualizer.d.ts +33 -0
  24. package/dist/types/apps/ps-data.d.ts +51 -0
  25. package/dist/types/apps/ps-top.d.ts +33 -0
  26. package/dist/types/apps/session-picker.d.ts +26 -0
  27. package/dist/types/apps/setup-model-picker.d.ts +13 -0
  28. package/dist/types/apps/standalone-picker.d.ts +42 -0
  29. package/dist/types/autocomplete.d.ts +6 -1
  30. package/dist/types/chat/advisor-message.d.ts +11 -0
  31. package/dist/types/chat/assistant-message.d.ts +106 -0
  32. package/dist/types/chat/background-tan-message.d.ts +9 -0
  33. package/dist/types/chat/bash-execution.d.ts +47 -0
  34. package/dist/types/chat/cache-invalidation-marker.d.ts +50 -0
  35. package/dist/types/chat/chat-transcript-builder.d.ts +50 -0
  36. package/dist/types/chat/collab-prompt-message.d.ts +10 -0
  37. package/dist/types/chat/compaction-summary-message.d.ts +54 -0
  38. package/dist/types/chat/custom-message.d.ts +10 -0
  39. package/dist/types/chat/display-preferences.d.ts +13 -0
  40. package/dist/types/chat/eval-execution.d.ts +29 -0
  41. package/dist/types/chat/execution-shared.d.ts +51 -0
  42. package/dist/types/chat/extension-types.d.ts +28 -0
  43. package/dist/types/chat/hook-message.d.ts +10 -0
  44. package/dist/types/chat/image-loading.d.ts +46 -0
  45. package/dist/types/chat/late-diagnostics-message.d.ts +21 -0
  46. package/dist/types/chat/messages.d.ts +189 -0
  47. package/dist/types/chat/reaction.d.ts +30 -0
  48. package/dist/types/chat/read-target.d.ts +4 -0
  49. package/dist/types/chat/read-tool-group.d.ts +67 -0
  50. package/dist/types/chat/served-model-marker.d.ts +47 -0
  51. package/dist/types/chat/skill-message.d.ts +33 -0
  52. package/dist/types/chat/skill-title-input.d.ts +14 -0
  53. package/dist/types/chat/stripped-tool-calls-placeholder.d.ts +12 -0
  54. package/dist/types/chat/thinking-display.d.ts +12 -0
  55. package/dist/types/chat/todo-reminder.d.ts +13 -0
  56. package/dist/types/chat/tool-execution.d.ts +138 -0
  57. package/dist/types/chat/transcript-browser.d.ts +93 -0
  58. package/dist/types/chat/transcript-entry.d.ts +45 -0
  59. package/dist/types/chat/transcript-outline.d.ts +86 -0
  60. package/dist/types/chat/transcript-render-helpers.d.ts +92 -0
  61. package/dist/types/chat/ttsr-notification.d.ts +23 -0
  62. package/dist/types/chat/user-message.d.ts +52 -0
  63. package/dist/types/chrome/chat-block.d.ts +64 -0
  64. package/dist/types/chrome/collab-qrcode.d.ts +28 -0
  65. package/dist/types/chrome/context-thresholds.d.ts +10 -0
  66. package/dist/types/chrome/countdown-timer.d.ts +14 -0
  67. package/dist/types/chrome/diff.d.ts +14 -0
  68. package/dist/types/chrome/dynamic-border.d.ts +16 -0
  69. package/dist/types/chrome/error-block.d.ts +17 -0
  70. package/dist/types/chrome/form-theme.d.ts +3 -0
  71. package/dist/types/chrome/format.d.ts +12 -0
  72. package/dist/types/chrome/index.d.ts +20 -0
  73. package/dist/types/chrome/keybinding-hints.d.ts +40 -0
  74. package/dist/types/chrome/live-board.d.ts +23 -0
  75. package/dist/types/chrome/local-date.d.ts +4 -0
  76. package/dist/types/chrome/message-divider.d.ts +22 -0
  77. package/dist/types/chrome/message-frame.d.ts +52 -0
  78. package/dist/types/chrome/message-notice.d.ts +35 -0
  79. package/dist/types/chrome/overlay-box.d.ts +74 -0
  80. package/dist/types/chrome/qrcode.d.ts +48 -0
  81. package/dist/types/chrome/segment-track.d.ts +27 -0
  82. package/dist/types/chrome/select-list-mouse-routing.d.ts +4 -0
  83. package/dist/types/chrome/selector-helpers.d.ts +52 -0
  84. package/dist/types/chrome/shared.d.ts +5 -0
  85. package/dist/types/chrome/streaming-panel.d.ts +19 -0
  86. package/dist/types/chrome/tool-activity.d.ts +17 -0
  87. package/dist/types/chrome/transcript-container.d.ts +129 -0
  88. package/dist/types/chrome/transcript-status.d.ts +12 -0
  89. package/dist/types/chrome/visual-truncate.d.ts +19 -0
  90. package/dist/types/components/disclosure.d.ts +42 -0
  91. package/dist/types/components/editor.d.ts +18 -0
  92. package/dist/types/components/form.d.ts +130 -0
  93. package/dist/types/components/image.d.ts +67 -23
  94. package/dist/types/components/key-value-list.d.ts +24 -0
  95. package/dist/types/components/layout/geometry.d.ts +73 -0
  96. package/dist/types/components/layout/row.d.ts +55 -0
  97. package/dist/types/components/layout/split-pane.d.ts +80 -0
  98. package/dist/types/components/layout/stack.d.ts +50 -0
  99. package/dist/types/components/markdown.d.ts +0 -6
  100. package/dist/types/components/menu-selection.d.ts +71 -0
  101. package/dist/types/components/metric.d.ts +44 -0
  102. package/dist/types/components/progress-bar.d.ts +36 -0
  103. package/dist/types/components/scroll-view.d.ts +53 -19
  104. package/dist/types/components/scroll-viewport.d.ts +46 -0
  105. package/dist/types/components/section.d.ts +19 -0
  106. package/dist/types/components/select-list.d.ts +46 -2
  107. package/dist/types/components/settings-list.d.ts +20 -0
  108. package/dist/types/components/table.d.ts +32 -0
  109. package/dist/types/components/tree-view.d.ts +130 -0
  110. package/dist/types/components/wizard-step.d.ts +60 -0
  111. package/dist/types/fuzzy.d.ts +1 -1
  112. package/dist/types/hotkeys-markdown.d.ts +7 -0
  113. package/dist/types/index.d.ts +17 -0
  114. package/dist/types/keybinding-matchers.d.ts +35 -0
  115. package/dist/types/keys.d.ts +2 -2
  116. package/dist/types/lang-from-path.d.ts +9 -0
  117. package/dist/types/overlays/advisor-config.d.ts +114 -0
  118. package/dist/types/overlays/agent-activity.d.ts +41 -0
  119. package/dist/types/overlays/agent-hub-projection.d.ts +33 -0
  120. package/dist/types/overlays/agent-hub-renderer.d.ts +53 -0
  121. package/dist/types/overlays/agent-hub-types.d.ts +99 -0
  122. package/dist/types/overlays/agent-hub.d.ts +126 -0
  123. package/dist/types/overlays/agent-transcript-viewer.d.ts +71 -0
  124. package/dist/types/overlays/agents-hub.d.ts +72 -0
  125. package/dist/types/overlays/ask-dialog.d.ts +88 -0
  126. package/dist/types/overlays/bordered-loader.d.ts +11 -0
  127. package/dist/types/overlays/btw-history-panel.d.ts +29 -0
  128. package/dist/types/overlays/btw-history.d.ts +17 -0
  129. package/dist/types/overlays/btw-panel.d.ts +26 -0
  130. package/dist/types/overlays/cleanse-panel.d.ts +36 -0
  131. package/dist/types/overlays/codex-reset-fireworks.d.ts +52 -0
  132. package/dist/types/overlays/composer-shape-preview.d.ts +47 -0
  133. package/dist/types/overlays/composer-shape-registry.d.ts +50 -0
  134. package/dist/types/overlays/copy-selector.d.ts +48 -0
  135. package/dist/types/overlays/copy-targets.d.ts +63 -0
  136. package/dist/types/overlays/error-banner.d.ts +13 -0
  137. package/dist/types/overlays/extensions/display-text.d.ts +10 -0
  138. package/dist/types/overlays/extensions/extension-dashboard.d.ts +63 -0
  139. package/dist/types/overlays/extensions/extension-list.d.ts +54 -0
  140. package/dist/types/overlays/extensions/inspector-model.d.ts +109 -0
  141. package/dist/types/overlays/extensions/inspector-panel.d.ts +17 -0
  142. package/dist/types/overlays/extensions/live-tool-session.d.ts +28 -0
  143. package/dist/types/overlays/extensions/mcp-runtime.d.ts +107 -0
  144. package/dist/types/overlays/extensions/state-manager.d.ts +42 -0
  145. package/dist/types/overlays/extensions/types.d.ts +165 -0
  146. package/dist/types/overlays/history-search.d.ts +16 -0
  147. package/dist/types/overlays/hook-editor.d.ts +44 -0
  148. package/dist/types/overlays/hook-input.d.ts +20 -0
  149. package/dist/types/overlays/hook-selector.d.ts +71 -0
  150. package/dist/types/overlays/hub-frame.d.ts +77 -0
  151. package/dist/types/overlays/login-dialog.d.ts +43 -0
  152. package/dist/types/overlays/logout-account-selector.d.ts +15 -0
  153. package/dist/types/overlays/mcp-add-wizard.d.ts +87 -0
  154. package/dist/types/overlays/model-browser.d.ts +213 -0
  155. package/dist/types/overlays/model-hub.d.ts +72 -0
  156. package/dist/types/overlays/model-picker.d.ts +74 -0
  157. package/dist/types/overlays/model-selector.d.ts +52 -0
  158. package/dist/types/overlays/move-overlay.d.ts +39 -0
  159. package/dist/types/overlays/oauth-selector.d.ts +41 -0
  160. package/dist/types/overlays/omfg-panel.d.ts +20 -0
  161. package/dist/types/overlays/pause-screen.d.ts +43 -0
  162. package/dist/types/overlays/plan-review-overlay.d.ts +89 -0
  163. package/dist/types/overlays/plan-save-overlay.d.ts +19 -0
  164. package/dist/types/overlays/plan-toc.d.ts +41 -0
  165. package/dist/types/overlays/plugin-selector.d.ts +28 -0
  166. package/dist/types/overlays/plugin-settings.d.ts +180 -0
  167. package/dist/types/overlays/queue-mode-selector.d.ts +11 -0
  168. package/dist/types/overlays/reset-usage-selector.d.ts +23 -0
  169. package/dist/types/overlays/rewind-selector.d.ts +61 -0
  170. package/dist/types/overlays/running-subagent-badge.d.ts +6 -0
  171. package/dist/types/overlays/session-account-selector.d.ts +24 -0
  172. package/dist/types/overlays/session-info-overlay.d.ts +17 -0
  173. package/dist/types/overlays/session-observer-registry.d.ts +77 -0
  174. package/dist/types/overlays/session-selector.d.ts +131 -0
  175. package/dist/types/overlays/settings-defs.d.ts +119 -0
  176. package/dist/types/overlays/settings-selector.d.ts +73 -0
  177. package/dist/types/overlays/show-images-selector.d.ts +11 -0
  178. package/dist/types/overlays/snapcompact-shape-preview.d.ts +31 -0
  179. package/dist/types/overlays/theme-selector.d.ts +12 -0
  180. package/dist/types/overlays/thinking-selector.d.ts +12 -0
  181. package/dist/types/overlays/tiny-title-download-progress.d.ts +21 -0
  182. package/dist/types/overlays/tree-selector.d.ts +92 -0
  183. package/dist/types/overlays/usage-dashboard.d.ts +94 -0
  184. package/dist/types/overlays/usage-display.d.ts +5 -0
  185. package/dist/types/overlays/usage-row.d.ts +17 -0
  186. package/dist/types/prompt/attachment-chips.d.ts +19 -0
  187. package/dist/types/prompt/composer-attachments.d.ts +71 -0
  188. package/dist/types/prompt/composer-cache.d.ts +37 -0
  189. package/dist/types/prompt/composer.d.ts +161 -0
  190. package/dist/types/prompt/custom-editor.d.ts +261 -0
  191. package/dist/types/prompt/editor-top-gap.d.ts +18 -0
  192. package/dist/types/prompt/emoji-autocomplete.d.ts +16 -0
  193. package/dist/types/prompt/github-ref-autocomplete.d.ts +35 -0
  194. package/dist/types/prompt/gradient-highlight.d.ts +32 -0
  195. package/dist/types/prompt/image-format.d.ts +4 -0
  196. package/dist/types/prompt/image-references.d.ts +26 -0
  197. package/dist/types/prompt/interactive-context-helpers.d.ts +43 -0
  198. package/dist/types/prompt/internal-url-autocomplete.d.ts +56 -0
  199. package/dist/types/prompt/macos-spelling.d.ts +44 -0
  200. package/dist/types/prompt/magic-keyword-boundary.d.ts +9 -0
  201. package/dist/types/prompt/magic-keywords.d.ts +26 -0
  202. package/dist/types/prompt/markdown-prose.d.ts +15 -0
  203. package/dist/types/prompt/model-mention-autocomplete.d.ts +25 -0
  204. package/dist/types/prompt/model-mention-syntax.d.ts +24 -0
  205. package/dist/types/prompt/orchestrate.d.ts +13 -0
  206. package/dist/types/prompt/prompt-action-autocomplete.d.ts +56 -0
  207. package/dist/types/prompt/queue-input.d.ts +8 -0
  208. package/dist/types/prompt/skill-tokens.d.ts +13 -0
  209. package/dist/types/prompt/tools-markdown.d.ts +12 -0
  210. package/dist/types/prompt/ultrathink.d.ts +13 -0
  211. package/dist/types/prompt/usage-amounts.d.ts +26 -0
  212. package/dist/types/prompt/video.d.ts +18 -0
  213. package/dist/types/prompt/welcome.d.ts +108 -0
  214. package/dist/types/prompt/workflow.d.ts +13 -0
  215. package/dist/types/render/code-cell.d.ts +51 -0
  216. package/dist/types/render/file-list.d.ts +22 -0
  217. package/dist/types/render/hyperlink.d.ts +80 -0
  218. package/dist/types/render/index.d.ts +16 -0
  219. package/dist/types/render/output-block.d.ts +54 -0
  220. package/dist/types/render/output-pane.d.ts +80 -0
  221. package/dist/types/render/render-utils.d.ts +312 -0
  222. package/dist/types/render/sixel.d.ts +21 -0
  223. package/dist/types/render/status-line.d.ts +23 -0
  224. package/dist/types/render/tool-card.d.ts +71 -0
  225. package/dist/types/render/tree-list.d.ts +29 -0
  226. package/dist/types/render/types.d.ts +17 -0
  227. package/dist/types/render/utils.d.ts +43 -0
  228. package/dist/types/render/width-aware-text.d.ts +23 -0
  229. package/dist/types/setup/lazy.d.ts +3 -0
  230. package/dist/types/setup/scenes/composer.d.ts +3 -0
  231. package/dist/types/setup/scenes/glyph.d.ts +3 -0
  232. package/dist/types/setup/scenes/model.d.ts +3 -0
  233. package/dist/types/setup/scenes/outro.d.ts +2 -0
  234. package/dist/types/setup/scenes/providers.d.ts +3 -0
  235. package/dist/types/setup/scenes/sign-in.d.ts +21 -0
  236. package/dist/types/setup/scenes/splash.d.ts +11 -0
  237. package/dist/types/setup/scenes/theme.d.ts +3 -0
  238. package/dist/types/setup/scenes/types.d.ts +110 -0
  239. package/dist/types/setup/scenes/web-search.d.ts +22 -0
  240. package/dist/types/setup/setup-version.d.ts +11 -0
  241. package/dist/types/setup/startup-splash.d.ts +9 -0
  242. package/dist/types/setup/wizard-overlay.d.ts +16 -0
  243. package/dist/types/setup/wizard.d.ts +25 -0
  244. package/dist/types/status-line/component.d.ts +191 -0
  245. package/dist/types/status-line/context-usage.d.ts +156 -0
  246. package/dist/types/status-line/footer.d.ts +30 -0
  247. package/dist/types/status-line/git-utils.d.ts +22 -0
  248. package/dist/types/status-line/host.d.ts +129 -0
  249. package/dist/types/status-line/index.d.ts +6 -0
  250. package/dist/types/status-line/loop.d.ts +18 -0
  251. package/dist/types/status-line/metrics.d.ts +21 -0
  252. package/dist/types/status-line/presets.d.ts +3 -0
  253. package/dist/types/status-line/schema.d.ts +15 -0
  254. package/dist/types/status-line/segments.d.ts +5 -0
  255. package/dist/types/status-line/separators.d.ts +3 -0
  256. package/dist/types/status-line/turn-stats.d.ts +26 -0
  257. package/dist/types/status-line/types.d.ts +237 -0
  258. package/dist/types/stdin-buffer.d.ts +4 -0
  259. package/dist/types/terminal-capabilities.d.ts +24 -0
  260. package/dist/types/terminal-multiplexer.d.ts +17 -1
  261. package/dist/types/terminal.d.ts +17 -2
  262. package/dist/types/theme/color.d.ts +24 -0
  263. package/dist/types/theme/defaults/index.d.ts +9489 -0
  264. package/dist/types/theme/index.d.ts +4 -0
  265. package/dist/types/theme/loader.d.ts +23 -0
  266. package/dist/types/theme/mermaid-cache.d.ts +26 -0
  267. package/dist/types/theme/schema-validation.d.ts +3 -0
  268. package/dist/types/theme/schema.d.ts +25 -0
  269. package/dist/types/theme/session-color.d.ts +43 -0
  270. package/dist/types/theme/shimmer.d.ts +44 -0
  271. package/dist/types/theme/symbols.d.ts +34 -0
  272. package/dist/types/theme/theme-class.d.ts +299 -0
  273. package/dist/types/theme/theme.d.ts +111 -0
  274. package/dist/types/theme/tui-adapters.d.ts +30 -0
  275. package/dist/types/thinking.d.ts +165 -0
  276. package/dist/types/tools/agent-tree.d.ts +36 -0
  277. package/dist/types/tools/ask.d.ts +67 -0
  278. package/dist/types/tools/ast-edit.d.ts +53 -0
  279. package/dist/types/tools/ast-grep.d.ts +52 -0
  280. package/dist/types/tools/autoresearch.d.ts +156 -0
  281. package/dist/types/tools/bash-interactive.d.ts +28 -0
  282. package/dist/types/tools/bash.d.ts +103 -0
  283. package/dist/types/tools/conflict-detect.d.ts +43 -0
  284. package/dist/types/tools/debug.d.ts +60 -0
  285. package/dist/types/tools/default-renderer.d.ts +24 -0
  286. package/dist/types/tools/edit.d.ts +158 -0
  287. package/dist/types/tools/eval-format/code-mode-declarations.d.ts +5 -0
  288. package/dist/types/tools/eval-format/index.d.ts +5 -0
  289. package/dist/types/tools/eval-format/javascript.d.ts +2 -0
  290. package/dist/types/tools/eval-format/python.d.ts +2 -0
  291. package/dist/types/tools/eval.d.ts +94 -0
  292. package/dist/types/tools/fetch.d.ts +42 -0
  293. package/dist/types/tools/gh-format.d.ts +8 -0
  294. package/dist/types/tools/github.d.ts +144 -0
  295. package/dist/types/tools/glob.d.ts +44 -0
  296. package/dist/types/tools/goal.d.ts +42 -0
  297. package/dist/types/tools/grep.d.ts +64 -0
  298. package/dist/types/tools/grouped-file-output.d.ts +71 -0
  299. package/dist/types/tools/hashline-format.d.ts +28 -0
  300. package/dist/types/tools/hub.d.ts +340 -0
  301. package/dist/types/tools/index.d.ts +4 -0
  302. package/dist/types/tools/json-tree.d.ts +59 -0
  303. package/dist/types/tools/line-ranges.d.ts +29 -0
  304. package/dist/types/tools/list-limit.d.ts +15 -0
  305. package/dist/types/tools/lsp.d.ts +72 -0
  306. package/dist/types/tools/match-line-format.d.ts +11 -0
  307. package/dist/types/tools/mcp.d.ts +81 -0
  308. package/dist/types/tools/memory.d.ts +67 -0
  309. package/dist/types/tools/output-meta.d.ts +151 -0
  310. package/dist/types/tools/read.d.ts +139 -0
  311. package/dist/types/tools/renderer.d.ts +98 -0
  312. package/dist/types/tools/report-tool-issue.d.ts +8 -0
  313. package/dist/types/tools/resolve.d.ts +47 -0
  314. package/dist/types/tools/streaming-output.d.ts +282 -0
  315. package/dist/types/tools/subprocess.d.ts +24 -0
  316. package/dist/types/tools/task-repair-args.d.ts +53 -0
  317. package/dist/types/tools/task-yield-assembly.d.ts +20 -0
  318. package/dist/types/tools/task.d.ts +425 -0
  319. package/dist/types/tools/terminal-output.d.ts +8 -0
  320. package/dist/types/tools/think.d.ts +13 -0
  321. package/dist/types/tools/todo.d.ts +118 -0
  322. package/dist/types/tools/tool-errors.d.ts +7 -0
  323. package/dist/types/tools/vibe.d.ts +120 -0
  324. package/dist/types/tools/web-search.d.ts +199 -0
  325. package/dist/types/tools/write.d.ts +76 -0
  326. package/dist/types/tools/xd-url.d.ts +13 -0
  327. package/dist/types/tools/xdev.d.ts +52 -0
  328. package/dist/types/tui.d.ts +18 -0
  329. package/dist/types/utils.d.ts +2 -0
  330. package/package.json +37 -3
  331. package/src/app-keybindings.ts +760 -0
  332. package/src/apps/autoresearch-dashboard.ts +500 -0
  333. package/src/apps/autoresearch-data.ts +64 -0
  334. package/src/apps/cleanse-board.ts +341 -0
  335. package/src/apps/cleanse-picker.ts +57 -0
  336. package/src/apps/debug/log-formatting.ts +53 -0
  337. package/src/apps/debug/log-viewer.ts +868 -0
  338. package/src/apps/debug/protocol-probe.ts +267 -0
  339. package/src/apps/debug/raw-sse-buffer.ts +449 -0
  340. package/src/apps/debug/raw-sse.ts +282 -0
  341. package/src/apps/debug/terminal-info.ts +115 -0
  342. package/src/apps/debug/viewer-frame.ts +174 -0
  343. package/src/apps/git/avatar.ts +52 -0
  344. package/src/apps/git/colors.ts +109 -0
  345. package/src/apps/git/diff-pane.ts +1512 -0
  346. package/src/apps/git/git-tui.ts +889 -0
  347. package/src/apps/git/sidebar.ts +1204 -0
  348. package/src/apps/git/state.ts +113 -0
  349. package/src/apps/if-bench-board.ts +324 -0
  350. package/src/apps/live-visualizer.ts +238 -0
  351. package/src/apps/ps-data.ts +116 -0
  352. package/src/apps/ps-top.ts +422 -0
  353. package/src/apps/session-picker.ts +95 -0
  354. package/src/apps/setup-model-picker.ts +21 -0
  355. package/src/apps/standalone-picker.ts +111 -0
  356. package/src/autocomplete.ts +57 -32
  357. package/src/chat/advisor-message.ts +175 -0
  358. package/src/chat/assistant-message.ts +1214 -0
  359. package/src/chat/background-tan-message.ts +35 -0
  360. package/src/chat/bash-execution.ts +394 -0
  361. package/src/chat/cache-invalidation-marker.ts +94 -0
  362. package/src/chat/chat-transcript-builder.ts +593 -0
  363. package/src/chat/collab-prompt-message.ts +34 -0
  364. package/src/chat/compaction-summary-message.ts +261 -0
  365. package/src/chat/custom-message.ts +23 -0
  366. package/src/chat/display-preferences.ts +24 -0
  367. package/src/chat/eval-execution.ts +172 -0
  368. package/src/chat/execution-shared.ts +113 -0
  369. package/src/chat/extension-types.ts +46 -0
  370. package/src/chat/hook-message.ts +20 -0
  371. package/src/chat/image-loading.ts +122 -0
  372. package/src/chat/late-diagnostics-message.ts +92 -0
  373. package/src/chat/messages.ts +305 -0
  374. package/src/chat/reaction.ts +65 -0
  375. package/src/chat/read-target.ts +7 -0
  376. package/src/chat/read-tool-group.ts +873 -0
  377. package/src/chat/served-model-marker.ts +91 -0
  378. package/src/chat/skill-message.ts +220 -0
  379. package/src/chat/skill-title-input.ts +41 -0
  380. package/src/chat/stripped-tool-calls-placeholder.ts +35 -0
  381. package/src/chat/thinking-display.ts +312 -0
  382. package/src/chat/todo-reminder.ts +33 -0
  383. package/src/chat/tool-execution.ts +1395 -0
  384. package/src/chat/transcript-browser.ts +268 -0
  385. package/src/chat/transcript-entry.ts +96 -0
  386. package/src/chat/transcript-outline.ts +260 -0
  387. package/src/chat/transcript-render-helpers.ts +315 -0
  388. package/src/chat/ttsr-notification.ts +123 -0
  389. package/src/chat/user-message.ts +287 -0
  390. package/src/chrome/chat-block.ts +110 -0
  391. package/src/chrome/collab-qrcode.ts +74 -0
  392. package/src/chrome/context-thresholds.ts +85 -0
  393. package/src/chrome/countdown-timer.ts +74 -0
  394. package/src/chrome/diff.ts +266 -0
  395. package/src/chrome/dynamic-border.ts +36 -0
  396. package/src/chrome/error-block.ts +63 -0
  397. package/src/chrome/form-theme.ts +10 -0
  398. package/src/chrome/format.ts +66 -0
  399. package/src/chrome/index.ts +21 -0
  400. package/src/chrome/keybinding-hints.ts +55 -0
  401. package/src/chrome/live-board.ts +123 -0
  402. package/src/chrome/local-date.ts +20 -0
  403. package/src/chrome/message-divider.ts +51 -0
  404. package/src/chrome/message-frame.ts +164 -0
  405. package/src/chrome/message-notice.ts +103 -0
  406. package/src/chrome/overlay-box.ts +301 -0
  407. package/src/chrome/qrcode.ts +563 -0
  408. package/src/chrome/segment-track.ts +86 -0
  409. package/src/chrome/select-list-mouse-routing.ts +11 -0
  410. package/src/chrome/selector-helpers.ts +119 -0
  411. package/src/chrome/shared.ts +27 -0
  412. package/src/chrome/streaming-panel.ts +72 -0
  413. package/src/chrome/tool-activity.ts +44 -0
  414. package/src/chrome/transcript-container.ts +902 -0
  415. package/src/chrome/transcript-status.ts +27 -0
  416. package/src/chrome/visual-truncate.ts +70 -0
  417. package/src/components/disclosure.ts +235 -0
  418. package/src/components/editor.ts +141 -66
  419. package/src/components/form.ts +566 -0
  420. package/src/components/image.ts +307 -81
  421. package/src/components/input.ts +7 -28
  422. package/src/components/key-value-list.ts +88 -0
  423. package/src/components/layout/geometry.ts +202 -0
  424. package/src/components/layout/row.ts +283 -0
  425. package/src/components/layout/split-pane.ts +349 -0
  426. package/src/components/layout/stack.ts +261 -0
  427. package/src/components/markdown.ts +16 -21
  428. package/src/components/menu-selection.ts +248 -0
  429. package/src/components/metric.ts +132 -0
  430. package/src/components/progress-bar.ts +140 -0
  431. package/src/components/scroll-view.ts +372 -70
  432. package/src/components/scroll-viewport.ts +154 -0
  433. package/src/components/section.ts +77 -0
  434. package/src/components/select-list.ts +239 -160
  435. package/src/components/settings-list.ts +103 -80
  436. package/src/components/table.ts +127 -0
  437. package/src/components/tree-view.ts +481 -0
  438. package/src/components/wizard-step.ts +229 -0
  439. package/src/deccara.ts +1 -3
  440. package/src/fuzzy.ts +1 -1
  441. package/src/hotkeys-markdown.ts +100 -0
  442. package/src/index.ts +18 -0
  443. package/src/keybinding-matchers.ts +99 -0
  444. package/src/keys.ts +2 -2
  445. package/src/lang-from-path.ts +252 -0
  446. package/src/overlays/advisor-config.ts +761 -0
  447. package/src/overlays/agent-activity.ts +113 -0
  448. package/src/overlays/agent-hub-projection.ts +250 -0
  449. package/src/overlays/agent-hub-renderer.ts +281 -0
  450. package/src/overlays/agent-hub-types.ts +74 -0
  451. package/src/overlays/agent-hub.ts +1562 -0
  452. package/src/overlays/agent-transcript-viewer.ts +669 -0
  453. package/src/overlays/agents-hub.ts +1203 -0
  454. package/src/overlays/ask-dialog.ts +1202 -0
  455. package/src/overlays/bordered-loader.ts +41 -0
  456. package/src/overlays/btw-history-panel.ts +591 -0
  457. package/src/overlays/btw-history.ts +33 -0
  458. package/src/overlays/btw-panel.ts +167 -0
  459. package/src/overlays/cleanse-panel.ts +167 -0
  460. package/src/overlays/codex-reset-fireworks.ts +375 -0
  461. package/src/overlays/composer-shape-preview.ts +137 -0
  462. package/src/overlays/composer-shape-registry.ts +82 -0
  463. package/src/overlays/copy-selector.ts +618 -0
  464. package/src/overlays/copy-targets.ts +210 -0
  465. package/src/overlays/error-banner.ts +39 -0
  466. package/src/overlays/extensions/display-text.ts +39 -0
  467. package/src/overlays/extensions/extension-dashboard.ts +645 -0
  468. package/src/overlays/extensions/extension-list.ts +667 -0
  469. package/src/overlays/extensions/inspector-model.ts +484 -0
  470. package/src/overlays/extensions/inspector-panel.ts +669 -0
  471. package/src/overlays/extensions/live-tool-session.ts +67 -0
  472. package/src/overlays/extensions/mcp-runtime.ts +289 -0
  473. package/src/overlays/extensions/state-manager.ts +337 -0
  474. package/src/overlays/extensions/types.ts +208 -0
  475. package/src/overlays/history-search.ts +268 -0
  476. package/src/overlays/hook-editor.ts +272 -0
  477. package/src/overlays/hook-input.ts +84 -0
  478. package/src/overlays/hook-selector.ts +635 -0
  479. package/src/overlays/hub-frame.ts +262 -0
  480. package/src/overlays/login-dialog.ts +231 -0
  481. package/src/overlays/logout-account-selector.ts +115 -0
  482. package/src/overlays/mcp-add-wizard.ts +1436 -0
  483. package/src/overlays/model-browser.ts +1176 -0
  484. package/src/overlays/model-hub.ts +2279 -0
  485. package/src/overlays/model-picker.ts +285 -0
  486. package/src/overlays/model-selector.ts +107 -0
  487. package/src/overlays/move-overlay.ts +197 -0
  488. package/src/overlays/oauth-selector.ts +446 -0
  489. package/src/overlays/omfg-panel.ts +136 -0
  490. package/src/overlays/pause-screen.ts +198 -0
  491. package/src/overlays/plan-review-overlay.ts +1227 -0
  492. package/src/overlays/plan-save-overlay.ts +74 -0
  493. package/src/overlays/plan-toc.ts +139 -0
  494. package/src/overlays/plugin-selector.ts +97 -0
  495. package/src/overlays/plugin-settings.ts +839 -0
  496. package/src/overlays/queue-mode-selector.ts +55 -0
  497. package/src/overlays/reset-usage-selector.ts +170 -0
  498. package/src/overlays/rewind-selector.ts +499 -0
  499. package/src/overlays/running-subagent-badge.ts +19 -0
  500. package/src/overlays/session-account-selector.ts +68 -0
  501. package/src/overlays/session-info-overlay.ts +96 -0
  502. package/src/overlays/session-observer-registry.ts +289 -0
  503. package/src/overlays/session-selector.ts +1137 -0
  504. package/src/overlays/settings-defs.ts +315 -0
  505. package/src/overlays/settings-selector.ts +1415 -0
  506. package/src/overlays/show-images-selector.ts +44 -0
  507. package/src/overlays/snapcompact-shape-preview-doc.md +14 -0
  508. package/src/overlays/snapcompact-shape-preview.ts +192 -0
  509. package/src/overlays/theme-selector.ts +62 -0
  510. package/src/overlays/thinking-selector.ts +51 -0
  511. package/src/overlays/tiny-title-download-progress.ts +102 -0
  512. package/src/overlays/tree-selector.ts +1121 -0
  513. package/src/overlays/usage-dashboard.ts +629 -0
  514. package/src/overlays/usage-display.ts +45 -0
  515. package/src/overlays/usage-row.ts +118 -0
  516. package/src/prompt/attachment-chips.ts +201 -0
  517. package/src/prompt/composer-attachments.ts +280 -0
  518. package/src/prompt/composer-cache.ts +304 -0
  519. package/src/prompt/composer.ts +942 -0
  520. package/src/prompt/custom-editor.ts +1392 -0
  521. package/src/prompt/data/emojis.json +1 -0
  522. package/src/prompt/editor-top-gap.ts +28 -0
  523. package/src/prompt/emoji-autocomplete.ts +285 -0
  524. package/src/prompt/github-ref-autocomplete.ts +75 -0
  525. package/src/prompt/gradient-highlight.ts +101 -0
  526. package/src/prompt/image-format.ts +28 -0
  527. package/src/prompt/image-references.ts +102 -0
  528. package/src/prompt/interactive-context-helpers.ts +126 -0
  529. package/src/prompt/internal-url-autocomplete.ts +155 -0
  530. package/src/prompt/macos-spelling.ts +456 -0
  531. package/src/prompt/magic-keyword-boundary.ts +23 -0
  532. package/src/prompt/magic-keywords.ts +42 -0
  533. package/src/prompt/markdown-prose.ts +245 -0
  534. package/src/prompt/model-mention-autocomplete.ts +94 -0
  535. package/src/prompt/model-mention-syntax.ts +41 -0
  536. package/src/prompt/orchestrate.ts +26 -0
  537. package/src/prompt/prompt-action-autocomplete.ts +337 -0
  538. package/src/prompt/queue-input.ts +132 -0
  539. package/src/prompt/skill-tokens.ts +36 -0
  540. package/src/prompt/tips.txt +27 -0
  541. package/src/prompt/tools-markdown.ts +29 -0
  542. package/src/prompt/ultrathink.ts +26 -0
  543. package/src/prompt/usage-amounts.ts +99 -0
  544. package/src/prompt/video.ts +47 -0
  545. package/src/prompt/welcome.ts +653 -0
  546. package/src/prompt/workflow.ts +26 -0
  547. package/src/render/code-cell.ts +244 -0
  548. package/src/render/file-list.ts +58 -0
  549. package/src/render/hyperlink.ts +192 -0
  550. package/src/render/index.ts +17 -0
  551. package/src/render/output-block.ts +267 -0
  552. package/src/render/output-pane.ts +299 -0
  553. package/src/render/render-utils.ts +1182 -0
  554. package/src/render/sixel.ts +69 -0
  555. package/src/render/status-line.ts +55 -0
  556. package/src/render/tool-card.ts +272 -0
  557. package/src/render/tree-list.ts +188 -0
  558. package/src/render/types.ts +19 -0
  559. package/src/render/utils.ts +109 -0
  560. package/src/render/width-aware-text.ts +60 -0
  561. package/src/setup/lazy.ts +17 -0
  562. package/src/setup/scenes/composer.ts +127 -0
  563. package/src/setup/scenes/glyph.ts +120 -0
  564. package/src/setup/scenes/model.ts +138 -0
  565. package/src/setup/scenes/outro.ts +24 -0
  566. package/src/setup/scenes/providers.ts +107 -0
  567. package/src/setup/scenes/sign-in.ts +373 -0
  568. package/src/setup/scenes/splash.ts +192 -0
  569. package/src/setup/scenes/theme.ts +343 -0
  570. package/src/setup/scenes/types.ts +111 -0
  571. package/src/setup/scenes/web-search.ts +165 -0
  572. package/src/setup/setup-version.ts +11 -0
  573. package/src/setup/startup-splash.ts +107 -0
  574. package/src/setup/wizard-overlay.ts +318 -0
  575. package/src/setup/wizard.ts +101 -0
  576. package/src/status-line/component.ts +3023 -0
  577. package/src/status-line/context-usage.ts +688 -0
  578. package/src/status-line/footer.ts +323 -0
  579. package/src/status-line/git-utils.ts +42 -0
  580. package/src/status-line/host.ts +97 -0
  581. package/src/status-line/index.ts +6 -0
  582. package/src/status-line/loop.ts +28 -0
  583. package/src/status-line/metrics.ts +94 -0
  584. package/src/status-line/presets.ts +107 -0
  585. package/src/status-line/schema.ts +58 -0
  586. package/src/status-line/segments.ts +946 -0
  587. package/src/status-line/separators.ts +55 -0
  588. package/src/status-line/turn-stats.ts +64 -0
  589. package/src/status-line/types.ts +228 -0
  590. package/src/stdin-buffer.ts +4 -2
  591. package/src/terminal-capabilities.ts +104 -38
  592. package/src/terminal-multiplexer.ts +31 -10
  593. package/src/terminal.ts +29 -12
  594. package/src/theme/color.ts +95 -0
  595. package/src/theme/dark.json +95 -0
  596. package/src/theme/defaults/alabaster.json +93 -0
  597. package/src/theme/defaults/amethyst.json +96 -0
  598. package/src/theme/defaults/anthracite.json +93 -0
  599. package/src/theme/defaults/basalt.json +91 -0
  600. package/src/theme/defaults/birch.json +95 -0
  601. package/src/theme/defaults/dark-abyss.json +91 -0
  602. package/src/theme/defaults/dark-arctic.json +104 -0
  603. package/src/theme/defaults/dark-aurora.json +95 -0
  604. package/src/theme/defaults/dark-catppuccin.json +107 -0
  605. package/src/theme/defaults/dark-cavern.json +91 -0
  606. package/src/theme/defaults/dark-celestial.json +106 -0
  607. package/src/theme/defaults/dark-copper.json +95 -0
  608. package/src/theme/defaults/dark-cosmos.json +90 -0
  609. package/src/theme/defaults/dark-cyberpunk.json +102 -0
  610. package/src/theme/defaults/dark-dracula.json +98 -0
  611. package/src/theme/defaults/dark-eclipse.json +91 -0
  612. package/src/theme/defaults/dark-ember.json +95 -0
  613. package/src/theme/defaults/dark-equinox.json +90 -0
  614. package/src/theme/defaults/dark-forest.json +96 -0
  615. package/src/theme/defaults/dark-github.json +105 -0
  616. package/src/theme/defaults/dark-gruvbox.json +112 -0
  617. package/src/theme/defaults/dark-lavender.json +95 -0
  618. package/src/theme/defaults/dark-lunar.json +89 -0
  619. package/src/theme/defaults/dark-midnight.json +95 -0
  620. package/src/theme/defaults/dark-monochrome.json +94 -0
  621. package/src/theme/defaults/dark-monokai.json +98 -0
  622. package/src/theme/defaults/dark-nebula.json +90 -0
  623. package/src/theme/defaults/dark-nord.json +98 -0
  624. package/src/theme/defaults/dark-ocean.json +101 -0
  625. package/src/theme/defaults/dark-one.json +100 -0
  626. package/src/theme/defaults/dark-poimandres.json +115 -0
  627. package/src/theme/defaults/dark-rainforest.json +91 -0
  628. package/src/theme/defaults/dark-reef.json +91 -0
  629. package/src/theme/defaults/dark-retro.json +92 -0
  630. package/src/theme/defaults/dark-rose-pine.json +96 -0
  631. package/src/theme/defaults/dark-sakura.json +95 -0
  632. package/src/theme/defaults/dark-slate.json +95 -0
  633. package/src/theme/defaults/dark-solarized.json +97 -0
  634. package/src/theme/defaults/dark-solstice.json +90 -0
  635. package/src/theme/defaults/dark-starfall.json +91 -0
  636. package/src/theme/defaults/dark-sunset.json +99 -0
  637. package/src/theme/defaults/dark-swamp.json +90 -0
  638. package/src/theme/defaults/dark-synthwave.json +103 -0
  639. package/src/theme/defaults/dark-taiga.json +91 -0
  640. package/src/theme/defaults/dark-terminal.json +95 -0
  641. package/src/theme/defaults/dark-tokyo-night.json +101 -0
  642. package/src/theme/defaults/dark-tundra.json +91 -0
  643. package/src/theme/defaults/dark-twilight.json +91 -0
  644. package/src/theme/defaults/dark-volcanic.json +91 -0
  645. package/src/theme/defaults/graphite.json +92 -0
  646. package/src/theme/defaults/index.ts +201 -0
  647. package/src/theme/defaults/light-arctic.json +107 -0
  648. package/src/theme/defaults/light-aurora-day.json +91 -0
  649. package/src/theme/defaults/light-canyon.json +91 -0
  650. package/src/theme/defaults/light-catppuccin.json +106 -0
  651. package/src/theme/defaults/light-cirrus.json +90 -0
  652. package/src/theme/defaults/light-coral.json +95 -0
  653. package/src/theme/defaults/light-cyberpunk.json +96 -0
  654. package/src/theme/defaults/light-dawn.json +90 -0
  655. package/src/theme/defaults/light-dunes.json +91 -0
  656. package/src/theme/defaults/light-eucalyptus.json +95 -0
  657. package/src/theme/defaults/light-forest.json +100 -0
  658. package/src/theme/defaults/light-frost.json +95 -0
  659. package/src/theme/defaults/light-github.json +115 -0
  660. package/src/theme/defaults/light-glacier.json +91 -0
  661. package/src/theme/defaults/light-gruvbox.json +108 -0
  662. package/src/theme/defaults/light-haze.json +90 -0
  663. package/src/theme/defaults/light-honeycomb.json +95 -0
  664. package/src/theme/defaults/light-lagoon.json +91 -0
  665. package/src/theme/defaults/light-lavender.json +95 -0
  666. package/src/theme/defaults/light-meadow.json +91 -0
  667. package/src/theme/defaults/light-mint.json +95 -0
  668. package/src/theme/defaults/light-monochrome.json +101 -0
  669. package/src/theme/defaults/light-ocean.json +99 -0
  670. package/src/theme/defaults/light-one.json +99 -0
  671. package/src/theme/defaults/light-opal.json +91 -0
  672. package/src/theme/defaults/light-orchard.json +91 -0
  673. package/src/theme/defaults/light-paper.json +95 -0
  674. package/src/theme/defaults/light-poimandres.json +115 -0
  675. package/src/theme/defaults/light-prism.json +90 -0
  676. package/src/theme/defaults/light-retro.json +98 -0
  677. package/src/theme/defaults/light-sand.json +95 -0
  678. package/src/theme/defaults/light-savanna.json +91 -0
  679. package/src/theme/defaults/light-solarized.json +102 -0
  680. package/src/theme/defaults/light-soleil.json +90 -0
  681. package/src/theme/defaults/light-sunset.json +99 -0
  682. package/src/theme/defaults/light-synthwave.json +98 -0
  683. package/src/theme/defaults/light-tokyo-night.json +111 -0
  684. package/src/theme/defaults/light-wetland.json +91 -0
  685. package/src/theme/defaults/light-zenith.json +89 -0
  686. package/src/theme/defaults/limestone.json +94 -0
  687. package/src/theme/defaults/mahogany.json +97 -0
  688. package/src/theme/defaults/marble.json +93 -0
  689. package/src/theme/defaults/obsidian.json +91 -0
  690. package/src/theme/defaults/onyx.json +91 -0
  691. package/src/theme/defaults/pearl.json +93 -0
  692. package/src/theme/defaults/porcelain.json +91 -0
  693. package/src/theme/defaults/quartz.json +96 -0
  694. package/src/theme/defaults/sandstone.json +95 -0
  695. package/src/theme/defaults/titanium.json +90 -0
  696. package/src/theme/index.ts +5 -0
  697. package/src/theme/light.json +93 -0
  698. package/src/theme/loader.ts +200 -0
  699. package/src/theme/mermaid-cache.ts +92 -0
  700. package/src/theme/schema-validation.ts +119 -0
  701. package/src/theme/schema.ts +168 -0
  702. package/src/theme/session-color.ts +253 -0
  703. package/src/theme/shimmer.ts +307 -0
  704. package/src/theme/symbols.ts +1434 -0
  705. package/src/theme/theme-class.ts +787 -0
  706. package/src/theme/theme-schema.json +463 -0
  707. package/src/theme/theme.ts +810 -0
  708. package/src/theme/tui-adapters.ts +339 -0
  709. package/src/thinking.ts +380 -0
  710. package/src/tools/agent-tree.ts +128 -0
  711. package/src/tools/ask.ts +482 -0
  712. package/src/tools/ast-edit.ts +210 -0
  713. package/src/tools/ast-grep.ts +171 -0
  714. package/src/tools/autoresearch.ts +287 -0
  715. package/src/tools/bash-interactive.ts +295 -0
  716. package/src/tools/bash.ts +468 -0
  717. package/src/tools/conflict-detect.ts +77 -0
  718. package/src/tools/debug.ts +167 -0
  719. package/src/tools/default-renderer.ts +172 -0
  720. package/src/tools/edit.ts +1258 -0
  721. package/src/tools/eval-format/code-mode-declarations.ts +61 -0
  722. package/src/tools/eval-format/index.ts +16 -0
  723. package/src/tools/eval-format/javascript.ts +952 -0
  724. package/src/tools/eval-format/python.ts +544 -0
  725. package/src/tools/eval.ts +835 -0
  726. package/src/tools/fetch.ts +226 -0
  727. package/src/tools/gh-format.ts +18 -0
  728. package/src/tools/github.ts +686 -0
  729. package/src/tools/glob.ts +213 -0
  730. package/src/tools/goal.ts +153 -0
  731. package/src/tools/grep.ts +385 -0
  732. package/src/tools/grouped-file-output.ts +211 -0
  733. package/src/tools/hashline-format.ts +89 -0
  734. package/src/tools/hub.ts +1488 -0
  735. package/src/tools/index.ts +71 -0
  736. package/src/tools/json-tree.ts +388 -0
  737. package/src/tools/line-ranges.ts +98 -0
  738. package/src/tools/list-limit.ts +43 -0
  739. package/src/tools/lsp.ts +702 -0
  740. package/src/tools/match-line-format.ts +20 -0
  741. package/src/tools/mcp.ts +309 -0
  742. package/src/tools/memory.ts +220 -0
  743. package/src/tools/output-meta.ts +367 -0
  744. package/src/tools/read.ts +628 -0
  745. package/src/tools/renderer.ts +107 -0
  746. package/src/tools/report-tool-issue.ts +13 -0
  747. package/src/tools/resolve.ts +139 -0
  748. package/src/tools/streaming-output.ts +1576 -0
  749. package/src/tools/subprocess.ts +39 -0
  750. package/src/tools/task-repair-args.ts +118 -0
  751. package/src/tools/task-yield-assembly.ts +147 -0
  752. package/src/tools/task.ts +2110 -0
  753. package/src/tools/terminal-output.ts +153 -0
  754. package/src/tools/think.ts +28 -0
  755. package/src/tools/todo.ts +580 -0
  756. package/src/tools/tool-errors.ts +15 -0
  757. package/src/tools/vibe.ts +420 -0
  758. package/src/tools/web-search.ts +414 -0
  759. package/src/tools/write.ts +511 -0
  760. package/src/tools/xd-url.ts +28 -0
  761. package/src/tools/xdev.ts +201 -0
  762. package/src/tui.ts +485 -164
  763. package/src/utils.ts +8 -0
package/CHANGELOG.md CHANGED
@@ -2,7 +2,643 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
- ## [1.1.15] - 2026-09-16
5
+ ## [1.1.16] - 2026-09-19
6
6
 
7
- - 上游 v18.1.17–v18.1.21 同步:状态行子代理徽章改为图标+计数展示。
7
+ - 上游 v18.2.5 同步:每击键/每帧渲染浪费削减、billing 摘要重构、stream 状态分段、paint-listener 通知管线。
8
+ - 主题、覆盖层、chat、工具渲染器与 apps 组件自 coding-agent 迁入本包(模块迁移)。
8
9
 
10
+ ## [9.8.0] - 2026-02-01
11
+
12
+ ### Changed
13
+
14
+ - Moved `wrapTextWithAnsi` export to `@linxiraos/pi-natives` package
15
+
16
+ ### Fixed
17
+
18
+ - Improved Kitty terminal key sequence parsing to correctly handle text field codepoints in CSI-u sequences
19
+ - Fixed handling of private use Unicode codepoints (U+E000 to U+F8FF) in Kitty key decoding to prevent invalid character interpretation
20
+
21
+ ## [9.7.0] - 2026-02-01
22
+
23
+ ### Breaking Changes
24
+
25
+ - Removed `Key` helper object from public API; use string literals like `"ctrl+c"` instead of `Key.ctrl("c")`
26
+ - Removed `KeyEventType` export from public API
27
+
28
+ ### Changed
29
+
30
+ - Migrated key parsing and matching logic to native implementation for improved performance
31
+ - Simplified `isKeyRelease()` and `isKeyRepeat()` to use regex pattern matching instead of string inclusion checks
32
+
33
+ ## [9.6.2] - 2026-02-01
34
+
35
+ ### Changed
36
+
37
+ - Renamed `EllipsisKind` enum to `Ellipsis` for clearer API naming
38
+ - Changed hardcoded ellipsis character from theme-configurable to literal "…" in editor truncation
39
+ - Refactored `visibleWidth` function to use caching wrapper around new `visibleWidthRaw` implementation for improved performance
40
+
41
+ ### Removed
42
+
43
+ - Removed `truncateToWidth`, `sliceWithWidth`, and `extractSegments` functions from public API (now re-exported directly from @linxiraos/pi-natives)
44
+ - Removed `ellipsis` property from `SymbolTheme` interface
45
+ - Removed `extractAnsiCode` function from public API
46
+
47
+ ## [9.6.1] - 2026-02-01
48
+
49
+ ### Changed
50
+
51
+ - Improved performance of key ID parsing with optimized cache lookup strategy
52
+ - Simplified `visibleWidth` calculation to use consistent Bun.stringWidth approach for all string lengths
53
+
54
+ ### Removed
55
+
56
+ - Removed `visibleWidth` benchmark file in favor of Kitty sequence benchmarking
57
+
58
+ ## [9.5.0] - 2026-02-01
59
+
60
+ ### Changed
61
+
62
+ - Improved fuzzy file search performance by using native implementation instead of spawning external process
63
+ - Replaced external `fd` binary with native fuzzy path search for `@`-prefixed autocomplete
64
+
65
+ ## [9.4.0] - 2026-01-31
66
+
67
+ ### Added
68
+
69
+ - Exported `padding` utility function for creating space-padded strings efficiently
70
+
71
+ ### Changed
72
+
73
+ - Optimized padding operations across all components to use pre-allocated space buffer for better performance
74
+
75
+ ## [9.2.2] - 2026-01-31
76
+
77
+ ### Added
78
+
79
+ - Added setAutocompleteMaxVisible() configuration (3-20 items)
80
+ - Added image detection to terminal capabilities (containsImage method)
81
+ - Added stdin monitoring to detect stalled input events and log warnings
82
+
83
+ ### Changed
84
+
85
+ - Improved blockquote rendering with text wrapping in Markdown component
86
+ - Restructured terminal capabilities from interface-based to class-based model
87
+ - Improved table column width calculation with word-aware wrapping
88
+ - Refactored text utilities to use native WASM implementations for strings >256 chars with JS fast path
89
+
90
+ ### Fixed
91
+
92
+ - Simplified terminal write error handling to mark terminal as dead on any write failure
93
+ - Fixed multi-line strings in renderOutputBlock causing width overflow
94
+ - Fixed slash command autocomplete applying stale completion when typing quickly
95
+
96
+ ### Removed
97
+
98
+ - Removed TUI layout engine exports from public API (BoxNode, ColumnNode, LayoutNode, etc.)
99
+
100
+ ## [8.12.7] - 2026-01-29
101
+
102
+ ### Fixed
103
+
104
+ - Fixed slash command autocomplete applying stale completion when typing quickly
105
+
106
+ ## [8.4.1] - 2026-01-25
107
+
108
+ ### Added
109
+
110
+ - Added fuzzy match function for autocomplete suggestions
111
+
112
+ ## [8.4.0] - 2026-01-25
113
+
114
+ ### Changed
115
+
116
+ - Added Ctrl+Backspace as a delete-word-backward keybinding and improved modified backspace matching
117
+
118
+ ### Fixed
119
+
120
+ - Terminal gracefully handles write failures by marking dead instead of exiting the process
121
+ - Reserved cursor space for zero padding and corrected end-of-line cursor rendering to prevent wrap glitches
122
+ - Corrected editor end-of-line cursor rendering assertion to use includes() instead of endsWith()
123
+
124
+ ## [8.2.0] - 2026-01-24
125
+
126
+ ### Added
127
+
128
+ - Added mermaid diagram rendering engine (renderMermaidToPng) with mmdc CLI integration
129
+ - Added terminal graphics encoding (iTerm2/Kitty) for mermaid diagrams with automatic width scaling
130
+ - Added mermaid block extraction and deduplication utilities (extractMermaidBlocks)
131
+
132
+ ### Changed
133
+
134
+ - Updated TypeScript configuration for better publish-time configuration handling with tsconfig.publish.json
135
+ - Migrated file system operations from synchronous to asynchronous APIs in autocomplete provider for non-blocking I/O
136
+ - Migrated node module imports from named to namespace imports across all packages for consistency with project guidelines
137
+
138
+ ### Fixed
139
+
140
+ - Fixed crash when terminal becomes unavailable (EIO errors) by exiting gracefully instead of throwing
141
+ - Fixed potential errors during emergency terminal restore when terminal is already dead
142
+ - Fixed autocomplete race condition by tracking request ID to prevent stale suggestion results
143
+
144
+ ## [6.8.3] - 2026-01-21
145
+
146
+ ### Added
147
+
148
+ - Added undo support in the editor via `Ctrl+-`
149
+ - Added `Alt+Delete` as a delete-word-forward shortcut
150
+ - Added configurable code block indentation for Markdown rendering
151
+ - Added undo support in the editor via `Ctrl+-`.
152
+ - Added configurable code block indentation for Markdown rendering.
153
+ - Added `Alt+Delete` as a delete-word-forward shortcut.
154
+
155
+ ### Changed
156
+
157
+ - Improved fuzzy matching to handle alphanumeric swaps
158
+ - Normalized keybinding definitions to lowercase internally
159
+ - Improved fuzzy matching to handle alphanumeric swaps.
160
+ - Normalized keybinding definitions to lowercase internally.
161
+
162
+ ### Fixed
163
+
164
+ - Added legacy terminal support for `Ctrl+` symbol key combinations
165
+ - Added legacy terminal support for `Ctrl+` symbol key combinations.
166
+
167
+ ## [6.8.1] - 2026-01-20
168
+
169
+ ### Fixed
170
+
171
+ - Fixed viewport tracking after partial renders to prevent autocomplete list artifacts
172
+
173
+ ## [5.6.7] - 2026-01-18
174
+
175
+ ### Added
176
+
177
+ - Added configurable editor padding via `editorPaddingX` theme option
178
+ - Added `setMaxHeight()` method to limit editor height with scrolling
179
+ - Added Emacs-style kill ring for text deletion operations
180
+ - Added `Alt+D` keybinding to delete words forward
181
+ - Added `Ctrl+Y` keybinding to yank from kill ring
182
+ - Added `waitForRender()` method to await pending renders
183
+ - Added Focusable interface and hardware cursor marker support for IME positioning
184
+ - Added support for shifted symbol keys in keybindings
185
+
186
+ ### Changed
187
+
188
+ - Updated tab bar rendering to wrap text across multiple lines when content exceeds available width
189
+ - Expanded Kitty keyboard protocol coverage for non-Latin layouts and legacy Alt sequences
190
+ - Improved cursor positioning with safer bounds checking
191
+ - Updated editor layout to respect configurable padding
192
+ - Refactored scrolling logic for better viewport management
193
+
194
+ ### Fixed
195
+
196
+ - Fixed key detection for shifted symbol characters
197
+ - Fixed backspace handling with additional codepoint support
198
+ - Fixed Alt+letter key combinations for better recognition
199
+
200
+ ## [5.3.1] - 2026-01-15
201
+
202
+ ### Fixed
203
+
204
+ - Fixed rendering issues on Windows by preventing re-entrant renders
205
+
206
+ ## [5.1.0] - 2026-01-14
207
+
208
+ ### Added
209
+
210
+ - Added `pageUp` and `pageDown` key support with `selectPageUp`/`selectPageDown` editor actions
211
+ - Added `isPageUp()` and `isPageDown()` helper functions
212
+ - Added `SizeValue` type for CSS-like overlay sizing (absolute or percentage strings like `"50%"`)
213
+ - Added `OverlayHandle` interface with `hide()`, `setHidden()`, `isHidden()` methods for overlay visibility control
214
+ - Added `visible` callback to `OverlayOptions` for dynamic visibility based on terminal dimensions
215
+ - Added `pad` parameter to `truncateToWidth()` for padding result with spaces to exact width
216
+
217
+ ### Changed
218
+
219
+ - Changed `OverlayOptions` to use `SizeValue` type for `width`, `maxHeight`, `row`, and `col` properties
220
+ - Changed `showOverlay()` to return `OverlayHandle` for controlling overlay visibility
221
+ - Removed `widthPercent`, `maxHeightPercent`, `rowPercent`, `colPercent` from `OverlayOptions` (use percentage strings instead)
222
+
223
+ ### Fixed
224
+
225
+ - Fixed numbered list items showing "1." for all items when code blocks break list continuity
226
+ - Fixed width overflow protection in overlay compositing to prevent TUI crashes
227
+
228
+ ## [4.7.0] - 2026-01-12
229
+
230
+ ### Fixed
231
+
232
+ - Remove trailing space padding from Text, Markdown, and TruncatedText components when no background color is set (fixes copied text including unwanted whitespace)
233
+
234
+ ## [4.6.0] - 2026-01-12
235
+
236
+ ### Added
237
+
238
+ - Add fuzzy matching module (`fuzzyMatch`, `fuzzyFilter`) for command autocomplete
239
+ - Add `getExpandedText()` to editor for expanding paste markers
240
+ - Add backslash+enter newline fallback for terminals without Kitty protocol
241
+
242
+ ### Fixed
243
+
244
+ - Remove Kitty protocol query timeout that caused shift+enter delays
245
+ - Add bracketed paste check to prevent false key release/repeat detection
246
+ - Rendering optimizations: only re-render changed lines
247
+ - Refactor input component to use keybindings manager
248
+
249
+ ## [4.4.4] - 2026-01-11
250
+
251
+ ### Fixed
252
+
253
+ - Fixed Ctrl+Enter sequences to insert new lines in the editor
254
+
255
+ ## [4.2.1] - 2026-01-11
256
+
257
+ ### Changed
258
+
259
+ - Improved file autocomplete to show directory listing when typing `@` with no query, and fall back to prefix matching when fuzzy search returns no results
260
+
261
+ ### Fixed
262
+
263
+ - Fixed editor redraw glitch when canceling autocomplete suggestions
264
+ - Fixed `fd` tool detection to automatically find `fd` or `fdfind` in PATH when not explicitly configured
265
+
266
+ ## [4.1.0] - 2026-01-10
267
+
268
+ ### Added
269
+
270
+ - Added persistent prompt history storage support via `setHistoryStorage()` method, allowing history to be saved and restored across sessions
271
+
272
+ ## [4.0.0] - 2026-01-10
273
+
274
+ ### Added
275
+
276
+ - `EditorComponent` interface for custom editor implementations
277
+ - `StdinBuffer` class to split batched stdin into individual sequences
278
+ - Overlay compositing via `TUI.showOverlay()` and `TUI.hideOverlay()` for `ctx.ui.custom()` with `{ overlay: true }`
279
+ - Kitty keyboard protocol flag 2 support for key release events (`isKeyRelease()`, `isKeyRepeat()`, `KeyEventType`)
280
+ - `setKittyProtocolActive()`, `isKittyProtocolActive()` for Kitty protocol state management
281
+ - `kittyProtocolActive` property on Terminal interface to query Kitty protocol state
282
+ - `Component.wantsKeyRelease` property to opt-in to key release events (default false)
283
+ - Input component `onEscape` callback for handling escape key presses
284
+
285
+ ### Changed
286
+
287
+ - Terminal startup now queries Kitty protocol support before enabling event reporting
288
+ - Default editor `newLine` binding now uses `shift+enter` only
289
+
290
+ ### Fixed
291
+
292
+ - Key presses no longer dropped when batched with other events over SSH
293
+ - TUI now filters out key release events by default, preventing double-processing of keys
294
+ - `matchesKey()` now correctly matches Kitty protocol sequences for unmodified letter keys
295
+ - Crash when pasting text with trailing whitespace exceeding terminal width through Markdown rendering
296
+
297
+ ## [3.32.0] - 2026-01-08
298
+
299
+ ### Fixed
300
+
301
+ - Fixed text wrapping allowing long whitespace tokens to exceed line width
302
+
303
+ ## [3.20.0] - 2026-01-06
304
+
305
+ ### Added
306
+
307
+ - Added `isCapsLock` helper function for detecting Caps Lock key press via Kitty protocol
308
+ - Added `isCtrlY` helper function for detecting Ctrl+Y keyboard input
309
+ - Added configurable editor keybindings with typed key identifiers and action matching
310
+ - Added word-wrapped editor rendering for long lines
311
+
312
+ ### Changed
313
+
314
+ - Settings list descriptions now wrap to the available width instead of truncating
315
+
316
+ ### Fixed
317
+
318
+ - Fixed Shift+Enter detection in legacy terminals that send ESC+CR sequence
319
+
320
+ ## [3.15.1] - 2026-01-05
321
+
322
+ ### Fixed
323
+
324
+ - Fixed editor cursor blinking by allowing terminal cursor positioning when enabled.
325
+
326
+ ## [3.15.0] - 2026-01-05
327
+
328
+ ### Added
329
+
330
+ - Added `inputCursor` symbol for customizing the text input cursor character
331
+ - Added `symbols` property to `EditorTheme`, `MarkdownTheme`, and `SelectListTheme` interfaces for component-level symbol customization
332
+ - Added `SymbolTheme` interface for customizing UI symbols including cursors, borders, spinners, and box-drawing characters
333
+ - Added support for custom spinner frames in the Loader component
334
+
335
+ ## [3.9.1337] - 2026-01-04
336
+
337
+ ### Added
338
+
339
+ - Added `setTopBorder()` method to Editor component for displaying custom status content in the top border
340
+ - Added `getWidth()` method to TUI class for retrieving terminal width
341
+ - Added rounded corner box-drawing characters to Editor component borders
342
+
343
+ ### Changed
344
+
345
+ - Changed Editor component to use proper box borders with vertical side borders instead of horizontal-only borders
346
+ - Changed cursor style from block to thin blinking bar (▏) at end of line
347
+
348
+ ## [1.500.0] - 2026-01-03
349
+
350
+ ### Added
351
+
352
+ - Added `getText()` method to Text component for retrieving current text content
353
+
354
+ ## [1.337.1] - 2026-01-02
355
+
356
+ ### Added
357
+
358
+ - TabBar component for horizontal tab navigation
359
+ - Emergency terminal restore to prevent corrupted state on crashes
360
+ - Overhauled UI with welcome screen and powerline footer
361
+ - Theme-configurable HTML export colors
362
+ - `ctx.ui.theme` getter for styling status text with theme colors
363
+
364
+ ### Changed
365
+
366
+ - Forked to @oh-my-pi scope with unified versioning across all packages
367
+
368
+ ### Fixed
369
+
370
+ - Strip OSC 8 hyperlink sequences in `visibleWidth()`
371
+ - Crash on Unicode format characters in `visibleWidth()`
372
+ - Markdown code block syntax highlighting
373
+
374
+ ## [1.337.0] - 2026-01-02
375
+
376
+ Initial release under @oh-my-pi scope. See previous releases at [badlogic/pi-mono](https://github.com/badlogic/pi-mono).
377
+
378
+ ## [1.5.0] - 2026-01-03
379
+
380
+ ### Added
381
+
382
+ - Added `getText()` method to Text component for retrieving current text content
383
+
384
+ ## [0.50.0] - 2026-01-26
385
+
386
+ ### Added
387
+
388
+ - Added `fullRedraws` readonly property to TUI class for tracking full screen redraws
389
+ - Added `PI_TUI_WRITE_LOG` environment variable to capture raw ANSI output for debugging
390
+
391
+ ### Fixed
392
+
393
+ - Fixed appended lines not being committed to scrollback, causing earlier content to be overwritten when viewport fills ([#954](https://github.com/badlogic/pi-mono/issues/954))
394
+ - Slash command menu now only triggers when the editor input is otherwise empty ([#904](https://github.com/badlogic/pi-mono/issues/904))
395
+ - Center-anchored overlays now stay vertically centered when resizing the terminal taller after a shrink ([#950](https://github.com/badlogic/pi-mono/pull/950) by [@nicobailon](https://github.com/nicobailon))
396
+ - Fixed editor multi-line insertion handling and lastAction tracking ([#945](https://github.com/badlogic/pi-mono/pull/945) by [@Perlence](https://github.com/Perlence))
397
+ - Fixed editor word wrapping to reserve a cursor column ([#934](https://github.com/badlogic/pi-mono/pull/934) by [@Perlence](https://github.com/Perlence))
398
+ - Fixed editor word wrapping to use single-pass backtracking for whitespace handling ([#924](https://github.com/badlogic/pi-mono/pull/924) by [@Perlence](https://github.com/Perlence))
399
+ - Fixed Kitty image ID allocation and cleanup to prevent image ID collisions between modules
400
+
401
+ ## [0.49.3] - 2026-01-22
402
+
403
+ ### Added
404
+
405
+ - `codeBlockIndent` property on `MarkdownTheme` to customize code block content indentation (default: 2 spaces) ([#855](https://github.com/badlogic/pi-mono/pull/855) by [@terrorobe](https://github.com/terrorobe))
406
+ - Added Alt+Delete as hotkey for delete word forwards ([#878](https://github.com/badlogic/pi-mono/pull/878) by [@Perlence](https://github.com/Perlence))
407
+
408
+ ### Changed
409
+
410
+ - Fuzzy matching now scores consecutive matches higher and penalizes gaps more heavily for better relevance ([#860](https://github.com/badlogic/pi-mono/pull/860) by [@mitsuhiko](https://github.com/mitsuhiko))
411
+
412
+ ### Fixed
413
+
414
+ - Autolinked emails no longer display redundant `(mailto:...)` suffix in markdown output ([#888](https://github.com/badlogic/pi-mono/pull/888) by [@terrorobe](https://github.com/terrorobe))
415
+ - Fixed viewport tracking and cursor positioning for overlays and content shrink scenarios
416
+ - Autocomplete now allows searches with `/` characters (e.g., `folder1/folder2`) ([#882](https://github.com/badlogic/pi-mono/pull/882) by [@richardgill](https://github.com/richardgill))
417
+ - Directory completions for `@` file attachments no longer add trailing space, allowing continued autocomplete into subdirectories
418
+
419
+ ## [0.49.1] - 2026-01-18
420
+
421
+ ### Added
422
+
423
+ - Added undo support to Editor with Ctrl+- hotkey. Undo coalesces consecutive word characters into one unit (fish-style). ([#831](https://github.com/badlogic/pi-mono/pull/831) by [@Perlence](https://github.com/Perlence))
424
+ - Added legacy terminal support for Ctrl+symbol keys (Ctrl+\, Ctrl+], Ctrl+-) and their Ctrl+Alt variants. ([#831](https://github.com/badlogic/pi-mono/pull/831) by [@Perlence](https://github.com/Perlence))
425
+
426
+ ## [0.49.0] - 2026-01-17
427
+
428
+ ### Added
429
+
430
+ - Added `showHardwareCursor` getter and setter to control cursor visibility while keeping IME positioning active. ([#800](https://github.com/badlogic/pi-mono/pull/800) by [@ghoulr](https://github.com/ghoulr))
431
+ - Added Emacs-style kill ring editing with yank and yank-pop keybindings. ([#810](https://github.com/badlogic/pi-mono/pull/810) by [@Perlence](https://github.com/Perlence))
432
+ - Added legacy Alt+letter handling and Alt+D delete word forward support in the editor keymap. ([#810](https://github.com/badlogic/pi-mono/pull/810) by [@Perlence](https://github.com/Perlence))
433
+
434
+ ## [0.48.0] - 2026-01-16
435
+
436
+ ### Added
437
+
438
+ - `EditorOptions` with optional `paddingX` for horizontal content padding, plus `getPaddingX()`/`setPaddingX()` methods ([#791](https://github.com/badlogic/pi-mono/pull/791) by [@ferologics](https://github.com/ferologics))
439
+
440
+ ### Changed
441
+
442
+ - Hardware cursor is now disabled by default for better terminal compatibility. Set `PI_HARDWARE_CURSOR=1` to enable (replaces `PI_NO_HARDWARE_CURSOR=1` which disabled it).
443
+
444
+ ### Fixed
445
+
446
+ - Decode Kitty CSI-u printable sequences in the editor so shifted symbol keys (e.g., `@`, `?`) work in terminals that enable Kitty keyboard protocol ([#779](https://github.com/badlogic/pi-mono/pull/779) by [@iamd3vil](https://github.com/iamd3vil))
447
+
448
+ ## [0.47.0] - 2026-01-16
449
+
450
+ ### Breaking Changes
451
+
452
+ - `Editor` constructor now requires `TUI` as first parameter: `new Editor(tui, theme)`. This enables automatic vertical scrolling when content exceeds terminal height. ([#732](https://github.com/badlogic/pi-mono/issues/732))
453
+
454
+ ### Added
455
+
456
+ - Hardware cursor positioning for IME support in `Editor` and `Input` components. The terminal cursor now follows the text cursor position, enabling proper IME candidate window placement for CJK input. ([#719](https://github.com/badlogic/pi-mono/pull/719))
457
+ - `Focusable` interface for components that need hardware cursor positioning. Implement `focused: boolean` and emit `CURSOR_MARKER` in render output when focused.
458
+ - `CURSOR_MARKER` constant and `isFocusable()` type guard exported from the package
459
+ - Editor now supports Page Up/Down keys (Fn+Up/Down on MacBook) for scrolling through large content ([#732](https://github.com/badlogic/pi-mono/issues/732))
460
+ - Expanded keymap coverage for terminal compatibility: added support for Home/End keys in tmux, additional modifier combinations, and improved key sequence parsing ([#752](https://github.com/badlogic/pi-mono/pull/752) by [@richardgill](https://github.com/richardgill))
461
+
462
+ ### Fixed
463
+
464
+ - Editor no longer corrupts terminal display when text exceeds screen height. Content now scrolls vertically with indicators showing lines above/below the viewport. Max height is 30% of terminal (minimum 5 lines). ([#732](https://github.com/badlogic/pi-mono/issues/732))
465
+ - `visibleWidth()` and `extractAnsiCode()` now handle APC escape sequences (`ESC _ ... BEL`), fixing width calculation and string slicing for strings containing cursor markers
466
+ - SelectList now handles multi-line descriptions by replacing newlines with spaces ([#728](https://github.com/badlogic/pi-mono/pull/728) by [@richardgill](https://github.com/richardgill))
467
+
468
+ ## [0.46.0] - 2026-01-15
469
+
470
+ ### Fixed
471
+
472
+ - Keyboard shortcuts (Ctrl+C, Ctrl+D, etc.) now work on non-Latin keyboard layouts (Russian, Ukrainian, Bulgarian, etc.) in terminals supporting Kitty keyboard protocol with alternate key reporting ([#718](https://github.com/badlogic/pi-mono/pull/718) by [@dannote](https://github.com/dannote))
473
+
474
+ ## [0.45.6] - 2026-01-13
475
+
476
+ ### Added
477
+
478
+ - `OverlayOptions` API for overlay positioning and sizing with CSS-like values: `width`, `maxHeight`, `row`, `col` accept numbers (absolute) or percentage strings (e.g., `"50%"`). Also supports `minWidth`, `anchor`, `offsetX`, `offsetY`, `margin`. ([#667](https://github.com/badlogic/pi-mono/pull/667) by [@nicobailon](https://github.com/nicobailon))
479
+ - `OverlayOptions.visible` callback for responsive overlays - receives terminal dimensions, return false to hide ([#667](https://github.com/badlogic/pi-mono/pull/667) by [@nicobailon](https://github.com/nicobailon))
480
+ - `showOverlay()` now returns `OverlayHandle` with `hide()`, `setHidden(boolean)`, `isHidden()` for programmatic visibility control ([#667](https://github.com/badlogic/pi-mono/pull/667) by [@nicobailon](https://github.com/nicobailon))
481
+ - New exported types: `OverlayAnchor`, `OverlayHandle`, `OverlayMargin`, `OverlayOptions`, `SizeValue` ([#667](https://github.com/badlogic/pi-mono/pull/667) by [@nicobailon](https://github.com/nicobailon))
482
+ - `truncateToWidth()` now accepts optional `pad` parameter to pad result with spaces to exactly `maxWidth` ([#667](https://github.com/badlogic/pi-mono/pull/667) by [@nicobailon](https://github.com/nicobailon))
483
+
484
+ ### Fixed
485
+
486
+ - Overlay compositing crash when rendered lines exceed terminal width due to complex ANSI/OSC sequences (e.g., hyperlinks in subagent output) ([#667](https://github.com/badlogic/pi-mono/pull/667) by [@nicobailon](https://github.com/nicobailon))
487
+
488
+ ## [0.44.0] - 2026-01-12
489
+
490
+ ### Added
491
+
492
+ - `SettingsListOptions` with `enableSearch` for fuzzy filtering in `SettingsList` ([#643](https://github.com/badlogic/pi-mono/pull/643) by [@ninlds](https://github.com/ninlds))
493
+ - `pageUp` and `pageDown` key support with `selectPageUp`/`selectPageDown` editor actions ([#662](https://github.com/badlogic/pi-mono/pull/662) by [@aliou](https://github.com/aliou))
494
+
495
+ ### Fixed
496
+
497
+ - Numbered list items showing "1." for all items when code blocks break list continuity ([#660](https://github.com/badlogic/pi-mono/pull/660) by [@ogulcancelik](https://github.com/ogulcancelik))
498
+
499
+ ## [0.43.0] - 2026-01-11
500
+
501
+ ### Added
502
+
503
+ - `fuzzyFilter()` and `fuzzyMatch()` utilities for fuzzy text matching
504
+ - Slash command autocomplete now uses fuzzy matching instead of prefix matching
505
+
506
+ ### Fixed
507
+
508
+ - Cursor now moves to end of content on exit, preventing status line from being overwritten ([#629](https://github.com/badlogic/pi-mono/pull/629) by [@tallshort](https://github.com/tallshort))
509
+ - Reset ANSI styles after each rendered line to prevent style leakage
510
+
511
+ ## [0.42.5] - 2026-01-11
512
+
513
+ ### Fixed
514
+
515
+ - Reduced flicker by only re-rendering changed lines ([#617](https://github.com/badlogic/pi-mono/pull/617) by [@ogulcancelik](https://github.com/ogulcancelik))
516
+ - Cursor position tracking when content shrinks with unchanged remaining lines
517
+ - TUI renders with wrong dimensions after suspend/resume if terminal was resized while suspended ([#599](https://github.com/badlogic/pi-mono/issues/599))
518
+ - Pasted content containing Kitty key release patterns (e.g., `:3F` in MAC addresses) was incorrectly filtered out ([#623](https://github.com/badlogic/pi-mono/pull/623) by [@ogulcancelik](https://github.com/ogulcancelik))
519
+
520
+ ## [0.39.0] - 2026-01-08
521
+
522
+ ### Added
523
+
524
+ - **Experimental:** Overlay compositing for `ctx.ui.custom()` with `{ overlay: true }` option ([#558](https://github.com/badlogic/pi-mono/pull/558) by [@nicobailon](https://github.com/nicobailon))
525
+
526
+ ## [0.38.0] - 2026-01-08
527
+
528
+ ### Added
529
+
530
+ - `EditorComponent` interface for custom editor implementations
531
+ - `StdinBuffer` class to split batched stdin into individual sequences (adapted from [OpenTUI](https://github.com/anomalyco/opentui), MIT license)
532
+
533
+ ### Fixed
534
+
535
+ - Key presses no longer dropped when batched with other events over SSH ([#538](https://github.com/badlogic/pi-mono/pull/538))
536
+
537
+ ## [0.37.8] - 2026-01-07
538
+
539
+ ### Added
540
+
541
+ - `Component.wantsKeyRelease` property to opt-in to key release events (default false)
542
+
543
+ ### Fixed
544
+
545
+ - TUI now filters out key release events by default, preventing double-processing of keys in editors and other components
546
+
547
+ ## [0.37.7] - 2026-01-07
548
+
549
+ ### Fixed
550
+
551
+ - `matchesKey()` now correctly matches Kitty protocol sequences for unmodified letter keys (needed for key release events)
552
+
553
+ ## [0.37.6] - 2026-01-06
554
+
555
+ ### Added
556
+
557
+ - Kitty keyboard protocol flag 2 support for key release events. New exports: `isKeyRelease(data)`, `isKeyRepeat(data)`, `KeyEventType` type. Terminals supporting Kitty protocol (Kitty, Ghostty, WezTerm) now send proper key-up events.
558
+
559
+ ## [0.37.0] - 2026-01-05
560
+
561
+ ### Fixed
562
+
563
+ - Crash when pasting text with trailing whitespace exceeding terminal width through Markdown rendering ([#457](https://github.com/badlogic/pi-mono/pull/457) by [@robinwander](https://github.com/robinwander))
564
+
565
+ ## [0.34.1] - 2026-01-04
566
+
567
+ ### Added
568
+
569
+ - Symbol key support in keybinding system: `SymbolKey` type with 32 symbol keys, `Key` constants (e.g., `Key.backtick`, `Key.comma`), updated `matchesKey()` and `parseKey()` to handle symbol input ([#450](https://github.com/badlogic/pi-mono/pull/450) by [@kaofelix](https://github.com/kaofelix))
570
+
571
+ ## [0.34.0] - 2026-01-04
572
+
573
+ ### Added
574
+
575
+ - `Editor.getExpandedText()` method that returns text with paste markers expanded to their actual content ([#444](https://github.com/badlogic/pi-mono/pull/444) by [@aliou](https://github.com/aliou))
576
+
577
+ ## [0.33.0] - 2026-01-04
578
+
579
+ ### Breaking Changes
580
+
581
+ - **Key detection functions removed**: All `isXxx()` key detection functions (`isEnter()`, `isEscape()`, `isCtrlC()`, etc.) have been removed. Use `matchesKey(data, keyId)` instead (e.g., `matchesKey(data, "enter")`, `matchesKey(data, "ctrl+c")`). This affects hooks and custom tools that use `ctx.ui.custom()` with keyboard input handling. ([#405](https://github.com/badlogic/pi-mono/pull/405))
582
+
583
+ ### Added
584
+
585
+ - `Editor.insertTextAtCursor(text)` method for programmatic text insertion ([#419](https://github.com/badlogic/pi-mono/issues/419))
586
+ - `EditorKeybindingsManager` for configurable editor keybindings. Components now use `matchesKey()` and keybindings manager instead of individual `isXxx()` functions. ([#405](https://github.com/badlogic/pi-mono/pull/405) by [@hjanuschka](https://github.com/hjanuschka))
587
+
588
+ ### Changed
589
+
590
+ - Key detection refactored: consolidated `is*()` functions into generic `matchesKey(data, keyId)` function that accepts key identifiers like `"ctrl+c"`, `"shift+enter"`, `"alt+left"`, etc.
591
+
592
+ ## [0.32.2] - 2026-01-03
593
+
594
+ ### Fixed
595
+
596
+ - Slash command autocomplete now triggers for commands starting with `.`, `-`, or `_` (e.g., `/.land`, `/-foo`) ([#422](https://github.com/badlogic/pi-mono/issues/422))
597
+
598
+ ## [0.32.0] - 2026-01-03
599
+
600
+ ### Changed
601
+
602
+ - Editor component now uses word wrapping instead of character-level wrapping for better readability ([#382](https://github.com/badlogic/pi-mono/pull/382) by [@nickseelert](https://github.com/nickseelert))
603
+
604
+ ### Fixed
605
+
606
+ - Shift+Space, Shift+Backspace, and Shift+Delete now work correctly in Kitty-protocol terminals (Kitty, WezTerm, etc.) instead of being silently ignored ([#411](https://github.com/badlogic/pi-mono/pull/411) by [@nathyong](https://github.com/nathyong))
607
+
608
+ ## [0.31.1] - 2026-01-02
609
+
610
+ ### Fixed
611
+
612
+ - `visibleWidth()` now strips OSC 8 hyperlink sequences, fixing text wrapping for clickable links ([#396](https://github.com/badlogic/pi-mono/pull/396) by [@Cursivez](https://github.com/Cursivez))
613
+
614
+ ## [0.31.0] - 2026-01-02
615
+
616
+ ### Added
617
+
618
+ - `isShiftCtrlO()` key detection function for Shift+Ctrl+O (Kitty protocol)
619
+ - `isShiftCtrlD()` key detection function for Shift+Ctrl+D (Kitty protocol)
620
+ - `TUI.onDebug` callback for global debug key handling (Shift+Ctrl+D)
621
+ - `wrapTextWithAnsi()` utility now exported (wraps text to width, preserving ANSI codes)
622
+
623
+ ### Changed
624
+
625
+ - README.md completely rewritten with accurate component documentation, theme interfaces, and examples
626
+ - `visibleWidth()` reimplemented with grapheme-based width calculation, 10x faster on Bun and ~15% faster on Node ([#369](https://github.com/badlogic/pi-mono/pull/369) by [@nathyong](https://github.com/nathyong))
627
+
628
+ ### Fixed
629
+
630
+ - Markdown component now renders HTML tags as plain text instead of silently dropping them ([#359](https://github.com/badlogic/pi-mono/issues/359))
631
+ - Crash in `visibleWidth()` and grapheme iteration when encountering undefined code points ([#372](https://github.com/badlogic/pi-mono/pull/372) by [@HACKE-RC](https://github.com/HACKE-RC))
632
+ - ZWJ emoji sequences (rainbow flag, family, etc.) now render with correct width instead of being split into multiple characters ([#369](https://github.com/badlogic/pi-mono/pull/369) by [@nathyong](https://github.com/nathyong))
633
+
634
+ ## [0.29.0] - 2025-12-25
635
+
636
+ ### Added
637
+
638
+ - **Auto-space before pasted file paths**: When pasting a file path (starting with `/`, `~`, or `.`) and the cursor is after a word character, a space is automatically prepended for better readability. Useful when dragging screenshots from macOS. ([#307](https://github.com/badlogic/pi-mono/pull/307) by [@mitsuhiko](https://github.com/mitsuhiko))
639
+ - **Word navigation for Input component**: Added Ctrl+Left/Right and Alt+Left/Right support for word-by-word cursor movement. ([#306](https://github.com/badlogic/pi-mono/pull/306) by [@kim0](https://github.com/kim0))
640
+ - **Full Unicode input**: Input component now accepts Unicode characters beyond ASCII. ([#306](https://github.com/badlogic/pi-mono/pull/306) by [@kim0](https://github.com/kim0))
641
+
642
+ ### Fixed
643
+
644
+ - **Readline-style Ctrl+W**: Now skips trailing whitespace before deleting the preceding word, matching standard readline behavior. ([#306](https://github.com/badlogic/pi-mono/pull/306) by [@kim0](https://github.com/kim0))