"""Smart Onboarding Advisor — the onboarding runtime step (orchestration over existing engines).

Turns (company + products + certifications + target) into inferred assumptions, the next best questions
(<=5, each self-explaining), the capability delta, top measures, evidence requests and completeness —
with NO sales interpretation and NO regulation picking. Orchestrator only: no new engine/registry/
meta-model; certificate->capability hypotheses and target requirements are INJECTED.
"""

from __future__ import annotations

from .engine import advisor_start, apply_answer
from .hypotheses import (
    CapabilityHypothesis,
    inferred_hypotheses,
    resolve_for_certifications,
)
from .observations import (
    Observation,
    ObservationType,
    empirical_confidence,
    empirical_distribution,
    reviewed,
)
from .observation_log import (
    HypothesisStats,
    ObservationRecord,
    aggregate_by_hypothesis,
    append_observation,
    load_observations,
    review_queue,
)
from .signals import (
    ProducedSignal,
    SignalVocabularyEntry,
    normalize_signals,
)
from .silent_intake import (
    DetectedCapability,
    IntakeSignal,
    ProductFact,
    SignalMapping,
    SilentIntakeResult,
    silent_intake,
)
from .schemas import (
    AdvisorMeasure,
    AdvisorQuestion,
    AdvisorResult,
    InferredAssumption,
    OnboardingInput,
    RejectedAssumption,
)

__all__ = [
    "advisor_start",
    "apply_answer",
    "OnboardingInput",
    "AdvisorResult",
    "AdvisorQuestion",
    "AdvisorMeasure",
    "InferredAssumption",
    "RejectedAssumption",
    "CapabilityHypothesis",
    "inferred_hypotheses",
    "resolve_for_certifications",
    "Observation",
    "ObservationType",
    "empirical_distribution",
    "empirical_confidence",
    "reviewed",
    "silent_intake",
    "IntakeSignal",
    "SignalMapping",
    "DetectedCapability",
    "ProductFact",
    "SilentIntakeResult",
    "ProducedSignal",
    "SignalVocabularyEntry",
    "normalize_signals",
    "ObservationRecord",
    "HypothesisStats",
    "append_observation",
    "load_observations",
    "aggregate_by_hypothesis",
    "review_queue",
]
