dexto 1.3.0 β†’ 1.5.0

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 (494) hide show
  1. package/README.md +87 -22
  2. package/dist/agents/agent-registry.json +9 -0
  3. package/dist/agents/agent-template.yml +2 -2
  4. package/dist/agents/coding-agent/coding-agent.yml +27 -16
  5. package/dist/agents/database-agent/database-agent.yml +2 -2
  6. package/dist/agents/default-agent.yml +9 -7
  7. package/dist/agents/github-agent/github-agent.yml +2 -2
  8. package/dist/agents/product-name-researcher/product-name-researcher.yml +2 -2
  9. package/dist/agents/talk2pdf-agent/talk2pdf-agent.yml +2 -2
  10. package/dist/analytics/events.d.ts +13 -6
  11. package/dist/analytics/events.d.ts.map +1 -1
  12. package/dist/analytics/index.d.ts +1 -1
  13. package/dist/analytics/index.d.ts.map +1 -1
  14. package/dist/analytics/index.js +6 -2
  15. package/dist/api/server-hono.d.ts.map +1 -1
  16. package/dist/api/server-hono.js +65 -9
  17. package/dist/cli/cli-subscriber.d.ts +4 -0
  18. package/dist/cli/cli-subscriber.d.ts.map +1 -1
  19. package/dist/cli/cli-subscriber.js +47 -3
  20. package/dist/cli/commands/create-app.d.ts +16 -14
  21. package/dist/cli/commands/create-app.d.ts.map +1 -1
  22. package/dist/cli/commands/create-app.js +626 -102
  23. package/dist/cli/commands/create-image.d.ts +7 -0
  24. package/dist/cli/commands/create-image.d.ts.map +1 -0
  25. package/dist/cli/commands/create-image.js +201 -0
  26. package/dist/cli/commands/helpers/formatters.d.ts.map +1 -1
  27. package/dist/cli/commands/helpers/formatters.js +9 -8
  28. package/dist/cli/commands/index.d.ts +2 -1
  29. package/dist/cli/commands/index.d.ts.map +1 -1
  30. package/dist/cli/commands/index.js +2 -1
  31. package/dist/cli/commands/init-app.js +7 -7
  32. package/dist/cli/commands/install.d.ts +0 -3
  33. package/dist/cli/commands/install.d.ts.map +1 -1
  34. package/dist/cli/commands/install.js +19 -70
  35. package/dist/cli/commands/interactive-commands/command-parser.d.ts +17 -14
  36. package/dist/cli/commands/interactive-commands/command-parser.d.ts.map +1 -1
  37. package/dist/cli/commands/interactive-commands/command-parser.js +7 -22
  38. package/dist/cli/commands/interactive-commands/commands.d.ts +4 -4
  39. package/dist/cli/commands/interactive-commands/commands.d.ts.map +1 -1
  40. package/dist/cli/commands/interactive-commands/commands.js +34 -42
  41. package/dist/cli/commands/interactive-commands/documentation-commands.d.ts.map +1 -1
  42. package/dist/cli/commands/interactive-commands/documentation-commands.js +4 -7
  43. package/dist/cli/commands/interactive-commands/general-commands.d.ts.map +1 -1
  44. package/dist/cli/commands/interactive-commands/general-commands.js +159 -117
  45. package/dist/cli/commands/interactive-commands/mcp/index.d.ts +9 -3
  46. package/dist/cli/commands/interactive-commands/mcp/index.d.ts.map +1 -1
  47. package/dist/cli/commands/interactive-commands/mcp/index.js +18 -3
  48. package/dist/cli/commands/interactive-commands/model/index.d.ts +8 -6
  49. package/dist/cli/commands/interactive-commands/model/index.d.ts.map +1 -1
  50. package/dist/cli/commands/interactive-commands/model/index.js +18 -6
  51. package/dist/cli/commands/interactive-commands/prompt-commands.d.ts +3 -2
  52. package/dist/cli/commands/interactive-commands/prompt-commands.d.ts.map +1 -1
  53. package/dist/cli/commands/interactive-commands/prompt-commands.js +77 -60
  54. package/dist/cli/commands/interactive-commands/session/index.d.ts +7 -12
  55. package/dist/cli/commands/interactive-commands/session/index.d.ts.map +1 -1
  56. package/dist/cli/commands/interactive-commands/session/index.js +7 -14
  57. package/dist/cli/commands/interactive-commands/session/session-commands.d.ts +10 -24
  58. package/dist/cli/commands/interactive-commands/session/session-commands.d.ts.map +1 -1
  59. package/dist/cli/commands/interactive-commands/session/session-commands.js +16 -371
  60. package/dist/cli/commands/interactive-commands/system/system-commands.d.ts +1 -0
  61. package/dist/cli/commands/interactive-commands/system/system-commands.d.ts.map +1 -1
  62. package/dist/cli/commands/interactive-commands/system/system-commands.js +106 -77
  63. package/dist/cli/commands/interactive-commands/tool-commands.d.ts +1 -1
  64. package/dist/cli/commands/interactive-commands/tool-commands.d.ts.map +1 -1
  65. package/dist/cli/commands/interactive-commands/tool-commands.js +5 -62
  66. package/dist/cli/commands/interactive-commands/utils/command-output.d.ts +13 -17
  67. package/dist/cli/commands/interactive-commands/utils/command-output.d.ts.map +1 -1
  68. package/dist/cli/commands/interactive-commands/utils/command-output.js +18 -37
  69. package/dist/cli/commands/list-agents.d.ts +2 -2
  70. package/dist/cli/commands/list-agents.d.ts.map +1 -1
  71. package/dist/cli/commands/list-agents.js +38 -34
  72. package/dist/cli/commands/session-commands.js +16 -16
  73. package/dist/cli/commands/setup.d.ts +13 -5
  74. package/dist/cli/commands/setup.d.ts.map +1 -1
  75. package/dist/cli/commands/setup.js +860 -65
  76. package/dist/cli/commands/uninstall.d.ts.map +1 -1
  77. package/dist/cli/commands/uninstall.js +4 -6
  78. package/dist/cli/commands/which.d.ts.map +1 -1
  79. package/dist/cli/commands/which.js +18 -4
  80. package/dist/cli/ink-cli/InkCLIRefactored.d.ts +9 -22
  81. package/dist/cli/ink-cli/InkCLIRefactored.d.ts.map +1 -1
  82. package/dist/cli/ink-cli/InkCLIRefactored.js +50 -133
  83. package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts +26 -3
  84. package/dist/cli/ink-cli/components/ApprovalPrompt.d.ts.map +1 -1
  85. package/dist/cli/ink-cli/components/ApprovalPrompt.js +182 -45
  86. package/dist/cli/ink-cli/components/CustomInput.js +1 -1
  87. package/dist/cli/ink-cli/components/EditableMultiLineInput.js +4 -4
  88. package/dist/cli/ink-cli/components/ElicitationForm.d.ts +22 -0
  89. package/dist/cli/ink-cli/components/ElicitationForm.d.ts.map +1 -0
  90. package/dist/cli/ink-cli/components/ElicitationForm.js +358 -0
  91. package/dist/cli/ink-cli/components/ErrorBoundary.d.ts.map +1 -1
  92. package/dist/cli/ink-cli/components/ErrorBoundary.js +1 -1
  93. package/dist/cli/ink-cli/components/Footer.d.ts +16 -0
  94. package/dist/cli/ink-cli/components/Footer.d.ts.map +1 -0
  95. package/dist/cli/ink-cli/components/Footer.js +27 -0
  96. package/dist/cli/ink-cli/components/HistorySearchBar.d.ts +17 -0
  97. package/dist/cli/ink-cli/components/HistorySearchBar.d.ts.map +1 -0
  98. package/dist/cli/ink-cli/components/HistorySearchBar.js +8 -0
  99. package/dist/cli/ink-cli/components/MultiLineInput.d.ts.map +1 -1
  100. package/dist/cli/ink-cli/components/MultiLineInput.js +3 -3
  101. package/dist/cli/ink-cli/components/ResourceAutocomplete.d.ts +15 -2
  102. package/dist/cli/ink-cli/components/ResourceAutocomplete.d.ts.map +1 -1
  103. package/dist/cli/ink-cli/components/ResourceAutocomplete.js +126 -82
  104. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.d.ts +15 -2
  105. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.d.ts.map +1 -1
  106. package/dist/cli/ink-cli/components/SlashCommandAutocomplete.js +228 -122
  107. package/dist/cli/ink-cli/components/StatusBar.d.ts +15 -2
  108. package/dist/cli/ink-cli/components/StatusBar.d.ts.map +1 -1
  109. package/dist/cli/ink-cli/components/StatusBar.js +50 -10
  110. package/dist/cli/ink-cli/components/TextBufferInput.d.ts +52 -0
  111. package/dist/cli/ink-cli/components/TextBufferInput.d.ts.map +1 -0
  112. package/dist/cli/ink-cli/components/TextBufferInput.js +471 -0
  113. package/dist/cli/ink-cli/components/base/BaseAutocomplete.js +4 -4
  114. package/dist/cli/ink-cli/components/base/BaseSelector.d.ts +11 -1
  115. package/dist/cli/ink-cli/components/base/BaseSelector.d.ts.map +1 -1
  116. package/dist/cli/ink-cli/components/base/BaseSelector.js +90 -49
  117. package/dist/cli/ink-cli/components/chat/Footer.js +1 -1
  118. package/dist/cli/ink-cli/components/chat/Header.d.ts +1 -0
  119. package/dist/cli/ink-cli/components/chat/Header.d.ts.map +1 -1
  120. package/dist/cli/ink-cli/components/chat/Header.js +6 -3
  121. package/dist/cli/ink-cli/components/chat/MessageItem.d.ts +3 -0
  122. package/dist/cli/ink-cli/components/chat/MessageItem.d.ts.map +1 -1
  123. package/dist/cli/ink-cli/components/chat/MessageItem.js +95 -9
  124. package/dist/cli/ink-cli/components/chat/MessageList.js +1 -1
  125. package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.d.ts +16 -0
  126. package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.d.ts.map +1 -0
  127. package/dist/cli/ink-cli/components/chat/QueuedMessagesDisplay.js +27 -0
  128. package/dist/cli/ink-cli/components/chat/ToolIcon.d.ts +5 -3
  129. package/dist/cli/ink-cli/components/chat/ToolIcon.d.ts.map +1 -1
  130. package/dist/cli/ink-cli/components/chat/ToolIcon.js +21 -7
  131. package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.d.ts +10 -0
  132. package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.d.ts.map +1 -0
  133. package/dist/cli/ink-cli/components/chat/styled-boxes/ConfigBox.js +6 -0
  134. package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.d.ts +10 -0
  135. package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.d.ts.map +1 -0
  136. package/dist/cli/ink-cli/components/chat/styled-boxes/HelpBox.js +15 -0
  137. package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.d.ts +10 -0
  138. package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.d.ts.map +1 -0
  139. package/dist/cli/ink-cli/components/chat/styled-boxes/LogConfigBox.js +9 -0
  140. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.d.ts +10 -0
  141. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.d.ts.map +1 -0
  142. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionHistoryBox.js +37 -0
  143. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.d.ts +10 -0
  144. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.d.ts.map +1 -0
  145. package/dist/cli/ink-cli/components/chat/styled-boxes/SessionListBox.js +9 -0
  146. package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.d.ts +10 -0
  147. package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.d.ts.map +1 -0
  148. package/dist/cli/ink-cli/components/chat/styled-boxes/ShortcutsBox.js +6 -0
  149. package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.d.ts +10 -0
  150. package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.d.ts.map +1 -0
  151. package/dist/cli/ink-cli/components/chat/styled-boxes/StatsBox.js +29 -0
  152. package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.d.ts +45 -0
  153. package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.d.ts.map +1 -0
  154. package/dist/cli/ink-cli/components/chat/styled-boxes/StyledBox.js +38 -0
  155. package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.d.ts +10 -0
  156. package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.d.ts.map +1 -0
  157. package/dist/cli/ink-cli/components/chat/styled-boxes/SyspromptBox.js +6 -0
  158. package/dist/cli/ink-cli/components/chat/styled-boxes/index.d.ts +13 -0
  159. package/dist/cli/ink-cli/components/chat/styled-boxes/index.d.ts.map +1 -0
  160. package/dist/cli/ink-cli/components/chat/styled-boxes/index.js +12 -0
  161. package/dist/cli/ink-cli/components/input/InputArea.d.ts +36 -8
  162. package/dist/cli/ink-cli/components/input/InputArea.d.ts.map +1 -1
  163. package/dist/cli/ink-cli/components/input/InputArea.js +3 -3
  164. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts +25 -0
  165. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.d.ts.map +1 -0
  166. package/dist/cli/ink-cli/components/modes/AlternateBufferCLI.js +166 -0
  167. package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts +27 -0
  168. package/dist/cli/ink-cli/components/modes/StaticCLI.d.ts.map +1 -0
  169. package/dist/cli/ink-cli/components/modes/StaticCLI.js +95 -0
  170. package/dist/cli/ink-cli/components/modes/index.d.ts +10 -0
  171. package/dist/cli/ink-cli/components/modes/index.d.ts.map +1 -0
  172. package/dist/cli/ink-cli/components/modes/index.js +9 -0
  173. package/dist/cli/ink-cli/components/overlays/ApiKeyInput.d.ts +26 -0
  174. package/dist/cli/ink-cli/components/overlays/ApiKeyInput.d.ts.map +1 -0
  175. package/dist/cli/ink-cli/components/overlays/ApiKeyInput.js +92 -0
  176. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.d.ts +29 -0
  177. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.d.ts.map +1 -0
  178. package/dist/cli/ink-cli/components/overlays/CustomModelWizard.js +286 -0
  179. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts +22 -0
  180. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.d.ts.map +1 -0
  181. package/dist/cli/ink-cli/components/overlays/LogLevelSelector.js +59 -0
  182. package/dist/cli/ink-cli/components/overlays/McpAddChoice.d.ts +22 -0
  183. package/dist/cli/ink-cli/components/overlays/McpAddChoice.d.ts.map +1 -0
  184. package/dist/cli/ink-cli/components/overlays/McpAddChoice.js +59 -0
  185. package/dist/cli/ink-cli/components/overlays/McpAddSelector.d.ts +26 -0
  186. package/dist/cli/ink-cli/components/overlays/McpAddSelector.d.ts.map +1 -0
  187. package/dist/cli/ink-cli/components/overlays/McpAddSelector.js +73 -0
  188. package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.d.ts +21 -0
  189. package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.d.ts.map +1 -0
  190. package/dist/cli/ink-cli/components/overlays/McpCustomTypeSelector.js +51 -0
  191. package/dist/cli/ink-cli/components/overlays/McpCustomWizard.d.ts +29 -0
  192. package/dist/cli/ink-cli/components/overlays/McpCustomWizard.d.ts.map +1 -0
  193. package/dist/cli/ink-cli/components/overlays/McpCustomWizard.js +215 -0
  194. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.d.ts +22 -0
  195. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.d.ts.map +1 -0
  196. package/dist/cli/ink-cli/components/overlays/McpRemoveSelector.js +74 -0
  197. package/dist/cli/ink-cli/components/overlays/McpSelector.d.ts +21 -0
  198. package/dist/cli/ink-cli/components/overlays/McpSelector.d.ts.map +1 -0
  199. package/dist/cli/ink-cli/components/overlays/McpSelector.js +52 -0
  200. package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts +28 -0
  201. package/dist/cli/ink-cli/components/overlays/McpServerActions.d.ts.map +1 -0
  202. package/dist/cli/ink-cli/components/overlays/McpServerActions.js +84 -0
  203. package/dist/cli/ink-cli/components/overlays/McpServerList.d.ts +29 -0
  204. package/dist/cli/ink-cli/components/overlays/McpServerList.d.ts.map +1 -0
  205. package/dist/cli/ink-cli/components/overlays/McpServerList.js +109 -0
  206. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts +15 -8
  207. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.d.ts.map +1 -1
  208. package/dist/cli/ink-cli/components/overlays/ModelSelectorRefactored.js +400 -23
  209. package/dist/cli/ink-cli/components/overlays/PromptAddChoice.d.ts +22 -0
  210. package/dist/cli/ink-cli/components/overlays/PromptAddChoice.d.ts.map +1 -0
  211. package/dist/cli/ink-cli/components/overlays/PromptAddChoice.js +52 -0
  212. package/dist/cli/ink-cli/components/overlays/PromptAddWizard.d.ts +29 -0
  213. package/dist/cli/ink-cli/components/overlays/PromptAddWizard.d.ts.map +1 -0
  214. package/dist/cli/ink-cli/components/overlays/PromptAddWizard.js +166 -0
  215. package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.d.ts +27 -0
  216. package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.d.ts.map +1 -0
  217. package/dist/cli/ink-cli/components/overlays/PromptDeleteSelector.js +119 -0
  218. package/dist/cli/ink-cli/components/overlays/PromptList.d.ts +33 -0
  219. package/dist/cli/ink-cli/components/overlays/PromptList.d.ts.map +1 -0
  220. package/dist/cli/ink-cli/components/overlays/PromptList.js +144 -0
  221. package/dist/cli/ink-cli/components/overlays/SearchOverlay.d.ts +23 -0
  222. package/dist/cli/ink-cli/components/overlays/SearchOverlay.d.ts.map +1 -0
  223. package/dist/cli/ink-cli/components/overlays/SearchOverlay.js +189 -0
  224. package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.d.ts +7 -2
  225. package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.d.ts.map +1 -1
  226. package/dist/cli/ink-cli/components/overlays/SessionSelectorRefactored.js +19 -5
  227. package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.d.ts +21 -0
  228. package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.d.ts.map +1 -0
  229. package/dist/cli/ink-cli/components/overlays/SessionSubcommandSelector.js +42 -0
  230. package/dist/cli/ink-cli/components/overlays/StreamSelector.d.ts +20 -0
  231. package/dist/cli/ink-cli/components/overlays/StreamSelector.d.ts.map +1 -0
  232. package/dist/cli/ink-cli/components/overlays/StreamSelector.js +58 -0
  233. package/dist/cli/ink-cli/components/overlays/ToolBrowser.d.ts +25 -0
  234. package/dist/cli/ink-cli/components/overlays/ToolBrowser.d.ts.map +1 -0
  235. package/dist/cli/ink-cli/components/overlays/ToolBrowser.js +400 -0
  236. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.d.ts +25 -0
  237. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.d.ts.map +1 -0
  238. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/LocalModelWizard.js +609 -0
  239. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.d.ts +15 -0
  240. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.d.ts.map +1 -0
  241. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/index.js +14 -0
  242. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts +33 -0
  243. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.d.ts.map +1 -0
  244. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/provider-config.js +419 -0
  245. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts +25 -0
  246. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts.map +1 -0
  247. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ApiKeyStep.js +29 -0
  248. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts +17 -0
  249. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts.map +1 -0
  250. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/ProviderSelector.js +11 -0
  251. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts +20 -0
  252. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts.map +1 -0
  253. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/SetupInfoBanner.js +10 -0
  254. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts +30 -0
  255. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts.map +1 -0
  256. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/WizardStepInput.js +13 -0
  257. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.d.ts +8 -0
  258. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.d.ts.map +1 -0
  259. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/shared/index.js +7 -0
  260. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.d.ts +79 -0
  261. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.d.ts.map +1 -0
  262. package/dist/cli/ink-cli/components/overlays/custom-model-wizard/types.js +38 -0
  263. package/dist/cli/ink-cli/components/renderers/DiffRenderer.d.ts +21 -0
  264. package/dist/cli/ink-cli/components/renderers/DiffRenderer.d.ts.map +1 -0
  265. package/dist/cli/ink-cli/components/renderers/DiffRenderer.js +65 -0
  266. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts +28 -0
  267. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.d.ts.map +1 -0
  268. package/dist/cli/ink-cli/components/renderers/FilePreviewRenderer.js +66 -0
  269. package/dist/cli/ink-cli/components/renderers/FileRenderer.d.ts +19 -0
  270. package/dist/cli/ink-cli/components/renderers/FileRenderer.d.ts.map +1 -0
  271. package/dist/cli/ink-cli/components/renderers/FileRenderer.js +26 -0
  272. package/dist/cli/ink-cli/components/renderers/GenericRenderer.d.ts +21 -0
  273. package/dist/cli/ink-cli/components/renderers/GenericRenderer.d.ts.map +1 -0
  274. package/dist/cli/ink-cli/components/renderers/GenericRenderer.js +26 -0
  275. package/dist/cli/ink-cli/components/renderers/SearchRenderer.d.ts +20 -0
  276. package/dist/cli/ink-cli/components/renderers/SearchRenderer.d.ts.map +1 -0
  277. package/dist/cli/ink-cli/components/renderers/SearchRenderer.js +12 -0
  278. package/dist/cli/ink-cli/components/renderers/ShellRenderer.d.ts +21 -0
  279. package/dist/cli/ink-cli/components/renderers/ShellRenderer.d.ts.map +1 -0
  280. package/dist/cli/ink-cli/components/renderers/ShellRenderer.js +25 -0
  281. package/dist/cli/ink-cli/components/renderers/diff-shared.d.ts +61 -0
  282. package/dist/cli/ink-cli/components/renderers/diff-shared.d.ts.map +1 -0
  283. package/dist/cli/ink-cli/components/renderers/diff-shared.js +158 -0
  284. package/dist/cli/ink-cli/components/renderers/index.d.ts +28 -0
  285. package/dist/cli/ink-cli/components/renderers/index.d.ts.map +1 -0
  286. package/dist/cli/ink-cli/components/renderers/index.js +36 -0
  287. package/dist/cli/ink-cli/components/shared/MarkdownText.d.ts +38 -0
  288. package/dist/cli/ink-cli/components/shared/MarkdownText.d.ts.map +1 -0
  289. package/dist/cli/ink-cli/components/shared/MarkdownText.js +362 -0
  290. package/dist/cli/ink-cli/components/shared/VirtualizedList.d.ts +44 -0
  291. package/dist/cli/ink-cli/components/shared/VirtualizedList.d.ts.map +1 -0
  292. package/dist/cli/ink-cli/components/shared/VirtualizedList.js +300 -0
  293. package/dist/cli/ink-cli/components/shared/text-buffer.d.ts +185 -0
  294. package/dist/cli/ink-cli/components/shared/text-buffer.d.ts.map +1 -0
  295. package/dist/cli/ink-cli/components/shared/text-buffer.js +1338 -0
  296. package/dist/cli/ink-cli/constants/processingPhrases.d.ts +10 -0
  297. package/dist/cli/ink-cli/constants/processingPhrases.d.ts.map +1 -0
  298. package/dist/cli/ink-cli/constants/processingPhrases.js +64 -0
  299. package/dist/cli/ink-cli/constants/tips.d.ts +15 -0
  300. package/dist/cli/ink-cli/constants/tips.d.ts.map +1 -0
  301. package/dist/cli/ink-cli/constants/tips.js +53 -0
  302. package/dist/cli/ink-cli/containers/InputContainer.d.ts +42 -8
  303. package/dist/cli/ink-cli/containers/InputContainer.d.ts.map +1 -1
  304. package/dist/cli/ink-cli/containers/InputContainer.js +513 -85
  305. package/dist/cli/ink-cli/containers/OverlayContainer.d.ts +23 -5
  306. package/dist/cli/ink-cli/containers/OverlayContainer.d.ts.map +1 -1
  307. package/dist/cli/ink-cli/containers/OverlayContainer.js +1214 -132
  308. package/dist/cli/ink-cli/containers/index.d.ts +1 -1
  309. package/dist/cli/ink-cli/containers/index.d.ts.map +1 -1
  310. package/dist/cli/ink-cli/contexts/KeypressContext.d.ts +36 -0
  311. package/dist/cli/ink-cli/contexts/KeypressContext.d.ts.map +1 -0
  312. package/dist/cli/ink-cli/contexts/KeypressContext.js +461 -0
  313. package/dist/cli/ink-cli/contexts/MouseContext.d.ts +27 -0
  314. package/dist/cli/ink-cli/contexts/MouseContext.d.ts.map +1 -0
  315. package/dist/cli/ink-cli/contexts/MouseContext.js +102 -0
  316. package/dist/cli/ink-cli/contexts/ScrollProvider.d.ts +33 -0
  317. package/dist/cli/ink-cli/contexts/ScrollProvider.d.ts.map +1 -0
  318. package/dist/cli/ink-cli/contexts/ScrollProvider.js +170 -0
  319. package/dist/cli/ink-cli/contexts/index.d.ts +7 -0
  320. package/dist/cli/ink-cli/contexts/index.d.ts.map +1 -0
  321. package/dist/cli/ink-cli/contexts/index.js +6 -0
  322. package/dist/cli/ink-cli/hooks/index.d.ts +5 -0
  323. package/dist/cli/ink-cli/hooks/index.d.ts.map +1 -1
  324. package/dist/cli/ink-cli/hooks/index.js +6 -1
  325. package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts +26 -9
  326. package/dist/cli/ink-cli/hooks/useAgentEvents.d.ts.map +1 -1
  327. package/dist/cli/ink-cli/hooks/useAgentEvents.js +90 -198
  328. package/dist/cli/ink-cli/hooks/useBatchedScroll.d.ts +14 -0
  329. package/dist/cli/ink-cli/hooks/useBatchedScroll.d.ts.map +1 -0
  330. package/dist/cli/ink-cli/hooks/useBatchedScroll.js +25 -0
  331. package/dist/cli/ink-cli/hooks/useCLIState.d.ts +50 -0
  332. package/dist/cli/ink-cli/hooks/useCLIState.d.ts.map +1 -0
  333. package/dist/cli/ink-cli/hooks/useCLIState.js +190 -0
  334. package/dist/cli/ink-cli/hooks/useElapsedTime.d.ts +24 -0
  335. package/dist/cli/ink-cli/hooks/useElapsedTime.d.ts.map +1 -0
  336. package/dist/cli/ink-cli/hooks/useElapsedTime.js +69 -0
  337. package/dist/cli/ink-cli/hooks/useHistorySearch.d.ts +61 -0
  338. package/dist/cli/ink-cli/hooks/useHistorySearch.d.ts.map +1 -0
  339. package/dist/cli/ink-cli/hooks/useHistorySearch.js +210 -0
  340. package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts +136 -0
  341. package/dist/cli/ink-cli/hooks/useInputOrchestrator.d.ts.map +1 -0
  342. package/dist/cli/ink-cli/hooks/useInputOrchestrator.js +663 -0
  343. package/dist/cli/ink-cli/hooks/useKeyboardShortcuts.d.ts.map +1 -1
  344. package/dist/cli/ink-cli/hooks/useKeyboardShortcuts.js +7 -26
  345. package/dist/cli/ink-cli/hooks/useKeypress.d.ts +18 -0
  346. package/dist/cli/ink-cli/hooks/useKeypress.d.ts.map +1 -0
  347. package/dist/cli/ink-cli/hooks/useKeypress.js +26 -0
  348. package/dist/cli/ink-cli/hooks/usePhraseCycler.d.ts +30 -0
  349. package/dist/cli/ink-cli/hooks/usePhraseCycler.d.ts.map +1 -0
  350. package/dist/cli/ink-cli/hooks/usePhraseCycler.js +68 -0
  351. package/dist/cli/ink-cli/hooks/useStreaming.d.ts +19 -0
  352. package/dist/cli/ink-cli/hooks/useStreaming.d.ts.map +1 -0
  353. package/dist/cli/ink-cli/hooks/useStreaming.js +26 -0
  354. package/dist/cli/ink-cli/hooks/useTerminalSize.d.ts +14 -0
  355. package/dist/cli/ink-cli/hooks/useTerminalSize.d.ts.map +1 -0
  356. package/dist/cli/ink-cli/hooks/useTerminalSize.js +31 -0
  357. package/dist/cli/ink-cli/hooks/useTokenCounter.d.ts +42 -0
  358. package/dist/cli/ink-cli/hooks/useTokenCounter.d.ts.map +1 -0
  359. package/dist/cli/ink-cli/hooks/useTokenCounter.js +96 -0
  360. package/dist/cli/ink-cli/services/CommandService.d.ts +32 -1
  361. package/dist/cli/ink-cli/services/CommandService.d.ts.map +1 -1
  362. package/dist/cli/ink-cli/services/CommandService.js +36 -5
  363. package/dist/cli/ink-cli/services/InputService.d.ts +1 -5
  364. package/dist/cli/ink-cli/services/InputService.d.ts.map +1 -1
  365. package/dist/cli/ink-cli/services/InputService.js +1 -8
  366. package/dist/cli/ink-cli/services/index.d.ts +2 -1
  367. package/dist/cli/ink-cli/services/index.d.ts.map +1 -1
  368. package/dist/cli/ink-cli/services/index.js +2 -1
  369. package/dist/cli/ink-cli/services/processStream.d.ts +69 -0
  370. package/dist/cli/ink-cli/services/processStream.d.ts.map +1 -0
  371. package/dist/cli/ink-cli/services/processStream.js +742 -0
  372. package/dist/cli/ink-cli/state/actions.d.ts +30 -60
  373. package/dist/cli/ink-cli/state/actions.d.ts.map +1 -1
  374. package/dist/cli/ink-cli/state/actions.js +3 -0
  375. package/dist/cli/ink-cli/state/index.d.ts +5 -3
  376. package/dist/cli/ink-cli/state/index.d.ts.map +1 -1
  377. package/dist/cli/ink-cli/state/index.js +4 -3
  378. package/dist/cli/ink-cli/state/initialState.d.ts +4 -3
  379. package/dist/cli/ink-cli/state/initialState.d.ts.map +1 -1
  380. package/dist/cli/ink-cli/state/initialState.js +20 -4
  381. package/dist/cli/ink-cli/state/reducer.d.ts +3 -0
  382. package/dist/cli/ink-cli/state/reducer.d.ts.map +1 -1
  383. package/dist/cli/ink-cli/state/reducer.js +62 -168
  384. package/dist/cli/ink-cli/state/streaming-state.d.ts +27 -0
  385. package/dist/cli/ink-cli/state/streaming-state.d.ts.map +1 -0
  386. package/dist/cli/ink-cli/state/streaming-state.js +39 -0
  387. package/dist/cli/ink-cli/state/types.d.ts +223 -6
  388. package/dist/cli/ink-cli/state/types.d.ts.map +1 -1
  389. package/dist/cli/ink-cli/utils/bracketedPaste.d.ts +22 -0
  390. package/dist/cli/ink-cli/utils/bracketedPaste.d.ts.map +1 -0
  391. package/dist/cli/ink-cli/utils/bracketedPaste.js +27 -0
  392. package/dist/cli/ink-cli/utils/clipboardUtils.d.ts +49 -0
  393. package/dist/cli/ink-cli/utils/clipboardUtils.d.ts.map +1 -0
  394. package/dist/cli/ink-cli/utils/clipboardUtils.js +356 -0
  395. package/dist/cli/ink-cli/utils/commandOverlays.d.ts +33 -0
  396. package/dist/cli/ink-cli/utils/commandOverlays.d.ts.map +1 -0
  397. package/dist/cli/ink-cli/utils/commandOverlays.js +78 -0
  398. package/dist/cli/ink-cli/utils/debugLog.d.ts +38 -0
  399. package/dist/cli/ink-cli/utils/debugLog.d.ts.map +1 -0
  400. package/dist/cli/ink-cli/utils/debugLog.js +66 -0
  401. package/dist/cli/ink-cli/utils/index.d.ts +2 -1
  402. package/dist/cli/ink-cli/utils/index.d.ts.map +1 -1
  403. package/dist/cli/ink-cli/utils/index.js +3 -1
  404. package/dist/cli/ink-cli/utils/input.d.ts +25 -0
  405. package/dist/cli/ink-cli/utils/input.d.ts.map +1 -0
  406. package/dist/cli/ink-cli/utils/input.js +56 -0
  407. package/dist/cli/ink-cli/utils/inputParsing.d.ts +0 -9
  408. package/dist/cli/ink-cli/utils/inputParsing.d.ts.map +1 -1
  409. package/dist/cli/ink-cli/utils/inputParsing.js +0 -27
  410. package/dist/cli/ink-cli/utils/messageFormatting.d.ts +59 -3
  411. package/dist/cli/ink-cli/utils/messageFormatting.d.ts.map +1 -1
  412. package/dist/cli/ink-cli/utils/messageFormatting.js +348 -20
  413. package/dist/cli/ink-cli/utils/mouse.d.ts +61 -0
  414. package/dist/cli/ink-cli/utils/mouse.d.ts.map +1 -0
  415. package/dist/cli/ink-cli/utils/mouse.js +209 -0
  416. package/dist/cli/ink-cli/utils/streamSplitter.d.ts +44 -0
  417. package/dist/cli/ink-cli/utils/streamSplitter.d.ts.map +1 -0
  418. package/dist/cli/ink-cli/utils/streamSplitter.js +154 -0
  419. package/dist/cli/ink-cli/utils/textUtils.d.ts +63 -0
  420. package/dist/cli/ink-cli/utils/textUtils.d.ts.map +1 -0
  421. package/dist/cli/ink-cli/utils/textUtils.js +248 -0
  422. package/dist/cli/ink-cli/utils/toolUtils.d.ts +9 -0
  423. package/dist/cli/ink-cli/utils/toolUtils.d.ts.map +1 -0
  424. package/dist/cli/ink-cli/utils/toolUtils.js +15 -0
  425. package/dist/cli/utils/api-key-setup.d.ts +54 -4
  426. package/dist/cli/utils/api-key-setup.d.ts.map +1 -1
  427. package/dist/cli/utils/api-key-setup.js +433 -107
  428. package/dist/cli/utils/api-key-verification.d.ts +17 -0
  429. package/dist/cli/utils/api-key-verification.d.ts.map +1 -0
  430. package/dist/cli/utils/api-key-verification.js +211 -0
  431. package/dist/cli/utils/config-validation.d.ts +22 -2
  432. package/dist/cli/utils/config-validation.d.ts.map +1 -1
  433. package/dist/cli/utils/config-validation.js +354 -25
  434. package/dist/cli/utils/local-model-setup.d.ts +46 -0
  435. package/dist/cli/utils/local-model-setup.d.ts.map +1 -0
  436. package/dist/cli/utils/local-model-setup.js +662 -0
  437. package/dist/cli/utils/options.d.ts.map +1 -1
  438. package/dist/cli/utils/options.js +1 -3
  439. package/dist/cli/utils/prompt-helpers.d.ts +47 -0
  440. package/dist/cli/utils/prompt-helpers.d.ts.map +1 -0
  441. package/dist/cli/utils/prompt-helpers.js +66 -0
  442. package/dist/cli/utils/provider-setup.d.ts +66 -8
  443. package/dist/cli/utils/provider-setup.d.ts.map +1 -1
  444. package/dist/cli/utils/provider-setup.js +324 -84
  445. package/dist/cli/utils/scaffolding-utils.d.ts +76 -0
  446. package/dist/cli/utils/scaffolding-utils.d.ts.map +1 -0
  447. package/dist/cli/utils/scaffolding-utils.js +246 -0
  448. package/dist/cli/utils/setup-utils.d.ts +16 -0
  449. package/dist/cli/utils/setup-utils.d.ts.map +1 -1
  450. package/dist/cli/utils/setup-utils.js +72 -21
  451. package/dist/cli/utils/template-engine.d.ts +65 -0
  452. package/dist/cli/utils/template-engine.d.ts.map +1 -0
  453. package/dist/cli/utils/template-engine.js +1089 -0
  454. package/dist/config/cli-overrides.d.ts +45 -2
  455. package/dist/config/cli-overrides.d.ts.map +1 -1
  456. package/dist/config/cli-overrides.js +107 -10
  457. package/dist/index.js +379 -99
  458. package/dist/utils/agent-helpers.d.ts +95 -0
  459. package/dist/utils/agent-helpers.d.ts.map +1 -0
  460. package/dist/utils/agent-helpers.js +117 -0
  461. package/dist/webui/assets/index-8j-KMkX1.js +2054 -0
  462. package/dist/webui/assets/index-c_AX24V4.css +1 -0
  463. package/dist/webui/assets/{tanstack-DgxBONJY.js β†’ tanstack-Br79RQ-n.js} +1 -1
  464. package/dist/webui/index.html +4 -10
  465. package/dist/webui/logos/aws-color.svg +1 -0
  466. package/dist/webui/logos/dexto/dexto_logo.svg +1 -1
  467. package/dist/webui/logos/dexto/dexto_logo_light.svg +6 -6
  468. package/dist/webui/logos/glama.svg +7 -0
  469. package/dist/webui/logos/litellm.svg +7 -0
  470. package/dist/webui/logos/openrouter.svg +1 -0
  471. package/package.json +18 -15
  472. package/dist/cli/commands/interactive-commands/index.d.ts +0 -63
  473. package/dist/cli/commands/interactive-commands/index.d.ts.map +0 -1
  474. package/dist/cli/commands/interactive-commands/index.js +0 -73
  475. package/dist/cli/commands/interactive-commands/mcp/mcp-add-utils.d.ts +0 -34
  476. package/dist/cli/commands/interactive-commands/mcp/mcp-add-utils.d.ts.map +0 -1
  477. package/dist/cli/commands/interactive-commands/mcp/mcp-add-utils.js +0 -178
  478. package/dist/cli/commands/interactive-commands/mcp/mcp-commands.d.ts +0 -9
  479. package/dist/cli/commands/interactive-commands/mcp/mcp-commands.d.ts.map +0 -1
  480. package/dist/cli/commands/interactive-commands/mcp/mcp-commands.js +0 -325
  481. package/dist/cli/commands/interactive-commands/model/model-commands.d.ts +0 -21
  482. package/dist/cli/commands/interactive-commands/model/model-commands.d.ts.map +0 -1
  483. package/dist/cli/commands/interactive-commands/model/model-commands.js +0 -190
  484. package/dist/cli/ink-cli/components/MultiLineTextInput.d.ts +0 -26
  485. package/dist/cli/ink-cli/components/MultiLineTextInput.d.ts.map +0 -1
  486. package/dist/cli/ink-cli/components/MultiLineTextInput.js +0 -220
  487. package/dist/discord/bot.d.ts +0 -4
  488. package/dist/discord/bot.d.ts.map +0 -1
  489. package/dist/discord/bot.js +0 -193
  490. package/dist/telegram/bot.d.ts +0 -5
  491. package/dist/telegram/bot.d.ts.map +0 -1
  492. package/dist/telegram/bot.js +0 -251
  493. package/dist/webui/assets/index-DKq5Xng1.js +0 -687
  494. package/dist/webui/assets/index-D_0_GBu5.css +0 -1
