@google/gemini-cli-core 0.37.2 → 0.38.0
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 +58 -50
- package/dist/docs/changelogs/index.md +25 -0
- package/dist/docs/changelogs/latest.md +353 -362
- package/dist/docs/changelogs/preview.md +399 -366
- package/dist/docs/cli/plan-mode.md +1 -0
- package/dist/docs/cli/sandbox.md +52 -0
- package/dist/docs/cli/settings.md +17 -14
- package/dist/docs/core/remote-agents.md +14 -18
- package/dist/docs/core/subagents.md +63 -27
- package/dist/docs/get-started/authentication.md +2 -2
- package/dist/docs/get-started/installation.md +7 -0
- package/dist/docs/hooks/index.md +6 -6
- package/dist/docs/reference/configuration.md +41 -11
- package/dist/docs/reference/keyboard-shortcuts.md +14 -9
- package/dist/docs/reference/tools.md +4 -4
- package/dist/docs/release-confidence.md +0 -6
- package/dist/docs/releases.md +4 -0
- package/dist/docs/tools/mcp-server.md +3 -3
- package/dist/docs/tools/web-fetch.md +3 -0
- package/dist/src/agent/agent-session.test.js +14 -6
- package/dist/src/agent/agent-session.test.js.map +1 -1
- package/dist/src/agent/event-translator.js +2 -1
- package/dist/src/agent/event-translator.js.map +1 -1
- package/dist/src/agent/event-translator.test.js +1 -0
- package/dist/src/agent/event-translator.test.js.map +1 -1
- package/dist/src/agent/legacy-agent-session.d.ts +47 -4
- package/dist/src/agent/legacy-agent-session.js +38 -15
- package/dist/src/agent/legacy-agent-session.js.map +1 -1
- package/dist/src/agent/legacy-agent-session.test.js +60 -73
- package/dist/src/agent/legacy-agent-session.test.js.map +1 -1
- package/dist/src/agent/mock.js +7 -1
- package/dist/src/agent/mock.js.map +1 -1
- package/dist/src/agent/mock.test.js +1 -1
- package/dist/src/agent/mock.test.js.map +1 -1
- package/dist/src/agent/types.d.ts +34 -1
- package/dist/src/agents/agent-scheduler.js +6 -1
- package/dist/src/agents/agent-scheduler.js.map +1 -1
- package/dist/src/agents/agent-scheduler.test.js +38 -0
- package/dist/src/agents/agent-scheduler.test.js.map +1 -1
- package/dist/src/agents/auth-provider/api-key-provider.test.js +18 -2
- package/dist/src/agents/auth-provider/api-key-provider.test.js.map +1 -1
- package/dist/src/agents/auth-provider/value-resolver.test.js +30 -0
- package/dist/src/agents/auth-provider/value-resolver.test.js.map +1 -1
- package/dist/src/agents/browser/analyzeScreenshot.js +36 -6
- package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -1
- package/dist/src/agents/browser/analyzeScreenshot.test.js +35 -3
- package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -1
- package/dist/src/agents/browser/browserAgentFactory.d.ts +8 -0
- package/dist/src/agents/browser/browserAgentFactory.js +174 -118
- package/dist/src/agents/browser/browserAgentFactory.js.map +1 -1
- package/dist/src/agents/browser/browserAgentFactory.test.js +70 -1
- package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -1
- package/dist/src/agents/browser/browserAgentInvocation.js +29 -2
- package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
- package/dist/src/agents/browser/browserAgentInvocation.test.js +51 -5
- package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
- package/dist/src/agents/browser/browserManager.d.ts +38 -0
- package/dist/src/agents/browser/browserManager.js +117 -6
- package/dist/src/agents/browser/browserManager.js.map +1 -1
- package/dist/src/agents/browser/browserManager.test.js +156 -2
- package/dist/src/agents/browser/browserManager.test.js.map +1 -1
- package/dist/src/agents/browser/modelAvailability.d.ts +5 -0
- package/dist/src/agents/browser/modelAvailability.js +12 -0
- package/dist/src/agents/browser/modelAvailability.js.map +1 -1
- package/dist/src/agents/local-executor.d.ts +5 -0
- package/dist/src/agents/local-executor.js +98 -181
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.js +386 -101
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/memory-manager-agent.js +1 -0
- package/dist/src/agents/memory-manager-agent.js.map +1 -1
- package/dist/src/agents/memory-manager-agent.test.js +6 -0
- package/dist/src/agents/memory-manager-agent.test.js.map +1 -1
- package/dist/src/agents/registry.js +3 -10
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/skill-extraction-agent.d.ts +24 -0
- package/dist/src/agents/skill-extraction-agent.js +269 -0
- package/dist/src/agents/skill-extraction-agent.js.map +1 -0
- package/dist/src/agents/types.d.ts +11 -0
- package/dist/src/code_assist/admin/admin_controls.js +1 -1
- package/dist/src/code_assist/admin/admin_controls.js.map +1 -1
- package/dist/src/code_assist/experiments/flagNames.d.ts +1 -0
- package/dist/src/code_assist/experiments/flagNames.js +1 -0
- package/dist/src/code_assist/experiments/flagNames.js.map +1 -1
- package/dist/src/code_assist/server.js +1 -1
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/commands/memory.js +1 -1
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/config/config.d.ts +34 -31
- package/dist/src/config/config.js +101 -38
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +102 -15
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extensions/integrity.js +1 -1
- package/dist/src/config/extensions/integrity.js.map +1 -1
- package/dist/src/config/projectRegistry.js +5 -3
- package/dist/src/config/projectRegistry.js.map +1 -1
- package/dist/src/config/scoped-config.d.ts +30 -0
- package/dist/src/config/scoped-config.js +69 -0
- package/dist/src/config/scoped-config.js.map +1 -0
- package/dist/src/config/scoped-config.test.d.ts +6 -0
- package/dist/src/config/scoped-config.test.js +161 -0
- package/dist/src/config/scoped-config.test.js.map +1 -0
- package/dist/src/config/storage.d.ts +2 -0
- package/dist/src/config/storage.js +7 -2
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +7 -7
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/confirmation-bus/types.d.ts +2 -2
- package/dist/src/context/agentHistoryProvider.d.ts +1 -1
- package/dist/src/context/agentHistoryProvider.js +1 -5
- package/dist/src/context/agentHistoryProvider.js.map +1 -1
- package/dist/src/context/agentHistoryProvider.test.js +2 -39
- package/dist/src/context/agentHistoryProvider.test.js.map +1 -1
- package/dist/src/context/contextCompressionService.d.ts +30 -0
- package/dist/src/context/contextCompressionService.js +405 -0
- package/dist/src/context/contextCompressionService.js.map +1 -0
- package/dist/src/context/contextCompressionService.test.d.ts +1 -0
- package/dist/src/context/contextCompressionService.test.js +253 -0
- package/dist/src/context/contextCompressionService.test.js.map +1 -0
- package/dist/src/context/{contextManager.d.ts → memoryContextManager.d.ts} +1 -1
- package/dist/src/context/{contextManager.js → memoryContextManager.js} +2 -2
- package/dist/src/context/memoryContextManager.js.map +1 -0
- package/dist/src/context/{contextManager.test.js → memoryContextManager.test.js} +22 -28
- package/dist/src/context/memoryContextManager.test.js.map +1 -0
- package/dist/src/context/profiles.d.ts +7 -0
- package/dist/src/context/profiles.js +21 -0
- package/dist/src/context/profiles.js.map +1 -0
- package/dist/src/context/toolDistillationService.test.js +3 -0
- package/dist/src/context/toolDistillationService.test.js.map +1 -1
- package/dist/src/context/types.d.ts +36 -0
- package/dist/src/context/types.js.map +1 -0
- package/dist/src/core/baseLlmClient.js +1 -1
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +1 -0
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.js +1 -1
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +7 -6
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +8 -0
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +1 -0
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChat_network_retry.test.js +1 -0
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
- package/dist/src/core/logger.js +4 -4
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/logger.test.js +1 -1
- package/dist/src/core/logger.test.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.js +1 -1
- package/dist/src/core/loggingContentGenerator.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/hooks/hookEventHandler.js +8 -0
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookRunner.js +9 -5
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +20 -3
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookSystem.d.ts +2 -0
- package/dist/src/hooks/hookSystem.js +1 -0
- package/dist/src/hooks/hookSystem.js.map +1 -1
- package/dist/src/hooks/hookTranslator.js +20 -13
- package/dist/src/hooks/hookTranslator.js.map +1 -1
- package/dist/src/hooks/hookTranslator.test.js +36 -0
- package/dist/src/hooks/hookTranslator.test.js.map +1 -1
- package/dist/src/hooks/types.d.ts +2 -0
- package/dist/src/ide/ide-client.js +3 -3
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-connection-utils.js +1 -1
- package/dist/src/ide/ide-connection-utils.js.map +1 -1
- package/dist/src/ide/ide-installer.js +3 -3
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/process-utils.js +3 -3
- package/dist/src/ide/process-utils.js.map +1 -1
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/output/json-formatter.js +2 -1
- package/dist/src/output/json-formatter.js.map +1 -1
- package/dist/src/policy/config.test.js +21 -20
- package/dist/src/policy/config.test.js.map +1 -1
- package/dist/src/policy/policies/memory-manager.toml +11 -1
- package/dist/src/policy/policies/plan.toml +4 -3
- package/dist/src/policy/policies/read-only.toml +6 -0
- package/dist/src/policy/policies/sandbox-default.toml +2 -3
- package/dist/src/policy/policy-engine.js +23 -0
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +129 -1
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/sandboxPolicyManager.d.ts +26 -1
- package/dist/src/policy/sandboxPolicyManager.js +41 -12
- package/dist/src/policy/sandboxPolicyManager.js.map +1 -1
- package/dist/src/policy/sandboxPolicyManager.test.d.ts +6 -0
- package/dist/src/policy/sandboxPolicyManager.test.js +61 -0
- package/dist/src/policy/sandboxPolicyManager.test.js.map +1 -0
- package/dist/src/policy/workspace-policy.test.js +18 -15
- package/dist/src/policy/workspace-policy.test.js.map +1 -1
- package/dist/src/prompts/snippets.js +6 -3
- package/dist/src/prompts/snippets.js.map +1 -1
- package/dist/src/prompts/snippets.legacy.js +6 -2
- package/dist/src/prompts/snippets.legacy.js.map +1 -1
- package/dist/src/prompts/utils.test.js +7 -5
- package/dist/src/prompts/utils.test.js.map +1 -1
- package/dist/src/safety/built-in.js +1 -1
- package/dist/src/safety/built-in.js.map +1 -1
- package/dist/src/sandbox/linux/LinuxSandboxManager.d.ts +4 -4
- package/dist/src/sandbox/linux/LinuxSandboxManager.js +47 -191
- package/dist/src/sandbox/linux/LinuxSandboxManager.js.map +1 -1
- package/dist/src/sandbox/linux/LinuxSandboxManager.test.js +33 -395
- package/dist/src/sandbox/linux/LinuxSandboxManager.test.js.map +1 -1
- package/dist/src/sandbox/linux/bwrapArgsBuilder.d.ts +24 -0
- package/dist/src/sandbox/linux/bwrapArgsBuilder.js +200 -0
- package/dist/src/sandbox/linux/bwrapArgsBuilder.js.map +1 -0
- package/dist/src/sandbox/linux/bwrapArgsBuilder.test.d.ts +6 -0
- package/dist/src/sandbox/linux/bwrapArgsBuilder.test.js +247 -0
- package/dist/src/sandbox/linux/bwrapArgsBuilder.test.js.map +1 -0
- package/dist/src/sandbox/macos/MacOsSandboxManager.d.ts +3 -0
- package/dist/src/sandbox/macos/MacOsSandboxManager.js +12 -5
- package/dist/src/sandbox/macos/MacOsSandboxManager.js.map +1 -1
- package/dist/src/sandbox/macos/MacOsSandboxManager.test.js +20 -0
- package/dist/src/sandbox/macos/MacOsSandboxManager.test.js.map +1 -1
- package/dist/src/sandbox/macos/baseProfile.d.ts +1 -1
- package/dist/src/sandbox/macos/baseProfile.js +28 -4
- package/dist/src/sandbox/macos/baseProfile.js.map +1 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.js +1 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.js.map +1 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js +2 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js.map +1 -1
- package/dist/src/sandbox/utils/fsUtils.js +8 -6
- package/dist/src/sandbox/utils/fsUtils.js.map +1 -1
- package/dist/src/sandbox/utils/fsUtils.test.d.ts +6 -0
- package/dist/src/sandbox/utils/fsUtils.test.js +43 -0
- package/dist/src/sandbox/utils/fsUtils.test.js.map +1 -0
- package/dist/src/sandbox/utils/proactivePermissions.d.ts +19 -0
- package/dist/src/sandbox/utils/proactivePermissions.js +163 -0
- package/dist/src/sandbox/utils/proactivePermissions.js.map +1 -0
- package/dist/src/sandbox/utils/proactivePermissions.test.d.ts +6 -0
- package/dist/src/sandbox/utils/proactivePermissions.test.js +145 -0
- package/dist/src/sandbox/utils/proactivePermissions.test.js.map +1 -0
- package/dist/src/sandbox/utils/sandboxDenialUtils.d.ts +16 -1
- package/dist/src/sandbox/utils/sandboxDenialUtils.js +98 -24
- package/dist/src/sandbox/utils/sandboxDenialUtils.js.map +1 -1
- package/dist/src/sandbox/utils/sandboxDenialUtils.test.js +152 -1
- package/dist/src/sandbox/utils/sandboxDenialUtils.test.js.map +1 -1
- package/dist/src/sandbox/utils/sandboxReadWriteUtils.js +4 -0
- package/dist/src/sandbox/utils/sandboxReadWriteUtils.js.map +1 -1
- package/dist/src/sandbox/windows/GeminiSandbox.cs +90 -42
- package/dist/src/sandbox/windows/WindowsSandboxManager.d.ts +4 -0
- package/dist/src/sandbox/windows/WindowsSandboxManager.js +65 -60
- package/dist/src/sandbox/windows/WindowsSandboxManager.js.map +1 -1
- package/dist/src/sandbox/windows/WindowsSandboxManager.test.js +99 -54
- package/dist/src/sandbox/windows/WindowsSandboxManager.test.js.map +1 -1
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.d.ts +2 -1
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js +19 -18
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js.map +1 -1
- package/dist/src/scheduler/scheduler.js +1 -1
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/scheduler/scheduler_hooks.test.js +1 -1
- package/dist/src/scheduler/scheduler_hooks.test.js.map +1 -1
- package/dist/src/scheduler/tool-executor.js +1 -1
- package/dist/src/scheduler/tool-executor.js.map +1 -1
- package/dist/src/scheduler/tool-executor.test.js +1 -1
- package/dist/src/scheduler/tool-executor.test.js.map +1 -1
- package/dist/src/services/executionLifecycleService.d.ts +1 -0
- package/dist/src/services/executionLifecycleService.js +3 -0
- package/dist/src/services/executionLifecycleService.js.map +1 -1
- package/dist/src/services/gitService.js +1 -1
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/memoryService.d.ts +65 -0
- package/dist/src/services/memoryService.js +511 -0
- package/dist/src/services/memoryService.js.map +1 -0
- package/dist/src/services/memoryService.test.d.ts +6 -0
- package/dist/src/services/memoryService.test.js +563 -0
- package/dist/src/services/memoryService.test.js.map +1 -0
- package/dist/src/services/sandboxManager.d.ts +17 -0
- package/dist/src/services/sandboxManager.integration.test.js +18 -11
- package/dist/src/services/sandboxManager.integration.test.js.map +1 -1
- package/dist/src/services/sandboxManager.js +20 -0
- package/dist/src/services/sandboxManager.js.map +1 -1
- package/dist/src/services/sandboxManager.test.js +84 -56
- package/dist/src/services/sandboxManager.test.js.map +1 -1
- package/dist/src/services/sandboxManagerFactory.js +2 -5
- package/dist/src/services/sandboxManagerFactory.js.map +1 -1
- package/dist/src/services/sandboxedFileSystemService.js +14 -3
- package/dist/src/services/sandboxedFileSystemService.js.map +1 -1
- package/dist/src/services/sandboxedFileSystemService.test.js +29 -14
- package/dist/src/services/sandboxedFileSystemService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +16 -1
- package/dist/src/services/shellExecutionService.js +70 -10
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +65 -4
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/services/worktreeService.test.js +7 -7
- package/dist/src/services/worktreeService.test.js.map +1 -1
- package/dist/src/skills/skillLoader.d.ts +8 -0
- package/dist/src/skills/skillLoader.js +1 -1
- package/dist/src/skills/skillLoader.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +29 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +101 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +167 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +9 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +20 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +22 -0
- package/dist/src/telemetry/loggers.js +40 -1
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +108 -0
- package/dist/src/telemetry/metrics.js +177 -0
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +254 -0
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/tools/complete-task.d.ts +29 -0
- package/dist/src/tools/complete-task.js +123 -0
- package/dist/src/tools/complete-task.js.map +1 -0
- package/dist/src/tools/complete-task.test.d.ts +6 -0
- package/dist/src/tools/complete-task.test.js +114 -0
- package/dist/src/tools/complete-task.test.js.map +1 -0
- package/dist/src/tools/definitions/base-declarations.d.ts +2 -0
- package/dist/src/tools/definitions/base-declarations.js +3 -0
- package/dist/src/tools/definitions/base-declarations.js.map +1 -1
- package/dist/src/tools/definitions/coreTools.d.ts +1 -1
- package/dist/src/tools/definitions/coreTools.js +1 -1
- package/dist/src/tools/definitions/coreTools.js.map +1 -1
- package/dist/src/tools/definitions/dynamic-declaration-helpers.js +4 -0
- package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
- package/dist/src/tools/definitions/model-family-sets/default-legacy.js +3 -3
- package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
- package/dist/src/tools/definitions/model-family-sets/gemini-3.js +3 -3
- package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
- package/dist/src/tools/grep.test.js +2 -2
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/jit-context.js +3 -3
- package/dist/src/tools/jit-context.js.map +1 -1
- package/dist/src/tools/jit-context.test.js +15 -13
- package/dist/src/tools/jit-context.test.js.map +1 -1
- package/dist/src/tools/mcp-client.js +1 -1
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +1 -1
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +1 -1
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +7 -4
- package/dist/src/tools/shell.js +255 -37
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +182 -8
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/shellBackgroundTools.d.ts +38 -0
- package/dist/src/tools/shellBackgroundTools.integration.test.d.ts +6 -0
- package/dist/src/tools/shellBackgroundTools.integration.test.js +86 -0
- package/dist/src/tools/shellBackgroundTools.integration.test.js.map +1 -0
- package/dist/src/tools/shellBackgroundTools.js +186 -0
- package/dist/src/tools/shellBackgroundTools.js.map +1 -0
- package/dist/src/tools/shellBackgroundTools.test.d.ts +6 -0
- package/dist/src/tools/shellBackgroundTools.test.js +230 -0
- package/dist/src/tools/shellBackgroundTools.test.js.map +1 -0
- package/dist/src/tools/shell_proactive.test.d.ts +6 -0
- package/dist/src/tools/shell_proactive.test.js +122 -0
- package/dist/src/tools/shell_proactive.test.js.map +1 -0
- package/dist/src/tools/tool-names.d.ts +3 -3
- package/dist/src/tools/tool-names.js +3 -2
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tools.js +1 -1
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +8 -8
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +5 -5
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/xcode-mcp-fix-transport.js +1 -1
- package/dist/src/tools/xcode-mcp-fix-transport.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.js +3 -6
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/checkpointUtils.js +11 -8
- package/dist/src/utils/checkpointUtils.js.map +1 -1
- package/dist/src/utils/compatibility.js +0 -7
- package/dist/src/utils/compatibility.js.map +1 -1
- package/dist/src/utils/compatibility.test.js +0 -9
- package/dist/src/utils/compatibility.test.js.map +1 -1
- package/dist/src/utils/editor.js +3 -0
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/errorParsing.js +2 -2
- package/dist/src/utils/errorParsing.js.map +1 -1
- package/dist/src/utils/events.d.ts +12 -0
- package/dist/src/utils/events.js +7 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +1 -0
- package/dist/src/utils/fetch.js +22 -6
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fetch.test.js +26 -1
- package/dist/src/utils/fetch.test.js.map +1 -1
- package/dist/src/utils/fileUtils.js +1 -1
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/filesearch/crawler.js +1 -1
- package/dist/src/utils/filesearch/crawler.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.test.js +7 -2
- package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
- package/dist/src/utils/getPty.js +2 -2
- package/dist/src/utils/getPty.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.js +2 -2
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/gitUtils.js +2 -2
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/googleErrors.js +5 -5
- package/dist/src/utils/googleErrors.js.map +1 -1
- package/dist/src/utils/ignoreFileParser.js +1 -1
- package/dist/src/utils/ignoreFileParser.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.js +3 -7
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/paths.d.ts +8 -0
- package/dist/src/utils/paths.js +37 -6
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/paths.test.js +61 -3
- package/dist/src/utils/paths.test.js.map +1 -1
- package/dist/src/utils/process-utils.js +2 -2
- package/dist/src/utils/process-utils.js.map +1 -1
- package/dist/src/utils/retry.js +7 -0
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +41 -0
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/secure-browser-launcher.js +1 -1
- package/dist/src/utils/secure-browser-launcher.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +9 -0
- package/dist/src/utils/shell-utils.integration.test.js +1 -1
- package/dist/src/utils/shell-utils.integration.test.js.map +1 -1
- package/dist/src/utils/shell-utils.js +43 -4
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +13 -1
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/src/utils/systemEncoding.js +1 -1
- package/dist/src/utils/systemEncoding.js.map +1 -1
- package/dist/src/utils/terminalSerializer.d.ts +1 -0
- package/dist/src/utils/terminalSerializer.js +31 -8
- package/dist/src/utils/terminalSerializer.js.map +1 -1
- package/dist/src/utils/terminalSerializer.test.js +3 -2
- package/dist/src/utils/terminalSerializer.test.js.map +1 -1
- package/dist/src/utils/workspaceContext.js +2 -2
- package/dist/src/utils/workspaceContext.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/google-gemini-cli-core-0.37.1.tgz +0 -0
- package/dist/src/context/contextManager.js.map +0 -1
- package/dist/src/context/contextManager.test.js.map +0 -1
- package/dist/src/services/types.d.ts +0 -14
- package/dist/src/services/types.js.map +0 -1
- /package/dist/src/context/{contextManager.test.d.ts → memoryContextManager.test.d.ts} +0 -0
- /package/dist/src/{services → context}/types.js +0 -0
|
@@ -123,6 +123,7 @@ These are the only allowed tools:
|
|
|
123
123
|
[`glob`](../tools/file-system.md#4-glob-findfiles)
|
|
124
124
|
- **Search:** [`grep_search`](../tools/file-system.md#5-grep_search-searchtext),
|
|
125
125
|
[`google_web_search`](../tools/web-search.md),
|
|
126
|
+
[`web_fetch`](../tools/web-fetch.md) (requires explicit confirmation),
|
|
126
127
|
[`get_internal_docs`](../tools/internal-docs.md)
|
|
127
128
|
- **Research Subagents:**
|
|
128
129
|
[`codebase_investigator`](../core/subagents.md#codebase-investigator),
|
package/dist/docs/cli/sandbox.md
CHANGED
|
@@ -136,6 +136,58 @@ gemini -p "build the snap"
|
|
|
136
136
|
absolute path — the path must be writable inside the container.
|
|
137
137
|
- Used with tools like Snapcraft or Rockcraft that require a full system.
|
|
138
138
|
|
|
139
|
+
## Tool sandboxing
|
|
140
|
+
|
|
141
|
+
Tool-level sandboxing provides granular isolation for individual tool executions
|
|
142
|
+
(like `shell_exec` and `write_file`) instead of sandboxing the entire Gemini CLI
|
|
143
|
+
process.
|
|
144
|
+
|
|
145
|
+
This approach offers better integration with your local environment for non-tool
|
|
146
|
+
tasks (like UI rendering and configuration loading) while still providing
|
|
147
|
+
security for tool-driven operations.
|
|
148
|
+
|
|
149
|
+
### How to turn off tool sandboxing
|
|
150
|
+
|
|
151
|
+
If you experience issues with tool sandboxing or prefer full-process isolation,
|
|
152
|
+
you can disable it by setting `security.toolSandboxing` to `false` in your
|
|
153
|
+
`settings.json` file.
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"security": {
|
|
158
|
+
"toolSandboxing": false
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
<!-- prettier-ignore -->
|
|
164
|
+
> [!NOTE]
|
|
165
|
+
> Changing the `security.toolSandboxing` setting requires a restart of Gemini
|
|
166
|
+
> CLI to take effect.
|
|
167
|
+
|
|
168
|
+
## Sandbox expansion
|
|
169
|
+
|
|
170
|
+
Sandbox expansion is a dynamic permission system that lets Gemini CLI request
|
|
171
|
+
additional permissions for a command when needed.
|
|
172
|
+
|
|
173
|
+
When a sandboxed command fails due to permission restrictions (like restricted
|
|
174
|
+
file paths or network access), or when a command is proactively identified as
|
|
175
|
+
requiring extra permissions (like `npm install`), Gemini CLI will present you
|
|
176
|
+
with a "Sandbox Expansion Request."
|
|
177
|
+
|
|
178
|
+
### How sandbox expansion works
|
|
179
|
+
|
|
180
|
+
1. **Detection**: Gemini CLI detects a sandbox denial or proactively identifies
|
|
181
|
+
a command that requires extra permissions.
|
|
182
|
+
2. **Request**: A modal dialog is shown, explaining which additional
|
|
183
|
+
permissions (e.g., specific directories or network access) are required.
|
|
184
|
+
3. **Approval**: If you approve the expansion, the command is executed with the
|
|
185
|
+
extended permissions for that specific run.
|
|
186
|
+
|
|
187
|
+
This mechanism ensures you don't have to manually re-run commands with more
|
|
188
|
+
permissive sandbox settings, while still maintaining control over what the AI
|
|
189
|
+
can access.
|
|
190
|
+
|
|
139
191
|
## Quickstart
|
|
140
192
|
|
|
141
193
|
```bash
|
|
@@ -60,7 +60,7 @@ they appear in the UI.
|
|
|
60
60
|
| Hide Tips | `ui.hideTips` | Hide helpful tips in the UI | `false` |
|
|
61
61
|
| Escape Pasted @ Symbols | `ui.escapePastedAtSymbols` | When enabled, @ symbols in pasted text are escaped to prevent unintended @path expansion. | `false` |
|
|
62
62
|
| Show Shortcuts Hint | `ui.showShortcutsHint` | Show the "? for shortcuts" hint above the input. | `true` |
|
|
63
|
-
| Compact Tool Output | `ui.compactToolOutput` | Display tool outputs (like directory listings and file reads) in a compact, structured format. | `
|
|
63
|
+
| Compact Tool Output | `ui.compactToolOutput` | Display tool outputs (like directory listings and file reads) in a compact, structured format. | `true` |
|
|
64
64
|
| Hide Banner | `ui.hideBanner` | Hide the application banner | `false` |
|
|
65
65
|
| Hide Context Summary | `ui.hideContextSummary` | Hide the context summary (GEMINI.md, MCP servers) above the input. | `false` |
|
|
66
66
|
| Hide CWD | `ui.footer.hideCWD` | Hide the current working directory in the footer. | `false` |
|
|
@@ -74,6 +74,8 @@ they appear in the UI.
|
|
|
74
74
|
| Show Model Info In Chat | `ui.showModelInfoInChat` | Show the model name in the chat for each model turn. | `false` |
|
|
75
75
|
| Show User Identity | `ui.showUserIdentity` | Show the signed-in user's identity (e.g. email) in the UI. | `true` |
|
|
76
76
|
| Use Alternate Screen Buffer | `ui.useAlternateBuffer` | Use an alternate screen buffer for the UI, preserving shell history. | `false` |
|
|
77
|
+
| Render Process | `ui.renderProcess` | Enable Ink render process for the UI. | `true` |
|
|
78
|
+
| Terminal Buffer | `ui.terminalBuffer` | Use the new terminal buffer architecture for rendering. | `false` |
|
|
77
79
|
| Use Background Color | `ui.useBackgroundColor` | Whether to use background colors in the UI. | `true` |
|
|
78
80
|
| Incremental Rendering | `ui.incrementalRendering` | Enable incremental rendering for the UI. This option will reduce flickering but may cause rendering artifacts. Only supported when useAlternateBuffer is enabled. | `true` |
|
|
79
81
|
| Show Spinner | `ui.showSpinner` | Show the spinner during operations. | `true` |
|
|
@@ -129,7 +131,7 @@ they appear in the UI.
|
|
|
129
131
|
| Sandbox Allowed Paths | `tools.sandboxAllowedPaths` | List of additional paths that the sandbox is allowed to access. | `[]` |
|
|
130
132
|
| Sandbox Network Access | `tools.sandboxNetworkAccess` | Whether the sandbox is allowed to access the network. | `false` |
|
|
131
133
|
| Enable Interactive Shell | `tools.shell.enableInteractiveShell` | Use node-pty for an interactive shell experience. Fallback to child_process still applies. | `true` |
|
|
132
|
-
| Show Color | `tools.shell.showColor` | Show color in shell output. | `
|
|
134
|
+
| Show Color | `tools.shell.showColor` | Show color in shell output. | `true` |
|
|
133
135
|
| Use Ripgrep | `tools.useRipgrep` | Use ripgrep for file content search instead of the fallback implementation. Provides faster search performance. | `true` |
|
|
134
136
|
| Tool Output Truncation Threshold | `tools.truncateToolOutputThreshold` | Maximum characters to show when truncating large tool outputs. Set to 0 or negative to disable truncation. | `40000` |
|
|
135
137
|
| Disable LLM Correction | `tools.disableLLMCorrection` | Disable LLM-based error correction for edit tools. When enabled, tools will fail immediately if exact string matches are not found, instead of attempting to self-correct. | `true` |
|
|
@@ -138,7 +140,7 @@ they appear in the UI.
|
|
|
138
140
|
|
|
139
141
|
| UI Label | Setting | Description | Default |
|
|
140
142
|
| ------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
|
|
141
|
-
| Tool Sandboxing | `security.toolSandboxing` |
|
|
143
|
+
| Tool Sandboxing | `security.toolSandboxing` | Tool-level sandboxing. Isolates individual tools instead of the entire CLI process. | `false` |
|
|
142
144
|
| Disable YOLO Mode | `security.disableYoloMode` | Disable YOLO mode, even if enabled by a flag. | `false` |
|
|
143
145
|
| Disable Always Allow | `security.disableAlwaysAllow` | Disable "Always allow" options in tool confirmation dialogs. | `false` |
|
|
144
146
|
| Allow Permanent Tool Approval | `security.enablePermanentToolApproval` | Enable the "Allow for all future sessions" option in tool confirmation dialogs. | `false` |
|
|
@@ -153,20 +155,21 @@ they appear in the UI.
|
|
|
153
155
|
|
|
154
156
|
| UI Label | Setting | Description | Default |
|
|
155
157
|
| --------------------------------- | ------------------------------ | --------------------------------------------- | ------- |
|
|
156
|
-
| Auto Configure Max Old Space Size | `advanced.autoConfigureMemory` | Automatically configure Node.js memory limits | `
|
|
158
|
+
| Auto Configure Max Old Space Size | `advanced.autoConfigureMemory` | Automatically configure Node.js memory limits | `true` |
|
|
157
159
|
|
|
158
160
|
### Experimental
|
|
159
161
|
|
|
160
|
-
| UI Label
|
|
161
|
-
|
|
|
162
|
-
| Enable Git Worktrees
|
|
163
|
-
| Use OSC 52 Paste
|
|
164
|
-
| Use OSC 52 Copy
|
|
165
|
-
| Model Steering
|
|
166
|
-
| Direct Web Fetch
|
|
167
|
-
| Memory Manager Agent
|
|
168
|
-
|
|
|
169
|
-
|
|
|
162
|
+
| UI Label | Setting | Description | Default |
|
|
163
|
+
| ---------------------------------------------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
|
164
|
+
| Enable Git Worktrees | `experimental.worktrees` | Enable automated Git worktree management for parallel work. | `false` |
|
|
165
|
+
| Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 for pasting. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
|
|
166
|
+
| Use OSC 52 Copy | `experimental.useOSC52Copy` | Use OSC 52 for copying. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
|
|
167
|
+
| Model Steering | `experimental.modelSteering` | Enable model steering (user hints) to guide the model during tool execution. | `false` |
|
|
168
|
+
| Direct Web Fetch | `experimental.directWebFetch` | Enable web fetch behavior that bypasses LLM summarization. | `false` |
|
|
169
|
+
| Memory Manager Agent | `experimental.memoryManager` | Replace the built-in save_memory tool with a memory manager subagent that supports adding, removing, de-duplicating, and organizing memories. | `false` |
|
|
170
|
+
| Use the generalist profile to manage agent contexts. | `experimental.generalistProfile` | Suitable for general coding and software development tasks. | `false` |
|
|
171
|
+
| Enable Context Management | `experimental.contextManagement` | Enable logic for context management. | `false` |
|
|
172
|
+
| Topic & Update Narration | `experimental.topicUpdateNarration` | Enable the experimental Topic & Update communication model for reduced chattiness and structured progress reporting. | `false` |
|
|
170
173
|
|
|
171
174
|
### Skills
|
|
172
175
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Remote Subagents
|
|
1
|
+
# Remote Subagents
|
|
2
2
|
|
|
3
3
|
Gemini CLI supports connecting to remote subagents using the Agent-to-Agent
|
|
4
4
|
(A2A) protocol. This allows Gemini CLI to interact with other agents, expanding
|
|
@@ -10,23 +10,6 @@ agents in the following repositories:
|
|
|
10
10
|
- [ADK Samples (Python)](https://github.com/google/adk-samples/tree/main/python)
|
|
11
11
|
- [ADK Python Contributing Samples](https://github.com/google/adk-python/tree/main/contributing/samples)
|
|
12
12
|
|
|
13
|
-
<!-- prettier-ignore -->
|
|
14
|
-
> [!NOTE]
|
|
15
|
-
> Remote subagents are currently an experimental feature.
|
|
16
|
-
|
|
17
|
-
## Configuration
|
|
18
|
-
|
|
19
|
-
To use remote subagents, you must explicitly enable them in your
|
|
20
|
-
`settings.json`:
|
|
21
|
-
|
|
22
|
-
```json
|
|
23
|
-
{
|
|
24
|
-
"experimental": {
|
|
25
|
-
"enableAgents": true
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
13
|
## Proxy support
|
|
31
14
|
|
|
32
15
|
Gemini CLI routes traffic to remote agents through an HTTP/HTTPS proxy if one is
|
|
@@ -459,3 +442,16 @@ Users can manage subagents using the following commands within the Gemini CLI:
|
|
|
459
442
|
> [!TIP]
|
|
460
443
|
> You can use the `@cli_help` agent within Gemini CLI for assistance
|
|
461
444
|
> with configuring subagents.
|
|
445
|
+
|
|
446
|
+
## Disabling remote agents
|
|
447
|
+
|
|
448
|
+
Remote subagents are enabled by default. To disable them, set `enableAgents` to
|
|
449
|
+
`false` in your `settings.json`:
|
|
450
|
+
|
|
451
|
+
```json
|
|
452
|
+
{
|
|
453
|
+
"experimental": {
|
|
454
|
+
"enableAgents": false
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
```
|
|
@@ -5,15 +5,6 @@ session. They are designed to handle specific, complex tasks—like deep codebas
|
|
|
5
5
|
analysis, documentation lookup, or domain-specific reasoning—without cluttering
|
|
6
6
|
the main agent's context or toolset.
|
|
7
7
|
|
|
8
|
-
Subagents are enabled by default. To disable them, set `enableAgents` to `false`
|
|
9
|
-
in your `settings.json`:
|
|
10
|
-
|
|
11
|
-
```json
|
|
12
|
-
{
|
|
13
|
-
"experimental": { "enableAgents": false }
|
|
14
|
-
}
|
|
15
|
-
```
|
|
16
|
-
|
|
17
8
|
## What are subagents?
|
|
18
9
|
|
|
19
10
|
Subagents are "specialists" that the main Gemini agent can hire for a specific
|
|
@@ -120,10 +111,12 @@ Gemini CLI comes with the following built-in subagents:
|
|
|
120
111
|
|
|
121
112
|
The browser agent requires:
|
|
122
113
|
|
|
123
|
-
- **Chrome** version 144 or later (any recent stable release
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
114
|
+
- **Chrome** version 144 or later (any recent stable release works).
|
|
115
|
+
|
|
116
|
+
The underlying
|
|
117
|
+
[`chrome-devtools-mcp`](https://www.npmjs.com/package/chrome-devtools-mcp)
|
|
118
|
+
server is bundled with Gemini CLI and launched automatically — no separate
|
|
119
|
+
installation is needed.
|
|
127
120
|
|
|
128
121
|
#### Enabling the browser agent
|
|
129
122
|
|
|
@@ -169,26 +162,58 @@ The available modes are:
|
|
|
169
162
|
| `isolated` | Launches Chrome with a temporary profile that is deleted after each session. Use this for clean-state automation. |
|
|
170
163
|
| `existing` | Attaches to an already-running Chrome instance. You must enable remote debugging first by navigating to `chrome://inspect/#remote-debugging` in Chrome. No new browser process is launched. |
|
|
171
164
|
|
|
165
|
+
#### First-run consent
|
|
166
|
+
|
|
167
|
+
The first time the browser agent is invoked, Gemini CLI displays a consent
|
|
168
|
+
dialog. You must accept before the browser session starts. This dialog only
|
|
169
|
+
appears once.
|
|
170
|
+
|
|
172
171
|
#### Configuration reference
|
|
173
172
|
|
|
174
173
|
All browser-specific settings go under `agents.browser` in your `settings.json`.
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
|
179
|
-
|
|
|
180
|
-
| `
|
|
181
|
-
| `
|
|
174
|
+
For full details, see the
|
|
175
|
+
[`agents.browser` configuration reference](../reference/configuration.md#agents).
|
|
176
|
+
|
|
177
|
+
| Setting | Type | Default | Description |
|
|
178
|
+
| :------------------------ | :--------- | :------------- | :------------------------------------------------------------------------------ |
|
|
179
|
+
| `sessionMode` | `string` | `"persistent"` | How Chrome is managed: `"persistent"`, `"isolated"`, or `"existing"`. |
|
|
180
|
+
| `headless` | `boolean` | `false` | Run Chrome in headless mode (no visible window). |
|
|
181
|
+
| `profilePath` | `string` | — | Custom path to a browser profile directory. |
|
|
182
|
+
| `visualModel` | `string` | — | Model override for the visual agent. |
|
|
183
|
+
| `allowedDomains` | `string[]` | — | Restrict navigation to specific domains (for example, `["github.com"]`). |
|
|
184
|
+
| `disableUserInput` | `boolean` | `true` | Disable user input on the browser window during automation (non-headless only). |
|
|
185
|
+
| `maxActionsPerTask` | `number` | `100` | Maximum tool calls per task. The agent is terminated when the limit is reached. |
|
|
186
|
+
| `confirmSensitiveActions` | `boolean` | `false` | Require manual confirmation for `upload_file` and `evaluate_script`. |
|
|
187
|
+
| `blockFileUploads` | `boolean` | `false` | Hard-block all file upload requests from the agent. |
|
|
188
|
+
|
|
189
|
+
#### Automation overlay and input blocking
|
|
190
|
+
|
|
191
|
+
In non-headless mode, the browser agent injects a visual overlay into the
|
|
192
|
+
browser window to indicate that automation is in progress. By default, user
|
|
193
|
+
input (keyboard and mouse) is also blocked to prevent accidental interference.
|
|
194
|
+
You can disable this by setting `disableUserInput` to `false`.
|
|
182
195
|
|
|
183
196
|
#### Security
|
|
184
197
|
|
|
185
|
-
The browser agent enforces
|
|
186
|
-
|
|
187
|
-
- **
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
198
|
+
The browser agent enforces several layers of security:
|
|
199
|
+
|
|
200
|
+
- **Domain restrictions:** When `allowedDomains` is set, the agent can only
|
|
201
|
+
navigate to the listed domains (and their subdomains when using `*.` prefix).
|
|
202
|
+
Attempting to visit a disallowed domain throws a fatal error that immediately
|
|
203
|
+
terminates the agent. The agent also attempts to detect and block the use of
|
|
204
|
+
allowed domains as proxies (e.g., via query parameters or fragments) to access
|
|
205
|
+
restricted content.
|
|
206
|
+
- **Blocked URL patterns:** The underlying MCP server blocks dangerous URL
|
|
207
|
+
schemes including `file://`, `javascript:`, `data:text/html`,
|
|
208
|
+
`chrome://extensions`, and `chrome://settings/passwords`.
|
|
209
|
+
- **Sensitive action confirmation:** Form filling (`fill`, `fill_form`) always
|
|
210
|
+
requires user confirmation through the policy engine, regardless of approval
|
|
211
|
+
mode. When `confirmSensitiveActions` is `true`, `upload_file` and
|
|
212
|
+
`evaluate_script` also require confirmation.
|
|
213
|
+
- **File upload blocking:** Set `blockFileUploads` to `true` to hard-block all
|
|
214
|
+
file upload requests, preventing the agent from uploading any files.
|
|
215
|
+
- **Action rate limiting:** The `maxActionsPerTask` setting (default: 100)
|
|
216
|
+
limits the total number of tool calls per task to prevent runaway execution.
|
|
192
217
|
|
|
193
218
|
#### Visual agent
|
|
194
219
|
|
|
@@ -534,3 +559,14 @@ configuration, authentication, and usage instructions.
|
|
|
534
559
|
Extensions can bundle and distribute subagents. See the
|
|
535
560
|
[Extensions documentation](../extensions/index.md#subagents) for details on how
|
|
536
561
|
to package agents within an extension.
|
|
562
|
+
|
|
563
|
+
## Disabling subagents
|
|
564
|
+
|
|
565
|
+
Subagents are enabled by default. To disable them, set `enableAgents` to `false`
|
|
566
|
+
in your `settings.json`:
|
|
567
|
+
|
|
568
|
+
```json
|
|
569
|
+
{
|
|
570
|
+
"experimental": { "enableAgents": false }
|
|
571
|
+
}
|
|
572
|
+
```
|
|
@@ -398,8 +398,8 @@ on this page.
|
|
|
398
398
|
|
|
399
399
|
## Running in headless mode <a id="headless"></a>
|
|
400
400
|
|
|
401
|
-
[Headless mode](../cli/headless) will use your existing authentication
|
|
402
|
-
if an existing authentication credential is cached.
|
|
401
|
+
[Headless mode](../cli/headless.md) will use your existing authentication
|
|
402
|
+
method, if an existing authentication credential is cached.
|
|
403
403
|
|
|
404
404
|
If you have not already signed in with an authentication credential, you must
|
|
405
405
|
configure authentication using environment variables:
|
|
@@ -122,6 +122,13 @@ code.
|
|
|
122
122
|
# From the root of the repository
|
|
123
123
|
npm run start
|
|
124
124
|
```
|
|
125
|
+
- **Production mode (React optimizations):** This method runs the CLI with React
|
|
126
|
+
production mode enabled, which is useful for testing performance without
|
|
127
|
+
development overhead.
|
|
128
|
+
```bash
|
|
129
|
+
# From the root of the repository
|
|
130
|
+
npm run start:prod
|
|
131
|
+
```
|
|
125
132
|
- **Production-like mode (linked package):** This method simulates a global
|
|
126
133
|
installation by linking your local package. It's useful for testing a local
|
|
127
134
|
build in a production workflow.
|
package/dist/docs/hooks/index.md
CHANGED
|
@@ -22,11 +22,11 @@ With hooks, you can:
|
|
|
22
22
|
|
|
23
23
|
### Getting started
|
|
24
24
|
|
|
25
|
-
- **[Writing hooks guide](../hooks/writing-hooks)**: A tutorial on creating
|
|
26
|
-
first hook with comprehensive examples.
|
|
27
|
-
- **[Best practices](../hooks/best-practices)**: Guidelines on security,
|
|
25
|
+
- **[Writing hooks guide](../hooks/writing-hooks.md)**: A tutorial on creating
|
|
26
|
+
your first hook with comprehensive examples.
|
|
27
|
+
- **[Best practices](../hooks/best-practices.md)**: Guidelines on security,
|
|
28
28
|
performance, and debugging.
|
|
29
|
-
- **[Hooks reference](../hooks/reference)**: The definitive technical
|
|
29
|
+
- **[Hooks reference](../hooks/reference.md)**: The definitive technical
|
|
30
30
|
specification of I/O schemas and exit codes.
|
|
31
31
|
|
|
32
32
|
## Core concepts
|
|
@@ -154,8 +154,8 @@ Gemini CLI **fingerprints** project hooks. If a hook's name or command changes
|
|
|
154
154
|
(e.g., via `git pull`), it is treated as a **new, untrusted hook** and you will
|
|
155
155
|
be warned before it executes.
|
|
156
156
|
|
|
157
|
-
See [Security Considerations](../hooks/best-practices#using-hooks-securely)
|
|
158
|
-
a detailed threat model.
|
|
157
|
+
See [Security Considerations](../hooks/best-practices.md#using-hooks-securely)
|
|
158
|
+
for a detailed threat model.
|
|
159
159
|
|
|
160
160
|
## Managing hooks
|
|
161
161
|
|
|
@@ -62,11 +62,13 @@ locations for these files:
|
|
|
62
62
|
|
|
63
63
|
**Note on environment variables in settings:** String values within your
|
|
64
64
|
`settings.json` and `gemini-extension.json` files can reference environment
|
|
65
|
-
variables using
|
|
66
|
-
be automatically resolved when the settings are
|
|
67
|
-
|
|
68
|
-
this: `"apiKey": "$MY_API_TOKEN"`.
|
|
69
|
-
|
|
65
|
+
variables using `$VAR_NAME`, `${VAR_NAME}`, or `${VAR_NAME:-DEFAULT_VALUE}`
|
|
66
|
+
syntax. These variables will be automatically resolved when the settings are
|
|
67
|
+
loaded. For example, if you have an environment variable `MY_API_TOKEN`, you
|
|
68
|
+
could use it in `settings.json` like this: `"apiKey": "$MY_API_TOKEN"`. If you
|
|
69
|
+
want to provide a fallback value, use `${MY_API_TOKEN:-default-token}`.
|
|
70
|
+
Additionally, each extension can have its own `.env` file in its directory,
|
|
71
|
+
which will be loaded automatically.
|
|
70
72
|
|
|
71
73
|
**Note for Enterprise Users:** For guidance on deploying and managing Gemini CLI
|
|
72
74
|
in a corporate environment, please see the
|
|
@@ -265,7 +267,7 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
265
267
|
- **`ui.compactToolOutput`** (boolean):
|
|
266
268
|
- **Description:** Display tool outputs (like directory listings and file
|
|
267
269
|
reads) in a compact, structured format.
|
|
268
|
-
- **Default:** `
|
|
270
|
+
- **Default:** `true`
|
|
269
271
|
|
|
270
272
|
- **`ui.hideBanner`** (boolean):
|
|
271
273
|
- **Description:** Hide the application banner
|
|
@@ -337,6 +339,16 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
337
339
|
- **Default:** `false`
|
|
338
340
|
- **Requires restart:** Yes
|
|
339
341
|
|
|
342
|
+
- **`ui.renderProcess`** (boolean):
|
|
343
|
+
- **Description:** Enable Ink render process for the UI.
|
|
344
|
+
- **Default:** `true`
|
|
345
|
+
- **Requires restart:** Yes
|
|
346
|
+
|
|
347
|
+
- **`ui.terminalBuffer`** (boolean):
|
|
348
|
+
- **Description:** Use the new terminal buffer architecture for rendering.
|
|
349
|
+
- **Default:** `false`
|
|
350
|
+
- **Requires restart:** Yes
|
|
351
|
+
|
|
340
352
|
- **`ui.useBackgroundColor`** (boolean):
|
|
341
353
|
- **Description:** Whether to use background colors in the UI.
|
|
342
354
|
- **Default:** `true`
|
|
@@ -1242,7 +1254,8 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
1242
1254
|
- **Requires restart:** Yes
|
|
1243
1255
|
|
|
1244
1256
|
- **`agents.browser.visualModel`** (string):
|
|
1245
|
-
- **Description:** Model
|
|
1257
|
+
- **Description:** Model for the visual agent's analyze_screenshot tool. When
|
|
1258
|
+
set, enables the tool.
|
|
1246
1259
|
- **Default:** `undefined`
|
|
1247
1260
|
- **Requires restart:** Yes
|
|
1248
1261
|
|
|
@@ -1391,7 +1404,7 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
1391
1404
|
|
|
1392
1405
|
- **`tools.shell.showColor`** (boolean):
|
|
1393
1406
|
- **Description:** Show color in shell output.
|
|
1394
|
-
- **Default:** `
|
|
1407
|
+
- **Default:** `true`
|
|
1395
1408
|
|
|
1396
1409
|
- **`tools.shell.inactivityTimeout`** (number):
|
|
1397
1410
|
- **Description:** The maximum time in seconds allowed without output from the
|
|
@@ -1479,9 +1492,10 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
1479
1492
|
#### `security`
|
|
1480
1493
|
|
|
1481
1494
|
- **`security.toolSandboxing`** (boolean):
|
|
1482
|
-
- **Description:**
|
|
1483
|
-
|
|
1495
|
+
- **Description:** Tool-level sandboxing. Isolates individual tools instead of
|
|
1496
|
+
the entire CLI process.
|
|
1484
1497
|
- **Default:** `false`
|
|
1498
|
+
- **Requires restart:** Yes
|
|
1485
1499
|
|
|
1486
1500
|
- **`security.disableYoloMode`** (boolean):
|
|
1487
1501
|
- **Description:** Disable YOLO mode, even if enabled by a flag.
|
|
@@ -1565,7 +1579,7 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
1565
1579
|
|
|
1566
1580
|
- **`advanced.autoConfigureMemory`** (boolean):
|
|
1567
1581
|
- **Description:** Automatically configure Node.js memory limits
|
|
1568
|
-
- **Default:** `
|
|
1582
|
+
- **Default:** `true`
|
|
1569
1583
|
- **Requires restart:** Yes
|
|
1570
1584
|
|
|
1571
1585
|
- **`advanced.dnsResolutionOrder`** (string):
|
|
@@ -1587,6 +1601,17 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
1587
1601
|
|
|
1588
1602
|
#### `experimental`
|
|
1589
1603
|
|
|
1604
|
+
- **`experimental.adk.agentSessionNoninteractiveEnabled`** (boolean):
|
|
1605
|
+
- **Description:** Enable non-interactive agent sessions.
|
|
1606
|
+
- **Default:** `false`
|
|
1607
|
+
- **Requires restart:** Yes
|
|
1608
|
+
|
|
1609
|
+
- **`experimental.adk.agentSessionInteractiveEnabled`** (boolean):
|
|
1610
|
+
- **Description:** Enable the agent session implementation for the interactive
|
|
1611
|
+
CLI.
|
|
1612
|
+
- **Default:** `false`
|
|
1613
|
+
- **Requires restart:** Yes
|
|
1614
|
+
|
|
1590
1615
|
- **`experimental.enableAgents`** (boolean):
|
|
1591
1616
|
- **Description:** Enable local and remote subagents.
|
|
1592
1617
|
- **Default:** `true`
|
|
@@ -1685,6 +1710,11 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
1685
1710
|
- **Default:** `false`
|
|
1686
1711
|
- **Requires restart:** Yes
|
|
1687
1712
|
|
|
1713
|
+
- **`experimental.generalistProfile`** (boolean):
|
|
1714
|
+
- **Description:** Suitable for general coding and software development tasks.
|
|
1715
|
+
- **Default:** `false`
|
|
1716
|
+
- **Requires restart:** Yes
|
|
1717
|
+
|
|
1688
1718
|
- **`experimental.contextManagement`** (boolean):
|
|
1689
1719
|
- **Description:** Enable logic for context management.
|
|
1690
1720
|
- **Default:** `false`
|
|
@@ -86,13 +86,14 @@ available combinations.
|
|
|
86
86
|
|
|
87
87
|
#### Text Input
|
|
88
88
|
|
|
89
|
-
| Command
|
|
90
|
-
|
|
|
91
|
-
| `input.submit`
|
|
92
|
-
| `input.queueMessage`
|
|
93
|
-
| `input.newline`
|
|
94
|
-
| `input.openExternalEditor`
|
|
95
|
-
| `input.
|
|
89
|
+
| Command | Action | Keys |
|
|
90
|
+
| ------------------------------------ | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
91
|
+
| `input.submit` | Submit the current prompt. | `Enter` |
|
|
92
|
+
| `input.queueMessage` | Queue the current prompt to be processed after the current task finishes. | `Tab` |
|
|
93
|
+
| `input.newline` | Insert a newline without submitting. | `Ctrl+Enter`<br />`Cmd/Win+Enter`<br />`Alt+Enter`<br />`Shift+Enter`<br />`Ctrl+J` |
|
|
94
|
+
| `input.openExternalEditor` | Open the current prompt or the plan in an external editor. | `Ctrl+G` |
|
|
95
|
+
| `input.deprecatedOpenExternalEditor` | Deprecated command to open external editor. | `Ctrl+X` |
|
|
96
|
+
| `input.paste` | Paste from the clipboard. | `Ctrl+V`<br />`Cmd/Win+V`<br />`Alt+V` |
|
|
96
97
|
|
|
97
98
|
#### App Controls
|
|
98
99
|
|
|
@@ -100,9 +101,10 @@ available combinations.
|
|
|
100
101
|
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
|
|
101
102
|
| `app.showErrorDetails` | Toggle detailed error information. | `F12` |
|
|
102
103
|
| `app.showFullTodos` | Toggle the full TODO list. | `Ctrl+T` |
|
|
103
|
-
| `app.showIdeContextDetail` | Show IDE context details. | `
|
|
104
|
+
| `app.showIdeContextDetail` | Show IDE context details. | `F4` |
|
|
104
105
|
| `app.toggleMarkdown` | Toggle Markdown rendering. | `Alt+M` |
|
|
105
|
-
| `app.toggleCopyMode` | Toggle copy mode when in alternate buffer mode. | `
|
|
106
|
+
| `app.toggleCopyMode` | Toggle copy mode when in alternate buffer mode. | `F9` |
|
|
107
|
+
| `app.toggleMouseMode` | Toggle mouse mode (scrolling and clicking). | `Ctrl+S` |
|
|
106
108
|
| `app.toggleYolo` | Toggle YOLO (auto-approval) mode for tool calls. | `Ctrl+Y` |
|
|
107
109
|
| `app.cycleApprovalMode` | Cycle through approval modes: default (prompt), auto_edit (auto-approve edits), and plan (read-only). Plan mode is skipped when the agent is busy. | `Shift+Tab` |
|
|
108
110
|
| `app.showMoreLines` | Expand and collapse blocks of content when not in alternate buffer mode. | `Ctrl+O` |
|
|
@@ -126,6 +128,9 @@ available combinations.
|
|
|
126
128
|
| `background.unfocus` | Move focus from background shell to Gemini. | `Shift+Tab` |
|
|
127
129
|
| `background.unfocusList` | Move focus from background shell list to Gemini. | `Tab` |
|
|
128
130
|
| `background.unfocusWarning` | Show warning when trying to move focus away from background shell. | `Tab` |
|
|
131
|
+
| `app.dumpFrame` | Dump the current frame as a snapshot. | `F8` |
|
|
132
|
+
| `app.startRecording` | Start recording the session. | `F6` |
|
|
133
|
+
| `app.stopRecording` | Stop recording the session. | `F7` |
|
|
129
134
|
|
|
130
135
|
#### Extension Controls
|
|
131
136
|
|
|
@@ -115,10 +115,10 @@ each tool.
|
|
|
115
115
|
|
|
116
116
|
### Web
|
|
117
117
|
|
|
118
|
-
| Tool | Kind | Description
|
|
119
|
-
| :-------------------------------------------- | :------- |
|
|
120
|
-
| [`google_web_search`](../tools/web-search.md) | `Search` | Performs a Google Search to find up-to-date information.
|
|
121
|
-
| [`web_fetch`](../tools/web-fetch.md) | `Fetch` | Retrieves and processes content from specific URLs. **Warning:** This tool can access local and private network addresses (e.g., localhost), which may pose a security risk if used with untrusted prompts. |
|
|
118
|
+
| Tool | Kind | Description |
|
|
119
|
+
| :-------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
120
|
+
| [`google_web_search`](../tools/web-search.md) | `Search` | Performs a Google Search to find up-to-date information. |
|
|
121
|
+
| [`web_fetch`](../tools/web-fetch.md) | `Fetch` | Retrieves and processes content from specific URLs. **Warning:** This tool can access local and private network addresses (e.g., localhost), which may pose a security risk if used with untrusted prompts. In Plan Mode, this tool requires explicit user confirmation. |
|
|
122
122
|
|
|
123
123
|
## Under the hood
|
|
124
124
|
|
|
@@ -22,12 +22,6 @@ nightly) or the release branch (for preview/stable).
|
|
|
22
22
|
|
|
23
23
|
- **Platforms:** Tests must pass on **Linux and macOS**.
|
|
24
24
|
|
|
25
|
-
<!-- prettier-ignore -->
|
|
26
|
-
> [!NOTE]
|
|
27
|
-
> Windows tests currently run with `continue-on-error: true`. While a
|
|
28
|
-
> failure here doesn't block the release technically, it should be
|
|
29
|
-
> investigated.
|
|
30
|
-
|
|
31
25
|
- **Checks:**
|
|
32
26
|
- **Linting:** No linting errors (ESLint, Prettier, etc.).
|
|
33
27
|
- **Typechecking:** No TypeScript errors.
|
package/dist/docs/releases.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Gemini CLI releases
|
|
2
2
|
|
|
3
|
+
<!-- prettier-ignore -->
|
|
4
|
+
> [!IMPORTANT]
|
|
5
|
+
> **Coordinate with the Release Manager:** The release manager is responsible for coordinating patches and releases. Please update them before performing any of the release actions described in this document.
|
|
6
|
+
|
|
3
7
|
## `dev` vs `prod` environment
|
|
4
8
|
|
|
5
9
|
Our release flows support both `dev` and `prod` environments.
|
|
@@ -290,7 +290,7 @@ When connecting to an OAuth-enabled server:
|
|
|
290
290
|
> OAuth authentication requires that your local machine can:
|
|
291
291
|
>
|
|
292
292
|
> - Open a web browser for authentication
|
|
293
|
-
> - Receive redirects on `http://localhost
|
|
293
|
+
> - Receive redirects on `http://localhost:<random-port>/oauth/callback` (or a specific port if configured via `redirectUri`)
|
|
294
294
|
|
|
295
295
|
This feature will not work in:
|
|
296
296
|
|
|
@@ -323,8 +323,8 @@ Use the `/mcp auth` command to manage OAuth authentication:
|
|
|
323
323
|
if omitted)
|
|
324
324
|
- **`tokenUrl`** (string): OAuth token endpoint (auto-discovered if omitted)
|
|
325
325
|
- **`scopes`** (string[]): Required OAuth scopes
|
|
326
|
-
- **`redirectUri`** (string): Custom redirect URI (defaults to
|
|
327
|
-
`http://localhost
|
|
326
|
+
- **`redirectUri`** (string): Custom redirect URI (defaults to an OS-assigned
|
|
327
|
+
random port, e.g., `http://localhost:<random-port>/oauth/callback`)
|
|
328
328
|
- **`tokenParamName`** (string): Query parameter name for tokens in SSE URLs
|
|
329
329
|
- **`audiences`** (string[]): Audiences the token is valid for
|
|
330
330
|
|
|
@@ -17,6 +17,9 @@ specific operations like summarization or extraction.
|
|
|
17
17
|
## Technical behavior
|
|
18
18
|
|
|
19
19
|
- **Confirmation:** Triggers a confirmation dialog showing the converted URLs.
|
|
20
|
+
- **Plan Mode:** In [Plan Mode](../cli/plan-mode.md), `web_fetch` is available
|
|
21
|
+
but always requires explicit user confirmation (`ask_user`) due to security
|
|
22
|
+
implications of accessing external or private network addresses.
|
|
20
23
|
- **Processing:** Uses the Gemini API's `urlContext` for retrieval.
|
|
21
24
|
- **Fallback:** If API access fails, the tool attempts to fetch raw content
|
|
22
25
|
directly from your local machine.
|