execbro 0.0.1-reserve → 1.10.12

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 (475) hide show
  1. package/LICENSE +32 -0
  2. package/README.md +496 -0
  3. package/build/__tests__/helpers/fake-cdp-server.d.ts +56 -0
  4. package/build/__tests__/helpers/fake-cdp-server.d.ts.map +1 -0
  5. package/build/__tests__/helpers/fake-cdp-server.js +120 -0
  6. package/build/__tests__/helpers/fake-cdp-server.js.map +1 -0
  7. package/build/__tests__/helpers/tap-test-helpers.d.ts +36 -0
  8. package/build/__tests__/helpers/tap-test-helpers.d.ts.map +1 -0
  9. package/build/__tests__/helpers/tap-test-helpers.js +130 -0
  10. package/build/__tests__/helpers/tap-test-helpers.js.map +1 -0
  11. package/build/__tests__/integration/auto-reconnect.test.d.ts +2 -0
  12. package/build/__tests__/integration/auto-reconnect.test.d.ts.map +1 -0
  13. package/build/__tests__/integration/auto-reconnect.test.js +118 -0
  14. package/build/__tests__/integration/auto-reconnect.test.js.map +1 -0
  15. package/build/__tests__/integration/connection-health.test.d.ts +2 -0
  16. package/build/__tests__/integration/connection-health.test.d.ts.map +1 -0
  17. package/build/__tests__/integration/connection-health.test.js +157 -0
  18. package/build/__tests__/integration/connection-health.test.js.map +1 -0
  19. package/build/__tests__/integration/execute-in-app.test.d.ts +2 -0
  20. package/build/__tests__/integration/execute-in-app.test.d.ts.map +1 -0
  21. package/build/__tests__/integration/execute-in-app.test.js +124 -0
  22. package/build/__tests__/integration/execute-in-app.test.js.map +1 -0
  23. package/build/__tests__/integration/per-call-timeout.test.d.ts +2 -0
  24. package/build/__tests__/integration/per-call-timeout.test.d.ts.map +1 -0
  25. package/build/__tests__/integration/per-call-timeout.test.js +103 -0
  26. package/build/__tests__/integration/per-call-timeout.test.js.map +1 -0
  27. package/build/__tests__/integration/tap-strategies.test.d.ts +2 -0
  28. package/build/__tests__/integration/tap-strategies.test.d.ts.map +1 -0
  29. package/build/__tests__/integration/tap-strategies.test.js +330 -0
  30. package/build/__tests__/integration/tap-strategies.test.js.map +1 -0
  31. package/build/__tests__/integration/tools.test.d.ts +2 -0
  32. package/build/__tests__/integration/tools.test.d.ts.map +1 -0
  33. package/build/__tests__/integration/tools.test.js +227 -0
  34. package/build/__tests__/integration/tools.test.js.map +1 -0
  35. package/build/__tests__/setup.d.ts +2 -0
  36. package/build/__tests__/setup.d.ts.map +1 -0
  37. package/build/__tests__/setup.js +15 -0
  38. package/build/__tests__/setup.js.map +1 -0
  39. package/build/__tests__/unit/androidEmulatorAvds.test.d.ts +2 -0
  40. package/build/__tests__/unit/androidEmulatorAvds.test.d.ts.map +1 -0
  41. package/build/__tests__/unit/androidEmulatorAvds.test.js +98 -0
  42. package/build/__tests__/unit/androidEmulatorAvds.test.js.map +1 -0
  43. package/build/__tests__/unit/buildToken.test.d.ts +2 -0
  44. package/build/__tests__/unit/buildToken.test.d.ts.map +1 -0
  45. package/build/__tests__/unit/buildToken.test.js +22 -0
  46. package/build/__tests__/unit/buildToken.test.js.map +1 -0
  47. package/build/__tests__/unit/bundle.test.d.ts +2 -0
  48. package/build/__tests__/unit/bundle.test.d.ts.map +1 -0
  49. package/build/__tests__/unit/bundle.test.js +53 -0
  50. package/build/__tests__/unit/bundle.test.js.map +1 -0
  51. package/build/__tests__/unit/burst.test.d.ts +2 -0
  52. package/build/__tests__/unit/burst.test.d.ts.map +1 -0
  53. package/build/__tests__/unit/burst.test.js +54 -0
  54. package/build/__tests__/unit/burst.test.js.map +1 -0
  55. package/build/__tests__/unit/connection-health.test.d.ts +2 -0
  56. package/build/__tests__/unit/connection-health.test.d.ts.map +1 -0
  57. package/build/__tests__/unit/connection-health.test.js +38 -0
  58. package/build/__tests__/unit/connection-health.test.js.map +1 -0
  59. package/build/__tests__/unit/debugGlobals.test.d.ts +2 -0
  60. package/build/__tests__/unit/debugGlobals.test.d.ts.map +1 -0
  61. package/build/__tests__/unit/debugGlobals.test.js +14 -0
  62. package/build/__tests__/unit/debugGlobals.test.js.map +1 -0
  63. package/build/__tests__/unit/deviceDiscovery.test.d.ts +2 -0
  64. package/build/__tests__/unit/deviceDiscovery.test.d.ts.map +1 -0
  65. package/build/__tests__/unit/deviceDiscovery.test.js +119 -0
  66. package/build/__tests__/unit/deviceDiscovery.test.js.map +1 -0
  67. package/build/__tests__/unit/deviceResolver.test.d.ts +2 -0
  68. package/build/__tests__/unit/deviceResolver.test.d.ts.map +1 -0
  69. package/build/__tests__/unit/deviceResolver.test.js +261 -0
  70. package/build/__tests__/unit/deviceResolver.test.js.map +1 -0
  71. package/build/__tests__/unit/escapeNonAscii.test.d.ts +2 -0
  72. package/build/__tests__/unit/escapeNonAscii.test.d.ts.map +1 -0
  73. package/build/__tests__/unit/escapeNonAscii.test.js +76 -0
  74. package/build/__tests__/unit/escapeNonAscii.test.js.map +1 -0
  75. package/build/__tests__/unit/exec.test.d.ts +2 -0
  76. package/build/__tests__/unit/exec.test.d.ts.map +1 -0
  77. package/build/__tests__/unit/exec.test.js +54 -0
  78. package/build/__tests__/unit/exec.test.js.map +1 -0
  79. package/build/__tests__/unit/executor.test.d.ts +2 -0
  80. package/build/__tests__/unit/executor.test.d.ts.map +1 -0
  81. package/build/__tests__/unit/executor.test.js +220 -0
  82. package/build/__tests__/unit/executor.test.js.map +1 -0
  83. package/build/__tests__/unit/failureArtifact.test.d.ts +2 -0
  84. package/build/__tests__/unit/failureArtifact.test.d.ts.map +1 -0
  85. package/build/__tests__/unit/failureArtifact.test.js +207 -0
  86. package/build/__tests__/unit/failureArtifact.test.js.map +1 -0
  87. package/build/__tests__/unit/fastRefreshRecorder.test.d.ts +2 -0
  88. package/build/__tests__/unit/fastRefreshRecorder.test.d.ts.map +1 -0
  89. package/build/__tests__/unit/fastRefreshRecorder.test.js +68 -0
  90. package/build/__tests__/unit/fastRefreshRecorder.test.js.map +1 -0
  91. package/build/__tests__/unit/fastRefreshTools.test.d.ts +2 -0
  92. package/build/__tests__/unit/fastRefreshTools.test.d.ts.map +1 -0
  93. package/build/__tests__/unit/fastRefreshTools.test.js +112 -0
  94. package/build/__tests__/unit/fastRefreshTools.test.js.map +1 -0
  95. package/build/__tests__/unit/fiberMatch.test.d.ts +2 -0
  96. package/build/__tests__/unit/fiberMatch.test.d.ts.map +1 -0
  97. package/build/__tests__/unit/fiberMatch.test.js +114 -0
  98. package/build/__tests__/unit/fiberMatch.test.js.map +1 -0
  99. package/build/__tests__/unit/fingerprint.test.d.ts +2 -0
  100. package/build/__tests__/unit/fingerprint.test.d.ts.map +1 -0
  101. package/build/__tests__/unit/fingerprint.test.js +99 -0
  102. package/build/__tests__/unit/fingerprint.test.js.map +1 -0
  103. package/build/__tests__/unit/focusedInput.test.d.ts +2 -0
  104. package/build/__tests__/unit/focusedInput.test.d.ts.map +1 -0
  105. package/build/__tests__/unit/focusedInput.test.js +58 -0
  106. package/build/__tests__/unit/focusedInput.test.js.map +1 -0
  107. package/build/__tests__/unit/focusedInputTools.test.d.ts +2 -0
  108. package/build/__tests__/unit/focusedInputTools.test.d.ts.map +1 -0
  109. package/build/__tests__/unit/focusedInputTools.test.js +79 -0
  110. package/build/__tests__/unit/focusedInputTools.test.js.map +1 -0
  111. package/build/__tests__/unit/iconSemantics.test.d.ts +2 -0
  112. package/build/__tests__/unit/iconSemantics.test.d.ts.map +1 -0
  113. package/build/__tests__/unit/iconSemantics.test.js +80 -0
  114. package/build/__tests__/unit/iconSemantics.test.js.map +1 -0
  115. package/build/__tests__/unit/imageBuffer.test.d.ts +2 -0
  116. package/build/__tests__/unit/imageBuffer.test.d.ts.map +1 -0
  117. package/build/__tests__/unit/imageBuffer.test.js +128 -0
  118. package/build/__tests__/unit/imageBuffer.test.js.map +1 -0
  119. package/build/__tests__/unit/logs.test.d.ts +2 -0
  120. package/build/__tests__/unit/logs.test.d.ts.map +1 -0
  121. package/build/__tests__/unit/logs.test.js +90 -0
  122. package/build/__tests__/unit/logs.test.js.map +1 -0
  123. package/build/__tests__/unit/measureComponent.test.d.ts +2 -0
  124. package/build/__tests__/unit/measureComponent.test.d.ts.map +1 -0
  125. package/build/__tests__/unit/measureComponent.test.js +66 -0
  126. package/build/__tests__/unit/measureComponent.test.js.map +1 -0
  127. package/build/__tests__/unit/measureComponentTools.test.d.ts +2 -0
  128. package/build/__tests__/unit/measureComponentTools.test.d.ts.map +1 -0
  129. package/build/__tests__/unit/measureComponentTools.test.js +94 -0
  130. package/build/__tests__/unit/measureComponentTools.test.js.map +1 -0
  131. package/build/__tests__/unit/metro.test.d.ts +2 -0
  132. package/build/__tests__/unit/metro.test.d.ts.map +1 -0
  133. package/build/__tests__/unit/metro.test.js +61 -0
  134. package/build/__tests__/unit/metro.test.js.map +1 -0
  135. package/build/__tests__/unit/network.test.d.ts +2 -0
  136. package/build/__tests__/unit/network.test.d.ts.map +1 -0
  137. package/build/__tests__/unit/network.test.js +102 -0
  138. package/build/__tests__/unit/network.test.js.map +1 -0
  139. package/build/__tests__/unit/networkInterceptor.test.d.ts +2 -0
  140. package/build/__tests__/unit/networkInterceptor.test.d.ts.map +1 -0
  141. package/build/__tests__/unit/networkInterceptor.test.js +104 -0
  142. package/build/__tests__/unit/networkInterceptor.test.js.map +1 -0
  143. package/build/__tests__/unit/probe.test.d.ts +2 -0
  144. package/build/__tests__/unit/probe.test.d.ts.map +1 -0
  145. package/build/__tests__/unit/probe.test.js +62 -0
  146. package/build/__tests__/unit/probe.test.js.map +1 -0
  147. package/build/__tests__/unit/rnGlobalsBootstrap.test.d.ts +2 -0
  148. package/build/__tests__/unit/rnGlobalsBootstrap.test.d.ts.map +1 -0
  149. package/build/__tests__/unit/rnGlobalsBootstrap.test.js +29 -0
  150. package/build/__tests__/unit/rnGlobalsBootstrap.test.js.map +1 -0
  151. package/build/__tests__/unit/screenState.test.d.ts +2 -0
  152. package/build/__tests__/unit/screenState.test.d.ts.map +1 -0
  153. package/build/__tests__/unit/screenState.test.js +186 -0
  154. package/build/__tests__/unit/screenState.test.js.map +1 -0
  155. package/build/__tests__/unit/screenshot-diff.test.d.ts +2 -0
  156. package/build/__tests__/unit/screenshot-diff.test.d.ts.map +1 -0
  157. package/build/__tests__/unit/screenshot-diff.test.js +97 -0
  158. package/build/__tests__/unit/screenshot-diff.test.js.map +1 -0
  159. package/build/__tests__/unit/tap-evidence.test.d.ts +2 -0
  160. package/build/__tests__/unit/tap-evidence.test.d.ts.map +1 -0
  161. package/build/__tests__/unit/tap-evidence.test.js +89 -0
  162. package/build/__tests__/unit/tap-evidence.test.js.map +1 -0
  163. package/build/__tests__/unit/tap.test.d.ts +2 -0
  164. package/build/__tests__/unit/tap.test.d.ts.map +1 -0
  165. package/build/__tests__/unit/tap.test.js +769 -0
  166. package/build/__tests__/unit/tap.test.js.map +1 -0
  167. package/build/__tests__/unit/timeoutClamp.test.d.ts +2 -0
  168. package/build/__tests__/unit/timeoutClamp.test.d.ts.map +1 -0
  169. package/build/__tests__/unit/timeoutClamp.test.js +17 -0
  170. package/build/__tests__/unit/timeoutClamp.test.js.map +1 -0
  171. package/build/__tests__/unit/toolDescriptions.test.d.ts +2 -0
  172. package/build/__tests__/unit/toolDescriptions.test.d.ts.map +1 -0
  173. package/build/__tests__/unit/toolDescriptions.test.js +145 -0
  174. package/build/__tests__/unit/toolDescriptions.test.js.map +1 -0
  175. package/build/__tests__/unit/transportClassify.test.d.ts +2 -0
  176. package/build/__tests__/unit/transportClassify.test.d.ts.map +1 -0
  177. package/build/__tests__/unit/transportClassify.test.js +60 -0
  178. package/build/__tests__/unit/transportClassify.test.js.map +1 -0
  179. package/build/__tests__/unit/verifyAction.test.d.ts +2 -0
  180. package/build/__tests__/unit/verifyAction.test.d.ts.map +1 -0
  181. package/build/__tests__/unit/verifyAction.test.js +26 -0
  182. package/build/__tests__/unit/verifyAction.test.js.map +1 -0
  183. package/build/core/android.d.ts +299 -0
  184. package/build/core/android.d.ts.map +1 -0
  185. package/build/core/android.js +1582 -0
  186. package/build/core/android.js.map +1 -0
  187. package/build/core/appDetection.d.ts +20 -0
  188. package/build/core/appDetection.d.ts.map +1 -0
  189. package/build/core/appDetection.js +167 -0
  190. package/build/core/appDetection.js.map +1 -0
  191. package/build/core/bundle.d.ts +49 -0
  192. package/build/core/bundle.d.ts.map +1 -0
  193. package/build/core/bundle.js +356 -0
  194. package/build/core/bundle.js.map +1 -0
  195. package/build/core/componentSearch.d.ts +41 -0
  196. package/build/core/componentSearch.d.ts.map +1 -0
  197. package/build/core/componentSearch.js +588 -0
  198. package/build/core/componentSearch.js.map +1 -0
  199. package/build/core/componentTree.d.ts +13 -0
  200. package/build/core/componentTree.d.ts.map +1 -0
  201. package/build/core/componentTree.js +275 -0
  202. package/build/core/componentTree.js.map +1 -0
  203. package/build/core/config.d.ts +9 -0
  204. package/build/core/config.d.ts.map +1 -0
  205. package/build/core/config.js +28 -0
  206. package/build/core/config.js.map +1 -0
  207. package/build/core/connection.d.ts +102 -0
  208. package/build/core/connection.d.ts.map +1 -0
  209. package/build/core/connection.js +1710 -0
  210. package/build/core/connection.js.map +1 -0
  211. package/build/core/connectionState.d.ts +122 -0
  212. package/build/core/connectionState.d.ts.map +1 -0
  213. package/build/core/connectionState.js +313 -0
  214. package/build/core/connectionState.js.map +1 -0
  215. package/build/core/debugGlobals.d.ts +6 -0
  216. package/build/core/debugGlobals.d.ts.map +1 -0
  217. package/build/core/debugGlobals.js +370 -0
  218. package/build/core/debugGlobals.js.map +1 -0
  219. package/build/core/deviceDiscovery.d.ts +52 -0
  220. package/build/core/deviceDiscovery.d.ts.map +1 -0
  221. package/build/core/deviceDiscovery.js +74 -0
  222. package/build/core/deviceDiscovery.js.map +1 -0
  223. package/build/core/deviceResolver.d.ts +44 -0
  224. package/build/core/deviceResolver.d.ts.map +1 -0
  225. package/build/core/deviceResolver.js +225 -0
  226. package/build/core/deviceResolver.js.map +1 -0
  227. package/build/core/errorScreenParser.d.ts +30 -0
  228. package/build/core/errorScreenParser.d.ts.map +1 -0
  229. package/build/core/errorScreenParser.js +198 -0
  230. package/build/core/errorScreenParser.js.map +1 -0
  231. package/build/core/errors.d.ts +14 -0
  232. package/build/core/errors.d.ts.map +1 -0
  233. package/build/core/errors.js +17 -0
  234. package/build/core/errors.js.map +1 -0
  235. package/build/core/escapeNonAscii.d.ts +18 -0
  236. package/build/core/escapeNonAscii.d.ts.map +1 -0
  237. package/build/core/escapeNonAscii.js +352 -0
  238. package/build/core/escapeNonAscii.js.map +1 -0
  239. package/build/core/exec.d.ts +22 -0
  240. package/build/core/exec.d.ts.map +1 -0
  241. package/build/core/exec.js +54 -0
  242. package/build/core/exec.js.map +1 -0
  243. package/build/core/executor.d.ts +9 -0
  244. package/build/core/executor.d.ts.map +1 -0
  245. package/build/core/executor.js +12 -0
  246. package/build/core/executor.js.map +1 -0
  247. package/build/core/failureArtifact.d.ts +120 -0
  248. package/build/core/failureArtifact.d.ts.map +1 -0
  249. package/build/core/failureArtifact.js +113 -0
  250. package/build/core/failureArtifact.js.map +1 -0
  251. package/build/core/fastRefreshRecorder.d.ts +23 -0
  252. package/build/core/fastRefreshRecorder.d.ts.map +1 -0
  253. package/build/core/fastRefreshRecorder.js +83 -0
  254. package/build/core/fastRefreshRecorder.js.map +1 -0
  255. package/build/core/fastRefreshTools.d.ts +19 -0
  256. package/build/core/fastRefreshTools.d.ts.map +1 -0
  257. package/build/core/fastRefreshTools.js +71 -0
  258. package/build/core/fastRefreshTools.js.map +1 -0
  259. package/build/core/feedback.d.ts +18 -0
  260. package/build/core/feedback.d.ts.map +1 -0
  261. package/build/core/feedback.js +73 -0
  262. package/build/core/feedback.js.map +1 -0
  263. package/build/core/fiberMatch.d.ts +25 -0
  264. package/build/core/fiberMatch.d.ts.map +1 -0
  265. package/build/core/fiberMatch.js +35 -0
  266. package/build/core/fiberMatch.js.map +1 -0
  267. package/build/core/fingerprint.d.ts +4 -0
  268. package/build/core/fingerprint.d.ts.map +1 -0
  269. package/build/core/fingerprint.js +47 -0
  270. package/build/core/fingerprint.js.map +1 -0
  271. package/build/core/focusedInput.d.ts +27 -0
  272. package/build/core/focusedInput.d.ts.map +1 -0
  273. package/build/core/focusedInput.js +110 -0
  274. package/build/core/focusedInput.js.map +1 -0
  275. package/build/core/focusedInputTools.d.ts +21 -0
  276. package/build/core/focusedInputTools.d.ts.map +1 -0
  277. package/build/core/focusedInputTools.js +51 -0
  278. package/build/core/focusedInputTools.js.map +1 -0
  279. package/build/core/format.d.ts +8 -0
  280. package/build/core/format.d.ts.map +1 -0
  281. package/build/core/format.js +34 -0
  282. package/build/core/format.js.map +1 -0
  283. package/build/core/guides.d.ts +21 -0
  284. package/build/core/guides.d.ts.map +1 -0
  285. package/build/core/guides.js +397 -0
  286. package/build/core/guides.js.map +1 -0
  287. package/build/core/iconSemantics.d.ts +18 -0
  288. package/build/core/iconSemantics.d.ts.map +1 -0
  289. package/build/core/iconSemantics.js +114 -0
  290. package/build/core/iconSemantics.js.map +1 -0
  291. package/build/core/imageBuffer.d.ts +37 -0
  292. package/build/core/imageBuffer.d.ts.map +1 -0
  293. package/build/core/imageBuffer.js +58 -0
  294. package/build/core/imageBuffer.js.map +1 -0
  295. package/build/core/index.d.ts +37 -0
  296. package/build/core/index.d.ts.map +1 -0
  297. package/build/core/index.js +66 -0
  298. package/build/core/index.js.map +1 -0
  299. package/build/core/inspector.d.ts +55 -0
  300. package/build/core/inspector.d.ts.map +1 -0
  301. package/build/core/inspector.js +603 -0
  302. package/build/core/inspector.js.map +1 -0
  303. package/build/core/ios.d.ts +263 -0
  304. package/build/core/ios.d.ts.map +1 -0
  305. package/build/core/ios.js +1705 -0
  306. package/build/core/ios.js.map +1 -0
  307. package/build/core/jsExecute.d.ts +62 -0
  308. package/build/core/jsExecute.d.ts.map +1 -0
  309. package/build/core/jsExecute.js +696 -0
  310. package/build/core/jsExecute.js.map +1 -0
  311. package/build/core/license.d.ts +48 -0
  312. package/build/core/license.d.ts.map +1 -0
  313. package/build/core/license.js +267 -0
  314. package/build/core/license.js.map +1 -0
  315. package/build/core/logbox.d.ts +58 -0
  316. package/build/core/logbox.d.ts.map +1 -0
  317. package/build/core/logbox.js +330 -0
  318. package/build/core/logbox.js.map +1 -0
  319. package/build/core/logs.d.ts +44 -0
  320. package/build/core/logs.d.ts.map +1 -0
  321. package/build/core/logs.js +149 -0
  322. package/build/core/logs.js.map +1 -0
  323. package/build/core/measureComponent.d.ts +19 -0
  324. package/build/core/measureComponent.d.ts.map +1 -0
  325. package/build/core/measureComponent.js +94 -0
  326. package/build/core/measureComponent.js.map +1 -0
  327. package/build/core/measureComponentTools.d.ts +6 -0
  328. package/build/core/measureComponentTools.d.ts.map +1 -0
  329. package/build/core/measureComponentTools.js +43 -0
  330. package/build/core/measureComponentTools.js.map +1 -0
  331. package/build/core/metro.d.ts +31 -0
  332. package/build/core/metro.d.ts.map +1 -0
  333. package/build/core/metro.js +124 -0
  334. package/build/core/metro.js.map +1 -0
  335. package/build/core/nativeOnlyHints.d.ts +14 -0
  336. package/build/core/nativeOnlyHints.d.ts.map +1 -0
  337. package/build/core/nativeOnlyHints.js +58 -0
  338. package/build/core/nativeOnlyHints.js.map +1 -0
  339. package/build/core/network.d.ts +43 -0
  340. package/build/core/network.d.ts.map +1 -0
  341. package/build/core/network.js +217 -0
  342. package/build/core/network.js.map +1 -0
  343. package/build/core/networkInterceptor.d.ts +30 -0
  344. package/build/core/networkInterceptor.d.ts.map +1 -0
  345. package/build/core/networkInterceptor.js +211 -0
  346. package/build/core/networkInterceptor.js.map +1 -0
  347. package/build/core/ocr.d.ts +87 -0
  348. package/build/core/ocr.d.ts.map +1 -0
  349. package/build/core/ocr.js +335 -0
  350. package/build/core/ocr.js.map +1 -0
  351. package/build/core/paths.d.ts +2 -0
  352. package/build/core/paths.d.ts.map +1 -0
  353. package/build/core/paths.js +28 -0
  354. package/build/core/paths.js.map +1 -0
  355. package/build/core/posthog.d.ts +5 -0
  356. package/build/core/posthog.d.ts.map +1 -0
  357. package/build/core/posthog.js +52 -0
  358. package/build/core/posthog.js.map +1 -0
  359. package/build/core/pressables.d.ts +46 -0
  360. package/build/core/pressables.d.ts.map +1 -0
  361. package/build/core/pressables.js +1719 -0
  362. package/build/core/pressables.js.map +1 -0
  363. package/build/core/probe.d.ts +12 -0
  364. package/build/core/probe.d.ts.map +1 -0
  365. package/build/core/probe.js +56 -0
  366. package/build/core/probe.js.map +1 -0
  367. package/build/core/redux.d.ts +22 -0
  368. package/build/core/redux.d.ts.map +1 -0
  369. package/build/core/redux.js +116 -0
  370. package/build/core/redux.js.map +1 -0
  371. package/build/core/register.d.ts +8 -0
  372. package/build/core/register.d.ts.map +1 -0
  373. package/build/core/register.js +202 -0
  374. package/build/core/register.js.map +1 -0
  375. package/build/core/rnGlobalsBootstrap.d.ts +16 -0
  376. package/build/core/rnGlobalsBootstrap.d.ts.map +1 -0
  377. package/build/core/rnGlobalsBootstrap.js +116 -0
  378. package/build/core/rnGlobalsBootstrap.js.map +1 -0
  379. package/build/core/screenLayout.d.ts +53 -0
  380. package/build/core/screenLayout.d.ts.map +1 -0
  381. package/build/core/screenLayout.js +878 -0
  382. package/build/core/screenLayout.js.map +1 -0
  383. package/build/core/screenState.d.ts +98 -0
  384. package/build/core/screenState.d.ts.map +1 -0
  385. package/build/core/screenState.js +1121 -0
  386. package/build/core/screenState.js.map +1 -0
  387. package/build/core/sdkBridge.d.ts +67 -0
  388. package/build/core/sdkBridge.d.ts.map +1 -0
  389. package/build/core/sdkBridge.js +148 -0
  390. package/build/core/sdkBridge.js.map +1 -0
  391. package/build/core/state.d.ts +37 -0
  392. package/build/core/state.d.ts.map +1 -0
  393. package/build/core/state.js +124 -0
  394. package/build/core/state.js.map +1 -0
  395. package/build/core/telemetry.d.ts +50 -0
  396. package/build/core/telemetry.d.ts.map +1 -0
  397. package/build/core/telemetry.js +653 -0
  398. package/build/core/telemetry.js.map +1 -0
  399. package/build/core/toolHelpers.d.ts +24 -0
  400. package/build/core/toolHelpers.d.ts.map +1 -0
  401. package/build/core/toolHelpers.js +118 -0
  402. package/build/core/toolHelpers.js.map +1 -0
  403. package/build/core/types.d.ts +162 -0
  404. package/build/core/types.d.ts.map +1 -0
  405. package/build/core/types.js +2 -0
  406. package/build/core/types.js.map +1 -0
  407. package/build/index.d.ts +4 -0
  408. package/build/index.d.ts.map +1 -0
  409. package/build/index.js +132 -0
  410. package/build/index.js.map +1 -0
  411. package/build/pro/screenshot-diff.d.ts +10 -0
  412. package/build/pro/screenshot-diff.d.ts.map +1 -0
  413. package/build/pro/screenshot-diff.js +38 -0
  414. package/build/pro/screenshot-diff.js.map +1 -0
  415. package/build/pro/tap.d.ts +295 -0
  416. package/build/pro/tap.d.ts.map +1 -0
  417. package/build/pro/tap.js +1937 -0
  418. package/build/pro/tap.js.map +1 -0
  419. package/build/pro/verifyAction.d.ts +50 -0
  420. package/build/pro/verifyAction.d.ts.map +1 -0
  421. package/build/pro/verifyAction.js +285 -0
  422. package/build/pro/verifyAction.js.map +1 -0
  423. package/build/tools/_deviceArg.d.ts +45 -0
  424. package/build/tools/_deviceArg.d.ts.map +1 -0
  425. package/build/tools/_deviceArg.js +58 -0
  426. package/build/tools/_deviceArg.js.map +1 -0
  427. package/build/tools/accountTools.d.ts +46 -0
  428. package/build/tools/accountTools.d.ts.map +1 -0
  429. package/build/tools/accountTools.js +223 -0
  430. package/build/tools/accountTools.js.map +1 -0
  431. package/build/tools/bundleTools.d.ts +3 -0
  432. package/build/tools/bundleTools.d.ts.map +1 -0
  433. package/build/tools/bundleTools.js +375 -0
  434. package/build/tools/bundleTools.js.map +1 -0
  435. package/build/tools/componentTools.d.ts +3 -0
  436. package/build/tools/componentTools.d.ts.map +1 -0
  437. package/build/tools/componentTools.js +745 -0
  438. package/build/tools/componentTools.js.map +1 -0
  439. package/build/tools/connectionTools.d.ts +3 -0
  440. package/build/tools/connectionTools.d.ts.map +1 -0
  441. package/build/tools/connectionTools.js +625 -0
  442. package/build/tools/connectionTools.js.map +1 -0
  443. package/build/tools/deviceTools.d.ts +3 -0
  444. package/build/tools/deviceTools.d.ts.map +1 -0
  445. package/build/tools/deviceTools.js +423 -0
  446. package/build/tools/deviceTools.js.map +1 -0
  447. package/build/tools/executionTools.d.ts +3 -0
  448. package/build/tools/executionTools.d.ts.map +1 -0
  449. package/build/tools/executionTools.js +243 -0
  450. package/build/tools/executionTools.js.map +1 -0
  451. package/build/tools/interactionTools.d.ts +3 -0
  452. package/build/tools/interactionTools.d.ts.map +1 -0
  453. package/build/tools/interactionTools.js +539 -0
  454. package/build/tools/interactionTools.js.map +1 -0
  455. package/build/tools/logTools.d.ts +3 -0
  456. package/build/tools/logTools.d.ts.map +1 -0
  457. package/build/tools/logTools.js +371 -0
  458. package/build/tools/logTools.js.map +1 -0
  459. package/build/tools/metaTools.d.ts +7 -0
  460. package/build/tools/metaTools.d.ts.map +1 -0
  461. package/build/tools/metaTools.js +186 -0
  462. package/build/tools/metaTools.js.map +1 -0
  463. package/build/tools/networkTools.d.ts +3 -0
  464. package/build/tools/networkTools.d.ts.map +1 -0
  465. package/build/tools/networkTools.js +478 -0
  466. package/build/tools/networkTools.js.map +1 -0
  467. package/build/tools/reduxTools.d.ts +3 -0
  468. package/build/tools/reduxTools.d.ts.map +1 -0
  469. package/build/tools/reduxTools.js +83 -0
  470. package/build/tools/reduxTools.js.map +1 -0
  471. package/build/tools/screenshotTools.d.ts +3 -0
  472. package/build/tools/screenshotTools.d.ts.map +1 -0
  473. package/build/tools/screenshotTools.js +703 -0
  474. package/build/tools/screenshotTools.js.map +1 -0
  475. package/package.json +63 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pressables.js","sourceRoot":"","sources":["../../src/core/pressables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import WebSocket from "ws";
