The CoW Protocol composition root over the nexum WASM Component Model runtime and the videre intent/venue layer: the shepherd engine binary, the CoW venue adapter, the ComposableCoW keeper machinery, and the production keeper modules.
crates/shepherd-engine- theshepherdengine binary: nexum runtime + videre host wired as the cow composition root.crates/cow-venue- CoW venue slices, orderbook-only. Defaultbodyslice carries the venue-neutral order intent body types; theadapterfeature builds the wasm32-wasip2 venue adapter component.crates/composable-cow- ComposableCoW keeper machinery: the conditional-order body, the structured poll Verdict, and the run composition over the venue client.modules/twap-monitor,modules/ethflow-watcher- the production keeper modules (wasm32-wasip2 components).tools/orderbook-mock- orderbook REST mock for load tests.tools/baseline-latency- latency baseline capture/analysis (Python).wit/shepherd-cow- this repo's WIT package;wit/deps/vendors the cross-repo packages (sources pinned inwit/deps.toml).
Use the flake devshell (nix develop, or direnv allow), then:
just build # engine + module wasms + cow venue adapter
just test # nextest + doctests
just ci # the full CI series locally
Cross-repo dependencies are pinned by git rev in the crate manifests: nexum-* to nexum-runtime and videre-* to videre-nexum-module. extensions.toml at the repo root is the client-capability registry the module world synthesis reads; keep it next to Cargo.toml.
just run-m2- M2 smoke / round-trip on Sepolia (both keeper modules + the cow venue adapter).just e2e/just load/scripts/soak-snapshot.sh- the managed e2e / load / soak drivers (seescripts/README.md).- Docker:
docker compose upwithengine.docker.toml; the soak profile isdocker-compose.soak.yml.
Note: the e2e and soak scenario configs also reference the nexum example modules (price-alert, balance-tracker), which live in the nexum-runtime repo since the carve. Build their wasms from a sibling checkout at ../nexum-runtime into this repo's target/ first; the same applies to the load-gen driver used by scripts/load-run.sh.
This repository was carved out of the nullislabs runtime monorepo with full history (git filter-repo); the pre-carve state is preserved under the pre-carve tag.
AGPL-3.0. See LICENSE.