mix pixir.smoke.e2e (pixir v0.1.0)

Copy Markdown View Source

Walks the whole v0.1 pipeline against the real backend, in a throwaway workspace:

  1. Sign in — if there's no credential, run the device-code flow (open the URL, enter the code). Skipped if already authenticated or OPENAI_API_KEY is set.
  2. Run one Turn — start a Session in a scratch dir and stream a prompt that forces tool use (write then read), exercising the Provider's streaming Responses call and the tool loop live.
  3. Summarize — fold the Log and report the events, the final answer, and the resumable session id.

Usage:

mix pixir.smoke.e2e                         # default prompt, scratch workspace
mix pixir.smoke.e2e --model gpt-5.4         # override the model id
mix pixir.smoke.e2e --prompt "..."          # custom prompt
mix pixir.smoke.e2e --probe-model           # validate the model id before the Turn
mix pixir.smoke.e2e --dry-run-tools         # model calls tools, no disk writes
mix pixir.smoke.e2e --keep                  # keep the scratch workspace
mix pixir.smoke.e2e --no-login              # fail instead of prompting to sign in
mix pixir.smoke.e2e --help                  # print this help and exit
mix pixir.smoke.e2e --json --help           # print machine-readable help

Exit code is non-zero if any stage fails (so it can gate a release check).

Summary

Functions

Execute the end-to-end smoke Mix task with the given command-line arguments.

Functions

run(args)

@spec run([String.t()]) :: :ok | no_return()

Execute the end-to-end smoke Mix task with the given command-line arguments.

Parses CLI options, handles --help/--json (prints help and exits normally), validates unsupported options (fails with a structured error), starts the application, ensures the user is signed in (unless --no-login), optionally probes the selected model, and runs a single guided turn against the live backend. Any fatal error will be routed to the task's failure handler which exits the process.