Documentation
¶
Overview ¶
Command box-evidence-harness is a headless "fake box": it drives the exact Voice-Agent WebSocket path the kombify-Box firmware uses and reports the two runtime facts the firmware hardcodes against.
Flow (mirrors kombify-box milestones M1.2-M1.4):
- Bearer POST /v1/voiceagent/sessions -> single-use ticket.
- WS dial with Sec-WebSocket-Protocol: ticket.<t> and NO Origin header (the ESP32 sends none; the server must run SPEECHKIT_ALLOW_EMPTY_ORIGIN=1).
- start{provider:"deepgram"} within 5 s -> state:listening.
- Stream a 16 kHz S16LE mono utterance, then audio_end.
- Collect input_transcript + response audio until the turn ends.
It then reports:
- EMPTY-ORIGIN accepted: proves the server config the firmware relies on.
- DOWNLINK ~24 kHz: cross-checks the response PCM byte count against the output-transcript word count so the firmware's 24->48 kHz upsampler is not built on a stale rate assumption.
This is a repo/CI evidence tool, not a distributable client. It reuses the public SDK (pkg/speechkit/client) so it also doubles as a minimal net_ws reference. See ROADMAP.md (v0.49.0 M1) and the box repo's docs/roadmap-standalone-voice.md (M1.0).
Exit codes: 0 = evidence PASS, 2 = blocked_by_auth (no token / 401 / 403; CI treats this as skipped), 1 = hard failure (dial rejected, no listening, empty transcript, no audio, or downlink rate drift).