execbro 2.7.0 → 2.7.1

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 (71) hide show
  1. package/build/__tests__/unit/deviceResolver.test.js +2 -0
  2. package/build/__tests__/unit/deviceResolver.test.js.map +1 -1
  3. package/build/__tests__/unit/deviceResolverStaleRetry.test.js +1 -0
  4. package/build/__tests__/unit/deviceResolverStaleRetry.test.js.map +1 -1
  5. package/build/__tests__/unit/measureComponentResolution.test.d.ts +2 -0
  6. package/build/__tests__/unit/measureComponentResolution.test.d.ts.map +1 -0
  7. package/build/__tests__/unit/measureComponentResolution.test.js +111 -0
  8. package/build/__tests__/unit/measureComponentResolution.test.js.map +1 -0
  9. package/build/__tests__/unit/metroIdentity.test.d.ts +2 -0
  10. package/build/__tests__/unit/metroIdentity.test.d.ts.map +1 -0
  11. package/build/__tests__/unit/metroIdentity.test.js +41 -0
  12. package/build/__tests__/unit/metroIdentity.test.js.map +1 -0
  13. package/build/__tests__/unit/screenState.test.js +63 -2
  14. package/build/__tests__/unit/screenState.test.js.map +1 -1
  15. package/build/__tests__/unit/swipeDiagnosis.test.d.ts +2 -0
  16. package/build/__tests__/unit/swipeDiagnosis.test.d.ts.map +1 -0
  17. package/build/__tests__/unit/swipeDiagnosis.test.js +47 -0
  18. package/build/__tests__/unit/swipeDiagnosis.test.js.map +1 -0
  19. package/build/__tests__/unit/swipeDirection.test.js +30 -0
  20. package/build/__tests__/unit/swipeDirection.test.js.map +1 -1
  21. package/build/core/androidForeground.d.ts +4 -0
  22. package/build/core/androidForeground.d.ts.map +1 -0
  23. package/build/core/androidForeground.js +34 -0
  24. package/build/core/androidForeground.js.map +1 -0
  25. package/build/core/androidSystemBars.d.ts +1 -1
  26. package/build/core/androidSystemBars.d.ts.map +1 -1
  27. package/build/core/androidSystemBars.js +2 -2
  28. package/build/core/androidSystemBars.js.map +1 -1
  29. package/build/core/connection.d.ts +6 -0
  30. package/build/core/connection.d.ts.map +1 -1
  31. package/build/core/connection.js +45 -0
  32. package/build/core/connection.js.map +1 -1
  33. package/build/core/deviceResolver.d.ts.map +1 -1
  34. package/build/core/deviceResolver.js +7 -1
  35. package/build/core/deviceResolver.js.map +1 -1
  36. package/build/core/measureComponent.d.ts.map +1 -1
  37. package/build/core/measureComponent.js +45 -11
  38. package/build/core/measureComponent.js.map +1 -1
  39. package/build/core/metroIdentity.d.ts +8 -0
  40. package/build/core/metroIdentity.d.ts.map +1 -0
  41. package/build/core/metroIdentity.js +65 -0
  42. package/build/core/metroIdentity.js.map +1 -0
  43. package/build/core/screenSpaceDevice.d.ts +5 -0
  44. package/build/core/screenSpaceDevice.d.ts.map +1 -1
  45. package/build/core/screenSpaceDevice.js +18 -0
  46. package/build/core/screenSpaceDevice.js.map +1 -1
  47. package/build/core/screenState.d.ts +8 -0
  48. package/build/core/screenState.d.ts.map +1 -1
  49. package/build/core/screenState.js +245 -32
  50. package/build/core/screenState.js.map +1 -1
  51. package/build/core/swipeDiagnosis.d.ts +17 -0
  52. package/build/core/swipeDiagnosis.d.ts.map +1 -0
  53. package/build/core/swipeDiagnosis.js +179 -0
  54. package/build/core/swipeDiagnosis.js.map +1 -0
  55. package/build/index.js +15 -0
  56. package/build/index.js.map +1 -1
  57. package/build/pro/tap.d.ts +6 -1
  58. package/build/pro/tap.d.ts.map +1 -1
  59. package/build/pro/tap.js +12 -3
  60. package/build/pro/tap.js.map +1 -1
  61. package/build/tools/componentTools.d.ts.map +1 -1
  62. package/build/tools/componentTools.js +12 -4
  63. package/build/tools/componentTools.js.map +1 -1
  64. package/build/tools/connectionTools.d.ts.map +1 -1
  65. package/build/tools/connectionTools.js +18 -0
  66. package/build/tools/connectionTools.js.map +1 -1
  67. package/build/tools/interactionTools.d.ts.map +1 -1
  68. package/build/tools/interactionTools.js +50 -11
  69. package/build/tools/interactionTools.js.map +1 -1
  70. package/package.json +1 -1
  71. package/tools.json +1 -0
