"""
SAGE LLM Integration Layer

Provides pluggable LLM backends for SAGE NCS, with Claude as the
primary provider and OpenAI as fallback.
"""

from sage.llm.anthropic import ClaudeProvider, create_claude_provider
from sage.llm.base import (
    BaseLLMProvider,
    LLMAuthenticationError,
    LLMContextLengthError,
    LLMError,
    LLMProvider,
    LLMProviderError,
    LLMRateLimitError,
    LLMResponse,
    LLMUsage,
)
from sage.llm.config import (
    AnthropicConfig,
    LLMConfig,
    ModelFamily,
    OpenAIConfig,
)
from sage.llm.openai import OpenAIProvider, create_openai_provider

__all__ = [
    # Base classes
    "BaseLLMProvider",
    "LLMProvider",
    "LLMResponse",
    "LLMUsage",
    # Providers
    "ClaudeProvider",
    "OpenAIProvider",
    "create_claude_provider",
    "create_openai_provider",
    # Configuration
    "LLMConfig",
    "AnthropicConfig",
    "OpenAIConfig",
    "ModelFamily",
    # Exceptions
    "LLMError",
    "LLMAuthenticationError",
    "LLMRateLimitError",
    "LLMContextLengthError",
    "LLMProviderError",
]
