"""
Custom exceptions for ModelOsmosis.
"""


class OsmosisError(Exception):
    """Base exception for all ModelOsmosis errors."""


class ExtractionError(OsmosisError):
    """Raised when knowledge extraction from a source model fails."""


class AbsorptionError(OsmosisError):
    """Raised when knowledge injection into a target model fails."""


class GrowthError(OsmosisError):
    """Raised when dynamic architecture growth fails."""


class IncompatibleModelError(OsmosisError):
    """Raised when source and target models are fundamentally incompatible
    in a way that cannot be resolved by the framework."""


class ObfuscationError(OsmosisError):
    """Raised when weight obfuscation fails."""


class VerificationError(OsmosisError):
    """Raised when obfuscated model fails functional equivalence verification."""
