ai-harness / src /cli /commands /tools.ts
stevenkhan's picture
Initial AI Harness - production-grade model-agnostic CLI agent runtime
908562b verified
// ─── Tools Command ──────────────────────────────────────────────────────────
import { ToolRegistry } from '../../core/tools/index.js';
import { readFileTool, writeFileTool, listDirTool } from '../../tools/fs/index.js';
import { shellExecTool } from '../../tools/shell/index.js';
import { webFetchTool } from '../../tools/web/index.js';
export async function toolsCommand(): Promise<void> {
const registry = new ToolRegistry();
registry.register(readFileTool);
registry.register(writeFileTool);
registry.register(listDirTool);
registry.register(shellExecTool);
registry.register(webFetchTool);
console.log('\n\x1b[1mAvailable Tools:\x1b[0m\n');
for (const tool of registry.list()) {
const permColor = tool.permission === 'read' ? '32' : tool.permission === 'write' ? '33' : tool.permission === 'exec' ? '31' : tool.permission === 'network' ? '35' : '31';
console.log(` ${tool.renderer?.icon ?? 'πŸ”§'} \x1b[1m${tool.name}\x1b[0m \x1b[${permColor}m[${tool.permission}]\x1b[0m`);
console.log(` ${tool.description}`);
console.log(` \x1b[90mtimeout: ${tool.timeout}ms | retries: ${tool.retries} | side-effect: ${tool.sideEffect}\x1b[0m`);
console.log();
}
}