@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.
- package/README.md +11 -183
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/package.json +13 -3
- package/dist/src/built-in-extensions/conductor/README.md +242 -0
- package/dist/src/built-in-extensions/conductor/blackbox-extension.json +5 -0
- package/dist/src/built-in-extensions/conductor/commands/conductor/implement.toml +170 -0
- package/dist/src/built-in-extensions/conductor/commands/conductor/newTrack.toml +142 -0
- package/dist/src/built-in-extensions/conductor/commands/conductor/revert.toml +122 -0
- package/dist/src/built-in-extensions/conductor/commands/conductor/setup.toml +424 -0
- package/dist/src/built-in-extensions/conductor/commands/conductor/status.toml +57 -0
- package/dist/src/built-in-extensions/conductor/templates/code_styleguides/general.md +23 -0
- package/dist/src/built-in-extensions/conductor/templates/code_styleguides/go.md +48 -0
- package/dist/src/built-in-extensions/conductor/templates/code_styleguides/html-css.md +49 -0
- package/dist/src/built-in-extensions/conductor/templates/code_styleguides/javascript.md +51 -0
- package/dist/src/built-in-extensions/conductor/templates/code_styleguides/python.md +37 -0
- package/dist/src/built-in-extensions/conductor/templates/code_styleguides/typescript.md +43 -0
- package/dist/src/built-in-extensions/conductor/templates/workflow.md +333 -0
- package/dist/src/built-in-extensions-data.d.ts +15 -0
- package/dist/src/built-in-extensions-data.js +61 -0
- package/dist/src/built-in-extensions-data.js.map +1 -0
- package/dist/src/commands/configure/ConfigureUI.d.ts +14 -0
- package/dist/src/commands/configure/ConfigureUI.js +556 -0
- package/dist/src/commands/configure/ConfigureUI.js.map +1 -0
- package/dist/src/commands/configure/index.d.ts +7 -0
- package/dist/src/commands/configure/index.js +62 -0
- package/dist/src/commands/configure/index.js.map +1 -0
- package/dist/src/commands/configure.d.ts +7 -0
- package/dist/src/commands/configure.js +276 -0
- package/dist/src/commands/configure.js.map +1 -0
- package/dist/src/commands/configure.test.d.ts +6 -0
- package/dist/src/commands/configure.test.js +32 -0
- package/dist/src/commands/configure.test.js.map +1 -0
- package/dist/src/commands/extensions/enable.js +1 -1
- package/dist/src/commands/extensions/enable.js.map +1 -1
- package/dist/src/commands/extensions/examples/context/CONTEXT.md +16 -0
- package/dist/src/commands/extensions/examples/context/blackbox-extension.json +5 -0
- package/dist/src/commands/extensions/examples/custom-commands/blackbox-extension.json +4 -0
- package/dist/src/commands/extensions/examples/custom-commands/commands/deploy.toml +12 -0
- package/dist/src/commands/extensions/examples/exclude-tools/README.md +28 -0
- package/dist/src/commands/extensions/examples/exclude-tools/blackbox-extension.json +5 -0
- package/dist/src/commands/extensions/install.d.ts +6 -2
- package/dist/src/commands/extensions/install.js +109 -15
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/link.d.ts +12 -0
- package/dist/src/commands/extensions/link.js +53 -0
- package/dist/src/commands/extensions/link.js.map +1 -0
- package/dist/src/commands/extensions/list.js +2 -2
- package/dist/src/commands/extensions/list.js.map +1 -1
- package/dist/src/commands/extensions/new.d.ts +13 -0
- package/dist/src/commands/extensions/new.js +145 -0
- package/dist/src/commands/extensions/new.js.map +1 -0
- package/dist/src/commands/extensions/settings.d.ts +18 -0
- package/dist/src/commands/extensions/settings.js +98 -0
- package/dist/src/commands/extensions/settings.js.map +1 -0
- package/dist/src/commands/extensions/update.d.ts +2 -1
- package/dist/src/commands/extensions/update.js +59 -10
- package/dist/src/commands/extensions/update.js.map +1 -1
- package/dist/src/commands/extensions/validate.d.ts +12 -0
- package/dist/src/commands/extensions/validate.js +72 -0
- package/dist/src/commands/extensions/validate.js.map +1 -0
- package/dist/src/commands/extensions.js +10 -1
- package/dist/src/commands/extensions.js.map +1 -1
- package/dist/src/commands/mcp/add.d.ts +11 -0
- package/dist/src/commands/mcp/add.js +61 -7
- package/dist/src/commands/mcp/add.js.map +1 -1
- package/dist/src/commands/update.d.ts +7 -0
- package/dist/src/commands/update.js +103 -0
- package/dist/src/commands/update.js.map +1 -0
- package/dist/src/commands/voice.d.ts +7 -0
- package/dist/src/commands/voice.js +510 -0
- package/dist/src/commands/voice.js.map +1 -0
- package/dist/src/config/auth.d.ts +32 -1
- package/dist/src/config/auth.js +317 -2
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config.d.ts +7 -1
- package/dist/src/config/config.js +71 -10
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/extension.d.ts +6 -1
- package/dist/src/config/extension.js +137 -11
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/extensions/github.d.ts +48 -0
- package/dist/src/config/extensions/github.js +308 -0
- package/dist/src/config/extensions/github.js.map +1 -0
- package/dist/src/config/keyBindings.d.ts +1 -0
- package/dist/src/config/keyBindings.js +3 -0
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/modelFetcher.d.ts +21 -0
- package/dist/src/config/modelFetcher.js +226 -0
- package/dist/src/config/modelFetcher.js.map +1 -0
- package/dist/src/config/settings.js +101 -0
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +626 -0
- package/dist/src/config/settingsSchema.js +626 -0
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/voice.d.ts +31 -0
- package/dist/src/config/voice.js +82 -0
- package/dist/src/config/voice.js.map +1 -0
- package/dist/src/encrypt/attestation.d.ts +5 -0
- package/dist/src/encrypt/attestation.js +100 -0
- package/dist/src/encrypt/attestation.js.map +1 -0
- package/dist/src/encrypt/bridge.d.ts +30 -0
- package/dist/src/encrypt/bridge.js +32 -0
- package/dist/src/encrypt/bridge.js.map +1 -0
- package/dist/src/encrypt/client.d.ts +14 -0
- package/dist/src/encrypt/client.js +133 -0
- package/dist/src/encrypt/client.js.map +1 -0
- package/dist/src/encrypt/config.d.ts +26 -0
- package/dist/src/encrypt/config.js +51 -0
- package/dist/src/encrypt/config.js.map +1 -0
- package/dist/src/encrypt/crypto-utils.d.ts +57 -0
- package/dist/src/encrypt/crypto-utils.js +257 -0
- package/dist/src/encrypt/crypto-utils.js.map +1 -0
- package/dist/src/encrypt/index.d.ts +12 -0
- package/dist/src/encrypt/index.js +13 -0
- package/dist/src/encrypt/index.js.map +1 -0
- package/dist/src/encrypt/retry-utils.d.ts +20 -0
- package/dist/src/encrypt/retry-utils.js +60 -0
- package/dist/src/encrypt/retry-utils.js.map +1 -0
- package/dist/src/encrypt/sessions.d.ts +17 -0
- package/dist/src/encrypt/sessions.js +221 -0
- package/dist/src/encrypt/sessions.js.map +1 -0
- package/dist/src/encrypt/streaming-client.d.ts +29 -0
- package/dist/src/encrypt/streaming-client.js +226 -0
- package/dist/src/encrypt/streaming-client.js.map +1 -0
- package/dist/src/encrypt/types.d.ts +81 -0
- package/dist/src/encrypt/types.js +2 -0
- package/dist/src/encrypt/types.js.map +1 -0
- package/dist/src/gemini.d.ts +1 -1
- package/dist/src/gemini.js +61 -28
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +3 -3
- package/dist/src/generated/git-commit.js +3 -3
- package/dist/src/nonInteractiveCli.d.ts +4 -0
- package/dist/src/nonInteractiveCli.js +563 -6
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/on-demand-extensions/README.md +266 -0
- package/dist/src/on-demand-extensions/git-helper/README.md +16 -0
- package/dist/src/on-demand-extensions/git-helper/blackbox-extension.json +5 -0
- package/dist/src/on-demand-extensions/git-helper/commands/git/branch-cleanup.toml +18 -0
- package/dist/src/on-demand-extensions/git-helper/commands/git/smart-commit.toml +22 -0
- package/dist/src/on-demand-extensions/greet/README.md +76 -0
- package/dist/src/on-demand-extensions/greet/blackbox-extension.json +5 -0
- package/dist/src/on-demand-extensions/greet/commands/greet/hello.toml +9 -0
- package/dist/src/on-demand-extensions/registry.json +251 -0
- package/dist/src/services/BuiltinCommandLoader.js +20 -2
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/EncryptedContentGenerator.d.ts +63 -0
- package/dist/src/services/EncryptedContentGenerator.js +426 -0
- package/dist/src/services/EncryptedContentGenerator.js.map +1 -0
- package/dist/src/services/McpCommandLoader.d.ts +24 -0
- package/dist/src/services/McpCommandLoader.js +50 -0
- package/dist/src/services/McpCommandLoader.js.map +1 -0
- package/dist/src/services/McpPromptLoader.js +17 -2
- package/dist/src/services/McpPromptLoader.js.map +1 -1
- package/dist/src/services/ReleaseNotesCache.d.ts +57 -0
- package/dist/src/services/ReleaseNotesCache.js +186 -0
- package/dist/src/services/ReleaseNotesCache.js.map +1 -0
- package/dist/src/services/elevenLabsErrors.d.ts +65 -0
- package/dist/src/services/elevenLabsErrors.js +233 -0
- package/dist/src/services/elevenLabsErrors.js.map +1 -0
- package/dist/src/services/elevenLabsService.d.ts +62 -0
- package/dist/src/services/elevenLabsService.js +186 -0
- package/dist/src/services/elevenLabsService.js.map +1 -0
- package/dist/src/services/elevenLabsStreamingService.d.ts +59 -0
- package/dist/src/services/elevenLabsStreamingService.js +202 -0
- package/dist/src/services/elevenLabsStreamingService.js.map +1 -0
- package/dist/src/services/elevenLabsTokenService.d.ts +21 -0
- package/dist/src/services/elevenLabsTokenService.js +42 -0
- package/dist/src/services/elevenLabsTokenService.js.map +1 -0
- package/dist/src/services/voiceInputHandler.d.ts +26 -0
- package/dist/src/services/voiceInputHandler.js +209 -0
- package/dist/src/services/voiceInputHandler.js.map +1 -0
- package/dist/src/services/voiceRecordingService.d.ts +69 -0
- package/dist/src/services/voiceRecordingService.js +397 -0
- package/dist/src/services/voiceRecordingService.js.map +1 -0
- package/dist/src/ui/App.d.ts +1 -0
- package/dist/src/ui/App.js +412 -63
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/commands/browseExtensionsCommand.d.ts +7 -0
- package/dist/src/ui/commands/browseExtensionsCommand.js +16 -0
- package/dist/src/ui/commands/browseExtensionsCommand.js.map +1 -0
- package/dist/src/ui/commands/chatCommand.js +356 -16
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/dbCommand.d.ts +7 -0
- package/dist/src/ui/commands/dbCommand.js +37 -0
- package/dist/src/ui/commands/dbCommand.js.map +1 -0
- package/dist/src/ui/commands/docsCommand.js +1 -1
- package/dist/src/ui/commands/docsCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +3 -2
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpInvokeCommand.d.ts +16 -0
- package/dist/src/ui/commands/mcpInvokeCommand.js +263 -0
- package/dist/src/ui/commands/mcpInvokeCommand.js.map +1 -0
- package/dist/src/ui/commands/modelCommand.js +79 -5
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/multiAgentCommand.d.ts +7 -0
- package/dist/src/ui/commands/multiAgentCommand.js +833 -0
- package/dist/src/ui/commands/multiAgentCommand.js.map +1 -0
- package/dist/src/ui/commands/multiAgentConfigureCommand.d.ts +7 -0
- package/dist/src/ui/commands/multiAgentConfigureCommand.js +17 -0
- package/dist/src/ui/commands/multiAgentConfigureCommand.js.map +1 -0
- package/dist/src/ui/commands/quitCommand.js +71 -2
- package/dist/src/ui/commands/quitCommand.js.map +1 -1
- package/dist/src/ui/commands/releasesCommand.d.ts +7 -0
- package/dist/src/ui/commands/releasesCommand.js +16 -0
- package/dist/src/ui/commands/releasesCommand.js.map +1 -0
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/shellPermissionsCommand.d.ts +7 -0
- package/dist/src/ui/commands/shellPermissionsCommand.js +109 -0
- package/dist/src/ui/commands/shellPermissionsCommand.js.map +1 -0
- package/dist/src/ui/commands/skillCommand.d.ts +7 -0
- package/dist/src/ui/commands/skillCommand.js +240 -0
- package/dist/src/ui/commands/skillCommand.js.map +1 -0
- package/dist/src/ui/commands/statsCommand.js +243 -1
- package/dist/src/ui/commands/statsCommand.js.map +1 -1
- package/dist/src/ui/commands/tasksCommand.d.ts +7 -0
- package/dist/src/ui/commands/tasksCommand.js +535 -0
- package/dist/src/ui/commands/tasksCommand.js.map +1 -0
- package/dist/src/ui/commands/toolPermissionsCommand.d.ts +7 -0
- package/dist/src/ui/commands/toolPermissionsCommand.js +408 -0
- package/dist/src/ui/commands/toolPermissionsCommand.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +10 -2
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/commands/voiceCommand.d.ts +7 -0
- package/dist/src/ui/commands/voiceCommand.js +525 -0
- package/dist/src/ui/commands/voiceCommand.js.map +1 -0
- package/dist/src/ui/components/AuthDialog.d.ts +4 -2
- package/dist/src/ui/components/AuthDialog.js +349 -64
- package/dist/src/ui/components/AuthDialog.js.map +1 -1
- package/dist/src/ui/components/AuthInProgress.js +3 -1
- package/dist/src/ui/components/AuthInProgress.js.map +1 -1
- package/dist/src/ui/components/ExtensionsDialog.d.ts +11 -0
- package/dist/src/ui/components/ExtensionsDialog.js +303 -0
- package/dist/src/ui/components/ExtensionsDialog.js.map +1 -0
- package/dist/src/ui/components/GenericProviderKeyPrompt.d.ts +24 -0
- package/dist/src/ui/components/GenericProviderKeyPrompt.js +99 -0
- package/dist/src/ui/components/GenericProviderKeyPrompt.js.map +1 -0
- package/dist/src/ui/components/Header.js +10 -1
- package/dist/src/ui/components/Header.js.map +1 -1
- package/dist/src/ui/components/HistoryBrowserDialog.d.ts +15 -0
- package/dist/src/ui/components/HistoryBrowserDialog.js +166 -0
- package/dist/src/ui/components/HistoryBrowserDialog.js.map +1 -0
- package/dist/src/ui/components/HistoryItemDisplay.js +13 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +22 -8
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.d.ts +4 -0
- package/dist/src/ui/components/LoadingIndicator.js +16 -4
- package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.test.js +108 -16
- package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/components/ModelSelectionDialog.d.ts +2 -0
- package/dist/src/ui/components/ModelSelectionDialog.js +33 -4
- package/dist/src/ui/components/ModelSelectionDialog.js.map +1 -1
- package/dist/src/ui/components/ModelSelectionDialog.test.js +41 -4
- package/dist/src/ui/components/ModelSelectionDialog.test.js.map +1 -1
- package/dist/src/ui/components/ReleaseNotesDialog.d.ts +23 -0
- package/dist/src/ui/components/ReleaseNotesDialog.js +150 -0
- package/dist/src/ui/components/ReleaseNotesDialog.js.map +1 -0
- package/dist/src/ui/components/ReleaseNotesDisplay.d.ts +18 -0
- package/dist/src/ui/components/ReleaseNotesDisplay.js +14 -0
- package/dist/src/ui/components/ReleaseNotesDisplay.js.map +1 -0
- package/dist/src/ui/components/SessionSummaryDisplay.d.ts +2 -0
- package/dist/src/ui/components/SessionSummaryDisplay.js +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.d.ts +3 -1
- package/dist/src/ui/components/SettingsDialog.js +17 -7
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.d.ts +2 -0
- package/dist/src/ui/components/ShellConfirmationDialog.js +7 -3
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.d.ts +2 -0
- package/dist/src/ui/components/StatsDisplay.js +92 -7
- package/dist/src/ui/components/StatsDisplay.js.map +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.js +6 -1
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.d.ts +3 -1
- package/dist/src/ui/components/ThemeDialog.js +5 -2
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/Tips.js +1 -4
- package/dist/src/ui/components/Tips.js.map +1 -1
- package/dist/src/ui/components/TodoListDialog.d.ts +13 -0
- package/dist/src/ui/components/TodoListDialog.js +29 -0
- package/dist/src/ui/components/TodoListDialog.js.map +1 -0
- package/dist/src/ui/components/TodoListDialog.test.d.ts +6 -0
- package/dist/src/ui/components/TodoListDialog.test.js +60 -0
- package/dist/src/ui/components/TodoListDialog.test.js.map +1 -0
- package/dist/src/ui/components/VoiceConfigDialog.d.ts +17 -0
- package/dist/src/ui/components/VoiceConfigDialog.js +47 -0
- package/dist/src/ui/components/VoiceConfigDialog.js.map +1 -0
- package/dist/src/ui/components/messages/GeminiMessage.js +4 -0
- package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessageContent.js +4 -0
- package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +2 -0
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +96 -9
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +3 -3
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.js +1 -1
- package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +9 -12
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.d.ts +25 -0
- package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.js +179 -0
- package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.js.map +1 -0
- package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +3 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.js +57 -18
- package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
- package/dist/src/ui/components/shared/TextInput.d.ts +2 -1
- package/dist/src/ui/components/shared/TextInput.js +5 -2
- package/dist/src/ui/components/shared/TextInput.js.map +1 -1
- package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +3 -3
- package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js.map +1 -1
- package/dist/src/ui/constants.d.ts +3 -3
- package/dist/src/ui/constants.js +3 -3
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/SessionContext.d.ts +6 -0
- package/dist/src/ui/contexts/SessionContext.js +24 -2
- package/dist/src/ui/contexts/SessionContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +139 -57
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +189 -17
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAdaptiveStream.d.ts +42 -0
- package/dist/src/ui/hooks/useAdaptiveStream.js +31 -0
- package/dist/src/ui/hooks/useAdaptiveStream.js.map +1 -0
- package/dist/src/ui/hooks/useAtCompletion.js +20 -4
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useAuthCommand.d.ts +2 -2
- package/dist/src/ui/hooks/useAuthCommand.js +99 -5
- package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.js +14 -10
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useDialogClose.d.ts +10 -0
- package/dist/src/ui/hooks/useDialogClose.js +25 -0
- package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
- package/dist/src/ui/hooks/useDialogCloseAnimation.d.ts +22 -0
- package/dist/src/ui/hooks/useDialogCloseAnimation.js +68 -0
- package/dist/src/ui/hooks/useDialogCloseAnimation.js.map +1 -0
- package/dist/src/ui/hooks/useEncryptedStream.d.ts +22 -0
- package/dist/src/ui/hooks/useEncryptedStream.js +378 -0
- package/dist/src/ui/hooks/useEncryptedStream.js.map +1 -0
- package/dist/src/ui/hooks/useExtensionsDialog.d.ts +10 -0
- package/dist/src/ui/hooks/useExtensionsDialog.js +21 -0
- package/dist/src/ui/hooks/useExtensionsDialog.js.map +1 -0
- package/dist/src/ui/hooks/useGeminiStream.js +6 -2
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.js +3 -2
- package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +27 -5
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useMultiAgentConfigCommand.d.ts +10 -0
- package/dist/src/ui/hooks/useMultiAgentConfigCommand.js +21 -0
- package/dist/src/ui/hooks/useMultiAgentConfigCommand.js.map +1 -0
- package/dist/src/ui/hooks/useReleasesDialog.d.ts +20 -0
- package/dist/src/ui/hooks/useReleasesDialog.js +214 -0
- package/dist/src/ui/hooks/useReleasesDialog.js.map +1 -0
- package/dist/src/ui/hooks/useSlashCompletion.js +10 -8
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useTodoList.d.ts +17 -0
- package/dist/src/ui/hooks/useTodoList.js +51 -0
- package/dist/src/ui/hooks/useTodoList.js.map +1 -0
- package/dist/src/ui/keyMatchers.test.js +6 -0
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/themes/blackbox-dark.js +1 -1
- package/dist/src/ui/themes/blackbox-dark.js.map +1 -1
- package/dist/src/ui/themes/blackbox-light.js +1 -1
- package/dist/src/ui/themes/blackbox-light.js.map +1 -1
- package/dist/src/ui/types.d.ts +15 -2
- package/dist/src/ui/types.js +1 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/computeStats.d.ts +25 -1
- package/dist/src/ui/utils/computeStats.js +58 -1
- package/dist/src/ui/utils/computeStats.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.js +37 -54
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/utils/backgroundUpdateCheck.d.ts +15 -0
- package/dist/src/utils/backgroundUpdateCheck.js +48 -0
- package/dist/src/utils/backgroundUpdateCheck.js.map +1 -0
- package/dist/src/utils/gitAutoDetect.d.ts +16 -0
- package/dist/src/utils/gitAutoDetect.js +45 -0
- package/dist/src/utils/gitAutoDetect.js.map +1 -0
- package/dist/src/utils/installationInfo.d.ts +1 -0
- package/dist/src/utils/installationInfo.js +24 -4
- package/dist/src/utils/installationInfo.js.map +1 -1
- package/dist/src/utils/preLaunchUpdateCheck.d.ts +17 -0
- package/dist/src/utils/preLaunchUpdateCheck.js +75 -0
- package/dist/src/utils/preLaunchUpdateCheck.js.map +1 -0
- package/dist/src/utils/version.js +12 -1
- package/dist/src/utils/version.js.map +1 -1
- package/dist/src/utils/versionStorage.d.ts +50 -0
- package/dist/src/utils/versionStorage.js +224 -0
- package/dist/src/utils/versionStorage.js.map +1 -0
- package/dist/src/validateNonInterActiveAuth.js +10 -3
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/src/virtual-extensions.d.ts +14 -0
- package/dist/src/virtual-extensions.js +56 -0
- package/dist/src/virtual-extensions.js.map +1 -0
- package/dist/src/zed-integration/fileSystemService.d.ts +3 -3
- package/dist/src/zed-integration/fileSystemService.js +5 -7
- package/dist/src/zed-integration/fileSystemService.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.js +62 -17
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -3
- package/dist/src/utils/handleAutoUpdate.d.ts +0 -11
- package/dist/src/utils/handleAutoUpdate.js +0 -102
- package/dist/src/utils/handleAutoUpdate.js.map +0 -1
- package/dist/src/utils/updateEventEmitter.d.ts +0 -11
- package/dist/src/utils/updateEventEmitter.js +0 -12
- package/dist/src/utils/updateEventEmitter.js.map +0 -1
- package/dist/src/zed-integration/acp.d.ts +0 -63
- package/dist/src/zed-integration/acp.js +0 -226
- package/dist/src/zed-integration/acp.js.map +0 -1
- package/dist/src/zed-integration/schema.d.ts +0 -11782
- package/dist/src/zed-integration/schema.js +0 -311
- package/dist/src/zed-integration/schema.js.map +0 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { render } from 'ink';
|
|
3
|
+
import { ConfigureUI } from './ConfigureUI.js';
|
|
4
|
+
import { KeypressProvider } from '../../ui/contexts/KeypressContext.js';
|
|
5
|
+
import { addMcpServer } from '../mcp/add.js';
|
|
6
|
+
async function runConfigure() {
|
|
7
|
+
return new Promise((resolve) => {
|
|
8
|
+
// Create a minimal config for KeypressProvider
|
|
9
|
+
// We don't need full config functionality for the configure command
|
|
10
|
+
const minimalConfig = {
|
|
11
|
+
getDebugMode: () => false,
|
|
12
|
+
};
|
|
13
|
+
const { unmount } = render(_jsx(KeypressProvider, { kittyProtocolEnabled: false, pasteWorkaround: process.platform === 'win32', config: minimalConfig, debugKeystrokeLogging: false, children: _jsx(ConfigureUI, { onComplete: (providerName) => {
|
|
14
|
+
unmount();
|
|
15
|
+
resolve(providerName);
|
|
16
|
+
} }) }));
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export const configureCommand = {
|
|
20
|
+
command: 'configure',
|
|
21
|
+
describe: 'Configure Blackbox CLI provider and model settings',
|
|
22
|
+
builder: (yargs) => yargs
|
|
23
|
+
.usage('Usage: blackbox configure')
|
|
24
|
+
.example('blackbox configure', 'Start the configuration wizard')
|
|
25
|
+
.help(),
|
|
26
|
+
handler: async () => {
|
|
27
|
+
const providerName = await runConfigure();
|
|
28
|
+
// Automatically add remote-code MCP server if blackbox provider was configured
|
|
29
|
+
if (providerName === 'blackbox') {
|
|
30
|
+
const apiKey = process.env['BLACKBOX_API_KEY'];
|
|
31
|
+
if (apiKey) {
|
|
32
|
+
console.log('\n🔧 Setting up Blackbox Remote Code MCP Server...');
|
|
33
|
+
try {
|
|
34
|
+
await addMcpServer('remote-code', '__preset__', // Placeholder for preset
|
|
35
|
+
undefined, {
|
|
36
|
+
scope: 'project',
|
|
37
|
+
transport: 'http',
|
|
38
|
+
env: undefined,
|
|
39
|
+
header: undefined,
|
|
40
|
+
timeout: undefined,
|
|
41
|
+
trust: undefined,
|
|
42
|
+
description: undefined,
|
|
43
|
+
includeTools: undefined,
|
|
44
|
+
excludeTools: undefined,
|
|
45
|
+
});
|
|
46
|
+
console.log('✅ Remote Code MCP Server configured successfully!\n');
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.error('⚠️ Failed to configure Remote Code MCP Server:', error instanceof Error ? error.message : error);
|
|
50
|
+
console.error(' You can manually add it later with: blackbox mcp add remote-code\n');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.log('\n⚠️ BLACKBOX_API_KEY not found in environment.');
|
|
55
|
+
console.log(' To enable Remote Code MCP Server, set BLACKBOX_API_KEY and run:');
|
|
56
|
+
console.log(' blackbox mcp add remote-code\n');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
process.exit(0);
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/configure/index.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,UAAU,YAAY;IACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,+CAA+C;QAC/C,oEAAoE;QACpE,MAAM,aAAa,GAAG;YACpB,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK;SAChB,CAAC;QAEZ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CACxB,KAAC,gBAAgB,IACf,oBAAoB,EAAE,KAAK,EAC3B,eAAe,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,EAC7C,MAAM,EAAE,aAAa,EACrB,qBAAqB,EAAE,KAAK,YAE5B,KAAC,WAAW,IACV,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE;oBAC3B,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,YAAY,CAAC,CAAC;gBACxB,CAAC,GACD,GACe,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAkB;IAC7C,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,oDAAoD;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,KAAK,CAAC,2BAA2B,CAAC;SAClC,OAAO,CAAC,oBAAoB,EAAE,gCAAgC,CAAC;SAC/D,IAAI,EAAE;IACX,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,YAAY,GAAG,MAAM,YAAY,EAAE,CAAC;QAE1C,+EAA+E;QAC/E,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAE/C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;gBAElE,IAAI,CAAC;oBACH,MAAM,YAAY,CAChB,aAAa,EACb,YAAY,EAAE,yBAAyB;oBACvC,SAAS,EACT;wBACE,KAAK,EAAE,SAAS;wBAChB,SAAS,EAAE,MAAM;wBACjB,GAAG,EAAE,SAAS;wBACd,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,SAAS;wBAChB,WAAW,EAAE,SAAS;wBACtB,YAAY,EAAE,SAAS;wBACvB,YAAY,EAAE,SAAS;qBACxB,CACF,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;gBACrE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACjH,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;gBAClF,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { AuthType } from '@blackbox_ai/blackbox-cli-core';
|
|
7
|
+
import { loadSettings, SettingScope } from '../config/settings.js';
|
|
8
|
+
import { setBlackboxApiKey, setBlackboxApiBaseUrl, setBlackboxApiModel, setBlackboxEncryptionBaseUrl, setBlackboxEncryptedModel, setOpenAIApiKey, setOpenAIBaseUrl, setOpenAIModel, } from '../config/auth.js';
|
|
9
|
+
import * as readline from 'node:readline';
|
|
10
|
+
import { stdin as input, stdout as output } from 'node:process';
|
|
11
|
+
const PROVIDERS = [
|
|
12
|
+
{
|
|
13
|
+
name: 'blackbox',
|
|
14
|
+
displayName: 'BlackboxAI',
|
|
15
|
+
authType: AuthType.USE_BLACKBOX_API,
|
|
16
|
+
requiresApiKey: true,
|
|
17
|
+
defaultBaseUrl: 'https://api.blackbox.ai/v1',
|
|
18
|
+
defaultModel: 'blackbox-ai',
|
|
19
|
+
envKeyName: 'BLACKBOX_API_KEY',
|
|
20
|
+
envBaseUrlName: 'BLACKBOX_API_BASE_URL',
|
|
21
|
+
envModelName: 'BLACKBOX_API_MODEL',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'blackbox-encrypted',
|
|
25
|
+
displayName: 'BlackboxAI Encrypted',
|
|
26
|
+
authType: AuthType.USE_BLACKBOX_API,
|
|
27
|
+
requiresApiKey: true,
|
|
28
|
+
defaultBaseUrl: 'https://encrypt.blackboxai.app',
|
|
29
|
+
defaultModel: 'blackboxai/encrypted',
|
|
30
|
+
envKeyName: 'BLACKBOX_API_KEY',
|
|
31
|
+
envBaseUrlName: 'BLACKBOX_ENCRYPTION_BASE_URL',
|
|
32
|
+
envModelName: 'BLACKBOX_ENCRYPTED_MODEL',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'openai',
|
|
36
|
+
displayName: 'OpenAI',
|
|
37
|
+
authType: AuthType.USE_OPENAI,
|
|
38
|
+
requiresApiKey: true,
|
|
39
|
+
defaultBaseUrl: 'https://api.openai.com/v1',
|
|
40
|
+
defaultModel: 'gpt-4',
|
|
41
|
+
envKeyName: 'OPENAI_API_KEY',
|
|
42
|
+
envBaseUrlName: 'OPENAI_BASE_URL',
|
|
43
|
+
envModelName: 'OPENAI_MODEL',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
function createReadlineInterface() {
|
|
47
|
+
return readline.createInterface({
|
|
48
|
+
input,
|
|
49
|
+
output,
|
|
50
|
+
terminal: true,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function question(rl, prompt) {
|
|
54
|
+
return new Promise((resolve) => {
|
|
55
|
+
rl.question(prompt, (answer) => {
|
|
56
|
+
resolve(answer.trim());
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function questionPassword(rl, prompt) {
|
|
61
|
+
return new Promise((resolve) => {
|
|
62
|
+
// Disable echo for password input
|
|
63
|
+
const stdin = process.stdin;
|
|
64
|
+
const originalRawMode = stdin.isRaw;
|
|
65
|
+
if (stdin.setRawMode) {
|
|
66
|
+
stdin.setRawMode(true);
|
|
67
|
+
}
|
|
68
|
+
output.write(prompt);
|
|
69
|
+
let password = '';
|
|
70
|
+
const onData = (char) => {
|
|
71
|
+
const str = char.toString('utf8');
|
|
72
|
+
// Handle different key presses
|
|
73
|
+
if (str === '\n' || str === '\r' || str === '\r\n') {
|
|
74
|
+
// Enter key
|
|
75
|
+
output.write('\n');
|
|
76
|
+
stdin.removeListener('data', onData);
|
|
77
|
+
if (stdin.setRawMode) {
|
|
78
|
+
stdin.setRawMode(originalRawMode);
|
|
79
|
+
}
|
|
80
|
+
resolve(password);
|
|
81
|
+
}
|
|
82
|
+
else if (str === '\u0003') {
|
|
83
|
+
// Ctrl+C
|
|
84
|
+
output.write('\n');
|
|
85
|
+
stdin.removeListener('data', onData);
|
|
86
|
+
if (stdin.setRawMode) {
|
|
87
|
+
stdin.setRawMode(originalRawMode);
|
|
88
|
+
}
|
|
89
|
+
process.exit(0);
|
|
90
|
+
}
|
|
91
|
+
else if (str === '\u007f' || str === '\b') {
|
|
92
|
+
// Backspace
|
|
93
|
+
if (password.length > 0) {
|
|
94
|
+
password = password.slice(0, -1);
|
|
95
|
+
output.write('\b \b');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else if (str.charCodeAt(0) >= 32) {
|
|
99
|
+
// Printable character
|
|
100
|
+
password += str;
|
|
101
|
+
output.write('*');
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
stdin.on('data', onData);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
async function selectProvider(rl) {
|
|
108
|
+
console.log('\n📦 Available Providers:\n');
|
|
109
|
+
PROVIDERS.forEach((provider, index) => {
|
|
110
|
+
console.log(` ${index + 1}. ${provider.displayName}`);
|
|
111
|
+
});
|
|
112
|
+
console.log();
|
|
113
|
+
while (true) {
|
|
114
|
+
const answer = await question(rl, 'Select a provider (enter number): ');
|
|
115
|
+
const index = parseInt(answer, 10) - 1;
|
|
116
|
+
if (index >= 0 && index < PROVIDERS.length) {
|
|
117
|
+
return PROVIDERS[index];
|
|
118
|
+
}
|
|
119
|
+
console.log('❌ Invalid selection. Please try again.\n');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async function configureProvider(provider, rl) {
|
|
123
|
+
console.log(`\n⚙️ Configuring ${provider.displayName}\n`);
|
|
124
|
+
// Check if API key exists in environment
|
|
125
|
+
const existingApiKey = provider.envKeyName
|
|
126
|
+
? process.env[provider.envKeyName]
|
|
127
|
+
: undefined;
|
|
128
|
+
let apiKey = '';
|
|
129
|
+
if (existingApiKey) {
|
|
130
|
+
console.log(`✓ API key found in environment variable ${provider.envKeyName}`);
|
|
131
|
+
const useExisting = await question(rl, 'Use existing API key? (Y/n): ');
|
|
132
|
+
if (useExisting.toLowerCase() !== 'n') {
|
|
133
|
+
apiKey = existingApiKey;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (!apiKey) {
|
|
137
|
+
apiKey = await questionPassword(rl, `Enter your ${provider.displayName} API key: `);
|
|
138
|
+
if (!apiKey) {
|
|
139
|
+
throw new Error('API key is required');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Base URL configuration
|
|
143
|
+
const existingBaseUrl = provider.envBaseUrlName
|
|
144
|
+
? process.env[provider.envBaseUrlName]
|
|
145
|
+
: undefined;
|
|
146
|
+
let baseUrl = existingBaseUrl || provider.defaultBaseUrl || '';
|
|
147
|
+
const customizeBaseUrl = await question(rl, `Use custom base URL? Current: ${baseUrl} (y/N): `);
|
|
148
|
+
if (customizeBaseUrl.toLowerCase() === 'y') {
|
|
149
|
+
const newBaseUrl = await question(rl, `Enter base URL (default: ${provider.defaultBaseUrl}): `);
|
|
150
|
+
if (newBaseUrl) {
|
|
151
|
+
baseUrl = newBaseUrl;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Model configuration
|
|
155
|
+
const existingModel = provider.envModelName
|
|
156
|
+
? process.env[provider.envModelName]
|
|
157
|
+
: undefined;
|
|
158
|
+
let model = existingModel || provider.defaultModel;
|
|
159
|
+
const customizeModel = await question(rl, `Use custom model? Current: ${model} (y/N): `);
|
|
160
|
+
if (customizeModel.toLowerCase() === 'y') {
|
|
161
|
+
const newModel = await question(rl, `Enter model name (default: ${provider.defaultModel}): `);
|
|
162
|
+
if (newModel) {
|
|
163
|
+
model = newModel;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return { apiKey, baseUrl, model };
|
|
167
|
+
}
|
|
168
|
+
async function testConfiguration(provider, config) {
|
|
169
|
+
console.log('\n🔍 Testing configuration...\n');
|
|
170
|
+
try {
|
|
171
|
+
// Set environment variables temporarily for testing
|
|
172
|
+
if (provider.envKeyName) {
|
|
173
|
+
process.env[provider.envKeyName] = config.apiKey;
|
|
174
|
+
}
|
|
175
|
+
if (provider.envBaseUrlName && config.baseUrl) {
|
|
176
|
+
process.env[provider.envBaseUrlName] = config.baseUrl;
|
|
177
|
+
}
|
|
178
|
+
if (provider.envModelName && config.model) {
|
|
179
|
+
process.env[provider.envModelName] = config.model;
|
|
180
|
+
}
|
|
181
|
+
// Apply the configuration based on provider
|
|
182
|
+
if (provider.authType === AuthType.USE_OPENAI) {
|
|
183
|
+
setOpenAIApiKey(config.apiKey);
|
|
184
|
+
setOpenAIBaseUrl(config.baseUrl);
|
|
185
|
+
setOpenAIModel(config.model);
|
|
186
|
+
}
|
|
187
|
+
else if (provider.authType === AuthType.USE_BLACKBOX_API) {
|
|
188
|
+
setBlackboxApiKey(config.apiKey);
|
|
189
|
+
if (provider.name === 'blackbox-encrypted') {
|
|
190
|
+
setBlackboxEncryptionBaseUrl(config.baseUrl);
|
|
191
|
+
setBlackboxEncryptedModel(config.model);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
setBlackboxApiBaseUrl(config.baseUrl);
|
|
195
|
+
setBlackboxApiModel(config.model);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
console.log('✓ Configuration applied successfully');
|
|
199
|
+
console.log('\n⚠️ Note: Full API validation will occur when you start using Blackbox CLI');
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
console.error('❌ Configuration test failed:', error);
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
async function saveConfiguration(provider, config) {
|
|
208
|
+
console.log('\n💾 Saving configuration...\n');
|
|
209
|
+
const settings = loadSettings(process.cwd());
|
|
210
|
+
// Save auth type
|
|
211
|
+
settings.setValue(SettingScope.User, 'security.auth.selectedType', provider.authType);
|
|
212
|
+
// Save model name
|
|
213
|
+
settings.setValue(SettingScope.User, 'model.name', config.model);
|
|
214
|
+
// Note: API keys are typically stored in environment variables or secure storage
|
|
215
|
+
// For now, we'll just set them in the current process environment
|
|
216
|
+
// Users should add them to their .env file or shell profile for persistence
|
|
217
|
+
console.log('✓ Configuration saved to user settings');
|
|
218
|
+
console.log('\n📝 Important: To persist your API key across sessions, add it to:');
|
|
219
|
+
console.log(` - Your shell profile (~/.bashrc, ~/.zshrc, etc.)`);
|
|
220
|
+
console.log(` - Or a .env file in your project directory`);
|
|
221
|
+
console.log(` - Or ~/.blackboxcli/.env`);
|
|
222
|
+
console.log();
|
|
223
|
+
console.log(` Example:`);
|
|
224
|
+
console.log(` export ${provider.envKeyName}="${config.apiKey.substring(0, 8)}..."`);
|
|
225
|
+
if (config.baseUrl !== provider.defaultBaseUrl) {
|
|
226
|
+
console.log(` export ${provider.envBaseUrlName}="${config.baseUrl}"`);
|
|
227
|
+
}
|
|
228
|
+
if (config.model !== provider.defaultModel) {
|
|
229
|
+
console.log(` export ${provider.envModelName}="${config.model}"`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
async function runConfigure() {
|
|
233
|
+
console.log('\n🚀 Welcome to Blackbox CLI Configuration\n');
|
|
234
|
+
console.log('This wizard will help you set up your AI provider and model.\n');
|
|
235
|
+
const rl = createReadlineInterface();
|
|
236
|
+
try {
|
|
237
|
+
// Step 1: Select provider
|
|
238
|
+
const provider = await selectProvider(rl);
|
|
239
|
+
// Step 2: Configure provider (API key, base URL, model)
|
|
240
|
+
const config = await configureProvider(provider, rl);
|
|
241
|
+
// Step 3: Test configuration
|
|
242
|
+
const testSuccess = await testConfiguration(provider, config);
|
|
243
|
+
if (!testSuccess) {
|
|
244
|
+
const continueAnyway = await question(rl, '\n⚠️ Configuration test had issues. Continue anyway? (y/N): ');
|
|
245
|
+
if (continueAnyway.toLowerCase() !== 'y') {
|
|
246
|
+
console.log('\n❌ Configuration cancelled.\n');
|
|
247
|
+
rl.close();
|
|
248
|
+
process.exit(1);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
// Step 4: Save configuration
|
|
252
|
+
await saveConfiguration(provider, config);
|
|
253
|
+
console.log('\n✅ Configuration complete!\n');
|
|
254
|
+
console.log('You can now run `blackbox` to start using the CLI.\n');
|
|
255
|
+
console.log('💡 Tip: Run `blackbox configure` again anytime to update your settings.\n');
|
|
256
|
+
rl.close();
|
|
257
|
+
}
|
|
258
|
+
catch (error) {
|
|
259
|
+
console.error('\n❌ Configuration failed:', error);
|
|
260
|
+
rl.close();
|
|
261
|
+
process.exit(1);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
export const configureCommand = {
|
|
265
|
+
command: 'configure',
|
|
266
|
+
describe: 'Configure Blackbox CLI provider and model settings',
|
|
267
|
+
builder: (yargs) => yargs
|
|
268
|
+
.usage('Usage: blackbox configure')
|
|
269
|
+
.example('blackbox configure', 'Start the configuration wizard')
|
|
270
|
+
.help(),
|
|
271
|
+
handler: async () => {
|
|
272
|
+
await runConfigure();
|
|
273
|
+
process.exit(0);
|
|
274
|
+
},
|
|
275
|
+
};
|
|
276
|
+
//# sourceMappingURL=configure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/commands/configure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
7
|
+
import { configureCommand } from './configure/index.js';
|
|
8
|
+
describe('configure command', () => {
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
// Mock process.exit to prevent test termination
|
|
11
|
+
vi.spyOn(process, 'exit').mockImplementation((() => { }));
|
|
12
|
+
});
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
vi.restoreAllMocks();
|
|
15
|
+
});
|
|
16
|
+
it('should have correct command name', () => {
|
|
17
|
+
expect(configureCommand.command).toBe('configure');
|
|
18
|
+
});
|
|
19
|
+
it('should have a description', () => {
|
|
20
|
+
expect(configureCommand.describe).toBeDefined();
|
|
21
|
+
expect(typeof configureCommand.describe).toBe('string');
|
|
22
|
+
});
|
|
23
|
+
it('should have a builder function', () => {
|
|
24
|
+
expect(configureCommand.builder).toBeDefined();
|
|
25
|
+
expect(typeof configureCommand.builder).toBe('function');
|
|
26
|
+
});
|
|
27
|
+
it('should have a handler function', () => {
|
|
28
|
+
expect(configureCommand.handler).toBeDefined();
|
|
29
|
+
expect(typeof configureCommand.handler).toBe('function');
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=configure.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure.test.js","sourceRoot":"","sources":["../../../src/commands/configure.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,UAAU,CAAC,GAAG,EAAE;QACd,gDAAgD;QAChD,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAU,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enable.js","sourceRoot":"","sources":["../../../../src/commands/extensions/enable.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOxD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAgB;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK;YACvB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAChD,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,cAAc,IAAI,CAAC,IAAI,qCAAqC,IAAI,CAAC,KAAK,IAAI,CAC3E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,cAAc,IAAI,CAAC,IAAI,uCAAuC,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"enable.js","sourceRoot":"","sources":["../../../../src/commands/extensions/enable.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOxD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAgB;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK;YACvB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAChD,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,cAAc,IAAI,CAAC,IAAI,qCAAqC,IAAI,CAAC,KAAK,IAAI,CAC3E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,cAAc,IAAI,CAAC,IAAI,uCAAuC,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,yBAAyB;IAClC,QAAQ,EAAE,uBAAuB;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,sCAAsC;QAChD,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,QAAQ,EACN,kFAAkF;QACpF,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC;KACrD,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC;IAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,YAAY,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAW;YAC5B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAiB;SACrC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Example Context Extension
|
|
2
|
+
|
|
3
|
+
This is an example context extension for Blackbox CLI. This file will be loaded as context when the extension is active.
|
|
4
|
+
|
|
5
|
+
## What this extension does
|
|
6
|
+
|
|
7
|
+
This extension provides additional context to help Blackbox understand your project better. You can include:
|
|
8
|
+
|
|
9
|
+
- Project-specific guidelines
|
|
10
|
+
- Coding standards
|
|
11
|
+
- Architecture decisions
|
|
12
|
+
- Common patterns used in your codebase
|
|
13
|
+
|
|
14
|
+
## Customization
|
|
15
|
+
|
|
16
|
+
Edit this file to include context that's relevant to your specific use case.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
prompt = """
|
|
2
|
+
Deploy the application to production. Please:
|
|
3
|
+
|
|
4
|
+
1. Run tests to ensure everything is working
|
|
5
|
+
2. Build the application for production
|
|
6
|
+
3. Deploy using the appropriate deployment method
|
|
7
|
+
4. Verify the deployment was successful
|
|
8
|
+
|
|
9
|
+
Use the following deployment command: !{npm run deploy}
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
description = "Deploy the application to production"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Exclude Tools Extension Example
|
|
2
|
+
|
|
3
|
+
This extension demonstrates how to exclude specific tools from being available in Blackbox CLI.
|
|
4
|
+
|
|
5
|
+
## Configuration
|
|
6
|
+
|
|
7
|
+
The `excludeTools` array in `blackbox-extension.json` specifies which tools should be disabled:
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"excludeTools": ["run_shell_command", "edit_file"]
|
|
12
|
+
}
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Available Tools to Exclude
|
|
16
|
+
|
|
17
|
+
Common tools you might want to exclude:
|
|
18
|
+
- `run_shell_command` - Prevents execution of shell commands
|
|
19
|
+
- `edit_file` - Prevents file editing
|
|
20
|
+
- `create_file` - Prevents file creation
|
|
21
|
+
- `read_file` - Prevents file reading
|
|
22
|
+
- `list_files` - Prevents directory listing
|
|
23
|
+
|
|
24
|
+
## Use Cases
|
|
25
|
+
|
|
26
|
+
- Security: Restrict dangerous operations in certain environments
|
|
27
|
+
- Workflow: Force specific patterns by limiting available tools
|
|
28
|
+
- Testing: Create controlled environments for testing
|
|
@@ -5,8 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { CommandModule } from 'yargs';
|
|
7
7
|
interface InstallArgs {
|
|
8
|
-
source
|
|
9
|
-
|
|
8
|
+
source: string;
|
|
9
|
+
ref?: string;
|
|
10
|
+
autoUpdate?: boolean;
|
|
11
|
+
preRelease?: boolean;
|
|
12
|
+
consent?: boolean;
|
|
13
|
+
fromRegistry?: boolean;
|
|
10
14
|
}
|
|
11
15
|
export declare function handleInstall(args: InstallArgs): Promise<void>;
|
|
12
16
|
export declare const installCommand: CommandModule;
|