//! Diagnostics surface (M6b).
//!
//! This module exposes customer-usable diagnostics: a per-document tier
//! classifier (M6b.3) and a diagnostic bundle exporter (M6b.1).
//!
//! The library never initialises a global tracing subscriber; the CLI or
//! the integrator owns that decision (M6b.4).
//!
//! # Stability
//!
//! These types are part of the SDK public API. Field schemas are
//! versioned via [`crate::diagnostics::SCHEMA_VERSION`].

pub mod bundle;
pub mod classify;

pub use bundle::{
    export_bundle, export_bundle_from_bytes, BundleManifest, BundleMode, DiagnosticBundle,
    DiagnosticError,
};
pub use classify::{
    classify_input, ClassificationReport, FormCalcSignal, JsSignal, SupportStatus, XfaTier,
};

/// Schema version for the JSON files written into a diagnostic bundle.
///
/// Every machine-readable artefact under a bundle directory carries this
/// constant in its `schema_version` field. Consumers must reject unknown
/// versions rather than guessing.
pub const SCHEMA_VERSION: u32 = 1;
