Remove duplicate CLI tools module, remove the global tool registry (#89)

This commit is contained in:
Jaana Dogan
2025-04-21 12:59:31 -07:00
committed by GitHub
parent 2571e07175
commit baf39042c8
11 changed files with 46 additions and 148 deletions

View File

@@ -8,6 +8,15 @@ import * as dotenv from 'dotenv';
import * as fs from 'node:fs';
import * as path from 'node:path';
import process from 'node:process';
import { ToolRegistry } from '../tools/tool-registry.js';
import { LSTool } from '../tools/ls.js';
import { ReadFileTool } from '../tools/read-file.js';
import { GrepTool } from '../tools/grep.js';
import { GlobTool } from '../tools/glob.js';
import { EditTool } from '../tools/edit.js';
import { TerminalTool } from '../tools/terminal.js';
import { WriteFileTool } from '../tools/write-file.js';
import { WebFetchTool } from '../tools/web-fetch.js';
const DEFAULT_PASSTHROUGH_COMMANDS = ['ls', 'git', 'npm'];
@@ -15,6 +24,7 @@ export class Config {
private apiKey: string;
private model: string;
private targetDir: string;
private toolRegistry: ToolRegistry;
private debugMode: boolean;
private passthroughCommands: string[];
@@ -31,6 +41,8 @@ export class Config {
this.debugMode = debugMode;
this.passthroughCommands =
passthroughCommands || DEFAULT_PASSTHROUGH_COMMANDS;
this.toolRegistry = createToolRegistry(this);
}
getApiKey(): string {
@@ -45,6 +57,10 @@ export class Config {
return this.targetDir;
}
getToolRegistry(): ToolRegistry {
return this.toolRegistry;
}
getDebugMode(): boolean {
return this.debugMode;
}
@@ -92,3 +108,23 @@ export function createServerConfig(
passthroughCommands,
);
}
function createToolRegistry(config: Config): ToolRegistry {
const registry = new ToolRegistry();
const targetDir = config.getTargetDir();
const tools = [
new LSTool(targetDir),
new ReadFileTool(targetDir),
new GrepTool(targetDir),
new GlobTool(targetDir),
new EditTool(targetDir),
new TerminalTool(targetDir, config),
new WriteFileTool(targetDir),
new WebFetchTool(), // Note: WebFetchTool takes no arguments
];
for (const tool of tools) {
registry.registerTool(tool);
}
return registry;
}