"""AgentLens Python SDK — observability and audit trail for AI agents."""

from importlib.metadata import PackageNotFoundError as _PNF
from importlib.metadata import version as _meta_version

try:
    __version__ = _meta_version("agentlensai")
except _PNF:
    __version__ = "0.0.0"

from agentlensai._init import current_session_id, init, shutdown
from agentlensai.async_client import AsyncAgentLensClient
from agentlensai.client import AgentLensClient
from agentlensai.exceptions import (
    AgentLensConnectionError,
    AgentLensError,
    AuthenticationError,
    BackpressureError,
    NotFoundError,
    QuotaExceededError,
    RateLimitError,
    ValidationError,
)
from agentlensai.models import (
    Agent,
    AgentLensEvent,
    ContextKeyEvent,
    ContextLesson,
    ContextQuery,
    ContextResult,
    ContextSession,
    CostRecommendation,
    CreateLessonInput,
    DeleteLessonResult,
    EventQuery,
    EventQueryResult,
    GuardrailDeleteResult,
    GuardrailRule,
    GuardrailRuleListResult,
    GuardrailState,
    GuardrailStatusResult,
    GuardrailTriggerHistory,
    GuardrailTriggerHistoryResult,
    HealthDimension,
    HealthHistoryResult,
    HealthResult,
    HealthScore,
    HealthSnapshot,
    HealthTrend,
    Lesson,
    LessonListResult,
    LessonQuery,
    LlmAnalyticsByModel,
    LlmAnalyticsByTime,
    LlmAnalyticsParams,
    LlmAnalyticsResult,
    LlmAnalyticsSummary,
    LlmMessage,
    LogLlmCallParams,
    LogLlmCallResult,
    OptimizationResult,
    RecallQuery,
    RecallResult,
    RecallResultItem,
    ReflectInsight,
    ReflectMetadata,
    ReflectQuery,
    ReflectResult,
    Session,
    SessionQuery,
    SessionQueryResult,
    TimelineResult,
    TokenUsage,
    ToolCallDef,
    ToolDef,
)
from agentlensai.pii import PII_CREDIT_CARD, PII_EMAIL, PII_PHONE, PII_SSN

__all__ = [
    "__version__",
    # Auto-instrumentation
    "init",
    "shutdown",
    "current_session_id",
    # PII filtering
    "PII_EMAIL",
    "PII_SSN",
    "PII_CREDIT_CARD",
    "PII_PHONE",
    # Clients
    "AgentLensClient",
    "AsyncAgentLensClient",
    # Models
    "Agent",
    "AgentLensEvent",
    "ContextKeyEvent",
    "ContextLesson",
    "ContextQuery",
    "ContextResult",
    "ContextSession",
    "CostRecommendation",
    "CreateLessonInput",
    "DeleteLessonResult",
    "EventQuery",
    "EventQueryResult",
    "GuardrailDeleteResult",
    "GuardrailRule",
    "GuardrailRuleListResult",
    "GuardrailState",
    "GuardrailStatusResult",
    "GuardrailTriggerHistory",
    "GuardrailTriggerHistoryResult",
    "HealthDimension",
    "HealthHistoryResult",
    "HealthResult",
    "HealthScore",
    "HealthSnapshot",
    "HealthTrend",
    "Lesson",
    "LessonListResult",
    "LessonQuery",
    "LlmAnalyticsByModel",
    "LlmAnalyticsByTime",
    "LlmAnalyticsParams",
    "LlmAnalyticsResult",
    "LlmAnalyticsSummary",
    "LlmMessage",
    "LogLlmCallParams",
    "LogLlmCallResult",
    "OptimizationResult",
    "RecallQuery",
    "RecallResult",
    "RecallResultItem",
    "ReflectInsight",
    "ReflectMetadata",
    "ReflectQuery",
    "ReflectResult",
    "Session",
    "SessionQuery",
    "SessionQueryResult",
    "TimelineResult",
    "TokenUsage",
    "ToolCallDef",
    "ToolDef",
    # Exceptions
    "AgentLensConnectionError",
    "AgentLensError",
    "AuthenticationError",
    "BackpressureError",
    "NotFoundError",
    "QuotaExceededError",
    "RateLimitError",
    "ValidationError",
]
