OptionalApplicationFree-form application context, threaded through to the judge prompt.
Whether the controller explicitly requested this judgement evaluation.
Compact digest of the current step's browser diagnostics — console
errors, failed requests, crashes. Lets the judge explain an infrastructure
state (blank page = ChunkLoadError) instead of hallucinating a reason. '' when clean.
Current screenshot as base64 PNG
Perceptual (dHash) fingerprint of the current screenshot. Lets the heuristic judge detect stagnation across near-identical frames — including animated spinners, which byte-equality never catches — without re-decoding the PNG (the engine computes the hash once at capture). '' when unavailable.
Current URL of the browser
The natural-language goal being pursued
Whether this run is a checkpoint tour. Tours are scored by latching sections as the trajectory passes through them, so the judge is the ONLY way a visual criterion can ever latch. The navigation-shape heuristics (stuck-frame, URL loop) must therefore not preempt the LLM judge here — see HeuristicJudge.
Maximum steps configured for this run
Recent screenshots as base64 PNGs (bounded by ScreenshotHistoryDepth)
OptionalSignalCancellation signal, passed through to the judge prompt request so an in-flight judge LLM call aborts promptly when the run is stopped.
History of all steps executed so far
Current step number (1-indexed)
OptionalValidationValidation-criteria rubric for this run — the test's authored
pass criteria. When present, the judge returns a per-criterion verdict and
Done is derived as all-criteria-met. Empty → the judge uses its scalar
assessment of the goal.
Everything the judge needs to evaluate whether the goal is met. Uses a "pull" pattern — the judge receives all context in one object rather than the engine pushing individual pieces.