Add ExtensionLoader interface, use that on Config object (#12116)

This commit is contained in:
Jacob MacDonald
2025-10-28 09:04:30 -07:00
committed by GitHub
parent 25f27509c0
commit 1b302deeff
35 changed files with 619 additions and 505 deletions
@@ -11,7 +11,6 @@ import type {
GeminiChat,
ToolResult,
ToolCallConfirmationDetails,
GeminiCLIExtension,
FilterFilesOptions,
} from '@google/gemini-cli-core';
import {
@@ -63,7 +62,6 @@ export function resolveModel(model: string, isInFallbackMode: boolean): string {
export async function runZedIntegration(
config: Config,
settings: LoadedSettings,
extensions: GeminiCLIExtension[],
argv: CliArgs,
) {
const stdout = Writable.toWeb(process.stdout) as WritableStream;
@@ -76,8 +74,7 @@ export async function runZedIntegration(
console.debug = console.error;
new acp.AgentSideConnection(
(client: acp.Client) =>
new GeminiAgent(config, settings, extensions, argv, client),
(client: acp.Client) => new GeminiAgent(config, settings, argv, client),
stdout,
stdin,
);
@@ -90,7 +87,6 @@ class GeminiAgent {
constructor(
private config: Config,
private settings: LoadedSettings,
private extensions: GeminiCLIExtension[],
private argv: CliArgs,
private client: acp.Client,
) {}
@@ -204,13 +200,7 @@ class GeminiAgent {
const settings = { ...this.settings.merged, mcpServers: mergedMcpServers };
const config = await loadCliConfig(
settings,
this.extensions,
sessionId,
this.argv,
cwd,
);
const config = await loadCliConfig(settings, sessionId, this.argv, cwd);
await config.initialize();
return config;