@@ -40,13 +40,13 @@ function truncate(s, max) {
40
40
  export function formatTextEntry(t, convert = identityCoords, opts = {}) {
41
41
  const { center, frame } = convert(t);
42
42
  const body = opts.fullText ? t.text : truncate(t.text, TEXT_DISPLAY_MAX);
43
- return ` (${center.x}, ${center.y}) 📝 "${body}" frame:(${frame.x},${frame.y} ${frame.width}x${frame.height})`;
43
+ return ` (${center.x}, ${center.y}) 📝 "${body}" frame:(${frame.x},${frame.y} ${frame.width}x${frame.height})${formatTransformTag(t)}`;
44
44
  }
45
45
  export function formatImageEntry(img, convert = identityCoords) {
46
46
  const { center, frame } = convert(img);
47
47
  const src = img.src ? ` src="${truncate(img.src, IMAGE_SRC_DISPLAY_MAX)}"` : "";
48
48
  const alt = img.alt ? ` alt="${img.alt}"` : "";
49
- return ` (${center.x}, ${center.y}) 🖼 Image ${frame.width}x${frame.height}${src}${alt} frame:(${frame.x},${frame.y} ${frame.width}x${frame.height})`;
49
+ return ` (${center.x}, ${center.y}) 🖼 Image ${frame.width}x${frame.height}${src}${alt} frame:(${frame.x},${frame.y} ${frame.width}x${frame.height})${formatTransformTag(img)}`;
50
50
  }
51
51
  const TEXT_CAP = 60;
52
52
  const IMAGE_CAP = 40;
@@ -82,14 +82,30 @@ export function formatInputState(p) {
82
82
  ? ` [input] empty, placeholder:${JSON.stringify(p.inputPlaceholder)}`
83
83
  : " [input] empty";
84
84
  }
85
+ export function formatRouteParams(params, fullParams) {
86
+ if (!params)
87
+ return null;
88
+ const keys = Object.keys(params);
89
+ if (keys.length === 0)
90
+ return null;
91
+ if (!fullParams) {
92
+ return ` route params: ${keys.join(", ")} (values: fullParams=true)`;
93
+ }
94
+ const json = JSON.stringify(params);
95
+ return ` route params: ${json.length > 600 ? json.slice(0, 600) + "…" : json}`;
96
+ }
97
+ export function formatTransformTag(el) {
98
+ if (!el.transformNote)
99
+ return "";
100
+ return ` ⚠transformed(${el.transformNote}) — frame is pre-transform, verify before tapping`;
101
+ }
85
102
  export function formatScreenStateSummary(ss, convert = identityCoords, opts = {}) {
86
103
  const lines = [];
87
104
  if (ss.route) {
88
105
  lines.push(`📍 Currently focused screen: "${ss.route.name}" [navigation stack: ${ss.route.stack.join(" > ")}]`);
89
- if (ss.route.params && Object.keys(ss.route.params).length > 0) {
90
- const params = JSON.stringify(ss.route.params);
91
- lines.push(` route params: ${params.length > 600 ? params.slice(0, 600) + "…" : params}`);
92
- }
106
+ const paramLine = formatRouteParams(ss.route.params, opts.fullParams === true);
107
+ if (paramLine)
108
+ lines.push(paramLine);
93
109
  }
94
110
  else {
95
111
  lines.push("📍 Currently focused screen: unknown (no React Navigation / Expo Router detected)");
@@ -114,7 +130,7 @@ export function formatScreenStateSummary(ss, convert = identityCoords, opts = {}
114
130
  return ` (${center.x}, ${center.y})${marker}${p.component ? ` <${p.component} />` : ""} ${p.label ? `"${p.label}"` : "(unlabeled)"}` +
115
131
  `${p.nearbyText ? ` near "${p.nearbyText}"` : ""}${p.onPressHint ? ` ${p.onPressHint}` : ""}` +
116
132
  `${p.testID ? ` testID="${p.testID}"` : ""}${formatInputState(p)}` +
117
- ` frame:(${frame.x},${frame.y} ${frame.width}x${frame.height})`;
133
+ ` frame:(${frame.x},${frame.y} ${frame.width}x${frame.height})${formatTransformTag(p)}`;
118
134
  };
119
135
  const renderGroup = (pressables, texts, images) => {
120
136
  const out = [];
@@ -553,6 +569,106 @@ export async function getScreenState(options = {}) {
553
569
  return typeof s === 'object' ? s : null;
554
570
  }
555
571
 
572
+ // RN's own sticky-header implementation. It leaves the header at its natural layout
573
+ // position — far above the viewport once the list is scrolled — and pins it purely with
574
+ // translateY, so its measured frame is never where it is drawn. An exact marker, unlike
575
+ // "is animated", which is true of half the tab bars in existence.
576
+ var STICKY_OWNER = /^ScrollViewStickyHeader$/;
577
+
578
+ /** The current value of an Animated node, or null when it is not one / cannot be read. */
579
+ function animatedValueOf(v) {
580
+ if (!v || typeof v !== 'object') return null;
581
+ if (typeof v.__getValue !== 'function') return null;
582
+ try {
583
+ var got = v.__getValue();
584
+ return typeof got === 'number' && isFinite(got) ? got : null;
585
+ } catch (e) { return null; }
586
+ }
587
+
588
+ /** True for an Animated node handed to the native driver, whose JS value may be stale. */
589
+ function isNativeDriven(v) {
590
+ return !!(v && typeof v === 'object' && v.__isNative === true);
591
+ }
592
+
593
+ /**
594
+ * Resolve the transform chain above this fiber, up to the fiber root.
595
+ *
596
+ * Returns null when there is no transform at all, else { dx, dy, uncertain, label }:
597
+ * dx/dy are the best available composed translation, and the uncertain flag says
598
+ * whether that number can be trusted.
599
+ *
600
+ * The hard case is a native-driven transform. measureInWindow and getBoundingClientRect
601
+ * both read the shadow tree, so neither sees one — verified on RN 0.83/Fabric, where a
602
+ * pinned sticky header sat at y=132pt on screen while both APIs reported y=-1698pt. The
603
+ * JS-side style holds whatever was last committed, which for that header is translateY:0
604
+ * forever. So there is no way to be exactly right; the goal is to be exactly honest.
605
+ *
606
+ * Reading Animated nodes with __getValue() is what keeps this quiet enough to be worth
607
+ * reading: a resting tab bar composes to 0 and says nothing, instead of tagging every
608
+ * tab item on every screen and training the reader to ignore the tag.
609
+ */
610
+ function transformStateOf(fiber) {
611
+ var dx = 0, dy = 0;
612
+ var uncertain = false;
613
+ var sticky = false;
614
+ var label = null;
615
+ var sawTransform = false;
616
+ var cur = fiber;
617
+ var steps = 0;
618
+ while (cur && steps < 30) {
619
+ var ownerName = getComponentName(cur);
620
+ if (ownerName && STICKY_OWNER.test(ownerName)) sticky = true;
621
+
622
+ var st = flattenStyle(cur.memoizedProps && cur.memoizedProps.style);
623
+ var t = st && st.transform;
624
+ if (t) {
625
+ sawTransform = true;
626
+ if (Array.isArray(t)) {
627
+ for (var i = 0; i < t.length; i++) {
628
+ var op = t[i];
629
+ if (!op || typeof op !== 'object') continue;
630
+ for (var key in op) {
631
+ var raw = op[key];
632
+ var val = typeof raw === 'number' && isFinite(raw) ? raw : animatedValueOf(raw);
633
+ if (val === null) {
634
+ // An opaque value: not a number and not a readable node.
635
+ uncertain = true;
636
+ if (!label) label = key + ':<unreadable>';
637
+ continue;
638
+ }
639
+ if (isNativeDriven(raw)) uncertain = true;
640
+ if (key === 'translateX') {
641
+ dx += val;
642
+ if (!label && val !== 0) label = 'translateX:' + val;
643
+ } else if (key === 'translateY') {
644
+ dy += val;
645
+ if (!label && val !== 0) label = 'translateY:' + val;
646
+ } else if (val !== 0 && !(key === 'scale' && val === 1) &&
647
+ !(key === 'scaleX' && val === 1) && !(key === 'scaleY' && val === 1)) {
648
+ // scale / rotate / skew / matrix at a non-identity value: a real
649
+ // geometric effect this does not model. Say so rather than
650
+ // presenting the untouched frame as exact.
651
+ uncertain = true;
652
+ if (!label) label = key + ':' + val;
653
+ }
654
+ }
655
+ }
656
+ } else {
657
+ uncertain = true;
658
+ if (!label) label = 'transform:<opaque>';
659
+ }
660
+ }
661
+ cur = cur.return;
662
+ steps++;
663
+ }
664
+ if (sticky && sawTransform) {
665
+ uncertain = true;
666
+ label = 'sticky header';
667
+ }
668
+ if (!sawTransform) return null;
669
+ return { dx: dx, dy: dy, uncertain: uncertain, label: label || 'transformed' };
670
+ }
671
+
556
672
  // "Opaque enough to hide what is behind it." Colours reach the fiber either as CSS
557
673
  // strings or, on Fabric, as processed ARGB integers; both carry the alpha that decides
558
674
  // whether this is a cover or just a tint. A translucent scrim is deliberately NOT a
@@ -926,7 +1042,7 @@ export async function getScreenState(options = {}) {
926
1042
  var hostIdx = hostFibers.length;
927
1043
  hostFibers.push(hostFiber);
928
1044
  var pressFn = (typeof pProps.onPress === 'function' && pProps.onPress) || (typeof hProps.onPress === 'function' && hProps.onPress) || null;
929
- fiberMeta.push({ label: label, testID: testID, hostIdx: hostIdx, icon: icon, overlayIdx: ovIdx, component: resolveComponentName(pressableFiber), hasOwnLabel: !!baseLabel, handler: pressFn ? handlerHint(pressFn) : null, propHandlers: collectPropHandlers(pressableFiber, pressFn) });
1045
+ fiberMeta.push({ label: label, testID: testID, hostIdx: hostIdx, icon: icon, overlayIdx: ovIdx, component: resolveComponentName(pressableFiber), hasOwnLabel: !!baseLabel, handler: pressFn ? handlerHint(pressFn) : null, propHandlers: collectPropHandlers(pressableFiber, pressFn), transform: transformStateOf(hostFiber) });
930
1046
  }
931
1047
  return;
932
1048
  }
@@ -950,7 +1066,7 @@ export async function getScreenState(options = {}) {
950
1066
  }
951
1067
  var hostIdx2 = hostFibers.length;
952
1068
  hostFibers.push(hosts3[0]);
953
- fiberMeta.push({ label: label2, testID: testID2, hostIdx: hostIdx2, icon: icon2, overlayIdx: ovIdx, component: resolveComponentName(fiber), hasOwnLabel: !!baseLabel2, handler: handlerHint(props.onPress), propHandlers: collectPropHandlers(fiber, props.onPress) });
1069
+ fiberMeta.push({ label: label2, testID: testID2, hostIdx: hostIdx2, icon: icon2, overlayIdx: ovIdx, component: resolveComponentName(fiber), hasOwnLabel: !!baseLabel2, handler: handlerHint(props.onPress), propHandlers: collectPropHandlers(fiber, props.onPress), transform: transformStateOf(hosts3[0]) });
954
1070
  }
955
1071
  }
956
1072
 
@@ -980,7 +1096,7 @@ export async function getScreenState(options = {}) {
980
1096
  var iconI = baseLabelI ? null : findMeaningfulChildName(fiber);
981
1097
  var hostIdxI = hostFibers.length;
982
1098
  hostFibers.push(hostsI[0]);
983
- fiberMeta.push({ label: labelI, testID: testIDI, hostIdx: hostIdxI, icon: iconI, overlayIdx: ovIdx, component: resolveComponentName(fiber), isInput: true, hasOwnLabel: !!baseLabelI, inputValue: valueI, inputPlaceholder: placeholderI });
1099
+ fiberMeta.push({ label: labelI, testID: testIDI, hostIdx: hostIdxI, icon: iconI, overlayIdx: ovIdx, component: resolveComponentName(fiber), isInput: true, hasOwnLabel: !!baseLabelI, inputValue: valueI, inputPlaceholder: placeholderI, transform: transformStateOf(hostsI[0]) });
984
1100
  }
985
1101
  }
