"""
discoverylib — self-contained engine for the CX Exploration & Discovery
Workshop (Mercury Notebook Pattern).

Not a financial model: this study's deliverable is a **live facilitation
aid**. The Mercury stage is the visual the client watches on the call —
topic board, the active topic's live sub-topic checklist, and a progress
headline ("3/8 topics complete"). The backstage (JupyterLab / nbconvert)
carries the facilitator's question script and the captured per-topic notes,
which the data-appendix export hands to an LLM to draft the survey write-up
or feed a downstream business-case study.

Code/content split: this package holds the **schema and logic only** —
:class:`Topic`/:class:`SubTopic`, the status vocabulary, and the session
engine. The content (the topic bank itself) lives in the ``topic-bank``
cell of ``notebooks/cx_discovery.ipynb``, where it is edited in Jupyter;
every engine function takes the bank as its first argument.
"""

from .session import (
    COMPLETE,
    IN_PROGRESS,
    NOT_STARTED,
    SKIPPED,
    STATUS_COLOR,
    STATUS_GLYPH,
    STATUS_LABEL,
    STATUSES,
    ChecklistItem,
    Progress,
    SubTopic,
    Topic,
    TopicState,
    active_topic_key,
    agenda_minutes,
    build_session,
    normalize_status,
    progress,
    session_json,
    subtopic_checklist,
    subtopic_id,
)
from .staging import backstage, backstage_md, on_stage

__version__ = "0.3.0"

__all__ = [
    # schema
    "Topic", "SubTopic",
    # status vocabulary
    "STATUSES", "STATUS_LABEL", "STATUS_GLYPH", "STATUS_COLOR",
    "NOT_STARTED", "IN_PROGRESS", "COMPLETE", "SKIPPED", "normalize_status",
    # progress + session
    "Progress", "progress", "active_topic_key", "agenda_minutes",
    "ChecklistItem", "subtopic_checklist", "subtopic_id",
    "TopicState", "build_session", "session_json",
    # staging
    "on_stage", "backstage", "backstage_md",
]
