"""
Aperion Flow - The Conductor.

Pipeline & Workflow Engine for the Aperion Ecosystem.
Orchestrates the symphony of agents with stateful execution and crash recovery.
"""

from aperion_flow.definitions.pipeline import (
    LLMAssistanceConfig,
    LLMAssistanceMode,
    Pipeline,
    PipelineStage,
    PipelineStatus,
    StageStatus,
)
from aperion_flow.engine.context import PipelineContext, Checkpoint
from aperion_flow.engine.executor import PipelineExecutor, ExecutionResult
from aperion_flow.engine.recovery import RecoveryConfig, RecoveryEngine, RecoveryStrategy

__version__ = "0.1.0"

# Compat layer — compat-only symbols from monolith dataclass API (EXT-005)
from aperion_flow.compat import (
    ErrorClassifier,
    FailureType,
    LLMAssistanceHelper,
    PipelineCategory,
    PipelineScheduler,
    ScheduleType,
    ScheduledTask,
    StrategicPipelineConfig,
    StrategicPipelineRegistry,
    get_recovery_engine,
    get_registry,
)

__all__ = [
    # Pipeline Models
    "Pipeline",
    "PipelineStage",
    "PipelineStatus",
    "StageStatus",
    "LLMAssistanceMode",
    "LLMAssistanceConfig",
    # Context
    "PipelineContext",
    "Checkpoint",
    # Executor
    "PipelineExecutor",
    "ExecutionResult",
    # Recovery
    "RecoveryConfig",
    "RecoveryEngine",
    "RecoveryStrategy",
    # Compat-only symbols (EXT-005)
    "PipelineScheduler",
    "ScheduleType",
    "ScheduledTask",
    "ErrorClassifier",
    "FailureType",
    "get_recovery_engine",
    "StrategicPipelineRegistry",
    "StrategicPipelineConfig",
    "PipelineCategory",
    "get_registry",
    "LLMAssistanceHelper",
]
