@machina.ai/cell-cli-core 1.22.5-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/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.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 +2 -2
- package/dist/src/agents/delegate-to-agent-tool.js +25 -14
- package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.test.js +101 -21
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
- package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
- package/dist/src/agents/{executor.js → local-executor.js} +123 -62
- 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 +22 -1
- package/dist/src/agents/registry.js +192 -35
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +407 -33
- 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/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 +2 -1
- package/dist/src/availability/policyHelpers.d.ts +4 -3
- package/dist/src/availability/policyHelpers.js +13 -22
- package/dist/src/availability/policyHelpers.js.map +1 -1
- package/dist/src/availability/policyHelpers.test.js +28 -18
- package/dist/src/availability/policyHelpers.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.js +32 -2
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +111 -16
- 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/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/config/config.d.ts +120 -26
- package/dist/src/config/config.js +241 -120
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +215 -43
- package/dist/src/config/config.test.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 +8 -9
- package/dist/src/config/models.js +18 -15
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +52 -16
- 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 +2 -1
- package/dist/src/confirmation-bus/message-bus.js.map +1 -1
- package/dist/src/core/baseLlmClient.js +44 -43
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +12 -19
- 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 +245 -114
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +277 -74
- 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 +3 -3
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +1 -7
- 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 +133 -369
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +252 -394
- 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 +112 -79
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +125 -92
- 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.js +4 -6
- package/dist/src/core/geminiChat_network_retry.test.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 +4 -4
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.js +37 -13
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +47 -3
- 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 -22
- package/dist/src/core/turn.js +31 -21
- 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 +1 -7
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +10 -29
- 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 +61 -15
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +223 -8
- 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 -11
- package/dist/src/hooks/hookRegistry.js +41 -14
- package/dist/src/hooks/hookRegistry.js.map +1 -1
- package/dist/src/hooks/hookRegistry.test.js +166 -2
- 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 +57 -17
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +172 -35
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookSystem.d.ts +12 -0
- package/dist/src/hooks/hookSystem.js +39 -1
- package/dist/src/hooks/hookSystem.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 +1 -2
- package/dist/src/hooks/index.js +1 -3
- 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 +41 -9
- package/dist/src/hooks/types.js +31 -41
- 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 +10 -0
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-client.js +4 -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 +11 -2
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/index.d.ts +16 -2
- package/dist/src/index.js +18 -3
- 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/policy/config.js +62 -23
- 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.js +1 -1
- package/dist/src/policy/persistence.test.js.map +1 -1
- package/dist/src/policy/policies/agent.toml +1 -1
- 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 +4 -0
- package/dist/src/policy/policy-engine.js +137 -53
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +289 -1
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/policy-updater.test.js +5 -5
- package/dist/src/policy/policy-updater.test.js.map +1 -1
- package/dist/src/policy/shell-safety.test.js +371 -8
- package/dist/src/policy/shell-safety.test.js.map +1 -1
- package/dist/src/policy/toml-loader.d.ts +0 -8
- package/dist/src/policy/toml-loader.js +13 -45
- package/dist/src/policy/toml-loader.js.map +1 -1
- package/dist/src/policy/toml-loader.test.js +13 -0
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/types.d.ts +10 -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/routing/routingStrategy.d.ts +2 -0
- package/dist/src/routing/strategies/classifierStrategy.js +1 -1
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js +16 -0
- 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 +2 -5
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +13 -6
- 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 +6 -6
- 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/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 +3 -10
- package/dist/src/services/chatCompressionService.js.map +1 -1
- package/dist/src/services/chatCompressionService.test.js +1 -0
- 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 +20 -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/gitService.js +10 -1
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +28 -2
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +2 -1
- 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.integration.test.js +3 -3
- package/dist/src/services/modelConfig.integration.test.js.map +1 -1
- package/dist/src/services/modelConfigService.d.ts +38 -4
- package/dist/src/services/modelConfigService.js +135 -76
- package/dist/src/services/modelConfigService.js.map +1 -1
- package/dist/src/services/modelConfigService.test.js +116 -0
- package/dist/src/services/modelConfigService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +2 -0
- package/dist/src/services/shellExecutionService.js +6 -50
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +68 -4
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- 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/clearcut-logger/clearcut-logger.d.ts +18 -9
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +234 -160
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +162 -32
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +11 -3
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +24 -5
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +3 -3
- package/dist/src/telemetry/loggers.js +6 -5
- 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 +51 -10
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/sdk.js +5 -6
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +7 -7
- package/dist/src/telemetry/types.js +14 -12
- package/dist/src/telemetry/types.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.js +3 -12
- package/dist/src/tools/confirmation-policy.test.js.map +1 -1
- package/dist/src/tools/edit.d.ts +27 -5
- package/dist/src/tools/edit.js +455 -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.js +14 -7
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +28 -0
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +5 -4
- package/dist/src/tools/mcp-client.js +10 -8
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +47 -42
- 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 +8 -8
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +11 -6
- 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 +2 -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/read-file.d.ts +2 -2
- package/dist/src/tools/read-file.js +1 -1
- 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 +2 -3
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +3 -2
- 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 +3 -6
- package/dist/src/tools/shell.js +21 -49
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +35 -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 +15 -0
- package/dist/src/tools/tool-names.js +57 -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 +8 -6
- package/dist/src/tools/tools.js +16 -18
- 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 +4 -4
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +17 -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 +9 -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/checkpointUtils.d.ts +1 -1
- package/dist/src/utils/checkpointUtils.js +1 -1
- package/dist/src/utils/checkpointUtils.js.map +1 -1
- package/dist/src/utils/checkpointUtils.test.js +1 -1
- package/dist/src/utils/checkpointUtils.test.js.map +1 -1
- package/dist/src/utils/debugLogger.js +1 -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 +23 -23
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +3 -2
- package/dist/src/utils/editor.js +26 -6
- 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/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/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 +112 -1
- package/dist/src/utils/fileUtils.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/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/partUtils.js +1 -1
- package/dist/src/utils/partUtils.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 +1 -0
- package/dist/src/utils/retry.js +17 -5
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +11 -11
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +6 -0
- package/dist/src/utils/shell-utils.js +97 -12
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +99 -1
- 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/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/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/core/sessionHookTriggers.d.ts +0 -28
- package/dist/src/core/sessionHookTriggers.js +0 -68
- package/dist/src/core/sessionHookTriggers.js.map +0 -1
- package/dist/src/tools/smart-edit.d.ts +0 -78
- package/dist/src/tools/smart-edit.js +0 -722
- 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/utils/shell-permissions.d.ts +0 -52
- package/dist/src/utils/shell-permissions.js +0 -188
- package/dist/src/utils/shell-permissions.js.map +0 -1
- package/dist/src/utils/shell-permissions.test.js +0 -347
- package/dist/src/utils/shell-permissions.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
- /package/dist/src/{utils/shell-permissions.test.d.ts → agents/cli-help-agent.test.d.ts} +0 -0
|
@@ -15,8 +15,8 @@ import { ReadFileTool } from '../tools/read-file.js';
|
|
|
15
15
|
import { GrepTool } from '../tools/grep.js';
|
|
16
16
|
import { canUseRipgrep, RipGrepTool } from '../tools/ripGrep.js';
|
|
17
17
|
import { GlobTool } from '../tools/glob.js';
|
|
18
|
+
import { ActivateSkillTool } from '../tools/activate-skill.js';
|
|
18
19
|
import { EditTool } from '../tools/edit.js';
|
|
19
|
-
import { SmartEditTool } from '../tools/smart-edit.js';
|
|
20
20
|
import { ShellTool } from '../tools/shell.js';
|
|
21
21
|
import { WriteFileTool } from '../tools/write-file.js';
|
|
22
22
|
import { WebFetchTool } from '../tools/web-fetch.js';
|
|
@@ -27,15 +27,15 @@ import { BaseLlmClient } from '../core/baseLlmClient.js';
|
|
|
27
27
|
import { FileDiscoveryService } from '../services/fileDiscoveryService.js';
|
|
28
28
|
import { GitService } from '../services/gitService.js';
|
|
29
29
|
import { initializeTelemetry, DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT, uiTelemetryService, } from '../telemetry/index.js';
|
|
30
|
-
import { coreEvents } from '../utils/events.js';
|
|
30
|
+
import { coreEvents, CoreEvent } from '../utils/events.js';
|
|
31
31
|
import { tokenLimit } from '../core/tokenLimits.js';
|
|
32
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';
|
|
33
33
|
import { shouldAttemptBrowserLaunch } from '../utils/browser.js';
|
|
34
34
|
import { ideContextStore } from '../ide/ideContext.js';
|
|
35
35
|
import { WriteTodosTool } from '../tools/write-todos.js';
|
|
36
36
|
import { StandardFileSystemService } from '../services/fileSystemService.js';
|
|
37
|
-
import { logRipgrepFallback } from '../telemetry/loggers.js';
|
|
38
|
-
import { RipgrepFallbackEvent } from '../telemetry/types.js';
|
|
37
|
+
import { logRipgrepFallback, logFlashFallback } from '../telemetry/loggers.js';
|
|
38
|
+
import { RipgrepFallbackEvent, FlashFallbackEvent, } from '../telemetry/types.js';
|
|
39
39
|
import { ModelAvailabilityService } from '../availability/modelAvailabilityService.js';
|
|
40
40
|
import { ModelRouterService } from '../routing/modelRouterService.js';
|
|
41
41
|
import { OutputFormat } from '../output/types.js';
|
|
@@ -47,6 +47,7 @@ import { Storage } from './storage.js';
|
|
|
47
47
|
import { FileExclusions } from '../utils/ignorePatterns.js';
|
|
48
48
|
import { MessageBus } from '../confirmation-bus/message-bus.js';
|
|
49
49
|
import { PolicyEngine } from '../policy/policy-engine.js';
|
|
50
|
+
import { ApprovalMode } from '../policy/types.js';
|
|
50
51
|
import { HookSystem } from '../hooks/index.js';
|
|
51
52
|
import { getCodeAssistServer } from '../code_assist/codeAssist.js';
|
|
52
53
|
import { AgentRegistry } from '../agents/registry.js';
|
|
@@ -56,9 +57,8 @@ import { DELEGATE_TO_AGENT_TOOL_NAME } from '../tools/tool-names.js';
|
|
|
56
57
|
import { getExperiments } from '../code_assist/experiments/experiments.js';
|
|
57
58
|
import { ExperimentFlags } from '../code_assist/experiments/flagNames.js';
|
|
58
59
|
import { debugLogger } from '../utils/debugLogger.js';
|
|
60
|
+
import { SkillManager } from '../skills/skillManager.js';
|
|
59
61
|
import { startupProfiler } from '../telemetry/startupProfiler.js';
|
|
60
|
-
import { ApprovalMode } from '../policy/types.js';
|
|
61
|
-
export { ApprovalMode };
|
|
62
62
|
import { DEFAULT_FILE_FILTERING_OPTIONS, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, } from './constants.js';
|
|
63
63
|
import { SimpleExtensionLoader, } from '../utils/extensionLoader.js';
|
|
64
64
|
import { McpClientManager } from '../tools/mcp-client-manager.js';
|
|
@@ -145,9 +145,13 @@ export class Config {
|
|
|
145
145
|
mcpClientManager;
|
|
146
146
|
allowedMcpServers;
|
|
147
147
|
blockedMcpServers;
|
|
148
|
+
allowedEnvironmentVariables;
|
|
149
|
+
blockedEnvironmentVariables;
|
|
150
|
+
enableEnvironmentVariableRedaction;
|
|
148
151
|
promptRegistry;
|
|
149
152
|
resourceRegistry;
|
|
150
153
|
agentRegistry;
|
|
154
|
+
skillManager;
|
|
151
155
|
sessionId;
|
|
152
156
|
fileSystemService;
|
|
153
157
|
contentGeneratorConfig;
|
|
@@ -165,6 +169,8 @@ export class Config {
|
|
|
165
169
|
toolDiscoveryCommand;
|
|
166
170
|
toolCallCommand;
|
|
167
171
|
mcpServerCommand;
|
|
172
|
+
mcpEnabled;
|
|
173
|
+
extensionsEnabled;
|
|
168
174
|
mcpServers;
|
|
169
175
|
userMemory;
|
|
170
176
|
geminiMdFileCount;
|
|
@@ -194,7 +200,6 @@ export class Config {
|
|
|
194
200
|
noBrowser;
|
|
195
201
|
folderTrust;
|
|
196
202
|
ideMode;
|
|
197
|
-
inFallbackMode = false;
|
|
198
203
|
_activeModel;
|
|
199
204
|
maxSessionTurns;
|
|
200
205
|
listSessions;
|
|
@@ -227,13 +232,12 @@ export class Config {
|
|
|
227
232
|
storage;
|
|
228
233
|
fileExclusions;
|
|
229
234
|
eventEmitter;
|
|
230
|
-
useSmartEdit;
|
|
231
235
|
useWriteTodos;
|
|
232
236
|
messageBus;
|
|
233
237
|
policyEngine;
|
|
234
238
|
outputSettings;
|
|
235
|
-
enableMessageBusIntegration;
|
|
236
239
|
codebaseInvestigatorSettings;
|
|
240
|
+
cliHelpAgentSettings;
|
|
237
241
|
continueOnFailedApiCall;
|
|
238
242
|
retryFetchErrors;
|
|
239
243
|
enableShellOutputEfficiency;
|
|
@@ -243,17 +247,26 @@ export class Config {
|
|
|
243
247
|
disableYoloMode;
|
|
244
248
|
pendingIncludeDirectories;
|
|
245
249
|
enableHooks;
|
|
250
|
+
enableHooksUI;
|
|
246
251
|
hooks;
|
|
252
|
+
projectHooks;
|
|
247
253
|
disabledHooks;
|
|
248
254
|
experiments;
|
|
249
255
|
experimentsPromise;
|
|
250
256
|
hookSystem;
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
enableModelAvailabilityService;
|
|
257
|
+
onModelChange;
|
|
258
|
+
onReload;
|
|
254
259
|
enableAgents;
|
|
260
|
+
agents;
|
|
261
|
+
skillsSupport;
|
|
262
|
+
disabledSkills;
|
|
263
|
+
adminSkillsEnabled;
|
|
255
264
|
experimentalJitContext;
|
|
265
|
+
disableLLMCorrection;
|
|
256
266
|
contextManager;
|
|
267
|
+
terminalBackground = undefined;
|
|
268
|
+
remoteAdminSettings;
|
|
269
|
+
latestApiRequest;
|
|
257
270
|
constructor(params) {
|
|
258
271
|
this.sessionId = params.sessionId;
|
|
259
272
|
this.embeddingModel =
|
|
@@ -273,8 +286,14 @@ export class Config {
|
|
|
273
286
|
this.toolCallCommand = params.toolCallCommand;
|
|
274
287
|
this.mcpServerCommand = params.mcpServerCommand;
|
|
275
288
|
this.mcpServers = params.mcpServers;
|
|
289
|
+
this.mcpEnabled = params.mcpEnabled ?? true;
|
|
290
|
+
this.extensionsEnabled = params.extensionsEnabled ?? true;
|
|
276
291
|
this.allowedMcpServers = params.allowedMcpServers ?? [];
|
|
277
292
|
this.blockedMcpServers = params.blockedMcpServers ?? [];
|
|
293
|
+
this.allowedEnvironmentVariables = params.allowedEnvironmentVariables ?? [];
|
|
294
|
+
this.blockedEnvironmentVariables = params.blockedEnvironmentVariables ?? [];
|
|
295
|
+
this.enableEnvironmentVariableRedaction =
|
|
296
|
+
params.enableEnvironmentVariableRedaction ?? false;
|
|
278
297
|
this.userMemory = params.userMemory ?? '';
|
|
279
298
|
this.geminiMdFileCount = params.geminiMdFileCount ?? 0;
|
|
280
299
|
this.geminiMdFilePaths = params.geminiMdFilePaths ?? [];
|
|
@@ -310,11 +329,15 @@ export class Config {
|
|
|
310
329
|
this.bugCommand = params.bugCommand;
|
|
311
330
|
this.model = params.model;
|
|
312
331
|
this._activeModel = params.model;
|
|
313
|
-
this.enableModelAvailabilityService = true;
|
|
314
332
|
this.enableAgents = params.enableAgents ?? false;
|
|
315
|
-
this.
|
|
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;
|
|
316
338
|
this.modelAvailabilityService = new ModelAvailabilityService();
|
|
317
339
|
this.previewFeatures = params.previewFeatures ?? undefined;
|
|
340
|
+
this.experimentalJitContext = params.experimentalJitContext ?? false;
|
|
318
341
|
this.maxSessionTurns = params.maxSessionTurns ?? -1;
|
|
319
342
|
this.experimentalZedIntegration =
|
|
320
343
|
params.experimentalZedIntegration ?? false;
|
|
@@ -344,6 +367,7 @@ export class Config {
|
|
|
344
367
|
terminalHeight: params.shellExecutionConfig?.terminalHeight ?? 24,
|
|
345
368
|
showColor: params.shellExecutionConfig?.showColor ?? false,
|
|
346
369
|
pager: params.shellExecutionConfig?.pager ?? 'cat',
|
|
370
|
+
sanitizationConfig: this.sanitizationConfig,
|
|
347
371
|
};
|
|
348
372
|
this.truncateToolOutputThreshold =
|
|
349
373
|
params.truncateToolOutputThreshold ??
|
|
@@ -351,24 +375,16 @@ export class Config {
|
|
|
351
375
|
this.truncateToolOutputLines =
|
|
352
376
|
params.truncateToolOutputLines ?? DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES;
|
|
353
377
|
this.enableToolOutputTruncation = params.enableToolOutputTruncation ?? true;
|
|
354
|
-
this.useSmartEdit = params.useSmartEdit ?? true;
|
|
355
378
|
// // TODO(joshualitt): Re-evaluate the todo tool for 3 family.
|
|
356
379
|
this.useWriteTodos = isPreviewModel(this.model)
|
|
357
380
|
? false
|
|
358
381
|
: (params.useWriteTodos ?? true);
|
|
382
|
+
this.enableHooksUI = params.enableHooksUI ?? true;
|
|
359
383
|
this.enableHooks = params.enableHooks ?? false;
|
|
360
384
|
this.disabledHooks =
|
|
361
385
|
(params.hooks && 'disabled' in params.hooks
|
|
362
386
|
? params.hooks.disabled
|
|
363
387
|
: undefined) ?? [];
|
|
364
|
-
// Enable MessageBus integration if:
|
|
365
|
-
// 1. Explicitly enabled via setting, OR
|
|
366
|
-
// 2. Hooks are enabled and hooks are configured
|
|
367
|
-
const hasHooks = params.hooks && Object.keys(params.hooks).length > 0;
|
|
368
|
-
const hooksNeedMessageBus = this.enableHooks && hasHooks;
|
|
369
|
-
this.enableMessageBusIntegration =
|
|
370
|
-
params.enableMessageBusIntegration ??
|
|
371
|
-
(hooksNeedMessageBus ? true : false);
|
|
372
388
|
this.codebaseInvestigatorSettings = {
|
|
373
389
|
enabled: params.codebaseInvestigatorSettings?.enabled ?? true,
|
|
374
390
|
maxNumTurns: params.codebaseInvestigatorSettings?.maxNumTurns ?? 10,
|
|
@@ -377,6 +393,9 @@ export class Config {
|
|
|
377
393
|
DEFAULT_THINKING_MODE,
|
|
378
394
|
model: params.codebaseInvestigatorSettings?.model,
|
|
379
395
|
};
|
|
396
|
+
this.cliHelpAgentSettings = {
|
|
397
|
+
enabled: params.cliHelpAgentSettings?.enabled ?? true,
|
|
398
|
+
};
|
|
380
399
|
this.continueOnFailedApiCall = params.continueOnFailedApiCall ?? true;
|
|
381
400
|
this.enableShellOutputEfficiency =
|
|
382
401
|
params.enableShellOutputEfficiency ?? true;
|
|
@@ -395,13 +414,17 @@ export class Config {
|
|
|
395
414
|
approvalMode: params.approvalMode ?? params.policyEngineConfig?.approvalMode,
|
|
396
415
|
});
|
|
397
416
|
this.messageBus = new MessageBus(this.policyEngine, this.debugMode);
|
|
417
|
+
this.skillManager = new SkillManager();
|
|
398
418
|
this.outputSettings = {
|
|
399
419
|
format: params.output?.format ?? OutputFormat.TEXT,
|
|
400
420
|
};
|
|
401
421
|
this.retryFetchErrors = params.retryFetchErrors ?? false;
|
|
402
422
|
this.disableYoloMode = params.disableYoloMode ?? false;
|
|
403
423
|
this.hooks = params.hooks;
|
|
424
|
+
this.projectHooks = params.projectHooks;
|
|
404
425
|
this.experiments = params.experiments;
|
|
426
|
+
this.onModelChange = params.onModelChange;
|
|
427
|
+
this.onReload = params.onReload;
|
|
405
428
|
if (params.contextFileName) {
|
|
406
429
|
setGeminiMdFilename(params.contextFileName);
|
|
407
430
|
}
|
|
@@ -462,6 +485,7 @@ export class Config {
|
|
|
462
485
|
this.resourceRegistry = new ResourceRegistry();
|
|
463
486
|
this.agentRegistry = new AgentRegistry(this);
|
|
464
487
|
await this.agentRegistry.initialize();
|
|
488
|
+
coreEvents.on(CoreEvent.AgentsRefreshed, this.onAgentsRefreshed);
|
|
465
489
|
this.toolRegistry = await this.createToolRegistry();
|
|
466
490
|
discoverToolsHandle?.end();
|
|
467
491
|
this.mcpClientManager = new McpClientManager(this.toolRegistry, this, this.eventEmitter);
|
|
@@ -471,13 +495,26 @@ export class Config {
|
|
|
471
495
|
await this.getExtensionLoader().start(this),
|
|
472
496
|
]);
|
|
473
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
|
+
}
|
|
474
510
|
// Initialize hook system if enabled
|
|
475
|
-
if (this.
|
|
511
|
+
if (this.getEnableHooks()) {
|
|
476
512
|
this.hookSystem = new HookSystem(this);
|
|
477
513
|
await this.hookSystem.initialize();
|
|
478
514
|
}
|
|
479
515
|
if (this.experimentalJitContext) {
|
|
480
516
|
this.contextManager = new ContextManager(this);
|
|
517
|
+
await this.contextManager.refresh();
|
|
481
518
|
}
|
|
482
519
|
await this.geminiClient.initialize();
|
|
483
520
|
}
|
|
@@ -507,37 +544,31 @@ export class Config {
|
|
|
507
544
|
// Initialize BaseLlmClient now that the ContentGenerator is available
|
|
508
545
|
this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this);
|
|
509
546
|
const codeAssistServer = getCodeAssistServer(this);
|
|
510
|
-
if (codeAssistServer) {
|
|
511
|
-
|
|
512
|
-
await this.refreshUserQuota();
|
|
513
|
-
}
|
|
514
|
-
this.experimentsPromise = getExperiments(codeAssistServer)
|
|
515
|
-
.then((experiments) => {
|
|
516
|
-
this.setExperiments(experiments);
|
|
517
|
-
// 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
|
|
518
|
-
if (this.getPreviewFeatures() === undefined) {
|
|
519
|
-
const remotePreviewFeatures = experiments.flags[ExperimentFlags.ENABLE_PREVIEW]?.boolValue;
|
|
520
|
-
if (remotePreviewFeatures === true) {
|
|
521
|
-
this.setPreviewFeatures(remotePreviewFeatures);
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
})
|
|
525
|
-
.catch((e) => {
|
|
526
|
-
debugLogger.error('Failed to fetch experiments', e);
|
|
527
|
-
});
|
|
528
|
-
}
|
|
529
|
-
else {
|
|
530
|
-
this.experiments = undefined;
|
|
531
|
-
this.experimentsPromise = undefined;
|
|
547
|
+
if (codeAssistServer?.projectId) {
|
|
548
|
+
await this.refreshUserQuota();
|
|
532
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);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
})
|
|
561
|
+
.catch((e) => {
|
|
562
|
+
debugLogger.error('Failed to fetch experiments', e);
|
|
563
|
+
});
|
|
533
564
|
const authType = this.contentGeneratorConfig.authType;
|
|
534
565
|
if (authType === AuthType.USE_GEMINI ||
|
|
535
566
|
authType === AuthType.USE_VERTEX_AI) {
|
|
536
567
|
this.setHasAccessToPreviewModel(true);
|
|
537
568
|
}
|
|
538
|
-
//
|
|
539
|
-
this
|
|
540
|
-
//
|
|
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.
|
|
541
572
|
if (!this.getPreviewFeatures() &&
|
|
542
573
|
!this.hasAccessToPreviewModel &&
|
|
543
574
|
isPreviewModel(this.model)) {
|
|
@@ -549,10 +580,7 @@ export class Config {
|
|
|
549
580
|
return this.experiments;
|
|
550
581
|
}
|
|
551
582
|
const codeAssistServer = getCodeAssistServer(this);
|
|
552
|
-
|
|
553
|
-
return getExperiments(codeAssistServer);
|
|
554
|
-
}
|
|
555
|
-
return undefined;
|
|
583
|
+
return getExperiments(codeAssistServer);
|
|
556
584
|
}
|
|
557
585
|
getUserTier() {
|
|
558
586
|
return this.contentGenerator?.userTier;
|
|
@@ -578,6 +606,24 @@ export class Config {
|
|
|
578
606
|
setSessionId(sessionId) {
|
|
579
607
|
this.sessionId = sessionId;
|
|
580
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
|
+
}
|
|
581
627
|
shouldLoadMemoryFromIncludeDirectories() {
|
|
582
628
|
return this.loadMemoryFromIncludeDirectories;
|
|
583
629
|
}
|
|
@@ -593,16 +639,25 @@ export class Config {
|
|
|
593
639
|
getModel() {
|
|
594
640
|
return this.model;
|
|
595
641
|
}
|
|
596
|
-
setModel(newModel) {
|
|
597
|
-
if (this.model !== newModel || this.
|
|
642
|
+
setModel(newModel, isTemporary = true) {
|
|
643
|
+
if (this.model !== newModel || this._activeModel !== newModel) {
|
|
598
644
|
this.model = newModel;
|
|
599
645
|
// When the user explicitly sets a model, that becomes the active model.
|
|
600
646
|
this._activeModel = newModel;
|
|
601
647
|
coreEvents.emitModelChanged(newModel);
|
|
648
|
+
if (this.onModelChange && !isTemporary) {
|
|
649
|
+
this.onModelChange(newModel);
|
|
650
|
+
}
|
|
602
651
|
}
|
|
603
|
-
this.setFallbackMode(false);
|
|
604
652
|
this.modelAvailabilityService.reset();
|
|
605
653
|
}
|
|
654
|
+
activateFallbackMode(model) {
|
|
655
|
+
this.setModel(model, true);
|
|
656
|
+
const authType = this.getContentGeneratorConfig()?.authType;
|
|
657
|
+
if (authType) {
|
|
658
|
+
logFlashFallback(this, new FlashFallbackEvent(authType));
|
|
659
|
+
}
|
|
660
|
+
}
|
|
606
661
|
getActiveModel() {
|
|
607
662
|
return this._activeModel ?? this.model;
|
|
608
663
|
}
|
|
@@ -611,32 +666,14 @@ export class Config {
|
|
|
611
666
|
this._activeModel = model;
|
|
612
667
|
}
|
|
613
668
|
}
|
|
614
|
-
resetTurn() {
|
|
615
|
-
this.modelAvailabilityService.resetTurn();
|
|
616
|
-
}
|
|
617
|
-
isInFallbackMode() {
|
|
618
|
-
return this.inFallbackMode;
|
|
619
|
-
}
|
|
620
|
-
setFallbackMode(active) {
|
|
621
|
-
this.inFallbackMode = active;
|
|
622
|
-
}
|
|
623
669
|
setFallbackModelHandler(handler) {
|
|
624
670
|
this.fallbackModelHandler = handler;
|
|
625
671
|
}
|
|
626
672
|
getFallbackModelHandler() {
|
|
627
673
|
return this.fallbackModelHandler;
|
|
628
674
|
}
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
}
|
|
632
|
-
setPreviewModelFallbackMode(active) {
|
|
633
|
-
this.previewModelFallbackMode = active;
|
|
634
|
-
}
|
|
635
|
-
isPreviewModelBypassMode() {
|
|
636
|
-
return this.previewModelBypassMode;
|
|
637
|
-
}
|
|
638
|
-
setPreviewModelBypassMode(active) {
|
|
639
|
-
this.previewModelBypassMode = active;
|
|
675
|
+
resetTurn() {
|
|
676
|
+
this.modelAvailabilityService.resetTurn();
|
|
640
677
|
}
|
|
641
678
|
getMaxSessionTurns() {
|
|
642
679
|
return this.maxSessionTurns;
|
|
@@ -679,6 +716,9 @@ export class Config {
|
|
|
679
716
|
getPromptRegistry() {
|
|
680
717
|
return this.promptRegistry;
|
|
681
718
|
}
|
|
719
|
+
getSkillManager() {
|
|
720
|
+
return this.skillManager;
|
|
721
|
+
}
|
|
682
722
|
getResourceRegistry() {
|
|
683
723
|
return this.resourceRegistry;
|
|
684
724
|
}
|
|
@@ -772,6 +812,12 @@ export class Config {
|
|
|
772
812
|
getMcpServers() {
|
|
773
813
|
return this.mcpServers;
|
|
774
814
|
}
|
|
815
|
+
getMcpEnabled() {
|
|
816
|
+
return this.mcpEnabled;
|
|
817
|
+
}
|
|
818
|
+
getExtensionsEnabled() {
|
|
819
|
+
return this.extensionsEnabled;
|
|
820
|
+
}
|
|
775
821
|
getMcpClientManager() {
|
|
776
822
|
return this.mcpClientManager;
|
|
777
823
|
}
|
|
@@ -781,10 +827,25 @@ export class Config {
|
|
|
781
827
|
getBlockedMcpServers() {
|
|
782
828
|
return this.blockedMcpServers;
|
|
783
829
|
}
|
|
830
|
+
get sanitizationConfig() {
|
|
831
|
+
return {
|
|
832
|
+
allowedEnvironmentVariables: this.allowedEnvironmentVariables,
|
|
833
|
+
blockedEnvironmentVariables: this.blockedEnvironmentVariables,
|
|
834
|
+
enableEnvironmentVariableRedaction: this.enableEnvironmentVariableRedaction,
|
|
835
|
+
};
|
|
836
|
+
}
|
|
784
837
|
setMcpServers(mcpServers) {
|
|
785
838
|
this.mcpServers = mcpServers;
|
|
786
839
|
}
|
|
787
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
|
+
}
|
|
788
849
|
return this.userMemory;
|
|
789
850
|
}
|
|
790
851
|
setUserMemory(newUserMemory) {
|
|
@@ -803,12 +864,18 @@ export class Config {
|
|
|
803
864
|
return this.experimentalJitContext;
|
|
804
865
|
}
|
|
805
866
|
getGeminiMdFileCount() {
|
|
867
|
+
if (this.experimentalJitContext && this.contextManager) {
|
|
868
|
+
return this.contextManager.getLoadedPaths().size;
|
|
869
|
+
}
|
|
806
870
|
return this.geminiMdFileCount;
|
|
807
871
|
}
|
|
808
872
|
setGeminiMdFileCount(count) {
|
|
809
873
|
this.geminiMdFileCount = count;
|
|
810
874
|
}
|
|
811
875
|
getGeminiMdFilePaths() {
|
|
876
|
+
if (this.experimentalJitContext && this.contextManager) {
|
|
877
|
+
return Array.from(this.contextManager.getLoadedPaths());
|
|
878
|
+
}
|
|
812
879
|
return this.geminiMdFilePaths;
|
|
813
880
|
}
|
|
814
881
|
setGeminiMdFilePaths(paths) {
|
|
@@ -975,8 +1042,8 @@ export class Config {
|
|
|
975
1042
|
getEnableExtensionReloading() {
|
|
976
1043
|
return this.enableExtensionReloading;
|
|
977
1044
|
}
|
|
978
|
-
|
|
979
|
-
return this.
|
|
1045
|
+
getDisableLLMCorrection() {
|
|
1046
|
+
return this.disableLLMCorrection;
|
|
980
1047
|
}
|
|
981
1048
|
isAgentsEnabled() {
|
|
982
1049
|
return this.enableAgents;
|
|
@@ -984,6 +1051,9 @@ export class Config {
|
|
|
984
1051
|
getNoBrowser() {
|
|
985
1052
|
return this.noBrowser;
|
|
986
1053
|
}
|
|
1054
|
+
getAgentsSettings() {
|
|
1055
|
+
return this.agents;
|
|
1056
|
+
}
|
|
987
1057
|
isBrowserLaunchSuppressed() {
|
|
988
1058
|
return this.getNoBrowser() || !shouldAttemptBrowserLaunch();
|
|
989
1059
|
}
|
|
@@ -1004,21 +1074,12 @@ export class Config {
|
|
|
1004
1074
|
* 'false' for untrusted.
|
|
1005
1075
|
*/
|
|
1006
1076
|
isTrustedFolder() {
|
|
1007
|
-
// isWorkspaceTrusted in cli/src/config/trustedFolder.js returns undefined
|
|
1008
|
-
// when the file based trust value is unavailable, since it is mainly used
|
|
1009
|
-
// in the initialization for trust dialogs, etc. Here we return true since
|
|
1010
|
-
// config.isTrustedFolder() is used for the main business logic of blocking
|
|
1011
|
-
// tool calls etc in the rest of the application.
|
|
1012
|
-
//
|
|
1013
|
-
// Default value is true since we load with trusted settings to avoid
|
|
1014
|
-
// restarts in the more common path. If the user chooses to mark the folder
|
|
1015
|
-
// as untrusted, the CLI will restart and we will have the trust value
|
|
1016
|
-
// reloaded.
|
|
1017
1077
|
const context = ideContextStore.get();
|
|
1018
1078
|
if (context?.workspaceState?.isTrusted !== undefined) {
|
|
1019
1079
|
return context.workspaceState.isTrusted;
|
|
1020
1080
|
}
|
|
1021
|
-
|
|
1081
|
+
// Default to untrusted if folder trust is enabled and no explicit value is set.
|
|
1082
|
+
return this.folderTrust ? (this.trustedFolder ?? false) : true;
|
|
1022
1083
|
}
|
|
1023
1084
|
setIdeMode(value) {
|
|
1024
1085
|
this.ideMode = value;
|
|
@@ -1077,6 +1138,40 @@ export class Config {
|
|
|
1077
1138
|
this.ptyInfo !== 'child_process' &&
|
|
1078
1139
|
this.enableInteractiveShell);
|
|
1079
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
|
+
}
|
|
1080
1175
|
isInteractive() {
|
|
1081
1176
|
return this.interactive;
|
|
1082
1177
|
}
|
|
@@ -1110,6 +1205,8 @@ export class Config {
|
|
|
1110
1205
|
terminalHeight: config.terminalHeight ?? this.shellExecutionConfig.terminalHeight,
|
|
1111
1206
|
showColor: config.showColor ?? this.shellExecutionConfig.showColor,
|
|
1112
1207
|
pager: config.pager ?? this.shellExecutionConfig.pager,
|
|
1208
|
+
sanitizationConfig: config.sanitizationConfig ??
|
|
1209
|
+
this.shellExecutionConfig.sanitizationConfig,
|
|
1113
1210
|
};
|
|
1114
1211
|
}
|
|
1115
1212
|
getScreenReader() {
|
|
@@ -1130,9 +1227,6 @@ export class Config {
|
|
|
1130
1227
|
getTruncateToolOutputLines() {
|
|
1131
1228
|
return this.truncateToolOutputLines;
|
|
1132
1229
|
}
|
|
1133
|
-
getUseSmartEdit() {
|
|
1134
|
-
return this.useSmartEdit;
|
|
1135
|
-
}
|
|
1136
1230
|
getUseWriteTodos() {
|
|
1137
1231
|
return this.useWriteTodos;
|
|
1138
1232
|
}
|
|
@@ -1157,21 +1251,20 @@ export class Config {
|
|
|
1157
1251
|
getPolicyEngine() {
|
|
1158
1252
|
return this.policyEngine;
|
|
1159
1253
|
}
|
|
1160
|
-
getEnableMessageBusIntegration() {
|
|
1161
|
-
return this.enableMessageBusIntegration;
|
|
1162
|
-
}
|
|
1163
1254
|
getEnableHooks() {
|
|
1164
1255
|
return this.enableHooks;
|
|
1165
1256
|
}
|
|
1257
|
+
getEnableHooksUI() {
|
|
1258
|
+
return this.enableHooksUI;
|
|
1259
|
+
}
|
|
1166
1260
|
getCodebaseInvestigatorSettings() {
|
|
1167
1261
|
return this.codebaseInvestigatorSettings;
|
|
1168
1262
|
}
|
|
1263
|
+
getCliHelpAgentSettings() {
|
|
1264
|
+
return this.cliHelpAgentSettings;
|
|
1265
|
+
}
|
|
1169
1266
|
async createToolRegistry() {
|
|
1170
|
-
const registry = new ToolRegistry(this);
|
|
1171
|
-
// Set message bus on tool registry before discovery so MCP tools can access it
|
|
1172
|
-
if (this.getEnableMessageBusIntegration()) {
|
|
1173
|
-
registry.setMessageBus(this.messageBus);
|
|
1174
|
-
}
|
|
1267
|
+
const registry = new ToolRegistry(this, this.messageBus);
|
|
1175
1268
|
// helper to create & register core tools that are enabled
|
|
1176
1269
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1177
1270
|
const registerCoreTool = (ToolClass, ...args) => {
|
|
@@ -1188,13 +1281,8 @@ export class Config {
|
|
|
1188
1281
|
tool.startsWith(`${normalizedClassName}(`));
|
|
1189
1282
|
}
|
|
1190
1283
|
if (isEnabled) {
|
|
1191
|
-
// Pass message bus to tools
|
|
1192
|
-
|
|
1193
|
-
// the tool registry.
|
|
1194
|
-
const messageBusEnabled = this.getEnableMessageBusIntegration();
|
|
1195
|
-
const toolArgs = messageBusEnabled
|
|
1196
|
-
? [...args, this.getMessageBus()]
|
|
1197
|
-
: args;
|
|
1284
|
+
// Pass message bus to tools (required for policy engine integration)
|
|
1285
|
+
const toolArgs = [...args, this.getMessageBus()];
|
|
1198
1286
|
registry.registerTool(new ToolClass(...toolArgs));
|
|
1199
1287
|
}
|
|
1200
1288
|
};
|
|
@@ -1221,36 +1309,38 @@ export class Config {
|
|
|
1221
1309
|
registerCoreTool(GrepTool, this);
|
|
1222
1310
|
}
|
|
1223
1311
|
registerCoreTool(GlobTool, this);
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
}
|
|
1227
|
-
else {
|
|
1228
|
-
registerCoreTool(EditTool, this);
|
|
1229
|
-
}
|
|
1312
|
+
registerCoreTool(ActivateSkillTool, this);
|
|
1313
|
+
registerCoreTool(EditTool, this);
|
|
1230
1314
|
registerCoreTool(WriteFileTool, this);
|
|
1231
1315
|
registerCoreTool(WebFetchTool, this);
|
|
1232
1316
|
registerCoreTool(ShellTool, this);
|
|
1233
1317
|
registerCoreTool(MemoryTool);
|
|
1234
1318
|
registerCoreTool(WebSearchTool, this);
|
|
1235
1319
|
if (this.getUseWriteTodos()) {
|
|
1236
|
-
registerCoreTool(WriteTodosTool
|
|
1320
|
+
registerCoreTool(WriteTodosTool);
|
|
1237
1321
|
}
|
|
1238
1322
|
// Register Subagents as Tools
|
|
1239
1323
|
// Register DelegateToAgentTool if agents are enabled
|
|
1324
|
+
this.registerDelegateToAgentTool(registry);
|
|
1325
|
+
await registry.discoverAllTools();
|
|
1326
|
+
registry.sortTools();
|
|
1327
|
+
return registry;
|
|
1328
|
+
}
|
|
1329
|
+
/**
|
|
1330
|
+
* Registers the DelegateToAgentTool if agents or related features are enabled.
|
|
1331
|
+
*/
|
|
1332
|
+
registerDelegateToAgentTool(registry) {
|
|
1240
1333
|
if (this.isAgentsEnabled() ||
|
|
1241
|
-
this.getCodebaseInvestigatorSettings().enabled
|
|
1334
|
+
this.getCodebaseInvestigatorSettings().enabled ||
|
|
1335
|
+
this.getCliHelpAgentSettings().enabled) {
|
|
1242
1336
|
// Check if the delegate tool itself is allowed (if allowedTools is set)
|
|
1243
1337
|
const allowedTools = this.getAllowedTools();
|
|
1244
1338
|
const isAllowed = !allowedTools || allowedTools.includes(DELEGATE_TO_AGENT_TOOL_NAME);
|
|
1245
1339
|
if (isAllowed) {
|
|
1246
|
-
const
|
|
1247
|
-
const delegateTool = new DelegateToAgentTool(this.agentRegistry, this, messageBusEnabled ? this.getMessageBus() : undefined);
|
|
1340
|
+
const delegateTool = new DelegateToAgentTool(this.agentRegistry, this, this.getMessageBus());
|
|
1248
1341
|
registry.registerTool(delegateTool);
|
|
1249
1342
|
}
|
|
1250
1343
|
}
|
|
1251
|
-
await registry.discoverAllTools();
|
|
1252
|
-
registry.sortTools();
|
|
1253
|
-
return registry;
|
|
1254
1344
|
}
|
|
1255
1345
|
/**
|
|
1256
1346
|
* Get the hook system instance
|
|
@@ -1264,6 +1354,12 @@ export class Config {
|
|
|
1264
1354
|
getHooks() {
|
|
1265
1355
|
return this.hooks;
|
|
1266
1356
|
}
|
|
1357
|
+
/**
|
|
1358
|
+
* Get project-specific hooks configuration
|
|
1359
|
+
*/
|
|
1360
|
+
getProjectHooks() {
|
|
1361
|
+
return this.projectHooks;
|
|
1362
|
+
}
|
|
1267
1363
|
/**
|
|
1268
1364
|
* Get disabled hooks list
|
|
1269
1365
|
*/
|
|
@@ -1320,6 +1416,31 @@ export class Config {
|
|
|
1320
1416
|
});
|
|
1321
1417
|
debugLogger.debug('Experiments loaded', summaryString);
|
|
1322
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
|
+
}
|
|
1323
1444
|
}
|
|
1324
1445
|
// Export model constants for use in CLI
|
|
1325
1446
|
export { DEFAULT_GEMINI_FLASH_MODEL };
|