@blackbox_ai/blackbox-cli 0.0.9 → 0.8.1

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 (416) hide show
  1. package/README.md +11 -183
  2. package/dist/index.js +8 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/package.json +11 -2
  5. package/dist/src/built-in-extensions/conductor/README.md +242 -0
  6. package/dist/src/built-in-extensions/conductor/blackbox-extension.json +5 -0
  7. package/dist/src/built-in-extensions/conductor/commands/conductor/implement.toml +170 -0
  8. package/dist/src/built-in-extensions/conductor/commands/conductor/newTrack.toml +142 -0
  9. package/dist/src/built-in-extensions/conductor/commands/conductor/revert.toml +122 -0
  10. package/dist/src/built-in-extensions/conductor/commands/conductor/setup.toml +424 -0
  11. package/dist/src/built-in-extensions/conductor/commands/conductor/status.toml +57 -0
  12. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/general.md +23 -0
  13. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/go.md +48 -0
  14. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/html-css.md +49 -0
  15. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/javascript.md +51 -0
  16. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/python.md +37 -0
  17. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/typescript.md +43 -0
  18. package/dist/src/built-in-extensions/conductor/templates/workflow.md +333 -0
  19. package/dist/src/built-in-extensions-data.d.ts +15 -0
  20. package/dist/src/built-in-extensions-data.js +61 -0
  21. package/dist/src/built-in-extensions-data.js.map +1 -0
  22. package/dist/src/commands/configure/ConfigureUI.d.ts +5 -2
  23. package/dist/src/commands/configure/ConfigureUI.js +181 -41
  24. package/dist/src/commands/configure/ConfigureUI.js.map +1 -1
  25. package/dist/src/commands/configure/index.js +35 -3
  26. package/dist/src/commands/configure/index.js.map +1 -1
  27. package/dist/src/commands/configure.js +20 -3
  28. package/dist/src/commands/configure.js.map +1 -1
  29. package/dist/src/commands/extensions/enable.js +1 -1
  30. package/dist/src/commands/extensions/enable.js.map +1 -1
  31. package/dist/src/commands/extensions/examples/context/CONTEXT.md +16 -0
  32. package/dist/src/commands/extensions/examples/context/blackbox-extension.json +5 -0
  33. package/dist/src/commands/extensions/examples/custom-commands/blackbox-extension.json +4 -0
  34. package/dist/src/commands/extensions/examples/custom-commands/commands/deploy.toml +12 -0
  35. package/dist/src/commands/extensions/examples/exclude-tools/README.md +28 -0
  36. package/dist/src/commands/extensions/examples/exclude-tools/blackbox-extension.json +5 -0
  37. package/dist/src/commands/extensions/install.d.ts +6 -2
  38. package/dist/src/commands/extensions/install.js +109 -15
  39. package/dist/src/commands/extensions/install.js.map +1 -1
  40. package/dist/src/commands/extensions/link.d.ts +12 -0
  41. package/dist/src/commands/extensions/link.js +53 -0
  42. package/dist/src/commands/extensions/link.js.map +1 -0
  43. package/dist/src/commands/extensions/list.js +2 -2
  44. package/dist/src/commands/extensions/list.js.map +1 -1
  45. package/dist/src/commands/extensions/new.d.ts +13 -0
  46. package/dist/src/commands/extensions/new.js +145 -0
  47. package/dist/src/commands/extensions/new.js.map +1 -0
  48. package/dist/src/commands/extensions/settings.d.ts +18 -0
  49. package/dist/src/commands/extensions/settings.js +98 -0
  50. package/dist/src/commands/extensions/settings.js.map +1 -0
  51. package/dist/src/commands/extensions/update.d.ts +2 -1
  52. package/dist/src/commands/extensions/update.js +59 -10
  53. package/dist/src/commands/extensions/update.js.map +1 -1
  54. package/dist/src/commands/extensions/validate.d.ts +12 -0
  55. package/dist/src/commands/extensions/validate.js +72 -0
  56. package/dist/src/commands/extensions/validate.js.map +1 -0
  57. package/dist/src/commands/extensions.js +10 -1
  58. package/dist/src/commands/extensions.js.map +1 -1
  59. package/dist/src/commands/mcp/add.d.ts +11 -0
  60. package/dist/src/commands/mcp/add.js +61 -7
  61. package/dist/src/commands/mcp/add.js.map +1 -1
  62. package/dist/src/commands/update.d.ts +7 -0
  63. package/dist/src/commands/update.js +103 -0
  64. package/dist/src/commands/update.js.map +1 -0
  65. package/dist/src/commands/voice.d.ts +7 -0
  66. package/dist/src/commands/voice.js +510 -0
  67. package/dist/src/commands/voice.js.map +1 -0
  68. package/dist/src/config/auth.d.ts +4 -2
  69. package/dist/src/config/auth.js +36 -1
  70. package/dist/src/config/auth.js.map +1 -1
  71. package/dist/src/config/config.d.ts +7 -1
  72. package/dist/src/config/config.js +68 -9
  73. package/dist/src/config/config.js.map +1 -1
  74. package/dist/src/config/extension.d.ts +6 -1
  75. package/dist/src/config/extension.js +137 -11
  76. package/dist/src/config/extension.js.map +1 -1
  77. package/dist/src/config/extensions/github.d.ts +48 -0
  78. package/dist/src/config/extensions/github.js +308 -0
  79. package/dist/src/config/extensions/github.js.map +1 -0
  80. package/dist/src/config/keyBindings.d.ts +1 -0
  81. package/dist/src/config/keyBindings.js +3 -0
  82. package/dist/src/config/keyBindings.js.map +1 -1
  83. package/dist/src/config/modelFetcher.js +14 -39
  84. package/dist/src/config/modelFetcher.js.map +1 -1
  85. package/dist/src/config/settings.js +64 -0
  86. package/dist/src/config/settings.js.map +1 -1
  87. package/dist/src/config/settingsSchema.d.ts +351 -0
  88. package/dist/src/config/settingsSchema.js +351 -0
  89. package/dist/src/config/settingsSchema.js.map +1 -1
  90. package/dist/src/config/voice.d.ts +31 -0
  91. package/dist/src/config/voice.js +82 -0
  92. package/dist/src/config/voice.js.map +1 -0
  93. package/dist/src/encrypt/attestation.d.ts +5 -0
  94. package/dist/src/encrypt/attestation.js +100 -0
  95. package/dist/src/encrypt/attestation.js.map +1 -0
  96. package/dist/src/encrypt/bridge.d.ts +30 -0
  97. package/dist/src/encrypt/bridge.js +32 -0
  98. package/dist/src/encrypt/bridge.js.map +1 -0
  99. package/dist/src/encrypt/client.d.ts +14 -0
  100. package/dist/src/encrypt/client.js +133 -0
  101. package/dist/src/encrypt/client.js.map +1 -0
  102. package/dist/src/encrypt/config.d.ts +26 -0
  103. package/dist/src/encrypt/config.js +51 -0
  104. package/dist/src/encrypt/config.js.map +1 -0
  105. package/dist/src/encrypt/crypto-utils.d.ts +57 -0
  106. package/dist/src/encrypt/crypto-utils.js +257 -0
  107. package/dist/src/encrypt/crypto-utils.js.map +1 -0
  108. package/dist/src/encrypt/index.d.ts +12 -0
  109. package/dist/src/encrypt/index.js +13 -0
  110. package/dist/src/encrypt/index.js.map +1 -0
  111. package/dist/src/encrypt/retry-utils.d.ts +20 -0
  112. package/dist/src/encrypt/retry-utils.js +60 -0
  113. package/dist/src/encrypt/retry-utils.js.map +1 -0
  114. package/dist/src/encrypt/sessions.d.ts +17 -0
  115. package/dist/src/encrypt/sessions.js +221 -0
  116. package/dist/src/encrypt/sessions.js.map +1 -0
  117. package/dist/src/encrypt/streaming-client.d.ts +29 -0
  118. package/dist/src/encrypt/streaming-client.js +226 -0
  119. package/dist/src/encrypt/streaming-client.js.map +1 -0
  120. package/dist/src/encrypt/types.d.ts +81 -0
  121. package/dist/src/encrypt/types.js +2 -0
  122. package/dist/src/encrypt/types.js.map +1 -0
  123. package/dist/src/gemini.d.ts +1 -1
  124. package/dist/src/gemini.js +57 -27
  125. package/dist/src/gemini.js.map +1 -1
  126. package/dist/src/generated/git-commit.d.ts +3 -3
  127. package/dist/src/generated/git-commit.js +3 -3
  128. package/dist/src/nonInteractiveCli.d.ts +4 -0
  129. package/dist/src/nonInteractiveCli.js +418 -5
  130. package/dist/src/nonInteractiveCli.js.map +1 -1
  131. package/dist/src/on-demand-extensions/README.md +266 -0
  132. package/dist/src/on-demand-extensions/git-helper/README.md +16 -0
  133. package/dist/src/on-demand-extensions/git-helper/blackbox-extension.json +5 -0
  134. package/dist/src/on-demand-extensions/git-helper/commands/git/branch-cleanup.toml +18 -0
  135. package/dist/src/on-demand-extensions/git-helper/commands/git/smart-commit.toml +22 -0
  136. package/dist/src/on-demand-extensions/greet/README.md +76 -0
  137. package/dist/src/on-demand-extensions/greet/blackbox-extension.json +5 -0
  138. package/dist/src/on-demand-extensions/greet/commands/greet/hello.toml +9 -0
  139. package/dist/src/on-demand-extensions/registry.json +251 -0
  140. package/dist/src/services/BuiltinCommandLoader.js +20 -2
  141. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  142. package/dist/src/services/EncryptedContentGenerator.d.ts +63 -0
  143. package/dist/src/services/EncryptedContentGenerator.js +426 -0
  144. package/dist/src/services/EncryptedContentGenerator.js.map +1 -0
  145. package/dist/src/services/McpCommandLoader.d.ts +24 -0
  146. package/dist/src/services/McpCommandLoader.js +50 -0
  147. package/dist/src/services/McpCommandLoader.js.map +1 -0
  148. package/dist/src/services/McpPromptLoader.js +17 -2
  149. package/dist/src/services/McpPromptLoader.js.map +1 -1
  150. package/dist/src/services/ReleaseNotesCache.d.ts +57 -0
  151. package/dist/src/services/ReleaseNotesCache.js +186 -0
  152. package/dist/src/services/ReleaseNotesCache.js.map +1 -0
  153. package/dist/src/services/elevenLabsErrors.d.ts +65 -0
  154. package/dist/src/services/elevenLabsErrors.js +233 -0
  155. package/dist/src/services/elevenLabsErrors.js.map +1 -0
  156. package/dist/src/services/elevenLabsService.d.ts +62 -0
  157. package/dist/src/services/elevenLabsService.js +186 -0
  158. package/dist/src/services/elevenLabsService.js.map +1 -0
  159. package/dist/src/services/elevenLabsStreamingService.d.ts +59 -0
  160. package/dist/src/services/elevenLabsStreamingService.js +202 -0
  161. package/dist/src/services/elevenLabsStreamingService.js.map +1 -0
  162. package/dist/src/services/elevenLabsTokenService.d.ts +21 -0
  163. package/dist/src/services/elevenLabsTokenService.js +42 -0
  164. package/dist/src/services/elevenLabsTokenService.js.map +1 -0
  165. package/dist/src/services/voiceInputHandler.d.ts +26 -0
  166. package/dist/src/services/voiceInputHandler.js +209 -0
  167. package/dist/src/services/voiceInputHandler.js.map +1 -0
  168. package/dist/src/services/voiceRecordingService.d.ts +69 -0
  169. package/dist/src/services/voiceRecordingService.js +397 -0
  170. package/dist/src/services/voiceRecordingService.js.map +1 -0
  171. package/dist/src/ui/App.d.ts +1 -0
  172. package/dist/src/ui/App.js +412 -63
  173. package/dist/src/ui/App.js.map +1 -1
  174. package/dist/src/ui/commands/browseExtensionsCommand.d.ts +7 -0
  175. package/dist/src/ui/commands/browseExtensionsCommand.js +16 -0
  176. package/dist/src/ui/commands/browseExtensionsCommand.js.map +1 -0
  177. package/dist/src/ui/commands/chatCommand.js +356 -16
  178. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  179. package/dist/src/ui/commands/dbCommand.d.ts +7 -0
  180. package/dist/src/ui/commands/dbCommand.js +37 -0
  181. package/dist/src/ui/commands/dbCommand.js.map +1 -0
  182. package/dist/src/ui/commands/docsCommand.js +1 -1
  183. package/dist/src/ui/commands/docsCommand.js.map +1 -1
  184. package/dist/src/ui/commands/mcpCommand.js +3 -2
  185. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  186. package/dist/src/ui/commands/mcpInvokeCommand.d.ts +16 -0
  187. package/dist/src/ui/commands/mcpInvokeCommand.js +263 -0
  188. package/dist/src/ui/commands/mcpInvokeCommand.js.map +1 -0
  189. package/dist/src/ui/commands/modelCommand.js +79 -5
  190. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  191. package/dist/src/ui/commands/multiAgentCommand.d.ts +7 -0
  192. package/dist/src/ui/commands/multiAgentCommand.js +833 -0
  193. package/dist/src/ui/commands/multiAgentCommand.js.map +1 -0
  194. package/dist/src/ui/commands/multiAgentConfigureCommand.d.ts +7 -0
  195. package/dist/src/ui/commands/multiAgentConfigureCommand.js +17 -0
  196. package/dist/src/ui/commands/multiAgentConfigureCommand.js.map +1 -0
  197. package/dist/src/ui/commands/quitCommand.js +71 -2
  198. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  199. package/dist/src/ui/commands/releasesCommand.d.ts +7 -0
  200. package/dist/src/ui/commands/releasesCommand.js +16 -0
  201. package/dist/src/ui/commands/releasesCommand.js.map +1 -0
  202. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  203. package/dist/src/ui/commands/shellPermissionsCommand.d.ts +7 -0
  204. package/dist/src/ui/commands/shellPermissionsCommand.js +109 -0
  205. package/dist/src/ui/commands/shellPermissionsCommand.js.map +1 -0
  206. package/dist/src/ui/commands/skillCommand.d.ts +7 -0
  207. package/dist/src/ui/commands/skillCommand.js +240 -0
  208. package/dist/src/ui/commands/skillCommand.js.map +1 -0
  209. package/dist/src/ui/commands/statsCommand.js +243 -1
  210. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  211. package/dist/src/ui/commands/tasksCommand.d.ts +7 -0
  212. package/dist/src/ui/commands/tasksCommand.js +535 -0
  213. package/dist/src/ui/commands/tasksCommand.js.map +1 -0
  214. package/dist/src/ui/commands/toolPermissionsCommand.d.ts +7 -0
  215. package/dist/src/ui/commands/toolPermissionsCommand.js +408 -0
  216. package/dist/src/ui/commands/toolPermissionsCommand.js.map +1 -0
  217. package/dist/src/ui/commands/types.d.ts +10 -2
  218. package/dist/src/ui/commands/types.js.map +1 -1
  219. package/dist/src/ui/commands/voiceCommand.d.ts +7 -0
  220. package/dist/src/ui/commands/voiceCommand.js +525 -0
  221. package/dist/src/ui/commands/voiceCommand.js.map +1 -0
  222. package/dist/src/ui/components/AuthDialog.d.ts +5 -4
  223. package/dist/src/ui/components/AuthDialog.js +89 -52
  224. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  225. package/dist/src/ui/components/AuthInProgress.js +3 -1
  226. package/dist/src/ui/components/AuthInProgress.js.map +1 -1
  227. package/dist/src/ui/components/ExtensionsDialog.d.ts +11 -0
  228. package/dist/src/ui/components/ExtensionsDialog.js +303 -0
  229. package/dist/src/ui/components/ExtensionsDialog.js.map +1 -0
  230. package/dist/src/ui/components/GenericProviderKeyPrompt.d.ts +3 -1
  231. package/dist/src/ui/components/GenericProviderKeyPrompt.js +17 -4
  232. package/dist/src/ui/components/GenericProviderKeyPrompt.js.map +1 -1
  233. package/dist/src/ui/components/Header.js +10 -1
  234. package/dist/src/ui/components/Header.js.map +1 -1
  235. package/dist/src/ui/components/HistoryBrowserDialog.d.ts +15 -0
  236. package/dist/src/ui/components/HistoryBrowserDialog.js +166 -0
  237. package/dist/src/ui/components/HistoryBrowserDialog.js.map +1 -0
  238. package/dist/src/ui/components/HistoryItemDisplay.js +13 -1
  239. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  240. package/dist/src/ui/components/InputPrompt.js +22 -8
  241. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  242. package/dist/src/ui/components/LoadingIndicator.d.ts +4 -0
  243. package/dist/src/ui/components/LoadingIndicator.js +16 -4
  244. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  245. package/dist/src/ui/components/LoadingIndicator.test.js +108 -16
  246. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  247. package/dist/src/ui/components/ModelSelectionDialog.d.ts +2 -0
  248. package/dist/src/ui/components/ModelSelectionDialog.js +33 -4
  249. package/dist/src/ui/components/ModelSelectionDialog.js.map +1 -1
  250. package/dist/src/ui/components/ModelSelectionDialog.test.js +41 -4
  251. package/dist/src/ui/components/ModelSelectionDialog.test.js.map +1 -1
  252. package/dist/src/ui/components/ReleaseNotesDialog.d.ts +23 -0
  253. package/dist/src/ui/components/ReleaseNotesDialog.js +150 -0
  254. package/dist/src/ui/components/ReleaseNotesDialog.js.map +1 -0
  255. package/dist/src/ui/components/ReleaseNotesDisplay.d.ts +18 -0
  256. package/dist/src/ui/components/ReleaseNotesDisplay.js +14 -0
  257. package/dist/src/ui/components/ReleaseNotesDisplay.js.map +1 -0
  258. package/dist/src/ui/components/SessionSummaryDisplay.d.ts +2 -0
  259. package/dist/src/ui/components/SessionSummaryDisplay.js +1 -1
  260. package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
  261. package/dist/src/ui/components/SettingsDialog.d.ts +3 -1
  262. package/dist/src/ui/components/SettingsDialog.js +17 -7
  263. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  264. package/dist/src/ui/components/ShellConfirmationDialog.d.ts +2 -0
  265. package/dist/src/ui/components/ShellConfirmationDialog.js +7 -3
  266. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  267. package/dist/src/ui/components/StatsDisplay.d.ts +2 -0
  268. package/dist/src/ui/components/StatsDisplay.js +92 -7
  269. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  270. package/dist/src/ui/components/SuggestionsDisplay.js +6 -1
  271. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  272. package/dist/src/ui/components/ThemeDialog.d.ts +3 -1
  273. package/dist/src/ui/components/ThemeDialog.js +5 -2
  274. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  275. package/dist/src/ui/components/Tips.js +1 -4
  276. package/dist/src/ui/components/Tips.js.map +1 -1
  277. package/dist/src/ui/components/TodoListDialog.d.ts +13 -0
  278. package/dist/src/ui/components/TodoListDialog.js +29 -0
  279. package/dist/src/ui/components/TodoListDialog.js.map +1 -0
  280. package/dist/src/ui/components/TodoListDialog.test.d.ts +6 -0
  281. package/dist/src/ui/components/TodoListDialog.test.js +60 -0
  282. package/dist/src/ui/components/TodoListDialog.test.js.map +1 -0
  283. package/dist/src/ui/components/VoiceConfigDialog.d.ts +17 -0
  284. package/dist/src/ui/components/VoiceConfigDialog.js +47 -0
  285. package/dist/src/ui/components/VoiceConfigDialog.js.map +1 -0
  286. package/dist/src/ui/components/messages/GeminiMessage.js +4 -0
  287. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  288. package/dist/src/ui/components/messages/GeminiMessageContent.js +4 -0
  289. package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -1
  290. package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +2 -0
  291. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +96 -9
  292. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  293. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +3 -3
  294. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  295. package/dist/src/ui/components/messages/ToolMessage.js +1 -1
  296. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  297. package/dist/src/ui/components/messages/ToolMessage.test.js +9 -12
  298. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  299. package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.d.ts +25 -0
  300. package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.js +179 -0
  301. package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.js.map +1 -0
  302. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +3 -1
  303. package/dist/src/ui/components/shared/RadioButtonSelect.js +57 -18
  304. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  305. package/dist/src/ui/components/shared/TextInput.d.ts +2 -1
  306. package/dist/src/ui/components/shared/TextInput.js +5 -2
  307. package/dist/src/ui/components/shared/TextInput.js.map +1 -1
  308. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +3 -3
  309. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js.map +1 -1
  310. package/dist/src/ui/constants.d.ts +3 -3
  311. package/dist/src/ui/constants.js +3 -3
  312. package/dist/src/ui/constants.js.map +1 -1
  313. package/dist/src/ui/contexts/SessionContext.d.ts +6 -0
  314. package/dist/src/ui/contexts/SessionContext.js +24 -2
  315. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  316. package/dist/src/ui/hooks/atCommandProcessor.js +139 -57
  317. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  318. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -1
  319. package/dist/src/ui/hooks/slashCommandProcessor.js +189 -17
  320. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  321. package/dist/src/ui/hooks/useAdaptiveStream.d.ts +42 -0
  322. package/dist/src/ui/hooks/useAdaptiveStream.js +31 -0
  323. package/dist/src/ui/hooks/useAdaptiveStream.js.map +1 -0
  324. package/dist/src/ui/hooks/useAtCompletion.js +20 -4
  325. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  326. package/dist/src/ui/hooks/useAuthCommand.d.ts +2 -2
  327. package/dist/src/ui/hooks/useAuthCommand.js +99 -5
  328. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  329. package/dist/src/ui/hooks/useCommandCompletion.js +14 -10
  330. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  331. package/dist/src/ui/hooks/useDialogClose.d.ts +10 -0
  332. package/dist/src/ui/hooks/useDialogClose.js +25 -0
  333. package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
  334. package/dist/src/ui/hooks/useDialogCloseAnimation.d.ts +22 -0
  335. package/dist/src/ui/hooks/useDialogCloseAnimation.js +68 -0
  336. package/dist/src/ui/hooks/useDialogCloseAnimation.js.map +1 -0
  337. package/dist/src/ui/hooks/useEncryptedStream.d.ts +22 -0
  338. package/dist/src/ui/hooks/useEncryptedStream.js +378 -0
  339. package/dist/src/ui/hooks/useEncryptedStream.js.map +1 -0
  340. package/dist/src/ui/hooks/useExtensionsDialog.d.ts +10 -0
  341. package/dist/src/ui/hooks/useExtensionsDialog.js +21 -0
  342. package/dist/src/ui/hooks/useExtensionsDialog.js.map +1 -0
  343. package/dist/src/ui/hooks/useGeminiStream.js +4 -2
  344. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  345. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  346. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
  347. package/dist/src/ui/hooks/useLoadingIndicator.js +3 -2
  348. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  349. package/dist/src/ui/hooks/useLoadingIndicator.test.js +27 -5
  350. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  351. package/dist/src/ui/hooks/useMultiAgentConfigCommand.d.ts +10 -0
  352. package/dist/src/ui/hooks/useMultiAgentConfigCommand.js +21 -0
  353. package/dist/src/ui/hooks/useMultiAgentConfigCommand.js.map +1 -0
  354. package/dist/src/ui/hooks/useReleasesDialog.d.ts +20 -0
  355. package/dist/src/ui/hooks/useReleasesDialog.js +214 -0
  356. package/dist/src/ui/hooks/useReleasesDialog.js.map +1 -0
  357. package/dist/src/ui/hooks/useSlashCompletion.js +10 -8
  358. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  359. package/dist/src/ui/hooks/useTodoList.d.ts +17 -0
  360. package/dist/src/ui/hooks/useTodoList.js +51 -0
  361. package/dist/src/ui/hooks/useTodoList.js.map +1 -0
  362. package/dist/src/ui/keyMatchers.test.js +6 -0
  363. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  364. package/dist/src/ui/themes/blackbox-dark.js +1 -1
  365. package/dist/src/ui/themes/blackbox-dark.js.map +1 -1
  366. package/dist/src/ui/themes/blackbox-light.js +1 -1
  367. package/dist/src/ui/themes/blackbox-light.js.map +1 -1
  368. package/dist/src/ui/types.d.ts +15 -2
  369. package/dist/src/ui/types.js +1 -0
  370. package/dist/src/ui/types.js.map +1 -1
  371. package/dist/src/ui/utils/computeStats.d.ts +25 -1
  372. package/dist/src/ui/utils/computeStats.js +58 -1
  373. package/dist/src/ui/utils/computeStats.js.map +1 -1
  374. package/dist/src/ui/utils/updateCheck.js +37 -54
  375. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  376. package/dist/src/utils/backgroundUpdateCheck.d.ts +15 -0
  377. package/dist/src/utils/backgroundUpdateCheck.js +48 -0
  378. package/dist/src/utils/backgroundUpdateCheck.js.map +1 -0
  379. package/dist/src/utils/gitAutoDetect.d.ts +16 -0
  380. package/dist/src/utils/gitAutoDetect.js +45 -0
  381. package/dist/src/utils/gitAutoDetect.js.map +1 -0
  382. package/dist/src/utils/installationInfo.d.ts +1 -0
  383. package/dist/src/utils/installationInfo.js +24 -4
  384. package/dist/src/utils/installationInfo.js.map +1 -1
  385. package/dist/src/utils/preLaunchUpdateCheck.d.ts +17 -0
  386. package/dist/src/utils/preLaunchUpdateCheck.js +75 -0
  387. package/dist/src/utils/preLaunchUpdateCheck.js.map +1 -0
  388. package/dist/src/utils/version.js +12 -1
  389. package/dist/src/utils/version.js.map +1 -1
  390. package/dist/src/utils/versionStorage.d.ts +50 -0
  391. package/dist/src/utils/versionStorage.js +224 -0
  392. package/dist/src/utils/versionStorage.js.map +1 -0
  393. package/dist/src/validateNonInterActiveAuth.js +10 -3
  394. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  395. package/dist/src/virtual-extensions.d.ts +14 -0
  396. package/dist/src/virtual-extensions.js +56 -0
  397. package/dist/src/virtual-extensions.js.map +1 -0
  398. package/dist/src/zed-integration/fileSystemService.d.ts +3 -3
  399. package/dist/src/zed-integration/fileSystemService.js +5 -7
  400. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  401. package/dist/src/zed-integration/zedIntegration.js +62 -17
  402. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  403. package/dist/tsconfig.tsbuildinfo +1 -1
  404. package/package.json +11 -2
  405. package/dist/src/utils/handleAutoUpdate.d.ts +0 -11
  406. package/dist/src/utils/handleAutoUpdate.js +0 -102
  407. package/dist/src/utils/handleAutoUpdate.js.map +0 -1
  408. package/dist/src/utils/updateEventEmitter.d.ts +0 -11
  409. package/dist/src/utils/updateEventEmitter.js +0 -12
  410. package/dist/src/utils/updateEventEmitter.js.map +0 -1
  411. package/dist/src/zed-integration/acp.d.ts +0 -63
  412. package/dist/src/zed-integration/acp.js +0 -226
  413. package/dist/src/zed-integration/acp.js.map +0 -1
  414. package/dist/src/zed-integration/schema.d.ts +0 -11782
  415. package/dist/src/zed-integration/schema.js +0 -311
  416. package/dist/src/zed-integration/schema.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { SlashCommand } from './types.js';
