"""Observability module for tracking LLM calls and errors.

This module provides utilities for comprehensive observability in the optimization pipeline:
- Structured JSON logging
- LLM call monitoring with full prompt/response capture
- Error tracking and classification
- Database persistence for historical analysis

Main components:
- models: Django models for observability tables
- logger: Structured logging utilities
- decorators: Decorators for automatic LLM call tracking
- database: Database recorders for persisting observability data
"""

# Models
# Logging utilities
from .logger import EventType, LogContext, StructuredFormatter, get_observability_logger, log_with_context
from .models import LLMCall, OptimizationError

__all__ = [
    # Models
    "LLMCall",
    "OptimizationError",
    # Logging
    "StructuredFormatter",
    "get_observability_logger",
    "log_with_context",
    "LogContext",
    "EventType",
]
