A thin, dependency-light command line over arl-core + arl-sandbox — the gate logic stays single-sourced in the libraries; this is a faithful front end so a claim can be checked in CI: arl validate <claim.json> cross-axis gates → exit 0 (pass) / 1 (fail) arl lint <claim.json> controlled-vocabulary findings (excluded → exit 1) arl verify <session.json> <attestation.json> attestation check arl explain the axes and gates, as a cheat sheet Exit codes make it a pipeline gate: a claim that fails the ARL gates fails the build. Verified end-to-end through the built binary — a minimal claim deserializes with omitted fields at the uncharacterized floor and the 8 gates fire (incl. the AGI exclusion); lint flags excluded terms; verify round-trips a real Supervisor attestation and rejects a tampered session. Two correctness/ergonomics fixes this enabled: - Claim is #[serde(default)] — a hand-written claim JSON may omit fields; missing ones default to the honest floor (ARL 1 / Class E / S0 / energy undisclosed / flags false). - ValidationDepth is #[serde(try_from = "u8")] — an out-of-range depth (e.g. 99) is now rejected at the parse boundary, not silently accepted. - arl-sandbox re-exports SigningKey/VerifyingKey so consumers build a Supervisor without depending on ed25519-dalek directly. arl-cli 9 tests; arl-rs workspace 51 tests, 0 failures. Co-Authored-By: Claude Opus 4.7 <[email protected]>
18 lines
552 B
TOML
18 lines
552 B
TOML
[package]
|
|
name = "arl-cli"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
authors.workspace = true
|
|
description = "arl — the ARL reference checker. Validate a claim against the four-axis cross-axis gates, lint its vocabulary, and verify a session attestation, from the command line or CI."
|
|
|
|
[[bin]]
|
|
name = "arl"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
arl-core = { path = "../arl-core" }
|
|
arl-sandbox = { path = "../arl-sandbox" }
|
|
serde_json = { workspace = true }
|