The architecture is now a set of released boundaries rather than a
collection of sibling checkouts. The canonical repository is
querygraph/querygraph. Its Rust crate is the composition
kernel; its Python and TypeScript packages are language projections over
the same routes, wire formats, semantic contracts, and TypeDID fixtures.
The extracted projects remain independently versioned and are consumed
from registries, so a clean build does not depend on an engineer having
a particular ~/src layout.
| Surface | Distribution | Responsibility |
|---|---|---|
| Rust | querygraph 0.4.2 on crates.io |
service, route, wire, and stack composition |
| Python | querygraph 0.4.1 on PyPI |
ergonomic CLI, notebooks, MCP, and navigator projection |
| TypeScript | @querygraph/querygraph 0.1.2 on npm |
typed Node-facing projection and shared contracts |
| Foundations | TypeSec 0.13.1, Grust 0.12.1, LakeCat 0.3.0 | authority, persistence/indexing, and catalog proof boundaries |
Dependency direction is deliberate: Sail, Grust, TypeSec, LakeCat, and Marciana do not depend on QueryGraph. QueryGraph consumes their released APIs and supplies the product-level composition. The Python and TypeScript clients cannot mutate protected memory directly; they submit the same authenticated operations that cross the Rust boundary.