"""Observability package — structlog spine + boundary log schemas. Hot-path logging spine wired by ``configure_logging``; per-frame ``correlation_id`` (= frame_id) bound at ``pipeline/orchestrator.py:process_frame``. Boundary log schemas (REST, FDR, anchor decisions) defined in ``log_schemas``. """ import structlog from gps_denied.obs.log_schemas import ( AnchorDecision, AnchorRejectReason, ApiRequestCompleted, MavlinkGpsInputEmitted, SourceLabel, ) from gps_denied.obs.logging_config import configure_logging get_logger = structlog.get_logger # convenience re-export __all__ = [ "configure_logging", "get_logger", # Boundary schemas "MavlinkGpsInputEmitted", "ApiRequestCompleted", "AnchorDecision", "SourceLabel", "AnchorRejectReason", ]