"""Telemetry package combining logging, tracing, and metrics utilities.

Structure mirrors t_obs for consistency:
- config/     - Configuration dataclasses and builders
- logs/       - Logging utilities (get_logger)
- metrics/    - Metrics utilities (get_meter)
- traces/     - Tracing utilities (get_tracer, span lifecycle)
- resources   - Resource attribute extraction
- setup       - Main entry point (calls t_obs)

Usage:
    from thoughtful.supervisor.telemetry.traces import get_tracer
    from thoughtful.supervisor.telemetry.metrics import get_meter
    from thoughtful.supervisor.telemetry.logs import get_logger
"""

from thoughtful.supervisor.telemetry.config import (
    TelemetryConfig,
    TelemetryConfigBuilder,
    TelemetryContext,
    get_service_name,
)
from thoughtful.supervisor.telemetry.logs import get_logger
from thoughtful.supervisor.telemetry.metrics import get_meter
from thoughtful.supervisor.telemetry.resources import extract_resource_attributes
from thoughtful.supervisor.telemetry.setup import (
    get_current_root_span,
    get_telemetry_config,
    is_telemetry_initialized,
    setup_telemetry,
    shutdown_telemetry,
)
from thoughtful.supervisor.telemetry.traces import get_tracer

__all__ = [
    # Config
    "TelemetryConfig",
    "TelemetryConfigBuilder",
    "TelemetryContext",
    # Setup/teardown
    "setup_telemetry",
    "shutdown_telemetry",
    # Telemetry access (same pattern as t_obs)
    "get_tracer",
    "get_meter",
    "get_logger",
    "get_service_name",
    # Utilities
    "get_current_root_span",
    "is_telemetry_initialized",
    "get_telemetry_config",
    "extract_resource_attributes",
]
