dexto 1.6.1 → 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 (552) hide show
  1. package/dist/analytics/wrapper.js +1 -1
  2. package/dist/cli/auth/dexto-api-key.d.ts +34 -0
  3. package/dist/cli/auth/dexto-api-key.d.ts.map +1 -0
  4. package/dist/cli/auth/dexto-api-key.js +161 -0
  5. package/dist/cli/auth/index.d.ts +2 -1
  6. package/dist/cli/auth/index.d.ts.map +1 -1
  7. package/dist/cli/auth/index.js +2 -1
  8. package/dist/cli/auth/oauth.d.ts +10 -0
  9. package/dist/cli/auth/oauth.d.ts.map +1 -1
  10. package/dist/cli/auth/oauth.js +113 -36
  11. package/dist/cli/auth/service.d.ts +1 -0
  12. package/dist/cli/auth/service.d.ts.map +1 -1
  13. package/dist/cli/auth/service.js +1 -0
  14. package/dist/cli/commands/auth/login.d.ts.map +1 -1
  15. package/dist/cli/commands/auth/login.js +40 -105
  16. package/dist/cli/commands/setup.d.ts.map +1 -1
  17. package/dist/cli/commands/setup.js +157 -120
  18. package/dist/cli/utils/config-validation.js +3 -3
  19. package/dist/cli/utils/options.d.ts.map +1 -1
  20. package/dist/cli/utils/options.js +6 -0
  21. package/dist/index-main.js +36 -2
  22. package/dist/webui/assets/index-BPlk2Wbt.css +1 -0
  23. package/dist/webui/assets/index-BZvrpxyh.js +2059 -0
  24. package/dist/webui/index.html +2 -2
  25. package/package.json +12 -22
  26. package/dist/cli/assets/sounds/SOURCES.md +0 -35
  27. package/dist/cli/assets/sounds/boot.wav +0 -0
  28. package/dist/cli/assets/sounds/chime.wav +0 -0
  29. package/dist/cli/assets/sounds/coin.wav +0 -0
  30. package/dist/cli/assets/sounds/confirm.wav +0 -0
  31. package/dist/cli/assets/sounds/levelup.wav +0 -0
  32. package/dist/cli/assets/sounds/ping.wav +0 -0
  33. package/dist/cli/assets/sounds/powerup.wav +0 -0
  34. package/dist/cli/assets/sounds/startup.wav +0 -0
  35. package/dist/cli/assets/sounds/success.wav +0 -0
  36. package/dist/cli/assets/sounds/treasure.wav +0 -0
  37. package/dist/cli/assets/sounds/win.wav +0 -0
  38. package/dist/cli/commands/interactive-commands/auth/index.d.ts +0 -12
  39. package/dist/cli/commands/interactive-commands/auth/index.d.ts.map +0 -1
  40. package/dist/cli/commands/interactive-commands/auth/index.js +0 -20
  41. package/dist/cli/commands/interactive-commands/command-parser.d.ts +0 -56
  42. package/dist/cli/commands/interactive-commands/command-parser.d.ts.map +0 -1
  43. package/dist/cli/commands/interactive-commands/command-parser.js +0 -173
  44. package/dist/cli/commands/interactive-commands/commands.d.ts +0 -52
  45. package/dist/cli/commands/interactive-commands/commands.d.ts.map +0 -1
  46. package/dist/cli/commands/interactive-commands/commands.js +0 -142
  47. package/dist/cli/commands/interactive-commands/documentation-commands.d.ts +0 -15
  48. package/dist/cli/commands/interactive-commands/documentation-commands.d.ts.map +0 -1
  49. package/dist/cli/commands/interactive-commands/documentation-commands.js +0 -39
  50. package/dist/cli/commands/interactive-commands/exit-handler.d.ts +0 -12
  51. package/dist/cli/commands/interactive-commands/exit-handler.d.ts.map +0 -1
  52. package/dist/cli/commands/interactive-commands/exit-handler.js +0 -20
  53. package/dist/cli/commands/interactive-commands/exit-stats.d.ts +0 -24
  54. package/dist/cli/commands/interactive-commands/exit-stats.d.ts.map +0 -1
  55. package/dist/cli/commands/interactive-commands/exit-stats.js +0 -17
  56. package/dist/cli/commands/interactive-commands/export/index.d.ts +0 -13
  57. package/dist/cli/commands/interactive-commands/export/index.d.ts.map +0 -1
  58. package/dist/cli/commands/interactive-commands/export/index.js +0 -21
  59. package/dist/cli/commands/interactive-commands/general-commands.d.ts +0 -22
  60. package/dist/cli/commands/interactive-commands/general-commands.d.ts.map +0 -1
  61. package/dist/cli/commands/interactive-commands/general-commands.js +0 -508
  62. package/dist/cli/commands/interactive-commands/mcp/index.d.ts +0 -13
  63. package/dist/cli/commands/interactive-commands/mcp/index.d.ts.map +0 -1
  64. package/dist/cli/commands/interactive-commands/mcp/index.js +0 -18
  65. package/dist/cli/commands/interactive-commands/model/index.d.ts +0 -13
  66. package/dist/cli/commands/interactive-commands/model/index.d.ts.map +0 -1
  67. package/dist/cli/commands/interactive-commands/model/index.js +0 -19
  68. package/dist/cli/commands/interactive-commands/plugin/index.d.ts +0 -13
  69. package/dist/cli/commands/interactive-commands/plugin/index.d.ts.map +0 -1
  70. package/dist/cli/commands/interactive-commands/plugin/index.js +0 -18
  71. package/dist/cli/commands/interactive-commands/prompt-commands.d.ts +0 -25
  72. package/dist/cli/commands/interactive-commands/prompt-commands.d.ts.map +0 -1
  73. package/dist/cli/commands/interactive-commands/prompt-commands.js +0 -284
  74. package/dist/cli/commands/interactive-commands/session/index.d.ts +0 -16
  75. package/dist/cli/commands/interactive-commands/session/index.d.ts.map +0 -1
  76. package/dist/cli/commands/interactive-commands/session/index.js +0 -15
  77. package/dist/cli/commands/interactive-commands/session/session-commands.d.ts +0 -32
  78. package/dist/cli/commands/interactive-commands/session/session-commands.d.ts.map +0 -1
  79. package/dist/cli/commands/interactive-commands/session/session-commands.js +0 -65
  80. package/dist/cli/commands/interactive-commands/system/index.d.ts +0 -13
  81. package/dist/cli/commands/interactive-commands/system/index.d.ts.map +0 -1
  82. package/dist/cli/commands/interactive-commands/system/index.js +0 -12
  83. package/dist/cli/commands/interactive-commands/system/system-commands.d.ts +0 -6
  84. package/dist/cli/commands/interactive-commands/system/system-commands.d.ts.map +0 -1
  85. package/dist/cli/commands/interactive-commands/system/system-commands.js +0 -188
  86. package/dist/cli/commands/interactive-commands/tool-commands.d.ts +0 -15
  87. package/dist/cli/commands/interactive-commands/tool-commands.d.ts.map +0 -1
  88. package/dist/cli/commands/interactive-commands/tool-commands.js +0 -24
  89. package/dist/cli/commands/interactive-commands/utils/arg-parser.d.ts +0 -57
  90. package/dist/cli/commands/interactive-commands/utils/arg-parser.d.ts.map +0 -1
  91. package/dist/cli/commands/interactive-commands/utils/arg-parser.js +0 -81
  92. package/dist/cli/commands/interactive-commands/utils/command-output.d.ts +0 -40
  93. package/dist/cli/commands/interactive-commands/utils/command-output.d.ts.map +0 -1
  94. package/dist/cli/commands/interactive-commands/utils/command-output.js +0 -56
  95. package/dist/cli/commands/interactive-commands/utils/format-output.d.ts +0 -14
  96. package/dist/cli/commands/interactive-commands/utils/format-output.d.ts.map +0 -1
  97. package/dist/cli/commands/interactive-commands/utils/format-output.js +0 -18
  98. package/dist/cli/ink-cli/InkCLIRefactored.d.ts +0 -52
  99. package/dist/cli/ink-cli/InkCLIRefactored.d.ts.map +0 -1
  100. package/dist/cli/ink-cli/InkCLIRefactored.js +0 -231
  101. package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts +0 -44
  102. package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts.map +0 -1
  103. package/dist/cli/ink-cli/components/ApprovalPrompt.js +0 -323
  104. package/dist/cli/ink-cli/components/BackgroundTasksPanel.d.ts +0 -18
  105. package/dist/cli/ink-cli/components/BackgroundTasksPanel.d.ts.map +0 -1
  106. package/dist/cli/ink-cli/components/BackgroundTasksPanel.js +0 -48
  107. package/dist/cli/ink-cli/components/CustomInput.d.ts +0 -17
  108. package/dist/cli/ink-cli/components/CustomInput.d.ts.map +0 -1
  109. package/dist/cli/ink-cli/components/CustomInput.js +0 -51
  110. package/dist/cli/ink-cli/components/CustomTextInput.d.ts +0 -16
  111. package/dist/cli/ink-cli/components/CustomTextInput.d.ts.map +0 -1
  112. package/dist/cli/ink-cli/components/CustomTextInput.js +0 -36
  113. package/dist/cli/ink-cli/components/EditableMultiLineInput.d.ts +0 -19
  114. package/dist/cli/ink-cli/components/EditableMultiLineInput.d.ts.map +0 -1
  115. package/dist/cli/ink-cli/components/EditableMultiLineInput.js +0 -120
  116. package/dist/cli/ink-cli/components/ElicitationForm.d.ts +0 -24
  117. package/dist/cli/ink-cli/components/ElicitationForm.d.ts.map +0 -1
  118. package/dist/cli/ink-cli/components/ElicitationForm.js +0 -592
  119. package/dist/cli/ink-cli/components/ErrorBoundary.d.ts +0 -20
  120. package/dist/cli/ink-cli/components/ErrorBoundary.d.ts.map +0 -1
  121. package/dist/cli/ink-cli/components/ErrorBoundary.js +0 -29
  122. package/dist/cli/ink-cli/components/Footer.d.ts +0 -22
  123. package/dist/cli/ink-cli/components/Footer.d.ts.map +0 -1
  124. package/dist/cli/ink-cli/components/Footer.js +0 -76
  125. package/dist/cli/ink-cli/components/HistorySearchBar.d.ts +0 -17
  126. package/dist/cli/ink-cli/components/HistorySearchBar.d.ts.map +0 -1
  127. package/dist/cli/ink-cli/components/HistorySearchBar.js +0 -8
  128. package/dist/cli/ink-cli/components/MultiLineInput.d.ts +0 -12
  129. package/dist/cli/ink-cli/components/MultiLineInput.d.ts.map +0 -1
  130. package/dist/cli/ink-cli/components/MultiLineInput.js +0 -27
  131. package/dist/cli/ink-cli/components/ResourceAutocomplete.d.ts +0 -26
  132. package/dist/cli/ink-cli/components/ResourceAutocomplete.d.ts.map +0 -1
  133. package/dist/cli/ink-cli/components/ResourceAutocomplete.js +0 -385
  134. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.d.ts +0 -28
  135. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.d.ts.map +0 -1
  136. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.js +0 -412
  137. package/dist/cli/ink-cli/components/StatusBar.d.ts +0 -41
  138. package/dist/cli/ink-cli/components/StatusBar.d.ts.map +0 -1
  139. package/dist/cli/ink-cli/components/StatusBar.js +0 -116
  140. package/dist/cli/ink-cli/components/TextBufferInput.d.ts +0 -52
  141. package/dist/cli/ink-cli/components/TextBufferInput.d.ts.map +0 -1
  142. package/dist/cli/ink-cli/components/TextBufferInput.js +0 -490
  143. package/dist/cli/ink-cli/components/TodoPanel.d.ts +0 -26
  144. package/dist/cli/ink-cli/components/TodoPanel.d.ts.map +0 -1
  145. package/dist/cli/ink-cli/components/TodoPanel.js +0 -62
  146. package/dist/cli/ink-cli/components/base/BaseAutocomplete.d.ts +0 -29
  147. package/dist/cli/ink-cli/components/base/BaseAutocomplete.d.ts.map +0 -1
  148. package/dist/cli/ink-cli/components/base/BaseAutocomplete.js +0 -98
  149. package/dist/cli/ink-cli/components/base/BaseSelector.d.ts +0 -37
  150. package/dist/cli/ink-cli/components/base/BaseSelector.d.ts.map +0 -1
  151. package/dist/cli/ink-cli/components/base/BaseSelector.js +0 -128
  152. package/dist/cli/ink-cli/components/base/index.d.ts +0 -6
  153. package/dist/cli/ink-cli/components/base/index.d.ts.map +0 -1
  154. package/dist/cli/ink-cli/components/base/index.js +0 -5
  155. package/dist/cli/ink-cli/components/chat/ChatView.d.ts +0 -19
  156. package/dist/cli/ink-cli/components/chat/ChatView.d.ts.map +0 -1
  157. package/dist/cli/ink-cli/components/chat/ChatView.js +0 -11
  158. package/dist/cli/ink-cli/components/chat/Footer.d.ts +0 -9
  159. package/dist/cli/ink-cli/components/chat/Footer.d.ts.map +0 -1
  160. package/dist/cli/ink-cli/components/chat/Footer.js +0 -8
  161. package/dist/cli/ink-cli/components/chat/Header.d.ts +0 -18
  162. package/dist/cli/ink-cli/components/chat/Header.d.ts.map +0 -1
  163. package/dist/cli/ink-cli/components/chat/Header.js +0 -16
  164. package/dist/cli/ink-cli/components/chat/MessageItem.d.ts +0 -21
  165. package/dist/cli/ink-cli/components/chat/MessageItem.d.ts.map +0 -1
  166. package/dist/cli/ink-cli/components/chat/MessageItem.js +0 -182
  167. package/dist/cli/ink-cli/components/chat/MessageList.d.ts +0 -16
  168. package/dist/cli/ink-cli/components/chat/MessageList.d.ts.map +0 -1
  169. package/dist/cli/ink-cli/components/chat/MessageList.js +0 -20
  170. package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.d.ts +0 -16
  171. package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.d.ts.map +0 -1
  172. package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.js +0 -27
  173. package/dist/cli/ink-cli/components/chat/ToolIcon.d.ts +0 -18
  174. package/dist/cli/ink-cli/components/chat/ToolIcon.d.ts.map +0 -1
  175. package/dist/cli/ink-cli/components/chat/ToolIcon.js +0 -36
  176. package/dist/cli/ink-cli/components/chat/index.d.ts +0 -10
  177. package/dist/cli/ink-cli/components/chat/index.d.ts.map +0 -1
  178. package/dist/cli/ink-cli/components/chat/index.js +0 -9
  179. package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.d.ts +0 -10
  180. package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.d.ts.map +0 -1
  181. package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.js +0 -6
  182. package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.d.ts +0 -10
  183. package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.d.ts.map +0 -1
  184. package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.js +0 -15
  185. package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.d.ts +0 -10
  186. package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.d.ts.map +0 -1
  187. package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.js +0 -9
  188. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.d.ts +0 -10
  189. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.d.ts.map +0 -1
  190. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.js +0 -37
  191. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.d.ts +0 -10
  192. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.d.ts.map +0 -1
  193. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.js +0 -9
  194. package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.d.ts +0 -10
  195. package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.d.ts.map +0 -1
  196. package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.js +0 -6
  197. package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.d.ts +0 -10
  198. package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.d.ts.map +0 -1
  199. package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.js +0 -29
  200. package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.d.ts +0 -45
  201. package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.d.ts.map +0 -1
  202. package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.js +0 -38
  203. package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.d.ts +0 -10
  204. package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.d.ts.map +0 -1
  205. package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.js +0 -6
  206. package/dist/cli/ink-cli/components/chat/styled-boxes/index.d.ts +0 -13
  207. package/dist/cli/ink-cli/components/chat/styled-boxes/index.d.ts.map +0 -1
  208. package/dist/cli/ink-cli/components/chat/styled-boxes/index.js +0 -12
  209. package/dist/cli/ink-cli/components/input/InputArea.d.ts +0 -46
  210. package/dist/cli/ink-cli/components/input/InputArea.d.ts.map +0 -1
  211. package/dist/cli/ink-cli/components/input/InputArea.js +0 -6
  212. package/dist/cli/ink-cli/components/input/index.d.ts +0 -5
  213. package/dist/cli/ink-cli/components/input/index.d.ts.map +0 -1
  214. package/dist/cli/ink-cli/components/input/index.js +0 -4
  215. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts +0 -27
  216. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts.map +0 -1
  217. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.js +0 -182
  218. package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts +0 -29
  219. package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts.map +0 -1
  220. package/dist/cli/ink-cli/components/modes/StaticCLI.js +0 -114
  221. package/dist/cli/ink-cli/components/modes/index.d.ts +0 -10
  222. package/dist/cli/ink-cli/components/modes/index.d.ts.map +0 -1
  223. package/dist/cli/ink-cli/components/modes/index.js +0 -9
  224. package/dist/cli/ink-cli/components/overlays/ApiKeyInput.d.ts +0 -26
  225. package/dist/cli/ink-cli/components/overlays/ApiKeyInput.d.ts.map +0 -1
  226. package/dist/cli/ink-cli/components/overlays/ApiKeyInput.js +0 -92
  227. package/dist/cli/ink-cli/components/overlays/CommandOutputOverlay.d.ts +0 -13
  228. package/dist/cli/ink-cli/components/overlays/CommandOutputOverlay.d.ts.map +0 -1
  229. package/dist/cli/ink-cli/components/overlays/CommandOutputOverlay.js +0 -60
  230. package/dist/cli/ink-cli/components/overlays/ContextStatsOverlay.d.ts +0 -26
  231. package/dist/cli/ink-cli/components/overlays/ContextStatsOverlay.d.ts.map +0 -1
  232. package/dist/cli/ink-cli/components/overlays/ContextStatsOverlay.js +0 -241
  233. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.d.ts +0 -29
  234. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.d.ts.map +0 -1
  235. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.js +0 -301
  236. package/dist/cli/ink-cli/components/overlays/ExportWizard.d.ts +0 -22
  237. package/dist/cli/ink-cli/components/overlays/ExportWizard.d.ts.map +0 -1
  238. package/dist/cli/ink-cli/components/overlays/ExportWizard.js +0 -308
  239. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts +0 -23
  240. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts.map +0 -1
  241. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.js +0 -70
  242. package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.d.ts +0 -20
  243. package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.d.ts.map +0 -1
  244. package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.js +0 -81
  245. package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.d.ts +0 -31
  246. package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.d.ts.map +0 -1
  247. package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.js +0 -297
  248. package/dist/cli/ink-cli/components/overlays/McpAddChoice.d.ts +0 -22
  249. package/dist/cli/ink-cli/components/overlays/McpAddChoice.d.ts.map +0 -1
  250. package/dist/cli/ink-cli/components/overlays/McpAddChoice.js +0 -59
  251. package/dist/cli/ink-cli/components/overlays/McpAddSelector.d.ts +0 -26
  252. package/dist/cli/ink-cli/components/overlays/McpAddSelector.d.ts.map +0 -1
  253. package/dist/cli/ink-cli/components/overlays/McpAddSelector.js +0 -73
  254. package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.d.ts +0 -21
  255. package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.d.ts.map +0 -1
  256. package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.js +0 -51
  257. package/dist/cli/ink-cli/components/overlays/McpCustomWizard.d.ts +0 -29
  258. package/dist/cli/ink-cli/components/overlays/McpCustomWizard.d.ts.map +0 -1
  259. package/dist/cli/ink-cli/components/overlays/McpCustomWizard.js +0 -215
  260. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.d.ts +0 -22
  261. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.d.ts.map +0 -1
  262. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.js +0 -80
  263. package/dist/cli/ink-cli/components/overlays/McpSelector.d.ts +0 -21
  264. package/dist/cli/ink-cli/components/overlays/McpSelector.d.ts.map +0 -1
  265. package/dist/cli/ink-cli/components/overlays/McpSelector.js +0 -52
  266. package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts +0 -28
  267. package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts.map +0 -1
  268. package/dist/cli/ink-cli/components/overlays/McpServerActions.js +0 -93
  269. package/dist/cli/ink-cli/components/overlays/McpServerList.d.ts +0 -29
  270. package/dist/cli/ink-cli/components/overlays/McpServerList.d.ts.map +0 -1
  271. package/dist/cli/ink-cli/components/overlays/McpServerList.js +0 -116
  272. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts +0 -28
  273. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts.map +0 -1
  274. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.js +0 -743
  275. package/dist/cli/ink-cli/components/overlays/PluginActions.d.ts +0 -27
  276. package/dist/cli/ink-cli/components/overlays/PluginActions.d.ts.map +0 -1
  277. package/dist/cli/ink-cli/components/overlays/PluginActions.js +0 -66
  278. package/dist/cli/ink-cli/components/overlays/PluginList.d.ts +0 -21
  279. package/dist/cli/ink-cli/components/overlays/PluginList.d.ts.map +0 -1
  280. package/dist/cli/ink-cli/components/overlays/PluginList.js +0 -70
  281. package/dist/cli/ink-cli/components/overlays/PluginManager.d.ts +0 -21
  282. package/dist/cli/ink-cli/components/overlays/PluginManager.d.ts.map +0 -1
  283. package/dist/cli/ink-cli/components/overlays/PluginManager.js +0 -63
  284. package/dist/cli/ink-cli/components/overlays/PromptAddChoice.d.ts +0 -22
  285. package/dist/cli/ink-cli/components/overlays/PromptAddChoice.d.ts.map +0 -1
  286. package/dist/cli/ink-cli/components/overlays/PromptAddChoice.js +0 -52
  287. package/dist/cli/ink-cli/components/overlays/PromptAddWizard.d.ts +0 -29
  288. package/dist/cli/ink-cli/components/overlays/PromptAddWizard.d.ts.map +0 -1
  289. package/dist/cli/ink-cli/components/overlays/PromptAddWizard.js +0 -166
  290. package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.d.ts +0 -27
  291. package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.d.ts.map +0 -1
  292. package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.js +0 -119
  293. package/dist/cli/ink-cli/components/overlays/PromptList.d.ts +0 -33
  294. package/dist/cli/ink-cli/components/overlays/PromptList.d.ts.map +0 -1
  295. package/dist/cli/ink-cli/components/overlays/PromptList.js +0 -143
  296. package/dist/cli/ink-cli/components/overlays/SearchOverlay.d.ts +0 -23
  297. package/dist/cli/ink-cli/components/overlays/SearchOverlay.d.ts.map +0 -1
  298. package/dist/cli/ink-cli/components/overlays/SearchOverlay.js +0 -189
  299. package/dist/cli/ink-cli/components/overlays/SessionRenameOverlay.d.ts +0 -21
  300. package/dist/cli/ink-cli/components/overlays/SessionRenameOverlay.d.ts.map +0 -1
  301. package/dist/cli/ink-cli/components/overlays/SessionRenameOverlay.js +0 -63
  302. package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.d.ts +0 -26
  303. package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.d.ts.map +0 -1
  304. package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.js +0 -126
  305. package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.d.ts +0 -21
  306. package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.d.ts.map +0 -1
  307. package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.js +0 -42
  308. package/dist/cli/ink-cli/components/overlays/SoundsSelector.d.ts +0 -21
  309. package/dist/cli/ink-cli/components/overlays/SoundsSelector.d.ts.map +0 -1
  310. package/dist/cli/ink-cli/components/overlays/SoundsSelector.js +0 -566
  311. package/dist/cli/ink-cli/components/overlays/StreamSelector.d.ts +0 -20
  312. package/dist/cli/ink-cli/components/overlays/StreamSelector.d.ts.map +0 -1
  313. package/dist/cli/ink-cli/components/overlays/StreamSelector.js +0 -58
  314. package/dist/cli/ink-cli/components/overlays/ToolBrowser.d.ts +0 -26
  315. package/dist/cli/ink-cli/components/overlays/ToolBrowser.d.ts.map +0 -1
  316. package/dist/cli/ink-cli/components/overlays/ToolBrowser.js +0 -697
  317. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.d.ts +0 -25
  318. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.d.ts.map +0 -1
  319. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.js +0 -604
  320. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.d.ts +0 -15
  321. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.d.ts.map +0 -1
  322. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.js +0 -14
  323. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts +0 -42
  324. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts.map +0 -1
  325. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.js +0 -547
  326. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts +0 -25
  327. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts.map +0 -1
  328. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.js +0 -29
  329. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts +0 -17
  330. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts.map +0 -1
  331. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.js +0 -11
  332. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts +0 -20
  333. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts.map +0 -1
  334. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.js +0 -10
  335. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts +0 -30
  336. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts.map +0 -1
  337. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.js +0 -13
  338. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.d.ts +0 -8
  339. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.d.ts.map +0 -1
  340. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.js +0 -7
  341. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.d.ts +0 -85
  342. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.d.ts.map +0 -1
  343. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.js +0 -38
  344. package/dist/cli/ink-cli/components/renderers/DiffRenderer.d.ts +0 -21
  345. package/dist/cli/ink-cli/components/renderers/DiffRenderer.d.ts.map +0 -1
  346. package/dist/cli/ink-cli/components/renderers/DiffRenderer.js +0 -65
  347. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts +0 -30
  348. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts.map +0 -1
  349. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.js +0 -67
  350. package/dist/cli/ink-cli/components/renderers/FileRenderer.d.ts +0 -21
  351. package/dist/cli/ink-cli/components/renderers/FileRenderer.d.ts.map +0 -1
  352. package/dist/cli/ink-cli/components/renderers/FileRenderer.js +0 -37
  353. package/dist/cli/ink-cli/components/renderers/GenericRenderer.d.ts +0 -21
  354. package/dist/cli/ink-cli/components/renderers/GenericRenderer.d.ts.map +0 -1
  355. package/dist/cli/ink-cli/components/renderers/GenericRenderer.js +0 -26
  356. package/dist/cli/ink-cli/components/renderers/SearchRenderer.d.ts +0 -20
  357. package/dist/cli/ink-cli/components/renderers/SearchRenderer.d.ts.map +0 -1
  358. package/dist/cli/ink-cli/components/renderers/SearchRenderer.js +0 -26
  359. package/dist/cli/ink-cli/components/renderers/ShellRenderer.d.ts +0 -21
  360. package/dist/cli/ink-cli/components/renderers/ShellRenderer.d.ts.map +0 -1
  361. package/dist/cli/ink-cli/components/renderers/ShellRenderer.js +0 -15
  362. package/dist/cli/ink-cli/components/renderers/diff-shared.d.ts +0 -61
  363. package/dist/cli/ink-cli/components/renderers/diff-shared.d.ts.map +0 -1
  364. package/dist/cli/ink-cli/components/renderers/diff-shared.js +0 -158
  365. package/dist/cli/ink-cli/components/renderers/index.d.ts +0 -28
  366. package/dist/cli/ink-cli/components/renderers/index.d.ts.map +0 -1
  367. package/dist/cli/ink-cli/components/renderers/index.js +0 -36
  368. package/dist/cli/ink-cli/components/shared/FocusOverlayFrame.d.ts +0 -7
  369. package/dist/cli/ink-cli/components/shared/FocusOverlayFrame.d.ts.map +0 -1
  370. package/dist/cli/ink-cli/components/shared/FocusOverlayFrame.js +0 -8
  371. package/dist/cli/ink-cli/components/shared/HintBar.d.ts +0 -6
  372. package/dist/cli/ink-cli/components/shared/HintBar.d.ts.map +0 -1
  373. package/dist/cli/ink-cli/components/shared/HintBar.js +0 -6
  374. package/dist/cli/ink-cli/components/shared/MarkdownText.d.ts +0 -38
  375. package/dist/cli/ink-cli/components/shared/MarkdownText.d.ts.map +0 -1
  376. package/dist/cli/ink-cli/components/shared/MarkdownText.js +0 -389
  377. package/dist/cli/ink-cli/components/shared/VirtualizedList.d.ts +0 -44
  378. package/dist/cli/ink-cli/components/shared/VirtualizedList.d.ts.map +0 -1
  379. package/dist/cli/ink-cli/components/shared/VirtualizedList.js +0 -300
  380. package/dist/cli/ink-cli/components/shared/text-buffer.d.ts +0 -185
  381. package/dist/cli/ink-cli/components/shared/text-buffer.d.ts.map +0 -1
  382. package/dist/cli/ink-cli/components/shared/text-buffer.js +0 -1338
  383. package/dist/cli/ink-cli/constants/processingPhrases.d.ts +0 -10
  384. package/dist/cli/ink-cli/constants/processingPhrases.d.ts.map +0 -1
  385. package/dist/cli/ink-cli/constants/processingPhrases.js +0 -92
  386. package/dist/cli/ink-cli/constants/spinnerFrames.d.ts +0 -2
  387. package/dist/cli/ink-cli/constants/spinnerFrames.d.ts.map +0 -1
  388. package/dist/cli/ink-cli/constants/spinnerFrames.js +0 -1
  389. package/dist/cli/ink-cli/constants/tips.d.ts +0 -15
  390. package/dist/cli/ink-cli/constants/tips.d.ts.map +0 -1
  391. package/dist/cli/ink-cli/constants/tips.js +0 -58
  392. package/dist/cli/ink-cli/containers/InputContainer.d.ts +0 -62
  393. package/dist/cli/ink-cli/containers/InputContainer.d.ts.map +0 -1
  394. package/dist/cli/ink-cli/containers/InputContainer.js +0 -643
  395. package/dist/cli/ink-cli/containers/OverlayContainer.d.ts +0 -42
  396. package/dist/cli/ink-cli/containers/OverlayContainer.d.ts.map +0 -1
  397. package/dist/cli/ink-cli/containers/OverlayContainer.js +0 -1840
  398. package/dist/cli/ink-cli/containers/index.d.ts +0 -6
  399. package/dist/cli/ink-cli/containers/index.d.ts.map +0 -1
  400. package/dist/cli/ink-cli/containers/index.js +0 -5
  401. package/dist/cli/ink-cli/contexts/KeypressContext.d.ts +0 -36
  402. package/dist/cli/ink-cli/contexts/KeypressContext.d.ts.map +0 -1
  403. package/dist/cli/ink-cli/contexts/KeypressContext.js +0 -461
  404. package/dist/cli/ink-cli/contexts/MouseContext.d.ts +0 -27
  405. package/dist/cli/ink-cli/contexts/MouseContext.d.ts.map +0 -1
  406. package/dist/cli/ink-cli/contexts/MouseContext.js +0 -102
  407. package/dist/cli/ink-cli/contexts/ScrollProvider.d.ts +0 -33
  408. package/dist/cli/ink-cli/contexts/ScrollProvider.d.ts.map +0 -1
  409. package/dist/cli/ink-cli/contexts/ScrollProvider.js +0 -170
  410. package/dist/cli/ink-cli/contexts/SoundContext.d.ts +0 -23
  411. package/dist/cli/ink-cli/contexts/SoundContext.d.ts.map +0 -1
  412. package/dist/cli/ink-cli/contexts/SoundContext.js +0 -22
  413. package/dist/cli/ink-cli/contexts/index.d.ts +0 -8
  414. package/dist/cli/ink-cli/contexts/index.d.ts.map +0 -1
  415. package/dist/cli/ink-cli/contexts/index.js +0 -7
  416. package/dist/cli/ink-cli/hooks/index.d.ts +0 -12
  417. package/dist/cli/ink-cli/hooks/index.d.ts.map +0 -1
  418. package/dist/cli/ink-cli/hooks/index.js +0 -14
  419. package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts +0 -49
  420. package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts.map +0 -1
  421. package/dist/cli/ink-cli/hooks/useAgentEvents.js +0 -369
  422. package/dist/cli/ink-cli/hooks/useAnimationTick.d.ts +0 -11
  423. package/dist/cli/ink-cli/hooks/useAnimationTick.d.ts.map +0 -1
  424. package/dist/cli/ink-cli/hooks/useAnimationTick.js +0 -54
  425. package/dist/cli/ink-cli/hooks/useBatchedScroll.d.ts +0 -14
  426. package/dist/cli/ink-cli/hooks/useBatchedScroll.d.ts.map +0 -1
  427. package/dist/cli/ink-cli/hooks/useBatchedScroll.js +0 -25
  428. package/dist/cli/ink-cli/hooks/useCLIState.d.ts +0 -52
  429. package/dist/cli/ink-cli/hooks/useCLIState.d.ts.map +0 -1
  430. package/dist/cli/ink-cli/hooks/useCLIState.js +0 -224
  431. package/dist/cli/ink-cli/hooks/useElapsedTime.d.ts +0 -24
  432. package/dist/cli/ink-cli/hooks/useElapsedTime.d.ts.map +0 -1
  433. package/dist/cli/ink-cli/hooks/useElapsedTime.js +0 -69
  434. package/dist/cli/ink-cli/hooks/useGitBranch.d.ts +0 -13
  435. package/dist/cli/ink-cli/hooks/useGitBranch.d.ts.map +0 -1
  436. package/dist/cli/ink-cli/hooks/useGitBranch.js +0 -35
  437. package/dist/cli/ink-cli/hooks/useHistorySearch.d.ts +0 -61
  438. package/dist/cli/ink-cli/hooks/useHistorySearch.d.ts.map +0 -1
  439. package/dist/cli/ink-cli/hooks/useHistorySearch.js +0 -210
  440. package/dist/cli/ink-cli/hooks/useInputHistory.d.ts +0 -18
  441. package/dist/cli/ink-cli/hooks/useInputHistory.d.ts.map +0 -1
  442. package/dist/cli/ink-cli/hooks/useInputHistory.js +0 -26
  443. package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts +0 -136
  444. package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts.map +0 -1
  445. package/dist/cli/ink-cli/hooks/useInputOrchestrator.js +0 -715
  446. package/dist/cli/ink-cli/hooks/useKeyboardShortcuts.d.ts +0 -21
  447. package/dist/cli/ink-cli/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  448. package/dist/cli/ink-cli/hooks/useKeyboardShortcuts.js +0 -80
  449. package/dist/cli/ink-cli/hooks/useKeypress.d.ts +0 -18
  450. package/dist/cli/ink-cli/hooks/useKeypress.d.ts.map +0 -1
  451. package/dist/cli/ink-cli/hooks/useKeypress.js +0 -26
  452. package/dist/cli/ink-cli/hooks/usePhraseCycler.d.ts +0 -30
  453. package/dist/cli/ink-cli/hooks/usePhraseCycler.d.ts.map +0 -1
  454. package/dist/cli/ink-cli/hooks/usePhraseCycler.js +0 -68
  455. package/dist/cli/ink-cli/hooks/useStreaming.d.ts +0 -19
  456. package/dist/cli/ink-cli/hooks/useStreaming.d.ts.map +0 -1
  457. package/dist/cli/ink-cli/hooks/useStreaming.js +0 -26
  458. package/dist/cli/ink-cli/hooks/useTerminalSize.d.ts +0 -14
  459. package/dist/cli/ink-cli/hooks/useTerminalSize.d.ts.map +0 -1
  460. package/dist/cli/ink-cli/hooks/useTerminalSize.js +0 -31
  461. package/dist/cli/ink-cli/hooks/useTokenCounter.d.ts +0 -46
  462. package/dist/cli/ink-cli/hooks/useTokenCounter.d.ts.map +0 -1
  463. package/dist/cli/ink-cli/hooks/useTokenCounter.js +0 -122
  464. package/dist/cli/ink-cli/services/CommandService.d.ts +0 -58
  465. package/dist/cli/ink-cli/services/CommandService.d.ts.map +0 -1
  466. package/dist/cli/ink-cli/services/CommandService.js +0 -64
  467. package/dist/cli/ink-cli/services/InputService.d.ts +0 -40
  468. package/dist/cli/ink-cli/services/InputService.d.ts.map +0 -1
  469. package/dist/cli/ink-cli/services/InputService.js +0 -87
  470. package/dist/cli/ink-cli/services/MessageService.d.ts +0 -35
  471. package/dist/cli/ink-cli/services/MessageService.d.ts.map +0 -1
  472. package/dist/cli/ink-cli/services/MessageService.js +0 -49
  473. package/dist/cli/ink-cli/services/index.d.ts +0 -8
  474. package/dist/cli/ink-cli/services/index.d.ts.map +0 -1
  475. package/dist/cli/ink-cli/services/index.js +0 -7
  476. package/dist/cli/ink-cli/services/processStream.d.ts +0 -75
  477. package/dist/cli/ink-cli/services/processStream.d.ts.map +0 -1
  478. package/dist/cli/ink-cli/services/processStream.js +0 -951
  479. package/dist/cli/ink-cli/state/actions.d.ts +0 -124
  480. package/dist/cli/ink-cli/state/actions.d.ts.map +0 -1
  481. package/dist/cli/ink-cli/state/actions.js +0 -8
  482. package/dist/cli/ink-cli/state/index.d.ts +0 -10
  483. package/dist/cli/ink-cli/state/index.d.ts.map +0 -1
  484. package/dist/cli/ink-cli/state/index.js +0 -8
  485. package/dist/cli/ink-cli/state/initialState.d.ts +0 -12
  486. package/dist/cli/ink-cli/state/initialState.d.ts.map +0 -1
  487. package/dist/cli/ink-cli/state/initialState.js +0 -58
  488. package/dist/cli/ink-cli/state/reducer.d.ts +0 -15
  489. package/dist/cli/ink-cli/state/reducer.d.ts.map +0 -1
  490. package/dist/cli/ink-cli/state/reducer.js +0 -341
  491. package/dist/cli/ink-cli/state/streaming-state.d.ts +0 -27
  492. package/dist/cli/ink-cli/state/streaming-state.d.ts.map +0 -1
  493. package/dist/cli/ink-cli/state/streaming-state.js +0 -39
  494. package/dist/cli/ink-cli/state/types.d.ts +0 -378
  495. package/dist/cli/ink-cli/state/types.d.ts.map +0 -1
  496. package/dist/cli/ink-cli/state/types.js +0 -5
  497. package/dist/cli/ink-cli/utils/bracketedPaste.d.ts +0 -22
  498. package/dist/cli/ink-cli/utils/bracketedPaste.d.ts.map +0 -1
  499. package/dist/cli/ink-cli/utils/bracketedPaste.js +0 -27
  500. package/dist/cli/ink-cli/utils/clipboardUtils.d.ts +0 -49
  501. package/dist/cli/ink-cli/utils/clipboardUtils.d.ts.map +0 -1
  502. package/dist/cli/ink-cli/utils/clipboardUtils.js +0 -356
  503. package/dist/cli/ink-cli/utils/commandOverlays.d.ts +0 -33
  504. package/dist/cli/ink-cli/utils/commandOverlays.d.ts.map +0 -1
  505. package/dist/cli/ink-cli/utils/commandOverlays.js +0 -85
  506. package/dist/cli/ink-cli/utils/debugLog.d.ts +0 -38
  507. package/dist/cli/ink-cli/utils/debugLog.d.ts.map +0 -1
  508. package/dist/cli/ink-cli/utils/debugLog.js +0 -66
  509. package/dist/cli/ink-cli/utils/elicitationSchema.d.ts +0 -11
  510. package/dist/cli/ink-cli/utils/elicitationSchema.d.ts.map +0 -1
  511. package/dist/cli/ink-cli/utils/elicitationSchema.js +0 -80
  512. package/dist/cli/ink-cli/utils/idGenerator.d.ts +0 -10
  513. package/dist/cli/ink-cli/utils/idGenerator.d.ts.map +0 -1
  514. package/dist/cli/ink-cli/utils/idGenerator.js +0 -12
  515. package/dist/cli/ink-cli/utils/index.d.ts +0 -9
  516. package/dist/cli/ink-cli/utils/index.d.ts.map +0 -1
  517. package/dist/cli/ink-cli/utils/index.js +0 -13
  518. package/dist/cli/ink-cli/utils/input.d.ts +0 -25
  519. package/dist/cli/ink-cli/utils/input.d.ts.map +0 -1
  520. package/dist/cli/ink-cli/utils/input.js +0 -56
  521. package/dist/cli/ink-cli/utils/inputParsing.d.ts +0 -31
  522. package/dist/cli/ink-cli/utils/inputParsing.d.ts.map +0 -1
  523. package/dist/cli/ink-cli/utils/inputParsing.js +0 -70
  524. package/dist/cli/ink-cli/utils/llm-provider-display.d.ts +0 -3
  525. package/dist/cli/ink-cli/utils/llm-provider-display.d.ts.map +0 -1
  526. package/dist/cli/ink-cli/utils/llm-provider-display.js +0 -22
  527. package/dist/cli/ink-cli/utils/messageFormatting.d.ts +0 -125
  528. package/dist/cli/ink-cli/utils/messageFormatting.d.ts.map +0 -1
  529. package/dist/cli/ink-cli/utils/messageFormatting.js +0 -485
  530. package/dist/cli/ink-cli/utils/mouse.d.ts +0 -61
  531. package/dist/cli/ink-cli/utils/mouse.d.ts.map +0 -1
  532. package/dist/cli/ink-cli/utils/mouse.js +0 -209
  533. package/dist/cli/ink-cli/utils/overlayPresentation.d.ts +0 -19
  534. package/dist/cli/ink-cli/utils/overlayPresentation.d.ts.map +0 -1
  535. package/dist/cli/ink-cli/utils/overlayPresentation.js +0 -33
  536. package/dist/cli/ink-cli/utils/overlaySizing.d.ts +0 -19
  537. package/dist/cli/ink-cli/utils/overlaySizing.d.ts.map +0 -1
  538. package/dist/cli/ink-cli/utils/overlaySizing.js +0 -11
  539. package/dist/cli/ink-cli/utils/soundNotification.d.ts +0 -77
  540. package/dist/cli/ink-cli/utils/soundNotification.d.ts.map +0 -1
  541. package/dist/cli/ink-cli/utils/soundNotification.js +0 -226
  542. package/dist/cli/ink-cli/utils/streamSplitter.d.ts +0 -44
  543. package/dist/cli/ink-cli/utils/streamSplitter.d.ts.map +0 -1
  544. package/dist/cli/ink-cli/utils/streamSplitter.js +0 -154
  545. package/dist/cli/ink-cli/utils/textUtils.d.ts +0 -63
  546. package/dist/cli/ink-cli/utils/textUtils.d.ts.map +0 -1
  547. package/dist/cli/ink-cli/utils/textUtils.js +0 -248
  548. package/dist/cli/ink-cli/utils/toolUtils.d.ts +0 -20
  549. package/dist/cli/ink-cli/utils/toolUtils.d.ts.map +0 -1
  550. package/dist/cli/ink-cli/utils/toolUtils.js +0 -25
  551. package/dist/webui/assets/index-C9JXwpvo.css +0 -1
  552. package/dist/webui/assets/index-CKhumsZA.js +0 -2059
