pub enum Command {
Run {
rules_dir: PathBuf,
payload: Option<String>,
payload_file: Option<PathBuf>,
output: Option<PathBuf>,
max_steps: usize,
},
Replay {
fact_log: PathBuf,
},
Diff {
a: PathBuf,
b: PathBuf,
},
Validate {
rules_dir: PathBuf,
},
VerifyChain {
fact_log: PathBuf,
},
ScanWalDir {
wal_dir: PathBuf,
baseline: Option<PathBuf>,
sentinel_log: Option<PathBuf>,
json: Option<PathBuf>,
},
TruncatePartialLine {
wal_file: PathBuf,
confirm: bool,
},
CompileEvopack {
rules_file: PathBuf,
output: PathBuf,
},
AnchorKeygen {
output: Option<PathBuf>,
},
AnchorPubkey {
seed: String,
},
VerifyAnchors {
audit: PathBuf,
pubkey: Option<String>,
},
}Variants§
Run
Load and execute JSON rules (output a fact log)
Fields
Replay
Replay a fact log (pretty-print each Fact)
Diff
Compare two fact logs (aligned by FactId, not HashSet)
Validate
Validate JSON rule files (tier1 RuleValidator, syntactic + semantic validation)
VerifyChain
Verify fact log hash chain integrity (blake3, interoperable with evorule-governance)
ScanWalDir
Audit chain sentinel: scan a WAL directory, verify every chain end-to-end, and compare against the previous scan baseline (prefix-anchored: pure appends vs. history-rewritten recalculation are distinguished precisely). Exit codes: 0 ok / 2 self-test failed / 3 chain broken / 4 file gone / 5 partial line.
Fields
TruncatePartialLine
Controlled recovery: truncate a WAL file to its last complete line, with prefix chain verification report and .partial.bak backup (dry-run unless –confirm)
Fields
CompileEvopack
Compile JSON rules into a compact .evopack binary package (host compiler for the embedded no_std kernel)
Deterministic: the same input rules always produce the same bytes (postcard canonical encoding, BTreeMap key order), the artifact can be burned into MCU firmware or used for QEMU cross-validation against the no_std kernel. Rule count exceeding the TCB upper limit (MAX_TRANSFORM_RULES) is rejected at compile time (fail-fast).
Fields
AnchorKeygen
Generate a G-A1 audit anchor signing keypair (one-time ops)
Produces a private seed (32 bytes, 64 hex chars) and a public key (32 bytes, 64 hex chars).
Keep the private key secret; it is used to configure the auditor signing anchor. The public key
can be distributed to third parties for offline verification with verify-anchors.
AnchorPubkey
Derive the verification public key from a private seed (deployment companion)
The deployment (evorule-server EVORULE_ANCHOR_SEED) holds only the seed;
verifiers need only the public key. Prints the derived public key for
secure distribution. Use --seed - to read the seed from stdin.
VerifyAnchors
Verify G-A1 audit anchors offline (anti-repudiation)
Takes an audit export JSON produced by evorule-governance Auditor::export().
Verifies each anchor’s chain link and recomputes the payload signature with the public key,
proving the audit chain was actually produced by the private key holder.
Trait Implementations§
Source§impl FromArgMatches for Command
impl FromArgMatches for Command
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl Subcommand for Command
impl Subcommand for Command
Source§fn augment_subcommands<'b>(__clap_app: Command) -> Command
fn augment_subcommands<'b>(__clap_app: Command) -> Command
Source§fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§fn has_subcommand(__clap_name: &str) -> bool
fn has_subcommand(__clap_name: &str) -> bool
Self can parse a specific subcommand