"""
Retrieval Strategy Module for AI Service.
[AC-AISVC-RES-01~15] 策略化检索与嵌入模块。

核心组件：
- RetrievalStrategyConfig: 策略配置模型
- BasePipeline: Pipeline 抽象基类
- DefaultPipeline: 默认策略（复用现有逻辑）
- EnhancedPipeline: 增强策略（新端到端流程）
- MetadataInferenceService: 元数据推断统一入口
- StrategyRouter: 策略路由器
- ModeRouter: 模式路由器（direct/react/auto）
- RollbackManager: 回退管理器
"""

from app.services.retrieval.strategy.config import (
    FilterMode,
    GrayscaleConfig,
    HybridRetrievalConfig,
    MetadataInferenceConfig,
    ModeRouterConfig,
    PipelineConfig,
    RerankerConfig,
    RetrievalStrategyConfig,
    RuntimeMode,
    StrategyType,
    get_strategy_config,
    set_strategy_config,
)
from app.services.retrieval.strategy.default_pipeline import (
    DefaultPipeline,
    get_default_pipeline,
)
from app.services.retrieval.strategy.enhanced_pipeline import (
    EnhancedPipeline,
    get_enhanced_pipeline,
)
from app.services.retrieval.strategy.metadata_inference import (
    InferenceContext,
    InferenceResult,
    MetadataInferenceService,
)
from app.services.retrieval.strategy.mode_router import (
    ModeDecision,
    ModeRouter,
    get_mode_router,
)
from app.services.retrieval.strategy.pipeline_base import (
    BasePipeline,
    MetadataFilterResult,
    PipelineContext,
    PipelineResult,
)
from app.services.retrieval.strategy.rollback_manager import (
    AuditLog,
    RollbackManager,
    RollbackResult,
    RollbackTrigger,
    get_rollback_manager,
)
from app.services.retrieval.strategy.strategy_router import (
    RoutingDecision,
    StrategyRouter,
    get_strategy_router,
)

__all__ = [
    "BasePipeline",
    "PipelineContext",
    "PipelineResult",
    "MetadataFilterResult",
    "DefaultPipeline",
    "get_default_pipeline",
    "EnhancedPipeline",
    "get_enhanced_pipeline",
    "RetrievalStrategyConfig",
    "GrayscaleConfig",
    "PipelineConfig",
    "RerankerConfig",
    "ModeRouterConfig",
    "HybridRetrievalConfig",
    "MetadataInferenceConfig",
    "StrategyType",
    "FilterMode",
    "RuntimeMode",
    "get_strategy_config",
    "set_strategy_config",
    "MetadataInferenceService",
    "InferenceContext",
    "InferenceResult",
    "StrategyRouter",
    "RoutingDecision",
    "get_strategy_router",
    "ModeRouter",
    "ModeDecision",
    "get_mode_router",
    "RollbackManager",
    "RollbackResult",
    "RollbackTrigger",
    "AuditLog",
    "get_rollback_manager",
]
