"""Public facade for the AI tool layer. Importing this module registers all built-in tools (via ``backend.tools.service``) and re-exports the public API. Consumers (agent loop, MCP server, tests) should import from here rather than from individual submodules. Note: ObsiGate uses implicit namespace packages (no tracked ``__init__.py``, which ``.gitignore`` excludes via ``_*.py``), hence this explicit facade. """ from backend.tools import service as _service # noqa: F401 (registers tools) from backend.tools.context import ( ToolConfirmationRequired, ToolContext, ToolError, ToolMode, ToolNotFoundError, ToolPermissionError, ToolRisk, ToolScope, ToolValidationError, resolve_safe_path, ) from backend.tools.registry import ( ToolSpec, call_tool, get_tool, get_tool_schemas, list_tools, tool, ) from backend.tools.schemas import ToolResult __all__ = [ "ToolConfirmationRequired", "ToolContext", "ToolError", "ToolMode", "ToolNotFoundError", "ToolPermissionError", "ToolResult", "ToolRisk", "ToolScope", "ToolSpec", "ToolValidationError", "call_tool", "get_tool", "get_tool_schemas", "list_tools", "resolve_safe_path", "tool", ]