summaryrefslogtreecommitdiff
path: root/packages/cli/src/config/config.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/config/config.ts')
-rw-r--r--packages/cli/src/config/config.ts17
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) {