react-native-ai-devtools 2.18.1 → 2.20.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 (249) hide show
  1. package/README.md +1 -0
  2. package/build/__tests__/unit/actionLog.test.d.ts +2 -0
  3. package/build/__tests__/unit/actionLog.test.d.ts.map +1 -0
  4. package/build/__tests__/unit/actionLog.test.js +116 -0
  5. package/build/__tests__/unit/actionLog.test.js.map +1 -0
  6. package/build/__tests__/unit/actionOutcome.test.d.ts +2 -0
  7. package/build/__tests__/unit/actionOutcome.test.d.ts.map +1 -0
  8. package/build/__tests__/unit/actionOutcome.test.js +166 -0
  9. package/build/__tests__/unit/actionOutcome.test.js.map +1 -0
  10. package/build/__tests__/unit/actionOutcomeCollect.test.d.ts +2 -0
  11. package/build/__tests__/unit/actionOutcomeCollect.test.d.ts.map +1 -0
  12. package/build/__tests__/unit/actionOutcomeCollect.test.js +110 -0
  13. package/build/__tests__/unit/actionOutcomeCollect.test.js.map +1 -0
  14. package/build/__tests__/unit/actionRender.test.d.ts +2 -0
  15. package/build/__tests__/unit/actionRender.test.d.ts.map +1 -0
  16. package/build/__tests__/unit/actionRender.test.js +163 -0
  17. package/build/__tests__/unit/actionRender.test.js.map +1 -0
  18. package/build/__tests__/unit/blankFrame.test.d.ts +2 -0
  19. package/build/__tests__/unit/blankFrame.test.d.ts.map +1 -0
  20. package/build/__tests__/unit/blankFrame.test.js +23 -0
  21. package/build/__tests__/unit/blankFrame.test.js.map +1 -0
  22. package/build/__tests__/unit/chromiumNavigation.test.d.ts +2 -0
  23. package/build/__tests__/unit/chromiumNavigation.test.d.ts.map +1 -0
  24. package/build/__tests__/unit/chromiumNavigation.test.js +36 -0
  25. package/build/__tests__/unit/chromiumNavigation.test.js.map +1 -0
  26. package/build/__tests__/unit/commitRecorder.test.d.ts +2 -0
  27. package/build/__tests__/unit/commitRecorder.test.d.ts.map +1 -0
  28. package/build/__tests__/unit/commitRecorder.test.js +141 -0
  29. package/build/__tests__/unit/commitRecorder.test.js.map +1 -0
  30. package/build/__tests__/unit/commitRecorderInjected.test.d.ts +2 -0
  31. package/build/__tests__/unit/commitRecorderInjected.test.d.ts.map +1 -0
  32. package/build/__tests__/unit/commitRecorderInjected.test.js +195 -0
  33. package/build/__tests__/unit/commitRecorderInjected.test.js.map +1 -0
  34. package/build/__tests__/unit/compactImageSrc.test.d.ts +2 -0
  35. package/build/__tests__/unit/compactImageSrc.test.d.ts.map +1 -0
  36. package/build/__tests__/unit/compactImageSrc.test.js +11 -0
  37. package/build/__tests__/unit/compactImageSrc.test.js.map +1 -0
  38. package/build/__tests__/unit/epochStarts.test.d.ts +2 -0
  39. package/build/__tests__/unit/epochStarts.test.d.ts.map +1 -0
  40. package/build/__tests__/unit/epochStarts.test.js +35 -0
  41. package/build/__tests__/unit/epochStarts.test.js.map +1 -0
  42. package/build/__tests__/unit/launchRecordsDevice.test.d.ts +2 -0
  43. package/build/__tests__/unit/launchRecordsDevice.test.d.ts.map +1 -0
  44. package/build/__tests__/unit/launchRecordsDevice.test.js +37 -0
  45. package/build/__tests__/unit/launchRecordsDevice.test.js.map +1 -0
  46. package/build/__tests__/unit/logOwnership.test.js +6 -6
  47. package/build/__tests__/unit/logOwnership.test.js.map +1 -1
  48. package/build/__tests__/unit/logSourceIos.test.js +2 -2
  49. package/build/__tests__/unit/logSourceIos.test.js.map +1 -1
  50. package/build/__tests__/unit/nativeLogs.test.js +10 -10
  51. package/build/__tests__/unit/nativeLogs.test.js.map +1 -1
  52. package/build/__tests__/unit/networkIdle.test.d.ts +2 -0
  53. package/build/__tests__/unit/networkIdle.test.d.ts.map +1 -0
  54. package/build/__tests__/unit/networkIdle.test.js +65 -0
  55. package/build/__tests__/unit/networkIdle.test.js.map +1 -0
  56. package/build/__tests__/unit/networkNotable.test.d.ts +2 -0
  57. package/build/__tests__/unit/networkNotable.test.d.ts.map +1 -0
  58. package/build/__tests__/unit/networkNotable.test.js +56 -0
  59. package/build/__tests__/unit/networkNotable.test.js.map +1 -0
  60. package/build/__tests__/unit/pressabilityAudit.test.js +16 -1
  61. package/build/__tests__/unit/pressabilityAudit.test.js.map +1 -1
  62. package/build/__tests__/unit/redact.test.js +2 -2
  63. package/build/__tests__/unit/redact.test.js.map +1 -1
  64. package/build/__tests__/unit/scrollClip.test.d.ts +2 -0
  65. package/build/__tests__/unit/scrollClip.test.d.ts.map +1 -0
  66. package/build/__tests__/unit/scrollClip.test.js +45 -0
  67. package/build/__tests__/unit/scrollClip.test.js.map +1 -0
  68. package/build/__tests__/unit/secureValue.test.d.ts +2 -0
  69. package/build/__tests__/unit/secureValue.test.d.ts.map +1 -0
  70. package/build/__tests__/unit/secureValue.test.js +51 -0
  71. package/build/__tests__/unit/secureValue.test.js.map +1 -0
  72. package/build/__tests__/unit/sessionOnce.test.d.ts +2 -0
  73. package/build/__tests__/unit/sessionOnce.test.d.ts.map +1 -0
  74. package/build/__tests__/unit/sessionOnce.test.js +17 -0
  75. package/build/__tests__/unit/sessionOnce.test.js.map +1 -0
  76. package/build/__tests__/unit/swipeProbeWithoutRn.test.js +28 -1
  77. package/build/__tests__/unit/swipeProbeWithoutRn.test.js.map +1 -1
  78. package/build/__tests__/unit/tap.test.js +1 -1
  79. package/build/__tests__/unit/tap.test.js.map +1 -1
  80. package/build/__tests__/unit/tapNativeScreenshot.test.d.ts +2 -0
  81. package/build/__tests__/unit/tapNativeScreenshot.test.d.ts.map +1 -0
  82. package/build/__tests__/unit/tapNativeScreenshot.test.js +99 -0
  83. package/build/__tests__/unit/tapNativeScreenshot.test.js.map +1 -0
  84. package/build/__tests__/unit/textSnapshot.test.d.ts +2 -0
  85. package/build/__tests__/unit/textSnapshot.test.d.ts.map +1 -0
  86. package/build/__tests__/unit/textSnapshot.test.js +49 -0
  87. package/build/__tests__/unit/textSnapshot.test.js.map +1 -0
  88. package/build/__tests__/unit/timeline.test.d.ts +2 -0
  89. package/build/__tests__/unit/timeline.test.d.ts.map +1 -0
  90. package/build/__tests__/unit/timeline.test.js +157 -0
  91. package/build/__tests__/unit/timeline.test.js.map +1 -0
  92. package/build/__tests__/unit/timelineReadBounds.test.d.ts +2 -0
  93. package/build/__tests__/unit/timelineReadBounds.test.d.ts.map +1 -0
  94. package/build/__tests__/unit/timelineReadBounds.test.js +21 -0
  95. package/build/__tests__/unit/timelineReadBounds.test.js.map +1 -0
  96. package/build/__tests__/unit/timelineSources.test.d.ts +2 -0
  97. package/build/__tests__/unit/timelineSources.test.d.ts.map +1 -0
  98. package/build/__tests__/unit/timelineSources.test.js +139 -0
  99. package/build/__tests__/unit/timelineSources.test.js.map +1 -0
  100. package/build/__tests__/unit/timelineTool.test.d.ts +2 -0
  101. package/build/__tests__/unit/timelineTool.test.d.ts.map +1 -0
  102. package/build/__tests__/unit/timelineTool.test.js +65 -0
  103. package/build/__tests__/unit/timelineTool.test.js.map +1 -0
  104. package/build/__tests__/unit/vaultTools.test.js +20 -6
  105. package/build/__tests__/unit/vaultTools.test.js.map +1 -1
  106. package/build/core/actionLog.d.ts +27 -0
  107. package/build/core/actionLog.d.ts.map +1 -0
  108. package/build/core/actionLog.js +144 -0
  109. package/build/core/actionLog.js.map +1 -0
  110. package/build/core/actionOutcome.d.ts +35 -0
  111. package/build/core/actionOutcome.d.ts.map +1 -0
  112. package/build/core/actionOutcome.js +184 -0
  113. package/build/core/actionOutcome.js.map +1 -0
  114. package/build/core/actionOutcomeCollect.d.ts +27 -0
  115. package/build/core/actionOutcomeCollect.d.ts.map +1 -0
  116. package/build/core/actionOutcomeCollect.js +102 -0
  117. package/build/core/actionOutcomeCollect.js.map +1 -0
  118. package/build/core/blankFrame.d.ts +3 -0
  119. package/build/core/blankFrame.d.ts.map +1 -0
  120. package/build/core/blankFrame.js +18 -0
  121. package/build/core/blankFrame.js.map +1 -0
  122. package/build/core/chromiumCapabilities.js +1 -1
  123. package/build/core/chromiumCapabilities.js.map +1 -1
  124. package/build/core/chromiumNavigation.d.ts +10 -0
  125. package/build/core/chromiumNavigation.d.ts.map +1 -0
  126. package/build/core/chromiumNavigation.js +31 -0
  127. package/build/core/chromiumNavigation.js.map +1 -0
  128. package/build/core/chromiumScreen.d.ts.map +1 -1
  129. package/build/core/chromiumScreen.js +6 -8
  130. package/build/core/chromiumScreen.js.map +1 -1
  131. package/build/core/commitRecorder.d.ts +35 -0
  132. package/build/core/commitRecorder.d.ts.map +1 -0
  133. package/build/core/commitRecorder.js +115 -0
  134. package/build/core/commitRecorder.js.map +1 -0
  135. package/build/core/componentSearch.d.ts.map +1 -1
  136. package/build/core/componentSearch.js +6 -1
  137. package/build/core/componentSearch.js.map +1 -1
  138. package/build/core/connection.d.ts.map +1 -1
  139. package/build/core/connection.js +13 -0
  140. package/build/core/connection.js.map +1 -1
  141. package/build/core/guides.d.ts.map +1 -1
  142. package/build/core/guides.js +14 -5
  143. package/build/core/guides.js.map +1 -1
  144. package/build/core/injected/commitRecorder.d.ts +2 -0
  145. package/build/core/injected/commitRecorder.d.ts.map +1 -0
  146. package/build/core/injected/commitRecorder.js +93 -0
  147. package/build/core/injected/commitRecorder.js.map +1 -0
  148. package/build/core/injected/scrollClip.d.ts +12 -0
  149. package/build/core/injected/scrollClip.d.ts.map +1 -0
  150. package/build/core/injected/scrollClip.js +46 -0
  151. package/build/core/injected/scrollClip.js.map +1 -0
  152. package/build/core/injected/secureValue.d.ts +3 -0
  153. package/build/core/injected/secureValue.d.ts.map +1 -0
  154. package/build/core/injected/secureValue.js +22 -0
  155. package/build/core/injected/secureValue.js.map +1 -0
  156. package/build/core/inputTarget.d.ts.map +1 -1
  157. package/build/core/inputTarget.js +3 -1
  158. package/build/core/inputTarget.js.map +1 -1
  159. package/build/core/inspector.d.ts.map +1 -1
  160. package/build/core/inspector.js +7 -2
  161. package/build/core/inspector.js.map +1 -1
  162. package/build/core/network.d.ts +1 -0
  163. package/build/core/network.d.ts.map +1 -1
  164. package/build/core/network.js +4 -1
  165. package/build/core/network.js.map +1 -1
  166. package/build/core/networkIdle.d.ts +21 -0
  167. package/build/core/networkIdle.d.ts.map +1 -0
  168. package/build/core/networkIdle.js +41 -0
  169. package/build/core/networkIdle.js.map +1 -0
  170. package/build/core/networkNotable.d.ts +3 -0
  171. package/build/core/networkNotable.d.ts.map +1 -0
  172. package/build/core/networkNotable.js +111 -0
  173. package/build/core/networkNotable.js.map +1 -0
  174. package/build/core/pressables.d.ts.map +1 -1
  175. package/build/core/pressables.js +7 -5
  176. package/build/core/pressables.js.map +1 -1
  177. package/build/core/register.d.ts.map +1 -1
  178. package/build/core/register.js +2 -0
  179. package/build/core/register.js.map +1 -1
  180. package/build/core/routeHistory.d.ts +3 -2
  181. package/build/core/routeHistory.d.ts.map +1 -1
  182. package/build/core/routeHistory.js +6 -6
  183. package/build/core/routeHistory.js.map +1 -1
  184. package/build/core/screenState.d.ts +5 -1
  185. package/build/core/screenState.d.ts.map +1 -1
  186. package/build/core/screenState.js +98 -19
  187. package/build/core/screenState.js.map +1 -1
  188. package/build/core/sessionOnce.d.ts +3 -0
  189. package/build/core/sessionOnce.d.ts.map +1 -0
  190. package/build/core/sessionOnce.js +11 -0
  191. package/build/core/sessionOnce.js.map +1 -0
  192. package/build/core/state.d.ts +4 -0
  193. package/build/core/state.d.ts.map +1 -1
  194. package/build/core/state.js +11 -0
  195. package/build/core/state.js.map +1 -1
  196. package/build/core/swipeDiagnosis.d.ts.map +1 -1
  197. package/build/core/swipeDiagnosis.js +25 -11
  198. package/build/core/swipeDiagnosis.js.map +1 -1
  199. package/build/core/textSnapshot.d.ts +6 -0
  200. package/build/core/textSnapshot.d.ts.map +1 -0
  201. package/build/core/textSnapshot.js +85 -0
  202. package/build/core/textSnapshot.js.map +1 -0
  203. package/build/core/timeline.d.ts +71 -0
  204. package/build/core/timeline.d.ts.map +1 -0
  205. package/build/core/timeline.js +156 -0
  206. package/build/core/timeline.js.map +1 -0
  207. package/build/core/timelineSources.d.ts +30 -0
  208. package/build/core/timelineSources.d.ts.map +1 -0
  209. package/build/core/timelineSources.js +179 -0
  210. package/build/core/timelineSources.js.map +1 -0
  211. package/build/core/toolHelpers.d.ts +1 -0
  212. package/build/core/toolHelpers.d.ts.map +1 -1
  213. package/build/core/toolHelpers.js +1 -1
  214. package/build/core/toolHelpers.js.map +1 -1
  215. package/build/index.d.ts.map +1 -1
  216. package/build/index.js +2 -0
  217. package/build/index.js.map +1 -1
  218. package/build/pro/actionRender.d.ts +40 -0
  219. package/build/pro/actionRender.d.ts.map +1 -0
  220. package/build/pro/actionRender.js +139 -0
  221. package/build/pro/actionRender.js.map +1 -0
  222. package/build/pro/tap.d.ts.map +1 -1
  223. package/build/pro/tap.js +2 -0
  224. package/build/pro/tap.js.map +1 -1
  225. package/build/tools/componentTools.d.ts.map +1 -1
  226. package/build/tools/componentTools.js +4 -3
  227. package/build/tools/componentTools.js.map +1 -1
  228. package/build/tools/deviceTools.d.ts +1 -0
  229. package/build/tools/deviceTools.d.ts.map +1 -1
  230. package/build/tools/deviceTools.js +18 -3
  231. package/build/tools/deviceTools.js.map +1 -1
  232. package/build/tools/interactionTools.d.ts.map +1 -1
  233. package/build/tools/interactionTools.js +53 -20
  234. package/build/tools/interactionTools.js.map +1 -1
  235. package/build/tools/metaTools.d.ts.map +1 -1
  236. package/build/tools/metaTools.js +15 -1
  237. package/build/tools/metaTools.js.map +1 -1
  238. package/build/tools/networkTools.d.ts.map +1 -1
  239. package/build/tools/networkTools.js +5 -1
  240. package/build/tools/networkTools.js.map +1 -1
  241. package/build/tools/screenshotTools.d.ts.map +1 -1
  242. package/build/tools/screenshotTools.js +58 -32
  243. package/build/tools/screenshotTools.js.map +1 -1
  244. package/build/tools/timelineTools.d.ts +3 -0
  245. package/build/tools/timelineTools.d.ts.map +1 -0
  246. package/build/tools/timelineTools.js +48 -0
  247. package/build/tools/timelineTools.js.map +1 -0
  248. package/package.json +1 -1
  249. package/tools.json +13 -2
