@google/gemini-cli-core 0.36.0-preview.8 → 0.37.0-preview.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/dist/docs/CONTRIBUTING.md +10 -7
- package/dist/docs/assets/theme-tokyonight-dark.png +0 -0
- package/dist/docs/changelogs/index.md +24 -0
- package/dist/docs/changelogs/latest.md +366 -459
- package/dist/docs/changelogs/preview.md +362 -356
- package/dist/docs/cli/acp-mode.md +126 -0
- package/dist/docs/cli/cli-reference.md +1 -1
- package/dist/docs/cli/notifications.md +5 -5
- package/dist/docs/cli/plan-mode.md +12 -8
- package/dist/docs/cli/sandbox.md +1 -1
- package/dist/docs/cli/settings.md +14 -13
- package/dist/docs/cli/themes.md +5 -0
- package/dist/docs/core/index.md +2 -2
- package/dist/docs/core/subagents.md +134 -23
- package/dist/docs/get-started/gemini-3.md +1 -1
- package/dist/docs/get-started/index.md +127 -1
- package/dist/docs/ide-integration/index.md +99 -24
- package/dist/docs/index.md +0 -2
- package/dist/docs/redirects.json +1 -0
- package/dist/docs/reference/commands.md +1 -3
- package/dist/docs/reference/configuration.md +182 -91
- package/dist/docs/reference/keyboard-shortcuts.md +14 -6
- package/dist/docs/reference/policy-engine.md +16 -30
- package/dist/docs/reference/tools.md +56 -23
- package/dist/docs/resources/quota-and-pricing.md +23 -9
- package/dist/docs/sidebar.json +11 -4
- package/dist/docs/tools/planning.md +6 -4
- package/dist/src/agents/agentLoader.d.ts +12 -12
- package/dist/src/agents/agentLoader.js +1 -0
- package/dist/src/agents/agentLoader.js.map +1 -1
- package/dist/src/agents/browser/automationOverlay.js +2 -10
- package/dist/src/agents/browser/automationOverlay.js.map +1 -1
- package/dist/src/agents/browser/browserAgentDefinition.js +10 -3
- package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -1
- package/dist/src/agents/browser/browserAgentFactory.d.ts +4 -4
- package/dist/src/agents/browser/browserAgentFactory.js +15 -29
- package/dist/src/agents/browser/browserAgentFactory.js.map +1 -1
- package/dist/src/agents/browser/browserAgentFactory.test.js +41 -24
- package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -1
- package/dist/src/agents/browser/browserAgentInvocation.d.ts +1 -0
- package/dist/src/agents/browser/browserAgentInvocation.js +60 -27
- package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
- package/dist/src/agents/browser/browserAgentInvocation.test.js +59 -5
- package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
- package/dist/src/agents/browser/browserManager.d.ts +51 -8
- package/dist/src/agents/browser/browserManager.js +242 -70
- package/dist/src/agents/browser/browserManager.js.map +1 -1
- package/dist/src/agents/browser/browserManager.test.js +384 -17
- package/dist/src/agents/browser/browserManager.test.js.map +1 -1
- package/dist/src/agents/browser/inputBlocker.d.ts +4 -4
- package/dist/src/agents/browser/inputBlocker.js +8 -18
- package/dist/src/agents/browser/inputBlocker.js.map +1 -1
- package/dist/src/agents/browser/inputBlocker.test.js +31 -3
- package/dist/src/agents/browser/inputBlocker.test.js.map +1 -1
- package/dist/src/agents/browser/mcpToolWrapper.d.ts +1 -1
- package/dist/src/agents/browser/mcpToolWrapper.js +9 -6
- package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -1
- package/dist/src/agents/browser/mcpToolWrapper.test.js +2 -2
- package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -1
- package/dist/src/agents/browser/snapshotSuperseder.d.ts +31 -0
- package/dist/src/agents/browser/snapshotSuperseder.js +101 -0
- package/dist/src/agents/browser/snapshotSuperseder.js.map +1 -0
- package/dist/src/agents/browser/snapshotSuperseder.test.js +158 -0
- package/dist/src/agents/browser/snapshotSuperseder.test.js.map +1 -0
- package/dist/src/agents/local-executor.d.ts +4 -0
- package/dist/src/agents/local-executor.js +46 -19
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.js +118 -18
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/local-invocation.d.ts +1 -0
- package/dist/src/agents/local-invocation.js +19 -9
- package/dist/src/agents/local-invocation.js.map +1 -1
- package/dist/src/agents/local-invocation.test.js +24 -0
- package/dist/src/agents/local-invocation.test.js.map +1 -1
- package/dist/src/agents/registry.js +16 -1
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +67 -0
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/types.d.ts +9 -0
- package/dist/src/agents/types.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +8 -3
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +57 -0
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/setup.js +5 -2
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/code_assist/setup.test.js +27 -1
- package/dist/src/code_assist/setup.test.js.map +1 -1
- package/dist/src/code_assist/types.d.ts +80 -80
- package/dist/src/config/agent-loop-context.d.ts +2 -0
- package/dist/src/config/config.d.ts +81 -16
- package/dist/src/config/config.js +146 -50
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +89 -2
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/defaultModelConfigs.js +9 -0
- package/dist/src/config/defaultModelConfigs.js.map +1 -1
- package/dist/src/config/memory.d.ts +1 -0
- package/dist/src/config/memory.js +6 -0
- package/dist/src/config/memory.js.map +1 -1
- package/dist/src/config/storage.d.ts +1 -0
- package/dist/src/config/storage.js +4 -0
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +5 -0
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/config/topicState.d.ts +21 -0
- package/dist/src/config/topicState.js +41 -0
- package/dist/src/config/topicState.js.map +1 -0
- package/dist/src/confirmation-bus/types.d.ts +9 -2
- package/dist/src/confirmation-bus/types.js +1 -0
- package/dist/src/confirmation-bus/types.js.map +1 -1
- package/dist/src/context/agentHistoryProvider.d.ts +45 -0
- package/dist/src/context/agentHistoryProvider.js +298 -0
- package/dist/src/context/agentHistoryProvider.js.map +1 -0
- package/dist/src/context/agentHistoryProvider.test.d.ts +6 -0
- package/dist/src/context/agentHistoryProvider.test.js +394 -0
- package/dist/src/context/agentHistoryProvider.test.js.map +1 -0
- package/dist/src/context/chatCompressionService.js.map +1 -0
- package/dist/src/context/chatCompressionService.test.js.map +1 -0
- package/dist/src/{services → context}/contextManager.d.ts +2 -0
- package/dist/src/{services → context}/contextManager.js +18 -9
- package/dist/src/context/contextManager.js.map +1 -0
- package/dist/src/{services → context}/contextManager.test.js +21 -6
- package/dist/src/context/contextManager.test.js.map +1 -0
- package/dist/src/context/toolDistillationService.d.ts +38 -0
- package/dist/src/context/toolDistillationService.js +170 -0
- package/dist/src/context/toolDistillationService.js.map +1 -0
- package/dist/src/context/toolDistillationService.test.d.ts +6 -0
- package/dist/src/context/toolDistillationService.test.js +83 -0
- package/dist/src/context/toolDistillationService.test.js.map +1 -0
- package/dist/src/{services → context}/toolOutputMaskingService.d.ts +2 -2
- package/dist/src/{services → context}/toolOutputMaskingService.js +7 -7
- package/dist/src/context/toolOutputMaskingService.js.map +1 -0
- package/dist/src/context/toolOutputMaskingService.test.d.ts +6 -0
- package/dist/src/{services → context}/toolOutputMaskingService.test.js +4 -5
- package/dist/src/context/toolOutputMaskingService.test.js.map +1 -0
- package/dist/src/context/truncation.d.ts +26 -0
- package/dist/src/context/truncation.js +102 -0
- package/dist/src/context/truncation.js.map +1 -0
- package/dist/src/core/client.d.ts +3 -1
- package/dist/src/core/client.js +23 -13
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +29 -34
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +0 -1
- package/dist/src/core/contentGenerator.js +2 -28
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +1 -101
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +4 -5
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +71 -18
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/prompts-substitution.test.js +5 -0
- package/dist/src/core/prompts-substitution.test.js.map +1 -1
- package/dist/src/core/prompts.test.js +3 -0
- package/dist/src/core/prompts.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/index.d.ts +7 -3
- package/dist/src/index.js +9 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/policy/config.d.ts +1 -1
- package/dist/src/policy/config.js +5 -2
- package/dist/src/policy/config.js.map +1 -1
- package/dist/src/policy/policies/discovered.toml +7 -0
- package/dist/src/policy/policies/non-interactive.toml +7 -0
- package/dist/src/policy/policies/plan.toml +25 -0
- package/dist/src/policy/policies/read-only.toml +6 -0
- package/dist/src/policy/policies/sandbox-default.toml +3 -2
- package/dist/src/policy/policies/write.toml +21 -0
- package/dist/src/policy/policies/yolo.toml +1 -1
- package/dist/src/policy/policy-engine.d.ts +2 -4
- package/dist/src/policy/policy-engine.js +24 -37
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +107 -29
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/topic-policy.test.d.ts +6 -0
- package/dist/src/policy/topic-policy.test.js +48 -0
- package/dist/src/policy/topic-policy.test.js.map +1 -0
- package/dist/src/policy/types.d.ts +3 -6
- package/dist/src/policy/types.js.map +1 -1
- package/dist/src/prompts/promptProvider.js +20 -4
- package/dist/src/prompts/promptProvider.js.map +1 -1
- package/dist/src/prompts/promptProvider.test.js +84 -1
- package/dist/src/prompts/promptProvider.test.js.map +1 -1
- package/dist/src/prompts/snippets-memory-manager.test.js +1 -1
- package/dist/src/prompts/snippets-memory-manager.test.js.map +1 -1
- package/dist/src/prompts/snippets.d.ts +3 -4
- package/dist/src/prompts/snippets.js +33 -51
- package/dist/src/prompts/snippets.js.map +1 -1
- package/dist/src/prompts/snippets.legacy.d.ts +6 -4
- package/dist/src/prompts/snippets.legacy.js +32 -7
- package/dist/src/prompts/snippets.legacy.js.map +1 -1
- package/dist/src/sandbox/linux/LinuxSandboxManager.d.ts +11 -1
- package/dist/src/sandbox/linux/LinuxSandboxManager.js +261 -27
- package/dist/src/sandbox/linux/LinuxSandboxManager.js.map +1 -1
- package/dist/src/sandbox/linux/LinuxSandboxManager.test.js +430 -125
- package/dist/src/sandbox/linux/LinuxSandboxManager.test.js.map +1 -1
- package/dist/src/sandbox/macos/MacOsSandboxManager.d.ts +7 -22
- package/dist/src/sandbox/macos/MacOsSandboxManager.js +58 -57
- package/dist/src/sandbox/macos/MacOsSandboxManager.js.map +1 -1
- package/dist/src/sandbox/macos/MacOsSandboxManager.test.js +148 -103
- 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 +0 -6
- package/dist/src/sandbox/macos/baseProfile.js.map +1 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.d.ts +10 -10
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.js +80 -92
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.js.map +1 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js +135 -99
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js.map +1 -1
- package/dist/src/sandbox/{macos → utils}/commandSafety.d.ts +11 -0
- package/dist/src/sandbox/{macos → utils}/commandSafety.js +47 -14
- package/dist/src/sandbox/utils/commandSafety.js.map +1 -0
- package/dist/src/sandbox/utils/commandUtils.d.ts +9 -0
- package/dist/src/sandbox/utils/commandUtils.js +57 -0
- package/dist/src/sandbox/utils/commandUtils.js.map +1 -0
- package/dist/src/sandbox/utils/fsUtils.d.ts +11 -0
- package/dist/src/sandbox/utils/fsUtils.js +82 -0
- package/dist/src/sandbox/utils/fsUtils.js.map +1 -0
- package/dist/src/sandbox/utils/sandboxDenialUtils.d.ts +12 -0
- package/dist/src/sandbox/utils/sandboxDenialUtils.js +68 -0
- package/dist/src/sandbox/utils/sandboxDenialUtils.js.map +1 -0
- package/dist/src/sandbox/utils/sandboxDenialUtils.test.d.ts +6 -0
- package/dist/src/sandbox/utils/sandboxDenialUtils.test.js +37 -0
- package/dist/src/sandbox/utils/sandboxDenialUtils.test.js.map +1 -0
- package/dist/src/sandbox/utils/sandboxReadWriteUtils.d.ts +5 -0
- package/dist/src/sandbox/utils/sandboxReadWriteUtils.js +60 -0
- package/dist/src/sandbox/utils/sandboxReadWriteUtils.js.map +1 -0
- package/dist/src/sandbox/windows/GeminiSandbox.cs +257 -216
- package/dist/src/sandbox/windows/WindowsSandboxManager.d.ts +12 -2
- package/dist/src/sandbox/windows/WindowsSandboxManager.js +250 -38
- package/dist/src/sandbox/windows/WindowsSandboxManager.js.map +1 -1
- package/dist/src/sandbox/windows/WindowsSandboxManager.test.js +326 -9
- package/dist/src/sandbox/windows/WindowsSandboxManager.test.js.map +1 -1
- package/dist/src/sandbox/windows/commandSafety.d.ts +19 -0
- package/dist/src/sandbox/windows/commandSafety.js +128 -0
- package/dist/src/sandbox/windows/commandSafety.js.map +1 -0
- package/dist/src/sandbox/windows/commandSafety.test.d.ts +6 -0
- package/dist/src/sandbox/windows/commandSafety.test.js +42 -0
- package/dist/src/sandbox/windows/commandSafety.test.js.map +1 -0
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.d.ts +12 -0
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js +68 -0
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js.map +1 -0
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.d.ts +6 -0
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.js +68 -0
- package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.js.map +1 -0
- package/dist/src/scheduler/scheduler.js +12 -2
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/scheduler/scheduler.test.js +52 -0
- package/dist/src/scheduler/scheduler.test.js.map +1 -1
- package/dist/src/scheduler/scheduler_hooks.test.js +1 -0
- package/dist/src/scheduler/scheduler_hooks.test.js.map +1 -1
- package/dist/src/scheduler/state-manager.js +1 -1
- package/dist/src/scheduler/state-manager.js.map +1 -1
- package/dist/src/scheduler/state-manager.test.js +10 -0
- package/dist/src/scheduler/state-manager.test.js.map +1 -1
- package/dist/src/scheduler/tool-executor.js +7 -2
- package/dist/src/scheduler/tool-executor.js.map +1 -1
- package/dist/src/scheduler/tool-executor.test.js +38 -0
- package/dist/src/scheduler/tool-executor.test.js.map +1 -1
- package/dist/src/scheduler/types.d.ts +4 -2
- package/dist/src/services/chatRecordingService.d.ts +1 -13
- package/dist/src/services/chatRecordingService.js +45 -46
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +79 -10
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/executionLifecycleService.d.ts +43 -6
- package/dist/src/services/executionLifecycleService.js +49 -12
- package/dist/src/services/executionLifecycleService.js.map +1 -1
- package/dist/src/services/executionLifecycleService.test.js +157 -3
- package/dist/src/services/executionLifecycleService.test.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.d.ts +17 -2
- package/dist/src/services/fileDiscoveryService.js +84 -20
- package/dist/src/services/fileDiscoveryService.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.test.js +67 -1
- package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
- package/dist/src/services/modelConfigService.d.ts +11 -0
- package/dist/src/services/modelConfigService.js +67 -0
- package/dist/src/services/modelConfigService.js.map +1 -1
- package/dist/src/services/modelConfigService.test.js +30 -0
- package/dist/src/services/modelConfigService.test.js.map +1 -1
- package/dist/src/services/sandboxManager.d.ts +90 -8
- package/dist/src/services/sandboxManager.integration.test.js +438 -0
- package/dist/src/services/sandboxManager.integration.test.js.map +1 -0
- package/dist/src/services/sandboxManager.js +156 -13
- package/dist/src/services/sandboxManager.js.map +1 -1
- package/dist/src/services/sandboxManager.test.js +373 -117
- package/dist/src/services/sandboxManager.test.js.map +1 -1
- package/dist/src/services/sandboxManagerFactory.d.ts +2 -3
- package/dist/src/services/sandboxManagerFactory.js +10 -17
- package/dist/src/services/sandboxManagerFactory.js.map +1 -1
- package/dist/src/services/sandboxedFileSystemService.d.ts +1 -0
- package/dist/src/services/sandboxedFileSystemService.js +32 -3
- package/dist/src/services/sandboxedFileSystemService.js.map +1 -1
- package/dist/src/services/sandboxedFileSystemService.test.js +83 -12
- package/dist/src/services/sandboxedFileSystemService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +2 -0
- package/dist/src/services/shellExecutionService.js +45 -16
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +5 -4
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/services/test-data/resolved-aliases-retry.golden.json +4 -0
- package/dist/src/services/test-data/resolved-aliases.golden.json +4 -0
- package/dist/src/services/types.d.ts +14 -0
- package/dist/src/services/types.js +7 -0
- package/dist/src/services/types.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +6 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +5 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +2 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +3 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/loggers.js +1 -1
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +8 -3
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +10 -1
- package/dist/src/telemetry/metrics.js +19 -4
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +44 -0
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +3 -3
- package/dist/src/telemetry/types.js +9 -4
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/test-utils/mock-message-bus.d.ts +1 -1
- package/dist/src/test-utils/mock-message-bus.js +1 -1
- package/dist/src/test-utils/mock-message-bus.js.map +1 -1
- package/dist/src/tools/definitions/base-declarations.d.ts +6 -0
- package/dist/src/tools/definitions/base-declarations.js +7 -0
- package/dist/src/tools/definitions/base-declarations.js.map +1 -1
- package/dist/src/tools/definitions/coreTools.d.ts +2 -1
- package/dist/src/tools/definitions/coreTools.js +9 -3
- package/dist/src/tools/definitions/coreTools.js.map +1 -1
- package/dist/src/tools/definitions/dynamic-declaration-helpers.d.ts +4 -0
- package/dist/src/tools/definitions/dynamic-declaration-helpers.js +29 -2
- package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
- package/dist/src/tools/definitions/model-family-sets/default-legacy.js +11 -6
- 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 +10 -4
- package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
- package/dist/src/tools/definitions/trackerTools.js +3 -3
- package/dist/src/tools/definitions/trackerTools.js.map +1 -1
- package/dist/src/tools/definitions/types.d.ts +1 -0
- package/dist/src/tools/enter-plan-mode.js +15 -0
- package/dist/src/tools/enter-plan-mode.js.map +1 -1
- package/dist/src/tools/enter-plan-mode.test.js +25 -0
- package/dist/src/tools/enter-plan-mode.test.js.map +1 -1
- package/dist/src/tools/grep-utils.d.ts +2 -1
- package/dist/src/tools/grep-utils.js +22 -3
- package/dist/src/tools/grep-utils.js.map +1 -1
- package/dist/src/tools/grep.js +16 -3
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +34 -6
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.js +6 -4
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +22 -7
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.js +6 -3
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +35 -0
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +9 -2
- package/dist/src/tools/memoryTool.js +39 -15
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/memoryTool.test.js +61 -2
- package/dist/src/tools/memoryTool.test.js.map +1 -1
- package/dist/src/tools/read-many-files.js +12 -4
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +17 -17
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/ripGrep.js +14 -1
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +9 -9
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +10 -0
- package/dist/src/tools/shell.js +97 -124
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +22 -3
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +4 -4
- package/dist/src/tools/tool-names.js +5 -3
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-registry.js +11 -1
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +43 -1
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +12 -1
- package/dist/src/tools/tools.js +15 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/tools.test.js +42 -1
- package/dist/src/tools/tools.test.js.map +1 -1
- package/dist/src/tools/topicTool.d.ts +29 -0
- package/dist/src/tools/topicTool.js +72 -0
- package/dist/src/tools/topicTool.js.map +1 -0
- package/dist/src/tools/topicTool.test.d.ts +6 -0
- package/dist/src/tools/topicTool.test.js +105 -0
- package/dist/src/tools/topicTool.test.js.map +1 -0
- package/dist/src/tools/web-fetch.js +38 -20
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +28 -0
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/utils/checkpointUtils.d.ts +4 -4
- package/dist/src/utils/errors.d.ts +3 -0
- package/dist/src/utils/errors.js +28 -6
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.js +23 -0
- package/dist/src/utils/errors.test.js.map +1 -1
- package/dist/src/utils/getFolderStructure.js +1 -1
- package/dist/src/utils/getFolderStructure.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.d.ts +2 -2
- package/dist/src/utils/gitIgnoreParser.js +28 -50
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.test.js +51 -185
- package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
- package/dist/src/utils/ignoreFileParser.d.ts +2 -2
- package/dist/src/utils/ignoreFileParser.js +6 -17
- package/dist/src/utils/ignoreFileParser.js.map +1 -1
- package/dist/src/utils/ignoreFileParser.test.js +40 -132
- package/dist/src/utils/ignoreFileParser.test.js.map +1 -1
- package/dist/src/utils/ignorePathUtils.d.ts +11 -0
- package/dist/src/utils/ignorePathUtils.js +39 -0
- package/dist/src/utils/ignorePathUtils.js.map +1 -0
- package/dist/src/utils/ignorePathUtils.test.d.ts +6 -0
- package/dist/src/utils/ignorePathUtils.test.js +70 -0
- package/dist/src/utils/ignorePathUtils.test.js.map +1 -0
- package/dist/src/utils/memoryDiscovery.d.ts +6 -4
- package/dist/src/utils/memoryDiscovery.js +66 -41
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +40 -0
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.d.ts +1 -1
- package/dist/src/utils/memoryImportProcessor.js +24 -15
- package/dist/src/utils/memoryImportProcessor.js.map +1 -1
- package/dist/src/utils/sessionOperations.d.ts +19 -0
- package/dist/src/utils/sessionOperations.js +101 -0
- package/dist/src/utils/sessionOperations.js.map +1 -0
- package/dist/src/utils/sessionOperations.test.d.ts +6 -0
- package/dist/src/utils/sessionOperations.test.js +92 -0
- package/dist/src/utils/sessionOperations.test.js.map +1 -0
- package/dist/src/utils/shell-utils.d.ts +15 -0
- package/dist/src/utils/shell-utils.js +43 -2
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/textUtils.d.ts +8 -0
- package/dist/src/utils/textUtils.js +16 -0
- package/dist/src/utils/textUtils.js.map +1 -1
- package/dist/src/utils/tokenCalculation.d.ts +2 -0
- package/dist/src/utils/tokenCalculation.js +2 -2
- package/dist/src/utils/tokenCalculation.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/docs/get-started/examples.md +0 -141
- package/dist/google-gemini-cli-core-0.36.0-preview.7.tgz +0 -0
- package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js +0 -164
- package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js.map +0 -1
- package/dist/src/sandbox/macos/commandSafety.js.map +0 -1
- package/dist/src/services/chatCompressionService.js.map +0 -1
- package/dist/src/services/chatCompressionService.test.js.map +0 -1
- package/dist/src/services/contextManager.js.map +0 -1
- package/dist/src/services/contextManager.test.js.map +0 -1
- package/dist/src/services/toolOutputMaskingService.js.map +0 -1
- package/dist/src/services/toolOutputMaskingService.test.js.map +0 -1
- /package/dist/src/{services/toolOutputMaskingService.test.d.ts → agents/browser/snapshotSuperseder.test.d.ts} +0 -0
- /package/dist/src/{services → context}/chatCompressionService.d.ts +0 -0
- /package/dist/src/{services → context}/chatCompressionService.js +0 -0
- /package/dist/src/{services → context}/chatCompressionService.test.d.ts +0 -0
- /package/dist/src/{services → context}/chatCompressionService.test.js +0 -0
- /package/dist/src/{services → context}/contextManager.test.d.ts +0 -0
- /package/dist/src/{sandbox/macos/MacOsSandboxManager.integration.test.d.ts → services/sandboxManager.integration.test.d.ts} +0 -0
|
@@ -30,8 +30,23 @@ const __filename = fileURLToPath(import.meta.url);
|
|
|
30
30
|
const __dirname = path.dirname(__filename);
|
|
31
31
|
// Default browser profile directory name within ~/.gemini/
|
|
32
32
|
const BROWSER_PROFILE_DIR = 'cli-browser-profile';
|
|
33
|
+
/**
|
|
34
|
+
* Typed error for domain restriction violations.
|
|
35
|
+
* Thrown when a navigation tool targets a domain not in allowedDomains.
|
|
36
|
+
* Caught by mcpToolWrapper to terminate the agent immediately.
|
|
37
|
+
*/
|
|
38
|
+
export class DomainNotAllowedError extends Error {
|
|
39
|
+
constructor(message) {
|
|
40
|
+
super(message);
|
|
41
|
+
this.name = 'DomainNotAllowedError';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
33
44
|
// Default timeout for MCP operations
|
|
34
45
|
const MCP_TIMEOUT_MS = 60_000;
|
|
46
|
+
// Maximum reconnection attempts before giving up
|
|
47
|
+
const MAX_RECONNECT_RETRIES = 3;
|
|
48
|
+
// Base delay (ms) for exponential backoff between reconnection attempts
|
|
49
|
+
const RECONNECT_BASE_DELAY_MS = 500;
|
|
35
50
|
/**
|
|
36
51
|
* Tools that can cause a full-page navigation (explicitly or implicitly).
|
|
37
52
|
*
|
|
@@ -63,10 +78,65 @@ const POTENTIALLY_NAVIGATING_TOOLS = new Set([
|
|
|
63
78
|
*/
|
|
64
79
|
export class BrowserManager {
|
|
65
80
|
config;
|
|
81
|
+
// --- Static singleton management ---
|
|
82
|
+
static instances = new Map();
|
|
83
|
+
/**
|
|
84
|
+
* Returns the cache key for a given config.
|
|
85
|
+
* Uses `sessionMode:profilePath` so different profiles get separate instances.
|
|
86
|
+
*/
|
|
87
|
+
static getInstanceKey(config) {
|
|
88
|
+
const browserConfig = config.getBrowserAgentConfig();
|
|
89
|
+
const sessionMode = browserConfig.customConfig.sessionMode ?? 'persistent';
|
|
90
|
+
const profilePath = browserConfig.customConfig.profilePath ?? 'default';
|
|
91
|
+
return `${sessionMode}:${profilePath}`;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Returns an existing BrowserManager for the current config's session mode
|
|
95
|
+
* and profile, or creates a new one.
|
|
96
|
+
*/
|
|
97
|
+
static getInstance(config) {
|
|
98
|
+
const key = BrowserManager.getInstanceKey(config);
|
|
99
|
+
let instance = BrowserManager.instances.get(key);
|
|
100
|
+
if (!instance) {
|
|
101
|
+
instance = new BrowserManager(config);
|
|
102
|
+
BrowserManager.instances.set(key, instance);
|
|
103
|
+
debugLogger.log(`Created new BrowserManager singleton (key: ${key})`);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
debugLogger.log(`Reusing existing BrowserManager singleton (key: ${key})`);
|
|
107
|
+
}
|
|
108
|
+
return instance;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Closes all cached BrowserManager instances and clears the cache.
|
|
112
|
+
* Called on /clear commands and CLI exit.
|
|
113
|
+
*/
|
|
114
|
+
static async resetAll() {
|
|
115
|
+
const results = await Promise.allSettled(Array.from(BrowserManager.instances.values()).map((instance) => instance.close()));
|
|
116
|
+
for (const result of results) {
|
|
117
|
+
if (result.status === 'rejected') {
|
|
118
|
+
debugLogger.error(`Error during BrowserManager cleanup: ${result.reason instanceof Error ? result.reason.message : String(result.reason)}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
BrowserManager.instances.clear();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Alias for resetAll — used by CLI exit cleanup for clarity.
|
|
125
|
+
*/
|
|
126
|
+
static async closeAll() {
|
|
127
|
+
await BrowserManager.resetAll();
|
|
128
|
+
}
|
|
129
|
+
// --- Instance state ---
|
|
66
130
|
// Raw MCP SDK Client - NOT the wrapper McpClient
|
|
67
131
|
rawMcpClient;
|
|
68
132
|
mcpTransport;
|
|
69
133
|
discoveredTools = [];
|
|
134
|
+
disconnected = false;
|
|
135
|
+
isClosing = false;
|
|
136
|
+
connectionPromise;
|
|
137
|
+
/** State for action rate limiting */
|
|
138
|
+
actionCounter = 0;
|
|
139
|
+
maxActionsPerTask;
|
|
70
140
|
/**
|
|
71
141
|
* Whether to inject the automation overlay.
|
|
72
142
|
* Always false in headless mode (no visible window to decorate).
|
|
@@ -78,6 +148,8 @@ export class BrowserManager {
|
|
|
78
148
|
const browserConfig = config.getBrowserAgentConfig();
|
|
79
149
|
this.shouldInjectOverlay = !browserConfig?.customConfig?.headless;
|
|
80
150
|
this.shouldDisableInput = config.shouldDisableBrowserUserInput();
|
|
151
|
+
this.maxActionsPerTask =
|
|
152
|
+
browserConfig?.customConfig.maxActionsPerTask ?? 100;
|
|
81
153
|
}
|
|
82
154
|
/**
|
|
83
155
|
* Gets the raw MCP SDK Client for direct tool calls.
|
|
@@ -107,23 +179,25 @@ export class BrowserManager {
|
|
|
107
179
|
* @param toolName The name of the tool to call
|
|
108
180
|
* @param args Arguments to pass to the tool
|
|
109
181
|
* @param signal Optional AbortSignal to cancel the call
|
|
182
|
+
* @param isInternal Determine if the tool is for internal execution
|
|
110
183
|
* @returns The result from the MCP server
|
|
111
184
|
*/
|
|
112
|
-
async callTool(toolName, args, signal) {
|
|
185
|
+
async callTool(toolName, args, signal, isInternal = false) {
|
|
113
186
|
if (signal?.aborted) {
|
|
114
187
|
throw signal.reason ?? new Error('Operation cancelled');
|
|
115
188
|
}
|
|
189
|
+
// Hard enforcement of per-action rate limit
|
|
190
|
+
if (!isInternal) {
|
|
191
|
+
if (this.actionCounter >= this.maxActionsPerTask) {
|
|
192
|
+
const error = new Error(`Browser agent reached maximum action limit (${this.maxActionsPerTask}). ` +
|
|
193
|
+
`Task terminated to prevent runaway execution. To config the limit, use maxActionsPerTask in the settings.`);
|
|
194
|
+
throw error;
|
|
195
|
+
}
|
|
196
|
+
this.actionCounter++;
|
|
197
|
+
}
|
|
116
198
|
const errorMessage = this.checkNavigationRestrictions(toolName, args);
|
|
117
199
|
if (errorMessage) {
|
|
118
|
-
|
|
119
|
-
content: [
|
|
120
|
-
{
|
|
121
|
-
type: 'text',
|
|
122
|
-
text: errorMessage,
|
|
123
|
-
},
|
|
124
|
-
],
|
|
125
|
-
isError: true,
|
|
126
|
-
};
|
|
200
|
+
throw new DomainNotAllowedError(errorMessage);
|
|
127
201
|
}
|
|
128
202
|
const client = await this.getRawMcpClient();
|
|
129
203
|
const callPromise = client.callTool({ name: toolName, arguments: args }, undefined, { timeout: MCP_TIMEOUT_MS });
|
|
@@ -154,23 +228,23 @@ export class BrowserManager {
|
|
|
154
228
|
// Re-inject the automation overlay and input blocker after tools that
|
|
155
229
|
// can cause a full-page navigation. chrome-devtools-mcp emits no MCP
|
|
156
230
|
// notifications, so callTool() is the only interception point.
|
|
231
|
+
//
|
|
232
|
+
// The input blocker injection is idempotent: the injected function
|
|
233
|
+
// reuses the existing DOM element when present and only recreates
|
|
234
|
+
// it when navigation has actually replaced the page DOM.
|
|
157
235
|
if (!result.isError &&
|
|
158
236
|
POTENTIALLY_NAVIGATING_TOOLS.has(toolName) &&
|
|
159
237
|
!signal?.aborted) {
|
|
238
|
+
// Don't re-inject if explicitly switching to a page in the background
|
|
239
|
+
if (toolName === 'select_page' && args['bringToFront'] === false) {
|
|
240
|
+
return result;
|
|
241
|
+
}
|
|
160
242
|
try {
|
|
161
243
|
if (this.shouldInjectOverlay) {
|
|
162
244
|
await injectAutomationOverlay(this, signal);
|
|
163
245
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
// click/click_at are handled by pointer-events suspend/resume
|
|
167
|
-
// in mcpToolWrapper — no full re-inject roundtrip needed.
|
|
168
|
-
// press_key/handle_dialog only sometimes navigate.
|
|
169
|
-
const reliableNavigation = toolName === 'navigate_page' ||
|
|
170
|
-
toolName === 'new_page' ||
|
|
171
|
-
toolName === 'select_page';
|
|
172
|
-
if (this.shouldDisableInput && reliableNavigation) {
|
|
173
|
-
await injectInputBlocker(this);
|
|
246
|
+
if (this.shouldDisableInput) {
|
|
247
|
+
await injectInputBlocker(this, signal);
|
|
174
248
|
}
|
|
175
249
|
}
|
|
176
250
|
catch {
|
|
@@ -196,20 +270,67 @@ export class BrowserManager {
|
|
|
196
270
|
isError: raw.isError === true,
|
|
197
271
|
};
|
|
198
272
|
}
|
|
273
|
+
/**
|
|
274
|
+
* Returns whether the MCP client is currently connected and healthy.
|
|
275
|
+
*/
|
|
276
|
+
isConnected() {
|
|
277
|
+
return this.rawMcpClient !== undefined && !this.disconnected;
|
|
278
|
+
}
|
|
199
279
|
/**
|
|
200
280
|
* Ensures browser and MCP client are connected.
|
|
281
|
+
* If a previous connection was lost (e.g., user closed the browser),
|
|
282
|
+
* this will reconnect with exponential backoff (up to MAX_RECONNECT_RETRIES).
|
|
283
|
+
*
|
|
284
|
+
* Concurrent callers share a single in-flight connection promise so that
|
|
285
|
+
* two subagents racing at startup do not trigger duplicate connectMcp() calls.
|
|
201
286
|
*/
|
|
202
287
|
async ensureConnection() {
|
|
203
|
-
|
|
288
|
+
// Already connected and healthy — nothing to do
|
|
289
|
+
if (this.isConnected()) {
|
|
204
290
|
return;
|
|
205
291
|
}
|
|
292
|
+
// A connection is already being established — wait for it instead of racing
|
|
293
|
+
if (this.connectionPromise) {
|
|
294
|
+
return this.connectionPromise;
|
|
295
|
+
}
|
|
296
|
+
// If previously connected but transport died, clean up before reconnecting
|
|
297
|
+
if (this.disconnected) {
|
|
298
|
+
debugLogger.log('Previous browser connection was lost. Cleaning up before reconnecting...');
|
|
299
|
+
await this.close();
|
|
300
|
+
this.disconnected = false;
|
|
301
|
+
}
|
|
302
|
+
// Start connecting; store the promise so concurrent callers can join it
|
|
303
|
+
this.connectionPromise = this.connectWithRetry().finally(() => {
|
|
304
|
+
this.connectionPromise = undefined;
|
|
305
|
+
});
|
|
306
|
+
return this.connectionPromise;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Connects to chrome-devtools-mcp with exponential backoff retry.
|
|
310
|
+
*/
|
|
311
|
+
async connectWithRetry() {
|
|
206
312
|
// Request browser consent if needed (first-run privacy notice)
|
|
207
313
|
const consentGranted = await getBrowserConsentIfNeeded();
|
|
208
314
|
if (!consentGranted) {
|
|
209
315
|
throw new Error('Browser agent requires user consent to proceed. ' +
|
|
210
316
|
'Please re-run and accept the privacy notice.');
|
|
211
317
|
}
|
|
212
|
-
|
|
318
|
+
let lastError;
|
|
319
|
+
for (let attempt = 0; attempt < MAX_RECONNECT_RETRIES; attempt++) {
|
|
320
|
+
try {
|
|
321
|
+
await this.connectMcp();
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
catch (error) {
|
|
325
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
326
|
+
if (attempt < MAX_RECONNECT_RETRIES - 1) {
|
|
327
|
+
const delay = RECONNECT_BASE_DELAY_MS * Math.pow(2, attempt);
|
|
328
|
+
debugLogger.log(`Connection attempt ${attempt + 1} failed, retrying in ${delay}ms...`);
|
|
329
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
throw lastError;
|
|
213
334
|
}
|
|
214
335
|
/**
|
|
215
336
|
* Closes browser and cleans up connections.
|
|
@@ -217,6 +338,7 @@ export class BrowserManager {
|
|
|
217
338
|
* the transport will terminate the browser.
|
|
218
339
|
*/
|
|
219
340
|
async close() {
|
|
341
|
+
this.isClosing = true;
|
|
220
342
|
// Close MCP client first
|
|
221
343
|
if (this.rawMcpClient) {
|
|
222
344
|
try {
|
|
@@ -238,6 +360,7 @@ export class BrowserManager {
|
|
|
238
360
|
this.mcpTransport = undefined;
|
|
239
361
|
}
|
|
240
362
|
this.discoveredTools = [];
|
|
363
|
+
this.connectionPromise = undefined;
|
|
241
364
|
}
|
|
242
365
|
/**
|
|
243
366
|
* Connects to chrome-devtools-mcp which manages the browser process.
|
|
@@ -250,6 +373,7 @@ export class BrowserManager {
|
|
|
250
373
|
* BrowserManager instance.
|
|
251
374
|
*/
|
|
252
375
|
async connectMcp() {
|
|
376
|
+
this.isClosing = false;
|
|
253
377
|
debugLogger.log('Connecting isolated MCP client to chrome-devtools-mcp...');
|
|
254
378
|
// Create raw MCP SDK Client (not the wrapper McpClient)
|
|
255
379
|
this.rawMcpClient = new Client({
|
|
@@ -260,7 +384,25 @@ export class BrowserManager {
|
|
|
260
384
|
});
|
|
261
385
|
// Build args for chrome-devtools-mcp
|
|
262
386
|
const browserConfig = this.config.getBrowserAgentConfig();
|
|
263
|
-
|
|
387
|
+
let sessionMode = browserConfig.customConfig.sessionMode ?? 'persistent';
|
|
388
|
+
// Detect sandbox environment.
|
|
389
|
+
// SANDBOX env var is set to 'sandbox-exec' (seatbelt) or the container
|
|
390
|
+
// name (Docker/Podman/gVisor/LXC) when running inside a sandbox.
|
|
391
|
+
// CI uses 'sandbox:none' as a metadata label — not a real sandbox.
|
|
392
|
+
const sandboxType = process.env['SANDBOX'];
|
|
393
|
+
const isContainerSandbox = !!sandboxType &&
|
|
394
|
+
sandboxType !== 'sandbox-exec' &&
|
|
395
|
+
sandboxType !== 'sandbox:none';
|
|
396
|
+
const isSeatbeltSandbox = sandboxType === 'sandbox-exec' && sessionMode !== 'existing';
|
|
397
|
+
// Seatbelt sandbox: force isolated + headless for filesystem compatibility.
|
|
398
|
+
// Chrome exists on the host, but persistent profiles may conflict with
|
|
399
|
+
// seatbelt restrictions. Isolated mode uses tmpdir (always writable).
|
|
400
|
+
if (isSeatbeltSandbox) {
|
|
401
|
+
if (sessionMode !== 'isolated') {
|
|
402
|
+
sessionMode = 'isolated';
|
|
403
|
+
coreEvents.emitFeedback('info', '🔒 Sandbox: Using isolated browser session for compatibility.');
|
|
404
|
+
}
|
|
405
|
+
}
|
|
264
406
|
const mcpArgs = ['--experimental-vision'];
|
|
265
407
|
// Session mode determines how the browser is managed:
|
|
266
408
|
// - "isolated": Temp profile, cleaned up after session (--isolated)
|
|
@@ -271,13 +413,37 @@ export class BrowserManager {
|
|
|
271
413
|
mcpArgs.push('--isolated');
|
|
272
414
|
}
|
|
273
415
|
else if (sessionMode === 'existing') {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
416
|
+
if (isContainerSandbox) {
|
|
417
|
+
// In container sandboxes, --autoConnect can't discover Chrome on the
|
|
418
|
+
// host (it uses local pipes/sockets). Use --browser-url with the
|
|
419
|
+
// resolved IP of host.docker.internal instead of the hostname, because
|
|
420
|
+
// Chrome's DevTools protocol rejects HTTP requests where the Host
|
|
421
|
+
// header is not 'localhost' or an IP address.
|
|
422
|
+
const dns = await import('node:dns');
|
|
423
|
+
let browserHost = 'host.docker.internal';
|
|
424
|
+
try {
|
|
425
|
+
const { address } = await dns.promises.lookup(browserHost);
|
|
426
|
+
browserHost = address;
|
|
427
|
+
}
|
|
428
|
+
catch {
|
|
429
|
+
// Fallback: use hostname as-is if DNS resolution fails
|
|
430
|
+
debugLogger.log(`Could not resolve host.docker.internal, using hostname directly`);
|
|
431
|
+
}
|
|
432
|
+
const browserUrl = `http://${browserHost}:9222`;
|
|
433
|
+
mcpArgs.push('--browser-url', browserUrl);
|
|
434
|
+
coreEvents.emitFeedback('info', `🔒 Container sandbox: Connecting to Chrome via ${browserHost}:9222.`);
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
mcpArgs.push('--autoConnect');
|
|
438
|
+
const message = '🔒 Browsing with your signed-in Chrome profile — cookies and saved logins will be visible to the agent.';
|
|
439
|
+
coreEvents.emitFeedback('info', message);
|
|
440
|
+
coreEvents.emitConsoleLog('info', message);
|
|
441
|
+
}
|
|
278
442
|
}
|
|
279
|
-
// Add optional settings from config
|
|
280
|
-
|
|
443
|
+
// Add optional settings from config.
|
|
444
|
+
// Force headless in seatbelt sandbox since Chrome profile/display access
|
|
445
|
+
// may be restricted, and the user is running in a sandboxed environment.
|
|
446
|
+
if (browserConfig.customConfig.headless || isSeatbeltSandbox) {
|
|
281
447
|
mcpArgs.push('--headless');
|
|
282
448
|
}
|
|
283
449
|
if (browserConfig.customConfig.profilePath) {
|
|
@@ -302,7 +468,7 @@ export class BrowserManager {
|
|
|
302
468
|
return `EXCLUDE ${domain}`;
|
|
303
469
|
})
|
|
304
470
|
.join(', ');
|
|
305
|
-
mcpArgs.push(`--chromeArg="--host-rules=MAP *
|
|
471
|
+
mcpArgs.push(`--chromeArg="--host-rules=MAP * ~NOTFOUND, ${exclusionRules}"`);
|
|
306
472
|
}
|
|
307
473
|
debugLogger.log(`Launching bundled chrome-devtools-mcp (${sessionMode} mode) with args: ${mcpArgs.join(' ')}`);
|
|
308
474
|
// Create stdio transport to the bundled chrome-devtools-mcp.
|
|
@@ -327,9 +493,12 @@ export class BrowserManager {
|
|
|
327
493
|
});
|
|
328
494
|
}
|
|
329
495
|
this.mcpTransport.onclose = () => {
|
|
496
|
+
this.disconnected = true;
|
|
497
|
+
if (this.isClosing) {
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
330
500
|
debugLogger.error('chrome-devtools-mcp transport closed unexpectedly. ' +
|
|
331
501
|
'The MCP server process may have crashed.');
|
|
332
|
-
this.rawMcpClient = undefined;
|
|
333
502
|
};
|
|
334
503
|
this.mcpTransport.onerror = (error) => {
|
|
335
504
|
debugLogger.error(`chrome-devtools-mcp transport error: ${error.message}`);
|
|
@@ -344,7 +513,8 @@ export class BrowserManager {
|
|
|
344
513
|
await this.rawMcpClient.connect(this.mcpTransport);
|
|
345
514
|
debugLogger.log('MCP client connected to chrome-devtools-mcp');
|
|
346
515
|
await this.discoverTools();
|
|
347
|
-
|
|
516
|
+
// clear the action counter for each connection
|
|
517
|
+
this.actionCounter = 0;
|
|
348
518
|
})(),
|
|
349
519
|
new Promise((_, reject) => {
|
|
350
520
|
timeoutId = setTimeout(() => reject(new Error(`Timed out connecting to chrome-devtools-mcp (${connectTimeoutMs}ms)`)), connectTimeoutMs);
|
|
@@ -446,57 +616,59 @@ export class BrowserManager {
|
|
|
446
616
|
}
|
|
447
617
|
try {
|
|
448
618
|
const parsedUrl = new URL(url);
|
|
449
|
-
const urlHostname = parsedUrl.hostname
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
619
|
+
const urlHostname = parsedUrl.hostname;
|
|
620
|
+
if (!this.isDomainAllowed(urlHostname, allowedDomains)) {
|
|
621
|
+
return 'Domain not allowed: The requested domain is not in the allowed list.';
|
|
622
|
+
}
|
|
623
|
+
// Check query parameters for embedded URLs that could bypass domain
|
|
624
|
+
// restrictions via proxy services (e.g. translate.google.com/translate?u=BLOCKED).
|
|
625
|
+
const paramsToCheck = [
|
|
626
|
+
...parsedUrl.searchParams.values(),
|
|
627
|
+
// Also check fragments which might contain query-like params
|
|
628
|
+
...new URLSearchParams(parsedUrl.hash.replace(/^#/, '')).values(),
|
|
629
|
+
];
|
|
630
|
+
for (const paramValue of paramsToCheck) {
|
|
631
|
+
try {
|
|
632
|
+
const embeddedUrl = new URL(paramValue);
|
|
633
|
+
if (embeddedUrl.protocol === 'http:' ||
|
|
634
|
+
embeddedUrl.protocol === 'https:') {
|
|
635
|
+
const embeddedHostname = embeddedUrl.hostname.replace(/\.$/, '');
|
|
636
|
+
if (!this.isDomainAllowed(embeddedHostname, allowedDomains)) {
|
|
637
|
+
return 'Domain not allowed: Embedded URL targets a disallowed domain.';
|
|
638
|
+
}
|
|
456
639
|
}
|
|
457
640
|
}
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
return undefined;
|
|
461
|
-
}
|
|
641
|
+
catch {
|
|
642
|
+
// Not a valid URL, skip.
|
|
462
643
|
}
|
|
463
644
|
}
|
|
645
|
+
return undefined;
|
|
464
646
|
}
|
|
465
647
|
catch {
|
|
466
648
|
return `Invalid URL: Malformed URL string.`;
|
|
467
649
|
}
|
|
468
|
-
// If none matched, then deny
|
|
469
|
-
return `Tool '${toolName}' is not permitted for the requested URL/domain based on your current browser settings.`;
|
|
470
650
|
}
|
|
471
651
|
/**
|
|
472
|
-
*
|
|
473
|
-
* automatically re-inject the input blocker after any server-side
|
|
474
|
-
* notification (e.g. page navigation, resource updates).
|
|
475
|
-
*
|
|
476
|
-
* This covers ALL navigation types (link clicks, form submissions,
|
|
477
|
-
* history navigation) — not just explicit navigate_page tool calls.
|
|
652
|
+
* Checks whether a hostname matches any pattern in the allowed domains list.
|
|
478
653
|
*/
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
// Chain with any existing handler first.
|
|
489
|
-
if (existingHandler) {
|
|
490
|
-
await existingHandler(notification);
|
|
654
|
+
isDomainAllowed(hostname, allowedDomains) {
|
|
655
|
+
const normalized = hostname.replace(/\.$/, '');
|
|
656
|
+
for (const domainPattern of allowedDomains) {
|
|
657
|
+
if (domainPattern.startsWith('*.')) {
|
|
658
|
+
const baseDomain = domainPattern.substring(2);
|
|
659
|
+
if (normalized === baseDomain ||
|
|
660
|
+
normalized.endsWith(`.${baseDomain}`)) {
|
|
661
|
+
return true;
|
|
662
|
+
}
|
|
491
663
|
}
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
void injectInputBlocker(this);
|
|
664
|
+
else {
|
|
665
|
+
if (normalized === domainPattern) {
|
|
666
|
+
return true;
|
|
667
|
+
}
|
|
497
668
|
}
|
|
498
|
-
}
|
|
499
|
-
|
|
669
|
+
}
|
|
670
|
+
// If none matched, then deny
|
|
671
|
+
return false;
|
|
500
672
|
}
|
|
501
673
|
}
|
|
502
674
|
//# sourceMappingURL=browserManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserManager.js","sourceRoot":"","sources":["../../../../src/agents/browser/browserManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browserManager.js","sourceRoot":"","sources":["../../../../src/agents/browser/browserManager.ts"],"names":[],"mappings":"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"}
|