"""
RagSaaS SDK - Zero-config RAG integration for LangChain agents.

Just set your API key and wrap your agent:

    import os
    os.environ["RAGSAAS_API_KEY"] = "sk_xxx"

    from ragsaas import with_rag
    from langgraph.prebuilt import create_react_agent

    # Tenant is dynamic - per customer
    @with_rag(tenant_id="customer-123")
    def create_agent():
        return create_react_agent(llm, tools)

    agent = create_agent()
    result = agent.invoke({"messages": [("user", "What is X?")]})
"""

from ragsaas.decorator import with_rag, RAGAgent, RAGContext, RagSaaSMiddleware
from ragsaas.client import RagSaaSClient, Document, Answer
from ragsaas.retriever import RagSaaSRetriever, create_retriever
from ragsaas.config import get_config, RagSaaSConfig

__version__ = "0.1.0"
__all__ = [
    # Main decorator
    "with_rag",
    "RAGAgent",
    "RAGContext",
    "RagSaaSMiddleware",
    # Client
    "RagSaaSClient",
    "Document",
    "Answer",
    # LangChain retriever
    "RagSaaSRetriever",
    "create_retriever",
    # Config
    "get_config",
    "RagSaaSConfig",
]
