mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-20 08:47:44 +00:00
Remove duplicate CLI tools module, remove the global tool registry (#89)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user