summaryrefslogtreecommitdiff
path: root/packages/core/src/config
diff options
context:
space:
mode:
authorTommaso Sciortino <[email protected]>2025-06-07 16:17:27 -0700
committerGitHub <[email protected]>2025-06-07 16:17:27 -0700
commit389907ce6537bd8caeb10b3d4dacaa8ece059500 (patch)
tree71c843ca52176dbc69e46f8df675f0b91fe2e16b /packages/core/src/config
parente95a6086fc89191888f2a4e41a3c875273311d96 (diff)
Introduce ContentGeneratorConfig (#826)
Diffstat (limited to 'packages/core/src/config')
-rw-r--r--packages/core/src/config/config.test.ts11
-rw-r--r--packages/core/src/config/config.ts31
2 files changed, 12 insertions, 30 deletions
diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts
index 0ce8f5ee..1c1996bf 100644
--- a/packages/core/src/config/config.test.ts
+++ b/packages/core/src/config/config.test.ts
@@ -50,15 +50,17 @@ describe('Server Config (config.ts)', () => {
const TELEMETRY = false;
const EMBEDDING_MODEL = 'gemini-embedding';
const baseParams: ConfigParameters = {
- apiKey: API_KEY,
- model: MODEL,
+ contentGeneratorConfig: {
+ apiKey: API_KEY,
+ model: MODEL,
+ userAgent: USER_AGENT,
+ },
embeddingModel: EMBEDDING_MODEL,
sandbox: SANDBOX,
targetDir: TARGET_DIR,
debugMode: DEBUG_MODE,
question: QUESTION,
fullContext: FULL_CONTEXT,
- userAgent: USER_AGENT,
userMemory: USER_MEMORY,
telemetry: TELEMETRY,
};
@@ -73,10 +75,7 @@ describe('Server Config (config.ts)', () => {
expect(config.getUserMemory()).toBe(USER_MEMORY);
// Verify other getters if needed
- expect(config.getApiKey()).toBe(API_KEY);
- expect(config.getModel()).toBe(MODEL);
expect(config.getTargetDir()).toBe(path.resolve(TARGET_DIR)); // Check resolved path
- expect(config.getUserAgent()).toBe(USER_AGENT);
});
it('Config constructor should default userMemory to empty string if not provided', () => {
diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts
index 7d25c1bb..b8f4d41f 100644
--- a/packages/core/src/config/config.ts
+++ b/packages/core/src/config/config.ts
@@ -9,6 +9,7 @@ import * as fs from 'node:fs';
import * as path from 'node:path';
import process from 'node:process';
import * as os from 'node:os';
+import { ContentGeneratorConfig } from '../core/contentGenerator.js';
import { ToolRegistry } from '../tools/tool-registry.js';
import { CodeParserTool } from '../tools/code_parser.js'; // Added CodeParserTool
import { LSTool } from '../tools/ls.js';
@@ -17,7 +18,6 @@ import { GrepTool } from '../tools/grep.js';
import { GlobTool } from '../tools/glob.js';
import { EditTool } from '../tools/edit.js';
import { ShellTool } from '../tools/shell.js';
-
import { WebFetchTool } from '../tools/web-fetch.js';
import { ReadManyFilesTool } from '../tools/read-many-files.js';
import { MemoryTool, setGeminiMdFilename } from '../tools/memoryTool.js';
@@ -55,8 +55,7 @@ export class MCPServerConfig {
}
export interface ConfigParameters {
- apiKey: string;
- model: string;
+ contentGeneratorConfig: ContentGeneratorConfig;
embeddingModel: string;
sandbox: boolean | string;
targetDir: string;
@@ -68,11 +67,9 @@ export interface ConfigParameters {
toolCallCommand?: string;
mcpServerCommand?: string;
mcpServers?: Record<string, MCPServerConfig>;
- userAgent: string;
userMemory?: string;
geminiMdFileCount?: number;
approvalMode?: ApprovalMode;
- vertexai?: boolean;
showMemoryUsage?: boolean;
contextFileName?: string;
geminiIgnorePatterns?: string[];
@@ -85,8 +82,7 @@ export interface ConfigParameters {
export class Config {
private toolRegistry: Promise<ToolRegistry>;
- private readonly apiKey: string;
- private readonly model: string;
+ private readonly contentGeneratorConfig: ContentGeneratorConfig;
private readonly embeddingModel: string;
private readonly sandbox: boolean | string;
private readonly targetDir: string;
@@ -98,11 +94,9 @@ export class Config {
private readonly toolCallCommand: string | undefined;
private readonly mcpServerCommand: string | undefined;
private readonly mcpServers: Record<string, MCPServerConfig> | undefined;
- private readonly userAgent: string;
private userMemory: string;
private geminiMdFileCount: number;
private approvalMode: ApprovalMode;
- private readonly vertexai: boolean | undefined;
private readonly showMemoryUsage: boolean;
private readonly accessibility: AccessibilitySettings;
private readonly telemetry: boolean;
@@ -115,8 +109,7 @@ export class Config {
private fileDiscoveryService: FileDiscoveryService | null = null;
constructor(params: ConfigParameters) {
- this.apiKey = params.apiKey;
- this.model = params.model;
+ this.contentGeneratorConfig = params.contentGeneratorConfig;
this.embeddingModel = params.embeddingModel;
this.sandbox = params.sandbox;
this.targetDir = path.resolve(params.targetDir);
@@ -128,11 +121,9 @@ export class Config {
this.toolCallCommand = params.toolCallCommand;
this.mcpServerCommand = params.mcpServerCommand;
this.mcpServers = params.mcpServers;
- this.userAgent = params.userAgent ?? 'GeminiCLI/unknown';
this.userMemory = params.userMemory ?? '';
this.geminiMdFileCount = params.geminiMdFileCount ?? 0;
this.approvalMode = params.approvalMode ?? ApprovalMode.DEFAULT;
- this.vertexai = params.vertexai;
this.showMemoryUsage = params.showMemoryUsage ?? false;
this.accessibility = params.accessibility ?? {};
this.telemetry = params.telemetry ?? false;
@@ -160,12 +151,12 @@ export class Config {
}
}
- getApiKey(): string {
- return this.apiKey;
+ getContentGeneratorConfig(): ContentGeneratorConfig {
+ return this.contentGeneratorConfig;
}
getModel(): string {
- return this.model;
+ return this.contentGeneratorConfig.model;
}
getEmbeddingModel(): string {
@@ -215,10 +206,6 @@ export class Config {
return this.mcpServers;
}
- getUserAgent(): string {
- return this.userAgent;
- }
-
getUserMemory(): string {
return this.userMemory;
}
@@ -243,10 +230,6 @@ export class Config {
this.approvalMode = mode;
}
- getVertexAI(): boolean | undefined {
- return this.vertexai;
- }
-
getShowMemoryUsage(): boolean {
return this.showMemoryUsage;
}