diff options
Diffstat (limited to 'packages/cli/src/zed-integration/zedIntegration.ts')
| -rw-r--r-- | packages/cli/src/zed-integration/zedIntegration.ts | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/packages/cli/src/zed-integration/zedIntegration.ts b/packages/cli/src/zed-integration/zedIntegration.ts index 1b5baa8a..6adaeb70 100644 --- a/packages/cli/src/zed-integration/zedIntegration.ts +++ b/packages/cli/src/zed-integration/zedIntegration.ts @@ -24,6 +24,7 @@ import { MCPServerConfig, } from '@google/gemini-cli-core'; import * as acp from './acp.js'; +import { AcpFileSystemService } from './fileSystemService.js'; import { Readable, Writable } from 'node:stream'; import { Content, Part, FunctionCall, PartListUnion } from '@google/genai'; import { LoadedSettings, SettingScope } from '../config/settings.js'; @@ -60,6 +61,7 @@ export async function runZedIntegration( class GeminiAgent { private sessions: Map<string, Session> = new Map(); + private clientCapabilities: acp.ClientCapabilities | undefined; constructor( private config: Config, @@ -70,8 +72,9 @@ class GeminiAgent { ) {} async initialize( - _args: acp.InitializeRequest, + args: acp.InitializeRequest, ): Promise<acp.InitializeResponse> { + this.clientCapabilities = args.clientCapabilities; const authMethods = [ { id: AuthType.LOGIN_WITH_GOOGLE, @@ -129,6 +132,16 @@ class GeminiAgent { throw acp.RequestError.authRequired(); } + if (this.clientCapabilities?.fs) { + const acpFileSystemService = new AcpFileSystemService( + this.client, + sessionId, + this.clientCapabilities.fs, + config.getFileSystemService(), + ); + config.setFileSystemService(acpFileSystemService); + } + const geminiClient = config.getGeminiClient(); const chat = await geminiClient.startChat(); const session = new Session(sessionId, chat, config, this.client); |
