diff --git a/apps/cli/package.json b/apps/cli/package.json index e5e8edac..63c72814 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -14,10 +14,7 @@ "bin": { "agentv": "./dist/cli.js" }, - "files": [ - "dist", - "README.md" - ], + "files": ["dist", "README.md"], "scripts": { "dev": "bun src/cli.ts", "build": "tsup && bun run copy-readme", diff --git a/packages/core/package.json b/packages/core/package.json index ef541141..87e08d2f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -38,10 +38,7 @@ "diagnostics:azure": "bun src/diagnostics/azure-deployment-diag.ts", "generate:schema": "bun scripts/generate-eval-schema.ts" }, - "files": [ - "dist", - "README.md" - ], + "files": ["dist", "README.md"], "dependencies": { "@agentclientprotocol/sdk": "^0.14.1", "@agentv/eval": "workspace:*", diff --git a/packages/core/src/evaluation/providers/pi-cli.ts b/packages/core/src/evaluation/providers/pi-cli.ts index 7c0dc25e..a9e8048a 100644 --- a/packages/core/src/evaluation/providers/pi-cli.ts +++ b/packages/core/src/evaluation/providers/pi-cli.ts @@ -262,21 +262,32 @@ export class PiCliProvider implements Provider { // When a subprovider is explicitly configured, remove ambient env vars from // other providers that pi-cli auto-detects (e.g., AZURE_OPENAI_* vars override // --provider flags). This ensures the configured subprovider is actually used. + // + // To add a new provider: add an entry to PROVIDER_OWN_PREFIXES with the env + // var prefixes that provider uses. All other providers' vars are stripped + // automatically when that provider is selected. if (this.config.subprovider) { const provider = this.config.subprovider.toLowerCase(); - const PROVIDER_ENV_PREFIXES: Record = { - openrouter: ['AZURE_OPENAI_', 'ANTHROPIC_API_KEY', 'GEMINI_API_KEY'], - anthropic: ['AZURE_OPENAI_', 'OPENROUTER_API_KEY', 'GEMINI_API_KEY'], - openai: ['AZURE_OPENAI_', 'OPENROUTER_API_KEY', 'GEMINI_API_KEY', 'ANTHROPIC_API_KEY'], - google: ['AZURE_OPENAI_', 'OPENROUTER_API_KEY', 'ANTHROPIC_API_KEY'], - gemini: ['AZURE_OPENAI_', 'OPENROUTER_API_KEY', 'ANTHROPIC_API_KEY'], + const PROVIDER_OWN_PREFIXES: Record = { + openrouter: ['OPENROUTER_'], + anthropic: ['ANTHROPIC_'], + openai: ['OPENAI_'], + azure: ['AZURE_OPENAI_'], + google: ['GEMINI_', 'GOOGLE_GENERATIVE_AI_'], + gemini: ['GEMINI_', 'GOOGLE_GENERATIVE_AI_'], + groq: ['GROQ_'], + xai: ['XAI_'], }; - const prefixesToRemove = PROVIDER_ENV_PREFIXES[provider]; - if (prefixesToRemove) { - for (const key of Object.keys(env)) { - if (prefixesToRemove.some((prefix) => key.startsWith(prefix))) { - delete env[key]; - } + const ownPrefixes = PROVIDER_OWN_PREFIXES[provider] ?? []; + const allOtherPrefixes = Object.entries(PROVIDER_OWN_PREFIXES) + .filter(([key]) => key !== provider) + .flatMap(([, prefixes]) => prefixes); + for (const key of Object.keys(env)) { + if ( + allOtherPrefixes.some((prefix) => key.startsWith(prefix)) && + !ownPrefixes.some((prefix) => key.startsWith(prefix)) + ) { + delete env[key]; } } } diff --git a/packages/eval/package.json b/packages/eval/package.json index 5a33d4d6..725a4734 100644 --- a/packages/eval/package.json +++ b/packages/eval/package.json @@ -30,10 +30,7 @@ "fix": "biome check --write .", "test": "bun test" }, - "files": [ - "dist", - "README.md" - ], + "files": ["dist", "README.md"], "dependencies": { "zod": "^3.23.8" }