@dexto/tui 1.6.2

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 (739) hide show
  1. package/LICENSE +44 -0
  2. package/dist/InkCLIRefactored.cjs +319 -0
  3. package/dist/InkCLIRefactored.d.ts +55 -0
  4. package/dist/InkCLIRefactored.d.ts.map +1 -0
  5. package/dist/InkCLIRefactored.js +289 -0
  6. package/dist/assets/sounds/SOURCES.md +35 -0
  7. package/dist/assets/sounds/boot.wav +0 -0
  8. package/dist/assets/sounds/chime.wav +0 -0
  9. package/dist/assets/sounds/coin.wav +0 -0
  10. package/dist/assets/sounds/confirm.wav +0 -0
  11. package/dist/assets/sounds/levelup.wav +0 -0
  12. package/dist/assets/sounds/ping.wav +0 -0
  13. package/dist/assets/sounds/powerup.wav +0 -0
  14. package/dist/assets/sounds/startup.wav +0 -0
  15. package/dist/assets/sounds/success.wav +0 -0
  16. package/dist/assets/sounds/treasure.wav +0 -0
  17. package/dist/assets/sounds/win.wav +0 -0
  18. package/dist/components/ApprovalPrompt.cjs +353 -0
  19. package/dist/components/ApprovalPrompt.d.ts +44 -0
  20. package/dist/components/ApprovalPrompt.d.ts.map +1 -0
  21. package/dist/components/ApprovalPrompt.js +336 -0
  22. package/dist/components/BackgroundTasksPanel.cjs +117 -0
  23. package/dist/components/BackgroundTasksPanel.d.ts +18 -0
  24. package/dist/components/BackgroundTasksPanel.d.ts.map +1 -0
  25. package/dist/components/BackgroundTasksPanel.js +93 -0
  26. package/dist/components/CustomInput.cjs +77 -0
  27. package/dist/components/CustomInput.d.ts +17 -0
  28. package/dist/components/CustomInput.d.ts.map +1 -0
  29. package/dist/components/CustomInput.js +57 -0
  30. package/dist/components/CustomTextInput.cjs +76 -0
  31. package/dist/components/CustomTextInput.d.ts +16 -0
  32. package/dist/components/CustomTextInput.d.ts.map +1 -0
  33. package/dist/components/CustomTextInput.js +46 -0
  34. package/dist/components/EditableMultiLineInput.cjs +151 -0
  35. package/dist/components/EditableMultiLineInput.d.ts +19 -0
  36. package/dist/components/EditableMultiLineInput.d.ts.map +1 -0
  37. package/dist/components/EditableMultiLineInput.js +131 -0
  38. package/dist/components/ElicitationForm.cjs +622 -0
  39. package/dist/components/ElicitationForm.d.ts +24 -0
  40. package/dist/components/ElicitationForm.d.ts.map +1 -0
  41. package/dist/components/ElicitationForm.js +588 -0
  42. package/dist/components/ErrorBoundary.cjs +66 -0
  43. package/dist/components/ErrorBoundary.d.ts +20 -0
  44. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  45. package/dist/components/ErrorBoundary.js +32 -0
  46. package/dist/components/Footer.cjs +165 -0
  47. package/dist/components/Footer.d.ts +23 -0
  48. package/dist/components/Footer.d.ts.map +1 -0
  49. package/dist/components/Footer.js +131 -0
  50. package/dist/components/HistorySearchBar.cjs +40 -0
  51. package/dist/components/HistorySearchBar.d.ts +17 -0
  52. package/dist/components/HistorySearchBar.d.ts.map +1 -0
  53. package/dist/components/HistorySearchBar.js +16 -0
  54. package/dist/components/MultiLineInput.cjs +56 -0
  55. package/dist/components/MultiLineInput.d.ts +12 -0
  56. package/dist/components/MultiLineInput.d.ts.map +1 -0
  57. package/dist/components/MultiLineInput.js +36 -0
  58. package/dist/components/ResourceAutocomplete.cjs +344 -0
  59. package/dist/components/ResourceAutocomplete.d.ts +26 -0
  60. package/dist/components/ResourceAutocomplete.d.ts.map +1 -0
  61. package/dist/components/ResourceAutocomplete.js +322 -0
  62. package/dist/components/SlashCommandAutocomplete.cjs +389 -0
  63. package/dist/components/SlashCommandAutocomplete.d.ts +28 -0
  64. package/dist/components/SlashCommandAutocomplete.d.ts.map +1 -0
  65. package/dist/components/SlashCommandAutocomplete.js +363 -0
  66. package/dist/components/StatusBar.cjs +142 -0
  67. package/dist/components/StatusBar.d.ts +41 -0
  68. package/dist/components/StatusBar.d.ts.map +1 -0
  69. package/dist/components/StatusBar.js +118 -0
  70. package/dist/components/TextBufferInput.cjs +531 -0
  71. package/dist/components/TextBufferInput.d.ts +54 -0
  72. package/dist/components/TextBufferInput.d.ts.map +1 -0
  73. package/dist/components/TextBufferInput.js +507 -0
  74. package/dist/components/TodoPanel.cjs +129 -0
  75. package/dist/components/TodoPanel.d.ts +26 -0
  76. package/dist/components/TodoPanel.d.ts.map +1 -0
  77. package/dist/components/TodoPanel.js +105 -0
  78. package/dist/components/base/BaseAutocomplete.cjs +153 -0
  79. package/dist/components/base/BaseAutocomplete.d.ts +29 -0
  80. package/dist/components/base/BaseAutocomplete.d.ts.map +1 -0
  81. package/dist/components/base/BaseAutocomplete.js +129 -0
  82. package/dist/components/base/BaseSelector.cjs +167 -0
  83. package/dist/components/base/BaseSelector.d.ts +37 -0
  84. package/dist/components/base/BaseSelector.d.ts.map +1 -0
  85. package/dist/components/base/BaseSelector.js +151 -0
  86. package/dist/components/base/index.cjs +31 -0
  87. package/dist/components/base/index.d.ts +6 -0
  88. package/dist/components/base/index.d.ts.map +1 -0
  89. package/dist/components/base/index.js +6 -0
  90. package/dist/components/chat/ChatView.cjs +51 -0
  91. package/dist/components/chat/ChatView.d.ts +19 -0
  92. package/dist/components/chat/ChatView.d.ts.map +1 -0
  93. package/dist/components/chat/ChatView.js +27 -0
  94. package/dist/components/chat/Footer.cjs +32 -0
  95. package/dist/components/chat/Footer.d.ts +9 -0
  96. package/dist/components/chat/Footer.d.ts.map +1 -0
  97. package/dist/components/chat/Footer.js +8 -0
  98. package/dist/components/chat/Header.cjs +86 -0
  99. package/dist/components/chat/Header.d.ts +18 -0
  100. package/dist/components/chat/Header.d.ts.map +1 -0
  101. package/dist/components/chat/Header.js +62 -0
  102. package/dist/components/chat/MessageItem.cjs +269 -0
  103. package/dist/components/chat/MessageItem.d.ts +23 -0
  104. package/dist/components/chat/MessageItem.d.ts.map +1 -0
  105. package/dist/components/chat/MessageItem.js +247 -0
  106. package/dist/components/chat/MessageList.cjs +46 -0
  107. package/dist/components/chat/MessageList.d.ts +16 -0
  108. package/dist/components/chat/MessageList.d.ts.map +1 -0
  109. package/dist/components/chat/MessageList.js +22 -0
  110. package/dist/components/chat/QueuedMessagesDisplay.cjs +59 -0
  111. package/dist/components/chat/QueuedMessagesDisplay.d.ts +16 -0
  112. package/dist/components/chat/QueuedMessagesDisplay.d.ts.map +1 -0
  113. package/dist/components/chat/QueuedMessagesDisplay.js +35 -0
  114. package/dist/components/chat/ToolIcon.cjs +60 -0
  115. package/dist/components/chat/ToolIcon.d.ts +18 -0
  116. package/dist/components/chat/ToolIcon.d.ts.map +1 -0
  117. package/dist/components/chat/ToolIcon.js +36 -0
  118. package/dist/components/chat/index.cjs +43 -0
  119. package/dist/components/chat/index.d.ts +10 -0
  120. package/dist/components/chat/index.d.ts.map +1 -0
  121. package/dist/components/chat/index.js +14 -0
  122. package/dist/components/chat/styled-boxes/ConfigBox.cjs +56 -0
  123. package/dist/components/chat/styled-boxes/ConfigBox.d.ts +10 -0
  124. package/dist/components/chat/styled-boxes/ConfigBox.d.ts.map +1 -0
  125. package/dist/components/chat/styled-boxes/ConfigBox.js +32 -0
  126. package/dist/components/chat/styled-boxes/HelpBox.cjs +53 -0
  127. package/dist/components/chat/styled-boxes/HelpBox.d.ts +10 -0
  128. package/dist/components/chat/styled-boxes/HelpBox.d.ts.map +1 -0
  129. package/dist/components/chat/styled-boxes/HelpBox.js +29 -0
  130. package/dist/components/chat/styled-boxes/LogConfigBox.cjs +54 -0
  131. package/dist/components/chat/styled-boxes/LogConfigBox.d.ts +10 -0
  132. package/dist/components/chat/styled-boxes/LogConfigBox.d.ts.map +1 -0
  133. package/dist/components/chat/styled-boxes/LogConfigBox.js +30 -0
  134. package/dist/components/chat/styled-boxes/SessionHistoryBox.cjs +81 -0
  135. package/dist/components/chat/styled-boxes/SessionHistoryBox.d.ts +10 -0
  136. package/dist/components/chat/styled-boxes/SessionHistoryBox.d.ts.map +1 -0
  137. package/dist/components/chat/styled-boxes/SessionHistoryBox.js +57 -0
  138. package/dist/components/chat/styled-boxes/SessionListBox.cjs +58 -0
  139. package/dist/components/chat/styled-boxes/SessionListBox.d.ts +10 -0
  140. package/dist/components/chat/styled-boxes/SessionListBox.d.ts.map +1 -0
  141. package/dist/components/chat/styled-boxes/SessionListBox.js +34 -0
  142. package/dist/components/chat/styled-boxes/ShortcutsBox.cjs +39 -0
  143. package/dist/components/chat/styled-boxes/ShortcutsBox.d.ts +10 -0
  144. package/dist/components/chat/styled-boxes/ShortcutsBox.d.ts.map +1 -0
  145. package/dist/components/chat/styled-boxes/ShortcutsBox.js +15 -0
  146. package/dist/components/chat/styled-boxes/StatsBox.cjs +123 -0
  147. package/dist/components/chat/styled-boxes/StatsBox.d.ts +10 -0
  148. package/dist/components/chat/styled-boxes/StatsBox.d.ts.map +1 -0
  149. package/dist/components/chat/styled-boxes/StatsBox.js +99 -0
  150. package/dist/components/chat/styled-boxes/StyledBox.cjs +88 -0
  151. package/dist/components/chat/styled-boxes/StyledBox.d.ts +45 -0
  152. package/dist/components/chat/styled-boxes/StyledBox.d.ts.map +1 -0
  153. package/dist/components/chat/styled-boxes/StyledBox.js +61 -0
  154. package/dist/components/chat/styled-boxes/SyspromptBox.cjs +33 -0
  155. package/dist/components/chat/styled-boxes/SyspromptBox.d.ts +10 -0
  156. package/dist/components/chat/styled-boxes/SyspromptBox.d.ts.map +1 -0
  157. package/dist/components/chat/styled-boxes/SyspromptBox.js +9 -0
  158. package/dist/components/chat/styled-boxes/index.cjs +58 -0
  159. package/dist/components/chat/styled-boxes/index.d.ts +13 -0
  160. package/dist/components/chat/styled-boxes/index.d.ts.map +1 -0
  161. package/dist/components/chat/styled-boxes/index.js +23 -0
  162. package/dist/components/input/InputArea.cjs +74 -0
  163. package/dist/components/input/InputArea.d.ts +48 -0
  164. package/dist/components/input/InputArea.d.ts.map +1 -0
  165. package/dist/components/input/InputArea.js +50 -0
  166. package/dist/components/input/index.cjs +28 -0
  167. package/dist/components/input/index.d.ts +5 -0
  168. package/dist/components/input/index.d.ts.map +1 -0
  169. package/dist/components/input/index.js +4 -0
  170. package/dist/components/modes/AlternateBufferCLI.cjs +360 -0
  171. package/dist/components/modes/AlternateBufferCLI.d.ts +28 -0
  172. package/dist/components/modes/AlternateBufferCLI.d.ts.map +1 -0
  173. package/dist/components/modes/AlternateBufferCLI.js +339 -0
  174. package/dist/components/modes/StaticCLI.cjs +303 -0
  175. package/dist/components/modes/StaticCLI.d.ts +30 -0
  176. package/dist/components/modes/StaticCLI.d.ts.map +1 -0
  177. package/dist/components/modes/StaticCLI.js +279 -0
  178. package/dist/components/modes/index.cjs +31 -0
  179. package/dist/components/modes/index.d.ts +10 -0
  180. package/dist/components/modes/index.d.ts.map +1 -0
  181. package/dist/components/modes/index.js +6 -0
  182. package/dist/components/overlays/ApiKeyInput.cjs +131 -0
  183. package/dist/components/overlays/ApiKeyInput.d.ts +26 -0
  184. package/dist/components/overlays/ApiKeyInput.d.ts.map +1 -0
  185. package/dist/components/overlays/ApiKeyInput.js +115 -0
  186. package/dist/components/overlays/CommandOutputOverlay.cjs +103 -0
  187. package/dist/components/overlays/CommandOutputOverlay.d.ts +13 -0
  188. package/dist/components/overlays/CommandOutputOverlay.d.ts.map +1 -0
  189. package/dist/components/overlays/CommandOutputOverlay.js +69 -0
  190. package/dist/components/overlays/ContextStatsOverlay.cjs +354 -0
  191. package/dist/components/overlays/ContextStatsOverlay.d.ts +26 -0
  192. package/dist/components/overlays/ContextStatsOverlay.d.ts.map +1 -0
  193. package/dist/components/overlays/ContextStatsOverlay.js +334 -0
  194. package/dist/components/overlays/CustomModelWizard.cjs +362 -0
  195. package/dist/components/overlays/CustomModelWizard.d.ts +29 -0
  196. package/dist/components/overlays/CustomModelWizard.d.ts.map +1 -0
  197. package/dist/components/overlays/CustomModelWizard.js +356 -0
  198. package/dist/components/overlays/ExportWizard.cjs +382 -0
  199. package/dist/components/overlays/ExportWizard.d.ts +22 -0
  200. package/dist/components/overlays/ExportWizard.d.ts.map +1 -0
  201. package/dist/components/overlays/ExportWizard.js +352 -0
  202. package/dist/components/overlays/LogLevelSelector.cjs +120 -0
  203. package/dist/components/overlays/LogLevelSelector.d.ts +23 -0
  204. package/dist/components/overlays/LogLevelSelector.d.ts.map +1 -0
  205. package/dist/components/overlays/LogLevelSelector.js +100 -0
  206. package/dist/components/overlays/LoginOverlay.cjs +211 -0
  207. package/dist/components/overlays/LoginOverlay.d.ts +22 -0
  208. package/dist/components/overlays/LoginOverlay.d.ts.map +1 -0
  209. package/dist/components/overlays/LoginOverlay.js +194 -0
  210. package/dist/components/overlays/LogoutOverlay.cjs +138 -0
  211. package/dist/components/overlays/LogoutOverlay.d.ts +20 -0
  212. package/dist/components/overlays/LogoutOverlay.d.ts.map +1 -0
  213. package/dist/components/overlays/LogoutOverlay.js +130 -0
  214. package/dist/components/overlays/MarketplaceAddPrompt.cjs +119 -0
  215. package/dist/components/overlays/MarketplaceAddPrompt.d.ts +20 -0
  216. package/dist/components/overlays/MarketplaceAddPrompt.d.ts.map +1 -0
  217. package/dist/components/overlays/MarketplaceAddPrompt.js +99 -0
  218. package/dist/components/overlays/MarketplaceBrowser.cjs +364 -0
  219. package/dist/components/overlays/MarketplaceBrowser.d.ts +31 -0
  220. package/dist/components/overlays/MarketplaceBrowser.d.ts.map +1 -0
  221. package/dist/components/overlays/MarketplaceBrowser.js +358 -0
  222. package/dist/components/overlays/McpAddChoice.cjs +100 -0
  223. package/dist/components/overlays/McpAddChoice.d.ts +22 -0
  224. package/dist/components/overlays/McpAddChoice.d.ts.map +1 -0
  225. package/dist/components/overlays/McpAddChoice.js +80 -0
  226. package/dist/components/overlays/McpAddSelector.cjs +113 -0
  227. package/dist/components/overlays/McpAddSelector.d.ts +26 -0
  228. package/dist/components/overlays/McpAddSelector.d.ts.map +1 -0
  229. package/dist/components/overlays/McpAddSelector.js +93 -0
  230. package/dist/components/overlays/McpCustomTypeSelector.cjs +99 -0
  231. package/dist/components/overlays/McpCustomTypeSelector.d.ts +21 -0
  232. package/dist/components/overlays/McpCustomTypeSelector.d.ts.map +1 -0
  233. package/dist/components/overlays/McpCustomTypeSelector.js +79 -0
  234. package/dist/components/overlays/McpCustomWizard.cjs +258 -0
  235. package/dist/components/overlays/McpCustomWizard.d.ts +29 -0
  236. package/dist/components/overlays/McpCustomWizard.d.ts.map +1 -0
  237. package/dist/components/overlays/McpCustomWizard.js +238 -0
  238. package/dist/components/overlays/McpRemoveSelector.cjs +127 -0
  239. package/dist/components/overlays/McpRemoveSelector.d.ts +22 -0
  240. package/dist/components/overlays/McpRemoveSelector.d.ts.map +1 -0
  241. package/dist/components/overlays/McpRemoveSelector.js +107 -0
  242. package/dist/components/overlays/McpSelector.cjs +94 -0
  243. package/dist/components/overlays/McpSelector.d.ts +21 -0
  244. package/dist/components/overlays/McpSelector.d.ts.map +1 -0
  245. package/dist/components/overlays/McpSelector.js +74 -0
  246. package/dist/components/overlays/McpServerActions.cjs +124 -0
  247. package/dist/components/overlays/McpServerActions.d.ts +28 -0
  248. package/dist/components/overlays/McpServerActions.d.ts.map +1 -0
  249. package/dist/components/overlays/McpServerActions.js +111 -0
  250. package/dist/components/overlays/McpServerList.cjs +152 -0
  251. package/dist/components/overlays/McpServerList.d.ts +29 -0
  252. package/dist/components/overlays/McpServerList.d.ts.map +1 -0
  253. package/dist/components/overlays/McpServerList.js +139 -0
  254. package/dist/components/overlays/ModelSelectorRefactored.cjs +869 -0
  255. package/dist/components/overlays/ModelSelectorRefactored.d.ts +27 -0
  256. package/dist/components/overlays/ModelSelectorRefactored.d.ts.map +1 -0
  257. package/dist/components/overlays/ModelSelectorRefactored.js +870 -0
  258. package/dist/components/overlays/PluginActions.cjs +108 -0
  259. package/dist/components/overlays/PluginActions.d.ts +27 -0
  260. package/dist/components/overlays/PluginActions.d.ts.map +1 -0
  261. package/dist/components/overlays/PluginActions.js +95 -0
  262. package/dist/components/overlays/PluginList.cjs +115 -0
  263. package/dist/components/overlays/PluginList.d.ts +21 -0
  264. package/dist/components/overlays/PluginList.d.ts.map +1 -0
  265. package/dist/components/overlays/PluginList.js +102 -0
  266. package/dist/components/overlays/PluginManager.cjs +106 -0
  267. package/dist/components/overlays/PluginManager.d.ts +21 -0
  268. package/dist/components/overlays/PluginManager.d.ts.map +1 -0
  269. package/dist/components/overlays/PluginManager.js +86 -0
  270. package/dist/components/overlays/PromptAddChoice.cjs +92 -0
  271. package/dist/components/overlays/PromptAddChoice.d.ts +22 -0
  272. package/dist/components/overlays/PromptAddChoice.d.ts.map +1 -0
  273. package/dist/components/overlays/PromptAddChoice.js +72 -0
  274. package/dist/components/overlays/PromptAddWizard.cjs +215 -0
  275. package/dist/components/overlays/PromptAddWizard.d.ts +29 -0
  276. package/dist/components/overlays/PromptAddWizard.d.ts.map +1 -0
  277. package/dist/components/overlays/PromptAddWizard.js +195 -0
  278. package/dist/components/overlays/PromptDeleteSelector.cjs +148 -0
  279. package/dist/components/overlays/PromptDeleteSelector.d.ts +27 -0
  280. package/dist/components/overlays/PromptDeleteSelector.d.ts.map +1 -0
  281. package/dist/components/overlays/PromptDeleteSelector.js +135 -0
  282. package/dist/components/overlays/PromptList.cjs +169 -0
  283. package/dist/components/overlays/PromptList.d.ts +33 -0
  284. package/dist/components/overlays/PromptList.d.ts.map +1 -0
  285. package/dist/components/overlays/PromptList.js +157 -0
  286. package/dist/components/overlays/ReasoningOverlay.cjs +305 -0
  287. package/dist/components/overlays/ReasoningOverlay.d.ts +28 -0
  288. package/dist/components/overlays/ReasoningOverlay.d.ts.map +1 -0
  289. package/dist/components/overlays/ReasoningOverlay.js +278 -0
  290. package/dist/components/overlays/SearchOverlay.cjs +249 -0
  291. package/dist/components/overlays/SearchOverlay.d.ts +23 -0
  292. package/dist/components/overlays/SearchOverlay.d.ts.map +1 -0
  293. package/dist/components/overlays/SearchOverlay.js +236 -0
  294. package/dist/components/overlays/SessionRenameOverlay.cjs +101 -0
  295. package/dist/components/overlays/SessionRenameOverlay.d.ts +21 -0
  296. package/dist/components/overlays/SessionRenameOverlay.d.ts.map +1 -0
  297. package/dist/components/overlays/SessionRenameOverlay.js +81 -0
  298. package/dist/components/overlays/SessionSelectorRefactored.cjs +153 -0
  299. package/dist/components/overlays/SessionSelectorRefactored.d.ts +26 -0
  300. package/dist/components/overlays/SessionSelectorRefactored.d.ts.map +1 -0
  301. package/dist/components/overlays/SessionSelectorRefactored.js +133 -0
  302. package/dist/components/overlays/SessionSubcommandSelector.cjs +84 -0
  303. package/dist/components/overlays/SessionSubcommandSelector.d.ts +21 -0
  304. package/dist/components/overlays/SessionSubcommandSelector.d.ts.map +1 -0
  305. package/dist/components/overlays/SessionSubcommandSelector.js +64 -0
  306. package/dist/components/overlays/SoundsSelector.cjs +632 -0
  307. package/dist/components/overlays/SoundsSelector.d.ts +21 -0
  308. package/dist/components/overlays/SoundsSelector.d.ts.map +1 -0
  309. package/dist/components/overlays/SoundsSelector.js +619 -0
  310. package/dist/components/overlays/StreamSelector.cjs +104 -0
  311. package/dist/components/overlays/StreamSelector.d.ts +20 -0
  312. package/dist/components/overlays/StreamSelector.d.ts.map +1 -0
  313. package/dist/components/overlays/StreamSelector.js +84 -0
  314. package/dist/components/overlays/ToolBrowser.cjs +854 -0
  315. package/dist/components/overlays/ToolBrowser.d.ts +26 -0
  316. package/dist/components/overlays/ToolBrowser.d.ts.map +1 -0
  317. package/dist/components/overlays/ToolBrowser.js +831 -0
  318. package/dist/components/overlays/custom-model-wizard/LocalModelWizard.cjs +784 -0
  319. package/dist/components/overlays/custom-model-wizard/LocalModelWizard.d.ts +25 -0
  320. package/dist/components/overlays/custom-model-wizard/LocalModelWizard.d.ts.map +1 -0
  321. package/dist/components/overlays/custom-model-wizard/LocalModelWizard.js +768 -0
  322. package/dist/components/overlays/custom-model-wizard/index.cjs +26 -0
  323. package/dist/components/overlays/custom-model-wizard/index.d.ts +15 -0
  324. package/dist/components/overlays/custom-model-wizard/index.d.ts.map +1 -0
  325. package/dist/components/overlays/custom-model-wizard/index.js +3 -0
  326. package/dist/components/overlays/custom-model-wizard/provider-config.cjs +549 -0
  327. package/dist/components/overlays/custom-model-wizard/provider-config.d.ts +42 -0
  328. package/dist/components/overlays/custom-model-wizard/provider-config.d.ts.map +1 -0
  329. package/dist/components/overlays/custom-model-wizard/provider-config.js +516 -0
  330. package/dist/components/overlays/custom-model-wizard/provider-config.test.cjs +31 -0
  331. package/dist/components/overlays/custom-model-wizard/provider-config.test.d.ts +2 -0
  332. package/dist/components/overlays/custom-model-wizard/provider-config.test.d.ts.map +1 -0
  333. package/dist/components/overlays/custom-model-wizard/provider-config.test.js +30 -0
  334. package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.cjs +59 -0
  335. package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts +25 -0
  336. package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts.map +1 -0
  337. package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.js +33 -0
  338. package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.cjs +64 -0
  339. package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts +17 -0
  340. package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts.map +1 -0
  341. package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.js +40 -0
  342. package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.cjs +48 -0
  343. package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts +20 -0
  344. package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts.map +1 -0
  345. package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.js +24 -0
  346. package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.cjs +58 -0
  347. package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts +30 -0
  348. package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts.map +1 -0
  349. package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.js +34 -0
  350. package/dist/components/overlays/custom-model-wizard/shared/index.cjs +41 -0
  351. package/dist/components/overlays/custom-model-wizard/shared/index.d.ts +8 -0
  352. package/dist/components/overlays/custom-model-wizard/shared/index.d.ts.map +1 -0
  353. package/dist/components/overlays/custom-model-wizard/shared/index.js +12 -0
  354. package/dist/components/overlays/custom-model-wizard/types.cjs +53 -0
  355. package/dist/components/overlays/custom-model-wizard/types.d.ts +85 -0
  356. package/dist/components/overlays/custom-model-wizard/types.d.ts.map +1 -0
  357. package/dist/components/overlays/custom-model-wizard/types.js +29 -0
  358. package/dist/components/renderers/DiffRenderer.cjs +145 -0
  359. package/dist/components/renderers/DiffRenderer.d.ts +21 -0
  360. package/dist/components/renderers/DiffRenderer.d.ts.map +1 -0
  361. package/dist/components/renderers/DiffRenderer.js +118 -0
  362. package/dist/components/renderers/FilePreviewRenderer.cjs +146 -0
  363. package/dist/components/renderers/FilePreviewRenderer.d.ts +30 -0
  364. package/dist/components/renderers/FilePreviewRenderer.d.ts.map +1 -0
  365. package/dist/components/renderers/FilePreviewRenderer.js +119 -0
  366. package/dist/components/renderers/FileRenderer.cjs +95 -0
  367. package/dist/components/renderers/FileRenderer.d.ts +21 -0
  368. package/dist/components/renderers/FileRenderer.d.ts.map +1 -0
  369. package/dist/components/renderers/FileRenderer.js +71 -0
  370. package/dist/components/renderers/GenericRenderer.cjs +63 -0
  371. package/dist/components/renderers/GenericRenderer.d.ts +21 -0
  372. package/dist/components/renderers/GenericRenderer.d.ts.map +1 -0
  373. package/dist/components/renderers/GenericRenderer.js +39 -0
  374. package/dist/components/renderers/SearchRenderer.cjs +77 -0
  375. package/dist/components/renderers/SearchRenderer.d.ts +20 -0
  376. package/dist/components/renderers/SearchRenderer.d.ts.map +1 -0
  377. package/dist/components/renderers/SearchRenderer.js +43 -0
  378. package/dist/components/renderers/ShellRenderer.cjs +61 -0
  379. package/dist/components/renderers/ShellRenderer.d.ts +21 -0
  380. package/dist/components/renderers/ShellRenderer.d.ts.map +1 -0
  381. package/dist/components/renderers/ShellRenderer.js +37 -0
  382. package/dist/components/renderers/diff-shared.cjs +172 -0
  383. package/dist/components/renderers/diff-shared.d.ts +61 -0
  384. package/dist/components/renderers/diff-shared.d.ts.map +1 -0
  385. package/dist/components/renderers/diff-shared.js +142 -0
  386. package/dist/components/renderers/index.cjs +75 -0
  387. package/dist/components/renderers/index.d.ts +28 -0
  388. package/dist/components/renderers/index.d.ts.map +1 -0
  389. package/dist/components/renderers/index.js +44 -0
  390. package/dist/components/shared/FocusOverlayFrame.cjs +39 -0
  391. package/dist/components/shared/FocusOverlayFrame.d.ts +7 -0
  392. package/dist/components/shared/FocusOverlayFrame.d.ts.map +1 -0
  393. package/dist/components/shared/FocusOverlayFrame.js +15 -0
  394. package/dist/components/shared/HintBar.cjs +33 -0
  395. package/dist/components/shared/HintBar.d.ts +6 -0
  396. package/dist/components/shared/HintBar.d.ts.map +1 -0
  397. package/dist/components/shared/HintBar.js +9 -0
  398. package/dist/components/shared/MarkdownText.cjs +409 -0
  399. package/dist/components/shared/MarkdownText.d.ts +38 -0
  400. package/dist/components/shared/MarkdownText.d.ts.map +1 -0
  401. package/dist/components/shared/MarkdownText.js +373 -0
  402. package/dist/components/shared/VirtualizedList.cjs +365 -0
  403. package/dist/components/shared/VirtualizedList.d.ts +44 -0
  404. package/dist/components/shared/VirtualizedList.d.ts.map +1 -0
  405. package/dist/components/shared/VirtualizedList.js +349 -0
  406. package/dist/components/shared/text-buffer.cjs +1220 -0
  407. package/dist/components/shared/text-buffer.d.ts +185 -0
  408. package/dist/components/shared/text-buffer.d.ts.map +1 -0
  409. package/dist/components/shared/text-buffer.js +1194 -0
  410. package/dist/constants/processingPhrases.cjs +114 -0
  411. package/dist/constants/processingPhrases.d.ts +10 -0
  412. package/dist/constants/processingPhrases.d.ts.map +1 -0
  413. package/dist/constants/processingPhrases.js +89 -0
  414. package/dist/constants/spinnerFrames.cjs +28 -0
  415. package/dist/constants/spinnerFrames.d.ts +2 -0
  416. package/dist/constants/spinnerFrames.d.ts.map +1 -0
  417. package/dist/constants/spinnerFrames.js +4 -0
  418. package/dist/constants/tips.cjs +76 -0
  419. package/dist/constants/tips.d.ts +15 -0
  420. package/dist/constants/tips.d.ts.map +1 -0
  421. package/dist/constants/tips.js +51 -0
  422. package/dist/containers/InputContainer.cjs +706 -0
  423. package/dist/containers/InputContainer.d.ts +62 -0
  424. package/dist/containers/InputContainer.d.ts.map +1 -0
  425. package/dist/containers/InputContainer.js +672 -0
  426. package/dist/containers/OverlayContainer.cjs +2372 -0
  427. package/dist/containers/OverlayContainer.d.ts +42 -0
  428. package/dist/containers/OverlayContainer.d.ts.map +1 -0
  429. package/dist/containers/OverlayContainer.js +2356 -0
  430. package/dist/containers/index.cjs +31 -0
  431. package/dist/containers/index.d.ts +6 -0
  432. package/dist/containers/index.d.ts.map +1 -0
  433. package/dist/containers/index.js +6 -0
  434. package/dist/contexts/KeypressContext.cjs +436 -0
  435. package/dist/contexts/KeypressContext.d.ts +36 -0
  436. package/dist/contexts/KeypressContext.d.ts.map +1 -0
  437. package/dist/contexts/KeypressContext.js +408 -0
  438. package/dist/contexts/MouseContext.cjs +122 -0
  439. package/dist/contexts/MouseContext.d.ts +27 -0
  440. package/dist/contexts/MouseContext.d.ts.map +1 -0
  441. package/dist/contexts/MouseContext.js +101 -0
  442. package/dist/contexts/ScrollProvider.cjs +180 -0
  443. package/dist/contexts/ScrollProvider.d.ts +33 -0
  444. package/dist/contexts/ScrollProvider.d.ts.map +1 -0
  445. package/dist/contexts/ScrollProvider.js +163 -0
  446. package/dist/contexts/SoundContext.cjs +38 -0
  447. package/dist/contexts/SoundContext.d.ts +23 -0
  448. package/dist/contexts/SoundContext.d.ts.map +1 -0
  449. package/dist/contexts/SoundContext.js +13 -0
  450. package/dist/contexts/index.cjs +47 -0
  451. package/dist/contexts/index.d.ts +8 -0
  452. package/dist/contexts/index.d.ts.map +1 -0
  453. package/dist/contexts/index.js +25 -0
  454. package/dist/hooks/index.cjs +54 -0
  455. package/dist/hooks/index.d.ts +12 -0
  456. package/dist/hooks/index.d.ts.map +1 -0
  457. package/dist/hooks/index.js +28 -0
  458. package/dist/hooks/useAgentEvents.cjs +382 -0
  459. package/dist/hooks/useAgentEvents.d.ts +49 -0
  460. package/dist/hooks/useAgentEvents.d.ts.map +1 -0
  461. package/dist/hooks/useAgentEvents.js +360 -0
  462. package/dist/hooks/useAnimationTick.cjs +71 -0
  463. package/dist/hooks/useAnimationTick.d.ts +11 -0
  464. package/dist/hooks/useAnimationTick.d.ts.map +1 -0
  465. package/dist/hooks/useAnimationTick.js +47 -0
  466. package/dist/hooks/useBatchedScroll.cjs +44 -0
  467. package/dist/hooks/useBatchedScroll.d.ts +14 -0
  468. package/dist/hooks/useBatchedScroll.d.ts.map +1 -0
  469. package/dist/hooks/useBatchedScroll.js +20 -0
  470. package/dist/hooks/useCLIState.cjs +222 -0
  471. package/dist/hooks/useCLIState.d.ts +53 -0
  472. package/dist/hooks/useCLIState.d.ts.map +1 -0
  473. package/dist/hooks/useCLIState.js +201 -0
  474. package/dist/hooks/useElapsedTime.cjs +79 -0
  475. package/dist/hooks/useElapsedTime.d.ts +24 -0
  476. package/dist/hooks/useElapsedTime.d.ts.map +1 -0
  477. package/dist/hooks/useElapsedTime.js +55 -0
  478. package/dist/hooks/useGitBranch.cjs +47 -0
  479. package/dist/hooks/useGitBranch.d.ts +13 -0
  480. package/dist/hooks/useGitBranch.d.ts.map +1 -0
  481. package/dist/hooks/useGitBranch.js +23 -0
  482. package/dist/hooks/useHistorySearch.cjs +219 -0
  483. package/dist/hooks/useHistorySearch.d.ts +61 -0
  484. package/dist/hooks/useHistorySearch.d.ts.map +1 -0
  485. package/dist/hooks/useHistorySearch.js +195 -0
  486. package/dist/hooks/useInputHistory.cjs +47 -0
  487. package/dist/hooks/useInputHistory.d.ts +18 -0
  488. package/dist/hooks/useInputHistory.d.ts.map +1 -0
  489. package/dist/hooks/useInputHistory.js +23 -0
  490. package/dist/hooks/useInputOrchestrator.cjs +663 -0
  491. package/dist/hooks/useInputOrchestrator.d.ts +136 -0
  492. package/dist/hooks/useInputOrchestrator.d.ts.map +1 -0
  493. package/dist/hooks/useInputOrchestrator.js +635 -0
  494. package/dist/hooks/useKeyboardShortcuts.cjs +87 -0
  495. package/dist/hooks/useKeyboardShortcuts.d.ts +21 -0
  496. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  497. package/dist/hooks/useKeyboardShortcuts.js +63 -0
  498. package/dist/hooks/useKeypress.cjs +41 -0
  499. package/dist/hooks/useKeypress.d.ts +18 -0
  500. package/dist/hooks/useKeypress.d.ts.map +1 -0
  501. package/dist/hooks/useKeypress.js +17 -0
  502. package/dist/hooks/usePhraseCycler.cjs +74 -0
  503. package/dist/hooks/usePhraseCycler.d.ts +30 -0
  504. package/dist/hooks/usePhraseCycler.d.ts.map +1 -0
  505. package/dist/hooks/usePhraseCycler.js +50 -0
  506. package/dist/hooks/useStreaming.cjs +43 -0
  507. package/dist/hooks/useStreaming.d.ts +19 -0
  508. package/dist/hooks/useStreaming.d.ts.map +1 -0
  509. package/dist/hooks/useStreaming.js +24 -0
  510. package/dist/hooks/useTerminalSize.cjs +48 -0
  511. package/dist/hooks/useTerminalSize.d.ts +14 -0
  512. package/dist/hooks/useTerminalSize.d.ts.map +1 -0
  513. package/dist/hooks/useTerminalSize.js +24 -0
  514. package/dist/hooks/useTokenCounter.cjs +105 -0
  515. package/dist/hooks/useTokenCounter.d.ts +46 -0
  516. package/dist/hooks/useTokenCounter.d.ts.map +1 -0
  517. package/dist/hooks/useTokenCounter.js +81 -0
  518. package/dist/host/index.cjs +144 -0
  519. package/dist/host/index.d.ts +108 -0
  520. package/dist/host/index.d.ts.map +1 -0
  521. package/dist/host/index.js +104 -0
  522. package/dist/index.cjs +33 -0
  523. package/dist/index.d.cts +195 -0
  524. package/dist/index.d.ts +3 -0
  525. package/dist/index.d.ts.map +1 -0
  526. package/dist/index.js +7 -0
  527. package/dist/interactive-commands/auth/index.cjs +44 -0
  528. package/dist/interactive-commands/auth/index.d.ts +13 -0
  529. package/dist/interactive-commands/auth/index.d.ts.map +1 -0
  530. package/dist/interactive-commands/auth/index.js +19 -0
  531. package/dist/interactive-commands/command-parser.cjs +184 -0
  532. package/dist/interactive-commands/command-parser.d.ts +56 -0
  533. package/dist/interactive-commands/command-parser.d.ts.map +1 -0
  534. package/dist/interactive-commands/command-parser.js +146 -0
  535. package/dist/interactive-commands/commands.cjs +135 -0
  536. package/dist/interactive-commands/commands.d.ts +52 -0
  537. package/dist/interactive-commands/commands.d.ts.map +1 -0
  538. package/dist/interactive-commands/commands.js +99 -0
  539. package/dist/interactive-commands/documentation-commands.cjs +61 -0
  540. package/dist/interactive-commands/documentation-commands.d.ts +15 -0
  541. package/dist/interactive-commands/documentation-commands.d.ts.map +1 -0
  542. package/dist/interactive-commands/documentation-commands.js +27 -0
  543. package/dist/interactive-commands/exit-handler.cjs +40 -0
  544. package/dist/interactive-commands/exit-handler.d.ts +12 -0
  545. package/dist/interactive-commands/exit-handler.d.ts.map +1 -0
  546. package/dist/interactive-commands/exit-handler.js +15 -0
  547. package/dist/interactive-commands/exit-stats.cjs +41 -0
  548. package/dist/interactive-commands/exit-stats.d.ts +24 -0
  549. package/dist/interactive-commands/exit-stats.d.ts.map +1 -0
  550. package/dist/interactive-commands/exit-stats.js +15 -0
  551. package/dist/interactive-commands/export/index.cjs +36 -0
  552. package/dist/interactive-commands/export/index.d.ts +13 -0
  553. package/dist/interactive-commands/export/index.d.ts.map +1 -0
  554. package/dist/interactive-commands/export/index.js +12 -0
  555. package/dist/interactive-commands/general-commands.cjs +478 -0
  556. package/dist/interactive-commands/general-commands.d.ts +22 -0
  557. package/dist/interactive-commands/general-commands.d.ts.map +1 -0
  558. package/dist/interactive-commands/general-commands.js +443 -0
  559. package/dist/interactive-commands/mcp/index.cjs +35 -0
  560. package/dist/interactive-commands/mcp/index.d.ts +13 -0
  561. package/dist/interactive-commands/mcp/index.d.ts.map +1 -0
  562. package/dist/interactive-commands/mcp/index.js +11 -0
  563. package/dist/interactive-commands/model/index.cjs +36 -0
  564. package/dist/interactive-commands/model/index.d.ts +13 -0
  565. package/dist/interactive-commands/model/index.d.ts.map +1 -0
  566. package/dist/interactive-commands/model/index.js +12 -0
  567. package/dist/interactive-commands/plugin/index.cjs +35 -0
  568. package/dist/interactive-commands/plugin/index.d.ts +13 -0
  569. package/dist/interactive-commands/plugin/index.d.ts.map +1 -0
  570. package/dist/interactive-commands/plugin/index.js +11 -0
  571. package/dist/interactive-commands/prompt-commands.cjs +269 -0
  572. package/dist/interactive-commands/prompt-commands.d.ts +25 -0
  573. package/dist/interactive-commands/prompt-commands.d.ts.map +1 -0
  574. package/dist/interactive-commands/prompt-commands.js +244 -0
  575. package/dist/interactive-commands/session/index.cjs +32 -0
  576. package/dist/interactive-commands/session/index.d.ts +16 -0
  577. package/dist/interactive-commands/session/index.d.ts.map +1 -0
  578. package/dist/interactive-commands/session/index.js +6 -0
  579. package/dist/interactive-commands/session/session-commands.cjs +64 -0
  580. package/dist/interactive-commands/session/session-commands.d.ts +32 -0
  581. package/dist/interactive-commands/session/session-commands.d.ts.map +1 -0
  582. package/dist/interactive-commands/session/session-commands.js +38 -0
  583. package/dist/interactive-commands/system/index.cjs +28 -0
  584. package/dist/interactive-commands/system/index.d.ts +13 -0
  585. package/dist/interactive-commands/system/index.d.ts.map +1 -0
  586. package/dist/interactive-commands/system/index.js +4 -0
  587. package/dist/interactive-commands/system/system-commands.cjs +217 -0
  588. package/dist/interactive-commands/system/system-commands.d.ts +6 -0
  589. package/dist/interactive-commands/system/system-commands.d.ts.map +1 -0
  590. package/dist/interactive-commands/system/system-commands.js +195 -0
  591. package/dist/interactive-commands/tool-commands.cjs +38 -0
  592. package/dist/interactive-commands/tool-commands.d.ts +15 -0
  593. package/dist/interactive-commands/tool-commands.d.ts.map +1 -0
  594. package/dist/interactive-commands/tool-commands.js +14 -0
  595. package/dist/interactive-commands/utils/arg-parser.cjs +59 -0
  596. package/dist/interactive-commands/utils/arg-parser.d.ts +57 -0
  597. package/dist/interactive-commands/utils/arg-parser.d.ts.map +1 -0
  598. package/dist/interactive-commands/utils/arg-parser.js +34 -0
  599. package/dist/interactive-commands/utils/command-output.cjs +75 -0
  600. package/dist/interactive-commands/utils/command-output.d.ts +40 -0
  601. package/dist/interactive-commands/utils/command-output.d.ts.map +1 -0
  602. package/dist/interactive-commands/utils/command-output.js +51 -0
  603. package/dist/interactive-commands/utils/format-output.cjs +36 -0
  604. package/dist/interactive-commands/utils/format-output.d.ts +14 -0
  605. package/dist/interactive-commands/utils/format-output.d.ts.map +1 -0
  606. package/dist/interactive-commands/utils/format-output.js +11 -0
  607. package/dist/services/CommandService.cjs +68 -0
  608. package/dist/services/CommandService.d.ts +58 -0
  609. package/dist/services/CommandService.d.ts.map +1 -0
  610. package/dist/services/CommandService.js +41 -0
  611. package/dist/services/InputService.cjs +97 -0
  612. package/dist/services/InputService.d.ts +40 -0
  613. package/dist/services/InputService.d.ts.map +1 -0
  614. package/dist/services/InputService.js +78 -0
  615. package/dist/services/MessageService.cjs +69 -0
  616. package/dist/services/MessageService.d.ts +35 -0
  617. package/dist/services/MessageService.d.ts.map +1 -0
  618. package/dist/services/MessageService.js +51 -0
  619. package/dist/services/index.cjs +39 -0
  620. package/dist/services/index.d.ts +8 -0
  621. package/dist/services/index.d.ts.map +1 -0
  622. package/dist/services/index.js +16 -0
  623. package/dist/services/processStream.cjs +877 -0
  624. package/dist/services/processStream.d.ts +79 -0
  625. package/dist/services/processStream.d.ts.map +1 -0
  626. package/dist/services/processStream.js +843 -0
  627. package/dist/services/processStream.test.cjs +255 -0
  628. package/dist/services/processStream.test.d.ts +2 -0
  629. package/dist/services/processStream.test.d.ts.map +1 -0
  630. package/dist/services/processStream.test.js +254 -0
  631. package/dist/state/actions.cjs +16 -0
  632. package/dist/state/actions.d.ts +124 -0
  633. package/dist/state/actions.d.ts.map +1 -0
  634. package/dist/state/actions.js +0 -0
  635. package/dist/state/index.cjs +28 -0
  636. package/dist/state/index.d.ts +10 -0
  637. package/dist/state/index.d.ts.map +1 -0
  638. package/dist/state/index.js +4 -0
  639. package/dist/state/initialState.cjs +78 -0
  640. package/dist/state/initialState.d.ts +12 -0
  641. package/dist/state/initialState.d.ts.map +1 -0
  642. package/dist/state/initialState.js +54 -0
  643. package/dist/state/reducer.cjs +340 -0
  644. package/dist/state/reducer.d.ts +15 -0
  645. package/dist/state/reducer.d.ts.map +1 -0
  646. package/dist/state/reducer.js +316 -0
  647. package/dist/state/streaming-state.cjs +52 -0
  648. package/dist/state/streaming-state.d.ts +27 -0
  649. package/dist/state/streaming-state.d.ts.map +1 -0
  650. package/dist/state/streaming-state.js +25 -0
  651. package/dist/state/types.cjs +16 -0
  652. package/dist/state/types.d.ts +388 -0
  653. package/dist/state/types.d.ts.map +1 -0
  654. package/dist/state/types.js +0 -0
  655. package/dist/utils/bracketedPaste.cjs +37 -0
  656. package/dist/utils/bracketedPaste.d.ts +22 -0
  657. package/dist/utils/bracketedPaste.d.ts.map +1 -0
  658. package/dist/utils/bracketedPaste.js +12 -0
  659. package/dist/utils/clipboardUtils.cjs +297 -0
  660. package/dist/utils/clipboardUtils.d.ts +49 -0
  661. package/dist/utils/clipboardUtils.d.ts.map +1 -0
  662. package/dist/utils/clipboardUtils.js +261 -0
  663. package/dist/utils/commandOverlays.cjs +69 -0
  664. package/dist/utils/commandOverlays.d.ts +22 -0
  665. package/dist/utils/commandOverlays.d.ts.map +1 -0
  666. package/dist/utils/commandOverlays.js +44 -0
  667. package/dist/utils/debugLog.cjs +63 -0
  668. package/dist/utils/debugLog.d.ts +38 -0
  669. package/dist/utils/debugLog.d.ts.map +1 -0
  670. package/dist/utils/debugLog.js +39 -0
  671. package/dist/utils/elicitationSchema.cjs +85 -0
  672. package/dist/utils/elicitationSchema.d.ts +11 -0
  673. package/dist/utils/elicitationSchema.d.ts.map +1 -0
  674. package/dist/utils/elicitationSchema.js +61 -0
  675. package/dist/utils/elicitationSchema.test.cjs +78 -0
  676. package/dist/utils/elicitationSchema.test.d.ts +2 -0
  677. package/dist/utils/elicitationSchema.test.d.ts.map +1 -0
  678. package/dist/utils/elicitationSchema.test.js +77 -0
  679. package/dist/utils/idGenerator.cjs +31 -0
  680. package/dist/utils/idGenerator.d.ts +10 -0
  681. package/dist/utils/idGenerator.d.ts.map +1 -0
  682. package/dist/utils/idGenerator.js +7 -0
  683. package/dist/utils/index.cjs +62 -0
  684. package/dist/utils/index.d.ts +9 -0
  685. package/dist/utils/index.d.ts.map +1 -0
  686. package/dist/utils/index.js +39 -0
  687. package/dist/utils/input.cjs +72 -0
  688. package/dist/utils/input.d.ts +25 -0
  689. package/dist/utils/input.d.ts.map +1 -0
  690. package/dist/utils/input.js +39 -0
  691. package/dist/utils/inputParsing.cjs +76 -0
  692. package/dist/utils/inputParsing.d.ts +31 -0
  693. package/dist/utils/inputParsing.d.ts.map +1 -0
  694. package/dist/utils/inputParsing.js +48 -0
  695. package/dist/utils/llm-provider-display.cjs +49 -0
  696. package/dist/utils/llm-provider-display.d.ts +3 -0
  697. package/dist/utils/llm-provider-display.d.ts.map +1 -0
  698. package/dist/utils/llm-provider-display.js +25 -0
  699. package/dist/utils/messageFormatting.cjs +447 -0
  700. package/dist/utils/messageFormatting.d.ts +131 -0
  701. package/dist/utils/messageFormatting.d.ts.map +1 -0
  702. package/dist/utils/messageFormatting.js +393 -0
  703. package/dist/utils/messageFormatting.test.cjs +16 -0
  704. package/dist/utils/messageFormatting.test.d.ts +2 -0
  705. package/dist/utils/messageFormatting.test.d.ts.map +1 -0
  706. package/dist/utils/messageFormatting.test.js +15 -0
  707. package/dist/utils/mouse.cjs +196 -0
  708. package/dist/utils/mouse.d.ts +61 -0
  709. package/dist/utils/mouse.d.ts.map +1 -0
  710. package/dist/utils/mouse.js +172 -0
  711. package/dist/utils/overlayPresentation.cjs +48 -0
  712. package/dist/utils/overlayPresentation.d.ts +19 -0
  713. package/dist/utils/overlayPresentation.d.ts.map +1 -0
  714. package/dist/utils/overlayPresentation.js +22 -0
  715. package/dist/utils/overlaySizing.cjs +39 -0
  716. package/dist/utils/overlaySizing.d.ts +19 -0
  717. package/dist/utils/overlaySizing.d.ts.map +1 -0
  718. package/dist/utils/overlaySizing.js +15 -0
  719. package/dist/utils/soundNotification.cjs +217 -0
  720. package/dist/utils/soundNotification.d.ts +77 -0
  721. package/dist/utils/soundNotification.d.ts.map +1 -0
  722. package/dist/utils/soundNotification.js +188 -0
  723. package/dist/utils/soundNotification.test.cjs +126 -0
  724. package/dist/utils/soundNotification.test.d.ts +2 -0
  725. package/dist/utils/soundNotification.test.d.ts.map +1 -0
  726. package/dist/utils/soundNotification.test.js +125 -0
  727. package/dist/utils/streamSplitter.cjs +126 -0
  728. package/dist/utils/streamSplitter.d.ts +44 -0
  729. package/dist/utils/streamSplitter.d.ts.map +1 -0
  730. package/dist/utils/streamSplitter.js +100 -0
  731. package/dist/utils/textUtils.cjs +223 -0
  732. package/dist/utils/textUtils.d.ts +63 -0
  733. package/dist/utils/textUtils.d.ts.map +1 -0
  734. package/dist/utils/textUtils.js +174 -0
  735. package/dist/utils/toolUtils.cjs +40 -0
  736. package/dist/utils/toolUtils.d.ts +20 -0
  737. package/dist/utils/toolUtils.d.ts.map +1 -0
  738. package/dist/utils/toolUtils.js +14 -0
  739. package/package.json +51 -0
