From a4c83de32a5948bc5ce6917ae6afa162ea62cb8a Mon Sep 17 00:00:00 2001 From: mfw78 Date: Sat, 18 Jul 2026 04:17:46 +0000 Subject: [PATCH] packaging: group the workspace into the three prospective repos Move every crate, WIT package, module, fixture, script, and deploy artefact into nexum/ (L1), videre/ (L2), and shepherd/ (L3), matching the carve boundaries. One umbrella workspace root and a single hoisted dependency table and Cargo.lock remain; intra-group relative paths are preserved byte-for-byte. Cross-group edges are rewritten path-deps plus wit/ symlinks into the owning group, standing in for the wit-deps vendoring that lands with the carve. --- .dockerignore | 21 +++--- .github/workflows/ci.yml | 8 +- .github/workflows/docker.yml | 2 +- .gitignore | 9 ++- Cargo.toml | 74 +++++++++---------- justfile | 12 +-- {crates => nexum/crates}/nexum-cli/Cargo.toml | 0 .../crates}/nexum-cli/src/main.rs | 0 .../crates}/nexum-launch/Cargo.toml | 0 .../crates}/nexum-launch/src/cli.rs | 0 .../crates}/nexum-launch/src/lib.rs | 0 .../crates}/nexum-module-macros/Cargo.toml | 0 .../crates}/nexum-module-macros/src/lib.rs | 0 .../crates}/nexum-runtime/Cargo.toml | 0 .../crates}/nexum-runtime/examples/embed.rs | 2 +- .../crates}/nexum-runtime/src/addons.rs | 0 .../crates}/nexum-runtime/src/bindings.rs | 0 .../crates}/nexum-runtime/src/bootstrap.rs | 0 .../crates}/nexum-runtime/src/builder.rs | 8 +- .../nexum-runtime/src/engine_config.rs | 0 .../crates}/nexum-runtime/src/host/actor.rs | 0 .../src/host/component/builder.rs | 0 .../nexum-runtime/src/host/component/chain.rs | 0 .../nexum-runtime/src/host/component/mod.rs | 0 .../src/host/component/runtime_types.rs | 0 .../nexum-runtime/src/host/component/state.rs | 0 .../crates}/nexum-runtime/src/host/error.rs | 0 .../nexum-runtime/src/host/extension.rs | 0 .../crates}/nexum-runtime/src/host/http.rs | 0 .../nexum-runtime/src/host/impls/chain.rs | 0 .../nexum-runtime/src/host/impls/identity.rs | 0 .../src/host/impls/local_store.rs | 0 .../nexum-runtime/src/host/impls/logging.rs | 0 .../nexum-runtime/src/host/impls/messaging.rs | 0 .../nexum-runtime/src/host/impls/mod.rs | 0 .../src/host/impls/remote_store.rs | 0 .../nexum-runtime/src/host/impls/types.rs | 0 .../src/host/local_store_redb.rs | 0 .../src/host/local_store_redb/tests.rs | 0 .../nexum-runtime/src/host/logs/mod.rs | 0 .../nexum-runtime/src/host/logs/stdio.rs | 0 .../nexum-runtime/src/host/logs/store.rs | 0 .../crates}/nexum-runtime/src/host/mod.rs | 0 .../nexum-runtime/src/host/provider_pool.rs | 0 .../src/host/remote_store_bee.rs | 0 .../crates}/nexum-runtime/src/host/state.rs | 0 .../crates}/nexum-runtime/src/lib.rs | 0 .../src/manifest/capabilities.rs | 0 .../nexum-runtime/src/manifest/error.rs | 0 .../nexum-runtime/src/manifest/load.rs | 0 .../crates}/nexum-runtime/src/manifest/mod.rs | 0 .../nexum-runtime/src/manifest/types.rs | 0 .../crates}/nexum-runtime/src/preset.rs | 0 .../src/runtime/dispatch_rate.rs | 0 .../nexum-runtime/src/runtime/event_loop.rs | 0 .../nexum-runtime/src/runtime/limits.rs | 0 .../crates}/nexum-runtime/src/runtime/mod.rs | 0 .../src/runtime/poison_policy.rs | 0 .../src/runtime/restart_policy.rs | 0 .../crates}/nexum-runtime/src/supervisor.rs | 0 .../nexum-runtime/src/supervisor/tests.rs | 7 +- .../nexum-runtime/src/test_utils/builders.rs | 0 .../nexum-runtime/src/test_utils/chain.rs | 0 .../nexum-runtime/src/test_utils/clock.rs | 0 .../nexum-runtime/src/test_utils/harness.rs | 3 +- .../nexum-runtime/src/test_utils/mod.rs | 0 .../nexum-runtime/src/test_utils/store.rs | 0 .../nexum-runtime/src/test_utils/types.rs | 0 .../crates}/nexum-sdk-test/Cargo.toml | 0 .../crates}/nexum-sdk-test/src/lib.rs | 0 {crates => nexum/crates}/nexum-sdk/Cargo.toml | 0 .../crates}/nexum-sdk/src/address.rs | 0 .../crates}/nexum-sdk/src/chain/chainlink.rs | 0 .../crates}/nexum-sdk/src/chain/eth_call.rs | 0 .../crates}/nexum-sdk/src/chain/id.rs | 0 .../crates}/nexum-sdk/src/chain/method.rs | 0 .../crates}/nexum-sdk/src/chain/mod.rs | 0 .../crates}/nexum-sdk/src/chain/provider.rs | 0 .../crates}/nexum-sdk/src/chain/transport.rs | 0 .../crates}/nexum-sdk/src/config.rs | 0 .../crates}/nexum-sdk/src/events.rs | 0 .../crates}/nexum-sdk/src/host.rs | 0 .../crates}/nexum-sdk/src/http.rs | 0 .../crates}/nexum-sdk/src/keeper.rs | 0 {crates => nexum/crates}/nexum-sdk/src/lib.rs | 0 .../crates}/nexum-sdk/src/prelude.rs | 0 .../crates}/nexum-sdk/src/proptests.rs | 0 .../crates}/nexum-sdk/src/tracing.rs | 0 .../nexum-sdk/src/wit_bindgen_macro.rs | 0 .../crates}/nexum-sdk/tests/keeper.rs | 0 .../crates}/nexum-status-body/Cargo.toml | 0 .../crates}/nexum-status-body/src/lib.rs | 0 .../crates}/nexum-tasks/Cargo.toml | 0 .../crates}/nexum-tasks/src/lib.rs | 0 .../crates}/nexum-tasks/src/manager.rs | 0 .../crates}/nexum-tasks/src/shutdown.rs | 0 .../crates}/nexum-tasks/src/task.rs | 0 .../crates}/nexum-world/Cargo.toml | 0 .../crates}/nexum-world/src/lib.rs | 0 {modules => nexum/modules}/example/Cargo.toml | 0 .../modules}/example/module.toml | 0 {modules => nexum/modules}/example/src/lib.rs | 0 .../examples/balance-tracker/Cargo.toml | 0 .../examples/balance-tracker/module.toml | 0 .../examples/balance-tracker/src/lib.rs | 0 .../examples/balance-tracker/src/strategy.rs | 0 .../modules}/examples/http-probe/Cargo.toml | 0 .../modules}/examples/http-probe/module.toml | 0 .../modules}/examples/http-probe/src/lib.rs | 0 .../examples/http-probe/src/strategy.rs | 0 .../modules}/examples/price-alert/Cargo.toml | 0 .../modules}/examples/price-alert/module.toml | 0 .../modules}/examples/price-alert/src/lib.rs | 0 .../examples/price-alert/src/strategy.rs | 0 .../modules}/fixtures/clock-reader/Cargo.toml | 0 .../fixtures/clock-reader/module.toml | 0 .../modules}/fixtures/clock-reader/src/lib.rs | 0 .../modules}/fixtures/flaky-bomb/Cargo.toml | 0 .../modules}/fixtures/flaky-bomb/module.toml | 0 .../modules}/fixtures/flaky-bomb/src/lib.rs | 0 .../modules}/fixtures/fuel-bomb/Cargo.toml | 0 .../modules}/fixtures/fuel-bomb/module.toml | 0 .../modules}/fixtures/fuel-bomb/src/lib.rs | 0 .../modules}/fixtures/memory-bomb/Cargo.toml | 0 .../modules}/fixtures/memory-bomb/module.toml | 0 .../modules}/fixtures/memory-bomb/src/lib.rs | 0 .../modules}/fixtures/panic-bomb/Cargo.toml | 0 .../modules}/fixtures/panic-bomb/module.toml | 0 .../modules}/fixtures/panic-bomb/src/lib.rs | 0 .../modules}/fixtures/slow-host/Cargo.toml | 0 .../modules}/fixtures/slow-host/module.toml | 0 .../modules}/fixtures/slow-host/src/lib.rs | 0 .../scripts}/check-venue-agnostic.sh | 0 {wit => nexum/wit}/nexum-host/chain.wit | 0 .../wit}/nexum-host/event-module.wit | 0 {wit => nexum/wit}/nexum-host/identity.wit | 0 {wit => nexum/wit}/nexum-host/local-store.wit | 0 {wit => nexum/wit}/nexum-host/logging.wit | 0 {wit => nexum/wit}/nexum-host/messaging.wit | 0 .../wit}/nexum-host/query-module.wit | 0 .../wit}/nexum-host/remote-store.wit | 0 {wit => nexum/wit}/nexum-host/types.wit | 0 .env.example => shepherd/.env.example | 0 Dockerfile => shepherd/Dockerfile | 14 ++-- .../crates}/composable-cow/Cargo.toml | 6 +- .../crates}/composable-cow/src/body.rs | 0 .../crates}/composable-cow/src/lib.rs | 0 .../crates}/composable-cow/src/poll.rs | 0 .../crates}/composable-cow/src/sweep.rs | 0 .../crates}/composable-cow/tests/sweep.rs | 0 .../crates}/cow-venue/Cargo.toml | 6 +- .../crates}/cow-venue/build.rs | 0 .../cow-venue/data/classification.toml | 0 .../crates}/cow-venue/module.load.toml | 0 .../crates}/cow-venue/module.sepolia.toml | 0 .../crates}/cow-venue/module.toml | 0 .../crates}/cow-venue/src/adapter.rs | 0 .../crates}/cow-venue/src/assembly.rs | 0 .../crates}/cow-venue/src/body.rs | 0 .../crates}/cow-venue/src/classification.rs | 0 .../cow-venue/src/classification_data.rs | 0 .../crates}/cow-venue/src/client.rs | 0 .../crates}/cow-venue/src/lib.rs | 0 .../crates}/cow-venue/src/order.rs | 0 .../crates}/cow-venue/tests/conformance.rs | 0 .../tests/vectors/cow-header-goldens.json | 0 .../tests/vectors/cow-intent-body.json | 0 .../crates}/cow-venue/tests/wit_layering.rs | 0 .../crates}/shepherd-backtest/Cargo.toml | 6 +- .../crates}/shepherd-backtest/src/fixtures.rs | 0 .../crates}/shepherd-backtest/src/main.rs | 0 .../crates}/shepherd-backtest/src/replay.rs | 0 .../crates}/shepherd-backtest/src/report.rs | 0 .../crates}/shepherd/Cargo.toml | 6 +- .../crates}/shepherd/src/main.rs | 0 .../docker-compose.soak.yml | 0 .../docker-compose.yml | 4 +- .../engine.docker.toml | 0 engine.e2e.toml => shepherd/engine.e2e.toml | 24 +++--- .../engine.example.toml | 2 +- engine.load.toml => shepherd/engine.load.toml | 6 +- engine.m2.toml => shepherd/engine.m2.toml | 8 +- engine.m3.toml => shepherd/engine.m3.toml | 10 +-- .../engine.soak.docker.toml | 0 engine.soak.toml => shepherd/engine.soak.toml | 14 ++-- .../modules}/ethflow-watcher/Cargo.toml | 6 +- .../modules}/ethflow-watcher/module.toml | 0 .../modules}/ethflow-watcher/src/lib.rs | 0 .../modules}/ethflow-watcher/src/strategy.rs | 0 .../modules}/examples/stop-loss/Cargo.toml | 6 +- .../modules}/examples/stop-loss/module.toml | 0 .../modules}/examples/stop-loss/src/lib.rs | 0 .../examples/stop-loss/src/strategy.rs | 0 .../modules}/twap-monitor/Cargo.toml | 6 +- .../modules}/twap-monitor/module.toml | 0 .../modules}/twap-monitor/src/lib.rs | 0 .../modules}/twap-monitor/src/strategy.rs | 0 {scripts => shepherd/scripts}/README.md | 0 .../scripts}/_ethflow_quote.py | 0 .../scripts}/_twap_calldata.py | 0 .../scripts}/check-cow-orderbook-only.sh | 0 {scripts => shepherd/scripts}/e2e-finish.sh | 2 +- {scripts => shepherd/scripts}/e2e-onchain.sh | 0 .../scripts}/e2e-report-gen.sh | 2 +- {scripts => shepherd/scripts}/e2e-run.sh | 2 +- {scripts => shepherd/scripts}/env-template | 4 +- {scripts => shepherd/scripts}/lib.sh | 12 +-- .../scripts}/load-bootstrap.sh | 2 +- {scripts => shepherd/scripts}/load-run.sh | 6 +- .../scripts}/load-teardown.sh | 0 .../scripts}/soak-snapshot.sh | 0 .../backtest-collect/backtest_collect.py | 2 +- .../backtest-collect/fixtures-2026-06-22.json | 0 .../tools}/baseline-latency/.gitignore | 0 .../baseline-latency/baseline_latency.py | 2 +- .../baseline-latency/data/arbitrum_one.json | 0 .../tools}/baseline-latency/data/base.json | 0 .../tools}/baseline-latency/data/gnosis.json | 0 .../tools}/baseline-latency/data/mainnet.json | 0 .../tools}/baseline-latency/data/sepolia.json | 0 {tools => shepherd/tools}/load-gen/Cargo.toml | 0 .../tools}/load-gen/src/main.rs | 0 .../tools}/orderbook-mock/Cargo.toml | 0 .../tools}/orderbook-mock/src/main.rs | 0 shepherd/wit/nexum-host | 1 + .../wit}/shepherd-cow/cow-events.wit | 0 shepherd/wit/videre-types | 1 + shepherd/wit/videre-value-flow | 1 + shepherd/wit/videre-venue | 1 + .../crates}/no-std-probe/Cargo.toml | 0 .../crates}/no-std-probe/src/lib.rs | 0 .../crates}/videre-host/Cargo.toml | 8 +- .../crates}/videre-host/src/bindings.rs | 0 .../crates}/videre-host/src/client.rs | 0 .../crates}/videre-host/src/handshake.rs | 0 .../crates}/videre-host/src/lib.rs | 0 .../crates}/videre-host/src/registry.rs | 0 .../crates}/videre-host/tests/platform.rs | 30 +++++--- .../crates}/videre-host/tests/zero_leak.rs | 12 ++- .../crates}/videre-macros/Cargo.toml | 2 +- .../crates}/videre-macros/src/intent_body.rs | 0 .../crates}/videre-macros/src/keeper.rs | 0 .../crates}/videre-macros/src/lib.rs | 0 .../crates}/videre-macros/src/world.rs | 0 .../crates}/videre-sdk/Cargo.toml | 4 +- .../crates}/videre-sdk/src/adapter.rs | 0 .../crates}/videre-sdk/src/bindings.rs | 0 .../crates}/videre-sdk/src/body.rs | 0 .../crates}/videre-sdk/src/client.rs | 0 .../crates}/videre-sdk/src/faults.rs | 0 .../crates}/videre-sdk/src/keeper.rs | 0 .../crates}/videre-sdk/src/lib.rs | 0 .../crates}/videre-sdk/src/rt.rs | 0 .../crates}/videre-sdk/src/transport.rs | 0 .../crates}/videre-sdk/tests/adapter.rs | 0 .../crates}/videre-test/Cargo.toml | 4 +- .../videre-test/goldens/reference-header.json | 0 .../crates}/videre-test/src/codec.rs | 0 .../crates}/videre-test/src/fixture.rs | 0 .../crates}/videre-test/src/header.rs | 0 .../crates}/videre-test/src/lib.rs | 0 .../crates}/videre-test/src/reference.rs | 0 .../crates}/videre-test/src/report.rs | 0 .../crates}/videre-test/src/transport.rs | 0 .../crates}/videre-test/tests/conformance.rs | 0 .../videre-test/vectors/reference-body.json | 0 .../modules}/examples/echo-client/Cargo.toml | 2 +- .../modules}/examples/echo-client/module.toml | 0 .../modules}/examples/echo-client/src/lib.rs | 0 .../modules}/examples/echo-keeper/Cargo.toml | 2 +- .../modules}/examples/echo-keeper/module.toml | 0 .../modules}/examples/echo-keeper/src/lib.rs | 0 .../modules}/examples/echo-venue/Cargo.toml | 0 .../modules}/examples/echo-venue/module.toml | 0 .../modules}/examples/echo-venue/src/lib.rs | 0 .../modules}/fixtures/flaky-venue/Cargo.toml | 0 .../modules}/fixtures/flaky-venue/module.toml | 0 .../modules}/fixtures/flaky-venue/src/lib.rs | 0 videre/wit/nexum-host | 1 + {wit => videre/wit}/videre-types/types.wit | 0 .../wit}/videre-value-flow/types.wit | 0 {wit => videre/wit}/videre-venue/venue.wit | 0 282 files changed, 204 insertions(+), 169 deletions(-) rename {crates => nexum/crates}/nexum-cli/Cargo.toml (100%) rename {crates => nexum/crates}/nexum-cli/src/main.rs (100%) rename {crates => nexum/crates}/nexum-launch/Cargo.toml (100%) rename {crates => nexum/crates}/nexum-launch/src/cli.rs (100%) rename {crates => nexum/crates}/nexum-launch/src/lib.rs (100%) rename {crates => nexum/crates}/nexum-module-macros/Cargo.toml (100%) rename {crates => nexum/crates}/nexum-module-macros/src/lib.rs (100%) rename {crates => nexum/crates}/nexum-runtime/Cargo.toml (100%) rename {crates => nexum/crates}/nexum-runtime/examples/embed.rs (96%) rename {crates => nexum/crates}/nexum-runtime/src/addons.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/bindings.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/bootstrap.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/builder.rs (99%) rename {crates => nexum/crates}/nexum-runtime/src/engine_config.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/actor.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/component/builder.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/component/chain.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/component/mod.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/component/runtime_types.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/component/state.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/error.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/extension.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/http.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/impls/chain.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/impls/identity.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/impls/local_store.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/impls/logging.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/impls/messaging.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/impls/mod.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/impls/remote_store.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/impls/types.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/local_store_redb.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/local_store_redb/tests.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/logs/mod.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/logs/stdio.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/logs/store.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/mod.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/provider_pool.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/remote_store_bee.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/host/state.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/lib.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/manifest/capabilities.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/manifest/error.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/manifest/load.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/manifest/mod.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/manifest/types.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/preset.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/runtime/dispatch_rate.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/runtime/event_loop.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/runtime/limits.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/runtime/mod.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/runtime/poison_policy.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/runtime/restart_policy.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/supervisor.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/supervisor/tests.rs (99%) rename {crates => nexum/crates}/nexum-runtime/src/test_utils/builders.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/test_utils/chain.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/test_utils/clock.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/test_utils/harness.rs (99%) rename {crates => nexum/crates}/nexum-runtime/src/test_utils/mod.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/test_utils/store.rs (100%) rename {crates => nexum/crates}/nexum-runtime/src/test_utils/types.rs (100%) rename {crates => nexum/crates}/nexum-sdk-test/Cargo.toml (100%) rename {crates => nexum/crates}/nexum-sdk-test/src/lib.rs (100%) rename {crates => nexum/crates}/nexum-sdk/Cargo.toml (100%) rename {crates => nexum/crates}/nexum-sdk/src/address.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/chain/chainlink.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/chain/eth_call.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/chain/id.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/chain/method.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/chain/mod.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/chain/provider.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/chain/transport.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/config.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/events.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/host.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/http.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/keeper.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/lib.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/prelude.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/proptests.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/tracing.rs (100%) rename {crates => nexum/crates}/nexum-sdk/src/wit_bindgen_macro.rs (100%) rename {crates => nexum/crates}/nexum-sdk/tests/keeper.rs (100%) rename {crates => nexum/crates}/nexum-status-body/Cargo.toml (100%) rename {crates => nexum/crates}/nexum-status-body/src/lib.rs (100%) rename {crates => nexum/crates}/nexum-tasks/Cargo.toml (100%) rename {crates => nexum/crates}/nexum-tasks/src/lib.rs (100%) rename {crates => nexum/crates}/nexum-tasks/src/manager.rs (100%) rename {crates => nexum/crates}/nexum-tasks/src/shutdown.rs (100%) rename {crates => nexum/crates}/nexum-tasks/src/task.rs (100%) rename {crates => nexum/crates}/nexum-world/Cargo.toml (100%) rename {crates => nexum/crates}/nexum-world/src/lib.rs (100%) rename {modules => nexum/modules}/example/Cargo.toml (100%) rename {modules => nexum/modules}/example/module.toml (100%) rename {modules => nexum/modules}/example/src/lib.rs (100%) rename {modules => nexum/modules}/examples/balance-tracker/Cargo.toml (100%) rename {modules => nexum/modules}/examples/balance-tracker/module.toml (100%) rename {modules => nexum/modules}/examples/balance-tracker/src/lib.rs (100%) rename {modules => nexum/modules}/examples/balance-tracker/src/strategy.rs (100%) rename {modules => nexum/modules}/examples/http-probe/Cargo.toml (100%) rename {modules => nexum/modules}/examples/http-probe/module.toml (100%) rename {modules => nexum/modules}/examples/http-probe/src/lib.rs (100%) rename {modules => nexum/modules}/examples/http-probe/src/strategy.rs (100%) rename {modules => nexum/modules}/examples/price-alert/Cargo.toml (100%) rename {modules => nexum/modules}/examples/price-alert/module.toml (100%) rename {modules => nexum/modules}/examples/price-alert/src/lib.rs (100%) rename {modules => nexum/modules}/examples/price-alert/src/strategy.rs (100%) rename {modules => nexum/modules}/fixtures/clock-reader/Cargo.toml (100%) rename {modules => nexum/modules}/fixtures/clock-reader/module.toml (100%) rename {modules => nexum/modules}/fixtures/clock-reader/src/lib.rs (100%) rename {modules => nexum/modules}/fixtures/flaky-bomb/Cargo.toml (100%) rename {modules => nexum/modules}/fixtures/flaky-bomb/module.toml (100%) rename {modules => nexum/modules}/fixtures/flaky-bomb/src/lib.rs (100%) rename {modules => nexum/modules}/fixtures/fuel-bomb/Cargo.toml (100%) rename {modules => nexum/modules}/fixtures/fuel-bomb/module.toml (100%) rename {modules => nexum/modules}/fixtures/fuel-bomb/src/lib.rs (100%) rename {modules => nexum/modules}/fixtures/memory-bomb/Cargo.toml (100%) rename {modules => nexum/modules}/fixtures/memory-bomb/module.toml (100%) rename {modules => nexum/modules}/fixtures/memory-bomb/src/lib.rs (100%) rename {modules => nexum/modules}/fixtures/panic-bomb/Cargo.toml (100%) rename {modules => nexum/modules}/fixtures/panic-bomb/module.toml (100%) rename {modules => nexum/modules}/fixtures/panic-bomb/src/lib.rs (100%) rename {modules => nexum/modules}/fixtures/slow-host/Cargo.toml (100%) rename {modules => nexum/modules}/fixtures/slow-host/module.toml (100%) rename {modules => nexum/modules}/fixtures/slow-host/src/lib.rs (100%) rename {scripts => nexum/scripts}/check-venue-agnostic.sh (100%) rename {wit => nexum/wit}/nexum-host/chain.wit (100%) rename {wit => nexum/wit}/nexum-host/event-module.wit (100%) rename {wit => nexum/wit}/nexum-host/identity.wit (100%) rename {wit => nexum/wit}/nexum-host/local-store.wit (100%) rename {wit => nexum/wit}/nexum-host/logging.wit (100%) rename {wit => nexum/wit}/nexum-host/messaging.wit (100%) rename {wit => nexum/wit}/nexum-host/query-module.wit (100%) rename {wit => nexum/wit}/nexum-host/remote-store.wit (100%) rename {wit => nexum/wit}/nexum-host/types.wit (100%) rename .env.example => shepherd/.env.example (100%) rename Dockerfile => shepherd/Dockerfile (89%) rename {crates => shepherd/crates}/composable-cow/Cargo.toml (85%) rename {crates => shepherd/crates}/composable-cow/src/body.rs (100%) rename {crates => shepherd/crates}/composable-cow/src/lib.rs (100%) rename {crates => shepherd/crates}/composable-cow/src/poll.rs (100%) rename {crates => shepherd/crates}/composable-cow/src/sweep.rs (100%) rename {crates => shepherd/crates}/composable-cow/tests/sweep.rs (100%) rename {crates => shepherd/crates}/cow-venue/Cargo.toml (94%) rename {crates => shepherd/crates}/cow-venue/build.rs (100%) rename {crates => shepherd/crates}/cow-venue/data/classification.toml (100%) rename {crates => shepherd/crates}/cow-venue/module.load.toml (100%) rename {crates => shepherd/crates}/cow-venue/module.sepolia.toml (100%) rename {crates => shepherd/crates}/cow-venue/module.toml (100%) rename {crates => shepherd/crates}/cow-venue/src/adapter.rs (100%) rename {crates => shepherd/crates}/cow-venue/src/assembly.rs (100%) rename {crates => shepherd/crates}/cow-venue/src/body.rs (100%) rename {crates => shepherd/crates}/cow-venue/src/classification.rs (100%) rename {crates => shepherd/crates}/cow-venue/src/classification_data.rs (100%) rename {crates => shepherd/crates}/cow-venue/src/client.rs (100%) rename {crates => shepherd/crates}/cow-venue/src/lib.rs (100%) rename {crates => shepherd/crates}/cow-venue/src/order.rs (100%) rename {crates => shepherd/crates}/cow-venue/tests/conformance.rs (100%) rename {crates => shepherd/crates}/cow-venue/tests/vectors/cow-header-goldens.json (100%) rename {crates => shepherd/crates}/cow-venue/tests/vectors/cow-intent-body.json (100%) rename {crates => shepherd/crates}/cow-venue/tests/wit_layering.rs (100%) rename {crates => shepherd/crates}/shepherd-backtest/Cargo.toml (81%) rename {crates => shepherd/crates}/shepherd-backtest/src/fixtures.rs (100%) rename {crates => shepherd/crates}/shepherd-backtest/src/main.rs (100%) rename {crates => shepherd/crates}/shepherd-backtest/src/replay.rs (100%) rename {crates => shepherd/crates}/shepherd-backtest/src/report.rs (100%) rename {crates => shepherd/crates}/shepherd/Cargo.toml (57%) rename {crates => shepherd/crates}/shepherd/src/main.rs (100%) rename docker-compose.soak.yml => shepherd/docker-compose.soak.yml (100%) rename docker-compose.yml => shepherd/docker-compose.yml (98%) rename engine.docker.toml => shepherd/engine.docker.toml (100%) rename engine.e2e.toml => shepherd/engine.e2e.toml (74%) rename engine.example.toml => shepherd/engine.example.toml (98%) rename engine.load.toml => shepherd/engine.load.toml (90%) rename engine.m2.toml => shepherd/engine.m2.toml (84%) rename engine.m3.toml => shepherd/engine.m3.toml (82%) rename engine.soak.docker.toml => shepherd/engine.soak.docker.toml (100%) rename engine.soak.toml => shepherd/engine.soak.toml (86%) rename {modules => shepherd/modules}/ethflow-watcher/Cargo.toml (83%) rename {modules => shepherd/modules}/ethflow-watcher/module.toml (100%) rename {modules => shepherd/modules}/ethflow-watcher/src/lib.rs (100%) rename {modules => shepherd/modules}/ethflow-watcher/src/strategy.rs (100%) rename {modules => shepherd/modules}/examples/stop-loss/Cargo.toml (85%) rename {modules => shepherd/modules}/examples/stop-loss/module.toml (100%) rename {modules => shepherd/modules}/examples/stop-loss/src/lib.rs (100%) rename {modules => shepherd/modules}/examples/stop-loss/src/strategy.rs (100%) rename {modules => shepherd/modules}/twap-monitor/Cargo.toml (82%) rename {modules => shepherd/modules}/twap-monitor/module.toml (100%) rename {modules => shepherd/modules}/twap-monitor/src/lib.rs (100%) rename {modules => shepherd/modules}/twap-monitor/src/strategy.rs (100%) rename {scripts => shepherd/scripts}/README.md (100%) rename {scripts => shepherd/scripts}/_ethflow_quote.py (100%) rename {scripts => shepherd/scripts}/_twap_calldata.py (100%) rename {scripts => shepherd/scripts}/check-cow-orderbook-only.sh (100%) rename {scripts => shepherd/scripts}/e2e-finish.sh (95%) rename {scripts => shepherd/scripts}/e2e-onchain.sh (100%) rename {scripts => shepherd/scripts}/e2e-report-gen.sh (99%) rename {scripts => shepherd/scripts}/e2e-run.sh (98%) rename {scripts => shepherd/scripts}/env-template (93%) rename {scripts => shepherd/scripts}/lib.sh (89%) rename {scripts => shepherd/scripts}/load-bootstrap.sh (98%) rename {scripts => shepherd/scripts}/load-run.sh (96%) rename {scripts => shepherd/scripts}/load-teardown.sh (100%) rename {scripts => shepherd/scripts}/soak-snapshot.sh (100%) rename {tools => shepherd/tools}/backtest-collect/backtest_collect.py (99%) rename {tools => shepherd/tools}/backtest-collect/fixtures-2026-06-22.json (100%) rename {tools => shepherd/tools}/baseline-latency/.gitignore (100%) rename {tools => shepherd/tools}/baseline-latency/baseline_latency.py (99%) rename {tools => shepherd/tools}/baseline-latency/data/arbitrum_one.json (100%) rename {tools => shepherd/tools}/baseline-latency/data/base.json (100%) rename {tools => shepherd/tools}/baseline-latency/data/gnosis.json (100%) rename {tools => shepherd/tools}/baseline-latency/data/mainnet.json (100%) rename {tools => shepherd/tools}/baseline-latency/data/sepolia.json (100%) rename {tools => shepherd/tools}/load-gen/Cargo.toml (100%) rename {tools => shepherd/tools}/load-gen/src/main.rs (100%) rename {tools => shepherd/tools}/orderbook-mock/Cargo.toml (100%) rename {tools => shepherd/tools}/orderbook-mock/src/main.rs (100%) create mode 120000 shepherd/wit/nexum-host rename {wit => shepherd/wit}/shepherd-cow/cow-events.wit (100%) create mode 120000 shepherd/wit/videre-types create mode 120000 shepherd/wit/videre-value-flow create mode 120000 shepherd/wit/videre-venue rename {crates => videre/crates}/no-std-probe/Cargo.toml (100%) rename {crates => videre/crates}/no-std-probe/src/lib.rs (100%) rename {crates => videre/crates}/videre-host/Cargo.toml (74%) rename {crates => videre/crates}/videre-host/src/bindings.rs (100%) rename {crates => videre/crates}/videre-host/src/client.rs (100%) rename {crates => videre/crates}/videre-host/src/handshake.rs (100%) rename {crates => videre/crates}/videre-host/src/lib.rs (100%) rename {crates => videre/crates}/videre-host/src/registry.rs (100%) rename {crates => videre/crates}/videre-host/tests/platform.rs (97%) rename {crates => videre/crates}/videre-host/tests/zero_leak.rs (93%) rename {crates => videre/crates}/videre-macros/Cargo.toml (90%) rename {crates => videre/crates}/videre-macros/src/intent_body.rs (100%) rename {crates => videre/crates}/videre-macros/src/keeper.rs (100%) rename {crates => videre/crates}/videre-macros/src/lib.rs (100%) rename {crates => videre/crates}/videre-macros/src/world.rs (100%) rename {crates => videre/crates}/videre-sdk/Cargo.toml (93%) rename {crates => videre/crates}/videre-sdk/src/adapter.rs (100%) rename {crates => videre/crates}/videre-sdk/src/bindings.rs (100%) rename {crates => videre/crates}/videre-sdk/src/body.rs (100%) rename {crates => videre/crates}/videre-sdk/src/client.rs (100%) rename {crates => videre/crates}/videre-sdk/src/faults.rs (100%) rename {crates => videre/crates}/videre-sdk/src/keeper.rs (100%) rename {crates => videre/crates}/videre-sdk/src/lib.rs (100%) rename {crates => videre/crates}/videre-sdk/src/rt.rs (100%) rename {crates => videre/crates}/videre-sdk/src/transport.rs (100%) rename {crates => videre/crates}/videre-sdk/tests/adapter.rs (100%) rename {crates => videre/crates}/videre-test/Cargo.toml (91%) rename {crates => videre/crates}/videre-test/goldens/reference-header.json (100%) rename {crates => videre/crates}/videre-test/src/codec.rs (100%) rename {crates => videre/crates}/videre-test/src/fixture.rs (100%) rename {crates => videre/crates}/videre-test/src/header.rs (100%) rename {crates => videre/crates}/videre-test/src/lib.rs (100%) rename {crates => videre/crates}/videre-test/src/reference.rs (100%) rename {crates => videre/crates}/videre-test/src/report.rs (100%) rename {crates => videre/crates}/videre-test/src/transport.rs (100%) rename {crates => videre/crates}/videre-test/tests/conformance.rs (100%) rename {crates => videre/crates}/videre-test/vectors/reference-body.json (100%) rename {modules => videre/modules}/examples/echo-client/Cargo.toml (89%) rename {modules => videre/modules}/examples/echo-client/module.toml (100%) rename {modules => videre/modules}/examples/echo-client/src/lib.rs (100%) rename {modules => videre/modules}/examples/echo-keeper/Cargo.toml (90%) rename {modules => videre/modules}/examples/echo-keeper/module.toml (100%) rename {modules => videre/modules}/examples/echo-keeper/src/lib.rs (100%) rename {modules => videre/modules}/examples/echo-venue/Cargo.toml (100%) rename {modules => videre/modules}/examples/echo-venue/module.toml (100%) rename {modules => videre/modules}/examples/echo-venue/src/lib.rs (100%) rename {modules => videre/modules}/fixtures/flaky-venue/Cargo.toml (100%) rename {modules => videre/modules}/fixtures/flaky-venue/module.toml (100%) rename {modules => videre/modules}/fixtures/flaky-venue/src/lib.rs (100%) create mode 120000 videre/wit/nexum-host rename {wit => videre/wit}/videre-types/types.wit (100%) rename {wit => videre/wit}/videre-value-flow/types.wit (100%) rename {wit => videre/wit}/videre-venue/venue.wit (100%) diff --git a/.dockerignore b/.dockerignore index 7f9e68cd..baa60300 100644 --- a/.dockerignore +++ b/.dockerignore @@ -15,13 +15,13 @@ target/ data/ # Backtest tooling output: large JSON fixtures + Python venv state. -# Re-collected on demand via `tools/backtest-collect/backtest_collect.py`. -tools/backtest-collect/fixtures-*.json -tools/baseline-latency/data/ -tools/**/__pycache__/ -tools/**/*.pyc +# Re-collected on demand via `shepherd/tools/backtest-collect/backtest_collect.py`. +shepherd/tools/backtest-collect/fixtures-*.json +shepherd/tools/baseline-latency/data/ +shepherd/tools/**/__pycache__/ +shepherd/tools/**/*.pyc -# NOTE: `modules/fixtures/*-bomb` are listed in the workspace +# NOTE: `*/modules/fixtures/*-bomb` are listed in the workspace # `Cargo.toml`, so excluding them breaks `cargo build` ("failed to # load manifest for workspace member"). They're tiny crates and the # Dockerfile doesn't COPY them to the runtime stage, so the @@ -30,10 +30,11 @@ tools/**/*.pyc # Local-only configs. The production `engine.toml` is supplied at # runtime via a bind-mount (`/etc/shepherd/engine.toml`). engine.toml -engine.e2e.toml -engine.load.toml -engine.m2.toml -engine.m3.toml +shepherd/engine.toml +shepherd/engine.e2e.toml +shepherd/engine.load.toml +shepherd/engine.m2.toml +shepherd/engine.m3.toml # Git + GitHub metadata. /.git/ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e2b8e2ef..cfc29390 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -159,7 +159,7 @@ jobs: # Blocking zero-leak gate: host-layer crate graphs stay venue-free, the # runtime Rust sources carry no charter symbol and no privileged router # field, and nexum:host names no foreign WIT package and resolves as a - # leaf (scripts/check-venue-agnostic.sh). + # leaf (nexum/scripts/check-venue-agnostic.sh). venue-agnostic: name: venue-agnostic runs-on: ubuntu-latest @@ -169,10 +169,10 @@ jobs: - uses: taiki-e/install-action@43aecc8d72668fbcfe75c31400bc4f890f1c5853 # v2.83.2 with: tool: wasm-tools,ripgrep - - run: ./scripts/check-venue-agnostic.sh + - run: ./nexum/scripts/check-venue-agnostic.sh # Blocking orderbook-only gate: the CoW venue crate carries no - # composable symbol (scripts/check-cow-orderbook-only.sh). + # composable symbol (shepherd/scripts/check-cow-orderbook-only.sh). cow-orderbook-only: name: cow-orderbook-only runs-on: ubuntu-latest @@ -181,4 +181,4 @@ jobs: - uses: taiki-e/install-action@43aecc8d72668fbcfe75c31400bc4f890f1c5853 # v2.83.2 with: tool: ripgrep - - run: ./scripts/check-cow-orderbook-only.sh + - run: ./shepherd/scripts/check-cow-orderbook-only.sh diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index fee2ac94..4db3f43e 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -73,7 +73,7 @@ jobs: uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 with: context: . - file: ./Dockerfile + file: ./shepherd/Dockerfile # Push on every non-PR event; PR builds are local-only smoke. push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} diff --git a/.gitignore b/.gitignore index 35532e08..8ebd9863 100644 --- a/.gitignore +++ b/.gitignore @@ -33,19 +33,20 @@ skills-lock.json # Engine runtime state (default state_dir from engine.toml). data/ # Shipped crate data slices are source, not runtime state: keep them. -!crates/*/data/ -!crates/*/data/** +!*/crates/*/data/ +!*/crates/*/data/** # E2E automation: rendered configs with embedded RPC keys + script state # never get committed. *.local.toml -scripts/.state -scripts/.env +shepherd/scripts/.state +shepherd/scripts/.env # Operator-supplied engine config (carries paid RPC URLs / API keys). # The committed siblings `engine.example.toml`, `engine.docker.toml`, # and `engine.{m2,m3,e2e,load}.toml` are placeholder templates. /engine.toml +/shepherd/engine.toml # Generated reports under e2e-reports/ (operator commits the filled-in ones # manually via `git add -f`). diff --git a/Cargo.toml b/Cargo.toml index b0055bee..4b8c8806 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,42 +1,42 @@ [workspace] members = [ - "crates/composable-cow", - "crates/cow-venue", - "crates/nexum-cli", - "crates/nexum-launch", - "crates/nexum-module-macros", - "crates/nexum-runtime", - "crates/nexum-sdk", - "crates/nexum-sdk-test", - "crates/nexum-status-body", - "crates/nexum-tasks", - "crates/nexum-world", - "crates/no-std-probe", - "crates/shepherd", - "crates/shepherd-backtest", - "crates/videre-host", - "crates/videre-macros", - "crates/videre-sdk", - "crates/videre-test", - "modules/ethflow-watcher", - "modules/example", - "modules/examples/balance-tracker", - "modules/examples/echo-client", - "modules/examples/echo-keeper", - "modules/examples/echo-venue", - "modules/examples/http-probe", - "modules/examples/price-alert", - "modules/examples/stop-loss", - "modules/fixtures/clock-reader", - "modules/fixtures/flaky-bomb", - "modules/fixtures/flaky-venue", - "modules/fixtures/fuel-bomb", - "modules/fixtures/memory-bomb", - "modules/fixtures/panic-bomb", - "modules/fixtures/slow-host", - "modules/twap-monitor", - "tools/load-gen", - "tools/orderbook-mock", + "nexum/crates/nexum-cli", + "nexum/crates/nexum-launch", + "nexum/crates/nexum-module-macros", + "nexum/crates/nexum-runtime", + "nexum/crates/nexum-sdk", + "nexum/crates/nexum-sdk-test", + "nexum/crates/nexum-status-body", + "nexum/crates/nexum-tasks", + "nexum/crates/nexum-world", + "nexum/modules/example", + "nexum/modules/examples/balance-tracker", + "nexum/modules/examples/http-probe", + "nexum/modules/examples/price-alert", + "nexum/modules/fixtures/clock-reader", + "nexum/modules/fixtures/flaky-bomb", + "nexum/modules/fixtures/fuel-bomb", + "nexum/modules/fixtures/memory-bomb", + "nexum/modules/fixtures/panic-bomb", + "nexum/modules/fixtures/slow-host", + "videre/crates/no-std-probe", + "videre/crates/videre-host", + "videre/crates/videre-macros", + "videre/crates/videre-sdk", + "videre/crates/videre-test", + "videre/modules/examples/echo-client", + "videre/modules/examples/echo-keeper", + "videre/modules/examples/echo-venue", + "videre/modules/fixtures/flaky-venue", + "shepherd/crates/composable-cow", + "shepherd/crates/cow-venue", + "shepherd/crates/shepherd", + "shepherd/crates/shepherd-backtest", + "shepherd/modules/ethflow-watcher", + "shepherd/modules/examples/stop-loss", + "shepherd/modules/twap-monitor", + "shepherd/tools/load-gen", + "shepherd/tools/orderbook-mock", ] resolver = "2" diff --git a/justfile b/justfile index 019fb0a6..a79f5270 100644 --- a/justfile +++ b/justfile @@ -24,7 +24,7 @@ build: build-engine build-module # module's module.toml — without it the engine prints the 0.1-compat # deprecation warning and proceeds with empty capabilities/config. run: build-module build-engine - cargo run -p nexum-cli -- target/wasm32-wasip2/release/example.wasm modules/example/module.toml + cargo run -p nexum-cli -- target/wasm32-wasip2/release/example.wasm nexum/modules/example/module.toml # Run host engine unit tests test: @@ -44,7 +44,7 @@ build-m2: # --pretty-logs keeps the runbook-friendly human-readable formatter; # production deploys omit the flag and emit JSON. run-m2: build-m2 build-cow-venue build-engine - cargo run -p shepherd -- --engine-config engine.m2.toml --pretty-logs + cargo run -p shepherd -- --engine-config shepherd/engine.m2.toml --pretty-logs # Build the M3 example modules (price-alert + balance-tracker + stop-loss) # for wasm32-wasip2. @@ -58,7 +58,7 @@ build-m3: # --pretty-logs keeps the runbook-friendly human-readable formatter; # production deploys omit the flag and emit JSON. run-m3: build-m3 build-cow-venue build-engine - cargo run -p shepherd -- --engine-config engine.m3.toml --pretty-logs + cargo run -p shepherd -- --engine-config shepherd/engine.m3.toml --pretty-logs # Build the http-probe example module (wasi:http fetch + allowlist # denial demo) for wasm32-wasip2. @@ -75,18 +75,18 @@ build-e2e: build-m2 build-m3 # downstream `jq` filter can mine submitted/dropped/backoff markers # for the e2e report. See `docs/operations/e2e-testnet-runbook.md`. run-e2e: build-e2e build-cow-venue build-engine - cargo run -p shepherd -- --engine-config engine.e2e.toml + cargo run -p shepherd -- --engine-config shepherd/engine.e2e.toml # Zero-leak gate: host-layer crate graphs, runtime charter-symbol and # router-field scans, and the nexum:host WIT leaf and foreign-namespace # scans. Blocking in CI. check-venue-agnostic: - ./scripts/check-venue-agnostic.sh + ./nexum/scripts/check-venue-agnostic.sh # Orderbook-only gate: the CoW venue crate carries no composable # symbol. Blocking in CI. check-cow-orderbook-only: - ./scripts/check-cow-orderbook-only.sh + ./shepherd/scripts/check-cow-orderbook-only.sh # Check the entire workspace check: diff --git a/crates/nexum-cli/Cargo.toml b/nexum/crates/nexum-cli/Cargo.toml similarity index 100% rename from crates/nexum-cli/Cargo.toml rename to nexum/crates/nexum-cli/Cargo.toml diff --git a/crates/nexum-cli/src/main.rs b/nexum/crates/nexum-cli/src/main.rs similarity index 100% rename from crates/nexum-cli/src/main.rs rename to nexum/crates/nexum-cli/src/main.rs diff --git a/crates/nexum-launch/Cargo.toml b/nexum/crates/nexum-launch/Cargo.toml similarity index 100% rename from crates/nexum-launch/Cargo.toml rename to nexum/crates/nexum-launch/Cargo.toml diff --git a/crates/nexum-launch/src/cli.rs b/nexum/crates/nexum-launch/src/cli.rs similarity index 100% rename from crates/nexum-launch/src/cli.rs rename to nexum/crates/nexum-launch/src/cli.rs diff --git a/crates/nexum-launch/src/lib.rs b/nexum/crates/nexum-launch/src/lib.rs similarity index 100% rename from crates/nexum-launch/src/lib.rs rename to nexum/crates/nexum-launch/src/lib.rs diff --git a/crates/nexum-module-macros/Cargo.toml b/nexum/crates/nexum-module-macros/Cargo.toml similarity index 100% rename from crates/nexum-module-macros/Cargo.toml rename to nexum/crates/nexum-module-macros/Cargo.toml diff --git a/crates/nexum-module-macros/src/lib.rs b/nexum/crates/nexum-module-macros/src/lib.rs similarity index 100% rename from crates/nexum-module-macros/src/lib.rs rename to nexum/crates/nexum-module-macros/src/lib.rs diff --git a/crates/nexum-runtime/Cargo.toml b/nexum/crates/nexum-runtime/Cargo.toml similarity index 100% rename from crates/nexum-runtime/Cargo.toml rename to nexum/crates/nexum-runtime/Cargo.toml diff --git a/crates/nexum-runtime/examples/embed.rs b/nexum/crates/nexum-runtime/examples/embed.rs similarity index 96% rename from crates/nexum-runtime/examples/embed.rs rename to nexum/crates/nexum-runtime/examples/embed.rs index feba0440..129f9890 100644 --- a/crates/nexum-runtime/examples/embed.rs +++ b/nexum/crates/nexum-runtime/examples/embed.rs @@ -29,7 +29,7 @@ async fn main() -> anyhow::Result<()> { let cfg = EngineConfig { modules: vec![ModuleEntry { path: "target/wasm32-wasip2/release/example.wasm".into(), - manifest: Some("modules/example/module.toml".into()), + manifest: Some("nexum/modules/example/module.toml".into()), }], ..EngineConfig::default() }; diff --git a/crates/nexum-runtime/src/addons.rs b/nexum/crates/nexum-runtime/src/addons.rs similarity index 100% rename from crates/nexum-runtime/src/addons.rs rename to nexum/crates/nexum-runtime/src/addons.rs diff --git a/crates/nexum-runtime/src/bindings.rs b/nexum/crates/nexum-runtime/src/bindings.rs similarity index 100% rename from crates/nexum-runtime/src/bindings.rs rename to nexum/crates/nexum-runtime/src/bindings.rs diff --git a/crates/nexum-runtime/src/bootstrap.rs b/nexum/crates/nexum-runtime/src/bootstrap.rs similarity index 100% rename from crates/nexum-runtime/src/bootstrap.rs rename to nexum/crates/nexum-runtime/src/bootstrap.rs diff --git a/crates/nexum-runtime/src/builder.rs b/nexum/crates/nexum-runtime/src/builder.rs similarity index 99% rename from crates/nexum-runtime/src/builder.rs rename to nexum/crates/nexum-runtime/src/builder.rs index fda2b575..5b98e2dd 100644 --- a/crates/nexum-runtime/src/builder.rs +++ b/nexum/crates/nexum-runtime/src/builder.rs @@ -802,7 +802,9 @@ mod tests { .parent() .expect("crates dir") .parent() - .expect("repo root") + .expect("nexum root") + .parent() + .expect("workspace root") .join("target/wasm32-wasip2/release/price_alert.wasm"); if !wasm.exists() { eprintln!( @@ -927,7 +929,9 @@ every_n_blocks = "1" .parent() .expect("crates dir") .parent() - .expect("repo root") + .expect("nexum root") + .parent() + .expect("workspace root") .join("target/wasm32-wasip2/release/example.wasm"); if !wasm.exists() { eprintln!( diff --git a/crates/nexum-runtime/src/engine_config.rs b/nexum/crates/nexum-runtime/src/engine_config.rs similarity index 100% rename from crates/nexum-runtime/src/engine_config.rs rename to nexum/crates/nexum-runtime/src/engine_config.rs diff --git a/crates/nexum-runtime/src/host/actor.rs b/nexum/crates/nexum-runtime/src/host/actor.rs similarity index 100% rename from crates/nexum-runtime/src/host/actor.rs rename to nexum/crates/nexum-runtime/src/host/actor.rs diff --git a/crates/nexum-runtime/src/host/component/builder.rs b/nexum/crates/nexum-runtime/src/host/component/builder.rs similarity index 100% rename from crates/nexum-runtime/src/host/component/builder.rs rename to nexum/crates/nexum-runtime/src/host/component/builder.rs diff --git a/crates/nexum-runtime/src/host/component/chain.rs b/nexum/crates/nexum-runtime/src/host/component/chain.rs similarity index 100% rename from crates/nexum-runtime/src/host/component/chain.rs rename to nexum/crates/nexum-runtime/src/host/component/chain.rs diff --git a/crates/nexum-runtime/src/host/component/mod.rs b/nexum/crates/nexum-runtime/src/host/component/mod.rs similarity index 100% rename from crates/nexum-runtime/src/host/component/mod.rs rename to nexum/crates/nexum-runtime/src/host/component/mod.rs diff --git a/crates/nexum-runtime/src/host/component/runtime_types.rs b/nexum/crates/nexum-runtime/src/host/component/runtime_types.rs similarity index 100% rename from crates/nexum-runtime/src/host/component/runtime_types.rs rename to nexum/crates/nexum-runtime/src/host/component/runtime_types.rs diff --git a/crates/nexum-runtime/src/host/component/state.rs b/nexum/crates/nexum-runtime/src/host/component/state.rs similarity index 100% rename from crates/nexum-runtime/src/host/component/state.rs rename to nexum/crates/nexum-runtime/src/host/component/state.rs diff --git a/crates/nexum-runtime/src/host/error.rs b/nexum/crates/nexum-runtime/src/host/error.rs similarity index 100% rename from crates/nexum-runtime/src/host/error.rs rename to nexum/crates/nexum-runtime/src/host/error.rs diff --git a/crates/nexum-runtime/src/host/extension.rs b/nexum/crates/nexum-runtime/src/host/extension.rs similarity index 100% rename from crates/nexum-runtime/src/host/extension.rs rename to nexum/crates/nexum-runtime/src/host/extension.rs diff --git a/crates/nexum-runtime/src/host/http.rs b/nexum/crates/nexum-runtime/src/host/http.rs similarity index 100% rename from crates/nexum-runtime/src/host/http.rs rename to nexum/crates/nexum-runtime/src/host/http.rs diff --git a/crates/nexum-runtime/src/host/impls/chain.rs b/nexum/crates/nexum-runtime/src/host/impls/chain.rs similarity index 100% rename from crates/nexum-runtime/src/host/impls/chain.rs rename to nexum/crates/nexum-runtime/src/host/impls/chain.rs diff --git a/crates/nexum-runtime/src/host/impls/identity.rs b/nexum/crates/nexum-runtime/src/host/impls/identity.rs similarity index 100% rename from crates/nexum-runtime/src/host/impls/identity.rs rename to nexum/crates/nexum-runtime/src/host/impls/identity.rs diff --git a/crates/nexum-runtime/src/host/impls/local_store.rs b/nexum/crates/nexum-runtime/src/host/impls/local_store.rs similarity index 100% rename from crates/nexum-runtime/src/host/impls/local_store.rs rename to nexum/crates/nexum-runtime/src/host/impls/local_store.rs diff --git a/crates/nexum-runtime/src/host/impls/logging.rs b/nexum/crates/nexum-runtime/src/host/impls/logging.rs similarity index 100% rename from crates/nexum-runtime/src/host/impls/logging.rs rename to nexum/crates/nexum-runtime/src/host/impls/logging.rs diff --git a/crates/nexum-runtime/src/host/impls/messaging.rs b/nexum/crates/nexum-runtime/src/host/impls/messaging.rs similarity index 100% rename from crates/nexum-runtime/src/host/impls/messaging.rs rename to nexum/crates/nexum-runtime/src/host/impls/messaging.rs diff --git a/crates/nexum-runtime/src/host/impls/mod.rs b/nexum/crates/nexum-runtime/src/host/impls/mod.rs similarity index 100% rename from crates/nexum-runtime/src/host/impls/mod.rs rename to nexum/crates/nexum-runtime/src/host/impls/mod.rs diff --git a/crates/nexum-runtime/src/host/impls/remote_store.rs b/nexum/crates/nexum-runtime/src/host/impls/remote_store.rs similarity index 100% rename from crates/nexum-runtime/src/host/impls/remote_store.rs rename to nexum/crates/nexum-runtime/src/host/impls/remote_store.rs diff --git a/crates/nexum-runtime/src/host/impls/types.rs b/nexum/crates/nexum-runtime/src/host/impls/types.rs similarity index 100% rename from crates/nexum-runtime/src/host/impls/types.rs rename to nexum/crates/nexum-runtime/src/host/impls/types.rs diff --git a/crates/nexum-runtime/src/host/local_store_redb.rs b/nexum/crates/nexum-runtime/src/host/local_store_redb.rs similarity index 100% rename from crates/nexum-runtime/src/host/local_store_redb.rs rename to nexum/crates/nexum-runtime/src/host/local_store_redb.rs diff --git a/crates/nexum-runtime/src/host/local_store_redb/tests.rs b/nexum/crates/nexum-runtime/src/host/local_store_redb/tests.rs similarity index 100% rename from crates/nexum-runtime/src/host/local_store_redb/tests.rs rename to nexum/crates/nexum-runtime/src/host/local_store_redb/tests.rs diff --git a/crates/nexum-runtime/src/host/logs/mod.rs b/nexum/crates/nexum-runtime/src/host/logs/mod.rs similarity index 100% rename from crates/nexum-runtime/src/host/logs/mod.rs rename to nexum/crates/nexum-runtime/src/host/logs/mod.rs diff --git a/crates/nexum-runtime/src/host/logs/stdio.rs b/nexum/crates/nexum-runtime/src/host/logs/stdio.rs similarity index 100% rename from crates/nexum-runtime/src/host/logs/stdio.rs rename to nexum/crates/nexum-runtime/src/host/logs/stdio.rs diff --git a/crates/nexum-runtime/src/host/logs/store.rs b/nexum/crates/nexum-runtime/src/host/logs/store.rs similarity index 100% rename from crates/nexum-runtime/src/host/logs/store.rs rename to nexum/crates/nexum-runtime/src/host/logs/store.rs diff --git a/crates/nexum-runtime/src/host/mod.rs b/nexum/crates/nexum-runtime/src/host/mod.rs similarity index 100% rename from crates/nexum-runtime/src/host/mod.rs rename to nexum/crates/nexum-runtime/src/host/mod.rs diff --git a/crates/nexum-runtime/src/host/provider_pool.rs b/nexum/crates/nexum-runtime/src/host/provider_pool.rs similarity index 100% rename from crates/nexum-runtime/src/host/provider_pool.rs rename to nexum/crates/nexum-runtime/src/host/provider_pool.rs diff --git a/crates/nexum-runtime/src/host/remote_store_bee.rs b/nexum/crates/nexum-runtime/src/host/remote_store_bee.rs similarity index 100% rename from crates/nexum-runtime/src/host/remote_store_bee.rs rename to nexum/crates/nexum-runtime/src/host/remote_store_bee.rs diff --git a/crates/nexum-runtime/src/host/state.rs b/nexum/crates/nexum-runtime/src/host/state.rs similarity index 100% rename from crates/nexum-runtime/src/host/state.rs rename to nexum/crates/nexum-runtime/src/host/state.rs diff --git a/crates/nexum-runtime/src/lib.rs b/nexum/crates/nexum-runtime/src/lib.rs similarity index 100% rename from crates/nexum-runtime/src/lib.rs rename to nexum/crates/nexum-runtime/src/lib.rs diff --git a/crates/nexum-runtime/src/manifest/capabilities.rs b/nexum/crates/nexum-runtime/src/manifest/capabilities.rs similarity index 100% rename from crates/nexum-runtime/src/manifest/capabilities.rs rename to nexum/crates/nexum-runtime/src/manifest/capabilities.rs diff --git a/crates/nexum-runtime/src/manifest/error.rs b/nexum/crates/nexum-runtime/src/manifest/error.rs similarity index 100% rename from crates/nexum-runtime/src/manifest/error.rs rename to nexum/crates/nexum-runtime/src/manifest/error.rs diff --git a/crates/nexum-runtime/src/manifest/load.rs b/nexum/crates/nexum-runtime/src/manifest/load.rs similarity index 100% rename from crates/nexum-runtime/src/manifest/load.rs rename to nexum/crates/nexum-runtime/src/manifest/load.rs diff --git a/crates/nexum-runtime/src/manifest/mod.rs b/nexum/crates/nexum-runtime/src/manifest/mod.rs similarity index 100% rename from crates/nexum-runtime/src/manifest/mod.rs rename to nexum/crates/nexum-runtime/src/manifest/mod.rs diff --git a/crates/nexum-runtime/src/manifest/types.rs b/nexum/crates/nexum-runtime/src/manifest/types.rs similarity index 100% rename from crates/nexum-runtime/src/manifest/types.rs rename to nexum/crates/nexum-runtime/src/manifest/types.rs diff --git a/crates/nexum-runtime/src/preset.rs b/nexum/crates/nexum-runtime/src/preset.rs similarity index 100% rename from crates/nexum-runtime/src/preset.rs rename to nexum/crates/nexum-runtime/src/preset.rs diff --git a/crates/nexum-runtime/src/runtime/dispatch_rate.rs b/nexum/crates/nexum-runtime/src/runtime/dispatch_rate.rs similarity index 100% rename from crates/nexum-runtime/src/runtime/dispatch_rate.rs rename to nexum/crates/nexum-runtime/src/runtime/dispatch_rate.rs diff --git a/crates/nexum-runtime/src/runtime/event_loop.rs b/nexum/crates/nexum-runtime/src/runtime/event_loop.rs similarity index 100% rename from crates/nexum-runtime/src/runtime/event_loop.rs rename to nexum/crates/nexum-runtime/src/runtime/event_loop.rs diff --git a/crates/nexum-runtime/src/runtime/limits.rs b/nexum/crates/nexum-runtime/src/runtime/limits.rs similarity index 100% rename from crates/nexum-runtime/src/runtime/limits.rs rename to nexum/crates/nexum-runtime/src/runtime/limits.rs diff --git a/crates/nexum-runtime/src/runtime/mod.rs b/nexum/crates/nexum-runtime/src/runtime/mod.rs similarity index 100% rename from crates/nexum-runtime/src/runtime/mod.rs rename to nexum/crates/nexum-runtime/src/runtime/mod.rs diff --git a/crates/nexum-runtime/src/runtime/poison_policy.rs b/nexum/crates/nexum-runtime/src/runtime/poison_policy.rs similarity index 100% rename from crates/nexum-runtime/src/runtime/poison_policy.rs rename to nexum/crates/nexum-runtime/src/runtime/poison_policy.rs diff --git a/crates/nexum-runtime/src/runtime/restart_policy.rs b/nexum/crates/nexum-runtime/src/runtime/restart_policy.rs similarity index 100% rename from crates/nexum-runtime/src/runtime/restart_policy.rs rename to nexum/crates/nexum-runtime/src/runtime/restart_policy.rs diff --git a/crates/nexum-runtime/src/supervisor.rs b/nexum/crates/nexum-runtime/src/supervisor.rs similarity index 100% rename from crates/nexum-runtime/src/supervisor.rs rename to nexum/crates/nexum-runtime/src/supervisor.rs diff --git a/crates/nexum-runtime/src/supervisor/tests.rs b/nexum/crates/nexum-runtime/src/supervisor/tests.rs similarity index 99% rename from crates/nexum-runtime/src/supervisor/tests.rs rename to nexum/crates/nexum-runtime/src/supervisor/tests.rs index f954ded9..d5dccb87 100644 --- a/crates/nexum-runtime/src/supervisor/tests.rs +++ b/nexum/crates/nexum-runtime/src/supervisor/tests.rs @@ -251,12 +251,15 @@ async fn run_drains_reconnect_tasks_cleanly_on_shutdown() { /// Path to the pre-built example WASM component. Tests that need it /// call `example_wasm_or_skip()` which skips gracefully if absent. fn example_wasm() -> PathBuf { - // CARGO_MANIFEST_DIR → crates/nexum-runtime + // CARGO_MANIFEST_DIR → nexum/crates/nexum-runtime; three parents up + // is the workspace root carrying `target/`. Path::new(env!("CARGO_MANIFEST_DIR")) .parent() .unwrap() .parent() .unwrap() + .parent() + .unwrap() .join("target/wasm32-wasip2/release/example.wasm") } @@ -557,6 +560,8 @@ fn module_wasm(module_name: &str) -> PathBuf { .unwrap() .parent() .unwrap() + .parent() + .unwrap() .join(format!("target/wasm32-wasip2/release/{artifact}.wasm")) } diff --git a/crates/nexum-runtime/src/test_utils/builders.rs b/nexum/crates/nexum-runtime/src/test_utils/builders.rs similarity index 100% rename from crates/nexum-runtime/src/test_utils/builders.rs rename to nexum/crates/nexum-runtime/src/test_utils/builders.rs diff --git a/crates/nexum-runtime/src/test_utils/chain.rs b/nexum/crates/nexum-runtime/src/test_utils/chain.rs similarity index 100% rename from crates/nexum-runtime/src/test_utils/chain.rs rename to nexum/crates/nexum-runtime/src/test_utils/chain.rs diff --git a/crates/nexum-runtime/src/test_utils/clock.rs b/nexum/crates/nexum-runtime/src/test_utils/clock.rs similarity index 100% rename from crates/nexum-runtime/src/test_utils/clock.rs rename to nexum/crates/nexum-runtime/src/test_utils/clock.rs diff --git a/crates/nexum-runtime/src/test_utils/harness.rs b/nexum/crates/nexum-runtime/src/test_utils/harness.rs similarity index 99% rename from crates/nexum-runtime/src/test_utils/harness.rs rename to nexum/crates/nexum-runtime/src/test_utils/harness.rs index 10d808d6..41eb760e 100644 --- a/crates/nexum-runtime/src/test_utils/harness.rs +++ b/nexum/crates/nexum-runtime/src/test_utils/harness.rs @@ -297,7 +297,8 @@ mod tests { let wasm = Path::new(env!("CARGO_MANIFEST_DIR")) .parent() .and_then(Path::parent) - .expect("repo root") + .and_then(Path::parent) + .expect("workspace root") .join("target/wasm32-wasip2/release") .join(file); if wasm.exists() { diff --git a/crates/nexum-runtime/src/test_utils/mod.rs b/nexum/crates/nexum-runtime/src/test_utils/mod.rs similarity index 100% rename from crates/nexum-runtime/src/test_utils/mod.rs rename to nexum/crates/nexum-runtime/src/test_utils/mod.rs diff --git a/crates/nexum-runtime/src/test_utils/store.rs b/nexum/crates/nexum-runtime/src/test_utils/store.rs similarity index 100% rename from crates/nexum-runtime/src/test_utils/store.rs rename to nexum/crates/nexum-runtime/src/test_utils/store.rs diff --git a/crates/nexum-runtime/src/test_utils/types.rs b/nexum/crates/nexum-runtime/src/test_utils/types.rs similarity index 100% rename from crates/nexum-runtime/src/test_utils/types.rs rename to nexum/crates/nexum-runtime/src/test_utils/types.rs diff --git a/crates/nexum-sdk-test/Cargo.toml b/nexum/crates/nexum-sdk-test/Cargo.toml similarity index 100% rename from crates/nexum-sdk-test/Cargo.toml rename to nexum/crates/nexum-sdk-test/Cargo.toml diff --git a/crates/nexum-sdk-test/src/lib.rs b/nexum/crates/nexum-sdk-test/src/lib.rs similarity index 100% rename from crates/nexum-sdk-test/src/lib.rs rename to nexum/crates/nexum-sdk-test/src/lib.rs diff --git a/crates/nexum-sdk/Cargo.toml b/nexum/crates/nexum-sdk/Cargo.toml similarity index 100% rename from crates/nexum-sdk/Cargo.toml rename to nexum/crates/nexum-sdk/Cargo.toml diff --git a/crates/nexum-sdk/src/address.rs b/nexum/crates/nexum-sdk/src/address.rs similarity index 100% rename from crates/nexum-sdk/src/address.rs rename to nexum/crates/nexum-sdk/src/address.rs diff --git a/crates/nexum-sdk/src/chain/chainlink.rs b/nexum/crates/nexum-sdk/src/chain/chainlink.rs similarity index 100% rename from crates/nexum-sdk/src/chain/chainlink.rs rename to nexum/crates/nexum-sdk/src/chain/chainlink.rs diff --git a/crates/nexum-sdk/src/chain/eth_call.rs b/nexum/crates/nexum-sdk/src/chain/eth_call.rs similarity index 100% rename from crates/nexum-sdk/src/chain/eth_call.rs rename to nexum/crates/nexum-sdk/src/chain/eth_call.rs diff --git a/crates/nexum-sdk/src/chain/id.rs b/nexum/crates/nexum-sdk/src/chain/id.rs similarity index 100% rename from crates/nexum-sdk/src/chain/id.rs rename to nexum/crates/nexum-sdk/src/chain/id.rs diff --git a/crates/nexum-sdk/src/chain/method.rs b/nexum/crates/nexum-sdk/src/chain/method.rs similarity index 100% rename from crates/nexum-sdk/src/chain/method.rs rename to nexum/crates/nexum-sdk/src/chain/method.rs diff --git a/crates/nexum-sdk/src/chain/mod.rs b/nexum/crates/nexum-sdk/src/chain/mod.rs similarity index 100% rename from crates/nexum-sdk/src/chain/mod.rs rename to nexum/crates/nexum-sdk/src/chain/mod.rs diff --git a/crates/nexum-sdk/src/chain/provider.rs b/nexum/crates/nexum-sdk/src/chain/provider.rs similarity index 100% rename from crates/nexum-sdk/src/chain/provider.rs rename to nexum/crates/nexum-sdk/src/chain/provider.rs diff --git a/crates/nexum-sdk/src/chain/transport.rs b/nexum/crates/nexum-sdk/src/chain/transport.rs similarity index 100% rename from crates/nexum-sdk/src/chain/transport.rs rename to nexum/crates/nexum-sdk/src/chain/transport.rs diff --git a/crates/nexum-sdk/src/config.rs b/nexum/crates/nexum-sdk/src/config.rs similarity index 100% rename from crates/nexum-sdk/src/config.rs rename to nexum/crates/nexum-sdk/src/config.rs diff --git a/crates/nexum-sdk/src/events.rs b/nexum/crates/nexum-sdk/src/events.rs similarity index 100% rename from crates/nexum-sdk/src/events.rs rename to nexum/crates/nexum-sdk/src/events.rs diff --git a/crates/nexum-sdk/src/host.rs b/nexum/crates/nexum-sdk/src/host.rs similarity index 100% rename from crates/nexum-sdk/src/host.rs rename to nexum/crates/nexum-sdk/src/host.rs diff --git a/crates/nexum-sdk/src/http.rs b/nexum/crates/nexum-sdk/src/http.rs similarity index 100% rename from crates/nexum-sdk/src/http.rs rename to nexum/crates/nexum-sdk/src/http.rs diff --git a/crates/nexum-sdk/src/keeper.rs b/nexum/crates/nexum-sdk/src/keeper.rs similarity index 100% rename from crates/nexum-sdk/src/keeper.rs rename to nexum/crates/nexum-sdk/src/keeper.rs diff --git a/crates/nexum-sdk/src/lib.rs b/nexum/crates/nexum-sdk/src/lib.rs similarity index 100% rename from crates/nexum-sdk/src/lib.rs rename to nexum/crates/nexum-sdk/src/lib.rs diff --git a/crates/nexum-sdk/src/prelude.rs b/nexum/crates/nexum-sdk/src/prelude.rs similarity index 100% rename from crates/nexum-sdk/src/prelude.rs rename to nexum/crates/nexum-sdk/src/prelude.rs diff --git a/crates/nexum-sdk/src/proptests.rs b/nexum/crates/nexum-sdk/src/proptests.rs similarity index 100% rename from crates/nexum-sdk/src/proptests.rs rename to nexum/crates/nexum-sdk/src/proptests.rs diff --git a/crates/nexum-sdk/src/tracing.rs b/nexum/crates/nexum-sdk/src/tracing.rs similarity index 100% rename from crates/nexum-sdk/src/tracing.rs rename to nexum/crates/nexum-sdk/src/tracing.rs diff --git a/crates/nexum-sdk/src/wit_bindgen_macro.rs b/nexum/crates/nexum-sdk/src/wit_bindgen_macro.rs similarity index 100% rename from crates/nexum-sdk/src/wit_bindgen_macro.rs rename to nexum/crates/nexum-sdk/src/wit_bindgen_macro.rs diff --git a/crates/nexum-sdk/tests/keeper.rs b/nexum/crates/nexum-sdk/tests/keeper.rs similarity index 100% rename from crates/nexum-sdk/tests/keeper.rs rename to nexum/crates/nexum-sdk/tests/keeper.rs diff --git a/crates/nexum-status-body/Cargo.toml b/nexum/crates/nexum-status-body/Cargo.toml similarity index 100% rename from crates/nexum-status-body/Cargo.toml rename to nexum/crates/nexum-status-body/Cargo.toml diff --git a/crates/nexum-status-body/src/lib.rs b/nexum/crates/nexum-status-body/src/lib.rs similarity index 100% rename from crates/nexum-status-body/src/lib.rs rename to nexum/crates/nexum-status-body/src/lib.rs diff --git a/crates/nexum-tasks/Cargo.toml b/nexum/crates/nexum-tasks/Cargo.toml similarity index 100% rename from crates/nexum-tasks/Cargo.toml rename to nexum/crates/nexum-tasks/Cargo.toml diff --git a/crates/nexum-tasks/src/lib.rs b/nexum/crates/nexum-tasks/src/lib.rs similarity index 100% rename from crates/nexum-tasks/src/lib.rs rename to nexum/crates/nexum-tasks/src/lib.rs diff --git a/crates/nexum-tasks/src/manager.rs b/nexum/crates/nexum-tasks/src/manager.rs similarity index 100% rename from crates/nexum-tasks/src/manager.rs rename to nexum/crates/nexum-tasks/src/manager.rs diff --git a/crates/nexum-tasks/src/shutdown.rs b/nexum/crates/nexum-tasks/src/shutdown.rs similarity index 100% rename from crates/nexum-tasks/src/shutdown.rs rename to nexum/crates/nexum-tasks/src/shutdown.rs diff --git a/crates/nexum-tasks/src/task.rs b/nexum/crates/nexum-tasks/src/task.rs similarity index 100% rename from crates/nexum-tasks/src/task.rs rename to nexum/crates/nexum-tasks/src/task.rs diff --git a/crates/nexum-world/Cargo.toml b/nexum/crates/nexum-world/Cargo.toml similarity index 100% rename from crates/nexum-world/Cargo.toml rename to nexum/crates/nexum-world/Cargo.toml diff --git a/crates/nexum-world/src/lib.rs b/nexum/crates/nexum-world/src/lib.rs similarity index 100% rename from crates/nexum-world/src/lib.rs rename to nexum/crates/nexum-world/src/lib.rs diff --git a/modules/example/Cargo.toml b/nexum/modules/example/Cargo.toml similarity index 100% rename from modules/example/Cargo.toml rename to nexum/modules/example/Cargo.toml diff --git a/modules/example/module.toml b/nexum/modules/example/module.toml similarity index 100% rename from modules/example/module.toml rename to nexum/modules/example/module.toml diff --git a/modules/example/src/lib.rs b/nexum/modules/example/src/lib.rs similarity index 100% rename from modules/example/src/lib.rs rename to nexum/modules/example/src/lib.rs diff --git a/modules/examples/balance-tracker/Cargo.toml b/nexum/modules/examples/balance-tracker/Cargo.toml similarity index 100% rename from modules/examples/balance-tracker/Cargo.toml rename to nexum/modules/examples/balance-tracker/Cargo.toml diff --git a/modules/examples/balance-tracker/module.toml b/nexum/modules/examples/balance-tracker/module.toml similarity index 100% rename from modules/examples/balance-tracker/module.toml rename to nexum/modules/examples/balance-tracker/module.toml diff --git a/modules/examples/balance-tracker/src/lib.rs b/nexum/modules/examples/balance-tracker/src/lib.rs similarity index 100% rename from modules/examples/balance-tracker/src/lib.rs rename to nexum/modules/examples/balance-tracker/src/lib.rs diff --git a/modules/examples/balance-tracker/src/strategy.rs b/nexum/modules/examples/balance-tracker/src/strategy.rs similarity index 100% rename from modules/examples/balance-tracker/src/strategy.rs rename to nexum/modules/examples/balance-tracker/src/strategy.rs diff --git a/modules/examples/http-probe/Cargo.toml b/nexum/modules/examples/http-probe/Cargo.toml similarity index 100% rename from modules/examples/http-probe/Cargo.toml rename to nexum/modules/examples/http-probe/Cargo.toml diff --git a/modules/examples/http-probe/module.toml b/nexum/modules/examples/http-probe/module.toml similarity index 100% rename from modules/examples/http-probe/module.toml rename to nexum/modules/examples/http-probe/module.toml diff --git a/modules/examples/http-probe/src/lib.rs b/nexum/modules/examples/http-probe/src/lib.rs similarity index 100% rename from modules/examples/http-probe/src/lib.rs rename to nexum/modules/examples/http-probe/src/lib.rs diff --git a/modules/examples/http-probe/src/strategy.rs b/nexum/modules/examples/http-probe/src/strategy.rs similarity index 100% rename from modules/examples/http-probe/src/strategy.rs rename to nexum/modules/examples/http-probe/src/strategy.rs diff --git a/modules/examples/price-alert/Cargo.toml b/nexum/modules/examples/price-alert/Cargo.toml similarity index 100% rename from modules/examples/price-alert/Cargo.toml rename to nexum/modules/examples/price-alert/Cargo.toml diff --git a/modules/examples/price-alert/module.toml b/nexum/modules/examples/price-alert/module.toml similarity index 100% rename from modules/examples/price-alert/module.toml rename to nexum/modules/examples/price-alert/module.toml diff --git a/modules/examples/price-alert/src/lib.rs b/nexum/modules/examples/price-alert/src/lib.rs similarity index 100% rename from modules/examples/price-alert/src/lib.rs rename to nexum/modules/examples/price-alert/src/lib.rs diff --git a/modules/examples/price-alert/src/strategy.rs b/nexum/modules/examples/price-alert/src/strategy.rs similarity index 100% rename from modules/examples/price-alert/src/strategy.rs rename to nexum/modules/examples/price-alert/src/strategy.rs diff --git a/modules/fixtures/clock-reader/Cargo.toml b/nexum/modules/fixtures/clock-reader/Cargo.toml similarity index 100% rename from modules/fixtures/clock-reader/Cargo.toml rename to nexum/modules/fixtures/clock-reader/Cargo.toml diff --git a/modules/fixtures/clock-reader/module.toml b/nexum/modules/fixtures/clock-reader/module.toml similarity index 100% rename from modules/fixtures/clock-reader/module.toml rename to nexum/modules/fixtures/clock-reader/module.toml diff --git a/modules/fixtures/clock-reader/src/lib.rs b/nexum/modules/fixtures/clock-reader/src/lib.rs similarity index 100% rename from modules/fixtures/clock-reader/src/lib.rs rename to nexum/modules/fixtures/clock-reader/src/lib.rs diff --git a/modules/fixtures/flaky-bomb/Cargo.toml b/nexum/modules/fixtures/flaky-bomb/Cargo.toml similarity index 100% rename from modules/fixtures/flaky-bomb/Cargo.toml rename to nexum/modules/fixtures/flaky-bomb/Cargo.toml diff --git a/modules/fixtures/flaky-bomb/module.toml b/nexum/modules/fixtures/flaky-bomb/module.toml similarity index 100% rename from modules/fixtures/flaky-bomb/module.toml rename to nexum/modules/fixtures/flaky-bomb/module.toml diff --git a/modules/fixtures/flaky-bomb/src/lib.rs b/nexum/modules/fixtures/flaky-bomb/src/lib.rs similarity index 100% rename from modules/fixtures/flaky-bomb/src/lib.rs rename to nexum/modules/fixtures/flaky-bomb/src/lib.rs diff --git a/modules/fixtures/fuel-bomb/Cargo.toml b/nexum/modules/fixtures/fuel-bomb/Cargo.toml similarity index 100% rename from modules/fixtures/fuel-bomb/Cargo.toml rename to nexum/modules/fixtures/fuel-bomb/Cargo.toml diff --git a/modules/fixtures/fuel-bomb/module.toml b/nexum/modules/fixtures/fuel-bomb/module.toml similarity index 100% rename from modules/fixtures/fuel-bomb/module.toml rename to nexum/modules/fixtures/fuel-bomb/module.toml diff --git a/modules/fixtures/fuel-bomb/src/lib.rs b/nexum/modules/fixtures/fuel-bomb/src/lib.rs similarity index 100% rename from modules/fixtures/fuel-bomb/src/lib.rs rename to nexum/modules/fixtures/fuel-bomb/src/lib.rs diff --git a/modules/fixtures/memory-bomb/Cargo.toml b/nexum/modules/fixtures/memory-bomb/Cargo.toml similarity index 100% rename from modules/fixtures/memory-bomb/Cargo.toml rename to nexum/modules/fixtures/memory-bomb/Cargo.toml diff --git a/modules/fixtures/memory-bomb/module.toml b/nexum/modules/fixtures/memory-bomb/module.toml similarity index 100% rename from modules/fixtures/memory-bomb/module.toml rename to nexum/modules/fixtures/memory-bomb/module.toml diff --git a/modules/fixtures/memory-bomb/src/lib.rs b/nexum/modules/fixtures/memory-bomb/src/lib.rs similarity index 100% rename from modules/fixtures/memory-bomb/src/lib.rs rename to nexum/modules/fixtures/memory-bomb/src/lib.rs diff --git a/modules/fixtures/panic-bomb/Cargo.toml b/nexum/modules/fixtures/panic-bomb/Cargo.toml similarity index 100% rename from modules/fixtures/panic-bomb/Cargo.toml rename to nexum/modules/fixtures/panic-bomb/Cargo.toml diff --git a/modules/fixtures/panic-bomb/module.toml b/nexum/modules/fixtures/panic-bomb/module.toml similarity index 100% rename from modules/fixtures/panic-bomb/module.toml rename to nexum/modules/fixtures/panic-bomb/module.toml diff --git a/modules/fixtures/panic-bomb/src/lib.rs b/nexum/modules/fixtures/panic-bomb/src/lib.rs similarity index 100% rename from modules/fixtures/panic-bomb/src/lib.rs rename to nexum/modules/fixtures/panic-bomb/src/lib.rs diff --git a/modules/fixtures/slow-host/Cargo.toml b/nexum/modules/fixtures/slow-host/Cargo.toml similarity index 100% rename from modules/fixtures/slow-host/Cargo.toml rename to nexum/modules/fixtures/slow-host/Cargo.toml diff --git a/modules/fixtures/slow-host/module.toml b/nexum/modules/fixtures/slow-host/module.toml similarity index 100% rename from modules/fixtures/slow-host/module.toml rename to nexum/modules/fixtures/slow-host/module.toml diff --git a/modules/fixtures/slow-host/src/lib.rs b/nexum/modules/fixtures/slow-host/src/lib.rs similarity index 100% rename from modules/fixtures/slow-host/src/lib.rs rename to nexum/modules/fixtures/slow-host/src/lib.rs diff --git a/scripts/check-venue-agnostic.sh b/nexum/scripts/check-venue-agnostic.sh similarity index 100% rename from scripts/check-venue-agnostic.sh rename to nexum/scripts/check-venue-agnostic.sh diff --git a/wit/nexum-host/chain.wit b/nexum/wit/nexum-host/chain.wit similarity index 100% rename from wit/nexum-host/chain.wit rename to nexum/wit/nexum-host/chain.wit diff --git a/wit/nexum-host/event-module.wit b/nexum/wit/nexum-host/event-module.wit similarity index 100% rename from wit/nexum-host/event-module.wit rename to nexum/wit/nexum-host/event-module.wit diff --git a/wit/nexum-host/identity.wit b/nexum/wit/nexum-host/identity.wit similarity index 100% rename from wit/nexum-host/identity.wit rename to nexum/wit/nexum-host/identity.wit diff --git a/wit/nexum-host/local-store.wit b/nexum/wit/nexum-host/local-store.wit similarity index 100% rename from wit/nexum-host/local-store.wit rename to nexum/wit/nexum-host/local-store.wit diff --git a/wit/nexum-host/logging.wit b/nexum/wit/nexum-host/logging.wit similarity index 100% rename from wit/nexum-host/logging.wit rename to nexum/wit/nexum-host/logging.wit diff --git a/wit/nexum-host/messaging.wit b/nexum/wit/nexum-host/messaging.wit similarity index 100% rename from wit/nexum-host/messaging.wit rename to nexum/wit/nexum-host/messaging.wit diff --git a/wit/nexum-host/query-module.wit b/nexum/wit/nexum-host/query-module.wit similarity index 100% rename from wit/nexum-host/query-module.wit rename to nexum/wit/nexum-host/query-module.wit diff --git a/wit/nexum-host/remote-store.wit b/nexum/wit/nexum-host/remote-store.wit similarity index 100% rename from wit/nexum-host/remote-store.wit rename to nexum/wit/nexum-host/remote-store.wit diff --git a/wit/nexum-host/types.wit b/nexum/wit/nexum-host/types.wit similarity index 100% rename from wit/nexum-host/types.wit rename to nexum/wit/nexum-host/types.wit diff --git a/.env.example b/shepherd/.env.example similarity index 100% rename from .env.example rename to shepherd/.env.example diff --git a/Dockerfile b/shepherd/Dockerfile similarity index 89% rename from Dockerfile rename to shepherd/Dockerfile index bc53f0fb..1bd226bc 100644 --- a/Dockerfile +++ b/shepherd/Dockerfile @@ -122,18 +122,18 @@ COPY --from=build /src/target/wasm32-wasip2/release/*.wasm /opt/shepherd/modules # Module manifests (the `module.toml` next to each cdylib crate). The # engine resolves capability declarations + chain subscriptions from # these at supervisor boot. -COPY --from=build /src/modules/twap-monitor/module.toml /opt/shepherd/manifests/twap-monitor.toml -COPY --from=build /src/modules/ethflow-watcher/module.toml /opt/shepherd/manifests/ethflow-watcher.toml -COPY --from=build /src/modules/examples/price-alert/module.toml /opt/shepherd/manifests/price-alert.toml -COPY --from=build /src/modules/examples/balance-tracker/module.toml /opt/shepherd/manifests/balance-tracker.toml -COPY --from=build /src/modules/examples/stop-loss/module.toml /opt/shepherd/manifests/stop-loss.toml +COPY --from=build /src/shepherd/modules/twap-monitor/module.toml /opt/shepherd/manifests/twap-monitor.toml +COPY --from=build /src/shepherd/modules/ethflow-watcher/module.toml /opt/shepherd/manifests/ethflow-watcher.toml +COPY --from=build /src/nexum/modules/examples/price-alert/module.toml /opt/shepherd/manifests/price-alert.toml +COPY --from=build /src/nexum/modules/examples/balance-tracker/module.toml /opt/shepherd/manifests/balance-tracker.toml +COPY --from=build /src/shepherd/modules/examples/stop-loss/module.toml /opt/shepherd/manifests/stop-loss.toml # The bundled cow venue adapter's manifests; installed via the # engine.toml [[adapters]] stanza, never compiled into the engine. # One manifest per chain: mainnet (cow-venue.toml) and Sepolia # (cow-venue.sepolia.toml); pick the one matching the run's chain. -COPY --from=build /src/crates/cow-venue/module.toml /opt/shepherd/manifests/cow-venue.toml -COPY --from=build /src/crates/cow-venue/module.sepolia.toml /opt/shepherd/manifests/cow-venue.sepolia.toml +COPY --from=build /src/shepherd/crates/cow-venue/module.toml /opt/shepherd/manifests/cow-venue.toml +COPY --from=build /src/shepherd/crates/cow-venue/module.sepolia.toml /opt/shepherd/manifests/cow-venue.sepolia.toml # Drop privileges. The engine never needs root at runtime: it only # reads /etc/shepherd/engine.toml, writes to /var/lib/shepherd, and diff --git a/crates/composable-cow/Cargo.toml b/shepherd/crates/composable-cow/Cargo.toml similarity index 85% rename from crates/composable-cow/Cargo.toml rename to shepherd/crates/composable-cow/Cargo.toml index b0988936..82dd0512 100644 --- a/crates/composable-cow/Cargo.toml +++ b/shepherd/crates/composable-cow/Cargo.toml @@ -18,11 +18,11 @@ alloy-primitives.workspace = true alloy-sol-types.workspace = true borsh.workspace = true cowprotocol = { version = "0.2.0", default-features = false } -nexum-sdk = { path = "../nexum-sdk" } +nexum-sdk = { path = "../../../nexum/crates/nexum-sdk" } # `sweep` slice: the keeper run over the typed CoW client on the # `videre:venue/client` seam. cow-venue = { path = "../cow-venue", features = ["client", "assembly"], optional = true } -videre-sdk = { path = "../videre-sdk", optional = true } +videre-sdk = { path = "../../../videre/crates/videre-sdk", optional = true } tracing = { workspace = true, optional = true } [features] @@ -32,7 +32,7 @@ sweep = ["dep:cow-venue", "dep:videre-sdk", "dep:tracing"] [dev-dependencies] proptest.workspace = true -nexum-sdk-test = { path = "../nexum-sdk-test" } +nexum-sdk-test = { path = "../../../nexum/crates/nexum-sdk-test" } [[test]] name = "sweep" diff --git a/crates/composable-cow/src/body.rs b/shepherd/crates/composable-cow/src/body.rs similarity index 100% rename from crates/composable-cow/src/body.rs rename to shepherd/crates/composable-cow/src/body.rs diff --git a/crates/composable-cow/src/lib.rs b/shepherd/crates/composable-cow/src/lib.rs similarity index 100% rename from crates/composable-cow/src/lib.rs rename to shepherd/crates/composable-cow/src/lib.rs diff --git a/crates/composable-cow/src/poll.rs b/shepherd/crates/composable-cow/src/poll.rs similarity index 100% rename from crates/composable-cow/src/poll.rs rename to shepherd/crates/composable-cow/src/poll.rs diff --git a/crates/composable-cow/src/sweep.rs b/shepherd/crates/composable-cow/src/sweep.rs similarity index 100% rename from crates/composable-cow/src/sweep.rs rename to shepherd/crates/composable-cow/src/sweep.rs diff --git a/crates/composable-cow/tests/sweep.rs b/shepherd/crates/composable-cow/tests/sweep.rs similarity index 100% rename from crates/composable-cow/tests/sweep.rs rename to shepherd/crates/composable-cow/tests/sweep.rs diff --git a/crates/cow-venue/Cargo.toml b/shepherd/crates/cow-venue/Cargo.toml similarity index 94% rename from crates/cow-venue/Cargo.toml rename to shepherd/crates/cow-venue/Cargo.toml index d718ad35..86f71597 100644 --- a/crates/cow-venue/Cargo.toml +++ b/shepherd/crates/cow-venue/Cargo.toml @@ -23,12 +23,12 @@ workspace = true borsh = { workspace = true, optional = true } # Source of the `IntentBody` derive and trait the version enum implements, # and the typed intent client the `client` slice binds to the CoW venue. -videre-sdk = { path = "../videre-sdk", optional = true } +videre-sdk = { path = "../../../videre/crates/videre-sdk", optional = true } # `client` slice only: the keeper `RetryAction` the generated # classification table maps each errorType to. The TOML parse happens in # `build.rs`, so serde/toml/thiserror are build- and dev-only and never # reach a guest that links this slice. -nexum-sdk = { path = "../nexum-sdk", optional = true } +nexum-sdk = { path = "../../../nexum/crates/nexum-sdk", optional = true } # `assembly` slice: the chain-edge order projections and orderbook # submission bodies. Express-declared (not workspace-inherited) so the # guest build never inherits the native `http-client` feature. @@ -55,7 +55,7 @@ serde = { workspace = true } toml = { workspace = true } thiserror = { workspace = true } # The conformance kit: holds the body codec to its published vector set. -videre-test = { path = "../videre-test" } +videre-test = { path = "../../../videre/crates/videre-test" } # Parity tests only: the upstream errorType enum and `retry_hint()` the # shipped table is reconciled against. Never a runtime dependency. cowprotocol = { version = "0.2.0", default-features = false } diff --git a/crates/cow-venue/build.rs b/shepherd/crates/cow-venue/build.rs similarity index 100% rename from crates/cow-venue/build.rs rename to shepherd/crates/cow-venue/build.rs diff --git a/crates/cow-venue/data/classification.toml b/shepherd/crates/cow-venue/data/classification.toml similarity index 100% rename from crates/cow-venue/data/classification.toml rename to shepherd/crates/cow-venue/data/classification.toml diff --git a/crates/cow-venue/module.load.toml b/shepherd/crates/cow-venue/module.load.toml similarity index 100% rename from crates/cow-venue/module.load.toml rename to shepherd/crates/cow-venue/module.load.toml diff --git a/crates/cow-venue/module.sepolia.toml b/shepherd/crates/cow-venue/module.sepolia.toml similarity index 100% rename from crates/cow-venue/module.sepolia.toml rename to shepherd/crates/cow-venue/module.sepolia.toml diff --git a/crates/cow-venue/module.toml b/shepherd/crates/cow-venue/module.toml similarity index 100% rename from crates/cow-venue/module.toml rename to shepherd/crates/cow-venue/module.toml diff --git a/crates/cow-venue/src/adapter.rs b/shepherd/crates/cow-venue/src/adapter.rs similarity index 100% rename from crates/cow-venue/src/adapter.rs rename to shepherd/crates/cow-venue/src/adapter.rs diff --git a/crates/cow-venue/src/assembly.rs b/shepherd/crates/cow-venue/src/assembly.rs similarity index 100% rename from crates/cow-venue/src/assembly.rs rename to shepherd/crates/cow-venue/src/assembly.rs diff --git a/crates/cow-venue/src/body.rs b/shepherd/crates/cow-venue/src/body.rs similarity index 100% rename from crates/cow-venue/src/body.rs rename to shepherd/crates/cow-venue/src/body.rs diff --git a/crates/cow-venue/src/classification.rs b/shepherd/crates/cow-venue/src/classification.rs similarity index 100% rename from crates/cow-venue/src/classification.rs rename to shepherd/crates/cow-venue/src/classification.rs diff --git a/crates/cow-venue/src/classification_data.rs b/shepherd/crates/cow-venue/src/classification_data.rs similarity index 100% rename from crates/cow-venue/src/classification_data.rs rename to shepherd/crates/cow-venue/src/classification_data.rs diff --git a/crates/cow-venue/src/client.rs b/shepherd/crates/cow-venue/src/client.rs similarity index 100% rename from crates/cow-venue/src/client.rs rename to shepherd/crates/cow-venue/src/client.rs diff --git a/crates/cow-venue/src/lib.rs b/shepherd/crates/cow-venue/src/lib.rs similarity index 100% rename from crates/cow-venue/src/lib.rs rename to shepherd/crates/cow-venue/src/lib.rs diff --git a/crates/cow-venue/src/order.rs b/shepherd/crates/cow-venue/src/order.rs similarity index 100% rename from crates/cow-venue/src/order.rs rename to shepherd/crates/cow-venue/src/order.rs diff --git a/crates/cow-venue/tests/conformance.rs b/shepherd/crates/cow-venue/tests/conformance.rs similarity index 100% rename from crates/cow-venue/tests/conformance.rs rename to shepherd/crates/cow-venue/tests/conformance.rs diff --git a/crates/cow-venue/tests/vectors/cow-header-goldens.json b/shepherd/crates/cow-venue/tests/vectors/cow-header-goldens.json similarity index 100% rename from crates/cow-venue/tests/vectors/cow-header-goldens.json rename to shepherd/crates/cow-venue/tests/vectors/cow-header-goldens.json diff --git a/crates/cow-venue/tests/vectors/cow-intent-body.json b/shepherd/crates/cow-venue/tests/vectors/cow-intent-body.json similarity index 100% rename from crates/cow-venue/tests/vectors/cow-intent-body.json rename to shepherd/crates/cow-venue/tests/vectors/cow-intent-body.json diff --git a/crates/cow-venue/tests/wit_layering.rs b/shepherd/crates/cow-venue/tests/wit_layering.rs similarity index 100% rename from crates/cow-venue/tests/wit_layering.rs rename to shepherd/crates/cow-venue/tests/wit_layering.rs diff --git a/crates/shepherd-backtest/Cargo.toml b/shepherd/crates/shepherd-backtest/Cargo.toml similarity index 81% rename from crates/shepherd-backtest/Cargo.toml rename to shepherd/crates/shepherd-backtest/Cargo.toml index e424d50c..12a324ff 100644 --- a/crates/shepherd-backtest/Cargo.toml +++ b/shepherd/crates/shepherd-backtest/Cargo.toml @@ -16,9 +16,9 @@ path = "src/main.rs" # `strategy::on_chain_logs` directly without an embedded runtime. ethflow-watcher = { path = "../../modules/ethflow-watcher" } cow-venue = { path = "../cow-venue", features = ["client"] } -nexum-sdk = { path = "../nexum-sdk" } -nexum-sdk-test = { path = "../nexum-sdk-test" } -videre-sdk = { path = "../videre-sdk" } +nexum-sdk = { path = "../../../nexum/crates/nexum-sdk" } +nexum-sdk-test = { path = "../../../nexum/crates/nexum-sdk-test" } +videre-sdk = { path = "../../../videre/crates/videre-sdk" } anyhow.workspace = true clap.workspace = true diff --git a/crates/shepherd-backtest/src/fixtures.rs b/shepherd/crates/shepherd-backtest/src/fixtures.rs similarity index 100% rename from crates/shepherd-backtest/src/fixtures.rs rename to shepherd/crates/shepherd-backtest/src/fixtures.rs diff --git a/crates/shepherd-backtest/src/main.rs b/shepherd/crates/shepherd-backtest/src/main.rs similarity index 100% rename from crates/shepherd-backtest/src/main.rs rename to shepherd/crates/shepherd-backtest/src/main.rs diff --git a/crates/shepherd-backtest/src/replay.rs b/shepherd/crates/shepherd-backtest/src/replay.rs similarity index 100% rename from crates/shepherd-backtest/src/replay.rs rename to shepherd/crates/shepherd-backtest/src/replay.rs diff --git a/crates/shepherd-backtest/src/report.rs b/shepherd/crates/shepherd-backtest/src/report.rs similarity index 100% rename from crates/shepherd-backtest/src/report.rs rename to shepherd/crates/shepherd-backtest/src/report.rs diff --git a/crates/shepherd/Cargo.toml b/shepherd/crates/shepherd/Cargo.toml similarity index 57% rename from crates/shepherd/Cargo.toml rename to shepherd/crates/shepherd/Cargo.toml index 1de15410..c5ed1b75 100644 --- a/crates/shepherd/Cargo.toml +++ b/shepherd/crates/shepherd/Cargo.toml @@ -13,9 +13,9 @@ name = "shepherd" path = "src/main.rs" [dependencies] -nexum-launch = { path = "../nexum-launch" } -nexum-runtime = { path = "../nexum-runtime" } -videre-host = { path = "../videre-host" } +nexum-launch = { path = "../../../nexum/crates/nexum-launch" } +nexum-runtime = { path = "../../../nexum/crates/nexum-runtime" } +videre-host = { path = "../../../videre/crates/videre-host" } anyhow.workspace = true tokio.workspace = true diff --git a/crates/shepherd/src/main.rs b/shepherd/crates/shepherd/src/main.rs similarity index 100% rename from crates/shepherd/src/main.rs rename to shepherd/crates/shepherd/src/main.rs diff --git a/docker-compose.soak.yml b/shepherd/docker-compose.soak.yml similarity index 100% rename from docker-compose.soak.yml rename to shepherd/docker-compose.soak.yml diff --git a/docker-compose.yml b/shepherd/docker-compose.yml similarity index 98% rename from docker-compose.yml rename to shepherd/docker-compose.yml index 7753f19e..bdfaf8d9 100644 --- a/docker-compose.yml +++ b/shepherd/docker-compose.yml @@ -25,8 +25,8 @@ services: # --build` re-build from the local checkout when the image # isn't published yet. build: - context: . - dockerfile: Dockerfile + context: .. + dockerfile: shepherd/Dockerfile container_name: shepherd restart: unless-stopped # The engine handles SIGINT for graceful shutdown; diff --git a/engine.docker.toml b/shepherd/engine.docker.toml similarity index 100% rename from engine.docker.toml rename to shepherd/engine.docker.toml diff --git a/engine.e2e.toml b/shepherd/engine.e2e.toml similarity index 74% rename from engine.e2e.toml rename to shepherd/engine.e2e.toml index 31960778..61ddedc3 100644 --- a/engine.e2e.toml +++ b/shepherd/engine.e2e.toml @@ -3,11 +3,11 @@ # Boots all 5 production + example modules on Sepolia simultaneously # for the 4-6 h E2E run: # -# - twap-monitor (modules/twap-monitor) -# - ethflow-watcher (modules/ethflow-watcher) -# - price-alert (modules/examples/price-alert) -# - balance-tracker (modules/examples/balance-tracker) -# - stop-loss (modules/examples/stop-loss) +# - twap-monitor (shepherd/modules/twap-monitor) +# - ethflow-watcher (shepherd/modules/ethflow-watcher) +# - price-alert (nexum/modules/examples/price-alert) +# - balance-tracker (nexum/modules/examples/balance-tracker) +# - stop-loss (shepherd/modules/examples/stop-loss) # # This is the integration step between the M3 single-chain runbook # (`engine.m3.toml`, 3 modules) and the 7-day soak @@ -19,7 +19,7 @@ # just run-e2e # # or: # just build-e2e -# cargo run -p nexum-cli -- --engine-config engine.e2e.toml +# cargo run -p nexum-cli -- --engine-config shepherd/engine.e2e.toml # # Operator runbook: docs/operations/e2e-testnet-runbook.md @@ -48,23 +48,23 @@ rpc_url = "wss://ethereum-sepolia-rpc.publicnode.com" [[modules]] path = "target/wasm32-wasip2/release/twap_monitor.wasm" -manifest = "modules/twap-monitor/module.toml" +manifest = "shepherd/modules/twap-monitor/module.toml" [[modules]] path = "target/wasm32-wasip2/release/ethflow_watcher.wasm" -manifest = "modules/ethflow-watcher/module.toml" +manifest = "shepherd/modules/ethflow-watcher/module.toml" [[modules]] path = "target/wasm32-wasip2/release/price_alert.wasm" -manifest = "modules/examples/price-alert/module.toml" +manifest = "nexum/modules/examples/price-alert/module.toml" [[modules]] path = "target/wasm32-wasip2/release/balance_tracker.wasm" -manifest = "modules/examples/balance-tracker/module.toml" +manifest = "nexum/modules/examples/balance-tracker/module.toml" [[modules]] path = "target/wasm32-wasip2/release/stop_loss.wasm" -manifest = "modules/examples/stop-loss/module.toml" +manifest = "shepherd/modules/examples/stop-loss/module.toml" # --- adapters --------------------------------------------------------- @@ -73,5 +73,5 @@ manifest = "modules/examples/stop-loss/module.toml" # match the chain twap indexes. [[adapters]] path = "target/wasm32-wasip2/release/cow_venue.wasm" -manifest = "crates/cow-venue/module.sepolia.toml" +manifest = "shepherd/crates/cow-venue/module.sepolia.toml" http_allow = ["api.cow.fi"] diff --git a/engine.example.toml b/shepherd/engine.example.toml similarity index 98% rename from engine.example.toml rename to shepherd/engine.example.toml index be346456..7a119317 100644 --- a/engine.example.toml +++ b/shepherd/engine.example.toml @@ -113,5 +113,5 @@ rpc_url = "${BASE_RPC_URL}" # [[adapters]] # path = "target/wasm32-wasip2/release/cow_venue.wasm" -# manifest = "crates/cow-venue/module.toml" +# manifest = "shepherd/crates/cow-venue/module.toml" # http_allow = ["api.cow.fi"] diff --git a/engine.load.toml b/shepherd/engine.load.toml similarity index 90% rename from engine.load.toml rename to shepherd/engine.load.toml index 4f8072b2..4c837856 100644 --- a/engine.load.toml +++ b/shepherd/engine.load.toml @@ -35,16 +35,16 @@ rpc_url = "ws://localhost:8545" [[modules]] path = "./target/wasm32-wasip2/release/twap_monitor.wasm" -manifest = "./modules/twap-monitor/module.toml" +manifest = "./shepherd/modules/twap-monitor/module.toml" # The cow venue adapter twap-monitor submits through (`just # build-cow-venue`). Load-variant manifest: Sepolia chain id with the # orderbook re-pointed at tools/orderbook-mock. [[adapters]] path = "./target/wasm32-wasip2/release/cow_venue.wasm" -manifest = "./crates/cow-venue/module.load.toml" +manifest = "./shepherd/crates/cow-venue/module.load.toml" http_allow = ["localhost"] [[modules]] path = "./target/wasm32-wasip2/release/ethflow_watcher.wasm" -manifest = "./modules/ethflow-watcher/module.toml" +manifest = "./shepherd/modules/ethflow-watcher/module.toml" diff --git a/engine.m2.toml b/shepherd/engine.m2.toml similarity index 84% rename from engine.m2.toml rename to shepherd/engine.m2.toml index 11f29389..d4ee2181 100644 --- a/engine.m2.toml +++ b/shepherd/engine.m2.toml @@ -8,7 +8,7 @@ # # or: # cargo build -p twap-monitor --target wasm32-wasip2 --release # cargo build -p ethflow-watcher --target wasm32-wasip2 --release -# cargo run -p nexum-cli -- --engine-config engine.m2.toml +# cargo run -p nexum-cli -- --engine-config shepherd/engine.m2.toml # # Override RPC if rate-limited: # SEPOLIA_RPC=wss://eth-sepolia.g.alchemy.com/v2/ ... @@ -28,16 +28,16 @@ rpc_url = "wss://ethereum-sepolia-rpc.publicnode.com" [[modules]] path = "target/wasm32-wasip2/release/twap_monitor.wasm" -manifest = "modules/twap-monitor/module.toml" +manifest = "shepherd/modules/twap-monitor/module.toml" [[modules]] path = "target/wasm32-wasip2/release/ethflow_watcher.wasm" -manifest = "modules/ethflow-watcher/module.toml" +manifest = "shepherd/modules/ethflow-watcher/module.toml" # The cow venue adapter twap-monitor submits through (`just # build-cow-venue`). Sepolia manifest: the adapter's orderbook must # match the chain twap indexes. [[adapters]] path = "target/wasm32-wasip2/release/cow_venue.wasm" -manifest = "crates/cow-venue/module.sepolia.toml" +manifest = "shepherd/crates/cow-venue/module.sepolia.toml" http_allow = ["api.cow.fi"] diff --git a/engine.m3.toml b/shepherd/engine.m3.toml similarity index 82% rename from engine.m3.toml rename to shepherd/engine.m3.toml index fc21fefe..98eb0731 100644 --- a/engine.m3.toml +++ b/shepherd/engine.m3.toml @@ -12,7 +12,7 @@ # cargo build -p balance-tracker --target wasm32-wasip2 --release # cargo build -p stop-loss --target wasm32-wasip2 --release # cargo build -p cow-venue --features adapter --target wasm32-wasip2 --release -# cargo run -p shepherd -- --engine-config engine.m3.toml +# cargo run -p shepherd -- --engine-config shepherd/engine.m3.toml [engine] # Separate from data/m2 and the M1 example state. @@ -26,15 +26,15 @@ rpc_url = "wss://ethereum-sepolia-rpc.publicnode.com" [[modules]] path = "target/wasm32-wasip2/release/price_alert.wasm" -manifest = "modules/examples/price-alert/module.toml" +manifest = "nexum/modules/examples/price-alert/module.toml" [[modules]] path = "target/wasm32-wasip2/release/balance_tracker.wasm" -manifest = "modules/examples/balance-tracker/module.toml" +manifest = "nexum/modules/examples/balance-tracker/module.toml" [[modules]] path = "target/wasm32-wasip2/release/stop_loss.wasm" -manifest = "modules/examples/stop-loss/module.toml" +manifest = "shepherd/modules/examples/stop-loss/module.toml" # --- adapters --------------------------------------------------------- @@ -43,5 +43,5 @@ manifest = "modules/examples/stop-loss/module.toml" # match the chain the oracle is read on. [[adapters]] path = "target/wasm32-wasip2/release/cow_venue.wasm" -manifest = "crates/cow-venue/module.sepolia.toml" +manifest = "shepherd/crates/cow-venue/module.sepolia.toml" http_allow = ["api.cow.fi"] diff --git a/engine.soak.docker.toml b/shepherd/engine.soak.docker.toml similarity index 100% rename from engine.soak.docker.toml rename to shepherd/engine.soak.docker.toml diff --git a/engine.soak.toml b/shepherd/engine.soak.toml similarity index 86% rename from engine.soak.toml rename to shepherd/engine.soak.toml index ba3e78d7..3500a3eb 100644 --- a/engine.soak.toml +++ b/shepherd/engine.soak.toml @@ -11,7 +11,7 @@ # -p balance-tracker -p stop-loss # cargo build --target wasm32-wasip2 --release \ # -p cow-venue --features cow-venue/adapter -# ./target/release/nexum --engine-config engine.soak.toml +# ./target/release/nexum --engine-config shepherd/engine.soak.toml # # Swap rpc_url below for your paid endpoint before starting, or set it # to "${SEPOLIA_RPC_URL}" - the engine substitutes ${VAR} from the @@ -51,23 +51,23 @@ rpc_url = "wss://ethereum-sepolia-rpc.publicnode.com" [[modules]] path = "target/wasm32-wasip2/release/twap_monitor.wasm" -manifest = "modules/twap-monitor/module.toml" +manifest = "shepherd/modules/twap-monitor/module.toml" [[modules]] path = "target/wasm32-wasip2/release/ethflow_watcher.wasm" -manifest = "modules/ethflow-watcher/module.toml" +manifest = "shepherd/modules/ethflow-watcher/module.toml" [[modules]] path = "target/wasm32-wasip2/release/price_alert.wasm" -manifest = "modules/examples/price-alert/module.toml" +manifest = "nexum/modules/examples/price-alert/module.toml" [[modules]] path = "target/wasm32-wasip2/release/balance_tracker.wasm" -manifest = "modules/examples/balance-tracker/module.toml" +manifest = "nexum/modules/examples/balance-tracker/module.toml" [[modules]] path = "target/wasm32-wasip2/release/stop_loss.wasm" -manifest = "modules/examples/stop-loss/module.toml" +manifest = "shepherd/modules/examples/stop-loss/module.toml" # --- adapters --------------------------------------------------------- @@ -76,5 +76,5 @@ manifest = "modules/examples/stop-loss/module.toml" # match the chain twap indexes. [[adapters]] path = "target/wasm32-wasip2/release/cow_venue.wasm" -manifest = "crates/cow-venue/module.sepolia.toml" +manifest = "shepherd/crates/cow-venue/module.sepolia.toml" http_allow = ["api.cow.fi"] diff --git a/modules/ethflow-watcher/Cargo.toml b/shepherd/modules/ethflow-watcher/Cargo.toml similarity index 83% rename from modules/ethflow-watcher/Cargo.toml rename to shepherd/modules/ethflow-watcher/Cargo.toml index eff3f0ba..1f5d3c99 100644 --- a/modules/ethflow-watcher/Cargo.toml +++ b/shepherd/modules/ethflow-watcher/Cargo.toml @@ -13,8 +13,8 @@ repository.workspace = true crate-type = ["cdylib", "rlib"] [dependencies] -nexum-sdk = { path = "../../crates/nexum-sdk" } -videre-sdk = { path = "../../crates/videre-sdk" } +nexum-sdk = { path = "../../../nexum/crates/nexum-sdk" } +videre-sdk = { path = "../../../videre/crates/videre-sdk" } cow-venue = { path = "../../crates/cow-venue", features = ["client", "assembly"] } cowprotocol = { version = "0.2.0", default-features = false } alloy-primitives = { version = "1.6", default-features = false, features = ["std"] } @@ -23,4 +23,4 @@ tracing = { version = "0.1", default-features = false } wit-bindgen = { version = "0.59", default-features = false, features = ["macros", "realloc"] } [dev-dependencies] -nexum-sdk-test = { path = "../../crates/nexum-sdk-test" } +nexum-sdk-test = { path = "../../../nexum/crates/nexum-sdk-test" } diff --git a/modules/ethflow-watcher/module.toml b/shepherd/modules/ethflow-watcher/module.toml similarity index 100% rename from modules/ethflow-watcher/module.toml rename to shepherd/modules/ethflow-watcher/module.toml diff --git a/modules/ethflow-watcher/src/lib.rs b/shepherd/modules/ethflow-watcher/src/lib.rs similarity index 100% rename from modules/ethflow-watcher/src/lib.rs rename to shepherd/modules/ethflow-watcher/src/lib.rs diff --git a/modules/ethflow-watcher/src/strategy.rs b/shepherd/modules/ethflow-watcher/src/strategy.rs similarity index 100% rename from modules/ethflow-watcher/src/strategy.rs rename to shepherd/modules/ethflow-watcher/src/strategy.rs diff --git a/modules/examples/stop-loss/Cargo.toml b/shepherd/modules/examples/stop-loss/Cargo.toml similarity index 85% rename from modules/examples/stop-loss/Cargo.toml rename to shepherd/modules/examples/stop-loss/Cargo.toml index 82b3c35a..a14946e2 100644 --- a/modules/examples/stop-loss/Cargo.toml +++ b/shepherd/modules/examples/stop-loss/Cargo.toml @@ -11,8 +11,8 @@ crate-type = ["cdylib"] [dependencies] cow-venue = { path = "../../../crates/cow-venue", features = ["client"] } -nexum-sdk = { path = "../../../crates/nexum-sdk" } -videre-sdk = { path = "../../../crates/videre-sdk" } +nexum-sdk = { path = "../../../../nexum/crates/nexum-sdk" } +videre-sdk = { path = "../../../../videre/crates/videre-sdk" } cowprotocol = { version = "0.2.0", default-features = false } alloy-primitives = { version = "1.6", default-features = false, features = ["std"] } tracing = { version = "0.1", default-features = false } @@ -21,7 +21,7 @@ wit-bindgen = { version = "0.59", default-features = false, features = ["macros" [dev-dependencies] # The chain-edge projections back the pinned-UID regression test. cow-venue = { path = "../../../crates/cow-venue", features = ["client", "assembly"] } -nexum-sdk-test = { path = "../../../crates/nexum-sdk-test" } +nexum-sdk-test = { path = "../../../../nexum/crates/nexum-sdk-test" } # Only used by tests in `strategy.rs` to encode a synthetic oracle # return body; the production code uses `nexum_sdk::chain::chainlink`. alloy-sol-types = { version = "1.6", default-features = false, features = ["std"] } diff --git a/modules/examples/stop-loss/module.toml b/shepherd/modules/examples/stop-loss/module.toml similarity index 100% rename from modules/examples/stop-loss/module.toml rename to shepherd/modules/examples/stop-loss/module.toml diff --git a/modules/examples/stop-loss/src/lib.rs b/shepherd/modules/examples/stop-loss/src/lib.rs similarity index 100% rename from modules/examples/stop-loss/src/lib.rs rename to shepherd/modules/examples/stop-loss/src/lib.rs diff --git a/modules/examples/stop-loss/src/strategy.rs b/shepherd/modules/examples/stop-loss/src/strategy.rs similarity index 100% rename from modules/examples/stop-loss/src/strategy.rs rename to shepherd/modules/examples/stop-loss/src/strategy.rs diff --git a/modules/twap-monitor/Cargo.toml b/shepherd/modules/twap-monitor/Cargo.toml similarity index 82% rename from modules/twap-monitor/Cargo.toml rename to shepherd/modules/twap-monitor/Cargo.toml index 26dc396e..abf8b075 100644 --- a/modules/twap-monitor/Cargo.toml +++ b/shepherd/modules/twap-monitor/Cargo.toml @@ -11,8 +11,8 @@ crate-type = ["cdylib"] [dependencies] composable-cow = { path = "../../crates/composable-cow", features = ["sweep"] } cow-venue = { path = "../../crates/cow-venue", features = ["client"] } -nexum-sdk = { path = "../../crates/nexum-sdk" } -videre-sdk = { path = "../../crates/videre-sdk" } +nexum-sdk = { path = "../../../nexum/crates/nexum-sdk" } +videre-sdk = { path = "../../../videre/crates/videre-sdk" } cowprotocol = { version = "0.2.0", default-features = false } alloy-primitives = { version = "1.6", default-features = false, features = ["std"] } alloy-sol-types = { version = "1.6", default-features = false, features = ["std"] } @@ -22,4 +22,4 @@ wit-bindgen = { version = "0.59", default-features = false, features = ["macros" [dev-dependencies] cow-venue = { path = "../../crates/cow-venue", features = ["client", "assembly"] } serde_json = { version = "1", default-features = false, features = ["alloc"] } -nexum-sdk-test = { path = "../../crates/nexum-sdk-test" } +nexum-sdk-test = { path = "../../../nexum/crates/nexum-sdk-test" } diff --git a/modules/twap-monitor/module.toml b/shepherd/modules/twap-monitor/module.toml similarity index 100% rename from modules/twap-monitor/module.toml rename to shepherd/modules/twap-monitor/module.toml diff --git a/modules/twap-monitor/src/lib.rs b/shepherd/modules/twap-monitor/src/lib.rs similarity index 100% rename from modules/twap-monitor/src/lib.rs rename to shepherd/modules/twap-monitor/src/lib.rs diff --git a/modules/twap-monitor/src/strategy.rs b/shepherd/modules/twap-monitor/src/strategy.rs similarity index 100% rename from modules/twap-monitor/src/strategy.rs rename to shepherd/modules/twap-monitor/src/strategy.rs diff --git a/scripts/README.md b/shepherd/scripts/README.md similarity index 100% rename from scripts/README.md rename to shepherd/scripts/README.md diff --git a/scripts/_ethflow_quote.py b/shepherd/scripts/_ethflow_quote.py similarity index 100% rename from scripts/_ethflow_quote.py rename to shepherd/scripts/_ethflow_quote.py diff --git a/scripts/_twap_calldata.py b/shepherd/scripts/_twap_calldata.py similarity index 100% rename from scripts/_twap_calldata.py rename to shepherd/scripts/_twap_calldata.py diff --git a/scripts/check-cow-orderbook-only.sh b/shepherd/scripts/check-cow-orderbook-only.sh similarity index 100% rename from scripts/check-cow-orderbook-only.sh rename to shepherd/scripts/check-cow-orderbook-only.sh diff --git a/scripts/e2e-finish.sh b/shepherd/scripts/e2e-finish.sh similarity index 95% rename from scripts/e2e-finish.sh rename to shepherd/scripts/e2e-finish.sh index 43cebfe6..687e8e59 100755 --- a/scripts/e2e-finish.sh +++ b/shepherd/scripts/e2e-finish.sh @@ -21,7 +21,7 @@ require_cmd curl load_env -[[ -f "$STATE_FILE" ]] || die "scripts/.state not found — was scripts/e2e-run.sh ever invoked?" +[[ -f "$STATE_FILE" ]] || die "shepherd/scripts/.state not found — was shepherd/scripts/e2e-run.sh ever invoked?" engine_pid="$(state_value ENGINE_PID)" || die "ENGINE_PID missing from .state" log_file="$(state_value LOG_FILE)" || die "LOG_FILE missing from .state" start_ts="$(state_value START_TS)" || die "START_TS missing from .state" diff --git a/scripts/e2e-onchain.sh b/shepherd/scripts/e2e-onchain.sh similarity index 100% rename from scripts/e2e-onchain.sh rename to shepherd/scripts/e2e-onchain.sh diff --git a/scripts/e2e-report-gen.sh b/shepherd/scripts/e2e-report-gen.sh similarity index 99% rename from scripts/e2e-report-gen.sh rename to shepherd/scripts/e2e-report-gen.sh index 29f156bf..7c8e263b 100755 --- a/scripts/e2e-report-gen.sh +++ b/shepherd/scripts/e2e-report-gen.sh @@ -15,7 +15,7 @@ source "$SCRIPT_DIR/lib.sh" require_cmd jq require_cmd python3 -[[ -f "$STATE_FILE" ]] || die "scripts/.state not found" +[[ -f "$STATE_FILE" ]] || die "shepherd/scripts/.state not found" log_file="$(state_value LOG_FILE)" || die "LOG_FILE missing" metrics_start="$(state_value METRICS_START)" || die "METRICS_START missing" metrics_end="$(state_value METRICS_END)" || die "METRICS_END missing" diff --git a/scripts/e2e-run.sh b/shepherd/scripts/e2e-run.sh similarity index 98% rename from scripts/e2e-run.sh rename to shepherd/scripts/e2e-run.sh index 8ec2f4e1..1517c343 100755 --- a/scripts/e2e-run.sh +++ b/shepherd/scripts/e2e-run.sh @@ -64,7 +64,7 @@ log "launching engine — log: $log_file" ( cd "$REPO_ROOT" nohup "$REPO_ROOT/target/release/shepherd" \ - --engine-config "$REPO_ROOT/engine.e2e.local.toml" \ + --engine-config "$REPO_ROOT/shepherd/engine.e2e.local.toml" \ >"$log_file" 2>&1 & echo $! > "$STATE_FILE.pid.tmp" ) diff --git a/scripts/env-template b/shepherd/scripts/env-template similarity index 93% rename from scripts/env-template rename to shepherd/scripts/env-template index 54b12f29..dd209031 100644 --- a/scripts/env-template +++ b/shepherd/scripts/env-template @@ -21,8 +21,8 @@ RPC_URL_SEPOLIA_HTTP="https://YOUR_PROVIDER/sepolia/YOUR_KEY" # Test EOA private key (0x-prefixed, 32 bytes hex). The EOA must: # - hold ≥ 0.05 ETH on Sepolia (faucet); -# - match `owner` in modules/examples/stop-loss/module.toml; -# - be in the addresses list of modules/examples/balance-tracker/module.toml. +# - match `owner` in shepherd/modules/examples/stop-loss/module.toml; +# - be in the addresses list of nexum/modules/examples/balance-tracker/module.toml. # # Treat this file like any other credential: never commit, never # share, never paste into chat. The scripts read this variable diff --git a/scripts/lib.sh b/shepherd/scripts/lib.sh similarity index 89% rename from scripts/lib.sh rename to shepherd/scripts/lib.sh index 229a83df..c2cf40c3 100644 --- a/scripts/lib.sh +++ b/shepherd/scripts/lib.sh @@ -6,7 +6,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" ENV_FILE="$SCRIPT_DIR/.env" STATE_FILE="$SCRIPT_DIR/.state" REPORTS_DIR="$REPO_ROOT/docs/operations/e2e-reports" @@ -34,13 +34,13 @@ require_cmd() { } load_env() { - [[ -f "$ENV_FILE" ]] || die "scripts/.env not found. Run: cp scripts/env-template scripts/.env && \$EDITOR scripts/.env" + [[ -f "$ENV_FILE" ]] || die "shepherd/scripts/.env not found. Run: cp shepherd/scripts/env-template shepherd/scripts/.env && \$EDITOR shepherd/scripts/.env" set -a # shellcheck disable=SC1090 source "$ENV_FILE" set +a - [[ -n "${RPC_URL_SEPOLIA:-}" ]] || die "RPC_URL_SEPOLIA unset in scripts/.env" - [[ -n "${RPC_URL_SEPOLIA_HTTP:-}" ]] || die "RPC_URL_SEPOLIA_HTTP unset in scripts/.env" + [[ -n "${RPC_URL_SEPOLIA:-}" ]] || die "RPC_URL_SEPOLIA unset in shepherd/scripts/.env" + [[ -n "${RPC_URL_SEPOLIA_HTTP:-}" ]] || die "RPC_URL_SEPOLIA_HTTP unset in shepherd/scripts/.env" [[ "${RPC_URL_SEPOLIA}" == wss* ]] || die "RPC_URL_SEPOLIA must be wss:// (engine uses eth_subscribe)" [[ "${RPC_URL_SEPOLIA_HTTP}" == http* ]] || die "RPC_URL_SEPOLIA_HTTP must be http(s)://" } @@ -49,8 +49,8 @@ load_env() { # substituted in. engine.e2e.local.toml is gitignored (via *.local.toml) # so the URL with embedded key never leaks into git history. render_engine_config() { - local src="$REPO_ROOT/engine.e2e.toml" - local dst="$REPO_ROOT/engine.e2e.local.toml" + local src="$REPO_ROOT/shepherd/engine.e2e.toml" + local dst="$REPO_ROOT/shepherd/engine.e2e.local.toml" [[ -f "$src" ]] || die "engine.e2e.toml not found at $src" # We do the substitution via python -c to avoid any sed escape diff --git a/scripts/load-bootstrap.sh b/shepherd/scripts/load-bootstrap.sh similarity index 98% rename from scripts/load-bootstrap.sh rename to shepherd/scripts/load-bootstrap.sh index 9d32786c..201eb0f2 100755 --- a/scripts/load-bootstrap.sh +++ b/shepherd/scripts/load-bootstrap.sh @@ -15,7 +15,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" PID_FILE="/tmp/shepherd-load.pids" LOG_DIR="${LOG_DIR:-/tmp/shepherd-load}" mkdir -p "$LOG_DIR" diff --git a/scripts/load-run.sh b/shepherd/scripts/load-run.sh similarity index 96% rename from scripts/load-run.sh rename to shepherd/scripts/load-run.sh index af636aef..64be5bf7 100755 --- a/scripts/load-run.sh +++ b/shepherd/scripts/load-run.sh @@ -24,7 +24,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" LOG_DIR="${LOG_DIR:-/tmp/shepherd-load}" PID_FILE="/tmp/shepherd-load.pids" @@ -82,8 +82,8 @@ log "building modules + engine + load-gen (release)" -p twap-monitor -p ethflow-watcher ) ( cd "$REPO_ROOT" && cargo build --release --quiet -p shepherd -p load-gen ) -log "starting shepherd (engine.load.toml)" -( cd "$REPO_ROOT" && ./target/release/shepherd --engine-config engine.load.toml ) \ +log "starting shepherd (shepherd/engine.load.toml)" +( cd "$REPO_ROOT" && ./target/release/shepherd --engine-config shepherd/engine.load.toml ) \ >"$LOG_DIR/engine.log" 2>&1 & ENGINE_PID=$! echo "ENGINE_PID=$ENGINE_PID" >>"$PID_FILE" diff --git a/scripts/load-teardown.sh b/shepherd/scripts/load-teardown.sh similarity index 100% rename from scripts/load-teardown.sh rename to shepherd/scripts/load-teardown.sh diff --git a/scripts/soak-snapshot.sh b/shepherd/scripts/soak-snapshot.sh similarity index 100% rename from scripts/soak-snapshot.sh rename to shepherd/scripts/soak-snapshot.sh diff --git a/tools/backtest-collect/backtest_collect.py b/shepherd/tools/backtest-collect/backtest_collect.py similarity index 99% rename from tools/backtest-collect/backtest_collect.py rename to shepherd/tools/backtest-collect/backtest_collect.py index 19ef9cd8..7ec21cd1 100644 --- a/tools/backtest-collect/backtest_collect.py +++ b/shepherd/tools/backtest-collect/backtest_collect.py @@ -370,7 +370,7 @@ def main() -> int: parser.add_argument( "--out", type=Path, - default=Path("tools/backtest-collect") + default=Path("shepherd/tools/backtest-collect") / f"fixtures-{datetime.now(timezone.utc):%Y-%m-%d}.json", ) parser.add_argument( diff --git a/tools/backtest-collect/fixtures-2026-06-22.json b/shepherd/tools/backtest-collect/fixtures-2026-06-22.json similarity index 100% rename from tools/backtest-collect/fixtures-2026-06-22.json rename to shepherd/tools/backtest-collect/fixtures-2026-06-22.json diff --git a/tools/baseline-latency/.gitignore b/shepherd/tools/baseline-latency/.gitignore similarity index 100% rename from tools/baseline-latency/.gitignore rename to shepherd/tools/baseline-latency/.gitignore diff --git a/tools/baseline-latency/baseline_latency.py b/shepherd/tools/baseline-latency/baseline_latency.py similarity index 99% rename from tools/baseline-latency/baseline_latency.py rename to shepherd/tools/baseline-latency/baseline_latency.py index 4e36a9ac..ee8b78cb 100644 --- a/tools/baseline-latency/baseline_latency.py +++ b/shepherd/tools/baseline-latency/baseline_latency.py @@ -790,7 +790,7 @@ def main() -> int: parser.add_argument( "--data-dir", type=Path, - default=Path("tools/baseline-latency/data"), + default=Path("shepherd/tools/baseline-latency/data"), ) args = parser.parse_args() diff --git a/tools/baseline-latency/data/arbitrum_one.json b/shepherd/tools/baseline-latency/data/arbitrum_one.json similarity index 100% rename from tools/baseline-latency/data/arbitrum_one.json rename to shepherd/tools/baseline-latency/data/arbitrum_one.json diff --git a/tools/baseline-latency/data/base.json b/shepherd/tools/baseline-latency/data/base.json similarity index 100% rename from tools/baseline-latency/data/base.json rename to shepherd/tools/baseline-latency/data/base.json diff --git a/tools/baseline-latency/data/gnosis.json b/shepherd/tools/baseline-latency/data/gnosis.json similarity index 100% rename from tools/baseline-latency/data/gnosis.json rename to shepherd/tools/baseline-latency/data/gnosis.json diff --git a/tools/baseline-latency/data/mainnet.json b/shepherd/tools/baseline-latency/data/mainnet.json similarity index 100% rename from tools/baseline-latency/data/mainnet.json rename to shepherd/tools/baseline-latency/data/mainnet.json diff --git a/tools/baseline-latency/data/sepolia.json b/shepherd/tools/baseline-latency/data/sepolia.json similarity index 100% rename from tools/baseline-latency/data/sepolia.json rename to shepherd/tools/baseline-latency/data/sepolia.json diff --git a/tools/load-gen/Cargo.toml b/shepherd/tools/load-gen/Cargo.toml similarity index 100% rename from tools/load-gen/Cargo.toml rename to shepherd/tools/load-gen/Cargo.toml diff --git a/tools/load-gen/src/main.rs b/shepherd/tools/load-gen/src/main.rs similarity index 100% rename from tools/load-gen/src/main.rs rename to shepherd/tools/load-gen/src/main.rs diff --git a/tools/orderbook-mock/Cargo.toml b/shepherd/tools/orderbook-mock/Cargo.toml similarity index 100% rename from tools/orderbook-mock/Cargo.toml rename to shepherd/tools/orderbook-mock/Cargo.toml diff --git a/tools/orderbook-mock/src/main.rs b/shepherd/tools/orderbook-mock/src/main.rs similarity index 100% rename from tools/orderbook-mock/src/main.rs rename to shepherd/tools/orderbook-mock/src/main.rs diff --git a/shepherd/wit/nexum-host b/shepherd/wit/nexum-host new file mode 120000 index 00000000..9b9eefce --- /dev/null +++ b/shepherd/wit/nexum-host @@ -0,0 +1 @@ +../../nexum/wit/nexum-host \ No newline at end of file diff --git a/wit/shepherd-cow/cow-events.wit b/shepherd/wit/shepherd-cow/cow-events.wit similarity index 100% rename from wit/shepherd-cow/cow-events.wit rename to shepherd/wit/shepherd-cow/cow-events.wit diff --git a/shepherd/wit/videre-types b/shepherd/wit/videre-types new file mode 120000 index 00000000..efc63dbb --- /dev/null +++ b/shepherd/wit/videre-types @@ -0,0 +1 @@ +../../videre/wit/videre-types \ No newline at end of file diff --git a/shepherd/wit/videre-value-flow b/shepherd/wit/videre-value-flow new file mode 120000 index 00000000..a5d467ee --- /dev/null +++ b/shepherd/wit/videre-value-flow @@ -0,0 +1 @@ +../../videre/wit/videre-value-flow \ No newline at end of file diff --git a/shepherd/wit/videre-venue b/shepherd/wit/videre-venue new file mode 120000 index 00000000..b992a9eb --- /dev/null +++ b/shepherd/wit/videre-venue @@ -0,0 +1 @@ +../../videre/wit/videre-venue \ No newline at end of file diff --git a/crates/no-std-probe/Cargo.toml b/videre/crates/no-std-probe/Cargo.toml similarity index 100% rename from crates/no-std-probe/Cargo.toml rename to videre/crates/no-std-probe/Cargo.toml diff --git a/crates/no-std-probe/src/lib.rs b/videre/crates/no-std-probe/src/lib.rs similarity index 100% rename from crates/no-std-probe/src/lib.rs rename to videre/crates/no-std-probe/src/lib.rs diff --git a/crates/videre-host/Cargo.toml b/videre/crates/videre-host/Cargo.toml similarity index 74% rename from crates/videre-host/Cargo.toml rename to videre/crates/videre-host/Cargo.toml index 8db90362..a7346a79 100644 --- a/crates/videre-host/Cargo.toml +++ b/videre/crates/videre-host/Cargo.toml @@ -11,10 +11,10 @@ workspace = true [dependencies] # The runtime seam this crate plugs into; the only nexum crate edge. -nexum-runtime = { path = "../nexum-runtime" } +nexum-runtime = { path = "../../../nexum/crates/nexum-runtime" } # Encoder for the opaque status body the host event stream carries; the # registry lowers an adapter-reported status through it. -nexum-status-body = { path = "../nexum-status-body" } +nexum-status-body = { path = "../../../nexum/crates/nexum-status-body" } wasmtime.workspace = true anyhow.workspace = true @@ -27,6 +27,6 @@ toml.workspace = true tracing.workspace = true [dev-dependencies] -nexum-runtime = { path = "../nexum-runtime", features = ["test-utils"] } -nexum-tasks = { path = "../nexum-tasks" } +nexum-runtime = { path = "../../../nexum/crates/nexum-runtime", features = ["test-utils"] } +nexum-tasks = { path = "../../../nexum/crates/nexum-tasks" } tempfile.workspace = true diff --git a/crates/videre-host/src/bindings.rs b/videre/crates/videre-host/src/bindings.rs similarity index 100% rename from crates/videre-host/src/bindings.rs rename to videre/crates/videre-host/src/bindings.rs diff --git a/crates/videre-host/src/client.rs b/videre/crates/videre-host/src/client.rs similarity index 100% rename from crates/videre-host/src/client.rs rename to videre/crates/videre-host/src/client.rs diff --git a/crates/videre-host/src/handshake.rs b/videre/crates/videre-host/src/handshake.rs similarity index 100% rename from crates/videre-host/src/handshake.rs rename to videre/crates/videre-host/src/handshake.rs diff --git a/crates/videre-host/src/lib.rs b/videre/crates/videre-host/src/lib.rs similarity index 100% rename from crates/videre-host/src/lib.rs rename to videre/crates/videre-host/src/lib.rs diff --git a/crates/videre-host/src/registry.rs b/videre/crates/videre-host/src/registry.rs similarity index 100% rename from crates/videre-host/src/registry.rs rename to videre/crates/videre-host/src/registry.rs diff --git a/crates/videre-host/tests/platform.rs b/videre/crates/videre-host/tests/platform.rs similarity index 97% rename from crates/videre-host/tests/platform.rs rename to videre/crates/videre-host/tests/platform.rs index eadd9165..0cf0b336 100644 --- a/crates/videre-host/tests/platform.rs +++ b/videre/crates/videre-host/tests/platform.rs @@ -34,12 +34,14 @@ const INTENT_STATUS: &str = "intent-status"; // ── fixtures + assembly ─────────────────────────────────────────────── /// Workspace-root-relative path. `CARGO_MANIFEST_DIR` is -/// `crates/videre-host`; two parents up is the workspace root. +/// `videre/crates/videre-host`; three parents up is the workspace root. fn workspace_path(relative: &str) -> PathBuf { Path::new(env!("CARGO_MANIFEST_DIR")) .parent() .expect("crates dir") .parent() + .expect("videre root") + .parent() .expect("workspace root") .join(relative) } @@ -396,7 +398,7 @@ async fn e2e_ethflow_watcher_boots_and_handles_intent_status() { let Some(wasm) = module_wasm_or_skip("ethflow-watcher") else { return; }; - let manifest = workspace_path("modules/ethflow-watcher/module.toml"); + let manifest = workspace_path("shepherd/modules/ethflow-watcher/module.toml"); let videre = Arc::new(platform(&EngineConfig::default())); let mut supervisor = boot_example(&videre, &wasm, &manifest).await; assert_eq!(supervisor.alive_count(), 1); @@ -573,13 +575,17 @@ async fn e2e_echo_module_registry_adapter_round_trip() { let config = EngineConfig { adapters: vec![AdapterEntry { path: adapter_wasm, - manifest: Some(workspace_path("modules/examples/echo-venue/module.toml")), + manifest: Some(workspace_path( + "videre/modules/examples/echo-venue/module.toml", + )), http_allow: Vec::new(), messaging_topics: Vec::new(), }], modules: vec![ModuleEntry { path: module_wasm, - manifest: Some(workspace_path("modules/examples/echo-client/module.toml")), + manifest: Some(workspace_path( + "videre/modules/examples/echo-client/module.toml", + )), }], ..Default::default() }; @@ -684,13 +690,17 @@ async fn e2e_keeper_module_drives_the_venue_through_the_typed_client() { let config = EngineConfig { adapters: vec![AdapterEntry { path: adapter_wasm, - manifest: Some(workspace_path("modules/examples/echo-venue/module.toml")), + manifest: Some(workspace_path( + "videre/modules/examples/echo-venue/module.toml", + )), http_allow: Vec::new(), messaging_topics: Vec::new(), }], modules: vec![ModuleEntry { path: module_wasm, - manifest: Some(workspace_path("modules/examples/echo-keeper/module.toml")), + manifest: Some(workspace_path( + "videre/modules/examples/echo-keeper/module.toml", + )), }], ..Default::default() }; @@ -766,13 +776,13 @@ async fn e2e_twap_monitor_boots_against_the_cow_adapter() { let config = EngineConfig { adapters: vec![AdapterEntry { path: adapter_wasm, - manifest: Some(workspace_path("crates/cow-venue/module.toml")), + manifest: Some(workspace_path("shepherd/crates/cow-venue/module.toml")), http_allow: Vec::new(), messaging_topics: Vec::new(), }], modules: vec![ModuleEntry { path: module_wasm, - manifest: Some(workspace_path("modules/twap-monitor/module.toml")), + manifest: Some(workspace_path("shepherd/modules/twap-monitor/module.toml")), }], ..Default::default() }; @@ -936,7 +946,9 @@ async fn boot_flaky_venue( let config = EngineConfig { adapters: vec![AdapterEntry { path: adapter_wasm, - manifest: Some(workspace_path("modules/fixtures/flaky-venue/module.toml")), + manifest: Some(workspace_path( + "videre/modules/fixtures/flaky-venue/module.toml", + )), http_allow: Vec::new(), messaging_topics: Vec::new(), }], diff --git a/crates/videre-host/tests/zero_leak.rs b/videre/crates/videre-host/tests/zero_leak.rs similarity index 93% rename from crates/videre-host/tests/zero_leak.rs rename to videre/crates/videre-host/tests/zero_leak.rs index 43f32ea5..d5e2b8f1 100644 --- a/crates/videre-host/tests/zero_leak.rs +++ b/videre/crates/videre-host/tests/zero_leak.rs @@ -17,12 +17,14 @@ use nexum_runtime::test_utils::{ use videre_host::{VenueRegistry, platform}; /// Workspace-root-relative path. `CARGO_MANIFEST_DIR` is -/// `crates/videre-host`; two parents up is the workspace root. +/// `videre/crates/videre-host`; three parents up is the workspace root. fn workspace_path(relative: &str) -> PathBuf { Path::new(env!("CARGO_MANIFEST_DIR")) .parent() .expect("crates dir") .parent() + .expect("videre root") + .parent() .expect("workspace root") .join(relative) } @@ -73,13 +75,17 @@ async fn e2e_echo_venue_boots_and_submits_through_the_generic_seam() { let config = EngineConfig { adapters: vec![AdapterEntry { path: adapter_wasm, - manifest: Some(workspace_path("modules/examples/echo-venue/module.toml")), + manifest: Some(workspace_path( + "videre/modules/examples/echo-venue/module.toml", + )), http_allow: Vec::new(), messaging_topics: Vec::new(), }], modules: vec![ModuleEntry { path: module_wasm, - manifest: Some(workspace_path("modules/examples/echo-client/module.toml")), + manifest: Some(workspace_path( + "videre/modules/examples/echo-client/module.toml", + )), }], ..Default::default() }; diff --git a/crates/videre-macros/Cargo.toml b/videre/crates/videre-macros/Cargo.toml similarity index 90% rename from crates/videre-macros/Cargo.toml rename to videre/crates/videre-macros/Cargo.toml index 7bb32f49..2a68447d 100644 --- a/crates/videre-macros/Cargo.toml +++ b/videre/crates/videre-macros/Cargo.toml @@ -13,7 +13,7 @@ proc-macro = true workspace = true [dependencies] -nexum-world = { path = "../nexum-world" } +nexum-world = { path = "../../../nexum/crates/nexum-world" } proc-macro2.workspace = true quote.workspace = true syn = { workspace = true, features = ["full"] } diff --git a/crates/videre-macros/src/intent_body.rs b/videre/crates/videre-macros/src/intent_body.rs similarity index 100% rename from crates/videre-macros/src/intent_body.rs rename to videre/crates/videre-macros/src/intent_body.rs diff --git a/crates/videre-macros/src/keeper.rs b/videre/crates/videre-macros/src/keeper.rs similarity index 100% rename from crates/videre-macros/src/keeper.rs rename to videre/crates/videre-macros/src/keeper.rs diff --git a/crates/videre-macros/src/lib.rs b/videre/crates/videre-macros/src/lib.rs similarity index 100% rename from crates/videre-macros/src/lib.rs rename to videre/crates/videre-macros/src/lib.rs diff --git a/crates/videre-macros/src/world.rs b/videre/crates/videre-macros/src/world.rs similarity index 100% rename from crates/videre-macros/src/world.rs rename to videre/crates/videre-macros/src/world.rs diff --git a/crates/videre-sdk/Cargo.toml b/videre/crates/videre-sdk/Cargo.toml similarity index 93% rename from crates/videre-sdk/Cargo.toml rename to videre/crates/videre-sdk/Cargo.toml index 9ba2d160..39686688 100644 --- a/crates/videre-sdk/Cargo.toml +++ b/videre/crates/videre-sdk/Cargo.toml @@ -27,7 +27,7 @@ videre-macros = { path = "../videre-macros" } # Host-neutral SDK layer this crate builds on: the `ChainHost` seam the # chain wrapper implements, the shared `Fault` vocabulary, and the # wasi:http `fetch` surface re-exported as `transport::http`. -nexum-sdk = { path = "../nexum-sdk" } +nexum-sdk = { path = "../../../nexum/crates/nexum-sdk" } # The standard request/response types the `Fetch` seam (and the # `TimedFetch` middleware over it) is expressed in. http.workspace = true @@ -39,4 +39,4 @@ wit-bindgen.workspace = true [dev-dependencies] # In-memory `LocalStoreHost` behind the keeper sweep tests. -nexum-sdk-test = { path = "../nexum-sdk-test" } +nexum-sdk-test = { path = "../../../nexum/crates/nexum-sdk-test" } diff --git a/crates/videre-sdk/src/adapter.rs b/videre/crates/videre-sdk/src/adapter.rs similarity index 100% rename from crates/videre-sdk/src/adapter.rs rename to videre/crates/videre-sdk/src/adapter.rs diff --git a/crates/videre-sdk/src/bindings.rs b/videre/crates/videre-sdk/src/bindings.rs similarity index 100% rename from crates/videre-sdk/src/bindings.rs rename to videre/crates/videre-sdk/src/bindings.rs diff --git a/crates/videre-sdk/src/body.rs b/videre/crates/videre-sdk/src/body.rs similarity index 100% rename from crates/videre-sdk/src/body.rs rename to videre/crates/videre-sdk/src/body.rs diff --git a/crates/videre-sdk/src/client.rs b/videre/crates/videre-sdk/src/client.rs similarity index 100% rename from crates/videre-sdk/src/client.rs rename to videre/crates/videre-sdk/src/client.rs diff --git a/crates/videre-sdk/src/faults.rs b/videre/crates/videre-sdk/src/faults.rs similarity index 100% rename from crates/videre-sdk/src/faults.rs rename to videre/crates/videre-sdk/src/faults.rs diff --git a/crates/videre-sdk/src/keeper.rs b/videre/crates/videre-sdk/src/keeper.rs similarity index 100% rename from crates/videre-sdk/src/keeper.rs rename to videre/crates/videre-sdk/src/keeper.rs diff --git a/crates/videre-sdk/src/lib.rs b/videre/crates/videre-sdk/src/lib.rs similarity index 100% rename from crates/videre-sdk/src/lib.rs rename to videre/crates/videre-sdk/src/lib.rs diff --git a/crates/videre-sdk/src/rt.rs b/videre/crates/videre-sdk/src/rt.rs similarity index 100% rename from crates/videre-sdk/src/rt.rs rename to videre/crates/videre-sdk/src/rt.rs diff --git a/crates/videre-sdk/src/transport.rs b/videre/crates/videre-sdk/src/transport.rs similarity index 100% rename from crates/videre-sdk/src/transport.rs rename to videre/crates/videre-sdk/src/transport.rs diff --git a/crates/videre-sdk/tests/adapter.rs b/videre/crates/videre-sdk/tests/adapter.rs similarity index 100% rename from crates/videre-sdk/tests/adapter.rs rename to videre/crates/videre-sdk/tests/adapter.rs diff --git a/crates/videre-test/Cargo.toml b/videre/crates/videre-test/Cargo.toml similarity index 91% rename from crates/videre-test/Cargo.toml rename to videre/crates/videre-test/Cargo.toml index 02198e5a..d53a82a6 100644 --- a/crates/videre-test/Cargo.toml +++ b/videre/crates/videre-test/Cargo.toml @@ -25,10 +25,10 @@ hex.workspace = true http.workspace = true # Transport seam vocabulary: `ChainHost`, `Fault`, and the `Fetch` seam # the mocks implement. -nexum-sdk = { path = "../nexum-sdk" } +nexum-sdk = { path = "../../../nexum/crates/nexum-sdk" } # `MockChain` is composed rather than reimplemented: one chain mock # serves both personas. -nexum-sdk-test = { path = "../nexum-sdk-test" } +nexum-sdk-test = { path = "../../../nexum/crates/nexum-sdk-test" } # The contract under test: `IntentBody`, `BodyError`, the intent # header types, and the `MessagingHost` seam. videre-sdk = { path = "../videre-sdk" } diff --git a/crates/videre-test/goldens/reference-header.json b/videre/crates/videre-test/goldens/reference-header.json similarity index 100% rename from crates/videre-test/goldens/reference-header.json rename to videre/crates/videre-test/goldens/reference-header.json diff --git a/crates/videre-test/src/codec.rs b/videre/crates/videre-test/src/codec.rs similarity index 100% rename from crates/videre-test/src/codec.rs rename to videre/crates/videre-test/src/codec.rs diff --git a/crates/videre-test/src/fixture.rs b/videre/crates/videre-test/src/fixture.rs similarity index 100% rename from crates/videre-test/src/fixture.rs rename to videre/crates/videre-test/src/fixture.rs diff --git a/crates/videre-test/src/header.rs b/videre/crates/videre-test/src/header.rs similarity index 100% rename from crates/videre-test/src/header.rs rename to videre/crates/videre-test/src/header.rs diff --git a/crates/videre-test/src/lib.rs b/videre/crates/videre-test/src/lib.rs similarity index 100% rename from crates/videre-test/src/lib.rs rename to videre/crates/videre-test/src/lib.rs diff --git a/crates/videre-test/src/reference.rs b/videre/crates/videre-test/src/reference.rs similarity index 100% rename from crates/videre-test/src/reference.rs rename to videre/crates/videre-test/src/reference.rs diff --git a/crates/videre-test/src/report.rs b/videre/crates/videre-test/src/report.rs similarity index 100% rename from crates/videre-test/src/report.rs rename to videre/crates/videre-test/src/report.rs diff --git a/crates/videre-test/src/transport.rs b/videre/crates/videre-test/src/transport.rs similarity index 100% rename from crates/videre-test/src/transport.rs rename to videre/crates/videre-test/src/transport.rs diff --git a/crates/videre-test/tests/conformance.rs b/videre/crates/videre-test/tests/conformance.rs similarity index 100% rename from crates/videre-test/tests/conformance.rs rename to videre/crates/videre-test/tests/conformance.rs diff --git a/crates/videre-test/vectors/reference-body.json b/videre/crates/videre-test/vectors/reference-body.json similarity index 100% rename from crates/videre-test/vectors/reference-body.json rename to videre/crates/videre-test/vectors/reference-body.json diff --git a/modules/examples/echo-client/Cargo.toml b/videre/modules/examples/echo-client/Cargo.toml similarity index 89% rename from modules/examples/echo-client/Cargo.toml rename to videre/modules/examples/echo-client/Cargo.toml index f4cf47a0..9afd855d 100644 --- a/modules/examples/echo-client/Cargo.toml +++ b/videre/modules/examples/echo-client/Cargo.toml @@ -13,5 +13,5 @@ workspace = true crate-type = ["cdylib"] [dependencies] -nexum-sdk = { path = "../../../crates/nexum-sdk" } +nexum-sdk = { path = "../../../../nexum/crates/nexum-sdk" } wit-bindgen = { version = "0.58", default-features = false, features = ["macros", "realloc"] } diff --git a/modules/examples/echo-client/module.toml b/videre/modules/examples/echo-client/module.toml similarity index 100% rename from modules/examples/echo-client/module.toml rename to videre/modules/examples/echo-client/module.toml diff --git a/modules/examples/echo-client/src/lib.rs b/videre/modules/examples/echo-client/src/lib.rs similarity index 100% rename from modules/examples/echo-client/src/lib.rs rename to videre/modules/examples/echo-client/src/lib.rs diff --git a/modules/examples/echo-keeper/Cargo.toml b/videre/modules/examples/echo-keeper/Cargo.toml similarity index 90% rename from modules/examples/echo-keeper/Cargo.toml rename to videre/modules/examples/echo-keeper/Cargo.toml index ff843e85..de13587b 100644 --- a/modules/examples/echo-keeper/Cargo.toml +++ b/videre/modules/examples/echo-keeper/Cargo.toml @@ -13,6 +13,6 @@ workspace = true crate-type = ["cdylib"] [dependencies] -nexum-sdk = { path = "../../../crates/nexum-sdk" } +nexum-sdk = { path = "../../../../nexum/crates/nexum-sdk" } videre-sdk = { path = "../../../crates/videre-sdk" } wit-bindgen = { version = "0.59", default-features = false, features = ["macros", "realloc"] } diff --git a/modules/examples/echo-keeper/module.toml b/videre/modules/examples/echo-keeper/module.toml similarity index 100% rename from modules/examples/echo-keeper/module.toml rename to videre/modules/examples/echo-keeper/module.toml diff --git a/modules/examples/echo-keeper/src/lib.rs b/videre/modules/examples/echo-keeper/src/lib.rs similarity index 100% rename from modules/examples/echo-keeper/src/lib.rs rename to videre/modules/examples/echo-keeper/src/lib.rs diff --git a/modules/examples/echo-venue/Cargo.toml b/videre/modules/examples/echo-venue/Cargo.toml similarity index 100% rename from modules/examples/echo-venue/Cargo.toml rename to videre/modules/examples/echo-venue/Cargo.toml diff --git a/modules/examples/echo-venue/module.toml b/videre/modules/examples/echo-venue/module.toml similarity index 100% rename from modules/examples/echo-venue/module.toml rename to videre/modules/examples/echo-venue/module.toml diff --git a/modules/examples/echo-venue/src/lib.rs b/videre/modules/examples/echo-venue/src/lib.rs similarity index 100% rename from modules/examples/echo-venue/src/lib.rs rename to videre/modules/examples/echo-venue/src/lib.rs diff --git a/modules/fixtures/flaky-venue/Cargo.toml b/videre/modules/fixtures/flaky-venue/Cargo.toml similarity index 100% rename from modules/fixtures/flaky-venue/Cargo.toml rename to videre/modules/fixtures/flaky-venue/Cargo.toml diff --git a/modules/fixtures/flaky-venue/module.toml b/videre/modules/fixtures/flaky-venue/module.toml similarity index 100% rename from modules/fixtures/flaky-venue/module.toml rename to videre/modules/fixtures/flaky-venue/module.toml diff --git a/modules/fixtures/flaky-venue/src/lib.rs b/videre/modules/fixtures/flaky-venue/src/lib.rs similarity index 100% rename from modules/fixtures/flaky-venue/src/lib.rs rename to videre/modules/fixtures/flaky-venue/src/lib.rs diff --git a/videre/wit/nexum-host b/videre/wit/nexum-host new file mode 120000 index 00000000..9b9eefce --- /dev/null +++ b/videre/wit/nexum-host @@ -0,0 +1 @@ +../../nexum/wit/nexum-host \ No newline at end of file diff --git a/wit/videre-types/types.wit b/videre/wit/videre-types/types.wit similarity index 100% rename from wit/videre-types/types.wit rename to videre/wit/videre-types/types.wit diff --git a/wit/videre-value-flow/types.wit b/videre/wit/videre-value-flow/types.wit similarity index 100% rename from wit/videre-value-flow/types.wit rename to videre/wit/videre-value-flow/types.wit diff --git a/wit/videre-venue/venue.wit b/videre/wit/videre-venue/venue.wit similarity index 100% rename from wit/videre-venue/venue.wit rename to videre/wit/videre-venue/venue.wit