dexto 1.6.1 → 1.6.3

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 (561) 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 +142 -39
  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/cli/utils/scaffolding-utils.d.ts.map +1 -1
  22. package/dist/cli/utils/scaffolding-utils.js +38 -4
  23. package/dist/index-main.js +78 -11
  24. package/dist/index.js +12 -0
  25. package/dist/web.d.ts.map +1 -1
  26. package/dist/web.js +18 -11
  27. package/dist/webui/assets/index-d6c-yJNn.js +2059 -0
  28. package/dist/webui/assets/index-yKdFLN1k.css +1 -0
  29. package/dist/webui/assets/react-vendor-l0sNRNKZ.js +1 -0
  30. package/dist/webui/assets/tanstack-BjCuxfF-.js +41 -0
  31. package/dist/webui/index.html +3 -4
  32. package/package.json +13 -23
  33. package/dist/cli/assets/sounds/SOURCES.md +0 -35
  34. package/dist/cli/assets/sounds/boot.wav +0 -0
  35. package/dist/cli/assets/sounds/chime.wav +0 -0
  36. package/dist/cli/assets/sounds/coin.wav +0 -0
  37. package/dist/cli/assets/sounds/confirm.wav +0 -0
  38. package/dist/cli/assets/sounds/levelup.wav +0 -0
  39. package/dist/cli/assets/sounds/ping.wav +0 -0
  40. package/dist/cli/assets/sounds/powerup.wav +0 -0
  41. package/dist/cli/assets/sounds/startup.wav +0 -0
  42. package/dist/cli/assets/sounds/success.wav +0 -0
  43. package/dist/cli/assets/sounds/treasure.wav +0 -0
  44. package/dist/cli/assets/sounds/win.wav +0 -0
  45. package/dist/cli/commands/interactive-commands/auth/index.d.ts +0 -12
  46. package/dist/cli/commands/interactive-commands/auth/index.d.ts.map +0 -1
  47. package/dist/cli/commands/interactive-commands/auth/index.js +0 -20
  48. package/dist/cli/commands/interactive-commands/command-parser.d.ts +0 -56
  49. package/dist/cli/commands/interactive-commands/command-parser.d.ts.map +0 -1
  50. package/dist/cli/commands/interactive-commands/command-parser.js +0 -173
  51. package/dist/cli/commands/interactive-commands/commands.d.ts +0 -52
  52. package/dist/cli/commands/interactive-commands/commands.d.ts.map +0 -1
  53. package/dist/cli/commands/interactive-commands/commands.js +0 -142
  54. package/dist/cli/commands/interactive-commands/documentation-commands.d.ts +0 -15
  55. package/dist/cli/commands/interactive-commands/documentation-commands.d.ts.map +0 -1
  56. package/dist/cli/commands/interactive-commands/documentation-commands.js +0 -39
  57. package/dist/cli/commands/interactive-commands/exit-handler.d.ts +0 -12
  58. package/dist/cli/commands/interactive-commands/exit-handler.d.ts.map +0 -1
  59. package/dist/cli/commands/interactive-commands/exit-handler.js +0 -20
  60. package/dist/cli/commands/interactive-commands/exit-stats.d.ts +0 -24
  61. package/dist/cli/commands/interactive-commands/exit-stats.d.ts.map +0 -1
  62. package/dist/cli/commands/interactive-commands/exit-stats.js +0 -17
  63. package/dist/cli/commands/interactive-commands/export/index.d.ts +0 -13
  64. package/dist/cli/commands/interactive-commands/export/index.d.ts.map +0 -1
  65. package/dist/cli/commands/interactive-commands/export/index.js +0 -21
  66. package/dist/cli/commands/interactive-commands/general-commands.d.ts +0 -22
  67. package/dist/cli/commands/interactive-commands/general-commands.d.ts.map +0 -1
  68. package/dist/cli/commands/interactive-commands/general-commands.js +0 -508
  69. package/dist/cli/commands/interactive-commands/mcp/index.d.ts +0 -13
  70. package/dist/cli/commands/interactive-commands/mcp/index.d.ts.map +0 -1
  71. package/dist/cli/commands/interactive-commands/mcp/index.js +0 -18
  72. package/dist/cli/commands/interactive-commands/model/index.d.ts +0 -13
  73. package/dist/cli/commands/interactive-commands/model/index.d.ts.map +0 -1
  74. package/dist/cli/commands/interactive-commands/model/index.js +0 -19
  75. package/dist/cli/commands/interactive-commands/plugin/index.d.ts +0 -13
  76. package/dist/cli/commands/interactive-commands/plugin/index.d.ts.map +0 -1
  77. package/dist/cli/commands/interactive-commands/plugin/index.js +0 -18
  78. package/dist/cli/commands/interactive-commands/prompt-commands.d.ts +0 -25
  79. package/dist/cli/commands/interactive-commands/prompt-commands.d.ts.map +0 -1
  80. package/dist/cli/commands/interactive-commands/prompt-commands.js +0 -284
  81. package/dist/cli/commands/interactive-commands/session/index.d.ts +0 -16
  82. package/dist/cli/commands/interactive-commands/session/index.d.ts.map +0 -1
  83. package/dist/cli/commands/interactive-commands/session/index.js +0 -15
  84. package/dist/cli/commands/interactive-commands/session/session-commands.d.ts +0 -32
  85. package/dist/cli/commands/interactive-commands/session/session-commands.d.ts.map +0 -1
  86. package/dist/cli/commands/interactive-commands/session/session-commands.js +0 -65
  87. package/dist/cli/commands/interactive-commands/system/index.d.ts +0 -13
  88. package/dist/cli/commands/interactive-commands/system/index.d.ts.map +0 -1
  89. package/dist/cli/commands/interactive-commands/system/index.js +0 -12
  90. package/dist/cli/commands/interactive-commands/system/system-commands.d.ts +0 -6
  91. package/dist/cli/commands/interactive-commands/system/system-commands.d.ts.map +0 -1
  92. package/dist/cli/commands/interactive-commands/system/system-commands.js +0 -188
  93. package/dist/cli/commands/interactive-commands/tool-commands.d.ts +0 -15
  94. package/dist/cli/commands/interactive-commands/tool-commands.d.ts.map +0 -1
  95. package/dist/cli/commands/interactive-commands/tool-commands.js +0 -24
  96. package/dist/cli/commands/interactive-commands/utils/arg-parser.d.ts +0 -57
  97. package/dist/cli/commands/interactive-commands/utils/arg-parser.d.ts.map +0 -1
  98. package/dist/cli/commands/interactive-commands/utils/arg-parser.js +0 -81
  99. package/dist/cli/commands/interactive-commands/utils/command-output.d.ts +0 -40
  100. package/dist/cli/commands/interactive-commands/utils/command-output.d.ts.map +0 -1
  101. package/dist/cli/commands/interactive-commands/utils/command-output.js +0 -56
  102. package/dist/cli/commands/interactive-commands/utils/format-output.d.ts +0 -14
  103. package/dist/cli/commands/interactive-commands/utils/format-output.d.ts.map +0 -1
  104. package/dist/cli/commands/interactive-commands/utils/format-output.js +0 -18
  105. package/dist/cli/ink-cli/InkCLIRefactored.d.ts +0 -52
  106. package/dist/cli/ink-cli/InkCLIRefactored.d.ts.map +0 -1
  107. package/dist/cli/ink-cli/InkCLIRefactored.js +0 -231
  108. package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts +0 -44
  109. package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts.map +0 -1
  110. package/dist/cli/ink-cli/components/ApprovalPrompt.js +0 -323
  111. package/dist/cli/ink-cli/components/BackgroundTasksPanel.d.ts +0 -18
  112. package/dist/cli/ink-cli/components/BackgroundTasksPanel.d.ts.map +0 -1
  113. package/dist/cli/ink-cli/components/BackgroundTasksPanel.js +0 -48
  114. package/dist/cli/ink-cli/components/CustomInput.d.ts +0 -17
  115. package/dist/cli/ink-cli/components/CustomInput.d.ts.map +0 -1
  116. package/dist/cli/ink-cli/components/CustomInput.js +0 -51
  117. package/dist/cli/ink-cli/components/CustomTextInput.d.ts +0 -16
  118. package/dist/cli/ink-cli/components/CustomTextInput.d.ts.map +0 -1
  119. package/dist/cli/ink-cli/components/CustomTextInput.js +0 -36
  120. package/dist/cli/ink-cli/components/EditableMultiLineInput.d.ts +0 -19
  121. package/dist/cli/ink-cli/components/EditableMultiLineInput.d.ts.map +0 -1
  122. package/dist/cli/ink-cli/components/EditableMultiLineInput.js +0 -120
  123. package/dist/cli/ink-cli/components/ElicitationForm.d.ts +0 -24
  124. package/dist/cli/ink-cli/components/ElicitationForm.d.ts.map +0 -1
  125. package/dist/cli/ink-cli/components/ElicitationForm.js +0 -592
  126. package/dist/cli/ink-cli/components/ErrorBoundary.d.ts +0 -20
  127. package/dist/cli/ink-cli/components/ErrorBoundary.d.ts.map +0 -1
  128. package/dist/cli/ink-cli/components/ErrorBoundary.js +0 -29
  129. package/dist/cli/ink-cli/components/Footer.d.ts +0 -22
  130. package/dist/cli/ink-cli/components/Footer.d.ts.map +0 -1
  131. package/dist/cli/ink-cli/components/Footer.js +0 -76
  132. package/dist/cli/ink-cli/components/HistorySearchBar.d.ts +0 -17
  133. package/dist/cli/ink-cli/components/HistorySearchBar.d.ts.map +0 -1
  134. package/dist/cli/ink-cli/components/HistorySearchBar.js +0 -8
  135. package/dist/cli/ink-cli/components/MultiLineInput.d.ts +0 -12
  136. package/dist/cli/ink-cli/components/MultiLineInput.d.ts.map +0 -1
  137. package/dist/cli/ink-cli/components/MultiLineInput.js +0 -27
  138. package/dist/cli/ink-cli/components/ResourceAutocomplete.d.ts +0 -26
  139. package/dist/cli/ink-cli/components/ResourceAutocomplete.d.ts.map +0 -1
  140. package/dist/cli/ink-cli/components/ResourceAutocomplete.js +0 -385
  141. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.d.ts +0 -28
  142. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.d.ts.map +0 -1
  143. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.js +0 -412
  144. package/dist/cli/ink-cli/components/StatusBar.d.ts +0 -41
  145. package/dist/cli/ink-cli/components/StatusBar.d.ts.map +0 -1
  146. package/dist/cli/ink-cli/components/StatusBar.js +0 -116
  147. package/dist/cli/ink-cli/components/TextBufferInput.d.ts +0 -52
  148. package/dist/cli/ink-cli/components/TextBufferInput.d.ts.map +0 -1
  149. package/dist/cli/ink-cli/components/TextBufferInput.js +0 -490
  150. package/dist/cli/ink-cli/components/TodoPanel.d.ts +0 -26
  151. package/dist/cli/ink-cli/components/TodoPanel.d.ts.map +0 -1
  152. package/dist/cli/ink-cli/components/TodoPanel.js +0 -62
  153. package/dist/cli/ink-cli/components/base/BaseAutocomplete.d.ts +0 -29
  154. package/dist/cli/ink-cli/components/base/BaseAutocomplete.d.ts.map +0 -1
  155. package/dist/cli/ink-cli/components/base/BaseAutocomplete.js +0 -98
  156. package/dist/cli/ink-cli/components/base/BaseSelector.d.ts +0 -37
  157. package/dist/cli/ink-cli/components/base/BaseSelector.d.ts.map +0 -1
  158. package/dist/cli/ink-cli/components/base/BaseSelector.js +0 -128
  159. package/dist/cli/ink-cli/components/base/index.d.ts +0 -6
  160. package/dist/cli/ink-cli/components/base/index.d.ts.map +0 -1
  161. package/dist/cli/ink-cli/components/base/index.js +0 -5
  162. package/dist/cli/ink-cli/components/chat/ChatView.d.ts +0 -19
  163. package/dist/cli/ink-cli/components/chat/ChatView.d.ts.map +0 -1
  164. package/dist/cli/ink-cli/components/chat/ChatView.js +0 -11
  165. package/dist/cli/ink-cli/components/chat/Footer.d.ts +0 -9
  166. package/dist/cli/ink-cli/components/chat/Footer.d.ts.map +0 -1
  167. package/dist/cli/ink-cli/components/chat/Footer.js +0 -8
  168. package/dist/cli/ink-cli/components/chat/Header.d.ts +0 -18
  169. package/dist/cli/ink-cli/components/chat/Header.d.ts.map +0 -1
  170. package/dist/cli/ink-cli/components/chat/Header.js +0 -16
  171. package/dist/cli/ink-cli/components/chat/MessageItem.d.ts +0 -21
  172. package/dist/cli/ink-cli/components/chat/MessageItem.d.ts.map +0 -1
  173. package/dist/cli/ink-cli/components/chat/MessageItem.js +0 -182
  174. package/dist/cli/ink-cli/components/chat/MessageList.d.ts +0 -16
  175. package/dist/cli/ink-cli/components/chat/MessageList.d.ts.map +0 -1
  176. package/dist/cli/ink-cli/components/chat/MessageList.js +0 -20
  177. package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.d.ts +0 -16
  178. package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.d.ts.map +0 -1
  179. package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.js +0 -27
  180. package/dist/cli/ink-cli/components/chat/ToolIcon.d.ts +0 -18
  181. package/dist/cli/ink-cli/components/chat/ToolIcon.d.ts.map +0 -1
  182. package/dist/cli/ink-cli/components/chat/ToolIcon.js +0 -36
  183. package/dist/cli/ink-cli/components/chat/index.d.ts +0 -10
  184. package/dist/cli/ink-cli/components/chat/index.d.ts.map +0 -1
  185. package/dist/cli/ink-cli/components/chat/index.js +0 -9
  186. package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.d.ts +0 -10
  187. package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.d.ts.map +0 -1
  188. package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.js +0 -6
  189. package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.d.ts +0 -10
  190. package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.d.ts.map +0 -1
  191. package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.js +0 -15
  192. package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.d.ts +0 -10
  193. package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.d.ts.map +0 -1
  194. package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.js +0 -9
  195. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.d.ts +0 -10
  196. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.d.ts.map +0 -1
  197. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.js +0 -37
  198. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.d.ts +0 -10
  199. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.d.ts.map +0 -1
  200. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.js +0 -9
  201. package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.d.ts +0 -10
  202. package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.d.ts.map +0 -1
  203. package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.js +0 -6
  204. package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.d.ts +0 -10
  205. package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.d.ts.map +0 -1
  206. package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.js +0 -29
  207. package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.d.ts +0 -45
  208. package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.d.ts.map +0 -1
  209. package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.js +0 -38
  210. package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.d.ts +0 -10
  211. package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.d.ts.map +0 -1
  212. package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.js +0 -6
  213. package/dist/cli/ink-cli/components/chat/styled-boxes/index.d.ts +0 -13
  214. package/dist/cli/ink-cli/components/chat/styled-boxes/index.d.ts.map +0 -1
  215. package/dist/cli/ink-cli/components/chat/styled-boxes/index.js +0 -12
  216. package/dist/cli/ink-cli/components/input/InputArea.d.ts +0 -46
  217. package/dist/cli/ink-cli/components/input/InputArea.d.ts.map +0 -1
  218. package/dist/cli/ink-cli/components/input/InputArea.js +0 -6
  219. package/dist/cli/ink-cli/components/input/index.d.ts +0 -5
  220. package/dist/cli/ink-cli/components/input/index.d.ts.map +0 -1
  221. package/dist/cli/ink-cli/components/input/index.js +0 -4
  222. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts +0 -27
  223. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts.map +0 -1
  224. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.js +0 -182
  225. package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts +0 -29
  226. package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts.map +0 -1
  227. package/dist/cli/ink-cli/components/modes/StaticCLI.js +0 -114
  228. package/dist/cli/ink-cli/components/modes/index.d.ts +0 -10
  229. package/dist/cli/ink-cli/components/modes/index.d.ts.map +0 -1
  230. package/dist/cli/ink-cli/components/modes/index.js +0 -9
  231. package/dist/cli/ink-cli/components/overlays/ApiKeyInput.d.ts +0 -26
  232. package/dist/cli/ink-cli/components/overlays/ApiKeyInput.d.ts.map +0 -1
  233. package/dist/cli/ink-cli/components/overlays/ApiKeyInput.js +0 -92
  234. package/dist/cli/ink-cli/components/overlays/CommandOutputOverlay.d.ts +0 -13
  235. package/dist/cli/ink-cli/components/overlays/CommandOutputOverlay.d.ts.map +0 -1
  236. package/dist/cli/ink-cli/components/overlays/CommandOutputOverlay.js +0 -60
  237. package/dist/cli/ink-cli/components/overlays/ContextStatsOverlay.d.ts +0 -26
  238. package/dist/cli/ink-cli/components/overlays/ContextStatsOverlay.d.ts.map +0 -1
  239. package/dist/cli/ink-cli/components/overlays/ContextStatsOverlay.js +0 -241
  240. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.d.ts +0 -29
  241. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.d.ts.map +0 -1
  242. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.js +0 -301
  243. package/dist/cli/ink-cli/components/overlays/ExportWizard.d.ts +0 -22
  244. package/dist/cli/ink-cli/components/overlays/ExportWizard.d.ts.map +0 -1
  245. package/dist/cli/ink-cli/components/overlays/ExportWizard.js +0 -308
  246. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts +0 -23
  247. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts.map +0 -1
  248. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.js +0 -70
  249. package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.d.ts +0 -20
  250. package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.d.ts.map +0 -1
  251. package/dist/cli/ink-cli/components/overlays/MarketplaceAddPrompt.js +0 -81
  252. package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.d.ts +0 -31
  253. package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.d.ts.map +0 -1
  254. package/dist/cli/ink-cli/components/overlays/MarketplaceBrowser.js +0 -297
  255. package/dist/cli/ink-cli/components/overlays/McpAddChoice.d.ts +0 -22
  256. package/dist/cli/ink-cli/components/overlays/McpAddChoice.d.ts.map +0 -1
  257. package/dist/cli/ink-cli/components/overlays/McpAddChoice.js +0 -59
  258. package/dist/cli/ink-cli/components/overlays/McpAddSelector.d.ts +0 -26
  259. package/dist/cli/ink-cli/components/overlays/McpAddSelector.d.ts.map +0 -1
  260. package/dist/cli/ink-cli/components/overlays/McpAddSelector.js +0 -73
  261. package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.d.ts +0 -21
  262. package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.d.ts.map +0 -1
  263. package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.js +0 -51
  264. package/dist/cli/ink-cli/components/overlays/McpCustomWizard.d.ts +0 -29
  265. package/dist/cli/ink-cli/components/overlays/McpCustomWizard.d.ts.map +0 -1
  266. package/dist/cli/ink-cli/components/overlays/McpCustomWizard.js +0 -215
  267. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.d.ts +0 -22
  268. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.d.ts.map +0 -1
  269. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.js +0 -80
  270. package/dist/cli/ink-cli/components/overlays/McpSelector.d.ts +0 -21
  271. package/dist/cli/ink-cli/components/overlays/McpSelector.d.ts.map +0 -1
  272. package/dist/cli/ink-cli/components/overlays/McpSelector.js +0 -52
  273. package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts +0 -28
  274. package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts.map +0 -1
  275. package/dist/cli/ink-cli/components/overlays/McpServerActions.js +0 -93
  276. package/dist/cli/ink-cli/components/overlays/McpServerList.d.ts +0 -29
  277. package/dist/cli/ink-cli/components/overlays/McpServerList.d.ts.map +0 -1
  278. package/dist/cli/ink-cli/components/overlays/McpServerList.js +0 -116
  279. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts +0 -28
  280. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts.map +0 -1
  281. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.js +0 -743
  282. package/dist/cli/ink-cli/components/overlays/PluginActions.d.ts +0 -27
  283. package/dist/cli/ink-cli/components/overlays/PluginActions.d.ts.map +0 -1
  284. package/dist/cli/ink-cli/components/overlays/PluginActions.js +0 -66
  285. package/dist/cli/ink-cli/components/overlays/PluginList.d.ts +0 -21
  286. package/dist/cli/ink-cli/components/overlays/PluginList.d.ts.map +0 -1
  287. package/dist/cli/ink-cli/components/overlays/PluginList.js +0 -70
  288. package/dist/cli/ink-cli/components/overlays/PluginManager.d.ts +0 -21
  289. package/dist/cli/ink-cli/components/overlays/PluginManager.d.ts.map +0 -1
  290. package/dist/cli/ink-cli/components/overlays/PluginManager.js +0 -63
  291. package/dist/cli/ink-cli/components/overlays/PromptAddChoice.d.ts +0 -22
  292. package/dist/cli/ink-cli/components/overlays/PromptAddChoice.d.ts.map +0 -1
  293. package/dist/cli/ink-cli/components/overlays/PromptAddChoice.js +0 -52
  294. package/dist/cli/ink-cli/components/overlays/PromptAddWizard.d.ts +0 -29
  295. package/dist/cli/ink-cli/components/overlays/PromptAddWizard.d.ts.map +0 -1
  296. package/dist/cli/ink-cli/components/overlays/PromptAddWizard.js +0 -166
  297. package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.d.ts +0 -27
  298. package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.d.ts.map +0 -1
  299. package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.js +0 -119
  300. package/dist/cli/ink-cli/components/overlays/PromptList.d.ts +0 -33
  301. package/dist/cli/ink-cli/components/overlays/PromptList.d.ts.map +0 -1
  302. package/dist/cli/ink-cli/components/overlays/PromptList.js +0 -143
  303. package/dist/cli/ink-cli/components/overlays/SearchOverlay.d.ts +0 -23
  304. package/dist/cli/ink-cli/components/overlays/SearchOverlay.d.ts.map +0 -1
  305. package/dist/cli/ink-cli/components/overlays/SearchOverlay.js +0 -189
  306. package/dist/cli/ink-cli/components/overlays/SessionRenameOverlay.d.ts +0 -21
  307. package/dist/cli/ink-cli/components/overlays/SessionRenameOverlay.d.ts.map +0 -1
  308. package/dist/cli/ink-cli/components/overlays/SessionRenameOverlay.js +0 -63
  309. package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.d.ts +0 -26
  310. package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.d.ts.map +0 -1
  311. package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.js +0 -126
  312. package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.d.ts +0 -21
  313. package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.d.ts.map +0 -1
  314. package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.js +0 -42
  315. package/dist/cli/ink-cli/components/overlays/SoundsSelector.d.ts +0 -21
  316. package/dist/cli/ink-cli/components/overlays/SoundsSelector.d.ts.map +0 -1
  317. package/dist/cli/ink-cli/components/overlays/SoundsSelector.js +0 -566
  318. package/dist/cli/ink-cli/components/overlays/StreamSelector.d.ts +0 -20
  319. package/dist/cli/ink-cli/components/overlays/StreamSelector.d.ts.map +0 -1
  320. package/dist/cli/ink-cli/components/overlays/StreamSelector.js +0 -58
  321. package/dist/cli/ink-cli/components/overlays/ToolBrowser.d.ts +0 -26
  322. package/dist/cli/ink-cli/components/overlays/ToolBrowser.d.ts.map +0 -1
  323. package/dist/cli/ink-cli/components/overlays/ToolBrowser.js +0 -697
  324. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.d.ts +0 -25
  325. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.d.ts.map +0 -1
  326. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.js +0 -604
  327. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.d.ts +0 -15
  328. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.d.ts.map +0 -1
  329. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.js +0 -14
  330. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts +0 -42
  331. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts.map +0 -1
  332. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.js +0 -547
  333. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts +0 -25
  334. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts.map +0 -1
  335. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.js +0 -29
  336. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts +0 -17
  337. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts.map +0 -1
  338. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.js +0 -11
  339. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts +0 -20
  340. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts.map +0 -1
  341. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.js +0 -10
  342. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts +0 -30
  343. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts.map +0 -1
  344. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.js +0 -13
  345. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.d.ts +0 -8
  346. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.d.ts.map +0 -1
  347. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.js +0 -7
  348. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.d.ts +0 -85
  349. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.d.ts.map +0 -1
  350. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.js +0 -38
  351. package/dist/cli/ink-cli/components/renderers/DiffRenderer.d.ts +0 -21
  352. package/dist/cli/ink-cli/components/renderers/DiffRenderer.d.ts.map +0 -1
  353. package/dist/cli/ink-cli/components/renderers/DiffRenderer.js +0 -65
  354. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts +0 -30
  355. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts.map +0 -1
  356. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.js +0 -67
  357. package/dist/cli/ink-cli/components/renderers/FileRenderer.d.ts +0 -21
  358. package/dist/cli/ink-cli/components/renderers/FileRenderer.d.ts.map +0 -1
  359. package/dist/cli/ink-cli/components/renderers/FileRenderer.js +0 -37
  360. package/dist/cli/ink-cli/components/renderers/GenericRenderer.d.ts +0 -21
  361. package/dist/cli/ink-cli/components/renderers/GenericRenderer.d.ts.map +0 -1
  362. package/dist/cli/ink-cli/components/renderers/GenericRenderer.js +0 -26
  363. package/dist/cli/ink-cli/components/renderers/SearchRenderer.d.ts +0 -20
  364. package/dist/cli/ink-cli/components/renderers/SearchRenderer.d.ts.map +0 -1
  365. package/dist/cli/ink-cli/components/renderers/SearchRenderer.js +0 -26
  366. package/dist/cli/ink-cli/components/renderers/ShellRenderer.d.ts +0 -21
  367. package/dist/cli/ink-cli/components/renderers/ShellRenderer.d.ts.map +0 -1
  368. package/dist/cli/ink-cli/components/renderers/ShellRenderer.js +0 -15
  369. package/dist/cli/ink-cli/components/renderers/diff-shared.d.ts +0 -61
  370. package/dist/cli/ink-cli/components/renderers/diff-shared.d.ts.map +0 -1
  371. package/dist/cli/ink-cli/components/renderers/diff-shared.js +0 -158
  372. package/dist/cli/ink-cli/components/renderers/index.d.ts +0 -28
  373. package/dist/cli/ink-cli/components/renderers/index.d.ts.map +0 -1
  374. package/dist/cli/ink-cli/components/renderers/index.js +0 -36
  375. package/dist/cli/ink-cli/components/shared/FocusOverlayFrame.d.ts +0 -7
  376. package/dist/cli/ink-cli/components/shared/FocusOverlayFrame.d.ts.map +0 -1
  377. package/dist/cli/ink-cli/components/shared/FocusOverlayFrame.js +0 -8
  378. package/dist/cli/ink-cli/components/shared/HintBar.d.ts +0 -6
  379. package/dist/cli/ink-cli/components/shared/HintBar.d.ts.map +0 -1
  380. package/dist/cli/ink-cli/components/shared/HintBar.js +0 -6
  381. package/dist/cli/ink-cli/components/shared/MarkdownText.d.ts +0 -38
  382. package/dist/cli/ink-cli/components/shared/MarkdownText.d.ts.map +0 -1
  383. package/dist/cli/ink-cli/components/shared/MarkdownText.js +0 -389
  384. package/dist/cli/ink-cli/components/shared/VirtualizedList.d.ts +0 -44
  385. package/dist/cli/ink-cli/components/shared/VirtualizedList.d.ts.map +0 -1
  386. package/dist/cli/ink-cli/components/shared/VirtualizedList.js +0 -300
  387. package/dist/cli/ink-cli/components/shared/text-buffer.d.ts +0 -185
  388. package/dist/cli/ink-cli/components/shared/text-buffer.d.ts.map +0 -1
  389. package/dist/cli/ink-cli/components/shared/text-buffer.js +0 -1338
  390. package/dist/cli/ink-cli/constants/processingPhrases.d.ts +0 -10
  391. package/dist/cli/ink-cli/constants/processingPhrases.d.ts.map +0 -1
  392. package/dist/cli/ink-cli/constants/processingPhrases.js +0 -92
  393. package/dist/cli/ink-cli/constants/spinnerFrames.d.ts +0 -2
  394. package/dist/cli/ink-cli/constants/spinnerFrames.d.ts.map +0 -1
  395. package/dist/cli/ink-cli/constants/spinnerFrames.js +0 -1
  396. package/dist/cli/ink-cli/constants/tips.d.ts +0 -15
  397. package/dist/cli/ink-cli/constants/tips.d.ts.map +0 -1
  398. package/dist/cli/ink-cli/constants/tips.js +0 -58
  399. package/dist/cli/ink-cli/containers/InputContainer.d.ts +0 -62
  400. package/dist/cli/ink-cli/containers/InputContainer.d.ts.map +0 -1
  401. package/dist/cli/ink-cli/containers/InputContainer.js +0 -643
  402. package/dist/cli/ink-cli/containers/OverlayContainer.d.ts +0 -42
  403. package/dist/cli/ink-cli/containers/OverlayContainer.d.ts.map +0 -1
  404. package/dist/cli/ink-cli/containers/OverlayContainer.js +0 -1840
  405. package/dist/cli/ink-cli/containers/index.d.ts +0 -6
  406. package/dist/cli/ink-cli/containers/index.d.ts.map +0 -1
  407. package/dist/cli/ink-cli/containers/index.js +0 -5
  408. package/dist/cli/ink-cli/contexts/KeypressContext.d.ts +0 -36
  409. package/dist/cli/ink-cli/contexts/KeypressContext.d.ts.map +0 -1
  410. package/dist/cli/ink-cli/contexts/KeypressContext.js +0 -461
  411. package/dist/cli/ink-cli/contexts/MouseContext.d.ts +0 -27
  412. package/dist/cli/ink-cli/contexts/MouseContext.d.ts.map +0 -1
  413. package/dist/cli/ink-cli/contexts/MouseContext.js +0 -102
  414. package/dist/cli/ink-cli/contexts/ScrollProvider.d.ts +0 -33
  415. package/dist/cli/ink-cli/contexts/ScrollProvider.d.ts.map +0 -1
  416. package/dist/cli/ink-cli/contexts/ScrollProvider.js +0 -170
  417. package/dist/cli/ink-cli/contexts/SoundContext.d.ts +0 -23
  418. package/dist/cli/ink-cli/contexts/SoundContext.d.ts.map +0 -1
  419. package/dist/cli/ink-cli/contexts/SoundContext.js +0 -22
  420. package/dist/cli/ink-cli/contexts/index.d.ts +0 -8
  421. package/dist/cli/ink-cli/contexts/index.d.ts.map +0 -1
  422. package/dist/cli/ink-cli/contexts/index.js +0 -7
  423. package/dist/cli/ink-cli/hooks/index.d.ts +0 -12
  424. package/dist/cli/ink-cli/hooks/index.d.ts.map +0 -1
  425. package/dist/cli/ink-cli/hooks/index.js +0 -14
  426. package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts +0 -49
  427. package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts.map +0 -1
  428. package/dist/cli/ink-cli/hooks/useAgentEvents.js +0 -369
  429. package/dist/cli/ink-cli/hooks/useAnimationTick.d.ts +0 -11
  430. package/dist/cli/ink-cli/hooks/useAnimationTick.d.ts.map +0 -1
  431. package/dist/cli/ink-cli/hooks/useAnimationTick.js +0 -54
  432. package/dist/cli/ink-cli/hooks/useBatchedScroll.d.ts +0 -14
  433. package/dist/cli/ink-cli/hooks/useBatchedScroll.d.ts.map +0 -1
  434. package/dist/cli/ink-cli/hooks/useBatchedScroll.js +0 -25
  435. package/dist/cli/ink-cli/hooks/useCLIState.d.ts +0 -52
  436. package/dist/cli/ink-cli/hooks/useCLIState.d.ts.map +0 -1
  437. package/dist/cli/ink-cli/hooks/useCLIState.js +0 -224
  438. package/dist/cli/ink-cli/hooks/useElapsedTime.d.ts +0 -24
  439. package/dist/cli/ink-cli/hooks/useElapsedTime.d.ts.map +0 -1
  440. package/dist/cli/ink-cli/hooks/useElapsedTime.js +0 -69
  441. package/dist/cli/ink-cli/hooks/useGitBranch.d.ts +0 -13
  442. package/dist/cli/ink-cli/hooks/useGitBranch.d.ts.map +0 -1
  443. package/dist/cli/ink-cli/hooks/useGitBranch.js +0 -35
  444. package/dist/cli/ink-cli/hooks/useHistorySearch.d.ts +0 -61
  445. package/dist/cli/ink-cli/hooks/useHistorySearch.d.ts.map +0 -1
  446. package/dist/cli/ink-cli/hooks/useHistorySearch.js +0 -210
  447. package/dist/cli/ink-cli/hooks/useInputHistory.d.ts +0 -18
  448. package/dist/cli/ink-cli/hooks/useInputHistory.d.ts.map +0 -1
  449. package/dist/cli/ink-cli/hooks/useInputHistory.js +0 -26
  450. package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts +0 -136
  451. package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts.map +0 -1
  452. package/dist/cli/ink-cli/hooks/useInputOrchestrator.js +0 -715
  453. package/dist/cli/ink-cli/hooks/useKeyboardShortcuts.d.ts +0 -21
  454. package/dist/cli/ink-cli/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  455. package/dist/cli/ink-cli/hooks/useKeyboardShortcuts.js +0 -80
  456. package/dist/cli/ink-cli/hooks/useKeypress.d.ts +0 -18
  457. package/dist/cli/ink-cli/hooks/useKeypress.d.ts.map +0 -1
  458. package/dist/cli/ink-cli/hooks/useKeypress.js +0 -26
  459. package/dist/cli/ink-cli/hooks/usePhraseCycler.d.ts +0 -30
  460. package/dist/cli/ink-cli/hooks/usePhraseCycler.d.ts.map +0 -1
  461. package/dist/cli/ink-cli/hooks/usePhraseCycler.js +0 -68
  462. package/dist/cli/ink-cli/hooks/useStreaming.d.ts +0 -19
  463. package/dist/cli/ink-cli/hooks/useStreaming.d.ts.map +0 -1
  464. package/dist/cli/ink-cli/hooks/useStreaming.js +0 -26
  465. package/dist/cli/ink-cli/hooks/useTerminalSize.d.ts +0 -14
  466. package/dist/cli/ink-cli/hooks/useTerminalSize.d.ts.map +0 -1
  467. package/dist/cli/ink-cli/hooks/useTerminalSize.js +0 -31
  468. package/dist/cli/ink-cli/hooks/useTokenCounter.d.ts +0 -46
  469. package/dist/cli/ink-cli/hooks/useTokenCounter.d.ts.map +0 -1
  470. package/dist/cli/ink-cli/hooks/useTokenCounter.js +0 -122
  471. package/dist/cli/ink-cli/services/CommandService.d.ts +0 -58
  472. package/dist/cli/ink-cli/services/CommandService.d.ts.map +0 -1
  473. package/dist/cli/ink-cli/services/CommandService.js +0 -64
  474. package/dist/cli/ink-cli/services/InputService.d.ts +0 -40
  475. package/dist/cli/ink-cli/services/InputService.d.ts.map +0 -1
  476. package/dist/cli/ink-cli/services/InputService.js +0 -87
  477. package/dist/cli/ink-cli/services/MessageService.d.ts +0 -35
  478. package/dist/cli/ink-cli/services/MessageService.d.ts.map +0 -1
  479. package/dist/cli/ink-cli/services/MessageService.js +0 -49
  480. package/dist/cli/ink-cli/services/index.d.ts +0 -8
  481. package/dist/cli/ink-cli/services/index.d.ts.map +0 -1
  482. package/dist/cli/ink-cli/services/index.js +0 -7
  483. package/dist/cli/ink-cli/services/processStream.d.ts +0 -75
  484. package/dist/cli/ink-cli/services/processStream.d.ts.map +0 -1
  485. package/dist/cli/ink-cli/services/processStream.js +0 -951
  486. package/dist/cli/ink-cli/state/actions.d.ts +0 -124
  487. package/dist/cli/ink-cli/state/actions.d.ts.map +0 -1
  488. package/dist/cli/ink-cli/state/actions.js +0 -8
  489. package/dist/cli/ink-cli/state/index.d.ts +0 -10
  490. package/dist/cli/ink-cli/state/index.d.ts.map +0 -1
  491. package/dist/cli/ink-cli/state/index.js +0 -8
  492. package/dist/cli/ink-cli/state/initialState.d.ts +0 -12
  493. package/dist/cli/ink-cli/state/initialState.d.ts.map +0 -1
  494. package/dist/cli/ink-cli/state/initialState.js +0 -58
  495. package/dist/cli/ink-cli/state/reducer.d.ts +0 -15
  496. package/dist/cli/ink-cli/state/reducer.d.ts.map +0 -1
  497. package/dist/cli/ink-cli/state/reducer.js +0 -341
  498. package/dist/cli/ink-cli/state/streaming-state.d.ts +0 -27
  499. package/dist/cli/ink-cli/state/streaming-state.d.ts.map +0 -1
  500. package/dist/cli/ink-cli/state/streaming-state.js +0 -39
  501. package/dist/cli/ink-cli/state/types.d.ts +0 -378
  502. package/dist/cli/ink-cli/state/types.d.ts.map +0 -1
  503. package/dist/cli/ink-cli/state/types.js +0 -5
  504. package/dist/cli/ink-cli/utils/bracketedPaste.d.ts +0 -22
  505. package/dist/cli/ink-cli/utils/bracketedPaste.d.ts.map +0 -1
  506. package/dist/cli/ink-cli/utils/bracketedPaste.js +0 -27
  507. package/dist/cli/ink-cli/utils/clipboardUtils.d.ts +0 -49
  508. package/dist/cli/ink-cli/utils/clipboardUtils.d.ts.map +0 -1
  509. package/dist/cli/ink-cli/utils/clipboardUtils.js +0 -356
  510. package/dist/cli/ink-cli/utils/commandOverlays.d.ts +0 -33
  511. package/dist/cli/ink-cli/utils/commandOverlays.d.ts.map +0 -1
  512. package/dist/cli/ink-cli/utils/commandOverlays.js +0 -85
  513. package/dist/cli/ink-cli/utils/debugLog.d.ts +0 -38
  514. package/dist/cli/ink-cli/utils/debugLog.d.ts.map +0 -1
  515. package/dist/cli/ink-cli/utils/debugLog.js +0 -66
  516. package/dist/cli/ink-cli/utils/elicitationSchema.d.ts +0 -11
  517. package/dist/cli/ink-cli/utils/elicitationSchema.d.ts.map +0 -1
  518. package/dist/cli/ink-cli/utils/elicitationSchema.js +0 -80
  519. package/dist/cli/ink-cli/utils/idGenerator.d.ts +0 -10
  520. package/dist/cli/ink-cli/utils/idGenerator.d.ts.map +0 -1
  521. package/dist/cli/ink-cli/utils/idGenerator.js +0 -12
  522. package/dist/cli/ink-cli/utils/index.d.ts +0 -9
  523. package/dist/cli/ink-cli/utils/index.d.ts.map +0 -1
  524. package/dist/cli/ink-cli/utils/index.js +0 -13
  525. package/dist/cli/ink-cli/utils/input.d.ts +0 -25
  526. package/dist/cli/ink-cli/utils/input.d.ts.map +0 -1
  527. package/dist/cli/ink-cli/utils/input.js +0 -56
  528. package/dist/cli/ink-cli/utils/inputParsing.d.ts +0 -31
  529. package/dist/cli/ink-cli/utils/inputParsing.d.ts.map +0 -1
  530. package/dist/cli/ink-cli/utils/inputParsing.js +0 -70
  531. package/dist/cli/ink-cli/utils/llm-provider-display.d.ts +0 -3
  532. package/dist/cli/ink-cli/utils/llm-provider-display.d.ts.map +0 -1
  533. package/dist/cli/ink-cli/utils/llm-provider-display.js +0 -22
  534. package/dist/cli/ink-cli/utils/messageFormatting.d.ts +0 -125
  535. package/dist/cli/ink-cli/utils/messageFormatting.d.ts.map +0 -1
  536. package/dist/cli/ink-cli/utils/messageFormatting.js +0 -485
  537. package/dist/cli/ink-cli/utils/mouse.d.ts +0 -61
  538. package/dist/cli/ink-cli/utils/mouse.d.ts.map +0 -1
  539. package/dist/cli/ink-cli/utils/mouse.js +0 -209
  540. package/dist/cli/ink-cli/utils/overlayPresentation.d.ts +0 -19
  541. package/dist/cli/ink-cli/utils/overlayPresentation.d.ts.map +0 -1
  542. package/dist/cli/ink-cli/utils/overlayPresentation.js +0 -33
  543. package/dist/cli/ink-cli/utils/overlaySizing.d.ts +0 -19
  544. package/dist/cli/ink-cli/utils/overlaySizing.d.ts.map +0 -1
  545. package/dist/cli/ink-cli/utils/overlaySizing.js +0 -11
  546. package/dist/cli/ink-cli/utils/soundNotification.d.ts +0 -77
  547. package/dist/cli/ink-cli/utils/soundNotification.d.ts.map +0 -1
  548. package/dist/cli/ink-cli/utils/soundNotification.js +0 -226
  549. package/dist/cli/ink-cli/utils/streamSplitter.d.ts +0 -44
  550. package/dist/cli/ink-cli/utils/streamSplitter.d.ts.map +0 -1
  551. package/dist/cli/ink-cli/utils/streamSplitter.js +0 -154
  552. package/dist/cli/ink-cli/utils/textUtils.d.ts +0 -63
  553. package/dist/cli/ink-cli/utils/textUtils.d.ts.map +0 -1
  554. package/dist/cli/ink-cli/utils/textUtils.js +0 -248
  555. package/dist/cli/ink-cli/utils/toolUtils.d.ts +0 -20
  556. package/dist/cli/ink-cli/utils/toolUtils.d.ts.map +0 -1
  557. package/dist/cli/ink-cli/utils/toolUtils.js +0 -25
  558. package/dist/webui/assets/index-C9JXwpvo.css +0 -1
  559. package/dist/webui/assets/index-CKhumsZA.js +0 -2059
  560. package/dist/webui/assets/react-vendor-gH-7aFTg.js +0 -17
  561. package/dist/webui/assets/tanstack-Br79RQ-n.js +0 -25
@@ -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
- }