| 3 | from typing import Callable |
| 4 | |
| 5 | class ToolRegistry: |
| 6 | def __init__(self): |
| 7 | self._handlers: dict[str, Callable] = {} |
| 8 | |
| 9 | def register(self, name: str, handler: Callable) -> "ToolRegistry": |
| 10 | if name in self._handlers: |
| 11 | raise ValueError(f"Tool already registered: {name}") |
| 12 | self._handlers[name] = handler |
| 13 | return self |
| 14 | |
| 15 | def execute(self, name: str, tool_input_json: str) -> str: |
| 16 | handler = self._handlers.get(name) |
| 17 | if handler is None: |
| 18 | raise KeyError(f"Unknown tool: {name}") |
| 19 | return handler(tool_input_json) |
| 20 | |
| 21 | def bash_tool(input_json:str): |
| 22 | data = json.loads(input_json) |
no outgoing calls
no test coverage detected