@@ -1,743 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /**
3
- * ModelSelector Component (Refactored)
4
- * Features:
5
- * - Search filtering
6
- * - Custom models support (add/edit/delete via arrow navigation)
7
- */
8
- import { useState, useEffect, forwardRef, useRef, useImperativeHandle, useMemo, useCallback, } from 'react';
9
- import { Box, Text } from 'ink';
10
- import { useTerminalSize } from '../../hooks/useTerminalSize.js';
11
- import { listOllamaModels, DEFAULT_OLLAMA_URL, getLocalModelById, isReasoningCapableModel, } from '@dexto/core';
12
- import { loadCustomModels, deleteCustomModel, getAllInstalledModels, loadGlobalPreferences, isDextoAuthEnabled, } from '@dexto/agent-management';
13
- import { getLLMProviderDisplayName } from '../../utils/llm-provider-display.js';
14
- import { getMaxVisibleItemsForTerminalRows } from '../../utils/overlaySizing.js';
15
- import { HintBar } from '../shared/HintBar.js';
16
- function isAddCustomOption(item) {
17
- return 'type' in item && item.type === 'add-custom';
18
- }
19
- function asModelOption(item) {
20
- return item;
21
- }
22
- function getRowPrefix({ isSelected, isDefault, isCurrent, isCustom, }) {
23
- return `${isSelected ? '›' : ' '} ${isDefault ? '✓' : ' '} ${isCurrent ? '●' : ' '} ${isCustom ? '★' : ' '}`;
24
- }
25
- function computeNextSelection(currentIndex, itemsLength, viewportItems) {
26
- const nextIndex = currentIndex;
27
- let nextOffset = 0;
28
- const modelsLength = Math.max(0, itemsLength - 1);
29
- if (nextIndex > 0) {
30
- const modelIndex = nextIndex - 1;
31
- if (modelIndex < nextOffset) {
32
- nextOffset = modelIndex;
33
- }
34
- else if (modelIndex >= nextOffset + viewportItems) {
35
- nextOffset = Math.max(0, modelIndex - viewportItems + 1);
36
- }
37
- }
38
- const maxOffset = Math.max(0, modelsLength - viewportItems);
39
- nextOffset = Math.min(maxOffset, Math.max(0, nextOffset));
40
- return { index: nextIndex, offset: nextOffset };
41
- }
42
- // Reasoning effort options - defined at module scope to avoid recreation on each render
43
- const REASONING_EFFORT_OPTIONS = [
44
- {
45
- value: 'auto',
46
- label: 'Auto',
47
- description: 'Let the model decide (recommended for most tasks)',
48
- },
49
- { value: 'none', label: 'None', description: 'No reasoning, fastest responses' },
50
- { value: 'minimal', label: 'Minimal', description: 'Barely any reasoning, very fast' },
51
- { value: 'low', label: 'Low', description: 'Light reasoning, fast responses' },
52
- {
53
- value: 'medium',
54
- label: 'Medium',
55
- description: 'Balanced reasoning (OpenAI recommended)',
56
- },
57
- { value: 'high', label: 'High', description: 'Thorough reasoning for complex tasks' },
58
- { value: 'xhigh', label: 'Extra High', description: 'Maximum quality, slower/costlier' },
59
- ];
60
- /**
61
- * Model selector with search and custom model support
62
- */
63
- const ModelSelector = forwardRef(function ModelSelector({ isVisible, onSelectModel, onSetDefaultModel, onClose, onAddCustomModel, onEditCustomModel, agent, }, ref) {
64
- const { rows: terminalRows } = useTerminalSize();
65
- const maxVisibleItems = useMemo(() => {
66
- return getMaxVisibleItemsForTerminalRows({
67
- rows: terminalRows,
68
- hardCap: 8,
69
- reservedRows: 14,
70
- });
71
- }, [terminalRows]);
72
- const [models, setModels] = useState([]);
73
- const [customModels, setCustomModels] = useState([]);
74
- const [isLoading, setIsLoading] = useState(false);
75
- const [selection, setSelection] = useState({ index: 0, offset: 0 });
76
- const [searchQuery, setSearchQuery] = useState('');
77
- const [customModelAction, setCustomModelAction] = useState(null);
78
- const [pendingDeleteConfirm, setPendingDeleteConfirm] = useState(false);
79
- const selectedIndexRef = useRef(0);
80
- const deleteTimeoutRef = useRef(null);
81
- const maxVisibleItemsRef = useRef(maxVisibleItems);
82
- // Reasoning effort sub-step state
83
- const [pendingReasoningModel, setPendingReasoningModel] = useState(null);
84
- const [reasoningEffortIndex, setReasoningEffortIndex] = useState(0); // Default to 'Auto' (index 0)
85
- const [isSettingDefault, setIsSettingDefault] = useState(false); // Track if setting as default vs normal selection
86
- const [refreshVersion, setRefreshVersion] = useState(0);
87
- // Keep ref in sync
88
- selectedIndexRef.current = selection.index;
89
- maxVisibleItemsRef.current = maxVisibleItems;
90
- const modelsViewportItems = Math.max(1, maxVisibleItems - 1);
91
- // Clear delete confirmation timeout on unmount
92
- useEffect(() => {
93
- return () => {
94
- if (deleteTimeoutRef.current) {
95
- clearTimeout(deleteTimeoutRef.current);
96
- }
97
- };
98
- }, []);
99
- // Fetch models from agent and load custom models
100
- useEffect(() => {
101
- if (!isVisible)
102
- return;
103
- let cancelled = false;
104
- setIsLoading(true);
105
- setModels([]);
106
- setCustomModels([]);
107
- setSearchQuery('');
108
- setSelection({ index: 0, offset: 0 });
109
- setCustomModelAction(null);
110
- setPendingDeleteConfirm(false);
111
- setPendingReasoningModel(null);
112
- setIsSettingDefault(false);
113
- setReasoningEffortIndex(0); // Default to 'Auto'
114
- if (deleteTimeoutRef.current) {
115
- clearTimeout(deleteTimeoutRef.current);
116
- deleteTimeoutRef.current = null;
117
- }
118
- const fetchModels = async () => {
119
- try {
120
- const [allModels, providers, currentConfig, loadedCustomModels, preferences] = await Promise.all([
121
- Promise.resolve(agent.getSupportedModels()),
122
- Promise.resolve(agent.getSupportedProviders()),
123
- Promise.resolve(agent.getCurrentLLMConfig()),
124
- loadCustomModels(),
125
- loadGlobalPreferences().catch(() => null),
126
- ]);
127
- const modelList = [];
128
- const defaultProvider = preferences?.llm.provider;
129
- const defaultModel = preferences?.llm.model;
130
- const defaultBaseURL = preferences?.llm.baseURL;
131
- const defaultReasoningEffort = preferences?.llm.reasoningEffort;
132
- // Fetch dynamic models for local providers
133
- let ollamaModels = [];
134
- let localModels = [];
135
- try {
136
- ollamaModels = await listOllamaModels(DEFAULT_OLLAMA_URL);
137
- }
138
- catch (error) {
139
- // Ollama not available, skip
140
- agent.logger.debug('Ollama not available for model listing');
141
- }
142
- try {
143
- localModels = await getAllInstalledModels();
144
- }
145
- catch (error) {
146
- // Local models not available, skip
147
- agent.logger.debug('Local models not available for listing');
148
- }
149
- // Add custom models first
150
- for (const custom of loadedCustomModels) {
151
- // Use provider from custom model, default to openai-compatible for legacy models
152
- const customProvider = (custom.provider ?? 'openai-compatible');
153
- const modelOption = {
154
- provider: customProvider,
155
- name: custom.name,
156
- displayName: custom.displayName || custom.name,
157
- maxInputTokens: custom.maxInputTokens ?? 128000,
158
- isDefault: customProvider === defaultProvider && custom.name === defaultModel,
159
- isCurrent: currentConfig.provider === customProvider &&
160
- currentConfig.model === custom.name,
161
- isCustom: true,
162
- };
163
- if (custom.baseURL) {
164
- modelOption.baseURL = custom.baseURL;
165
- }
166
- if (custom.reasoningEffort) {
167
- modelOption.reasoningEffort = custom.reasoningEffort;
168
- }
169
- modelList.push(modelOption);
170
- }
171
- // Add registry models
172
- for (const provider of providers) {
173
- // Skip custom-only providers that don't have a static model list
174
- // These are only accessible via the "Add custom model" wizard
175
- if (provider === 'openai-compatible' ||
176
- provider === 'openrouter' ||
177
- provider === 'litellm' ||
178
- provider === 'glama' ||
179
- provider === 'bedrock')
180
- continue;
181
- // Skip ollama, local, and vertex - they'll be added dynamically below
182
- if (provider === 'ollama' || provider === 'local' || provider === 'vertex') {
183
- continue;
184
- }
185
- // Skip dexto-nova provider when feature is not enabled
186
- if (provider === 'dexto-nova' && !isDextoAuthEnabled()) {
187
- continue;
188
- }
189
- const providerModels = allModels[provider];
190
- for (const model of providerModels) {
191
- // For dexto-nova provider, models have originalProvider field
192
- // showing which provider the model originally came from
193
- const originalProvider = 'originalProvider' in model ? model.originalProvider : undefined;
194
- modelList.push({
195
- provider,
196
- name: model.name,
197
- displayName: model.displayName,
198
- maxInputTokens: model.maxInputTokens,
199
- isDefault: provider === defaultProvider && model.name === defaultModel,
200
- isCurrent: provider === currentConfig.provider &&
201
- model.name === currentConfig.model,
202
- isCustom: false,
203
- ...(defaultReasoningEffort &&
204
- provider === defaultProvider &&
205
- model.name === defaultModel
206
- ? { reasoningEffort: defaultReasoningEffort }
207
- : {}),
208
- ...(defaultBaseURL &&
209
- provider === defaultProvider &&
210
- model.name === defaultModel
211
- ? { baseURL: defaultBaseURL }
212
- : {}),
213
- // Store original provider for display purposes
214
- ...(originalProvider && { originalProvider }),
215
- });
216
- }
217
- }
218
- // Add Ollama models dynamically
219
- for (const ollamaModel of ollamaModels) {
220
- modelList.push({
221
- provider: 'ollama',
222
- name: ollamaModel.name,
223
- displayName: ollamaModel.name,
224
- maxInputTokens: 128000, // Default, actual varies by model
225
- isDefault: defaultProvider === 'ollama' && defaultModel === ollamaModel.name,
226
- isCurrent: currentConfig.provider === 'ollama' &&
227
- currentConfig.model === ollamaModel.name,
228
- isCustom: false,
229
- });
230
- }
231
- // Add local models dynamically
232
- for (const localModel of localModels) {
233
- // Get display name from registry if available
234
- const modelInfo = getLocalModelById(localModel.id);
235
- const displayName = modelInfo?.name || localModel.id;
236
- const maxInputTokens = modelInfo?.contextLength || 128000;
237
- modelList.push({
238
- provider: 'local',
239
- name: localModel.id,
240
- displayName,
241
- maxInputTokens,
242
- isDefault: defaultProvider === 'local' && defaultModel === localModel.id,
243
- isCurrent: currentConfig.provider === 'local' &&
244
- currentConfig.model === localModel.id,
245
- isCustom: false,
246
- });
247
- }
248
- // Add Vertex AI models from registry
249
- const vertexModels = allModels['vertex'];
250
- if (vertexModels) {
251
- for (const model of vertexModels) {
252
- modelList.push({
253
- provider: 'vertex',
254
- name: model.name,
255
- displayName: model.displayName,
256
- maxInputTokens: model.maxInputTokens,
257
- isDefault: defaultProvider === 'vertex' && defaultModel === model.name,
258
- isCurrent: currentConfig.provider === 'vertex' &&
259
- currentConfig.model === model.name,
260
- isCustom: false,
261
- ...(defaultReasoningEffort &&
262
- defaultProvider === 'vertex' &&
263
- defaultModel === model.name
264
- ? { reasoningEffort: defaultReasoningEffort }
265
- : {}),
266
- });
267
- }
268
- }
269
- if (!cancelled) {
270
- setModels(modelList);
271
- setCustomModels(loadedCustomModels);
272
- setIsLoading(false);
273
- // Set initial selection to current model (offset by 1 for "Add custom" option)
274
- const currentIndex = modelList.findIndex((m) => m.isCurrent);
275
- if (currentIndex >= 0) {
276
- const nextIndex = currentIndex + 1; // +1 for "Add custom" at top
277
- const nextMaxVisibleItems = maxVisibleItemsRef.current;
278
- const nextModelsViewportItems = Math.max(1, nextMaxVisibleItems - 1);
279
- const maxOffset = Math.max(0, modelList.length - nextModelsViewportItems);
280
- const nextOffset = Math.min(maxOffset, Math.max(0, currentIndex - nextModelsViewportItems + 1));
281
- selectedIndexRef.current = nextIndex;
282
- setSelection({ index: nextIndex, offset: nextOffset });
283
- }
284
- }
285
- }
286
- catch (error) {
287
- if (!cancelled) {
288
- agent.logger.error(`Failed to fetch models: ${error instanceof Error ? error.message : 'Unknown error'}`);
289
- setModels([]);
290
- setIsLoading(false);
291
- }
292
- }
293
- };
294
- void fetchModels();
295
- return () => {
296
- cancelled = true;
297
- };
298
- }, [isVisible, agent, refreshVersion]);
299
- // Filter models based on search query
300
- const filteredItems = useMemo(() => {
301
- const addCustomOption = { type: 'add-custom' };
302
- if (!searchQuery.trim()) {
303
- return [addCustomOption, ...models];
304
- }
305
- const query = searchQuery.toLowerCase().replace(/[\s-]+/g, '');
306
- const filtered = models.filter((model) => {
307
- const name = model.name.toLowerCase().replace(/[\s-]+/g, '');
308
- const displayName = (model.displayName || '').toLowerCase().replace(/[\s-]+/g, '');
309
- const provider = model.provider.toLowerCase().replace(/[\s-]+/g, '');
310
- return name.includes(query) || displayName.includes(query) || provider.includes(query);
311
- });
312
- // Always show "Add custom" when searching (user might want to add what they're searching for)
313
- return [addCustomOption, ...filtered];
314
- }, [models, searchQuery]);
315
- // Keep selection valid and visible when filtering or terminal height changes.
316
- useEffect(() => {
317
- setSelection((prev) => {
318
- const maxIndex = Math.max(0, filteredItems.length - 1);
319
- const nextIndex = Math.min(prev.index, maxIndex);
320
- let nextOffset = prev.offset;
321
- const nextModelsLength = Math.max(0, filteredItems.length - 1);
322
- if (nextIndex > 0) {
323
- const modelIndex = nextIndex - 1;
324
- if (modelIndex < nextOffset) {
325
- nextOffset = modelIndex;
326
- }
327
- else if (modelIndex >= nextOffset + modelsViewportItems) {
328
- nextOffset = Math.max(0, modelIndex - modelsViewportItems + 1);
329
- }
330
- }
331
- const maxOffset = Math.max(0, nextModelsLength - modelsViewportItems);
332
- nextOffset = Math.min(maxOffset, Math.max(0, nextOffset));
333
- if (nextIndex === prev.index && nextOffset === prev.offset) {
334
- return prev;
335
- }
336
- selectedIndexRef.current = nextIndex;
337
- return { index: nextIndex, offset: nextOffset };
338
- });
339
- }, [filteredItems.length, modelsViewportItems]);
340
- // Handle delete custom model
341
- const handleDeleteCustomModel = useCallback(async (model) => {
342
- if (!model.isCustom)
343
- return;
344
- try {
345
- await deleteCustomModel(model.name);
346
- // Refresh the list
347
- const updated = await loadCustomModels();
348
- setCustomModels(updated);
349
- // Update models list
350
- setModels((prev) => prev.filter((m) => !(m.isCustom && m.name === model.name)));
351
- }
352
- catch (error) {
353
- agent.logger.error(`Failed to delete custom model: ${error instanceof Error ? error.message : 'Unknown error'}`);
354
- }
355
- }, [agent]);
356
- // Helper to clear action state
357
- const clearActionState = () => {
358
- setCustomModelAction(null);
359
- setPendingDeleteConfirm(false);
360
- if (deleteTimeoutRef.current) {
361
- clearTimeout(deleteTimeoutRef.current);
362
- deleteTimeoutRef.current = null;
363
- }
364
- };
365
- // Expose handleInput method via ref
366
- useImperativeHandle(ref, () => ({
367
- handleInput: (input, key) => {
368
- if (!isVisible)
369
- return false;
370
- // While loading, allow closing but ignore all other input.
371
- if (isLoading) {
372
- if (key.escape) {
373
- onClose();
374
- }
375
- return true;
376
- }
377
- // Handle reasoning effort sub-step
378
- if (pendingReasoningModel) {
379
- if (key.escape) {
380
- // Go back to model selection
381
- setPendingReasoningModel(null);
382
- setIsSettingDefault(false);
383
- return true;
384
- }
385
- if (key.upArrow) {
386
- setReasoningEffortIndex((prev) => prev > 0 ? prev - 1 : REASONING_EFFORT_OPTIONS.length - 1);
387
- return true;
388
- }
389
- if (key.downArrow) {
390
- setReasoningEffortIndex((prev) => prev < REASONING_EFFORT_OPTIONS.length - 1 ? prev + 1 : 0);
391
- return true;
392
- }
393
- if (key.return) {
394
- const selectedOption = REASONING_EFFORT_OPTIONS[reasoningEffortIndex];
395
- const reasoningEffort = selectedOption?.value === 'auto' ? undefined : selectedOption?.value;
396
- if (isSettingDefault) {
397
- // Setting as default model
398
- clearActionState();
399
- void (async () => {
400
- await onSetDefaultModel(pendingReasoningModel.provider, pendingReasoningModel.name, pendingReasoningModel.displayName, pendingReasoningModel.baseURL, reasoningEffort);
401
- setRefreshVersion((prev) => prev + 1);
402
- onClose(); // Close overlay after setting default
403
- })();
404
- }
405
- else {
406
- // Normal model selection
407
- onSelectModel(pendingReasoningModel.provider, pendingReasoningModel.name, pendingReasoningModel.displayName, pendingReasoningModel.baseURL, reasoningEffort);
408
- }
409
- setPendingReasoningModel(null);
410
- setIsSettingDefault(false);
411
- return true;
412
- }
413
- return true; // Consume all input in reasoning effort mode
414
- }
415
- // Escape always works
416
- if (key.escape) {
417
- // If in action mode, just clear it first
418
- if (customModelAction) {
419
- clearActionState();
420
- return true;
421
- }
422
- onClose();
423
- return true;
424
- }
425
- const itemsLength = filteredItems.length;
426
- const currentItem = filteredItems[selectedIndexRef.current];
427
- const isCustomActionItem = currentItem && !isAddCustomOption(currentItem) && currentItem.isCustom;
428
- const isSelectableItem = currentItem && !isAddCustomOption(currentItem);
429
- const isOnActionItem = isCustomActionItem || isSelectableItem;
430
- // Right arrow - enter/advance action mode for custom or selectable models
431
- if (key.rightArrow) {
432
- if (!isOnActionItem)
433
- return false;
434
- if (customModelAction === null) {
435
- if (isCustomActionItem) {
436
- setCustomModelAction('edit');
437
- }
438
- else {
439
- setCustomModelAction('default');
440
- }
441
- return true;
442
- }
443
- if (customModelAction === 'edit') {
444
- setCustomModelAction('default');
445
- return true;
446
- }
447
- if (customModelAction === 'default') {
448
- if (isCustomActionItem) {
449
- setCustomModelAction('delete');
450
- setPendingDeleteConfirm(false);
451
- return true;
452
- }
453
- return true;
454
- }
455
- if (customModelAction === 'delete') {
456
- // Use Enter for delete confirmation/execution to avoid accidental deletes.
457
- return true;
458
- }
459
- }
460
- // Left arrow - go back in action mode
461
- if (key.leftArrow) {
462
- if (customModelAction === 'delete') {
463
- setCustomModelAction('default');
464
- setPendingDeleteConfirm(false);
465
- if (deleteTimeoutRef.current) {
466
- clearTimeout(deleteTimeoutRef.current);
467
- deleteTimeoutRef.current = null;
468
- }
469
- return true;
470
- }
471
- if (customModelAction === 'default') {
472
- if (isCustomActionItem) {
473
- setCustomModelAction('edit');
474
- }
475
- else {
476
- setCustomModelAction(null);
477
- }
478
- return true;
479
- }
480
- if (customModelAction === 'edit') {
481
- setCustomModelAction(null);
482
- return true;
483
- }
484
- return false;
485
- }
486
- // Handle character input for search
487
- if (input && !key.return && !key.upArrow && !key.downArrow && !key.tab) {
488
- // Any character input clears action state and adds to search
489
- if (customModelAction) {
490
- clearActionState();
491
- }
492
- // Backspace
493
- if (key.backspace || key.delete) {
494
- setSearchQuery((prev) => prev.slice(0, -1));
495
- return true;
496
- }
497
- // Regular character - add to search
498
- if (input.length === 1 && input.charCodeAt(0) >= 32) {
499
- setSearchQuery((prev) => prev + input);
500
- selectedIndexRef.current = 0;
501
- setSelection({ index: 0, offset: 0 });
502
- return true;
503
- }
504
- }
505
- // Backspace when no other input
506
- if (key.backspace || key.delete) {
507
- setSearchQuery((prev) => prev.slice(0, -1));
508
- return true;
509
- }
510
- if (itemsLength === 0)
511
- return false;
512
- if (key.upArrow) {
513
- // Clear action state on vertical navigation
514
- if (customModelAction) {
515
- clearActionState();
516
- }
517
- const nextIndex = (selectedIndexRef.current - 1 + itemsLength) % itemsLength;
518
- selectedIndexRef.current = nextIndex;
519
- setSelection((prev) => {
520
- let nextOffset = prev.offset;
521
- const nextModelsLength = Math.max(0, itemsLength - 1);
522
- if (nextIndex > 0) {
523
- const modelIndex = nextIndex - 1;
524
- if (modelIndex < prev.offset) {
525
- nextOffset = modelIndex;
526
- }
527
- else if (modelIndex >= prev.offset + modelsViewportItems) {
528
- nextOffset = Math.max(0, modelIndex - modelsViewportItems + 1);
529
- }
530
- }
531
- const maxOffset = Math.max(0, nextModelsLength - modelsViewportItems);
532
- nextOffset = Math.min(maxOffset, Math.max(0, nextOffset));
533
- return { index: nextIndex, offset: nextOffset };
534
- });
535
- return true;
536
- }
537
- if (key.downArrow) {
538
- // Clear action state on vertical navigation
539
- if (customModelAction) {
540
- clearActionState();
541
- }
542
- const nextIndex = (selectedIndexRef.current + 1) % itemsLength;
543
- selectedIndexRef.current = nextIndex;
544
- setSelection((prev) => {
545
- let nextOffset = prev.offset;
546
- const nextModelsLength = Math.max(0, itemsLength - 1);
547
- if (nextIndex > 0) {
548
- const modelIndex = nextIndex - 1;
549
- if (modelIndex < prev.offset) {
550
- nextOffset = modelIndex;
551
- }
552
- else if (modelIndex >= prev.offset + modelsViewportItems) {
553
- nextOffset = Math.max(0, modelIndex - modelsViewportItems + 1);
554
- }
555
- }
556
- const maxOffset = Math.max(0, nextModelsLength - modelsViewportItems);
557
- nextOffset = Math.min(maxOffset, Math.max(0, nextOffset));
558
- return { index: nextIndex, offset: nextOffset };
559
- });
560
- return true;
561
- }
562
- if (key.return && itemsLength > 0) {
563
- const item = filteredItems[selectedIndexRef.current];
564
- if (item) {
565
- if (isAddCustomOption(item)) {
566
- onAddCustomModel();
567
- return true;
568
- }
569
- // Handle action mode confirmations
570
- if (customModelAction === 'edit' && item.isCustom) {
571
- // Find the full custom model data
572
- const customModel = customModels.find((cm) => cm.name === item.name &&
573
- (cm.provider ?? 'openai-compatible') === item.provider);
574
- if (customModel) {
575
- onEditCustomModel(customModel);
576
- }
577
- return true;
578
- }
579
- if (customModelAction === 'default') {
580
- // Check if reasoning-capable, show reasoning effort selection
581
- if (isReasoningCapableModel(item.name)) {
582
- setPendingReasoningModel(item);
583
- setIsSettingDefault(true);
584
- setReasoningEffortIndex(0); // Default to 'Auto'
585
- return true;
586
- }
587
- clearActionState();
588
- void (async () => {
589
- await onSetDefaultModel(item.provider, item.name, item.displayName, item.baseURL, item.reasoningEffort);
590
- setRefreshVersion((prev) => prev + 1);
591
- onClose(); // Close overlay after setting default
592
- })();
593
- return true;
594
- }
595
- if (customModelAction === 'delete' && item.isCustom) {
596
- if (pendingDeleteConfirm) {
597
- // Already confirmed, delete
598
- clearActionState();
599
- void handleDeleteCustomModel(item);
600
- }
601
- else {
602
- // Set pending confirmation
603
- setPendingDeleteConfirm(true);
604
- if (deleteTimeoutRef.current) {
605
- clearTimeout(deleteTimeoutRef.current);
606
- }
607
- deleteTimeoutRef.current = setTimeout(() => {
608
- setPendingDeleteConfirm(false);
609
- deleteTimeoutRef.current = null;
610
- }, 3000);
611
- }
612
- return true;
613
- }
614
- // Normal selection - check if reasoning-capable
615
- if (isReasoningCapableModel(item.name)) {
616
- // Show reasoning effort sub-step
617
- setPendingReasoningModel(item);
618
- setReasoningEffortIndex(0); // Default to 'Auto'
619
- return true;
620
- }
621
- onSelectModel(item.provider, item.name, item.displayName, item.baseURL);
622
- return true;
623
- }
624
- }
625
- return false;
626
- },
627
- }), [
628
- isVisible,
629
- isLoading,
630
- filteredItems,
631
- maxVisibleItems,
632
- modelsViewportItems,
633
- onClose,
634
- onSelectModel,
635
- onSetDefaultModel,
636
- onAddCustomModel,
637
- onEditCustomModel,
638
- customModelAction,
639
- pendingDeleteConfirm,
640
- customModels,
641
- handleDeleteCustomModel,
642
- pendingReasoningModel,
643
- reasoningEffortIndex,
644
- isSettingDefault,
645
- ]);
646
- if (!isVisible)
647
- return null;
648
- // Reasoning effort sub-step UI
649
- if (pendingReasoningModel) {
650
- const reasoningVisibleItems = Math.min(maxVisibleItems, REASONING_EFFORT_OPTIONS.length);
651
- const reasoningOffset = Math.min(Math.max(0, reasoningEffortIndex - reasoningVisibleItems + 1), Math.max(0, REASONING_EFFORT_OPTIONS.length - reasoningVisibleItems));
652
- const visibleReasoningOptions = REASONING_EFFORT_OPTIONS.slice(reasoningOffset, reasoningOffset + reasoningVisibleItems);
653
- const selectedReasoningOption = REASONING_EFFORT_OPTIONS[reasoningEffortIndex];
654
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { paddingX: 0, paddingY: 0, children: _jsxs(Text, { color: "cyan", bold: true, children: ["Reasoning Effort", isSettingDefault ? _jsx(Text, { color: "gray", children: " (default)" }) : null] }) }), _jsx(Box, { paddingX: 0, paddingY: 0, children: _jsx(Text, { color: "gray", wrap: "truncate-end", children: pendingReasoningModel.displayName || pendingReasoningModel.name }) }), _jsx(Box, { flexDirection: "column", height: maxVisibleItems, marginTop: 1, children: Array.from({ length: maxVisibleItems }, (_, rowIndex) => {
655
- const option = visibleReasoningOptions[rowIndex];
656
- if (!option) {
657
- return (_jsx(Box, { paddingX: 0, paddingY: 0, children: _jsx(Text, { children: " " }) }, `reasoning-empty-${rowIndex}`));
658
- }
659
- const actualIndex = reasoningOffset + rowIndex;
660
- const isSelected = actualIndex === reasoningEffortIndex;
661
- return (_jsx(Box, { paddingX: 0, paddingY: 0, children: _jsxs(Text, { color: isSelected ? 'cyan' : 'gray', bold: isSelected, wrap: "truncate-end", children: [isSelected ? '›' : ' ', " ", option.label] }) }, option.value));
662
- }) }), _jsx(Box, { paddingX: 0, paddingY: 0, marginTop: 1, children: _jsx(Text, { color: "gray", wrap: "truncate-end", children: selectedReasoningOption?.description ?? '' }) }), _jsx(Box, { paddingX: 0, paddingY: 0, children: _jsx(HintBar, { hints: ['↑↓ navigate', 'Enter select', 'Esc back'] }) })] }));
663
- }
664
- const selectedIndex = selection.index;
665
- const scrollOffset = selection.offset;
666
- const modelsOnly = filteredItems.slice(1);
667
- const visibleModels = modelsOnly.slice(scrollOffset, scrollOffset + modelsViewportItems);
668
- const selectedItem = filteredItems[selectedIndex];
669
- const hasActionableItems = selectedItem && !isAddCustomOption(selectedItem);
670
- let detailLine = '';
671
- if (isLoading) {
672
- detailLine = 'Loading models…';
673
- }
674
- else if (customModelAction === 'delete' && pendingDeleteConfirm) {
675
- detailLine = 'Confirm delete: press Enter again';
676
- }
677
- else if (customModelAction) {
678
- const label = customModelAction === 'edit'
679
- ? 'Edit'
680
- : customModelAction === 'default'
681
- ? 'Set as default'
682
- : 'Delete';
683
- detailLine = `Action: ${label}`;
684
- }
685
- else if (searchQuery.trim() && filteredItems.length <= 1) {
686
- detailLine = 'No models match your search';
687
- }
688
- else if (!selectedItem) {
689
- detailLine = '';
690
- }
691
- else if (isAddCustomOption(selectedItem)) {
692
- detailLine = 'Enter to add a custom model';
693
- }
694
- else {
695
- const provider = getLLMProviderDisplayName(selectedItem.provider);
696
- const name = selectedItem.displayName || selectedItem.name;
697
- const flags = [];
698
- if (selectedItem.isDefault)
699
- flags.push('default');
700
- if (selectedItem.isCurrent)
701
- flags.push('current');
702
- detailLine =
703
- flags.length > 0
704
- ? `${name} (${provider}) • ${flags.join(', ')}`
705
- : `${name} (${provider})`;
706
- }
707
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { paddingX: 0, paddingY: 0, children: _jsx(Text, { color: "cyan", bold: true, children: "Models" }) }), _jsxs(Box, { paddingX: 0, paddingY: 0, marginTop: 1, children: [_jsx(Text, { color: "gray", children: "Search: " }), _jsx(Text, { color: searchQuery ? 'white' : 'gray', wrap: "truncate-end", children: searchQuery || 'Type to filter models…' })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Box, { paddingX: 0, paddingY: 0, children: _jsxs(Text, { color: selectedIndex === 0 ? 'green' : 'gray', bold: selectedIndex === 0, wrap: "truncate-end", children: [getRowPrefix({
708
- isSelected: selectedIndex === 0,
709
- isDefault: false,
710
- isCurrent: false,
711
- isCustom: false,
712
- }), ' ', "Add custom model\u2026"] }) }), _jsx(Box, { flexDirection: "column", height: modelsViewportItems, children: isLoading || modelsOnly.length === 0
713
- ? Array.from({ length: modelsViewportItems }, (_, index) => (_jsx(Box, { paddingX: 0, paddingY: 0, children: _jsx(Text, { children: " " }) }, `model-empty-${index}`)))
714
- : Array.from({ length: modelsViewportItems }, (_, rowIndex) => {
715
- const item = visibleModels[rowIndex];
716
- if (!item) {
717
- return (_jsx(Box, { paddingX: 0, paddingY: 0, children: _jsx(Text, { children: " " }) }, `model-empty-${rowIndex}`));
718
- }
719
- const actualIndex = 1 + scrollOffset + rowIndex;
720
- const isSelected = actualIndex === selectedIndex;
721
- const providerDisplay = getLLMProviderDisplayName(item.provider);
722
- const name = item.displayName || item.name;
723
- const prefix = getRowPrefix({
724
- isSelected,
725
- isDefault: item.isDefault,
726
- isCurrent: item.isCurrent,
727
- isCustom: item.isCustom,
728
- });
729
- return (_jsxs(Box, { flexDirection: "row", paddingX: 0, paddingY: 0, children: [_jsx(Box, { flexGrow: 1, children: _jsxs(Text, { color: isSelected ? 'cyan' : 'gray', bold: isSelected, wrap: "truncate-end", children: [prefix, " ", name, " (", providerDisplay, ")"] }) }), isSelected && (_jsxs(Box, { flexDirection: "row", marginLeft: 1, children: [item.isCustom && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: customModelAction === 'edit'
730
- ? 'green'
731
- : 'gray', bold: customModelAction === 'edit', inverse: customModelAction === 'edit', children: [' ', "Edit", ' '] }), _jsx(Text, { children: " " })] })), _jsxs(Text, { color: customModelAction === 'default'
732
- ? 'cyan'
733
- : 'gray', bold: customModelAction === 'default', inverse: customModelAction === 'default', children: [' ', "Set as Default", ' '] }), item.isCustom && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsxs(Text, { color: customModelAction === 'delete'
734
- ? 'red'
735
- : 'gray', bold: customModelAction === 'delete', inverse: customModelAction === 'delete', children: [' ', "Delete", ' '] })] }))] }))] }, `${item.provider}-${item.name}-${item.isCustom ? 'custom' : 'registry'}`));
736
- }) })] }), _jsx(Box, { paddingX: 0, paddingY: 0, marginTop: 1, children: _jsx(Text, { color: "gray", wrap: "truncate-end", children: detailLine }) }), _jsx(Box, { paddingX: 0, paddingY: 0, children: _jsx(HintBar, { hints: [
737
- '↑↓ navigate',
738
- 'Enter select',
739
- 'Esc close',
740
- hasActionableItems ? '←→ actions' : '',
741
- ] }) })] }));
742
- });
743
- export default ModelSelector;