summaryrefslogtreecommitdiff
path: root/packages/server/src/config/config.ts
diff options
context:
space:
mode:
authorJaana Dogan <[email protected]>2025-04-21 12:59:31 -0700
committerGitHub <[email protected]>2025-04-21 12:59:31 -0700
commitbaf39042c8631d53dfac4e57148404749cde14b3 (patch)
tree49fcfe890714b80d0f8bc5cace6869128ea25687 /packages/server/src/config/config.ts
parent2571e071751681338518c2bf65f25ad32b2f71f4 (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.ts36
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;
+}