@google/gemini-cli-core 0.34.0-preview.3 → 0.35.0-nightly.20260314.3038fdce2
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/changelogs/index.md +19 -0
- package/dist/docs/changelogs/latest.md +217 -191
- package/dist/docs/changelogs/preview.md +447 -184
- package/dist/docs/cli/model-routing.md +18 -1
- package/dist/docs/cli/model-steering.md +79 -0
- package/dist/docs/cli/plan-mode.md +99 -14
- package/dist/docs/cli/settings.md +14 -12
- package/dist/docs/cli/telemetry.md +45 -0
- package/dist/docs/cli/tutorials/plan-mode-steering.md +89 -0
- package/dist/docs/core/index.md +2 -0
- package/dist/docs/core/local-model-routing.md +193 -0
- package/dist/docs/reference/configuration.md +27 -3
- package/dist/docs/reference/keyboard-shortcuts.md +168 -90
- package/dist/docs/reference/policy-engine.md +30 -6
- package/dist/docs/resources/troubleshooting.md +15 -0
- package/dist/docs/sidebar.json +10 -0
- package/dist/docs/tools/shell.md +8 -0
- package/dist/google-gemini-cli-core-0.35.0-nightly.20260311.657f19c1f.tgz +0 -0
- package/dist/src/agents/a2a-client-manager.d.ts +11 -4
- package/dist/src/agents/a2a-client-manager.js +61 -34
- package/dist/src/agents/a2a-client-manager.js.map +1 -1
- package/dist/src/agents/a2a-client-manager.test.js +178 -115
- package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
- package/dist/src/agents/a2aUtils.d.ts +4 -28
- package/dist/src/agents/a2aUtils.js +20 -181
- package/dist/src/agents/a2aUtils.js.map +1 -1
- package/dist/src/agents/a2aUtils.test.js +19 -106
- package/dist/src/agents/a2aUtils.test.js.map +1 -1
- package/dist/src/agents/agent-scheduler.d.ts +2 -0
- package/dist/src/agents/agent-scheduler.js +3 -2
- package/dist/src/agents/agent-scheduler.js.map +1 -1
- package/dist/src/agents/agent-scheduler.test.js +12 -3
- package/dist/src/agents/agent-scheduler.test.js.map +1 -1
- package/dist/src/agents/agentLoader.d.ts +2 -2
- package/dist/src/agents/agentLoader.js +15 -0
- package/dist/src/agents/agentLoader.js.map +1 -1
- package/dist/src/agents/auth-provider/factory.d.ts +2 -0
- package/dist/src/agents/auth-provider/factory.js +6 -3
- package/dist/src/agents/auth-provider/factory.js.map +1 -1
- package/dist/src/agents/auth-provider/google-credentials-provider.d.ts +26 -0
- package/dist/src/agents/auth-provider/google-credentials-provider.js +117 -0
- package/dist/src/agents/auth-provider/google-credentials-provider.js.map +1 -0
- package/dist/src/agents/auth-provider/google-credentials-provider.test.d.ts +6 -0
- package/dist/src/agents/auth-provider/google-credentials-provider.test.js +126 -0
- package/dist/src/agents/auth-provider/google-credentials-provider.test.js.map +1 -0
- package/dist/src/agents/browser/browserAgentFactory.js +11 -2
- package/dist/src/agents/browser/browserAgentFactory.js.map +1 -1
- package/dist/src/agents/browser/browserAgentInvocation.d.ts +4 -3
- package/dist/src/agents/browser/browserAgentInvocation.js +10 -4
- package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
- package/dist/src/agents/browser/browserAgentInvocation.test.js +1 -0
- package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
- package/dist/src/agents/browser/browserManager.d.ts +10 -0
- package/dist/src/agents/browser/browserManager.js +53 -8
- package/dist/src/agents/browser/browserManager.js.map +1 -1
- package/dist/src/agents/browser/inputBlocker.d.ts +51 -0
- package/dist/src/agents/browser/inputBlocker.js +234 -0
- package/dist/src/agents/browser/inputBlocker.js.map +1 -0
- package/dist/src/agents/browser/inputBlocker.test.d.ts +6 -0
- package/dist/src/agents/browser/inputBlocker.test.js +82 -0
- package/dist/src/agents/browser/inputBlocker.test.js.map +1 -0
- package/dist/src/agents/browser/mcpToolWrapper.d.ts +3 -2
- package/dist/src/agents/browser/mcpToolWrapper.js +49 -8
- package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -1
- package/dist/src/agents/browser/mcpToolWrapper.test.js +51 -0
- package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -1
- package/dist/src/agents/local-executor.d.ts +5 -4
- package/dist/src/agents/local-executor.js +30 -25
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.js +269 -3
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/local-invocation.d.ts +4 -4
- package/dist/src/agents/local-invocation.js +12 -9
- package/dist/src/agents/local-invocation.js.map +1 -1
- package/dist/src/agents/local-invocation.test.js +19 -3
- package/dist/src/agents/local-invocation.test.js.map +1 -1
- package/dist/src/agents/registry.js +3 -2
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +1 -0
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/remote-invocation.d.ts +0 -9
- package/dist/src/agents/remote-invocation.js +1 -28
- package/dist/src/agents/remote-invocation.js.map +1 -1
- package/dist/src/agents/remote-invocation.test.js +1 -0
- package/dist/src/agents/remote-invocation.test.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.d.ts +5 -4
- package/dist/src/agents/subagent-tool-wrapper.js +9 -5
- package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js +15 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
- package/dist/src/agents/subagent-tool.d.ts +3 -3
- package/dist/src/agents/subagent-tool.js +16 -12
- package/dist/src/agents/subagent-tool.js.map +1 -1
- package/dist/src/agents/subagent-tool.test.js +13 -3
- package/dist/src/agents/subagent-tool.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +0 -1
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/server.js +2 -2
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +5 -1
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/telemetry.d.ts +2 -2
- package/dist/src/code_assist/telemetry.js +5 -3
- package/dist/src/code_assist/telemetry.js.map +1 -1
- package/dist/src/code_assist/telemetry.test.js +14 -12
- package/dist/src/code_assist/telemetry.test.js.map +1 -1
- package/dist/src/code_assist/types.d.ts +14 -12
- package/dist/src/code_assist/types.js.map +1 -1
- package/dist/src/config/agent-loop-context.d.ts +3 -0
- package/dist/src/config/config.d.ts +75 -2
- package/dist/src/config/config.js +78 -11
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +170 -10
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/models.d.ts +14 -0
- package/dist/src/config/models.js +37 -0
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +51 -1
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/config/storage.d.ts +1 -0
- package/dist/src/config/storage.js +3 -0
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/core/baseLlmClient.js +19 -3
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +2 -0
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.d.ts +4 -3
- package/dist/src/core/client.js +42 -17
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +8 -0
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +1 -0
- package/dist/src/core/contentGenerator.js +35 -3
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +137 -2
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.d.ts +2 -3
- package/dist/src/core/coreToolHookTriggers.js +5 -11
- package/dist/src/core/coreToolHookTriggers.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.test.js +24 -0
- package/dist/src/core/coreToolHookTriggers.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.js +1 -1
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/geminiChat.js +31 -21
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +6 -4
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChat_network_retry.test.js +21 -11
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
- package/dist/src/fallback/handler.js +0 -4
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +0 -6
- package/dist/src/fallback/handler.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +8 -0
- package/dist/src/ide/detect-ide.js +12 -1
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/detect-ide.test.js +12 -0
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-installer.js +20 -8
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +60 -4
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +0 -2
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.test.js +6 -10
- package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
- package/dist/src/mcp/oauth-utils.js +0 -2
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/token-storage/file-token-storage.d.ts +24 -0
- package/dist/src/mcp/token-storage/file-token-storage.js +152 -0
- package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -0
- package/dist/src/mcp/token-storage/file-token-storage.test.d.ts +6 -0
- package/dist/src/mcp/token-storage/file-token-storage.test.js +276 -0
- package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -0
- package/dist/src/mcp/token-storage/hybrid-token-storage.js +21 -9
- package/dist/src/mcp/token-storage/hybrid-token-storage.js.map +1 -1
- package/dist/src/mcp/token-storage/hybrid-token-storage.test.js +59 -10
- package/dist/src/mcp/token-storage/hybrid-token-storage.test.js.map +1 -1
- package/dist/src/mcp/token-storage/index.d.ts +1 -1
- package/dist/src/mcp/token-storage/index.js +1 -1
- package/dist/src/mcp/token-storage/index.js.map +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.d.ts +0 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.js +0 -3
- package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
- package/dist/src/policy/config.d.ts +14 -2
- package/dist/src/policy/config.js +94 -49
- package/dist/src/policy/config.js.map +1 -1
- package/dist/src/policy/config.test.js +208 -488
- package/dist/src/policy/config.test.js.map +1 -1
- package/dist/src/policy/policies/plan.toml +1 -1
- package/dist/src/policy/stable-stringify.js +15 -5
- package/dist/src/policy/stable-stringify.js.map +1 -1
- package/dist/src/policy/types.d.ts +1 -0
- package/dist/src/policy/types.js.map +1 -1
- package/dist/src/policy/utils.d.ts +17 -0
- package/dist/src/policy/utils.js +27 -7
- package/dist/src/policy/utils.js.map +1 -1
- package/dist/src/prompts/snippets.js +2 -1
- package/dist/src/prompts/snippets.js.map +1 -1
- package/dist/src/prompts/utils.test.d.ts +6 -0
- package/dist/src/prompts/utils.test.js +225 -0
- package/dist/src/prompts/utils.test.js.map +1 -0
- package/dist/src/routing/modelRouterService.js +2 -2
- package/dist/src/routing/modelRouterService.js.map +1 -1
- package/dist/src/routing/modelRouterService.test.js +4 -3
- package/dist/src/routing/modelRouterService.test.js.map +1 -1
- package/dist/src/routing/strategies/numericalClassifierStrategy.js +6 -40
- package/dist/src/routing/strategies/numericalClassifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/numericalClassifierStrategy.test.js +29 -64
- package/dist/src/routing/strategies/numericalClassifierStrategy.test.js.map +1 -1
- package/dist/src/scheduler/policy.d.ts +3 -7
- package/dist/src/scheduler/policy.js +4 -3
- package/dist/src/scheduler/policy.js.map +1 -1
- package/dist/src/scheduler/policy.test.js +51 -31
- package/dist/src/scheduler/policy.test.js.map +1 -1
- package/dist/src/scheduler/scheduler.d.ts +4 -2
- package/dist/src/scheduler/scheduler.js +19 -16
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/scheduler/scheduler.test.js +33 -10
- package/dist/src/scheduler/scheduler.test.js.map +1 -1
- package/dist/src/scheduler/scheduler_parallel.test.js +40 -2
- package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -1
- package/dist/src/scheduler/scheduler_waiting_callback.test.js +1 -1
- package/dist/src/scheduler/scheduler_waiting_callback.test.js.map +1 -1
- package/dist/src/scheduler/tool-executor.d.ts +3 -3
- package/dist/src/scheduler/tool-executor.js +15 -21
- package/dist/src/scheduler/tool-executor.js.map +1 -1
- package/dist/src/scheduler/tool-executor.test.js +43 -8
- package/dist/src/scheduler/tool-executor.test.js.map +1 -1
- package/dist/src/services/chatRecordingService.js +2 -1
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +21 -0
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/executionLifecycleService.d.ts +83 -0
- package/dist/src/services/executionLifecycleService.js +271 -0
- package/dist/src/services/executionLifecycleService.js.map +1 -0
- package/dist/src/services/executionLifecycleService.test.d.ts +6 -0
- package/dist/src/services/executionLifecycleService.test.js +227 -0
- package/dist/src/services/executionLifecycleService.test.js.map +1 -0
- package/dist/src/services/keychainService.d.ts +0 -5
- package/dist/src/services/keychainService.js +13 -30
- package/dist/src/services/keychainService.js.map +1 -1
- package/dist/src/services/keychainService.test.js +22 -52
- package/dist/src/services/keychainService.test.js.map +1 -1
- package/dist/src/services/sandboxManager.d.ts +54 -0
- package/dist/src/services/sandboxManager.js +30 -0
- package/dist/src/services/sandboxManager.js.map +1 -0
- package/dist/src/services/sandboxManager.test.d.ts +6 -0
- package/dist/src/services/sandboxManager.test.js +95 -0
- package/dist/src/services/sandboxManager.test.js.map +1 -0
- package/dist/src/services/shellExecutionService.d.ts +4 -52
- package/dist/src/services/shellExecutionService.js +437 -498
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +10 -21
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +13 -2
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +91 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +77 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +10 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +25 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +3 -3
- package/dist/src/telemetry/index.js +3 -3
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +2 -1
- package/dist/src/telemetry/loggers.js +32 -1
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +37 -2
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +13 -0
- package/dist/src/telemetry/metrics.js +17 -0
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/startupProfiler.js +4 -4
- package/dist/src/telemetry/startupProfiler.js.map +1 -1
- package/dist/src/telemetry/startupProfiler.test.js +19 -0
- package/dist/src/telemetry/startupProfiler.test.js.map +1 -1
- package/dist/src/telemetry/telemetry-utils.test.js +3 -3
- package/dist/src/telemetry/types.d.ts +16 -2
- package/dist/src/telemetry/types.js +34 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +7 -0
- package/dist/src/telemetry/uiTelemetry.js +78 -0
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +101 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/tools/exit-plan-mode.js +10 -2
- package/dist/src/tools/exit-plan-mode.js.map +1 -1
- package/dist/src/tools/exit-plan-mode.test.js +15 -0
- package/dist/src/tools/exit-plan-mode.test.js.map +1 -1
- package/dist/src/tools/ls.js +2 -2
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client.js +0 -1
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +4 -0
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +10 -1
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/read-many-files.js +2 -4
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/shell.d.ts +1 -1
- package/dist/src/tools/shell.js +3 -3
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +4 -0
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +34 -1
- package/dist/src/tools/tools.js +47 -1
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +5 -0
- package/dist/src/tools/web-fetch.js +177 -100
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +130 -26
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/web-search.test.js +2 -0
- package/dist/src/tools/web-search.test.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +0 -29
- package/dist/src/utils/fetch.js +10 -123
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fetch.test.js +1 -103
- package/dist/src/utils/fetch.test.js.map +1 -1
- package/dist/src/utils/language-detection.js +96 -89
- package/dist/src/utils/language-detection.js.map +1 -1
- package/dist/src/utils/language-detection.test.d.ts +6 -0
- package/dist/src/utils/language-detection.test.js +39 -0
- package/dist/src/utils/language-detection.test.js.map +1 -0
- package/dist/src/utils/oauth-flow.js +0 -2
- package/dist/src/utils/oauth-flow.js.map +1 -1
- package/dist/src/utils/paths.js +5 -2
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/paths.test.js +11 -0
- package/dist/src/utils/paths.test.js.map +1 -1
- package/dist/src/utils/process-utils.js +18 -4
- package/dist/src/utils/process-utils.js.map +1 -1
- package/dist/src/utils/process-utils.test.js +32 -10
- package/dist/src/utils/process-utils.test.js.map +1 -1
- package/dist/src/utils/retry.d.ts +7 -0
- package/dist/src/utils/retry.js +40 -3
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +13 -0
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/summarizer.test.js +5 -0
- package/dist/src/utils/summarizer.test.js.map +1 -1
- package/dist/src/utils/surface.d.ts +18 -0
- package/dist/src/utils/surface.js +46 -0
- package/dist/src/utils/surface.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/google-gemini-cli-core-0.34.0-preview.2.tgz +0 -0
- package/dist/src/services/fileKeychain.d.ts +0 -24
- package/dist/src/services/fileKeychain.js +0 -123
- package/dist/src/services/fileKeychain.js.map +0 -1
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect, vi, beforeEach, afterEach, } from 'vitest';
|
|
7
7
|
import { Config, DEFAULT_FILE_FILTERING_OPTIONS, } from './config.js';
|
|
8
|
+
import { createMockSandboxConfig } from '@google/gemini-cli-test-utils';
|
|
8
9
|
import { DEFAULT_MAX_ATTEMPTS } from '../utils/retry.js';
|
|
9
10
|
import { ExperimentFlags } from '../code_assist/experiments/flagNames.js';
|
|
10
11
|
import { debugLogger } from '../utils/debugLogger.js';
|
|
@@ -182,10 +183,10 @@ vi.mock('../code_assist/codeAssist.js');
|
|
|
182
183
|
vi.mock('../code_assist/experiments/experiments.js');
|
|
183
184
|
describe('Server Config (config.ts)', () => {
|
|
184
185
|
const MODEL = DEFAULT_GEMINI_MODEL;
|
|
185
|
-
const SANDBOX = {
|
|
186
|
+
const SANDBOX = createMockSandboxConfig({
|
|
186
187
|
command: 'docker',
|
|
187
188
|
image: 'gemini-cli-sandbox',
|
|
188
|
-
};
|
|
189
|
+
});
|
|
189
190
|
const TARGET_DIR = '/path/to/target';
|
|
190
191
|
const DEBUG_MODE = false;
|
|
191
192
|
const QUESTION = 'test question';
|
|
@@ -385,6 +386,88 @@ describe('Server Config (config.ts)', () => {
|
|
|
385
386
|
expect(await config.getUserCaching()).toBeUndefined();
|
|
386
387
|
});
|
|
387
388
|
});
|
|
389
|
+
describe('getNumericalRoutingEnabled', () => {
|
|
390
|
+
it('should return true by default if there are no experiments', async () => {
|
|
391
|
+
const config = new Config(baseParams);
|
|
392
|
+
expect(await config.getNumericalRoutingEnabled()).toBe(true);
|
|
393
|
+
});
|
|
394
|
+
it('should return true if the remote flag is set to true', async () => {
|
|
395
|
+
const config = new Config({
|
|
396
|
+
...baseParams,
|
|
397
|
+
experiments: {
|
|
398
|
+
flags: {
|
|
399
|
+
[ExperimentFlags.ENABLE_NUMERICAL_ROUTING]: {
|
|
400
|
+
boolValue: true,
|
|
401
|
+
},
|
|
402
|
+
},
|
|
403
|
+
experimentIds: [],
|
|
404
|
+
},
|
|
405
|
+
});
|
|
406
|
+
expect(await config.getNumericalRoutingEnabled()).toBe(true);
|
|
407
|
+
});
|
|
408
|
+
it('should return false if the remote flag is explicitly set to false', async () => {
|
|
409
|
+
const config = new Config({
|
|
410
|
+
...baseParams,
|
|
411
|
+
experiments: {
|
|
412
|
+
flags: {
|
|
413
|
+
[ExperimentFlags.ENABLE_NUMERICAL_ROUTING]: {
|
|
414
|
+
boolValue: false,
|
|
415
|
+
},
|
|
416
|
+
},
|
|
417
|
+
experimentIds: [],
|
|
418
|
+
},
|
|
419
|
+
});
|
|
420
|
+
expect(await config.getNumericalRoutingEnabled()).toBe(false);
|
|
421
|
+
});
|
|
422
|
+
});
|
|
423
|
+
describe('getResolvedClassifierThreshold', () => {
|
|
424
|
+
it('should return 90 by default if there are no experiments', async () => {
|
|
425
|
+
const config = new Config(baseParams);
|
|
426
|
+
expect(await config.getResolvedClassifierThreshold()).toBe(90);
|
|
427
|
+
});
|
|
428
|
+
it('should return the remote flag value if it is within range (0-100)', async () => {
|
|
429
|
+
const config = new Config({
|
|
430
|
+
...baseParams,
|
|
431
|
+
experiments: {
|
|
432
|
+
flags: {
|
|
433
|
+
[ExperimentFlags.CLASSIFIER_THRESHOLD]: {
|
|
434
|
+
intValue: '75',
|
|
435
|
+
},
|
|
436
|
+
},
|
|
437
|
+
experimentIds: [],
|
|
438
|
+
},
|
|
439
|
+
});
|
|
440
|
+
expect(await config.getResolvedClassifierThreshold()).toBe(75);
|
|
441
|
+
});
|
|
442
|
+
it('should return 90 if the remote flag is out of range (less than 0)', async () => {
|
|
443
|
+
const config = new Config({
|
|
444
|
+
...baseParams,
|
|
445
|
+
experiments: {
|
|
446
|
+
flags: {
|
|
447
|
+
[ExperimentFlags.CLASSIFIER_THRESHOLD]: {
|
|
448
|
+
intValue: '-10',
|
|
449
|
+
},
|
|
450
|
+
},
|
|
451
|
+
experimentIds: [],
|
|
452
|
+
},
|
|
453
|
+
});
|
|
454
|
+
expect(await config.getResolvedClassifierThreshold()).toBe(90);
|
|
455
|
+
});
|
|
456
|
+
it('should return 90 if the remote flag is out of range (greater than 100)', async () => {
|
|
457
|
+
const config = new Config({
|
|
458
|
+
...baseParams,
|
|
459
|
+
experiments: {
|
|
460
|
+
flags: {
|
|
461
|
+
[ExperimentFlags.CLASSIFIER_THRESHOLD]: {
|
|
462
|
+
intValue: '110',
|
|
463
|
+
},
|
|
464
|
+
},
|
|
465
|
+
experimentIds: [],
|
|
466
|
+
},
|
|
467
|
+
});
|
|
468
|
+
expect(await config.getResolvedClassifierThreshold()).toBe(90);
|
|
469
|
+
});
|
|
470
|
+
});
|
|
388
471
|
});
|
|
389
472
|
describe('refreshAuth', () => {
|
|
390
473
|
it('should refresh auth and update config', async () => {
|
|
@@ -1115,13 +1198,55 @@ describe('Server Config (config.ts)', () => {
|
|
|
1115
1198
|
expect(browserConfig.customConfig.sessionMode).toBe('persistent');
|
|
1116
1199
|
});
|
|
1117
1200
|
});
|
|
1201
|
+
describe('Sandbox Configuration', () => {
|
|
1202
|
+
it('should default sandbox settings when not provided', () => {
|
|
1203
|
+
const config = new Config({
|
|
1204
|
+
...baseParams,
|
|
1205
|
+
sandbox: undefined,
|
|
1206
|
+
});
|
|
1207
|
+
expect(config.getSandboxEnabled()).toBe(false);
|
|
1208
|
+
expect(config.getSandboxAllowedPaths()).toEqual([]);
|
|
1209
|
+
expect(config.getSandboxNetworkAccess()).toBe(false);
|
|
1210
|
+
});
|
|
1211
|
+
it('should store provided sandbox settings', () => {
|
|
1212
|
+
const sandbox = {
|
|
1213
|
+
enabled: true,
|
|
1214
|
+
allowedPaths: ['/tmp/foo', '/var/bar'],
|
|
1215
|
+
networkAccess: true,
|
|
1216
|
+
command: 'docker',
|
|
1217
|
+
image: 'my-image',
|
|
1218
|
+
};
|
|
1219
|
+
const config = new Config({
|
|
1220
|
+
...baseParams,
|
|
1221
|
+
sandbox,
|
|
1222
|
+
});
|
|
1223
|
+
expect(config.getSandboxEnabled()).toBe(true);
|
|
1224
|
+
expect(config.getSandboxAllowedPaths()).toEqual(['/tmp/foo', '/var/bar']);
|
|
1225
|
+
expect(config.getSandboxNetworkAccess()).toBe(true);
|
|
1226
|
+
expect(config.getSandbox()?.command).toBe('docker');
|
|
1227
|
+
expect(config.getSandbox()?.image).toBe('my-image');
|
|
1228
|
+
});
|
|
1229
|
+
it('should partially override default sandbox settings', () => {
|
|
1230
|
+
const config = new Config({
|
|
1231
|
+
...baseParams,
|
|
1232
|
+
sandbox: {
|
|
1233
|
+
enabled: true,
|
|
1234
|
+
allowedPaths: ['/only/this'],
|
|
1235
|
+
networkAccess: false,
|
|
1236
|
+
},
|
|
1237
|
+
});
|
|
1238
|
+
expect(config.getSandboxEnabled()).toBe(true);
|
|
1239
|
+
expect(config.getSandboxAllowedPaths()).toEqual(['/only/this']);
|
|
1240
|
+
expect(config.getSandboxNetworkAccess()).toBe(false);
|
|
1241
|
+
});
|
|
1242
|
+
});
|
|
1118
1243
|
});
|
|
1119
1244
|
describe('GemmaModelRouterSettings', () => {
|
|
1120
1245
|
const MODEL = DEFAULT_GEMINI_MODEL;
|
|
1121
|
-
const SANDBOX = {
|
|
1246
|
+
const SANDBOX = createMockSandboxConfig({
|
|
1122
1247
|
command: 'docker',
|
|
1123
1248
|
image: 'gemini-cli-sandbox',
|
|
1124
|
-
};
|
|
1249
|
+
});
|
|
1125
1250
|
const TARGET_DIR = '/path/to/target';
|
|
1126
1251
|
const DEBUG_MODE = false;
|
|
1127
1252
|
const QUESTION = 'test question';
|
|
@@ -1408,10 +1533,10 @@ describe('isYoloModeDisabled', () => {
|
|
|
1408
1533
|
});
|
|
1409
1534
|
describe('BaseLlmClient Lifecycle', () => {
|
|
1410
1535
|
const MODEL = 'gemini-pro';
|
|
1411
|
-
const SANDBOX = {
|
|
1536
|
+
const SANDBOX = createMockSandboxConfig({
|
|
1412
1537
|
command: 'docker',
|
|
1413
1538
|
image: 'gemini-cli-sandbox',
|
|
1414
|
-
};
|
|
1539
|
+
});
|
|
1415
1540
|
const TARGET_DIR = '/path/to/target';
|
|
1416
1541
|
const DEBUG_MODE = false;
|
|
1417
1542
|
const QUESTION = 'test question';
|
|
@@ -1450,10 +1575,10 @@ describe('BaseLlmClient Lifecycle', () => {
|
|
|
1450
1575
|
});
|
|
1451
1576
|
describe('Generation Config Merging (HACK)', () => {
|
|
1452
1577
|
const MODEL = 'gemini-pro';
|
|
1453
|
-
const SANDBOX = {
|
|
1578
|
+
const SANDBOX = createMockSandboxConfig({
|
|
1454
1579
|
command: 'docker',
|
|
1455
1580
|
image: 'gemini-cli-sandbox',
|
|
1456
|
-
};
|
|
1581
|
+
});
|
|
1457
1582
|
const TARGET_DIR = '/path/to/target';
|
|
1458
1583
|
const DEBUG_MODE = false;
|
|
1459
1584
|
const QUESTION = 'test question';
|
|
@@ -1695,10 +1820,10 @@ describe('Config getHooks', () => {
|
|
|
1695
1820
|
});
|
|
1696
1821
|
describe('LocalLiteRtLmClient Lifecycle', () => {
|
|
1697
1822
|
const MODEL = 'gemini-pro';
|
|
1698
|
-
const SANDBOX = {
|
|
1823
|
+
const SANDBOX = createMockSandboxConfig({
|
|
1699
1824
|
command: 'docker',
|
|
1700
1825
|
image: 'gemini-cli-sandbox',
|
|
1701
|
-
};
|
|
1826
|
+
});
|
|
1702
1827
|
const TARGET_DIR = '/path/to/target';
|
|
1703
1828
|
const DEBUG_MODE = false;
|
|
1704
1829
|
const QUESTION = 'test question';
|
|
@@ -1962,6 +2087,9 @@ describe('Config Quota & Preview Model Access', () => {
|
|
|
1962
2087
|
usageStatisticsEnabled: false,
|
|
1963
2088
|
embeddingModel: 'gemini-embedding',
|
|
1964
2089
|
sandbox: {
|
|
2090
|
+
enabled: true,
|
|
2091
|
+
allowedPaths: [],
|
|
2092
|
+
networkAccess: false,
|
|
1965
2093
|
command: 'docker',
|
|
1966
2094
|
image: 'gemini-cli-sandbox',
|
|
1967
2095
|
},
|
|
@@ -2454,4 +2582,36 @@ describe('Model Persistence Bug Fix (#19864)', () => {
|
|
|
2454
2582
|
expect(config.getModel()).toBe(PREVIEW_GEMINI_3_1_MODEL);
|
|
2455
2583
|
});
|
|
2456
2584
|
});
|
|
2585
|
+
describe('ConfigSchema validation', () => {
|
|
2586
|
+
it('should validate a valid sandbox config', async () => {
|
|
2587
|
+
const validConfig = {
|
|
2588
|
+
sandbox: {
|
|
2589
|
+
enabled: true,
|
|
2590
|
+
allowedPaths: ['/tmp'],
|
|
2591
|
+
networkAccess: false,
|
|
2592
|
+
command: 'docker',
|
|
2593
|
+
image: 'node:20',
|
|
2594
|
+
},
|
|
2595
|
+
};
|
|
2596
|
+
const { ConfigSchema } = await import('./config.js');
|
|
2597
|
+
const result = ConfigSchema.safeParse(validConfig);
|
|
2598
|
+
expect(result.success).toBe(true);
|
|
2599
|
+
if (result.success) {
|
|
2600
|
+
expect(result.data.sandbox?.enabled).toBe(true);
|
|
2601
|
+
}
|
|
2602
|
+
});
|
|
2603
|
+
it('should apply defaults in ConfigSchema', async () => {
|
|
2604
|
+
const minimalConfig = {
|
|
2605
|
+
sandbox: {},
|
|
2606
|
+
};
|
|
2607
|
+
const { ConfigSchema } = await import('./config.js');
|
|
2608
|
+
const result = ConfigSchema.safeParse(minimalConfig);
|
|
2609
|
+
expect(result.success).toBe(true);
|
|
2610
|
+
if (result.success) {
|
|
2611
|
+
expect(result.data.sandbox?.enabled).toBe(false);
|
|
2612
|
+
expect(result.data.sandbox?.allowedPaths).toEqual([]);
|
|
2613
|
+
expect(result.data.sandbox?.networkAccess).toBe(false);
|
|
2614
|
+
}
|
|
2615
|
+
});
|
|
2616
|
+
});
|
|
2457
2617
|
//# sourceMappingURL=config.test.js.map
|