pyb-ts
Version:
PYB-CLI - Minimal AI Agent with multi-model support and CLI interface
65 lines (64 loc) • 2.48 kB
JavaScript
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