Format: text/x-python
⬇ Download File (887 B)
   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()