degenbot-cli-core 0.6.0-alpha.11

Command semantics + the database command arms for the degenbot console (ADR-051 D1) - pyo3-free and clap-free.
Documentation

degenbot-cli-core — the clap-free semantics home for the degenbot console (ADR-051 D1/D2).

The console has two first-class front ends: the pure-Rust argv facade (degenbot-cli, clap) and the Python passthrough (src/degenbot/_cli.py). Both map argv into the SAME command model declared here, so command semantics — prompt policy, dry-run text, exit-code mapping — exist exactly once. This crate is deliberately pyo3-free (so the pure-Rust consumer can depend on it) and clap-free/indicatif-free (argv spelling and progress rendering are the facade's job; asserted by just check-cli-core-purity).

Shape

  • [Command] + the per-group enums: the constructor-parsed command model.
  • [Command::execute] / [run_with_cancel]: the execution entries, returning a typed [CommandReport].
  • [CliError] → [ExitCode]: declared at exactly one From site; the workspace exit = "deny" lint stands, so run returns codes and never aborts the process. The typed fleet boot refusal (FF-T1) maps to EX_CONFIG 78 (lifted out of DegenbotCLI.invoke).
  • [PromptPlan] + [Prompter]: interactive policy is declared data, ported verbatim from the click handlers and audited, never redesigned (D4).
  • [CancelHandle]: the cooperative cancel carrier the updater arms thread into run_pool_update / run_aave_update (the facade owns the SIGINT policy, ADR-051 D7).

Groups

  • database ([DatabaseCommand]): the template group; ports src/degenbot/cli/database.py arm for arm.
  • exchange ([ExchangeCommand]): the 34 Python click verbs collapse to one data-driven command resolving (chain, name) through the degenbot-uniswap deployments registry (ADR-051 D5).
  • pool ([PoolCommand]): the degenbot-pool-updater chunk loop + on-chain-truth verify.
  • aave ([AaveCommand]): the degenbot-aave market run + row flips.
  • fleet ([FleetCommand]): the live cordon posture over the operator command channel (ADR-051 D6).
  • path ([PathCommand]): live add-path / bounded discovery over the same operator command channel.