Runs a bounded real-network smoke against the Responses WebSocket transport.
This validates the Codex-first subscription path as an opt-in smoke for the production Provider transport. It intentionally avoids printing tokens, account ids, or full response ids.
Usage:
mix pixir.smoke.websocket --dry-run --json
mix pixir.smoke.websocket --json
mix pixir.smoke.websocket --model gpt-5.5 --reasoning-effort low --json
mix pixir.smoke.websocket --probe-cache-routing --json
mix pixir.smoke.websocket --endpoint wss://chatgpt.com/backend-api/codex/responses --json
mix pixir.smoke.websocket --helpChecks:
- WebSocket handshake returns
101 Switching Protocols. - Minimal
response.createreplies withok. - Same-socket
previous_response_idcontinuation replies withok2. - A tool-call loop can continue with
function_call_output. - A new socket cannot continue a
store: falseresponse from an old socket.
Options:
--model MODEL- model to probe. Default:gpt-5.5.--reasoning-effort EFFORT- low/medium/high/xhigh. Default:low.--endpoint URL-wss://...endpoint. Default: auto from credential kind.--timeout-ms N- per response timeout. Default: 30000.--output DIR- evidence directory. Default:.pixir/smoke/websocket/<run_id>.--probe-cache-routing- add two cache-eligible long-prefix requests with a stableprompt_cache_key.--cache-key KEY- cache key used by--probe-cache-routing.--dry-run- validate and print planned checks without auth, network, or writes.--json- print machine-readable evidence or errors.--help- print this help and exit.