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

from __future__ import annotations

from src.trading.market_intelligence.common.models import (
    EngineContext,
    EngineRegistration,
    EngineResult,
)


class RuntimeRunner:
    """Исполнитель одного зарегистрированного Engine."""

    async def run(
        self,
        registration: EngineRegistration,
        context: EngineContext,
    ) -> EngineResult:
        """Выполнить один зарегистрированный Engine."""
        engine = registration.engine_type()

        return await engine.analyze(context)