escalate_via_click
Restores a failed Lua operation and performs a real simulated click on the UI entry point when assertion escalation flags that command-line actions aren't reaching the true environment.
Instructions
escalate_via_click tool. Write op. Command-line fallback to real input.
When lua_eval command-line operations (e.g. PROJECT_RUNTIME.global.ui:open(uid)) don't carry real data — surfaced by repeated verify_assertions failures under the same goal (verdict.escalation.should_escalate) — the agent should NOT keep forcing the lua path. This tool atomically:
Restores the lua op by running the caller-supplied
undo_lua(the inverse operation, e.g. PROJECT_RUNTIME.global.ui:close(uid)).Re-enters through REAL simulated input by clicking the true entry-point button (delegates to simulate_click).
On a landed click, clears the escalation gate for
goaland soft-grounds the lua runway (entering the real environment is a reality-touching act).
If the undo fails, the click is NOT attempted (never stack a click on an un-restored dirty state) and the gate is left intact. If the click misses, the gate is left intact so the agent can retry with a different locator / mode.
PlayMode-only (lua VM + simulate both require Play Mode).
USE WHEN: verify_assertions returned escalation.should_escalate=true — your lua command-line operations are not reaching the real environment. Pass undo_lua to restore your prior lua op and the real entry button's panel_uid + ref_key/path; this tool restores then clicks for real, so the next screenshot/assertion faces the true environment.
DO NOT ask the user before the real click. The fallback (undo -> real click ->
reverify) is deterministic and runs entirely inside this tool. Pass assertions
(same shape as verify_assertions) describing the real-environment success state;
after a landed click the tool re-verifies and returns needs_user:
needs_user=false -> the real path worked (or click missed -> retry locator); proceed WITHOUT asking the user.
needs_user=true -> the click landed but the real environment STILL doesn't match the goal — THIS is the only time you ask the user.
Omitting assertions keeps the legacy behavior (no reverify; you decide).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | ||
| mode | No | raycast | |
| path | No | ||
| ref_key | No | ||
| undo_lua | Yes | ||
| panel_uid | Yes | ||
| assertions | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||