react-native-ai-debugger 2.4.0 → 2.5.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 (547) hide show
  1. package/build/__tests__/helpers/fake-cdp-server.d.ts +0 -12
  2. package/build/__tests__/helpers/fake-cdp-server.d.ts.map +1 -1
  3. package/build/__tests__/helpers/fake-cdp-server.js +0 -22
  4. package/build/__tests__/helpers/fake-cdp-server.js.map +1 -1
  5. package/build/__tests__/helpers/tap-test-helpers.d.ts +0 -23
  6. package/build/__tests__/helpers/tap-test-helpers.d.ts.map +1 -1
  7. package/build/__tests__/helpers/tap-test-helpers.js +2 -29
  8. package/build/__tests__/helpers/tap-test-helpers.js.map +1 -1
  9. package/build/__tests__/integration/auto-reconnect.test.js +4 -14
  10. package/build/__tests__/integration/auto-reconnect.test.js.map +1 -1
  11. package/build/__tests__/integration/connection-health.test.js +1 -10
  12. package/build/__tests__/integration/connection-health.test.js.map +1 -1
  13. package/build/__tests__/integration/execute-in-app.test.js +1 -11
  14. package/build/__tests__/integration/execute-in-app.test.js.map +1 -1
  15. package/build/__tests__/integration/native-logs.test.js +0 -5
  16. package/build/__tests__/integration/native-logs.test.js.map +1 -1
  17. package/build/__tests__/integration/per-call-timeout.test.js +1 -5
  18. package/build/__tests__/integration/per-call-timeout.test.js.map +1 -1
  19. package/build/__tests__/integration/socket-close-midflight.test.js +2 -12
  20. package/build/__tests__/integration/socket-close-midflight.test.js.map +1 -1
  21. package/build/__tests__/integration/stale-target-probe.test.js +2 -17
  22. package/build/__tests__/integration/stale-target-probe.test.js.map +1 -1
  23. package/build/__tests__/integration/tap-strategies.test.js +2 -36
  24. package/build/__tests__/integration/tap-strategies.test.js.map +1 -1
  25. package/build/__tests__/integration/text-input.test.js +0 -39
  26. package/build/__tests__/integration/text-input.test.js.map +1 -1
  27. package/build/__tests__/integration/tools.test.js +1 -7
  28. package/build/__tests__/integration/tools.test.js.map +1 -1
  29. package/build/__tests__/setup.js +0 -2
  30. package/build/__tests__/setup.js.map +1 -1
  31. package/build/__tests__/unit/androidEmulatorAvds.test.js +0 -10
  32. package/build/__tests__/unit/androidEmulatorAvds.test.js.map +1 -1
  33. package/build/__tests__/unit/appContext.test.js +0 -2
  34. package/build/__tests__/unit/appContext.test.js.map +1 -1
  35. package/build/__tests__/unit/appRequest.test.js +0 -3
  36. package/build/__tests__/unit/appRequest.test.js.map +1 -1
  37. package/build/__tests__/unit/buildToken.test.js +0 -6
  38. package/build/__tests__/unit/buildToken.test.js.map +1 -1
  39. package/build/__tests__/unit/burst.test.js +0 -1
  40. package/build/__tests__/unit/burst.test.js.map +1 -1
  41. package/build/__tests__/unit/clearLogsNative.test.js +0 -8
  42. package/build/__tests__/unit/clearLogsNative.test.js.map +1 -1
  43. package/build/__tests__/unit/componentFormatNaming.test.js +0 -13
  44. package/build/__tests__/unit/componentFormatNaming.test.js.map +1 -1
  45. package/build/__tests__/unit/componentSource.test.js +0 -4
  46. package/build/__tests__/unit/componentSource.test.js.map +1 -1
  47. package/build/__tests__/unit/componentSourceResolve.test.js +0 -1
  48. package/build/__tests__/unit/componentSourceResolve.test.js.map +1 -1
  49. package/build/__tests__/unit/contextWiring.test.js +0 -3
  50. package/build/__tests__/unit/contextWiring.test.js.map +1 -1
  51. package/build/__tests__/unit/coordinateMiss.test.js +0 -16
  52. package/build/__tests__/unit/coordinateMiss.test.js.map +1 -1
  53. package/build/__tests__/unit/deviceDiscovery.test.js +0 -4
  54. package/build/__tests__/unit/deviceDiscovery.test.js.map +1 -1
  55. package/build/__tests__/unit/deviceResolution.test.js +0 -2
  56. package/build/__tests__/unit/deviceResolution.test.js.map +1 -1
  57. package/build/__tests__/unit/deviceResolver.test.js +0 -1
  58. package/build/__tests__/unit/deviceResolver.test.js.map +1 -1
  59. package/build/__tests__/unit/deviceResolverStaleRetry.test.js +0 -8
  60. package/build/__tests__/unit/deviceResolverStaleRetry.test.js.map +1 -1
  61. package/build/__tests__/unit/epochRender.test.js +0 -3
  62. package/build/__tests__/unit/epochRender.test.js.map +1 -1
  63. package/build/__tests__/unit/errorCategorization.test.js +0 -18
  64. package/build/__tests__/unit/errorCategorization.test.js.map +1 -1
  65. package/build/__tests__/unit/exec.test.js +0 -1
  66. package/build/__tests__/unit/exec.test.js.map +1 -1
  67. package/build/__tests__/unit/executor.test.js +0 -15
  68. package/build/__tests__/unit/executor.test.js.map +1 -1
  69. package/build/__tests__/unit/findElementTreeReuse.test.js +0 -12
  70. package/build/__tests__/unit/findElementTreeReuse.test.js.map +1 -1
  71. package/build/__tests__/unit/fingerprint.test.js +0 -4
  72. package/build/__tests__/unit/fingerprint.test.js.map +1 -1
  73. package/build/__tests__/unit/focusedInputTools.test.js +0 -4
  74. package/build/__tests__/unit/focusedInputTools.test.js.map +1 -1
  75. package/build/__tests__/unit/getLogsEmptyContract.test.js +0 -30
  76. package/build/__tests__/unit/getLogsEmptyContract.test.js.map +1 -1
  77. package/build/__tests__/unit/getLogsNativeSource.test.js +0 -22
  78. package/build/__tests__/unit/getLogsNativeSource.test.js.map +1 -1
  79. package/build/__tests__/unit/graphqlOperation.test.d.ts +2 -0
  80. package/build/__tests__/unit/graphqlOperation.test.d.ts.map +1 -0
  81. package/build/__tests__/unit/graphqlOperation.test.js +107 -0
  82. package/build/__tests__/unit/graphqlOperation.test.js.map +1 -0
  83. package/build/__tests__/unit/inputTarget.test.js +0 -16
  84. package/build/__tests__/unit/inputTarget.test.js.map +1 -1
  85. package/build/__tests__/unit/inputTextTool.test.js +0 -3
  86. package/build/__tests__/unit/inputTextTool.test.js.map +1 -1
  87. package/build/__tests__/unit/jsLogEvents.test.js +0 -3
  88. package/build/__tests__/unit/jsLogEvents.test.js.map +1 -1
  89. package/build/__tests__/unit/keyboardMetrics.test.js +0 -2
  90. package/build/__tests__/unit/keyboardMetrics.test.js.map +1 -1
  91. package/build/__tests__/unit/keyboardRaise.test.js +0 -2
  92. package/build/__tests__/unit/keyboardRaise.test.js.map +1 -1
  93. package/build/__tests__/unit/licenseGrace.test.js +1 -4
  94. package/build/__tests__/unit/licenseGrace.test.js.map +1 -1
  95. package/build/__tests__/unit/logEventFormat.test.js +0 -27
  96. package/build/__tests__/unit/logEventFormat.test.js.map +1 -1
  97. package/build/__tests__/unit/logEvents.test.js +1 -5
  98. package/build/__tests__/unit/logEvents.test.js.map +1 -1
  99. package/build/__tests__/unit/logGrouping.test.js +0 -2
  100. package/build/__tests__/unit/logGrouping.test.js.map +1 -1
  101. package/build/__tests__/unit/logOwnership.test.js +0 -11
  102. package/build/__tests__/unit/logOwnership.test.js.map +1 -1
  103. package/build/__tests__/unit/logRelevance.test.js +0 -6
  104. package/build/__tests__/unit/logRelevance.test.js.map +1 -1
  105. package/build/__tests__/unit/logSourceAndroid.test.js +0 -4
  106. package/build/__tests__/unit/logSourceAndroid.test.js.map +1 -1
  107. package/build/__tests__/unit/logSourceIos.test.js +0 -5
  108. package/build/__tests__/unit/logSourceIos.test.js.map +1 -1
  109. package/build/__tests__/unit/logs.test.js +0 -1
  110. package/build/__tests__/unit/logs.test.js.map +1 -1
  111. package/build/__tests__/unit/measureComponentTools.test.js +0 -1
  112. package/build/__tests__/unit/measureComponentTools.test.js.map +1 -1
  113. package/build/__tests__/unit/metro.test.js +0 -2
  114. package/build/__tests__/unit/metro.test.js.map +1 -1
  115. package/build/__tests__/unit/nativeInputValue.test.js +0 -4
  116. package/build/__tests__/unit/nativeInputValue.test.js.map +1 -1
  117. package/build/__tests__/unit/nativeLogs.test.js +1 -23
  118. package/build/__tests__/unit/nativeLogs.test.js.map +1 -1
  119. package/build/__tests__/unit/navigateVerify.test.js +0 -6
  120. package/build/__tests__/unit/navigateVerify.test.js.map +1 -1
  121. package/build/__tests__/unit/navigation.test.js +0 -5
  122. package/build/__tests__/unit/navigation.test.js.map +1 -1
  123. package/build/__tests__/unit/networkInterceptor.test.js +0 -2
  124. package/build/__tests__/unit/networkInterceptor.test.js.map +1 -1
  125. package/build/__tests__/unit/overlayGuard.test.js +0 -17
  126. package/build/__tests__/unit/overlayGuard.test.js.map +1 -1
  127. package/build/__tests__/unit/pendingExecutions.test.js +0 -6
  128. package/build/__tests__/unit/pendingExecutions.test.js.map +1 -1
  129. package/build/__tests__/unit/probe.test.js +0 -1
  130. package/build/__tests__/unit/probe.test.js.map +1 -1
  131. package/build/__tests__/unit/projectMemory.test.js +6 -7
  132. package/build/__tests__/unit/projectMemory.test.js.map +1 -1
  133. package/build/__tests__/unit/projectStore.test.js +2 -2
  134. package/build/__tests__/unit/projectStore.test.js.map +1 -1
  135. package/build/__tests__/unit/reloadAppAutoConnect.test.js +0 -9
  136. package/build/__tests__/unit/reloadAppAutoConnect.test.js.map +1 -1
  137. package/build/__tests__/unit/rnGlobalsBootstrap.test.js +3 -3
  138. package/build/__tests__/unit/rnGlobalsBootstrap.test.js.map +1 -1
  139. package/build/__tests__/unit/routeHistory.test.d.ts +2 -0
  140. package/build/__tests__/unit/routeHistory.test.d.ts.map +1 -0
  141. package/build/__tests__/unit/routeHistory.test.js +136 -0
  142. package/build/__tests__/unit/routeHistory.test.js.map +1 -0
  143. package/build/__tests__/unit/screenSpace.test.js +0 -16
  144. package/build/__tests__/unit/screenSpace.test.js.map +1 -1
  145. package/build/__tests__/unit/screenState.test.js +3 -6
  146. package/build/__tests__/unit/screenState.test.js.map +1 -1
  147. package/build/__tests__/unit/screenStateInputValue.test.js +0 -7
  148. package/build/__tests__/unit/screenStateInputValue.test.js.map +1 -1
  149. package/build/__tests__/unit/screenStateKeyboard.test.js +0 -1
  150. package/build/__tests__/unit/screenStateKeyboard.test.js.map +1 -1
  151. package/build/__tests__/unit/screenshot-diff.test.js +0 -6
  152. package/build/__tests__/unit/screenshot-diff.test.js.map +1 -1
  153. package/build/__tests__/unit/sdkMirrorPoller.test.js +0 -8
  154. package/build/__tests__/unit/sdkMirrorPoller.test.js.map +1 -1
  155. package/build/__tests__/unit/settleAndDiff.test.js +0 -11
  156. package/build/__tests__/unit/settleAndDiff.test.js.map +1 -1
  157. package/build/__tests__/unit/signedVerdict.test.js +0 -5
  158. package/build/__tests__/unit/signedVerdict.test.js.map +1 -1
  159. package/build/__tests__/unit/swipeDirection.test.js +6 -9
  160. package/build/__tests__/unit/swipeDirection.test.js.map +1 -1
  161. package/build/__tests__/unit/symbolicate.test.js +0 -1
  162. package/build/__tests__/unit/symbolicate.test.js.map +1 -1
  163. package/build/__tests__/unit/tap.test.js +0 -38
  164. package/build/__tests__/unit/tap.test.js.map +1 -1
  165. package/build/__tests__/unit/textEntry.test.js +0 -27
  166. package/build/__tests__/unit/textEntry.test.js.map +1 -1
  167. package/build/__tests__/unit/toolDescriptions.test.js +0 -40
  168. package/build/__tests__/unit/toolDescriptions.test.js.map +1 -1
  169. package/build/__tests__/unit/toolsJson.test.js +0 -10
  170. package/build/__tests__/unit/toolsJson.test.js.map +1 -1
  171. package/build/__tests__/unit/transportClassify.test.js +0 -20
  172. package/build/__tests__/unit/transportClassify.test.js.map +1 -1
  173. package/build/__tests__/unit/truncate.test.js +0 -5
  174. package/build/__tests__/unit/truncate.test.js.map +1 -1
  175. package/build/__tests__/unit/usageCache.test.js +0 -3
  176. package/build/__tests__/unit/usageCache.test.js.map +1 -1
  177. package/build/__tests__/unit/usageGate.test.js +1 -1
  178. package/build/__tests__/unit/usageGate.test.js.map +1 -1
  179. package/build/__tests__/unit/visibility.test.js +0 -8
  180. package/build/__tests__/unit/visibility.test.js.map +1 -1
  181. package/build/__tests__/unit/waitForMeasurements.test.js +2 -7
  182. package/build/__tests__/unit/waitForMeasurements.test.js.map +1 -1
  183. package/build/bin.js +0 -18
  184. package/build/bin.js.map +1 -1
  185. package/build/core/android.d.ts +0 -120
  186. package/build/core/android.d.ts.map +1 -1
  187. package/build/core/android.js +4 -259
  188. package/build/core/android.js.map +1 -1
  189. package/build/core/appContext.d.ts +0 -50
  190. package/build/core/appContext.d.ts.map +1 -1
  191. package/build/core/appContext.js +0 -50
  192. package/build/core/appContext.js.map +1 -1
  193. package/build/core/appDetection.d.ts +0 -16
  194. package/build/core/appDetection.d.ts.map +1 -1
  195. package/build/core/appDetection.js +0 -36
  196. package/build/core/appDetection.js.map +1 -1
  197. package/build/core/appRequest.d.ts +0 -12
  198. package/build/core/appRequest.d.ts.map +1 -1
  199. package/build/core/appRequest.js +0 -15
  200. package/build/core/appRequest.js.map +1 -1
  201. package/build/core/bufferConfig.d.ts +0 -2
  202. package/build/core/bufferConfig.d.ts.map +1 -1
  203. package/build/core/bufferConfig.js +0 -2
  204. package/build/core/bufferConfig.js.map +1 -1
  205. package/build/core/bundle.js +0 -40
  206. package/build/core/bundle.js.map +1 -1
  207. package/build/core/componentSearch.d.ts +0 -19
  208. package/build/core/componentSearch.d.ts.map +1 -1
  209. package/build/core/componentSearch.js +1 -22
  210. package/build/core/componentSearch.js.map +1 -1
  211. package/build/core/componentSource.d.ts +0 -21
  212. package/build/core/componentSource.d.ts.map +1 -1
  213. package/build/core/componentSource.js +0 -27
  214. package/build/core/componentSource.js.map +1 -1
  215. package/build/core/componentTree.js +0 -12
  216. package/build/core/componentTree.js.map +1 -1
  217. package/build/core/config.d.ts +0 -8
  218. package/build/core/config.d.ts.map +1 -1
  219. package/build/core/config.js +0 -10
  220. package/build/core/config.js.map +1 -1
  221. package/build/core/connection.d.ts +0 -76
  222. package/build/core/connection.d.ts.map +1 -1
  223. package/build/core/connection.js +15 -340
  224. package/build/core/connection.js.map +1 -1
  225. package/build/core/connectionState.d.ts +0 -78
  226. package/build/core/connectionState.d.ts.map +1 -1
  227. package/build/core/connectionState.js +4 -92
  228. package/build/core/connectionState.js.map +1 -1
  229. package/build/core/debugGlobals.js +0 -68
  230. package/build/core/debugGlobals.js.map +1 -1
  231. package/build/core/deviceDiscovery.d.ts +0 -5
  232. package/build/core/deviceDiscovery.d.ts.map +1 -1
  233. package/build/core/deviceDiscovery.js +0 -12
  234. package/build/core/deviceDiscovery.js.map +1 -1
  235. package/build/core/deviceResolver.d.ts +0 -10
  236. package/build/core/deviceResolver.d.ts.map +1 -1
  237. package/build/core/deviceResolver.js +0 -54
  238. package/build/core/deviceResolver.js.map +1 -1
  239. package/build/core/epochRender.d.ts +0 -12
  240. package/build/core/epochRender.d.ts.map +1 -1
  241. package/build/core/epochRender.js +0 -12
  242. package/build/core/epochRender.js.map +1 -1
  243. package/build/core/errorScreenParser.d.ts +0 -21
  244. package/build/core/errorScreenParser.d.ts.map +1 -1
  245. package/build/core/errorScreenParser.js +0 -50
  246. package/build/core/errorScreenParser.js.map +1 -1
  247. package/build/core/errors.d.ts +0 -15
  248. package/build/core/errors.d.ts.map +1 -1
  249. package/build/core/errors.js +0 -15
  250. package/build/core/errors.js.map +1 -1
  251. package/build/core/escapeNonAscii.d.ts +0 -9
  252. package/build/core/escapeNonAscii.d.ts.map +1 -1
  253. package/build/core/escapeNonAscii.js +1 -43
  254. package/build/core/escapeNonAscii.js.map +1 -1
  255. package/build/core/exec.d.ts +0 -12
  256. package/build/core/exec.d.ts.map +1 -1
  257. package/build/core/exec.js +2 -14
  258. package/build/core/exec.js.map +1 -1
  259. package/build/core/executor.js +0 -3
  260. package/build/core/executor.js.map +1 -1
  261. package/build/core/fastRefreshRecorder.js +0 -4
  262. package/build/core/fastRefreshRecorder.js.map +1 -1
  263. package/build/core/fastRefreshTools.js +0 -3
  264. package/build/core/fastRefreshTools.js.map +1 -1
  265. package/build/core/feedback.js +0 -4
  266. package/build/core/feedback.js.map +1 -1
  267. package/build/core/graphqlOperation.d.ts +13 -0
  268. package/build/core/graphqlOperation.d.ts.map +1 -0
  269. package/build/core/graphqlOperation.js +80 -0
  270. package/build/core/graphqlOperation.js.map +1 -0
  271. package/build/core/guides.d.ts +0 -10
  272. package/build/core/guides.d.ts.map +1 -1
  273. package/build/core/guides.js +0 -10
  274. package/build/core/guides.js.map +1 -1
  275. package/build/core/iconSemantics.d.ts +0 -15
  276. package/build/core/iconSemantics.d.ts.map +1 -1
  277. package/build/core/iconSemantics.js +0 -31
  278. package/build/core/iconSemantics.js.map +1 -1
  279. package/build/core/index.js +4 -47
  280. package/build/core/index.js.map +1 -1
  281. package/build/core/injected/visibility.d.ts +0 -30
  282. package/build/core/injected/visibility.d.ts.map +1 -1
  283. package/build/core/injected/visibility.js +0 -33
  284. package/build/core/injected/visibility.js.map +1 -1
  285. package/build/core/injectedFilters.d.ts +0 -28
  286. package/build/core/injectedFilters.d.ts.map +1 -1
  287. package/build/core/injectedFilters.js +0 -28
  288. package/build/core/injectedFilters.js.map +1 -1
  289. package/build/core/inputTarget.d.ts +1 -34
  290. package/build/core/inputTarget.d.ts.map +1 -1
  291. package/build/core/inputTarget.js +0 -26
  292. package/build/core/inputTarget.js.map +1 -1
  293. package/build/core/inputTargetTools.d.ts +0 -7
  294. package/build/core/inputTargetTools.d.ts.map +1 -1
  295. package/build/core/inputTargetTools.js +0 -7
  296. package/build/core/inputTargetTools.js.map +1 -1
  297. package/build/core/inspector.d.ts +0 -33
  298. package/build/core/inspector.d.ts.map +1 -1
  299. package/build/core/inspector.js +0 -36
  300. package/build/core/inspector.js.map +1 -1
  301. package/build/core/ios.d.ts +0 -127
  302. package/build/core/ios.d.ts.map +1 -1
  303. package/build/core/ios.js +2 -313
  304. package/build/core/ios.js.map +1 -1
  305. package/build/core/jsExecute.d.ts +0 -100
  306. package/build/core/jsExecute.d.ts.map +1 -1
  307. package/build/core/jsExecute.js +0 -261
  308. package/build/core/jsExecute.js.map +1 -1
  309. package/build/core/jsLogEvents.d.ts +0 -8
  310. package/build/core/jsLogEvents.d.ts.map +1 -1
  311. package/build/core/jsLogEvents.js +0 -8
  312. package/build/core/jsLogEvents.js.map +1 -1
  313. package/build/core/keyboardMetrics.js +0 -8
  314. package/build/core/keyboardMetrics.js.map +1 -1
  315. package/build/core/keyboardRaise.d.ts +0 -8
  316. package/build/core/keyboardRaise.d.ts.map +1 -1
  317. package/build/core/keyboardRaise.js +0 -23
  318. package/build/core/keyboardRaise.js.map +1 -1
  319. package/build/core/license.d.ts +0 -4
  320. package/build/core/license.d.ts.map +1 -1
  321. package/build/core/license.js +2 -55
  322. package/build/core/license.js.map +1 -1
  323. package/build/core/logDiagnosis.d.ts +0 -34
  324. package/build/core/logDiagnosis.d.ts.map +1 -1
  325. package/build/core/logDiagnosis.js +0 -15
  326. package/build/core/logDiagnosis.js.map +1 -1
  327. package/build/core/logEventFormat.d.ts +0 -1
  328. package/build/core/logEventFormat.d.ts.map +1 -1
  329. package/build/core/logEventFormat.js +0 -30
  330. package/build/core/logEventFormat.js.map +1 -1
  331. package/build/core/logEvents.d.ts +0 -54
  332. package/build/core/logEvents.d.ts.map +1 -1
  333. package/build/core/logEvents.js +0 -37
  334. package/build/core/logEvents.js.map +1 -1
  335. package/build/core/logGrouping.d.ts +0 -9
  336. package/build/core/logGrouping.d.ts.map +1 -1
  337. package/build/core/logGrouping.js +0 -17
  338. package/build/core/logGrouping.js.map +1 -1
  339. package/build/core/logOwnership.d.ts +0 -17
  340. package/build/core/logOwnership.d.ts.map +1 -1
  341. package/build/core/logOwnership.js +0 -34
  342. package/build/core/logOwnership.js.map +1 -1
  343. package/build/core/logRelevance.d.ts +0 -8
  344. package/build/core/logRelevance.d.ts.map +1 -1
  345. package/build/core/logRelevance.js +0 -15
  346. package/build/core/logRelevance.js.map +1 -1
  347. package/build/core/logSourceAndroid.d.ts +0 -8
  348. package/build/core/logSourceAndroid.d.ts.map +1 -1
  349. package/build/core/logSourceAndroid.js +0 -11
  350. package/build/core/logSourceAndroid.js.map +1 -1
  351. package/build/core/logSourceIos.d.ts +0 -8
  352. package/build/core/logSourceIos.d.ts.map +1 -1
  353. package/build/core/logSourceIos.js +1 -24
  354. package/build/core/logSourceIos.js.map +1 -1
  355. package/build/core/logbox.d.ts +0 -30
  356. package/build/core/logbox.d.ts.map +1 -1
  357. package/build/core/logbox.js +0 -43
  358. package/build/core/logbox.js.map +1 -1
  359. package/build/core/logs.d.ts +0 -6
  360. package/build/core/logs.d.ts.map +1 -1
  361. package/build/core/logs.js +0 -19
  362. package/build/core/logs.js.map +1 -1
  363. package/build/core/metro.d.ts +0 -14
  364. package/build/core/metro.d.ts.map +1 -1
  365. package/build/core/metro.js +1 -32
  366. package/build/core/metro.js.map +1 -1
  367. package/build/core/moduleRegistry.d.ts +0 -17
  368. package/build/core/moduleRegistry.d.ts.map +1 -1
  369. package/build/core/moduleRegistry.js +0 -17
  370. package/build/core/moduleRegistry.js.map +1 -1
  371. package/build/core/nativeInputValue.d.ts +0 -29
  372. package/build/core/nativeInputValue.d.ts.map +1 -1
  373. package/build/core/nativeInputValue.js +0 -18
  374. package/build/core/nativeInputValue.js.map +1 -1
  375. package/build/core/nativeLogs.d.ts +0 -47
  376. package/build/core/nativeLogs.d.ts.map +1 -1
  377. package/build/core/nativeLogs.js +0 -82
  378. package/build/core/nativeLogs.js.map +1 -1
  379. package/build/core/nativeOnlyHints.js +0 -4
  380. package/build/core/nativeOnlyHints.js.map +1 -1
  381. package/build/core/navigate.d.ts +0 -15
  382. package/build/core/navigate.d.ts.map +1 -1
  383. package/build/core/navigate.js +0 -22
  384. package/build/core/navigate.js.map +1 -1
  385. package/build/core/navigation.d.ts +0 -60
  386. package/build/core/navigation.d.ts.map +1 -1
  387. package/build/core/navigation.js +0 -60
  388. package/build/core/navigation.js.map +1 -1
  389. package/build/core/network.d.ts +0 -5
  390. package/build/core/network.d.ts.map +1 -1
  391. package/build/core/network.js +10 -31
  392. package/build/core/network.js.map +1 -1
  393. package/build/core/networkInterceptor.d.ts +0 -19
  394. package/build/core/networkInterceptor.d.ts.map +1 -1
  395. package/build/core/networkInterceptor.js +3 -27
  396. package/build/core/networkInterceptor.js.map +1 -1
  397. package/build/core/ocr.d.ts +0 -31
  398. package/build/core/ocr.d.ts.map +1 -1
  399. package/build/core/ocr.js +1 -71
  400. package/build/core/ocr.js.map +1 -1
  401. package/build/core/paths.js +0 -1
  402. package/build/core/paths.js.map +1 -1
  403. package/build/core/posthog.js +0 -7
  404. package/build/core/posthog.js.map +1 -1
  405. package/build/core/pressables.d.ts +0 -25
  406. package/build/core/pressables.d.ts.map +1 -1
  407. package/build/core/pressables.js +0 -37
  408. package/build/core/pressables.js.map +1 -1
  409. package/build/core/probe.d.ts +0 -9
  410. package/build/core/probe.d.ts.map +1 -1
  411. package/build/core/probe.js +0 -9
  412. package/build/core/probe.js.map +1 -1
  413. package/build/core/projectMemory.d.ts +0 -2
  414. package/build/core/projectMemory.d.ts.map +1 -1
  415. package/build/core/projectMemory.js +2 -7
  416. package/build/core/projectMemory.js.map +1 -1
  417. package/build/core/projectStore.d.ts +0 -18
  418. package/build/core/projectStore.d.ts.map +1 -1
  419. package/build/core/projectStore.js +0 -19
  420. package/build/core/projectStore.js.map +1 -1
  421. package/build/core/promiseHandles.d.ts +0 -13
  422. package/build/core/promiseHandles.d.ts.map +1 -1
  423. package/build/core/promiseHandles.js +0 -25
  424. package/build/core/promiseHandles.js.map +1 -1
  425. package/build/core/register.js +0 -44
  426. package/build/core/register.js.map +1 -1
  427. package/build/core/rnGlobalsBootstrap.d.ts +0 -13
  428. package/build/core/rnGlobalsBootstrap.d.ts.map +1 -1
  429. package/build/core/rnGlobalsBootstrap.js +0 -22
  430. package/build/core/rnGlobalsBootstrap.js.map +1 -1
  431. package/build/core/routeHistory.d.ts +24 -0
  432. package/build/core/routeHistory.d.ts.map +1 -0
  433. package/build/core/routeHistory.js +186 -0
  434. package/build/core/routeHistory.js.map +1 -0
  435. package/build/core/screenLayout.d.ts +0 -11
  436. package/build/core/screenLayout.d.ts.map +1 -1
  437. package/build/core/screenLayout.js +1 -60
  438. package/build/core/screenLayout.js.map +1 -1
  439. package/build/core/screenSpace.d.ts +0 -107
  440. package/build/core/screenSpace.d.ts.map +1 -1
  441. package/build/core/screenSpace.js +0 -103
  442. package/build/core/screenSpace.js.map +1 -1
  443. package/build/core/screenSpaceDevice.d.ts +0 -8
  444. package/build/core/screenSpaceDevice.d.ts.map +1 -1
  445. package/build/core/screenSpaceDevice.js +0 -23
  446. package/build/core/screenSpaceDevice.js.map +1 -1
  447. package/build/core/screenState.d.ts +0 -73
  448. package/build/core/screenState.d.ts.map +1 -1
  449. package/build/core/screenState.js +6 -115
  450. package/build/core/screenState.js.map +1 -1
  451. package/build/core/sdkBridge.js +0 -8
  452. package/build/core/sdkBridge.js.map +1 -1
  453. package/build/core/sdkMirrorPoller.d.ts +0 -18
  454. package/build/core/sdkMirrorPoller.d.ts.map +1 -1
  455. package/build/core/sdkMirrorPoller.js +0 -47
  456. package/build/core/sdkMirrorPoller.js.map +1 -1
  457. package/build/core/selectionBuffer.d.ts +0 -6
  458. package/build/core/selectionBuffer.d.ts.map +1 -1
  459. package/build/core/selectionBuffer.js +0 -5
  460. package/build/core/selectionBuffer.js.map +1 -1
  461. package/build/core/signedVerdict.js +0 -6
  462. package/build/core/signedVerdict.js.map +1 -1
  463. package/build/core/state.d.ts +0 -31
  464. package/build/core/state.d.ts.map +1 -1
  465. package/build/core/state.js +0 -57
  466. package/build/core/state.js.map +1 -1
  467. package/build/core/symbolicate.js +0 -11
  468. package/build/core/symbolicate.js.map +1 -1
  469. package/build/core/telemetry.d.ts +0 -47
  470. package/build/core/telemetry.d.ts.map +1 -1
  471. package/build/core/telemetry.js +1 -173
  472. package/build/core/telemetry.js.map +1 -1
  473. package/build/core/textEntry.d.ts +0 -34
  474. package/build/core/textEntry.d.ts.map +1 -1
  475. package/build/core/textEntry.js +0 -73
  476. package/build/core/textEntry.js.map +1 -1
  477. package/build/core/toolHelpers.d.ts +0 -12
  478. package/build/core/toolHelpers.d.ts.map +1 -1
  479. package/build/core/toolHelpers.js +2 -47
  480. package/build/core/toolHelpers.js.map +1 -1
  481. package/build/core/truncate.d.ts +0 -17
  482. package/build/core/truncate.d.ts.map +1 -1
  483. package/build/core/truncate.js +0 -32
  484. package/build/core/truncate.js.map +1 -1
  485. package/build/core/types.d.ts +0 -6
  486. package/build/core/types.d.ts.map +1 -1
  487. package/build/core/usageCache.js +0 -12
  488. package/build/core/usageCache.js.map +1 -1
  489. package/build/index.js +0 -18
  490. package/build/index.js.map +1 -1
  491. package/build/pro/coordinateMiss.d.ts +0 -30
  492. package/build/pro/coordinateMiss.d.ts.map +1 -1
  493. package/build/pro/coordinateMiss.js +0 -17
  494. package/build/pro/coordinateMiss.js.map +1 -1
  495. package/build/pro/overlayGuard.d.ts +2 -40
  496. package/build/pro/overlayGuard.d.ts.map +1 -1
  497. package/build/pro/overlayGuard.js +0 -63
  498. package/build/pro/overlayGuard.js.map +1 -1
  499. package/build/pro/screenshot-diff.js +4 -6
  500. package/build/pro/screenshot-diff.js.map +1 -1
  501. package/build/pro/tap.d.ts +0 -55
  502. package/build/pro/tap.d.ts.map +1 -1
  503. package/build/pro/tap.js +7 -330
  504. package/build/pro/tap.js.map +1 -1
  505. package/build/pro/usageGate.js +0 -9
  506. package/build/pro/usageGate.js.map +1 -1
  507. package/build/pro/usageNotifications.js +1 -13
  508. package/build/pro/usageNotifications.js.map +1 -1
  509. package/build/pro/verifyAction.d.ts +0 -13
  510. package/build/pro/verifyAction.d.ts.map +1 -1
  511. package/build/pro/verifyAction.js +0 -45
  512. package/build/pro/verifyAction.js.map +1 -1
  513. package/build/tools/_deviceArg.d.ts +0 -35
  514. package/build/tools/_deviceArg.d.ts.map +1 -1
  515. package/build/tools/_deviceArg.js +0 -35
  516. package/build/tools/_deviceArg.js.map +1 -1
  517. package/build/tools/accountTools.js +2 -2
  518. package/build/tools/accountTools.js.map +1 -1
  519. package/build/tools/bundleTools.js +0 -16
  520. package/build/tools/bundleTools.js.map +1 -1
  521. package/build/tools/componentTools.d.ts.map +1 -1
  522. package/build/tools/componentTools.js +17 -45
  523. package/build/tools/componentTools.js.map +1 -1
  524. package/build/tools/connectionTools.js +1 -59
  525. package/build/tools/connectionTools.js.map +1 -1
  526. package/build/tools/deviceTools.js +0 -11
  527. package/build/tools/deviceTools.js.map +1 -1
  528. package/build/tools/executionTools.js +1 -18
  529. package/build/tools/executionTools.js.map +1 -1
  530. package/build/tools/interactionTools.d.ts +0 -10
  531. package/build/tools/interactionTools.d.ts.map +1 -1
  532. package/build/tools/interactionTools.js +0 -57
  533. package/build/tools/interactionTools.js.map +1 -1
  534. package/build/tools/logTools.d.ts +0 -13
  535. package/build/tools/logTools.d.ts.map +1 -1
  536. package/build/tools/logTools.js +2 -126
  537. package/build/tools/logTools.js.map +1 -1
  538. package/build/tools/metaTools.js +0 -10
  539. package/build/tools/metaTools.js.map +1 -1
  540. package/build/tools/networkTools.js +4 -43
  541. package/build/tools/networkTools.js.map +1 -1
  542. package/build/tools/requestTools.js +0 -5
  543. package/build/tools/requestTools.js.map +1 -1
  544. package/build/tools/screenshotTools.js +5 -111
  545. package/build/tools/screenshotTools.js.map +1 -1
  546. package/package.json +2 -2
  547. package/tools.json +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"usageCache.js","sourceRoot":"","sources":["../../src/core/usageCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usageCache.js","sourceRoot":"","sources":["../../src/core/usageCache.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -22,8 +22,6 @@ import { registerConnectionTools } from "./tools/connectionTools.js";
22
22
  import { registerScreenshotTools } from "./tools/screenshotTools.js";
23
23
  import { registerInteractionTools } from "./tools/interactionTools.js";
24
24
  import { registerComponentTools } from "./tools/componentTools.js";
25
- // Re-export so tests (src/__tests__/unit/toolDescriptions.test.ts) can enumerate
26
- // registered tools without booting the server.
27
25
  export { toolRegistry };
28
26
  const server = new McpServer({
29
27
  name: "ExecBro (Mobile DevTools)",
@@ -58,18 +56,9 @@ registerComponentTools(server);
58
56
  async function main() {
59
57
  initTelemetry();
60
58
  identifyIfDevMode(getInstallationId());
61
- // License validation is intentionally NOT pre-loaded here. It runs lazily on
62
- // first real tool use (see ensureLicense() in trackToolInvocation), so that a
63
- // bare MCP server boot that never invokes a tool does not hit the backend.
64
- // This keeps Firebase reads/writes proportional to Active Sessions
65
- // (session_start_ai_devtools) rather than Agent Sessions (session_start).
66
- // Trade-off: the per-tool usage gate has no usage data on the very first tool
67
- // call of a session and fails open for that single call — acceptable.
68
59
  const useHttp = process.argv.includes("--http");
69
60
  const httpPort = parseInt(process.env.MCP_HTTP_PORT || "8600", 10);
70
61
  if (useHttp) {
71
- // HTTP transport mode — stateless for dev hot-reload
72
- // Stateless = no session IDs, so server restarts don't break Claude Code's connection
73
62
  const transport = new StreamableHTTPServerTransport({
74
63
  sessionIdGenerator: undefined,
75
64
  });
@@ -88,23 +77,17 @@ async function main() {
88
77
  });
89
78
  }
90
79
  else {
91
- // Stdio transport mode — default for production
92
80
  const transport = new StdioServerTransport();
93
81
  await server.connect(transport);
94
82
  console.error("[execbro] Server started on stdio");
95
83
  }
96
84
  }
97
- // Skip boot when loaded by unit tests — tests import this module purely to
98
- // enumerate `toolRegistry`. Jest sets JEST_WORKER_ID; EXECBRO_TEST_MODE
99
- // (or legacy RN_AI_DEVTOOLS_TEST_MODE) is a manual escape hatch.
100
- // Production + dev:mcp leave all unset and boot.
101
85
  if (!process.env.EXECBRO_TEST_MODE && !process.env.RN_AI_DEVTOOLS_TEST_MODE && !process.env.JEST_WORKER_ID) {
102
86
  main().catch((error) => {
103
87
  console.error("[execbro] Fatal error:", error);
104
88
  process.exit(1);
105
89
  });
106
90
  }
107
- // Graceful shutdown: close CDP connections so the slot is freed for other sessions
108
91
  function gracefulShutdown() {
109
92
  suppressReconnection();
110
93
  cancelAllReconnectionTimers();
@@ -113,7 +96,6 @@ function gracefulShutdown() {
113
96
  app.ws.close();
114
97
  }
115
98
  catch {
116
- // Ignore close errors during shutdown
117
99
  }
118
100
  connectedApps.delete(key);
119
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,53 +1,23 @@
1
1
  import type { ScreenState, ScreenStatePressable } from "../core/screenState.js";
2
- /**
3
- * Explain why a coordinate tap produced no visual change.
4
- *
5
- * Coordinate taps are the second-highest-volume strategy and win 99.6% of the
6
- * time — "win" only meaning the touch dispatched. ~15% of them change nothing,
7
- * because the coordinates were estimated from a screenshot and landed in
8
- * padding, on a label, or on an element sitting behind an open sheet. Until now
9
- * the agent got "no visual change detected" and nothing else, so its only move
10
- * was to screenshot and guess again.
11
- *
12
- * The screen-state engine already knows what occupies every point and which
13
- * elements an overlay blocks. This turns that into one actionable sentence.
14
- */
15
2
  export interface CoordinateMissTarget {
16
3
  label: string | null;
17
4
  component?: string | null;
18
5
  testID: string | null;
19
- /** Center in the SAME coordinate space the diagnosis was asked for. */
20
6
  center: {
21
7
  x: number;
22
8
  y: number;
23
9
  };
24
- /** Edge distance from the tapped point, in that same space. */
25
10
  distance: number;
26
- /** Where the target sits relative to the tapped point, e.g. "below". */
27
11
  direction: string;
28
12
  blockedByOverlay?: boolean;
29
13
  }
30
14
  export interface CoordinateMissDiagnosis {
31
- /** What occupied the tapped point, in plain words. */
32
15
  hit: string;
33
- /** Closest element the caller could tap instead. */
34
16
  nearest?: CoordinateMissTarget;
35
- /** True when the point landed on something an overlay covers. */
36
17
  blockedByOverlay: boolean;
37
- /** One-line, agent-facing next step. */
38
18
  suggestion: string;
39
19
  }
40
- /**
41
- * Flatten root pressables and every overlay's pressables into one list.
42
- * Overlay members are reachable; root members an overlay covers are not.
43
- */
44
20
  export declare function collectPressables(state: ScreenState): ScreenStatePressable[];
45
- /**
46
- * @param point the tapped point, in the same space as the screen state's bounds
47
- * @param toReportSpace maps a screen-state coordinate into the space the caller
48
- * used for its x/y (screenshot pixels), so suggested coordinates are directly
49
- * re-tappable without the agent doing any conversion.
50
- */
51
21
  export declare function explainCoordinateMiss(point: {
52
22
  x: number;
53
23
  y: number;
@@ -1 +1 @@
1
- {"version":3,"file":"coordinateMiss.d.ts","sourceRoot":"","sources":["../../src/pro/coordinateMiss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,WAAW,EACX,oBAAoB,EAEvB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uEAAuE;IACvE,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACpC,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,iEAAiE;IACjE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;CACtB;AA0CD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,EAAE,CAM5E;AAUD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACjC,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,KAAK,EAAE,WAAW,EAClB,aAAa,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAiB,GAChD,uBAAuB,GAAG,IAAI,CA+DhC"}
1
+ {"version":3,"file":"coordinateMiss.d.ts","sourceRoot":"","sources":["../../src/pro/coordinateMiss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,WAAW,EACX,oBAAoB,EAEvB,MAAM,wBAAwB,CAAC;AAgBhC,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEjC,QAAQ,EAAE,MAAM,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IAEpC,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAE/B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,UAAU,EAAE,MAAM,CAAC;CACtB;AA8CD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,EAAE,CAM5E;AAgBD,wBAAgB,qBAAqB,CACjC,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,KAAK,EAAE,WAAW,EAClB,aAAa,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAiB,GAChD,uBAAuB,GAAG,IAAI,CA+DhC"}
@@ -27,10 +27,6 @@ function nameOf(p) {
27
27
  parts.push(`testID="${p.testID}"`);
28
28
  return parts.length > 0 ? parts.join(" ") : "an unlabelled pressable";
29
29
  }
30
- /**
31
- * Flatten root pressables and every overlay's pressables into one list.
32
- * Overlay members are reachable; root members an overlay covers are not.
33
- */
34
30
  export function collectPressables(state) {
35
31
  const all = [...(state.pressables ?? [])];
36
32
  for (const overlay of state.overlays ?? []) {
@@ -45,12 +41,6 @@ function collectTexts(state) {
45
41
  }
46
42
  return all;
47
43
  }
48
- /**
49
- * @param point the tapped point, in the same space as the screen state's bounds
50
- * @param toReportSpace maps a screen-state coordinate into the space the caller
51
- * used for its x/y (screenshot pixels), so suggested coordinates are directly
52
- * re-tappable without the agent doing any conversion.
53
- */
54
44
  export function explainCoordinateMiss(point, state, toReportSpace = (v) => v) {
55
45
  const pressables = collectPressables(state);
56
46
  const texts = collectTexts(state);
@@ -69,10 +59,6 @@ export function explainCoordinateMiss(point, state, toReportSpace = (v) => v) {
69
59
  const nearestReachable = reachable
70
60
  .map(toTarget)
71
61
  .sort((a, b) => a.distance - b.distance)[0];
72
- // 1. The point is inside a REACHABLE pressable — the coordinates were right,
73
- // so the handler is the suspect, not the aim. Checked before the blocked
74
- // case because an overlay button and the element it covers can share a
75
- // point; the touch goes to the overlay, so that is what we must report.
76
62
  const pressableHit = reachable.find((p) => contains(point, p.bounds));
77
63
  if (pressableHit) {
78
64
  return {
@@ -81,8 +67,6 @@ export function explainCoordinateMiss(point, state, toReportSpace = (v) => v) {
81
67
  suggestion: `The tap landed inside ${nameOf(pressableHit)}, so the coordinates were correct — the press produced no visual change. Check the element's onPress handler, or use burst=true if the feedback is transient.`,
82
68
  };
83
69
  }
84
- // 2. The point is inside a pressable that an overlay covers — the single
85
- // most misleading case, because the pixels are visible on screen.
86
70
  const blockedHit = pressables.find((p) => p.blockedByOverlay && contains(point, p.bounds));
87
71
  if (blockedHit) {
88
72
  const overlayType = state.overlays?.[0]?.type ?? "overlay";
@@ -95,7 +79,6 @@ export function explainCoordinateMiss(point, state, toReportSpace = (v) => v) {
95
79
  : `That element is behind an open ${overlayType} and cannot receive taps. Dismiss the ${overlayType} first.`,
96
80
  };
97
81
  }
98
- // 3. The point is on text or empty space — the aim missed.
99
82
  const textHit = texts.find((t) => contains(point, t.bounds));
100
83
  const hit = textHit
101
84
  ? `text "${textHit.text.slice(0, 60)}"`
@@ -1 +1 @@
1
- {"version":3,"file":"coordinateMiss.js","sourceRoot":"","sources":["../../src/pro/coordinateMiss.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinateMiss.js","sourceRoot":"","sources":["../../src/pro/coordinateMiss.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,9 @@
1
- /**
2
- * Pre-dispatch overlay guard for `tap`.
3
- *
4
- * The OS always delivers a touch to the topmost view, so a coordinate tap physically
5
- * cannot reach an element that an overlay is painted over — the touch goes to the
6
- * overlay. That is correct behaviour and nothing about tap dispatch should change.
7
- *
8
- * What must change is that execbro not fire such a tap at all. In the reported case the
9
- * touch did not vanish harmlessly: it opened a sheet's network-request detail view, so
10
- * execbro mutated app state the agent never asked to change and was never told about.
11
- * Declining is strictly better, and the agent's correct next move — dismiss the overlay,
12
- * then retry — is the same either way.
13
- *
14
- * The check runs on the resolved TARGET, not on the strategy, because every strategy
15
- * (fiber, accessibility, OCR, raw coordinates) funnels into a coordinate tap.
16
- */
17
1
  import type { ScreenState } from "../core/screenState.js";
18
- export type OverlayVerdict =
19
- /** Nothing reachable at the target; an overlay is painted over it. Do not dispatch. */
20
- {
2
+ export type OverlayVerdict = {
21
3
  kind: "blocked";
22
4
  element: string;
23
5
  overlay: string;
24
- }
25
- /**
26
- * A coordinate that an overlay's own control occupies, while a covered element also
27
- * sits underneath it. The tap is legitimate — the OS will deliver it to the overlay
28
- * control, which is a real element — but the caller may well have been aiming at the
29
- * thing behind. Dispatch, and say which one actually got it.
30
- */
31
- | {
6
+ } | {
32
7
  kind: "shadowed";
33
8
  hit: string;
34
9
  covered: string;
@@ -41,20 +16,7 @@ export interface OverlayGuardQuery {
41
16
  x?: number;
42
17
  y?: number;
43
18
  }
44
- /**
45
- * The decision itself, over a screen state whose coordinates are already in the caller's
46
- * delivered-pixel space. Pure and exported so the refusal rules — the ones that can break
47
- * every tap in the product if they are wrong — are testable without a device.
48
- *
49
- * Returns null for anything short of a confident "blocked". A guard that fires on
50
- * uncertainty blocks legitimate taps, which is a worse failure than the mis-delivery it
51
- * is trying to prevent.
52
- */
53
19
  export declare function decideOverlayBlock(ss: ScreenState, query: OverlayGuardQuery): OverlayVerdict | null;
54
- /**
55
- * Read the current screen, normalise it into the caller's coordinate space, and apply
56
- * {@link decideOverlayBlock}. Null on any I/O failure — see that function's contract.
57
- */
58
20
  export declare function checkOverlayBlocking(args: {
59
21
  query: OverlayGuardQuery;
60
22
  platform: "ios" | "android";
@@ -1 +1 @@
1
- {"version":3,"file":"overlayGuard.d.ts","sourceRoot":"","sources":["../../src/pro/overlayGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,wBAAwB,CAAC;AAIhF,MAAM,MAAM,cAAc;AACtB,uFAAuF;AACrF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACd;AAuDD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,iBAAiB,GACzB,cAAc,GAAG,IAAI,CA2DvB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC7C,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAsBjC"}
1
+ {"version":3,"file":"overlayGuard.d.ts","sourceRoot":"","sources":["../../src/pro/overlayGuard.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,wBAAwB,CAAC;AAIhF,MAAM,MAAM,cAAc,GAEpB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAOrD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACd;AAgED,wBAAgB,kBAAkB,CAC9B,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,iBAAiB,GACzB,cAAc,GAAG,IAAI,CA2DvB;AAMD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC7C,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAsBjC"}
@@ -1,19 +1,3 @@
1
- /**
2
- * Pre-dispatch overlay guard for `tap`.
3
- *
4
- * The OS always delivers a touch to the topmost view, so a coordinate tap physically
5
- * cannot reach an element that an overlay is painted over — the touch goes to the
6
- * overlay. That is correct behaviour and nothing about tap dispatch should change.
7
- *
8
- * What must change is that execbro not fire such a tap at all. In the reported case the
9
- * touch did not vanish harmlessly: it opened a sheet's network-request detail view, so
10
- * execbro mutated app state the agent never asked to change and was never told about.
11
- * Declining is strictly better, and the agent's correct next move — dismiss the overlay,
12
- * then retry — is the same either way.
13
- *
14
- * The check runs on the resolved TARGET, not on the strategy, because every strategy
15
- * (fiber, accessibility, OCR, raw coordinates) funnels into a coordinate tap.
16
- */
17
1
  import { getScreenState } from "../core/screenState.js";
18
2
  import { screenStateToScreenSpace, screenStateToDeliveredPx } from "../core/screenSpace.js";
19
3
  import { resolveScreenSpaceMetrics } from "../core/screenSpaceDevice.js";
@@ -24,14 +8,9 @@ function describePressable(p) {
24
8
  return `${tag}${label}${tid}`;
25
9
  }
26
10
  function describeOverlay(o) {
27
- // "Unknown" is the internal bucket for a sheet recognised by geometry rather than by
28
- // component name. Surfacing that word to an agent reads like a failure, when the
29
- // finding itself is certain — it is the overlay's identity that is unknown, not its
30
- // presence.
31
11
  const kind = o.type === "Unknown" ? "overlay" : o.type;
32
12
  return o.title ? `${kind} "${o.title}"` : kind;
33
13
  }
34
- /** Smallest pressable whose box contains the point — the innermost, most specific hit. */
35
14
  function hitAt(candidates, x, y) {
36
15
  let best = null;
37
16
  let bestArea = Infinity;
@@ -47,15 +26,6 @@ function hitAt(candidates, x, y) {
47
26
  }
48
27
  return best;
49
28
  }
50
- /**
51
- * Any provided field matching is a match — deliberately not a priority chain.
52
- *
53
- * tap itself tries testID, then text, then component, and settles for whichever resolves.
54
- * A guard that only consulted the highest-priority field would wave through
55
- * `tap({testID: "nope", text: "State, tab, 2 of 4"})`: the testID matches nothing, so the
56
- * chain returns "not found" and dispatch proceeds — on the text, straight into the
57
- * overlay. Which is exactly the bug, reached by a different door.
58
- */
59
29
  function matchesQuery(p, q) {
60
30
  if (q.testID && p.testID === q.testID)
61
31
  return true;
@@ -69,26 +39,12 @@ function matchesQuery(p, q) {
69
39
  }
70
40
  return false;
71
41
  }
72
- /**
73
- * The decision itself, over a screen state whose coordinates are already in the caller's
74
- * delivered-pixel space. Pure and exported so the refusal rules — the ones that can break
75
- * every tap in the product if they are wrong — are testable without a device.
76
- *
77
- * Returns null for anything short of a confident "blocked". A guard that fires on
78
- * uncertainty blocks legitimate taps, which is a worse failure than the mis-delivery it
79
- * is trying to prevent.
80
- */
81
42
  export function decideOverlayBlock(ss, query) {
82
43
  if (!ss.overlays || ss.overlays.length === 0)
83
44
  return null;
84
45
  const blocked = ss.pressables.filter((p) => p.blockedByOverlay);
85
46
  if (blocked.length === 0)
86
47
  return null;
87
- // Everything a touch CAN reach: root pressables that nothing covers, plus the
88
- // overlays' own controls. The latter are the whole point of an open sheet and are
89
- // stored separately from ss.pressables — omitting them made the guard refuse taps on
90
- // the sheet itself, because the only element it found under the point was the covered
91
- // one behind it.
92
48
  const reachable = ss.pressables.filter((p) => !p.blockedByOverlay);
93
49
  const overlayOwned = new Set();
94
50
  for (const o of ss.overlays) {
@@ -97,24 +53,13 @@ export function decideOverlayBlock(ss, query) {
97
53
  overlayOwned.add(p);
98
54
  }
99
55
  }
100
- // Safety valve. If the model says nothing at all on screen can be tapped, the model is
101
- // far likelier to be wrong than the screen is to be inert — a `fullCover` overlay
102
- // expands its block region to the entire viewport, so one misclassification there
103
- // would refuse every tap in the app with no way back. Declining to judge keeps this
104
- // guard's worst case "behaves like before" instead of "tap is dead".
105
56
  if (reachable.length === 0)
106
57
  return null;
107
58
  const overlayNames = ss.overlays.map(describeOverlay).join(", ");
108
59
  let target = null;
109
60
  if (query.x !== undefined && query.y !== undefined) {
110
- // Whatever reachable element sits under the point is what the OS will deliver to,
111
- // whether it belongs to the app or to the sheet. The tap is legitimate.
112
61
  const hit = hitAt(reachable, query.x, query.y);
113
62
  if (hit) {
114
- // ...but if a covered element is under the same point and the winner is the
115
- // overlay's, the caller was plausibly aiming at the thing behind. Dispatching
116
- // silently here is the original bug in miniature: the right element receives
117
- // the touch, and the caller is never told it was not the one they meant.
118
63
  const covered = hitAt(blocked, query.x, query.y);
119
64
  if (covered && overlayOwned.has(hit)) {
120
65
  return {
@@ -129,7 +74,6 @@ export function decideOverlayBlock(ss, query) {
129
74
  target = hitAt(blocked, query.x, query.y);
130
75
  }
131
76
  else {
132
- // A named target that also exists reachable somewhere on screen is fine.
133
77
  if (reachable.some((p) => matchesQuery(p, query)))
134
78
  return null;
135
79
  target = blocked.find((p) => matchesQuery(p, query)) ?? null;
@@ -138,10 +82,6 @@ export function decideOverlayBlock(ss, query) {
138
82
  return null;
139
83
  return { kind: "blocked", element: describePressable(target), overlay: overlayNames };
140
84
  }
141
- /**
142
- * Read the current screen, normalise it into the caller's coordinate space, and apply
143
- * {@link decideOverlayBlock}. Null on any I/O failure — see that function's contract.
144
- */
145
85
  export async function checkOverlayBlocking(args) {
146
86
  try {
147
87
  const [res, metrics] = await Promise.all([
@@ -154,12 +94,9 @@ export async function checkOverlayBlocking(args) {
154
94
  ]);
155
95
  if (!res.success || !res.screenState)
156
96
  return null;
157
- // Inset then scale — the same normalisation the layout tools emit with, so these
158
- // bounds and the caller's coordinates are the one canonical delivered-pixel space.
159
97
  return decideOverlayBlock(screenStateToDeliveredPx(screenStateToScreenSpace(res.screenState, metrics), metrics), args.query);
160
98
  }
161
99
  catch {
162
- // Best-effort: a guard that throws must never turn a valid tap into an error.
163
100
  return null;
164
101
  }
165
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"overlayGuard.js","sourceRoot":"","sources":["../../src/pro/overlayGuard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlayGuard.js","sourceRoot":"","sources":["../../src/pro/overlayGuard.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  import pixelmatch from "pixelmatch";
2
2
  import sharp from "sharp";
3
- const POSSIBLE_CHANGE = 0.0005; // 0.05% — small UI state changes (pill selection, toggle highlight)
4
- const MIN_CHANGED_PIXELS = 200; // Absolute floor: a single character change is ~200-400px at typical resolutions
5
- const PIXEL_THRESHOLD = 0.1; // pixelmatch per-pixel color tolerance (0-1)
3
+ const POSSIBLE_CHANGE = 0.0005;
4
+ const MIN_CHANGED_PIXELS = 200;
5
+ const PIXEL_THRESHOLD = 0.1;
6
6
  export async function compareScreenshots(before, after, options) {
7
7
  const [imgBefore, imgAfter] = await Promise.all([
8
8
  sharp(before).ensureAlpha().raw().toBuffer({ resolveWithObject: true }),
9
9
  sharp(after).ensureAlpha().raw().toBuffer({ resolveWithObject: true }),
10
10
  ]);
11
- // If dimensions differ, treat as fully changed (screen transition likely)
12
11
  if (imgBefore.info.width !== imgAfter.info.width || imgBefore.info.height !== imgAfter.info.height) {
13
12
  return {
14
13
  changed: true,
@@ -18,11 +17,10 @@ export async function compareScreenshots(before, after, options) {
18
17
  };
19
18
  }
20
19
  const { width, height } = imgBefore.info;
21
- // Crop out status bar: skip the first statusBarPx rows of pixels
22
20
  const statusBarPx = options?.statusBarHeight ?? 0;
23
21
  const croppedHeight = height - statusBarPx;
24
22
  const totalPixels = width * croppedHeight;
25
- const rowBytes = width * 4; // RGBA
23
+ const rowBytes = width * 4;
26
24
  const skipBytes = statusBarPx * rowBytes;
27
25
  const beforeData = new Uint8Array(imgBefore.data.buffer, imgBefore.data.byteOffset + skipBytes, croppedHeight * rowBytes);
28
26
  const afterData = new Uint8Array(imgAfter.data.buffer, imgAfter.data.byteOffset + skipBytes, croppedHeight * rowBytes);
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot-diff.js","sourceRoot":"","sources":["../../src/pro/screenshot-diff.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,oEAAoE;AACpG,MAAM,kBAAkB,GAAG,GAAG,CAAC,CAAC,iFAAiF;AACjH,MAAM,eAAe,GAAG,GAAG,CAAC,CAAI,6CAA6C;AAE7E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,MAAc,EACd,KAAa,EACb,OAAsC;IAEtC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QACvE,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;KACzE,CAAC,CAAC;IAEH,0EAA0E;IAC1E,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjG,OAAO;YACH,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,IAAI,CAAC,GAAG,CACnB,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAC5C,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAC7C;YACD,WAAW,EAAE,IAAI,CAAC,GAAG,CACjB,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAC5C,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAC7C;SACJ,CAAC;IACN,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC;IAEzC,iEAAiE;IACjE,MAAM,WAAW,GAAG,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3C,MAAM,WAAW,GAAG,KAAK,GAAG,aAAa,CAAC;IAE1C,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO;IACnC,MAAM,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAEzC,MAAM,UAAU,GAAG,IAAI,UAAU,CAC7B,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,aAAa,GAAG,QAAQ,CACzF,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,UAAU,CAC5B,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,aAAa,GAAG,QAAQ,CACvF,CAAC;IAEF,MAAM,aAAa,GAAG,UAAU,CAC5B,UAAU,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,aAAa,EACb,EAAE,SAAS,EAAE,eAAe,EAAE,CACjC,CAAC;IAEF,MAAM,UAAU,GAAG,aAAa,GAAG,WAAW,CAAC;IAE/C,OAAO;QACH,OAAO,EAAE,UAAU,IAAI,eAAe,IAAI,aAAa,IAAI,kBAAkB;QAC7E,UAAU;QACV,aAAa;QACb,WAAW;KACd,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"screenshot-diff.js","sourceRoot":"","sources":["../../src/pro/screenshot-diff.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,MAAc,EACd,KAAa,EACb,OAAsC;IAEtC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QACvE,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;KACzE,CAAC,CAAC;IAGH,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjG,OAAO;YACH,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,IAAI,CAAC,GAAG,CACnB,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAC5C,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAC7C;YACD,WAAW,EAAE,IAAI,CAAC,GAAG,CACjB,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAC5C,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAC7C;SACJ,CAAC;IACN,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC;IAGzC,MAAM,WAAW,GAAG,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3C,MAAM,WAAW,GAAG,KAAK,GAAG,aAAa,CAAC;IAE1C,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC;IAC3B,MAAM,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAEzC,MAAM,UAAU,GAAG,IAAI,UAAU,CAC7B,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,aAAa,GAAG,QAAQ,CACzF,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,UAAU,CAC5B,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,aAAa,GAAG,QAAQ,CACvF,CAAC;IAEF,MAAM,aAAa,GAAG,UAAU,CAC5B,UAAU,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,aAAa,EACb,EAAE,SAAS,EAAE,eAAe,EAAE,CACjC,CAAC;IAEF,MAAM,UAAU,GAAG,aAAa,GAAG,WAAW,CAAC;IAE/C,OAAO;QACH,OAAO,EAAE,UAAU,IAAI,eAAe,IAAI,aAAa,IAAI,kBAAkB;QAC7E,UAAU;QACV,aAAa;QACb,WAAW;KACd,CAAC;AACN,CAAC"}
@@ -21,12 +21,6 @@ export interface TapOptions {
21
21
  screenshot?: boolean;
22
22
  verify?: boolean;
23
23
  burst?: boolean;
24
- /**
25
- * Target device. Accepts an iOS simulator UDID, an Android adb serial,
26
- * or a substring matched against connected RN apps / booted simulators /
27
- * attached Android devices. See deviceResolver.resolveDeviceTarget for
28
- * the full resolution algorithm.
29
- */
30
24
  device?: string;
31
25
  }
32
26
  export type TapAttemptOutcome = "not-found" | "timeout" | "skipped" | "invisible" | "ambiguous" | "error";
@@ -118,20 +112,9 @@ export interface TapResult {
118
112
  fiberPressableCount?: string;
119
113
  accessibilityMatchCount?: string;
120
114
  appRoute?: string;
121
- /**
122
- * Why a coordinate tap changed nothing: what occupied the point, whether an
123
- * overlay covers it, and the nearest reachable pressable with re-tappable
124
- * coordinates. Populated only on unmeaningful coordinate taps with a live
125
- * Metro connection.
126
- */
127
115
  missDiagnosis?: CoordinateMissDiagnosis;
128
116
  }
129
117
  export declare function buildQuery(options: TapOptions): TapQuery;
130
- /**
131
- * Check if text contains characters that break Hermes Runtime.evaluate.
132
- * Standard accented Latin characters (Polish, Vietnamese, French, German, etc.)
133
- * and Cyrillic work fine in Hermes. Only emoji and special Unicode ranges cause issues.
134
- */
135
118
  export declare function hasProblematicUnicode(text: string): boolean;
136
119
  export interface OcrMatch {
137
120
  text: string;
@@ -140,17 +123,6 @@ export interface OcrMatch {
140
123
  y: number;
141
124
  };
142
125
  }
143
- /**
144
- * 2026-05-16: Reconstruct lines from individual OCR words when the engine fragmented a
145
- * visible phrase across separate word detections. This happens when a leading icon
146
- * (Google "G", Apple logo, Microsoft squares) disrupts iOS Vision's line-baseline
147
- * grouping, so "Continue with Google" comes back as three separate words instead of
148
- * one OCRLine. Without this, findOcrMatch's word/line substring scan misses the phrase.
149
- *
150
- * Grouping rule: words whose vertical centers are within half the running median word
151
- * height land on the same reconstructed line. Words are sorted left-to-right within
152
- * the line and joined with a single space. Exported for unit tests.
153
- */
154
126
  export interface ReconstructedOcrLine {
155
127
  text: string;
156
128
  bbox: {
@@ -168,31 +140,12 @@ export interface ReconstructedOcrLine {
168
140
  export declare function reconstructLinesFromWords(words: OCRWord[]): ReconstructedOcrLine[];
169
141
  export declare function findOcrMatch(ocrResult: OCRResult, query: string): OcrMatch | null;
170
142
  export declare function getAvailableStrategies(query: TapQuery, strategy: TapStrategy): string[];
171
- /**
172
- * Convert screenshot image coordinates to platform-native tap coordinates.
173
- *
174
- * For iOS: screenshot pixels → device pixels (undo downscale) → points (÷ DPR)
175
- * For Android: screenshot pixels → device pixels (undo downscale)
176
- *
177
- * IMPORTANT: Only use this for EXTERNAL coordinates from screenshots.
178
- * Internal strategies (OCR, accessibility, fiber) produce tap-ready coordinates
179
- * and call iosTap/androidTap directly — they must NOT go through this function.
180
- */
181
143
  export declare function convertScreenshotToTapCoords(pixelX: number, pixelY: number, platform: "ios" | "android", devicePixelRatio: number, scaleFactor?: number): {
182
144
  x: number;
183
145
  y: number;
184
146
  };
185
- /** @deprecated Use convertScreenshotToTapCoords instead */
186
147
  export declare const convertPixelsToPoints: typeof convertScreenshotToTapCoords;
187
148
  export type SwipeDirection = "up" | "down" | "left" | "right";
188
- /**
189
- * Turn a swipe direction (+ optional pixel distance) into screenshot-pixel
190
- * start/end coordinates, centered on the screen. Content-scroll semantics:
191
- * "up" = finger travels bottom→top, revealing content below.
192
- * Distance defaults to 33% of the relevant axis and endpoints clamp to the
193
- * 10%–90% margin so the gesture never runs off-screen. Exact travel length is
194
- * preserved; for odd distances the band may sit ≤1px off the axis midpoint.
195
- */
196
149
  export declare function computeSwipeFromDirection(direction: SwipeDirection, distance: number | undefined, width: number, height: number): {
197
150
  startX: number;
198
151
  startY: number;
@@ -282,13 +235,6 @@ export interface EvidenceSink {
282
235
  text: string;
283
236
  score: number;
284
237
  } | null;
285
- /**
286
- * The best OCR candidate found, with tap-ready coordinates and the
287
- * scale factor used to capture the screenshot. Set as soon as
288
- * findOcrMatch resolves, BEFORE any tap-execution code runs, so the
289
- * orchestrator can recover from a 30ms-late OCR strategy timeout when
290
- * the candidate score is high enough (Step 2 in 2026-05-15 plan).
291
- */
292
238
  bestCandidate: {
293
239
  text: string;
294
240
  score: number;
@@ -310,7 +256,6 @@ export declare function isTapTimeout(attempted: readonly {
310
256
  strategy?: string;
311
257
  outcome?: TapAttemptOutcome;
312
258
  }[]): boolean;
313
- /** Test-only: drop the dedup state so a fresh tap always uploads. */
314
259
  export declare function resetCoordArtifactDedup(): void;
315
260
  export declare function tap(options: TapOptions): Promise<TapResult>;
316
261
  //# sourceMappingURL=tap.d.ts.map