forked from 1b-agent/opencadstudio-upstream
Introduce the single place every input source funnels through to drive the active command's step machine: a `StepInput` vocabulary (one variant per `CadCommand::on_*` method) and `OpenCADStudio::feed_command`, which routes the input to the matching `on_*` and applies the result. Sources keep their own classification (raw input → which StepInput); only the routing is centralized. Migrate the headless automation feeder onto it: feed_active_cmd builds a StepInput, the terminator sends StepInput::Enter. No behavior change — automation_ops_round_trip still passes. Also fixes headless inline-argument loss for plugin commands (#162): run_headless now offers the whole line to plugin dispatch first (plugins parse their own inline args, e.g. `HC_PIPE 2B 2C 1.25 0.013`), falling back to the first-word + fed-tokens path for built-in interactive tools. First phase of routing all input sources (command line, dynamic input, plugin API, viewport clicks) through one driver. Co-Authored-By: Claude Opus 4.8 <[email protected]>