diff options
Diffstat (limited to 'packages/cli/src/config/config.ts')
| -rw-r--r-- | packages/cli/src/config/config.ts | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index 552a8f67..cecf904b 100644 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -194,6 +194,7 @@ export async function loadCliConfig( ); const mcpServers = mergeMcpServers(settings, extensions); + const excludeTools = mergeExcludeTools(settings, extensions); const sandboxConfig = await loadSandboxConfig(settings, argv); @@ -206,7 +207,7 @@ export async function loadCliConfig( question: argv.prompt || '', fullContext: argv.all_files || false, coreTools: settings.coreTools || undefined, - excludeTools: settings.excludeTools || undefined, + excludeTools, toolDiscoveryCommand: settings.toolDiscoveryCommand, toolCallCommand: settings.toolCallCommand, mcpServerCommand: settings.mcpServerCommand, @@ -265,6 +266,20 @@ function mergeMcpServers(settings: Settings, extensions: Extension[]) { } return mcpServers; } + +function mergeExcludeTools( + settings: Settings, + extensions: Extension[], +): string[] { + const allExcludeTools = new Set(settings.excludeTools || []); + for (const extension of extensions) { + for (const tool of extension.config.excludeTools || []) { + allExcludeTools.add(tool); + } + } + return [...allExcludeTools]; +} + function findEnvFile(startDir: string): string | null { let currentDir = path.resolve(startDir); while (true) { |
