Repository navigation
cli@1.4.0
1.4.0 (2026-10-10)
🚀 Features
-
AI checks are now part of the engine. A request or graphql step's
expect:block (the Stresseur syntax, unchanged) is validated on import and evaluated bydevtools flow runafter the flow's steps finish, so it never counts in step timings. Results are printed under the flow's table and written to the JSON report as each step'schecks[](kind,passed,score,reason,judge_model,cached,value,limit). (4b494b2f)- Checks:
schema/schema_at,max_latency_ms, the newmax_ttft_ms, token budgets fromusage, and a G-Evaljudge(Anthropic or any OpenAI-compatible API). The judge uses injection-resistant prompting, logprob weighting or borderline re-sampling, and runs in parallel. - Judge key:
STRESSEUR_JUDGE_API_KEY,ANTHROPIC_API_KEYorOPENAI_API_KEY, from the environment or./.env. Without one, judge checks are skipped with a notice. - Cache: verdicts are cached in
--judge-cache, default.devtools/judge-cache.json. - Exit code: failed checks fail a flow only with
quality: { fail_below: … }.
Server-Sent Events responses are now read as they arrive. A text/event-stream response streams automatically; a request step's
stream: openai | anthropic | vercel-ai | ssepicks the preset that assembles the text, andstream_timeout_msbounds an open stream (default 30 s). Assertions,expect:and later steps can readresponse.text,response.events,response.event_count,response.ttft_msand the streamedresponse.usage. - Checks:
❤️ Thank You
- moosebay