@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blackbox-dark.js","sourceRoot":"","sources":["../../../../src/ui/themes/blackbox-dark.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAoB,KAAK,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,kBAAkB,GAAgB;IACtC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,cAAc,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"blackbox-dark.js","sourceRoot":"","sources":["../../../../src/ui/themes/blackbox-dark.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAoB,KAAK,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,kBAAkB,GAAgB;IACtC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,cAAc,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,uDAAuD;CACpG,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAU,IAAI,KAAK,CAC1C,eAAe,EACf,MAAM,EACN;IACE,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,kBAAkB,CAAC,UAAU;QACzC,KAAK,EAAE,kBAAkB,CAAC,UAAU;KACrC;IACD,cAAc,EAAE;QACd,KAAK,EAAE,kBAAkB,CAAC,YAAY;KACvC;IACD,cAAc,EAAE;QACd,KAAK,EAAE,kBAAkB,CAAC,YAAY;KACvC;IACD,aAAa,EAAE;QACb,KAAK,EAAE,kBAAkB,CAAC,UAAU;KACrC;IACD,WAAW,EAAE;QACX,KAAK,EAAE,kBAAkB,CAAC,SAAS;KACpC;IACD,WAAW,EAAE;QACX,KAAK,EAAE,kBAAkB,CAAC,UAAU;KACrC;IACD,6BAA6B,EAAE;QAC7B,KAAK,EAAE,kBAAkB,CAAC,YAAY;KACvC;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,kBAAkB,CAAC,UAAU;KACrC;IACD,aAAa,EAAE;QACb,KAAK,EAAE,kBAAkB,CAAC,WAAW;KACtC;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,kBAAkB,CAAC,YAAY;KACvC;IACD,WAAW,EAAE;QACX,KAAK,EAAE,kBAAkB,CAAC,UAAU;KACrC;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,kBAAkB,CAAC,YAAY;KACvC;IACD,aAAa,EAAE;QACb,KAAK,EAAE,kBAAkB,CAAC,YAAY;KACvC;IACD,eAAe,EAAE;QACf,KAAK,EAAE,kBAAkB,CAAC,WAAW;KACtC;IACD,eAAe,EAAE;QACf,KAAK,EAAE,kBAAkB,CAAC,UAAU;KACrC;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,kBAAkB,CAAC,YAAY;KACvC;IACD,wBAAwB,EAAE;QACxB,KAAK,EAAE,kBAAkB,CAAC,YAAY;KACvC;IACD,cAAc,EAAE;QACd,KAAK,EAAE,kBAAkB,CAAC,OAAO;QACjC,SAAS,EAAE,QAAQ;KACpB;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,kBAAkB,CAAC,UAAU;QACpC,SAAS,EAAE,QAAQ;KACpB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,kBAAkB,CAAC,SAAS;KACpC;IACD,WAAW,EAAE;QACX,KAAK,EAAE,kBAAkB,CAAC,YAAY;KACvC;IACD,aAAa,EAAE;QACb,UAAU,EAAE,MAAM;KACnB;IACD,aAAa,EAAE;QACb,UAAU,EAAE,MAAM;KACnB;IACD,eAAe,EAAE;QACf,SAAS,EAAE,QAAQ;KACpB;CACF,EACD,kBAAkB,EAClB,kBAAkB,CACnB,CAAC"}
|
|
@@ -20,7 +20,7 @@ const blackboxLightColors = {
|
|
|
20
20
|
DiffRemoved: '#f07171',
|
|
21
21
|
Comment: '#ABADB1',
|
|
22
22
|
Gray: '#CCCFD3',
|
|
23
|
-
GradientColors: ['#
|
|
23
|
+
GradientColors: ['#000000ff', '#000000ff'], // White logo for light terminal (inverted for contrast)
|
|
24
24
|
};
|
|
25
25
|
export const BlackboxLight = new Theme('Blackbox Light', 'light', {
|
|
26
26
|
hljs: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blackbox-light.js","sourceRoot":"","sources":["../../../../src/ui/themes/blackbox-light.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAoB,KAAK,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,mBAAmB,GAAgB;IACvC,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,cAAc,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"blackbox-light.js","sourceRoot":"","sources":["../../../../src/ui/themes/blackbox-light.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ui/types.d.ts
CHANGED
|
@@ -122,7 +122,19 @@ export type HistoryItemSummary = HistoryItemBase & {
|
|
|
122
122
|
type: 'summary';
|
|
123
123
|
summary: SummaryProps;
|
|
124
124
|
};
|
|
125
|
-
export type
|
|
125
|
+
export type HistoryItemReleases = HistoryItemBase & {
|
|
126
|
+
type: 'releases';
|
|
127
|
+
mode: 'dialog' | 'list';
|
|
128
|
+
versions: Array<{
|
|
129
|
+
version: string;
|
|
130
|
+
publishedAt: string;
|
|
131
|
+
isLatest: boolean;
|
|
132
|
+
briefNotes: string;
|
|
133
|
+
detailedChanges: string[];
|
|
134
|
+
}>;
|
|
135
|
+
onClose?: () => void;
|
|
136
|
+
};
|
|
137
|
+
export type HistoryItemWithoutId = HistoryItemUser | HistoryItemUserShell | HistoryItemGemini | HistoryItemGeminiContent | HistoryItemInfo | HistoryItemError | HistoryItemAbout | HistoryItemHelp | HistoryItemToolGroup | HistoryItemStats | HistoryItemModelStats | HistoryItemToolStats | HistoryItemQuit | HistoryItemQuitConfirmation | HistoryItemCompression | HistoryItemSummary | HistoryItemReleases;
|
|
126
138
|
export type HistoryItem = HistoryItemWithoutId & {
|
|
127
139
|
id: number;
|
|
128
140
|
};
|
|
@@ -139,7 +151,8 @@ export declare enum MessageType {
|
|
|
139
151
|
QUIT_CONFIRMATION = "quit_confirmation",
|
|
140
152
|
GEMINI = "gemini",
|
|
141
153
|
COMPRESSION = "compression",
|
|
142
|
-
SUMMARY = "summary"
|
|
154
|
+
SUMMARY = "summary",
|
|
155
|
+
RELEASES = "releases"
|
|
143
156
|
}
|
|
144
157
|
export type Message = {
|
|
145
158
|
type: MessageType.INFO | MessageType.ERROR | MessageType.USER;
|
package/dist/src/ui/types.js
CHANGED
|
@@ -42,5 +42,6 @@ export var MessageType;
|
|
|
42
42
|
MessageType["GEMINI"] = "gemini";
|
|
43
43
|
MessageType["COMPRESSION"] = "compression";
|
|
44
44
|
MessageType["SUMMARY"] = "summary";
|
|
45
|
+
MessageType["RELEASES"] = "releases";
|
|
45
46
|
})(MessageType || (MessageType = {}));
|
|
46
47
|
//# sourceMappingURL=types.js.map
|
package/dist/src/ui/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,gDAAgD;AAChD,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,2CAAyB,CAAA;IACzB,qEAAmD,CAAA;AACrD,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,oDAAoD;AACpD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,wDAAqC,CAAA;IACrC,4DAA4D;AAC9D,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;IACnB,iCAAe,CAAA;AACjB,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,gDAAgD;AAChD,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,2CAAyB,CAAA;IACzB,qEAAmD,CAAA;AACrD,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,oDAAoD;AACpD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,wDAAqC,CAAA;IACrC,4DAA4D;AAC9D,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;IACnB,iCAAe,CAAA;AACjB,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AAiKD,gFAAgF;AAChF,MAAM,CAAN,IAAY,WAeX;AAfD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,0CAA2B,CAAA;IAC3B,wCAAyB,CAAA;IACzB,4BAAa,CAAA;IACb,sDAAuC,CAAA;IACvC,gCAAiB,CAAA;IACjB,0CAA2B,CAAA;IAC3B,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;AACvB,CAAC,EAfW,WAAW,KAAX,WAAW,QAetB"}
|
|
@@ -7,4 +7,28 @@ import type { SessionMetrics, ComputedSessionStats, ModelMetrics } from '../cont
|
|
|
7
7
|
export declare function calculateErrorRate(metrics: ModelMetrics): number;
|
|
8
8
|
export declare function calculateAverageLatency(metrics: ModelMetrics): number;
|
|
9
9
|
export declare function calculateCacheHitRate(metrics: ModelMetrics): number;
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Calculate cost for a single model based on token usage and pricing data
|
|
12
|
+
* @param modelName - Name of the model
|
|
13
|
+
* @param metrics - Model metrics
|
|
14
|
+
* @param pricingMap - Map of model names to pricing information
|
|
15
|
+
* @returns Estimated cost in dollars, or undefined if pricing unavailable
|
|
16
|
+
*/
|
|
17
|
+
export declare function calculateModelCost(modelName: string, metrics: ModelMetrics, pricingMap: Map<string, {
|
|
18
|
+
inputCost: number;
|
|
19
|
+
outputCost: number;
|
|
20
|
+
}>): number | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Calculate total cost for a session based on all models used
|
|
23
|
+
* @param metrics - Session metrics
|
|
24
|
+
* @param pricingMap - Map of model names to pricing information
|
|
25
|
+
* @returns Total estimated cost in dollars, or undefined if pricing unavailable
|
|
26
|
+
*/
|
|
27
|
+
export declare function calculateSessionCost(metrics: SessionMetrics, pricingMap: Map<string, {
|
|
28
|
+
inputCost: number;
|
|
29
|
+
outputCost: number;
|
|
30
|
+
}>): number | undefined;
|
|
31
|
+
export declare const computeSessionStats: (metrics: SessionMetrics, _pricingMap?: Map<string, {
|
|
32
|
+
inputCost: number;
|
|
33
|
+
outputCost: number;
|
|
34
|
+
}>) => ComputedSessionStats;
|
|
@@ -21,7 +21,64 @@ export function calculateCacheHitRate(metrics) {
|
|
|
21
21
|
}
|
|
22
22
|
return (metrics.tokens.cached / metrics.tokens.prompt) * 100;
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Calculate cost for a single model based on token usage and pricing data
|
|
26
|
+
* @param modelName - Name of the model
|
|
27
|
+
* @param metrics - Model metrics
|
|
28
|
+
* @param pricingMap - Map of model names to pricing information
|
|
29
|
+
* @returns Estimated cost in dollars, or undefined if pricing unavailable
|
|
30
|
+
*/
|
|
31
|
+
export function calculateModelCost(modelName, metrics, pricingMap) {
|
|
32
|
+
// Try multiple variations of the model name
|
|
33
|
+
let pricing = pricingMap.get(modelName);
|
|
34
|
+
if (!pricing) {
|
|
35
|
+
// Try lowercase
|
|
36
|
+
pricing = pricingMap.get(modelName.toLowerCase());
|
|
37
|
+
}
|
|
38
|
+
if (!pricing) {
|
|
39
|
+
// Try without -001 suffix
|
|
40
|
+
const withoutSuffix = modelName.replace(/-001$/, '');
|
|
41
|
+
pricing = pricingMap.get(withoutSuffix);
|
|
42
|
+
if (!pricing) {
|
|
43
|
+
pricing = pricingMap.get(withoutSuffix.toLowerCase());
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (!pricing) {
|
|
47
|
+
// Try with just the last part after slash
|
|
48
|
+
const lastPart = modelName.split('/').pop() || modelName;
|
|
49
|
+
pricing = pricingMap.get(lastPart);
|
|
50
|
+
if (!pricing) {
|
|
51
|
+
pricing = pricingMap.get(lastPart.toLowerCase());
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (pricing && pricing.inputCost !== undefined && pricing.outputCost !== undefined) {
|
|
55
|
+
// Calculate billable input tokens (excluding cached tokens which are often free)
|
|
56
|
+
const billableInputTokens = metrics.tokens.prompt - metrics.tokens.cached;
|
|
57
|
+
const inputCost = billableInputTokens * pricing.inputCost;
|
|
58
|
+
const outputCost = metrics.tokens.candidates * pricing.outputCost;
|
|
59
|
+
return inputCost + outputCost;
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Calculate total cost for a session based on all models used
|
|
65
|
+
* @param metrics - Session metrics
|
|
66
|
+
* @param pricingMap - Map of model names to pricing information
|
|
67
|
+
* @returns Total estimated cost in dollars, or undefined if pricing unavailable
|
|
68
|
+
*/
|
|
69
|
+
export function calculateSessionCost(metrics, pricingMap) {
|
|
70
|
+
let totalCost = 0;
|
|
71
|
+
let hasAnyCost = false;
|
|
72
|
+
for (const [modelName, modelMetrics] of Object.entries(metrics.models)) {
|
|
73
|
+
const modelCost = calculateModelCost(modelName, modelMetrics, pricingMap);
|
|
74
|
+
if (modelCost !== undefined) {
|
|
75
|
+
totalCost += modelCost;
|
|
76
|
+
hasAnyCost = true;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return hasAnyCost ? totalCost : undefined;
|
|
80
|
+
}
|
|
81
|
+
export const computeSessionStats = (metrics, _pricingMap) => {
|
|
25
82
|
const { models, tools, files } = metrics;
|
|
26
83
|
const totalApiTime = Object.values(models).reduce((acc, model) => acc + model.api.totalLatencyMs, 0);
|
|
27
84
|
const totalToolTime = tools.totalDurationMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeStats.js","sourceRoot":"","sources":["../../../../src/ui/utils/computeStats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACtD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAqB;IAC3D,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAqB;IACzD,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAuB,
|
|
1
|
+
{"version":3,"file":"computeStats.js","sourceRoot":"","sources":["../../../../src/ui/utils/computeStats.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,25 +3,42 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import updateNotifier from 'update-notifier';
|
|
7
6
|
import semver from 'semver';
|
|
8
|
-
import {
|
|
7
|
+
import { isShellScriptInstallation, getCurrentVersion, fetchLatestVersionFromAPI, getPlatformString, } from '../../utils/versionStorage.js';
|
|
9
8
|
export const FETCH_TIMEOUT_MS = 2000;
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* Checks for updates for shell script installations using the releases API
|
|
11
|
+
* Only shows message when auto-update is disabled (pre-launch handles auto-update)
|
|
13
12
|
*/
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
async function checkForUpdatesShellScript() {
|
|
14
|
+
try {
|
|
15
|
+
const currentVersion = await getCurrentVersion();
|
|
16
|
+
if (!currentVersion) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const platform = getPlatformString();
|
|
20
|
+
const latestVersion = await fetchLatestVersionFromAPI(platform);
|
|
21
|
+
if (!latestVersion) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
// Compare versions
|
|
25
|
+
if (semver.gt(latestVersion, currentVersion)) {
|
|
26
|
+
const message = `Update available: ${currentVersion} → ${latestVersion}\nRun: blackbox update`;
|
|
27
|
+
return {
|
|
28
|
+
message,
|
|
29
|
+
update: {
|
|
30
|
+
latest: latestVersion,
|
|
31
|
+
current: currentVersion,
|
|
32
|
+
type: 'latest',
|
|
33
|
+
name: 'blackbox-cli-v2',
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
catch (_error) {
|
|
40
|
+
return null;
|
|
23
41
|
}
|
|
24
|
-
return semver.gt(stableVer, nightlyVer) ? stable : nightly;
|
|
25
42
|
}
|
|
26
43
|
export async function checkForUpdates() {
|
|
27
44
|
try {
|
|
@@ -29,49 +46,15 @@ export async function checkForUpdates() {
|
|
|
29
46
|
if (process.env['DEV'] === 'true') {
|
|
30
47
|
return null;
|
|
31
48
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const { name, version: currentVersion } = packageJson;
|
|
37
|
-
const isNightly = currentVersion.includes('nightly');
|
|
38
|
-
const createNotifier = (distTag) => updateNotifier({
|
|
39
|
-
pkg: {
|
|
40
|
-
name,
|
|
41
|
-
version: currentVersion,
|
|
42
|
-
},
|
|
43
|
-
updateCheckInterval: 0,
|
|
44
|
-
shouldNotifyInNpmScript: true,
|
|
45
|
-
distTag,
|
|
46
|
-
});
|
|
47
|
-
if (isNightly) {
|
|
48
|
-
const [nightlyUpdateInfo, latestUpdateInfo] = await Promise.all([
|
|
49
|
-
createNotifier('nightly').fetchInfo(),
|
|
50
|
-
createNotifier('latest').fetchInfo(),
|
|
51
|
-
]);
|
|
52
|
-
const bestUpdate = getBestAvailableUpdate(nightlyUpdateInfo, latestUpdateInfo);
|
|
53
|
-
if (bestUpdate && semver.gt(bestUpdate.latest, currentVersion)) {
|
|
54
|
-
const message = `A new version of Blackbox Code is available! ${currentVersion} → ${bestUpdate.latest}`;
|
|
55
|
-
return {
|
|
56
|
-
message,
|
|
57
|
-
update: { ...bestUpdate, current: currentVersion },
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
const updateInfo = await createNotifier('latest').fetchInfo();
|
|
63
|
-
if (updateInfo && semver.gt(updateInfo.latest, currentVersion)) {
|
|
64
|
-
const message = `Blackbox Code update available! ${currentVersion} → ${updateInfo.latest}`;
|
|
65
|
-
return {
|
|
66
|
-
message,
|
|
67
|
-
update: { ...updateInfo, current: currentVersion },
|
|
68
|
-
};
|
|
69
|
-
}
|
|
49
|
+
// For shell script installations, check releases API
|
|
50
|
+
// Note: Pre-launch check handles auto-update, this only shows message when disabled
|
|
51
|
+
if (isShellScriptInstallation()) {
|
|
52
|
+
return await checkForUpdatesShellScript();
|
|
70
53
|
}
|
|
54
|
+
// For npm installations, no update check (deprecated)
|
|
71
55
|
return null;
|
|
72
56
|
}
|
|
73
|
-
catch (
|
|
74
|
-
console.warn('Failed to check for updates: ' + e);
|
|
57
|
+
catch (_error) {
|
|
75
58
|
return null;
|
|
76
59
|
}
|
|
77
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["../../../../src/ui/utils/updateCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["../../../../src/ui/utils/updateCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAOrC;;;GAGG;AACH,KAAK,UAAU,0BAA0B;IACvC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAEhE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mBAAmB;QACnB,IAAI,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,qBAAqB,cAAc,MAAM,aAAa,wBAAwB,CAAC;YAC/F,OAAO;gBACL,OAAO;gBACP,MAAM,EAAE;oBACN,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,cAAc;oBACvB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,iBAAiB;iBACxB;aACF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,gEAAgE;QAChE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qDAAqD;QACrD,oFAAoF;QACpF,IAAI,yBAAyB,EAAE,EAAE,CAAC;YAChC,OAAO,MAAM,0BAA0B,EAAE,CAAC;QAC5C,CAAC;QAED,sDAAsD;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Performs a background check for updates without blocking CLI startup
|
|
8
|
+
* If an update is found, it stores the information for the next CLI launch
|
|
9
|
+
*/
|
|
10
|
+
export declare function backgroundUpdateCheck(): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Starts the background update check in a non-blocking way
|
|
13
|
+
* This should be called after the CLI has started
|
|
14
|
+
*/
|
|
15
|
+
export declare function startBackgroundUpdateCheck(): void;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { getCurrentVersion, fetchLatestVersionFromAPI, getPlatformString, writePendingUpdate, } from './versionStorage.js';
|
|
7
|
+
import semver from 'semver';
|
|
8
|
+
/**
|
|
9
|
+
* Performs a background check for updates without blocking CLI startup
|
|
10
|
+
* If an update is found, it stores the information for the next CLI launch
|
|
11
|
+
*/
|
|
12
|
+
export async function backgroundUpdateCheck() {
|
|
13
|
+
try {
|
|
14
|
+
// Get current and latest versions
|
|
15
|
+
const currentVersion = await getCurrentVersion();
|
|
16
|
+
if (!currentVersion) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const platform = getPlatformString();
|
|
20
|
+
const latestVersion = await fetchLatestVersionFromAPI(platform);
|
|
21
|
+
// If we can't fetch the latest version, silently fail
|
|
22
|
+
if (!latestVersion) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Check if update is available
|
|
26
|
+
if (semver.gt(latestVersion, currentVersion)) {
|
|
27
|
+
// Store the pending update for next launch
|
|
28
|
+
writePendingUpdate(latestVersion);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (_error) {
|
|
32
|
+
// Silently fail - don't disrupt the CLI
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Starts the background update check in a non-blocking way
|
|
37
|
+
* This should be called after the CLI has started
|
|
38
|
+
*/
|
|
39
|
+
export function startBackgroundUpdateCheck() {
|
|
40
|
+
// Run the check in the background without awaiting
|
|
41
|
+
// Use setImmediate to ensure it runs after current event loop
|
|
42
|
+
setImmediate(() => {
|
|
43
|
+
backgroundUpdateCheck().catch(() => {
|
|
44
|
+
// Silently ignore errors
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=backgroundUpdateCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backgroundUpdateCheck.js","sourceRoot":"","sources":["../../../src/utils/backgroundUpdateCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC;QACH,kCAAkC;QAClC,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAEhE,sDAAsD;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,IAAI,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC;YAC7C,2CAA2C;YAC3C,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,wCAAwC;IAC1C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACxC,mDAAmD;IACnD,8DAA8D;IAC9D,YAAY,CAAC,GAAG,EAAE;QAChB,qBAAqB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACjC,yBAAyB;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export interface GitRepoInfo {
|
|
7
|
+
owner: string;
|
|
8
|
+
repo: string;
|
|
9
|
+
branch: string;
|
|
10
|
+
remoteUrl: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Auto-detects current Git repository information including owner, repo, and branch
|
|
14
|
+
* @returns GitRepoInfo object or null if not in a Git repository
|
|
15
|
+
*/
|
|
16
|
+
export declare function detectGitRepoInfo(): GitRepoInfo | null;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { execSync } from 'node:child_process';
|
|
7
|
+
/**
|
|
8
|
+
* Auto-detects current Git repository information including owner, repo, and branch
|
|
9
|
+
* @returns GitRepoInfo object or null if not in a Git repository
|
|
10
|
+
*/
|
|
11
|
+
export function detectGitRepoInfo() {
|
|
12
|
+
try {
|
|
13
|
+
// Get current branch
|
|
14
|
+
const branch = execSync('git rev-parse --abbrev-ref HEAD', {
|
|
15
|
+
encoding: 'utf-8',
|
|
16
|
+
}).trim();
|
|
17
|
+
// Get remote URL
|
|
18
|
+
const remoteUrl = execSync('git remote get-url origin', {
|
|
19
|
+
encoding: 'utf-8',
|
|
20
|
+
}).trim();
|
|
21
|
+
// Extract owner/repo from GitHub URL
|
|
22
|
+
// Enhanced regex to handle:
|
|
23
|
+
// - HTTPS/HTTP with optional www: https://github.com, https://www.github.com
|
|
24
|
+
// - SSH: git@github.com:owner/repo
|
|
25
|
+
// - SSH with protocol: ssh://git@github.com/owner/repo
|
|
26
|
+
// - Optional port numbers: :443, :22
|
|
27
|
+
// - Optional .git suffix
|
|
28
|
+
// - Optional trailing slash
|
|
29
|
+
const match = remoteUrl.match(/(?:https?:\/\/(?:www\.)?|git@|ssh:\/\/git@)github\.com(?::[0-9]+)?(?::|\/)([^/]+)\/([^/]+?)(?:\.git)?\/?$/);
|
|
30
|
+
if (!match || !match[1] || !match[2]) {
|
|
31
|
+
return null; // Not a GitHub repository
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
owner: match[1],
|
|
35
|
+
repo: match[2],
|
|
36
|
+
branch,
|
|
37
|
+
remoteUrl,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
catch (_error) {
|
|
41
|
+
// Not in a Git repository or Git command failed
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=gitAutoDetect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitAutoDetect.js","sourceRoot":"","sources":["../../../src/utils/gitAutoDetect.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAS9C;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,qBAAqB;QACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,iCAAiC,EAAE;YACzD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,iBAAiB;QACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,2BAA2B,EAAE;YACtD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,qCAAqC;QACrC,4BAA4B;QAC5B,6EAA6E;QAC7E,mCAAmC;QACnC,uDAAuD;QACvD,qCAAqC;QACrC,yBAAyB;QACzB,4BAA4B;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAC3B,2GAA2G,CAC5G,CAAC;QAEF,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,CAAC,0BAA0B;QACzC,CAAC;QAED,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACf,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,MAAM;YACN,SAAS;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,gDAAgD;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -17,6 +17,7 @@ export var PackageManager;
|
|
|
17
17
|
PackageManager["BUNX"] = "bunx";
|
|
18
18
|
PackageManager["HOMEBREW"] = "homebrew";
|
|
19
19
|
PackageManager["NPX"] = "npx";
|
|
20
|
+
PackageManager["SHELL_SCRIPT"] = "shell_script";
|
|
20
21
|
PackageManager["UNKNOWN"] = "unknown";
|
|
21
22
|
})(PackageManager || (PackageManager = {}));
|
|
22
23
|
export function getInstallationInfo(projectRoot, isAutoUpdateDisabled) {
|
|
@@ -29,15 +30,34 @@ export function getInstallationInfo(projectRoot, isAutoUpdateDisabled) {
|
|
|
29
30
|
const realPath = fs.realpathSync(cliPath).replace(/\\/g, '/');
|
|
30
31
|
const normalizedProjectRoot = projectRoot?.replace(/\\/g, '/');
|
|
31
32
|
const isGit = isGitRepository(process.cwd());
|
|
32
|
-
// Check for
|
|
33
|
+
// Check for shell script installation (custom installer)
|
|
34
|
+
// Installed to ~/.blackbox-cli-v2 with wrapper at ~/.local/bin/blackbox
|
|
35
|
+
const homeDir = process.env['HOME'] || process.env['USERPROFILE'] || '';
|
|
36
|
+
const shellScriptInstallDir = path.join(homeDir, '.blackbox-cli-v2').replace(/\\/g, '/');
|
|
37
|
+
const localBinBlackbox = path.join(homeDir, '.local', 'bin', 'blackbox').replace(/\\/g, '/');
|
|
38
|
+
if (realPath.includes(shellScriptInstallDir) ||
|
|
39
|
+
realPath.includes(localBinBlackbox) ||
|
|
40
|
+
(process.env['BLACKBOX_INSTALL_DIR'] && realPath.includes(process.env['BLACKBOX_INSTALL_DIR']))) {
|
|
41
|
+
return {
|
|
42
|
+
packageManager: PackageManager.SHELL_SCRIPT,
|
|
43
|
+
isGlobal: true,
|
|
44
|
+
updateCommand: 'blackbox update',
|
|
45
|
+
updateMessage: isAutoUpdateDisabled
|
|
46
|
+
? 'Update available. Run: blackbox update'
|
|
47
|
+
: 'Attempting to automatically update now...',
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// Check for local git clone first (but not if BLACKBOX_INSTALL_DIR is set)
|
|
33
51
|
if (isGit &&
|
|
34
52
|
normalizedProjectRoot &&
|
|
35
53
|
realPath.startsWith(normalizedProjectRoot) &&
|
|
36
|
-
!realPath.includes('/node_modules/')
|
|
54
|
+
!realPath.includes('/node_modules/') &&
|
|
55
|
+
!process.env['BLACKBOX_INSTALL_DIR']) {
|
|
37
56
|
return {
|
|
38
|
-
packageManager: PackageManager.UNKNOWN, // Not managed by a package manager in this
|
|
57
|
+
packageManager: PackageManager.UNKNOWN, // Not managed by a package manager in this case
|
|
39
58
|
isGlobal: false,
|
|
40
|
-
|
|
59
|
+
updateCommand: 'blackbox update',
|
|
60
|
+
updateMessage: 'Please run: blackbox update to update your CLI installation.',
|
|
41
61
|
};
|
|
42
62
|
}
|
|
43
63
|
// Check for npx/pnpx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installationInfo.js","sourceRoot":"","sources":["../../../src/utils/installationInfo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"installationInfo.js","sourceRoot":"","sources":["../../../src/utils/installationInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Checks for pending updates and installs them if available
|
|
8
|
+
* This runs BEFORE the main CLI process starts, so it can update files safely
|
|
9
|
+
*
|
|
10
|
+
* OPTIMIZED: No settings loading, no network calls - just check for pending update file
|
|
11
|
+
*
|
|
12
|
+
* New behavior:
|
|
13
|
+
* 1. Check if there's a pending update from previous background check (fast file read)
|
|
14
|
+
* 2. If yes, install it immediately
|
|
15
|
+
* 3. If no, return immediately (CLI starts instantly)
|
|
16
|
+
*/
|
|
17
|
+
export declare function preLaunchUpdateCheck(): Promise<void>;
|