7
+ /**
8
+ * Handles MCP server invocation via / prefix
9
+ * Usage: /<server-name> <task>
10
+ * Example: /remote create a todo app
11
+ */
12
+ export declare const createMcpInvokeCommand: (serverName: string) => SlashCommand;
13
+ /**
14
+ * Creates a list command to show all available MCP servers
15
+ */
16
+ export declare const createMcpServersListCommand: () => SlashCommand;
@@ -0,0 +1,263 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { CommandKind } from './types.js';
7
+ import { DiscoveredMCPTool, getMCPServerStatus, MCPServerStatus, } from '@blackbox_ai/blackbox-cli-core';
8
+ import { handleAtCommand } from '../hooks/atCommandProcessor.js';
9
+ import { isAtCommand } from '../utils/commandUtils.js';
10
+ const COLOR_CYAN = '\u001b[36m';
11
+ const COLOR_GREEN = '\u001b[32m';
12
+ const COLOR_YELLOW = '\u001b[33m';
13
+ const RESET_COLOR = '\u001b[0m';
14
+ /**
15
+ * Handles MCP server invocation via / prefix
16
+ * Usage: /<server-name> <task>
17
+ * Example: /remote create a todo app
18
+ */
19
+ export const createMcpInvokeCommand = (serverName) => ({
20
+ name: serverName,
21
+ description: `${serverName} MCP server`,
22
+ kind: CommandKind.BUILT_IN,
23
+ action: async (context, args) => {
24
+ const { config } = context.services;
25
+ if (!config) {
26
+ return {
27
+ type: 'message',
28
+ messageType: 'error',
29
+ content: 'Config not loaded.',
30
+ };
31
+ }
32
+ const abortController = new AbortController();
33
+ const userMessageTimestamp = Date.now();
34
+ const mcpServers = config.getMcpServers() || {};
35
+ const server = mcpServers[serverName];
36
+ if (!server) {
37
+ return {
38
+ type: 'message',
39
+ messageType: 'error',
40
+ content: `MCP server '${serverName}' not found. Use /mcp list to see available servers.`,
41
+ };
42
+ }
43
+ // Check server status
44
+ const status = getMCPServerStatus(serverName);
45
+ if (status === MCPServerStatus.DISCONNECTED) {
46
+ return {
47
+ type: 'message',
48
+ messageType: 'error',
49
+ content: `MCP server '${serverName}' is not connected. Use /mcp refresh to restart servers.`,
50
+ };
51
+ }
52
+ if (status === MCPServerStatus.CONNECTING) {
53
+ return {
54
+ type: 'message',
55
+ messageType: 'info',
56
+ content: `MCP server '${serverName}' is still connecting. Please wait a moment and try again.`,
57
+ };
58
+ }
59
+ const toolRegistry = config.getToolRegistry();
60
+ if (!toolRegistry) {
61
+ return {
62
+ type: 'message',
63
+ messageType: 'error',
64
+ content: 'Could not retrieve tool registry.',
65
+ };
66
+ }
67
+ // Get tools from this server
68
+ const allTools = toolRegistry.getAllTools();
69
+ const serverTools = allTools.filter((tool) => tool instanceof DiscoveredMCPTool && tool.serverName === serverName);
70
+ // Get prompts from this server
71
+ const promptRegistry = await config.getPromptRegistry();
72
+ const serverPrompts = promptRegistry.getPromptsByServer(serverName) || [];
73
+ // If no args provided, show available tools and prompts
74
+ if (!args.trim()) {
75
+ let message = `\n${COLOR_CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET_COLOR}\n`;
76
+ message += `${COLOR_CYAN} MCP Server: ${COLOR_GREEN}${serverName}${RESET_COLOR}\n`;
77
+ message += `${COLOR_CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET_COLOR}\n\n`;
78
+ if (serverTools.length === 0 && serverPrompts.length === 0) {
79
+ message += `${COLOR_YELLOW} No tools or prompts available from this server.${RESET_COLOR}\n\n`;
80
+ message += ` Use ${COLOR_CYAN}/mcp refresh${RESET_COLOR} to reload servers.\n`;
81
+ return {
82
+ type: 'message',
83
+ messageType: 'info',
84
+ content: message,
85
+ };
86
+ }
87
+ if (serverTools.length > 0) {
88
+ message += `${COLOR_CYAN} Available Tools (${serverTools.length}):${RESET_COLOR}\n`;
89
+ serverTools.forEach((tool) => {
90
+ message += ` • ${COLOR_GREEN}${tool.name}${RESET_COLOR}`;
91
+ if (tool.description) {
92
+ const firstLine = tool.description.split('\n')[0];
93
+ if (firstLine.length > 60) {
94
+ message += `\n ${firstLine.substring(0, 60)}...`;
95
+ }
96
+ else {
97
+ message += `\n ${firstLine}`;
98
+ }
99
+ }
100
+ message += '\n';
101
+ });
102
+ message += '\n';
103
+ }
104
+ if (serverPrompts.length > 0) {
105
+ message += `${COLOR_CYAN} Available Prompts (${serverPrompts.length}):${RESET_COLOR}\n`;
106
+ serverPrompts.forEach((prompt) => {
107
+ message += ` • ${COLOR_GREEN}${prompt.name}${RESET_COLOR}`;
108
+ if (prompt.description) {
109
+ const firstLine = prompt.description.split('\n')[0];
110
+ if (firstLine.length > 60) {
111
+ message += `\n ${firstLine.substring(0, 60)}...`;
112
+ }
113
+ else {
114
+ message += `\n ${firstLine}`;
115
+ }
116
+ }
117
+ message += '\n';
118
+ });
119
+ message += '\n';
120
+ }
121
+ message += `${COLOR_CYAN} Usage:${RESET_COLOR} /${serverName} <your task description>\n`;
122
+ message += `${COLOR_CYAN} Example:${RESET_COLOR} /${serverName} create a todo app\n`;
123
+ return {
124
+ type: 'message',
125
+ messageType: 'info',
126
+ content: message,
127
+ };
128
+ }
129
+ // Process @file references in args if present
130
+ let processedArgs = args;
131
+ if (isAtCommand(args)) {
132
+ const atCommandResult = await handleAtCommand({
133
+ query: args,
134
+ config,
135
+ addItem: context.ui.addItem,
136
+ onDebugMessage: context.ui.setDebugMessage,
137
+ messageId: userMessageTimestamp,
138
+ signal: abortController.signal,
139
+ });
140
+ if (!atCommandResult.shouldProceed) {
141
+ return {
142
+ type: 'message',
143
+ messageType: 'error',
144
+ content: 'Failed to process @file references in command arguments.',
145
+ };
146
+ }
147
+ // Extract the processed query
148
+ if (atCommandResult.processedQuery) {
149
+ // The processedQuery is an array of Parts
150
+ // First part is the text with resolved @paths
151
+ const parts = Array.isArray(atCommandResult.processedQuery)
152
+ ? atCommandResult.processedQuery
153
+ : [atCommandResult.processedQuery];
154
+ // Extract the main query text (first text part)
155
+ const firstPart = parts[0];
156
+ if (firstPart && typeof firstPart === 'object' && 'text' in firstPart && firstPart.text) {
157
+ processedArgs = firstPart.text;
158
+ }
159
+ }
160
+ }
161
+ // Submit the task to AI with context about the MCP server
162
+ const toolNames = serverTools.map((t) => t.name).join(', ');
163
+ const promptNames = serverPrompts.map((p) => p.name).join(', ');
164
+ let contextMessage = `Directly call the MCP server '${serverName}' to complete this task (No additional project expoloration): ${processedArgs}\n\n`;
165
+ // For remote/remote-code server, instruct the model to use the user prompt directly
166
+ if (serverName === 'remote' || serverName === 'remote-code') {
167
+ // Auto-detect Git repository info for remote server
168
+ const { detectGitRepoInfo } = await import('../../utils/gitAutoDetect.js');
169
+ const gitInfo = detectGitRepoInfo();
170
+ if (gitInfo) {
171
+ contextMessage += `\nBackground Context:\nRepository Information:\n`;
172
+ contextMessage += `- GitHub Repository: ${gitInfo.owner}/${gitInfo.repo}\n`;
173
+ contextMessage += `- Current Branch: ${gitInfo.branch}\n`;
174
+ contextMessage += `- Remote URL: ${gitInfo.remoteUrl}\n\n`;
175
+ }
176
+ }
177
+ if (serverTools.length > 0) {
178
+ contextMessage += `Available tools from ${serverName}: ${toolNames}\n`;
179
+ }
180
+ if (serverPrompts.length > 0) {
181
+ contextMessage += `Available prompts from ${serverName}: ${promptNames}\n`;
182
+ }
183
+ contextMessage += `\nPlease use the appropriate tools from the '${serverName}' MCP server to accomplish this task.`;
184
+ contextMessage += `\nIMPORTANT: The user has provided the below prompt for the remote MCP server. You MUST use this exact prompt without modification when invoking the remote server tools:\n\n`;
185
+ contextMessage += `USER PROMPT:\n${processedArgs}\n\n`;
186
+ return {
187
+ type: 'submit_prompt',
188
+ content: contextMessage,
189
+ };
190
+ },
191
+ });
192
+ /**
193
+ * Creates a list command to show all available MCP servers
194
+ */
195
+ export const createMcpServersListCommand = () => ({
196
+ name: 'mcp-servers',
197
+ description: 'List all available MCP servers (invoked via / prefix)',
198
+ kind: CommandKind.BUILT_IN,
199
+ action: async (context) => {
200
+ const { config } = context.services;
201
+ if (!config) {
202
+ return {
203
+ type: 'message',
204
+ messageType: 'error',
205
+ content: 'Config not loaded.',
206
+ };
207
+ }
208
+ const mcpServers = config.getMcpServers() || {};
209
+ const serverNames = Object.keys(mcpServers);
210
+ if (serverNames.length === 0) {
211
+ return {
212
+ type: 'message',
213
+ messageType: 'info',
214
+ content: `No MCP servers configured. Use ${COLOR_CYAN}/mcp${RESET_COLOR} to manage MCP servers.`,
215
+ };
216
+ }
217
+ let message = `\n${COLOR_CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET_COLOR}\n`;
218
+ message += `${COLOR_CYAN} MCP Servers (${serverNames.length} configured)${RESET_COLOR}\n`;
219
+ message += `${COLOR_CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET_COLOR}\n\n`;
220
+ for (const serverName of serverNames) {
221
+ const status = getMCPServerStatus(serverName);
222
+ let statusIndicator = '';
223
+ let statusText = '';
224
+ switch (status) {
225
+ case MCPServerStatus.CONNECTED:
226
+ statusIndicator = '🟢';
227
+ statusText = 'Ready';
228
+ break;
229
+ case MCPServerStatus.CONNECTING:
230
+ statusIndicator = '🔄';
231
+ statusText = 'Starting...';
232
+ break;
233
+ case MCPServerStatus.DISCONNECTED:
234
+ default:
235
+ statusIndicator = '🔴';
236
+ statusText = 'Offline';
237
+ break;
238
+ }
239
+ const server = mcpServers[serverName];
240
+ message += ` ${statusIndicator} ${COLOR_GREEN}/${serverName}${RESET_COLOR} ${COLOR_CYAN}(${statusText})${RESET_COLOR}\n`;
241
+ if (server.description) {
242
+ const firstLine = server.description.split('\n')[0];
243
+ if (firstLine.length > 70) {
244
+ message += ` ${firstLine.substring(0, 70)}...\n`;
245
+ }
246
+ else {
247
+ message += ` ${firstLine}\n`;
248
+ }
249
+ }
250
+ message += '\n';
251
+ }
252
+ message += `${COLOR_CYAN} Quick Start:${RESET_COLOR}\n`;
253
+ message += ` • Type ${COLOR_GREEN}/<server-name>${RESET_COLOR} to see available tools\n`;
254
+ message += ` • Type ${COLOR_GREEN}/<server-name> <task>${RESET_COLOR} to send a task\n\n`;
255
+ message += `${COLOR_CYAN} Example:${RESET_COLOR} /remote create a todo app\n`;
256
+ return {
257
+ type: 'message',
258
+ messageType: 'info',
259
+ content: message,
260
+ };
261
+ },
262
+ });
263
+ //# sourceMappingURL=mcpInvokeCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpInvokeCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/mcpInvokeCommand.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,83 @@
6
6
  import { AuthType } from '@blackbox_ai/blackbox-cli-core';
