"""Exception hierarchy for the ai_mouse library.

Downstream consumers can catch the umbrella :class:`AiMouseError`
or the specific subclasses for finer control.
"""
from __future__ import annotations


class AiMouseError(Exception):
    """Base class for all ai_mouse errors."""


class ModelLoadError(AiMouseError):
    """Raised when ONNX weights / metadata cannot be loaded."""


class GenerationError(AiMouseError):
    """Raised when inference produces an invalid result (e.g. NaN)."""
