__all__ = ["TextChunker", "extract_query_terms", "RetrievalPlan", "RagSessionRetriever"]


def __getattr__(name: str):
    if name == "TextChunker":
        from app.core.rag.retrieval.chunker import TextChunker

        return TextChunker
    if name == "extract_query_terms":
        from app.core.rag.retrieval.query_terms import extract_query_terms

        return extract_query_terms
    if name == "RetrievalPlan":
        from app.core.rag.retrieval.session_retriever import RetrievalPlan

        return RetrievalPlan
    if name == "RagSessionRetriever":
        from app.core.rag.retrieval.session_retriever import RagSessionRetriever

        return RagSessionRetriever
    raise AttributeError(name)
