List available models across all backends (honors user config).
Read-only: a dead local server is reported, never resurrected — a
cloud-model user who stopped Ollama on purpose must be able to
enumerate without a surprise VRAM grab.
Reject an empty or whitespace-only run prompt at parse time, so
Resolve the effective run prompt from the CLI arg and any piped stdin.
stdin is Some(text) when stdin was piped (non-TTY), else None. Pure so
it can be unit-tested; the caller does the terminal check + stdin read.