# app/src/trading/market_intelligence/runtime/exceptions.py

from __future__ import annotations


class RuntimeError(Exception):
    """Базовая ошибка Runtime Layer."""


class EngineNotRegisteredError(RuntimeError):
    """Engine не зарегистрирован в Runtime."""


class InvalidRuntimeContextError(RuntimeError):
    """Некорректный Runtime Context."""


class EngineExecutionError(RuntimeError):
    """Ошибка выполнения Engine внутри Runtime."""


class MissingEngineDependencyError(RuntimeError):
    """Обязательная зависимость Engine отсутствует."""


class CircularEngineDependencyError(RuntimeError):
    """Обнаружена циклическая зависимость Engine."""


class RuntimeValidationError(RuntimeError):
    """Базовая ошибка проверки Runtime."""


class EmptyRuntimeRegistryError(RuntimeValidationError):
    """Runtime Registry не содержит зарегистрированных Engine."""


class DuplicateEngineRegistrationError(RuntimeValidationError):
    """Обнаружена повторная регистрация Engine."""


class InvalidEngineMetadataError(RuntimeValidationError):
    """Некорректная metadata зарегистрированного Engine."""