This document states the package's public API policy. It is intentionally not a complete inventory of importable modules. Many modules are importable because they are tested, useful, and needed by current examples, but importability is not the same thing as long-term API stability.
The only stable top-level public API currently exposed by the package is:
state_collapser.__version__
Everything else should be treated as provisional unless a later release promotes it deliberately.
For the current documented provisional surfaces, use the API notes:
- PartitionTower
- training inputs and transitions
- FrozenQuotientBehavior
- PathFiber
- FiberConditionedStage
- tensorization boundary
These notes are the right place to look for exact current names and usage patterns. This file should not duplicate that inventory.
The repository's current external compatibility targets are design commitments, not blanket stable runtime APIs:
gymnasiumfor environment interoperabilitytorchfor optional model-backend interoperability behind themlextraROS 2for robotics-stack interoperabilityHGraphMLas a downstream graph-ML package that consumes partition-tower construction and fiber/readout information
Adapters or bridge modules for those systems should not be treated as stable public API until they are deliberately documented, tested, and exported.
HGraphML is now a real downstream consumer of state_collapser. It uses the
partition-tower runtime to turn a known graph into a quotient tower for trainable
graph message passing.
The current HGraphML-facing dependency surface includes:
- core state/action/edge wrappers
- contraction schemas, especially label-block schemas
PartitionTowerbuild_partition_tower_fullEncodingRegistry.from_tower(...)for shared tower/cell/edge encodings- state-cell and edge/source/target queries needed to recover node and edge fibers
These names are still pre-alpha and should not be read as permanently stable API. However, they are no longer merely private implementation details. Changes that alter them should either preserve HGraphML behavior or include an explicit migration path.
Before making a module or symbol public:
- Define its intended users.
- Define its stability expectations.
- Add tests that describe the public behavior.
- Document the surface in the appropriate usage or API note.
- Export it intentionally from
state_collapser.__init__or from a documented public submodule.
Until that happens, an import path may be useful and tested without being a promised public API.