execbro 2.0.0 → 2.1.0

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.
Files changed (61) hide show
  1. package/build/__tests__/unit/coordinateMiss.test.d.ts +2 -0
  2. package/build/__tests__/unit/coordinateMiss.test.d.ts.map +1 -0
  3. package/build/__tests__/unit/coordinateMiss.test.js +111 -0
  4. package/build/__tests__/unit/coordinateMiss.test.js.map +1 -0
  5. package/build/__tests__/unit/deviceResolverStaleRetry.test.d.ts +2 -0
  6. package/build/__tests__/unit/deviceResolverStaleRetry.test.d.ts.map +1 -0
  7. package/build/__tests__/unit/deviceResolverStaleRetry.test.js +69 -0
  8. package/build/__tests__/unit/deviceResolverStaleRetry.test.js.map +1 -0
  9. package/build/__tests__/unit/findElementTreeReuse.test.d.ts +2 -0
  10. package/build/__tests__/unit/findElementTreeReuse.test.d.ts.map +1 -0
  11. package/build/__tests__/unit/findElementTreeReuse.test.js +77 -0
  12. package/build/__tests__/unit/findElementTreeReuse.test.js.map +1 -0
  13. package/build/__tests__/unit/settleAndDiff.test.d.ts +2 -0
  14. package/build/__tests__/unit/settleAndDiff.test.d.ts.map +1 -0
  15. package/build/__tests__/unit/settleAndDiff.test.js +110 -0
  16. package/build/__tests__/unit/settleAndDiff.test.js.map +1 -0
  17. package/build/__tests__/unit/verifyAction.test.js +2 -1
  18. package/build/__tests__/unit/verifyAction.test.js.map +1 -1
  19. package/build/__tests__/unit/waitForMeasurements.test.d.ts +2 -0
  20. package/build/__tests__/unit/waitForMeasurements.test.d.ts.map +1 -0
  21. package/build/__tests__/unit/waitForMeasurements.test.js +69 -0
  22. package/build/__tests__/unit/waitForMeasurements.test.js.map +1 -0
  23. package/build/core/android.d.ts +3 -1
  24. package/build/core/android.d.ts.map +1 -1
  25. package/build/core/android.js +5 -5
  26. package/build/core/android.js.map +1 -1
  27. package/build/core/deviceDiscovery.d.ts +5 -1
  28. package/build/core/deviceDiscovery.d.ts.map +1 -1
  29. package/build/core/deviceDiscovery.js +13 -2
  30. package/build/core/deviceDiscovery.js.map +1 -1
  31. package/build/core/deviceResolver.d.ts.map +1 -1
  32. package/build/core/deviceResolver.js +17 -2
  33. package/build/core/deviceResolver.js.map +1 -1
  34. package/build/core/ios.d.ts +14 -3
  35. package/build/core/ios.d.ts.map +1 -1
  36. package/build/core/ios.js +39 -15
  37. package/build/core/ios.js.map +1 -1
  38. package/build/core/pressables.d.ts +33 -0
  39. package/build/core/pressables.d.ts.map +1 -1
  40. package/build/core/pressables.js +73 -4
  41. package/build/core/pressables.js.map +1 -1
  42. package/build/pro/coordinateMiss.d.ts +55 -0
  43. package/build/pro/coordinateMiss.d.ts.map +1 -0
  44. package/build/pro/coordinateMiss.js +122 -0
  45. package/build/pro/coordinateMiss.js.map +1 -0
  46. package/build/pro/tap.d.ts +8 -0
  47. package/build/pro/tap.d.ts.map +1 -1
  48. package/build/pro/tap.js +99 -11
  49. package/build/pro/tap.js.map +1 -1
  50. package/build/pro/verifyAction.d.ts +43 -2
  51. package/build/pro/verifyAction.d.ts.map +1 -1
  52. package/build/pro/verifyAction.js +95 -36
  53. package/build/pro/verifyAction.js.map +1 -1
  54. package/build/tools/interactionTools.d.ts +6 -0
  55. package/build/tools/interactionTools.d.ts.map +1 -1
  56. package/build/tools/interactionTools.js +28 -11
  57. package/build/tools/interactionTools.js.map +1 -1
  58. package/build/tools/screenshotTools.d.ts.map +1 -1
  59. package/build/tools/screenshotTools.js +33 -12
  60. package/build/tools/screenshotTools.js.map +1 -1
  61. package/package.json +1 -1
