@machina.ai/cell-cli 1.11.0-rc1 → 1.13.0-rc1
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/dist/package.json +12 -10
- package/dist/src/commands/extensions/disable.d.ts +1 -1
- package/dist/src/commands/extensions/disable.js +15 -7
- package/dist/src/commands/extensions/disable.js.map +1 -1
- package/dist/src/commands/extensions/enable.d.ts +1 -1
- package/dist/src/commands/extensions/enable.js +15 -7
- package/dist/src/commands/extensions/enable.js.map +1 -1
- package/dist/src/commands/extensions/install.js +14 -3
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/install.test.js +39 -19
- package/dist/src/commands/extensions/install.test.js.map +1 -1
- package/dist/src/commands/extensions/link.js +14 -3
- package/dist/src/commands/extensions/link.js.map +1 -1
- package/dist/src/commands/extensions/list.js +13 -4
- package/dist/src/commands/extensions/list.js.map +1 -1
- package/dist/src/commands/extensions/uninstall.js +13 -2
- package/dist/src/commands/extensions/uninstall.js.map +1 -1
- package/dist/src/commands/extensions/update.js +18 -13
- 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 +83 -0
- package/dist/src/commands/extensions/validate.js.map +1 -0
- package/dist/src/commands/extensions/validate.test.js +93 -0
- package/dist/src/commands/extensions/validate.test.js.map +1 -0
- package/dist/src/commands/extensions.js +3 -0
- package/dist/src/commands/extensions.js.map +1 -1
- package/dist/src/commands/mcp/add.test.js +3 -0
- package/dist/src/commands/mcp/add.test.js.map +1 -1
- package/dist/src/commands/mcp/list.js +10 -3
- package/dist/src/commands/mcp/list.js.map +1 -1
- package/dist/src/commands/mcp/list.test.js +37 -27
- package/dist/src/commands/mcp/list.test.js.map +1 -1
- package/dist/src/config/auth.js +0 -5
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config.d.ts +6 -3
- package/dist/src/config/config.js +65 -80
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +235 -212
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager.d.ts +63 -0
- package/dist/src/config/extension-manager.js +450 -0
- package/dist/src/config/extension-manager.js.map +1 -0
- package/dist/src/config/extension.d.ts +4 -51
- package/dist/src/config/extension.js +1 -535
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/extension.test.js +525 -201
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/extensions/consent.d.ts +38 -0
- package/dist/src/config/extensions/consent.js +123 -0
- package/dist/src/config/extensions/consent.js.map +1 -0
- package/dist/src/config/extensions/extensionEnablement.d.ts +1 -1
- package/dist/src/config/extensions/extensionEnablement.js +4 -3
- package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
- package/dist/src/config/extensions/extensionEnablement.test.js +10 -10
- package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.d.ts +15 -0
- package/dist/src/config/extensions/extensionSettings.js +113 -0
- package/dist/src/config/extensions/extensionSettings.js.map +1 -0
- package/dist/src/config/extensions/extensionSettings.test.d.ts +6 -0
- package/dist/src/config/extensions/extensionSettings.test.js +254 -0
- package/dist/src/config/extensions/extensionSettings.test.js.map +1 -0
- package/dist/src/config/extensions/github.d.ts +2 -2
- package/dist/src/config/extensions/github.js +5 -10
- package/dist/src/config/extensions/github.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +153 -167
- package/dist/src/config/extensions/github.test.js.map +1 -1
- package/dist/src/config/extensions/github_fetch.d.ts +1 -1
- package/dist/src/config/extensions/github_fetch.js +13 -1
- package/dist/src/config/extensions/github_fetch.js.map +1 -1
- package/dist/src/config/extensions/github_fetch.test.d.ts +6 -0
- package/dist/src/config/extensions/github_fetch.test.js +169 -0
- package/dist/src/config/extensions/github_fetch.test.js.map +1 -0
- package/dist/src/config/extensions/storage.d.ts +14 -0
- package/dist/src/config/extensions/storage.js +32 -0
- package/dist/src/config/extensions/storage.js.map +1 -0
- package/dist/src/config/extensions/update.d.ts +4 -4
- package/dist/src/config/extensions/update.js +39 -39
- package/dist/src/config/extensions/update.js.map +1 -1
- package/dist/src/config/extensions/update.test.js +72 -74
- package/dist/src/config/extensions/update.test.js.map +1 -1
- package/dist/src/config/extensions/variableSchema.d.ts +0 -6
- package/dist/src/config/extensions/variableSchema.js.map +1 -1
- package/dist/src/config/extensions/variables.d.ts +4 -0
- package/dist/src/config/extensions/variables.js +6 -0
- package/dist/src/config/extensions/variables.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +3 -0
- package/dist/src/config/keyBindings.js +30 -8
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/keyBindings.test.js +17 -0
- package/dist/src/config/keyBindings.test.js.map +1 -1
- package/dist/src/config/policies/read-only.toml +56 -0
- package/dist/src/config/policies/write.toml +63 -0
- package/dist/src/config/policies/yolo.toml +31 -0
- package/dist/src/config/policy-engine.integration.test.js +41 -38
- package/dist/src/config/policy-engine.integration.test.js.map +1 -1
- package/dist/src/config/policy.d.ts +2 -2
- package/dist/src/config/policy.js +10 -148
- package/dist/src/config/policy.js.map +1 -1
- package/dist/src/config/sandboxConfig.d.ts +1 -1
- package/dist/src/config/sandboxConfig.js +6 -3
- package/dist/src/config/sandboxConfig.js.map +1 -1
- package/dist/src/config/settings.d.ts +2 -1
- package/dist/src/config/settings.js +58 -18
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.js +128 -69
- package/dist/src/config/settings.test.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +170 -28
- package/dist/src/config/settingsSchema.js +418 -27
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +42 -1
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/trustedFolders.d.ts +1 -1
- package/dist/src/config/trustedFolders.js +4 -2
- package/dist/src/config/trustedFolders.js.map +1 -1
- package/dist/src/core/initializer.js +2 -1
- package/dist/src/core/initializer.js.map +1 -1
- package/dist/src/gemini.d.ts +1 -1
- package/dist/src/gemini.js +46 -16
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +88 -30
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/nonInteractiveCli.d.ts +9 -1
- package/dist/src/nonInteractiveCli.js +114 -7
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.js +355 -112
- package/dist/src/nonInteractiveCli.test.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +4 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.test.js +22 -0
- package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
- package/dist/src/services/FeedbackService.js +2 -2
- package/dist/src/services/FeedbackService.js.map +1 -1
- package/dist/src/services/McpPromptLoader.js +2 -2
- package/dist/src/services/McpPromptLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.test.js +4 -2
- package/dist/src/services/McpPromptLoader.test.js.map +1 -1
- package/dist/src/test-utils/async.d.ts +9 -0
- package/dist/src/test-utils/async.js +29 -0
- package/dist/src/test-utils/async.js.map +1 -0
- package/dist/src/test-utils/createExtension.d.ts +3 -1
- package/dist/src/test-utils/createExtension.js +3 -3
- package/dist/src/test-utils/createExtension.js.map +1 -1
- package/dist/src/test-utils/render.d.ts +16 -2
- package/dist/src/test-utils/render.js +66 -4
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/test-utils/render.test.d.ts +6 -0
- package/dist/src/test-utils/render.test.js +79 -0
- package/dist/src/test-utils/render.test.js.map +1 -0
- package/dist/src/ui/App.test.js +1 -1
- package/dist/src/ui/App.test.js.map +1 -1
- package/dist/src/ui/AppContainer.js +181 -65
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +505 -147
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/IdeIntegrationNudge.js +1 -1
- package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
- package/dist/src/ui/auth/ApiAuthDialog.d.ts +14 -0
- package/dist/src/ui/auth/ApiAuthDialog.js +26 -0
- package/dist/src/ui/auth/ApiAuthDialog.js.map +1 -0
- package/dist/src/ui/auth/ApiAuthDialog.test.d.ts +6 -0
- package/dist/src/ui/auth/ApiAuthDialog.test.js +91 -0
- package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -0
- package/dist/src/ui/auth/AuthDialog.js +7 -3
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/useAuth.d.ts +2 -0
- package/dist/src/ui/auth/useAuth.js +31 -2
- package/dist/src/ui/auth/useAuth.js.map +1 -1
- package/dist/src/ui/colors.js +3 -0
- package/dist/src/ui/colors.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.js +1 -1
- package/dist/src/ui/commands/directoryCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +64 -11
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.test.js +72 -1
- package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +14 -14
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.js +4 -0
- package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +1 -1
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.test.js +3 -1
- package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
- package/dist/src/ui/commands/policiesCommand.d.ts +7 -0
- package/dist/src/ui/commands/policiesCommand.js +59 -0
- package/dist/src/ui/commands/policiesCommand.js.map +1 -0
- package/dist/src/ui/commands/policiesCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/policiesCommand.test.js +83 -0
- package/dist/src/ui/commands/policiesCommand.test.js.map +1 -0
- package/dist/src/ui/components/AnsiOutput.test.js +1 -1
- package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
- package/dist/src/ui/components/AsciiArt.d.ts +3 -3
- package/dist/src/ui/components/AsciiArt.js +3 -3
- package/dist/src/ui/components/Composer.js +1 -1
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +5 -2
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ConfigInitDisplay.js +4 -6
- package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
- package/dist/src/ui/components/ConsentPrompt.test.js +18 -8
- package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ConsoleSummaryDisplay.js +1 -1
- package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.test.js +11 -6
- package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +4 -0
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +2 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.js +4 -3
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Footer.test.js +83 -0
- package/dist/src/ui/components/Footer.test.js.map +1 -1
- package/dist/src/ui/components/Header.test.js +13 -5
- package/dist/src/ui/components/Header.test.js.map +1 -1
- package/dist/src/ui/components/Help.test.js +5 -4
- package/dist/src/ui/components/Help.test.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +27 -8
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +776 -727
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.js +2 -2
- package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.test.js +28 -15
- package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.js +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js +2 -2
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/MainContent.js +15 -4
- package/dist/src/ui/components/MainContent.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +1 -1
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.test.js +23 -13
- package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/Notifications.js +38 -5
- package/dist/src/ui/components/Notifications.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +2 -2
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/PrepareLabel.test.js +14 -8
- package/dist/src/ui/components/PrepareLabel.test.js.map +1 -1
- package/dist/src/ui/components/ProQuotaDialog.test.js +14 -6
- package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
- package/dist/src/ui/components/QueuedMessageDisplay.test.js +11 -6
- package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.test.js +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +32 -25
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +428 -532
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.test.js +2 -2
- package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.test.js +1 -1
- package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.js +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +2 -2
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.js +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/messages/CompressionMessage.test.js +25 -17
- package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.js +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.js +27 -5
- package/dist/src/ui/components/messages/Todo.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.test.js +20 -8
- package/dist/src/ui/components/messages/Todo.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +29 -15
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/WarningMessage.js +2 -2
- package/dist/src/ui/components/messages/WarningMessage.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.test.js +43 -22
- package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
- package/dist/src/ui/components/shared/TextInput.d.ts +15 -0
- package/dist/src/ui/components/shared/TextInput.js +38 -0
- package/dist/src/ui/components/shared/TextInput.js.map +1 -0
- package/dist/src/ui/components/shared/TextInput.test.d.ts +6 -0
- package/dist/src/ui/components/shared/TextInput.test.js +242 -0
- package/dist/src/ui/components/shared/TextInput.test.js.map +1 -0
- package/dist/src/ui/components/shared/text-buffer.d.ts +9 -2
- package/dist/src/ui/components/shared/text-buffer.js +51 -13
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.test.js +385 -202
- package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
- package/dist/src/ui/components/views/ChatList.test.js +7 -4
- package/dist/src/ui/components/views/ChatList.test.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.d.ts +7 -1
- package/dist/src/ui/components/views/ExtensionsList.js +9 -11
- package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.test.js +43 -22
- package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.test.js +23 -12
- package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.d.ts +3 -2
- package/dist/src/ui/contexts/KeypressContext.js +610 -540
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +438 -718
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/MouseContext.d.ts +21 -0
- package/dist/src/ui/contexts/MouseContext.js +89 -0
- package/dist/src/ui/contexts/MouseContext.js.map +1 -0
- package/dist/src/ui/contexts/MouseContext.test.d.ts +6 -0
- package/dist/src/ui/contexts/MouseContext.test.js +164 -0
- package/dist/src/ui/contexts/MouseContext.test.js.map +1 -0
- package/dist/src/ui/contexts/SessionContext.test.js +35 -17
- package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +2 -0
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +2 -0
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +31 -9
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +163 -64
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.test.js +64 -35
- package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +193 -165
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.test.js +16 -5
- package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js +10 -0
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +32 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.js +66 -64
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.test.js +26 -9
- package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
- package/dist/src/ui/hooks/useEditorSettings.test.js +40 -34
- package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.d.ts +14 -5
- package/dist/src/ui/hooks/useExtensionUpdates.js +18 -13
- package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.test.js +49 -44
- package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
- package/dist/src/ui/hooks/useFlickerDetector.test.js +9 -5
- package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -1
- package/dist/src/ui/hooks/useFocus.test.js +25 -9
- package/dist/src/ui/hooks/useFocus.test.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js +46 -22
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +56 -19
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +260 -411
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.js +4 -0
- package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.test.js +46 -34
- package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
- package/dist/src/ui/hooks/useHistoryManager.test.js +2 -1
- package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
- package/dist/src/ui/hooks/useIdeTrustListener.test.js +40 -9
- package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -1
- package/dist/src/ui/hooks/useInputHistory.test.js +2 -1
- package/dist/src/ui/hooks/useInputHistory.test.js.map +1 -1
- package/dist/src/ui/hooks/useInputHistoryStore.test.js +2 -1
- package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
- package/dist/src/ui/hooks/useKeypress.test.js +103 -114
- package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +24 -6
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useMemoryMonitor.test.js +10 -5
- package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -1
- package/dist/src/ui/hooks/useMessageQueue.test.js +62 -45
- package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
- package/dist/src/ui/hooks/useModelCommand.test.js +21 -11
- package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -1
- package/dist/src/ui/hooks/useMouse.d.ts +17 -0
- package/dist/src/ui/hooks/useMouse.js +27 -0
- package/dist/src/ui/hooks/useMouse.js.map +1 -0
- package/dist/src/ui/hooks/useMouse.test.d.ts +6 -0
- package/dist/src/ui/hooks/useMouse.test.js +57 -0
- package/dist/src/ui/hooks/useMouse.test.js.map +1 -0
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +2 -2
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.js +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.test.js +109 -106
- package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
- package/dist/src/ui/hooks/usePrivacySettings.test.js +26 -6
- package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
- package/dist/src/ui/hooks/usePromptCompletion.js +2 -2
- package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.js +13 -14
- package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js +55 -48
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.d.ts +8 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +59 -34
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.test.d.ts +6 -0
- package/dist/src/ui/hooks/useReactToolScheduler.test.js +65 -0
- package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +1 -0
- package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +2 -2
- package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.js +5 -4
- package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.test.js +272 -183
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
- package/dist/src/ui/hooks/useShellHistory.test.js +52 -20
- package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +18 -7
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +275 -137
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useTimer.test.js +43 -14
- package/dist/src/ui/hooks/useTimer.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +226 -242
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/vim.test.js +235 -355
- package/dist/src/ui/hooks/vim.test.js.map +1 -1
- package/dist/src/ui/keyMatchers.test.js +30 -3
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/state/extensions.d.ts +1 -0
- package/dist/src/ui/state/extensions.js +1 -0
- package/dist/src/ui/state/extensions.js.map +1 -1
- package/dist/src/ui/themes/ansi-light.js +1 -0
- package/dist/src/ui/themes/ansi-light.js.map +1 -1
- package/dist/src/ui/themes/ansi.js +1 -0
- package/dist/src/ui/themes/ansi.js.map +1 -1
- package/dist/src/ui/themes/atom-one-dark.js +2 -0
- package/dist/src/ui/themes/atom-one-dark.js.map +1 -1
- package/dist/src/ui/themes/ayu-light.js +2 -0
- package/dist/src/ui/themes/ayu-light.js.map +1 -1
- package/dist/src/ui/themes/ayu.js +2 -0
- package/dist/src/ui/themes/ayu.js.map +1 -1
- package/dist/src/ui/themes/color-utils.d.ts +1 -0
- package/dist/src/ui/themes/color-utils.js +6 -0
- package/dist/src/ui/themes/color-utils.js.map +1 -1
- package/dist/src/ui/themes/color-utils.test.js +13 -1
- package/dist/src/ui/themes/color-utils.test.js.map +1 -1
- package/dist/src/ui/themes/dracula.js +2 -0
- package/dist/src/ui/themes/dracula.js.map +1 -1
- package/dist/src/ui/themes/github-dark.js +2 -0
- package/dist/src/ui/themes/github-dark.js.map +1 -1
- package/dist/src/ui/themes/github-light.js +2 -0
- package/dist/src/ui/themes/github-light.js.map +1 -1
- package/dist/src/ui/themes/googlecode.js +2 -0
- package/dist/src/ui/themes/googlecode.js.map +1 -1
- package/dist/src/ui/themes/no-color.js +3 -0
- package/dist/src/ui/themes/no-color.js.map +1 -1
- package/dist/src/ui/themes/semantic-tokens.d.ts +2 -0
- package/dist/src/ui/themes/semantic-tokens.js +6 -0
- package/dist/src/ui/themes/semantic-tokens.js.map +1 -1
- package/dist/src/ui/themes/shades-of-purple.js +2 -0
- package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +3 -0
- package/dist/src/ui/themes/theme.js +14 -3
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/themes/theme.test.js +67 -1
- package/dist/src/ui/themes/theme.test.js.map +1 -1
- package/dist/src/ui/themes/xcode.js +2 -0
- package/dist/src/ui/themes/xcode.js.map +1 -1
- package/dist/src/ui/types.d.ts +3 -1
- package/dist/src/ui/types.js +2 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.js +2 -1
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +1 -0
- package/dist/src/ui/utils/InlineMarkdownRenderer.js +11 -10
- package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.js +11 -9
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.js +2 -2
- package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
- package/dist/src/ui/utils/input.d.ts +17 -0
- package/dist/src/ui/utils/input.js +51 -0
- package/dist/src/ui/utils/input.js.map +1 -0
- package/dist/src/ui/utils/input.test.d.ts +6 -0
- package/dist/src/ui/utils/input.test.js +44 -0
- package/dist/src/ui/utils/input.test.js.map +1 -0
- package/dist/src/ui/utils/kittyProtocolDetector.js +13 -4
- package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
- package/dist/src/ui/utils/mouse.d.ts +31 -0
- package/dist/src/ui/utils/mouse.js +164 -0
- package/dist/src/ui/utils/mouse.js.map +1 -0
- package/dist/src/ui/utils/mouse.test.d.ts +6 -0
- package/dist/src/ui/utils/mouse.test.js +131 -0
- package/dist/src/ui/utils/mouse.test.js.map +1 -0
- package/dist/src/ui/utils/textOutput.d.ts +25 -0
- package/dist/src/ui/utils/textOutput.js +49 -0
- package/dist/src/ui/utils/textOutput.js.map +1 -0
- package/dist/src/ui/utils/textOutput.test.d.ts +6 -0
- package/dist/src/ui/utils/textOutput.test.js +79 -0
- package/dist/src/ui/utils/textOutput.test.js.map +1 -0
- package/dist/src/ui/utils/updateCheck.d.ts +7 -1
- package/dist/src/ui/utils/updateCheck.js +33 -29
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.test.js +24 -50
- package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
- package/dist/src/utils/commentJson.js +2 -2
- package/dist/src/utils/commentJson.js.map +1 -1
- package/dist/src/utils/commentJson.test.js +7 -6
- package/dist/src/utils/commentJson.test.js.map +1 -1
- package/dist/src/utils/envVarResolver.d.ts +2 -2
- package/dist/src/utils/envVarResolver.js +10 -7
- package/dist/src/utils/envVarResolver.js.map +1 -1
- package/dist/src/utils/events.d.ts +11 -2
- package/dist/src/utils/events.js +1 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.js +9 -3
- package/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/dist/src/utils/sandbox.js +16 -18
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/version.js +6 -2
- package/dist/src/utils/version.js.map +1 -1
- package/dist/src/zed-integration/acp.js +2 -1
- package/dist/src/zed-integration/acp.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +4 -4
- package/dist/src/zed-integration/zedIntegration.d.ts +2 -2
- package/dist/src/zed-integration/zedIntegration.js +12 -19
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -14
- package/dist/src/config/policy.test.js +0 -360
- package/dist/src/config/policy.test.js.map +0 -1
- package/dist/src/utils/package.d.ts +0 -12
- package/dist/src/utils/package.js +0 -24
- package/dist/src/utils/package.js.map +0 -1
- /package/dist/src/{config/policy.test.d.ts → commands/extensions/validate.test.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["../../../../src/ui/utils/updateCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["../../../../src/ui/utils/updateCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAerC;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,MAAe;IAEf,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,IAAI,IAAI,CAAC;IACpC,IAAI,CAAC,MAAM;QAAE,OAAO,OAAO,IAAI,IAAI,CAAC;IAEpC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAwB;IAExB,IAAI,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,gEAAgE;QAChE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;QACtD,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAErD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACtD,aAAa,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBAC3C,aAAa,CAAC,IAAI,CAAC;aACpB,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,sBAAsB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAEvE,IAAI,UAAU,IAAI,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,2CAA2C,cAAc,MAAM,UAAU,EAAE,CAAC;gBAC5F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,SAAS,CAAC;gBAClE,OAAO;oBACL,OAAO;oBACP,MAAM,EAAE;wBACN,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,cAAc;wBACvB,IAAI;wBACJ,IAAI;qBACL;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YAE/C,IAAI,YAAY,IAAI,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,CAAC;gBAC5D,MAAM,OAAO,GAAG,8BAA8B,cAAc,MAAM,YAAY,EAAE,CAAC;gBACjF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,SAAS,CAAC;gBACpE,OAAO;oBACL,OAAO;oBACP,MAAM,EAAE;wBACN,MAAM,EAAE,YAAY;wBACpB,OAAO,EAAE,cAAc;wBACvB,IAAI;wBACJ,IAAI;qBACL;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,WAAW,CAAC,IAAI,CAAC,+BAA+B,GAAG,CAAC,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -6,12 +6,16 @@
|
|
|
6
6
|
import { vi, describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
7
7
|
import { checkForUpdates } from './updateCheck.js';
|
|
8
8
|
const getPackageJson = vi.hoisted(() => vi.fn());
|
|
9
|
-
vi.
|
|
9
|
+
const debugLogger = vi.hoisted(() => ({
|
|
10
|
+
warn: vi.fn(),
|
|
11
|
+
}));
|
|
12
|
+
vi.mock('@google/gemini-cli-core', () => ({
|
|
10
13
|
getPackageJson,
|
|
14
|
+
debugLogger,
|
|
11
15
|
}));
|
|
12
|
-
const
|
|
13
|
-
vi.mock('
|
|
14
|
-
default:
|
|
16
|
+
const latestVersion = vi.hoisted(() => vi.fn());
|
|
17
|
+
vi.mock('latest-version', () => ({
|
|
18
|
+
default: latestVersion,
|
|
15
19
|
}));
|
|
16
20
|
describe('checkForUpdates', () => {
|
|
17
21
|
let mockSettings;
|
|
@@ -37,7 +41,7 @@ describe('checkForUpdates', () => {
|
|
|
37
41
|
const result = await checkForUpdates(mockSettings);
|
|
38
42
|
expect(result).toBeNull();
|
|
39
43
|
expect(getPackageJson).not.toHaveBeenCalled();
|
|
40
|
-
expect(
|
|
44
|
+
expect(latestVersion).not.toHaveBeenCalled();
|
|
41
45
|
});
|
|
42
46
|
it('should return null when running from source (DEV=true)', async () => {
|
|
43
47
|
process.env['DEV'] = 'true';
|
|
@@ -45,15 +49,11 @@ describe('checkForUpdates', () => {
|
|
|
45
49
|
name: 'test-package',
|
|
46
50
|
version: '1.0.0',
|
|
47
51
|
});
|
|
48
|
-
|
|
49
|
-
fetchInfo: vi
|
|
50
|
-
.fn()
|
|
51
|
-
.mockResolvedValue({ current: '1.0.0', latest: '1.1.0' }),
|
|
52
|
-
});
|
|
52
|
+
latestVersion.mockResolvedValue('1.1.0');
|
|
53
53
|
const result = await checkForUpdates(mockSettings);
|
|
54
54
|
expect(result).toBeNull();
|
|
55
55
|
expect(getPackageJson).not.toHaveBeenCalled();
|
|
56
|
-
expect(
|
|
56
|
+
expect(latestVersion).not.toHaveBeenCalled();
|
|
57
57
|
});
|
|
58
58
|
it('should return null if package.json is missing', async () => {
|
|
59
59
|
getPackageJson.mockResolvedValue(null);
|
|
@@ -65,9 +65,7 @@ describe('checkForUpdates', () => {
|
|
|
65
65
|
name: 'test-package',
|
|
66
66
|
version: '1.0.0',
|
|
67
67
|
});
|
|
68
|
-
|
|
69
|
-
fetchInfo: vi.fn().mockResolvedValue(null),
|
|
70
|
-
});
|
|
68
|
+
latestVersion.mockResolvedValue('1.0.0');
|
|
71
69
|
const result = await checkForUpdates(mockSettings);
|
|
72
70
|
expect(result).toBeNull();
|
|
73
71
|
});
|
|
@@ -76,25 +74,19 @@ describe('checkForUpdates', () => {
|
|
|
76
74
|
name: 'test-package',
|
|
77
75
|
version: '1.0.0',
|
|
78
76
|
});
|
|
79
|
-
|
|
80
|
-
fetchInfo: vi
|
|
81
|
-
.fn()
|
|
82
|
-
.mockResolvedValue({ current: '1.0.0', latest: '1.1.0' }),
|
|
83
|
-
});
|
|
77
|
+
latestVersion.mockResolvedValue('1.1.0');
|
|
84
78
|
const result = await checkForUpdates(mockSettings);
|
|
85
79
|
expect(result?.message).toContain('1.0.0 → 1.1.0');
|
|
86
|
-
expect(result?.update).toEqual(
|
|
80
|
+
expect(result?.update.current).toEqual('1.0.0');
|
|
81
|
+
expect(result?.update.latest).toEqual('1.1.0');
|
|
82
|
+
expect(result?.update.name).toEqual('test-package');
|
|
87
83
|
});
|
|
88
84
|
it('should return null if the latest version is the same as the current version', async () => {
|
|
89
85
|
getPackageJson.mockResolvedValue({
|
|
90
86
|
name: 'test-package',
|
|
91
87
|
version: '1.0.0',
|
|
92
88
|
});
|
|
93
|
-
|
|
94
|
-
fetchInfo: vi
|
|
95
|
-
.fn()
|
|
96
|
-
.mockResolvedValue({ current: '1.0.0', latest: '1.0.0' }),
|
|
97
|
-
});
|
|
89
|
+
latestVersion.mockResolvedValue('1.0.0');
|
|
98
90
|
const result = await checkForUpdates(mockSettings);
|
|
99
91
|
expect(result).toBeNull();
|
|
100
92
|
});
|
|
@@ -103,22 +95,16 @@ describe('checkForUpdates', () => {
|
|
|
103
95
|
name: 'test-package',
|
|
104
96
|
version: '1.1.0',
|
|
105
97
|
});
|
|
106
|
-
|
|
107
|
-
fetchInfo: vi
|
|
108
|
-
.fn()
|
|
109
|
-
.mockResolvedValue({ current: '1.1.0', latest: '1.0.0' }),
|
|
110
|
-
});
|
|
98
|
+
latestVersion.mockResolvedValue('1.0.0');
|
|
111
99
|
const result = await checkForUpdates(mockSettings);
|
|
112
100
|
expect(result).toBeNull();
|
|
113
101
|
});
|
|
114
|
-
it('should return null if
|
|
102
|
+
it('should return null if latestVersion rejects', async () => {
|
|
115
103
|
getPackageJson.mockResolvedValue({
|
|
116
104
|
name: 'test-package',
|
|
117
105
|
version: '1.0.0',
|
|
118
106
|
});
|
|
119
|
-
|
|
120
|
-
fetchInfo: vi.fn().mockRejectedValue(new Error('Timeout')),
|
|
121
|
-
});
|
|
107
|
+
latestVersion.mockRejectedValue(new Error('Timeout'));
|
|
122
108
|
const result = await checkForUpdates(mockSettings);
|
|
123
109
|
expect(result).toBeNull();
|
|
124
110
|
});
|
|
@@ -133,24 +119,12 @@ describe('checkForUpdates', () => {
|
|
|
133
119
|
name: 'test-package',
|
|
134
120
|
version: '1.2.3-nightly.1',
|
|
135
121
|
});
|
|
136
|
-
|
|
137
|
-
if (
|
|
138
|
-
return
|
|
139
|
-
latest: '1.2.3-nightly.2',
|
|
140
|
-
current: '1.2.3-nightly.1',
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
if (distTag === 'latest') {
|
|
144
|
-
return Promise.resolve({
|
|
145
|
-
latest: '1.2.3',
|
|
146
|
-
current: '1.2.3-nightly.1',
|
|
147
|
-
});
|
|
122
|
+
latestVersion.mockImplementation(async (name, options) => {
|
|
123
|
+
if (options?.version === 'nightly') {
|
|
124
|
+
return '1.2.3-nightly.2';
|
|
148
125
|
}
|
|
149
|
-
return
|
|
126
|
+
return '1.2.3';
|
|
150
127
|
});
|
|
151
|
-
updateNotifier.mockImplementation(({ pkg, distTag }) => ({
|
|
152
|
-
fetchInfo: () => fetchInfoMock({ pkg, distTag }),
|
|
153
|
-
}));
|
|
154
128
|
const result = await checkForUpdates(mockSettings);
|
|
155
129
|
expect(result?.message).toContain('1.2.3-nightly.1 → 1.2.3-nightly.2');
|
|
156
130
|
expect(result?.update.latest).toBe('1.2.3-nightly.2');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateCheck.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/updateCheck.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,EAAE,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"updateCheck.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/updateCheck.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import * as fs from 'node:fs';
|
|
7
7
|
import { parse, stringify } from 'comment-json';
|
|
8
|
+
import { coreEvents } from '@google/gemini-cli-core';
|
|
8
9
|
/**
|
|
9
10
|
* Updates a JSON file while preserving comments and formatting.
|
|
10
11
|
*/
|
|
@@ -19,8 +20,7 @@ export function updateSettingsFilePreservingFormat(filePath, updates) {
|
|
|
19
20
|
parsed = parse(originalContent);
|
|
20
21
|
}
|
|
21
22
|
catch (error) {
|
|
22
|
-
|
|
23
|
-
console.error('Settings file may be corrupted. Please check the JSON syntax.');
|
|
23
|
+
coreEvents.emitFeedback('error', 'Error parsing settings file. Please check the JSON syntax.', error);
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
const updatedStructure = applyUpdates(parsed, updates);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commentJson.js","sourceRoot":"","sources":["../../../src/utils/commentJson.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"commentJson.js","sourceRoot":"","sources":["../../../src/utils/commentJson.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,12 @@ import * as fs from 'node:fs';
|
|
|
8
8
|
import * as path from 'node:path';
|
|
9
9
|
import * as os from 'node:os';
|
|
10
10
|
import { updateSettingsFilePreservingFormat } from './commentJson.js';
|
|
11
|
+
import { coreEvents } from '@google/gemini-cli-core';
|
|
12
|
+
vi.mock('@google/gemini-cli-core', () => ({
|
|
13
|
+
coreEvents: {
|
|
14
|
+
emitFeedback: vi.fn(),
|
|
15
|
+
},
|
|
16
|
+
}));
|
|
11
17
|
describe('commentJson', () => {
|
|
12
18
|
let tempDir;
|
|
13
19
|
let testFilePath;
|
|
@@ -130,19 +136,14 @@ describe('commentJson', () => {
|
|
|
130
136
|
// Missing closing brace
|
|
131
137
|
`;
|
|
132
138
|
fs.writeFileSync(testFilePath, corruptedContent, 'utf-8');
|
|
133
|
-
const consoleSpy = vi
|
|
134
|
-
.spyOn(console, 'error')
|
|
135
|
-
.mockImplementation(() => { });
|
|
136
139
|
expect(() => {
|
|
137
140
|
updateSettingsFilePreservingFormat(testFilePath, {
|
|
138
141
|
model: 'gemini-2.5-flash',
|
|
139
142
|
});
|
|
140
143
|
}).not.toThrow();
|
|
141
|
-
expect(
|
|
142
|
-
expect(consoleSpy).toHaveBeenCalledWith('Settings file may be corrupted. Please check the JSON syntax.');
|
|
144
|
+
expect(coreEvents.emitFeedback).toHaveBeenCalledWith('error', 'Error parsing settings file. Please check the JSON syntax.', expect.any(Error));
|
|
143
145
|
const unchangedContent = fs.readFileSync(testFilePath, 'utf-8');
|
|
144
146
|
expect(unchangedContent).toBe(corruptedContent);
|
|
145
|
-
consoleSpy.mockRestore();
|
|
146
147
|
});
|
|
147
148
|
it('should handle array updates while preserving comments', () => {
|
|
148
149
|
const originalContent = `{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commentJson.test.js","sourceRoot":"","sources":["../../../src/utils/commentJson.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"commentJson.test.js","sourceRoot":"","sources":["../../../src/utils/commentJson.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* resolveEnvVarsInString("URL: ${BASE_URL}/api") // Returns "URL: https://api.example.com/api"
|
|
17
17
|
* resolveEnvVarsInString("Missing: $UNDEFINED_VAR") // Returns "Missing: $UNDEFINED_VAR"
|
|
18
18
|
*/
|
|
19
|
-
export declare function resolveEnvVarsInString(value: string): string;
|
|
19
|
+
export declare function resolveEnvVarsInString(value: string, customEnv?: Record<string, string>): string;
|
|
20
20
|
/**
|
|
21
21
|
* Recursively resolves environment variables in an object of any type.
|
|
22
22
|
* Handles strings, arrays, nested objects, and preserves other primitive types.
|
|
@@ -36,4 +36,4 @@ export declare function resolveEnvVarsInString(value: string): string;
|
|
|
36
36
|
* };
|
|
37
37
|
* const resolved = resolveEnvVarsInObject(config);
|
|
38
38
|
*/
|
|
39
|
-
export declare function resolveEnvVarsInObject<T>(obj: T): T;
|
|
39
|
+
export declare function resolveEnvVarsInObject<T>(obj: T, customEnv?: Record<string, string>): T;
|
|
@@ -16,10 +16,13 @@
|
|
|
16
16
|
* resolveEnvVarsInString("URL: ${BASE_URL}/api") // Returns "URL: https://api.example.com/api"
|
|
17
17
|
* resolveEnvVarsInString("Missing: $UNDEFINED_VAR") // Returns "Missing: $UNDEFINED_VAR"
|
|
18
18
|
*/
|
|
19
|
-
export function resolveEnvVarsInString(value) {
|
|
19
|
+
export function resolveEnvVarsInString(value, customEnv) {
|
|
20
20
|
const envVarRegex = /\$(?:(\w+)|{([^}]+)})/g; // Find $VAR_NAME or ${VAR_NAME}
|
|
21
21
|
return value.replace(envVarRegex, (match, varName1, varName2) => {
|
|
22
22
|
const varName = varName1 || varName2;
|
|
23
|
+
if (customEnv && typeof customEnv[varName] === 'string') {
|
|
24
|
+
return customEnv[varName];
|
|
25
|
+
}
|
|
23
26
|
if (process && process.env && typeof process.env[varName] === 'string') {
|
|
24
27
|
return process.env[varName];
|
|
25
28
|
}
|
|
@@ -45,8 +48,8 @@ export function resolveEnvVarsInString(value) {
|
|
|
45
48
|
* };
|
|
46
49
|
* const resolved = resolveEnvVarsInObject(config);
|
|
47
50
|
*/
|
|
48
|
-
export function resolveEnvVarsInObject(obj) {
|
|
49
|
-
return resolveEnvVarsInObjectInternal(obj, new WeakSet());
|
|
51
|
+
export function resolveEnvVarsInObject(obj, customEnv) {
|
|
52
|
+
return resolveEnvVarsInObjectInternal(obj, new WeakSet(), customEnv);
|
|
50
53
|
}
|
|
51
54
|
/**
|
|
52
55
|
* Internal implementation of resolveEnvVarsInObject with circular reference protection.
|
|
@@ -55,7 +58,7 @@ export function resolveEnvVarsInObject(obj) {
|
|
|
55
58
|
* @param visited - WeakSet to track visited objects and prevent circular references
|
|
56
59
|
* @returns A new object with environment variables resolved
|
|
57
60
|
*/
|
|
58
|
-
function resolveEnvVarsInObjectInternal(obj, visited) {
|
|
61
|
+
function resolveEnvVarsInObjectInternal(obj, visited, customEnv) {
|
|
59
62
|
if (obj === null ||
|
|
60
63
|
obj === undefined ||
|
|
61
64
|
typeof obj === 'boolean' ||
|
|
@@ -63,7 +66,7 @@ function resolveEnvVarsInObjectInternal(obj, visited) {
|
|
|
63
66
|
return obj;
|
|
64
67
|
}
|
|
65
68
|
if (typeof obj === 'string') {
|
|
66
|
-
return resolveEnvVarsInString(obj);
|
|
69
|
+
return resolveEnvVarsInString(obj, customEnv);
|
|
67
70
|
}
|
|
68
71
|
if (Array.isArray(obj)) {
|
|
69
72
|
// Check for circular reference
|
|
@@ -72,7 +75,7 @@ function resolveEnvVarsInObjectInternal(obj, visited) {
|
|
|
72
75
|
return [...obj];
|
|
73
76
|
}
|
|
74
77
|
visited.add(obj);
|
|
75
|
-
const result = obj.map((item) => resolveEnvVarsInObjectInternal(item, visited));
|
|
78
|
+
const result = obj.map((item) => resolveEnvVarsInObjectInternal(item, visited, customEnv));
|
|
76
79
|
visited.delete(obj);
|
|
77
80
|
return result;
|
|
78
81
|
}
|
|
@@ -86,7 +89,7 @@ function resolveEnvVarsInObjectInternal(obj, visited) {
|
|
|
86
89
|
const newObj = { ...obj };
|
|
87
90
|
for (const key in newObj) {
|
|
88
91
|
if (Object.prototype.hasOwnProperty.call(newObj, key)) {
|
|
89
|
-
newObj[key] = resolveEnvVarsInObjectInternal(newObj[key], visited);
|
|
92
|
+
newObj[key] = resolveEnvVarsInObjectInternal(newObj[key], visited, customEnv);
|
|
90
93
|
}
|
|
91
94
|
}
|
|
92
95
|
visited.delete(obj);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envVarResolver.js","sourceRoot":"","sources":["../../../src/utils/envVarResolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,
|
|
1
|
+
{"version":3,"file":"envVarResolver.js","sourceRoot":"","sources":["../../../src/utils/envVarResolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,SAAkC;IAElC,MAAM,WAAW,GAAG,wBAAwB,CAAC,CAAC,gCAAgC;IAC9E,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAC9D,MAAM,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC;QACrC,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxD,OAAO,SAAS,CAAC,OAAO,CAAE,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAM,EACN,SAAkC;IAElC,OAAO,8BAA8B,CAAC,GAAG,EAAE,IAAI,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,8BAA8B,CACrC,GAAM,EACN,OAAwB,EACxB,SAAkC;IAElC,IACE,GAAG,KAAK,IAAI;QACZ,GAAG,KAAK,SAAS;QACjB,OAAO,GAAG,KAAK,SAAS;QACxB,OAAO,GAAG,KAAK,QAAQ,EACvB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,sBAAsB,CAAC,GAAG,EAAE,SAAS,CAAiB,CAAC;IAChE,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,+BAA+B;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,2CAA2C;YAC3C,OAAO,CAAC,GAAG,GAAG,CAAiB,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CACzC,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,+BAA+B;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAa,CAAC,EAAE,CAAC;YAC/B,2CAA2C;YAC3C,OAAO,EAAE,GAAG,GAAG,EAAO,CAAC;QACzB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAa,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAO,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;gBACtD,MAAM,CAAC,GAAG,CAAC,GAAG,8BAA8B,CAC1C,MAAM,CAAC,GAAG,CAAC,EACX,OAAO,EACP,SAAS,CACV,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,GAAa,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -3,11 +3,20 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import type { ExtensionEvents, McpClient } from '@google/gemini-cli-core';
|
|
6
7
|
import { EventEmitter } from 'node:events';
|
|
7
8
|
export declare enum AppEvent {
|
|
8
9
|
OpenDebugConsole = "open-debug-console",
|
|
9
10
|
LogError = "log-error",
|
|
10
11
|
OauthDisplayMessage = "oauth-display-message",
|
|
11
|
-
Flicker = "flicker"
|
|
12
|
+
Flicker = "flicker",
|
|
13
|
+
McpClientUpdate = "mcp-client-update"
|
|
12
14
|
}
|
|
13
|
-
export
|
|
15
|
+
export interface AppEvents extends ExtensionEvents {
|
|
16
|
+
[AppEvent.OpenDebugConsole]: never[];
|
|
17
|
+
[AppEvent.LogError]: string[];
|
|
18
|
+
[AppEvent.OauthDisplayMessage]: string[];
|
|
19
|
+
[AppEvent.Flicker]: never[];
|
|
20
|
+
[AppEvent.McpClientUpdate]: Array<Map<string, McpClient> | never>;
|
|
21
|
+
}
|
|
22
|
+
export declare const appEvents: EventEmitter<AppEvents>;
|
package/dist/src/utils/events.js
CHANGED
|
@@ -10,6 +10,7 @@ export var AppEvent;
|
|
|
10
10
|
AppEvent["LogError"] = "log-error";
|
|
11
11
|
AppEvent["OauthDisplayMessage"] = "oauth-display-message";
|
|
12
12
|
AppEvent["Flicker"] = "flicker";
|
|
13
|
+
AppEvent["McpClientUpdate"] = "mcp-client-update";
|
|
13
14
|
})(AppEvent || (AppEvent = {}));
|
|
14
15
|
export const appEvents = new EventEmitter();
|
|
15
16
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/utils/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/utils/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,mDAAuC,CAAA;IACvC,kCAAsB,CAAA;IACtB,yDAA6C,CAAA;IAC7C,+BAAmB,CAAA;IACnB,iDAAqC,CAAA;AACvC,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAUD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,YAAY,EAAa,CAAC"}
|
|
@@ -11,6 +11,12 @@ export function handleAutoUpdate(info, settings, projectRoot, spawnFn = spawnWra
|
|
|
11
11
|
if (!info) {
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
|
+
if (settings.merged.tools?.sandbox || process.env['GEMINI_SANDBOX']) {
|
|
15
|
+
updateEventEmitter.emit('update-info', {
|
|
16
|
+
message: `${info.message}\nAutomatic update is not available in sandbox mode.`,
|
|
17
|
+
});
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
14
20
|
if (settings.merged.general?.disableUpdateNag) {
|
|
15
21
|
return;
|
|
16
22
|
}
|
|
@@ -62,7 +68,7 @@ export function handleAutoUpdate(info, settings, projectRoot, spawnFn = spawnWra
|
|
|
62
68
|
}
|
|
63
69
|
export function setUpdateHandler(addItem, setUpdateInfo) {
|
|
64
70
|
let successfullyInstalled = false;
|
|
65
|
-
const
|
|
71
|
+
const handleUpdateReceived = (info) => {
|
|
66
72
|
setUpdateInfo(info);
|
|
67
73
|
const savedMessage = info.message;
|
|
68
74
|
setTimeout(() => {
|
|
@@ -96,12 +102,12 @@ export function setUpdateHandler(addItem, setUpdateInfo) {
|
|
|
96
102
|
text: data.message,
|
|
97
103
|
}, Date.now());
|
|
98
104
|
};
|
|
99
|
-
updateEventEmitter.on('update-received',
|
|
105
|
+
updateEventEmitter.on('update-received', handleUpdateReceived);
|
|
100
106
|
updateEventEmitter.on('update-failed', handleUpdateFailed);
|
|
101
107
|
updateEventEmitter.on('update-success', handleUpdateSuccess);
|
|
102
108
|
updateEventEmitter.on('update-info', handleUpdateInfo);
|
|
103
109
|
return () => {
|
|
104
|
-
updateEventEmitter.off('update-received',
|
|
110
|
+
updateEventEmitter.off('update-received', handleUpdateReceived);
|
|
105
111
|
updateEventEmitter.off('update-failed', handleUpdateFailed);
|
|
106
112
|
updateEventEmitter.off('update-success', handleUpdateSuccess);
|
|
107
113
|
updateEventEmitter.off('update-info', handleUpdateInfo);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleAutoUpdate.js","sourceRoot":"","sources":["../../../src/utils/handleAutoUpdate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handleAutoUpdate.js","sourceRoot":"","sources":["../../../src/utils/handleAutoUpdate.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
12
12
|
import { quote, parse } from 'shell-quote';
|
|
13
13
|
import { USER_SETTINGS_DIR } from '../config/settings.js';
|
|
14
14
|
import { promisify } from 'node:util';
|
|
15
|
-
import { debugLogger, FatalSandboxError, CELL_DIR, } from '@google/gemini-cli-core';
|
|
15
|
+
import { coreEvents, debugLogger, FatalSandboxError, CELL_DIR, } from '@google/gemini-cli-core';
|
|
16
16
|
import { ConsolePatcher } from '../ui/utils/ConsolePatcher.js';
|
|
17
17
|
import { randomBytes } from 'node:crypto';
|
|
18
18
|
const execAsync = promisify(exec);
|
|
@@ -73,8 +73,7 @@ async function shouldUseCurrentUserInSandbox() {
|
|
|
73
73
|
osReleaseContent.match(/^ID_LIKE=.*debian.*/m) || // Covers derivatives
|
|
74
74
|
osReleaseContent.match(/^ID_LIKE=.*ubuntu.*/m) // Covers derivatives
|
|
75
75
|
) {
|
|
76
|
-
|
|
77
|
-
console.error('INFO: Defaulting to use current user UID/GID for Debian/Ubuntu-based Linux.');
|
|
76
|
+
debugLogger.log('Defaulting to use current user UID/GID for Debian/Ubuntu-based Linux.');
|
|
78
77
|
return true;
|
|
79
78
|
}
|
|
80
79
|
}
|
|
@@ -167,8 +166,7 @@ export async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs =
|
|
|
167
166
|
if (!fs.existsSync(profileFile)) {
|
|
168
167
|
throw new FatalSandboxError(`Missing macos seatbelt profile file '${profileFile}'`);
|
|
169
168
|
}
|
|
170
|
-
|
|
171
|
-
console.error(`using macos seatbelt (profile: ${profile}) ...`);
|
|
169
|
+
debugLogger.log(`using macos seatbelt (profile: ${profile}) ...`);
|
|
172
170
|
// if DEBUG is set, convert to --inspect-brk in NODE_OPTIONS
|
|
173
171
|
const nodeOptions = [
|
|
174
172
|
...(process.env['DEBUG'] ? ['--inspect-brk'] : []),
|
|
@@ -253,7 +251,7 @@ export async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs =
|
|
|
253
251
|
// console.info(data.toString());
|
|
254
252
|
// });
|
|
255
253
|
proxyProcess.stderr?.on('data', (data) => {
|
|
256
|
-
|
|
254
|
+
debugLogger.debug(`[PROXY STDERR]: ${data.toString().trim()}`);
|
|
257
255
|
});
|
|
258
256
|
proxyProcess.on('close', (code, signal) => {
|
|
259
257
|
if (sandboxProcess?.pid) {
|
|
@@ -277,7 +275,7 @@ export async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs =
|
|
|
277
275
|
});
|
|
278
276
|
});
|
|
279
277
|
}
|
|
280
|
-
|
|
278
|
+
debugLogger.log(`hopping into sandbox (command: ${config.command}) ...`);
|
|
281
279
|
// determine full path for gemini-cli to distinguish linked vs installed setting
|
|
282
280
|
const gcPath = fs.realpathSync(process.argv[1]);
|
|
283
281
|
const projectSandboxDockerfile = path.join(CELL_DIR, 'sandbox.Dockerfile');
|
|
@@ -294,13 +292,13 @@ export async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs =
|
|
|
294
292
|
'run `npm link ./packages/cli` under gemini-cli repo to switch to linked binary.');
|
|
295
293
|
}
|
|
296
294
|
else {
|
|
297
|
-
|
|
295
|
+
debugLogger.log('building sandbox ...');
|
|
298
296
|
const gcRoot = gcPath.split('/packages/')[0];
|
|
299
297
|
// if project folder has sandbox.Dockerfile under project settings folder, use that
|
|
300
298
|
let buildArgs = '';
|
|
301
299
|
const projectSandboxDockerfile = path.join(CELL_DIR, 'sandbox.Dockerfile');
|
|
302
300
|
if (isCustomProjectSandbox) {
|
|
303
|
-
|
|
301
|
+
debugLogger.log(`using ${projectSandboxDockerfile} for sandbox`);
|
|
304
302
|
buildArgs += `-f ${path.resolve(projectSandboxDockerfile)} -i ${image}`;
|
|
305
303
|
}
|
|
306
304
|
execSync(`cd ${gcRoot} && node scripts/build_sandbox.js -s ${buildArgs}`, {
|
|
@@ -378,7 +376,7 @@ export async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs =
|
|
|
378
376
|
if (!fs.existsSync(from)) {
|
|
379
377
|
throw new FatalSandboxError(`Missing mount path '${from}' listed in SANDBOX_MOUNTS`);
|
|
380
378
|
}
|
|
381
|
-
|
|
379
|
+
debugLogger.log(`SANDBOX_MOUNTS: ${from} -> ${to} (${opts})`);
|
|
382
380
|
args.push('--volume', mount);
|
|
383
381
|
}
|
|
384
382
|
}
|
|
@@ -511,7 +509,7 @@ export async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs =
|
|
|
511
509
|
for (let env of process.env['SANDBOX_ENV'].split(',')) {
|
|
512
510
|
if ((env = env.trim())) {
|
|
513
511
|
if (env.includes('=')) {
|
|
514
|
-
|
|
512
|
+
debugLogger.log(`SANDBOX_ENV: ${env}`);
|
|
515
513
|
args.push('--env', env);
|
|
516
514
|
}
|
|
517
515
|
else {
|
|
@@ -603,7 +601,7 @@ export async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs =
|
|
|
603
601
|
// console.info(data.toString());
|
|
604
602
|
// });
|
|
605
603
|
proxyProcess.stderr?.on('data', (data) => {
|
|
606
|
-
|
|
604
|
+
debugLogger.debug(`[PROXY STDERR]: ${data.toString().trim()}`);
|
|
607
605
|
});
|
|
608
606
|
proxyProcess.on('close', (code, signal) => {
|
|
609
607
|
if (sandboxProcess?.pid) {
|
|
@@ -624,7 +622,7 @@ export async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs =
|
|
|
624
622
|
});
|
|
625
623
|
return new Promise((resolve, reject) => {
|
|
626
624
|
sandboxProcess.on('error', (err) => {
|
|
627
|
-
|
|
625
|
+
coreEvents.emitFeedback('error', 'Sandbox process error', err);
|
|
628
626
|
reject(err);
|
|
629
627
|
});
|
|
630
628
|
sandboxProcess?.on('close', (code, signal) => {
|
|
@@ -722,12 +720,12 @@ async function pullImage(sandbox, image) {
|
|
|
722
720
|
});
|
|
723
721
|
}
|
|
724
722
|
async function ensureSandboxImageIsPresent(sandbox, image) {
|
|
725
|
-
|
|
723
|
+
debugLogger.log(`Checking for sandbox image: ${image}`);
|
|
726
724
|
if (await imageExists(sandbox, image)) {
|
|
727
|
-
|
|
725
|
+
debugLogger.log(`Sandbox image ${image} found locally.`);
|
|
728
726
|
return true;
|
|
729
727
|
}
|
|
730
|
-
|
|
728
|
+
debugLogger.log(`Sandbox image ${image} not found locally.`);
|
|
731
729
|
if (image === LOCAL_DEV_SANDBOX_IMAGE_NAME) {
|
|
732
730
|
// user needs to build the image themselves
|
|
733
731
|
return false;
|
|
@@ -735,7 +733,7 @@ async function ensureSandboxImageIsPresent(sandbox, image) {
|
|
|
735
733
|
if (await pullImage(sandbox, image)) {
|
|
736
734
|
// After attempting to pull, check again to be certain
|
|
737
735
|
if (await imageExists(sandbox, image)) {
|
|
738
|
-
|
|
736
|
+
debugLogger.log(`Sandbox image ${image} is now available after pulling.`);
|
|
739
737
|
return true;
|
|
740
738
|
}
|
|
741
739
|
else {
|
|
@@ -743,7 +741,7 @@ async function ensureSandboxImageIsPresent(sandbox, image) {
|
|
|
743
741
|
return false;
|
|
744
742
|
}
|
|
745
743
|
}
|
|
746
|
-
|
|
744
|
+
coreEvents.emitFeedback('error', `Failed to obtain sandbox image ${image} after check and pull attempt.`);
|
|
747
745
|
return false; // Pull command failed or image still not present
|
|
748
746
|
}
|
|
749
747
|
//# sourceMappingURL=sandbox.js.map
|