[package] name = "aura-cli" edition.workspace = true version.workspace = true license.workspace = true publish.workspace = true [[bin]] name = "aura" path = "src/main.rs" [dependencies] aura-core = { path = "../aura-core" } aura-engine = { path = "../aura-engine" } aura-registry = { path = "../aura-registry" } aura-research = { path = "../aura-research" } # aura-campaign: campaign-execution semantics (preflight, cell loop, stage # sequencing, realization record); the CLI implements its MemberRunner seam # and renders its outcome (#198). aura-campaign = { path = "../aura-campaign" } aura-std = { path = "../aura-std" } aura-strategy = { path = "../aura-strategy" } aura-backtest = { path = "../aura-backtest" } aura-vocabulary = { path = "../aura-vocabulary" } aura-ingest = { path = "../aura-ingest" } # aura-measurement: the C28 measurement rung's IC vocabulary + reduction # (#295), the shell re-exposes it as the `aura measure ic` verb. aura-measurement = { path = "../aura-measurement" } # aura-runner: the C28 assembly position (#295) — harness assembly, input # binding (C26), and the param<->config translators the shell wraps into # verbs. aura-runner = { path = "../aura-runner" } # data-server: the local M1 archive `aura run --real` streams from. Mirrors the # git line in crates/aura-ingest/Cargo.toml verbatim (same source of truth). data-server = { git = "http://192.168.178.103:3000/Brummel/data-server.git", branch = "main" } # serde derives Serialize on the chart-trace payload (Series) so render_chart_html # can embed it via serde_json::json!; admitted under the per-case dependency policy, # same as aura-engine. serde = { workspace = true } # serde_json renders the walk-forward summary line (MetricStats + stitched total) # and the injected chart traces (window.AURA_TRACES); # admitted under the per-case dependency policy, same as aura-engine. serde_json = { workspace = true } # libc: restore the default SIGPIPE disposition at startup (see `fn main`) so a # closed stdout pipe (`aura sweep | head`, a closed UI pane) terminates the # process cleanly instead of panicking the runtime's SIG_IGN default into an # EPIPE. The standard vetted crate for signal disposition, already transitive in # Cargo.lock; admitted under the per-case dependency policy. libc = "0.2" # clap: the vetted standard argument parser. Adopted (C16 per-case review) to # replace the hand-rolled argv parser + ten duplicated help surfaces with one # declarative source, giving scoped --help, --version, --flag=value, and # long-option abbreviation. Research-side CLI only (invariant 8): a dev-loop # compile tax, never a frozen-artifact tax. clap = { version = "4", features = ["derive"] } [dev-dependencies] # zip: hand-packs a tiny synthetic M1 archive (tests/common/mod.rs) in the # exact on-disk format data-server reads — already transitive via the # data-server dependency above; declared directly here so test code may # `use zip::...` (#250, no new dependency actually enters the build graph). zip = "2" # aura-composites: the RiskExecutor / vol_stop composite-builders — production # use moved to aura-runner (#295); the shell's own use is test-only # (#[cfg(test)] use aura_composites::StopRule in main.rs's ic_tests module), # so this rides the same dev-only-edge idiom as `aura-analysis`/`sha2` below. aura-composites = { path = "../aura-composites" } # aura-analysis: pearson_corr, used only by the ic_tests unit-test fixtures # (mod ic_tests in main.rs) — a test-only edge, not a production one. aura-analysis = { path = "../aura-analysis" } # sha2: production topology_hash / dylib_sha256 hashing now lives entirely in # aura-runner (#295); the shell's own use is test-only (tests/cli_run.rs # re-hashes a stored blueprint to check a golden), so this rides the same # dev-only-edge idiom as `zip`/`aura-analysis` above. sha2 = "0.10"