import pytest from aegis.core.tool_registry import ToolRegistry from aegis.core.tool_runner import ToolRunner class EchoTool: name = "echo" async def execute(self, **kwargs: object) -> object: return kwargs @pytest.mark.asyncio async def test_tool_runner_executes_registered_tool() -> None: registry = ToolRegistry([EchoTool()]) runner = ToolRunner(registry) result = await runner.execute( "echo", message="hello", value=42, ) assert result == { "message": "hello", "value": 42, } @pytest.mark.asyncio async def test_tool_runner_preserves_arguments() -> None: registry = ToolRegistry([EchoTool()]) runner = ToolRunner(registry) result = await runner.execute( "echo", alpha=1, beta=2, ) assert result == { "alpha": 1, "beta": 2, }