"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ALL_TOOLS = void 0;
exports.registerTool = registerTool;
exports.executeTool = executeTool;
/** Live registry — grows as domain files are imported. */
const _registry = new Map();
/**
 * Mutable array kept in sync with the registry.
 * Used by agents.ts to pick tool subsets by name (backwards-compatible with ALL_TOOLS).
 */
exports.ALL_TOOLS = [];
function registerTool(tool) {
    _registry.set(tool.name, tool);
    exports.ALL_TOOLS.push(tool);
}
/** Dispatch a tool call by name — O(1) map lookup, no switch needed. */
async function executeTool(name, args, ctx) {
    const tool = _registry.get(name);
    if (!tool)
        return { error: `Unknown tool: ${name}` };
    return tool.handler(args, ctx);
}