2
+ /**
3
+ * Send a trivial Runtime.evaluate to verify the CDP target's JS context is alive.
4
+ * Returns true when the remote replies with result.value === 2 within timeoutMs.
5
+ * Returns false on timeout, parse error, unexpected payload, or socket error.
6
+ *
7
+ * Metro advertises stale/zombie CDP pages after the underlying device or app
8
+ * goes away. The WebSocket handshake still completes on those targets, so this
9
+ * extra JS-level probe is the only reliable way to distinguish live from dead.
10
+ */
11
+ export declare function probeCdpAlive(ws: WebSocket, timeoutMs: number): Promise<boolean>;
12
+ //# sourceMappingURL=probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/core/probe.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAO3B;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAC/B,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAwClB"}
@@ -0,0 +1,56 @@
1
+ import WebSocket from "ws";
2
+ let probeIdCounter = 1_000_000;
3
+ function nextProbeId() {
4
+ return probeIdCounter++;
5
+ }
6
+ /**
7
+ * Send a trivial Runtime.evaluate to verify the CDP target's JS context is alive.
8
+ * Returns true when the remote replies with result.value === 2 within timeoutMs.
9
+ * Returns false on timeout, parse error, unexpected payload, or socket error.
10
+ *
11
+ * Metro advertises stale/zombie CDP pages after the underlying device or app
12
+ * goes away. The WebSocket handshake still completes on those targets, so this
13
+ * extra JS-level probe is the only reliable way to distinguish live from dead.
14
+ */
15
+ export async function probeCdpAlive(ws, timeoutMs) {
16
+ if (ws.readyState !== WebSocket.OPEN)
17
+ return false;
18
+ const id = nextProbeId();
19
+ const payload = JSON.stringify({
20
+ id,
21
+ method: "Runtime.evaluate",
22
+ params: { expression: "1+1", returnByValue: true }
23
+ });
24
+ return new Promise((resolve) => {
25
+ let settled = false;
26
+ const finish = (alive) => {
27
+ if (settled)
28
+ return;
29
+ settled = true;
30
+ ws.off("message", onMessage);
31
+ clearTimeout(timer);
32
+ resolve(alive);
33
+ };
34
+ const onMessage = (data) => {
35
+ try {
36
+ const msg = JSON.parse(data.toString());
37
+ if (msg.id !== id)
38
+ return;
39
+ const value = msg?.result?.result?.value;
40
+ finish(value === 2);
41
+ }
42
+ catch {
43
+ finish(false);
44
+ }
45
+ };
46
+ const timer = setTimeout(() => finish(false), timeoutMs);
47
+ ws.on("message", onMessage);
48
+ try {
49
+ ws.send(payload);
50
+ }
51
+ catch {
52
+ finish(false);
53
+ }
54
+ });
55
+ }
56
+ //# sourceMappingURL=probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/core/probe.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAE3B,IAAI,cAAc,GAAG,SAAS,CAAC;AAC/B,SAAS,WAAW;IAChB,OAAO,cAAc,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,EAAa,EACb,SAAiB;IAEjB,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAEnD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,EAAE;QACF,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACrD,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACpC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE;YAC9B,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7B,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,IAAuB,EAAE,EAAE;YAC1C,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACxC,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE;oBAAE,OAAO;gBAC1B,MAAM,KAAK,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;gBACzC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACL,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;QAEzD,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,22 @@
1
+ export interface ReduxDispatchOptions {
2
+ action: Record<string, unknown>;
3
+ storeIndex?: number;
4
+ returnPath?: string;
5
+ device?: string;
6
+ }
7
+ export interface ReduxResult {
8
+ success: boolean;
9
+ error?: string;
10
+ storeCount?: number;
11
+ storeIndex?: number;
12
+ state?: unknown;
13
+ previousAction?: unknown;
14
+ }
15
+ export declare function reduxDispatch(options: ReduxDispatchOptions): Promise<ReduxResult>;
16
+ export interface ReduxGetStateOptions {
17
+ storeIndex?: number;
18
+ path?: string;
19
+ device?: string;
20
+ }
21
+ export declare function reduxGetState(options?: ReduxGetStateOptions): Promise<ReduxResult>;
22
+ //# sourceMappingURL=redux.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redux.d.ts","sourceRoot":"","sources":["../../src/core/redux.ts"],"names":[],"mappings":"AAwCA,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AA6BD,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CA0BvF;AAED,MAAM,WAAW,oBAAoB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuB5F"}
@@ -0,0 +1,116 @@
1
+ import { executeInApp } from "./executor.js";
2
+ const FIBER_WALK = `
3
+ var hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
4
+ if (!hook || !hook.renderers || !hook.getFiberRoots) {
5
+ return JSON.stringify({ ok: false, error: 'React DevTools hook not available — app must be run in dev mode with React Native renderer registered.' });
6
+ }
7
+ function isStore(v) {
8
+ return !!v && typeof v === 'object' && typeof v.dispatch === 'function' && typeof v.getState === 'function' && typeof v.subscribe === 'function';
9
+ }
10
+ function displayName(t) {
11
+ if (!t) return undefined;
12
+ if (typeof t === 'string') return t;
13
+ return t.displayName || t.name;
14
+ }
15
+ var found = [];
16
+ function walk(f, d) {
17
+ if (!f || d > 1500 || found.length > 32) return;
18
+ if (displayName(f.type) === 'Provider' && f.memoizedProps && isStore(f.memoizedProps.store)) {
19
+ found.push(f.memoizedProps.store);
20
+ }
21
+ if (f.child) walk(f.child, d + 1);
22
+ if (f.sibling) walk(f.sibling, d);
23
+ }
24
+ var ids = [];
25
+ hook.renderers.forEach(function (_, k) { ids.push(k); });
26
+ for (var i = 0; i < ids.length; i++) {
27
+ var roots = hook.getFiberRoots(ids[i]);
28
+ if (!roots) continue;
29
+ roots.forEach(function (r) { walk(r.current, 0); });
30
+ }
31
+ if (found.length === 0) {
32
+ return JSON.stringify({ ok: false, error: 'No <Provider store> with a redux-shaped store found in the fiber tree.' });
33
+ }
34
+ `;
35
+ function buildExpression(body) {
36
+ return `(function(){ ${FIBER_WALK} ${body} })()`;
37
+ }
38
+ async function runReduxExpression(expression, originatingToolName, device) {
39
+ const exec = await executeInApp(expression, false, { timeoutMs: 15000, originatingToolName }, device);
40
+ if (!exec.success) {
41
+ return { success: false, error: exec.error || "Execution failed" };
42
+ }
43
+ const raw = exec.result;
44
+ if (typeof raw !== "string") {
45
+ return { success: false, error: `Unexpected result type from app: ${typeof raw}` };
46
+ }
47
+ let parsed;
48
+ try {
49
+ parsed = JSON.parse(raw);
50
+ }
51
+ catch (e) {
52
+ return { success: false, error: `Failed to parse app response: ${e.message}` };
53
+ }
54
+ if (!parsed.ok) {
55
+ return { success: false, error: parsed.error };
56
+ }
57
+ return {
58
+ success: true,
59
+ storeCount: parsed.storeCount,
60
+ storeIndex: parsed.storeIndex,
61
+ state: parsed.state,
62
+ previousAction: parsed.action,
63
+ };
64
+ }
65
+ export async function reduxDispatch(options) {
66
+ const { action, storeIndex = 0, returnPath, device } = options;
67
+ const actionJson = JSON.stringify(action);
68
+ const pathLiteral = returnPath ? JSON.stringify(returnPath) : "null";
69
+ const body = `
70
+ var idx = ${Number(storeIndex) || 0};
71
+ if (idx < 0 || idx >= found.length) {
72
+ return JSON.stringify({ ok: false, error: 'storeIndex ' + idx + ' out of range; ' + found.length + ' Provider store(s) found.', storeCount: found.length });
73
+ }
74
+ var store = found[idx];
75
+ var action = JSON.parse(${JSON.stringify(actionJson)});
76
+ store.dispatch(action);
77
+ var pathStr = ${pathLiteral};
78
+ var state;
79
+ if (pathStr) {
80
+ var slice = store.getState();
81
+ var parts = pathStr.split('.');
82
+ for (var i = 0; i < parts.length; i++) {
83
+ if (slice == null) break;
84
+ slice = slice[parts[i]];
85
+ }
86
+ try { state = JSON.parse(JSON.stringify(slice)); } catch (e) { state = { __error: 'state slice not JSON-serializable: ' + e.message }; }
87
+ }
88
+ return JSON.stringify({ ok: true, storeCount: found.length, storeIndex: idx, action: action, state: state });
89
+ `;
90
+ return runReduxExpression(buildExpression(body), "redux_dispatch", device);
91
+ }
92
+ export async function reduxGetState(options = {}) {
93
+ const { storeIndex = 0, path, device } = options;
94
+ const pathLiteral = path ? JSON.stringify(path) : "null";
95
+ const body = `
96
+ var idx = ${Number(storeIndex) || 0};
97
+ if (idx < 0 || idx >= found.length) {
98
+ return JSON.stringify({ ok: false, error: 'storeIndex ' + idx + ' out of range; ' + found.length + ' Provider store(s) found.', storeCount: found.length });
99
+ }
100
+ var store = found[idx];
101
+ var state = store.getState();
102
+ var pathStr = ${pathLiteral};
103
+ if (pathStr) {
104
+ var parts = pathStr.split('.');
105
+ for (var i = 0; i < parts.length; i++) {
106
+ if (state == null) break;
107
+ state = state[parts[i]];
108
+ }
109
+ }
110
+ var safe;
111
+ try { safe = JSON.parse(JSON.stringify(state)); } catch (e) { safe = { __error: 'state not JSON-serializable: ' + e.message }; }
112
+ return JSON.stringify({ ok: true, storeCount: found.length, storeIndex: idx, state: safe });
113
+ `;
114
+ return runReduxExpression(buildExpression(body), "redux_get_state", device);
115
+ }
116
+ //# sourceMappingURL=redux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redux.js","sourceRoot":"","sources":["../../src/core/redux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare const toolRegistry: Map<string, {
3
+ config: any;
4
+ handler: (args: any) => Promise<any>;
5
+ }>;
6
+ export declare function installToolRegistryInterceptor(server: McpServer): void;
7
+ export declare function registerToolWithTelemetry(server: McpServer, toolName: string, config: any, handler: (args: any) => Promise<any>, emptyResultDetector?: (result: any) => boolean): void;
8
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/core/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyCzE,eAAO,MAAM,YAAY;YAA6B,GAAG;aAAW,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;EAAK,CAAC;AAKrG,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAMtE;AAED,wBAAgB,yBAAyB,CACrC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACpC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,GAC/C,IAAI,CAgJN"}
@@ -0,0 +1,202 @@
1
+ import { getPostHogClient } from "./posthog.js";
2
+ import { getInstallationId, getServerVersion, getPackageName, categorizeError, trackToolInvocation, } from "./telemetry.js";
3
+ import { getTargetPlatform } from "./state.js";
4
+ import { UserInputError } from "./errors.js";
5
+ import { estimateImageTokens } from "./toolHelpers.js";
6
+ import { connectedApps, shouldShowFeedbackHint, markFeedbackHintShown, pushLogBox } from "./index.js";
7
+ // Tools that do NOT require an active Metro connection — excluded from feedback hint trigger
8
+ const NON_METRO_TOOLS = new Set([
9
+ "scan_metro",
10
+ "connect_metro",
11
+ "disconnect_metro",
12
+ "ensure_connection",
13
+ "get_connection_status",
14
+ "get_license_status",
15
+ "activate_license",
16
+ "delete_account",
17
+ "get_usage_guide",
18
+ "get_apps",
19
+ "list_ios_simulators",
20
+ "list_android_devices",
21
+ "ios_boot_simulator",
22
+ "ios_launch_app",
23
+ "android_launch_app",
24
+ "ios_install_app",
25
+ "android_install_app",
26
+ "send_feedback"
27
+ ]);
28
+ // Registry for dev meta-tool — stores handlers and configs for dynamic dispatch.
29
+ // Also exported so unit tests can enumerate every registered tool without booting
30
+ // the server. Populated by registerToolWithTelemetry AND by the server.registerTool
31
+ // interceptor installed below, so it captures every registration site.
32
+ /* eslint-disable @typescript-eslint/no-explicit-any */
33
+ export const toolRegistry = new Map();
34
+ // Interceptor: capture every direct server.registerTool call into toolRegistry so
35
+ // tests and the dev meta-tool see the full surface (including platform-native tools
36
+ // and the dev meta-tool itself that bypass registerToolWithTelemetry).
37
+ export function installToolRegistryInterceptor(server) {
38
+ const _originalRegisterTool = server.registerTool.bind(server);
39
+ server.registerTool = (name, config, handler) => {
40
+ toolRegistry.set(name, { config, handler });
41
+ return _originalRegisterTool(name, config, handler);
42
+ };
43
+ }
44
+ export function registerToolWithTelemetry(server, toolName, config, handler, emptyResultDetector) {
45
+ toolRegistry.set(toolName, { config, handler });
46
+ server.registerTool(toolName, config, async (args) => {
47
+ // Open-core: the local product is free and uncapped — no usage-limit gate.
48
+ // License validation still runs (identity + dormant billing channel for the
49
+ // future hosted tier) but never blocks a tool call. See decisions/open-core-strategy.md.
50
+ const startTime = Date.now();
51
+ let success = true;
52
+ let errorMessage;
53
+ let errorContext;
54
+ let inputTokens;
55
+ let outputTokens;
56
+ let emptyResult;
57
+ let meaningful;
58
+ let changeRate;
59
+ let tapStrategy;
60
+ let iosDriver;
61
+ let responsePreview;
62
+ let emptyReason;
63
+ let artifactKey;
64
+ let ocrClosestMatch;
65
+ let fiberPressableCount;
66
+ let accessibilityMatchCount;
67
+ let appRoute;
68
+ try {
69
+ inputTokens = Math.ceil(JSON.stringify(args).length / 4);
70
+ }
71
+ catch {
72
+ /* circular refs — leave undefined */
73
+ }
74
+ try {
75
+ const result = await handler(args);
76
+ // Check if result indicates an error
77
+ if (result?.isError) {
78
+ success = false;
79
+ // Prefer concise _errorMessage over full response text (which may be large JSON)
80
+ errorMessage = result._errorMessage || result.content?.[0]?.text || "Unknown error";
81
+ }
82
+ // Always propagate _errorContext when the tool provides it (e.g. tap predicate
83
+ // for unmeaningful outcomes where isError is false but we still want triage context).
84
+ if (result?._errorContext) {
85
+ errorContext = result._errorContext;
86
+ }
87
+ // Check for empty result (only on success, only if detector provided)
88
+ if (success && emptyResultDetector) {
89
+ try {
90
+ emptyResult = emptyResultDetector(result);
91
+ }
92
+ catch {
93
+ // Detector failure should never affect tool execution
94
+ }
95
+ }
96
+ // Extract meaningfulness data if provided (tap tool verification)
97
+ if (result?._meaningful !== undefined)
98
+ meaningful = result._meaningful;
99
+ if (result?._changeRate !== undefined)
100
+ changeRate = result._changeRate;
101
+ if (result?._tapStrategy)
102
+ tapStrategy = result._tapStrategy;
103
+ if (result?._iosDriver)
104
+ iosDriver = result._iosDriver;
105
+ if (result?._emptyReason)
106
+ emptyReason = result._emptyReason;
107
+ if (result?._artifactKey)
108
+ artifactKey = result._artifactKey;
109
+ if (result?._ocrClosestMatch)
110
+ ocrClosestMatch = result._ocrClosestMatch;
111
+ if (result?._fiberPressableCount)
112
+ fiberPressableCount = result._fiberPressableCount;
113
+ if (result?._accessibilityMatchCount)
114
+ accessibilityMatchCount = result._accessibilityMatchCount;
115
+ if (result?._appRoute)
116
+ appRoute = result._appRoute;
117
+ if (Array.isArray(result?.content)) {
118
+ let totalTokens = 0;
119
+ for (const item of result.content) {
120
+ if (item.type === "text" && typeof item.text === "string") {
121
+ totalTokens += Math.ceil(item.text.length / 4);
122
+ }
123
+ else if (item.type === "image" && typeof item.data === "string") {
124
+ totalTokens += estimateImageTokens(item.data);
125
+ }
126
+ }
127
+ if (totalTokens > 0)
128
+ outputTokens = totalTokens;
129
+ }
130
+ // Capture response text preview for local dev dashboard
131
+ if (Array.isArray(result?.content)) {
132
+ const textParts = result.content
133
+ .filter((item) => item.type === "text")
134
+ .map((item) => item.text);
135
+ if (textParts.length > 0) {
136
+ responsePreview = textParts.join("\n").substring(0, 2000);
137
+ }
138
+ }
139
+ // First-install feedback hint — fires once on first successful Metro-connected tool
140
+ if (!NON_METRO_TOOLS.has(toolName) && shouldShowFeedbackHint()) {
141
+ markFeedbackHintShown();
142
+ // Fire-and-forget — don't block the tool response
143
+ pushLogBox("Congratulations on your first tool call! If you encounter any issues or have ideas for improvement, ask your AI assistant to call send_feedback. Your feedback helps me make this product better for everyone. Best regards, ExecBro developer.", "warning", true, "logbox").catch(() => {
144
+ // Non-fatal — hint delivery failure should not affect tool execution
145
+ });
146
+ }
147
+ return result;
148
+ }
149
+ catch (error) {
150
+ success = false;
151
+ errorMessage = error instanceof Error ? error.message : String(error);
152
+ // H2 (Step 9): UserInputError marks agent-input mistakes (unknown
153
+ // device, missing predicate, ambiguous match). They flow through
154
+ // telemetry's trackToolInvocation in the finally block; we just
155
+ // skip the dedicated error-tracking pipe so the dashboard surfaces
156
+ // real product bugs rather than validation noise.
157
+ if (!(error instanceof UserInputError)) {
158
+ getPostHogClient()?.captureException(error, getInstallationId(), { tool: toolName, server_version: getServerVersion(), package_name: getPackageName() });
159
+ }
160
+ throw error;
161
+ }
162
+ finally {
163
+ const duration = Date.now() - startTime;
164
+ trackToolInvocation(toolName, success, duration, errorMessage, errorContext, inputTokens, outputTokens, getTargetPlatform(), emptyResult, meaningful, changeRate, tapStrategy, iosDriver, responsePreview, emptyReason, artifactKey, ocrClosestMatch, fiberPressableCount, accessibilityMatchCount, appRoute);
165
+ // Classify this invocation's platform kind so PostHog breakdowns can split RN vs Native.
166
+ // RN: any connected app has appDetection. Native: tool name prefixed ios_/android_. Else: null.
167
+ let platformKind = null;
168
+ for (const app of connectedApps.values()) {
169
+ if (app.appDetection) {
170
+ platformKind = "rn";
171
+ break;
172
+ }
173
+ }
174
+ if (!platformKind) {
175
+ if (toolName.startsWith("ios_") || toolName.startsWith("android_"))
176
+ platformKind = "native";
177
+ }
178
+ getPostHogClient()?.capture({
179
+ distinctId: getInstallationId(),
180
+ event: toolName,
181
+ properties: {
182
+ success,
183
+ duration,
184
+ server_version: getServerVersion(),
185
+ package_name: getPackageName(),
186
+ ...(errorMessage && { error: errorMessage.substring(0, 200) }),
187
+ ...(errorMessage && { error_category: categorizeError(errorMessage) }),
188
+ ...(getTargetPlatform() && { platform: getTargetPlatform() }),
189
+ ...(platformKind && { platform_kind: platformKind }),
190
+ ...(tapStrategy && { tap_strategy: tapStrategy }),
191
+ ...(meaningful !== undefined && { meaningful }),
192
+ ...(changeRate !== undefined && { change_rate: changeRate }),
193
+ ...(iosDriver && { ios_driver: iosDriver }),
194
+ ...(emptyResult !== undefined && { empty_result: emptyResult }),
195
+ ...(emptyReason && { empty_reason: emptyReason }),
196
+ },
197
+ });
198
+ }
199
+ });
200
+ }
201
+ /* eslint-enable @typescript-eslint/no-explicit-any */
202
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/core/register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Best-effort fiber walk that probes for the seven curated RN modules
3
+ * by shape signature. Hermes does not expose closure-captured variables,
4
+ * so this fallback almost always sets globalThis.__rn__ = null. Apps that
5
+ * install react-native-ai-devtools-sdk get the namespace populated directly
6
+ * via the SDK's exposeRnGlobals() — that's the preferred path. This walk
7
+ * is here so list_debug_globals can report the failure clearly.
8
+ */
9
+ export declare function buildRnGlobalsBootstrapExpression(): string;
10
+ /**
11
+ * Run the bootstrap once per app session. Failures are swallowed (the marker
12
+ * on globalThis is enough for list_debug_globals). Uses skipBootstrap: true
13
+ * on the inner executeInApp call to prevent infinite recursion.
14
+ */
15
+ export declare function ensureRnGlobalsBootstrap(device?: string): Promise<void>;
16
+ //# sourceMappingURL=rnGlobalsBootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rnGlobalsBootstrap.d.ts","sourceRoot":"","sources":["../../src/core/rnGlobalsBootstrap.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAwE1D;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B7E"}
@@ -0,0 +1,116 @@
1
+ import { executeInApp } from "./jsExecute.js";
2
+ import { bootstrappedApps, connectedApps } from "./state.js";
3
+ /**
4
+ * Best-effort fiber walk that probes for the seven curated RN modules
5
+ * by shape signature. Hermes does not expose closure-captured variables,
6
+ * so this fallback almost always sets globalThis.__rn__ = null. Apps that
7
+ * install react-native-ai-devtools-sdk get the namespace populated directly
8
+ * via the SDK's exposeRnGlobals() — that's the preferred path. This walk
9
+ * is here so list_debug_globals can report the failure clearly.
10
+ */
11
+ export function buildRnGlobalsBootstrapExpression() {
12
+ // Hermes-compatible IIFE: scans every fiber's memoizedProps / stateNode /
13
+ // memoizedState for objects whose own keys match one of the curated
14
+ // module signatures. Stops on first match per module.
15
+ return `(() => {
16
+ try {
17
+ // SDK fast path: if react-native-ai-devtools-sdk's exposeRnGlobals()
18
+ // already populated __rn__, don't run the fiber walk and don't clobber it.
19
+ const existing = globalThis.__rn__;
20
+ if (existing && typeof existing === "object") {
21
+ const existingKeys = Object.keys(existing);
22
+ if (existingKeys.length > 0) {
23
+ return { ok: true, keys: existingKeys, reason: "sdk-populated" };
24
+ }
25
+ }
26
+ const hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
27
+ if (!hook || typeof hook.getFiberRoots !== "function") {
28
+ globalThis.__rn__ = null;
29
+ globalThis.__rn__bootstrap_failed = true;
30
+ return { ok: false, reason: "no devtools hook" };
31
+ }
32
+ const found = {};
33
+ const isObj = (v) => v && typeof v === "object";
34
+ const has = (v, k) => isObj(v) && Object.prototype.hasOwnProperty.call(v, k);
35
+ const isFn = (v, k) => has(v, k) && typeof v[k] === "function";
36
+ const matchers = [
37
+ ["I18nManager", (v) => isObj(v) && typeof v.isRTL === "boolean"],
38
+ ["PixelRatio", (v) => isFn(v, "getFontScale")],
39
+ ["Platform", (v) => isObj(v) && typeof v.OS === "string"],
40
+ ["StyleSheet", (v) => isFn(v, "flatten") && isFn(v, "create")],
41
+ ["AppRegistry", (v) => isFn(v, "registerComponent") || isFn(v, "getAppKeys")],
42
+ ["NativeModules", (v) => isObj(v) && (has(v, "PlatformConstants") || has(v, "UIManager"))],
43
+ ["Dimensions", (v) => isFn(v, "get") && isFn(v, "set")],
44
+ ];
45
+ const probe = (v) => {
46
+ if (!isObj(v)) return;
47
+ for (let i = 0; i < matchers.length; i++) {
48
+ const [name, test] = matchers[i];
49
+ if (!found[name] && test(v)) found[name] = v;
50
+ }
51
+ };
52
+ const seen = new WeakSet();
53
+ const visit = (fiber, depth) => {
54
+ if (!fiber || depth > 200) return;
55
+ if (seen.has(fiber)) return;
56
+ seen.add(fiber);
57
+ probe(fiber.memoizedProps);
58
+ probe(fiber.stateNode);
59
+ probe(fiber.memoizedState);
60
+ if (fiber.child) visit(fiber.child, depth + 1);
61
+ if (fiber.sibling) visit(fiber.sibling, depth + 1);
62
+ };
63
+ const roots = hook.getFiberRoots(1) || hook.getFiberRoots(0);
64
+ if (roots && roots.forEach) {
65
+ roots.forEach((root) => {
66
+ if (root && root.current) visit(root.current, 0);
67
+ });
68
+ }
69
+ const keys = Object.keys(found);
70
+ if (keys.length === 0) {
71
+ globalThis.__rn__ = null;
72
+ globalThis.__rn__bootstrap_failed = true;
73
+ return { ok: false, reason: "no fiber matched" };
74
+ }
75
+ globalThis.__rn__ = found;
76
+ return { ok: true, keys: keys };
77
+ } catch (e) {
78
+ globalThis.__rn__ = null;
79
+ globalThis.__rn__bootstrap_failed = true;
80
+ return { ok: false, reason: String(e) };
81
+ }
82
+ })()`;
83
+ }
84
+ /**
85
+ * Run the bootstrap once per app session. Failures are swallowed (the marker
86
+ * on globalThis is enough for list_debug_globals). Uses skipBootstrap: true
87
+ * on the inner executeInApp call to prevent infinite recursion.
88
+ */
89
+ export async function ensureRnGlobalsBootstrap(device) {
90
+ let key;
91
+ if (device) {
92
+ key = device;
93
+ }
94
+ else {
95
+ const firstKey = connectedApps.keys().next().value;
96
+ if (!firstKey)
97
+ return;
98
+ key = firstKey;
99
+ }
100
+ if (bootstrappedApps.has(key))
101
+ return;
102
+ bootstrappedApps.add(key);
103
+ try {
104
+ // Cap at 1500ms — the bootstrap is a fiber walk that completes in <100ms
105
+ // on a healthy device. Without this cap the default 10s timeoutMs would
106
+ // dominate the parent call's latency budget when the JS context is hung,
107
+ // making the user's outer timeoutMs misleading. Bootstrap failure is a
108
+ // best-effort no-op (the try/catch leaves __rn__ null), so a tight cap
109
+ // is safe.
110
+ await executeInApp(buildRnGlobalsBootstrapExpression(), false, { maxRetries: 0, autoReconnect: false, skipBootstrap: true, timeoutMs: 1500 }, device);
111
+ }
112
+ catch (e) {
113
+ console.error("[execbro] __rn__ bootstrap failed:", e);
114
+ }
115
+ }
116
+ //# sourceMappingURL=rnGlobalsBootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rnGlobalsBootstrap.js","sourceRoot":"","sources":["../../src/core/rnGlobalsBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC;IAC7C,0EAA0E;IAC1E,oEAAoE;IACpE,sDAAsD;IACtD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAmEF,CAAC;AACV,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAAe;IAC1D,IAAI,GAAW,CAAC;IAChB,IAAI,MAAM,EAAE,CAAC;QACT,GAAG,GAAG,MAAM,CAAC;IACjB,CAAC;SAAM,CAAC;QACJ,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACnD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,GAAG,GAAG,QAAQ,CAAC;IACnB,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IACtC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC;QACD,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,uEAAuE;QACvE,WAAW;QACX,MAAM,YAAY,CACd,iCAAiC,EAAE,EACnC,KAAK,EACL,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAC7E,MAAM,CACT,CAAC;IACN,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;AACL,CAAC"}