@@ -0,0 +1,22 @@
1
+ /**
2
+ * McpAddChoice Component
3
+ * Asks user whether to add from registry or custom
4
+ * Shown when "Add new server" is selected from McpServerList
5
+ */
6
+ import React from 'react';
7
+ import type { Key } from '../../hooks/useInputOrchestrator.js';
8
+ export type McpAddChoiceType = 'registry' | 'custom' | 'back';
9
+ interface McpAddChoiceProps {
10
+ isVisible: boolean;
11
+ onSelect: (choice: McpAddChoiceType) => void;
12
+ onClose: () => void;
13
+ }
14
+ export interface McpAddChoiceHandle {
15
+ handleInput: (input: string, key: Key) => boolean;
16
+ }
17
+ /**
18
+ * MCP Add Choice - registry vs custom
19
+ */
20
+ declare const McpAddChoice: React.ForwardRefExoticComponent<McpAddChoiceProps & React.RefAttributes<McpAddChoiceHandle>>;
21
+ export default McpAddChoice;
22
+ //# sourceMappingURL=McpAddChoice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpAddChoice.d.ts","sourceRoot":"","sources":["../../../../../src/cli/ink-cli/components/overlays/McpAddChoice.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAuE,MAAM,OAAO,CAAC;AAE5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAG/D,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,UAAU,iBAAiB;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AAkCD;;GAEG;AACH,QAAA,MAAM,YAAY,8FAyDhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * McpAddChoice Component
4
+ * Asks user whether to add from registry or custom
5
+ * Shown when "Add new server" is selected from McpServerList
6
+ */
7
+ import { useState, useEffect, forwardRef, useRef, useImperativeHandle } from 'react';
8
+ import { Box, Text } from 'ink';
9
+ import { BaseSelector } from '../base/BaseSelector.js';
10
+ const CHOICES = [
11
+ {
12
+ id: 'registry',
13
+ type: 'registry',
14
+ label: 'Explore registry',
15
+ description: 'Browse available MCP server presets',
16
+ icon: 'πŸ“¦',
17
+ },
18
+ {
19
+ id: 'custom',
20
+ type: 'custom',
21
+ label: 'Add custom server',
22
+ description: 'Configure your own MCP server',
23
+ icon: 'βš™οΈ',
24
+ },
25
+ {
26
+ id: 'back',
27
+ type: 'back',
28
+ label: 'Back',
29
+ description: 'Return to server list',
30
+ icon: '←',
31
+ },
32
+ ];
33
+ /**
34
+ * MCP Add Choice - registry vs custom
35
+ */
36
+ const McpAddChoice = forwardRef(function McpAddChoice({ isVisible, onSelect, onClose }, ref) {
37
+ const baseSelectorRef = useRef(null);
38
+ const [selectedIndex, setSelectedIndex] = useState(0);
39
+ // Forward handleInput to BaseSelector
40
+ useImperativeHandle(ref, () => ({
41
+ handleInput: (input, key) => {
42
+ return baseSelectorRef.current?.handleInput(input, key) ?? false;
43
+ },
44
+ }), []);
45
+ // Reset selection when becoming visible
46
+ useEffect(() => {
47
+ if (isVisible) {
48
+ setSelectedIndex(0);
49
+ }
50
+ }, [isVisible]);
51
+ // Format item for display
52
+ const formatItem = (item, isSelected) => (_jsxs(Box, { children: [_jsxs(Text, { children: [item.icon, " "] }), _jsx(Text, { color: isSelected ? 'cyan' : 'gray', bold: isSelected, children: item.label }), _jsxs(Text, { color: isSelected ? 'white' : 'gray', children: [" - ", item.description] })] }));
53
+ // Handle selection
54
+ const handleSelect = (item) => {
55
+ onSelect(item.type);
56
+ };
57
+ return (_jsx(BaseSelector, { ref: baseSelectorRef, items: CHOICES, isVisible: isVisible, isLoading: false, selectedIndex: selectedIndex, onSelectIndex: setSelectedIndex, onSelect: handleSelect, onClose: onClose, formatItem: formatItem, title: "Add MCP Server", borderColor: "green", emptyMessage: "No options available" }));
58
+ });
59
+ export default McpAddChoice;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * McpAddSelector Component
3
+ * Shows registry presets for adding MCP servers
4
+ * (Custom server options are handled separately via McpSelector "add custom")
5
+ */
6
+ import React from 'react';
7
+ import type { Key } from '../../hooks/useInputOrchestrator.js';
8
+ import { type ServerRegistryEntry } from '@dexto/registry';
9
+ export type McpAddResult = {
10
+ type: 'preset';
11
+ entry: ServerRegistryEntry;
12
+ };
13
+ interface McpAddSelectorProps {
14
+ isVisible: boolean;
15
+ onSelect: (result: McpAddResult) => void;
16
+ onClose: () => void;
17
+ }
18
+ export interface McpAddSelectorHandle {
19
+ handleInput: (input: string, key: Key) => boolean;
20
+ }
21
+ /**
22
+ * MCP add selector - shows registry presets only
23
+ */
24
+ declare const McpAddSelector: React.ForwardRefExoticComponent<McpAddSelectorProps & React.RefAttributes<McpAddSelectorHandle>>;
25
+ export default McpAddSelector;
26
+ //# sourceMappingURL=McpAddSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpAddSelector.d.ts","sourceRoot":"","sources":["../../../../../src/cli/ink-cli/components/overlays/McpAddSelector.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAuE,MAAM,OAAO,CAAC;AAE5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3E,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE1E,UAAU,mBAAmB;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACjC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AAUD;;GAEG;AACH,QAAA,MAAM,cAAc,kGAqGnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * McpAddSelector Component
4
+ * Shows registry presets for adding MCP servers
5
+ * (Custom server options are handled separately via McpSelector "add custom")
6
+ */
7
+ import { useState, useEffect, forwardRef, useRef, useImperativeHandle } from 'react';
8
+ import { Text } from 'ink';
9
+ import { serverRegistry } from '@dexto/registry';
10
+ import { BaseSelector } from '../base/BaseSelector.js';
11
+ /**
12
+ * MCP add selector - shows registry presets only
13
+ */
14
+ const McpAddSelector = forwardRef(function McpAddSelector({ isVisible, onSelect, onClose }, ref) {
15
+ const baseSelectorRef = useRef(null);
16
+ // Forward handleInput to BaseSelector
17
+ useImperativeHandle(ref, () => ({
18
+ handleInput: (input, key) => {
19
+ return baseSelectorRef.current?.handleInput(input, key) ?? false;
20
+ },
21
+ }), []);
22
+ const [options, setOptions] = useState([]);
23
+ const [isLoading, setIsLoading] = useState(false);
24
+ const [selectedIndex, setSelectedIndex] = useState(0);
25
+ // Fetch registry entries
26
+ useEffect(() => {
27
+ if (!isVisible)
28
+ return;
29
+ let cancelled = false;
30
+ setIsLoading(true);
31
+ const fetchEntries = async () => {
32
+ try {
33
+ const entries = await serverRegistry.getEntries();
34
+ if (cancelled)
35
+ return;
36
+ // Only show presets that are not already installed
37
+ const availablePresets = entries.filter((e) => !e.isInstalled);
38
+ const optionList = availablePresets.map((entry) => ({
39
+ id: entry.id,
40
+ label: entry.name,
41
+ description: entry.description,
42
+ icon: entry.icon || 'πŸ“¦',
43
+ entry,
44
+ }));
45
+ setOptions(optionList);
46
+ setSelectedIndex(0);
47
+ }
48
+ catch {
49
+ // On error, options remain empty - BaseSelector will show emptyMessage
50
+ if (!cancelled) {
51
+ setOptions([]);
52
+ }
53
+ }
54
+ finally {
55
+ if (!cancelled) {
56
+ setIsLoading(false);
57
+ }
58
+ }
59
+ };
60
+ void fetchEntries();
61
+ return () => {
62
+ cancelled = true;
63
+ };
64
+ }, [isVisible]);
65
+ // Format option for display
66
+ const formatItem = (option, isSelected) => (_jsxs(_Fragment, { children: [_jsxs(Text, { children: [option.icon, " "] }), _jsx(Text, { color: isSelected ? 'cyan' : 'gray', bold: isSelected, children: option.label }), _jsxs(Text, { color: isSelected ? 'white' : 'gray', children: [' ', "- ", option.description.slice(0, 40), option.description.length > 40 ? '...' : ''] })] }));
67
+ // Handle selection
68
+ const handleSelect = (option) => {
69
+ onSelect({ type: 'preset', entry: option.entry });
70
+ };
71
+ return (_jsx(BaseSelector, { ref: baseSelectorRef, items: options, isVisible: isVisible, isLoading: isLoading, selectedIndex: selectedIndex, onSelectIndex: setSelectedIndex, onSelect: handleSelect, onClose: onClose, formatItem: formatItem, title: "Add MCP Server (Presets)", borderColor: "green", loadingMessage: "Loading server presets...", emptyMessage: "No server presets available" }));
72
+ });
73
+ export default McpAddSelector;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * McpCustomTypeSelector Component
3
+ * Shows server type options (stdio/http/sse) for custom MCP server
4
+ */
5
+ import React from 'react';
6
+ import type { Key } from '../../hooks/useInputOrchestrator.js';
7
+ import type { McpServerType } from '@dexto/core';
8
+ interface McpCustomTypeSelectorProps {
9
+ isVisible: boolean;
10
+ onSelect: (serverType: McpServerType) => void;
11
+ onClose: () => void;
12
+ }
13
+ export interface McpCustomTypeSelectorHandle {
14
+ handleInput: (input: string, key: Key) => boolean;
15
+ }
16
+ /**
17
+ * MCP custom type selector - picks server transport type
18
+ */
19
+ declare const McpCustomTypeSelector: React.ForwardRefExoticComponent<McpCustomTypeSelectorProps & React.RefAttributes<McpCustomTypeSelectorHandle>>;
20
+ export default McpCustomTypeSelector;
21
+ //# sourceMappingURL=McpCustomTypeSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpCustomTypeSelector.d.ts","sourceRoot":"","sources":["../../../../../src/cli/ink-cli/components/overlays/McpCustomTypeSelector.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAuE,MAAM,OAAO,CAAC;AAE5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,UAAU,0BAA0B;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IACxC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AA8BD;;GAEG;AACH,QAAA,MAAM,qBAAqB,gHAqD1B,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * McpCustomTypeSelector Component
4
+ * Shows server type options (stdio/http/sse) for custom MCP server
5
+ */
6
+ import { useState, useEffect, forwardRef, useRef, useImperativeHandle } from 'react';
7
+ import { Text } from 'ink';
8
+ import { BaseSelector } from '../base/BaseSelector.js';
9
+ const SERVER_TYPE_OPTIONS = [
10
+ {
11
+ type: 'stdio',
12
+ label: 'STDIO',
13
+ description: 'Local process (npx, uvx, node, python)',
14
+ icon: '▢️',
15
+ },
16
+ {
17
+ type: 'http',
18
+ label: 'HTTP',
19
+ description: 'Remote HTTP server',
20
+ icon: '🌐',
21
+ },
22
+ {
23
+ type: 'sse',
24
+ label: 'SSE',
25
+ description: 'Server-Sent Events endpoint',
26
+ icon: 'πŸ“‘',
27
+ },
28
+ ];
29
+ /**
30
+ * MCP custom type selector - picks server transport type
31
+ */
32
+ const McpCustomTypeSelector = forwardRef(function McpCustomTypeSelector({ isVisible, onSelect, onClose }, ref) {
33
+ const baseSelectorRef = useRef(null);
34
+ useImperativeHandle(ref, () => ({
35
+ handleInput: (input, key) => {
36
+ return baseSelectorRef.current?.handleInput(input, key) ?? false;
37
+ },
38
+ }), []);
39
+ const [selectedIndex, setSelectedIndex] = useState(0);
40
+ useEffect(() => {
41
+ if (isVisible) {
42
+ setSelectedIndex(0);
43
+ }
44
+ }, [isVisible]);
45
+ const formatItem = (option, isSelected) => (_jsxs(_Fragment, { children: [_jsxs(Text, { children: [option.icon, " "] }), _jsx(Text, { color: isSelected ? 'cyan' : 'gray', bold: isSelected, children: option.label }), _jsxs(Text, { color: isSelected ? 'white' : 'gray', children: [" - ", option.description] })] }));
46
+ const handleSelect = (option) => {
47
+ onSelect(option.type);
48
+ };
49
+ return (_jsx(BaseSelector, { ref: baseSelectorRef, items: SERVER_TYPE_OPTIONS, isVisible: isVisible, isLoading: false, selectedIndex: selectedIndex, onSelectIndex: setSelectedIndex, onSelect: handleSelect, onClose: onClose, formatItem: formatItem, title: "Select Server Type", borderColor: "yellowBright", emptyMessage: "No options available" }));
50
+ });
51
+ export default McpCustomTypeSelector;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * McpCustomWizard Component
3
+ * Multi-step wizard for collecting custom MCP server configuration
4
+ */
5
+ import React from 'react';
6
+ import type { Key } from '../../hooks/useInputOrchestrator.js';
7
+ import type { McpServerType } from '@dexto/core';
8
+ export interface McpCustomConfig {
9
+ serverType: McpServerType;
10
+ name: string;
11
+ command?: string;
12
+ args?: string[];
13
+ url?: string;
14
+ }
15
+ interface McpCustomWizardProps {
16
+ isVisible: boolean;
17
+ serverType: McpServerType;
18
+ onComplete: (config: McpCustomConfig) => void;
19
+ onClose: () => void;
20
+ }
21
+ export interface McpCustomWizardHandle {
22
+ handleInput: (input: string, key: Key) => boolean;
23
+ }
24
+ /**
25
+ * Multi-step wizard for custom MCP server configuration
26
+ */
27
+ declare const McpCustomWizard: React.ForwardRefExoticComponent<McpCustomWizardProps & React.RefAttributes<McpCustomWizardHandle>>;
28
+ export default McpCustomWizard;
29
+ //# sourceMappingURL=McpCustomWizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpCustomWizard.d.ts","sourceRoot":"","sources":["../../../../../src/cli/ink-cli/components/overlays/McpCustomWizard.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA4E,MAAM,OAAO,CAAC;AAEjG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AA8FD,UAAU,oBAAoB;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AAED;;GAEG;AACH,QAAA,MAAM,eAAe,oGAuLpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,215 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * McpCustomWizard Component
4
+ * Multi-step wizard for collecting custom MCP server configuration
5
+ */
6
+ import { useState, useEffect, forwardRef, useImperativeHandle, useCallback } from 'react';
7
+ import { Box, Text } from 'ink';
8
+ const STDIO_STEPS = [
9
+ {
10
+ field: 'name',
11
+ label: 'Server Name',
12
+ placeholder: 'e.g., my-server',
13
+ required: true,
14
+ validate: (v) => (v.trim() ? null : 'Name is required'),
15
+ },
16
+ {
17
+ field: 'command',
18
+ label: 'Command',
19
+ placeholder: 'e.g., npx, uvx, node, python',
20
+ required: true,
21
+ validate: (v) => (v.trim() ? null : 'Command is required'),
22
+ },
23
+ {
24
+ field: 'args',
25
+ label: 'Arguments (space-separated, optional)',
26
+ placeholder: 'e.g., -y @modelcontextprotocol/server-filesystem .',
27
+ required: false,
28
+ },
29
+ ];
30
+ const HTTP_STEPS = [
31
+ {
32
+ field: 'name',
33
+ label: 'Server Name',
34
+ placeholder: 'e.g., my-http-server',
35
+ required: true,
36
+ validate: (v) => (v.trim() ? null : 'Name is required'),
37
+ },
38
+ {
39
+ field: 'url',
40
+ label: 'Server URL',
41
+ placeholder: 'e.g., http://localhost:8080',
42
+ required: true,
43
+ validate: (v) => {
44
+ if (!v.trim())
45
+ return 'URL is required';
46
+ try {
47
+ new URL(v);
48
+ return null;
49
+ }
50
+ catch {
51
+ return 'Invalid URL format';
52
+ }
53
+ },
54
+ },
55
+ ];
56
+ const SSE_STEPS = [
57
+ {
58
+ field: 'name',
59
+ label: 'Server Name',
60
+ placeholder: 'e.g., my-sse-server',
61
+ required: true,
62
+ validate: (v) => (v.trim() ? null : 'Name is required'),
63
+ },
64
+ {
65
+ field: 'url',
66
+ label: 'SSE Endpoint URL',
67
+ placeholder: 'e.g., http://localhost:9000/events',
68
+ required: true,
69
+ validate: (v) => {
70
+ if (!v.trim())
71
+ return 'URL is required';
72
+ try {
73
+ new URL(v);
74
+ return null;
75
+ }
76
+ catch {
77
+ return 'Invalid URL format';
78
+ }
79
+ },
80
+ },
81
+ ];
82
+ function getStepsForType(serverType) {
83
+ switch (serverType) {
84
+ case 'stdio':
85
+ return STDIO_STEPS;
86
+ case 'http':
87
+ return HTTP_STEPS;
88
+ case 'sse':
89
+ return SSE_STEPS;
90
+ }
91
+ }
92
+ /**
93
+ * Multi-step wizard for custom MCP server configuration
94
+ */
95
+ const McpCustomWizard = forwardRef(function McpCustomWizard({ isVisible, serverType, onComplete, onClose }, ref) {
96
+ const steps = getStepsForType(serverType);
97
+ const [currentStep, setCurrentStep] = useState(0);
98
+ const [values, setValues] = useState({});
99
+ const [currentInput, setCurrentInput] = useState('');
100
+ const [error, setError] = useState(null);
101
+ // Reset when becoming visible or server type changes
102
+ useEffect(() => {
103
+ if (isVisible) {
104
+ setCurrentStep(0);
105
+ setValues({});
106
+ setCurrentInput('');
107
+ setError(null);
108
+ }
109
+ }, [isVisible, serverType]);
110
+ const currentStepConfig = steps[currentStep];
111
+ const handleNext = useCallback(() => {
112
+ if (!currentStepConfig)
113
+ return;
114
+ const value = currentInput.trim();
115
+ // Validate
116
+ if (currentStepConfig.validate) {
117
+ const validationError = currentStepConfig.validate(value);
118
+ if (validationError) {
119
+ setError(validationError);
120
+ return;
121
+ }
122
+ }
123
+ else if (currentStepConfig.required && !value) {
124
+ setError(`${currentStepConfig.label} is required`);
125
+ return;
126
+ }
127
+ // Save value
128
+ const newValues = { ...values, [currentStepConfig.field]: value };
129
+ setValues(newValues);
130
+ setError(null);
131
+ setCurrentInput('');
132
+ // Check if we're done
133
+ if (currentStep >= steps.length - 1) {
134
+ // Build config and complete
135
+ const config = {
136
+ serverType,
137
+ name: newValues.name || '',
138
+ };
139
+ if (serverType === 'stdio') {
140
+ if (newValues.command) {
141
+ config.command = newValues.command;
142
+ }
143
+ if (newValues.args?.trim()) {
144
+ config.args = newValues.args.split(/\s+/).filter(Boolean);
145
+ }
146
+ }
147
+ else {
148
+ if (newValues.url) {
149
+ config.url = newValues.url;
150
+ }
151
+ }
152
+ onComplete(config);
153
+ }
154
+ else {
155
+ setCurrentStep(currentStep + 1);
156
+ }
157
+ }, [
158
+ currentInput,
159
+ currentStep,
160
+ currentStepConfig,
161
+ onComplete,
162
+ serverType,
163
+ steps.length,
164
+ values,
165
+ ]);
166
+ const handleBack = useCallback(() => {
167
+ if (currentStep > 0) {
168
+ setCurrentStep(currentStep - 1);
169
+ // Restore previous value
170
+ const prevStep = steps[currentStep - 1];
171
+ if (prevStep) {
172
+ setCurrentInput(values[prevStep.field] || '');
173
+ }
174
+ setError(null);
175
+ }
176
+ else {
177
+ onClose();
178
+ }
179
+ }, [currentStep, onClose, steps, values]);
180
+ // Handle keyboard input
181
+ useImperativeHandle(ref, () => ({
182
+ handleInput: (input, key) => {
183
+ if (!isVisible)
184
+ return false;
185
+ // Escape to go back/close
186
+ if (key.escape) {
187
+ handleBack();
188
+ return true;
189
+ }
190
+ // Enter to submit current step
191
+ if (key.return) {
192
+ handleNext();
193
+ return true;
194
+ }
195
+ // Backspace
196
+ if (key.backspace || key.delete) {
197
+ setCurrentInput((prev) => prev.slice(0, -1));
198
+ setError(null);
199
+ return true;
200
+ }
201
+ // Regular character input
202
+ if (input && !key.ctrl && !key.meta) {
203
+ setCurrentInput((prev) => prev + input);
204
+ setError(null);
205
+ return true;
206
+ }
207
+ return false;
208
+ },
209
+ }), [isVisible, handleBack, handleNext]);
210
+ if (!isVisible || !currentStepConfig)
211
+ return null;
212
+ const serverTypeLabel = serverType.toUpperCase();
213
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "yellowBright", paddingX: 1, marginTop: 1, children: [_jsxs(Box, { marginBottom: 1, children: [_jsxs(Text, { bold: true, color: "yellowBright", children: ["Add Custom ", serverTypeLabel, " Server"] }), _jsxs(Text, { color: "gray", children: [' ', "(Step ", currentStep + 1, "/", steps.length, ")"] })] }), _jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { bold: true, children: [currentStepConfig.label, ":"] }), _jsx(Text, { color: "gray", children: currentStepConfig.placeholder })] }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: "cyan", children: "> " }), _jsx(Text, { children: currentInput }), _jsx(Text, { color: "cyan", children: "_" })] }), error && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "red", children: error }) })), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: "gray", children: ["Enter to continue \u2022 Esc to ", currentStep > 0 ? 'go back' : 'cancel'] }) })] }));
214
+ });
215
+ export default McpCustomWizard;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * McpRemoveSelector Component
3
+ * Shows installed MCP servers for removal
4
+ */
5
+ import React from 'react';
6
+ import type { Key } from '../../hooks/useInputOrchestrator.js';
7
+ import type { DextoAgent } from '@dexto/core';
8
+ interface McpRemoveSelectorProps {
9
+ isVisible: boolean;
10
+ onSelect: (serverName: string) => void;
11
+ onClose: () => void;
12
+ agent: DextoAgent;
13
+ }
14
+ export interface McpRemoveSelectorHandle {
15
+ handleInput: (input: string, key: Key) => boolean;
16
+ }
17
+ /**
18
+ * MCP remove selector - shows installed servers for removal
19
+ */
20
+ declare const McpRemoveSelector: React.ForwardRefExoticComponent<McpRemoveSelectorProps & React.RefAttributes<McpRemoveSelectorHandle>>;
21
+ export default McpRemoveSelector;
22
+ //# sourceMappingURL=McpRemoveSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpRemoveSelector.d.ts","sourceRoot":"","sources":["../../../../../src/cli/ink-cli/components/overlays/McpRemoveSelector.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAuE,MAAM,OAAO,CAAC;AAE5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAwC,MAAM,aAAa,CAAC;AAGpF,UAAU,sBAAsB;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AAED;;GAEG;AACH,QAAA,MAAM,iBAAiB,wGAmHtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * McpRemoveSelector Component
4
+ * Shows installed MCP servers for removal
5
+ */
6
+ import { useState, useEffect, forwardRef, useRef, useImperativeHandle } from 'react';
7
+ import { Text } from 'ink';
8
+ import { BaseSelector } from '../base/BaseSelector.js';
9
+ /**
10
+ * MCP remove selector - shows installed servers for removal
11
+ */
12
+ const McpRemoveSelector = forwardRef(function McpRemoveSelector({ isVisible, onSelect, onClose, agent }, ref) {
13
+ const baseSelectorRef = useRef(null);
14
+ // Forward handleInput to BaseSelector
15
+ useImperativeHandle(ref, () => ({
16
+ handleInput: (input, key) => {
17
+ return baseSelectorRef.current?.handleInput(input, key) ?? false;
18
+ },
19
+ }), []);
20
+ const [servers, setServers] = useState([]);
21
+ const [isLoading, setIsLoading] = useState(false);
22
+ const [selectedIndex, setSelectedIndex] = useState(0);
23
+ // Fetch installed servers
24
+ useEffect(() => {
25
+ if (!isVisible)
26
+ return;
27
+ setIsLoading(true);
28
+ try {
29
+ // Get servers with computed status from agent
30
+ const serverList = agent.getMcpServersWithStatus();
31
+ // Sort alphabetically
32
+ serverList.sort((a, b) => a.name.localeCompare(b.name));
33
+ setServers(serverList);
34
+ setSelectedIndex(0);
35
+ }
36
+ finally {
37
+ setIsLoading(false);
38
+ }
39
+ }, [isVisible, agent]);
40
+ // Get display icon for status
41
+ const getStatusIcon = (status) => {
42
+ switch (status) {
43
+ case 'connected':
44
+ return 'πŸ”Œ';
45
+ case 'disconnected':
46
+ return '⏸️';
47
+ case 'error':
48
+ return '❌';
49
+ }
50
+ };
51
+ // Get display text for status
52
+ const getStatusText = (status) => {
53
+ switch (status) {
54
+ case 'connected':
55
+ return 'Connected';
56
+ case 'disconnected':
57
+ return 'Disabled';
58
+ case 'error':
59
+ return 'Failed';
60
+ }
61
+ };
62
+ // Format server item for display
63
+ const formatItem = (server, isSelected) => (_jsxs(_Fragment, { children: [_jsxs(Text, { children: [getStatusIcon(server.status), " "] }), _jsx(Text, { color: isSelected ? 'cyan' : 'gray', bold: isSelected, children: server.name }), _jsxs(Text, { color: server.status === 'connected'
64
+ ? 'green'
65
+ : server.status === 'disconnected'
66
+ ? 'gray'
67
+ : 'red', children: [' ', "- ", getStatusText(server.status)] }), server.error && (_jsxs(Text, { color: "gray", children: [' ', "(", server.error.slice(0, 30), server.error.length > 30 ? '...' : '', ")"] }))] }));
68
+ // Handle selection
69
+ const handleSelect = (server) => {
70
+ onSelect(server.name);
71
+ };
72
+ return (_jsx(BaseSelector, { ref: baseSelectorRef, items: servers, isVisible: isVisible, isLoading: isLoading, selectedIndex: selectedIndex, onSelectIndex: setSelectedIndex, onSelect: handleSelect, onClose: onClose, formatItem: formatItem, title: "Remove MCP Server", borderColor: "red", loadingMessage: "Loading servers...", emptyMessage: "No MCP servers installed" }));
73
+ });
74
+ export default McpRemoveSelector;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * McpSelector Component
3
+ * Main MCP selector - shows list, add, remove options
4
+ */
5
+ import React from 'react';
6
+ import type { Key } from '../../hooks/useInputOrchestrator.js';
7
+ export type McpAction = 'list' | 'add-preset' | 'add-custom' | 'remove';
8
+ interface McpSelectorProps {
9
+ isVisible: boolean;
10
+ onSelect: (action: McpAction) => void;
11
+ onClose: () => void;
12
+ }
13
+ export interface McpSelectorHandle {
14
+ handleInput: (input: string, key: Key) => boolean;
15
+ }
16
+ /**
17
+ * MCP selector - shows main MCP actions
18
+ */
19
+ declare const McpSelector: React.ForwardRefExoticComponent<McpSelectorProps & React.RefAttributes<McpSelectorHandle>>;
20
+ export default McpSelector;
21
+ //# sourceMappingURL=McpSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpSelector.d.ts","sourceRoot":"","sources":["../../../../../src/cli/ink-cli/components/overlays/McpSelector.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAuE,MAAM,OAAO,CAAC;AAE5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAG/D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;AAExE,UAAU,gBAAgB;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AA0BD;;GAEG;AACH,QAAA,MAAM,WAAW,4FA2Df,CAAC;AAEH,eAAe,WAAW,CAAC"}