7
7
  import { CommandKind } from './types.js';
8
8
  import { AVAILABLE_MODELS_BLACKBOX, getBlackboxApiAvailableModelFromEnv, getOpenAIAvailableModelFromEnv, } from '../models/availableModels.js';
9
+ import { fetchModelsForProvider } from '../../config/modelFetcher.js';
9
10
  function getAvailableModelsForAuthType(authType) {
10
11
  switch (authType) {
11
12
  case AuthType.BLACKBOX_OAUTH:
12
13
  return AVAILABLE_MODELS_BLACKBOX;
13
14
  case AuthType.USE_OPENAI: {
14
- const openAIModel = getOpenAIAvailableModelFromEnv();
15
- return openAIModel ? [openAIModel] : [];
15
+ // For USE_OPENAI, we'll fetch models dynamically in the action function
16
+ // Return empty array here to indicate dynamic fetching is needed
17
+ return [];
16
18
  }
17
19
  case AuthType.USE_BLACKBOX_API: {
18
- const blackboxApiModel = getBlackboxApiAvailableModelFromEnv();
19
- return blackboxApiModel ? [blackboxApiModel] : [];
20
+ // For USE_BLACKBOX_API, we'll fetch models dynamically in the action function
21
+ // Return empty array here to indicate dynamic fetching is needed
22
+ return [];
23
+ }
24
+ default:
25
+ // For other auth types, return empty array for now
26
+ // This can be expanded later according to the design doc
27
+ return [];
28
+ }
29
+ }
30
+ async function getAvailableModelsForAuthTypeAsync(authType, apiKey) {
31
+ switch (authType) {
32
+ case AuthType.BLACKBOX_OAUTH:
33
+ return AVAILABLE_MODELS_BLACKBOX;
34
+ case AuthType.USE_OPENAI:
35
+ case AuthType.USE_BLACKBOX_API: {
36
+ if (!apiKey) {
37
+ // Fallback to env variable if no API key provided
38
+ if (authType === AuthType.USE_BLACKBOX_API) {
39
+ const blackboxApiModel = getBlackboxApiAvailableModelFromEnv();
40
+ return blackboxApiModel ? [blackboxApiModel] : [];
41
+ }
42
+ else {
43
+ const openAIModel = getOpenAIAvailableModelFromEnv();
44
+ return openAIModel ? [openAIModel] : [];
45
+ }
46
+ }
47
+ // Get provider name from settings (e.g., 'openai', 'openrouter', 'blackbox', 'xai', etc.)
48
+ const providerName = process.env['SELECTED_PROVIDER'] ||
49
+ (authType === AuthType.USE_BLACKBOX_API ? 'blackbox' : 'openai');
50
+ // Get baseUrl from config or use default
51
+ const baseUrl = process.env['OPENAI_BASE_URL'] ||
52
+ process.env['BLACKBOX_API_BASE_URL'] ||
53
+ 'https://api.openai.com';
54
+ try {
55
+ // Fetch models using the unified function
56
+ const modelIds = await fetchModelsForProvider(providerName, apiKey, baseUrl);
57
+ if (modelIds.length === 0) {
58
+ // Fallback to env variable if fetch returns empty
59
+ if (authType === AuthType.USE_BLACKBOX_API) {
60
+ const blackboxApiModel = getBlackboxApiAvailableModelFromEnv();
61
+ return blackboxApiModel ? [blackboxApiModel] : [];
62
+ }
63
+ else {
64
+ const openAIModel = getOpenAIAvailableModelFromEnv();
65
+ return openAIModel ? [openAIModel] : [];
66
+ }
67
+ }
68
+ // Convert model IDs to AvailableModel format
69
+ return modelIds.map((id) => ({
70
+ id,
71
+ label: id,
72
+ }));
73
+ }
74
+ catch (error) {
75
+ console.warn(`Failed to fetch models for ${providerName}:`, error);
76
+ // Fallback to env variable on error
77
+ if (authType === AuthType.USE_BLACKBOX_API) {
78
+ const blackboxApiModel = getBlackboxApiAvailableModelFromEnv();
79
+ return blackboxApiModel ? [blackboxApiModel] : [];
80
+ }
81
+ else {
82
+ const openAIModel = getOpenAIAvailableModelFromEnv();
83
+ return openAIModel ? [openAIModel] : [];
84
+ }
85
+ }
20
86
  }
21
87
  default:
22
88
  // For other auth types, return empty array for now
@@ -54,7 +120,15 @@ export const modelCommand = {
54
120
  content: 'Authentication type not available.',
55
121
  };
56
122
  }
57
- const availableModels = getAvailableModelsForAuthType(authType);
123
+ // For USE_BLACKBOX_API and USE_OPENAI, fetch models dynamically
124
+ let availableModels;
125
+ if (authType === AuthType.USE_BLACKBOX_API || authType === AuthType.USE_OPENAI) {
126
+ const apiKey = contentGeneratorConfig.apiKey;
127
+ availableModels = await getAvailableModelsForAuthTypeAsync(authType, apiKey);
128
+ }
129
+ else {
130
+ availableModels = getAvailableModelsForAuthType(authType);
131
+ }
58
132
  if (availableModels.length === 0) {
59
133
  return {
60
134
  type: 'message',
@@ -1 +1 @@
1
- {"version":3,"file":"modelCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/modelCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAO1D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,mCAAmC,EACnC,8BAA8B,GAE/B,MAAM,8BAA8B,CAAC;AAEtC,SAAS,6BAA6B,CAAC,QAAkB;IACvD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,cAAc;YAC1B,OAAO,yBAAyB,CAAC;QACnC,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;YACzB,MAAM,WAAW,GAAG,8BAA8B,EAAE,CAAC;YACrD,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,CAAC;QACD,KAAK,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC/B,MAAM,gBAAgB,GAAG,mCAAmC,EAAE,CAAC;YAC/D,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,CAAC;QACD;YACE,mDAAmD;YACnD,yDAAyD;YACzD,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,mCAAmC;IAChD,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,MAAM,EAAE,KAAK,EACX,OAAuB,EACgC,EAAE;QACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAE5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE,8BAA8B;aACxC,CAAC;QACJ,CAAC;QAED,MAAM,sBAAsB,GAAG,MAAM,CAAC,yBAAyB,EAAE,CAAC;QAClE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE,gDAAgD;aAC1D,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE,oCAAoC;aAC9C,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAEhE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE,4DAA4D,QAAQ,IAAI;aAClF,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;SAChB,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"modelCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/modelCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Blackbox
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { SlashCommand } from './types.js';
7
+ export declare const multiAgentCommand: SlashCommand;