Initialize MCP tools once at start up instead of every time we auth. (#3483)

This commit is contained in:
Tommaso Sciortino
2025-07-07 15:01:59 -07:00
committed by GitHub
parent aa10ccba71
commit 357546a2aa
8 changed files with 76 additions and 99 deletions

View File

@@ -18,7 +18,6 @@ import {
import { SchemaValidator } from '../utils/schemaValidator.js';
import { makeRelative, shortenPath } from '../utils/paths.js';
import { isNodeError } from '../utils/errors.js';
import { GeminiClient } from '../core/client.js';
import { Config, ApprovalMode } from '../config/config.js';
import { ensureCorrectEdit } from '../utils/editCorrector.js';
import { DEFAULT_DIFF_OPTIONS } from './diffOptions.js';
@@ -72,15 +71,13 @@ export class EditTool
implements ModifiableTool<EditToolParams>
{
static readonly Name = 'replace';
private readonly config: Config;
private readonly rootDirectory: string;
private readonly client: GeminiClient;
/**
* Creates a new instance of the EditLogic
* @param rootDirectory Root directory to ground this tool in.
*/
constructor(config: Config) {
constructor(private readonly config: Config) {
super(
EditTool.Name,
'Edit',
@@ -123,9 +120,7 @@ Expectation for required parameters:
type: 'object',
},
);
this.config = config;
this.rootDirectory = path.resolve(this.config.getTargetDir());
this.client = config.getGeminiClient();
}
/**
@@ -239,7 +234,7 @@ Expectation for required parameters:
params.file_path,
currentContent,
params,
this.client,
this.config.getGeminiClient(),
abortSignal,
);
finalOldString = correctedEdit.params.old_string;