@google/gemini-cli-core 0.36.0-preview.7 → 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 +183 -92
- 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 +147 -51
- 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.6.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
|
@@ -26,6 +26,8 @@ import { WebFetchTool } from '../tools/web-fetch.js';
|
|
|
26
26
|
import { MemoryTool, setGeminiMdFilename } from '../tools/memoryTool.js';
|
|
27
27
|
import { WebSearchTool } from '../tools/web-search.js';
|
|
28
28
|
import { AskUserTool } from '../tools/ask-user.js';
|
|
29
|
+
import { UpdateTopicTool } from '../tools/topicTool.js';
|
|
30
|
+
import { TopicState } from './topicState.js';
|
|
29
31
|
import { ExitPlanModeTool } from '../tools/exit-plan-mode.js';
|
|
30
32
|
import { EnterPlanModeTool } from '../tools/enter-plan-mode.js';
|
|
31
33
|
import { GeminiClient } from '../core/client.js';
|
|
@@ -52,7 +54,7 @@ import { ModelRouterService } from '../routing/modelRouterService.js';
|
|
|
52
54
|
import { OutputFormat } from '../output/types.js';
|
|
53
55
|
import { ModelConfigService, } from '../services/modelConfigService.js';
|
|
54
56
|
import { DEFAULT_MODEL_CONFIGS } from './defaultModelConfigs.js';
|
|
55
|
-
import { ContextManager } from '../
|
|
57
|
+
import { ContextManager } from '../context/contextManager.js';
|
|
56
58
|
import { TrackerService } from '../services/trackerService.js';
|
|
57
59
|
import { WorkspaceContext } from '../utils/workspaceContext.js';
|
|
58
60
|
import { Storage } from './storage.js';
|
|
@@ -83,7 +85,7 @@ import { CheckerRegistry } from '../safety/registry.js';
|
|
|
83
85
|
import { ConsecaSafetyChecker } from '../safety/conseca/conseca.js';
|
|
84
86
|
import { DEFAULT_MAX_ATTEMPTS } from '../utils/retry.js';
|
|
85
87
|
import { DEFAULT_FILE_FILTERING_OPTIONS, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, } from './constants.js';
|
|
86
|
-
import { DEFAULT_TOOL_PROTECTION_THRESHOLD, DEFAULT_MIN_PRUNABLE_TOKENS_THRESHOLD, DEFAULT_PROTECT_LATEST_TURN, } from '../
|
|
88
|
+
import { DEFAULT_TOOL_PROTECTION_THRESHOLD, DEFAULT_MIN_PRUNABLE_TOKENS_THRESHOLD, DEFAULT_PROTECT_LATEST_TURN, } from '../context/toolOutputMaskingService.js';
|
|
87
89
|
import { SimpleExtensionLoader, } from '../utils/extensionLoader.js';
|
|
88
90
|
import { McpClientManager } from '../tools/mcp-client-manager.js';
|
|
89
91
|
import { A2AClientManager } from '../agents/a2a-client-manager.js';
|
|
@@ -212,11 +214,13 @@ export class Config {
|
|
|
212
214
|
clientVersion;
|
|
213
215
|
fileSystemService;
|
|
214
216
|
trackerService;
|
|
217
|
+
topicState = new TopicState();
|
|
215
218
|
contentGeneratorConfig;
|
|
216
219
|
contentGenerator;
|
|
217
220
|
modelConfigService;
|
|
218
221
|
embeddingModel;
|
|
219
222
|
sandbox;
|
|
223
|
+
_sandboxForbiddenPaths;
|
|
220
224
|
targetDir;
|
|
221
225
|
workspaceContext;
|
|
222
226
|
debugMode;
|
|
@@ -304,6 +308,7 @@ export class Config {
|
|
|
304
308
|
directWebFetch;
|
|
305
309
|
useRipgrep;
|
|
306
310
|
enableInteractiveShell;
|
|
311
|
+
shellBackgroundCompletionBehavior;
|
|
307
312
|
skipNextSpeakerCheck;
|
|
308
313
|
useBackgroundColor;
|
|
309
314
|
useAlternateBuffer;
|
|
@@ -340,7 +345,6 @@ export class Config {
|
|
|
340
345
|
pendingIncludeDirectories;
|
|
341
346
|
enableHooks;
|
|
342
347
|
enableHooksUI;
|
|
343
|
-
toolOutputMasking;
|
|
344
348
|
hooks;
|
|
345
349
|
projectHooks;
|
|
346
350
|
disabledHooks;
|
|
@@ -358,6 +362,7 @@ export class Config {
|
|
|
358
362
|
adminSkillsEnabled;
|
|
359
363
|
experimentalJitContext;
|
|
360
364
|
experimentalMemoryManager;
|
|
365
|
+
memoryBoundaryMarkers;
|
|
361
366
|
topicUpdateNarration;
|
|
362
367
|
disableLLMCorrection;
|
|
363
368
|
planEnabled;
|
|
@@ -365,6 +370,7 @@ export class Config {
|
|
|
365
370
|
planModeRoutingEnabled;
|
|
366
371
|
modelSteering;
|
|
367
372
|
contextManager;
|
|
373
|
+
contextManagement;
|
|
368
374
|
terminalBackground = undefined;
|
|
369
375
|
remoteAdminSettings;
|
|
370
376
|
latestApiRequest;
|
|
@@ -391,30 +397,30 @@ export class Config {
|
|
|
391
397
|
allowedPaths: [],
|
|
392
398
|
networkAccess: false,
|
|
393
399
|
};
|
|
394
|
-
this.
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
}
|
|
400
|
+
this.targetDir = path.resolve(params.targetDir);
|
|
401
|
+
this.folderTrust = params.folderTrust ?? false;
|
|
402
|
+
this.workspaceContext = new WorkspaceContext(this.targetDir, []);
|
|
403
|
+
this.pendingIncludeDirectories = params.includeDirectories ?? [];
|
|
404
|
+
this.debugMode = params.debugMode;
|
|
405
|
+
this.question = params.question;
|
|
406
|
+
this.worktreeSettings = params.worktreeSettings;
|
|
402
407
|
this._sandboxPolicyManager = new SandboxPolicyManager();
|
|
403
408
|
const initialApprovalMode = params.approvalMode ??
|
|
404
409
|
params.policyEngineConfig?.approvalMode ??
|
|
405
410
|
'default';
|
|
406
|
-
this._sandboxManager = createSandboxManager(this.sandbox,
|
|
411
|
+
this._sandboxManager = createSandboxManager(this.sandbox, {
|
|
412
|
+
workspace: this.targetDir,
|
|
413
|
+
forbiddenPaths: this.getSandboxForbiddenPaths.bind(this),
|
|
414
|
+
includeDirectories: this.pendingIncludeDirectories,
|
|
415
|
+
policyManager: this._sandboxPolicyManager,
|
|
416
|
+
}, initialApprovalMode);
|
|
407
417
|
if (!(this._sandboxManager instanceof NoopSandboxManager) &&
|
|
408
|
-
this.sandbox
|
|
418
|
+
this.sandbox.enabled) {
|
|
409
419
|
this.fileSystemService = new SandboxedFileSystemService(this._sandboxManager, params.targetDir);
|
|
410
420
|
}
|
|
411
421
|
else {
|
|
412
422
|
this.fileSystemService = new StandardFileSystemService();
|
|
413
423
|
}
|
|
414
|
-
this.targetDir = path.resolve(params.targetDir);
|
|
415
|
-
this.folderTrust = params.folderTrust ?? false;
|
|
416
|
-
this.workspaceContext = new WorkspaceContext(this.targetDir, []);
|
|
417
|
-
this.pendingIncludeDirectories = params.includeDirectories ?? [];
|
|
418
424
|
this.debugMode = params.debugMode;
|
|
419
425
|
this.question = params.question;
|
|
420
426
|
this.worktreeSettings = params.worktreeSettings;
|
|
@@ -526,21 +532,43 @@ export class Config {
|
|
|
526
532
|
};
|
|
527
533
|
}
|
|
528
534
|
this.modelConfigService = new ModelConfigService(modelConfigServiceConfig ?? DEFAULT_MODEL_CONFIGS);
|
|
529
|
-
this.experimentalJitContext = params.experimentalJitContext ??
|
|
535
|
+
this.experimentalJitContext = params.experimentalJitContext ?? false;
|
|
530
536
|
this.experimentalMemoryManager = params.experimentalMemoryManager ?? false;
|
|
537
|
+
this.memoryBoundaryMarkers = params.memoryBoundaryMarkers ?? ['.git'];
|
|
538
|
+
this.contextManagement = {
|
|
539
|
+
enabled: params.contextManagement?.enabled ?? false,
|
|
540
|
+
historyWindow: {
|
|
541
|
+
maxTokens: params.contextManagement?.historyWindow?.maxTokens ?? 150000,
|
|
542
|
+
retainedTokens: params.contextManagement?.historyWindow?.retainedTokens ?? 40000,
|
|
543
|
+
},
|
|
544
|
+
messageLimits: {
|
|
545
|
+
normalMaxTokens: params.contextManagement?.messageLimits?.normalMaxTokens ?? 2500,
|
|
546
|
+
retainedMaxTokens: params.contextManagement?.messageLimits?.retainedMaxTokens ?? 12000,
|
|
547
|
+
normalizationHeadRatio: params.contextManagement?.messageLimits?.normalizationHeadRatio ??
|
|
548
|
+
0.25,
|
|
549
|
+
},
|
|
550
|
+
tools: {
|
|
551
|
+
distillation: {
|
|
552
|
+
maxOutputTokens: params.contextManagement?.tools?.distillation?.maxOutputTokens ??
|
|
553
|
+
10000,
|
|
554
|
+
summarizationThresholdTokens: params.contextManagement?.tools?.distillation
|
|
555
|
+
?.summarizationThresholdTokens ?? 20000,
|
|
556
|
+
},
|
|
557
|
+
outputMasking: {
|
|
558
|
+
protectionThresholdTokens: params.contextManagement?.tools?.outputMasking
|
|
559
|
+
?.protectionThresholdTokens ?? DEFAULT_TOOL_PROTECTION_THRESHOLD,
|
|
560
|
+
minPrunableThresholdTokens: params.contextManagement?.tools?.outputMasking
|
|
561
|
+
?.minPrunableThresholdTokens ??
|
|
562
|
+
DEFAULT_MIN_PRUNABLE_TOKENS_THRESHOLD,
|
|
563
|
+
protectLatestTurn: params.contextManagement?.tools?.outputMasking?.protectLatestTurn ??
|
|
564
|
+
DEFAULT_PROTECT_LATEST_TURN,
|
|
565
|
+
},
|
|
566
|
+
},
|
|
567
|
+
};
|
|
531
568
|
this.topicUpdateNarration = params.topicUpdateNarration ?? false;
|
|
532
569
|
this.modelSteering = params.modelSteering ?? false;
|
|
533
570
|
this.injectionService = new InjectionService(() => this.isModelSteeringEnabled());
|
|
534
571
|
ExecutionLifecycleService.setInjectionService(this.injectionService);
|
|
535
|
-
this.toolOutputMasking = {
|
|
536
|
-
enabled: params.toolOutputMasking?.enabled ?? true,
|
|
537
|
-
toolProtectionThreshold: params.toolOutputMasking?.toolProtectionThreshold ??
|
|
538
|
-
DEFAULT_TOOL_PROTECTION_THRESHOLD,
|
|
539
|
-
minPrunableTokensThreshold: params.toolOutputMasking?.minPrunableTokensThreshold ??
|
|
540
|
-
DEFAULT_MIN_PRUNABLE_TOKENS_THRESHOLD,
|
|
541
|
-
protectLatestTurn: params.toolOutputMasking?.protectLatestTurn ??
|
|
542
|
-
DEFAULT_PROTECT_LATEST_TURN,
|
|
543
|
-
};
|
|
544
572
|
this.maxSessionTurns = params.maxSessionTurns ?? -1;
|
|
545
573
|
this.acpMode = params.acpMode ?? false;
|
|
546
574
|
this.listSessions = params.listSessions ?? false;
|
|
@@ -567,6 +595,13 @@ export class Config {
|
|
|
567
595
|
this.useBackgroundColor = params.useBackgroundColor ?? true;
|
|
568
596
|
this.useAlternateBuffer = params.useAlternateBuffer ?? false;
|
|
569
597
|
this.enableInteractiveShell = params.enableInteractiveShell ?? false;
|
|
598
|
+
const requestedBehavior = params.shellBackgroundCompletionBehavior;
|
|
599
|
+
if (requestedBehavior === 'inject' || requestedBehavior === 'notify') {
|
|
600
|
+
this.shellBackgroundCompletionBehavior = requestedBehavior;
|
|
601
|
+
}
|
|
602
|
+
else {
|
|
603
|
+
this.shellBackgroundCompletionBehavior = 'silent';
|
|
604
|
+
}
|
|
570
605
|
this.skipNextSpeakerCheck = params.skipNextSpeakerCheck ?? true;
|
|
571
606
|
this.shellExecutionConfig = {
|
|
572
607
|
terminalWidth: params.shellExecutionConfig?.terminalWidth ?? 80,
|
|
@@ -576,6 +611,7 @@ export class Config {
|
|
|
576
611
|
sanitizationConfig: this.sanitizationConfig,
|
|
577
612
|
sandboxManager: this._sandboxManager,
|
|
578
613
|
sandboxConfig: this.sandbox,
|
|
614
|
+
backgroundCompletionBehavior: this.shellBackgroundCompletionBehavior,
|
|
579
615
|
};
|
|
580
616
|
this.truncateToolOutputThreshold =
|
|
581
617
|
params.truncateToolOutputThreshold ??
|
|
@@ -623,9 +659,7 @@ export class Config {
|
|
|
623
659
|
...params.policyEngineConfig,
|
|
624
660
|
approvalMode: engineApprovalMode,
|
|
625
661
|
disableAlwaysAllow: this.disableAlwaysAllow,
|
|
626
|
-
|
|
627
|
-
sandboxApprovedTools: this.sandboxPolicyManager?.getModeConfig(engineApprovalMode)
|
|
628
|
-
?.approvedTools ?? [],
|
|
662
|
+
sandboxManager: this._sandboxManager,
|
|
629
663
|
}, checkerRunner);
|
|
630
664
|
// Register Conseca if enabled
|
|
631
665
|
if (this.enableConseca) {
|
|
@@ -916,8 +950,22 @@ export class Config {
|
|
|
916
950
|
get geminiClient() {
|
|
917
951
|
return this._geminiClient;
|
|
918
952
|
}
|
|
953
|
+
async getSandboxForbiddenPaths() {
|
|
954
|
+
if (this._sandboxForbiddenPaths) {
|
|
955
|
+
return this._sandboxForbiddenPaths;
|
|
956
|
+
}
|
|
957
|
+
this._sandboxForbiddenPaths = await this.getFileService().getIgnoredPaths({
|
|
958
|
+
respectGitIgnore: false,
|
|
959
|
+
respectGeminiIgnore: true,
|
|
960
|
+
});
|
|
961
|
+
return this._sandboxForbiddenPaths;
|
|
962
|
+
}
|
|
919
963
|
refreshSandboxManager() {
|
|
920
|
-
this._sandboxManager = createSandboxManager(this.sandbox,
|
|
964
|
+
this._sandboxManager = createSandboxManager(this.sandbox, {
|
|
965
|
+
workspace: this.targetDir,
|
|
966
|
+
forbiddenPaths: this.getSandboxForbiddenPaths.bind(this),
|
|
967
|
+
policyManager: this._sandboxPolicyManager,
|
|
968
|
+
}, this.getApprovalMode());
|
|
921
969
|
this.shellExecutionConfig.sandboxManager = this._sandboxManager;
|
|
922
970
|
}
|
|
923
971
|
get sandboxPolicyManager() {
|
|
@@ -1345,6 +1393,7 @@ export class Config {
|
|
|
1345
1393
|
global: this.contextManager.getGlobalMemory(),
|
|
1346
1394
|
extension: this.contextManager.getExtensionMemory(),
|
|
1347
1395
|
project: this.contextManager.getEnvironmentMemory(),
|
|
1396
|
+
userProjectMemory: this.contextManager.getUserProjectMemory(),
|
|
1348
1397
|
};
|
|
1349
1398
|
}
|
|
1350
1399
|
return this.userMemory;
|
|
@@ -1370,13 +1419,20 @@ export class Config {
|
|
|
1370
1419
|
}
|
|
1371
1420
|
/**
|
|
1372
1421
|
* Returns memory for the system instruction.
|
|
1373
|
-
* When JIT is enabled,
|
|
1374
|
-
* instruction. Extension and project memory (Tier 2) are
|
|
1375
|
-
* first user message instead, per the tiered context model.
|
|
1422
|
+
* When JIT is enabled, global memory and user project memory (Tier 1) go
|
|
1423
|
+
* in the system instruction. Extension and project memory (Tier 2) are
|
|
1424
|
+
* placed in the first user message instead, per the tiered context model.
|
|
1425
|
+
* User project memory is in Tier 1 so mid-session saves are reflected
|
|
1426
|
+
* via system instruction updates.
|
|
1376
1427
|
*/
|
|
1377
1428
|
getSystemInstructionMemory() {
|
|
1378
1429
|
if (this.experimentalJitContext && this.contextManager) {
|
|
1379
|
-
|
|
1430
|
+
const global = this.contextManager.getGlobalMemory();
|
|
1431
|
+
const userProjectMemory = this.contextManager.getUserProjectMemory();
|
|
1432
|
+
if (userProjectMemory?.trim()) {
|
|
1433
|
+
return { global, userProjectMemory };
|
|
1434
|
+
}
|
|
1435
|
+
return global;
|
|
1380
1436
|
}
|
|
1381
1437
|
return this.userMemory;
|
|
1382
1438
|
}
|
|
@@ -1414,18 +1470,35 @@ export class Config {
|
|
|
1414
1470
|
isJitContextEnabled() {
|
|
1415
1471
|
return this.experimentalJitContext;
|
|
1416
1472
|
}
|
|
1473
|
+
isAutoDistillationEnabled() {
|
|
1474
|
+
return this.contextManagement.enabled;
|
|
1475
|
+
}
|
|
1476
|
+
getMemoryBoundaryMarkers() {
|
|
1477
|
+
return this.memoryBoundaryMarkers;
|
|
1478
|
+
}
|
|
1417
1479
|
isMemoryManagerEnabled() {
|
|
1418
1480
|
return this.experimentalMemoryManager;
|
|
1419
1481
|
}
|
|
1482
|
+
getContextManagementConfig() {
|
|
1483
|
+
return this.contextManagement;
|
|
1484
|
+
}
|
|
1485
|
+
get agentHistoryProviderConfig() {
|
|
1486
|
+
return {
|
|
1487
|
+
isTruncationEnabled: this.contextManagement.enabled,
|
|
1488
|
+
isSummarizationEnabled: this.contextManagement.enabled,
|
|
1489
|
+
maxTokens: this.contextManagement.historyWindow.maxTokens,
|
|
1490
|
+
retainedTokens: this.contextManagement.historyWindow.retainedTokens,
|
|
1491
|
+
normalMessageTokens: this.contextManagement.messageLimits.normalMaxTokens,
|
|
1492
|
+
maximumMessageTokens: this.contextManagement.messageLimits.retainedMaxTokens,
|
|
1493
|
+
normalizationHeadRatio: this.contextManagement.messageLimits.normalizationHeadRatio,
|
|
1494
|
+
};
|
|
1495
|
+
}
|
|
1420
1496
|
isTopicUpdateNarrationEnabled() {
|
|
1421
1497
|
return this.topicUpdateNarration;
|
|
1422
1498
|
}
|
|
1423
1499
|
isModelSteeringEnabled() {
|
|
1424
1500
|
return this.modelSteering;
|
|
1425
1501
|
}
|
|
1426
|
-
getToolOutputMaskingEnabled() {
|
|
1427
|
-
return this.toolOutputMasking.enabled;
|
|
1428
|
-
}
|
|
1429
1502
|
async getToolOutputMaskingConfig() {
|
|
1430
1503
|
await this.ensureExperimentsLoaded();
|
|
1431
1504
|
const remoteProtection = this.experiments?.flags[ExperimentFlags.MASKING_PROTECTION_THRESHOLD]
|
|
@@ -1441,14 +1514,16 @@ export class Config {
|
|
|
1441
1514
|
? parseInt(remotePrunable, 10)
|
|
1442
1515
|
: undefined;
|
|
1443
1516
|
return {
|
|
1444
|
-
|
|
1445
|
-
toolProtectionThreshold: parsedProtection !== undefined && !isNaN(parsedProtection)
|
|
1517
|
+
protectionThresholdTokens: parsedProtection !== undefined && !isNaN(parsedProtection)
|
|
1446
1518
|
? parsedProtection
|
|
1447
|
-
: this.
|
|
1448
|
-
|
|
1519
|
+
: this.contextManagement.tools.outputMasking
|
|
1520
|
+
.protectionThresholdTokens,
|
|
1521
|
+
minPrunableThresholdTokens: parsedPrunable !== undefined && !isNaN(parsedPrunable)
|
|
1449
1522
|
? parsedPrunable
|
|
1450
|
-
: this.
|
|
1451
|
-
|
|
1523
|
+
: this.contextManagement.tools.outputMasking
|
|
1524
|
+
.minPrunableThresholdTokens,
|
|
1525
|
+
protectLatestTurn: remoteProtectLatest ??
|
|
1526
|
+
this.contextManagement.tools.outputMasking.protectLatestTurn,
|
|
1452
1527
|
};
|
|
1453
1528
|
}
|
|
1454
1529
|
getGeminiMdFileCount() {
|
|
@@ -1502,7 +1577,9 @@ export class Config {
|
|
|
1502
1577
|
debugLogger.debug(`Workspace policies loaded from: ${policyDir}`);
|
|
1503
1578
|
}
|
|
1504
1579
|
setApprovalMode(mode) {
|
|
1505
|
-
if (!this.isTrustedFolder() &&
|
|
1580
|
+
if (!this.isTrustedFolder() &&
|
|
1581
|
+
mode !== ApprovalMode.DEFAULT &&
|
|
1582
|
+
mode !== ApprovalMode.PLAN) {
|
|
1506
1583
|
throw new Error('Cannot enable privileged approval modes in an untrusted folder.');
|
|
1507
1584
|
}
|
|
1508
1585
|
const currentMode = this.getApprovalMode();
|
|
@@ -1510,7 +1587,7 @@ export class Config {
|
|
|
1510
1587
|
this.logCurrentModeDuration(currentMode);
|
|
1511
1588
|
logApprovalModeSwitch(this, new ApprovalModeSwitchEvent(currentMode, mode));
|
|
1512
1589
|
}
|
|
1513
|
-
this.policyEngine.setApprovalMode(mode
|
|
1590
|
+
this.policyEngine.setApprovalMode(mode);
|
|
1514
1591
|
this.refreshSandboxManager();
|
|
1515
1592
|
const isPlanModeTransition = currentMode !== mode &&
|
|
1516
1593
|
(currentMode === ApprovalMode.PLAN || mode === ApprovalMode.PLAN);
|
|
@@ -1518,6 +1595,7 @@ export class Config {
|
|
|
1518
1595
|
(currentMode === ApprovalMode.YOLO || mode === ApprovalMode.YOLO);
|
|
1519
1596
|
if (isPlanModeTransition || isYoloModeTransition) {
|
|
1520
1597
|
if (this._geminiClient?.isInitialized()) {
|
|
1598
|
+
this._geminiClient.clearCurrentSequenceModel();
|
|
1521
1599
|
this._geminiClient.setTools().catch((err) => {
|
|
1522
1600
|
debugLogger.error('Failed to update tools', err);
|
|
1523
1601
|
});
|
|
@@ -1615,6 +1693,9 @@ export class Config {
|
|
|
1615
1693
|
getModelRouterService() {
|
|
1616
1694
|
return this.modelRouterService;
|
|
1617
1695
|
}
|
|
1696
|
+
getModelConfigService() {
|
|
1697
|
+
return this.modelConfigService;
|
|
1698
|
+
}
|
|
1618
1699
|
getModelAvailabilityService() {
|
|
1619
1700
|
return this.modelAvailabilityService;
|
|
1620
1701
|
}
|
|
@@ -1945,6 +2026,11 @@ export class Config {
|
|
|
1945
2026
|
const authType = this.contentGeneratorConfig?.authType;
|
|
1946
2027
|
return useGemini3_1 && authType === AuthType.USE_GEMINI;
|
|
1947
2028
|
}
|
|
2029
|
+
isGemini31LaunchedForAuthType(authType) {
|
|
2030
|
+
return (authType === AuthType.USE_GEMINI ||
|
|
2031
|
+
authType === AuthType.USE_VERTEX_AI ||
|
|
2032
|
+
authType === AuthType.GATEWAY);
|
|
2033
|
+
}
|
|
1948
2034
|
/**
|
|
1949
2035
|
* Returns whether Gemini 3.1 has been launched.
|
|
1950
2036
|
*
|
|
@@ -1954,8 +2040,7 @@ export class Config {
|
|
|
1954
2040
|
*/
|
|
1955
2041
|
getGemini31LaunchedSync() {
|
|
1956
2042
|
const authType = this.contentGeneratorConfig?.authType;
|
|
1957
|
-
if (authType
|
|
1958
|
-
authType === AuthType.USE_VERTEX_AI) {
|
|
2043
|
+
if (this.isGemini31LaunchedForAuthType(authType)) {
|
|
1959
2044
|
return true;
|
|
1960
2045
|
}
|
|
1961
2046
|
return (this.experiments?.flags[ExperimentFlags.GEMINI_3_1_PRO_LAUNCHED]
|
|
@@ -1970,8 +2055,7 @@ export class Config {
|
|
|
1970
2055
|
*/
|
|
1971
2056
|
getGemini31FlashLiteLaunchedSync() {
|
|
1972
2057
|
const authType = this.contentGeneratorConfig?.authType;
|
|
1973
|
-
if (authType
|
|
1974
|
-
authType === AuthType.USE_VERTEX_AI) {
|
|
2058
|
+
if (this.isGemini31LaunchedForAuthType(authType)) {
|
|
1975
2059
|
return true;
|
|
1976
2060
|
}
|
|
1977
2061
|
return (this.experiments?.flags[ExperimentFlags.GEMINI_3_1_FLASH_LITE_LAUNCHED]
|
|
@@ -2053,6 +2137,9 @@ export class Config {
|
|
|
2053
2137
|
getEnableInteractiveShell() {
|
|
2054
2138
|
return this.enableInteractiveShell;
|
|
2055
2139
|
}
|
|
2140
|
+
getShellBackgroundCompletionBehavior() {
|
|
2141
|
+
return this.shellBackgroundCompletionBehavior;
|
|
2142
|
+
}
|
|
2056
2143
|
getSkipNextSpeakerCheck() {
|
|
2057
2144
|
return this.skipNextSpeakerCheck;
|
|
2058
2145
|
}
|
|
@@ -2094,6 +2181,13 @@ export class Config {
|
|
|
2094
2181
|
4 *
|
|
2095
2182
|
(tokenLimit(this.model) - uiTelemetryService.getLastPromptTokenCount()), this.truncateToolOutputThreshold);
|
|
2096
2183
|
}
|
|
2184
|
+
getToolMaxOutputTokens() {
|
|
2185
|
+
return this.contextManagement.tools.distillation.maxOutputTokens;
|
|
2186
|
+
}
|
|
2187
|
+
getToolSummarizationThresholdTokens() {
|
|
2188
|
+
return this.contextManagement.tools.distillation
|
|
2189
|
+
.summarizationThresholdTokens;
|
|
2190
|
+
}
|
|
2097
2191
|
getNextCompressionTruncationId() {
|
|
2098
2192
|
return ++this.compressionTruncationCounter;
|
|
2099
2193
|
}
|
|
@@ -2159,6 +2253,7 @@ export class Config {
|
|
|
2159
2253
|
visualModel: customConfig.visualModel,
|
|
2160
2254
|
allowedDomains: customConfig.allowedDomains,
|
|
2161
2255
|
disableUserInput: customConfig.disableUserInput,
|
|
2256
|
+
maxActionsPerTask: customConfig.maxActionsPerTask ?? 100,
|
|
2162
2257
|
confirmSensitiveActions: customConfig.confirmSensitiveActions,
|
|
2163
2258
|
blockFileUploads: customConfig.blockFileUploads,
|
|
2164
2259
|
},
|
|
@@ -2194,6 +2289,7 @@ export class Config {
|
|
|
2194
2289
|
registerFn();
|
|
2195
2290
|
}
|
|
2196
2291
|
};
|
|
2292
|
+
maybeRegister(UpdateTopicTool, () => registry.registerTool(new UpdateTopicTool(this, this.messageBus)));
|
|
2197
2293
|
maybeRegister(LSTool, () => registry.registerTool(new LSTool(this, this.messageBus)));
|
|
2198
2294
|
maybeRegister(ReadFileTool, () => registry.registerTool(new ReadFileTool(this, this.messageBus)));
|
|
2199
2295
|
if (this.getUseRipgrep()) {
|
|
@@ -2223,7 +2319,7 @@ export class Config {
|
|
|
2223
2319
|
maybeRegister(WebFetchTool, () => registry.registerTool(new WebFetchTool(this, this.messageBus)));
|
|
2224
2320
|
maybeRegister(ShellTool, () => registry.registerTool(new ShellTool(this, this.messageBus)));
|
|
2225
2321
|
if (!this.isMemoryManagerEnabled()) {
|
|
2226
|
-
maybeRegister(MemoryTool, () => registry.registerTool(new MemoryTool(this.messageBus)));
|
|
2322
|
+
maybeRegister(MemoryTool, () => registry.registerTool(new MemoryTool(this.messageBus, this.storage)));
|
|
2227
2323
|
}
|
|
2228
2324
|
maybeRegister(WebSearchTool, () => registry.registerTool(new WebSearchTool(this, this.messageBus)));
|
|
2229
2325
|
maybeRegister(AskUserTool, () => registry.registerTool(new AskUserTool(this.messageBus)));
|