/** * peaks evolution * CLI — M4 / spec §4.4 / §6 / §7.4 * * Adds the Darwin-style ratchet CLI surface: * * peaks evolution propose --target --dimension \ * --before-score --after-score [--delta-min ] \ * --author [--brief-pointer ] [--project ] [--json] * peaks evolution evaluate --proposal \ * --evaluator --skeptic \ * --evaluator-score [--refute-paragraph ] \ * [--risk-tag ]... [--brief-pointer ] [--project ] [--json] * peaks evolution revert --proposal [--user-confirmation ] [--project ] [--json] * peaks evolution status [--target ] [--project ] [--json] * * Each verb prints a structured JSON envelope (`printResult` with * `asJson=true`). The CLI is a thin shim around EvolutionService + * the two runner modules. Author / evaluator / skeptic identities * are LLM-supplied; the user is NEVER asked to type them. * * Defense in depth: the EvolutionService enforces the ratchet * into the service payload. * * Size-debt split: each verb's registration and action body now lives * in its own sibling module — `evolution-propose-command.ts`, * `evolution-evaluate-command.ts`, `evolution-verdict-commands.ts` * (mark-keep + revert) and `evolution-status-command.ts` — over the * shared parse / validate / DB / failure helpers in * `evolution-command-shared.ts`. This file keeps the parent and the * delegation only; every command name, option, envelope key, error * code and exit-code site is unchanged. */ import type { Command } from 'commander'; import type { ProgramIO } from '../cli-helpers.js'; export type { EvolutionTarget } from './evolution-command-shared.js'; export declare function registerEvolutionCommands(program: Command, io: ProgramIO): void;