@kaeawc/auto-mobile 0.0.91 → 0.0.93
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-info.json +12 -12
- package/dist/schemas/README.md +16 -0
- package/dist/schemas/prototype-icon-names.json +302 -0
- package/dist/schemas/test-plan.schema.json +370 -52
- package/dist/src/chunk-00167wan.js +55 -0
- package/dist/src/chunk-0jrrsnc9.js +6 -0
- package/dist/src/chunk-0n6swkwg.js +5 -0
- package/dist/src/chunk-0qsy1qsx.js +57 -0
- package/dist/src/chunk-11m8wj8j.js +237 -0
- package/dist/src/chunk-1p7xf5kb.js +5 -0
- package/dist/src/chunk-23p5f095.js +4 -0
- package/dist/src/chunk-26k317v5.js +5 -0
- package/dist/src/chunk-284ptqa4.js +7 -0
- package/dist/src/chunk-28re4xrg.js +4 -0
- package/dist/src/chunk-2f9rkmhx.js +5 -0
- package/dist/src/chunk-2fxdh48t.js +4 -0
- package/dist/src/chunk-2tbdrbt6.js +4 -0
- package/dist/src/chunk-2tqzq5qh.js +971 -0
- package/dist/src/chunk-32gvv9b4.js +21 -0
- package/dist/src/chunk-3f3t1x97.js +8 -0
- package/dist/src/chunk-3fspkbc7.js +4 -0
- package/dist/src/chunk-3qwrzxh0.js +11 -0
- package/dist/src/chunk-3sy6ahhz.js +26 -0
- package/dist/src/chunk-3vg455e6.js +4 -0
- package/dist/src/chunk-3xkpk44w.js +5 -0
- package/dist/src/chunk-3y6eykz9.js +4 -0
- package/dist/src/chunk-49bsqdx3.js +4 -0
- package/dist/src/chunk-4hw3665t.js +42 -0
- package/dist/src/chunk-58wzr3mt.js +5 -0
- package/dist/src/chunk-5d2hft6c.js +5 -0
- package/dist/src/chunk-5s645vr4.js +4 -0
- package/dist/src/chunk-5snsn9cf.js +4 -0
- package/dist/src/chunk-5tm9mn47.js +54 -0
- package/dist/src/chunk-5zc77a5t.js +4 -0
- package/dist/src/chunk-64j0majr.js +19 -0
- package/dist/src/chunk-65y8v4td.js +17 -0
- package/dist/src/chunk-6awz7vhq.js +5 -0
- package/dist/src/chunk-6bznss4t.js +8 -0
- package/dist/src/chunk-6ep7f5ge.js +4 -0
- package/dist/src/chunk-6pg7bqck.js +4 -0
- package/dist/src/chunk-6wt9rgjf.js +5 -0
- package/dist/src/chunk-6xmss8er.js +8 -0
- package/dist/src/chunk-710rxz9y.js +5 -0
- package/dist/src/chunk-7cs2da62.js +5 -0
- package/dist/src/chunk-7g103b54.js +4 -0
- package/dist/src/chunk-7j5vj4pa.js +4 -0
- package/dist/src/chunk-7rz9898k.js +5 -0
- package/dist/src/chunk-7tw8x05v.js +4 -0
- package/dist/src/chunk-7zy586cb.js +4 -0
- package/dist/src/chunk-8037tzzj.js +5 -0
- package/dist/src/chunk-84nanf8s.js +5 -0
- package/dist/src/chunk-8g1922rp.js +10 -0
- package/dist/src/chunk-8gvwcv2p.js +4 -0
- package/dist/src/chunk-8ph29g99.js +4 -0
- package/dist/src/chunk-8thrmfat.js +4 -0
- package/dist/src/chunk-8zgzzs7k.js +78 -0
- package/dist/src/chunk-97b1zmaq.js +4 -0
- package/dist/src/chunk-9fth9ayh.js +4 -0
- package/dist/src/chunk-9j6anhjr.js +4 -0
- package/dist/src/chunk-aabchzxk.js +9 -0
- package/dist/src/chunk-ayp07wbb.js +4 -0
- package/dist/src/chunk-bfjwqk8q.js +4 -0
- package/dist/src/chunk-bfw6125s.js +5 -0
- package/dist/src/chunk-bnhscm2n.js +4 -0
- package/dist/src/chunk-bxmsax22.js +5 -0
- package/dist/src/chunk-c1vs4g1n.js +4 -0
- package/dist/src/chunk-ct3e7yng.js +4 -0
- package/dist/src/chunk-cyy71ggq.js +5 -0
- package/dist/src/chunk-ddzkz92z.js +4 -0
- package/dist/src/chunk-dgrbdpb7.js +9 -0
- package/dist/src/chunk-drdz8hee.js +5 -0
- package/dist/src/chunk-e98dqnc9.js +145 -0
- package/dist/src/chunk-eersndy7.js +5 -0
- package/dist/src/chunk-eggq53ks.js +4 -0
- package/dist/src/chunk-f2dya7cs.js +4 -0
- package/dist/src/chunk-fbakd6cw.js +4 -0
- package/dist/src/chunk-fgb98zjj.js +5 -0
- package/dist/src/chunk-fmpad823.js +5 -0
- package/dist/src/chunk-g04bwyj3.js +4 -0
- package/dist/src/chunk-g0xr8zw0.js +4 -0
- package/dist/src/chunk-g3rjs80x.js +4 -0
- package/dist/src/chunk-g78rtrfv.js +4 -0
- package/dist/src/chunk-g7tmjbkt.js +5 -0
- package/dist/src/chunk-gabgv3y5.js +4 -0
- package/dist/src/chunk-gmr45m8f.js +4 -0
- package/dist/src/chunk-gsyfebqj.js +4 -0
- package/dist/src/chunk-h5rpn9wr.js +247 -0
- package/dist/src/chunk-hb1x7v55.js +4 -0
- package/dist/src/chunk-hrfytkxh.js +168 -0
- package/dist/src/chunk-j4yjzbak.js +4 -0
- package/dist/src/chunk-jd6a5v6p.js +5 -0
- package/dist/src/chunk-jh6vhqzx.js +5 -0
- package/dist/src/chunk-kn5spq15.js +4 -0
- package/dist/src/chunk-m94qs0f0.js +4 -0
- package/dist/src/chunk-mjrps0ac.js +7 -0
- package/dist/src/chunk-n03dmn5q.js +5 -0
- package/dist/src/chunk-n72qhwd9.js +4 -0
- package/dist/src/chunk-ndt1ccxm.js +71 -0
- package/dist/src/chunk-nr6y0n4y.js +5 -0
- package/dist/src/chunk-pcsen2vs.js +4 -0
- package/dist/src/chunk-ppfr0b8h.js +4 -0
- package/dist/src/chunk-q10bdnat.js +4 -0
- package/dist/src/chunk-q9xmq595.js +4 -0
- package/dist/src/chunk-qcxzr2my.js +5 -0
- package/dist/src/chunk-qf6nynk6.js +7 -0
- package/dist/src/chunk-qyqypn28.js +5 -0
- package/dist/src/chunk-r2epb56s.js +4 -0
- package/dist/src/chunk-r5bxavdx.js +311 -0
- package/dist/src/chunk-r6z1eztj.js +18 -0
- package/dist/src/chunk-r7bpkgff.js +4 -0
- package/dist/src/chunk-r8jf3d92.js +4 -0
- package/dist/src/chunk-rbpdk7m0.js +5 -0
- package/dist/src/chunk-rc0dbypm.js +4 -0
- package/dist/src/chunk-rhcty4ms.js +4 -0
- package/dist/src/chunk-rpvckv3p.js +4 -0
- package/dist/src/chunk-rqc9ap3x.js +4 -0
- package/dist/src/chunk-rvvy1bte.js +7 -0
- package/dist/src/chunk-ry0mz41y.js +4 -0
- package/dist/src/chunk-s3jc6cwp.js +5 -0
- package/dist/src/chunk-sfv61xjb.js +6 -0
- package/dist/src/chunk-t6bfvfkg.js +4 -0
- package/dist/src/chunk-t6c8akcm.js +5 -0
- package/dist/src/chunk-t7w8rctc.js +4 -0
- package/dist/src/chunk-thbh3jew.js +5 -0
- package/dist/src/chunk-v2wd4n3e.js +5 -0
- package/dist/src/chunk-v6pya0dm.js +5 -0
- package/dist/src/chunk-vy3bwm1d.js +17 -0
- package/dist/src/chunk-w3vs79ex.js +27 -0
- package/dist/src/chunk-w4zga19f.js +4 -0
- package/dist/src/chunk-w5b2jwk3.js +14 -0
- package/dist/src/chunk-w7hkv422.js +5 -0
- package/dist/src/chunk-waqwcjyn.js +4 -0
- package/dist/src/chunk-wbh8spm5.js +20 -0
- package/dist/src/chunk-wyrkw6hw.js +5 -0
- package/dist/src/chunk-xa73x2cx.js +5 -0
- package/dist/src/chunk-xgan0qqp.js +4 -0
- package/dist/src/chunk-y2vs6jwg.js +4 -0
- package/dist/src/chunk-yattm52s.js +4 -0
- package/dist/src/chunk-yb97j25b.js +6 -0
- package/dist/src/chunk-ybbtagbt.js +5 -0
- package/dist/src/chunk-ycaj2sgf.js +9 -0
- package/dist/src/chunk-yf7ympyz.js +325 -0
- package/dist/src/chunk-yjawdzk8.js +4 -0
- package/dist/src/chunk-z637nqg8.js +11 -0
- package/dist/src/chunk-zgja5f3p.js +6 -0
- package/dist/src/chunk-zs1sghs9.js +4 -0
- package/dist/src/daemon/processEntry.js +4 -0
- package/dist/src/index.js +4 -2843
- package/dist/src/runtime/bunRuntimeGuard.js +4 -0
- package/dist/src/utils/workers/iosBundleExtractWorker.js +2 -3
- package/ios/CameraPosterInjection/Injection/CameraPosterInjection.m +466 -0
- package/package.json +7 -6
- package/schemas/README.md +16 -0
- package/schemas/prototype-icon-names.json +302 -0
- package/schemas/test-plan.schema.json +370 -52
- package/node_modules/@borewit/text-codec/README.md +0 -87
- package/node_modules/@jimp/diff/node_modules/pixelmatch/README.md +0 -110
- package/node_modules/@jimp/diff/node_modules/pixelmatch/node_modules/pngjs/README.md +0 -433
- package/node_modules/@jimp/file-ops/dist/browser/index.js +0 -8
- package/node_modules/@jimp/js-png/README.md +0 -35
- package/node_modules/@jimp/js-png/src/__image_snapshots__/index-node-test-ts-png-should-use-png-options-1-snap.png +0 -0
- package/node_modules/@jimp/js-png/src/output.png +0 -0
- package/node_modules/@jimp/js-png/vitest.config.browser.mjs +0 -3
- package/node_modules/@jimp/plugin-resize/README.md +0 -12
- package/node_modules/@jimp/plugin-resize/vitest.config.browser.mjs +0 -3
- package/node_modules/@tokenizer/inflate/README.md +0 -114
- package/node_modules/@tokenizer/token/README.md +0 -19
- package/node_modules/await-to-js/README.md +0 -82
- package/node_modules/debug/README.md +0 -481
- package/node_modules/exif-parser/README.md +0 -83
- package/node_modules/file-type/readme.md +0 -667
- package/node_modules/ieee754/README.md +0 -51
- package/node_modules/mime/README.md +0 -178
- package/node_modules/ms/readme.md +0 -59
- package/node_modules/parse-bmfont-xml/README.md +0 -74
- package/node_modules/parse-bmfont-xml/lib/browser.js +0 -85
- package/node_modules/parse-bmfont-xml/node_modules/xml2js/README.md +0 -507
- package/node_modules/pngjs/README.md +0 -287
- package/node_modules/sax/README.md +0 -228
- package/node_modules/strtok3/README.md +0 -795
- package/node_modules/tinycolor2/README.md +0 -492
- package/node_modules/tinycolor2/cjs/test.js +0 -2191
- package/node_modules/tinycolor2/cjs/test_template.js +0 -26
- package/node_modules/tinycolor2/deno_asserts@0.168.0.mjs +0 -807
- package/node_modules/tinycolor2/esm/test.js +0 -2189
- package/node_modules/tinycolor2/esm/test_template.js +0 -24
- package/node_modules/tinycolor2/tinycolor.js +0 -1191
- package/node_modules/token-types/README.md +0 -160
- package/node_modules/uint8array-extras/readme.md +0 -318
- package/node_modules/xml-parse-from-string/README.md +0 -35
- package/node_modules/xmlbuilder/README.md +0 -86
- package/node_modules/zod/README.md +0 -208
- package/node_modules/zod/v4/locales/ar.d.cts +0 -4
- package/node_modules/zod/v4/locales/ar.d.ts +0 -4
- package/node_modules/zod/v4/locales/az.d.cts +0 -4
- package/node_modules/zod/v4/locales/az.d.ts +0 -4
- package/node_modules/zod/v4/locales/be.d.cts +0 -4
- package/node_modules/zod/v4/locales/be.d.ts +0 -4
- package/node_modules/zod/v4/locales/ca.d.cts +0 -4
- package/node_modules/zod/v4/locales/ca.d.ts +0 -4
- package/node_modules/zod/v4/locales/cs.d.cts +0 -4
- package/node_modules/zod/v4/locales/cs.d.ts +0 -4
- package/node_modules/zod/v4/locales/de.d.cts +0 -4
- package/node_modules/zod/v4/locales/de.d.ts +0 -4
- package/node_modules/zod/v4/locales/en.d.cts +0 -5
- package/node_modules/zod/v4/locales/en.d.ts +0 -5
- package/node_modules/zod/v4/locales/eo.d.cts +0 -5
- package/node_modules/zod/v4/locales/eo.d.ts +0 -5
- package/node_modules/zod/v4/locales/es.d.cts +0 -4
- package/node_modules/zod/v4/locales/es.d.ts +0 -4
- package/node_modules/zod/v4/locales/fa.d.cts +0 -4
- package/node_modules/zod/v4/locales/fa.d.ts +0 -4
- package/node_modules/zod/v4/locales/fi.d.cts +0 -4
- package/node_modules/zod/v4/locales/fi.d.ts +0 -4
- package/node_modules/zod/v4/locales/fr-CA.d.cts +0 -4
- package/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
- package/node_modules/zod/v4/locales/fr.d.cts +0 -4
- package/node_modules/zod/v4/locales/fr.d.ts +0 -4
- package/node_modules/zod/v4/locales/he.d.cts +0 -4
- package/node_modules/zod/v4/locales/he.d.ts +0 -4
- package/node_modules/zod/v4/locales/hu.d.cts +0 -4
- package/node_modules/zod/v4/locales/hu.d.ts +0 -4
- package/node_modules/zod/v4/locales/id.d.cts +0 -4
- package/node_modules/zod/v4/locales/id.d.ts +0 -4
- package/node_modules/zod/v4/locales/index.d.cts +0 -39
- package/node_modules/zod/v4/locales/index.d.ts +0 -39
- package/node_modules/zod/v4/locales/it.d.cts +0 -4
- package/node_modules/zod/v4/locales/it.d.ts +0 -4
- package/node_modules/zod/v4/locales/ja.d.cts +0 -4
- package/node_modules/zod/v4/locales/ja.d.ts +0 -4
- package/node_modules/zod/v4/locales/kh.d.cts +0 -4
- package/node_modules/zod/v4/locales/kh.d.ts +0 -4
- package/node_modules/zod/v4/locales/ko.d.cts +0 -4
- package/node_modules/zod/v4/locales/ko.d.ts +0 -4
- package/node_modules/zod/v4/locales/mk.d.cts +0 -4
- package/node_modules/zod/v4/locales/mk.d.ts +0 -4
- package/node_modules/zod/v4/locales/ms.d.cts +0 -4
- package/node_modules/zod/v4/locales/ms.d.ts +0 -4
- package/node_modules/zod/v4/locales/nl.d.cts +0 -4
- package/node_modules/zod/v4/locales/nl.d.ts +0 -4
- package/node_modules/zod/v4/locales/no.d.cts +0 -4
- package/node_modules/zod/v4/locales/no.d.ts +0 -4
- package/node_modules/zod/v4/locales/ota.d.cts +0 -4
- package/node_modules/zod/v4/locales/ota.d.ts +0 -4
- package/node_modules/zod/v4/locales/pl.d.cts +0 -4
- package/node_modules/zod/v4/locales/pl.d.ts +0 -4
- package/node_modules/zod/v4/locales/ps.d.cts +0 -4
- package/node_modules/zod/v4/locales/ps.d.ts +0 -4
- package/node_modules/zod/v4/locales/pt.d.cts +0 -4
- package/node_modules/zod/v4/locales/pt.d.ts +0 -4
- package/node_modules/zod/v4/locales/ru.d.cts +0 -4
- package/node_modules/zod/v4/locales/ru.d.ts +0 -4
- package/node_modules/zod/v4/locales/sl.d.cts +0 -4
- package/node_modules/zod/v4/locales/sl.d.ts +0 -4
- package/node_modules/zod/v4/locales/sv.d.cts +0 -4
- package/node_modules/zod/v4/locales/sv.d.ts +0 -4
- package/node_modules/zod/v4/locales/ta.d.cts +0 -4
- package/node_modules/zod/v4/locales/ta.d.ts +0 -4
- package/node_modules/zod/v4/locales/th.d.cts +0 -4
- package/node_modules/zod/v4/locales/th.d.ts +0 -4
- package/node_modules/zod/v4/locales/tr.d.cts +0 -5
- package/node_modules/zod/v4/locales/tr.d.ts +0 -5
- package/node_modules/zod/v4/locales/ua.d.cts +0 -4
- package/node_modules/zod/v4/locales/ua.d.ts +0 -4
- package/node_modules/zod/v4/locales/ur.d.cts +0 -4
- package/node_modules/zod/v4/locales/ur.d.ts +0 -4
- package/node_modules/zod/v4/locales/vi.d.cts +0 -4
- package/node_modules/zod/v4/locales/vi.d.ts +0 -4
- package/node_modules/zod/v4/locales/zh-CN.d.cts +0 -4
- package/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
- package/node_modules/zod/v4/locales/zh-TW.d.cts +0 -4
- package/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Aae}from"./chunk-qcxzr2my.js";var r=async()=>{let{bootstrapEnvironment:e}=await import("./chunk-2fxdh48t.js");return{bootstrapEnvironment:()=>e(),resolveVersion:async()=>{let{getSettledMcpServerVersion:o}=await import("./chunk-yjawdzk8.js");return o()},log:(o)=>console.log(o),exit:(o)=>process.exit(o)}};async function s(e,o){let t=o??await r();t.bootstrapEnvironment();let n=Aae(e,await t.resolveVersion());t.log(n),t.exit(0)}export{s as runVersionEntrypoint};
|
|
3
|
+
|
|
4
|
+
//# debugId=956431CE0015294864756E2164756E21
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{i,Wt,Q,e}from"./chunk-z637nqg8.js";import{no,R,bt,me,U,ie,Ure,v,ys,b,fe,Et,o,P,xg,N,K,Xne,fr,Ee,df,Cc,d9,Il,un,V$,W$,x,Ce,E}from"./chunk-r5bxavdx.js";import{RL,Im,zi,bn,IL,Nte,Av,Fte,_T,Lm,CW,DT,ro,$L,qL,ei}from"./chunk-0qsy1qsx.js";import{r,t}from"./chunk-rbpdk7m0.js";import{AsyncLocalStorage as ce}from"async_hooks";var Sv=Symbol("terminalScreenshotUnavailable"),w=new ce;async function u3(n,s,a=!0,c=!0){if(!a)return w.run(void 0,s);let d={pending:[],unavailable:[],signal:n,closed:!1,multiAction:!1,defer:c};return w.run(d,async()=>{let l=!1;try{let u=await s();return l=!0,u}finally{try{if(l)await dW();else d.pending=[]}finally{d.closed=!0}}})}function yte(n,s,a,c=!0){return(d)=>()=>u3(n,d,!s&&a!=="observe",c)}function T(n,s){return n===s||!!n.observationId&&n.observationId===s.observationId&&n.deviceId===s.deviceId}async function mu(){let n=w.getStore();if(!n||n.closed||n.pending.length===0)return;n.multiAction=!0,await dW()}function de(n,s){let a=w.getStore();if(!a)return!1;if(a.closed)return!0;if(a.multiAction)return!1;if(!n.observationId||!n.deviceId)return!1;if(!a.pending.some((c)=>T(c.observation,n)))a.pending.push({observation:n,capture:s});return!0}async function aW(n,s){let a=w.getStore();if(a&&!a.defer&&!a.closed&&!a.multiAction&&n.observationId&&n.deviceId)return await cW(n,s,a.signal),!0;return de(n,s)}function vte(n){return w.getStore()?.pending.some((s)=>T(s.observation,n))??!1}async function cW(n,s,a){n[Sv]=!0;let c=w.getStore(),d={observation:n};c?.unavailable.push(d);for(let l=0;l<2;l++){if(c?.closed||a?.aborted)return;n.screenshotCaptureAttempted=!0;try{if(await s(n,a),delete n[Sv],c)c.unavailable=c.unavailable.filter((u)=>!T(u.observation,n));if(n.accessibilityAudit!==void 0)delete n.accessibilityAuditSkipped;return}catch(u){d.error=u,delete n.screenshotPath,delete n.screenshotSource,delete n.screenshotCapturedAt,delete n.screenshotImageSize,delete n.screenshotExpiresAt,delete n.screenshotSettled,delete n.screenshotOrientation,delete n.screenshotPixelsPerNativeUnit,delete n.screenshotScaleProvenance,delete n.screenshotAgeMs,delete n.screenshotHierarchyLagMs,delete n.screenshotHierarchyMismatch,delete n.screenshotFormat,delete n.screenshotMimeType,delete n.screenshotImage,delete n.screenshotCaptureSource,delete n.observationScreenshotResourceUri,delete n.accessibilityAudit,e.warn(`[PostActionCapture] terminal screenshot failed: ${r(u)}`,u)}}}async function op(n,s=n,a,c){let d=w.getStore(),l=d?.pending.findIndex((p)=>T(p.observation,n))??-1;if(!d||l<0)return!1;let[u]=d.pending.splice(l,1);return await cW(s,a??u.capture,d.signal??c),!0}async function dW(){let n=w.getStore();while(n&&n.pending.length>0)await op(n.pending[0].observation)}function CC(n){return n[Sv]===!0||(w.getStore()?.unavailable.some((s)=>T(s.observation,n))??!1)}function bte(n){return w.getStore()?.unavailable.find((s)=>T(s.observation,n))?.error}function _(n,s,a){let c=n.observationHostTimestampProvider?.(),d=n.observationTimestampProvider?.()??(typeof c==="number"?c+a:void 0);if(typeof d!=="number"||Number.isNaN(d))return s;if(d>=s)return e.debug(`[BaseVisualChange] Using observation timestamp override: ${d}`),d;return e.debug(`[BaseVisualChange] Ignoring observation timestamp override (${d}) older than action start (${s})`),s}function H(n,s,a){if(s.platform!=="android"||a.skipUiStability||a.display!==void 0)return;return n.getCachedActiveWindow()}function V(n,s){if(n===void 0||!s?.appId)return;if(n===null)return s.appId;return n.appId!==s.appId||n.activityName!==s.activityName||n.layoutSeqSum!==s.layoutSeqSum?s.appId:void 0}async function le(n,s,a,c){if(a===void 0||s.display!==void 0)return;let d=await n.getCachedActiveWindow();if(V(a,d)||!s.foregroundAppMayChange||s.packageName)return d;try{return await n.getActive(!0,s.perf,{timeoutMs:Math.min(c,d9),signal:s.signal})}catch(l){return o(s.signal),e.warn(`[BaseVisualChange] Post-dispatch active window read failed; using cached window: ${r(l)}`,l),d}}async function L(n,s,a,{beforeWindow:c,timeoutMs:d}){let l=await le(n,s,c,d),u=V(c,l);if(u)return u;if(s.packageName)return s.packageName;let p=a?.viewHierarchy?.packageName;if(p)return e.info(`[BaseVisualChange] Using packageName from view hierarchy: ${p}`),p;if(s.display!==void 0)return;let f=(l===void 0?await n.getCachedActiveWindow():l)?.appId;if(f)e.info(`[BaseVisualChange] Using cached packageName: ${f}`);return f||void 0}var ue=10,pe=1000,ve=Q({initialDelayMs:50,multiplier:2,maxDelayMs:400});class k{adb;adbFactory;idle;timer;rotationPollBackoff;stabilityThresholdMs=60;pollIntervalMs=17;constructor(n,s=v,a=i,{hierarchyReader:c,rotationPollBackoff:d=ve}={}){this.rotationPollBackoff=d,this.adbFactory=s,this.adb=s.create(n),this.idle=new _T(n,this.adbFactory,a,c),this.timer=a}async waitForRotation(n,s=Fte,a){let c=this.timer.now();for(let d=1;;d++){o(a);let l=await P(this.idle.getRotationStatus(n,c,s,{signal:a}),a);if(l.rotationComplete)return;if(!l.shouldContinue)throw Error(`Timeout waiting for rotation to ${n} after ${s}ms`);await P(this.timer.sleep(Math.min(this.rotationPollBackoff.delayForAttempt(d),Math.max(0,s-(this.timer.now()-c)))),a)}}async initializeUiStabilityTracking(n,s,a){let c=this.timer.now(),d=c,l=c+s;e.info(`[AwaitIdle] Starting UI stability wait for ${n} (timeout: ${s}ms, threshold: ${this.stabilityThresholdMs}ms)`);try{await ys(l,this.timer,a,(u,p)=>this.adb.executeCommand(`shell dumpsys gfxinfo ${b(n)} reset`,{timeoutMs:p,maxBuffer:ie,signal:u}))}catch(u){a?.throwIfAborted(),e.info(`[AwaitIdle] Failed to reset gfxinfo for ${n}: ${u}`)}return{startTime:c,lastNonIdleTime:d,prevMissedVsync:null,prevSlowUiThread:null,prevFrameDeadlineMissed:null,prevTotalFrames:null,firstGfxInfoLog:!0}}checkUiStabilityTimeout(n,s,a){let c=this.timer.now()-s,d=this.timer.now()-n,l=d>=this.stabilityThresholdMs,u=c<a;return{isStable:l,shouldContinue:u,stableTime:d,elapsedTime:c}}async processSingleUiStabilityCheck(n,s,a,c){let d=await this.idle.getUiStability(n,{missedVsync:s.prevMissedVsync,slowUiThread:s.prevSlowUiThread,frameDeadlineMissed:s.prevFrameDeadlineMissed,totalFrames:s.prevTotalFrames},s.firstGfxInfoLog,{perf:new U,timeoutMs:a,signal:c});return{updatedState:{prevMissedVsync:d.updatedPrevMissedVsync,prevSlowUiThread:d.updatedPrevSlowUiThread,prevFrameDeadlineMissed:d.updatedPrevFrameDeadlineMissed,prevTotalFrames:d.updatedPrevTotalFrames,firstGfxInfoLog:d.updatedFirstGfxInfoLog,lastNonIdleTime:d.shouldUpdateLastNonIdleTime?this.timer.now():s.lastNonIdleTime},...d.noFrameData?{noFrameData:!0}:{},...d.frameStatsUnavailable?{frameStatsUnavailable:!0}:{},shouldUpdateLastNonIdleTime:d.shouldUpdateLastNonIdleTime}}createNoFrameGraceCheck(n){let s=0,a=null;return(c,d)=>{if(d||this.timer.now()>=n)return!1;if(!c)return s=0,a=null,!1;if(s===0)a=this.timer.now();return s++,s>=ue&&a!==null&&this.timer.now()-a>=pe}}async waitForUiStabilityWithState(n,s,a,{perf:c=new U,signal:d}={}){return await this.idle.waitForQuietTreeStability(n,a.startTime,s,d)??this.waitForFrameStabilityWithState(n,s,a,{perf:c,signal:d})}async waitForFrameStabilityWithState(n,s,a,{perf:c,signal:d}){e.info(`[AwaitIdle] Continuing UI stability wait with existing state for package: ${n}`);let l=a,u=0,p=!1,f=a.startTime+s,m=this.createNoFrameGraceCheck(f),h={percentile50thMs:null,percentile90thMs:null,percentile95thMs:null,percentile99thMs:null,missedVsyncCount:null,slowUiThreadCount:null,frameDeadlineMissedCount:null};try{while(!0){let y=this.timer.now()-a.startTime;if(o(d),y>=s){e.info(`[AwaitIdle] Timeout waiting for UI stability after ${s}ms`);break}u++;let S=await c.track(`gfxinfoPoll_${u}`,async()=>ys(f,this.timer,d,(O,C)=>this.processSingleUiStabilityCheck(n,l,C,O)));if(l={...l,...S.updatedState},h.missedVsyncCount=l.prevMissedVsync,h.slowUiThreadCount=l.prevSlowUiThread,h.frameDeadlineMissedCount=l.prevFrameDeadlineMissed,m(S.noFrameData,S.frameStatsUnavailable)){e.info(`[AwaitIdle] Ending UI stability wait after the grace period without valid frame stats for ${n}`),h.idleEndReason="noFrameStats";break}let g=this.checkUiStabilityTimeout(l.lastNonIdleTime,a.startTime,s);if(e.info(`[AwaitIdle] Checking stability: ${g.elapsedTime}ms elapsed of ${s}ms timeout, stable for ${g.stableTime}ms/${this.stabilityThresholdMs}ms`),g.isStable){e.info(`[AwaitIdle] UI stable after ${g.elapsedTime}ms (stable for ${g.stableTime}ms)`),p=!0;break}if(!g.shouldContinue){e.info(`[AwaitIdle] Timeout waiting for UI stability after ${s}ms`);break}await this.timer.sleep(Math.min(this.pollIntervalMs,f-this.timer.now()))}}catch(y){d?.throwIfAborted(),e.error(`[AwaitIdle] Encountered an error while waiting for UI stability: ${y}`)}if(f>this.timer.now())try{let y=await c.track("finalGfxinfo",async()=>{let S=await ys(f,this.timer,d,(O,C)=>this.adb.executeCommand(`shell dumpsys gfxinfo ${b(n)}`,{timeoutMs:C,maxBuffer:ie,signal:O})),g=this.idle.parseMetrics(S.stdout);if(this.idle.validateFrameData(g))delete h.idleEndReason;return g});h.percentile50thMs=y.percentile50th,h.percentile90thMs=y.percentile90th,h.percentile95thMs=y.percentile95th,h.percentile99thMs=y.percentile99th,h.missedVsyncCount=y.missedVsync,h.slowUiThreadCount=y.slowUiThread,h.frameDeadlineMissedCount=y.frameDeadlineMissed}catch(y){d?.throwIfAborted(),e.warn(`[AwaitIdle] Failed to get final gfxinfo: ${y}`)}let A=this.timer.now()-a.startTime;return{packageName:n,...h,pollCount:u,stabilityWaitMs:A,isStable:p}}async waitForUiStability(n,s,a=new U,c){e.info(`[AwaitIdle] Waiting for UI stability for package: ${n} with timeoutMs: ${s}`);let d=await a.track("initUiStabilityTracking",async()=>this.initializeUiStabilityTracking(n,s,c));return this.waitForUiStabilityWithState(n,s,d,{perf:a,signal:c})}}function he(n){let s=n.viewHierarchy?.hierarchy;return!!s&&typeof s==="object"&&!("error"in s)}function il(n,s,a){if(a&&s.display?.key!==n.display?.key)return!1;if(!he(s))return!1;let c=s.freshness;if(c?.isFresh===!1||c?.verified===!1)return!1;let d=un(n.viewHierarchy);if(d===void 0)return!0;let l=un(s.viewHierarchy);return l!==void 0&&l>=d}class M{elementParser=new K;historyRepository;navigationGraph;timer;constructor(n=new $L,s,a=i){this.historyRepository=n,this.navigationGraph=s,this.timer=a}async recordOutcomeForAction(n,s,a){if(!n?.predictions?.likelyActions||!s)return;let c=this.findMatchingPrediction(n.predictions.likelyActions,a.toolName,a.toolArgs);if(!c)return;let l=(a.navigationGraph??this.navigationGraph??fe.getInstance()).getCurrentScreen();if(!l)return;let u=c.predictedElements??[],p=this.extractElementIdentifiers(s),f=this.calculateMatchScore(u,p,c.predictedScreen,l),m=this.isCorrectPrediction(c.predictedScreen,l,u,f),h=this.isPartialMatch(c.predictedScreen,l,f),A=this.resolveErrorType(c.predictedScreen,l,u,f),y=Cc.generateCacheKey(JSON.stringify({fromScreen:a.fromScreen,predictedScreen:c.predictedScreen,toolName:a.toolName,toolArgs:DT(a.toolArgs),timestamp:this.timer.now()}));try{await this.historyRepository.recordOutcome({appId:a.appId,predictionId:y,timestamp:this.timer.now(),fromScreen:a.fromScreen,predictedScreen:c.predictedScreen,actualScreen:l,toolName:a.toolName,toolArgs:a.toolArgs,predictedElements:u,foundElements:p,confidence:c.confidence??0.5,matchScore:f,correct:m,partialMatch:h,errorType:A})}catch(S){e.warn(`[PredictionAnalyzer] Failed to record outcome: ${S}`)}}findMatchingPrediction(n,s,a){let c=n.filter((d)=>d.action===s);if(c.length===0)return;for(let d of c){if(s==="tapOn"&&this.matchesTapOn(d,a))return d;if(s==="swipeOn"&&this.matchesSwipeOn(d,a))return d}return}matchesTapOn(n,s){let a=n.target,c=ro(s.text),d=ro(s.elementId??s.id),l=ro(a.text),u=ro(a.elementId),p=ro(a.contentDesc);if(c&&(c===l||c===p))return!0;if(d&&d===u)return!0;return!1}matchesSwipeOn(n,s){let a=n.target,c=s.container??{},d=s.lookFor??{},l=this.matchesTarget(c,a.container),u=this.matchesTarget(d,a.lookFor);return l||u}matchesTarget(n,s){if(!s)return!1;let a=ro(n.text),c=ro(n.elementId),d=ro(n.contentDesc),l=ro(s.text),u=ro(s.elementId),p=ro(s.contentDesc);if(a&&(a===l||a===p))return!0;if(c&&c===u)return!0;if(d&&d===p)return!0;return!1}extractElementIdentifiers(n){if(!n.viewHierarchy)return[];let s=this.elementParser.flattenViewHierarchy(n.viewHierarchy),a=new Set;for(let{element:c}of s){if(c.text)a.add(c.text);if(c["resource-id"])a.add(c["resource-id"]);if(c["content-desc"])a.add(c["content-desc"])}return Array.from(a)}calculateMatchScore(n,s,a,c){if(a!==c)return 0;if(n.length===0)return 1;let d=new Set(n.map(ro).filter((p)=>Boolean(p)));if(d.size===0)return 1;let l=new Set(s.map(ro).filter((p)=>Boolean(p))),u=0;for(let p of d)if(l.has(p))u+=1;return u/d.size}isCorrectPrediction(n,s,a,c){if(n!==s)return!1;if(a.length===0)return!0;return c>=1}isPartialMatch(n,s,a){return n===s&&a>0&&a<1}resolveErrorType(n,s,a,c){if(n!==s)return"wrong_screen";if(a.length>0&&c<1)return"missing_elements";return}}class W{window;adb;deviceId;timer;formFactor;constructor(n){this.window=n.window,this.adb=n.adb,this.deviceId=n.deviceId,this.timer=n.timer,this.formFactor=n.formFactor}async verify(n={}){let s=await this.readForeground(n);if(!s)Nte(this.deviceId);return s}async readForeground(n){let s=me(n.signal),{timeoutMs:a}=n,c=n.retryDelaysMs??[150,300],d=a!==void 0?this.timer.now()+a:void 0,l=()=>d===void 0?void 0:d-this.timer.now();for(let u=0;;u++){try{let m=await this.probeHomeForeground(s,l,n);if(m!=="not-home")return m==="verified"}catch(m){if(s?.aborted)throw m;e.warn(`[BaseVisualChange] Failed to read foreground app while verifying home press: ${r(m)}`,m)}let p=c[u],f=l();if(p===void 0||f!==void 0&&f<=p)return!1;await this.timer.sleep(p)}}async probeHomeForeground(n,s,a){if((s()??1)<=0)return"expired";let c=()=>({signal:n,timeoutMs:s()}),d=await this.window.getActive(!0,void 0,c());if((s()??1)<=0)return"expired";let{deviceId:l}=this;if(await Av(d.appId,this.adb,l,{timer:this.timer,...c(),incarnationToken:no(l),formFactor:this.formFactor})&&(s()??1)>0)return a.onVerifiedForeground?.(d.appId),"verified";return"not-home"}}function be(n,s){let a=n.screenIdentity,c=s.screenIdentity;if(!a||!c||a.platform!==c.platform)return;let d=a.key!==c.key;return{screenChanged:d,basis:d?"screenIdentity changed":"screenIdentity unchanged"}}function G(n,s){let a=n.activeWindow,c=s.activeWindow;if(!z(a)||!z(c))return;let d=a.appId!==c.appId||a.activityName!==c.activityName;return{screenChanged:d,basis:d?"activeWindow changed":"activeWindow unchanged"}}function z(n){return Boolean(n?.appId&&n.activityName&&Number.isInteger(n.layoutSeqSum))}function ye(n,s){let a=bn(n.viewHierarchy??null),c=bn(s.viewHierarchy??null);if(!a||!c)return;let d=a!==c;return{screenChanged:d,basis:d?"viewHierarchy changed":"viewHierarchy unchanged"}}function q(n,s){if(!n||!s)return;let a=ye(n,s),c=[be(n,s),G(n,s),a].filter((l)=>l!==void 0);if(a&&!a.screenChanged)return c.find((l)=>!l.screenChanged)??a;let d=c.find((l)=>l.screenChanged);if(d)return d;return c[0]??{screenChanged:!1,basis:"insufficient observation data"}}var SL=[50,100,200,400],I=new Set(["tapAt","swipeAt","tapOn","tapAny","swipeOn","dragAndDrop","pinchOn","multiTouch","dragPath"]),ge=Object.freeze({assertCurrent:()=>{}}),vc={skipScreenshot:!0,skipAccessibilityAudit:!0};function wv(n){return n?.displayFence??ge}function Y(n,s){return{renderedDisplayRevision:n.renderedDisplayRevision??s,displayTransitionReader:n.displayTransitions??Ce,renderedDisplayGeneration:n.renderedDisplayGeneration??j}}function j(n,s=R){let a=s.renderedDisplaySessions();if(!a)return;let c=a.getSessionForDevice(n);return c?a.getLastRenderedDisplayGeneration(c):void 0}function X(n,s=R){let a=s.renderedDisplaySessions();if(!a)return;let c=a.getSessionForDevice(n);return c?a.getLastRenderedDisplayRevision(c):void 0}var DC=4;function we(n){return n.platform==="ios"&&(n.displays?.panels.length??0)>1}function Re(n,s,a){return we(n)&&s.display===void 0&&I.has(s.predictionContext?.toolName??"")&&!a()}async function Z(n,s,{observer:a,transitions:c,callerStampIsStale:d=()=>!1,observeOptions:l={}}){if(!Re(n,s,d))return;let u=c.revision(n.deviceId);if(s.previousObservation?.displayRevision===u)return;let p=await a.getMostRecentCachedObserveResult();if(p.error===void 0&&p.displayRevision===u)return;return e.info(`[PANEL_GEOMETRY] Cached observation display revision ${p.displayRevision??"none"} != current ${u} on ${n.deviceId}; observing before ${s.predictionContext?.toolName}`),a.execute({...l,freshness:"fresh"})}class RT extends t{constructor(n){super("Cannot perform action without view hierarchy",n);this.name="MissingViewHierarchyError"}}function B(n){return n}function J(n,s,a,c){if(n.viewHierarchy?.hierarchy?.error)return!1;if(s>0&&!(n.freshness?.isFresh??!0))return!0;if(!a)return!1;let d=bn(n.viewHierarchy);return!!c&&!!d&&c===d}function ee(n){return Boolean(n.viewHierarchy&&!n.viewHierarchy.hierarchy.error)}function re(n,s){let a=s>0?"Observation may be stale after interaction":"Observation may not reflect expected visual change";n.freshness=n.freshness?{...n.freshness,warning:a}:{isFresh:!1,warning:a},e.warn(`[BaseVisualChange] ${a}`)}function te(n,s){if(s!==null){if(n.success!==!1){if(n.success=s,!s)n.error="No visual change observed"}return}if(n&&"error"in n&&n.error!==void 0)n.success=!1;else if(n&&(!("success"in n)||n.success===void 0))n.success=!0}function ne(n,s,a){if(s)n.gfxMetrics=s;let c=a.isEnabled()?a.getTimings():void 0;if(c)n.perfTiming=c}function oe(n){if(n.secure===!0)return`${"Device is locked; this interaction likely did not reach the app under test."} The lock is secure (PIN/pattern/password) \u2014 ask the user to unlock the device before continuing.`;if(n.secure===!1)return`${"Device is locked; this interaction likely did not reach the app under test."} The lock is a swipe lock \u2014 dismiss the keyguard (e.g. swipe up) before continuing.`;return"Device is locked; this interaction likely did not reach the app under test. Unlock or dismiss the keyguard before continuing."}function se(n,s){if(!n)return;let a=s(),c=a.getCurrentAppId(),d=a.getCurrentScreen();if(!c||!d)return;return{appId:c,fromScreen:d,toolName:n.toolName,toolArgs:n.toolArgs,navigationGraph:a}}class D{timer;constructor(n){this.timer=n}async capturePostActionObservation(n,s,a,c){let d=s.perf??new U,l=Wt(SL),u,p,f=async()=>{let m=await n.execute(s);if(s.display!==void 0)o(s.signal);if(s.display!==void 0&&il(p??m,m,!0))p=m;return m};try{d.serial("finalObserve"),u=await f(),d.end();for(let m=0;m<DC&&a(u);m++){let h=l.delayForAttempt(m+1);e.info(`[BaseVisualChange] Observation appears stale/unchanged, retrying in ${h}ms (attempt ${m+1}/${DC})`),await this.timer.sleep(h),d.serial(`finalObserve_retry_${m+1}`),u=await f(),d.end()}}catch(m){return this.recoverPostActionObservation(m,p??u,s,c)}return{observation:u,readFailed:!1}}recoverPostActionObservation(n,s,a,c){if(a.display===void 0)throw n;if(o(a.signal),n instanceof Error&&n.name==="AbortError")throw n;if(s&&il(s,s,!0))return this.notePostActionReadFailure(s,"observation retry",r(n),n);if(c.success===!1||c.skipped||c.wasAlreadyFocused)throw n;throw new fr(n)}notePostActionReadFailure(n,s,a,c){let d=`Post-action ${s} failed: ${a}; retaining the earlier observation`;return e.warn(`[BaseVisualChange] ${d}`,c),{observation:{...n,settled:!1,freshness:{...n.freshness,isFresh:n.freshness?.isFresh??!0,warning:[n.freshness?.warning,d].filter(Boolean).join("; ")}},readFailed:!0,...c instanceof Ee?{staleDisplay:c.details}:{}}}}var Ae="Boomerang partially applied: the forward swipe was delivered, so the content has moved. Observe before retrying; do not retry automatically.";function Se(n){return{...n,success:!1,error:`Boomerang partially applied: the forward swipe was delivered; the return swipe failed (${n.error??"unknown error"}). The content has moved. Observe before retrying; do not retry automatically.`,retryable:!1,partialApplication:!0}}function F(n){if(bt(n)||n instanceof Ee)return n;let s=new t(`${r(n)}. ${Ae}`,{cause:n});return ae.add(s),s}var ae=new WeakSet;function lW(n,s){try{o(n)}catch(a){throw typeof s==="object"&&s!==null&&ae.has(s)?F(a):a}}async function OC(n){let{timer:s,apexPauseMs:a,signal:c,returnSwipe:d}=n;try{if(o(c),a>0)await P(s.sleep(a),c);o(c);let l=await d();return l.success?l:Se(l)}catch(l){throw F(l)}}class Oe{static shouldRefetchCachedObservation(n,s=!1){return s?n.freshness?.isFresh!==!0:n.freshness?.isFresh===!1}windowCacheInvalidator=new ei;actionClockSkewCache;navigationGraphResolver=CW;device;adb;adbFactory;awaitIdle;observeScreen;window;predictionAnalyzer;deferredPredictionOutcomes=new WeakMap;timer;displayTransitionReader;renderedDisplayGeneration;renderedDisplayRevision;shouldCapturePostActionScreenshot(){return Im()==="settled"||!RL()||(Et()?.hasSubscriberForDevice(this.device.deviceId)??!1)}constructor(n,{adb:s=v,timer:a=i,renderedDisplayRevision:c=X,displayFence:d={}}={}){this.actionClockSkewCache=Xne(a,d.actionClockSkewCache),this.device=n;let{adbFactory:l,adb:u}=Oe.resolveAdb(n,s);this.adbFactory=l,this.adb=u,this.awaitIdle=d.awaitIdle??new k(n,this.adbFactory,a),this.observeScreen=d.observeScreen??qL(n,this.adbFactory),this.window=d.window??new Il(n,this.adbFactory,a),this.predictionAnalyzer=d.predictionAnalyzer??new M,this.timer=a;let p=Y(d,c);this.renderedDisplayRevision=p.renderedDisplayRevision,this.displayTransitionReader=p.displayTransitionReader,this.renderedDisplayGeneration=p.renderedDisplayGeneration}static resolveAdb(n,s){if(s&&typeof s.create==="function"){let a=s;return{adbFactory:a,adb:a.create(n)}}if(s){let a=s;return{adbFactory:{create:()=>a},adb:a}}return{adbFactory:v,adb:v.create(n)}}staleDisplay(n){return df(n,this.displayTransitionReader.identityRevision(this.device.deviceId),this.displayTransitionReader.currentObservedPanel(this.device.deviceId)?.key)}captureDisplayFence(n){let s=this.device.deviceId,a=()=>this.device.platform==="ios"?this.displayTransitionReader.identityRevision(s):this.displayTransitionReader.revision(s),c=a(),d=n??this.renderedDisplayGeneration(s)??this.displayTransitionReader.identityRevision(s);return{assertCurrent:()=>{if(a()!==c)throw this.staleDisplay(d)}}}async observedInteraction(n,s){if(!s.observePartialApplication)return this.runObservedInteraction(n,s);let a=!1;try{return await this.runObservedInteraction(async(c,d)=>{let l=await n(c,d);return a=l?.success===!1&&l.partialApplication===!0,l},s)}catch(c){throw a&&s.signal?.aborted?F(c):c}}async runObservedInteraction(n,s){await mu();let a=s.timeoutMs||12000,c=s.perf??new U;await Z(this.device,s,{observer:this.observeScreen,transitions:this.displayTransitionReader,callerStampIsStale:()=>this.callerDisplayStampIsStale(s),observeOptions:this.previousObserveOptions(s,c,"fresh")});let d=this.captureCallerFenceState(s);if(s.progress)await s.progress(0,100,"Preparing to execute action...");o(s.signal);let l=await this.resolvePreviousObservation(s,c,d),u=se(s.predictionContext,()=>this.navigationGraphResolver(this.device)),p=this.reconcileDisplayAfterRead(s,d,l),f=H(this.window,this.device,s),{actionStartTime:m,clockSkewMs:h}=await this.readActionClock(c),A=await this.runBlock(n,l,d,{options:s,stage:{perf:c,coordinateAction:p}});if(this.isUnconfirmedIosFailure(A,s))return c.end(),B(A);this.invalidateCtrlProxyCacheForDisplay(s);let y=_(s,m,h),S=await L(this.window,s,l,{beforeWindow:await f,timeoutMs:a}),g=await this.awaitUiStability(s,S,a,c),O=await this.takeObservation(A,l,{changeExpected:s.changeExpected,display:s.display,postActionObserveScreen:s.postActionObserveScreen,tolerancePercent:s.tolerancePercent??Ure,queryOptions:s.queryOptions,gfxMetrics:g,perf:c,actionStartTime:s.overrideMinTimestamp??y,predictionContext:s.deferPredictionOutcome?void 0:u,signal:s.signal,deferPostActionScreenshot:s.deferPostActionScreenshot});if(s.deferPredictionOutcome&&u&&typeof O==="object")this.deferredPredictionOutcomes.set(O,async(C)=>{await this.predictionAnalyzer.recordOutcomeForAction(l,C,u)});if(s.display!==void 0)O.effect=this.deriveInteractionEffect(l,O.observation);return this.annotateDeviceLock(O,l),O}actionDisplayRevision(){return this.displayTransitionReader.identityRevision(this.device.deviceId)}captureCallerFenceState(n){let s=this.actionDisplayRevision(),a=this.renderedDisplayGeneration(this.device.deviceId)??s,c=n.resolvesTargetFromRead===!0&&n.display===void 0&&!n.skipPreviousObserve,d={displayRevision:s,fence:this.captureDisplayFence(),observedGeneration:a,reresolvesTarget:c,refreshForDisplayChange:!1};if(this.callerDisplayStampIsStale(n)){if(!c)throw this.staleDisplay(a);d.refreshForDisplayChange=!0}return d}callerDisplayStampIsStale(n){let s=this.renderedDisplayRevision(this.device.deviceId);if(n.skipCallerDisplayFence||!I.has(n.predictionContext?.toolName??"")||s===void 0)return!1;return this.device.platform==="ios"?!this.displayTransitionReader.sameIdentitySince(this.device.deviceId,s):s!==this.displayTransitionReader.revision(this.device.deviceId)}async resolvePreviousObservation(n,s,a){if(n.skipPreviousObserve)return e.info("[BaseVisualChange] Skipping previous observe (app was terminated/cleared)"),n.previousObservation??null;if(n.previousObservation)return n.previousObservation;let c=await this.readFreshPreviousObservation(n,s,a.refreshForDisplayChange);if(n.usesObservationForResolution!==!1&&xg(c))throw new t(`Cannot resolve elements against a wrong-window hierarchy: ${c.freshness?.warning??"The refreshed observation still belongs to another window"}`);return c}async readFreshPreviousObservation(n,s,a){let c=n.usesObservationForResolution!==!1,d=c?V$(this.device.deviceId):void 0,l=a||d!==void 0,u={knownWrongWindow:d!==void 0},p;try{await n.progress?.(10,100,"Getting previous view hierarchy..."),p=await s.track("getPreviousObserve",()=>this.readCachedOrFreshPrevious(n,s,l,u))}catch(f){if(u.knownWrongWindow&&c)throw new RT({cause:f});e.warn(`Previous observation failed: ${r(f)}`,f),p=await this.readPreviousFallback(n,s)}return Oe.assertUsablePrevious(p,u.knownWrongWindow&&c),this.completeResolutionRead(p,d),p}static assertUsablePrevious(n,s){if(!n)throw new RT;if(s&&(!n.viewHierarchy||n.viewHierarchy.hierarchy.error))throw new RT}completeResolutionRead(n,s){if(s!==void 0&&!xg(n))W$(this.device.deviceId,s)}readPreviousFallback(n,s){return s.track("getPreviousObserveFallback",()=>this.observeScreen.execute(this.previousObserveOptions(n,s,n.skipCallerDisplayFence?"fresh":"cached-ok")))}async readCachedOrFreshPrevious(n,s,a,c){let d=n.display?void 0:await this.observeScreen.getMostRecentCachedObserveResult();c.knownWrongWindow||=xg(d);let l=Boolean(d?.viewHierarchy&&!d.viewHierarchy.hierarchy.error),u=a||l&&Oe.shouldRefetchCachedObservation(d);if(!l||u||Oe.shouldRefetchCachedObservation(d,n.skipCallerDisplayFence))return this.observeScreen.execute(this.previousObserveOptions(n,s,u||n.skipCallerDisplayFence?"fresh":"cached-ok"));return d}previousObserveOptions(n,s,a){return{...vc,freshness:a,timeoutMs:zi,skipStaleWindowRecovery:!0,display:n.display,queryOptions:n.queryOptions,perf:s,signal:n.signal}}reconcileDisplayAfterRead(n,s,a){let c=I.has(n.predictionContext?.toolName??""),d=()=>s.refreshForDisplayChange||this.actionDisplayRevision()!==s.displayRevision;if(s.reresolvesTarget&&d()&&a?.displayRevision!==void 0&&a.displayRevision===this.displayTransitionReader.revision(this.device.deviceId))s.displayRevision=this.actionDisplayRevision(),s.observedGeneration=this.displayTransitionReader.identityRevision(this.device.deviceId),s.fence=this.captureDisplayFence(s.observedGeneration),s.refreshForDisplayChange=!1;if(c&&d())throw this.staleDisplay(s.observedGeneration);return c}async readActionClock(n){return n.track("getActionStartTime",async()=>{let s=0;if(this.device.platform==="android"&&typeof this.adb.getDeviceTimestampMs==="function")s=await this.actionClockSkewCache.getSkewMs(this.device.deviceId,()=>typeof this.adb.getDeviceTimestampMsWithSource==="function"?this.adb.getDeviceTimestampMsWithSource():this.adb.getDeviceTimestampMs())??0;return{actionStartTime:this.timer.now()+s,clockSkewMs:s}})}runBlock(n,s,a,{options:c,stage:d}){let{perf:l,coordinateAction:u}=d;return l.track("executeBlock",async()=>{if(o(c.signal),u&&this.actionDisplayRevision()!==a.displayRevision)throw this.staleDisplay(a.observedGeneration);try{return await n(s,a.fence)}finally{if(c.foregroundAppMayChange)this.windowCacheInvalidator.invalidate(this.device,!0)}})}isUnconfirmedIosFailure(n,s){return this.device.platform==="ios"&&n?.success===!1&&n.retryable===!1&&!(s.observePartialApplication&&n.partialApplication===!0)}invalidateCtrlProxyCacheForDisplay(n){if(n.display===void 0)return;if(this.device.platform==="android")E.getExistingInstance(this.device.deviceId)?.invalidateCache();else if(this.device.platform==="ios")x.getExistingInstance(this.device.deviceId)?.invalidateCache();o(n.signal)}async awaitUiStability(n,s,a,c){if(n.skipUiStability)return e.info("[BaseVisualChange] Skipping UI stability tracking (skipUiStability=true)"),null;if(this.device.platform!=="android")return e.debug("[BaseVisualChange] Skipping UI stability tracking (gfxinfo is Android-only)"),null;if(!s)return null;e.info(`[BaseVisualChange] Starting UI stability initialization with package: ${s}`);let d=await c.track("initUiStability",async()=>this.awaitIdle.initializeUiStabilityTracking(s,a,n.signal)).catch((u)=>(o(n.signal),e.debug(`[BaseVisualChange] UI stability initialization failed: ${u}`),null));if(s.trim()==="")return null;c.serial("uiStability");let l=d!==null?await this.awaitIdle.waitForUiStabilityWithState(s,a,d,{perf:c,signal:n.signal}):await this.awaitIdle.waitForUiStability(s,a,c,n.signal);return c.end(),l}annotateDeviceLock(n,s){if(!n||this.device.platform!=="android")return;let a=s?.deviceLock;if(!a?.locked)return;delete n.deviceLockUnknown,n.deviceLock=a,n.deviceLockWarning=oe(a),e.warn(`[BaseVisualChange] ${n.deviceLockWarning}`)}async recordDeferredPredictionOutcome(n,s){if(!n||typeof n!=="object")return;let a=this.deferredPredictionOutcomes.get(n);if(!a)return;this.deferredPredictionOutcomes.delete(n),await a(s)}async captureTerminalObservationScreenshot(n,s=new U,a){if(!n)return;if(this.shouldCapturePostActionScreenshot()||N.isAccessibilityAuditEnabled()){if(this.observeScreen.captureScreenshot&&await aW(n,async(c,d)=>{await this.observeScreen.captureScreenshot?.(s,{signal:d??a,observation:c})}))return;await this.observeScreen.captureScreenshot?.(s,{signal:a,observation:n});return}await this.observeScreen.runAccessibilityAudit?.(n,s)}compareActiveWindow(n,s){return G(n,s)}deriveInteractionEffect(n,s){return q(n,s)}capturePostActionObservation(n,s,a,c){return new D(this.timer).capturePostActionObservation(n,s,a,c)}notePostActionReadFailure(n,s,a,c){return new D(this.timer).notePostActionReadFailure(n,s,a,c)}rethrowObservationAbort(n,s,a=!0){if(!a)return;if(o(s),n instanceof Error&&n.name==="AbortError")throw n}checkPostActionDisplay(n,s,a){try{return s?.(),!0}catch(c){if(o(a),c instanceof Error&&c.name==="AbortError")throw c;if(!n.observation||!il(n.observation,n.observation,!0))throw new fr(c);let d=this.notePostActionReadFailure(n.observation,"display settle validation",r(c),c);return n.observation=d.observation,n.staleDisplay=d.staleDisplay??n.staleDisplay,!1}}async settleDisplayObservation(n,s,a){try{let c=await new Lm(s,this.timer).execute({...a,initialMinTimestampMs:un(n.viewHierarchy),skipPerformanceAudit:!0,skipRecompositionTracking:!0});return o(a.signal),il(n,c.observation,!0)?{observation:c.observation,readFailed:!1}:this.notePostActionReadFailure(n,"display settle","unusable settle capture",this.staleDisplay(n.display.generation??this.displayTransitionReader.identityRevision(this.device.deviceId)))}catch(c){if(o(a.signal),c instanceof Error&&c.name==="AbortError")throw c;return this.notePostActionReadFailure(n,"display settle",r(c),c)}}async finalizePostActionCapture(n,s){try{return await this.captureTerminalObservationScreenshot(n.observation,s.perf,s.signal),n}catch(a){if(s.display===void 0)throw a;this.rethrowObservationAbort(a,s.signal);let c=this.notePostActionReadFailure(n.observation,"terminal screenshot/audit",r(a),a);return{...c,staleDisplay:c.staleDisplay??n.staleDisplay}}}async refineCapture(n,s,a,c){let d=n;if(a.display!==void 0&&!d.readFailed&&ee(d.observation))d=await this.settleDisplayObservation(d.observation,s,{display:a.display,signal:a.signal});if(!a.deferPostActionScreenshot)d=await this.finalizePostActionCapture(d,{...a,perf:c});return d}async takeObservation(n,s,a){let c=a.perf??new U,d=a.postActionObserveScreen??this.observeScreen,l=a.actionStartTime??0,u=bn(s?.viewHierarchy),p=(y)=>J(y,l,a.changeExpected,u),f=await this.capturePostActionObservation(d,{freshness:"fresh",display:a.display,queryOptions:a.queryOptions,perf:c,minTimestamp:l,signal:a.signal,...vc},p,n);if(!f.readFailed&&p(f.observation))re(f.observation,l);f=await this.refineCapture(f,d,a,c);let m=f.observation,h=n;if(f.staleDisplay)h.staleDisplay=f.staleDisplay;let A=a.changeExpected?IL(s?.viewHierarchy,m.viewHierarchy):null;if(te(h,A),ne(m,a.gfxMetrics,c),h.observation=m,a.predictionContext)await this.predictionAnalyzer.recordOutcomeForAction(s,m,a.predictionContext);return B(h)}async verifyAndroidHomeForeground(n={}){return new W({window:this.window,adb:this.adb,deviceId:this.device.deviceId,formFactor:this.device.formFactor,timer:this.timer}).verify(n)}}var Kt={rawCoordinateGesture:{changeExpected:!1},selectorResolvedGesture:{changeExpected:!1,resolvesTargetFromRead:!0},noTreeResolution:{usesObservationForResolution:!1,changeExpected:!1},textEdit:{usesObservationForResolution:!1,changeExpected:!1,skipUiStability:!0},appLaunch:{changeExpected:!1,skipPreviousObserve:!0,deferPostActionScreenshot:!0}},At={immediate:100,brief:500,gesture:800,navigation:2000,systemUi:3000,lifecycle:5000,longGesture:8000,urlDispatch:12000};
|
|
3
|
+
export{Sv,u3,yte,mu,aW,vte,cW,op,dW,CC,bte,il,SL,vc,wv,DC,RT,lW,OC,Oe,Kt,At};
|
|
4
|
+
|
|
5
|
+
//# debugId=7DD63D0999179F2464756E2164756E21
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{fee,hee,m5}from"./chunk-e98dqnc9.js";import{PassThrough as u}from"stream";var i=Symbol("swallowsErrorsAfterClose"),a=class{_readBuffer;_started=!1;_closed=!1;constructor(e=m5.stdin,r=m5.stdout,s){this._stdin=e,this._stdout=r,this._readBuffer=new fee({maxBufferSize:s?.maxBufferSize})}onclose;onerror;onmessage;_ondata=(e)=>{try{this._readBuffer.append(e),this.processReadBuffer()}catch(r){this.onerror?.(r),this.close().catch(()=>{})}};_onerror=(e)=>{this.onerror?.(e)};_onstdouterror=(e)=>{if(this._closed)return;this.onerror?.(e),this.close().catch(()=>{})};_onstdinclose=()=>{this.close().catch(()=>{})};async start(){if(this._started)throw Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0;for(let e of this._stdout.listeners("error"))if(e[i])this._stdout.off("error",e);if(this._stdin.readableEnded||this._stdin.destroyed)setImmediate(this._onstdinclose);this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror),this._stdin.on("end",this._onstdinclose),this._stdin.on("close",this._onstdinclose),this._stdout.on("error",this._onstdouterror)}processReadBuffer(){while(!0)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._closed)return;if(this._closed=!0,this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.off("end",this._onstdinclose),this._stdin.off("close",this._onstdinclose),this._onstdouterror[i]=!0,this._stdin.listenerCount("data")===0)this._stdin.pause();this._readBuffer.clear(),this.onclose?.()}send(e){if(this._closed)return Promise.reject(Error("StdioServerTransport is closed"));return new Promise((r,s)=>{let d=hee(e),t=!1,o=(l)=>{if(t)return;t=!0,this._stdout.off("error",o),this._stdout.off("drain",n),s(l)},n=()=>{if(t)return;t=!0,this._stdout.off("error",o),this._stdout.off("drain",n),r()};if(this._stdout.once("error",o),this._stdout.write(d)){if(t)return;t=!0,this._stdout.off("error",o),r()}else if(!t)this._stdout.once("drain",n)})}};class c extends a{source;feed;constructor(e,r,s){super(r,s);this.source=e;this.feed=r}forwardSourceError=(e)=>{this.onerror?.(e)};async start(){await super.start(),this.source.on("error",this.forwardSourceError),this.source.pipe(this.feed,{end:!1})}async close(){this.source.off("error",this.forwardSourceError),this.source.unpipe(this.feed),await super.close()}}function z(e=process.stdin,r=process.stdout){return new c(e,new u,r)}export{z as createStdioServerTransport};
|
|
3
|
+
|
|
4
|
+
//# debugId=5C330F4A3EB7DCD164756E2164756E21
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{i4,o4}from"./chunk-65y8v4td.js";import"./chunk-0jrrsnc9.js";import"./chunk-hrfytkxh.js";import"./chunk-26k317v5.js";import"./chunk-64j0majr.js";import"./chunk-2f9rkmhx.js";import"./chunk-0n6swkwg.js";import"./chunk-00167wan.js";import"./chunk-284ptqa4.js";import"./chunk-e98dqnc9.js";import"./chunk-w7hkv422.js";import"./chunk-7rz9898k.js";import"./chunk-fgb98zjj.js";import"./chunk-3xkpk44w.js";import"./chunk-0qsy1qsx.js";import"./chunk-rvvy1bte.js";import"./chunk-r5bxavdx.js";import"./chunk-yf7ympyz.js";import"./chunk-4hw3665t.js";import"./chunk-5d2hft6c.js";import"./chunk-z637nqg8.js";import"./chunk-58wzr3mt.js";export{i4 as printUnknownDaemonCommand,o4 as runDaemonCommand};
|
|
3
|
+
|
|
4
|
+
//# debugId=2D9FF24AAA81ABB564756E2164756E21
|