From e0f4f428fc6bef4f81db379ce1e0368004079c76 Mon Sep 17 00:00:00 2001 From: Louis Jimenez Date: Wed, 11 Jun 2025 15:33:09 -0400 Subject: Restore Checkpoint Feature (#934) --- packages/core/src/config/config.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'packages/core/src/config/config.ts') diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index d42fbbec..297178fd 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -25,6 +25,7 @@ import { WebSearchTool } from '../tools/web-search.js'; import { GeminiClient } from '../core/client.js'; import { GEMINI_CONFIG_DIR as GEMINI_DIR } from '../tools/memoryTool.js'; import { FileDiscoveryService } from '../services/fileDiscoveryService.js'; +import { GitService } from '../services/gitService.js'; import { initializeTelemetry } from '../telemetry/index.js'; export enum ApprovalMode { @@ -80,6 +81,7 @@ export interface ConfigParameters { fileFilteringRespectGitIgnore?: boolean; fileFilteringAllowBuildArtifacts?: boolean; enableModifyWithExternalEditors?: boolean; + checkpoint?: boolean; } export class Config { @@ -111,6 +113,8 @@ export class Config { private readonly fileFilteringAllowBuildArtifacts: boolean; private readonly enableModifyWithExternalEditors: boolean; private fileDiscoveryService: FileDiscoveryService | null = null; + private gitService: GitService | undefined = undefined; + private readonly checkpoint: boolean; constructor(params: ConfigParameters) { this.sessionId = params.sessionId; @@ -142,6 +146,7 @@ export class Config { params.fileFilteringAllowBuildArtifacts ?? false; this.enableModifyWithExternalEditors = params.enableModifyWithExternalEditors ?? false; + this.checkpoint = params.checkpoint ?? false; if (params.contextFileName) { setGeminiMdFilename(params.contextFileName); @@ -182,6 +187,10 @@ export class Config { return this.targetDir; } + getProjectRoot(): string { + return this.targetDir; + } + async getToolRegistry(): Promise { return this.toolRegistry; } @@ -265,6 +274,10 @@ export class Config { return this.geminiClient; } + getGeminiDir(): string { + return path.join(this.targetDir, GEMINI_DIR); + } + getGeminiIgnorePatterns(): string[] { return this.geminiIgnorePatterns; } @@ -281,6 +294,10 @@ export class Config { return this.enableModifyWithExternalEditors; } + getCheckpointEnabled(): boolean { + return this.checkpoint; + } + async getFileService(): Promise { if (!this.fileDiscoveryService) { this.fileDiscoveryService = new FileDiscoveryService(this.targetDir); @@ -291,6 +308,14 @@ export class Config { } return this.fileDiscoveryService; } + + async getGitService(): Promise { + if (!this.gitService) { + this.gitService = new GitService(this.targetDir); + await this.gitService.initialize(); + } + return this.gitService; + } } function findEnvFile(startDir: string): string | null { -- cgit v1.2.3