1 from typing import Callable, Dict, Any 2 from .tool_executor import available_functions 3 from .tool_definitions import tool_definitions 4 5 class ToolRegistry: 6 def __init__(self): 7 self.tools: Dict[str, Callable] = {} 8 self._register_core_tools() 9 10 def _register_core_tools(self): 11 for tool in tool_definitions: 12 func = available_functions.get(tool['name']) 13 self.register(tool['name'], func) 14 15 def register(self, name: str, method: Callable) -> None: 16 if name in self.tools: 17 raise ValueError(f"Tool {name} already registered") 18 self.tools[name] = method 19 20 def get_method(self, name: str) -> Callable: 21 if name not in self.tools: 22 raise KeyError(f"Tool {name} not found in registry") 23 return self.tools[name] 24 25 # Singleton instance 26 tool_registry = ToolRegistry()