diff options
| author | Jaana Dogan <[email protected]> | 2025-04-21 12:59:31 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-04-21 12:59:31 -0700 |
| commit | baf39042c8631d53dfac4e57148404749cde14b3 (patch) | |
| tree | 49fcfe890714b80d0f8bc5cace6869128ea25687 /packages/server/src/config/config.ts | |
| parent | 2571e071751681338518c2bf65f25ad32b2f71f4 (diff) | |
Remove duplicate CLI tools module, remove the global tool registry (#89)
Diffstat (limited to 'packages/server/src/config/config.ts')
| -rw-r--r-- | packages/server/src/config/config.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/packages/server/src/config/config.ts b/packages/server/src/config/config.ts index fad219b5..e842cd29 100644 --- a/packages/server/src/config/config.ts +++ b/packages/server/src/config/config.ts @@ -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; +} |
