@machina.ai/cell-cli-core 1.20.2-rc1 → 1.25.0-rc1
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/AFTER_MERGE_PROMPT.md +26 -0
- package/dist/docs/CHANGES.md +124 -0
- package/dist/docs/api-proxy.md +27 -0
- package/dist/docs/architecture.md +80 -0
- package/dist/docs/assets/connected_devtools.png +0 -0
- package/dist/docs/assets/gemini-screenshot.png +0 -0
- package/dist/docs/assets/monitoring-dashboard-logs.png +0 -0
- package/dist/docs/assets/monitoring-dashboard-metrics.png +0 -0
- package/dist/docs/assets/monitoring-dashboard-overview.png +0 -0
- package/dist/docs/assets/release_patch.png +0 -0
- package/dist/docs/assets/theme-ansi-light.png +0 -0
- package/dist/docs/assets/theme-ansi.png +0 -0
- package/dist/docs/assets/theme-atom-one.png +0 -0
- package/dist/docs/assets/theme-ayu-light.png +0 -0
- package/dist/docs/assets/theme-ayu.png +0 -0
- package/dist/docs/assets/theme-custom.png +0 -0
- package/dist/docs/assets/theme-default-light.png +0 -0
- package/dist/docs/assets/theme-default.png +0 -0
- package/dist/docs/assets/theme-dracula.png +0 -0
- package/dist/docs/assets/theme-github-light.png +0 -0
- package/dist/docs/assets/theme-github.png +0 -0
- package/dist/docs/assets/theme-google-light.png +0 -0
- package/dist/docs/assets/theme-xcode-light.png +0 -0
- package/dist/docs/changelogs/index.md +612 -0
- package/dist/docs/changelogs/latest.md +153 -0
- package/dist/docs/changelogs/preview.md +131 -0
- package/dist/docs/changelogs/releases.md +1162 -0
- package/dist/docs/cli/authentication.md +3 -0
- package/dist/docs/cli/checkpointing.md +94 -0
- package/dist/docs/cli/commands.md +357 -0
- package/dist/docs/cli/custom-commands.md +315 -0
- package/dist/docs/cli/enterprise.md +564 -0
- package/dist/docs/cli/gemini-ignore.md +71 -0
- package/dist/docs/cli/gemini-md.md +109 -0
- package/dist/docs/cli/generation-settings.md +210 -0
- package/dist/docs/cli/headless.md +388 -0
- package/dist/docs/cli/index.md +63 -0
- package/dist/docs/cli/keyboard-shortcuts.md +136 -0
- package/dist/docs/cli/model-routing.md +37 -0
- package/dist/docs/cli/model.md +62 -0
- package/dist/docs/cli/sandbox.md +171 -0
- package/dist/docs/cli/session-management.md +158 -0
- package/dist/docs/cli/settings.md +148 -0
- package/dist/docs/cli/skills.md +188 -0
- package/dist/docs/cli/system-prompt.md +94 -0
- package/dist/docs/cli/telemetry.md +813 -0
- package/dist/docs/cli/themes.md +237 -0
- package/dist/docs/cli/token-caching.md +20 -0
- package/dist/docs/cli/trusted-folders.md +95 -0
- package/dist/docs/cli/tutorials/skills-getting-started.md +124 -0
- package/dist/docs/cli/tutorials.md +87 -0
- package/dist/docs/cli/uninstall.md +47 -0
- package/dist/docs/core/index.md +101 -0
- package/dist/docs/core/memport.md +246 -0
- package/dist/docs/core/policy-engine.md +268 -0
- package/dist/docs/core/tools-api.md +131 -0
- package/dist/docs/examples/proxy-script.md +83 -0
- package/dist/docs/extensions/extension-releasing.md +183 -0
- package/dist/docs/extensions/getting-started-extensions.md +244 -0
- package/dist/docs/extensions/index.md +343 -0
- package/dist/docs/faq.md +153 -0
- package/dist/docs/get-started/authentication.md +321 -0
- package/dist/docs/get-started/configuration-v1.md +890 -0
- package/dist/docs/get-started/configuration.md +1643 -0
- package/dist/docs/get-started/examples.md +218 -0
- package/dist/docs/get-started/gemini-3.md +101 -0
- package/dist/docs/get-started/index.md +71 -0
- package/dist/docs/get-started/installation.md +141 -0
- package/dist/docs/hooks/best-practices.md +856 -0
- package/dist/docs/hooks/index.md +723 -0
- package/dist/docs/hooks/reference.md +178 -0
- package/dist/docs/hooks/writing-hooks.md +1044 -0
- package/dist/docs/ide-integration/ide-companion-spec.md +267 -0
- package/dist/docs/ide-integration/index.md +201 -0
- package/dist/docs/index.md +147 -0
- package/dist/docs/integration-tests.md +211 -0
- package/dist/docs/issue-and-pr-automation.md +134 -0
- package/dist/docs/local-development.md +128 -0
- package/dist/docs/mcp_integration.md +160 -0
- package/dist/docs/mermaid/context.mmd +103 -0
- package/dist/docs/mermaid/render-path.mmd +64 -0
- package/dist/docs/npm.md +62 -0
- package/dist/docs/quota-and-pricing.md +158 -0
- package/dist/docs/release-confidence.md +164 -0
- package/dist/docs/releases.md +540 -0
- package/dist/docs/sidebar.json +301 -0
- package/dist/docs/tools/file-system.md +217 -0
- package/dist/docs/tools/index.md +95 -0
- package/dist/docs/tools/mcp-server.md +1045 -0
- package/dist/docs/tools/memory.md +54 -0
- package/dist/docs/tools/shell.md +260 -0
- package/dist/docs/tools/todos.md +56 -0
- package/dist/docs/tools/web-fetch.md +59 -0
- package/dist/docs/tools/web-search.md +42 -0
- package/dist/docs/tos-privacy.md +96 -0
- package/dist/docs/troubleshooting.md +162 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/package.json +7 -4
- package/dist/src/agents/a2a-client-manager.d.ts +82 -0
- package/dist/src/agents/a2a-client-manager.js +295 -0
- package/dist/src/agents/a2a-client-manager.js.map +1 -0
- package/dist/src/agents/a2a-client-manager.test.js +281 -0
- package/dist/src/agents/a2a-client-manager.test.js.map +1 -0
- package/dist/src/agents/a2aUtils.d.ts +29 -0
- package/dist/src/agents/a2aUtils.js +113 -0
- package/dist/src/agents/a2aUtils.js.map +1 -0
- package/dist/src/agents/a2aUtils.test.js +147 -0
- package/dist/src/agents/a2aUtils.test.js.map +1 -0
- package/dist/src/agents/agentLoader.d.ts +68 -0
- package/dist/src/agents/agentLoader.js +255 -0
- package/dist/src/agents/agentLoader.js.map +1 -0
- package/dist/src/agents/agentLoader.test.js +307 -0
- package/dist/src/agents/agentLoader.test.js.map +1 -0
- package/dist/src/agents/cli-help-agent.d.ts +24 -0
- package/dist/src/agents/cli-help-agent.js +85 -0
- package/dist/src/agents/cli-help-agent.js.map +1 -0
- package/dist/src/agents/cli-help-agent.test.d.ts +6 -0
- package/dist/src/agents/cli-help-agent.test.js +65 -0
- package/dist/src/agents/cli-help-agent.test.js.map +1 -0
- package/dist/src/agents/codebase-investigator.d.ts +2 -2
- package/dist/src/agents/codebase-investigator.js +14 -8
- package/dist/src/agents/codebase-investigator.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.d.ts +19 -0
- package/dist/src/agents/delegate-to-agent-tool.js +122 -0
- package/dist/src/agents/delegate-to-agent-tool.js.map +1 -0
- package/dist/src/agents/delegate-to-agent-tool.test.d.ts +6 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js +213 -0
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -0
- package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
- package/dist/src/agents/{executor.js → local-executor.js} +124 -63
- package/dist/src/agents/local-executor.js.map +1 -0
- package/dist/src/agents/local-executor.test.d.ts +6 -0
- package/dist/src/agents/{executor.test.js → local-executor.test.js} +136 -58
- package/dist/src/agents/local-executor.test.js.map +1 -0
- package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +6 -7
- package/dist/src/agents/{invocation.js → local-invocation.js} +9 -10
- package/dist/src/agents/local-invocation.js.map +1 -0
- package/dist/src/agents/local-invocation.test.d.ts +6 -0
- package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +29 -20
- package/dist/src/agents/local-invocation.test.js.map +1 -0
- package/dist/src/agents/registry.d.ts +37 -1
- package/dist/src/agents/registry.js +240 -27
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +465 -30
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/remote-invocation.d.ts +35 -0
- package/dist/src/agents/remote-invocation.js +126 -0
- package/dist/src/agents/remote-invocation.js.map +1 -0
- package/dist/src/agents/remote-invocation.test.d.ts +6 -0
- package/dist/src/agents/remote-invocation.test.js +201 -0
- package/dist/src/agents/remote-invocation.test.js.map +1 -0
- package/dist/src/agents/subagent-tool-wrapper.d.ts +2 -2
- package/dist/src/agents/subagent-tool-wrapper.js +11 -6
- package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js +33 -19
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
- package/dist/src/agents/types.d.ts +21 -15
- package/dist/src/agents/types.js.map +1 -1
- package/dist/src/availability/errorClassification.d.ts +7 -0
- package/dist/src/availability/errorClassification.js +20 -0
- package/dist/src/availability/errorClassification.js.map +1 -0
- package/dist/src/availability/fallbackIntegration.test.d.ts +6 -0
- package/dist/src/availability/fallbackIntegration.test.js +58 -0
- package/dist/src/availability/fallbackIntegration.test.js.map +1 -0
- package/dist/src/availability/modelAvailabilityService.d.ts +3 -1
- package/dist/src/availability/modelAvailabilityService.js +3 -0
- package/dist/src/availability/modelAvailabilityService.js.map +1 -1
- package/dist/src/availability/modelPolicy.d.ts +8 -1
- package/dist/src/availability/policyCatalog.d.ts +1 -0
- package/dist/src/availability/policyCatalog.js +6 -7
- package/dist/src/availability/policyCatalog.js.map +1 -1
- package/dist/src/availability/policyCatalog.test.js +2 -2
- package/dist/src/availability/policyCatalog.test.js.map +1 -1
- package/dist/src/availability/policyHelpers.d.ts +34 -3
- package/dist/src/availability/policyHelpers.js +104 -13
- package/dist/src/availability/policyHelpers.js.map +1 -1
- package/dist/src/availability/policyHelpers.test.js +143 -13
- package/dist/src/availability/policyHelpers.test.js.map +1 -1
- package/dist/src/availability/testUtils.d.ts +10 -0
- package/dist/src/availability/testUtils.js +22 -0
- package/dist/src/availability/testUtils.js.map +1 -0
- package/dist/src/code_assist/experiments/client_metadata.js +2 -1
- package/dist/src/code_assist/experiments/client_metadata.js.map +1 -1
- package/dist/src/code_assist/experiments/client_metadata.test.js +7 -10
- package/dist/src/code_assist/experiments/client_metadata.test.js.map +1 -1
- package/dist/src/code_assist/experiments/experiments.d.ts +1 -1
- package/dist/src/code_assist/experiments/experiments.js +21 -0
- package/dist/src/code_assist/experiments/experiments.js.map +1 -1
- package/dist/src/code_assist/experiments/experiments_local.test.d.ts +6 -0
- package/dist/src/code_assist/experiments/experiments_local.test.js +110 -0
- package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -0
- package/dist/src/code_assist/oauth-credential-storage.js +3 -4
- package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
- package/dist/src/code_assist/oauth2.d.ts +2 -0
- package/dist/src/code_assist/oauth2.js +70 -14
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +224 -22
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +9 -1
- package/dist/src/code_assist/server.js +74 -11
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +199 -27
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/setup.js +6 -4
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/code_assist/setup.test.js +63 -0
- package/dist/src/code_assist/setup.test.js.map +1 -1
- package/dist/src/code_assist/telemetry.d.ts +14 -0
- package/dist/src/code_assist/telemetry.js +157 -0
- package/dist/src/code_assist/telemetry.js.map +1 -0
- package/dist/src/code_assist/telemetry.test.d.ts +6 -0
- package/dist/src/code_assist/telemetry.test.js +301 -0
- package/dist/src/code_assist/telemetry.test.js.map +1 -0
- package/dist/src/code_assist/types.d.ts +77 -1
- package/dist/src/code_assist/types.js +28 -0
- package/dist/src/code_assist/types.js.map +1 -1
- package/dist/src/commands/init.d.ts +7 -0
- package/dist/src/commands/init.js +53 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/init.test.d.ts +6 -0
- package/dist/src/commands/init.test.js +25 -0
- package/dist/src/commands/init.test.js.map +1 -0
- package/dist/src/commands/memory.d.ts +11 -0
- package/dist/src/commands/memory.js +80 -0
- package/dist/src/commands/memory.js.map +1 -0
- package/dist/src/commands/memory.test.d.ts +6 -0
- package/dist/src/commands/memory.test.js +155 -0
- package/dist/src/commands/memory.test.js.map +1 -0
- package/dist/src/commands/restore.d.ts +9 -0
- package/dist/src/commands/restore.js +46 -0
- package/dist/src/commands/restore.js.map +1 -0
- package/dist/src/commands/restore.test.d.ts +6 -0
- package/dist/src/commands/restore.test.js +137 -0
- package/dist/src/commands/restore.test.js.map +1 -0
- package/dist/src/commands/types.d.ts +41 -0
- package/dist/src/commands/types.js +7 -0
- package/dist/src/commands/types.js.map +1 -0
- package/dist/src/config/config.d.ts +145 -25
- package/dist/src/config/config.js +370 -132
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +416 -50
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/defaultModelConfigs.js +21 -0
- package/dist/src/config/defaultModelConfigs.js.map +1 -1
- package/dist/src/config/flashFallback.test.js +11 -35
- package/dist/src/config/flashFallback.test.js.map +1 -1
- package/dist/src/config/models.d.ts +36 -15
- package/dist/src/config/models.js +89 -28
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +107 -77
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/config/storage.d.ts +5 -0
- package/dist/src/config/storage.js +17 -2
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +16 -0
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/confirmation-bus/message-bus.js +3 -1
- package/dist/src/confirmation-bus/message-bus.js.map +1 -1
- package/dist/src/confirmation-bus/types.d.ts +4 -0
- package/dist/src/core/baseLlmClient.d.ts +3 -1
- package/dist/src/core/baseLlmClient.js +60 -22
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +177 -7
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.d.ts +7 -1
- package/dist/src/core/client.js +261 -96
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +397 -67
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/clientHookTriggers.js +2 -2
- package/dist/src/core/clientHookTriggers.js.map +1 -1
- package/dist/src/core/contentGenerator.js +6 -4
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +24 -23
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.d.ts +9 -5
- package/dist/src/core/coreToolHookTriggers.js +119 -21
- package/dist/src/core/coreToolHookTriggers.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.test.d.ts +6 -0
- package/dist/src/core/coreToolHookTriggers.test.js +191 -0
- package/dist/src/core/coreToolHookTriggers.test.js.map +1 -0
- package/dist/src/core/coreToolScheduler.d.ts +7 -93
- package/dist/src/core/coreToolScheduler.js +139 -333
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +304 -348
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +26 -1
- package/dist/src/core/geminiChat.js +144 -80
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +334 -253
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChatHookTriggers.d.ts +8 -4
- package/dist/src/core/geminiChatHookTriggers.js +34 -12
- package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
- package/dist/src/core/geminiChatHookTriggers.test.d.ts +6 -0
- package/dist/src/core/geminiChatHookTriggers.test.js +153 -0
- package/dist/src/core/geminiChatHookTriggers.test.js.map +1 -0
- package/dist/src/core/geminiChat_network_retry.test.d.ts +6 -0
- package/dist/src/core/geminiChat_network_retry.test.js +196 -0
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -0
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.js +19 -2
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.test.js +30 -0
- package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +7 -8
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.js +48 -22
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +66 -11
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/tokenLimits.js +6 -12
- package/dist/src/core/tokenLimits.js.map +1 -1
- package/dist/src/core/tokenLimits.test.js +8 -4
- package/dist/src/core/tokenLimits.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +21 -21
- package/dist/src/core/turn.js +32 -22
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +79 -5
- package/dist/src/core/turn.test.js.map +1 -1
- package/dist/src/fallback/handler.js +55 -120
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +115 -288
- package/dist/src/fallback/handler.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +3 -3
- package/dist/src/generated/git-commit.js +3 -3
- package/dist/src/hooks/hookAggregator.js +7 -0
- package/dist/src/hooks/hookAggregator.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.d.ts +9 -5
- package/dist/src/hooks/hookEventHandler.js +120 -16
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +231 -9
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
- package/dist/src/hooks/hookPlanner.d.ts +1 -5
- package/dist/src/hooks/hookPlanner.js +2 -7
- package/dist/src/hooks/hookPlanner.js.map +1 -1
- package/dist/src/hooks/hookPlanner.test.js +62 -2
- package/dist/src/hooks/hookPlanner.test.js.map +1 -1
- package/dist/src/hooks/hookRegistry.d.ts +6 -18
- package/dist/src/hooks/hookRegistry.js +49 -35
- package/dist/src/hooks/hookRegistry.js.map +1 -1
- package/dist/src/hooks/hookRegistry.test.js +167 -8
- package/dist/src/hooks/hookRegistry.test.js.map +1 -1
- package/dist/src/hooks/hookRunner.d.ts +5 -3
- package/dist/src/hooks/hookRunner.js +68 -18
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +173 -36
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookSystem.d.ts +10 -6
- package/dist/src/hooks/hookSystem.js +36 -16
- package/dist/src/hooks/hookSystem.js.map +1 -1
- package/dist/src/hooks/hookSystem.test.js +123 -18
- package/dist/src/hooks/hookSystem.test.js.map +1 -1
- package/dist/src/hooks/hookTranslator.js +2 -1
- package/dist/src/hooks/hookTranslator.js.map +1 -1
- package/dist/src/hooks/index.d.ts +2 -1
- package/dist/src/hooks/index.js +1 -0
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/trustedHooks.d.ts +28 -0
- package/dist/src/hooks/trustedHooks.js +90 -0
- package/dist/src/hooks/trustedHooks.js.map +1 -0
- package/dist/src/hooks/trustedHooks.test.d.ts +6 -0
- package/dist/src/hooks/trustedHooks.test.js +154 -0
- package/dist/src/hooks/trustedHooks.test.js.map +1 -0
- package/dist/src/hooks/types.d.ts +42 -11
- package/dist/src/hooks/types.js +31 -42
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/hooks/types.test.js +9 -52
- package/dist/src/hooks/types.test.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +4 -0
- package/dist/src/ide/detect-ide.js +7 -2
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/detect-ide.test.js +42 -1
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-client.js +6 -1
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.js +2 -2
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +12 -3
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/index.d.ts +23 -1
- package/dist/src/index.js +25 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +7 -3
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +4 -1
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-utils.d.ts +8 -1
- package/dist/src/mcp/oauth-utils.js +31 -2
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/oauth-utils.test.js +42 -0
- package/dist/src/mcp/oauth-utils.test.js.map +1 -1
- package/dist/src/mcp/token-storage/file-token-storage.js +2 -2
- package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.js +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
- package/dist/src/output/json-formatter.d.ts +2 -2
- package/dist/src/output/json-formatter.js +6 -3
- package/dist/src/output/json-formatter.js.map +1 -1
- package/dist/src/output/json-formatter.test.js +37 -9
- package/dist/src/output/json-formatter.test.js.map +1 -1
- package/dist/src/output/stream-json-formatter.js +6 -0
- package/dist/src/output/stream-json-formatter.js.map +1 -1
- package/dist/src/output/stream-json-formatter.test.js +98 -100
- package/dist/src/output/stream-json-formatter.test.js.map +1 -1
- package/dist/src/output/types.d.ts +3 -0
- package/dist/src/output/types.js.map +1 -1
- package/dist/src/policy/config.js +140 -15
- package/dist/src/policy/config.js.map +1 -1
- package/dist/src/policy/config.test.js +24 -2
- package/dist/src/policy/config.test.js.map +1 -1
- package/dist/src/policy/persistence.test.d.ts +6 -0
- package/dist/src/policy/persistence.test.js +154 -0
- package/dist/src/policy/persistence.test.js.map +1 -0
- package/dist/src/policy/policies/agent.toml +31 -0
- package/dist/src/policy/policies/write.toml +5 -0
- package/dist/src/policy/policies/yolo.toml +1 -0
- package/dist/src/policy/policy-engine.d.ts +14 -1
- package/dist/src/policy/policy-engine.js +165 -7
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +315 -3
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/policy-updater.test.d.ts +6 -0
- package/dist/src/policy/policy-updater.test.js +116 -0
- package/dist/src/policy/policy-updater.test.js.map +1 -0
- package/dist/src/policy/shell-safety.test.d.ts +6 -0
- package/dist/src/policy/shell-safety.test.js +438 -0
- package/dist/src/policy/shell-safety.test.js.map +1 -0
- package/dist/src/policy/toml-loader.d.ts +3 -5
- package/dist/src/policy/toml-loader.js +43 -60
- package/dist/src/policy/toml-loader.js.map +1 -1
- package/dist/src/policy/toml-loader.test.js +41 -7
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/types.d.ts +25 -0
- package/dist/src/policy/utils.d.ts +21 -0
- package/dist/src/policy/utils.js +45 -0
- package/dist/src/policy/utils.js.map +1 -0
- package/dist/src/policy/utils.test.d.ts +6 -0
- package/dist/src/policy/utils.test.js +92 -0
- package/dist/src/policy/utils.test.js.map +1 -0
- package/dist/src/resources/resource-registry.d.ts +30 -0
- package/dist/src/resources/resource-registry.js +57 -0
- package/dist/src/resources/resource-registry.js.map +1 -0
- package/dist/src/resources/resource-registry.test.d.ts +6 -0
- package/dist/src/resources/resource-registry.test.js +54 -0
- package/dist/src/resources/resource-registry.test.js.map +1 -0
- package/dist/src/routing/modelRouterService.js +0 -15
- package/dist/src/routing/modelRouterService.js.map +1 -1
- package/dist/src/routing/modelRouterService.test.js +0 -62
- package/dist/src/routing/modelRouterService.test.js.map +1 -1
- package/dist/src/routing/routingStrategy.d.ts +2 -0
- package/dist/src/routing/strategies/classifierStrategy.js +10 -21
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js +18 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/compositeStrategy.js +4 -2
- package/dist/src/routing/strategies/compositeStrategy.js.map +1 -1
- package/dist/src/routing/strategies/compositeStrategy.test.js +11 -10
- package/dist/src/routing/strategies/compositeStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.d.ts +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js +21 -13
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +76 -39
- package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.d.ts +1 -1
- package/dist/src/routing/strategies/overrideStrategy.js +5 -4
- package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.test.js +14 -0
- package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
- package/dist/src/safety/checker-runner.js +17 -6
- package/dist/src/safety/checker-runner.js.map +1 -1
- package/dist/src/scheduler/tool-executor.d.ts +22 -0
- package/dist/src/scheduler/tool-executor.js +198 -0
- package/dist/src/scheduler/tool-executor.js.map +1 -0
- package/dist/src/scheduler/tool-executor.test.d.ts +6 -0
- package/dist/src/scheduler/tool-executor.test.js +231 -0
- package/dist/src/scheduler/tool-executor.test.js.map +1 -0
- package/dist/src/scheduler/tool-modifier.d.ts +23 -0
- package/dist/src/scheduler/tool-modifier.js +50 -0
- package/dist/src/scheduler/tool-modifier.js.map +1 -0
- package/dist/src/scheduler/tool-modifier.test.d.ts +6 -0
- package/dist/src/scheduler/tool-modifier.test.js +159 -0
- package/dist/src/scheduler/tool-modifier.test.js.map +1 -0
- package/dist/src/scheduler/types.d.ts +95 -0
- package/dist/src/scheduler/types.js +7 -0
- package/dist/src/scheduler/types.js.map +1 -0
- package/dist/src/services/chatCompressionService.js +8 -1
- package/dist/src/services/chatCompressionService.js.map +1 -1
- package/dist/src/services/chatCompressionService.test.js +3 -0
- package/dist/src/services/chatCompressionService.test.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +21 -1
- package/dist/src/services/chatRecordingService.js +57 -2
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +43 -0
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/contextManager.d.ts +5 -11
- package/dist/src/services/contextManager.js +20 -17
- package/dist/src/services/contextManager.js.map +1 -1
- package/dist/src/services/contextManager.test.js +40 -41
- package/dist/src/services/contextManager.test.js.map +1 -1
- package/dist/src/services/environmentSanitization.d.ts +15 -0
- package/dist/src/services/environmentSanitization.js +142 -0
- package/dist/src/services/environmentSanitization.js.map +1 -0
- package/dist/src/services/environmentSanitization.test.d.ts +6 -0
- package/dist/src/services/environmentSanitization.test.js +284 -0
- package/dist/src/services/environmentSanitization.test.js.map +1 -0
- package/dist/src/services/fileSystemService.d.ts +0 -9
- package/dist/src/services/fileSystemService.js +0 -11
- package/dist/src/services/fileSystemService.js.map +1 -1
- package/dist/src/services/gitService.js +15 -1
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +56 -2
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +4 -3
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +14 -8
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/services/modelConfig.golden.test.js +32 -0
- package/dist/src/services/modelConfig.golden.test.js.map +1 -1
- package/dist/src/services/modelConfig.integration.test.js +3 -3
- package/dist/src/services/modelConfig.integration.test.js.map +1 -1
- package/dist/src/services/modelConfigService.d.ts +41 -4
- package/dist/src/services/modelConfigService.js +135 -75
- package/dist/src/services/modelConfigService.js.map +1 -1
- package/dist/src/services/modelConfigService.test.js +226 -0
- package/dist/src/services/modelConfigService.test.js.map +1 -1
- package/dist/src/services/modelConfigServiceTestUtils.d.ts +10 -0
- package/dist/src/services/modelConfigServiceTestUtils.js +17 -0
- package/dist/src/services/modelConfigServiceTestUtils.js.map +1 -0
- package/dist/src/services/sessionSummaryService.d.ts +28 -0
- package/dist/src/services/sessionSummaryService.js +131 -0
- package/dist/src/services/sessionSummaryService.js.map +1 -0
- package/dist/src/services/sessionSummaryService.test.d.ts +6 -0
- package/dist/src/services/sessionSummaryService.test.js +785 -0
- package/dist/src/services/sessionSummaryService.test.js.map +1 -0
- package/dist/src/services/sessionSummaryUtils.d.ts +16 -0
- package/dist/src/services/sessionSummaryUtils.js +129 -0
- package/dist/src/services/sessionSummaryUtils.js.map +1 -0
- package/dist/src/services/sessionSummaryUtils.test.d.ts +6 -0
- package/dist/src/services/sessionSummaryUtils.test.js +137 -0
- package/dist/src/services/sessionSummaryUtils.test.js.map +1 -0
- package/dist/src/services/shellExecutionService.d.ts +2 -0
- package/dist/src/services/shellExecutionService.js +34 -72
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +114 -8
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/services/test-data/resolved-aliases-retry.golden.json +238 -0
- package/dist/src/services/test-data/resolved-aliases.golden.json +16 -0
- package/dist/src/skills/skillLoader.d.ts +31 -0
- package/dist/src/skills/skillLoader.js +77 -0
- package/dist/src/skills/skillLoader.js.map +1 -0
- package/dist/src/skills/skillLoader.test.d.ts +6 -0
- package/dist/src/skills/skillLoader.test.js +75 -0
- package/dist/src/skills/skillLoader.test.js.map +1 -0
- package/dist/src/skills/skillManager.d.ts +69 -0
- package/dist/src/skills/skillManager.js +127 -0
- package/dist/src/skills/skillManager.js.map +1 -0
- package/dist/src/skills/skillManager.test.d.ts +6 -0
- package/dist/src/skills/skillManager.test.js +210 -0
- package/dist/src/skills/skillManager.test.js.map +1 -0
- package/dist/src/telemetry/activity-detector.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +19 -9
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +261 -164
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +223 -27
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +12 -3
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +26 -5
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/config.js +2 -0
- package/dist/src/telemetry/config.js.map +1 -1
- package/dist/src/telemetry/config.test.js +25 -0
- package/dist/src/telemetry/config.test.js.map +1 -1
- package/dist/src/telemetry/gcp-exporters.d.ts +4 -3
- package/dist/src/telemetry/gcp-exporters.js +8 -4
- package/dist/src/telemetry/gcp-exporters.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +1 -1
- package/dist/src/telemetry/index.js +1 -1
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +4 -3
- package/dist/src/telemetry/loggers.js +351 -340
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.circular.js +1 -0
- package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +71 -15
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/telemetry/sdk.d.ts +9 -2
- package/dist/src/telemetry/sdk.js +142 -17
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/sdk.test.js +130 -28
- package/dist/src/telemetry/sdk.test.js.map +1 -1
- package/dist/src/telemetry/startupProfiler.js +26 -3
- package/dist/src/telemetry/startupProfiler.js.map +1 -1
- package/dist/src/telemetry/startupProfiler.test.js +49 -7
- package/dist/src/telemetry/startupProfiler.test.js.map +1 -1
- package/dist/src/telemetry/telemetry.test.js +10 -3
- package/dist/src/telemetry/telemetry.test.js.map +1 -1
- package/dist/src/telemetry/trace.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +37 -12
- package/dist/src/telemetry/types.js +61 -20
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +1 -0
- package/dist/src/telemetry/uiTelemetry.js +2 -0
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +4 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/test-utils/mock-message-bus.d.ts +1 -0
- package/dist/src/test-utils/mock-message-bus.js +29 -0
- package/dist/src/test-utils/mock-message-bus.js.map +1 -1
- package/dist/src/test-utils/mock-tool.d.ts +5 -3
- package/dist/src/test-utils/mock-tool.js +11 -10
- package/dist/src/test-utils/mock-tool.js.map +1 -1
- package/dist/src/tools/activate-skill.d.ts +27 -0
- package/dist/src/tools/activate-skill.js +133 -0
- package/dist/src/tools/activate-skill.js.map +1 -0
- package/dist/src/tools/activate-skill.test.d.ts +6 -0
- package/dist/src/tools/activate-skill.test.js +113 -0
- package/dist/src/tools/activate-skill.test.js.map +1 -0
- package/dist/src/tools/confirmation-policy.test.d.ts +6 -0
- package/dist/src/tools/confirmation-policy.test.js +143 -0
- package/dist/src/tools/confirmation-policy.test.js.map +1 -0
- package/dist/src/tools/edit.d.ts +27 -5
- package/dist/src/tools/edit.js +460 -136
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +292 -526
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/get-internal-docs.d.ts +27 -0
- package/dist/src/tools/get-internal-docs.js +122 -0
- package/dist/src/tools/get-internal-docs.js.map +1 -0
- package/dist/src/tools/get-internal-docs.test.d.ts +6 -0
- package/dist/src/tools/get-internal-docs.test.js +57 -0
- package/dist/src/tools/get-internal-docs.test.js.map +1 -0
- package/dist/src/tools/glob.d.ts +2 -2
- package/dist/src/tools/glob.js +1 -1
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +2 -1
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.d.ts +2 -2
- package/dist/src/tools/grep.js +1 -1
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +5 -4
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.d.ts +2 -2
- package/dist/src/tools/ls.js +2 -2
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +2 -1
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.d.ts +2 -1
- package/dist/src/tools/mcp-client-manager.js +32 -9
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +41 -10
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +43 -6
- package/dist/src/tools/mcp-client.js +443 -176
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +664 -39
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +20 -5
- package/dist/src/tools/mcp-tool.js +21 -8
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +35 -5
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +3 -3
- package/dist/src/tools/memoryTool.js +3 -4
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/memoryTool.test.js +5 -2
- package/dist/src/tools/memoryTool.test.js.map +1 -1
- package/dist/src/tools/message-bus-integration.test.js +10 -37
- package/dist/src/tools/message-bus-integration.test.js.map +1 -1
- package/dist/src/tools/modifiable-tool.js.map +1 -1
- package/dist/src/tools/modifiable-tool.test.js +22 -13
- package/dist/src/tools/modifiable-tool.test.js.map +1 -1
- package/dist/src/tools/read-file.d.ts +2 -2
- package/dist/src/tools/read-file.js +2 -2
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +3 -2
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +2 -2
- package/dist/src/tools/read-many-files.js +7 -6
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +4 -3
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/ripGrep.d.ts +3 -2
- package/dist/src/tools/ripGrep.js +18 -7
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +60 -4
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +5 -7
- package/dist/src/tools/shell.js +35 -49
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +36 -59
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-error.d.ts +6 -1
- package/dist/src/tools/tool-error.js +6 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +17 -0
- package/dist/src/tools/tool-names.js +59 -0
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-names.test.d.ts +6 -0
- package/dist/src/tools/tool-names.test.js +43 -0
- package/dist/src/tools/tool-names.test.js.map +1 -0
- package/dist/src/tools/tool-registry.d.ts +11 -7
- package/dist/src/tools/tool-registry.js +15 -10
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +16 -11
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +27 -6
- package/dist/src/tools/tools.js +44 -25
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/tools.test.js +3 -1
- package/dist/src/tools/tools.test.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +2 -2
- package/dist/src/tools/web-fetch.js +21 -8
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +18 -19
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/web-search.d.ts +2 -2
- package/dist/src/tools/web-search.js +5 -5
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/web-search.test.js +2 -1
- package/dist/src/tools/web-search.test.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +2 -2
- package/dist/src/tools/write-file.js +14 -6
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +49 -7
- 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 +5 -4
- package/dist/src/tools/write-todos.js.map +1 -1
- package/dist/src/tools/write-todos.test.js +2 -1
- package/dist/src/tools/write-todos.test.js.map +1 -1
- package/dist/src/utils/apiConversionUtils.d.ts +12 -0
- package/dist/src/utils/apiConversionUtils.js +46 -0
- package/dist/src/utils/apiConversionUtils.js.map +1 -0
- package/dist/src/utils/apiConversionUtils.test.d.ts +6 -0
- package/dist/src/utils/apiConversionUtils.test.js +150 -0
- package/dist/src/utils/apiConversionUtils.test.js.map +1 -0
- package/dist/src/utils/bfsFileSearch.d.ts +8 -0
- package/dist/src/utils/bfsFileSearch.js +63 -23
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.test.js +65 -1
- package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
- package/dist/src/utils/checkpointUtils.d.ts +82 -0
- package/dist/src/utils/checkpointUtils.js +117 -0
- package/dist/src/utils/checkpointUtils.js.map +1 -0
- package/dist/src/utils/checkpointUtils.test.d.ts +6 -0
- package/dist/src/utils/checkpointUtils.test.js +229 -0
- package/dist/src/utils/checkpointUtils.test.js.map +1 -0
- package/dist/src/utils/debugLogger.d.ts +3 -0
- package/dist/src/utils/debugLogger.js +28 -0
- package/dist/src/utils/debugLogger.js.map +1 -1
- package/dist/src/utils/editCorrector.d.ts +3 -3
- package/dist/src/utils/editCorrector.js +27 -10
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +27 -23
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +10 -1
- package/dist/src/utils/editor.js +48 -19
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +27 -4
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/environmentContext.d.ts +1 -0
- package/dist/src/utils/environmentContext.js +4 -0
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/environmentContext.test.js +2 -0
- package/dist/src/utils/environmentContext.test.js.map +1 -1
- package/dist/src/utils/errorReporting.d.ts +1 -1
- package/dist/src/utils/errorReporting.js +13 -12
- package/dist/src/utils/errorReporting.js.map +1 -1
- package/dist/src/utils/errorReporting.test.js +17 -14
- package/dist/src/utils/errorReporting.test.js.map +1 -1
- package/dist/src/utils/errors.d.ts +8 -0
- package/dist/src/utils/errors.js +39 -2
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.d.ts +6 -0
- package/dist/src/utils/errors.test.js +155 -0
- package/dist/src/utils/errors.test.js.map +1 -0
- package/dist/src/utils/events.d.ts +71 -19
- package/dist/src/utils/events.js +35 -9
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/events.test.js +25 -0
- package/dist/src/utils/events.test.js.map +1 -1
- package/dist/src/utils/extensionLoader.d.ts +2 -2
- package/dist/src/utils/extensionLoader.js +5 -6
- package/dist/src/utils/extensionLoader.js.map +1 -1
- package/dist/src/utils/extensionLoader.test.js +11 -0
- package/dist/src/utils/extensionLoader.test.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +1 -1
- package/dist/src/utils/fetch.js +3 -3
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fileDiffUtils.d.ts +18 -0
- package/dist/src/utils/fileDiffUtils.js +37 -0
- package/dist/src/utils/fileDiffUtils.js.map +1 -0
- package/dist/src/utils/fileDiffUtils.test.d.ts +6 -0
- package/dist/src/utils/fileDiffUtils.test.js +84 -0
- package/dist/src/utils/fileDiffUtils.test.js.map +1 -0
- package/dist/src/utils/fileUtils.d.ts +4 -0
- package/dist/src/utils/fileUtils.js +53 -0
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +127 -1
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/filesearch/crawlCache.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/flashFallback.test.js +1 -1
- package/dist/src/utils/flashFallback.test.js.map +1 -1
- package/dist/src/utils/geminiIgnoreParser.d.ts +11 -0
- package/dist/src/utils/geminiIgnoreParser.js +20 -0
- package/dist/src/utils/geminiIgnoreParser.js.map +1 -1
- package/dist/src/utils/geminiIgnoreParser.test.js +48 -0
- package/dist/src/utils/geminiIgnoreParser.test.js.map +1 -1
- package/dist/src/utils/generateContentResponseUtilities.d.ts +3 -1
- package/dist/src/utils/generateContentResponseUtilities.js +106 -0
- package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
- package/dist/src/utils/generateContentResponseUtilities.test.js +279 -2
- package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
- package/dist/src/utils/getFolderStructure.js +7 -2
- package/dist/src/utils/getFolderStructure.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.js +9 -10
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/googleErrors.js +31 -18
- package/dist/src/utils/googleErrors.js.map +1 -1
- package/dist/src/utils/googleErrors.test.js +10 -2
- package/dist/src/utils/googleErrors.test.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.d.ts +3 -3
- package/dist/src/utils/googleQuotaErrors.js +32 -6
- package/dist/src/utils/googleQuotaErrors.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.test.js +94 -2
- package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
- package/dist/src/utils/installationManager.test.js +11 -3
- package/dist/src/utils/installationManager.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.js +3 -4
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +12 -1
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.test.js +4 -0
- package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
- package/dist/src/utils/partUtils.js +1 -1
- package/dist/src/utils/partUtils.js.map +1 -1
- package/dist/src/utils/pathCorrector.js +12 -2
- package/dist/src/utils/pathCorrector.js.map +1 -1
- package/dist/src/utils/pathCorrector.test.js +6 -2
- package/dist/src/utils/pathCorrector.test.js.map +1 -1
- package/dist/src/utils/paths.d.ts +10 -0
- package/dist/src/utils/paths.js +20 -1
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/retry.d.ts +12 -0
- package/dist/src/utils/retry.js +70 -17
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +181 -21
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +16 -47
- package/dist/src/utils/shell-utils.js +98 -194
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +99 -288
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/src/utils/summarizer.test.js +3 -2
- package/dist/src/utils/summarizer.test.js.map +1 -1
- package/dist/src/utils/terminal.d.ts +4 -0
- package/dist/src/utils/terminal.js +12 -0
- package/dist/src/utils/terminal.js.map +1 -1
- package/dist/src/utils/terminalSerializer.test.js +17 -0
- package/dist/src/utils/terminalSerializer.test.js.map +1 -1
- package/dist/src/utils/tokenCalculation.js +20 -5
- package/dist/src/utils/tokenCalculation.js.map +1 -1
- package/dist/src/utils/tokenCalculation.test.js +11 -2
- package/dist/src/utils/tokenCalculation.test.js.map +1 -1
- package/dist/src/utils/tool-utils.d.ts +9 -0
- package/dist/src/utils/tool-utils.js +29 -0
- package/dist/src/utils/tool-utils.js.map +1 -1
- package/dist/src/utils/tool-utils.test.js +17 -2
- package/dist/src/utils/tool-utils.test.js.map +1 -1
- package/dist/src/utils/userAccountManager.test.js +5 -5
- package/dist/src/utils/userAccountManager.test.js.map +1 -1
- package/dist/src/utils/version.d.ts +6 -0
- package/dist/src/utils/version.js +15 -0
- package/dist/src/utils/version.js.map +1 -0
- package/dist/src/utils/version.test.d.ts +6 -0
- package/dist/src/utils/version.test.js +39 -0
- package/dist/src/utils/version.test.js.map +1 -0
- package/dist/src/utils/workspaceContext.test.js +1 -1
- package/dist/src/utils/workspaceContext.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -6
- package/dist/src/agents/executor.js.map +0 -1
- package/dist/src/agents/executor.test.js.map +0 -1
- package/dist/src/agents/invocation.js.map +0 -1
- package/dist/src/agents/invocation.test.js.map +0 -1
- package/dist/src/tools/smart-edit.d.ts +0 -78
- package/dist/src/tools/smart-edit.js +0 -717
- package/dist/src/tools/smart-edit.js.map +0 -1
- package/dist/src/tools/smart-edit.test.js +0 -592
- package/dist/src/tools/smart-edit.test.js.map +0 -1
- /package/dist/src/agents/{executor.test.d.ts → a2a-client-manager.test.d.ts} +0 -0
- /package/dist/src/agents/{invocation.test.d.ts → a2aUtils.test.d.ts} +0 -0
- /package/dist/src/{tools/smart-edit.test.d.ts → agents/agentLoader.test.d.ts} +0 -0
|
@@ -8,14 +8,15 @@ import { inspect } from 'node:util';
|
|
|
8
8
|
import process from 'node:process';
|
|
9
9
|
import { AuthType, createContentGenerator, createContentGeneratorConfig, } from '../core/contentGenerator.js';
|
|
10
10
|
import { PromptRegistry } from '../prompts/prompt-registry.js';
|
|
11
|
+
import { ResourceRegistry } from '../resources/resource-registry.js';
|
|
11
12
|
import { ToolRegistry } from '../tools/tool-registry.js';
|
|
12
13
|
import { LSTool } from '../tools/ls.js';
|
|
13
14
|
import { ReadFileTool } from '../tools/read-file.js';
|
|
14
15
|
import { GrepTool } from '../tools/grep.js';
|
|
15
16
|
import { canUseRipgrep, RipGrepTool } from '../tools/ripGrep.js';
|
|
16
17
|
import { GlobTool } from '../tools/glob.js';
|
|
18
|
+
import { ActivateSkillTool } from '../tools/activate-skill.js';
|
|
17
19
|
import { EditTool } from '../tools/edit.js';
|
|
18
|
-
import { SmartEditTool } from '../tools/smart-edit.js';
|
|
19
20
|
import { ShellTool } from '../tools/shell.js';
|
|
20
21
|
import { WriteFileTool } from '../tools/write-file.js';
|
|
21
22
|
import { WebFetchTool } from '../tools/web-fetch.js';
|
|
@@ -26,15 +27,15 @@ import { BaseLlmClient } from '../core/baseLlmClient.js';
|
|
|
26
27
|
import { FileDiscoveryService } from '../services/fileDiscoveryService.js';
|
|
27
28
|
import { GitService } from '../services/gitService.js';
|
|
28
29
|
import { initializeTelemetry, DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT, uiTelemetryService, } from '../telemetry/index.js';
|
|
29
|
-
import { coreEvents } from '../utils/events.js';
|
|
30
|
+
import { coreEvents, CoreEvent } from '../utils/events.js';
|
|
30
31
|
import { tokenLimit } from '../core/tokenLimits.js';
|
|
31
|
-
import { DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_GEMINI_FLASH_MODEL,
|
|
32
|
+
import { DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL_AUTO, DEFAULT_THINKING_MODE, isPreviewModel, PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_MODEL_AUTO, } from './models.js';
|
|
32
33
|
import { shouldAttemptBrowserLaunch } from '../utils/browser.js';
|
|
33
34
|
import { ideContextStore } from '../ide/ideContext.js';
|
|
34
35
|
import { WriteTodosTool } from '../tools/write-todos.js';
|
|
35
36
|
import { StandardFileSystemService } from '../services/fileSystemService.js';
|
|
36
|
-
import { logRipgrepFallback } from '../telemetry/loggers.js';
|
|
37
|
-
import { RipgrepFallbackEvent } from '../telemetry/types.js';
|
|
37
|
+
import { logRipgrepFallback, logFlashFallback } from '../telemetry/loggers.js';
|
|
38
|
+
import { RipgrepFallbackEvent, FlashFallbackEvent, } from '../telemetry/types.js';
|
|
38
39
|
import { ModelAvailabilityService } from '../availability/modelAvailabilityService.js';
|
|
39
40
|
import { ModelRouterService } from '../routing/modelRouterService.js';
|
|
40
41
|
import { OutputFormat } from '../output/types.js';
|
|
@@ -46,17 +47,18 @@ import { Storage } from './storage.js';
|
|
|
46
47
|
import { FileExclusions } from '../utils/ignorePatterns.js';
|
|
47
48
|
import { MessageBus } from '../confirmation-bus/message-bus.js';
|
|
48
49
|
import { PolicyEngine } from '../policy/policy-engine.js';
|
|
50
|
+
import { ApprovalMode } from '../policy/types.js';
|
|
49
51
|
import { HookSystem } from '../hooks/index.js';
|
|
50
52
|
import { getCodeAssistServer } from '../code_assist/codeAssist.js';
|
|
51
53
|
import { AgentRegistry } from '../agents/registry.js';
|
|
52
54
|
import { setGlobalProxy } from '../utils/fetch.js';
|
|
53
|
-
import {
|
|
55
|
+
import { DelegateToAgentTool } from '../agents/delegate-to-agent-tool.js';
|
|
56
|
+
import { DELEGATE_TO_AGENT_TOOL_NAME } from '../tools/tool-names.js';
|
|
54
57
|
import { getExperiments } from '../code_assist/experiments/experiments.js';
|
|
55
58
|
import { ExperimentFlags } from '../code_assist/experiments/flagNames.js';
|
|
56
59
|
import { debugLogger } from '../utils/debugLogger.js';
|
|
60
|
+
import { SkillManager } from '../skills/skillManager.js';
|
|
57
61
|
import { startupProfiler } from '../telemetry/startupProfiler.js';
|
|
58
|
-
import { ApprovalMode } from '../policy/types.js';
|
|
59
|
-
export { ApprovalMode };
|
|
60
62
|
import { DEFAULT_FILE_FILTERING_OPTIONS, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, } from './constants.js';
|
|
61
63
|
import { SimpleExtensionLoader, } from '../utils/extensionLoader.js';
|
|
62
64
|
import { McpClientManager } from '../tools/mcp-client-manager.js';
|
|
@@ -73,6 +75,7 @@ export class MCPServerConfig {
|
|
|
73
75
|
httpUrl;
|
|
74
76
|
headers;
|
|
75
77
|
tcp;
|
|
78
|
+
type;
|
|
76
79
|
timeout;
|
|
77
80
|
trust;
|
|
78
81
|
description;
|
|
@@ -92,6 +95,12 @@ export class MCPServerConfig {
|
|
|
92
95
|
httpUrl, headers,
|
|
93
96
|
// For websocket transport
|
|
94
97
|
tcp,
|
|
98
|
+
// Transport type (optional, for use with 'url' field)
|
|
99
|
+
// When set to 'http', uses StreamableHTTPClientTransport
|
|
100
|
+
// When set to 'sse', uses SSEClientTransport
|
|
101
|
+
// When omitted, auto-detects transport type
|
|
102
|
+
// Note: 'httpUrl' is deprecated in favor of 'url' + 'type'
|
|
103
|
+
type,
|
|
95
104
|
// Common
|
|
96
105
|
timeout, trust,
|
|
97
106
|
// Metadata
|
|
@@ -112,6 +121,7 @@ export class MCPServerConfig {
|
|
|
112
121
|
this.httpUrl = httpUrl;
|
|
113
122
|
this.headers = headers;
|
|
114
123
|
this.tcp = tcp;
|
|
124
|
+
this.type = type;
|
|
115
125
|
this.timeout = timeout;
|
|
116
126
|
this.trust = trust;
|
|
117
127
|
this.description = description;
|
|
@@ -135,8 +145,13 @@ export class Config {
|
|
|
135
145
|
mcpClientManager;
|
|
136
146
|
allowedMcpServers;
|
|
137
147
|
blockedMcpServers;
|
|
148
|
+
allowedEnvironmentVariables;
|
|
149
|
+
blockedEnvironmentVariables;
|
|
150
|
+
enableEnvironmentVariableRedaction;
|
|
138
151
|
promptRegistry;
|
|
152
|
+
resourceRegistry;
|
|
139
153
|
agentRegistry;
|
|
154
|
+
skillManager;
|
|
140
155
|
sessionId;
|
|
141
156
|
fileSystemService;
|
|
142
157
|
contentGeneratorConfig;
|
|
@@ -154,11 +169,12 @@ export class Config {
|
|
|
154
169
|
toolDiscoveryCommand;
|
|
155
170
|
toolCallCommand;
|
|
156
171
|
mcpServerCommand;
|
|
172
|
+
mcpEnabled;
|
|
173
|
+
extensionsEnabled;
|
|
157
174
|
mcpServers;
|
|
158
175
|
userMemory;
|
|
159
176
|
geminiMdFileCount;
|
|
160
177
|
geminiMdFilePaths;
|
|
161
|
-
approvalMode;
|
|
162
178
|
showMemoryUsage;
|
|
163
179
|
accessibility;
|
|
164
180
|
telemetrySettings;
|
|
@@ -180,10 +196,11 @@ export class Config {
|
|
|
180
196
|
bugCommand;
|
|
181
197
|
model;
|
|
182
198
|
previewFeatures;
|
|
199
|
+
hasAccessToPreviewModel = false;
|
|
183
200
|
noBrowser;
|
|
184
201
|
folderTrust;
|
|
185
202
|
ideMode;
|
|
186
|
-
|
|
203
|
+
_activeModel;
|
|
187
204
|
maxSessionTurns;
|
|
188
205
|
listSessions;
|
|
189
206
|
deleteSession;
|
|
@@ -215,13 +232,12 @@ export class Config {
|
|
|
215
232
|
storage;
|
|
216
233
|
fileExclusions;
|
|
217
234
|
eventEmitter;
|
|
218
|
-
useSmartEdit;
|
|
219
235
|
useWriteTodos;
|
|
220
236
|
messageBus;
|
|
221
237
|
policyEngine;
|
|
222
238
|
outputSettings;
|
|
223
|
-
enableMessageBusIntegration;
|
|
224
239
|
codebaseInvestigatorSettings;
|
|
240
|
+
cliHelpAgentSettings;
|
|
225
241
|
continueOnFailedApiCall;
|
|
226
242
|
retryFetchErrors;
|
|
227
243
|
enableShellOutputEfficiency;
|
|
@@ -231,15 +247,26 @@ export class Config {
|
|
|
231
247
|
disableYoloMode;
|
|
232
248
|
pendingIncludeDirectories;
|
|
233
249
|
enableHooks;
|
|
250
|
+
enableHooksUI;
|
|
234
251
|
hooks;
|
|
252
|
+
projectHooks;
|
|
253
|
+
disabledHooks;
|
|
235
254
|
experiments;
|
|
236
255
|
experimentsPromise;
|
|
237
256
|
hookSystem;
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
257
|
+
onModelChange;
|
|
258
|
+
onReload;
|
|
259
|
+
enableAgents;
|
|
260
|
+
agents;
|
|
261
|
+
skillsSupport;
|
|
262
|
+
disabledSkills;
|
|
263
|
+
adminSkillsEnabled;
|
|
241
264
|
experimentalJitContext;
|
|
265
|
+
disableLLMCorrection;
|
|
242
266
|
contextManager;
|
|
267
|
+
terminalBackground = undefined;
|
|
268
|
+
remoteAdminSettings;
|
|
269
|
+
latestApiRequest;
|
|
243
270
|
constructor(params) {
|
|
244
271
|
this.sessionId = params.sessionId;
|
|
245
272
|
this.embeddingModel =
|
|
@@ -259,12 +286,17 @@ export class Config {
|
|
|
259
286
|
this.toolCallCommand = params.toolCallCommand;
|
|
260
287
|
this.mcpServerCommand = params.mcpServerCommand;
|
|
261
288
|
this.mcpServers = params.mcpServers;
|
|
289
|
+
this.mcpEnabled = params.mcpEnabled ?? true;
|
|
290
|
+
this.extensionsEnabled = params.extensionsEnabled ?? true;
|
|
262
291
|
this.allowedMcpServers = params.allowedMcpServers ?? [];
|
|
263
292
|
this.blockedMcpServers = params.blockedMcpServers ?? [];
|
|
293
|
+
this.allowedEnvironmentVariables = params.allowedEnvironmentVariables ?? [];
|
|
294
|
+
this.blockedEnvironmentVariables = params.blockedEnvironmentVariables ?? [];
|
|
295
|
+
this.enableEnvironmentVariableRedaction =
|
|
296
|
+
params.enableEnvironmentVariableRedaction ?? false;
|
|
264
297
|
this.userMemory = params.userMemory ?? '';
|
|
265
298
|
this.geminiMdFileCount = params.geminiMdFileCount ?? 0;
|
|
266
299
|
this.geminiMdFilePaths = params.geminiMdFilePaths ?? [];
|
|
267
|
-
this.approvalMode = params.approvalMode ?? ApprovalMode.DEFAULT;
|
|
268
300
|
this.showMemoryUsage = params.showMemoryUsage ?? false;
|
|
269
301
|
this.accessibility = params.accessibility ?? {};
|
|
270
302
|
this.telemetrySettings = {
|
|
@@ -275,6 +307,7 @@ export class Config {
|
|
|
275
307
|
logPrompts: params.telemetry?.logPrompts ?? true,
|
|
276
308
|
outfile: params.telemetry?.outfile,
|
|
277
309
|
useCollector: params.telemetry?.useCollector,
|
|
310
|
+
useCliAuth: params.telemetry?.useCliAuth,
|
|
278
311
|
};
|
|
279
312
|
this.usageStatisticsEnabled = params.usageStatisticsEnabled ?? true;
|
|
280
313
|
this.fileFiltering = {
|
|
@@ -295,11 +328,16 @@ export class Config {
|
|
|
295
328
|
this.fileDiscoveryService = params.fileDiscoveryService ?? null;
|
|
296
329
|
this.bugCommand = params.bugCommand;
|
|
297
330
|
this.model = params.model;
|
|
298
|
-
this.
|
|
299
|
-
|
|
300
|
-
this.
|
|
331
|
+
this._activeModel = params.model;
|
|
332
|
+
this.enableAgents = params.enableAgents ?? false;
|
|
333
|
+
this.agents = params.agents ?? {};
|
|
334
|
+
this.disableLLMCorrection = params.disableLLMCorrection ?? false;
|
|
335
|
+
this.skillsSupport = params.skillsSupport ?? false;
|
|
336
|
+
this.disabledSkills = params.disabledSkills ?? [];
|
|
337
|
+
this.adminSkillsEnabled = params.adminSkillsEnabled ?? true;
|
|
301
338
|
this.modelAvailabilityService = new ModelAvailabilityService();
|
|
302
339
|
this.previewFeatures = params.previewFeatures ?? undefined;
|
|
340
|
+
this.experimentalJitContext = params.experimentalJitContext ?? false;
|
|
303
341
|
this.maxSessionTurns = params.maxSessionTurns ?? -1;
|
|
304
342
|
this.experimentalZedIntegration =
|
|
305
343
|
params.experimentalZedIntegration ?? false;
|
|
@@ -329,6 +367,7 @@ export class Config {
|
|
|
329
367
|
terminalHeight: params.shellExecutionConfig?.terminalHeight ?? 24,
|
|
330
368
|
showColor: params.shellExecutionConfig?.showColor ?? false,
|
|
331
369
|
pager: params.shellExecutionConfig?.pager ?? 'cat',
|
|
370
|
+
sanitizationConfig: this.sanitizationConfig,
|
|
332
371
|
};
|
|
333
372
|
this.truncateToolOutputThreshold =
|
|
334
373
|
params.truncateToolOutputThreshold ??
|
|
@@ -336,24 +375,26 @@ export class Config {
|
|
|
336
375
|
this.truncateToolOutputLines =
|
|
337
376
|
params.truncateToolOutputLines ?? DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES;
|
|
338
377
|
this.enableToolOutputTruncation = params.enableToolOutputTruncation ?? true;
|
|
339
|
-
|
|
340
|
-
this.useWriteTodos =
|
|
378
|
+
// // TODO(joshualitt): Re-evaluate the todo tool for 3 family.
|
|
379
|
+
this.useWriteTodos = isPreviewModel(this.model)
|
|
380
|
+
? false
|
|
381
|
+
: (params.useWriteTodos ?? true);
|
|
382
|
+
this.enableHooksUI = params.enableHooksUI ?? true;
|
|
341
383
|
this.enableHooks = params.enableHooks ?? false;
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
const hooksNeedMessageBus = this.enableHooks && hasHooks;
|
|
347
|
-
this.enableMessageBusIntegration =
|
|
348
|
-
params.enableMessageBusIntegration ??
|
|
349
|
-
(hooksNeedMessageBus ? true : false);
|
|
384
|
+
this.disabledHooks =
|
|
385
|
+
(params.hooks && 'disabled' in params.hooks
|
|
386
|
+
? params.hooks.disabled
|
|
387
|
+
: undefined) ?? [];
|
|
350
388
|
this.codebaseInvestigatorSettings = {
|
|
351
389
|
enabled: params.codebaseInvestigatorSettings?.enabled ?? true,
|
|
352
390
|
maxNumTurns: params.codebaseInvestigatorSettings?.maxNumTurns ?? 10,
|
|
353
391
|
maxTimeMinutes: params.codebaseInvestigatorSettings?.maxTimeMinutes ?? 3,
|
|
354
392
|
thinkingBudget: params.codebaseInvestigatorSettings?.thinkingBudget ??
|
|
355
393
|
DEFAULT_THINKING_MODE,
|
|
356
|
-
model: params.codebaseInvestigatorSettings?.model
|
|
394
|
+
model: params.codebaseInvestigatorSettings?.model,
|
|
395
|
+
};
|
|
396
|
+
this.cliHelpAgentSettings = {
|
|
397
|
+
enabled: params.cliHelpAgentSettings?.enabled ?? true,
|
|
357
398
|
};
|
|
358
399
|
this.continueOnFailedApiCall = params.continueOnFailedApiCall ?? true;
|
|
359
400
|
this.enableShellOutputEfficiency =
|
|
@@ -368,19 +409,27 @@ export class Config {
|
|
|
368
409
|
this.enablePromptCompletion = params.enablePromptCompletion ?? false;
|
|
369
410
|
this.fileExclusions = new FileExclusions(this);
|
|
370
411
|
this.eventEmitter = params.eventEmitter;
|
|
371
|
-
this.policyEngine = new PolicyEngine(
|
|
412
|
+
this.policyEngine = new PolicyEngine({
|
|
413
|
+
...params.policyEngineConfig,
|
|
414
|
+
approvalMode: params.approvalMode ?? params.policyEngineConfig?.approvalMode,
|
|
415
|
+
});
|
|
372
416
|
this.messageBus = new MessageBus(this.policyEngine, this.debugMode);
|
|
417
|
+
this.skillManager = new SkillManager();
|
|
373
418
|
this.outputSettings = {
|
|
374
419
|
format: params.output?.format ?? OutputFormat.TEXT,
|
|
375
420
|
};
|
|
376
421
|
this.retryFetchErrors = params.retryFetchErrors ?? false;
|
|
377
422
|
this.disableYoloMode = params.disableYoloMode ?? false;
|
|
378
423
|
this.hooks = params.hooks;
|
|
424
|
+
this.projectHooks = params.projectHooks;
|
|
379
425
|
this.experiments = params.experiments;
|
|
426
|
+
this.onModelChange = params.onModelChange;
|
|
427
|
+
this.onReload = params.onReload;
|
|
380
428
|
if (params.contextFileName) {
|
|
381
429
|
setGeminiMdFilename(params.contextFileName);
|
|
382
430
|
}
|
|
383
431
|
if (this.telemetrySettings.enabled) {
|
|
432
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
384
433
|
initializeTelemetry(this);
|
|
385
434
|
}
|
|
386
435
|
const proxy = this.getProxy();
|
|
@@ -402,11 +451,19 @@ export class Config {
|
|
|
402
451
|
// TODO(12593): Fix the settings loading logic to properly merge defaults and
|
|
403
452
|
// remove this hack.
|
|
404
453
|
let modelConfigServiceConfig = params.modelConfigServiceConfig;
|
|
405
|
-
if (modelConfigServiceConfig
|
|
406
|
-
modelConfigServiceConfig
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
454
|
+
if (modelConfigServiceConfig) {
|
|
455
|
+
if (!modelConfigServiceConfig.aliases) {
|
|
456
|
+
modelConfigServiceConfig = {
|
|
457
|
+
...modelConfigServiceConfig,
|
|
458
|
+
aliases: DEFAULT_MODEL_CONFIGS.aliases,
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
if (!modelConfigServiceConfig.overrides) {
|
|
462
|
+
modelConfigServiceConfig = {
|
|
463
|
+
...modelConfigServiceConfig,
|
|
464
|
+
overrides: DEFAULT_MODEL_CONFIGS.overrides,
|
|
465
|
+
};
|
|
466
|
+
}
|
|
410
467
|
}
|
|
411
468
|
this.modelConfigService = new ModelConfigService(modelConfigServiceConfig ?? DEFAULT_MODEL_CONFIGS);
|
|
412
469
|
}
|
|
@@ -425,8 +482,10 @@ export class Config {
|
|
|
425
482
|
await this.getGitService();
|
|
426
483
|
}
|
|
427
484
|
this.promptRegistry = new PromptRegistry();
|
|
485
|
+
this.resourceRegistry = new ResourceRegistry();
|
|
428
486
|
this.agentRegistry = new AgentRegistry(this);
|
|
429
487
|
await this.agentRegistry.initialize();
|
|
488
|
+
coreEvents.on(CoreEvent.AgentsRefreshed, this.onAgentsRefreshed);
|
|
430
489
|
this.toolRegistry = await this.createToolRegistry();
|
|
431
490
|
discoverToolsHandle?.end();
|
|
432
491
|
this.mcpClientManager = new McpClientManager(this.toolRegistry, this, this.eventEmitter);
|
|
@@ -436,13 +495,26 @@ export class Config {
|
|
|
436
495
|
await this.getExtensionLoader().start(this),
|
|
437
496
|
]);
|
|
438
497
|
initMcpHandle?.end();
|
|
498
|
+
if (this.skillsSupport) {
|
|
499
|
+
this.getSkillManager().setAdminSettings(this.adminSkillsEnabled);
|
|
500
|
+
if (this.adminSkillsEnabled) {
|
|
501
|
+
await this.getSkillManager().discoverSkills(this.storage, this.getExtensions());
|
|
502
|
+
this.getSkillManager().setDisabledSkills(this.disabledSkills);
|
|
503
|
+
// Re-register ActivateSkillTool to update its schema with the discovered enabled skill enums
|
|
504
|
+
if (this.getSkillManager().getSkills().length > 0) {
|
|
505
|
+
this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
|
|
506
|
+
this.getToolRegistry().registerTool(new ActivateSkillTool(this, this.messageBus));
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
}
|
|
439
510
|
// Initialize hook system if enabled
|
|
440
|
-
if (this.
|
|
511
|
+
if (this.getEnableHooks()) {
|
|
441
512
|
this.hookSystem = new HookSystem(this);
|
|
442
513
|
await this.hookSystem.initialize();
|
|
443
514
|
}
|
|
444
515
|
if (this.experimentalJitContext) {
|
|
445
516
|
this.contextManager = new ContextManager(this);
|
|
517
|
+
await this.contextManager.refresh();
|
|
446
518
|
}
|
|
447
519
|
await this.geminiClient.initialize();
|
|
448
520
|
}
|
|
@@ -450,6 +522,8 @@ export class Config {
|
|
|
450
522
|
return this.contentGenerator;
|
|
451
523
|
}
|
|
452
524
|
async refreshAuth(authMethod, displayMessage) {
|
|
525
|
+
// Reset availability service when switching auth
|
|
526
|
+
this.modelAvailabilityService.reset();
|
|
453
527
|
// Vertex and Genai have incompatible encryption and sending history with
|
|
454
528
|
// thoughtSignature from Genai to Vertex will fail, we need to strip them
|
|
455
529
|
if (this.contentGeneratorConfig?.authType === AuthType.USE_GEMINI &&
|
|
@@ -457,6 +531,8 @@ export class Config {
|
|
|
457
531
|
// Restore the conversation history to the new client
|
|
458
532
|
this.geminiClient.stripThoughtsFromHistory();
|
|
459
533
|
}
|
|
534
|
+
// Reset availability status when switching auth (e.g. from limited key to OAuth)
|
|
535
|
+
this.modelAvailabilityService.reset();
|
|
460
536
|
const newContentGeneratorConfig = await createContentGeneratorConfig(this, authMethod, {
|
|
461
537
|
clientId: this.keycloakClientId,
|
|
462
538
|
deviceEndpoint: this.keycloakDeviceEndpoint,
|
|
@@ -467,40 +543,44 @@ export class Config {
|
|
|
467
543
|
this.contentGeneratorConfig = newContentGeneratorConfig;
|
|
468
544
|
// Initialize BaseLlmClient now that the ContentGenerator is available
|
|
469
545
|
this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this);
|
|
470
|
-
const previewFeatures = this.getPreviewFeatures();
|
|
471
546
|
const codeAssistServer = getCodeAssistServer(this);
|
|
472
|
-
if (codeAssistServer) {
|
|
473
|
-
this.
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
547
|
+
if (codeAssistServer?.projectId) {
|
|
548
|
+
await this.refreshUserQuota();
|
|
549
|
+
}
|
|
550
|
+
this.experimentsPromise = getExperiments(codeAssistServer)
|
|
551
|
+
.then((experiments) => {
|
|
552
|
+
this.setExperiments(experiments);
|
|
553
|
+
// If preview features have not been set and the user authenticated through Google, we enable preview based on remote config only if it's true
|
|
554
|
+
if (this.getPreviewFeatures() === undefined) {
|
|
555
|
+
const remotePreviewFeatures = experiments.flags[ExperimentFlags.ENABLE_PREVIEW]?.boolValue;
|
|
556
|
+
if (remotePreviewFeatures === true) {
|
|
557
|
+
this.setPreviewFeatures(remotePreviewFeatures);
|
|
482
558
|
}
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
559
|
+
}
|
|
560
|
+
})
|
|
561
|
+
.catch((e) => {
|
|
562
|
+
debugLogger.error('Failed to fetch experiments', e);
|
|
563
|
+
});
|
|
564
|
+
const authType = this.contentGeneratorConfig.authType;
|
|
565
|
+
if (authType === AuthType.USE_GEMINI ||
|
|
566
|
+
authType === AuthType.USE_VERTEX_AI) {
|
|
567
|
+
this.setHasAccessToPreviewModel(true);
|
|
487
568
|
}
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
569
|
+
// PATCH: If preview features are enabled, we assume access to the preview model.
|
|
570
|
+
// TODO(joshualitt): Revisit this logic to ensure that the user has access to
|
|
571
|
+
// the preview model through a proper quota check.
|
|
572
|
+
if (!this.getPreviewFeatures() &&
|
|
573
|
+
!this.hasAccessToPreviewModel &&
|
|
574
|
+
isPreviewModel(this.model)) {
|
|
575
|
+
this.setModel(DEFAULT_GEMINI_MODEL_AUTO);
|
|
491
576
|
}
|
|
492
|
-
// Reset the session flag since we're explicitly changing auth and using default model
|
|
493
|
-
this.inFallbackMode = false;
|
|
494
577
|
}
|
|
495
578
|
async getExperimentsAsync() {
|
|
496
579
|
if (this.experiments) {
|
|
497
580
|
return this.experiments;
|
|
498
581
|
}
|
|
499
582
|
const codeAssistServer = getCodeAssistServer(this);
|
|
500
|
-
|
|
501
|
-
return getExperiments(codeAssistServer);
|
|
502
|
-
}
|
|
503
|
-
return undefined;
|
|
583
|
+
return getExperiments(codeAssistServer);
|
|
504
584
|
}
|
|
505
585
|
getUserTier() {
|
|
506
586
|
return this.contentGenerator?.userTier;
|
|
@@ -526,6 +606,24 @@ export class Config {
|
|
|
526
606
|
setSessionId(sessionId) {
|
|
527
607
|
this.sessionId = sessionId;
|
|
528
608
|
}
|
|
609
|
+
setTerminalBackground(terminalBackground) {
|
|
610
|
+
this.terminalBackground = terminalBackground;
|
|
611
|
+
}
|
|
612
|
+
getTerminalBackground() {
|
|
613
|
+
return this.terminalBackground;
|
|
614
|
+
}
|
|
615
|
+
getLatestApiRequest() {
|
|
616
|
+
return this.latestApiRequest;
|
|
617
|
+
}
|
|
618
|
+
setLatestApiRequest(req) {
|
|
619
|
+
this.latestApiRequest = req;
|
|
620
|
+
}
|
|
621
|
+
getRemoteAdminSettings() {
|
|
622
|
+
return this.remoteAdminSettings;
|
|
623
|
+
}
|
|
624
|
+
setRemoteAdminSettings(settings) {
|
|
625
|
+
this.remoteAdminSettings = settings;
|
|
626
|
+
}
|
|
529
627
|
shouldLoadMemoryFromIncludeDirectories() {
|
|
530
628
|
return this.loadMemoryFromIncludeDirectories;
|
|
531
629
|
}
|
|
@@ -541,18 +639,32 @@ export class Config {
|
|
|
541
639
|
getModel() {
|
|
542
640
|
return this.model;
|
|
543
641
|
}
|
|
544
|
-
setModel(newModel) {
|
|
545
|
-
if (this.model !== newModel || this.
|
|
642
|
+
setModel(newModel, isTemporary = true) {
|
|
643
|
+
if (this.model !== newModel || this._activeModel !== newModel) {
|
|
546
644
|
this.model = newModel;
|
|
645
|
+
// When the user explicitly sets a model, that becomes the active model.
|
|
646
|
+
this._activeModel = newModel;
|
|
547
647
|
coreEvents.emitModelChanged(newModel);
|
|
648
|
+
if (this.onModelChange && !isTemporary) {
|
|
649
|
+
this.onModelChange(newModel);
|
|
650
|
+
}
|
|
548
651
|
}
|
|
549
|
-
this.
|
|
652
|
+
this.modelAvailabilityService.reset();
|
|
550
653
|
}
|
|
551
|
-
|
|
552
|
-
|
|
654
|
+
activateFallbackMode(model) {
|
|
655
|
+
this.setModel(model, true);
|
|
656
|
+
const authType = this.getContentGeneratorConfig()?.authType;
|
|
657
|
+
if (authType) {
|
|
658
|
+
logFlashFallback(this, new FlashFallbackEvent(authType));
|
|
659
|
+
}
|
|
553
660
|
}
|
|
554
|
-
|
|
555
|
-
this.
|
|
661
|
+
getActiveModel() {
|
|
662
|
+
return this._activeModel ?? this.model;
|
|
663
|
+
}
|
|
664
|
+
setActiveModel(model) {
|
|
665
|
+
if (this._activeModel !== model) {
|
|
666
|
+
this._activeModel = model;
|
|
667
|
+
}
|
|
556
668
|
}
|
|
557
669
|
setFallbackModelHandler(handler) {
|
|
558
670
|
this.fallbackModelHandler = handler;
|
|
@@ -560,17 +672,8 @@ export class Config {
|
|
|
560
672
|
getFallbackModelHandler() {
|
|
561
673
|
return this.fallbackModelHandler;
|
|
562
674
|
}
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
}
|
|
566
|
-
setPreviewModelFallbackMode(active) {
|
|
567
|
-
this.previewModelFallbackMode = active;
|
|
568
|
-
}
|
|
569
|
-
isPreviewModelBypassMode() {
|
|
570
|
-
return this.previewModelBypassMode;
|
|
571
|
-
}
|
|
572
|
-
setPreviewModelBypassMode(active) {
|
|
573
|
-
this.previewModelBypassMode = active;
|
|
675
|
+
resetTurn() {
|
|
676
|
+
this.modelAvailabilityService.resetTurn();
|
|
574
677
|
}
|
|
575
678
|
getMaxSessionTurns() {
|
|
576
679
|
return this.maxSessionTurns;
|
|
@@ -613,6 +716,12 @@ export class Config {
|
|
|
613
716
|
getPromptRegistry() {
|
|
614
717
|
return this.promptRegistry;
|
|
615
718
|
}
|
|
719
|
+
getSkillManager() {
|
|
720
|
+
return this.skillManager;
|
|
721
|
+
}
|
|
722
|
+
getResourceRegistry() {
|
|
723
|
+
return this.resourceRegistry;
|
|
724
|
+
}
|
|
616
725
|
getDebugMode() {
|
|
617
726
|
return this.debugMode;
|
|
618
727
|
}
|
|
@@ -623,7 +732,44 @@ export class Config {
|
|
|
623
732
|
return this.previewFeatures;
|
|
624
733
|
}
|
|
625
734
|
setPreviewFeatures(previewFeatures) {
|
|
735
|
+
// No change in state, no action needed
|
|
736
|
+
if (this.previewFeatures === previewFeatures) {
|
|
737
|
+
return;
|
|
738
|
+
}
|
|
626
739
|
this.previewFeatures = previewFeatures;
|
|
740
|
+
const currentModel = this.getModel();
|
|
741
|
+
// Case 1: Disabling preview features while on a preview model
|
|
742
|
+
if (!previewFeatures && isPreviewModel(currentModel)) {
|
|
743
|
+
this.setModel(DEFAULT_GEMINI_MODEL_AUTO);
|
|
744
|
+
}
|
|
745
|
+
// Case 2: Enabling preview features while on the default auto model
|
|
746
|
+
else if (previewFeatures && currentModel === DEFAULT_GEMINI_MODEL_AUTO) {
|
|
747
|
+
this.setModel(PREVIEW_GEMINI_MODEL_AUTO);
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
getHasAccessToPreviewModel() {
|
|
751
|
+
return this.hasAccessToPreviewModel;
|
|
752
|
+
}
|
|
753
|
+
setHasAccessToPreviewModel(hasAccess) {
|
|
754
|
+
this.hasAccessToPreviewModel = hasAccess;
|
|
755
|
+
}
|
|
756
|
+
async refreshUserQuota() {
|
|
757
|
+
const codeAssistServer = getCodeAssistServer(this);
|
|
758
|
+
if (!codeAssistServer || !codeAssistServer.projectId) {
|
|
759
|
+
return undefined;
|
|
760
|
+
}
|
|
761
|
+
try {
|
|
762
|
+
const quota = await codeAssistServer.retrieveUserQuota({
|
|
763
|
+
project: codeAssistServer.projectId,
|
|
764
|
+
});
|
|
765
|
+
const hasAccess = quota.buckets?.some((b) => b.modelId === PREVIEW_GEMINI_MODEL) ?? false;
|
|
766
|
+
this.setHasAccessToPreviewModel(hasAccess);
|
|
767
|
+
return quota;
|
|
768
|
+
}
|
|
769
|
+
catch (e) {
|
|
770
|
+
debugLogger.debug('Failed to retrieve user quota', e);
|
|
771
|
+
return undefined;
|
|
772
|
+
}
|
|
627
773
|
}
|
|
628
774
|
getCoreTools() {
|
|
629
775
|
return this.coreTools;
|
|
@@ -666,6 +812,12 @@ export class Config {
|
|
|
666
812
|
getMcpServers() {
|
|
667
813
|
return this.mcpServers;
|
|
668
814
|
}
|
|
815
|
+
getMcpEnabled() {
|
|
816
|
+
return this.mcpEnabled;
|
|
817
|
+
}
|
|
818
|
+
getExtensionsEnabled() {
|
|
819
|
+
return this.extensionsEnabled;
|
|
820
|
+
}
|
|
669
821
|
getMcpClientManager() {
|
|
670
822
|
return this.mcpClientManager;
|
|
671
823
|
}
|
|
@@ -675,10 +827,25 @@ export class Config {
|
|
|
675
827
|
getBlockedMcpServers() {
|
|
676
828
|
return this.blockedMcpServers;
|
|
677
829
|
}
|
|
830
|
+
get sanitizationConfig() {
|
|
831
|
+
return {
|
|
832
|
+
allowedEnvironmentVariables: this.allowedEnvironmentVariables,
|
|
833
|
+
blockedEnvironmentVariables: this.blockedEnvironmentVariables,
|
|
834
|
+
enableEnvironmentVariableRedaction: this.enableEnvironmentVariableRedaction,
|
|
835
|
+
};
|
|
836
|
+
}
|
|
678
837
|
setMcpServers(mcpServers) {
|
|
679
838
|
this.mcpServers = mcpServers;
|
|
680
839
|
}
|
|
681
840
|
getUserMemory() {
|
|
841
|
+
if (this.experimentalJitContext && this.contextManager) {
|
|
842
|
+
return [
|
|
843
|
+
this.contextManager.getGlobalMemory(),
|
|
844
|
+
this.contextManager.getEnvironmentMemory(),
|
|
845
|
+
]
|
|
846
|
+
.filter(Boolean)
|
|
847
|
+
.join('\n\n');
|
|
848
|
+
}
|
|
682
849
|
return this.userMemory;
|
|
683
850
|
}
|
|
684
851
|
setUserMemory(newUserMemory) {
|
|
@@ -697,25 +864,31 @@ export class Config {
|
|
|
697
864
|
return this.experimentalJitContext;
|
|
698
865
|
}
|
|
699
866
|
getGeminiMdFileCount() {
|
|
867
|
+
if (this.experimentalJitContext && this.contextManager) {
|
|
868
|
+
return this.contextManager.getLoadedPaths().size;
|
|
869
|
+
}
|
|
700
870
|
return this.geminiMdFileCount;
|
|
701
871
|
}
|
|
702
872
|
setGeminiMdFileCount(count) {
|
|
703
873
|
this.geminiMdFileCount = count;
|
|
704
874
|
}
|
|
705
875
|
getGeminiMdFilePaths() {
|
|
876
|
+
if (this.experimentalJitContext && this.contextManager) {
|
|
877
|
+
return Array.from(this.contextManager.getLoadedPaths());
|
|
878
|
+
}
|
|
706
879
|
return this.geminiMdFilePaths;
|
|
707
880
|
}
|
|
708
881
|
setGeminiMdFilePaths(paths) {
|
|
709
882
|
this.geminiMdFilePaths = paths;
|
|
710
883
|
}
|
|
711
884
|
getApprovalMode() {
|
|
712
|
-
return this.
|
|
885
|
+
return this.policyEngine.getApprovalMode();
|
|
713
886
|
}
|
|
714
887
|
setApprovalMode(mode) {
|
|
715
888
|
if (!this.isTrustedFolder() && mode !== ApprovalMode.DEFAULT) {
|
|
716
889
|
throw new Error('Cannot enable privileged approval modes in an untrusted folder.');
|
|
717
890
|
}
|
|
718
|
-
this.
|
|
891
|
+
this.policyEngine.setApprovalMode(mode);
|
|
719
892
|
}
|
|
720
893
|
isYoloModeDisabled() {
|
|
721
894
|
return this.disableYoloMode || !this.isTrustedFolder();
|
|
@@ -753,6 +926,9 @@ export class Config {
|
|
|
753
926
|
getTelemetryUseCollector() {
|
|
754
927
|
return this.telemetrySettings.useCollector ?? false;
|
|
755
928
|
}
|
|
929
|
+
getTelemetryUseCliAuth() {
|
|
930
|
+
return this.telemetrySettings.useCliAuth ?? false;
|
|
931
|
+
}
|
|
756
932
|
getGeminiClient() {
|
|
757
933
|
return this.geminiClient;
|
|
758
934
|
}
|
|
@@ -866,12 +1042,18 @@ export class Config {
|
|
|
866
1042
|
getEnableExtensionReloading() {
|
|
867
1043
|
return this.enableExtensionReloading;
|
|
868
1044
|
}
|
|
869
|
-
|
|
870
|
-
return this.
|
|
1045
|
+
getDisableLLMCorrection() {
|
|
1046
|
+
return this.disableLLMCorrection;
|
|
1047
|
+
}
|
|
1048
|
+
isAgentsEnabled() {
|
|
1049
|
+
return this.enableAgents;
|
|
871
1050
|
}
|
|
872
1051
|
getNoBrowser() {
|
|
873
1052
|
return this.noBrowser;
|
|
874
1053
|
}
|
|
1054
|
+
getAgentsSettings() {
|
|
1055
|
+
return this.agents;
|
|
1056
|
+
}
|
|
875
1057
|
isBrowserLaunchSuppressed() {
|
|
876
1058
|
return this.getNoBrowser() || !shouldAttemptBrowserLaunch();
|
|
877
1059
|
}
|
|
@@ -892,21 +1074,12 @@ export class Config {
|
|
|
892
1074
|
* 'false' for untrusted.
|
|
893
1075
|
*/
|
|
894
1076
|
isTrustedFolder() {
|
|
895
|
-
// isWorkspaceTrusted in cli/src/config/trustedFolder.js returns undefined
|
|
896
|
-
// when the file based trust value is unavailable, since it is mainly used
|
|
897
|
-
// in the initialization for trust dialogs, etc. Here we return true since
|
|
898
|
-
// config.isTrustedFolder() is used for the main business logic of blocking
|
|
899
|
-
// tool calls etc in the rest of the application.
|
|
900
|
-
//
|
|
901
|
-
// Default value is true since we load with trusted settings to avoid
|
|
902
|
-
// restarts in the more common path. If the user chooses to mark the folder
|
|
903
|
-
// as untrusted, the CLI will restart and we will have the trust value
|
|
904
|
-
// reloaded.
|
|
905
1077
|
const context = ideContextStore.get();
|
|
906
1078
|
if (context?.workspaceState?.isTrusted !== undefined) {
|
|
907
1079
|
return context.workspaceState.isTrusted;
|
|
908
1080
|
}
|
|
909
|
-
|
|
1081
|
+
// Default to untrusted if folder trust is enabled and no explicit value is set.
|
|
1082
|
+
return this.folderTrust ? (this.trustedFolder ?? false) : true;
|
|
910
1083
|
}
|
|
911
1084
|
setIdeMode(value) {
|
|
912
1085
|
this.ideMode = value;
|
|
@@ -965,6 +1138,40 @@ export class Config {
|
|
|
965
1138
|
this.ptyInfo !== 'child_process' &&
|
|
966
1139
|
this.enableInteractiveShell);
|
|
967
1140
|
}
|
|
1141
|
+
isSkillsSupportEnabled() {
|
|
1142
|
+
return this.skillsSupport;
|
|
1143
|
+
}
|
|
1144
|
+
/**
|
|
1145
|
+
* Reloads skills by re-discovering them from extensions and local directories.
|
|
1146
|
+
*/
|
|
1147
|
+
async reloadSkills() {
|
|
1148
|
+
if (!this.skillsSupport) {
|
|
1149
|
+
return;
|
|
1150
|
+
}
|
|
1151
|
+
if (this.onReload) {
|
|
1152
|
+
const refreshed = await this.onReload();
|
|
1153
|
+
this.disabledSkills = refreshed.disabledSkills ?? [];
|
|
1154
|
+
this.getSkillManager().setAdminSettings(refreshed.adminSkillsEnabled ?? this.adminSkillsEnabled);
|
|
1155
|
+
}
|
|
1156
|
+
if (this.getSkillManager().isAdminEnabled()) {
|
|
1157
|
+
await this.getSkillManager().discoverSkills(this.storage, this.getExtensions());
|
|
1158
|
+
this.getSkillManager().setDisabledSkills(this.disabledSkills);
|
|
1159
|
+
// Re-register ActivateSkillTool to update its schema with the newly discovered skills
|
|
1160
|
+
if (this.getSkillManager().getSkills().length > 0) {
|
|
1161
|
+
this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
|
|
1162
|
+
this.getToolRegistry().registerTool(new ActivateSkillTool(this, this.messageBus));
|
|
1163
|
+
}
|
|
1164
|
+
else {
|
|
1165
|
+
this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
else {
|
|
1169
|
+
this.getSkillManager().clearSkills();
|
|
1170
|
+
this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
|
|
1171
|
+
}
|
|
1172
|
+
// Notify the client that system instructions might need updating
|
|
1173
|
+
await this.updateSystemInstructionIfInitialized();
|
|
1174
|
+
}
|
|
968
1175
|
isInteractive() {
|
|
969
1176
|
return this.interactive;
|
|
970
1177
|
}
|
|
@@ -998,6 +1205,8 @@ export class Config {
|
|
|
998
1205
|
terminalHeight: config.terminalHeight ?? this.shellExecutionConfig.terminalHeight,
|
|
999
1206
|
showColor: config.showColor ?? this.shellExecutionConfig.showColor,
|
|
1000
1207
|
pager: config.pager ?? this.shellExecutionConfig.pager,
|
|
1208
|
+
sanitizationConfig: config.sanitizationConfig ??
|
|
1209
|
+
this.shellExecutionConfig.sanitizationConfig,
|
|
1001
1210
|
};
|
|
1002
1211
|
}
|
|
1003
1212
|
getScreenReader() {
|
|
@@ -1018,9 +1227,6 @@ export class Config {
|
|
|
1018
1227
|
getTruncateToolOutputLines() {
|
|
1019
1228
|
return this.truncateToolOutputLines;
|
|
1020
1229
|
}
|
|
1021
|
-
getUseSmartEdit() {
|
|
1022
|
-
return this.useSmartEdit;
|
|
1023
|
-
}
|
|
1024
1230
|
getUseWriteTodos() {
|
|
1025
1231
|
return this.useWriteTodos;
|
|
1026
1232
|
}
|
|
@@ -1045,21 +1251,20 @@ export class Config {
|
|
|
1045
1251
|
getPolicyEngine() {
|
|
1046
1252
|
return this.policyEngine;
|
|
1047
1253
|
}
|
|
1048
|
-
getEnableMessageBusIntegration() {
|
|
1049
|
-
return this.enableMessageBusIntegration;
|
|
1050
|
-
}
|
|
1051
1254
|
getEnableHooks() {
|
|
1052
1255
|
return this.enableHooks;
|
|
1053
1256
|
}
|
|
1257
|
+
getEnableHooksUI() {
|
|
1258
|
+
return this.enableHooksUI;
|
|
1259
|
+
}
|
|
1054
1260
|
getCodebaseInvestigatorSettings() {
|
|
1055
1261
|
return this.codebaseInvestigatorSettings;
|
|
1056
1262
|
}
|
|
1263
|
+
getCliHelpAgentSettings() {
|
|
1264
|
+
return this.cliHelpAgentSettings;
|
|
1265
|
+
}
|
|
1057
1266
|
async createToolRegistry() {
|
|
1058
|
-
const registry = new ToolRegistry(this);
|
|
1059
|
-
// Set message bus on tool registry before discovery so MCP tools can access it
|
|
1060
|
-
if (this.getEnableMessageBusIntegration()) {
|
|
1061
|
-
registry.setMessageBus(this.messageBus);
|
|
1062
|
-
}
|
|
1267
|
+
const registry = new ToolRegistry(this, this.messageBus);
|
|
1063
1268
|
// helper to create & register core tools that are enabled
|
|
1064
1269
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1065
1270
|
const registerCoreTool = (ToolClass, ...args) => {
|
|
@@ -1076,13 +1281,8 @@ export class Config {
|
|
|
1076
1281
|
tool.startsWith(`${normalizedClassName}(`));
|
|
1077
1282
|
}
|
|
1078
1283
|
if (isEnabled) {
|
|
1079
|
-
// Pass message bus to tools
|
|
1080
|
-
|
|
1081
|
-
// the tool registry.
|
|
1082
|
-
const messageBusEnabled = this.getEnableMessageBusIntegration();
|
|
1083
|
-
const toolArgs = messageBusEnabled
|
|
1084
|
-
? [...args, this.getMessageBus()]
|
|
1085
|
-
: args;
|
|
1284
|
+
// Pass message bus to tools (required for policy engine integration)
|
|
1285
|
+
const toolArgs = [...args, this.getMessageBus()];
|
|
1086
1286
|
registry.registerTool(new ToolClass(...toolArgs));
|
|
1087
1287
|
}
|
|
1088
1288
|
};
|
|
@@ -1109,38 +1309,39 @@ export class Config {
|
|
|
1109
1309
|
registerCoreTool(GrepTool, this);
|
|
1110
1310
|
}
|
|
1111
1311
|
registerCoreTool(GlobTool, this);
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
}
|
|
1115
|
-
else {
|
|
1116
|
-
registerCoreTool(EditTool, this);
|
|
1117
|
-
}
|
|
1312
|
+
registerCoreTool(ActivateSkillTool, this);
|
|
1313
|
+
registerCoreTool(EditTool, this);
|
|
1118
1314
|
registerCoreTool(WriteFileTool, this);
|
|
1119
1315
|
registerCoreTool(WebFetchTool, this);
|
|
1120
1316
|
registerCoreTool(ShellTool, this);
|
|
1121
1317
|
registerCoreTool(MemoryTool);
|
|
1122
1318
|
registerCoreTool(WebSearchTool, this);
|
|
1123
1319
|
if (this.getUseWriteTodos()) {
|
|
1124
|
-
registerCoreTool(WriteTodosTool
|
|
1320
|
+
registerCoreTool(WriteTodosTool);
|
|
1125
1321
|
}
|
|
1126
1322
|
// Register Subagents as Tools
|
|
1127
|
-
if
|
|
1128
|
-
|
|
1129
|
-
if (definition) {
|
|
1130
|
-
// We must respect the main allowed/exclude lists for agents too.
|
|
1131
|
-
const allowedTools = this.getAllowedTools();
|
|
1132
|
-
const isAllowed = !allowedTools || allowedTools.includes(definition.name);
|
|
1133
|
-
if (isAllowed) {
|
|
1134
|
-
const messageBusEnabled = this.getEnableMessageBusIntegration();
|
|
1135
|
-
const wrapper = new SubagentToolWrapper(definition, this, messageBusEnabled ? this.getMessageBus() : undefined);
|
|
1136
|
-
registry.registerTool(wrapper);
|
|
1137
|
-
}
|
|
1138
|
-
}
|
|
1139
|
-
}
|
|
1323
|
+
// Register DelegateToAgentTool if agents are enabled
|
|
1324
|
+
this.registerDelegateToAgentTool(registry);
|
|
1140
1325
|
await registry.discoverAllTools();
|
|
1141
1326
|
registry.sortTools();
|
|
1142
1327
|
return registry;
|
|
1143
1328
|
}
|
|
1329
|
+
/**
|
|
1330
|
+
* Registers the DelegateToAgentTool if agents or related features are enabled.
|
|
1331
|
+
*/
|
|
1332
|
+
registerDelegateToAgentTool(registry) {
|
|
1333
|
+
if (this.isAgentsEnabled() ||
|
|
1334
|
+
this.getCodebaseInvestigatorSettings().enabled ||
|
|
1335
|
+
this.getCliHelpAgentSettings().enabled) {
|
|
1336
|
+
// Check if the delegate tool itself is allowed (if allowedTools is set)
|
|
1337
|
+
const allowedTools = this.getAllowedTools();
|
|
1338
|
+
const isAllowed = !allowedTools || allowedTools.includes(DELEGATE_TO_AGENT_TOOL_NAME);
|
|
1339
|
+
if (isAllowed) {
|
|
1340
|
+
const delegateTool = new DelegateToAgentTool(this.agentRegistry, this, this.getMessageBus());
|
|
1341
|
+
registry.registerTool(delegateTool);
|
|
1342
|
+
}
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1144
1345
|
/**
|
|
1145
1346
|
* Get the hook system instance
|
|
1146
1347
|
*/
|
|
@@ -1153,6 +1354,18 @@ export class Config {
|
|
|
1153
1354
|
getHooks() {
|
|
1154
1355
|
return this.hooks;
|
|
1155
1356
|
}
|
|
1357
|
+
/**
|
|
1358
|
+
* Get project-specific hooks configuration
|
|
1359
|
+
*/
|
|
1360
|
+
getProjectHooks() {
|
|
1361
|
+
return this.projectHooks;
|
|
1362
|
+
}
|
|
1363
|
+
/**
|
|
1364
|
+
* Get disabled hooks list
|
|
1365
|
+
*/
|
|
1366
|
+
getDisabledHooks() {
|
|
1367
|
+
return this.disabledHooks;
|
|
1368
|
+
}
|
|
1156
1369
|
/**
|
|
1157
1370
|
* Get experiments configuration
|
|
1158
1371
|
*/
|
|
@@ -1203,6 +1416,31 @@ export class Config {
|
|
|
1203
1416
|
});
|
|
1204
1417
|
debugLogger.debug('Experiments loaded', summaryString);
|
|
1205
1418
|
}
|
|
1419
|
+
onAgentsRefreshed = async () => {
|
|
1420
|
+
if (this.toolRegistry) {
|
|
1421
|
+
this.registerDelegateToAgentTool(this.toolRegistry);
|
|
1422
|
+
}
|
|
1423
|
+
// Propagate updates to the active chat session
|
|
1424
|
+
const client = this.getGeminiClient();
|
|
1425
|
+
if (client?.isInitialized()) {
|
|
1426
|
+
await client.setTools();
|
|
1427
|
+
await client.updateSystemInstruction();
|
|
1428
|
+
}
|
|
1429
|
+
else {
|
|
1430
|
+
debugLogger.debug('[Config] GeminiClient not initialized; skipping live prompt/tool refresh.');
|
|
1431
|
+
}
|
|
1432
|
+
};
|
|
1433
|
+
/**
|
|
1434
|
+
* Disposes of resources and removes event listeners.
|
|
1435
|
+
*/
|
|
1436
|
+
async dispose() {
|
|
1437
|
+
coreEvents.off(CoreEvent.AgentsRefreshed, this.onAgentsRefreshed);
|
|
1438
|
+
this.agentRegistry?.dispose();
|
|
1439
|
+
this.geminiClient?.dispose();
|
|
1440
|
+
if (this.mcpClientManager) {
|
|
1441
|
+
await this.mcpClientManager.stop();
|
|
1442
|
+
}
|
|
1443
|
+
}
|
|
1206
1444
|
}
|
|
1207
1445
|
// Export model constants for use in CLI
|
|
1208
1446
|
export { DEFAULT_GEMINI_FLASH_MODEL };
|