from typing import Any, Callable from tools.github_tool import ( search_github_repo, search_github_repositories, ) from tools.pypi_tool import search_pypi from tools.stackoverflow_tool import search_stackoverflow ToolFunction = Callable[..., dict[str, Any]] TOOLS: dict[str, ToolFunction] = { "search_pypi": search_pypi, "search_github_repo": search_github_repo, "search_github_repositories": ( search_github_repositories ), "search_stackoverflow": search_stackoverflow, } def execute_tool( name: str, arguments: dict[str, Any], ) -> dict[str, Any]: """ Tool adını registry içerisinde bulur ve verilen argümanlarla çalıştırır. """ tool = TOOLS.get(name) if tool is None: available_tools = ", ".join( sorted(TOOLS.keys()) ) raise ValueError( f"'{name}' adlı tool kayıtlı değil. " f"Kullanılabilir tool'lar: {available_tools}" ) return tool(**arguments)