diff options
| author | Conrad Irwin <[email protected]> | 2025-08-18 16:29:45 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-08-18 22:29:45 +0000 |
| commit | fb3ceb0da4e2cd636013c2c36a9c0016c01aa47f (patch) | |
| tree | 7aa43846dd88bd5acdb8898b0ccd2e685f2d5ece /packages/cli/src/zed-integration/zedIntegration.ts | |
| parent | 4394b6ab4fc86637b07fcd26b9a790c627d1e065 (diff) | |
Read and write files through Zed (#6169)
Co-authored-by: Agus Zubiaga <[email protected]>
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); |
