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,715 +0,0 @@
1
- /**
2
- * Unified Input Orchestrator
3
- *
4
- * Single point of keyboard input handling for the entire ink-cli.
5
- * Routes keystrokes based on focus state to prevent conflicts.
6
- *
7
- * Focus Priority (highest to lowest):
8
- * 1. Approval prompt (when visible)
9
- * 2. Active overlay (selector/autocomplete)
10
- * 3. Global shortcuts (Ctrl+C, Escape - handled specially)
11
- * 4. Main text input (default)
12
- *
13
- * Mouse scroll events are handled separately by ScrollProvider.
14
- */
15
- import { useEffect, useRef, useCallback } from 'react';
16
- import { useApp } from 'ink';
17
- import { useKeypress } from './useKeypress.js';
18
- import { enableMouseEvents, disableMouseEvents } from '../utils/mouse.js';
19
- import { generateMessageId } from '../utils/idGenerator.js';
20
- /** Time window for double Ctrl+C to exit (in milliseconds) */
21
- const EXIT_WARNING_TIMEOUT = 3000;
22
- /**
23
- * Convert our KeypressContext Key to Ink-compatible Key
24
- */
25
- function convertKey(rawKey) {
26
- const key = {
27
- upArrow: rawKey.name === 'up',
28
- downArrow: rawKey.name === 'down',
29
- leftArrow: rawKey.name === 'left',
30
- rightArrow: rawKey.name === 'right',
31
- pageUp: rawKey.name === 'pageup',
32
- pageDown: rawKey.name === 'pagedown',
33
- return: rawKey.name === 'return' || rawKey.name === 'enter',
34
- escape: rawKey.name === 'escape',
35
- ctrl: rawKey.ctrl,
36
- shift: rawKey.shift,
37
- meta: rawKey.meta,
38
- tab: rawKey.name === 'tab',
39
- backspace: rawKey.name === 'backspace',
40
- delete: rawKey.name === 'delete',
41
- paste: rawKey.paste,
42
- };
43
- // For insertable characters, use the sequence
44
- // For named keys like 'a', 'b', use the name
45
- let input = rawKey.sequence;
46
- // For Ctrl+letter combinations, use the name (e.g., 'c' for Ctrl+C)
47
- if (rawKey.ctrl && rawKey.name && rawKey.name.length === 1) {
48
- input = rawKey.name;
49
- }
50
- // For paste events, use the full sequence
51
- if (rawKey.paste) {
52
- input = rawKey.sequence;
53
- }
54
- return { input, key };
55
- }
56
- function getFocusTarget(approval, activeOverlay) {
57
- // Approval has highest priority
58
- if (approval !== null) {
59
- return 'approval';
60
- }
61
- // Active overlay has next priority
62
- if (activeOverlay !== 'none' && activeOverlay !== 'approval') {
63
- return 'overlay';
64
- }
65
- // Default to main input
66
- return 'input';
67
- }
68
- /**
69
- * Unified input orchestrator hook
70
- *
71
- * This is the ONLY keyboard input hook in the entire ink-cli.
72
- * All keyboard handling is routed through this single point.
73
- * Mouse events are handled separately by MouseProvider/ScrollProvider.
74
- */
75
- export function useInputOrchestrator({ ui, approval, input, session, queuedMessages, buffer, setUi, setInput, setMessages, setPendingMessages, setQueuedMessages, agent, handlers, }) {
76
- const { exit } = useApp();
77
- // Use refs to avoid stale closures in the callback
78
- const uiRef = useRef(ui);
79
- const approvalRef = useRef(approval);
80
- const inputRef = useRef(input);
81
- const sessionRef = useRef(session);
82
- const queuedMessagesRef = useRef(queuedMessages);
83
- const bufferRef = useRef(buffer);
84
- const handlersRef = useRef(handlers);
85
- // Keep refs in sync
86
- useEffect(() => {
87
- uiRef.current = ui;
88
- approvalRef.current = approval;
89
- inputRef.current = input;
90
- sessionRef.current = session;
91
- queuedMessagesRef.current = queuedMessages;
92
- bufferRef.current = buffer;
93
- handlersRef.current = handlers;
94
- }, [ui, approval, input, session, queuedMessages, buffer, handlers]);
95
- // Auto-clear exit warning after timeout
96
- useEffect(() => {
97
- if (!ui.exitWarningShown || !ui.exitWarningTimestamp)
98
- return;
99
- const elapsed = Date.now() - ui.exitWarningTimestamp;
100
- const remaining = EXIT_WARNING_TIMEOUT - elapsed;
101
- if (remaining <= 0) {
102
- setUi((prev) => ({ ...prev, exitWarningShown: false, exitWarningTimestamp: null }));
103
- return;
104
- }
105
- const timer = setTimeout(() => {
106
- setUi((prev) => ({ ...prev, exitWarningShown: false, exitWarningTimestamp: null }));
107
- }, remaining);
108
- return () => clearTimeout(timer);
109
- }, [ui.exitWarningShown, ui.exitWarningTimestamp, setUi]);
110
- // Handle Ctrl+C (special case - handled globally regardless of focus)
111
- // Priority: 1) Clear input if has text, 2) Exit warning/exit
112
- // Note: Ctrl+C does NOT cancel processing - use Escape for that
113
- const handleCtrlC = useCallback(() => {
114
- const currentUi = uiRef.current;
115
- const currentBuffer = bufferRef.current;
116
- if (currentBuffer.text.length > 0) {
117
- // Has input text - clear it AND show exit warning
118
- // This way: first Ctrl+C clears, second Ctrl+C exits
119
- currentBuffer.setText('');
120
- setUi((prev) => ({
121
- ...prev,
122
- exitWarningShown: true,
123
- exitWarningTimestamp: Date.now(),
124
- }));
125
- }
126
- else {
127
- // No text - handle exit with double-press safety
128
- if (currentUi.exitWarningShown) {
129
- // Second Ctrl+C within timeout - actually exit
130
- exit();
131
- }
132
- else {
133
- // First Ctrl+C - show warning
134
- setUi((prev) => ({
135
- ...prev,
136
- exitWarningShown: true,
137
- exitWarningTimestamp: Date.now(),
138
- }));
139
- }
140
- }
141
- }, [setUi, exit]);
142
- // Handle Escape (context-aware)
143
- const handleEscape = useCallback(() => {
144
- const currentUi = uiRef.current;
145
- const currentApproval = approvalRef.current;
146
- const currentSession = sessionRef.current;
147
- const currentQueuedMessages = queuedMessagesRef.current;
148
- const currentBuffer = bufferRef.current;
149
- // If approval prompt is showing, let it handle escape (don't intercept)
150
- if (currentApproval !== null) {
151
- return false;
152
- }
153
- // Exit history search mode if active - restore original input
154
- if (currentUi.historySearch.isActive) {
155
- const originalInput = currentUi.historySearch.originalInput;
156
- currentBuffer.setText(originalInput);
157
- setInput((prev) => ({ ...prev, value: originalInput }));
158
- setUi((prev) => ({
159
- ...prev,
160
- historySearch: {
161
- isActive: false,
162
- query: '',
163
- matchIndex: 0,
164
- originalInput: '',
165
- lastMatch: '',
166
- },
167
- }));
168
- return true;
169
- }
170
- // Clear exit warning if shown
171
- if (currentUi.exitWarningShown) {
172
- setUi((prev) => ({ ...prev, exitWarningShown: false, exitWarningTimestamp: null }));
173
- return true;
174
- }
175
- // Cancel processing if active
176
- if (currentUi.isProcessing) {
177
- if (currentSession.id) {
178
- // Cancel current run
179
- void agent.cancel(currentSession.id).catch(() => { });
180
- // Clear the queue on server (we'll bring messages to input for editing)
181
- void agent.clearMessageQueue(currentSession.id).catch(() => { });
182
- }
183
- // Finalize any pending messages first (move to messages)
184
- // Mark running tools as cancelled with error state
185
- setPendingMessages((pending) => {
186
- if (pending.length > 0) {
187
- const updated = pending.map((msg) => {
188
- // Mark running tools as cancelled
189
- if (msg.role === 'tool' && msg.toolStatus === 'running') {
190
- return {
191
- ...msg,
192
- toolStatus: 'finished',
193
- toolResult: 'Cancelled',
194
- isError: true,
195
- };
196
- }
197
- return msg;
198
- });
199
- setMessages((prev) => [...prev, ...updated]);
200
- }
201
- return [];
202
- });
203
- setUi((prev) => ({
204
- ...prev,
205
- isCancelling: true,
206
- isProcessing: false,
207
- isThinking: false,
208
- }));
209
- // Add interrupted message
210
- setMessages((prev) => [
211
- ...prev,
212
- {
213
- id: generateMessageId('system'),
214
- role: 'system',
215
- content: 'Interrupted - what should Dexto do next?',
216
- timestamp: new Date(),
217
- },
218
- ]);
219
- // If there were queued messages, bring them back to input for editing
220
- if (currentQueuedMessages.length > 0) {
221
- // Extract and coalesce text content from all queued messages
222
- const coalescedText = currentQueuedMessages
223
- .map((msg) => msg.content
224
- .filter((part) => part.type === 'text')
225
- .map((part) => part.text)
226
- .join('\n'))
227
- .filter((text) => text.length > 0)
228
- .join('\n\n');
229
- if (coalescedText) {
230
- currentBuffer.setText(coalescedText);
231
- setInput((prev) => ({ ...prev, value: coalescedText }));
232
- }
233
- // Clear the queue state immediately (don't wait for server events)
234
- setQueuedMessages([]);
235
- }
236
- return true;
237
- }
238
- // Close overlay if active (let the overlay handler deal with specifics)
239
- if (currentUi.activeOverlay !== 'none') {
240
- // Don't consume - let overlay handler close it with proper cleanup
241
- return false;
242
- }
243
- return false;
244
- }, [agent, setUi, setMessages, setPendingMessages, setInput, setQueuedMessages]);
245
- // The keypress handler for the entire application
246
- const handleKeypress = useCallback((rawKey) => {
247
- const currentUi = uiRef.current;
248
- const currentApproval = approvalRef.current;
249
- const currentHandlers = handlersRef.current;
250
- // Convert to Ink-compatible format
251
- const { input: inputStr, key } = convertKey(rawKey);
252
- // === COPY MODE HANDLING ===
253
- // When in copy mode, any key exits copy mode (mouse events re-enabled)
254
- if (currentUi.copyModeEnabled) {
255
- setUi((prev) => ({ ...prev, copyModeEnabled: false }));
256
- enableMouseEvents(); // Re-enable mouse events
257
- return; // Don't process any other keys while exiting copy mode
258
- }
259
- // === GLOBAL SHORTCUTS (always handled first) ===
260
- // === HISTORY SEARCH MODE HANDLING ===
261
- if (currentUi.historySearch.isActive) {
262
- const currentInput = inputRef.current;
263
- const currentBuffer = bufferRef.current;
264
- // Helper to find matches (reversed so newest is first)
265
- const findMatches = (query) => {
266
- if (!query)
267
- return [];
268
- const lowerQuery = query.toLowerCase();
269
- return currentInput.history
270
- .filter((item) => item.toLowerCase().includes(lowerQuery))
271
- .reverse();
272
- };
273
- // Helper to apply a match to the input buffer and track lastMatch
274
- const applyMatchAndUpdateState = (query, matchIdx) => {
275
- if (!query) {
276
- // No query - restore original
277
- const orig = currentUi.historySearch.originalInput;
278
- currentBuffer.setText(orig);
279
- setInput((prev) => ({ ...prev, value: orig }));
280
- return;
281
- }
282
- const matches = findMatches(query);
283
- if (matches.length > 0) {
284
- const idx = Math.min(matchIdx, matches.length - 1);
285
- const match = matches[idx];
286
- if (match) {
287
- currentBuffer.setText(match);
288
- setInput((prev) => ({ ...prev, value: match }));
289
- // Update lastMatch in state
290
- setUi((prev) => ({
291
- ...prev,
292
- historySearch: { ...prev.historySearch, lastMatch: match },
293
- }));
294
- }
295
- }
296
- // If no match, keep current buffer content (which has last valid match)
297
- };
298
- // Ctrl+E in search mode: cycle to previous (newer) match
299
- if (key.ctrl && inputStr === 'e') {
300
- const matches = findMatches(currentUi.historySearch.query);
301
- if (matches.length > 0) {
302
- const newIdx = Math.max(0, currentUi.historySearch.matchIndex - 1);
303
- setUi((prev) => ({
304
- ...prev,
305
- historySearch: { ...prev.historySearch, matchIndex: newIdx },
306
- }));
307
- applyMatchAndUpdateState(currentUi.historySearch.query, newIdx);
308
- }
309
- return;
310
- }
311
- // Ctrl+R in search mode: cycle to next (older) match
312
- if (key.ctrl && inputStr === 'r') {
313
- const matches = findMatches(currentUi.historySearch.query);
314
- if (matches.length > 0) {
315
- const newIdx = Math.min(currentUi.historySearch.matchIndex + 1, matches.length - 1);
316
- setUi((prev) => ({
317
- ...prev,
318
- historySearch: { ...prev.historySearch, matchIndex: newIdx },
319
- }));
320
- applyMatchAndUpdateState(currentUi.historySearch.query, newIdx);
321
- }
322
- return;
323
- }
324
- // Enter: Accept current match and exit search mode (input already has match)
325
- if (key.return) {
326
- setUi((prev) => ({
327
- ...prev,
328
- historySearch: {
329
- isActive: false,
330
- query: '',
331
- matchIndex: 0,
332
- originalInput: '',
333
- lastMatch: '',
334
- },
335
- }));
336
- return;
337
- }
338
- // Backspace: Remove last character from search query
339
- if (key.backspace || key.delete) {
340
- const newQuery = currentUi.historySearch.query.slice(0, -1);
341
- setUi((prev) => ({
342
- ...prev,
343
- historySearch: { ...prev.historySearch, query: newQuery, matchIndex: 0 },
344
- }));
345
- applyMatchAndUpdateState(newQuery, 0);
346
- return;
347
- }
348
- // Regular typing: Add to search query
349
- if (inputStr && !key.ctrl && !key.meta && !key.escape) {
350
- const newQuery = currentUi.historySearch.query + inputStr;
351
- setUi((prev) => ({
352
- ...prev,
353
- historySearch: { ...prev.historySearch, query: newQuery, matchIndex: 0 },
354
- }));
355
- applyMatchAndUpdateState(newQuery, 0);
356
- return;
357
- }
358
- // Escape is handled by handleEscape, so fall through
359
- }
360
- // Ctrl+R: Enter history search mode - save current input
361
- if (key.ctrl && inputStr === 'r') {
362
- const currentBuffer = bufferRef.current;
363
- const currentText = currentBuffer.text;
364
- setUi((prev) => ({
365
- ...prev,
366
- historySearch: {
367
- isActive: true,
368
- query: '',
369
- matchIndex: 0,
370
- originalInput: currentText,
371
- lastMatch: '',
372
- },
373
- }));
374
- return;
375
- }
376
- // Ctrl+S: Toggle copy mode (for text selection in alternate buffer)
377
- if (key.ctrl && inputStr === 's') {
378
- setUi((prev) => ({ ...prev, copyModeEnabled: true }));
379
- disableMouseEvents(); // Disable mouse events so terminal can handle selection
380
- return;
381
- }
382
- // Ctrl+T: Toggle todo list expansion (collapsed shows only current task)
383
- if (key.ctrl && inputStr === 't') {
384
- setUi((prev) => ({ ...prev, todoExpanded: !prev.todoExpanded }));
385
- return;
386
- }
387
- // Ctrl+B: Toggle background task panel
388
- if (key.ctrl && inputStr === 'b') {
389
- setUi((prev) => ({
390
- ...prev,
391
- backgroundTasksExpanded: !prev.backgroundTasksExpanded,
392
- }));
393
- return;
394
- }
395
- // Ctrl+C: Always handle globally for cancellation/exit
396
- if (key.ctrl && inputStr === 'c') {
397
- handleCtrlC();
398
- return;
399
- }
400
- // Shift+Tab: Cycle through modes (when not in approval modal)
401
- // Modes: Normal → Plan Mode → Accept All Edits → Normal
402
- // Note: When in approval modal for edit/write tools, ApprovalPrompt handles Shift+Tab differently
403
- if (key.shift && key.tab && !key.ctrl && !key.meta && currentApproval === null) {
404
- setUi((prev) => {
405
- // Determine current mode and cycle to next
406
- if (!prev.planModeActive && !prev.autoApproveEdits) {
407
- // Normal → Plan Mode
408
- return {
409
- ...prev,
410
- planModeActive: true,
411
- planModeInitialized: false,
412
- };
413
- }
414
- else if (prev.planModeActive) {
415
- // Plan Mode → Accept All Edits
416
- return {
417
- ...prev,
418
- planModeActive: false,
419
- planModeInitialized: false,
420
- autoApproveEdits: true,
421
- };
422
- }
423
- else {
424
- // Accept All Edits → Normal
425
- return {
426
- ...prev,
427
- autoApproveEdits: false,
428
- };
429
- }
430
- });
431
- return;
432
- }
433
- // Determine focus once (used for routing + Escape priority)
434
- const focusTarget = getFocusTarget(currentApproval, currentUi.activeOverlay);
435
- // Escape: route to focused component first.
436
- // - If an approval is showing, Esc must cancel/deny the approval (NOT global interrupt).
437
- // - Otherwise, allow global Escape handling (cancel run, close overlays, etc.).
438
- if (key.escape) {
439
- if (focusTarget === 'approval') {
440
- currentHandlers.approval?.(inputStr, key);
441
- return;
442
- }
443
- if (handleEscape()) {
444
- return; // Consumed by global handler
445
- }
446
- // Fall through to focused component
447
- }
448
- // === ROUTE TO FOCUSED COMPONENT ===
449
- // Only approval and overlay handlers are routed through the orchestrator.
450
- // Main text input handles its own keypress directly (via TextBufferInput).
451
- switch (focusTarget) {
452
- case 'approval':
453
- if (currentHandlers.approval) {
454
- currentHandlers.approval(inputStr, key);
455
- }
456
- // Approval always consumes - main input won't see it
457
- break;
458
- case 'overlay':
459
- if (currentHandlers.overlay) {
460
- currentHandlers.overlay(inputStr, key);
461
- }
462
- // Overlay may or may not consume - main input handles independently
463
- break;
464
- case 'input':
465
- // No routing needed - TextBufferInput handles its own input
466
- // Clear exit warning on any typing (user changed their mind)
467
- if (currentUi.exitWarningShown &&
468
- !key.ctrl &&
469
- !key.meta &&
470
- !key.escape &&
471
- inputStr.length > 0) {
472
- setUi((prev) => ({
473
- ...prev,
474
- exitWarningShown: false,
475
- exitWarningTimestamp: null,
476
- }));
477
- }
478
- break;
479
- }
480
- }, [handleCtrlC, handleEscape, setUi]);
481
- // Subscribe to keypress events
482
- useKeypress(handleKeypress, { isActive: true });
483
- }
484
- export function createApprovalInputHandler({ onApprove, onDeny, onCancel, selectedOption, setSelectedOption, isCommandConfirmation, }) {
485
- return (_input, key) => {
486
- if (key.upArrow) {
487
- // Move up (skip yes-session for command confirmations)
488
- if (selectedOption === 'yes') {
489
- setSelectedOption('no');
490
- }
491
- else if (selectedOption === 'yes-session') {
492
- setSelectedOption('yes');
493
- }
494
- else {
495
- // no -> yes-session (or yes for command confirmations)
496
- setSelectedOption(isCommandConfirmation ? 'yes' : 'yes-session');
497
- }
498
- return true;
499
- }
500
- if (key.downArrow) {
501
- // Move down (skip yes-session for command confirmations)
502
- if (selectedOption === 'yes') {
503
- setSelectedOption(isCommandConfirmation ? 'no' : 'yes-session');
504
- }
505
- else if (selectedOption === 'yes-session') {
506
- setSelectedOption('no');
507
- }
508
- else {
509
- setSelectedOption('yes'); // no -> yes (wrap)
510
- }
511
- return true;
512
- }
513
- if (key.return) {
514
- // Enter key - confirm selection
515
- if (selectedOption === 'yes') {
516
- onApprove(false);
517
- }
518
- else if (selectedOption === 'yes-session') {
519
- onApprove(true);
520
- }
521
- else {
522
- onDeny();
523
- }
524
- return true;
525
- }
526
- if (key.escape) {
527
- onCancel();
528
- return true;
529
- }
530
- return false;
531
- };
532
- }
533
- export function createSelectorInputHandler({ itemsLength, selectedIndexRef, onSelectIndex, onSelect, onClose, }) {
534
- return (_input, key) => {
535
- if (itemsLength === 0)
536
- return false;
537
- if (key.upArrow) {
538
- const currentIndex = selectedIndexRef.current ?? 0;
539
- const nextIndex = (currentIndex - 1 + itemsLength) % itemsLength;
540
- onSelectIndex(nextIndex);
541
- return true;
542
- }
543
- if (key.downArrow) {
544
- const currentIndex = selectedIndexRef.current ?? 0;
545
- const nextIndex = (currentIndex + 1) % itemsLength;
546
- onSelectIndex(nextIndex);
547
- return true;
548
- }
549
- if (key.escape) {
550
- onClose();
551
- return true;
552
- }
553
- if (key.return) {
554
- onSelect();
555
- return true;
556
- }
557
- return false;
558
- };
559
- }
560
- export function createAutocompleteInputHandler({ itemsLength, selectedIndexRef, onSelectIndex, onSelect, onClose, onTab, }) {
561
- const baseHandler = createSelectorInputHandler({
562
- itemsLength,
563
- selectedIndexRef,
564
- onSelectIndex,
565
- onSelect,
566
- onClose,
567
- });
568
- return (input, key) => {
569
- // Handle Tab for "load into input" functionality
570
- if (key.tab && onTab) {
571
- onTab();
572
- return true;
573
- }
574
- return baseHandler(input, key);
575
- };
576
- }
577
- export function createMainInputHandler({ value, cursorPos, onChange, setCursorPos, onSubmit, isDisabled, history, historyIndex, onHistoryNavigate, getLineInfo, getLineStart, }) {
578
- return (input, key) => {
579
- if (isDisabled)
580
- return false;
581
- const lines = value.split('\n');
582
- const isMultiLine = lines.length > 1;
583
- const { lineIndex, colIndex } = getLineInfo(cursorPos);
584
- // Newline detection based on actual terminal behavior
585
- const isCtrlJ = input === '\n';
586
- const isShiftEnter = input === '\\\r' ||
587
- (key.return && key.shift) ||
588
- input === '\x1b[13;2u' ||
589
- input === '\x1bOM';
590
- const wantsNewline = isCtrlJ || isShiftEnter || (key.return && key.meta);
591
- if (wantsNewline) {
592
- const newValue = value.slice(0, cursorPos) + '\n' + value.slice(cursorPos);
593
- onChange(newValue);
594
- setCursorPos(cursorPos + 1);
595
- return true;
596
- }
597
- // Enter = submit
598
- if (key.return) {
599
- if (value.trim()) {
600
- onSubmit(value);
601
- }
602
- return true;
603
- }
604
- // Backspace - delete character before cursor
605
- const isBackspace = key.backspace || input === '\x7f' || input === '\x08';
606
- if (isBackspace) {
607
- if (cursorPos > 0) {
608
- const newValue = value.slice(0, cursorPos - 1) + value.slice(cursorPos);
609
- onChange(newValue);
610
- setCursorPos(cursorPos - 1);
611
- }
612
- return true;
613
- }
614
- // Delete - delete character at cursor (forward delete)
615
- if (key.delete) {
616
- if (cursorPos < value.length) {
617
- const newValue = value.slice(0, cursorPos) + value.slice(cursorPos + 1);
618
- onChange(newValue);
619
- }
620
- return true;
621
- }
622
- // Left arrow
623
- if (key.leftArrow) {
624
- setCursorPos(Math.max(0, cursorPos - 1));
625
- return true;
626
- }
627
- // Right arrow
628
- if (key.rightArrow) {
629
- setCursorPos(Math.min(value.length, cursorPos + 1));
630
- return true;
631
- }
632
- // Up arrow
633
- if (key.upArrow) {
634
- if (isMultiLine && lineIndex > 0) {
635
- const prevLineStart = getLineStart(lineIndex - 1);
636
- const prevLineLength = lines[lineIndex - 1].length;
637
- const newCol = Math.min(colIndex, prevLineLength);
638
- setCursorPos(prevLineStart + newCol);
639
- }
640
- else if (onHistoryNavigate && history.length > 0) {
641
- onHistoryNavigate('up');
642
- }
643
- return true;
644
- }
645
- // Down arrow
646
- if (key.downArrow) {
647
- if (isMultiLine && lineIndex < lines.length - 1) {
648
- const nextLineStart = getLineStart(lineIndex + 1);
649
- const nextLineLength = lines[lineIndex + 1].length;
650
- const newCol = Math.min(colIndex, nextLineLength);
651
- setCursorPos(nextLineStart + newCol);
652
- }
653
- else if (onHistoryNavigate && historyIndex >= 0) {
654
- onHistoryNavigate('down');
655
- }
656
- return true;
657
- }
658
- // Ctrl+A - start of line
659
- if (key.ctrl && input === 'a') {
660
- setCursorPos(getLineStart(lineIndex));
661
- return true;
662
- }
663
- // Ctrl+E - end of line
664
- if (key.ctrl && input === 'e') {
665
- const lineStart = getLineStart(lineIndex);
666
- setCursorPos(lineStart + lines[lineIndex].length);
667
- return true;
668
- }
669
- // Ctrl+K - delete to end of line
670
- if (key.ctrl && input === 'k') {
671
- const lineStart = getLineStart(lineIndex);
672
- const lineEnd = lineStart + lines[lineIndex].length;
673
- if (cursorPos < lineEnd) {
674
- onChange(value.slice(0, cursorPos) + value.slice(lineEnd));
675
- }
676
- else if (cursorPos < value.length) {
677
- onChange(value.slice(0, cursorPos) + value.slice(cursorPos + 1));
678
- }
679
- return true;
680
- }
681
- // Ctrl+U - delete to start of line
682
- if (key.ctrl && input === 'u') {
683
- const lineStart = getLineStart(lineIndex);
684
- if (cursorPos > lineStart) {
685
- onChange(value.slice(0, lineStart) + value.slice(cursorPos));
686
- setCursorPos(lineStart);
687
- }
688
- return true;
689
- }
690
- // Ctrl+W - delete word
691
- if (key.ctrl && input === 'w') {
692
- if (cursorPos > 0) {
693
- let wordStart = cursorPos - 1;
694
- while (wordStart > 0 && value[wordStart] === ' ')
695
- wordStart--;
696
- while (wordStart > 0 &&
697
- value[wordStart - 1] !== ' ' &&
698
- value[wordStart - 1] !== '\n') {
699
- wordStart--;
700
- }
701
- onChange(value.slice(0, wordStart) + value.slice(cursorPos));
702
- setCursorPos(wordStart);
703
- }
704
- return true;
705
- }
706
- // Regular character input
707
- if (input && !key.ctrl && !key.meta) {
708
- const newValue = value.slice(0, cursorPos) + input + value.slice(cursorPos);
709
- onChange(newValue);
710
- setCursorPos(cursorPos + input.length);
711
- return true;
712
- }
713
- return false;
714
- };
715
- }