File size: 908 Bytes
921d377 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | """
Assembly subsystem — turn DB rows into a publishable manifest.
Two things live here:
manifest.py build_manifest(experience) → dict — a complete,
self-describing snapshot of an experience: nodes,
edges, actions, rules, asset references. The
publish flow stores a copy on ix_publications.
packager.py package_experience — light wrapper that pairs a
manifest with a deterministic content hash so the
publish step can detect "nothing changed since
last publish" and skip re-emitting.
Nothing here writes back to ix_experiences — assembly is
read-only. Status changes happen one layer up in publish/.
"""
from .manifest import build_manifest
from .packager import PackagedExperience, package_experience
__all__ = [
"build_manifest",
"PackagedExperience",
"package_experience",
]
|