Expand description
degenbot-cli - the degenbot console binary (ADR-051 D2).
One argv facade, one command model. This crate owns exactly the things
degenbot_cli_core cannot own by charter:
- argv declaration (
argv): the clap v4 derive tree for the whole command vocabulary, and the argv ->Commandmapping. Seeargv’s module docs for where clap’s shape differs from the retired Python click tree. - rendering (
render): typedCommandReportlines to stdout, typedCliErrorto stderr with itsExitCode. - interaction (
prompt): the stdin/stdoutPrompterthe arms ask; the prompt policy stays declared data in cli-core (D4). - sinks (
sinks): the tracing registry + console fmt layer, booted in the same order as the Python driver (typed config first, then the subscriber), and progress (progress): theindicatifbar, which exists only here (D9). - SIGINT ownership (
signal, D7): first Ctrl+C feeds cli-core’sCancelHandle; a second aborts.
cli-core stays clap-free and indicatif-free (asserted by
just check-cli-core-purity); this crate stays free of every domain-engine
dependency (asserted by just check-cli-shell-purity).
Re-exports§
Modules§
- argv
- The clap v4 argv tree and the argv ->
Commandmapping (ADR-051 D2). - progress
- The
indicatifprogress bar (ADR-051 D9). - prompt
- The stdin/stdout
Prompter(ADR-051 D4/D2). - render
- stdout/stderr rendering of typed console results (ADR-051 D2/Q1).
- signal
- SIGINT ownership (ADR-051 D7).
- sinks
- The telemetry sinks + boot order (ADR-043, ADR-051 D2/D9).
Constants§
- VERSION_
LINE - The banner
--versionprints: the workspace version (ADR-009 lockstep) plus the shared build receipt, embedded bybuild.rs.
Functions§
- run
- The binary entry: collect the process argv (minus the program name) and delegate to the console composition root.
- run_
args - Parse
args(argv WITHOUT the program name), boot the sinks, resolve the argv into aCommand, run it and render the result. This is the ONE console composition root: thedegenbotbinary and the Pythoncli_mainpassthrough both land here, so their sequences cannot drift apart.