Sticky per-checkpoint latch state for a checkpoint tour, keyed by checkpoint name. Empty for non-tour runs. Once a checkpoint latches met it stays met, so a run is scored on every section it reached, not just the final frame.
Current URL the browser is on
OptionalLastCompact diagnostics digest from the previous step, injected into the next controller prompt.
OptionalLastPrevious step's extracted interactive elements, for the "new since last step" diff.
OptionalLastPerceptual hash of the screenshot the judge last evaluated. Used to skip re-judging an unchanged visible state.
OptionalLastJudge feedback from the previous step (injected into the next controller prompt)
OptionalLastThe last judge verdict, reused when the state is unchanged.
OptionalLastController's durable memory + plan from the previous step, echoed into the next prompt.
OptionalLastOptionalLoopEngine-computed loop evidence, injected into the next controller prompt.
ReadonlyParamsImmutable reference to the original run parameters
ReadonlyStartRun start timestamp (for total duration calculation)
All steps executed so far
Get the most recent screenshot (the one just captured). Returns empty string if no screenshots have been taken.
Get the elapsed time since the run started (milliseconds).
Get all screenshots in the ring buffer (oldest to newest). Returns a copy to prevent external mutation.
Get the current step count (1-indexed — step 1 is the first step).
Add a screenshot to the ring buffer. If the buffer is full, the oldest screenshot is evicted.
Build a human-readable summary of all previous steps. Included in the controller prompt for action history context.
How many identity-provider detours the watchdog has recovered this run.