@google/gemini-cli 0.10.0-preview.1 → 0.11.0-nightly.20251020.a96f0659
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 +9 -0
- package/dist/google-gemini-cli-0.11.0-nightly.20251015.203bad7c.tgz +0 -0
- package/dist/package.json +2 -2
- package/dist/src/commands/extensions/examples/mcp-server/example.d.ts +6 -0
- package/dist/src/commands/extensions/examples/mcp-server/example.js +46 -0
- package/dist/src/commands/extensions/examples/mcp-server/example.js.map +1 -0
- package/dist/src/commands/extensions/install.d.ts +1 -0
- package/dist/src/commands/extensions/install.js +15 -2
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/list.js +3 -2
- package/dist/src/commands/extensions/list.js.map +1 -1
- package/dist/src/commands/extensions/update.js +2 -2
- package/dist/src/commands/extensions/update.js.map +1 -1
- package/dist/src/commands/mcp/add.test.d.ts +6 -0
- package/dist/src/commands/mcp/add.test.js +234 -0
- package/dist/src/commands/mcp/add.test.js.map +1 -0
- package/dist/src/commands/mcp/list.js +5 -3
- package/dist/src/commands/mcp/list.js.map +1 -1
- package/dist/src/commands/mcp/list.test.d.ts +6 -0
- package/dist/src/commands/mcp/list.test.js +117 -0
- package/dist/src/commands/mcp/list.test.js.map +1 -0
- package/dist/src/commands/mcp/remove.test.d.ts +6 -0
- package/dist/src/commands/mcp/remove.test.js +175 -0
- package/dist/src/commands/mcp/remove.test.js.map +1 -0
- package/dist/src/commands/mcp.test.d.ts +6 -0
- package/dist/src/commands/mcp.test.js +62 -0
- package/dist/src/commands/mcp.test.js.map +1 -0
- package/dist/src/config/auth.js +3 -1
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/auth.test.js +3 -1
- package/dist/src/config/auth.test.js.map +1 -1
- package/dist/src/config/config.d.ts +0 -11
- package/dist/src/config/config.integration.test.d.ts +6 -0
- package/dist/src/config/config.integration.test.js +351 -0
- package/dist/src/config/config.integration.test.js.map +1 -0
- package/dist/src/config/config.js +19 -74
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.d.ts +6 -0
- package/dist/src/config/config.test.js +2001 -0
- package/dist/src/config/config.test.js.map +1 -0
- package/dist/src/config/extension.d.ts +1 -4
- package/dist/src/config/extension.js +64 -69
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/extension.test.d.ts +6 -0
- package/dist/src/config/extension.test.js +1176 -0
- package/dist/src/config/extension.test.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 +21 -18
- package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
- package/dist/src/config/extensions/github.d.ts +15 -7
- package/dist/src/config/extensions/github.js +95 -21
- package/dist/src/config/extensions/github.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +14 -12
- package/dist/src/config/extensions/github.test.js.map +1 -1
- package/dist/src/config/extensions/update.test.js +9 -9
- package/dist/src/config/extensions/update.test.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +2 -1
- package/dist/src/config/keyBindings.js +4 -2
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/policy.js +13 -14
- package/dist/src/config/policy.js.map +1 -1
- package/dist/src/config/policy.test.js +3 -3
- package/dist/src/config/policy.test.js.map +1 -1
- package/dist/src/config/sandboxConfig.d.ts +0 -1
- package/dist/src/config/sandboxConfig.js +1 -3
- package/dist/src/config/sandboxConfig.js.map +1 -1
- package/dist/src/config/settings.test.d.ts +6 -0
- package/dist/src/config/settings.test.js +1937 -0
- package/dist/src/config/settings.test.js.map +1 -0
- package/dist/src/gemini.js +12 -10
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +34 -11
- 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/generated/git-commit.js.map +1 -1
- package/dist/src/nonInteractiveCli.js +91 -3
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.d.ts +6 -0
- package/dist/src/nonInteractiveCli.test.js +711 -0
- package/dist/src/nonInteractiveCli.test.js.map +1 -0
- package/dist/src/services/FileCommandLoader.test.d.ts +6 -0
- package/dist/src/services/FileCommandLoader.test.js +971 -0
- package/dist/src/services/FileCommandLoader.test.js.map +1 -0
- package/dist/src/services/prompt-processors/argumentProcessor.test.d.ts +6 -0
- package/dist/src/services/prompt-processors/argumentProcessor.test.js +40 -0
- package/dist/src/services/prompt-processors/argumentProcessor.test.js.map +1 -0
- package/dist/src/services/prompt-processors/shellProcessor.test.d.ts +6 -0
- package/dist/src/services/prompt-processors/shellProcessor.test.js +482 -0
- package/dist/src/services/prompt-processors/shellProcessor.test.js.map +1 -0
- package/dist/src/test-utils/render.d.ts +2 -1
- package/dist/src/test-utils/render.js +5 -2
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/App.test.d.ts +6 -0
- package/dist/src/ui/App.test.js +110 -0
- package/dist/src/ui/App.test.js.map +1 -0
- package/dist/src/ui/AppContainer.js +39 -26
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +35 -9
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.d.ts +1 -1
- package/dist/src/ui/auth/AuthDialog.js +3 -1
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/useAuth.d.ts +1 -1
- package/dist/src/ui/auth/useAuth.js +3 -1
- package/dist/src/ui/auth/useAuth.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +1 -1
- package/dist/src/ui/commands/aboutCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/aboutCommand.test.js +130 -0
- package/dist/src/ui/commands/aboutCommand.test.js.map +1 -0
- package/dist/src/ui/commands/authCommand.js +1 -1
- package/dist/src/ui/commands/authCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/authCommand.test.js +30 -0
- package/dist/src/ui/commands/authCommand.test.js.map +1 -0
- package/dist/src/ui/commands/bugCommand.js +1 -1
- package/dist/src/ui/commands/bugCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/bugCommand.test.js +105 -0
- package/dist/src/ui/commands/bugCommand.test.js.map +1 -0
- package/dist/src/ui/commands/chatCommand.js +1 -1
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/chatCommand.test.js +555 -0
- package/dist/src/ui/commands/chatCommand.test.js.map +1 -0
- package/dist/src/ui/commands/clearCommand.js +1 -1
- package/dist/src/ui/commands/clearCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/clearCommand.test.js +76 -0
- package/dist/src/ui/commands/clearCommand.test.js.map +1 -0
- package/dist/src/ui/commands/compressCommand.js +1 -1
- package/dist/src/ui/commands/compressCommand.js.map +1 -1
- package/dist/src/ui/commands/compressCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/compressCommand.test.js +98 -0
- package/dist/src/ui/commands/compressCommand.test.js.map +1 -0
- package/dist/src/ui/commands/copyCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/copyCommand.test.js +242 -0
- package/dist/src/ui/commands/copyCommand.test.js.map +1 -0
- package/dist/src/ui/commands/corgiCommand.js +1 -1
- package/dist/src/ui/commands/corgiCommand.js.map +1 -1
- package/dist/src/ui/commands/corgiCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/corgiCommand.test.js +28 -0
- package/dist/src/ui/commands/corgiCommand.test.js.map +1 -0
- package/dist/src/ui/commands/directoryCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/directoryCommand.test.js +145 -0
- package/dist/src/ui/commands/directoryCommand.test.js.map +1 -0
- package/dist/src/ui/commands/docsCommand.js +1 -1
- package/dist/src/ui/commands/docsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/docsCommand.test.js +72 -0
- package/dist/src/ui/commands/docsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/editorCommand.js +1 -1
- package/dist/src/ui/commands/editorCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/editorCommand.test.js +27 -0
- package/dist/src/ui/commands/editorCommand.test.js.map +1 -0
- package/dist/src/ui/commands/extensionsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/extensionsCommand.test.js +241 -0
- package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/helpCommand.js +1 -1
- package/dist/src/ui/commands/helpCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/helpCommand.test.js +42 -0
- package/dist/src/ui/commands/helpCommand.test.js.map +1 -0
- package/dist/src/ui/commands/ideCommand.js +6 -6
- package/dist/src/ui/commands/ideCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/ideCommand.test.js +203 -0
- package/dist/src/ui/commands/ideCommand.test.js.map +1 -0
- package/dist/src/ui/commands/initCommand.js +1 -1
- package/dist/src/ui/commands/initCommand.js.map +1 -1
- package/dist/src/ui/commands/initCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/initCommand.test.js +80 -0
- package/dist/src/ui/commands/initCommand.test.js.map +1 -0
- package/dist/src/ui/commands/mcpCommand.js +98 -88
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/mcpCommand.test.js +148 -0
- package/dist/src/ui/commands/mcpCommand.test.js.map +1 -0
- package/dist/src/ui/commands/memoryCommand.js +5 -5
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/memoryCommand.test.js +266 -0
- package/dist/src/ui/commands/memoryCommand.test.js.map +1 -0
- package/dist/src/ui/commands/privacyCommand.js +1 -1
- package/dist/src/ui/commands/privacyCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/privacyCommand.test.js +32 -0
- package/dist/src/ui/commands/privacyCommand.test.js.map +1 -0
- package/dist/src/ui/commands/quitCommand.js +1 -1
- package/dist/src/ui/commands/quitCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/quitCommand.test.js +50 -0
- package/dist/src/ui/commands/quitCommand.test.js.map +1 -0
- package/dist/src/ui/commands/restoreCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/restoreCommand.test.js +190 -0
- package/dist/src/ui/commands/restoreCommand.test.js.map +1 -0
- package/dist/src/ui/commands/settingsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/settingsCommand.test.js +30 -0
- package/dist/src/ui/commands/settingsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/setupGithubCommand.test.js +1 -2
- package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
- package/dist/src/ui/commands/statsCommand.js +3 -3
- package/dist/src/ui/commands/statsCommand.js.map +1 -1
- package/dist/src/ui/commands/statsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/statsCommand.test.js +53 -0
- package/dist/src/ui/commands/statsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/terminalSetupCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/terminalSetupCommand.test.js +66 -0
- package/dist/src/ui/commands/terminalSetupCommand.test.js.map +1 -0
- package/dist/src/ui/commands/themeCommand.js +1 -1
- package/dist/src/ui/commands/themeCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/themeCommand.test.js +32 -0
- package/dist/src/ui/commands/themeCommand.test.js.map +1 -0
- package/dist/src/ui/commands/toolsCommand.js +1 -1
- package/dist/src/ui/commands/toolsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/toolsCommand.test.js +100 -0
- package/dist/src/ui/commands/toolsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/vimCommand.js +1 -1
- package/dist/src/ui/components/Composer.js +5 -3
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +16 -1
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.d.ts +0 -1
- package/dist/src/ui/components/ContextSummaryDisplay.js +2 -12
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/ContextSummaryDisplay.test.js +66 -0
- package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -0
- package/dist/src/ui/components/DialogManager.js +1 -5
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +7 -3
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.js +1 -1
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Footer.test.d.ts +6 -0
- package/dist/src/ui/components/Footer.test.js +231 -0
- package/dist/src/ui/components/Footer.test.js.map +1 -0
- package/dist/src/ui/components/InputPrompt.d.ts +4 -0
- package/dist/src/ui/components/InputPrompt.js +53 -4
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.d.ts +6 -0
- package/dist/src/ui/components/InputPrompt.test.js +1716 -0
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -0
- package/dist/src/ui/components/ModelStatsDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/ModelStatsDisplay.test.js +285 -0
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -0
- package/dist/src/ui/components/PermissionsModifyTrustDialog.js +22 -18
- package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +10 -2
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/QueuedMessageDisplay.js +3 -3
- package/dist/src/ui/components/QueuedMessageDisplay.js.map +1 -1
- package/dist/src/ui/components/QueuedMessageDisplay.test.js +4 -0
- package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/RawMarkdownIndicator.d.ts +7 -0
- package/dist/src/ui/components/RawMarkdownIndicator.js +8 -0
- package/dist/src/ui/components/RawMarkdownIndicator.js.map +1 -0
- package/dist/src/ui/components/SessionSummaryDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/SessionSummaryDisplay.test.js +74 -0
- package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -0
- package/dist/src/ui/components/SettingsDialog.js +8 -8
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +188 -56
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/StatsDisplay.test.js +351 -0
- package/dist/src/ui/components/StatsDisplay.test.js.map +1 -0
- package/dist/src/ui/components/ThemeDialog.d.ts +4 -2
- package/dist/src/ui/components/ThemeDialog.js +3 -3
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +13 -0
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/ToolStatsDisplay.test.js +227 -0
- package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -0
- package/dist/src/ui/components/messages/GeminiMessage.js +3 -1
- package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.test.d.ts +6 -0
- package/dist/src/ui/components/messages/GeminiMessage.test.js +35 -0
- package/dist/src/ui/components/messages/GeminiMessage.test.js.map +1 -0
- package/dist/src/ui/components/messages/GeminiMessageContent.js +3 -1
- package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.d.ts +7 -0
- package/dist/src/ui/components/messages/Todo.js +59 -0
- package/dist/src/ui/components/messages/Todo.js.map +1 -0
- package/dist/src/ui/components/messages/Todo.test.d.ts +6 -0
- package/dist/src/ui/components/messages/Todo.test.js +113 -0
- package/dist/src/ui/components/messages/Todo.test.js.map +1 -0
- package/dist/src/ui/components/messages/ToolGroupMessage.js +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.js +8 -3
- package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +2 -2
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.d.ts +6 -0
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +30 -0
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +1 -0
- package/dist/src/ui/components/messages/UserShellMessage.js +1 -1
- package/dist/src/ui/components/messages/UserShellMessage.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/text-buffer.test.d.ts +6 -0
- package/dist/src/ui/components/shared/text-buffer.test.js +1554 -0
- package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.test.d.ts +6 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.test.js +951 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.test.js.map +1 -0
- package/dist/src/ui/components/views/McpStatus.d.ts +0 -1
- package/dist/src/ui/components/views/McpStatus.js +2 -2
- package/dist/src/ui/components/views/McpStatus.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.test.js +0 -5
- package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
- package/dist/src/ui/components/views/ToolsList.test.js +4 -4
- package/dist/src/ui/components/views/ToolsList.test.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.d.ts +1 -0
- package/dist/src/ui/contexts/KeypressContext.js +176 -50
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +413 -14
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/SessionContext.test.d.ts +6 -0
- package/dist/src/ui/contexts/SessionContext.test.js +177 -0
- package/dist/src/ui/contexts/SessionContext.test.js.map +1 -0
- package/dist/src/ui/contexts/UIActionsContext.d.ts +5 -4
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +3 -3
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.d.ts +6 -0
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +779 -0
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -0
- package/dist/src/ui/hooks/useAtCompletion.js +2 -2
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.test.d.ts +6 -0
- package/dist/src/ui/hooks/useAtCompletion.test.js +385 -0
- package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -0
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +0 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.js +5 -3
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.d.ts +6 -0
- package/dist/src/ui/hooks/useCommandCompletion.test.js +375 -0
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -0
- package/dist/src/ui/hooks/useConsoleMessages.test.d.ts +6 -0
- package/dist/src/ui/hooks/useConsoleMessages.test.js +110 -0
- package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -0
- package/dist/src/ui/hooks/useExtensionUpdates.test.js +3 -3
- package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
- package/dist/src/ui/hooks/useFocus.test.d.ts +6 -0
- package/dist/src/ui/hooks/useFocus.test.js +115 -0
- package/dist/src/ui/hooks/useFocus.test.js.map +1 -0
- package/dist/src/ui/hooks/useFolderTrust.test.d.ts +6 -0
- package/dist/src/ui/hooks/useFolderTrust.test.js +164 -0
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -0
- package/dist/src/ui/hooks/useGeminiStream.js +33 -31
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.d.ts +6 -0
- package/dist/src/ui/hooks/useGeminiStream.test.js +1936 -0
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -0
- package/dist/src/ui/hooks/useKeypress.test.d.ts +6 -0
- package/dist/src/ui/hooks/useKeypress.test.js +234 -0
- package/dist/src/ui/hooks/useKeypress.test.js.map +1 -0
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +5 -0
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useMessageQueue.d.ts +1 -0
- package/dist/src/ui/hooks/useMessageQueue.js +14 -0
- package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
- package/dist/src/ui/hooks/useMessageQueue.test.js +121 -0
- package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.d.ts +1 -0
- package/dist/src/ui/hooks/usePhraseCycler.js +156 -5
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.test.d.ts +6 -0
- package/dist/src/ui/hooks/usePhraseCycler.test.js +155 -0
- package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -0
- package/dist/src/ui/hooks/useThemeCommand.d.ts +2 -1
- package/dist/src/ui/hooks/useThemeCommand.js +6 -0
- package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +3 -0
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/vim.test.d.ts +6 -0
- package/dist/src/ui/hooks/vim.test.js +1389 -0
- package/dist/src/ui/hooks/vim.test.js.map +1 -0
- package/dist/src/ui/keyMatchers.test.js +9 -3
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/themes/theme.test.d.ts +6 -0
- package/dist/src/ui/themes/theme.test.js +85 -0
- package/dist/src/ui/themes/theme.test.js.map +1 -0
- package/dist/src/ui/types.d.ts +0 -1
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.d.ts +1 -1
- package/dist/src/ui/utils/CodeColorizer.js +4 -2
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.d.ts +1 -0
- package/dist/src/ui/utils/MarkdownDisplay.js +8 -1
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.js +18 -2
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +61 -6
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.d.ts +2 -1
- package/dist/src/ui/utils/updateCheck.js +4 -1
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.test.js +25 -10
- package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
- package/dist/src/utils/errors.d.ts +1 -0
- package/dist/src/utils/errors.js +66 -5
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.test.d.ts +6 -0
- package/dist/src/validateNonInterActiveAuth.test.js +336 -0
- package/dist/src/validateNonInterActiveAuth.test.js.map +1 -0
- package/dist/src/zed-integration/zedIntegration.js +1 -2
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/google-gemini-cli-0.10.0-preview.0.tgz +0 -0
- package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +0 -11
- package/dist/src/ui/components/WorkspaceMigrationDialog.js +0 -44
- package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +0 -1
- package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +0 -13
- package/dist/src/ui/hooks/useWorkspaceMigration.js +0 -59
- package/dist/src/ui/hooks/useWorkspaceMigration.js.map +0 -1
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
|
|
7
|
+
import * as fs from 'node:fs';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import { tmpdir } from 'node:os';
|
|
10
|
+
import { Config, DEFAULT_FILE_FILTERING_OPTIONS, } from '@google/gemini-cli-core';
|
|
11
|
+
import { http, HttpResponse } from 'msw';
|
|
12
|
+
import { setupServer } from 'msw/node';
|
|
13
|
+
export const server = setupServer();
|
|
14
|
+
// TODO(richieforeman): Consider moving this to test setup globally.
|
|
15
|
+
beforeAll(() => {
|
|
16
|
+
server.listen({});
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
server.resetHandlers();
|
|
20
|
+
});
|
|
21
|
+
afterAll(() => {
|
|
22
|
+
server.close();
|
|
23
|
+
});
|
|
24
|
+
const CLEARCUT_URL = 'https://play.googleapis.com/log';
|
|
25
|
+
// Mock file discovery service and tool registry
|
|
26
|
+
vi.mock('@google/gemini-cli-core', async () => {
|
|
27
|
+
const actual = await vi.importActual('@google/gemini-cli-core');
|
|
28
|
+
return {
|
|
29
|
+
...actual,
|
|
30
|
+
FileDiscoveryService: vi.fn().mockImplementation(() => ({
|
|
31
|
+
initialize: vi.fn(),
|
|
32
|
+
})),
|
|
33
|
+
createToolRegistry: vi.fn().mockResolvedValue({}),
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
describe('Configuration Integration Tests', () => {
|
|
37
|
+
let tempDir;
|
|
38
|
+
beforeEach(() => {
|
|
39
|
+
server.resetHandlers(http.post(CLEARCUT_URL, () => HttpResponse.text()));
|
|
40
|
+
tempDir = fs.mkdtempSync(path.join(tmpdir(), 'gemini-cli-test-'));
|
|
41
|
+
vi.stubEnv('GEMINI_API_KEY', 'test-api-key');
|
|
42
|
+
vi.clearAllMocks();
|
|
43
|
+
});
|
|
44
|
+
afterEach(() => {
|
|
45
|
+
vi.unstubAllEnvs();
|
|
46
|
+
if (fs.existsSync(tempDir)) {
|
|
47
|
+
fs.rmSync(tempDir, { recursive: true });
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
describe('File Filtering Configuration', () => {
|
|
51
|
+
it('should load default file filtering settings', async () => {
|
|
52
|
+
const configParams = {
|
|
53
|
+
sessionId: 'test-session',
|
|
54
|
+
cwd: '/tmp',
|
|
55
|
+
model: 'test-model',
|
|
56
|
+
embeddingModel: 'test-embedding-model',
|
|
57
|
+
sandbox: undefined,
|
|
58
|
+
targetDir: tempDir,
|
|
59
|
+
debugMode: false,
|
|
60
|
+
};
|
|
61
|
+
const config = new Config(configParams);
|
|
62
|
+
expect(config.getFileFilteringRespectGitIgnore()).toBe(DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore);
|
|
63
|
+
});
|
|
64
|
+
it('should load custom file filtering settings from configuration', async () => {
|
|
65
|
+
const configParams = {
|
|
66
|
+
sessionId: 'test-session',
|
|
67
|
+
cwd: '/tmp',
|
|
68
|
+
model: 'test-model',
|
|
69
|
+
embeddingModel: 'test-embedding-model',
|
|
70
|
+
sandbox: undefined,
|
|
71
|
+
targetDir: tempDir,
|
|
72
|
+
debugMode: false,
|
|
73
|
+
fileFiltering: {
|
|
74
|
+
respectGitIgnore: false,
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
const config = new Config(configParams);
|
|
78
|
+
expect(config.getFileFilteringRespectGitIgnore()).toBe(false);
|
|
79
|
+
});
|
|
80
|
+
it('should merge user and workspace file filtering settings', async () => {
|
|
81
|
+
const configParams = {
|
|
82
|
+
sessionId: 'test-session',
|
|
83
|
+
cwd: '/tmp',
|
|
84
|
+
model: 'test-model',
|
|
85
|
+
embeddingModel: 'test-embedding-model',
|
|
86
|
+
sandbox: undefined,
|
|
87
|
+
targetDir: tempDir,
|
|
88
|
+
debugMode: false,
|
|
89
|
+
fileFiltering: {
|
|
90
|
+
respectGitIgnore: true,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
const config = new Config(configParams);
|
|
94
|
+
expect(config.getFileFilteringRespectGitIgnore()).toBe(true);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('Configuration Integration', () => {
|
|
98
|
+
it('should handle partial configuration objects gracefully', async () => {
|
|
99
|
+
const configParams = {
|
|
100
|
+
sessionId: 'test-session',
|
|
101
|
+
cwd: '/tmp',
|
|
102
|
+
model: 'test-model',
|
|
103
|
+
embeddingModel: 'test-embedding-model',
|
|
104
|
+
sandbox: undefined,
|
|
105
|
+
targetDir: tempDir,
|
|
106
|
+
debugMode: false,
|
|
107
|
+
fileFiltering: {
|
|
108
|
+
respectGitIgnore: false,
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
const config = new Config(configParams);
|
|
112
|
+
// Specified settings should be applied
|
|
113
|
+
expect(config.getFileFilteringRespectGitIgnore()).toBe(false);
|
|
114
|
+
});
|
|
115
|
+
it('should handle empty configuration objects gracefully', async () => {
|
|
116
|
+
const configParams = {
|
|
117
|
+
sessionId: 'test-session',
|
|
118
|
+
cwd: '/tmp',
|
|
119
|
+
model: 'test-model',
|
|
120
|
+
embeddingModel: 'test-embedding-model',
|
|
121
|
+
sandbox: undefined,
|
|
122
|
+
targetDir: tempDir,
|
|
123
|
+
debugMode: false,
|
|
124
|
+
fileFiltering: {},
|
|
125
|
+
};
|
|
126
|
+
const config = new Config(configParams);
|
|
127
|
+
// All settings should use defaults
|
|
128
|
+
expect(config.getFileFilteringRespectGitIgnore()).toBe(DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore);
|
|
129
|
+
});
|
|
130
|
+
it('should handle missing configuration sections gracefully', async () => {
|
|
131
|
+
const configParams = {
|
|
132
|
+
sessionId: 'test-session',
|
|
133
|
+
cwd: '/tmp',
|
|
134
|
+
model: 'test-model',
|
|
135
|
+
embeddingModel: 'test-embedding-model',
|
|
136
|
+
sandbox: undefined,
|
|
137
|
+
targetDir: tempDir,
|
|
138
|
+
debugMode: false,
|
|
139
|
+
// Missing fileFiltering configuration
|
|
140
|
+
};
|
|
141
|
+
const config = new Config(configParams);
|
|
142
|
+
// All git-aware settings should use defaults
|
|
143
|
+
expect(config.getFileFilteringRespectGitIgnore()).toBe(DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
describe('Real-world Configuration Scenarios', () => {
|
|
147
|
+
it('should handle a security-focused configuration', async () => {
|
|
148
|
+
const configParams = {
|
|
149
|
+
sessionId: 'test-session',
|
|
150
|
+
cwd: '/tmp',
|
|
151
|
+
model: 'test-model',
|
|
152
|
+
embeddingModel: 'test-embedding-model',
|
|
153
|
+
sandbox: undefined,
|
|
154
|
+
targetDir: tempDir,
|
|
155
|
+
debugMode: false,
|
|
156
|
+
fileFiltering: {
|
|
157
|
+
respectGitIgnore: true,
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
const config = new Config(configParams);
|
|
161
|
+
expect(config.getFileFilteringRespectGitIgnore()).toBe(true);
|
|
162
|
+
});
|
|
163
|
+
it('should handle a CI/CD environment configuration', async () => {
|
|
164
|
+
const configParams = {
|
|
165
|
+
sessionId: 'test-session',
|
|
166
|
+
cwd: '/tmp',
|
|
167
|
+
model: 'test-model',
|
|
168
|
+
embeddingModel: 'test-embedding-model',
|
|
169
|
+
sandbox: undefined,
|
|
170
|
+
targetDir: tempDir,
|
|
171
|
+
debugMode: false,
|
|
172
|
+
fileFiltering: {
|
|
173
|
+
respectGitIgnore: false,
|
|
174
|
+
}, // CI might need to see all files
|
|
175
|
+
};
|
|
176
|
+
const config = new Config(configParams);
|
|
177
|
+
expect(config.getFileFilteringRespectGitIgnore()).toBe(false);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
describe('Checkpointing Configuration', () => {
|
|
181
|
+
it('should enable checkpointing when the setting is true', async () => {
|
|
182
|
+
const configParams = {
|
|
183
|
+
sessionId: 'test-session',
|
|
184
|
+
cwd: '/tmp',
|
|
185
|
+
model: 'test-model',
|
|
186
|
+
embeddingModel: 'test-embedding-model',
|
|
187
|
+
sandbox: undefined,
|
|
188
|
+
targetDir: tempDir,
|
|
189
|
+
debugMode: false,
|
|
190
|
+
checkpointing: true,
|
|
191
|
+
};
|
|
192
|
+
const config = new Config(configParams);
|
|
193
|
+
expect(config.getCheckpointingEnabled()).toBe(true);
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
describe('Extension Context Files', () => {
|
|
197
|
+
it('should have an empty array for extension context files by default', () => {
|
|
198
|
+
const configParams = {
|
|
199
|
+
sessionId: 'test-session',
|
|
200
|
+
cwd: '/tmp',
|
|
201
|
+
model: 'test-model',
|
|
202
|
+
embeddingModel: 'test-embedding-model',
|
|
203
|
+
sandbox: undefined,
|
|
204
|
+
targetDir: tempDir,
|
|
205
|
+
debugMode: false,
|
|
206
|
+
};
|
|
207
|
+
const config = new Config(configParams);
|
|
208
|
+
expect(config.getExtensionContextFilePaths()).toEqual([]);
|
|
209
|
+
});
|
|
210
|
+
it('should correctly store and return extension context file paths', () => {
|
|
211
|
+
const contextFiles = ['/path/to/file1.txt', '/path/to/file2.js'];
|
|
212
|
+
const configParams = {
|
|
213
|
+
sessionId: 'test-session',
|
|
214
|
+
cwd: '/tmp',
|
|
215
|
+
model: 'test-model',
|
|
216
|
+
embeddingModel: 'test-embedding-model',
|
|
217
|
+
sandbox: undefined,
|
|
218
|
+
targetDir: tempDir,
|
|
219
|
+
debugMode: false,
|
|
220
|
+
extensionContextFilePaths: contextFiles,
|
|
221
|
+
};
|
|
222
|
+
const config = new Config(configParams);
|
|
223
|
+
expect(config.getExtensionContextFilePaths()).toEqual(contextFiles);
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
describe('Approval Mode Integration Tests', () => {
|
|
227
|
+
let parseArguments;
|
|
228
|
+
beforeEach(async () => {
|
|
229
|
+
// Import the argument parsing function for integration testing
|
|
230
|
+
const { parseArguments: parseArgs } = await import('./config.js');
|
|
231
|
+
parseArguments = parseArgs;
|
|
232
|
+
});
|
|
233
|
+
it('should parse --approval-mode=auto_edit correctly through the full argument parsing flow', async () => {
|
|
234
|
+
const originalArgv = process.argv;
|
|
235
|
+
try {
|
|
236
|
+
process.argv = [
|
|
237
|
+
'node',
|
|
238
|
+
'script.js',
|
|
239
|
+
'--approval-mode',
|
|
240
|
+
'auto_edit',
|
|
241
|
+
'-p',
|
|
242
|
+
'test',
|
|
243
|
+
];
|
|
244
|
+
const argv = await parseArguments({});
|
|
245
|
+
// Verify that the argument was parsed correctly
|
|
246
|
+
expect(argv.approvalMode).toBe('auto_edit');
|
|
247
|
+
expect(argv.prompt).toBe('test');
|
|
248
|
+
expect(argv.yolo).toBe(false);
|
|
249
|
+
}
|
|
250
|
+
finally {
|
|
251
|
+
process.argv = originalArgv;
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
it('should parse --approval-mode=yolo correctly through the full argument parsing flow', async () => {
|
|
255
|
+
const originalArgv = process.argv;
|
|
256
|
+
try {
|
|
257
|
+
process.argv = [
|
|
258
|
+
'node',
|
|
259
|
+
'script.js',
|
|
260
|
+
'--approval-mode',
|
|
261
|
+
'yolo',
|
|
262
|
+
'-p',
|
|
263
|
+
'test',
|
|
264
|
+
];
|
|
265
|
+
const argv = await parseArguments({});
|
|
266
|
+
expect(argv.approvalMode).toBe('yolo');
|
|
267
|
+
expect(argv.prompt).toBe('test');
|
|
268
|
+
expect(argv.yolo).toBe(false); // Should NOT be set when using --approval-mode
|
|
269
|
+
}
|
|
270
|
+
finally {
|
|
271
|
+
process.argv = originalArgv;
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
it('should parse --approval-mode=default correctly through the full argument parsing flow', async () => {
|
|
275
|
+
const originalArgv = process.argv;
|
|
276
|
+
try {
|
|
277
|
+
process.argv = [
|
|
278
|
+
'node',
|
|
279
|
+
'script.js',
|
|
280
|
+
'--approval-mode',
|
|
281
|
+
'default',
|
|
282
|
+
'-p',
|
|
283
|
+
'test',
|
|
284
|
+
];
|
|
285
|
+
const argv = await parseArguments({});
|
|
286
|
+
expect(argv.approvalMode).toBe('default');
|
|
287
|
+
expect(argv.prompt).toBe('test');
|
|
288
|
+
expect(argv.yolo).toBe(false);
|
|
289
|
+
}
|
|
290
|
+
finally {
|
|
291
|
+
process.argv = originalArgv;
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
it('should parse legacy --yolo flag correctly', async () => {
|
|
295
|
+
const originalArgv = process.argv;
|
|
296
|
+
try {
|
|
297
|
+
process.argv = ['node', 'script.js', '--yolo', '-p', 'test'];
|
|
298
|
+
const argv = await parseArguments({});
|
|
299
|
+
expect(argv.yolo).toBe(true);
|
|
300
|
+
expect(argv.approvalMode).toBeUndefined(); // Should NOT be set when using --yolo
|
|
301
|
+
expect(argv.prompt).toBe('test');
|
|
302
|
+
}
|
|
303
|
+
finally {
|
|
304
|
+
process.argv = originalArgv;
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
it('should reject invalid approval mode values during argument parsing', async () => {
|
|
308
|
+
const originalArgv = process.argv;
|
|
309
|
+
try {
|
|
310
|
+
process.argv = ['node', 'script.js', '--approval-mode', 'invalid_mode'];
|
|
311
|
+
// Should throw during argument parsing due to yargs validation
|
|
312
|
+
await expect(parseArguments({})).rejects.toThrow();
|
|
313
|
+
}
|
|
314
|
+
finally {
|
|
315
|
+
process.argv = originalArgv;
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
it('should reject conflicting --yolo and --approval-mode flags', async () => {
|
|
319
|
+
const originalArgv = process.argv;
|
|
320
|
+
try {
|
|
321
|
+
process.argv = [
|
|
322
|
+
'node',
|
|
323
|
+
'script.js',
|
|
324
|
+
'--yolo',
|
|
325
|
+
'--approval-mode',
|
|
326
|
+
'default',
|
|
327
|
+
];
|
|
328
|
+
// Should throw during argument parsing due to conflict validation
|
|
329
|
+
await expect(parseArguments({})).rejects.toThrow();
|
|
330
|
+
}
|
|
331
|
+
finally {
|
|
332
|
+
process.argv = originalArgv;
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
it('should handle backward compatibility with mixed scenarios', async () => {
|
|
336
|
+
const originalArgv = process.argv;
|
|
337
|
+
try {
|
|
338
|
+
// Test that no approval mode arguments defaults to no flags set
|
|
339
|
+
process.argv = ['node', 'script.js', '-p', 'test'];
|
|
340
|
+
const argv = await parseArguments({});
|
|
341
|
+
expect(argv.approvalMode).toBeUndefined();
|
|
342
|
+
expect(argv.yolo).toBe(false);
|
|
343
|
+
expect(argv.prompt).toBe('test');
|
|
344
|
+
}
|
|
345
|
+
finally {
|
|
346
|
+
process.argv = originalArgv;
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
});
|
|
351
|
+
//# sourceMappingURL=config.integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.integration.test.js","sourceRoot":"","sources":["../../../src/config/config.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { hideBin } from 'yargs/helpers';
|
|
|
11
11
|
import process from 'node:process';
|
|
12
12
|
import { mcpCommand } from '../commands/mcp.js';
|
|
13
13
|
import { extensionsCommand } from '../commands/extensions.js';
|
|
14
|
-
import { Config, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, getCurrentGeminiMdFilename, ApprovalMode, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, FileDiscoveryService,
|
|
14
|
+
import { Config, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, getCurrentGeminiMdFilename, ApprovalMode, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, FileDiscoveryService, WRITE_FILE_TOOL_NAME, SHELL_TOOL_NAMES, SHELL_TOOL_NAME, resolveTelemetrySettings, FatalConfigError, getPty, EDIT_TOOL_NAME, } from '@google/gemini-cli-core';
|
|
15
15
|
import { annotateActiveExtensions } from './extension.js';
|
|
16
16
|
import { getCliVersion } from '../utils/version.js';
|
|
17
17
|
import { loadSandboxConfig } from './sandboxConfig.js';
|
|
@@ -34,49 +34,12 @@ export async function parseArguments(settings) {
|
|
|
34
34
|
.locale('en')
|
|
35
35
|
.scriptName('gemini')
|
|
36
36
|
.usage('Usage: gemini [options] [command]\n\nGemini CLI - Launch an interactive CLI, use -p/--prompt for non-interactive mode')
|
|
37
|
-
.option('telemetry', {
|
|
38
|
-
type: 'boolean',
|
|
39
|
-
description: 'Enable telemetry? This flag specifically controls if telemetry is sent. Other --telemetry-* flags set specific values but do not enable telemetry on their own.',
|
|
40
|
-
})
|
|
41
|
-
.option('telemetry-target', {
|
|
42
|
-
type: 'string',
|
|
43
|
-
choices: ['local', 'gcp'],
|
|
44
|
-
description: 'Set the telemetry target (local or gcp). Overrides settings files.',
|
|
45
|
-
})
|
|
46
|
-
.option('telemetry-otlp-endpoint', {
|
|
47
|
-
type: 'string',
|
|
48
|
-
description: 'Set the OTLP endpoint for telemetry. Overrides environment variables and settings files.',
|
|
49
|
-
})
|
|
50
|
-
.option('telemetry-otlp-protocol', {
|
|
51
|
-
type: 'string',
|
|
52
|
-
choices: ['grpc', 'http'],
|
|
53
|
-
description: 'Set the OTLP protocol for telemetry (grpc or http). Overrides settings files.',
|
|
54
|
-
})
|
|
55
|
-
.option('telemetry-log-prompts', {
|
|
56
|
-
type: 'boolean',
|
|
57
|
-
description: 'Enable or disable logging of user prompts for telemetry. Overrides settings files.',
|
|
58
|
-
})
|
|
59
|
-
.option('telemetry-outfile', {
|
|
60
|
-
type: 'string',
|
|
61
|
-
description: 'Redirect all telemetry output to the specified file.',
|
|
62
|
-
})
|
|
63
|
-
.deprecateOption('telemetry', 'Use the "telemetry.enabled" setting in settings.json instead. This flag will be removed in a future version.')
|
|
64
|
-
.deprecateOption('telemetry-target', 'Use the "telemetry.target" setting in settings.json instead. This flag will be removed in a future version.')
|
|
65
|
-
.deprecateOption('telemetry-otlp-endpoint', 'Use the "telemetry.otlpEndpoint" setting in settings.json instead. This flag will be removed in a future version.')
|
|
66
|
-
.deprecateOption('telemetry-otlp-protocol', 'Use the "telemetry.otlpProtocol" setting in settings.json instead. This flag will be removed in a future version.')
|
|
67
|
-
.deprecateOption('telemetry-log-prompts', 'Use the "telemetry.logPrompts" setting in settings.json instead. This flag will be removed in a future version.')
|
|
68
|
-
.deprecateOption('telemetry-outfile', 'Use the "telemetry.outfile" setting in settings.json instead. This flag will be removed in a future version.')
|
|
69
37
|
.option('debug', {
|
|
70
38
|
alias: 'd',
|
|
71
39
|
type: 'boolean',
|
|
72
40
|
description: 'Run in debug mode?',
|
|
73
41
|
default: false,
|
|
74
42
|
})
|
|
75
|
-
.option('proxy', {
|
|
76
|
-
type: 'string',
|
|
77
|
-
description: 'Proxy for gemini client, like schema://user:password@host:port',
|
|
78
|
-
})
|
|
79
|
-
.deprecateOption('proxy', 'Use the "proxy" setting in settings.json instead. This flag will be removed in a future version.')
|
|
80
43
|
.command('$0 [query..]', 'Launch Gemini CLI', (yargsInstance) => yargsInstance
|
|
81
44
|
.positional('query', {
|
|
82
45
|
description: 'Positional prompt. Defaults to one-shot; use -i/--prompt-interactive for interactive.',
|
|
@@ -84,37 +47,25 @@ export async function parseArguments(settings) {
|
|
|
84
47
|
.option('model', {
|
|
85
48
|
alias: 'm',
|
|
86
49
|
type: 'string',
|
|
50
|
+
nargs: 1,
|
|
87
51
|
description: `Model`,
|
|
88
52
|
})
|
|
89
53
|
.option('prompt', {
|
|
90
54
|
alias: 'p',
|
|
91
55
|
type: 'string',
|
|
56
|
+
nargs: 1,
|
|
92
57
|
description: 'Prompt. Appended to input on stdin (if any).',
|
|
93
58
|
})
|
|
94
59
|
.option('prompt-interactive', {
|
|
95
60
|
alias: 'i',
|
|
96
61
|
type: 'string',
|
|
62
|
+
nargs: 1,
|
|
97
63
|
description: 'Execute the provided prompt and continue in interactive mode',
|
|
98
64
|
})
|
|
99
65
|
.option('sandbox', {
|
|
100
66
|
alias: 's',
|
|
101
67
|
type: 'boolean',
|
|
102
68
|
description: 'Run in sandbox?',
|
|
103
|
-
})
|
|
104
|
-
.option('sandbox-image', {
|
|
105
|
-
type: 'string',
|
|
106
|
-
description: 'Sandbox image URI.',
|
|
107
|
-
})
|
|
108
|
-
.option('all-files', {
|
|
109
|
-
alias: ['a'],
|
|
110
|
-
type: 'boolean',
|
|
111
|
-
description: 'Include ALL files in context?',
|
|
112
|
-
default: false,
|
|
113
|
-
})
|
|
114
|
-
.option('show-memory-usage', {
|
|
115
|
-
type: 'boolean',
|
|
116
|
-
description: 'Show memory usage in status bar',
|
|
117
|
-
default: false,
|
|
118
69
|
})
|
|
119
70
|
.option('yolo', {
|
|
120
71
|
alias: 'y',
|
|
@@ -124,14 +75,9 @@ export async function parseArguments(settings) {
|
|
|
124
75
|
})
|
|
125
76
|
.option('approval-mode', {
|
|
126
77
|
type: 'string',
|
|
78
|
+
nargs: 1,
|
|
127
79
|
choices: ['default', 'auto_edit', 'yolo'],
|
|
128
80
|
description: 'Set the approval mode: default (prompt for approval), auto_edit (auto-approve edit tools), yolo (auto-approve all tools)',
|
|
129
|
-
})
|
|
130
|
-
.option('checkpointing', {
|
|
131
|
-
alias: 'c',
|
|
132
|
-
type: 'boolean',
|
|
133
|
-
description: 'Enables checkpointing of file edits',
|
|
134
|
-
default: false,
|
|
135
81
|
})
|
|
136
82
|
.option('experimental-acp', {
|
|
137
83
|
type: 'boolean',
|
|
@@ -140,6 +86,7 @@ export async function parseArguments(settings) {
|
|
|
140
86
|
.option('allowed-mcp-server-names', {
|
|
141
87
|
type: 'array',
|
|
142
88
|
string: true,
|
|
89
|
+
nargs: 1,
|
|
143
90
|
description: 'Allowed MCP server names',
|
|
144
91
|
coerce: (mcpServerNames) =>
|
|
145
92
|
// Handle comma-separated values
|
|
@@ -148,6 +95,7 @@ export async function parseArguments(settings) {
|
|
|
148
95
|
.option('allowed-tools', {
|
|
149
96
|
type: 'array',
|
|
150
97
|
string: true,
|
|
98
|
+
nargs: 1,
|
|
151
99
|
description: 'Tools that are allowed to run without confirmation',
|
|
152
100
|
coerce: (tools) =>
|
|
153
101
|
// Handle comma-separated values
|
|
@@ -171,6 +119,7 @@ export async function parseArguments(settings) {
|
|
|
171
119
|
.option('include-directories', {
|
|
172
120
|
type: 'array',
|
|
173
121
|
string: true,
|
|
122
|
+
nargs: 1,
|
|
174
123
|
description: 'Additional directories to include in the workspace (comma-separated or multiple --include-directories)',
|
|
175
124
|
coerce: (dirs) =>
|
|
176
125
|
// Handle comma-separated values
|
|
@@ -183,13 +132,10 @@ export async function parseArguments(settings) {
|
|
|
183
132
|
.option('output-format', {
|
|
184
133
|
alias: 'o',
|
|
185
134
|
type: 'string',
|
|
135
|
+
nargs: 1,
|
|
186
136
|
description: 'The format of the CLI output.',
|
|
187
|
-
choices: ['text', 'json'],
|
|
137
|
+
choices: ['text', 'json', 'stream-json'],
|
|
188
138
|
})
|
|
189
|
-
.deprecateOption('show-memory-usage', 'Use the "ui.showMemoryUsage" setting in settings.json instead. This flag will be removed in a future version.')
|
|
190
|
-
.deprecateOption('sandbox-image', 'Use the "tools.sandbox" setting in settings.json instead. This flag will be removed in a future version.')
|
|
191
|
-
.deprecateOption('checkpointing', 'Use the "general.checkpointing.enabled" setting in settings.json instead. This flag will be removed in a future version.')
|
|
192
|
-
.deprecateOption('all-files', 'Use @ includes in the application instead. This flag will be removed in a future version.')
|
|
193
139
|
.deprecateOption('prompt', 'Use the positional prompt instead. This flag will be removed in a future version.')
|
|
194
140
|
// Ensure validation flows through .fail() for clean UX
|
|
195
141
|
.fail((msg, err, yargs) => {
|
|
@@ -292,7 +238,7 @@ export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, incl
|
|
|
292
238
|
*/
|
|
293
239
|
function createToolExclusionFilter(allowedTools, allowedToolsSet) {
|
|
294
240
|
return (tool) => {
|
|
295
|
-
if (tool ===
|
|
241
|
+
if (tool === SHELL_TOOL_NAME) {
|
|
296
242
|
// If any of the allowed tools is ShellTool (even with subcommands), don't exclude it.
|
|
297
243
|
return !allowedTools.some((allowed) => SHELL_TOOL_NAMES.some((shellName) => allowed.startsWith(shellName)));
|
|
298
244
|
}
|
|
@@ -368,7 +314,6 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
|
|
|
368
314
|
let telemetrySettings;
|
|
369
315
|
try {
|
|
370
316
|
telemetrySettings = await resolveTelemetrySettings({
|
|
371
|
-
argv,
|
|
372
317
|
env: process.env,
|
|
373
318
|
settings: settings.telemetry,
|
|
374
319
|
});
|
|
@@ -390,11 +335,11 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
|
|
|
390
335
|
const extraExcludes = [];
|
|
391
336
|
if (!interactive && !argv.experimentalAcp) {
|
|
392
337
|
const defaultExcludes = [
|
|
393
|
-
|
|
394
|
-
|
|
338
|
+
SHELL_TOOL_NAME,
|
|
339
|
+
EDIT_TOOL_NAME,
|
|
395
340
|
WRITE_FILE_TOOL_NAME,
|
|
396
341
|
];
|
|
397
|
-
const autoEditExcludes = [
|
|
342
|
+
const autoEditExcludes = [SHELL_TOOL_NAME];
|
|
398
343
|
const toolExclusionFilter = createToolExclusionFilter(allowedTools, allowedToolsSet);
|
|
399
344
|
switch (approvalMode) {
|
|
400
345
|
case ApprovalMode.DEFAULT:
|
|
@@ -441,6 +386,7 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
|
|
|
441
386
|
const screenReader = argv.screenReader !== undefined
|
|
442
387
|
? argv.screenReader
|
|
443
388
|
: (settings.ui?.accessibility?.screenReader ?? false);
|
|
389
|
+
const ptyInfo = await getPty();
|
|
444
390
|
return new Config({
|
|
445
391
|
sessionId,
|
|
446
392
|
embeddingModel: DEFAULT_GEMINI_EMBEDDING_MODEL,
|
|
@@ -450,7 +396,6 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
|
|
|
450
396
|
loadMemoryFromIncludeDirectories: settings.context?.loadMemoryFromIncludeDirectories || false,
|
|
451
397
|
debugMode,
|
|
452
398
|
question,
|
|
453
|
-
fullContext: argv.allFiles || false,
|
|
454
399
|
coreTools: settings.tools?.core || undefined,
|
|
455
400
|
allowedTools: allowedTools.length > 0 ? allowedTools : undefined,
|
|
456
401
|
policyEngineConfig,
|
|
@@ -463,7 +408,7 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
|
|
|
463
408
|
geminiMdFileCount: fileCount,
|
|
464
409
|
geminiMdFilePaths: filePaths,
|
|
465
410
|
approvalMode,
|
|
466
|
-
showMemoryUsage:
|
|
411
|
+
showMemoryUsage: settings.ui?.showMemoryUsage || false,
|
|
467
412
|
accessibility: {
|
|
468
413
|
...settings.ui?.accessibility,
|
|
469
414
|
screenReader,
|
|
@@ -471,9 +416,8 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
|
|
|
471
416
|
telemetry: telemetrySettings,
|
|
472
417
|
usageStatisticsEnabled: settings.privacy?.usageStatisticsEnabled ?? true,
|
|
473
418
|
fileFiltering,
|
|
474
|
-
checkpointing:
|
|
475
|
-
proxy:
|
|
476
|
-
process.env['HTTPS_PROXY'] ||
|
|
419
|
+
checkpointing: settings.general?.checkpointing?.enabled,
|
|
420
|
+
proxy: process.env['HTTPS_PROXY'] ||
|
|
477
421
|
process.env['https_proxy'] ||
|
|
478
422
|
process.env['HTTP_PROXY'] ||
|
|
479
423
|
process.env['http_proxy'],
|
|
@@ -511,6 +455,7 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
|
|
|
511
455
|
enableMessageBusIntegration: settings.tools?.enableMessageBusIntegration ?? false,
|
|
512
456
|
codebaseInvestigatorSettings: settings.experimental?.codebaseInvestigatorSettings,
|
|
513
457
|
retryFetchErrors: settings.general?.retryFetchErrors ?? false,
|
|
458
|
+
ptyInfo: ptyInfo?.name,
|
|
514
459
|
});
|
|
515
460
|
}
|
|
516
461
|
function allowedMcpServers(mcpServers, allowMCPServers, blockedMcpServers) {
|