""" Models - Pydantic proxies + Metadata alias only. Per module_taxonomy_refactor_20260627 Phase 5 (reduce to Pydantic proxies) and post_module_taxonomy_de_cruft_20260627 Phases 2-4 (de-cruft removals). All dataclass definitions, DEFAULT_TOOL_CATEGORIES, the __getattr__ shim, and the Pydantic proxies have been moved out. Remaining content: - The legacy 'Metadata = TrackMetadata' alias for tests that import 'from src.models import Metadata' expecting the dataclass - The PROVIDERS lazy __getattr__ (loads from src.ai_client on first access; required to break a startup-speedup circular import) """ from __future__ import annotations from typing import Any from src.mma import TrackMetadata # Legacy alias: the original models.py had a TrackMetadata dataclass named # 'Metadata' (before Phase 3a moved it to src.mma.py). Existing tests + # consumers use 'from src.models import Metadata' expecting the dataclass. # We re-export the dataclass here so the legacy import path resolves to # the same object. The Metadata TYPE ALIAS (from src.type_aliases) is the # boundary wire type; legacy consumers wanting the dataclass should # migrate to 'from src.mma import TrackMetadata'. Metadata = TrackMetadata # noqa: F401 — legacy class name re-export def __getattr__(name: str) -> Any: if name == "PROVIDERS": from src import ai_client return ai_client.PROVIDERS raise AttributeError(f"module {__name__!r} has no attribute {name!r}")