"""Dialog flows. Each module here registers its FSM states at import time (`@state`, `@on_enter`, `@trigger`). A new direction (veteran #36/#37, family, depression) is a new file `app/dialog/flows/.py`; it is picked up automatically by `load_flows()` — the engine is not edited. """ import pkgutil from importlib import import_module def load_flows() -> None: """Import every flow module of this package (core first, so flows may override core triggers).""" import_module(f"{__name__}.core") for info in sorted(pkgutil.iter_modules(__path__), key=lambda m: m.name): if info.name != "core" and not info.name.startswith("_"): import_module(f"{__name__}.{info.name}")