@@ -0,0 +1,869 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var ModelSelectorRefactored_exports = {};
20
+ __export(ModelSelectorRefactored_exports, {
21
+ default: () => ModelSelectorRefactored_default
22
+ });
23
+ module.exports = __toCommonJS(ModelSelectorRefactored_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_react = require("react");
26
+ var import_ink = require("ink");
27
+ var import_useTerminalSize = require("../../hooks/useTerminalSize.js");
28
+ var import_core = require("@dexto/core");
29
+ var import_agent_management = require("@dexto/agent-management");
30
+ var import_llm_provider_display = require("../../utils/llm-provider-display.js");
31
+ var import_overlaySizing = require("../../utils/overlaySizing.js");
32
+ var import_HintBar = require("../shared/HintBar.js");
33
+ function isAddCustomOption(item) {
34
+ return "type" in item && item.type === "add-custom";
35
+ }
36
+ function getRowPrefix({
37
+ isSelected,
38
+ isDefault,
39
+ isCurrent,
40
+ isCustom
41
+ }) {
42
+ return `${isSelected ? "\u203A" : " "} ${isDefault ? "\u2713" : " "} ${isCurrent ? "\u25CF" : " "} ${isCustom ? "\u2605" : " "}`;
43
+ }
44
+ function computeNextSelection(currentIndex, itemsLength, viewportItems) {
45
+ const nextIndex = currentIndex;
46
+ let nextOffset = 0;
47
+ const modelsLength = Math.max(0, itemsLength - 1);
48
+ if (nextIndex > 0) {
49
+ const modelIndex = nextIndex - 1;
50
+ if (modelIndex < nextOffset) {
51
+ nextOffset = modelIndex;
52
+ } else if (modelIndex >= nextOffset + viewportItems) {
53
+ nextOffset = Math.max(0, modelIndex - viewportItems + 1);
54
+ }
55
+ }
56
+ const maxOffset = Math.max(0, modelsLength - viewportItems);
57
+ nextOffset = Math.min(maxOffset, Math.max(0, nextOffset));
58
+ return { index: nextIndex, offset: nextOffset };
59
+ }
60
+ const REASONING_VARIANT_DESCRIPTIONS = {
61
+ disabled: "Disable reasoning (fastest)",
62
+ none: "Disable reasoning (fastest)",
63
+ enabled: "Enable provider default reasoning",
64
+ minimal: "Minimal reasoning",
65
+ low: "Light reasoning, faster responses",
66
+ medium: "Balanced reasoning",
67
+ high: "Thorough reasoning",
68
+ max: "Maximum reasoning within provider limits",
69
+ xhigh: "Extra high reasoning"
70
+ };
71
+ function buildReasoningVariantOptions(support) {
72
+ return support.variants.map((variant) => ({
73
+ value: variant.id,
74
+ label: variant.id === support.defaultVariant ? `${variant.label} (Recommended)` : variant.label,
75
+ description: REASONING_VARIANT_DESCRIPTIONS[variant.id] ?? "Model/provider-native reasoning variant"
76
+ }));
77
+ }
78
+ function getInitialVariantIndex(savedVariant, options, defaultVariant) {
79
+ const preferredVariant = savedVariant ?? defaultVariant;
80
+ if (!preferredVariant) return 0;
81
+ const idx = options.findIndex((option) => option.value === preferredVariant);
82
+ return idx >= 0 ? idx : 0;
83
+ }
84
+ const ModelSelector = (0, import_react.forwardRef)(function ModelSelector2({
85
+ isVisible,
86
+ onSelectModel,
87
+ onSetDefaultModel,
88
+ onClose,
89
+ onAddCustomModel,
90
+ onEditCustomModel,
91
+ agent
92
+ }, ref) {
93
+ const { rows: terminalRows } = (0, import_useTerminalSize.useTerminalSize)();
94
+ const maxVisibleItems = (0, import_react.useMemo)(() => {
95
+ return (0, import_overlaySizing.getMaxVisibleItemsForTerminalRows)({
96
+ rows: terminalRows,
97
+ hardCap: 8,
98
+ reservedRows: 14
99
+ });
100
+ }, [terminalRows]);
101
+ const [models, setModels] = (0, import_react.useState)([]);
102
+ const [customModels, setCustomModels] = (0, import_react.useState)([]);
103
+ const [isLoading, setIsLoading] = (0, import_react.useState)(false);
104
+ const [selection, setSelection] = (0, import_react.useState)({ index: 0, offset: 0 });
105
+ const [searchQuery, setSearchQuery] = (0, import_react.useState)("");
106
+ const [customModelAction, setCustomModelAction] = (0, import_react.useState)(null);
107
+ const [pendingDeleteConfirm, setPendingDeleteConfirm] = (0, import_react.useState)(false);
108
+ const selectedIndexRef = (0, import_react.useRef)(0);
109
+ const deleteTimeoutRef = (0, import_react.useRef)(null);
110
+ const maxVisibleItemsRef = (0, import_react.useRef)(maxVisibleItems);
111
+ const [pendingReasoningModel, setPendingReasoningModel] = (0, import_react.useState)(null);
112
+ const [reasoningVariantIndex, setReasoningVariantIndex] = (0, import_react.useState)(0);
113
+ const [isSettingDefault, setIsSettingDefault] = (0, import_react.useState)(false);
114
+ const [refreshVersion, setRefreshVersion] = (0, import_react.useState)(0);
115
+ const reasoningVariantOptions = (0, import_react.useMemo)(() => {
116
+ if (!pendingReasoningModel) return [];
117
+ const support = (0, import_core.getReasoningProfile)(
118
+ pendingReasoningModel.provider,
119
+ pendingReasoningModel.name
120
+ );
121
+ return buildReasoningVariantOptions(support);
122
+ }, [pendingReasoningModel]);
123
+ selectedIndexRef.current = selection.index;
124
+ maxVisibleItemsRef.current = maxVisibleItems;
125
+ const modelsViewportItems = Math.max(1, maxVisibleItems - 1);
126
+ (0, import_react.useEffect)(() => {
127
+ return () => {
128
+ if (deleteTimeoutRef.current) {
129
+ clearTimeout(deleteTimeoutRef.current);
130
+ }
131
+ };
132
+ }, []);
133
+ (0, import_react.useEffect)(() => {
134
+ if (!isVisible) return;
135
+ let cancelled = false;
136
+ setIsLoading(true);
137
+ setModels([]);
138
+ setCustomModels([]);
139
+ setSearchQuery("");
140
+ setSelection({ index: 0, offset: 0 });
141
+ setCustomModelAction(null);
142
+ setPendingDeleteConfirm(false);
143
+ setPendingReasoningModel(null);
144
+ setIsSettingDefault(false);
145
+ setReasoningVariantIndex(0);
146
+ if (deleteTimeoutRef.current) {
147
+ clearTimeout(deleteTimeoutRef.current);
148
+ deleteTimeoutRef.current = null;
149
+ }
150
+ const fetchModels = async () => {
151
+ try {
152
+ try {
153
+ const cacheInfo = (0, import_core.getOpenRouterModelCacheInfo)();
154
+ if (cacheInfo.modelCount === 0) {
155
+ await (0, import_core.refreshOpenRouterModelCache)({ force: true, timeoutMs: 1e4 });
156
+ }
157
+ } catch (error) {
158
+ agent.logger.debug(
159
+ `OpenRouter catalog refresh skipped: ${error instanceof Error ? error.message : String(error)}`
160
+ );
161
+ }
162
+ const [allModels, providers, currentConfig, loadedCustomModels, preferences] = await Promise.all([
163
+ Promise.resolve(agent.getSupportedModels()),
164
+ Promise.resolve(agent.getSupportedProviders()),
165
+ Promise.resolve(agent.getCurrentLLMConfig()),
166
+ (0, import_agent_management.loadCustomModels)(),
167
+ (0, import_agent_management.loadGlobalPreferences)().catch(() => null)
168
+ ]);
169
+ const modelList = [];
170
+ const defaultProvider = preferences?.llm.provider;
171
+ const defaultModel = preferences?.llm.model;
172
+ const defaultBaseURL = preferences?.llm.baseURL;
173
+ const defaultReasoningVariant = preferences?.llm.reasoning?.variant;
174
+ let ollamaModels = [];
175
+ let localModels = [];
176
+ try {
177
+ ollamaModels = await (0, import_core.listOllamaModels)(import_core.DEFAULT_OLLAMA_URL);
178
+ } catch (error) {
179
+ agent.logger.debug("Ollama not available for model listing");
180
+ }
181
+ try {
182
+ localModels = await (0, import_agent_management.getAllInstalledModels)();
183
+ } catch (error) {
184
+ agent.logger.debug("Local models not available for listing");
185
+ }
186
+ for (const custom of loadedCustomModels) {
187
+ const customProvider = custom.provider;
188
+ const modelOption = {
189
+ provider: customProvider,
190
+ name: custom.name,
191
+ displayName: custom.displayName || custom.name,
192
+ maxInputTokens: custom.maxInputTokens ?? 128e3,
193
+ isDefault: customProvider === defaultProvider && custom.name === defaultModel,
194
+ isCurrent: currentConfig.provider === customProvider && currentConfig.model === custom.name,
195
+ isCustom: true
196
+ };
197
+ if (custom.baseURL) {
198
+ modelOption.baseURL = custom.baseURL;
199
+ }
200
+ if (custom.reasoning?.variant) {
201
+ modelOption.reasoningVariant = custom.reasoning.variant;
202
+ }
203
+ modelList.push(modelOption);
204
+ }
205
+ for (const provider of providers) {
206
+ if (provider === "openai-compatible" || provider === "litellm" || provider === "glama" || provider === "bedrock")
207
+ continue;
208
+ if (provider === "ollama" || provider === "local" || provider === "vertex") {
209
+ continue;
210
+ }
211
+ if (provider === "dexto-nova" && !(0, import_agent_management.isDextoAuthEnabled)()) {
212
+ continue;
213
+ }
214
+ const providerModels = allModels[provider];
215
+ for (const model of providerModels) {
216
+ const originalProvider = "originalProvider" in model ? model.originalProvider : void 0;
217
+ modelList.push({
218
+ provider,
219
+ name: model.name,
220
+ displayName: model.displayName,
221
+ maxInputTokens: model.maxInputTokens,
222
+ isDefault: provider === defaultProvider && model.name === defaultModel,
223
+ isCurrent: provider === currentConfig.provider && model.name === currentConfig.model,
224
+ isCustom: false,
225
+ ...defaultReasoningVariant && provider === defaultProvider && model.name === defaultModel ? { reasoningVariant: defaultReasoningVariant } : {},
226
+ ...defaultBaseURL && provider === defaultProvider && model.name === defaultModel ? { baseURL: defaultBaseURL } : {},
227
+ // Store original provider for display purposes
228
+ ...originalProvider && { originalProvider }
229
+ });
230
+ }
231
+ }
232
+ for (const ollamaModel of ollamaModels) {
233
+ modelList.push({
234
+ provider: "ollama",
235
+ name: ollamaModel.name,
236
+ displayName: ollamaModel.name,
237
+ maxInputTokens: 128e3,
238
+ // Default, actual varies by model
239
+ isDefault: defaultProvider === "ollama" && defaultModel === ollamaModel.name,
240
+ isCurrent: currentConfig.provider === "ollama" && currentConfig.model === ollamaModel.name,
241
+ isCustom: false
242
+ });
243
+ }
244
+ for (const localModel of localModels) {
245
+ const modelInfo = (0, import_core.getLocalModelById)(localModel.id);
246
+ const displayName = modelInfo?.name || localModel.id;
247
+ const maxInputTokens = modelInfo?.contextLength || 128e3;
248
+ modelList.push({
249
+ provider: "local",
250
+ name: localModel.id,
251
+ displayName,
252
+ maxInputTokens,
253
+ isDefault: defaultProvider === "local" && defaultModel === localModel.id,
254
+ isCurrent: currentConfig.provider === "local" && currentConfig.model === localModel.id,
255
+ isCustom: false
256
+ });
257
+ }
258
+ const vertexModels = allModels["vertex"];
259
+ if (vertexModels) {
260
+ for (const model of vertexModels) {
261
+ modelList.push({
262
+ provider: "vertex",
263
+ name: model.name,
264
+ displayName: model.displayName,
265
+ maxInputTokens: model.maxInputTokens,
266
+ isDefault: defaultProvider === "vertex" && defaultModel === model.name,
267
+ isCurrent: currentConfig.provider === "vertex" && currentConfig.model === model.name,
268
+ isCustom: false,
269
+ ...defaultReasoningVariant && defaultProvider === "vertex" && defaultModel === model.name ? { reasoningVariant: defaultReasoningVariant } : {}
270
+ });
271
+ }
272
+ }
273
+ if (!cancelled) {
274
+ setModels(modelList);
275
+ setCustomModels(loadedCustomModels);
276
+ setIsLoading(false);
277
+ const currentIndex = modelList.findIndex((m) => m.isCurrent);
278
+ if (currentIndex >= 0) {
279
+ const nextIndex = currentIndex + 1;
280
+ const nextMaxVisibleItems = maxVisibleItemsRef.current;
281
+ const nextModelsViewportItems = Math.max(1, nextMaxVisibleItems - 1);
282
+ const maxOffset = Math.max(0, modelList.length - nextModelsViewportItems);
283
+ const nextOffset = Math.min(
284
+ maxOffset,
285
+ Math.max(0, currentIndex - nextModelsViewportItems + 1)
286
+ );
287
+ selectedIndexRef.current = nextIndex;
288
+ setSelection({ index: nextIndex, offset: nextOffset });
289
+ }
290
+ }
291
+ } catch (error) {
292
+ if (!cancelled) {
293
+ agent.logger.error(
294
+ `Failed to fetch models: ${error instanceof Error ? error.message : "Unknown error"}`
295
+ );
296
+ setModels([]);
297
+ setIsLoading(false);
298
+ }
299
+ }
300
+ };
301
+ void fetchModels();
302
+ return () => {
303
+ cancelled = true;
304
+ };
305
+ }, [isVisible, agent, refreshVersion]);
306
+ const filteredItems = (0, import_react.useMemo)(() => {
307
+ const addCustomOption = { type: "add-custom" };
308
+ if (!searchQuery.trim()) {
309
+ return [addCustomOption, ...models];
310
+ }
311
+ const query = searchQuery.toLowerCase().replace(/[\s-]+/g, "");
312
+ const filtered = models.filter((model) => {
313
+ const name = model.name.toLowerCase().replace(/[\s-]+/g, "");
314
+ const displayName = (model.displayName || "").toLowerCase().replace(/[\s-]+/g, "");
315
+ const provider = model.provider.toLowerCase().replace(/[\s-]+/g, "");
316
+ return name.includes(query) || displayName.includes(query) || provider.includes(query);
317
+ });
318
+ return [addCustomOption, ...filtered];
319
+ }, [models, searchQuery]);
320
+ (0, import_react.useEffect)(() => {
321
+ setSelection((prev) => {
322
+ const maxIndex = Math.max(0, filteredItems.length - 1);
323
+ const nextIndex = Math.min(prev.index, maxIndex);
324
+ let nextOffset = prev.offset;
325
+ const nextModelsLength = Math.max(0, filteredItems.length - 1);
326
+ if (nextIndex > 0) {
327
+ const modelIndex = nextIndex - 1;
328
+ if (modelIndex < nextOffset) {
329
+ nextOffset = modelIndex;
330
+ } else if (modelIndex >= nextOffset + modelsViewportItems) {
331
+ nextOffset = Math.max(0, modelIndex - modelsViewportItems + 1);
332
+ }
333
+ }
334
+ const maxOffset = Math.max(0, nextModelsLength - modelsViewportItems);
335
+ nextOffset = Math.min(maxOffset, Math.max(0, nextOffset));
336
+ if (nextIndex === prev.index && nextOffset === prev.offset) {
337
+ return prev;
338
+ }
339
+ selectedIndexRef.current = nextIndex;
340
+ return { index: nextIndex, offset: nextOffset };
341
+ });
342
+ }, [filteredItems.length, modelsViewportItems]);
343
+ const handleDeleteCustomModel = (0, import_react.useCallback)(
344
+ async (model) => {
345
+ if (!model.isCustom) return;
346
+ try {
347
+ await (0, import_agent_management.deleteCustomModel)(model.name);
348
+ const updated = await (0, import_agent_management.loadCustomModels)();
349
+ setCustomModels(updated);
350
+ setModels((prev) => prev.filter((m) => !(m.isCustom && m.name === model.name)));
351
+ } catch (error) {
352
+ agent.logger.error(
353
+ `Failed to delete custom model: ${error instanceof Error ? error.message : "Unknown error"}`
354
+ );
355
+ }
356
+ },
357
+ [agent]
358
+ );
359
+ const clearActionState = () => {
360
+ setCustomModelAction(null);
361
+ setPendingDeleteConfirm(false);
362
+ if (deleteTimeoutRef.current) {
363
+ clearTimeout(deleteTimeoutRef.current);
364
+ deleteTimeoutRef.current = null;
365
+ }
366
+ };
367
+ const beginReasoningVariantSelection = (item, settingDefault) => {
368
+ const support = (0, import_core.getReasoningProfile)(item.provider, item.name);
369
+ if (!support.capable) {
370
+ return false;
371
+ }
372
+ const options = buildReasoningVariantOptions(support);
373
+ setPendingReasoningModel(item);
374
+ setIsSettingDefault(settingDefault);
375
+ setReasoningVariantIndex(
376
+ getInitialVariantIndex(item.reasoningVariant, options, support.defaultVariant)
377
+ );
378
+ return true;
379
+ };
380
+ (0, import_react.useImperativeHandle)(
381
+ ref,
382
+ () => ({
383
+ handleInput: (input, key) => {
384
+ if (!isVisible) return false;
385
+ if (isLoading) {
386
+ if (key.escape) {
387
+ onClose();
388
+ }
389
+ return true;
390
+ }
391
+ if (pendingReasoningModel) {
392
+ if (key.escape) {
393
+ setPendingReasoningModel(null);
394
+ setIsSettingDefault(false);
395
+ return true;
396
+ }
397
+ if (key.upArrow) {
398
+ if (reasoningVariantOptions.length === 0) return true;
399
+ setReasoningVariantIndex(
400
+ (prev) => prev > 0 ? prev - 1 : reasoningVariantOptions.length - 1
401
+ );
402
+ return true;
403
+ }
404
+ if (key.downArrow) {
405
+ if (reasoningVariantOptions.length === 0) return true;
406
+ setReasoningVariantIndex(
407
+ (prev) => prev < reasoningVariantOptions.length - 1 ? prev + 1 : 0
408
+ );
409
+ return true;
410
+ }
411
+ if (key.return) {
412
+ const selectedOption = reasoningVariantOptions[reasoningVariantIndex] ?? reasoningVariantOptions[0];
413
+ const reasoningVariant = selectedOption?.value;
414
+ if (!reasoningVariant) {
415
+ setPendingReasoningModel(null);
416
+ setIsSettingDefault(false);
417
+ return true;
418
+ }
419
+ if (isSettingDefault) {
420
+ clearActionState();
421
+ void (async () => {
422
+ await onSetDefaultModel(
423
+ pendingReasoningModel.provider,
424
+ pendingReasoningModel.name,
425
+ pendingReasoningModel.displayName,
426
+ pendingReasoningModel.baseURL,
427
+ reasoningVariant
428
+ );
429
+ setRefreshVersion((prev) => prev + 1);
430
+ onClose();
431
+ })();
432
+ } else {
433
+ onSelectModel(
434
+ pendingReasoningModel.provider,
435
+ pendingReasoningModel.name,
436
+ pendingReasoningModel.displayName,
437
+ pendingReasoningModel.baseURL,
438
+ reasoningVariant
439
+ );
440
+ }
441
+ setPendingReasoningModel(null);
442
+ setIsSettingDefault(false);
443
+ return true;
444
+ }
445
+ return true;
446
+ }
447
+ if (key.escape) {
448
+ if (customModelAction) {
449
+ clearActionState();
450
+ return true;
451
+ }
452
+ onClose();
453
+ return true;
454
+ }
455
+ const itemsLength = filteredItems.length;
456
+ const currentItem = filteredItems[selectedIndexRef.current];
457
+ const isCustomActionItem = currentItem && !isAddCustomOption(currentItem) && currentItem.isCustom;
458
+ const isSelectableItem = currentItem && !isAddCustomOption(currentItem);
459
+ if (key.rightArrow) {
460
+ if (!isSelectableItem) return false;
461
+ if (customModelAction === null) {
462
+ if (isCustomActionItem) {
463
+ setCustomModelAction("edit");
464
+ } else {
465
+ setCustomModelAction("default");
466
+ }
467
+ return true;
468
+ }
469
+ if (customModelAction === "edit") {
470
+ setCustomModelAction("default");
471
+ return true;
472
+ }
473
+ if (customModelAction === "default") {
474
+ if (isCustomActionItem) {
475
+ setCustomModelAction("delete");
476
+ setPendingDeleteConfirm(false);
477
+ return true;
478
+ }
479
+ return true;
480
+ }
481
+ if (customModelAction === "delete") {
482
+ return true;
483
+ }
484
+ }
485
+ if (key.leftArrow) {
486
+ if (customModelAction === "delete") {
487
+ setCustomModelAction("default");
488
+ setPendingDeleteConfirm(false);
489
+ if (deleteTimeoutRef.current) {
490
+ clearTimeout(deleteTimeoutRef.current);
491
+ deleteTimeoutRef.current = null;
492
+ }
493
+ return true;
494
+ }
495
+ if (customModelAction === "default") {
496
+ if (isCustomActionItem) {
497
+ setCustomModelAction("edit");
498
+ } else {
499
+ setCustomModelAction(null);
500
+ }
501
+ return true;
502
+ }
503
+ if (customModelAction === "edit") {
504
+ setCustomModelAction(null);
505
+ return true;
506
+ }
507
+ return false;
508
+ }
509
+ if (input && !key.return && !key.upArrow && !key.downArrow && !key.tab) {
510
+ if (customModelAction) {
511
+ clearActionState();
512
+ }
513
+ if (key.backspace || key.delete) {
514
+ setSearchQuery((prev) => prev.slice(0, -1));
515
+ return true;
516
+ }
517
+ if (input.length === 1 && input.charCodeAt(0) >= 32) {
518
+ setSearchQuery((prev) => prev + input);
519
+ selectedIndexRef.current = 0;
520
+ setSelection({ index: 0, offset: 0 });
521
+ return true;
522
+ }
523
+ }
524
+ if (key.backspace || key.delete) {
525
+ setSearchQuery((prev) => prev.slice(0, -1));
526
+ return true;
527
+ }
528
+ if (itemsLength === 0) return false;
529
+ if (key.upArrow) {
530
+ if (customModelAction) {
531
+ clearActionState();
532
+ }
533
+ const nextIndex = (selectedIndexRef.current - 1 + itemsLength) % itemsLength;
534
+ selectedIndexRef.current = nextIndex;
535
+ setSelection((prev) => {
536
+ let nextOffset = prev.offset;
537
+ const nextModelsLength = Math.max(0, itemsLength - 1);
538
+ if (nextIndex > 0) {
539
+ const modelIndex = nextIndex - 1;
540
+ if (modelIndex < prev.offset) {
541
+ nextOffset = modelIndex;
542
+ } else if (modelIndex >= prev.offset + modelsViewportItems) {
543
+ nextOffset = Math.max(0, modelIndex - modelsViewportItems + 1);
544
+ }
545
+ }
546
+ const maxOffset = Math.max(0, nextModelsLength - modelsViewportItems);
547
+ nextOffset = Math.min(maxOffset, Math.max(0, nextOffset));
548
+ return { index: nextIndex, offset: nextOffset };
549
+ });
550
+ return true;
551
+ }
552
+ if (key.downArrow) {
553
+ if (customModelAction) {
554
+ clearActionState();
555
+ }
556
+ const nextIndex = (selectedIndexRef.current + 1) % itemsLength;
557
+ selectedIndexRef.current = nextIndex;
558
+ setSelection((prev) => {
559
+ let nextOffset = prev.offset;
560
+ const nextModelsLength = Math.max(0, itemsLength - 1);
561
+ if (nextIndex > 0) {
562
+ const modelIndex = nextIndex - 1;
563
+ if (modelIndex < prev.offset) {
564
+ nextOffset = modelIndex;
565
+ } else if (modelIndex >= prev.offset + modelsViewportItems) {
566
+ nextOffset = Math.max(0, modelIndex - modelsViewportItems + 1);
567
+ }
568
+ }
569
+ const maxOffset = Math.max(0, nextModelsLength - modelsViewportItems);
570
+ nextOffset = Math.min(maxOffset, Math.max(0, nextOffset));
571
+ return { index: nextIndex, offset: nextOffset };
572
+ });
573
+ return true;
574
+ }
575
+ if (key.return && itemsLength > 0) {
576
+ const item = filteredItems[selectedIndexRef.current];
577
+ if (item) {
578
+ if (isAddCustomOption(item)) {
579
+ onAddCustomModel();
580
+ return true;
581
+ }
582
+ if (customModelAction === "edit" && item.isCustom) {
583
+ const customModel = customModels.find(
584
+ (cm) => cm.name === item.name && (cm.provider ?? "openai-compatible") === item.provider
585
+ );
586
+ if (customModel) {
587
+ onEditCustomModel(customModel);
588
+ }
589
+ return true;
590
+ }
591
+ if (customModelAction === "default") {
592
+ if (beginReasoningVariantSelection(item, true)) {
593
+ return true;
594
+ }
595
+ clearActionState();
596
+ void (async () => {
597
+ await onSetDefaultModel(
598
+ item.provider,
599
+ item.name,
600
+ item.displayName,
601
+ item.baseURL,
602
+ item.reasoningVariant
603
+ );
604
+ setRefreshVersion((prev) => prev + 1);
605
+ onClose();
606
+ })();
607
+ return true;
608
+ }
609
+ if (customModelAction === "delete" && item.isCustom) {
610
+ if (pendingDeleteConfirm) {
611
+ clearActionState();
612
+ void handleDeleteCustomModel(item);
613
+ } else {
614
+ setPendingDeleteConfirm(true);
615
+ if (deleteTimeoutRef.current) {
616
+ clearTimeout(deleteTimeoutRef.current);
617
+ }
618
+ deleteTimeoutRef.current = setTimeout(() => {
619
+ setPendingDeleteConfirm(false);
620
+ deleteTimeoutRef.current = null;
621
+ }, 3e3);
622
+ }
623
+ return true;
624
+ }
625
+ if (beginReasoningVariantSelection(item, false)) {
626
+ return true;
627
+ }
628
+ onSelectModel(item.provider, item.name, item.displayName, item.baseURL);
629
+ return true;
630
+ }
631
+ }
632
+ return false;
633
+ }
634
+ }),
635
+ [
636
+ isVisible,
637
+ isLoading,
638
+ filteredItems,
639
+ maxVisibleItems,
640
+ modelsViewportItems,
641
+ onClose,
642
+ onSelectModel,
643
+ onSetDefaultModel,
644
+ onAddCustomModel,
645
+ onEditCustomModel,
646
+ customModelAction,
647
+ pendingDeleteConfirm,
648
+ customModels,
649
+ handleDeleteCustomModel,
650
+ pendingReasoningModel,
651
+ reasoningVariantIndex,
652
+ reasoningVariantOptions,
653
+ isSettingDefault,
654
+ beginReasoningVariantSelection
655
+ ]
656
+ );
657
+ if (!isVisible) return null;
658
+ if (pendingReasoningModel) {
659
+ const totalOptions = reasoningVariantOptions.length;
660
+ const reasoningVisibleItems = Math.min(maxVisibleItems, totalOptions);
661
+ const reasoningOffset = Math.min(
662
+ Math.max(0, reasoningVariantIndex - reasoningVisibleItems + 1),
663
+ Math.max(0, totalOptions - reasoningVisibleItems)
664
+ );
665
+ const visibleReasoningOptions = reasoningVariantOptions.slice(
666
+ reasoningOffset,
667
+ reasoningOffset + reasoningVisibleItems
668
+ );
669
+ const selectedReasoningOption = reasoningVariantOptions[reasoningVariantIndex] ?? reasoningVariantOptions[0];
670
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ink.Box, { flexDirection: "column", children: [
671
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ink.Text, { color: "cyan", bold: true, children: [
672
+ "Reasoning Variant",
673
+ isSettingDefault ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "gray", children: " (default)" }) : null
674
+ ] }) }),
675
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "gray", wrap: "truncate-end", children: pendingReasoningModel.displayName || pendingReasoningModel.name }) }),
676
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { flexDirection: "column", height: maxVisibleItems, marginTop: 1, children: Array.from({ length: maxVisibleItems }, (_, rowIndex) => {
677
+ const option = visibleReasoningOptions[rowIndex];
678
+ if (!option) {
679
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { children: " " }) }, `reasoning-empty-${rowIndex}`);
680
+ }
681
+ const actualIndex = reasoningOffset + rowIndex;
682
+ const isSelected = actualIndex === reasoningVariantIndex;
683
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
684
+ import_ink.Text,
685
+ {
686
+ color: isSelected ? "cyan" : "gray",
687
+ bold: isSelected,
688
+ wrap: "truncate-end",
689
+ children: [
690
+ isSelected ? "\u203A" : " ",
691
+ " ",
692
+ option.label
693
+ ]
694
+ }
695
+ ) }, option.value);
696
+ }) }),
697
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "gray", wrap: "truncate-end", children: selectedReasoningOption?.description ?? "" }) }),
698
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_HintBar.HintBar, { hints: ["\u2191\u2193 navigate", "Enter select", "Esc back"] }) })
699
+ ] });
700
+ }
701
+ const selectedIndex = selection.index;
702
+ const scrollOffset = selection.offset;
703
+ const modelsOnly = filteredItems.filter(
704
+ (item) => !isAddCustomOption(item)
705
+ );
706
+ const visibleModels = modelsOnly.slice(scrollOffset, scrollOffset + modelsViewportItems);
707
+ const selectedItem = filteredItems[selectedIndex];
708
+ const hasActionableItems = selectedItem && !isAddCustomOption(selectedItem);
709
+ let detailLine = "";
710
+ if (isLoading) {
711
+ detailLine = "Loading models\u2026";
712
+ } else if (customModelAction === "delete" && pendingDeleteConfirm) {
713
+ detailLine = "Confirm delete: press Enter again";
714
+ } else if (customModelAction) {
715
+ const label = customModelAction === "edit" ? "Edit" : customModelAction === "default" ? "Set as default" : "Delete";
716
+ detailLine = `Action: ${label}`;
717
+ } else if (searchQuery.trim() && filteredItems.length <= 1) {
718
+ detailLine = "No models match your search";
719
+ } else if (!selectedItem) {
720
+ detailLine = "";
721
+ } else if (isAddCustomOption(selectedItem)) {
722
+ detailLine = "Enter to add a custom model";
723
+ } else {
724
+ const provider = (0, import_llm_provider_display.getLLMProviderDisplayName)(selectedItem.provider);
725
+ const name = selectedItem.displayName || selectedItem.name;
726
+ const flags = [];
727
+ if (selectedItem.isDefault) flags.push("default");
728
+ if (selectedItem.isCurrent) flags.push("current");
729
+ detailLine = flags.length > 0 ? `${name} (${provider}) \u2022 ${flags.join(", ")}` : `${name} (${provider})`;
730
+ }
731
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ink.Box, { flexDirection: "column", children: [
732
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "cyan", bold: true, children: "Models" }) }),
733
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ink.Box, { paddingX: 0, paddingY: 0, marginTop: 1, children: [
734
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "gray", children: "Search: " }),
735
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: searchQuery ? "white" : "gray", wrap: "truncate-end", children: searchQuery || "Type to filter models\u2026" })
736
+ ] }),
737
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ink.Box, { flexDirection: "column", marginTop: 1, children: [
738
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
739
+ import_ink.Text,
740
+ {
741
+ color: selectedIndex === 0 ? "green" : "gray",
742
+ bold: selectedIndex === 0,
743
+ wrap: "truncate-end",
744
+ children: [
745
+ getRowPrefix({
746
+ isSelected: selectedIndex === 0,
747
+ isDefault: false,
748
+ isCurrent: false,
749
+ isCustom: false
750
+ }),
751
+ " ",
752
+ "Add custom model\u2026"
753
+ ]
754
+ }
755
+ ) }),
756
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { flexDirection: "column", height: modelsViewportItems, children: isLoading || modelsOnly.length === 0 ? Array.from({ length: modelsViewportItems }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { children: " " }) }, `model-empty-${index}`)) : Array.from({ length: modelsViewportItems }, (_, rowIndex) => {
757
+ const item = visibleModels[rowIndex];
758
+ if (!item) {
759
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
760
+ import_ink.Box,
761
+ {
762
+ paddingX: 0,
763
+ paddingY: 0,
764
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { children: " " })
765
+ },
766
+ `model-empty-${rowIndex}`
767
+ );
768
+ }
769
+ const actualIndex = 1 + scrollOffset + rowIndex;
770
+ const isSelected = actualIndex === selectedIndex;
771
+ const providerDisplay = (0, import_llm_provider_display.getLLMProviderDisplayName)(item.provider);
772
+ const name = item.displayName || item.name;
773
+ const prefix = getRowPrefix({
774
+ isSelected,
775
+ isDefault: item.isDefault,
776
+ isCurrent: item.isCurrent,
777
+ isCustom: item.isCustom
778
+ });
779
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
780
+ import_ink.Box,
781
+ {
782
+ flexDirection: "row",
783
+ paddingX: 0,
784
+ paddingY: 0,
785
+ children: [
786
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
787
+ import_ink.Text,
788
+ {
789
+ color: isSelected ? "cyan" : "gray",
790
+ bold: isSelected,
791
+ wrap: "truncate-end",
792
+ children: [
793
+ prefix,
794
+ " ",
795
+ name,
796
+ " (",
797
+ providerDisplay,
798
+ ")"
799
+ ]
800
+ }
801
+ ) }),
802
+ isSelected && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ink.Box, { flexDirection: "row", marginLeft: 1, children: [
803
+ item.isCustom && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
804
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
805
+ import_ink.Text,
806
+ {
807
+ color: customModelAction === "edit" ? "green" : "gray",
808
+ bold: customModelAction === "edit",
809
+ inverse: customModelAction === "edit",
810
+ children: [
811
+ " ",
812
+ "Edit",
813
+ " "
814
+ ]
815
+ }
816
+ ),
817
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { children: " " })
818
+ ] }),
819
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
820
+ import_ink.Text,
821
+ {
822
+ color: customModelAction === "default" ? "cyan" : "gray",
823
+ bold: customModelAction === "default",
824
+ inverse: customModelAction === "default",
825
+ children: [
826
+ " ",
827
+ "Set as Default",
828
+ " "
829
+ ]
830
+ }
831
+ ),
832
+ item.isCustom && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
833
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { children: " " }),
834
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
835
+ import_ink.Text,
836
+ {
837
+ color: customModelAction === "delete" ? "red" : "gray",
838
+ bold: customModelAction === "delete",
839
+ inverse: customModelAction === "delete",
840
+ children: [
841
+ " ",
842
+ "Delete",
843
+ " "
844
+ ]
845
+ }
846
+ )
847
+ ] })
848
+ ] })
849
+ ]
850
+ },
851
+ `${item.provider}-${item.name}-${item.isCustom ? "custom" : "registry"}`
852
+ );
853
+ }) })
854
+ ] }),
855
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "gray", wrap: "truncate-end", children: detailLine }) }),
856
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { paddingX: 0, paddingY: 0, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
857
+ import_HintBar.HintBar,
858
+ {
859
+ hints: [
860
+ "\u2191\u2193 navigate",
861
+ "Enter select",
862
+ "Esc close",
863
+ hasActionableItems ? "\u2190\u2192 actions" : ""
864
+ ]
865
+ }
866
+ ) })
867
+ ] });
868
+ });
869
+ var ModelSelectorRefactored_default = ModelSelector;