"""
Compat layer — dataclass-based pipeline API from the Aperion monolith (EXT-005).

This package mirrors ``stack.aperion.pipelines`` so that monolith code can
import from ``aperion_flow.compat`` and get the original @dataclass-based classes,
while ``aperion_flow`` (top-level) exports the newer Pydantic-based equivalents.

Usage (monolith shims)::

    from aperion_flow.compat import Pipeline, PipelineExecutor, PipelineScheduler
"""

from .executor import LLMAssistanceHelper, PipelineExecutionError, PipelineExecutor
from .pipeline import (
    LLMAssistanceConfig,
    LLMAssistanceMode,
    LLMAssistanceResult,
    Pipeline,
    PipelineContext,
    PipelineStage,
    PipelineStatus,
    StageStatus,
)
from .recovery import (
    ErrorClassifier,
    FailureType,
    RecoveryAttempt,
    RecoveryConfig,
    RecoveryEngine,
    RecoveryResult,
    RecoveryStrategy,
    get_recovery_engine,
)
from .scheduler import PipelineScheduler, ScheduleType, ScheduledTask
from .strategic_registry import (
    PipelineCategory,
    StrategicPipelineConfig,
    StrategicPipelineRegistry,
    get_registry,
)

__all__ = [
    # Pipeline core
    "Pipeline",
    "PipelineStage",
    "PipelineContext",
    "PipelineStatus",
    "StageStatus",
    # LLM assistance
    "LLMAssistanceConfig",
    "LLMAssistanceMode",
    "LLMAssistanceResult",
    "LLMAssistanceHelper",
    # Executor
    "PipelineExecutor",
    "PipelineExecutionError",
    # Recovery
    "RecoveryConfig",
    "RecoveryStrategy",
    "RecoveryResult",
    "RecoveryAttempt",
    "RecoveryEngine",
    "ErrorClassifier",
    "FailureType",
    "get_recovery_engine",
    # Scheduler
    "PipelineScheduler",
    "ScheduleType",
    "ScheduledTask",
    # Strategic registry
    "StrategicPipelineRegistry",
    "StrategicPipelineConfig",
    "PipelineCategory",
    "get_registry",
]
