feat(browser): vision automation loop with screenshots, coordinate actions and bounded challenge solving
- browser.screenshot returns the page as an image content block (≤1280px wide, JPEG quality configurable) for vision-capable upstreams; non-vision upstreams get a redacted text snapshot. Login pages / password fields are marked sensitive and withheld unless a browser.sensitive_screenshot grant exists and allowSensitive is passed. - browser.click_at / type_at / scroll / wait act in screenshot pixels; the server converts via viewport/DPR, requires automation control and an allowlisted host, and writes a thumbnail evidence file (DATA_DIR/tmp/evidence) referenced from agent_run_event. - browser.solve_challenge runs a bounded child agent_run (vision caps only, maxSteps ≤ 12, budget), judges success from page facts, stops immediately on 2FA / SMS / device confirmation, and otherwise moves the session to waiting with evidence and a takeover link. - PiAgentRuntime passes modelImage outputs as pi-ai image content when model.input has image; the ledger never stores image data; coordinate actions use per-invocation idempotency keys. - Tests: image codec, runtime image content, E14 e2e (login solved, 2FA stop, step limit, sensitive withheld). Real camofox 1.17.0 check on example.com recorded in the runbook. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
0765264a47
commit
c437c6bff6
34 files changed
+2194
-35
No files matched your search
@@ -34,6 +34,7 @@
|
||||
"npm:[email protected]": "4.12.0",
|
||||
"npm:[email protected]": "4.13.9",
|
||||
"npm:isbot@^5.1.31": "5.2.2",
|
||||
"npm:[email protected]": "0.4.4",
|
||||
"npm:[email protected]": "0.29.6",
|
||||
"npm:[email protected]": "[email protected]",
|
||||
"npm:next-themes@~0.4.6": "[email protected][email protected]",
|
||||
@@ -3459,6 +3460,9 @@
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg=="
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
|
||||
},
|
||||
@@ -4723,6 +4727,7 @@
|
||||
"npm:[email protected]",
|
||||
"npm:[email protected]",
|
||||
"npm:[email protected]",
|
||||
"npm:[email protected]",
|
||||
"npm:[email protected]",
|
||||
"npm:[email protected]",
|
||||
"npm:[email protected]",
|
||||
|
||||
Reference in new issue
Block a user