Pull contentGenerator out of GeminiClient and into Config. (#7825)

This commit is contained in:
Tommaso Sciortino
2025-09-07 13:00:03 -07:00
committed by GitHub
parent d33defde68
commit 6e26c88c2c
16 changed files with 359 additions and 781 deletions
+2 -6
View File
@@ -125,9 +125,7 @@ export class CoderAgentExecutor implements AgentExecutor {
eventBus,
);
runtimeTask.taskState = persistedState._taskState;
await runtimeTask.geminiClient.initialize(
runtimeTask.config.getContentGeneratorConfig(),
);
await runtimeTask.geminiClient.initialize();
const wrapper = new TaskWrapper(runtimeTask, agentSettings);
this.tasks.set(sdkTask.id, wrapper);
@@ -144,9 +142,7 @@ export class CoderAgentExecutor implements AgentExecutor {
const agentSettings = agentSettingsInput || ({} as AgentSettings);
const config = await this.getConfig(agentSettings, taskId);
const runtimeTask = await Task.create(taskId, contextId, config, eventBus);
await runtimeTask.geminiClient.initialize(
runtimeTask.config.getContentGeneratorConfig(),
);
await runtimeTask.geminiClient.initialize();
const wrapper = new TaskWrapper(runtimeTask, agentSettings);
this.tasks.set(taskId, wrapper);
+3 -3
View File
@@ -6,7 +6,7 @@
import {
CoreToolScheduler,
GeminiClient,
type GeminiClient,
GeminiEventType,
ToolConfirmationOutcome,
ApprovalMode,
@@ -82,7 +82,7 @@ export class Task {
this.contextId = contextId;
this.config = config;
this.scheduler = this.createScheduler();
this.geminiClient = new GeminiClient(this.config);
this.geminiClient = this.config.getGeminiClient();
this.pendingToolConfirmationDetails = new Map();
this.taskState = 'submitted';
this.eventBus = eventBus;
@@ -227,7 +227,7 @@ export class Task {
} = {
coderAgent: coderAgentMessage,
model: this.config.getModel(),
userTier: this.geminiClient.getUserTier(),
userTier: this.config.getUserTier(),
};
if (metadataError) {
@@ -13,6 +13,7 @@ import {
ApprovalMode,
DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
GeminiClient,
} from '@google/gemini-cli-core';
import type { Config, Storage } from '@google/gemini-cli-core';
import { expect, vi } from 'vitest';
@@ -38,7 +39,6 @@ export function createMockConfig(
getTruncateToolOutputThreshold: () =>
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
getTruncateToolOutputLines: () => DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
getGeminiClient: vi.fn(),
getDebugMode: vi.fn().mockReturnValue(false),
getContentGeneratorConfig: vi.fn().mockReturnValue({ model: 'gemini-pro' }),
getModel: vi.fn().mockReturnValue('gemini-pro'),
@@ -49,8 +49,13 @@ export function createMockConfig(
getHistory: vi.fn().mockReturnValue([]),
getEmbeddingModel: vi.fn().mockReturnValue('text-embedding-004'),
getSessionId: vi.fn().mockReturnValue('test-session-id'),
getUserTier: vi.fn(),
...overrides,
};
} as unknown as Config;
mockConfig.getGeminiClient = vi
.fn()
.mockReturnValue(new GeminiClient(mockConfig));
return mockConfig;
}