986
1102
 
@@ -1000,6 +1116,7 @@ export async function getScreenState(options = {}) {
1000
1116
  var textFibers = [];
1001
1117
  var textContents = [];
1002
1118
  var textOverlayIdx = [];
1119
+ var textTransforms = [];
1003
1120
 
1004
1121
  function extractTextString(fiber) {
1005
1122
  var p = fiber.memoizedProps;
@@ -1074,6 +1191,7 @@ export async function getScreenState(options = {}) {
1074
1191
  textFibers.push(measurableT);
1075
1192
  textContents.push(str);
1076
1193
  textOverlayIdx.push(ovIdx);
1194
+ textTransforms.push(transformStateOf(measurableT));
1077
1195
  }
1078
1196
  }
1079
1197
  }
@@ -1132,7 +1250,8 @@ export async function getScreenState(options = {}) {
1132
1250
  imageMeta.push({
1133
1251
  src: imageSource(props),
1134
1252
  alt: (props && typeof props.accessibilityLabel === 'string') ? props.accessibilityLabel.slice(0, 80) : null,
1135
- overlayIdx: ovIdx
1253
+ overlayIdx: ovIdx,
1254
+ transform: transformStateOf(measurableI)
1136
1255
  });
1137
1256
  }
1138
1257
  }
