summaryrefslogtreecommitdiff
path: root/packages/core/src/config/config.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src/config/config.ts')
-rw-r--r--packages/core/src/config/config.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts
index 16485bc4..ad4f8ed9 100644
--- a/packages/core/src/config/config.ts
+++ b/packages/core/src/config/config.ts
@@ -47,6 +47,10 @@ import { shouldAttemptBrowserLaunch } from '../utils/browser.js';
import { MCPOAuthConfig } from '../mcp/oauth-provider.js';
import { IdeClient } from '../ide/ide-client.js';
import type { Content } from '@google/genai';
+import {
+ FileSystemService,
+ StandardFileSystemService,
+} from '../services/fileSystemService.js';
import { logCliConfiguration, logIdeConnection } from '../telemetry/loggers.js';
import { IdeConnectionEvent, IdeConnectionType } from '../telemetry/types.js';
@@ -204,6 +208,7 @@ export class Config {
private toolRegistry!: ToolRegistry;
private promptRegistry!: PromptRegistry;
private readonly sessionId: string;
+ private fileSystemService: FileSystemService;
private contentGeneratorConfig!: ContentGeneratorConfig;
private readonly embeddingModel: string;
private readonly sandbox: SandboxConfig | undefined;
@@ -268,6 +273,7 @@ export class Config {
this.sessionId = params.sessionId;
this.embeddingModel =
params.embeddingModel ?? DEFAULT_GEMINI_EMBEDDING_MODEL;
+ this.fileSystemService = new StandardFileSystemService();
this.sandbox = params.sandbox;
this.targetDir = path.resolve(params.targetDir);
this.workspaceContext = new WorkspaceContext(
@@ -700,6 +706,20 @@ export class Config {
return this.ideClient;
}
+ /**
+ * Get the current FileSystemService
+ */
+ getFileSystemService(): FileSystemService {
+ return this.fileSystemService;
+ }
+
+ /**
+ * Set a custom FileSystemService
+ */
+ setFileSystemService(fileSystemService: FileSystemService): void {
+ this.fileSystemService = fileSystemService;
+ }
+
getChatCompression(): ChatCompressionSettings | undefined {
return this.chatCompression;
}