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.ts60
1 files changed, 2 insertions, 58 deletions
diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts
index 26878646..6e52c6e2 100644
--- a/packages/cli/src/config/config.ts
+++ b/packages/cli/src/config/config.ts
@@ -13,7 +13,6 @@ import {
setGeminiMdFilename as setServerGeminiMdFilename,
getCurrentGeminiMdFilename,
ApprovalMode,
- ContentGeneratorConfig,
GEMINI_CONFIG_DIR as GEMINI_DIR,
DEFAULT_GEMINI_MODEL,
DEFAULT_GEMINI_EMBEDDING_MODEL,
@@ -21,7 +20,7 @@ import {
TelemetryTarget,
} from '@gemini-cli/core';
import { Settings } from './settings.js';
-import { getEffectiveModel } from '../utils/modelCheck.js';
+
import { Extension } from './extension.js';
import { getCliVersion } from '../utils/version.js';
import * as dotenv from 'dotenv';
@@ -194,15 +193,12 @@ export async function loadCliConfig(
extensionContextFilePaths,
);
- const contentGeneratorConfig = await createContentGeneratorConfig(argv);
-
const mcpServers = mergeMcpServers(settings, extensions);
const sandboxConfig = await loadSandboxConfig(settings, argv);
return new Config({
sessionId,
- contentGeneratorConfig,
embeddingModel: DEFAULT_GEMINI_EMBEDDING_MODEL,
sandbox: sandboxConfig,
targetDir: process.cwd(),
@@ -242,6 +238,7 @@ export async function loadCliConfig(
cwd: process.cwd(),
fileDiscoveryService: fileService,
bugCommand: settings.bugCommand,
+ model: argv.model!,
});
}
@@ -262,59 +259,6 @@ function mergeMcpServers(settings: Settings, extensions: Extension[]) {
}
return mcpServers;
}
-
-async function createContentGeneratorConfig(
- argv: CliArgs,
-): Promise<ContentGeneratorConfig> {
- const geminiApiKey = process.env.GEMINI_API_KEY;
- const googleApiKey = process.env.GOOGLE_API_KEY;
- const googleCloudProject = process.env.GOOGLE_CLOUD_PROJECT;
- const googleCloudLocation = process.env.GOOGLE_CLOUD_LOCATION;
-
- const hasCodeAssist = process.env.GEMINI_CODE_ASSIST === 'true';
- const hasGeminiApiKey = !!geminiApiKey;
- const hasGoogleApiKey = !!googleApiKey;
- const hasVertexProjectLocationConfig =
- !!googleCloudProject && !!googleCloudLocation;
-
- if (hasGeminiApiKey && hasGoogleApiKey) {
- logger.warn(
- 'Both GEMINI_API_KEY and GOOGLE_API_KEY are set. Using GOOGLE_API_KEY.',
- );
- }
- if (
- !hasCodeAssist &&
- !hasGeminiApiKey &&
- !hasGoogleApiKey &&
- !hasVertexProjectLocationConfig
- ) {
- logger.error(
- 'No valid API authentication configuration found. Please set ONE of the following combinations in your environment variables or .env file:\n' +
- '1. GEMINI_CODE_ASSIST=true (for Code Assist access).\n' +
- '2. GEMINI_API_KEY (for Gemini API access).\n' +
- '3. GOOGLE_API_KEY (for Gemini API or Vertex AI Express Mode access).\n' +
- '4. GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION (for Vertex AI access).\n\n' +
- 'For Gemini API keys, visit: https://ai.google.dev/gemini-api/docs/api-key\n' +
- 'For Vertex AI authentication, visit: https://cloud.google.com/vertex-ai/docs/authentication\n' +
- 'The GOOGLE_GENAI_USE_VERTEXAI environment variable can also be set to true/false to influence service selection when ambiguity exists.',
- );
- process.exit(1);
- }
-
- const config: ContentGeneratorConfig = {
- model: argv.model || DEFAULT_GEMINI_MODEL,
- apiKey: googleApiKey || geminiApiKey || '',
- vertexai: hasGeminiApiKey ? false : undefined,
- codeAssist: hasCodeAssist,
- };
-
- if (config.apiKey) {
- config.model = await getEffectiveModel(config.apiKey, config.model);
- }
-
- return config;
-}
-
function findEnvFile(startDir: string): string | null {
let currentDir = path.resolve(startDir);
while (true) {