Spaces:
Sleeping
Sleeping
File size: 1,041 Bytes
3d46076 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | from typing import Dict, List, Any, Optional
from src.tools.base import ToolConnector
class ToolRegistry:
def __init__(self):
self._connectors: Dict[str, ToolConnector] = {}
def register(self, connector: ToolConnector):
self._connectors[connector.name] = connector
def get(self, name: str) -> Optional[ToolConnector]:
return self._connectors.get(name)
def list_tools(self) -> List[Dict[str, Any]]:
return [
{
"name": c.name,
"description": c.description,
"input_schema": c.input_schema,
"output_schema": c.output_schema,
"execution_count": len(c.execution_history)
}
for c in self._connectors.values()
]
def execute(self, tool_name: str, params: Dict[str, Any]) -> Dict[str, Any]:
connector = self.get(tool_name)
if not connector:
raise KeyError(f"Tool connector '{tool_name}' not registered!")
return connector.run(params)
|