b39fd63396
Phase 4 of the Stratification milestone. aura-std held four C28 ladder layers in one roster; this cuts them into layer-aligned, aura-core-only node crates so the import direction is enforced by the crate graph: - aura-std — engine nodes only (arithmetic/logic/rolling + sinks) - aura-market — session, resample - aura-strategy — bias, stops, sizer, cost-model machinery - aura-backtest — sim_broker, position_management - aura-vocabulary — the relocated closed std_vocabulary roster Node modules move verbatim (byte-identical renames); consumers are rewired by import path only. A new structural test (aura-vocabulary/tests/c28_layering.rs) asserts each node crate's [dependencies] stay within its C28-permitted inner set, catching the acyclic-but-outward violation the compiler misses. Behaviour byte-identical: full workspace suite green (1448 tests), no golden edited, clippy -D warnings clean. C28 Status block updated. closes #288
24 lines
952 B
TOML
24 lines
952 B
TOML
[package]
|
|
name = "aura-composites"
|
|
edition.workspace = true
|
|
version.workspace = true
|
|
license.workspace = true
|
|
publish.workspace = true
|
|
|
|
[dependencies]
|
|
# aura-composites is the composition layer: `GraphBuilder`/`Composite` come from the
|
|
# engine, the wired nodes from aura-std. It lives in its own crate so the engine
|
|
# stays domain-free (-> aura-core only) — see src/lib.rs for the full rationale.
|
|
# This is the single layer that couples both, and the graph stays acyclic
|
|
# (aura-composites -> {aura-engine, aura-std} -> aura-core).
|
|
aura-core = { path = "../aura-core" }
|
|
aura-engine = { path = "../aura-engine" }
|
|
aura-std = { path = "../aura-std" }
|
|
aura-strategy = { path = "../aura-strategy" }
|
|
aura-backtest = { path = "../aura-backtest" }
|
|
|
|
[dev-dependencies]
|
|
# serde_json: the risk_executor fixture round-trips a folded RunMetrics through
|
|
# serde to prove the `r` block survives (RunMetrics lives in aura-engine).
|
|
serde_json = { workspace = true }
|