@blackbox_ai/blackbox-cli 0.0.7 → 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 (422) 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 +13 -3
  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 +14 -0
  23. package/dist/src/commands/configure/ConfigureUI.js +556 -0
  24. package/dist/src/commands/configure/ConfigureUI.js.map +1 -0
  25. package/dist/src/commands/configure/index.d.ts +7 -0
  26. package/dist/src/commands/configure/index.js +62 -0
  27. package/dist/src/commands/configure/index.js.map +1 -0
  28. package/dist/src/commands/configure.d.ts +7 -0
  29. package/dist/src/commands/configure.js +276 -0
  30. package/dist/src/commands/configure.js.map +1 -0
  31. package/dist/src/commands/configure.test.d.ts +6 -0
  32. package/dist/src/commands/configure.test.js +32 -0
  33. package/dist/src/commands/configure.test.js.map +1 -0
  34. package/dist/src/commands/extensions/enable.js +1 -1
  35. package/dist/src/commands/extensions/enable.js.map +1 -1
  36. package/dist/src/commands/extensions/examples/context/CONTEXT.md +16 -0
  37. package/dist/src/commands/extensions/examples/context/blackbox-extension.json +5 -0
  38. package/dist/src/commands/extensions/examples/custom-commands/blackbox-extension.json +4 -0
  39. package/dist/src/commands/extensions/examples/custom-commands/commands/deploy.toml +12 -0
  40. package/dist/src/commands/extensions/examples/exclude-tools/README.md +28 -0
  41. package/dist/src/commands/extensions/examples/exclude-tools/blackbox-extension.json +5 -0
  42. package/dist/src/commands/extensions/install.d.ts +6 -2
  43. package/dist/src/commands/extensions/install.js +109 -15
  44. package/dist/src/commands/extensions/install.js.map +1 -1
  45. package/dist/src/commands/extensions/link.d.ts +12 -0
  46. package/dist/src/commands/extensions/link.js +53 -0
  47. package/dist/src/commands/extensions/link.js.map +1 -0
  48. package/dist/src/commands/extensions/list.js +2 -2
  49. package/dist/src/commands/extensions/list.js.map +1 -1
  50. package/dist/src/commands/extensions/new.d.ts +13 -0
  51. package/dist/src/commands/extensions/new.js +145 -0
  52. package/dist/src/commands/extensions/new.js.map +1 -0
  53. package/dist/src/commands/extensions/settings.d.ts +18 -0
  54. package/dist/src/commands/extensions/settings.js +98 -0
  55. package/dist/src/commands/extensions/settings.js.map +1 -0
  56. package/dist/src/commands/extensions/update.d.ts +2 -1
  57. package/dist/src/commands/extensions/update.js +59 -10
  58. package/dist/src/commands/extensions/update.js.map +1 -1
  59. package/dist/src/commands/extensions/validate.d.ts +12 -0
  60. package/dist/src/commands/extensions/validate.js +72 -0
  61. package/dist/src/commands/extensions/validate.js.map +1 -0
  62. package/dist/src/commands/extensions.js +10 -1
  63. package/dist/src/commands/extensions.js.map +1 -1
  64. package/dist/src/commands/mcp/add.d.ts +11 -0
  65. package/dist/src/commands/mcp/add.js +61 -7
  66. package/dist/src/commands/mcp/add.js.map +1 -1
  67. package/dist/src/commands/update.d.ts +7 -0
  68. package/dist/src/commands/update.js +103 -0
  69. package/dist/src/commands/update.js.map +1 -0
  70. package/dist/src/commands/voice.d.ts +7 -0
  71. package/dist/src/commands/voice.js +510 -0
  72. package/dist/src/commands/voice.js.map +1 -0
  73. package/dist/src/config/auth.d.ts +32 -1
  74. package/dist/src/config/auth.js +317 -2
  75. package/dist/src/config/auth.js.map +1 -1
  76. package/dist/src/config/config.d.ts +7 -1
  77. package/dist/src/config/config.js +71 -10
  78. package/dist/src/config/config.js.map +1 -1
  79. package/dist/src/config/extension.d.ts +6 -1
  80. package/dist/src/config/extension.js +137 -11
  81. package/dist/src/config/extension.js.map +1 -1
  82. package/dist/src/config/extensions/github.d.ts +48 -0
  83. package/dist/src/config/extensions/github.js +308 -0
  84. package/dist/src/config/extensions/github.js.map +1 -0
  85. package/dist/src/config/keyBindings.d.ts +1 -0
  86. package/dist/src/config/keyBindings.js +3 -0
  87. package/dist/src/config/keyBindings.js.map +1 -1
  88. package/dist/src/config/modelFetcher.d.ts +21 -0
  89. package/dist/src/config/modelFetcher.js +226 -0
  90. package/dist/src/config/modelFetcher.js.map +1 -0
  91. package/dist/src/config/settings.js +101 -0
  92. package/dist/src/config/settings.js.map +1 -1
  93. package/dist/src/config/settingsSchema.d.ts +626 -0
  94. package/dist/src/config/settingsSchema.js +626 -0
  95. package/dist/src/config/settingsSchema.js.map +1 -1
  96. package/dist/src/config/voice.d.ts +31 -0
  97. package/dist/src/config/voice.js +82 -0
  98. package/dist/src/config/voice.js.map +1 -0
  99. package/dist/src/encrypt/attestation.d.ts +5 -0
  100. package/dist/src/encrypt/attestation.js +100 -0
  101. package/dist/src/encrypt/attestation.js.map +1 -0
  102. package/dist/src/encrypt/bridge.d.ts +30 -0
  103. package/dist/src/encrypt/bridge.js +32 -0
  104. package/dist/src/encrypt/bridge.js.map +1 -0
  105. package/dist/src/encrypt/client.d.ts +14 -0
  106. package/dist/src/encrypt/client.js +133 -0
  107. package/dist/src/encrypt/client.js.map +1 -0
  108. package/dist/src/encrypt/config.d.ts +26 -0
  109. package/dist/src/encrypt/config.js +51 -0
  110. package/dist/src/encrypt/config.js.map +1 -0
  111. package/dist/src/encrypt/crypto-utils.d.ts +57 -0
  112. package/dist/src/encrypt/crypto-utils.js +257 -0
  113. package/dist/src/encrypt/crypto-utils.js.map +1 -0
  114. package/dist/src/encrypt/index.d.ts +12 -0
  115. package/dist/src/encrypt/index.js +13 -0
  116. package/dist/src/encrypt/index.js.map +1 -0
  117. package/dist/src/encrypt/retry-utils.d.ts +20 -0
  118. package/dist/src/encrypt/retry-utils.js +60 -0
  119. package/dist/src/encrypt/retry-utils.js.map +1 -0
  120. package/dist/src/encrypt/sessions.d.ts +17 -0
  121. package/dist/src/encrypt/sessions.js +221 -0
  122. package/dist/src/encrypt/sessions.js.map +1 -0
  123. package/dist/src/encrypt/streaming-client.d.ts +29 -0
  124. package/dist/src/encrypt/streaming-client.js +226 -0
  125. package/dist/src/encrypt/streaming-client.js.map +1 -0
  126. package/dist/src/encrypt/types.d.ts +81 -0
  127. package/dist/src/encrypt/types.js +2 -0
  128. package/dist/src/encrypt/types.js.map +1 -0
  129. package/dist/src/gemini.d.ts +1 -1
  130. package/dist/src/gemini.js +61 -28
  131. package/dist/src/gemini.js.map +1 -1
  132. package/dist/src/generated/git-commit.d.ts +3 -3
  133. package/dist/src/generated/git-commit.js +3 -3
  134. package/dist/src/nonInteractiveCli.d.ts +4 -0
  135. package/dist/src/nonInteractiveCli.js +563 -6
  136. package/dist/src/nonInteractiveCli.js.map +1 -1
  137. package/dist/src/on-demand-extensions/README.md +266 -0
  138. package/dist/src/on-demand-extensions/git-helper/README.md +16 -0
  139. package/dist/src/on-demand-extensions/git-helper/blackbox-extension.json +5 -0
  140. package/dist/src/on-demand-extensions/git-helper/commands/git/branch-cleanup.toml +18 -0
  141. package/dist/src/on-demand-extensions/git-helper/commands/git/smart-commit.toml +22 -0
  142. package/dist/src/on-demand-extensions/greet/README.md +76 -0
  143. package/dist/src/on-demand-extensions/greet/blackbox-extension.json +5 -0
  144. package/dist/src/on-demand-extensions/greet/commands/greet/hello.toml +9 -0
  145. package/dist/src/on-demand-extensions/registry.json +251 -0
  146. package/dist/src/services/BuiltinCommandLoader.js +20 -2
  147. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  148. package/dist/src/services/EncryptedContentGenerator.d.ts +63 -0
  149. package/dist/src/services/EncryptedContentGenerator.js +426 -0
  150. package/dist/src/services/EncryptedContentGenerator.js.map +1 -0
  151. package/dist/src/services/McpCommandLoader.d.ts +24 -0
  152. package/dist/src/services/McpCommandLoader.js +50 -0
  153. package/dist/src/services/McpCommandLoader.js.map +1 -0
  154. package/dist/src/services/McpPromptLoader.js +17 -2
  155. package/dist/src/services/McpPromptLoader.js.map +1 -1
  156. package/dist/src/services/ReleaseNotesCache.d.ts +57 -0
  157. package/dist/src/services/ReleaseNotesCache.js +186 -0
  158. package/dist/src/services/ReleaseNotesCache.js.map +1 -0
  159. package/dist/src/services/elevenLabsErrors.d.ts +65 -0
  160. package/dist/src/services/elevenLabsErrors.js +233 -0
  161. package/dist/src/services/elevenLabsErrors.js.map +1 -0
  162. package/dist/src/services/elevenLabsService.d.ts +62 -0
  163. package/dist/src/services/elevenLabsService.js +186 -0
  164. package/dist/src/services/elevenLabsService.js.map +1 -0
  165. package/dist/src/services/elevenLabsStreamingService.d.ts +59 -0
  166. package/dist/src/services/elevenLabsStreamingService.js +202 -0
  167. package/dist/src/services/elevenLabsStreamingService.js.map +1 -0
  168. package/dist/src/services/elevenLabsTokenService.d.ts +21 -0
  169. package/dist/src/services/elevenLabsTokenService.js +42 -0
  170. package/dist/src/services/elevenLabsTokenService.js.map +1 -0
  171. package/dist/src/services/voiceInputHandler.d.ts +26 -0
  172. package/dist/src/services/voiceInputHandler.js +209 -0
  173. package/dist/src/services/voiceInputHandler.js.map +1 -0
  174. package/dist/src/services/voiceRecordingService.d.ts +69 -0
  175. package/dist/src/services/voiceRecordingService.js +397 -0
  176. package/dist/src/services/voiceRecordingService.js.map +1 -0
  177. package/dist/src/ui/App.d.ts +1 -0
  178. package/dist/src/ui/App.js +412 -63
  179. package/dist/src/ui/App.js.map +1 -1
  180. package/dist/src/ui/commands/browseExtensionsCommand.d.ts +7 -0
  181. package/dist/src/ui/commands/browseExtensionsCommand.js +16 -0
  182. package/dist/src/ui/commands/browseExtensionsCommand.js.map +1 -0
  183. package/dist/src/ui/commands/chatCommand.js +356 -16
  184. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  185. package/dist/src/ui/commands/dbCommand.d.ts +7 -0
  186. package/dist/src/ui/commands/dbCommand.js +37 -0
  187. package/dist/src/ui/commands/dbCommand.js.map +1 -0
  188. package/dist/src/ui/commands/docsCommand.js +1 -1
  189. package/dist/src/ui/commands/docsCommand.js.map +1 -1
  190. package/dist/src/ui/commands/mcpCommand.js +3 -2
  191. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  192. package/dist/src/ui/commands/mcpInvokeCommand.d.ts +16 -0
  193. package/dist/src/ui/commands/mcpInvokeCommand.js +263 -0
  194. package/dist/src/ui/commands/mcpInvokeCommand.js.map +1 -0
  195. package/dist/src/ui/commands/modelCommand.js +79 -5
  196. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  197. package/dist/src/ui/commands/multiAgentCommand.d.ts +7 -0
  198. package/dist/src/ui/commands/multiAgentCommand.js +833 -0
  199. package/dist/src/ui/commands/multiAgentCommand.js.map +1 -0
  200. package/dist/src/ui/commands/multiAgentConfigureCommand.d.ts +7 -0
  201. package/dist/src/ui/commands/multiAgentConfigureCommand.js +17 -0
  202. package/dist/src/ui/commands/multiAgentConfigureCommand.js.map +1 -0
  203. package/dist/src/ui/commands/quitCommand.js +71 -2
  204. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  205. package/dist/src/ui/commands/releasesCommand.d.ts +7 -0
  206. package/dist/src/ui/commands/releasesCommand.js +16 -0
  207. package/dist/src/ui/commands/releasesCommand.js.map +1 -0
  208. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  209. package/dist/src/ui/commands/shellPermissionsCommand.d.ts +7 -0
  210. package/dist/src/ui/commands/shellPermissionsCommand.js +109 -0
  211. package/dist/src/ui/commands/shellPermissionsCommand.js.map +1 -0
  212. package/dist/src/ui/commands/skillCommand.d.ts +7 -0
  213. package/dist/src/ui/commands/skillCommand.js +240 -0
  214. package/dist/src/ui/commands/skillCommand.js.map +1 -0
  215. package/dist/src/ui/commands/statsCommand.js +243 -1
  216. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  217. package/dist/src/ui/commands/tasksCommand.d.ts +7 -0
  218. package/dist/src/ui/commands/tasksCommand.js +535 -0
  219. package/dist/src/ui/commands/tasksCommand.js.map +1 -0
  220. package/dist/src/ui/commands/toolPermissionsCommand.d.ts +7 -0
  221. package/dist/src/ui/commands/toolPermissionsCommand.js +408 -0
  222. package/dist/src/ui/commands/toolPermissionsCommand.js.map +1 -0
  223. package/dist/src/ui/commands/types.d.ts +10 -2
  224. package/dist/src/ui/commands/types.js.map +1 -1
  225. package/dist/src/ui/commands/voiceCommand.d.ts +7 -0
  226. package/dist/src/ui/commands/voiceCommand.js +525 -0
  227. package/dist/src/ui/commands/voiceCommand.js.map +1 -0
  228. package/dist/src/ui/components/AuthDialog.d.ts +4 -2
  229. package/dist/src/ui/components/AuthDialog.js +349 -64
  230. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  231. package/dist/src/ui/components/AuthInProgress.js +3 -1
  232. package/dist/src/ui/components/AuthInProgress.js.map +1 -1
  233. package/dist/src/ui/components/ExtensionsDialog.d.ts +11 -0
  234. package/dist/src/ui/components/ExtensionsDialog.js +303 -0
  235. package/dist/src/ui/components/ExtensionsDialog.js.map +1 -0
  236. package/dist/src/ui/components/GenericProviderKeyPrompt.d.ts +24 -0
  237. package/dist/src/ui/components/GenericProviderKeyPrompt.js +99 -0
  238. package/dist/src/ui/components/GenericProviderKeyPrompt.js.map +1 -0
  239. package/dist/src/ui/components/Header.js +10 -1
  240. package/dist/src/ui/components/Header.js.map +1 -1
  241. package/dist/src/ui/components/HistoryBrowserDialog.d.ts +15 -0
  242. package/dist/src/ui/components/HistoryBrowserDialog.js +166 -0
  243. package/dist/src/ui/components/HistoryBrowserDialog.js.map +1 -0
  244. package/dist/src/ui/components/HistoryItemDisplay.js +13 -1
  245. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  246. package/dist/src/ui/components/InputPrompt.js +22 -8
  247. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  248. package/dist/src/ui/components/LoadingIndicator.d.ts +4 -0
  249. package/dist/src/ui/components/LoadingIndicator.js +16 -4
  250. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  251. package/dist/src/ui/components/LoadingIndicator.test.js +108 -16
  252. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  253. package/dist/src/ui/components/ModelSelectionDialog.d.ts +2 -0
  254. package/dist/src/ui/components/ModelSelectionDialog.js +33 -4
  255. package/dist/src/ui/components/ModelSelectionDialog.js.map +1 -1
  256. package/dist/src/ui/components/ModelSelectionDialog.test.js +41 -4
  257. package/dist/src/ui/components/ModelSelectionDialog.test.js.map +1 -1
  258. package/dist/src/ui/components/ReleaseNotesDialog.d.ts +23 -0
  259. package/dist/src/ui/components/ReleaseNotesDialog.js +150 -0
  260. package/dist/src/ui/components/ReleaseNotesDialog.js.map +1 -0
  261. package/dist/src/ui/components/ReleaseNotesDisplay.d.ts +18 -0
  262. package/dist/src/ui/components/ReleaseNotesDisplay.js +14 -0
  263. package/dist/src/ui/components/ReleaseNotesDisplay.js.map +1 -0
  264. package/dist/src/ui/components/SessionSummaryDisplay.d.ts +2 -0
  265. package/dist/src/ui/components/SessionSummaryDisplay.js +1 -1
  266. package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
  267. package/dist/src/ui/components/SettingsDialog.d.ts +3 -1
  268. package/dist/src/ui/components/SettingsDialog.js +17 -7
  269. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  270. package/dist/src/ui/components/ShellConfirmationDialog.d.ts +2 -0
  271. package/dist/src/ui/components/ShellConfirmationDialog.js +7 -3
  272. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  273. package/dist/src/ui/components/StatsDisplay.d.ts +2 -0
  274. package/dist/src/ui/components/StatsDisplay.js +92 -7
  275. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  276. package/dist/src/ui/components/SuggestionsDisplay.js +6 -1
  277. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  278. package/dist/src/ui/components/ThemeDialog.d.ts +3 -1
  279. package/dist/src/ui/components/ThemeDialog.js +5 -2
  280. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  281. package/dist/src/ui/components/Tips.js +1 -4
  282. package/dist/src/ui/components/Tips.js.map +1 -1
  283. package/dist/src/ui/components/TodoListDialog.d.ts +13 -0
  284. package/dist/src/ui/components/TodoListDialog.js +29 -0
  285. package/dist/src/ui/components/TodoListDialog.js.map +1 -0
  286. package/dist/src/ui/components/TodoListDialog.test.d.ts +6 -0
  287. package/dist/src/ui/components/TodoListDialog.test.js +60 -0
  288. package/dist/src/ui/components/TodoListDialog.test.js.map +1 -0
  289. package/dist/src/ui/components/VoiceConfigDialog.d.ts +17 -0
  290. package/dist/src/ui/components/VoiceConfigDialog.js +47 -0
  291. package/dist/src/ui/components/VoiceConfigDialog.js.map +1 -0
  292. package/dist/src/ui/components/messages/GeminiMessage.js +4 -0
  293. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  294. package/dist/src/ui/components/messages/GeminiMessageContent.js +4 -0
  295. package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -1
  296. package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +2 -0
  297. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +96 -9
  298. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  299. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +3 -3
  300. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  301. package/dist/src/ui/components/messages/ToolMessage.js +1 -1
  302. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  303. package/dist/src/ui/components/messages/ToolMessage.test.js +9 -12
  304. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  305. package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.d.ts +25 -0
  306. package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.js +179 -0
  307. package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.js.map +1 -0
  308. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +3 -1
  309. package/dist/src/ui/components/shared/RadioButtonSelect.js +57 -18
  310. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  311. package/dist/src/ui/components/shared/TextInput.d.ts +2 -1
  312. package/dist/src/ui/components/shared/TextInput.js +5 -2
  313. package/dist/src/ui/components/shared/TextInput.js.map +1 -1
  314. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +3 -3
  315. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js.map +1 -1
  316. package/dist/src/ui/constants.d.ts +3 -3
  317. package/dist/src/ui/constants.js +3 -3
  318. package/dist/src/ui/constants.js.map +1 -1
  319. package/dist/src/ui/contexts/SessionContext.d.ts +6 -0
  320. package/dist/src/ui/contexts/SessionContext.js +24 -2
  321. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  322. package/dist/src/ui/hooks/atCommandProcessor.js +139 -57
  323. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  324. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -1
  325. package/dist/src/ui/hooks/slashCommandProcessor.js +189 -17
  326. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  327. package/dist/src/ui/hooks/useAdaptiveStream.d.ts +42 -0
  328. package/dist/src/ui/hooks/useAdaptiveStream.js +31 -0
  329. package/dist/src/ui/hooks/useAdaptiveStream.js.map +1 -0
  330. package/dist/src/ui/hooks/useAtCompletion.js +20 -4
  331. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  332. package/dist/src/ui/hooks/useAuthCommand.d.ts +2 -2
  333. package/dist/src/ui/hooks/useAuthCommand.js +99 -5
  334. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  335. package/dist/src/ui/hooks/useCommandCompletion.js +14 -10
  336. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  337. package/dist/src/ui/hooks/useDialogClose.d.ts +10 -0
  338. package/dist/src/ui/hooks/useDialogClose.js +25 -0
  339. package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
  340. package/dist/src/ui/hooks/useDialogCloseAnimation.d.ts +22 -0
  341. package/dist/src/ui/hooks/useDialogCloseAnimation.js +68 -0
  342. package/dist/src/ui/hooks/useDialogCloseAnimation.js.map +1 -0
  343. package/dist/src/ui/hooks/useEncryptedStream.d.ts +22 -0
  344. package/dist/src/ui/hooks/useEncryptedStream.js +378 -0
  345. package/dist/src/ui/hooks/useEncryptedStream.js.map +1 -0
  346. package/dist/src/ui/hooks/useExtensionsDialog.d.ts +10 -0
  347. package/dist/src/ui/hooks/useExtensionsDialog.js +21 -0
  348. package/dist/src/ui/hooks/useExtensionsDialog.js.map +1 -0
  349. package/dist/src/ui/hooks/useGeminiStream.js +6 -2
  350. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  351. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  352. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
  353. package/dist/src/ui/hooks/useLoadingIndicator.js +3 -2
  354. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  355. package/dist/src/ui/hooks/useLoadingIndicator.test.js +27 -5
  356. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  357. package/dist/src/ui/hooks/useMultiAgentConfigCommand.d.ts +10 -0
  358. package/dist/src/ui/hooks/useMultiAgentConfigCommand.js +21 -0
  359. package/dist/src/ui/hooks/useMultiAgentConfigCommand.js.map +1 -0
  360. package/dist/src/ui/hooks/useReleasesDialog.d.ts +20 -0
  361. package/dist/src/ui/hooks/useReleasesDialog.js +214 -0
  362. package/dist/src/ui/hooks/useReleasesDialog.js.map +1 -0
  363. package/dist/src/ui/hooks/useSlashCompletion.js +10 -8
  364. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  365. package/dist/src/ui/hooks/useTodoList.d.ts +17 -0
  366. package/dist/src/ui/hooks/useTodoList.js +51 -0
  367. package/dist/src/ui/hooks/useTodoList.js.map +1 -0
  368. package/dist/src/ui/keyMatchers.test.js +6 -0
  369. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  370. package/dist/src/ui/themes/blackbox-dark.js +1 -1
  371. package/dist/src/ui/themes/blackbox-dark.js.map +1 -1
  372. package/dist/src/ui/themes/blackbox-light.js +1 -1
  373. package/dist/src/ui/themes/blackbox-light.js.map +1 -1
  374. package/dist/src/ui/types.d.ts +15 -2
  375. package/dist/src/ui/types.js +1 -0
  376. package/dist/src/ui/types.js.map +1 -1
  377. package/dist/src/ui/utils/computeStats.d.ts +25 -1
  378. package/dist/src/ui/utils/computeStats.js +58 -1
  379. package/dist/src/ui/utils/computeStats.js.map +1 -1
  380. package/dist/src/ui/utils/updateCheck.js +37 -54
  381. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  382. package/dist/src/utils/backgroundUpdateCheck.d.ts +15 -0
  383. package/dist/src/utils/backgroundUpdateCheck.js +48 -0
  384. package/dist/src/utils/backgroundUpdateCheck.js.map +1 -0
  385. package/dist/src/utils/gitAutoDetect.d.ts +16 -0
  386. package/dist/src/utils/gitAutoDetect.js +45 -0
  387. package/dist/src/utils/gitAutoDetect.js.map +1 -0
  388. package/dist/src/utils/installationInfo.d.ts +1 -0
  389. package/dist/src/utils/installationInfo.js +24 -4
  390. package/dist/src/utils/installationInfo.js.map +1 -1
  391. package/dist/src/utils/preLaunchUpdateCheck.d.ts +17 -0
  392. package/dist/src/utils/preLaunchUpdateCheck.js +75 -0
  393. package/dist/src/utils/preLaunchUpdateCheck.js.map +1 -0
  394. package/dist/src/utils/version.js +12 -1
  395. package/dist/src/utils/version.js.map +1 -1
  396. package/dist/src/utils/versionStorage.d.ts +50 -0
  397. package/dist/src/utils/versionStorage.js +224 -0
  398. package/dist/src/utils/versionStorage.js.map +1 -0
  399. package/dist/src/validateNonInterActiveAuth.js +10 -3
  400. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  401. package/dist/src/virtual-extensions.d.ts +14 -0
  402. package/dist/src/virtual-extensions.js +56 -0
  403. package/dist/src/virtual-extensions.js.map +1 -0
  404. package/dist/src/zed-integration/fileSystemService.d.ts +3 -3
  405. package/dist/src/zed-integration/fileSystemService.js +5 -7
  406. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  407. package/dist/src/zed-integration/zedIntegration.js +62 -17
  408. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  409. package/dist/tsconfig.tsbuildinfo +1 -1
  410. package/package.json +13 -3
  411. package/dist/src/utils/handleAutoUpdate.d.ts +0 -11
  412. package/dist/src/utils/handleAutoUpdate.js +0 -102
  413. package/dist/src/utils/handleAutoUpdate.js.map +0 -1
  414. package/dist/src/utils/updateEventEmitter.d.ts +0 -11
  415. package/dist/src/utils/updateEventEmitter.js +0 -12
  416. package/dist/src/utils/updateEventEmitter.js.map +0 -1
  417. package/dist/src/zed-integration/acp.d.ts +0 -63
  418. package/dist/src/zed-integration/acp.js +0 -226
  419. package/dist/src/zed-integration/acp.js.map +0 -1
  420. package/dist/src/zed-integration/schema.d.ts +0 -11782
  421. package/dist/src/zed-integration/schema.js +0 -311
  422. package/dist/src/zed-integration/schema.js.map +0 -1
