@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,426 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { GenerateContentResponse } from '@google/genai';
7
+ import { EncryptedChatService, createEncryptedToolParser, formatToolsForSystemPrompt } from '@blackbox_ai/blackbox-cli-core';
8
+ /**
9
+ * EncryptedContentGenerator implements the ContentGenerator interface
10
+ * but routes requests through the BlackboxAI encryption system instead of OpenAI API
11
+ */
12
+ export class EncryptedContentGenerator {
13
+ encryptedService;
14
+ initialized = false;
15
+ constructor(_sessionId) {
16
+ this.encryptedService = new EncryptedChatService();
17
+ }
18
+ /**
19
+ * Initialize the encrypted service
20
+ */
21
+ async ensureInitialized() {
22
+ if (!this.initialized) {
23
+ try {
24
+ await this.encryptedService.initialize();
25
+ this.initialized = true;
26
+ }
27
+ catch (error) {
28
+ console.warn('⚠️ Failed to initialize encrypted service:', error);
29
+ // Don't throw here, let individual methods handle fallback
30
+ }
31
+ }
32
+ }
33
+ /**
34
+ * Extract tools from request and format them for system prompt
35
+ */
36
+ extractAndFormatTools(request) {
37
+ const tools = [];
38
+ // Extract tools from request.config.tools
39
+ if (request.config?.tools) {
40
+ for (const toolGroup of request.config.tools) {
41
+ // Handle different tool types - check if it has functionDeclarations
42
+ if ('functionDeclarations' in toolGroup && toolGroup.functionDeclarations) {
43
+ tools.push(...toolGroup.functionDeclarations);
44
+ }
45
+ }
46
+ }
47
+ if (tools.length === 0) {
48
+ return '';
49
+ }
50
+ // Use the tool formatter to create system prompt addition
51
+ // Default to 'DeepSeek' format, but could be made configurable
52
+ return formatToolsForSystemPrompt(tools, 'deepseek');
53
+ }
54
+ /**
55
+ * Convert Content[] to message history format expected by EncryptedChatService
56
+ */
57
+ convertToMessageHistory(contents, toolsSystemPrompt = '') {
58
+ const messages = contents.map(content => {
59
+ // Extract text from parts
60
+ const textParts = content.parts?.filter((part) => typeof part === 'object' && part !== null && 'text' in part) || [];
61
+ const text = textParts.map(part => part.text).join('\n');
62
+ // Map roles
63
+ const role = content.role === 'model' ? 'assistant' : content.role;
64
+ return { role, content: text };
65
+ });
66
+ // Add tools to system prompt if we have tools and a system message
67
+ if (toolsSystemPrompt && messages.length > 0 && messages[0].role === 'system') {
68
+ messages[0].content += toolsSystemPrompt;
69
+ }
70
+ else if (toolsSystemPrompt && (messages.length === 0 || messages[0].role !== 'system')) {
71
+ // Insert system message with tools at the beginning
72
+ messages.unshift({
73
+ role: 'system',
74
+ content: `You are a helpful AI assistant.${toolsSystemPrompt}`
75
+ });
76
+ }
77
+ return messages;
78
+ }
79
+ /**
80
+ * Convert Parts to text content
81
+ */
82
+ convertPartsToText(parts) {
83
+ return parts
84
+ .filter((part) => typeof part === 'object' && part !== null && 'text' in part)
85
+ .map(part => part.text)
86
+ .join('\n');
87
+ }
88
+ /**
89
+ * Extract Content objects from the mixed content array
90
+ */
91
+ extractContentArray(contents) {
92
+ if (Array.isArray(contents)) {
93
+ return contents.filter((item) => typeof item === 'object' && item !== null && 'parts' in item);
94
+ }
95
+ else if (typeof contents === 'object' && contents !== null && 'parts' in contents) {
96
+ return [contents];
97
+ }
98
+ return [];
99
+ }
100
+ /**
101
+ * Parse tool calls from encrypted response text using enhanced parser
102
+ */
103
+ parseToolCallsFromResponse(text, tools) {
104
+ // Try to detect model type from response format
105
+ const modelType = this.detectModelType(text);
106
+ // Use the enhanced tool parser
107
+ const parser = createEncryptedToolParser();
108
+ const parseResult = parser.parseComplete(text, tools, modelType);
109
+ if (!parseResult.success) {
110
+ console.error('❌ Tool parsing failed:', parseResult.error);
111
+ console.error('❌ Failed text:', text.substring(0, 500));
112
+ // Return empty array if parsing fails
113
+ return [];
114
+ }
115
+ const functionCalls = parseResult.toolCalls.map((tc, index) => {
116
+ const functionCall = {
117
+ name: tc.name,
118
+ args: tc.arguments,
119
+ id: tc.id || `call_${Date.now()}_${index}`
120
+ };
121
+ return functionCall;
122
+ });
123
+ return functionCalls;
124
+ }
125
+ /**
126
+ * Detect model type from response format
127
+ */
128
+ detectModelType(text) {
129
+ // Check for DeepSeek format tokens
130
+ if (text.includes('<|tool▁calls▁begin|>') || text.includes('<|tool▁call▁begin|>')) {
131
+ return 'deepseek';
132
+ }
133
+ // Default to DeepSeek format
134
+ return 'deepseek';
135
+ }
136
+ /**
137
+ * Remove tool call markup from response text to get clean text content
138
+ */
139
+ removeToolCallMarkup(text) {
140
+ let cleanText = text;
141
+ // Remove Qwen format tool calls
142
+ cleanText = cleanText.replace(/<tool_call>\s*[\s\S]*?\s*<\/tool_call>/g, '');
143
+ // Remove DeepSeek format tool calls - full block format
144
+ cleanText = cleanText.replace(/<|tool▁calls▁begin|>[\s\S]*?<|tool▁calls▁end|>/g, '');
145
+ // Remove DeepSeek format tool calls - individual tool call format with full structure
146
+ // Pattern: <|tool▁call▁begin|>toolname<|tool▁sep|>{"args"}<|tool▁call▁end|>
147
+ cleanText = cleanText.replace(/<|tool▁call▁begin|>[a-zA-Z_][a-zA-Z0-9_]*<|tool▁sep|>[\s\S]*?<|tool▁call▁end|>/g, '');
148
+ // Remove DeepSeek format tool calls - incomplete format (missing begin tokens)
149
+ // Pattern: toolname<|tool▁sep|>{"args"}<|tool▁call▁end|><|tool▁calls▁end|>
150
+ cleanText = cleanText.replace(/[a-zA-Z_][a-zA-Z0-9_]*<|tool▁sep|>[\s\S]*?<|tool▁call▁end|><|tool▁calls▁end|>/g, '');
151
+ // Remove DeepSeek format tool calls - simple individual format
152
+ // Pattern: toolname<|tool▁sep|>{"args"}<|tool▁call▁end|>
153
+ cleanText = cleanText.replace(/[a-zA-Z_][a-zA-Z0-9_]*<|tool▁sep|>[\s\S]*?<|tool▁call▁end|>/g, '');
154
+ // CRITICAL FIX: Remove standalone end tokens that might appear at the end of responses
155
+ // This handles cases where the model outputs text followed by a standalone end token
156
+ cleanText = cleanText.replace(/<|tool▁calls▁end|>\s*$/g, '');
157
+ cleanText = cleanText.replace(/<|tool▁call▁end|>\s*$/g, '');
158
+ // Remove any remaining DeepSeek tool markers (cleanup pass)
159
+ cleanText = cleanText.replace(/<|tool▁call▁begin|>/g, '');
160
+ cleanText = cleanText.replace(/<|tool▁call▁end|>/g, '');
161
+ cleanText = cleanText.replace(/<|tool▁sep|>/g, '');
162
+ cleanText = cleanText.replace(/<|tool▁calls▁begin|>/g, '');
163
+ cleanText = cleanText.replace(/<|tool▁calls▁end|>/g, '');
164
+ // Clean up extra whitespace and empty lines
165
+ cleanText = cleanText.replace(/\n\s*\n\s*\n/g, '\n\n');
166
+ cleanText = cleanText.replace(/^\s+|\s+$/g, ''); // trim start and end
167
+ return cleanText;
168
+ }
169
+ /**
170
+ * Extract tools from request for validation
171
+ */
172
+ extractToolsFromRequest(request) {
173
+ const tools = [];
174
+ // Extract tools from request.config.tools
175
+ if (request.config?.tools) {
176
+ for (const toolGroup of request.config.tools) {
177
+ // Handle different tool types - check if it has functionDeclarations
178
+ if ('functionDeclarations' in toolGroup && toolGroup.functionDeclarations) {
179
+ tools.push(...toolGroup.functionDeclarations);
180
+ }
181
+ }
182
+ }
183
+ return tools;
184
+ }
185
+ /**
186
+ * Create a fallback response for errors
187
+ */
188
+ createFallbackResponse(userMessage, error) {
189
+ const fallbackText = `🔒 **ENCRYPTED RESPONSE (Error Recovery)**
190
+
191
+ Your message: "${userMessage}"
192
+
193
+ I encountered an issue while processing your request through the encrypted channel, but I'm providing a secure fallback response.
194
+
195
+ **Error Details:**
196
+ - Error: ${error.message}
197
+ - Encryption Status: Maintained
198
+ - Session: Secure
199
+
200
+ **Available Tools:**
201
+ I have access to various tools including file operations, search capabilities, and system commands. Please try your request again, and I'll attempt to process it through the encrypted channel.
202
+
203
+ How can I help you today?`;
204
+ const response = new GenerateContentResponse();
205
+ response.candidates = [{
206
+ content: {
207
+ role: 'model',
208
+ parts: [{ text: fallbackText }]
209
+ },
210
+ finishReason: 'STOP',
211
+ index: 0,
212
+ safetyRatings: []
213
+ }];
214
+ response.usageMetadata = {
215
+ promptTokenCount: userMessage.length / 4,
216
+ candidatesTokenCount: fallbackText.length / 4,
217
+ totalTokenCount: (userMessage.length + fallbackText.length) / 4
218
+ };
219
+ response.modelVersion = 'blackboxai/encrypted-fallback';
220
+ response.promptFeedback = { safetyRatings: [] };
221
+ return response;
222
+ }
223
+ async generateContent(request, _userPromptId) {
224
+ await this.ensureInitialized();
225
+ try {
226
+ // Extract and format tools for system prompt
227
+ const toolsSystemPrompt = this.extractAndFormatTools(request);
228
+ // Extract content array from request
229
+ const contents = Array.isArray(request.contents) ? request.contents : [request.contents];
230
+ const contentsArray = this.extractContentArray(contents);
231
+ // Convert to message history format with tools in system prompt
232
+ const messageHistory = this.convertToMessageHistory(contentsArray, toolsSystemPrompt);
233
+ // Get the last user message
234
+ const lastContent = contentsArray[contentsArray.length - 1];
235
+ const userMessage = lastContent ? this.convertPartsToText(lastContent.parts || []) : 'Unknown message';
236
+ // DEBUG: Log tool information
237
+ const tools = this.extractToolsFromRequest(request);
238
+ // Send through encrypted service
239
+ const encryptedStream = await this.encryptedService.sendMessage(userMessage, messageHistory);
240
+ // Read the entire stream to get the complete response
241
+ const reader = encryptedStream.getReader();
242
+ const decoder = new TextDecoder();
243
+ let encryptedResponse = '';
244
+ try {
245
+ while (true) {
246
+ const { done, value } = await reader.read();
247
+ if (done)
248
+ break;
249
+ encryptedResponse += decoder.decode(value, { stream: true });
250
+ }
251
+ }
252
+ finally {
253
+ reader.releaseLock();
254
+ }
255
+ // Parse tool calls from response if any
256
+ const toolCalls = this.parseToolCallsFromResponse(encryptedResponse, tools);
257
+ // Create response with tool calls if found
258
+ const response = new GenerateContentResponse();
259
+ // CRITICAL FIX: Separate text content from tool calls
260
+ // Remove tool call markup from the text response
261
+ const cleanTextResponse = this.removeToolCallMarkup(encryptedResponse);
262
+ const responseParts = [];
263
+ // Add clean text response if there's meaningful content
264
+ if (cleanTextResponse.trim()) {
265
+ responseParts.push({ text: cleanTextResponse });
266
+ }
267
+ // Add function calls if detected - CRITICAL: These must be separate parts
268
+ if (toolCalls.length > 0) {
269
+ for (const toolCall of toolCalls) {
270
+ responseParts.push({
271
+ functionCall: toolCall
272
+ });
273
+ }
274
+ }
275
+ response.candidates = [{
276
+ content: {
277
+ role: 'model',
278
+ parts: responseParts
279
+ },
280
+ finishReason: 'STOP',
281
+ index: 0,
282
+ safetyRatings: []
283
+ }];
284
+ response.usageMetadata = {
285
+ promptTokenCount: userMessage.length / 4,
286
+ candidatesTokenCount: encryptedResponse.length / 4,
287
+ totalTokenCount: (userMessage.length + encryptedResponse.length) / 4
288
+ };
289
+ response.modelVersion = 'blackboxai/encrypted';
290
+ response.promptFeedback = { safetyRatings: [] };
291
+ return response;
292
+ }
293
+ catch (error) {
294
+ console.error('❌ EncryptedContentGenerator.generateContent failed:', error);
295
+ // Extract user message for fallback
296
+ const contents = Array.isArray(request.contents) ? request.contents : [request.contents];
297
+ const contentsArray = this.extractContentArray(contents);
298
+ const lastContent = contentsArray[contentsArray.length - 1];
299
+ const userMessage = lastContent ? this.convertPartsToText(lastContent.parts || []) : 'Unknown message';
300
+ return this.createFallbackResponse(userMessage, error);
301
+ }
302
+ }
303
+ async generateContentStream(request, _userPromptId) {
304
+ return this.generateContentStreamInternal(request, _userPromptId);
305
+ }
306
+ async *generateContentStreamInternal(request, _userPromptId) {
307
+ await this.ensureInitialized();
308
+ try {
309
+ // Extract and format tools for system prompt
310
+ const toolsSystemPrompt = this.extractAndFormatTools(request);
311
+ // Extract content array from request
312
+ const contents = Array.isArray(request.contents) ? request.contents : [request.contents];
313
+ const contentsArray = this.extractContentArray(contents);
314
+ // Convert to message history format with tools in system prompt
315
+ const messageHistory = this.convertToMessageHistory(contentsArray, toolsSystemPrompt);
316
+ // Get the last user message
317
+ const lastContent = contentsArray[contentsArray.length - 1];
318
+ const userMessage = lastContent ? this.convertPartsToText(lastContent.parts || []) : 'Unknown message';
319
+ // DEBUG: Log tool information for streaming
320
+ const tools = this.extractToolsFromRequest(request);
321
+ // Send through encrypted service and get stream
322
+ const encryptedStream = await this.encryptedService.sendMessage(userMessage, messageHistory);
323
+ // Process the stream
324
+ const reader = encryptedStream.getReader();
325
+ const decoder = new TextDecoder();
326
+ let accumulatedText = '';
327
+ let toolCallsDetected = false;
328
+ try {
329
+ while (true) {
330
+ const { done, value } = await reader.read();
331
+ if (done)
332
+ break;
333
+ const chunk = decoder.decode(value, { stream: true });
334
+ accumulatedText += chunk;
335
+ // Check if we have complete tool calls in accumulated text
336
+ const toolCalls = this.parseToolCallsFromResponse(accumulatedText, tools);
337
+ // Only yield the new chunk, not the accumulated text
338
+ if (chunk.trim()) {
339
+ // Create streaming response
340
+ const streamResponse = new GenerateContentResponse();
341
+ // CRITICAL FIX: Handle tool calls properly in streaming
342
+ const responseParts = [];
343
+ // If we haven't detected tool calls yet, include the chunk as text
344
+ if (toolCalls.length === 0) {
345
+ responseParts.push({ text: chunk });
346
+ }
347
+ else if (!toolCallsDetected) {
348
+ // First time detecting tool calls - send clean text and tool calls
349
+ toolCallsDetected = true;
350
+ const cleanTextResponse = this.removeToolCallMarkup(accumulatedText);
351
+ if (cleanTextResponse.trim()) {
352
+ responseParts.push({ text: cleanTextResponse });
353
+ }
354
+ // Add all detected tool calls
355
+ for (const toolCall of toolCalls) {
356
+ responseParts.push({
357
+ functionCall: toolCall
358
+ });
359
+ }
360
+ }
361
+ // If tool calls were already detected, don't send more chunks
362
+ if (responseParts.length > 0) {
363
+ streamResponse.candidates = [{
364
+ content: {
365
+ role: 'model',
366
+ parts: responseParts
367
+ },
368
+ finishReason: 'STOP',
369
+ index: 0,
370
+ safetyRatings: []
371
+ }];
372
+ streamResponse.usageMetadata = {
373
+ promptTokenCount: userMessage.length / 4,
374
+ candidatesTokenCount: chunk.length / 4,
375
+ totalTokenCount: (userMessage.length + chunk.length) / 4
376
+ };
377
+ streamResponse.modelVersion = 'blackboxai/encrypted';
378
+ streamResponse.promptFeedback = { safetyRatings: [] };
379
+ yield streamResponse;
380
+ }
381
+ }
382
+ }
383
+ }
384
+ finally {
385
+ reader.releaseLock();
386
+ }
387
+ }
388
+ catch (error) {
389
+ console.error('❌ EncryptedContentGenerator.generateContentStream failed:', error);
390
+ // Extract user message for fallback
391
+ const contents = Array.isArray(request.contents) ? request.contents : [request.contents];
392
+ const contentsArray = this.extractContentArray(contents);
393
+ const lastContent = contentsArray[contentsArray.length - 1];
394
+ const userMessage = lastContent ? this.convertPartsToText(lastContent.parts || []) : 'Unknown message';
395
+ yield this.createFallbackResponse(userMessage, error);
396
+ }
397
+ }
398
+ async countTokens(request) {
399
+ // Simple token estimation for encrypted content
400
+ // In a real implementation, you might want to use a more sophisticated tokenizer
401
+ const contents = Array.isArray(request.contents) ? request.contents : [request.contents];
402
+ const contentsArray = this.extractContentArray(contents);
403
+ let totalTokens = 0;
404
+ for (const content of contentsArray) {
405
+ const text = this.convertPartsToText(content.parts || []);
406
+ // Rough estimation: 1 token ≈ 4 characters
407
+ totalTokens += Math.ceil(text.length / 4);
408
+ }
409
+ return {
410
+ totalTokens
411
+ };
412
+ }
413
+ async embedContent(request) {
414
+ // Embedding is not supported for encrypted content
415
+ // Return empty embeddings
416
+ const contents = Array.isArray(request.contents) ? request.contents : [request.contents];
417
+ return {
418
+ embeddings: contents.map(() => ({
419
+ values: [] // Empty embedding
420
+ }))
421
+ };
422
+ }
423
+ // Optional userTier property
424
+ userTier;
425
+ }
426
+ //# sourceMappingURL=EncryptedContentGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptedContentGenerator.js","sourceRoot":"","sources":["../../../src/services/EncryptedContentGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { ICommandLoader } from './types.js';
7
+ import type { SlashCommand } from '../ui/commands/types.js';
8
+ import type { Config } from '@blackbox_ai/blackbox-cli-core';
9
+ /**
10
+ * Dynamically loads commands for MCP servers.
11
+ * Creates a command for each configured MCP server that can be invoked via & prefix.
12
+ */
13
+ export declare class McpCommandLoader implements ICommandLoader {
14
+ private config;
15
+ constructor(config: Config | null);
16
+ /**
17
+ * Loads commands for all configured MCP servers.
18
+ * Each server gets its own command that can be invoked via &<server-name>
19
+ *
20
+ * @param _signal An AbortSignal (unused for this synchronous loader).
21
+ * @returns A promise that resolves to an array of `SlashCommand` objects.
22
+ */
23
+ loadCommands(_signal: AbortSignal): Promise<SlashCommand[]>;
24
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { createMcpInvokeCommand, createMcpServersListCommand, } from '../ui/commands/mcpInvokeCommand.js';
7
+ /**
8
+ * Dynamically loads commands for MCP servers.
9
+ * Creates a command for each configured MCP server that can be invoked via & prefix.
10
+ */
11
+ export class McpCommandLoader {
12
+ config;
13
+ constructor(config) {
14
+ this.config = config;
15
+ }
16
+ /**
17
+ * Loads commands for all configured MCP servers.
18
+ * Each server gets its own command that can be invoked via &<server-name>
19
+ *
20
+ * @param _signal An AbortSignal (unused for this synchronous loader).
21
+ * @returns A promise that resolves to an array of `SlashCommand` objects.
22
+ */
23
+ async loadCommands(_signal) {
24
+ if (!this.config) {
25
+ return [];
26
+ }
27
+ const commands = [];
28
+ // Add the list command for showing all MCP servers
29
+ commands.push(createMcpServersListCommand());
30
+ // Get all configured MCP servers
31
+ const mcpServers = this.config.getMcpServers() || {};
32
+ const serverNames = Object.keys(mcpServers);
33
+ // Create a command for each MCP server
34
+ for (const serverName of serverNames) {
35
+ // Special handling for remote-code: rename to "remote" with "remote-code" as alias
36
+ if (serverName === 'remote-code') {
37
+ const command = createMcpInvokeCommand(serverName);
38
+ command.name = 'remote';
39
+ command.altNames = ['remote-code'];
40
+ command.description = 'remote MCP server';
41
+ commands.push(command);
42
+ }
43
+ else {
44
+ commands.push(createMcpInvokeCommand(serverName));
45
+ }
46
+ }
47
+ return commands;
48
+ }
49
+ }
50
+ //# sourceMappingURL=McpCommandLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpCommandLoader.js","sourceRoot":"","sources":["../../../src/services/McpCommandLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAE5C;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAmB,EAAE,CAAC;QAEpC,mDAAmD;QACnD,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;QAE7C,iCAAiC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5C,uCAAuC;QACvC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,mFAAmF;YACnF,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;gBACnD,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACxB,OAAO,CAAC,QAAQ,GAAG,CAAC,aAAa,CAAC,CAAC;gBACnC,OAAO,CAAC,WAAW,GAAG,mBAAmB,CAAC;gBAC1C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -102,7 +102,22 @@ export class McpPromptLoader {
102
102
  content: `Error invoking prompt: ${result['error']}`,
103
103
  };
