UNPKG

pyb-ts

Version:

PYB-CLI - Minimal AI Agent with multi-model support and CLI interface

65 lines (64 loc) 2.48 kB
import { TaskTool } from "./tools/TaskTool/TaskTool.js"; import { ArchitectTool } from "./tools/ArchitectTool/ArchitectTool.js"; import { BashTool } from "./tools/BashTool/BashTool.js"; import { AskExpertModelTool } from "./tools/AskExpertModelTool/AskExpertModelTool.js"; import { FileEditTool } from "./tools/FileEditTool/FileEditTool.js"; import { FileReadTool } from "./tools/FileReadTool/FileReadTool.js"; import { FileWriteTool } from "./tools/FileWriteTool/FileWriteTool.js"; import { GlobTool } from "./tools/GlobTool/GlobTool.js"; import { GrepTool } from "./tools/GrepTool/GrepTool.js"; import { LSTool } from "./tools/lsTool/lsTool.js"; import { MemoryReadTool } from "./tools/MemoryReadTool/MemoryReadTool.js"; import { MemoryWriteTool } from "./tools/MemoryWriteTool/MemoryWriteTool.js"; import { MultiEditTool } from "./tools/MultiEditTool/MultiEditTool.js"; import { NotebookEditTool } from "./tools/NotebookEditTool/NotebookEditTool.js"; import { NotebookReadTool } from "./tools/NotebookReadTool/NotebookReadTool.js"; import { ThinkTool } from "./tools/ThinkTool/ThinkTool.js"; import { TodoWriteTool } from "./tools/TodoWriteTool/TodoWriteTool.js"; import { WebSearchTool } from "./tools/WebSearchTool/WebSearchTool.js"; import { URLFetcherTool } from "./tools/URLFetcherTool/URLFetcherTool.js"; import { getMCPTools } from "./services/mcpClient.js"; import { memoize } from "lodash-es"; const ANT_ONLY_TOOLS = [MemoryReadTool, MemoryWriteTool]; const getAllTools = () => { return [ TaskTool, AskExpertModelTool, BashTool, GlobTool, GrepTool, LSTool, FileReadTool, FileEditTool, MultiEditTool, FileWriteTool, NotebookReadTool, NotebookEditTool, ThinkTool, TodoWriteTool, WebSearchTool, URLFetcherTool, ...ANT_ONLY_TOOLS ]; }; const getTools = memoize( async (enableArchitect) => { const tools = [...getAllTools(), ...await getMCPTools()]; if (enableArchitect) { tools.push(ArchitectTool); } const isEnabled = await Promise.all(tools.map((tool) => tool.isEnabled())); return tools.filter((_, i) => isEnabled[i]); } ); const getReadOnlyTools = memoize(async () => { const tools = getAllTools().filter((tool) => tool.isReadOnly()); const isEnabled = await Promise.all(tools.map((tool) => tool.isEnabled())); return tools.filter((_, index) => isEnabled[index]); }); export { getAllTools, getReadOnlyTools, getTools }; //# sourceMappingURL=tools.js.map