@@ -0,0 +1,408 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { CommandKind } from './types.js';
7
+ import { MessageType } from '../types.js';
8
+ import { SettingScope } from '../../config/settings.js';
9
+ const VALID_TYPES = [
10
+ 'shell',
11
+ 'memory',
12
+ 'file',
13
+ 'external',
14
+ 'mcp-server',
15
+ 'mcp-tool',
16
+ 'web-search',
17
+ 'vim',
18
+ ];
19
+ export const toolPermissionsCommand = {
20
+ name: 'tool-permissions',
21
+ description: 'View and manage approved tool permissions across all tools',
22
+ kind: CommandKind.BUILT_IN,
23
+ action: async (context, args) => {
24
+ const config = context.services.config;
25
+ if (!config) {
26
+ context.ui.setDebugMessage('Config not available');
27
+ return;
28
+ }
29
+ // Parse args string into array
30
+ const argArray = args.trim().split(/\s+/).filter(Boolean);
31
+ const subcommand = argArray[0]?.toLowerCase();
32
+ // Handle 'list' or no subcommand - show all approvals
33
+ if (!subcommand || subcommand === 'list') {
34
+ await handleList(context, config, argArray[1]);
35
+ return;
36
+ }
37
+ // Handle 'clear' subcommand
38
+ if (subcommand === 'clear') {
39
+ await handleClear(context, config, argArray[1]);
40
+ return;
41
+ }
42
+ // Handle 'add' subcommand
43
+ if (subcommand === 'add' && argArray.length > 2) {
44
+ const type = argArray[1];
45
+ const values = argArray.slice(2);
46
+ await handleAdd(context, config, type, values);
47
+ return;
48
+ }
49
+ // Handle 'remove' subcommand
50
+ if (subcommand === 'remove' && argArray.length > 2) {
51
+ const type = argArray[1];
52
+ const values = argArray.slice(2);
53
+ await handleRemove(context, config, type, values);
54
+ return;
55
+ }
56
+ // Invalid usage - show help
57
+ showHelp(context);
58
+ },
59
+ };
60
+ async function handleList(context, config, type) {
61
+ const sections = [];
62
+ // Helper to add a section if it has items
63
+ const addSection = (title, items) => {
64
+ if (typeof items === 'boolean') {
65
+ sections.push(`${title}: ${items ? 'Enabled' : 'Disabled'}`);
66
+ }
67
+ else if (items.length > 0) {
68
+ const itemList = items.map(item => ` • ${item}`).join('\n');
69
+ sections.push(`${title} (${items.length}):\n${itemList}`);
70
+ }
71
+ else if (!type) {
72
+ sections.push(`${title}: None`);
73
+ }
74
+ };
75
+ // Show specific type or all types
76
+ if (!type || type === 'shell') {
77
+ const commands = config.getApprovedShellCommands();
78
+ addSection('Shell Commands', commands);
79
+ }
80
+ if (!type || type === 'memory') {
81
+ const scopes = config.getApprovedMemoryScopes();
82
+ addSection('Memory Scopes', scopes);
83
+ }
84
+ if (!type || type === 'file') {
85
+ const files = config.getApprovedFileOperations();
86
+ addSection('File Operations', files);
87
+ }
88
+ if (!type || type === 'external') {
89
+ const paths = config.getApprovedExternalPaths();
90
+ addSection('External Paths', paths);
91
+ }
92
+ if (!type || type === 'mcp-server') {
93
+ const servers = config.getApprovedMcpServers();
94
+ addSection('MCP Servers', servers);
95
+ }
96
+ if (!type || type === 'mcp-tool') {
97
+ const tools = config.getApprovedMcpTools();
98
+ addSection('MCP Tools', tools);
99
+ }
100
+ if (!type || type === 'web-search') {
101
+ const enabled = config.getWebSearchAlwaysAllow();
102
+ addSection('Web Search', enabled);
103
+ }
104
+ if (!type || type === 'vim') {
105
+ const vimEnabled = context.services.settings?.merged.general?.vimMode ?? false;
106
+ addSection('Vim Mode', vimEnabled);
107
+ }
108
+ if (sections.length === 0) {
109
+ context.ui.addItem({
110
+ type: MessageType.INFO,
111
+ text: type
112
+ ? `No approved ${type} permissions found.`
113
+ : 'No tool permissions have been approved yet.',
114
+ }, Date.now());
115
+ return;
116
+ }
117
+ const header = type
118
+ ? `Approved ${type.charAt(0).toUpperCase() + type.slice(1)} Permissions`
119
+ : 'All Approved Tool Permissions';
120
+ const message = [
121
+ header,
122
+ '',
123
+ ...sections,
124
+ '',
125
+ 'Use /tool-permissions help for command usage.',
126
+ ].join('\n');
127
+ context.ui.addItem({
128
+ type: MessageType.INFO,
129
+ text: message,
130
+ }, Date.now());
131
+ }
132
+ async function handleClear(context, config, type) {
133
+ if (!type) {
134
+ // Clear all
135
+ config.saveApprovedShellCommands([]);
136
+ config.saveApprovedMemoryScopes([]);
137
+ config.saveApprovedFileOperations([]);
138
+ config.saveApprovedExternalPaths([]);
139
+ config.saveApprovedMcpServers([]);
140
+ config.saveApprovedMcpTools([]);
141
+ config.saveWebSearchAlwaysAllow(false);
142
+ context.ui.addItem({
143
+ type: MessageType.INFO,
144
+ text: '✓ All tool permissions have been cleared.',
145
+ }, Date.now());
146
+ return;
147
+ }
148
+ // Clear specific type
149
+ switch (type) {
150
+ case 'shell':
151
+ config.saveApprovedShellCommands([]);
152
+ break;
153
+ case 'memory':
154
+ config.saveApprovedMemoryScopes([]);
155
+ break;
156
+ case 'file':
157
+ config.saveApprovedFileOperations([]);
158
+ break;
159
+ case 'external':
160
+ config.saveApprovedExternalPaths([]);
161
+ break;
162
+ case 'mcp-server':
163
+ config.saveApprovedMcpServers([]);
164
+ break;
165
+ case 'mcp-tool':
166
+ config.saveApprovedMcpTools([]);
167
+ break;
168
+ case 'web-search':
169
+ config.saveWebSearchAlwaysAllow(false);
170
+ break;
171
+ case 'vim':
172
+ await context.services.settings?.setValue(SettingScope.User, 'general.vimMode', false);
173
+ break;
174
+ default:
175
+ context.ui.addItem({
176
+ type: MessageType.INFO,
177
+ text: `⚠ Invalid type: ${type}. Valid types: ${VALID_TYPES.join(', ')}`,
178
+ }, Date.now());
179
+ return;
180
+ }
181
+ context.ui.addItem({
182
+ type: MessageType.INFO,
183
+ text: `✓ Cleared all ${type} permissions.`,
184
+ }, Date.now());
185
+ }
186
+ async function handleAdd(context, config, type, values) {
187
+ if (!VALID_TYPES.includes(type)) {
188
+ context.ui.addItem({
189
+ type: MessageType.INFO,
190
+ text: `⚠ Invalid type: ${type}. Valid types: ${VALID_TYPES.join(', ')}`,
191
+ }, Date.now());
192
+ return;
193
+ }
194
+ let addedCount = 0;
195
+ switch (type) {
196
+ case 'shell': {
197
+ const current = config.getApprovedShellCommands();
198
+ const updated = [...new Set([...current, ...values])];
199
+ addedCount = updated.length - current.length;
200
+ config.saveApprovedShellCommands(updated);
201
+ break;
202
+ }
203
+ case 'memory': {
204
+ const current = config.getApprovedMemoryScopes();
205
+ const updated = [...new Set([...current, ...values])];
206
+ addedCount = updated.length - current.length;
207
+ config.saveApprovedMemoryScopes(updated);
208
+ break;
209
+ }
210
+ case 'file': {
211
+ const current = config.getApprovedFileOperations();
212
+ const updated = [...new Set([...current, ...values])];
213
+ addedCount = updated.length - current.length;
214
+ config.saveApprovedFileOperations(updated);
215
+ break;
216
+ }
217
+ case 'external': {
218
+ const current = config.getApprovedExternalPaths();
219
+ const updated = [...new Set([...current, ...values])];
220
+ addedCount = updated.length - current.length;
221
+ config.saveApprovedExternalPaths(updated);
222
+ break;
223
+ }
224
+ case 'mcp-server': {
225
+ const current = config.getApprovedMcpServers();
226
+ const updated = [...new Set([...current, ...values])];
227
+ addedCount = updated.length - current.length;
228
+ config.saveApprovedMcpServers(updated);
229
+ break;
230
+ }
231
+ case 'mcp-tool': {
232
+ const current = config.getApprovedMcpTools();
233
+ const updated = [...new Set([...current, ...values])];
234
+ addedCount = updated.length - current.length;
235
+ config.saveApprovedMcpTools(updated);
236
+ break;
237
+ }
238
+ case 'web-search': {
239
+ // For web-search, interpret first value as boolean
240
+ const enable = values[0]?.toLowerCase() === 'true' || values[0] === '1' || values[0]?.toLowerCase() === 'enable';
241
+ config.saveWebSearchAlwaysAllow(enable);
242
+ context.ui.addItem({
243
+ type: MessageType.INFO,
244
+ text: `✓ Web search always allow: ${enable ? 'Enabled' : 'Disabled'}`,
245
+ }, Date.now());
246
+ return;
247
+ }
248
+ case 'vim': {
249
+ // For vim, interpret first value as boolean
250
+ const enable = values[0]?.toLowerCase() === 'true' || values[0] === '1' || values[0]?.toLowerCase() === 'enable';
251
+ await context.services.settings?.setValue(SettingScope.User, 'general.vimMode', enable);
252
+ context.ui.addItem({
253
+ type: MessageType.INFO,
254
+ text: `✓ Vim mode: ${enable ? 'Enabled' : 'Disabled'}`,
255
+ }, Date.now());
256
+ return;
257
+ }
258
+ default:
259
+ context.ui.addItem({
260
+ type: MessageType.INFO,
261
+ text: `⚠ Invalid type: ${type}. Valid types: ${VALID_TYPES.join(', ')}`,
262
+ }, Date.now());
263
+ return;
264
+ }
265
+ if (addedCount > 0) {
266
+ context.ui.addItem({
267
+ type: MessageType.INFO,
268
+ text: `✓ Added ${addedCount} ${type} permission(s): ${values.join(', ')}`,
269
+ }, Date.now());
270
+ }
271
+ else {
272
+ context.ui.addItem({
273
+ type: MessageType.INFO,
274
+ text: `ℹ All specified ${type} permissions were already approved.`,
275
+ }, Date.now());
276
+ }
277
+ }
278
+ async function handleRemove(context, config, type, values) {
279
+ if (!VALID_TYPES.includes(type)) {
280
+ context.ui.addItem({
281
+ type: MessageType.INFO,
282
+ text: `⚠ Invalid type: ${type}. Valid types: ${VALID_TYPES.join(', ')}`,
283
+ }, Date.now());
284
+ return;
285
+ }
286
+ let removedCount = 0;
287
+ switch (type) {
288
+ case 'shell': {
289
+ const current = config.getApprovedShellCommands();
290
+ const filtered = current.filter((cmd) => !values.includes(cmd));
291
+ removedCount = current.length - filtered.length;
292
+ config.saveApprovedShellCommands(filtered);
293
+ break;
294
+ }
295
+ case 'memory': {
296
+ const current = config.getApprovedMemoryScopes();
297
+ const filtered = current.filter((scope) => !values.includes(scope));
298
+ removedCount = current.length - filtered.length;
299
+ config.saveApprovedMemoryScopes(filtered);
300
+ break;
301
+ }
302
+ case 'file': {
303
+ const current = config.getApprovedFileOperations();
304
+ const filtered = current.filter((file) => !values.includes(file));
305
+ removedCount = current.length - filtered.length;
306
+ config.saveApprovedFileOperations(filtered);
307
+ break;
308
+ }
309
+ case 'external': {
310
+ const current = config.getApprovedExternalPaths();
311
+ const filtered = current.filter((p) => !values.includes(p));
312
+ removedCount = current.length - filtered.length;
313
+ config.saveApprovedExternalPaths(filtered);
314
+ break;
315
+ }
316
+ case 'mcp-server': {
317
+ const current = config.getApprovedMcpServers();
318
+ const filtered = current.filter((server) => !values.includes(server));
319
+ removedCount = current.length - filtered.length;
320
+ config.saveApprovedMcpServers(filtered);
321
+ break;
322
+ }
323
+ case 'mcp-tool': {
324
+ const current = config.getApprovedMcpTools();
325
+ const filtered = current.filter((tool) => !values.includes(tool));
326
+ removedCount = current.length - filtered.length;
327
+ config.saveApprovedMcpTools(filtered);
328
+ break;
329
+ }
330
+ case 'web-search': {
331
+ config.saveWebSearchAlwaysAllow(false);
332
+ context.ui.addItem({
333
+ type: MessageType.INFO,
334
+ text: '✓ Web search always allow has been disabled.',
335
+ }, Date.now());
336
+ return;
337
+ }
338
+ case 'vim': {
339
+ await context.services.settings?.setValue(SettingScope.User, 'general.vimMode', false);
340
+ context.ui.addItem({
341
+ type: MessageType.INFO,
342
+ text: '✓ Vim mode has been disabled.',
343
+ }, Date.now());
344
+ return;
345
+ }
346
+ default:
347
+ context.ui.addItem({
348
+ type: MessageType.INFO,
349
+ text: `⚠ Invalid type: ${type}. Valid types: ${VALID_TYPES.join(', ')}`,
350
+ }, Date.now());
351
+ return;
352
+ }
353
+ if (removedCount > 0) {
354
+ context.ui.addItem({
355
+ type: MessageType.INFO,
356
+ text: `✓ Removed ${removedCount} ${type} permission(s).`,
357
+ }, Date.now());
358
+ }
359
+ else {
360
+ context.ui.addItem({
361
+ type: MessageType.INFO,
362
+ text: `⚠ None of the specified ${type} permissions were found.`,
363
+ }, Date.now());
364
+ }
365
+ }
366
+ function showHelp(context) {
367
+ const message = [
368
+ 'Tool Permissions Management',
369
+ '',
370
+ 'Manage persistent "always allow" approvals for all tools.',
371
+ '',
372
+ 'Usage:',
373
+ ' /tool-permissions [list] [type] - List all or specific type approvals',
374
+ ' /tool-permissions add <type> <value> [...] - Add approval(s)',
375
+ ' /tool-permissions remove <type> <value> [...] - Remove approval(s)',
376
+ ' /tool-permissions clear [type] - Clear all or specific type',
377
+ '',
378
+ 'Types:',
379
+ ' shell - Shell command roots (e.g., npm, git)',
380
+ ' memory - Memory scopes (e.g., global, project, file paths)',
381
+ ' file - File paths for edit/write operations',
382
+ ' external - External file paths for read operations',
383
+ ' mcp-server - MCP server names (approves all tools from server)',
384
+ ' mcp-tool - Specific MCP tools (format: server-name.tool-name)',
385
+ ' web-search - Web search approval (use: enable/disable/true/false)',
386
+ ' vim - Vim mode (use: enable/disable/true/false)',
387
+ '',
388
+ 'Examples:',
389
+ ' /tool-permissions - List all approvals',
390
+ ' /tool-permissions list shell - List shell command approvals',
391
+ ' /tool-permissions add shell npm git - Approve npm and git commands',
392
+ ' /tool-permissions add file /path/to/file - Approve file operations',
393
+ ' /tool-permissions add mcp-server my-server - Approve all tools from server',
394
+ ' /tool-permissions add web-search enable - Enable web search',
395
+ ' /tool-permissions add vim enable - Enable vim mode',
396
+ ' /tool-permissions remove shell npm - Remove npm approval',
397
+ ' /tool-permissions clear shell - Clear all shell approvals',
398
+ ' /tool-permissions clear - Clear ALL approvals',
399
+ '',
400
+ 'Note: These approvals persist across all sessions globally.',
401
+ 'Settings are stored in ~/.blackboxcli/settings.json',
402
+ ].join('\n');
403
+ context.ui.addItem({
404
+ type: MessageType.INFO,
405
+ text: message,
406
+ }, Date.now());
407
+ }
408
+ //# sourceMappingURL=toolPermissionsCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolPermissionsCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/toolPermissionsCommand.ts"],"names":[],"mappings":"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"}
@@ -94,7 +94,7 @@ export interface MessageActionReturn {
94
94
  */
95
95
  export interface OpenDialogActionReturn {
96
96
  type: 'dialog';
97
- dialog: 'help' | 'auth' | 'theme' | 'editor' | 'privacy' | 'settings' | 'model' | 'subagent_create' | 'subagent_list';
97
+ dialog: 'help' | 'auth' | 'theme' | 'editor' | 'privacy' | 'settings' | 'model' | 'subagent_create' | 'subagent_list' | 'history_browser' | 'multi_agent_config' | 'extensions' | 'db_configure' | 'voice_config' | 'releases';
98
98
  }
99
99
  /**
100
100
  * The return type for a command action that results in replacing
@@ -141,6 +141,14 @@ export declare enum CommandKind {
141
141
  FILE = "file",
142
142
  MCP_PROMPT = "mcp-prompt"
143
143
  }
144
+ /**
145
+ * A completion item that can be either a simple string or an object with
146
+ * separate label (for display) and value (for insertion).
147
+ */
148
+ export type CompletionItem = string | {
149
+ label: string;
150
+ value: string;
151
+ };
144
152
  export interface SlashCommand {
145
153
  name: string;
146
154
  altNames?: string[];
@@ -148,6 +156,6 @@ export interface SlashCommand {
148
156
  kind: CommandKind;
149
157
  extensionName?: string;
150
158
  action?: (context: CommandContext, args: string) => void | SlashCommandActionReturn | Promise<void | SlashCommandActionReturn>;
151
- completion?: (context: CommandContext, partialArg: string) => Promise<string[]>;
159
+ completion?: (context: CommandContext, partialArg: string) => Promise<CompletionItem[]>;
152
160
  subCommands?: SlashCommand[];
153
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui/commands/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAkB,MAAM,OAAO,CAAC;AA2KvC,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,wCAAyB,CAAA;AAC3B,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui/commands/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAkB,MAAM,OAAO,CAAC;AAiLvC,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,wCAAyB,CAAA;AAC3B,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { SlashCommand } from './types.js';
7
+ export declare const voiceCommand: SlashCommand;