104
104
  }
105
- if (!result.messages?.[0]?.content?.['text']) {
105
+ // Extract text content from the message
106
+ const message = result.messages?.[0];
107
+ if (!message?.content) {
108
+ return {
109
+ type: 'message',
110
+ messageType: 'error',
111
+ content: 'Received an empty or invalid prompt response from the server.',
112
+ };
113
+ }
114
+ // Handle content as array or single item
115
+ const contentArray = Array.isArray(message.content)
116
+ ? message.content
117
+ : [message.content];
118
+ // Find text content
119
+ const textContent = contentArray.find((item) => item.type === 'text');
120
+ if (!textContent || textContent.type !== 'text') {
106
121
  return {
107
122
  type: 'message',
108
123
  messageType: 'error',
@@ -111,7 +126,7 @@ export class McpPromptLoader {
111
126
  }
112
127
  return {
113
128
  type: 'submit_prompt',
114
- content: JSON.stringify(result.messages[0].content.text),
129
+ content: JSON.stringify(textContent.text),
115
130
  };
116
131
  }
117
132
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"McpPromptLoader.js","sourceRoot":"","sources":["../../../src/services/McpPromptLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"McpPromptLoader.js","sourceRoot":"","sources":["../../../src/services/McpPromptLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export interface ReleaseData {
7
+ version: string;
8
+ releaseNotes?: string;
9
+ publishedAt: string;
10
+ isLatest: boolean;
11
+ briefNotes?: string;
12
+ detailedChanges?: string[];
13
+ [key: string]: unknown;
14
+ }
15
+ export interface ChangelogEntry {
16
+ version: string;
17
+ changes: string[];
18
+ [key: string]: unknown;
19
+ }
20
+ /**
21
+ * Release Notes Cache Service
22
+ * Caches release notes and automatically invalidates when:
23
+ * 1. CLI version changes (new release installed)
24
+ * 2. Cache is older than 24 hours
25
+ */
26
+ export declare class ReleaseNotesCache {
27
+ private static instance;
28
+ private cache;
29
+ private cacheFilePath;
30
+ private initPromise;
31
+ private constructor();
32
+ static getInstance(): ReleaseNotesCache;
33
+ private initializeCachePath;
34
+ /**
35
+ * Ensure cache path is initialized before use
36
+ */
37
+ private ensureInitialized;
38
+ /**
39
+ * Get cached release notes if valid
40
+ */
41
+ get(): Promise<{
42
+ data: ReleaseData[];
43
+ changelogData: Map<string, ChangelogEntry>;
44
+ } | null>;
45
+ /**
46
+ * Save release notes to cache
47
+ */
48
+ set(data: ReleaseData[], changelogData: Map<string, ChangelogEntry>): Promise<void>;
49
+ /**
50
+ * Check if cache is still valid
51
+ */
52
+ private isCacheValid;
53
+ /**
54
+ * Clear the cache
55
+ */
56
+ clear(): Promise<void>;
57
+ }