agentis
Version:
A TypeScript framework for building sophisticated multi-agent systems
54 lines (53 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ToolRegistry = void 0;
class ToolRegistry {
constructor(options = {}) {
this.tools = new Map();
this.toolChains = new Map();
if (options.defaultTools) {
options.defaultTools.forEach(tool => {
this.registerTool(tool);
});
}
}
registerTool(tool) {
this.tools.set(tool.name, tool);
}
getTool(name) {
return this.tools.get(name);
}
getTools() {
return Array.from(this.tools.values());
}
registerToolChain(name, tools) {
this.toolChains.set(name, tools);
}
async executeToolChain(chainName, input) {
const chain = this.toolChains.get(chainName);
if (!chain)
throw new Error(`Tool chain ${chainName} not found`);
const results = [];
const metadata = [];
for (const tool of chain) {
try {
const result = await tool.execute(input);
results.push(result);
metadata.push({
toolName: tool.name,
status: 'success',
timestamp: Date.now()
});
}
catch (error) {
metadata.push({
toolName: tool.name,
status: 'failed',
timestamp: Date.now()
});
}
}
return { results, metadata };
}
}
exports.ToolRegistry = ToolRegistry;