"""diaglib — the CX AI Advisory Diagnostic engine (Mercury Notebook Pattern).

All math and data contracts live here; the notebook only arranges and
renders. See docs/build_spec_v1.md for the instrument's specification.
"""

from .config import configs_dir, list_industries, load_config
from .export import (
    CSV_COLUMNS,
    engagement_json,
    load_engagement,
    scores_dataframe,
    write_exports,
)
from .models import (
    BASELINE_FIELDS,
    CONFIDENCE_ICON,
    Competency,
    CompetencyScore,
    DiagnosticConfig,
    DriverValue,
    Engagement,
    OperationalBaseline,
    Participant,
    UnlockMove,
    ValueAtStake,
)
from .scoring import (
    build_engagement,
    build_scores,
    dimension_rollup,
    evidence_coverage,
    heatmap_grid,
    make_engagement_id,
    parse_participants,
)
from .staging import backstage, on_stage
from .value_math import (
    MONTHS_18,
    binding_constraints,
    driver_value,
    html_money,
    money,
    unlock_sequence,
    value_at_stake,
    weakest_foundational_score,
)
from .visuals import heatmap_fig, split_fig, unlock_fig, value_bands_fig

__all__ = [
    "BASELINE_FIELDS", "CONFIDENCE_ICON", "CSV_COLUMNS", "MONTHS_18",
    "Competency", "CompetencyScore", "DiagnosticConfig", "DriverValue",
    "Engagement", "OperationalBaseline", "Participant", "UnlockMove",
    "ValueAtStake", "backstage", "binding_constraints", "build_engagement",
    "build_scores", "configs_dir", "dimension_rollup", "driver_value",
    "engagement_json", "evidence_coverage", "heatmap_fig", "heatmap_grid",
    "html_money", "list_industries", "load_config", "load_engagement",
    "make_engagement_id", "money", "on_stage", "parse_participants",
    "scores_dataframe", "split_fig", "unlock_fig", "unlock_sequence",
    "value_at_stake", "value_bands_fig", "weakest_foundational_score",
    "write_exports",
]