@@ -1198,6 +1317,7 @@ export async function getScreenState(options = {}) {
1198
1317
  globalThis.__screenStateTextContents = textContents;
1199
1318
  globalThis.__screenStateTextMeasurements = new Array(textFibers.length).fill(null);
1200
1319
  globalThis.__screenStateTextOverlayIdx = textOverlayIdx;
1320
+ globalThis.__screenStateTextTransforms = textTransforms;
1201
1321
  globalThis.__screenStateImageMeta = imageMeta;
1202
1322
  globalThis.__screenStateImageMeasurements = new Array(imageFibers.length).fill(null);
1203
1323
 
@@ -1239,19 +1359,23 @@ export async function getScreenState(options = {}) {
1239
1359
  } catch(e) {}
1240
1360
  }
1241
1361
 
1242
- return { count: hostFibers.length, overlayCount: overlayFiberMeta.length };
1362
+ return { count: hostFibers.length + textFibers.length + imageFibers.length, overlayCount: overlayFiberMeta.length };
1243
1363
  })()
1244
1364
  `;
1245
1365
  const dispatchResult = await executeInApp(dispatchExpression, false, { timeoutMs: 30000, originatingToolName: "get_screen_state" }, device);
1246
1366
  if (!dispatchResult.success)
1247
1367
  return dispatchResult;
1368
+ let dispatchedNodes = 0;
1248
1369
  try {
1249
1370
  const dp = JSON.parse(dispatchResult.result || "{}");
1250
1371
  if (dp.error)
1251
1372
  return { success: false, error: dp.error };
1373
+ if (typeof dp.count === "number")
1374
+ dispatchedNodes = dp.count;
1252
1375
  }
1253
1376
  catch { }
1254
- await delay(300);
1377
+ const measureBudgetMs = Math.min(3000, 400 + dispatchedNodes * 2);
1378
+ await delay(measureBudgetMs);
1255
1379
  const resolveExpression = `
