@google/gemini-cli-core 0.30.0-preview.5 → 0.31.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/README.md +1 -1
- package/dist/docs/CONTRIBUTING.md +6 -7
- package/dist/docs/changelogs/index.md +22 -2
- package/dist/docs/changelogs/latest.md +359 -293
- package/dist/docs/changelogs/preview.md +300 -349
- package/dist/docs/cli/cli-reference.md +23 -23
- package/dist/docs/cli/enterprise.md +7 -7
- package/dist/docs/cli/gemini-md.md +1 -1
- package/dist/docs/cli/model.md +1 -1
- package/dist/docs/cli/plan-mode.md +180 -80
- package/dist/docs/cli/sandbox.md +3 -3
- package/dist/docs/cli/settings.md +59 -51
- package/dist/docs/cli/telemetry.md +4 -1
- package/dist/docs/cli/themes.md +3 -3
- package/dist/docs/cli/trusted-folders.md +31 -0
- package/dist/docs/cli/tutorials/memory-management.md +2 -2
- package/dist/docs/cli/tutorials/session-management.md +1 -1
- package/dist/docs/core/index.md +7 -7
- package/dist/docs/core/subagents.md +155 -39
- package/dist/docs/extensions/reference.md +38 -14
- package/dist/docs/get-started/authentication.md +4 -4
- package/dist/docs/get-started/examples.md +2 -2
- package/dist/docs/get-started/gemini-3.md +17 -3
- package/dist/docs/get-started/index.md +11 -2
- package/dist/docs/hooks/best-practices.md +1 -1
- package/dist/docs/hooks/reference.md +8 -0
- package/dist/docs/ide-integration/index.md +14 -0
- package/dist/docs/index.md +62 -67
- package/dist/docs/redirects.json +19 -0
- package/dist/docs/{cli → reference}/commands.md +67 -11
- package/dist/docs/{get-started → reference}/configuration.md +93 -24
- package/dist/docs/{cli → reference}/keyboard-shortcuts.md +3 -3
- package/dist/docs/{core → reference}/policy-engine.md +63 -27
- package/dist/docs/{faq.md → resources/faq.md} +1 -1
- package/dist/docs/{quota-and-pricing.md → resources/quota-and-pricing.md} +12 -5
- package/dist/docs/{tos-privacy.md → resources/tos-privacy.md} +2 -2
- package/dist/docs/{troubleshooting.md → resources/troubleshooting.md} +1 -1
- package/dist/docs/sidebar.json +203 -166
- package/dist/docs/tools/file-system.md +7 -4
- package/dist/docs/tools/index.md +5 -2
- package/dist/docs/tools/internal-docs.md +5 -5
- package/dist/docs/tools/mcp-server.md +62 -2
- package/dist/docs/tools/planning.md +2 -0
- package/dist/docs/tools/shell.md +3 -3
- package/dist/src/agents/a2a-client-manager.test.js +1 -2
- package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
- package/dist/src/agents/a2aUtils.d.ts +1 -5
- package/dist/src/agents/a2aUtils.js +1 -1
- package/dist/src/agents/a2aUtils.js.map +1 -1
- package/dist/src/agents/acknowledgedAgents.js +1 -0
- package/dist/src/agents/acknowledgedAgents.js.map +1 -1
- package/dist/src/agents/agent-scheduler.js +1 -0
- package/dist/src/agents/agent-scheduler.js.map +1 -1
- package/dist/src/agents/agentLoader.d.ts +0 -1
- package/dist/src/agents/agentLoader.js +22 -21
- package/dist/src/agents/agentLoader.js.map +1 -1
- package/dist/src/agents/agentLoader.test.js +1 -5
- package/dist/src/agents/agentLoader.test.js.map +1 -1
- package/dist/src/agents/auth-provider/api-key-provider.d.ts +30 -0
- package/dist/src/agents/auth-provider/api-key-provider.js +66 -0
- package/dist/src/agents/auth-provider/api-key-provider.js.map +1 -0
- package/dist/src/agents/auth-provider/api-key-provider.test.d.ts +6 -0
- package/dist/src/agents/auth-provider/api-key-provider.test.js +130 -0
- package/dist/src/agents/auth-provider/api-key-provider.test.js.map +1 -0
- package/dist/src/agents/auth-provider/base-provider.d.ts +2 -2
- package/dist/src/agents/auth-provider/base-provider.js.map +1 -1
- 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/factory.test.js +12 -0
- package/dist/src/agents/auth-provider/factory.test.js.map +1 -1
- package/dist/src/agents/auth-provider/types.d.ts +2 -4
- package/dist/src/agents/browser/analyzeScreenshot.d.ts +35 -0
- package/dist/src/agents/browser/analyzeScreenshot.js +183 -0
- package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -0
- package/dist/src/agents/browser/analyzeScreenshot.test.d.ts +6 -0
- package/dist/src/agents/browser/analyzeScreenshot.test.js +161 -0
- package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -0
- package/dist/src/agents/browser/browserAgentDefinition.d.ts +50 -0
- package/dist/src/agents/browser/browserAgentDefinition.js +141 -0
- package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -0
- package/dist/src/agents/browser/browserAgentFactory.d.ts +42 -0
- package/dist/src/agents/browser/browserAgentFactory.js +107 -0
- package/dist/src/agents/browser/browserAgentFactory.js.map +1 -0
- package/dist/src/agents/browser/browserAgentFactory.test.d.ts +6 -0
- package/dist/src/agents/browser/browserAgentFactory.test.js +186 -0
- package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -0
- package/dist/src/agents/browser/browserAgentInvocation.d.ts +44 -0
- package/dist/src/agents/browser/browserAgentInvocation.js +109 -0
- package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -0
- package/dist/src/agents/browser/browserAgentInvocation.test.d.ts +6 -0
- package/dist/src/agents/browser/browserAgentInvocation.test.js +87 -0
- package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -0
- package/dist/src/agents/browser/browserManager.d.ts +110 -0
- package/dist/src/agents/browser/browserManager.js +323 -0
- package/dist/src/agents/browser/browserManager.js.map +1 -0
- package/dist/src/agents/browser/browserManager.test.d.ts +6 -0
- package/dist/src/agents/browser/browserManager.test.js +314 -0
- package/dist/src/agents/browser/browserManager.test.js.map +1 -0
- package/dist/src/agents/browser/mcpToolWrapper.d.ts +45 -0
- package/dist/src/agents/browser/mcpToolWrapper.js +356 -0
- package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -0
- package/dist/src/agents/browser/mcpToolWrapper.test.d.ts +6 -0
- package/dist/src/agents/browser/mcpToolWrapper.test.js +126 -0
- package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -0
- package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.d.ts +6 -0
- package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js +57 -0
- package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js.map +1 -0
- package/dist/src/agents/browser/modelAvailability.d.ts +23 -0
- package/dist/src/agents/browser/modelAvailability.js +23 -0
- package/dist/src/agents/browser/modelAvailability.js.map +1 -0
- package/dist/src/agents/local-executor.js +73 -31
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.js +157 -4
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/local-invocation.test.js.map +1 -1
- package/dist/src/agents/registry.js +8 -0
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/remote-invocation.d.ts +2 -1
- package/dist/src/agents/remote-invocation.js +3 -3
- package/dist/src/agents/remote-invocation.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.js +6 -0
- package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
- package/dist/src/agents/subagent-tool.d.ts +3 -0
- package/dist/src/agents/subagent-tool.js +62 -3
- package/dist/src/agents/subagent-tool.js.map +1 -1
- package/dist/src/agents/subagent-tool.test.js +143 -0
- package/dist/src/agents/subagent-tool.test.js.map +1 -1
- package/dist/src/availability/fallbackIntegration.test.js +4 -1
- package/dist/src/availability/fallbackIntegration.test.js.map +1 -1
- package/dist/src/availability/policyHelpers.js +3 -1
- package/dist/src/availability/policyHelpers.js.map +1 -1
- package/dist/src/availability/policyHelpers.test.js +51 -5
- package/dist/src/availability/policyHelpers.test.js.map +1 -1
- package/dist/src/code_assist/admin/admin_controls.js +1 -0
- package/dist/src/code_assist/admin/admin_controls.js.map +1 -1
- package/dist/src/code_assist/converter.js +8 -2
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/converter.test.js.map +1 -1
- package/dist/src/code_assist/experiments/experiments.js +1 -1
- package/dist/src/code_assist/experiments/experiments.js.map +1 -1
- package/dist/src/code_assist/oauth-credential-storage.js +1 -1
- package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
- package/dist/src/code_assist/oauth-credential-storage.test.js +5 -0
- package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +11 -8
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +55 -0
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.js +22 -13
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +26 -0
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/telemetry.js +16 -3
- package/dist/src/code_assist/telemetry.js.map +1 -1
- package/dist/src/code_assist/telemetry.test.js +10 -0
- package/dist/src/code_assist/telemetry.test.js.map +1 -1
- package/dist/src/code_assist/types.d.ts +13 -12
- package/dist/src/code_assist/types.js.map +1 -1
- package/dist/src/config/config.d.ts +83 -8
- package/dist/src/config/config.js +129 -24
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +298 -10
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/models.js +1 -0
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +1 -0
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/config/projectRegistry.js +1 -0
- package/dist/src/config/projectRegistry.js.map +1 -1
- package/dist/src/config/storage.d.ts +17 -1
- package/dist/src/config/storage.js +82 -2
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +149 -2
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/config/userHintService.d.ts +46 -0
- package/dist/src/config/userHintService.js +81 -0
- package/dist/src/config/userHintService.js.map +1 -0
- package/dist/src/config/userHintService.test.d.ts +6 -0
- package/dist/src/config/userHintService.test.js +62 -0
- package/dist/src/config/userHintService.test.js.map +1 -0
- package/dist/src/confirmation-bus/message-bus.js +15 -3
- package/dist/src/confirmation-bus/message-bus.js.map +1 -1
- package/dist/src/confirmation-bus/message-bus.test.js +15 -0
- package/dist/src/confirmation-bus/message-bus.test.js.map +1 -1
- package/dist/src/confirmation-bus/types.d.ts +7 -0
- package/dist/src/confirmation-bus/types.js.map +1 -1
- package/dist/src/core/baseLlmClient.d.ts +2 -3
- package/dist/src/core/baseLlmClient.js +7 -5
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +45 -20
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.js +18 -7
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.d.ts +2 -3
- package/dist/src/core/coreToolHookTriggers.js +8 -3
- package/dist/src/core/coreToolHookTriggers.js.map +1 -1
- package/dist/src/core/coreToolScheduler.js +2 -1
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +10 -3
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/fakeContentGenerator.js +2 -0
- package/dist/src/core/fakeContentGenerator.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +1 -1
- package/dist/src/core/geminiChat.js +5 -5
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +1 -0
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChat_network_retry.test.js +1 -0
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
- package/dist/src/core/logger.js +2 -0
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.d.ts +14 -2
- package/dist/src/core/loggingContentGenerator.js +98 -4
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.test.js +275 -1
- package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
- package/dist/src/core/prompts.test.js +55 -27
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/recordingContentGenerator.test.js +5 -0
- package/dist/src/core/recordingContentGenerator.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +4 -2
- package/dist/src/core/turn.js +2 -0
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +4 -1
- package/dist/src/core/turn.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/hooks/hookAggregator.d.ts +1 -2
- package/dist/src/hooks/hookAggregator.js +1 -2
- package/dist/src/hooks/hookAggregator.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.d.ts +2 -2
- package/dist/src/hooks/hookEventHandler.js +13 -4
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +1 -2
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
- package/dist/src/hooks/hookPlanner.d.ts +1 -2
- package/dist/src/hooks/hookPlanner.js.map +1 -1
- package/dist/src/hooks/hookRegistry.d.ts +8 -0
- package/dist/src/hooks/hookRegistry.js +31 -3
- package/dist/src/hooks/hookRegistry.js.map +1 -1
- package/dist/src/hooks/hookRegistry.test.js.map +1 -1
- package/dist/src/hooks/hookRunner.d.ts +5 -2
- package/dist/src/hooks/hookRunner.js +52 -2
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookSystem.d.ts +11 -3
- package/dist/src/hooks/hookSystem.js +10 -4
- package/dist/src/hooks/hookSystem.js.map +1 -1
- package/dist/src/hooks/hookSystem.test.js +1 -0
- package/dist/src/hooks/hookSystem.test.js.map +1 -1
- package/dist/src/hooks/runtimeHooks.test.d.ts +6 -0
- package/dist/src/hooks/runtimeHooks.test.js +100 -0
- package/dist/src/hooks/runtimeHooks.test.js.map +1 -0
- package/dist/src/hooks/trustedHooks.js +6 -1
- package/dist/src/hooks/trustedHooks.js.map +1 -1
- package/dist/src/hooks/trustedHooks.test.js +17 -9
- package/dist/src/hooks/trustedHooks.test.js.map +1 -1
- package/dist/src/hooks/types.d.ts +49 -8
- package/dist/src/hooks/types.js +20 -1
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +0 -1
- package/dist/src/ide/detect-ide.js +1 -1
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/ide-client.js +3 -2
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-connection-utils.js +90 -14
- package/dist/src/ide/ide-connection-utils.js.map +1 -1
- package/dist/src/ide/ide-connection-utils.test.js +78 -0
- package/dist/src/ide/ide-connection-utils.test.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +1 -2
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/ide/process-utils.d.ts +7 -0
- package/dist/src/ide/process-utils.js +20 -0
- package/dist/src/ide/process-utils.js.map +1 -1
- package/dist/src/ide/process-utils.test.js +30 -0
- package/dist/src/ide/process-utils.test.js.map +1 -1
- package/dist/src/index.d.ts +6 -1
- package/dist/src/index.js +6 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.d.ts +1 -1
- package/dist/src/mcp/oauth-provider.js +8 -7
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +34 -2
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-utils.js +2 -0
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/oauth-utils.test.js +12 -0
- package/dist/src/mcp/oauth-utils.test.js.map +1 -1
- package/dist/src/mcp/token-storage/file-token-storage.js +4 -1
- package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
- package/dist/src/mcp/token-storage/file-token-storage.test.js +40 -2
- package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.js +2 -0
- package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
- package/dist/src/policy/config.d.ts +18 -9
- package/dist/src/policy/config.js +75 -54
- package/dist/src/policy/config.js.map +1 -1
- package/dist/src/policy/config.test.js +26 -26
- package/dist/src/policy/integrity.d.ts +45 -0
- package/dist/src/policy/integrity.js +121 -0
- package/dist/src/policy/integrity.js.map +1 -0
- package/dist/src/policy/integrity.test.d.ts +6 -0
- package/dist/src/policy/integrity.test.js +132 -0
- package/dist/src/policy/integrity.test.js.map +1 -0
- package/dist/src/policy/persistence.test.js +29 -19
- package/dist/src/policy/persistence.test.js.map +1 -1
- package/dist/src/policy/policies/conseca.toml +6 -0
- package/dist/src/policy/policies/plan.toml +28 -12
- package/dist/src/policy/policies/read-only.toml +11 -10
- package/dist/src/policy/policies/write.toml +11 -10
- package/dist/src/policy/policies/yolo.toml +11 -10
- package/dist/src/policy/policy-engine.d.ts +16 -3
- package/dist/src/policy/policy-engine.js +154 -29
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +480 -9
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/policy-updater.test.js +11 -6
- package/dist/src/policy/policy-updater.test.js.map +1 -1
- package/dist/src/policy/toml-loader.d.ts +13 -2
- package/dist/src/policy/toml-loader.js +55 -34
- package/dist/src/policy/toml-loader.js.map +1 -1
- package/dist/src/policy/toml-loader.test.js +115 -7
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/types.d.ts +18 -1
- package/dist/src/policy/types.js +1 -0
- package/dist/src/policy/types.js.map +1 -1
- package/dist/src/policy/workspace-policy.test.d.ts +6 -0
- package/dist/src/policy/workspace-policy.test.js +231 -0
- package/dist/src/policy/workspace-policy.test.js.map +1 -0
- package/dist/src/prompts/promptProvider.js +11 -13
- package/dist/src/prompts/promptProvider.js.map +1 -1
- package/dist/src/prompts/promptProvider.test.js +64 -3
- package/dist/src/prompts/promptProvider.test.js.map +1 -1
- package/dist/src/prompts/snippets.js +41 -10
- package/dist/src/prompts/snippets.js.map +1 -1
- package/dist/src/prompts/snippets.legacy.js +1 -0
- package/dist/src/prompts/snippets.legacy.js.map +1 -1
- package/dist/src/routing/modelRouterService.js +3 -1
- package/dist/src/routing/modelRouterService.js.map +1 -1
- package/dist/src/routing/modelRouterService.test.js +12 -6
- package/dist/src/routing/modelRouterService.test.js.map +1 -1
- package/dist/src/routing/strategies/approvalModeStrategy.d.ts +18 -0
- package/dist/src/routing/strategies/approvalModeStrategy.js +58 -0
- package/dist/src/routing/strategies/approvalModeStrategy.js.map +1 -0
- package/dist/src/routing/strategies/approvalModeStrategy.test.d.ts +6 -0
- package/dist/src/routing/strategies/approvalModeStrategy.test.js +110 -0
- package/dist/src/routing/strategies/approvalModeStrategy.test.js.map +1 -0
- package/dist/src/safety/checker-runner.js +1 -0
- package/dist/src/safety/checker-runner.js.map +1 -1
- package/dist/src/safety/conseca/conseca.d.ts +31 -0
- package/dist/src/safety/conseca/conseca.js +105 -0
- package/dist/src/safety/conseca/conseca.js.map +1 -0
- package/dist/src/safety/conseca/conseca.test.d.ts +6 -0
- package/dist/src/safety/conseca/conseca.test.js +226 -0
- package/dist/src/safety/conseca/conseca.test.js.map +1 -0
- package/dist/src/safety/conseca/integration.test.d.ts +6 -0
- package/dist/src/safety/conseca/integration.test.js +19 -0
- package/dist/src/safety/conseca/integration.test.js.map +1 -0
- package/dist/src/safety/conseca/policy-enforcer.d.ts +13 -0
- package/dist/src/safety/conseca/policy-enforcer.js +135 -0
- package/dist/src/safety/conseca/policy-enforcer.js.map +1 -0
- package/dist/src/safety/conseca/policy-enforcer.test.d.ts +6 -0
- package/dist/src/safety/conseca/policy-enforcer.test.js +141 -0
- package/dist/src/safety/conseca/policy-enforcer.test.js.map +1 -0
- package/dist/src/safety/conseca/policy-generator.d.ts +15 -0
- package/dist/src/safety/conseca/policy-generator.js +144 -0
- package/dist/src/safety/conseca/policy-generator.js.map +1 -0
- package/dist/src/safety/conseca/policy-generator.test.d.ts +6 -0
- package/dist/src/safety/conseca/policy-generator.test.js +84 -0
- package/dist/src/safety/conseca/policy-generator.test.js.map +1 -0
- package/dist/src/safety/conseca/types.d.ts +15 -0
- package/dist/src/safety/conseca/types.js +7 -0
- package/dist/src/safety/conseca/types.js.map +1 -0
- package/dist/src/safety/context-builder.d.ts +3 -3
- package/dist/src/safety/context-builder.js +60 -4
- package/dist/src/safety/context-builder.js.map +1 -1
- package/dist/src/safety/context-builder.test.js +98 -18
- package/dist/src/safety/context-builder.test.js.map +1 -1
- package/dist/src/safety/protocol.d.ts +4 -0
- package/dist/src/safety/registry.d.ts +2 -1
- package/dist/src/safety/registry.js +14 -4
- package/dist/src/safety/registry.js.map +1 -1
- package/dist/src/safety/registry.test.js +5 -2
- package/dist/src/safety/registry.test.js.map +1 -1
- package/dist/src/scheduler/confirmation.d.ts +0 -13
- package/dist/src/scheduler/confirmation.js +1 -1
- package/dist/src/scheduler/confirmation.js.map +1 -1
- package/dist/src/scheduler/policy.js +6 -2
- package/dist/src/scheduler/policy.js.map +1 -1
- package/dist/src/scheduler/policy.test.js +4 -3
- package/dist/src/scheduler/policy.test.js.map +1 -1
- package/dist/src/scheduler/scheduler.d.ts +3 -1
- package/dist/src/scheduler/scheduler.js +148 -28
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/scheduler/scheduler.test.js +341 -242
- package/dist/src/scheduler/scheduler.test.js.map +1 -1
- package/dist/src/scheduler/scheduler_parallel.test.d.ts +6 -0
- package/dist/src/scheduler/scheduler_parallel.test.js +309 -0
- package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -0
- package/dist/src/scheduler/state-manager.d.ts +8 -0
- package/dist/src/scheduler/state-manager.js +30 -2
- package/dist/src/scheduler/state-manager.js.map +1 -1
- package/dist/src/scheduler/state-manager.test.js +61 -0
- package/dist/src/scheduler/state-manager.test.js.map +1 -1
- package/dist/src/scheduler/tool-executor.js +15 -7
- package/dist/src/scheduler/tool-executor.js.map +1 -1
- package/dist/src/scheduler/tool-executor.test.js +1 -1
- package/dist/src/scheduler/tool-executor.test.js.map +1 -1
- package/dist/src/scheduler/types.d.ts +23 -0
- package/dist/src/services/FolderTrustDiscoveryService.d.ts +32 -0
- package/dist/src/services/FolderTrustDiscoveryService.js +167 -0
- package/dist/src/services/FolderTrustDiscoveryService.js.map +1 -0
- package/dist/src/services/FolderTrustDiscoveryService.test.d.ts +6 -0
- package/dist/src/services/FolderTrustDiscoveryService.test.js +118 -0
- package/dist/src/services/FolderTrustDiscoveryService.test.js.map +1 -0
- package/dist/src/services/chatCompressionService.d.ts +0 -14
- package/dist/src/services/chatCompressionService.js +29 -7
- package/dist/src/services/chatCompressionService.js.map +1 -1
- package/dist/src/services/chatCompressionService.test.js +3 -1
- package/dist/src/services/chatCompressionService.test.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +7 -1
- package/dist/src/services/chatRecordingService.js +12 -1
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +34 -0
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +1 -2
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/sessionSummaryUtils.js +3 -0
- package/dist/src/services/sessionSummaryUtils.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +6 -0
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/skills/skillLoader.js +2 -2
- package/dist/src/skills/skillLoader.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +3 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +35 -4
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +0 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +19 -5
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +14 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +29 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/conseca-logger.d.ts +9 -0
- package/dist/src/telemetry/conseca-logger.js +91 -0
- package/dist/src/telemetry/conseca-logger.js.map +1 -0
- package/dist/src/telemetry/conseca-logger.test.d.ts +6 -0
- package/dist/src/telemetry/conseca-logger.test.js +89 -0
- package/dist/src/telemetry/conseca-logger.test.js.map +1 -0
- package/dist/src/telemetry/gcp-exporters.js +1 -2
- package/dist/src/telemetry/gcp-exporters.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +2 -1
- package/dist/src/telemetry/index.js +2 -1
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/integration.test.circular.js +3 -0
- package/dist/src/telemetry/integration.test.circular.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +1 -2
- package/dist/src/telemetry/loggers.js +3 -13
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.circular.js +3 -0
- package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +6 -5
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +1 -3
- package/dist/src/telemetry/metrics.js +3 -2
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +7 -3
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/telemetry/sanitize.test.js +19 -18
- package/dist/src/telemetry/sanitize.test.js.map +1 -1
- package/dist/src/telemetry/semantic.d.ts +7 -9
- package/dist/src/telemetry/semantic.js +8 -8
- package/dist/src/telemetry/semantic.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +42 -4
- package/dist/src/telemetry/types.js +87 -2
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +1 -2
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +1 -2
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/tools/ask-user.test.js +1 -19
- package/dist/src/tools/ask-user.test.js.map +1 -1
- package/dist/src/tools/confirmation-policy.test.js +14 -17
- package/dist/src/tools/confirmation-policy.test.js.map +1 -1
- package/dist/src/tools/definitions/dynamic-declaration-helpers.js +1 -1
- package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
- package/dist/src/tools/definitions/model-family-sets/default-legacy.js +14 -16
- 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 +24 -59
- package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
- package/dist/src/tools/diff-utils.d.ts +9 -0
- package/dist/src/tools/diff-utils.js +66 -0
- package/dist/src/tools/diff-utils.js.map +1 -0
- package/dist/src/tools/diff-utils.test.d.ts +6 -0
- package/dist/src/tools/diff-utils.test.js +53 -0
- package/dist/src/tools/diff-utils.test.js.map +1 -0
- package/dist/src/tools/edit.d.ts +9 -4
- package/dist/src/tools/edit.js +203 -34
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +225 -10
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/enter-plan-mode.js +1 -1
- package/dist/src/tools/enter-plan-mode.js.map +1 -1
- package/dist/src/tools/enter-plan-mode.test.js +1 -1
- package/dist/src/tools/enter-plan-mode.test.js.map +1 -1
- package/dist/src/tools/exit-plan-mode.js +10 -24
- package/dist/src/tools/exit-plan-mode.js.map +1 -1
- package/dist/src/tools/exit-plan-mode.test.js +1 -1
- package/dist/src/tools/exit-plan-mode.test.js.map +1 -1
- package/dist/src/tools/grep-utils.d.ts +49 -0
- package/dist/src/tools/grep-utils.js +139 -0
- package/dist/src/tools/grep-utils.js.map +1 -0
- package/dist/src/tools/grep.js +4 -44
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +21 -2
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.js +6 -1
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +2 -2
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.js +16 -18
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +51 -0
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +22 -1
- package/dist/src/tools/mcp-client.js +95 -36
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +148 -20
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +15 -5
- package/dist/src/tools/mcp-tool.js +36 -8
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/memoryTool.js +1 -1
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/memoryTool.test.js +5 -0
- package/dist/src/tools/memoryTool.test.js.map +1 -1
- package/dist/src/tools/omissionPlaceholderDetector.d.ts +15 -0
- package/dist/src/tools/omissionPlaceholderDetector.js +90 -0
- package/dist/src/tools/omissionPlaceholderDetector.js.map +1 -0
- package/dist/src/tools/omissionPlaceholderDetector.test.d.ts +6 -0
- package/dist/src/tools/omissionPlaceholderDetector.test.js +49 -0
- package/dist/src/tools/omissionPlaceholderDetector.test.js.map +1 -0
- package/dist/src/tools/read-file.d.ts +4 -4
- package/dist/src/tools/read-file.js +17 -10
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +20 -10
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/ripGrep.js +49 -46
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +52 -37
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +2 -2
- package/dist/src/tools/shell.js +2 -2
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +1 -2
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +0 -6
- package/dist/src/tools/tool-names.js +0 -15
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +1 -0
- package/dist/src/tools/tool-registry.js +33 -6
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +47 -0
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +21 -1
- package/dist/src/tools/tools.js +19 -3
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/tools.test.js +24 -0
- package/dist/src/tools/tools.test.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +9 -1
- package/dist/src/tools/web-fetch.js +273 -34
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +303 -30
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/write-file.js +14 -10
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +75 -0
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/tools/write-todos.d.ts +2 -2
- package/dist/src/tools/write-todos.js +1 -1
- package/dist/src/tools/write-todos.js.map +1 -1
- package/dist/src/tools/xcode-mcp-fix-transport.js +4 -1
- package/dist/src/tools/xcode-mcp-fix-transport.js.map +1 -1
- package/dist/src/utils/approvalModeUtils.d.ts +14 -0
- package/dist/src/utils/approvalModeUtils.js +35 -0
- package/dist/src/utils/approvalModeUtils.js.map +1 -0
- package/dist/src/utils/approvalModeUtils.test.d.ts +6 -0
- package/dist/src/utils/approvalModeUtils.test.js +36 -0
- package/dist/src/utils/approvalModeUtils.test.js.map +1 -0
- package/dist/src/utils/authConsent.d.ts +1 -1
- package/dist/src/utils/authConsent.js +10 -8
- package/dist/src/utils/authConsent.js.map +1 -1
- package/dist/src/utils/authConsent.test.js +89 -44
- package/dist/src/utils/authConsent.test.js.map +1 -1
- package/dist/src/utils/compatibility.d.ts +41 -0
- package/dist/src/utils/compatibility.js +112 -0
- package/dist/src/utils/compatibility.js.map +1 -0
- package/dist/src/utils/compatibility.test.d.ts +6 -0
- package/dist/src/utils/compatibility.test.js +233 -0
- package/dist/src/utils/compatibility.test.js.map +1 -0
- package/dist/src/utils/editCorrector.js +22 -29
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/envExpansion.d.ts +18 -0
- package/dist/src/utils/envExpansion.js +46 -0
- package/dist/src/utils/envExpansion.js.map +1 -0
- package/dist/src/utils/envExpansion.test.d.ts +6 -0
- package/dist/src/utils/envExpansion.test.js +110 -0
- package/dist/src/utils/envExpansion.test.js.map +1 -0
- package/dist/src/utils/errors.d.ts +1 -0
- package/dist/src/utils/errors.js +55 -10
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.js +27 -1
- package/dist/src/utils/errors.test.js.map +1 -1
- package/dist/src/utils/events.d.ts +17 -0
- package/dist/src/utils/events.js +12 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/events.test.d.ts +1 -1
- package/dist/src/utils/events.test.js +50 -3
- package/dist/src/utils/events.test.js.map +1 -1
- package/dist/src/utils/fastAckHelper.js +2 -1
- package/dist/src/utils/fastAckHelper.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +1 -1
- package/dist/src/utils/fetch.js +15 -2
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fileDiffUtils.d.ts +2 -2
- package/dist/src/utils/fileDiffUtils.js +1 -2
- package/dist/src/utils/fileDiffUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.d.ts +5 -3
- package/dist/src/utils/fileUtils.js +25 -16
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +14 -13
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.js +4 -1
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/getFolderStructure.test.js +4 -5
- package/dist/src/utils/getFolderStructure.test.js.map +1 -1
- package/dist/src/utils/getPty.js +4 -0
- package/dist/src/utils/getPty.js.map +1 -1
- package/dist/src/utils/googleErrors.js +29 -5
- package/dist/src/utils/googleErrors.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.js +10 -0
- package/dist/src/utils/googleQuotaErrors.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.test.js +16 -1
- package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.js +2 -0
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +1 -2
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/retry.d.ts +1 -1
- package/dist/src/utils/retry.js +9 -4
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +15 -12
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/safeJsonStringify.js +3 -0
- package/dist/src/utils/safeJsonStringify.js.map +1 -1
- package/dist/src/utils/schemaValidator.js +5 -3
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/dist/src/utils/session.d.ts +1 -0
- package/dist/src/utils/session.js +3 -0
- package/dist/src/utils/session.js.map +1 -1
- package/dist/src/utils/sessionUtils.d.ts +14 -0
- package/dist/src/utils/sessionUtils.js +113 -0
- package/dist/src/utils/sessionUtils.js.map +1 -0
- package/dist/src/utils/sessionUtils.test.d.ts +1 -0
- package/dist/src/utils/sessionUtils.test.js +137 -0
- package/dist/src/utils/sessionUtils.test.js.map +1 -0
- package/dist/src/utils/shell-utils.js +1 -0
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/stdio.js +6 -0
- package/dist/src/utils/stdio.js.map +1 -1
- package/dist/src/utils/textUtils.d.ts +9 -0
- package/dist/src/utils/textUtils.js +15 -0
- package/dist/src/utils/textUtils.js.map +1 -1
- package/dist/src/utils/textUtils.test.js +42 -1
- package/dist/src/utils/textUtils.test.js.map +1 -1
- package/dist/src/utils/toolCallContext.d.ts +0 -5
- package/dist/src/utils/toolCallContext.js +1 -1
- package/dist/src/utils/toolCallContext.js.map +1 -1
- package/dist/src/utils/userAccountManager.js +3 -0
- package/dist/src/utils/userAccountManager.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -3
- package/dist/docs/architecture.md +0 -80
- package/dist/docs/cli/index.md +0 -123
- package/dist/docs/core/concepts.md +0 -137
- package/dist/docs/get-started/configuration-v1.md +0 -882
- package/dist/google-gemini-cli-core-0.30.0-preview.4.tgz +0 -0
- /package/dist/docs/{core → reference}/memport.md +0 -0
- /package/dist/docs/{core → reference}/tools-api.md +0 -0
- /package/dist/docs/{cli → resources}/uninstall.md +0 -0
|
@@ -1,33 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Storage } from '../config/storage.js';
|
|
6
7
|
import { type PolicyEngineConfig, type ApprovalMode, type PolicySettings } from './types.js';
|
|
7
8
|
import type { PolicyEngine } from './policy-engine.js';
|
|
8
9
|
import { type PolicyFileError } from './toml-loader.js';
|
|
9
10
|
import { type MessageBus } from '../confirmation-bus/message-bus.js';
|
|
10
11
|
export declare const DEFAULT_CORE_POLICIES_DIR: string;
|
|
11
12
|
export declare const DEFAULT_POLICY_TIER = 1;
|
|
12
|
-
export declare const
|
|
13
|
-
export declare const
|
|
13
|
+
export declare const WORKSPACE_POLICY_TIER = 2;
|
|
14
|
+
export declare const USER_POLICY_TIER = 3;
|
|
15
|
+
export declare const ADMIN_POLICY_TIER = 4;
|
|
16
|
+
export declare const ALWAYS_ALLOW_PRIORITY: number;
|
|
17
|
+
export declare const MCP_EXCLUDED_PRIORITY: number;
|
|
18
|
+
export declare const EXCLUDE_TOOLS_FLAG_PRIORITY: number;
|
|
19
|
+
export declare const ALLOWED_TOOLS_FLAG_PRIORITY: number;
|
|
20
|
+
export declare const TRUSTED_MCP_SERVER_PRIORITY: number;
|
|
21
|
+
export declare const ALLOWED_MCP_SERVER_PRIORITY: number;
|
|
14
22
|
/**
|
|
15
|
-
* Gets the list of directories to search for policy files, in order of
|
|
16
|
-
* (
|
|
23
|
+
* Gets the list of directories to search for policy files, in order of increasing priority
|
|
24
|
+
* (Default -> User -> Project -> Admin).
|
|
17
25
|
*
|
|
18
26
|
* @param defaultPoliciesDir Optional path to a directory containing default policies.
|
|
19
27
|
* @param policyPaths Optional user-provided policy paths (from --policy flag).
|
|
20
28
|
* When provided, these replace the default user policies directory.
|
|
29
|
+
* @param workspacePoliciesDir Optional path to a directory containing workspace policies.
|
|
21
30
|
*/
|
|
22
|
-
export declare function getPolicyDirectories(defaultPoliciesDir?: string, policyPaths?: string[]): string[];
|
|
31
|
+
export declare function getPolicyDirectories(defaultPoliciesDir?: string, policyPaths?: string[], workspacePoliciesDir?: string): string[];
|
|
23
32
|
/**
|
|
24
|
-
* Determines the policy tier (1=default, 2=user, 3=admin) for a given directory.
|
|
33
|
+
* Determines the policy tier (1=default, 2=user, 3=workspace, 4=admin) for a given directory.
|
|
25
34
|
* This is used by the TOML loader to assign priority bands.
|
|
26
35
|
*/
|
|
27
|
-
export declare function getPolicyTier(dir: string, defaultPoliciesDir?: string): number;
|
|
36
|
+
export declare function getPolicyTier(dir: string, defaultPoliciesDir?: string, workspacePoliciesDir?: string): number;
|
|
28
37
|
/**
|
|
29
38
|
* Formats a policy file error for console logging.
|
|
30
39
|
*/
|
|
31
40
|
export declare function formatPolicyError(error: PolicyFileError): string;
|
|
32
41
|
export declare function createPolicyEngineConfig(settings: PolicySettings, approvalMode: ApprovalMode, defaultPoliciesDir?: string): Promise<PolicyEngineConfig>;
|
|
33
|
-
export declare function createPolicyUpdater(policyEngine: PolicyEngine, messageBus: MessageBus): void;
|
|
42
|
+
export declare function createPolicyUpdater(policyEngine: PolicyEngine, messageBus: MessageBus, storage: Storage): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import * as fs from 'node:fs/promises';
|
|
@@ -18,43 +18,60 @@ import { coreEvents } from '../utils/events.js';
|
|
|
18
18
|
import { debugLogger } from '../utils/debugLogger.js';
|
|
19
19
|
import { SHELL_TOOL_NAMES } from '../utils/shell-utils.js';
|
|
20
20
|
import { SHELL_TOOL_NAME } from '../tools/tool-names.js';
|
|
21
|
+
import { isNodeError } from '../utils/errors.js';
|
|
21
22
|
import { isDirectorySecure } from '../utils/security.js';
|
|
22
23
|
const __filename = fileURLToPath(import.meta.url);
|
|
23
24
|
const __dirname = path.dirname(__filename);
|
|
24
25
|
export const DEFAULT_CORE_POLICIES_DIR = path.join(__dirname, 'policies');
|
|
25
26
|
// Policy tier constants for priority calculation
|
|
26
27
|
export const DEFAULT_POLICY_TIER = 1;
|
|
27
|
-
export const
|
|
28
|
-
export const
|
|
28
|
+
export const WORKSPACE_POLICY_TIER = 2;
|
|
29
|
+
export const USER_POLICY_TIER = 3;
|
|
30
|
+
export const ADMIN_POLICY_TIER = 4;
|
|
31
|
+
// Specific priority offsets and derived priorities for dynamic/settings rules.
|
|
32
|
+
// These are added to the tier base (e.g., USER_POLICY_TIER).
|
|
33
|
+
// Workspace tier (2) + high priority (950/1000) = ALWAYS_ALLOW_PRIORITY
|
|
34
|
+
// This ensures user "always allow" selections are high priority
|
|
35
|
+
// within the workspace tier but still lose to user/admin policies.
|
|
36
|
+
export const ALWAYS_ALLOW_PRIORITY = WORKSPACE_POLICY_TIER + 0.95;
|
|
37
|
+
export const MCP_EXCLUDED_PRIORITY = USER_POLICY_TIER + 0.9;
|
|
38
|
+
export const EXCLUDE_TOOLS_FLAG_PRIORITY = USER_POLICY_TIER + 0.4;
|
|
39
|
+
export const ALLOWED_TOOLS_FLAG_PRIORITY = USER_POLICY_TIER + 0.3;
|
|
40
|
+
export const TRUSTED_MCP_SERVER_PRIORITY = USER_POLICY_TIER + 0.2;
|
|
41
|
+
export const ALLOWED_MCP_SERVER_PRIORITY = USER_POLICY_TIER + 0.1;
|
|
29
42
|
/**
|
|
30
|
-
* Gets the list of directories to search for policy files, in order of
|
|
31
|
-
* (
|
|
43
|
+
* Gets the list of directories to search for policy files, in order of increasing priority
|
|
44
|
+
* (Default -> User -> Project -> Admin).
|
|
32
45
|
*
|
|
33
46
|
* @param defaultPoliciesDir Optional path to a directory containing default policies.
|
|
34
47
|
* @param policyPaths Optional user-provided policy paths (from --policy flag).
|
|
35
48
|
* When provided, these replace the default user policies directory.
|
|
49
|
+
* @param workspacePoliciesDir Optional path to a directory containing workspace policies.
|
|
36
50
|
*/
|
|
37
|
-
export function getPolicyDirectories(defaultPoliciesDir, policyPaths) {
|
|
51
|
+
export function getPolicyDirectories(defaultPoliciesDir, policyPaths, workspacePoliciesDir) {
|
|
38
52
|
const dirs = [];
|
|
39
|
-
//
|
|
40
|
-
dirs.push(
|
|
41
|
-
// User tier (
|
|
53
|
+
// Admin tier (highest priority)
|
|
54
|
+
dirs.push(Storage.getSystemPoliciesDir());
|
|
55
|
+
// User tier (second highest priority)
|
|
42
56
|
if (policyPaths && policyPaths.length > 0) {
|
|
43
57
|
dirs.push(...policyPaths);
|
|
44
58
|
}
|
|
45
59
|
else {
|
|
46
60
|
dirs.push(Storage.getUserPoliciesDir());
|
|
47
61
|
}
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
62
|
+
// Workspace Tier (third highest)
|
|
63
|
+
if (workspacePoliciesDir) {
|
|
64
|
+
dirs.push(workspacePoliciesDir);
|
|
65
|
+
}
|
|
66
|
+
// Default tier (lowest priority)
|
|
67
|
+
dirs.push(defaultPoliciesDir ?? DEFAULT_CORE_POLICIES_DIR);
|
|
68
|
+
return dirs;
|
|
52
69
|
}
|
|
53
70
|
/**
|
|
54
|
-
* Determines the policy tier (1=default, 2=user, 3=admin) for a given directory.
|
|
71
|
+
* Determines the policy tier (1=default, 2=user, 3=workspace, 4=admin) for a given directory.
|
|
55
72
|
* This is used by the TOML loader to assign priority bands.
|
|
56
73
|
*/
|
|
57
|
-
export function getPolicyTier(dir, defaultPoliciesDir) {
|
|
74
|
+
export function getPolicyTier(dir, defaultPoliciesDir, workspacePoliciesDir) {
|
|
58
75
|
const USER_POLICIES_DIR = Storage.getUserPoliciesDir();
|
|
59
76
|
const ADMIN_POLICIES_DIR = Storage.getSystemPoliciesDir();
|
|
60
77
|
const normalizedDir = path.resolve(dir);
|
|
@@ -70,6 +87,10 @@ export function getPolicyTier(dir, defaultPoliciesDir) {
|
|
|
70
87
|
if (normalizedDir === normalizedUser) {
|
|
71
88
|
return USER_POLICY_TIER;
|
|
72
89
|
}
|
|
90
|
+
if (workspacePoliciesDir &&
|
|
91
|
+
normalizedDir === path.resolve(workspacePoliciesDir)) {
|
|
92
|
+
return WORKSPACE_POLICY_TIER;
|
|
93
|
+
}
|
|
73
94
|
if (normalizedDir === normalizedAdmin) {
|
|
74
95
|
return ADMIN_POLICY_TIER;
|
|
75
96
|
}
|
|
@@ -111,12 +132,12 @@ async function filterSecurePolicyDirectories(dirs) {
|
|
|
111
132
|
return results.filter((dir) => dir !== null);
|
|
112
133
|
}
|
|
113
134
|
export async function createPolicyEngineConfig(settings, approvalMode, defaultPoliciesDir) {
|
|
114
|
-
const policyDirs = getPolicyDirectories(defaultPoliciesDir, settings.policyPaths);
|
|
135
|
+
const policyDirs = getPolicyDirectories(defaultPoliciesDir, settings.policyPaths, settings.workspacePoliciesDir);
|
|
115
136
|
const securePolicyDirs = await filterSecurePolicyDirectories(policyDirs);
|
|
116
137
|
const normalizedAdminPoliciesDir = path.resolve(Storage.getSystemPoliciesDir());
|
|
117
138
|
// Load policies from TOML files
|
|
118
139
|
const { rules: tomlRules, checkers: tomlCheckers, errors, } = await loadPoliciesFromToml(securePolicyDirs, (p) => {
|
|
119
|
-
const tier = getPolicyTier(p, defaultPoliciesDir);
|
|
140
|
+
const tier = getPolicyTier(p, defaultPoliciesDir, settings.workspacePoliciesDir);
|
|
120
141
|
// If it's a user-provided path that isn't already categorized as ADMIN,
|
|
121
142
|
// treat it as USER tier.
|
|
122
143
|
if (settings.policyPaths?.some((userPath) => path.resolve(userPath) === path.resolve(p))) {
|
|
@@ -143,19 +164,21 @@ export async function createPolicyEngineConfig(settings, approvalMode, defaultPo
|
|
|
143
164
|
//
|
|
144
165
|
// Priority bands (tiers):
|
|
145
166
|
// - Default policies (TOML): 1 + priority/1000 (e.g., priority 100 → 1.100)
|
|
146
|
-
// -
|
|
147
|
-
// -
|
|
167
|
+
// - Workspace policies (TOML): 2 + priority/1000 (e.g., priority 100 → 2.100)
|
|
168
|
+
// - User policies (TOML): 3 + priority/1000 (e.g., priority 100 → 3.100)
|
|
169
|
+
// - Admin policies (TOML): 4 + priority/1000 (e.g., priority 100 → 4.100)
|
|
148
170
|
//
|
|
149
|
-
// This ensures Admin > User > Default hierarchy is always preserved,
|
|
171
|
+
// This ensures Admin > User > Workspace > Default hierarchy is always preserved,
|
|
150
172
|
// while allowing user-specified priorities to work within each tier.
|
|
151
173
|
//
|
|
152
|
-
// Settings-based and dynamic rules (
|
|
153
|
-
//
|
|
154
|
-
//
|
|
155
|
-
//
|
|
156
|
-
//
|
|
157
|
-
//
|
|
158
|
-
//
|
|
174
|
+
// Settings-based and dynamic rules (mixed tiers):
|
|
175
|
+
// MCP_EXCLUDED_PRIORITY: MCP servers excluded list (security: persistent server blocks)
|
|
176
|
+
// EXCLUDE_TOOLS_FLAG_PRIORITY: Command line flag --exclude-tools (explicit temporary blocks)
|
|
177
|
+
// ALLOWED_TOOLS_FLAG_PRIORITY: Command line flag --allowed-tools (explicit temporary allows)
|
|
178
|
+
// TRUSTED_MCP_SERVER_PRIORITY: MCP servers with trust=true (persistent trusted servers)
|
|
179
|
+
// ALLOWED_MCP_SERVER_PRIORITY: MCP servers allowed list (persistent general server allows)
|
|
180
|
+
// ALWAYS_ALLOW_PRIORITY: Tools that the user has selected as "Always Allow" in the interactive UI
|
|
181
|
+
// (Workspace tier 2.x - scoped to the project)
|
|
159
182
|
//
|
|
160
183
|
// TOML policy priorities (before transformation):
|
|
161
184
|
// 10: Write tools default to ASK_USER (becomes 1.010 in default tier)
|
|
@@ -165,31 +188,31 @@ export async function createPolicyEngineConfig(settings, approvalMode, defaultPo
|
|
|
165
188
|
// 70: Plan mode explicit ALLOW override (becomes 1.070 in default tier)
|
|
166
189
|
// 999: YOLO mode allow-all (becomes 1.999 in default tier)
|
|
167
190
|
// MCP servers that are explicitly excluded in settings.mcp.excluded
|
|
168
|
-
// Priority:
|
|
191
|
+
// Priority: MCP_EXCLUDED_PRIORITY (highest in user tier for security - persistent server blocks)
|
|
169
192
|
if (settings.mcp?.excluded) {
|
|
170
193
|
for (const serverName of settings.mcp.excluded) {
|
|
171
194
|
rules.push({
|
|
172
195
|
toolName: `${serverName}__*`,
|
|
173
196
|
decision: PolicyDecision.DENY,
|
|
174
|
-
priority:
|
|
197
|
+
priority: MCP_EXCLUDED_PRIORITY,
|
|
175
198
|
source: 'Settings (MCP Excluded)',
|
|
176
199
|
});
|
|
177
200
|
}
|
|
178
201
|
}
|
|
179
202
|
// Tools that are explicitly excluded in the settings.
|
|
180
|
-
// Priority:
|
|
203
|
+
// Priority: EXCLUDE_TOOLS_FLAG_PRIORITY (user tier - explicit temporary blocks)
|
|
181
204
|
if (settings.tools?.exclude) {
|
|
182
205
|
for (const tool of settings.tools.exclude) {
|
|
183
206
|
rules.push({
|
|
184
207
|
toolName: tool,
|
|
185
208
|
decision: PolicyDecision.DENY,
|
|
186
|
-
priority:
|
|
209
|
+
priority: EXCLUDE_TOOLS_FLAG_PRIORITY,
|
|
187
210
|
source: 'Settings (Tools Excluded)',
|
|
188
211
|
});
|
|
189
212
|
}
|
|
190
213
|
}
|
|
191
214
|
// Tools that are explicitly allowed in the settings.
|
|
192
|
-
// Priority:
|
|
215
|
+
// Priority: ALLOWED_TOOLS_FLAG_PRIORITY (user tier - explicit temporary allows)
|
|
193
216
|
if (settings.tools?.allowed) {
|
|
194
217
|
for (const tool of settings.tools.allowed) {
|
|
195
218
|
// Check for legacy format: toolName(args)
|
|
@@ -208,7 +231,7 @@ export async function createPolicyEngineConfig(settings, approvalMode, defaultPo
|
|
|
208
231
|
rules.push({
|
|
209
232
|
toolName,
|
|
210
233
|
decision: PolicyDecision.ALLOW,
|
|
211
|
-
priority:
|
|
234
|
+
priority: ALLOWED_TOOLS_FLAG_PRIORITY,
|
|
212
235
|
argsPattern: new RegExp(pattern),
|
|
213
236
|
source: 'Settings (Tools Allowed)',
|
|
214
237
|
});
|
|
@@ -221,7 +244,7 @@ export async function createPolicyEngineConfig(settings, approvalMode, defaultPo
|
|
|
221
244
|
rules.push({
|
|
222
245
|
toolName,
|
|
223
246
|
decision: PolicyDecision.ALLOW,
|
|
224
|
-
priority:
|
|
247
|
+
priority: ALLOWED_TOOLS_FLAG_PRIORITY,
|
|
225
248
|
source: 'Settings (Tools Allowed)',
|
|
226
249
|
});
|
|
227
250
|
}
|
|
@@ -234,14 +257,14 @@ export async function createPolicyEngineConfig(settings, approvalMode, defaultPo
|
|
|
234
257
|
rules.push({
|
|
235
258
|
toolName,
|
|
236
259
|
decision: PolicyDecision.ALLOW,
|
|
237
|
-
priority:
|
|
260
|
+
priority: ALLOWED_TOOLS_FLAG_PRIORITY,
|
|
238
261
|
source: 'Settings (Tools Allowed)',
|
|
239
262
|
});
|
|
240
263
|
}
|
|
241
264
|
}
|
|
242
265
|
}
|
|
243
266
|
// MCP servers that are trusted in the settings.
|
|
244
|
-
// Priority:
|
|
267
|
+
// Priority: TRUSTED_MCP_SERVER_PRIORITY (user tier - persistent trusted servers)
|
|
245
268
|
if (settings.mcpServers) {
|
|
246
269
|
for (const [serverName, serverConfig] of Object.entries(settings.mcpServers)) {
|
|
247
270
|
if (serverConfig.trust) {
|
|
@@ -250,20 +273,20 @@ export async function createPolicyEngineConfig(settings, approvalMode, defaultPo
|
|
|
250
273
|
rules.push({
|
|
251
274
|
toolName: `${serverName}__*`,
|
|
252
275
|
decision: PolicyDecision.ALLOW,
|
|
253
|
-
priority:
|
|
276
|
+
priority: TRUSTED_MCP_SERVER_PRIORITY,
|
|
254
277
|
source: 'Settings (MCP Trusted)',
|
|
255
278
|
});
|
|
256
279
|
}
|
|
257
280
|
}
|
|
258
281
|
}
|
|
259
282
|
// MCP servers that are explicitly allowed in settings.mcp.allowed
|
|
260
|
-
// Priority:
|
|
283
|
+
// Priority: ALLOWED_MCP_SERVER_PRIORITY (user tier - persistent general server allows)
|
|
261
284
|
if (settings.mcp?.allowed) {
|
|
262
285
|
for (const serverName of settings.mcp.allowed) {
|
|
263
286
|
rules.push({
|
|
264
287
|
toolName: `${serverName}__*`,
|
|
265
288
|
decision: PolicyDecision.ALLOW,
|
|
266
|
-
priority:
|
|
289
|
+
priority: ALLOWED_MCP_SERVER_PRIORITY,
|
|
267
290
|
source: 'Settings (MCP Allowed)',
|
|
268
291
|
});
|
|
269
292
|
}
|
|
@@ -275,7 +298,7 @@ export async function createPolicyEngineConfig(settings, approvalMode, defaultPo
|
|
|
275
298
|
approvalMode,
|
|
276
299
|
};
|
|
277
300
|
}
|
|
278
|
-
export function createPolicyUpdater(policyEngine, messageBus) {
|
|
301
|
+
export function createPolicyUpdater(policyEngine, messageBus, storage) {
|
|
279
302
|
// Use a sequential queue for persistence to avoid lost updates from concurrent events.
|
|
280
303
|
let persistenceQueue = Promise.resolve();
|
|
281
304
|
messageBus.subscribe(MessageBusType.UPDATE_POLICY, async (message) => {
|
|
@@ -290,10 +313,7 @@ export function createPolicyUpdater(policyEngine, messageBus) {
|
|
|
290
313
|
policyEngine.addRule({
|
|
291
314
|
toolName,
|
|
292
315
|
decision: PolicyDecision.ALLOW,
|
|
293
|
-
|
|
294
|
-
// This ensures user "always allow" selections are high priority
|
|
295
|
-
// but still lose to admin policies (3.xxx) and settings excludes (200)
|
|
296
|
-
priority: 2.95,
|
|
316
|
+
priority: ALWAYS_ALLOW_PRIORITY,
|
|
297
317
|
argsPattern: new RegExp(pattern),
|
|
298
318
|
source: 'Dynamic (Confirmed)',
|
|
299
319
|
});
|
|
@@ -311,10 +331,7 @@ export function createPolicyUpdater(policyEngine, messageBus) {
|
|
|
311
331
|
policyEngine.addRule({
|
|
312
332
|
toolName,
|
|
313
333
|
decision: PolicyDecision.ALLOW,
|
|
314
|
-
|
|
315
|
-
// This ensures user "always allow" selections are high priority
|
|
316
|
-
// but still lose to admin policies (3.xxx) and settings excludes (200)
|
|
317
|
-
priority: 2.95,
|
|
334
|
+
priority: ALWAYS_ALLOW_PRIORITY,
|
|
318
335
|
argsPattern,
|
|
319
336
|
source: 'Dynamic (Confirmed)',
|
|
320
337
|
});
|
|
@@ -322,18 +339,22 @@ export function createPolicyUpdater(policyEngine, messageBus) {
|
|
|
322
339
|
if (message.persist) {
|
|
323
340
|
persistenceQueue = persistenceQueue.then(async () => {
|
|
324
341
|
try {
|
|
325
|
-
const
|
|
326
|
-
await fs.mkdir(
|
|
327
|
-
const policyFile =
|
|
342
|
+
const workspacePoliciesDir = storage.getWorkspacePoliciesDir();
|
|
343
|
+
await fs.mkdir(workspacePoliciesDir, { recursive: true });
|
|
344
|
+
const policyFile = storage.getAutoSavedPolicyPath();
|
|
328
345
|
// Read existing file
|
|
329
346
|
let existingData = {};
|
|
330
347
|
try {
|
|
331
348
|
const fileContent = await fs.readFile(policyFile, 'utf-8');
|
|
332
|
-
|
|
349
|
+
const parsed = toml.parse(fileContent);
|
|
350
|
+
if (typeof parsed === 'object' &&
|
|
351
|
+
parsed !== null &&
|
|
352
|
+
(!('rule' in parsed) || Array.isArray(parsed['rule']))) {
|
|
353
|
+
existingData = parsed;
|
|
354
|
+
}
|
|
333
355
|
}
|
|
334
356
|
catch (error) {
|
|
335
|
-
|
|
336
|
-
if (error.code !== 'ENOENT') {
|
|
357
|
+
if (!isNodeError(error) || error.code !== 'ENOENT') {
|
|
337
358
|
debugLogger.warn(`Failed to parse ${policyFile}, overwriting with new policy.`, error);
|
|
338
359
|
}
|
|
339
360
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/policy/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/policy/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,7 +109,7 @@ describe('createPolicyEngineConfig', () => {
|
|
|
109
109
|
const rule = config.rules?.find((r) => r.toolName === 'run_shell_command' &&
|
|
110
110
|
r.decision === PolicyDecision.ALLOW);
|
|
111
111
|
expect(rule).toBeDefined();
|
|
112
|
-
expect(rule?.priority).toBeCloseTo(
|
|
112
|
+
expect(rule?.priority).toBeCloseTo(3.3, 5); // Command line allow
|
|
113
113
|
});
|
|
114
114
|
it('should deny tools in tools.exclude', async () => {
|
|
115
115
|
const { createPolicyEngineConfig } = await import('./config.js');
|
|
@@ -120,7 +120,7 @@ describe('createPolicyEngineConfig', () => {
|
|
|
120
120
|
const rule = config.rules?.find((r) => r.toolName === 'run_shell_command' &&
|
|
121
121
|
r.decision === PolicyDecision.DENY);
|
|
122
122
|
expect(rule).toBeDefined();
|
|
123
|
-
expect(rule?.priority).toBeCloseTo(
|
|
123
|
+
expect(rule?.priority).toBeCloseTo(3.4, 5); // Command line exclude
|
|
124
124
|
});
|
|
125
125
|
it('should allow tools from allowed MCP servers', async () => {
|
|
126
126
|
const { createPolicyEngineConfig } = await import('./config.js');
|
|
@@ -130,7 +130,7 @@ describe('createPolicyEngineConfig', () => {
|
|
|
130
130
|
const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT, '/tmp/mock/default/policies');
|
|
131
131
|
const rule = config.rules?.find((r) => r.toolName === 'my-server__*' && r.decision === PolicyDecision.ALLOW);
|
|
132
132
|
expect(rule).toBeDefined();
|
|
133
|
-
expect(rule?.priority).toBe(
|
|
133
|
+
expect(rule?.priority).toBe(3.1); // MCP allowed server
|
|
134
134
|
});
|
|
135
135
|
it('should deny tools from excluded MCP servers', async () => {
|
|
136
136
|
const { createPolicyEngineConfig } = await import('./config.js');
|
|
@@ -140,7 +140,7 @@ describe('createPolicyEngineConfig', () => {
|
|
|
140
140
|
const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT, '/tmp/mock/default/policies');
|
|
141
141
|
const rule = config.rules?.find((r) => r.toolName === 'my-server__*' && r.decision === PolicyDecision.DENY);
|
|
142
142
|
expect(rule).toBeDefined();
|
|
143
|
-
expect(rule?.priority).toBe(
|
|
143
|
+
expect(rule?.priority).toBe(3.9); // MCP excluded server
|
|
144
144
|
});
|
|
145
145
|
it('should allow tools from trusted MCP servers', async () => {
|
|
146
146
|
const { createPolicyEngineConfig } = await import('./config.js');
|
|
@@ -158,7 +158,7 @@ describe('createPolicyEngineConfig', () => {
|
|
|
158
158
|
const trustedRule = config.rules?.find((r) => r.toolName === 'trusted-server__*' &&
|
|
159
159
|
r.decision === PolicyDecision.ALLOW);
|
|
160
160
|
expect(trustedRule).toBeDefined();
|
|
161
|
-
expect(trustedRule?.priority).toBe(
|
|
161
|
+
expect(trustedRule?.priority).toBe(3.2); // MCP trusted server
|
|
162
162
|
// Untrusted server should not have an allow rule
|
|
163
163
|
const untrustedRule = config.rules?.find((r) => r.toolName === 'untrusted-server__*' &&
|
|
164
164
|
r.decision === PolicyDecision.ALLOW);
|
|
@@ -182,17 +182,17 @@ describe('createPolicyEngineConfig', () => {
|
|
|
182
182
|
const allowedRule = config.rules?.find((r) => r.toolName === 'allowed-server__*' &&
|
|
183
183
|
r.decision === PolicyDecision.ALLOW);
|
|
184
184
|
expect(allowedRule).toBeDefined();
|
|
185
|
-
expect(allowedRule?.priority).toBe(
|
|
185
|
+
expect(allowedRule?.priority).toBe(3.1); // MCP allowed server
|
|
186
186
|
// Check trusted server
|
|
187
187
|
const trustedRule = config.rules?.find((r) => r.toolName === 'trusted-server__*' &&
|
|
188
188
|
r.decision === PolicyDecision.ALLOW);
|
|
189
189
|
expect(trustedRule).toBeDefined();
|
|
190
|
-
expect(trustedRule?.priority).toBe(
|
|
190
|
+
expect(trustedRule?.priority).toBe(3.2); // MCP trusted server
|
|
191
191
|
// Check excluded server
|
|
192
192
|
const excludedRule = config.rules?.find((r) => r.toolName === 'excluded-server__*' &&
|
|
193
193
|
r.decision === PolicyDecision.DENY);
|
|
194
194
|
expect(excludedRule).toBeDefined();
|
|
195
|
-
expect(excludedRule?.priority).toBe(
|
|
195
|
+
expect(excludedRule?.priority).toBe(3.9); // MCP excluded server
|
|
196
196
|
});
|
|
197
197
|
it('should allow all tools in YOLO mode', async () => {
|
|
198
198
|
const { createPolicyEngineConfig } = await import('./config.js');
|
|
@@ -239,10 +239,10 @@ describe('createPolicyEngineConfig', () => {
|
|
|
239
239
|
const toolAllowRule = config.rules?.find((r) => r.toolName === 'my-server__specific-tool' &&
|
|
240
240
|
r.decision === PolicyDecision.ALLOW);
|
|
241
241
|
expect(serverDenyRule).toBeDefined();
|
|
242
|
-
expect(serverDenyRule?.priority).toBe(
|
|
242
|
+
expect(serverDenyRule?.priority).toBe(3.9); // MCP excluded server
|
|
243
243
|
expect(toolAllowRule).toBeDefined();
|
|
244
|
-
expect(toolAllowRule?.priority).toBeCloseTo(
|
|
245
|
-
// Server deny (
|
|
244
|
+
expect(toolAllowRule?.priority).toBeCloseTo(3.3, 5); // Command line allow
|
|
245
|
+
// Server deny (3.9) has higher priority than tool allow (3.3),
|
|
246
246
|
// so server deny wins (this is expected behavior - server-level blocks are security critical)
|
|
247
247
|
});
|
|
248
248
|
it('should handle MCP server allows and tool excludes', async () => {
|
|
@@ -262,23 +262,23 @@ describe('createPolicyEngineConfig', () => {
|
|
|
262
262
|
r.decision === PolicyDecision.DENY);
|
|
263
263
|
expect(serverAllowRule).toBeDefined();
|
|
264
264
|
expect(toolDenyRule).toBeDefined();
|
|
265
|
-
// Command line exclude (
|
|
265
|
+
// Command line exclude (3.4) has higher priority than MCP server trust (3.2)
|
|
266
266
|
// This is the correct behavior - specific exclusions should beat general server trust
|
|
267
267
|
expect(toolDenyRule.priority).toBeGreaterThan(serverAllowRule.priority);
|
|
268
268
|
});
|
|
269
269
|
it('should handle complex priority scenarios correctly', async () => {
|
|
270
270
|
const settings = {
|
|
271
271
|
tools: {
|
|
272
|
-
allowed: ['my-server__tool1', 'other-tool'], // Priority
|
|
273
|
-
exclude: ['my-server__tool2', 'glob'], // Priority
|
|
272
|
+
allowed: ['my-server__tool1', 'other-tool'], // Priority 3.3
|
|
273
|
+
exclude: ['my-server__tool2', 'glob'], // Priority 3.4
|
|
274
274
|
},
|
|
275
275
|
mcp: {
|
|
276
|
-
allowed: ['allowed-server'], // Priority
|
|
277
|
-
excluded: ['excluded-server'], // Priority
|
|
276
|
+
allowed: ['allowed-server'], // Priority 3.1
|
|
277
|
+
excluded: ['excluded-server'], // Priority 3.9
|
|
278
278
|
},
|
|
279
279
|
mcpServers: {
|
|
280
280
|
'trusted-server': {
|
|
281
|
-
trust: true, // Priority 90 ->
|
|
281
|
+
trust: true, // Priority 90 -> 3.2
|
|
282
282
|
},
|
|
283
283
|
},
|
|
284
284
|
};
|
|
@@ -338,7 +338,7 @@ describe('createPolicyEngineConfig', () => {
|
|
|
338
338
|
expect(globDenyRule).toBeDefined();
|
|
339
339
|
expect(globAllowRule).toBeDefined();
|
|
340
340
|
// Deny from settings (user tier)
|
|
341
|
-
expect(globDenyRule.priority).toBeCloseTo(
|
|
341
|
+
expect(globDenyRule.priority).toBeCloseTo(3.4, 5); // Command line exclude
|
|
342
342
|
// Allow from default TOML: 1 + 50/1000 = 1.05
|
|
343
343
|
expect(globAllowRule.priority).toBeCloseTo(1.05, 5);
|
|
344
344
|
// Verify all priority levels are correct
|
|
@@ -349,9 +349,9 @@ describe('createPolicyEngineConfig', () => {
|
|
|
349
349
|
priority: r.priority,
|
|
350
350
|
}))
|
|
351
351
|
.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
|
|
352
|
-
// Check that the highest priority items are the excludes (user tier:
|
|
353
|
-
const highestPriorityExcludes = priorities?.filter((p) => Math.abs(p.priority -
|
|
354
|
-
Math.abs(p.priority -
|
|
352
|
+
// Check that the highest priority items are the excludes (user tier: 3.4 and 3.9)
|
|
353
|
+
const highestPriorityExcludes = priorities?.filter((p) => Math.abs(p.priority - 3.4) < 0.01 ||
|
|
354
|
+
Math.abs(p.priority - 3.9) < 0.01);
|
|
355
355
|
expect(highestPriorityExcludes?.every((p) => p.decision === PolicyDecision.DENY)).toBe(true);
|
|
356
356
|
vi.doUnmock('node:fs/promises');
|
|
357
357
|
});
|
|
@@ -406,7 +406,7 @@ describe('createPolicyEngineConfig', () => {
|
|
|
406
406
|
// Should still have the exclude rule (from settings, user tier)
|
|
407
407
|
const excludeRule = config.rules?.find((r) => r.toolName === 'dangerous-tool' && r.decision === PolicyDecision.DENY);
|
|
408
408
|
expect(excludeRule).toBeDefined();
|
|
409
|
-
expect(excludeRule?.priority).toBeCloseTo(
|
|
409
|
+
expect(excludeRule?.priority).toBeCloseTo(3.4, 5); // Command line exclude
|
|
410
410
|
});
|
|
411
411
|
it('should support argsPattern in policy rules', async () => {
|
|
412
412
|
const actualFs = await vi.importActual('node:fs/promises');
|
|
@@ -471,8 +471,8 @@ priority = 150
|
|
|
471
471
|
const rule = config.rules?.find((r) => r.toolName === 'run_shell_command' &&
|
|
472
472
|
r.decision === PolicyDecision.ALLOW);
|
|
473
473
|
expect(rule).toBeDefined();
|
|
474
|
-
// Priority 150 in user tier →
|
|
475
|
-
expect(rule?.priority).toBeCloseTo(
|
|
474
|
+
// Priority 150 in user tier → 3.150
|
|
475
|
+
expect(rule?.priority).toBeCloseTo(3.15, 5);
|
|
476
476
|
expect(rule?.argsPattern).toBeInstanceOf(RegExp);
|
|
477
477
|
expect(rule?.argsPattern?.test('{"command":"git status"}')).toBe(true);
|
|
478
478
|
expect(rule?.argsPattern?.test('{"command":"git diff"}')).toBe(true);
|
|
@@ -669,7 +669,7 @@ name = "invalid-name"
|
|
|
669
669
|
const rule = config.rules?.find((r) => r.toolName === 'run_shell_command' &&
|
|
670
670
|
r.decision === PolicyDecision.ALLOW);
|
|
671
671
|
expect(rule).toBeDefined();
|
|
672
|
-
expect(rule?.priority).toBeCloseTo(
|
|
672
|
+
expect(rule?.priority).toBeCloseTo(3.3, 5); // Command line allow
|
|
673
673
|
vi.doUnmock('node:fs/promises');
|
|
674
674
|
});
|
|
675
675
|
it('should allow overriding Plan Mode deny with user policy', async () => {
|
|
@@ -758,7 +758,7 @@ modes = ["plan"]
|
|
|
758
758
|
r.decision === PolicyDecision.ALLOW &&
|
|
759
759
|
r.modes?.includes(ApprovalMode.PLAN));
|
|
760
760
|
expect(subagentRule).toBeDefined();
|
|
761
|
-
expect(subagentRule?.priority).toBeCloseTo(
|
|
761
|
+
expect(subagentRule?.priority).toBeCloseTo(3.1, 5);
|
|
762
762
|
vi.doUnmock('node:fs/promises');
|
|
763
763
|
});
|
|
764
764
|
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export declare enum IntegrityStatus {
|
|
7
|
+
MATCH = "MATCH",
|
|
8
|
+
MISMATCH = "MISMATCH",
|
|
9
|
+
NEW = "NEW"
|
|
10
|
+
}
|
|
11
|
+
export interface IntegrityResult {
|
|
12
|
+
status: IntegrityStatus;
|
|
13
|
+
hash: string;
|
|
14
|
+
fileCount: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class PolicyIntegrityManager {
|
|
17
|
+
/**
|
|
18
|
+
* Checks the integrity of policies in a given directory against the stored hash.
|
|
19
|
+
*
|
|
20
|
+
* @param scope The scope of the policy (e.g., 'project', 'user').
|
|
21
|
+
* @param identifier A unique identifier for the policy scope (e.g., project path).
|
|
22
|
+
* @param policyDir The directory containing the policy files.
|
|
23
|
+
* @returns IntegrityResult indicating if the current policies match the stored hash.
|
|
24
|
+
*/
|
|
25
|
+
checkIntegrity(scope: string, identifier: string, policyDir: string): Promise<IntegrityResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Accepts and persists the current integrity hash for a given policy scope.
|
|
28
|
+
*
|
|
29
|
+
* @param scope The scope of the policy.
|
|
30
|
+
* @param identifier A unique identifier for the policy scope (e.g., project path).
|
|
31
|
+
* @param hash The hash to persist.
|
|
32
|
+
*/
|
|
33
|
+
acceptIntegrity(scope: string, identifier: string, hash: string): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Calculates a SHA-256 hash of all policy files in the directory.
|
|
36
|
+
* The hash includes the relative file path and content to detect renames and modifications.
|
|
37
|
+
*
|
|
38
|
+
* @param policyDir The directory containing the policy files.
|
|
39
|
+
* @returns The calculated hash and file count
|
|
40
|
+
*/
|
|
41
|
+
private static calculateIntegrityHash;
|
|
42
|
+
private getIntegrityKey;
|
|
43
|
+
private loadIntegrityData;
|
|
44
|
+
private saveIntegrityData;
|
|
45
|
+
}
|