"""
MCP处理器模块
支持依赖注入
"""
from typing import TYPE_CHECKING, Optional

from .tools_handler import MCPToolsHandler
from .resources_handler import MCPResourcesHandler
from .prompts_handler import MCPPromptsHandler

if TYPE_CHECKING:
    from src.services import RAGService


class MCPHandlers:
    """
    MCP处理器集合
    
    支持依赖注入，可以接受外部传入的 RAGService 实例，
    或从依赖注入容器自动获取。
    """
    
    def __init__(self, rag_service: Optional["RAGService"] = None):
        """
        初始化 MCP 处理器
        
        Args:
            rag_service: RAGService 实例（可选）。
                        如果未提供，将从依赖注入容器获取。
        """
        # 如果未提供服务，从容器获取
        if rag_service is None:
            from src.di import get_container
            container = get_container()
            rag_service = container.get("rag_service")
        
        # 创建处理器，共享同一个服务实例
        self.tools = MCPToolsHandler(rag_service=rag_service)
        self.resources = MCPResourcesHandler(rag_service=rag_service)
        self.prompts = MCPPromptsHandler()


__all__ = ["MCPHandlers", "MCPToolsHandler", "MCPResourcesHandler", "MCPPromptsHandler"]