@@ -1,8 +1,48 @@
1
1
  import { type TapScreenshot, type TapVerification } from "./tap.js";
2
- export declare const SETTLE_DELAY_MS = 800;
3
2
  export declare const BURST_FRAME_COUNT = 4;
4
3
  export declare const BURST_FRAME_INTERVAL_MS = 150;
5
- export declare const ZERO_DIFF_RETRY_DELAY_MS = 400;
4
+ export declare const SETTLE_POLL_START_MS = 150;
5
+ export declare const SETTLE_STABLE_TIMEOUT_MS = 1600;
6
+ export declare const NO_CHANGE_CONFIRM_MS = 1100;
7
+ export declare const NO_CHANGE_CONFIRM_ANDROID_MS = 1500;
8
+ export declare const SETTLE_IDLE_POLL_MS = 60;
9
+ export interface SettleFrame {
10
+ buffer: Buffer;
11
+ width: number;
12
+ height: number;
13
+ scaleFactor: number;
14
+ }
15
+ interface SettleDiff {
16
+ changed: boolean;
17
+ changeRate: number;
18
+ changedPixels: number;
19
+ totalPixels: number;
20
+ }
21
+ export interface SettleResult {
22
+ frame: SettleFrame;
23
+ diff: SettleDiff;
24
+ /** false when the cap was hit while the screen was still moving */
25
+ settled: boolean;
26
+ captures: number;
27
+ }
28
+ /**
29
+ * Wait for the screen to stop changing, then diff the settled frame against
30
+ * `before`. Returns null only when no frame could be captured at all.
31
+ *
32
+ * capture/compare/now/sleep are injected so the loop is unit-testable without a
33
+ * device; production callers use the module defaults.
34
+ */
35
+ export declare function settleAndDiff(args: {
36
+ beforeBuffer: Buffer;
37
+ statusBarHeight: number;
38
+ capture: () => Promise<SettleFrame | null>;
39
+ compare?: (a: Buffer, b: Buffer, o: {
40
+ statusBarHeight: number;
41
+ }) => Promise<SettleDiff>;
42
+ noChangeConfirmMs?: number;
43
+ now?: () => number;
44
+ sleep?: (ms: number) => Promise<void>;
45
+ }): Promise<SettleResult | null>;
6
46
  export declare function captureScreenshot(platform: "ios" | "android", udid?: string): Promise<{
7
47
  buffer: Buffer;
8
48
  width: number;
@@ -47,4 +87,5 @@ export declare function burstCaptureAndVerify(args: {
47
87
  verification?: TapVerification;
48
88
  afterWithMarkerBuffer?: Buffer;
49
89
  }>;
90
+ export {};
50
91
  //# sourceMappingURL=verifyAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifyAction.d.ts","sourceRoot":"","sources":["../../src/pro/verifyAction.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,eAAe,EAGvB,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAO3C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,wBAAsB,iBAAiB,CACnC,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,IAAI,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAAC,CAaR;AAMD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBxF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IACzC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC;IACR,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC,CAsID;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAC9C,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC;IACR,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC,CAwGD"}
1
+ {"version":3,"file":"verifyAction.d.ts","sourceRoot":"","sources":["../../src/pro/verifyAction.ts"],"names":[],"mappings":"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"}
@@ -3,16 +3,79 @@ import { iosScreenshot } from "../core/ios.js";
3
3
  import { androidScreenshot } from "../core/android.js";
4
4
  import { compareScreenshots } from "./screenshot-diff.js";
5
5
  import { analyzeBurstFrames, buildVerificationExplanation, } from "./tap.js";
6
- export const SETTLE_DELAY_MS = 800;
7
6
  export const BURST_FRAME_COUNT = 4;
8
7
  export const BURST_FRAME_INTERVAL_MS = 150;
9
- // Modal slide-up / sheet-present animations on iOS occasionally settle just
10
- // after the 800 ms window — first diff reports zero change while the second
11
- // (taken a few hundred ms later) catches the modal. We retry once when the
12
- // first diff is exactly 0 so a single missed animation frame doesn't flip
13
- // `meaningful` to false. Common-path taps that genuinely produce a change on
14
- // the first capture are unaffected.
15
- export const ZERO_DIFF_RETRY_DELAY_MS = 400;
8
+ // --- Adaptive settle (replaces the old fixed 800ms sleep + zero-diff retries) ---
9
+ //
10
+ // Measured on device (iPhone Air sim, 2026-07-31): a tab switch is fully stable
11
+ // at t+239ms while a heavier transition needed t+1557ms. A single constant is
12
+ // therefore both too slow for the common case and too short for the slow one —
13
+ // which is exactly why the zero-diff retry existed. We now poll instead: capture
14
+ // frames until two consecutive ones are identical, then diff against `before`.
15
+ //
16
+ // Short lead-in before the first frame — under this, the capture reliably races
17
+ // the very start of the touch-down animation and every screen looks "changing".
18
+ export const SETTLE_POLL_START_MS = 150;
19
+ // Hard cap on the whole settle loop for a screen that never stops moving
20
+ // (spinners, video, looping animations). We return the last frame we have.
21
+ export const SETTLE_STABLE_TIMEOUT_MS = 1600;
22
+ // "Nothing happened" is the expensive conclusion to get wrong (it flips
23
+ // `meaningful` to false and sends the agent down a diagnostic path), so an idle
24
+ // screen keeps being watched until this much time has passed — long enough to
25
+ // catch a modal that only starts animating after the first frames. The old code
26
+ // sampled twice (t+800ms, t+1200ms on iOS; up to t+2000ms on Android); we sample
27
+ // continuously instead, so a shorter window still covers strictly more moments.
28
+ export const NO_CHANGE_CONFIRM_MS = 1100;
29
+ // Emulators animate slower than the iOS simulator — the Android zero-diff retry
30
+ // budget was double the iOS one for exactly this reason.
31
+ export const NO_CHANGE_CONFIRM_ANDROID_MS = 1500;
32
+ // Gap between captures while waiting out the no-change confirmation window. A
33
+ // capture already costs ~220ms, which is the real sampling interval; this just
34
+ // keeps us from hammering simctl/adb back-to-back.
35
+ export const SETTLE_IDLE_POLL_MS = 60;
36
+ /**
37
+ * Wait for the screen to stop changing, then diff the settled frame against
38
+ * `before`. Returns null only when no frame could be captured at all.
39
+ *
40
+ * capture/compare/now/sleep are injected so the loop is unit-testable without a
41
+ * device; production callers use the module defaults.
42
+ */
43
+ export async function settleAndDiff(args) {
44
+ const noChangeConfirmMs = args.noChangeConfirmMs ?? NO_CHANGE_CONFIRM_MS;
45
+ const compare = args.compare ?? compareScreenshots;
46
+ const now = args.now ?? (() => Date.now());
47
+ const sleep = args.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
48
+ const opts = { statusBarHeight: args.statusBarHeight };
49
+ const start = now();
50
+ await sleep(SETTLE_POLL_START_MS);
51
+ let prev = await args.capture();
52
+ if (!prev)
53
+ return null;
54
+ let captures = 1;
55
+ let diff = await compare(args.beforeBuffer, prev.buffer, opts);
56
+ while (now() - start < SETTLE_STABLE_TIMEOUT_MS) {
57
+ const next = await args.capture();
58
+ // A dropped capture mid-loop isn't fatal — report what we already have.
59
+ if (!next)
60
+ return { frame: prev, diff, settled: true, captures };
61
+ captures++;
62
+ const stable = (await compare(prev.buffer, next.buffer, opts)).changedPixels === 0;
63
+ prev = next;
64
+ diff = await compare(args.beforeBuffer, next.buffer, opts);
65
+ if (stable) {
66
+ // Changed and stable: the common success path — return immediately.
67
+ if (diff.changedPixels > 0)
68
+ return { frame: prev, diff, settled: true, captures };
69
+ // Still identical to `before`: keep watching until the window closes
70
+ // so a late-starting animation isn't reported as "no change".
71
+ if (now() - start >= noChangeConfirmMs) {
72
+ return { frame: prev, diff, settled: true, captures };
73
+ }
74
+ await sleep(SETTLE_IDLE_POLL_MS);
75
+ }
76
+ }
77
+ return { frame: prev, diff, settled: false, captures };
78
+ }
16
79
  export async function captureScreenshot(platform, udid) {
17
80
  try {
18
81
  const result = platform === "ios" ? await iosScreenshot(undefined, udid) : await androidScreenshot();
@@ -74,8 +137,25 @@ export async function verifyAndCapture(args) {
74
137
  }
75
138
  };
76
139
  }
77
- await new Promise((resolve) => setTimeout(resolve, SETTLE_DELAY_MS));
78
- let after = await captureScreenshot(platform, udid);
140
+ // The settle loop needs a `before` to diff against; without one (or with
141
+ // verification disabled) there's nothing to wait for beyond the animation
142
+ // lead-in, so take a single frame after a short pause.
143
+ const canSettleLoop = shouldVerify && !!beforeBuffer;
144
+ const rawStatusBar = platform === "ios" ? 177 : 142;
145
+ const settleStatusBarHeight = Math.round(rawStatusBar / (beforeScaleFactor || 1));
146
+ let settle = null;
147
+ if (canSettleLoop) {
148
+ settle = await settleAndDiff({
149
+ beforeBuffer: beforeBuffer,
150
+ statusBarHeight: settleStatusBarHeight,
151
+ capture: () => captureScreenshot(platform, udid),
152
+ noChangeConfirmMs: platform === "android" ? NO_CHANGE_CONFIRM_ANDROID_MS : NO_CHANGE_CONFIRM_MS
153
+ });
154
+ }
155
+ else {
156
+ await new Promise((resolve) => setTimeout(resolve, SETTLE_POLL_START_MS));
157
+ }
158
+ let after = settle ? settle.frame : await captureScreenshot(platform, udid);
79
159
  if (!after) {
80
160
  if (shouldVerify) {
81
161
  return {
@@ -105,33 +185,12 @@ export async function verifyAndCapture(args) {
105
185
  }
106
186
  else {
107
187
  try {
108
- const rawStatusBar = platform === "ios" ? 177 : 142;
109
- const scale = beforeScaleFactor || after.scaleFactor || 1;
110
- const statusBarHeight = Math.round(rawStatusBar / scale);
111
- let diff = await compareScreenshots(beforeBuffer, after.buffer, {
112
- statusBarHeight
188
+ // The settle loop already diffed the frame it returned. Only recompute
189
+ // when it didn't run (e.g. a caller that passed a before-buffer but got
190
+ // no settle result), so the common path pays one diff, not two.
191
+ const diff = settle?.diff ?? await compareScreenshots(beforeBuffer, after.buffer, {
192
+ statusBarHeight: Math.round((platform === "ios" ? 177 : 142) / (beforeScaleFactor || after.scaleFactor || 1))
113
193
  });
114
- // Slide-up modal animations on Android have a longer linear-blend
115
- // phase than iOS — the first retry at +400ms still catches the
116
- // pre-animation frame on a slow emulator. Retry up to two times
117
- // before giving up. Each retry only fires when the prior diff was
118
- // exactly zero, so common-path taps that produced a change on the
119
- // first capture are unaffected. Bug #4-on-Android (EC1, 2026-05-20).
120
- const maxZeroDiffRetries = platform === "android" ? 2 : 1;
121
- for (let attempt = 0; attempt < maxZeroDiffRetries && diff.changedPixels === 0; attempt++) {
122
- await new Promise((resolve) => setTimeout(resolve, ZERO_DIFF_RETRY_DELAY_MS));
123
- const retryAfter = await captureScreenshot(platform, udid);
124
- if (!retryAfter)
125
- break;
126
- const retryDiff = await compareScreenshots(beforeBuffer, retryAfter.buffer, {
127
- statusBarHeight
128
- });
129
- if (retryDiff.changedPixels > 0) {
130
- diff = retryDiff;
131
- after = retryAfter;
132
- break;
133
- }
134
- }
135
194
  verification = {
136
195
  meaningful: diff.changed,
137
196
  changeRate: diff.changeRate,
@@ -1 +1 @@
1
- {"version":3,"file":"verifyAction.js","sourceRoot":"","sources":["../../src/pro/verifyAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyAction.js","sourceRoot":"","sources":["../../src/pro/verifyAction.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /**
3
+ * Default swipe gesture duration. Android has always used 300ms; iOS passed no
4
+ * duration at all and inherited AXe's ~1s drag, which was both slower and too
5
+ * slow to trigger inertial scrolling. Shared so the platforms cannot drift again.
6
+ */
7
+ export declare const SWIPE_DEFAULT_DURATION_MS = 300;
2
8
  export declare function registerInteractionTools(server: McpServer): void;
3
9
  //# sourceMappingURL=interactionTools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactionTools.d.ts","sourceRoot":"","sources":["../../src/tools/interactionTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2BzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsqBhE"}
1
+ {"version":3,"file":"interactionTools.d.ts","sourceRoot":"","sources":["../../src/tools/interactionTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BzE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmrBhE"}
@@ -7,6 +7,12 @@ import { clearFocusedInput, dismissKeyboard, inputTextWithReplace } from "../cor
7
7
  import { primaryInteractionBanner, platformFallbackBanner, platformUniqueBanner } from "../core/toolHelpers.js";
8
8
  import { resolveDeviceTarget, formatResolverError } from "../core/deviceResolver.js";
9
9
  import { resolveAndroidDeviceId, resolveIosUdid, ANDROID_ARG_DESC, IOS_ARG_DESC } from "./_deviceArg.js";
10
+ /**
11
+ * Default swipe gesture duration. Android has always used 300ms; iOS passed no
12
+ * duration at all and inherited AXe's ~1s drag, which was both slower and too
13
+ * slow to trigger inertial scrolling. Shared so the platforms cannot drift again.
14
+ */
15
+ export const SWIPE_DEFAULT_DURATION_MS = 300;
10
16
  export function registerInteractionTools(server) {
11
17
  // Tool: Unified tap — tries fiber, accessibility, OCR, coordinate strategies
12
18
  registerToolWithTelemetry(server, "tap", {
@@ -306,22 +312,33 @@ export function registerInteractionTools(server) {
306
312
  }
307
313
  const beforeBuffer = beforeCapture?.buffer ?? null;
308
314
  const beforeScaleFactor = beforeCapture?.scaleFactor;
315
+ // Prefer the scale factor of the frame captured for THIS device this
316
+ // turn over `connectedApps[0].lastScreenshot`, which may be stale or
317
+ // belong to another device on a multi-device setup — the same fix tap
318
+ // carries for its coordinate strategy (Bug #5, 2026-05-20).
319
+ const swipeScaleFactor = beforeCapture?.scaleFactor
320
+ ?? connectedApps.values().next().value?.lastScreenshot?.scaleFactor
321
+ ?? 1;
322
+ const dprHint = beforeCapture && beforeCapture.width > 0 && beforeCapture.height > 0
323
+ ? { width: beforeCapture.width, height: beforeCapture.height }
324
+ : undefined;
309
325
  let driverResult;
310
326
  if (resolvedPlatform === "ios") {
311
- const dpr = await getDevicePixelRatio(resolvedUdid);
312
- const firstApp = connectedApps.values().next().value;
313
- const scaleFactor = firstApp?.lastScreenshot?.scaleFactor ?? 1;
314
- const start = convertScreenshotToTapCoords(startX, startY, "ios", dpr, scaleFactor);
315
- const end = convertScreenshotToTapCoords(endX, endY, "ios", dpr, scaleFactor);
316
- const duration = durationMs !== undefined ? durationMs / 1000 : undefined;
327
+ const dpr = await getDevicePixelRatio(resolvedUdid, dprHint);
328
+ const start = convertScreenshotToTapCoords(startX, startY, "ios", dpr, swipeScaleFactor);
329
+ const end = convertScreenshotToTapCoords(endX, endY, "ios", dpr, swipeScaleFactor);
330
+ // Without an explicit duration, AXe drags for ~1s (measured
331
+ // 2026-08-01) — slower than the Android path, which has always
332
+ // defaulted to 300ms, and slow enough that iOS never produced the
333
+ // inertial fling a real scroll gesture has. Default both platforms
334
+ // to the same 300ms flick.
335
+ const duration = (durationMs ?? SWIPE_DEFAULT_DURATION_MS) / 1000;
317
336
  driverResult = await iosSwipe(start.x, start.y, end.x, end.y, { duration, delta, udid: resolvedUdid });
318
337
  }
319
338
  else {
320
- const firstApp = connectedApps.values().next().value;
321
- const scaleFactor = firstApp?.lastScreenshot?.scaleFactor ?? 1;
322
- const start = convertScreenshotToTapCoords(startX, startY, "android", 1, scaleFactor);
323
- const end = convertScreenshotToTapCoords(endX, endY, "android", 1, scaleFactor);
324
- driverResult = await androidSwipe(start.x, start.y, end.x, end.y, durationMs ?? 300, resolved.target.androidSerial);
339
+ const start = convertScreenshotToTapCoords(startX, startY, "android", 1, swipeScaleFactor);
340
+ const end = convertScreenshotToTapCoords(endX, endY, "android", 1, swipeScaleFactor);
341
+ driverResult = await androidSwipe(start.x, start.y, end.x, end.y, durationMs ?? SWIPE_DEFAULT_DURATION_MS, resolved.target.androidSerial);
325
342
  }
326
343
  if (!driverResult.success) {
327
344
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"interactionTools.js","sourceRoot":"","sources":["../../src/tools/interactionTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactionTools.js","sourceRoot":"","sources":["../../src/tools/interactionTools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"screenshotTools.d.ts","sourceRoot":"","sources":["../../src/tools/screenshotTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8BzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkxB/D"}
1
+ {"version":3,"file":"screenshotTools.d.ts","sourceRoot":"","sources":["../../src/tools/screenshotTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8BzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0yB/D"}
@@ -40,7 +40,19 @@ export function registerScreenshotTools(server) {
40
40
  // fell back to the raw arg (getActiveOrBootedSimulatorUdid) — on a
41
41
  // multi-sim setup that split the image and the tree across two sims.
42
42
  const targetUdid = resolved.udid ?? (await getActiveOrBootedSimulatorUdid());
43
- const result = await iosScreenshot(outputPath, targetUdid ?? undefined);
43
+ // The framebuffer capture, the accessibility probe (screen size / safe
44
+ // area) and the fiber screen-state describe the same moment but do not
45
+ // depend on each other. Running them sequentially made the tool cost
46
+ // their sum (measured 369 + 189 + 372ms); started together it costs the
47
+ // slowest one. Each leg keeps its own failure handling, so a rejected
48
+ // probe degrades exactly as it did before.
49
+ const capturePromise = iosScreenshot(outputPath, targetUdid ?? undefined);
50
+ const describePromise = iosDescribeAll(targetUdid ?? undefined).catch(() => null);
51
+ const earlyTargetApp = targetUdid ? getConnectedAppBySimulatorUdid(targetUdid) : null;
52
+ const screenStatePromise = earlyTargetApp
53
+ ? getScreenState({ device: earlyTargetApp.deviceInfo.deviceName }).catch(() => null)
54
+ : Promise.resolve(null);
55
+ const result = await capturePromise;
44
56
  if (!result.success) {
45
57
  return {
46
58
  content: [
@@ -77,8 +89,8 @@ export function registerScreenshotTools(server) {
77
89
  let scaleFactor = 3; // Default to 3x for modern iPhones
78
90
  let safeAreaTop = 59; // Default safe area offset
79
91
  try {
80
- const describeResult = await iosDescribeAll(targetUdid ?? undefined);
81
- if (describeResult.success && describeResult.elements && describeResult.elements.length > 0) {
92
+ const describeResult = await describePromise;
93
+ if (describeResult && describeResult.success && describeResult.elements && describeResult.elements.length > 0) {
82
94
  // First element is typically the Application with full screen frame
83
95
  const rootElement = describeResult.elements[0];
84
96
  // Try parsed frame first, then parse AXFrame string
@@ -129,8 +141,8 @@ export function registerScreenshotTools(server) {
129
141
  // pressables list (which degrades further to the iOS accessibility tree).
130
142
  if (targetApp) {
131
143
  try {
132
- const ssResult = await getScreenState({ device: targetDeviceName });
133
- if (ssResult.success && ssResult.screenState) {
144
+ const ssResult = await screenStatePromise;
145
+ if (ssResult && ssResult.success && ssResult.screenState) {
134
146
  const screenshotScale = result.scaleFactor || 1;
135
147
  const toPx = (v) => Math.round((v * scaleFactor) / screenshotScale);
136
148
  pressablesText = formatScreenStateSummary(ssResult.screenState, (p) => {
@@ -326,7 +338,16 @@ export function registerScreenshotTools(server) {
326
338
  const resolved = await resolveAndroidDeviceId(deviceId);
327
339
  if (!resolved.ok)
328
340
  return resolved.response;
329
- const result = await androidScreenshot(outputPath, resolved.serial);
341
+ // Same parallelisation as iOS: the capture, the two adb metric probes
342
+ // and the fiber screen-state are independent legs of one snapshot.
343
+ const androidTargetApp = getConnectedAppByAndroidDeviceId(deviceId);
344
+ const capturePromise = androidScreenshot(outputPath, resolved.serial);
345
+ const statusBarPromise = androidGetStatusBarHeight(deviceId).catch(() => null);
346
+ const densityPromise = androidGetDensity(deviceId).catch(() => null);
347
+ const screenStatePromise = androidTargetApp
348
+ ? getScreenState({ device: androidTargetApp.deviceInfo.deviceName }).catch(() => null)
349
+ : Promise.resolve(null);
350
+ const result = await capturePromise;
330
351
  if (!result.success) {
331
352
  return {
332
353
  content: [
@@ -382,13 +403,13 @@ export function registerScreenshotTools(server) {
382
403
  let statusBarDp = 24;
383
404
  let densityDpi = 440; // Common default
384
405
  try {
385
- const statusBarResult = await androidGetStatusBarHeight(deviceId);
386
- if (statusBarResult.success && statusBarResult.heightPixels) {
406
+ const statusBarResult = await statusBarPromise;
407
+ if (statusBarResult && statusBarResult.success && statusBarResult.heightPixels) {
387
408
  statusBarPixels = statusBarResult.heightPixels;
388
409
  statusBarDp = statusBarResult.heightDp || 24;
389
410
  }
390
- const densityResult = await androidGetDensity(deviceId);
391
- if (densityResult.success && densityResult.density) {
411
+ const densityResult = await densityPromise;
412
+ if (densityResult && densityResult.success && densityResult.density) {
392
413
  densityDpi = densityResult.density;
393
414
  }
394
415
  }
@@ -416,8 +437,8 @@ export function registerScreenshotTools(server) {
416
437
  // tap(text=)/tap(testID=) remain the precise options.
417
438
  if (targetApp) {
418
439
  try {
419
- const ssResult = await getScreenState({ device: targetDeviceName });
420
- if (ssResult.success && ssResult.screenState) {
440
+ const ssResult = await screenStatePromise;
441
+ if (ssResult && ssResult.success && ssResult.screenState) {
421
442
  const screenshotScale = result.scaleFactor || 1;
422
443
  const densityScale = densityDpi / 160;
423
444
  const toPx = (v) => Math.round((v * densityScale) / screenshotScale);