"""Tool system - Single source of truth for tool management.

Usage:
    from core.tools import ToolRegistry, get_tool_registry

    # Get global registry
    registry = get_tool_registry()

    # Register a tool
    registry.register(
        name="my.tool",
        handler=my_handler,
        description="Does something",
        parameters={...},
    )

    # Get a tool
    tool = registry.get("my.tool")

    # Call a tool: pass ToolArgs (Pydantic), get ToolOutput (Pydantic)
    # result = await registry.call("my.tool", ToolArgs.model_validate({"arg": "value"}), ctx)

    # Get schemas for LLM
    schemas = registry.get_schemas(["web.*", "workspace.*"])
"""

from core.tools.registry import (
    ToolDefinition,
    ToolHandler,
    ToolRegistry,
    get_tool_registry,
    set_tool_registry,
)

__all__ = [
    "ToolDefinition",
    "ToolHandler",
    "ToolRegistry",
    "get_tool_registry",
    "set_tool_registry",
]
