bd54eaa0a4
* feat(cli): add --output-format stream-json for headless clients Emit EvoScientist's native event stream as line-delimited JSON on stdout in single-shot (-p) mode, with all human output redirected to stderr so stdout stays pure JSONL. Intended as the integration surface for programmatic clients (e.g. an agent runtime) that drive EvoSci headlessly. - stream/json_sink.py: write_events_as_json + stream_json sink, plus redirect_console_to_stderr helper for stdout purity - cli/interactive.py: cmd_run gains output_format; stream-json branch runs the sink instead of the Rich renderer - cli/commands.py: --output-format option + validation (stream-json requires -p; value must be text|stream-json) - docs/stream-json.md: event-schema contract + example transcript - tests: json sink serialization, CLI dispatch, console redirect, validation Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(cli): honor explicit --no-auto-mode over config in stream-json Address CodeRabbit review (discussion_r3514041123): the auto-mode override block only wrote to cli_overrides when the resolved value was True, so an explicit --no-auto-mode silently fell back to a config that enables auto-mode -- breaking "explicit flags always win" and leaving stream-json running unattended despite the warning. Write auto_mode=False when the flag is explicitly False. Add regression tests that capture the overrides. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>