@@ -10,6 +10,19 @@ import { chromiumAppFor } from "../core/connection.js";
10
10
  import { chromiumScreenState } from "../core/chromiumScreen.js";
11
11
  import { resolveDeviceTarget, formatResolverError } from "../core/deviceResolver.js";
12
12
  import { chromiumCapture } from "../core/chromium.js";
13
+ import { isNearUniform, BLANK_RETRY_MS } from "../core/blankFrame.js";
14
+ import { changedSinceLastShown } from "../core/sessionOnce.js";
15
+ const BLANK_FRAME_NOTE = "\nℹ️ The captured frame is blank (the app may not have painted yet). The element list below comes from the React tree, not from this image.";
16
+ async function retryBlankCapture(first, appConnected, capture) {
17
+ if (!appConnected || !first.success || !first.data || !(await isNearUniform(first.data))) {
18
+ return { result: first, blankNote: "" };
19
+ }
20
+ await new Promise((r) => setTimeout(r, BLANK_RETRY_MS));
21
+ const retry = await capture();
22
+ const result = retry.success && retry.data ? retry : first;
23
+ const stillBlank = !!result.data && (await isNearUniform(result.data));
24
+ return { result, blankNote: stillBlank ? BLANK_FRAME_NOTE : "" };
25
+ }
13
26
  async function capturePhysicalDevice(phys, outputPath) {
14
27
  const result = await physicalIosScreenshot(phys.udid, outputPath);
15
28
  if (!result.success || !result.data) {
@@ -64,7 +77,7 @@ async function iosScreenshotHandler({ outputPath, udid, device }) {
64
77
  const screenStatePromise = earlyTargetApp
65
78
  ? getScreenState({ device: earlyTargetApp.deviceInfo.deviceName }).catch(() => null)
66
79
  : Promise.resolve(null);
67
- const result = await capturePromise;
80
+ const { result, blankNote } = await retryBlankCapture(await capturePromise, !!earlyTargetApp, () => iosScreenshot(outputPath, targetUdid ?? undefined));
68
81
  if (!result.success) {
69
82
  return {
70
83
  content: [
@@ -167,6 +180,7 @@ async function iosScreenshotHandler({ outputPath, udid, device }) {
167
180
  else {
168
181
  infoText = `Screenshot captured (${pixelWidth}x${pixelHeight} pixels)`;
169
182
  }
183
+ infoText += blankNote;
170
184
  if (resolved.udid) {
171
185
  recordScreenMetrics(resolved.udid, {
172
186
  rawWidth: pixelWidth,
@@ -183,19 +197,24 @@ async function iosScreenshotHandler({ outputPath, udid, device }) {
183
197
  if (targetUdid) {
184
198
  infoText += `\n📸 Captured from: ${targetDeviceName ? `${targetDeviceName} ` : ""}(${targetUdid})`;
185
199
  }
186
- infoText += `\n📱 iOS screen: ${pointWidth}x${pointHeight} points (${scaleFactor}x scale)`;
187
- infoText += `\n📐 tap() handles pixel-to-point conversion automatically — pass pixel coords from this image directly`;
188
- infoText += `\n⚠️ Status bar + safe area: ${safeAreaTop} points (${safeAreaOffsetPixels} pixels) from top`;
200
+ const iosAdvice = `\n📱 iOS screen: ${pointWidth}x${pointHeight} points (${scaleFactor}x scale)` +
201
+ `\n📐 tap() handles pixel-to-point conversion automatically — pass pixel coords from this image directly` +
202
+ `\n⚠️ Status bar + safe area: ${safeAreaTop} points (${safeAreaOffsetPixels} pixels) from top`;
203
+ if (changedSinceLastShown(`shot-preamble:${targetUdid ?? "ios"}`, iosAdvice))
204
+ infoText += iosAdvice;
205
+ const showNextSteps = changedSinceLastShown("shot-next-steps", "1");
189
206
  if (pressablesText) {
190
207
  infoText += pressablesIsScreenState
191
208
  ? `\n\n🧭 Screen state (route + tappable elements, coordinates in screenshot pixels):\n`
192
209
  : `\n\n🎯 Pressable elements (ready-to-tap, coordinates in screenshot pixels):`;
193
210
  infoText += `\n${pressablesText}`;
194
- infoText += `\n\n💡 Next steps:`;
195
- infoText += `\n • tap(text="Button Label") — when text is exact and unique`;
196
- infoText += `\n • tap(testID="id") or tap(component="Name") — when you know the identifier`;
197
- infoText += `\n • tap(x=<px>, y=<px>) — use coordinates from the pressable elements list above (reliable for icons and ambiguous elements)`;
198
- infoText += `\n • get_screen_layout — full component tree when you need more than pressables`;
211
+ if (showNextSteps) {
212
+ infoText += `\n\n💡 Next steps:`;
213
+ infoText += `\n • tap(text="Button Label") — when text is exact and unique`;
214
+ infoText += `\n • tap(testID="id") or tap(component="Name") — when you know the identifier`;
215
+ infoText += `\n • tap(x=<px>, y=<px>) — use coordinates from the pressable elements list above (reliable for icons and ambiguous elements)`;
216
+ infoText += `\n • get_screen_layout — full component tree when you need more than pressables`;
217
+ }
199
218
  }
200
219
  else {
201
220
  if (!targetApp && connectedApps.size > 0) {
@@ -205,10 +224,12 @@ async function iosScreenshotHandler({ outputPath, udid, device }) {
205
224
  else if (connectedApps.size === 0) {
206
225
  infoText += `\n\nℹ️ No React Native app is connected, so there is no pressable list. If the app was just launched it may still be loading its bundle: ensure_connection({ waitMs: 60000 }) returns once it attaches.`;
207
226
  }
208
- infoText += `\n\n💡 Next steps:`;
209
- infoText += `\n • tap(text="Button Label") — tap element by visible text`;
210
- infoText += `\n • tap(x=<px>, y=<px>) — tap at coordinates from this screenshot`;
211
- infoText += `\n • get_screen_layout — get full UI tree with real on-screen positions`;
227
+ if (showNextSteps) {
228
+ infoText += `\n\n💡 Next steps:`;
229
+ infoText += `\n • tap(text="Button Label") — tap element by visible text`;
230
+ infoText += `\n • tap(x=<px>, y=<px>) — tap at coordinates from this screenshot`;
231
+ infoText += `\n • get_screen_layout — get full UI tree with real on-screen positions`;
232
+ }
212
233
  }
213
234
  if (targetApp) {
214
235
  try {
@@ -275,7 +296,7 @@ async function androidScreenshotHandler({ outputPath, deviceId: deviceIdArg, dev
275
296
  const screenStatePromise = androidTargetApp
276
297
  ? getScreenState({ device: androidTargetApp.deviceInfo.deviceName }).catch(() => null)
277
298
  : Promise.resolve(null);
278
- const result = await capturePromise;
299
+ const { result, blankNote } = await retryBlankCapture(await capturePromise, !!androidTargetApp, () => androidScreenshot(outputPath, resolved.serial));
279
300
  if (!result.success) {
280
301
  return {
281
302
  content: [
@@ -308,6 +329,7 @@ async function androidScreenshotHandler({ outputPath, deviceId: deviceIdArg, dev
308
329
  let infoText = result.scaleFactor && result.scaleFactor > 1
309
330
  ? `Screenshot: raw ${pixelWidth}x${pixelHeight} px → delivered ${androidDeliveredW}x${androidDeliveredH} px (downscaled ${(1 / result.scaleFactor).toFixed(3)}× to fit API limits). Pressable coordinates below are in delivered-image pixels.`
310
331
  : `Screenshot captured (${pixelWidth}x${pixelHeight} pixels)`;
332
+ infoText += blankNote;
311
333
  if (resolved.serial) {
312
334
  recordScreenMetrics(resolved.serial, {
313
335
  rawWidth: pixelWidth,
@@ -362,25 +384,27 @@ async function androidScreenshotHandler({ outputPath, deviceId: deviceIdArg, dev
362
384
  catch {
363
385
  }
364
386
  }
365
- infoText += `\n📱 Android uses PIXELS for all coordinates`;
366
- if (result.scaleFactor && result.scaleFactor > 1) {
367
- infoText += `\n📐 tap() handles coordinate conversion automatically — pass pixel coords from this image directly`;
368
- }
369
- else {
370
- infoText += `\n📐 Screenshot coords = tap coords (no conversion needed)`;
371
- }
372
- infoText += `\n⚠️ Status bar: ${statusBarPixels}px (${statusBarDp}dp) from top - app content starts below this`;
373
- infoText += `\n📊 Display density: ${densityDpi}dpi`;
387
+ const androidAdvice = `\n📱 Android uses PIXELS for all coordinates` +
388
+ (result.scaleFactor && result.scaleFactor > 1
389
+ ? `\n📐 tap() handles coordinate conversion automatically — pass pixel coords from this image directly`
390
+ : `\n📐 Screenshot coords = tap coords (no conversion needed)`) +
391
+ `\n⚠️ Status bar: ${statusBarPixels}px (${statusBarDp}dp) from top - app content starts below this` +
392
+ `\n📊 Display density: ${densityDpi}dpi`;
393
+ if (changedSinceLastShown(`shot-preamble:${resolved.serial ?? "android"}`, androidAdvice))
394
+ infoText += androidAdvice;
395
+ const showNextSteps = changedSinceLastShown("shot-next-steps", "1");
374
396
  if (pressablesText) {
375
397
  infoText += pressablesIsScreenState
376
398
  ? `\n\n🧭 Screen state (route + tappable elements, coordinates in screenshot pixels):\n`
377
399
  : `\n\n🎯 Pressable elements (ready-to-tap, coordinates in screenshot pixels):`;
378
400
  infoText += `\n${pressablesText}`;
379
- infoText += `\n\n💡 Next steps:`;
380
- infoText += `\n • tap(text="Button Label") — when text is exact and unique`;
381
- infoText += `\n • tap(testID="id") or tap(component="Name") — when you know the identifier`;
382
- infoText += `\n • tap(x=<px>, y=<px>) — use coordinates from the pressable elements list above (reliable for icons and ambiguous elements)`;
383
- infoText += `\n • get_screen_layout — full component tree when you need more than pressables`;
401
+ if (showNextSteps) {
402
+ infoText += `\n\n💡 Next steps:`;
403
+ infoText += `\n • tap(text="Button Label") — when text is exact and unique`;
404
+ infoText += `\n • tap(testID="id") or tap(component="Name") — when you know the identifier`;
405
+ infoText += `\n • tap(x=<px>, y=<px>) — use coordinates from the pressable elements list above (reliable for icons and ambiguous elements)`;
406
+ infoText += `\n • get_screen_layout — full component tree when you need more than pressables`;
407
+ }
384
408
  }
385
409
  else {
386
410
  if (!targetApp && connectedApps.size > 0) {
@@ -390,10 +414,12 @@ async function androidScreenshotHandler({ outputPath, deviceId: deviceIdArg, dev
390
414
  else if (connectedApps.size === 0) {
391
415
  infoText += `\n\nℹ️ No React Native app is connected, so there is no pressable list. If the app was just launched it may still be loading its bundle: ensure_connection({ waitMs: 60000 }) returns once it attaches.`;
392
416
  }
393
- infoText += `\n\n💡 Next steps:`;
394
- infoText += `\n • tap(text="Button Label") — tap element by visible text`;
395
- infoText += `\n • tap(x=<px>, y=<px>) — tap at coordinates from this screenshot`;
396
- infoText += `\n • get_screen_layout — get full UI tree with real on-screen positions`;
417
+ if (showNextSteps) {
418
+ infoText += `\n\n💡 Next steps:`;
419
+ infoText += `\n • tap(text="Button Label") — tap element by visible text`;
420
+ infoText += `\n • tap(x=<px>, y=<px>) — tap at coordinates from this screenshot`;
421
+ infoText += `\n • get_screen_layout — get full UI tree with real on-screen positions`;
422
+ }
397
423
  }
398
424
  if (targetApp) {
399
425
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"screenshotTools.js","sourceRoot":"","sources":["../../src/tools/screenshotTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screenshotTools.js","sourceRoot":"","sources":["../../src/tools/screenshotTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerTimelineTools(server: McpServer): void;
3
+ //# sourceMappingURL=timelineTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timelineTools.d.ts","sourceRoot":"","sources":["../../src/tools/timelineTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgD7D"}
@@ -0,0 +1,48 @@
1
+ import { z } from "zod";
2
+ import { registerToolWithTelemetry } from "../core/register.js";
3
+ import { lastAction } from "../core/actionLog.js";
4
+ import { resolveWindow, trimEvents, formatTimeline, TIMELINE_SOURCES } from "../core/timeline.js";
5
+ import { collectTimeline } from "../core/timelineSources.js";
6
+ import { DEVICE_ALL_DESC } from "./_deviceArg.js";
7
+ const DEFAULT_LIMIT = 100;
8
+ export function registerTimelineTools(server) {
9
+ registerToolWithTelemetry(server, "get_timeline", {
10
+ description: "What happened, in order: your own actions, screen changes, network requests, console logs, app restarts and Fast Refresh edits in one time-ordered list.\n" +
11
+ "PURPOSE: Answer \"what did that cause?\" in one call instead of lining up get_logs, get_network_requests and get_screen_state by hand.\n" +
12
+ "WHEN TO USE: Right after a tap, navigate, input_text, reload_app or execute_in_app, to see its consequences; or with since=\"-5m\" to reconstruct how the app got into its current state.\n" +
13
+ "WORKFLOW: tap(...) -> get_timeline() -> get_request_details / get_log_details on the ids it prints.\n" +
14
+ "LIMITATIONS: Events are merged by time, not linked by cause. Shows only what the server captured (actions made through these tools, not by hand). Route and refresh times on Android and physical devices are corrected by an estimated clock offset.\n" +
15
+ "GOOD: get_timeline() after a tap; get_timeline({ since: \"-2m\", sources: [\"routes\", \"network\"] })\n" +
16
+ "BAD: get_timeline({ since: \"-1h\", limit: 500 }) as a first look; start from the last action.\n",
17
+ inputSchema: {
18
+ since: z.union([z.number(), z.string()]).optional()
19
+ .describe('Window start: "last_action" (default), a relative time like "-30s" / "-5m" / "-1h", or epoch ms.'),
20
+ until: z.union([z.number(), z.string()]).optional()
21
+ .describe('Window end, same formats as since except "last_action". Default: now.'),
22
+ sources: z.array(z.enum(TIMELINE_SOURCES)).optional()
23
+ .describe("Subset of actions, routes, network, logs, restarts, refresh, perf. Default: all. Restarts are always shown. perf is reserved and returns nothing yet."),
24
+ limit: z.coerce.number().int().min(1).max(500).optional().default(DEFAULT_LIMIT)
25
+ .describe("Maximum events (default 100). Actions, routes, restarts and errors are kept first."),
26
+ device: z.string().optional().describe(DEVICE_ALL_DESC),
27
+ },
28
+ }, async ({ since, until, sources, limit, device }) => {
29
+ const window = resolveWindow({ since, until, now: Date.now(), lastAction: lastAction(device) });
30
+ const wanted = sources?.length ? sources : [...TIMELINE_SOURCES];
31
+ const collected = await collectTimeline({ device, sources: wanted, window });
32
+ if (wanted.every((s) => collected.unavailable.includes(s))) {
33
+ const text = `Timeline unavailable: ${collected.notes.join("; ")}`;
34
+ return { isError: true, content: [{ type: "text", text }], _errorMessage: text };
35
+ }
36
+ const { kept, dropped } = trimEvents(collected.events, limit ?? DEFAULT_LIMIT);
37
+ const notes = window.fallback
38
+ ? ["No action recorded yet, so this shows the last 60s. Pass since to choose a window.", ...collected.notes]
39
+ : collected.notes;
40
+ const deviceLabel = collected.devices.length === 1 ? collected.devices[0]
41
+ : collected.devices.length === 0 ? "no devices" : "all devices";
42
+ const text = formatTimeline({
43
+ window, deviceLabel, events: kept, tagDevices: collected.devices.length > 1, dropped, notes, checked: wanted.filter((s) => s !== "perf"),
44
+ });
45
+ return { content: [{ type: "text", text }], _emptyResult: kept.length === 0 };
46
+ });
47
+ }
48
+ //# sourceMappingURL=timelineTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timelineTools.js","sourceRoot":"","sources":["../../src/tools/timelineTools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-ai-devtools",
3
- "version": "2.18.1",
3
+ "version": "2.20.0",
4
4
  "mcpName": "com.execbro/execbro",
5
5
  "description": "React Native AI devtools: MCP server giving AI agents eyes and hands in your running app (logs, network, state inspection, tap, screenshot). Published as ExecBro.",
6
6
  "type": "module",
package/tools.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "generatedFrom": "toolRegistry",
3
- "count": 67,
3
+ "count": 68,
4
4
  "tools": [
5
5
  "activate_license",
6
6
  "android_key_event",
@@ -33,6 +33,7 @@
33
33
  "get_request_details",
34
34
  "get_screen_layout",
35
35
  "get_screen_state",
36
+ "get_timeline",
36
37
  "get_usage_guide",
37
38
  "handle_dialog",
38
39
  "http_request",
@@ -245,7 +246,15 @@
245
246
  "fullParams",
246
247
  "fullText",
247
248
  "includeHistory",
248
- "pressablesOnly"
249
+ "pressablesOnly",
250
+ "showPruned"
251
+ ],
252
+ "get_timeline": [
253
+ "device",
254
+ "limit",
255
+ "since",
256
+ "sources",
257
+ "until"
249
258
  ],
250
259
  "get_usage_guide": [
251
260
  "topic"
@@ -469,6 +478,7 @@
469
478
  "screenshot",
470
479
  "startX",
471
480
  "startY",
481
+ "verbose",
472
482
  "verify"
473
483
  ],
474
484
  "tap": [
@@ -483,6 +493,7 @@
483
493
  "strategy",
484
494
  "testID",
485
495
  "text",
496
+ "verbose",
486
497
  "verify",
487
498
  "x",
488
499
  "y"