Files
Void-Homelab/lib/ai/agent/registry.js
2026-06-01 18:10:11 +10:00

18 lines
623 B
JavaScript

export function createRegistry() {
const tools = new Map();
return {
registerTool(def) {
if (!def?.name) throw new Error('tool def needs a name');
if (tools.has(def.name)) throw new Error(`tool "${def.name}" already registered`);
tools.set(def.name, def);
},
getTool(name) { return tools.get(name); },
listTools() { return [...tools.values()]; },
// Anthropic tool-use schema — handlers are intentionally stripped.
toAnthropicTools() {
return [...tools.values()].map(({ name, description, input_schema }) =>
({ name, description, input_schema }));
}
};
}