1256
1380
  (function() {
1257
1381
  var hostFibers = globalThis.__screenStateFibers;
@@ -1264,6 +1388,7 @@ export async function getScreenState(options = {}) {
1264
1388
  var textContents = globalThis.__screenStateTextContents || [];
1265
1389
  var textMeasurements = globalThis.__screenStateTextMeasurements || [];
1266
1390
  var textOverlayIdx = globalThis.__screenStateTextOverlayIdx || [];
1391
+ var textTransforms = globalThis.__screenStateTextTransforms || [];
1267
1392
  var imageMeta = globalThis.__screenStateImageMeta || [];
1268
1393
  var imageMeasurements = globalThis.__screenStateImageMeasurements || [];
1269
1394
  var nativeMarkers = globalThis.__screenStateNativeMarkers || [];
@@ -1271,6 +1396,7 @@ export async function getScreenState(options = {}) {
1271
1396
  globalThis.__screenStateTextContents = null;
1272
1397
  globalThis.__screenStateTextMeasurements = null;
1273
1398
  globalThis.__screenStateTextOverlayIdx = null;
1399
+ globalThis.__screenStateTextTransforms = null;
1274
1400
  globalThis.__screenStateImageMeta = null;
1275
1401
  globalThis.__screenStateImageMeasurements = null;
1276
1402
  globalThis.__screenStateFibers = null;
@@ -1363,15 +1489,66 @@ export async function getScreenState(options = {}) {
1363
1489
  overlays.push({ origIdx: oi, type: om.type, title: om.title, blockBounds: blockBounds, contentBounds: contentBounds, hasContent: cValid && !geometric, geometric: geometric, enterIdx: om.enterIdx, pressables: [] });
1364
1490
  }
1365
1491
 
1492
+ // A measurement callback that never fired leaves null here. Counting those is the
1493
+ // difference between "there is nothing there" and "we did not find out" — the second
1494
+ // used to render as the first, and silence reads as evidence.
1495
+ var unmeasuredCount = 0;
1496
+
1497
+ /** Outside the viewport by the frame given. */
1498
+ function offViewport(m) {
1499
+ if (m.x + m.width < 0 || m.y + m.height < 0) return true;
1500
+ if (m.x > viewportW || m.y > viewportH) return true;
1501
+ return false;
1502
+ }
1503
+
1504
+ /**
1505
+ * Fold the composed translation into the measured frame, and decide whether the result
1506
+ * is worth warning about.
1507
+ *
1508
+ * The tag is deliberately NOT raised for every uncertain transform. An Animated value
1509
+ * that currently reads 0 on an element that measures on screen is almost certainly
1510
+ * exactly where it says it is; tagging those buries the one case that matters. Even a
1511
+ * sticky header is at its measured position while the list sits at the top — it only
1512
+ * starts lying once it is pinned, and then it measures off-screen.
1513
+ *
1514
+ * So what earns a tag is a transform that is visibly doing something: a non-zero
1515
+ * composed offset, or a frame that lands off-screen — the exact shape that used to make
1516
+ * pinned headers disappear from the listing. The cost is a narrow blind spot mid-
1517
+ * animation, where an element is displaced but still measures on screen; the gain is
1518
+ * that a tag, when it appears, means something.
1519
+ */
1520
+ function withTransform(m, tf) {
1521
+ if (!tf) return { m: m, unreliable: false, note: null };
1522
+ var moved = { x: m.x + tf.dx, y: m.y + tf.dy, width: m.width, height: m.height };
1523
+ var displaced = tf.dx !== 0 || tf.dy !== 0;
1524
+ var worthWarning = tf.uncertain && (displaced || offViewport(moved));
1525
+ return { m: moved, unreliable: worthWarning, note: worthWarning ? tf.label : null };
1526
+ }
1527
+
1528
+ /**
1529
+ * Should this element be listed?
1530
+ *
1531
+ * An element whose frame is pre-transform must NOT be viewport-filtered on that frame.
1532
+ * A pinned sticky header measures hundreds of points above the screen while sitting in
1533
+ * plain sight, and dropping it made whole blocks — title, tab bar, search field —
1534
+ * vanish from the listing with no indication anything had been omitted.
1535
+ */
1536
+ function keepElement(m, unreliable) {
1537
+ if (m.width <= 0 || m.height <= 0) return false;
1538
+ return unreliable || !offViewport(m);
1539
+ }
1540
+
1366
1541
  // Build pressable list
1367
1542
  var allPressables = [];
1368
1543
  for (var i = 0; i < meta.length; i++) {
1369
1544
  if (i === rootIdx) continue;
1370
- var m = measurements[i];
1371
- if (!m || m.width <= 0 || m.height <= 0) continue;
1372
- if (m.x + m.width < 0 || m.y + m.height < 0) continue;
1373
- if (m.x > viewportW || m.y > viewportH) continue;
1545
+ var m0 = measurements[i];
1546
+ if (!m0) { unmeasuredCount++; continue; }
1547
+ var tr = withTransform(m0, meta[i].transform);
1548
+ var m = tr.m;
1549
+ if (!keepElement(m, tr.unreliable)) continue;
1374
1550
  allPressables.push({
1551
+ transformNote: tr.note,
1375
1552
  // Position in the DFS collection order == paint order. Kept so occlusion can
1376
1553
  // ask "was this drawn before the overlay?" rather than only "is it inside it?".
1377
1554
  paintIdx: i,
@@ -1395,11 +1572,12 @@ export async function getScreenState(options = {}) {
1395
1572
  // Row siblings first (checkbox labels), center distance as fallback.
1396
1573
  var textBoxes = [];
1397
1574
  for (var tmi = 0; tmi < textMeasurements.length; tmi++) {
1398
- var tm = textMeasurements[tmi];
1575
+ var tm0 = textMeasurements[tmi];
1399
1576
  var tc = textContents[tmi];
1400
- if (!tm || !tc || tm.width <= 0 || tm.height <= 0) continue;
1401
- if (tm.x + tm.width < 0 || tm.y + tm.height < 0) continue;
1402
- if (tm.x > viewportW || tm.y > viewportH) continue;
1577
+ if (!tm0 || !tc) continue;
1578
+ var ttr = withTransform(tm0, textTransforms[tmi]);
1579
+ var tm = ttr.m;
1580
+ if (!keepElement(tm, ttr.unreliable)) continue;
1403
1581
  textBoxes.push({ text: tc, x: tm.x, y: tm.y, width: tm.width, height: tm.height, cx: tm.x + tm.width / 2, cy: tm.y + tm.height / 2 });
1404
1582
  }
1405
1583
  for (var ni = 0; ni < allPressables.length; ni++) {
@@ -1528,20 +1706,24 @@ export async function getScreenState(options = {}) {
1528
1706
  }
1529
1707
 
1530
1708
  for (var ti = 0; ti < textContents.length; ti++) {
1531
- var tm = textMeasurements[ti];
1532
- if (!tm || tm.width <= 0 || tm.height <= 0) continue;
1533
- if (tm.x + tm.width < 0 || tm.y + tm.height < 0) continue;
1534
- if (tm.x > viewportW || tm.y > viewportH) continue;
1709
+ var tmA = textMeasurements[ti];
1710
+ if (!tmA) { unmeasuredCount++; continue; }
1711
+ var tTr = withTransform(tmA, textTransforms[ti]);
1712
+ var tm2 = tTr.m;
1713
+ if (!keepElement(tm2, tTr.unreliable)) continue;
1535
1714
  pushClassified({ text: textContents[ti],
1536
- center: { x: Math.round(tm.x + tm.width/2), y: Math.round(tm.y + tm.height/2) },
1537
- bounds: { x: Math.round(tm.x), y: Math.round(tm.y), width: Math.round(tm.width), height: Math.round(tm.height) } }, 'texts', textOverlayIdx[ti]);
1715
+ transformNote: tTr.note,
1716
+ center: { x: Math.round(tm2.x + tm2.width/2), y: Math.round(tm2.y + tm2.height/2) },
1717
+ bounds: { x: Math.round(tm2.x), y: Math.round(tm2.y), width: Math.round(tm2.width), height: Math.round(tm2.height) } }, 'texts', textOverlayIdx[ti]);
1538
1718
  }
1539
1719
  for (var ii = 0; ii < imageMeta.length; ii++) {
1540
- var im = imageMeasurements[ii];
1541
- if (!im || im.width <= 0 || im.height <= 0) continue;
1542
- if (im.x + im.width < 0 || im.y + im.height < 0) continue;
1543
- if (im.x > viewportW || im.y > viewportH) continue;
1720
+ var imA = imageMeasurements[ii];
1721
+ if (!imA) { unmeasuredCount++; continue; }
1722
+ var iTr = withTransform(imA, imageMeta[ii].transform);
1723
+ var im = iTr.m;
1724
+ if (!keepElement(im, iTr.unreliable)) continue;
1544
1725
  pushClassified({ src: imageMeta[ii].src, alt: imageMeta[ii].alt,
1726
+ transformNote: iTr.note,
1545
1727
  center: { x: Math.round(im.x + im.width/2), y: Math.round(im.y + im.height/2) },
1546
1728
  bounds: { x: Math.round(im.x), y: Math.round(im.y), width: Math.round(im.width), height: Math.round(im.height) } }, 'images', imageMeta[ii].overlayIdx);
1547
1729
  }
@@ -1566,17 +1748,35 @@ export async function getScreenState(options = {}) {
1566
1748
  return { type: o.type, title: o.title, pressables: o.pressables, texts: o.texts, images: o.images };
1567
1749
  });
1568
1750
 
1569
- return { route: route, overlays: cleanOverlays, pressables: rootPressables, texts: rootTexts, images: rootImages, nativeMarkers: nativeMarkers };
1751
+ // Everything the caller needs to judge how complete this snapshot is. Both counts used
1752
+ // to be invisible: an unmeasured node and a node that genuinely is not there produced
1753
+ // exactly the same output — nothing.
1754
+ var transformedCount = 0;
1755
+ function countTransformed(list) {
1756
+ for (var q = 0; q < list.length; q++) if (list[q] && list[q].transformNote) transformedCount++;
1757
+ }
1758
+ countTransformed(rootPressables); countTransformed(rootTexts); countTransformed(rootImages);
1759
+ for (var co = 0; co < overlays.length; co++) {
1760
+ countTransformed(overlays[co].pressables);
1761
+ countTransformed(overlays[co].texts || []);
1762
+ countTransformed(overlays[co].images || []);
1763
+ }
1764
+
1765
+ return { route: route, overlays: cleanOverlays, pressables: rootPressables, texts: rootTexts, images: rootImages, nativeMarkers: nativeMarkers,
1766
+ unmeasuredCount: unmeasuredCount, transformedCount: transformedCount,
1767
+ dispatchedCount: meta.length + textContents.length + imageMeta.length };
1570
1768
  })()
1571
1769
  `;
1572
1770
  const resolveResult = await executeInApp(resolveExpression, false, { timeoutMs: 15000, originatingToolName: "get_screen_state" }, device);
1573
1771
  if (!resolveResult.success)
1574
1772
  return resolveResult;
1575
1773
  let screenState;
1774
+ let counts = {};
1576
1775
  try {
1577
1776
  const parsed = JSON.parse(resolveResult.result || "{}");
1578
1777
  if (parsed.error)
1579
1778
  return { success: false, error: parsed.error };
1779
+ counts = parsed;
1580
1780
  screenState = parseScreenStateResponse(parsed) ?? undefined;
1581
1781
  }
1582
1782
  catch {
@@ -1584,6 +1784,19 @@ export async function getScreenState(options = {}) {
1584
1784
  }
1585
1785
  if (!screenState)
1586
1786
  return { success: false, error: "Empty screen state response" };
1787
+ const completenessNotes = [];
1788
+ if ((counts.unmeasuredCount ?? 0) > 0) {
1789
+ completenessNotes.push(`${counts.unmeasuredCount} element(s) did not return a measurement within ${measureBudgetMs}ms and are NOT listed below. ` +
1790
+ `This is a timing miss, not an empty screen — call get_screen_state again, or take a screenshot, before concluding anything is absent.`);
1791
+ }
1792
+ if ((counts.transformedCount ?? 0) > 0) {
1793
+ completenessNotes.push(`${counts.transformedCount} element(s) are marked ⚠transformed. Their frames come from the layout tree, which does not include ` +
1794
+ `native-driven transforms (sticky headers, collapsing toolbars, animating sheets), so the coordinates may not be where the element ` +
1795
+ `is drawn. Confirm against a screenshot before tapping those.`);
1796
+ }
1797
+ if (completenessNotes.length > 0) {
1798
+ screenState.notes = [...(screenState.notes ?? []), ...completenessNotes];
1799
+ }
1587
1800
  const dedupPressables = (list) => {
1588
1801
  const seen = new Set();
1589
1802
  return list.filter((p) => {
@@ -1 +1 @@
1
- {"version":3,"file":"screenState.js","sourceRoot":"","sources":["../../src/core/screenState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screenState.js","sourceRoot":"","sources":["../../src/core/screenState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type ScreenSpaceMetrics } from "./screenSpace.js";
2
+ export interface ScrollProbe {
3
+ found: boolean;
4
+ horizontal?: boolean;
5
+ offset?: number;
6
+ maxOffset?: number;
7
+ component?: string | null;
8
+ }
9
+ export declare function probeScrollAt(x: number, y: number, device?: string, screenSpace?: ScreenSpaceMetrics): Promise<ScrollProbe>;
10
+ export declare function explainNoOpSwipe(probe: ScrollProbe, start: {
11
+ x: number;
12
+ y: number;
13
+ }, gesture?: {
14
+ dx: number;
15
+ dy: number;
16
+ }): string;
17
+ //# sourceMappingURL=swipeDiagnosis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swipeDiagnosis.d.ts","sourceRoot":"","sources":["../../src/core/swipeDiagnosis.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AASnF,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AASD,wBAAsB,aAAa,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,WAAW,CAAC,CAsJtB;AAYD,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,OAAO,CAAC,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACrC,MAAM,CA6BR"}