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 oneFromsite; the workspaceexit = "deny"lint stands, sorunreturns codes and never aborts the process. The typed fleet boot refusal (FF-T1) maps toEX_CONFIG78 (lifted out ofDegenbotCLI.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 intorun_pool_update/run_aave_update(the facade owns the SIGINT policy, ADR-051 D7).
Groups
database([DatabaseCommand]): the template group; portssrc/degenbot/cli/database.pyarm for arm.exchange([ExchangeCommand]): the 34 Python click verbs collapse to one data-driven command resolving(chain, name)through thedegenbot-uniswapdeployments registry (ADR-051 D5).pool([PoolCommand]): thedegenbot-pool-updaterchunk loop + on-chain-truth verify.aave([AaveCommand]): thedegenbot-aavemarket 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.config([ConfigCommand]): the read-only view of the operator file (ADR-062 D6) — the values, the winning layer per value, and the file the mutating arms write.