execbro 1.10.24 → 1.11.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 (202) hide show
  1. package/README.md +1 -1
  2. package/build/__tests__/helpers/fake-cdp-server.d.ts +9 -0
  3. package/build/__tests__/helpers/fake-cdp-server.d.ts.map +1 -1
  4. package/build/__tests__/helpers/fake-cdp-server.js +20 -2
  5. package/build/__tests__/helpers/fake-cdp-server.js.map +1 -1
  6. package/build/__tests__/integration/connection-health.test.js +8 -1
  7. package/build/__tests__/integration/connection-health.test.js.map +1 -1
  8. package/build/__tests__/integration/native-logs.test.d.ts +2 -0
  9. package/build/__tests__/integration/native-logs.test.d.ts.map +1 -0
  10. package/build/__tests__/integration/native-logs.test.js +39 -0
  11. package/build/__tests__/integration/native-logs.test.js.map +1 -0
  12. package/build/__tests__/integration/socket-close-midflight.test.d.ts +2 -0
  13. package/build/__tests__/integration/socket-close-midflight.test.d.ts.map +1 -0
  14. package/build/__tests__/integration/socket-close-midflight.test.js +106 -0
  15. package/build/__tests__/integration/socket-close-midflight.test.js.map +1 -0
  16. package/build/__tests__/integration/stale-target-probe.test.d.ts +2 -0
  17. package/build/__tests__/integration/stale-target-probe.test.d.ts.map +1 -0
  18. package/build/__tests__/integration/stale-target-probe.test.js +85 -0
  19. package/build/__tests__/integration/stale-target-probe.test.js.map +1 -0
  20. package/build/__tests__/unit/clearLogsNative.test.d.ts +2 -0
  21. package/build/__tests__/unit/clearLogsNative.test.d.ts.map +1 -0
  22. package/build/__tests__/unit/clearLogsNative.test.js +43 -0
  23. package/build/__tests__/unit/clearLogsNative.test.js.map +1 -0
  24. package/build/__tests__/unit/componentFormatNaming.test.d.ts +2 -0
  25. package/build/__tests__/unit/componentFormatNaming.test.d.ts.map +1 -0
  26. package/build/__tests__/unit/componentFormatNaming.test.js +32 -0
  27. package/build/__tests__/unit/componentFormatNaming.test.js.map +1 -0
  28. package/build/__tests__/unit/deviceResolution.test.d.ts +2 -0
  29. package/build/__tests__/unit/deviceResolution.test.d.ts.map +1 -0
  30. package/build/__tests__/unit/deviceResolution.test.js +108 -0
  31. package/build/__tests__/unit/deviceResolution.test.js.map +1 -0
  32. package/build/__tests__/unit/executor.test.js +48 -12
  33. package/build/__tests__/unit/executor.test.js.map +1 -1
  34. package/build/__tests__/unit/getLogsEmptyContract.test.d.ts +2 -0
  35. package/build/__tests__/unit/getLogsEmptyContract.test.d.ts.map +1 -0
  36. package/build/__tests__/unit/getLogsEmptyContract.test.js +112 -0
  37. package/build/__tests__/unit/getLogsEmptyContract.test.js.map +1 -0
  38. package/build/__tests__/unit/getLogsNativeSource.test.d.ts +2 -0
  39. package/build/__tests__/unit/getLogsNativeSource.test.d.ts.map +1 -0
  40. package/build/__tests__/unit/getLogsNativeSource.test.js +138 -0
  41. package/build/__tests__/unit/getLogsNativeSource.test.js.map +1 -0
  42. package/build/__tests__/unit/jsLogEvents.test.d.ts +2 -0
  43. package/build/__tests__/unit/jsLogEvents.test.d.ts.map +1 -0
  44. package/build/__tests__/unit/jsLogEvents.test.js +58 -0
  45. package/build/__tests__/unit/jsLogEvents.test.js.map +1 -0
  46. package/build/__tests__/unit/logDiagnosis.test.d.ts +2 -0
  47. package/build/__tests__/unit/logDiagnosis.test.d.ts.map +1 -0
  48. package/build/__tests__/unit/logDiagnosis.test.js +81 -0
  49. package/build/__tests__/unit/logDiagnosis.test.js.map +1 -0
  50. package/build/__tests__/unit/logEventFormat.test.d.ts +2 -0
  51. package/build/__tests__/unit/logEventFormat.test.d.ts.map +1 -0
  52. package/build/__tests__/unit/logEventFormat.test.js +210 -0
  53. package/build/__tests__/unit/logEventFormat.test.js.map +1 -0
  54. package/build/__tests__/unit/logEvents.test.d.ts +2 -0
  55. package/build/__tests__/unit/logEvents.test.d.ts.map +1 -0
  56. package/build/__tests__/unit/logEvents.test.js +118 -0
  57. package/build/__tests__/unit/logEvents.test.js.map +1 -0
  58. package/build/__tests__/unit/logGrouping.test.d.ts +2 -0
  59. package/build/__tests__/unit/logGrouping.test.d.ts.map +1 -0
  60. package/build/__tests__/unit/logGrouping.test.js +104 -0
  61. package/build/__tests__/unit/logGrouping.test.js.map +1 -0
  62. package/build/__tests__/unit/logOwnership.test.d.ts +2 -0
  63. package/build/__tests__/unit/logOwnership.test.d.ts.map +1 -0
  64. package/build/__tests__/unit/logOwnership.test.js +118 -0
  65. package/build/__tests__/unit/logOwnership.test.js.map +1 -0
  66. package/build/__tests__/unit/logRelevance.test.d.ts +2 -0
  67. package/build/__tests__/unit/logRelevance.test.d.ts.map +1 -0
  68. package/build/__tests__/unit/logRelevance.test.js +30 -0
  69. package/build/__tests__/unit/logRelevance.test.js.map +1 -0
  70. package/build/__tests__/unit/logSourceAndroid.test.d.ts +2 -0
  71. package/build/__tests__/unit/logSourceAndroid.test.d.ts.map +1 -0
  72. package/build/__tests__/unit/logSourceAndroid.test.js +61 -0
  73. package/build/__tests__/unit/logSourceAndroid.test.js.map +1 -0
  74. package/build/__tests__/unit/logSourceIos.test.d.ts +2 -0
  75. package/build/__tests__/unit/logSourceIos.test.d.ts.map +1 -0
  76. package/build/__tests__/unit/logSourceIos.test.js +64 -0
  77. package/build/__tests__/unit/logSourceIos.test.js.map +1 -0
  78. package/build/__tests__/unit/logs.test.js +23 -0
  79. package/build/__tests__/unit/logs.test.js.map +1 -1
  80. package/build/__tests__/unit/nativeLogs.test.d.ts +2 -0
  81. package/build/__tests__/unit/nativeLogs.test.d.ts.map +1 -0
  82. package/build/__tests__/unit/nativeLogs.test.js +230 -0
  83. package/build/__tests__/unit/nativeLogs.test.js.map +1 -0
  84. package/build/__tests__/unit/pendingExecutions.test.d.ts +2 -0
  85. package/build/__tests__/unit/pendingExecutions.test.d.ts.map +1 -0
  86. package/build/__tests__/unit/pendingExecutions.test.js +70 -0
  87. package/build/__tests__/unit/pendingExecutions.test.js.map +1 -0
  88. package/build/__tests__/unit/reloadAppAutoConnect.test.d.ts +2 -0
  89. package/build/__tests__/unit/reloadAppAutoConnect.test.d.ts.map +1 -0
  90. package/build/__tests__/unit/reloadAppAutoConnect.test.js +63 -0
  91. package/build/__tests__/unit/reloadAppAutoConnect.test.js.map +1 -0
  92. package/build/__tests__/unit/toolsJson.test.js +11 -0
  93. package/build/__tests__/unit/toolsJson.test.js.map +1 -1
  94. package/build/__tests__/unit/transportClassify.test.js +108 -7
  95. package/build/__tests__/unit/transportClassify.test.js.map +1 -1
  96. package/build/core/componentSearch.d.ts +1 -1
  97. package/build/core/componentSearch.d.ts.map +1 -1
  98. package/build/core/componentSearch.js +8 -8
  99. package/build/core/componentSearch.js.map +1 -1
  100. package/build/core/componentTree.d.ts +1 -1
  101. package/build/core/componentTree.d.ts.map +1 -1
  102. package/build/core/componentTree.js +8 -8
  103. package/build/core/componentTree.js.map +1 -1
  104. package/build/core/connection.d.ts +30 -0
  105. package/build/core/connection.d.ts.map +1 -1
  106. package/build/core/connection.js +97 -28
  107. package/build/core/connection.js.map +1 -1
  108. package/build/core/debugGlobals.d.ts.map +1 -1
  109. package/build/core/debugGlobals.js +89 -32
  110. package/build/core/debugGlobals.js.map +1 -1
  111. package/build/core/errors.d.ts +7 -1
  112. package/build/core/errors.d.ts.map +1 -1
  113. package/build/core/errors.js +8 -1
  114. package/build/core/errors.js.map +1 -1
  115. package/build/core/guides.d.ts.map +1 -1
  116. package/build/core/guides.js +25 -0
  117. package/build/core/guides.js.map +1 -1
  118. package/build/core/index.d.ts +0 -2
  119. package/build/core/index.d.ts.map +1 -1
  120. package/build/core/index.js +0 -2
  121. package/build/core/index.js.map +1 -1
  122. package/build/core/jsExecute.d.ts +76 -1
  123. package/build/core/jsExecute.d.ts.map +1 -1
  124. package/build/core/jsExecute.js +193 -32
  125. package/build/core/jsExecute.js.map +1 -1
  126. package/build/core/jsLogEvents.d.ts +13 -0
  127. package/build/core/jsLogEvents.d.ts.map +1 -0
  128. package/build/core/jsLogEvents.js +65 -0
  129. package/build/core/jsLogEvents.js.map +1 -0
  130. package/build/core/logDiagnosis.d.ts +65 -0
  131. package/build/core/logDiagnosis.d.ts.map +1 -0
  132. package/build/core/logDiagnosis.js +51 -0
  133. package/build/core/logDiagnosis.js.map +1 -0
  134. package/build/core/logEventFormat.d.ts +14 -0
  135. package/build/core/logEventFormat.d.ts.map +1 -0
  136. package/build/core/logEventFormat.js +85 -0
  137. package/build/core/logEventFormat.js.map +1 -0
  138. package/build/core/logEvents.d.ts +115 -0
  139. package/build/core/logEvents.d.ts.map +1 -0
  140. package/build/core/logEvents.js +146 -0
  141. package/build/core/logEvents.js.map +1 -0
  142. package/build/core/logGrouping.d.ts +17 -0
  143. package/build/core/logGrouping.d.ts.map +1 -0
  144. package/build/core/logGrouping.js +134 -0
  145. package/build/core/logGrouping.js.map +1 -0
  146. package/build/core/logOwnership.d.ts +29 -0
  147. package/build/core/logOwnership.d.ts.map +1 -0
  148. package/build/core/logOwnership.js +83 -0
  149. package/build/core/logOwnership.js.map +1 -0
  150. package/build/core/logRelevance.d.ts +13 -0
  151. package/build/core/logRelevance.d.ts.map +1 -0
  152. package/build/core/logRelevance.js +23 -0
  153. package/build/core/logRelevance.js.map +1 -0
  154. package/build/core/logSourceAndroid.d.ts +27 -0
  155. package/build/core/logSourceAndroid.d.ts.map +1 -0
  156. package/build/core/logSourceAndroid.js +89 -0
  157. package/build/core/logSourceAndroid.js.map +1 -0
  158. package/build/core/logSourceIos.d.ts +26 -0
  159. package/build/core/logSourceIos.d.ts.map +1 -0
  160. package/build/core/logSourceIos.js +119 -0
  161. package/build/core/logSourceIos.js.map +1 -0
  162. package/build/core/logs.d.ts +5 -1
  163. package/build/core/logs.d.ts.map +1 -1
  164. package/build/core/logs.js +8 -1
  165. package/build/core/logs.js.map +1 -1
  166. package/build/core/nativeLogs.d.ts +75 -0
  167. package/build/core/nativeLogs.d.ts.map +1 -0
  168. package/build/core/nativeLogs.js +260 -0
  169. package/build/core/nativeLogs.js.map +1 -0
  170. package/build/core/register.d.ts.map +1 -1
  171. package/build/core/register.js +22 -6
  172. package/build/core/register.js.map +1 -1
  173. package/build/core/screenLayout.d.ts +1 -1
  174. package/build/core/screenLayout.d.ts.map +1 -1
  175. package/build/core/screenLayout.js +3 -3
  176. package/build/core/screenLayout.js.map +1 -1
  177. package/build/core/state.d.ts +10 -0
  178. package/build/core/state.d.ts.map +1 -1
  179. package/build/core/state.js +21 -0
  180. package/build/core/state.js.map +1 -1
  181. package/build/core/types.d.ts +11 -2
  182. package/build/core/types.d.ts.map +1 -1
  183. package/build/tools/componentTools.js +6 -6
  184. package/build/tools/componentTools.js.map +1 -1
  185. package/build/tools/connectionTools.d.ts.map +1 -1
  186. package/build/tools/connectionTools.js +7 -3
  187. package/build/tools/connectionTools.js.map +1 -1
  188. package/build/tools/executionTools.js +7 -7
  189. package/build/tools/executionTools.js.map +1 -1
  190. package/build/tools/logTools.d.ts +25 -0
  191. package/build/tools/logTools.d.ts.map +1 -1
  192. package/build/tools/logTools.js +316 -132
  193. package/build/tools/logTools.js.map +1 -1
  194. package/build/tools/networkTools.d.ts.map +1 -1
  195. package/build/tools/networkTools.js +65 -54
  196. package/build/tools/networkTools.js.map +1 -1
  197. package/package.json +5 -4
  198. package/tools.json +447 -0
  199. package/build/core/format.d.ts +0 -8
  200. package/build/core/format.d.ts.map +0 -1
  201. package/build/core/format.js +0 -34
  202. package/build/core/format.js.map +0 -1
@@ -5,6 +5,7 @@ import { getFirstConnectedApp, getConnectedAppByDevice, connectToDevice } from "
5
5
  import { fetchDevices, selectMainDevice, scanMetroPorts } from "./metro.js";
6
6
  import { cancelReconnectionTimer } from "./connectionState.js";
7
7
  import { trackAutoReconnect } from "./telemetry.js";
8
+ import { probeCdpAlive } from "./probe.js";
8
9
  // Hermes runtime compatibility: polyfill for 'global' which doesn't exist in Hermes
9
10
  // In Hermes, globalThis is the standard way to access global scope
10
11
  const GLOBAL_POLYFILL = `var global = typeof global !== 'undefined' ? global : globalThis;`;
@@ -91,21 +92,39 @@ export function validateAndPreprocessExpression(expression) {
91
92
  valid: false,
92
93
  expression: escaped,
93
94
  error: "require() is not available in Hermes Runtime.evaluate. " +
94
- "Modules cannot be imported at runtime. Only pre-existing global variables are accessible. " +
95
- "Use list_debug_globals to discover available globals, or add `globalThis.__MY_VAR__ = myModule;` in your app code."
95
+ "Modules cannot be imported at runtime. " +
96
+ "In a Metro dev build you can reach already-loaded modules through Metro's registry: " +
97
+ "`(function(){ var hit=null; __r.getModules().forEach(function(m,id){ " +
98
+ "if(!hit && m.verboseName && m.verboseName.indexOf('react-native/index.js') !== -1) hit=id; }); " +
99
+ "return __r(hit).Dimensions.get('window'); })()` " +
100
+ "(swap the verboseName match for the module you want). " +
101
+ "Otherwise use list_debug_globals to discover exposed globals, or add " +
102
+ "`globalThis.__MY_VAR__ = myModule;` in your app code."
96
103
  };
97
104
  }
98
105
  // Check for multi-statement expressions. Runtime.evaluate compiles input as
99
106
  // a single expression — `console.log('x'); 1+1` raises `')' expected at end
100
107
  // of parenthesized expression`. Internal callers wrap in (function(){...})()
101
108
  // so any `;` they use is at brace depth 1 and won't be flagged.
102
- if (hasTopLevelStatementSeparator(trimmed)) {
109
+ // executeWithManualAwait emits `var __v=(<expr>);`, so a depth-0 `;` breaks
110
+ // compilation. Rewrite into the IIFE ourselves instead of making the caller
111
+ // do it — this was the single largest execute_in_app failure class
112
+ // (125 events / 42 installations over 30d).
113
+ const wrapped = wrapMultiStatementInIife(trimmed);
114
+ if (wrapped) {
115
+ return { valid: true, expression: wrapped, rewritten: "iife-wrap" };
116
+ }
117
+ // More than one statement, but the last one can't yield a value — we can't
118
+ // synthesize a sensible `return`, so explain rather than guess.
119
+ if (splitTopLevelStatements(trimmed).length > 1) {
103
120
  return {
104
121
  valid: false,
105
122
  expression: escaped,
106
123
  error: "Multi-statement expressions are not supported by Hermes Runtime.evaluate " +
107
- "(compiles input as a single expression). " +
108
- "Wrap the body in an IIFE: `(function(){ stmt1; stmt2; return result; })()`."
124
+ "(compiles input as a single expression), and the final statement does not " +
125
+ "produce a value to return. " +
126
+ "Wrap the body in an IIFE with an explicit result: " +
127
+ "`(function(){ stmt1; stmt2; return result; })()`."
109
128
  };
110
129
  }
111
130
  return {
@@ -116,21 +135,19 @@ export function validateAndPreprocessExpression(expression) {
116
135
  function isIdentChar(c) {
117
136
  return c !== undefined && /[A-Za-z0-9_$]/.test(c);
118
137
  }
119
- // Detect top-level `await`, `async function`, `async (...) => ...`, or
120
- // `(async ...)` IIFE forms in `src`. Walks char-by-char tracking string,
138
+ // Detect a bare top-level `await` in `src`. Walks char-by-char tracking string,
121
139
  // template, comment, and bracket depth so we don't false-positive on
122
140
  // substrings inside strings, identifiers like `awaiting`, etc.
141
+ //
142
+ // NOTE: `async function`/`async () => {}`/`(async () => {})()` are deliberately
143
+ // NOT flagged. Hermes compiles them (they are expressions), the manual-await
144
+ // wrapper in executeWithManualAwait resolves the Promise they return, and
145
+ // telemetry showed this pre-flight rejecting ~20 legitimate calls/30d across 10
146
+ // installations. Verified on-device (iOS 26 sim, Hermes): an async arrow with an
147
+ // internal `await` evaluates correctly. Only a bare top-level `await` is a real
148
+ // syntax error, because the wrapper emits `var __v=(<expr>);` — a non-async
149
+ // context.
123
150
  function looksLikeTopLevelAwait(src) {
124
- // Cheap prefix checks for async-function / async-arrow / async-IIFE forms.
125
- // Whitespace-tolerant on `async <keyword>` / `async (`.
126
- const asyncPrefix = /^async\s*(?:function\b|\()/;
127
- if (asyncPrefix.test(src))
128
- return true;
129
- // `(async () => ...)()` or `(async(...)...)` — match `(async` followed by
130
- // a non-identifier char (so `(asyncFoo` doesn't trigger).
131
- const parenAsync = /^\(\s*async(?:\s|\()/;
132
- if (parenAsync.test(src))
133
- return true;
134
151
  // Depth-tracked scan for a standalone `await` token at depth 0.
135
152
  let i = 0;
136
153
  let parens = 0;
@@ -210,10 +227,40 @@ function looksLikeTopLevelAwait(src) {
210
227
  }
211
228
  return false;
212
229
  }
213
- // Walk `src` tracking string/template/comment and bracket depth. Returns true
214
- // iff a `;` appears at depth 0 with non-whitespace following it (i.e. it
215
- // separates two top-level statements rather than terminating a single one).
216
- function hasTopLevelStatementSeparator(src) {
230
+ // Statement forms that cannot be the final segment of an auto-wrapped IIFE,
231
+ // because prefixing them with `return` is either a syntax error or drops the
232
+ // value the caller wanted back. `return` itself is handled separately.
233
+ const NON_VALUE_STATEMENT_START = /^(?:if|for|while|do|switch|try|catch|finally|throw|var|let|const|function|class|debugger|break|continue|with|else)\b|^\{/;
234
+ /**
235
+ * Rewrite a multi-statement source into the IIFE that Hermes can compile,
236
+ * returning `null` when the rewrite would not be safe.
237
+ *
238
+ * `stmt1; stmt2; value` becomes `(function(){ stmt1; stmt2; return value; })()`.
239
+ * Bails out when the final segment cannot yield a value, so those callers still
240
+ * get the explanatory error rather than a silently broken transform.
241
+ */
242
+ export function wrapMultiStatementInIife(src) {
243
+ const segments = splitTopLevelStatements(src);
244
+ if (segments.length <= 1)
245
+ return null;
246
+ const last = segments[segments.length - 1];
247
+ if (NON_VALUE_STATEMENT_START.test(last))
248
+ return null;
249
+ const head = segments.slice(0, -1);
250
+ const body = last.startsWith("return") && !isIdentChar(last[6]) ? last : `return ${last}`;
251
+ return `(function(){ ${[...head, body].join("; ")}; })()`;
252
+ }
253
+ // Walk `src` tracking string/template/comment and bracket depth, splitting on
254
+ // `;` at depth 0. Returns the trimmed top-level statements; a trailing `;` that
255
+ // merely terminates the final statement produces no extra segment.
256
+ export function splitTopLevelStatements(src) {
257
+ const segments = [];
258
+ let segmentStart = 0;
259
+ const push = (end) => {
260
+ const seg = src.slice(segmentStart, end).trim();
261
+ if (seg.length > 0)
262
+ segments.push(seg);
263
+ };
217
264
  let i = 0;
218
265
  let parens = 0;
219
266
  let braces = 0;
@@ -224,14 +271,14 @@ function hasTopLevelStatementSeparator(src) {
224
271
  if (ch === "/" && next === "/") {
225
272
  const nl = src.indexOf("\n", i + 2);
226
273
  if (nl === -1)
227
- return false;
274
+ break;
228
275
  i = nl + 1;
229
276
  continue;
230
277
  }
231
278
  if (ch === "/" && next === "*") {
232
279
  const end = src.indexOf("*/", i + 2);
233
280
  if (end === -1)
234
- return false;
281
+ break;
235
282
  i = end + 2;
236
283
  continue;
237
284
  }
@@ -264,13 +311,13 @@ function hasTopLevelStatementSeparator(src) {
264
311
  else if (ch === "]")
265
312
  brackets--;
266
313
  else if (ch === ";" && parens === 0 && braces === 0 && brackets === 0) {
267
- const rest = src.slice(i + 1).trim();
268
- if (rest.length > 0)
269
- return true;
314
+ push(i);
315
+ segmentStart = i + 1;
270
316
  }
271
317
  i++;
272
318
  }
273
- return false;
319
+ push(src.length);
320
+ return segments;
274
321
  }
275
322
  // ============================================================================
276
323
  // Per-call timeoutMs: clamp + defaults
@@ -294,6 +341,84 @@ export function clampTimeoutMs(input) {
294
341
  }
295
342
  return { value: input };
296
343
  }
344
+ // How long to wait for the disambiguating probe on a ws=OPEN timeout. Matches
345
+ // PROBE_TIMEOUT_MS in connection.ts, which uses the same probe to reject stale
346
+ // CDP targets at connect time.
347
+ const STALE_TARGET_PROBE_TIMEOUT_MS = 1_500;
348
+ /**
349
+ * True for the one ambiguous failure shape: our own timer fired while the
350
+ * socket was still OPEN.
351
+ *
352
+ * Everything else is already decided. ws=CLOSED is transport (handled in
353
+ * classifyTransportError); a CDP-sourced error carries its own signal. This
354
+ * case alone can be either a genuinely slow expression or a stale CDP target
355
+ * that silently swallows evaluates while the device socket keeps ponging — and
356
+ * only a probe can tell them apart.
357
+ */
358
+ export function isEvalTimeoutOnLiveSocket(message, source) {
359
+ if (source !== "server-timer")
360
+ return false;
361
+ return /ws=OPEN/i.test(message);
362
+ }
363
+ /**
364
+ * Is our CDP page still listed by Metro?
365
+ *
366
+ * This is the signal that a JS-level probe cannot provide: it goes over Metro's
367
+ * HTTP /json, so a blocked JavaScript thread has no effect on the answer.
368
+ *
369
+ * Conservative on purpose — an empty list (Metro unreachable, momentary blip)
370
+ * or a missing id counts as "still there". A false "gone" costs a reconnect and
371
+ * a retry that RE-RUNS the caller's expression, which must never happen on a
372
+ * guess.
373
+ */
374
+ export async function isTargetStillAdvertised(app, fetchTargets = fetchDevices) {
375
+ const id = app.deviceInfo?.id;
376
+ if (!id)
377
+ return true;
378
+ const targets = await fetchTargets(app.port);
379
+ if (targets.length === 0)
380
+ return true;
381
+ return targets.some((t) => t.id === id);
382
+ }
383
+ /**
384
+ * classifyTransportError plus disambiguation for the one ambiguous shape: our
385
+ * timer fired while the socket was still OPEN.
386
+ *
387
+ * The transport was alive (the 1s ping/pong keepalive would have killed a dead
388
+ * socket within ~2s), so this is one of three things:
389
+ *
390
+ * 1. a genuinely slow ASYNC expression -> probe answers -> logical
391
+ * 2. a genuinely slow SYNC expression -> probe silent, but the
392
+ * (busy loop, big serialize) page is still listed -> logical
393
+ * 3. a stale CDP target (app reloaded -> probe silent AND the
394
+ * via shake / Metro 'r') page is gone -> transport
395
+ *
396
+ * Both signals are required for case 3. The probe alone cannot separate 2 from
397
+ * 3 — it is itself a Runtime.evaluate, so a blocked JS thread silences it
398
+ * exactly like a dead context. Verified on-device: a 15s busy loop silenced the
399
+ * probe and was misread as stale, triggering a reconnect that re-ran the
400
+ * expression. Metro's target list is independent of the JS thread and settles it.
401
+ *
402
+ * `probe` and `targetStillAdvertised` are injectable so the decision is
403
+ * testable without a socket or a Metro server.
404
+ */
405
+ export async function classifyWithLivenessProbe(message, source, app, probe = probeCdpAlive, targetStillAdvertised = isTargetStillAdvertised) {
406
+ const base = classifyTransportError(message, source);
407
+ if (base.kind === "transport")
408
+ return base;
409
+ if (!isEvalTimeoutOnLiveSocket(message, source))
410
+ return base;
411
+ if (!app)
412
+ return base;
413
+ const alive = await probe(app.ws, STALE_TARGET_PROBE_TIMEOUT_MS);
414
+ if (alive)
415
+ return base;
416
+ // Probe silent. Only a target that Metro no longer lists is truly stale;
417
+ // otherwise the JS thread is just busy and retrying would re-run the call.
418
+ if (await targetStillAdvertised(app))
419
+ return base;
420
+ return { kind: "transport", pattern: "stale_target" };
421
+ }
297
422
  /**
298
423
  * Classify an error message into transport-vs-logical for auto-reconnect routing.
299
424
  *
@@ -304,6 +429,17 @@ export function clampTimeoutMs(input) {
304
429
  export function classifyTransportError(message, source) {
305
430
  if (!message)
306
431
  return { kind: "logical" };
432
+ // A server-timer expiry is normally logical ("this expression is slow").
433
+ // But the timer snapshots ws state into the message, and a CLOSED socket
434
+ // means the call never had a live transport to answer it — that is a
435
+ // transport failure no matter which timer noticed. Checked before the
436
+ // server-timer bail-out, which otherwise swallowed it.
437
+ //
438
+ // Primarily a backstop: failPendingExecutionsForSocket now fails in-flight
439
+ // calls at close time, so most of these surface as "WebSocket connection is
440
+ // not open" instead. This covers the race where our timer fires first.
441
+ if (/ws=CLOSED/i.test(message))
442
+ return { kind: "transport", pattern: "ws_closed" };
307
443
  if (source === "server-timer")
308
444
  return { kind: "logical" };
309
445
  if (/No apps connected/i.test(message))
@@ -317,9 +453,14 @@ export function classifyTransportError(message, source) {
317
453
  if (/target closed/i.test(message) || /Inspector detached/i.test(message)) {
318
454
  return { kind: "transport", pattern: "target_closed" };
319
455
  }
320
- if (source === "cdp" && /Expression took too long to evaluate/i.test(message)) {
321
- return { kind: "transport", pattern: "cdp_eval_too_long" };
322
- }
456
+ // NOTE: there used to be a `cdp_eval_too_long` branch here for a CDP-side
457
+ // "Expression took too long to evaluate". It was unreachable: the only
458
+ // producer of that phrase is our own timer in executeCDP, whose message
459
+ // always starts with "Timeout: Expression took too long" and is therefore
460
+ // tagged `server-timer` and handled above. Telemetry agrees — 367 such
461
+ // events over 90 days, none of them lacking our "Connection state:" block.
462
+ // Retrying is also wrong here: the 1s ping/pong keepalive terminates dead
463
+ // sockets within ~2s, so a still-OPEN socket had a live transport all along.
323
464
  return { kind: "logical" };
324
465
  }
325
466
  // Error patterns that indicate a stale/destroyed context
@@ -401,6 +542,14 @@ function executeCDP(app, cleanedExpression, awaitPromise, timeoutMs) {
401
542
  const TIMEOUT_MS = timeoutMs;
402
543
  const currentMessageId = getNextMessageId();
403
544
  const wrappedExpression = `${GLOBAL_POLYFILL} ${cleanedExpression}`;
545
+ // Every send funnels through here, including executeWithManualAwait's poll
546
+ // loop — which re-enters between sleeps and so can start on a socket that
547
+ // died since the previous send. ws.send() on a CLOSED socket does not
548
+ // throw; it simply never gets a reply, so without this the call burns its
549
+ // full timeout and then reports a misleading "took too long".
550
+ if (app.ws.readyState !== WebSocket.OPEN) {
551
+ return Promise.resolve({ success: false, error: "WebSocket connection is not open." });
552
+ }
404
553
  return new Promise((resolve) => {
405
554
  const timeoutId = setTimeout(() => {
406
555
  pendingExecutions.delete(currentMessageId);
@@ -430,7 +579,9 @@ function executeCDP(app, cleanedExpression, awaitPromise, timeoutMs) {
430
579
  ].join("\n");
431
580
  resolve({ success: false, error: errorMessage });
432
581
  }, TIMEOUT_MS);
433
- pendingExecutions.set(currentMessageId, { resolve, timeoutId });
582
+ // Tag with the socket so a close event can fail this call immediately
583
+ // rather than letting it sit until TIMEOUT_MS.
584
+ pendingExecutions.set(currentMessageId, { resolve, timeoutId, ws: app.ws });
434
585
  try {
435
586
  app.ws.send(JSON.stringify({
436
587
  id: currentMessageId,
@@ -654,7 +805,17 @@ export async function executeInApp(expression, awaitPromise = true, options = {}
654
805
  const source = first.error?.startsWith("Timeout: Expression took too long")
655
806
  ? "server-timer"
656
807
  : "cdp";
657
- const classification = classifyTransportError(first.error ?? "", source);
808
+ // getConnectedAppByDevice throws when an explicit device name matches
809
+ // nothing; that failure is already reported via `first`, so fall back to
810
+ // "nothing to probe" rather than replacing the original error.
811
+ let probeApp = null;
812
+ try {
813
+ probeApp = getConnectedAppByDevice(device);
814
+ }
815
+ catch {
816
+ probeApp = null;
817
+ }
818
+ const classification = await classifyWithLivenessProbe(first.error ?? "", source, probeApp);
658
819
  if (classification.kind !== "transport") {
659
820
  trackAutoReconnect("not_needed", toolName);
660
821
  return withClampMeta(first);
@@ -1 +1 @@
1
- {"version":3,"file":"jsExecute.js","sourceRoot":"","sources":["../../src/core/jsExecute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsExecute.js","sourceRoot":"","sources":["../../src/core/jsExecute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { LogEntry } from "./types.js";
2
+ import type { LogEvent } from "./logEvents.js";
3
+ /**
4
+ * Derive events from console entries at READ time.
5
+ *
6
+ * The CDP ingest path is deliberately untouched — rewriting the hot path every
7
+ * user depends on, just to gain grouping, would be far riskier than deriving
8
+ * on read. `seq` (assigned in LogBuffer.add) is what keeps ids stable.
9
+ */
10
+ export declare function jsEventsFromEntries(entries: LogEntry[], deviceName: string): LogEvent[];
11
+ /** Scan every device buffer for the entry whose seq matches the id. */
12
+ export declare function findJsEvent(id: string): LogEvent | undefined;
13
+ //# sourceMappingURL=jsLogEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsLogEvents.d.ts","sourceRoot":"","sources":["../../src/core/jsLogEvents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAyB,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAoBlF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE,CA0BvF;AAED,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAS5D"}
@@ -0,0 +1,65 @@
1
+ import { createHash } from "node:crypto";
2
+ import { logBuffers } from "./state.js";
3
+ import { registerJsEventResolver } from "./logEvents.js";
4
+ const JS_FRAME = /^\s+at\s/;
5
+ const TITLE_MAX = 160;
6
+ function classify(entry) {
7
+ const lines = entry.message.split("\n");
8
+ const frames = lines.filter((l) => JS_FRAME.test(l)).length;
9
+ const isError = entry.level === "error" || entry.level === "fatal";
10
+ return { kind: isError && frames > 0 ? "exception" : "message", frames };
11
+ }
12
+ function titleFor(entry, frames) {
13
+ const head = entry.message.split("\n")[0];
14
+ const clipped = head.length > TITLE_MAX ? `${head.slice(0, TITLE_MAX)}…` : head;
15
+ return frames > 0 ? `${clipped} (${frames} frames)` : clipped;
16
+ }
17
+ /**
18
+ * Derive events from console entries at READ time.
19
+ *
20
+ * The CDP ingest path is deliberately untouched — rewriting the hot path every
21
+ * user depends on, just to gain grouping, would be far riskier than deriving
22
+ * on read. `seq` (assigned in LogBuffer.add) is what keeps ids stable.
23
+ */
24
+ export function jsEventsFromEntries(entries, deviceName) {
25
+ return entries.map((entry) => {
26
+ const { kind, frames } = classify(entry);
27
+ const line = {
28
+ ts: entry.timestamp,
29
+ level: entry.level,
30
+ pid: 0,
31
+ tag: "console",
32
+ message: entry.message,
33
+ raw: entry.message,
34
+ };
35
+ return {
36
+ id: `j${entry.seq}`,
37
+ source: "js",
38
+ deviceKey: deviceName,
39
+ deviceName,
40
+ ts: entry.timestamp,
41
+ level: entry.level,
42
+ kind,
43
+ title: titleFor(entry, frames),
44
+ lineCount: 1,
45
+ byteSize: entry.message.length,
46
+ fingerprint: createHash("sha1").update(`js|${entry.seq}`).digest("hex"),
47
+ lines: [line],
48
+ };
49
+ });
50
+ }
51
+ /** Scan every device buffer for the entry whose seq matches the id. */
52
+ export function findJsEvent(id) {
53
+ const digits = id.slice(1);
54
+ if (!/^\d+$/.test(digits))
55
+ return undefined;
56
+ const seq = Number(digits);
57
+ for (const [deviceName, buffer] of logBuffers.entries()) {
58
+ const hit = buffer.getAll().find((e) => e.seq === seq);
59
+ if (hit)
60
+ return jsEventsFromEntries([hit], deviceName)[0];
61
+ }
62
+ return undefined;
63
+ }
64
+ registerJsEventResolver(findJsEvent);
65
+ //# sourceMappingURL=jsLogEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsLogEvents.js","sourceRoot":"","sources":["../../src/core/jsLogEvents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import type { ConnectionCheckResult } from "./types.js";
2
+ import type { LogPipelineResult } from "./connection.js";
3
+ /**
4
+ * Why a log read came back with nothing.
5
+ *
6
+ * `no_logs_verified` vs `no_logs_unverified` is the important distinction:
7
+ * `checkAndEnsureConnection` can report `connected: true` straight from the
8
+ * passive socket state without touching the wire, so "the app printed nothing"
9
+ * is only a claim we can stand behind once `verifyLogPipeline` has proven the
10
+ * CDP console subscription is actually alive end to end. Everything else is
11
+ * an unproven guess and must be labelled as such — otherwise a dead pipeline
12
+ * is indistinguishable from a quiet app in telemetry.
13
+ */
14
+ export type EmptyLogReason = "disconnected" | "post_reconnect" | "pipeline_failed" | "pipeline_recovered" | "no_logs_verified" | "no_logs_unverified";
15
+ export interface LogDiagnosis {
16
+ reason: EmptyLogReason;
17
+ /** Human-readable warnings to append to the tool response. */
18
+ warning: string;
19
+ /** True when the pipeline was broken and recovery succeeded — caller should re-read the buffer. */
20
+ recovered: boolean;
21
+ }
22
+ /**
23
+ * Labels for the "connected, but nothing captured" verdict. Parameterised so
24
+ * each tool reports in its own vocabulary (`no_logs_*` vs `no_requests_*`)
25
+ * while sharing this logic.
26
+ */
27
+ export interface EmptyDiagnosisLabels {
28
+ /** Used only when a pipeline probe actually proved the capture path healthy. */
29
+ verified: string;
30
+ /** Used when no probe ran, or none exists for this data source. */
31
+ unverified: string;
32
+ }
33
+ export interface EmptyDiagnosisDeps<TApp> {
34
+ checkConnection: () => Promise<ConnectionCheckResult>;
35
+ labels: EmptyDiagnosisLabels;
36
+ /**
37
+ * The app whose pipeline to verify, or null/undefined when none can be
38
+ * resolved. Omit together with `verifyPipeline` for data sources that have
39
+ * no end-to-end probe — the verdict then stays `unverified`, which is the
40
+ * honest answer rather than a false clean bill of health.
41
+ */
42
+ resolveApp?: () => TApp | null | undefined;
43
+ verifyPipeline?: (app: TApp) => Promise<LogPipelineResult>;
44
+ }
45
+ export interface EmptyDiagnosis {
46
+ reason: string;
47
+ warning: string;
48
+ recovered: boolean;
49
+ }
50
+ export type LogDiagnosisDeps<TApp> = Omit<EmptyDiagnosisDeps<TApp>, "labels"> & {
51
+ resolveApp: () => TApp | null | undefined;
52
+ verifyPipeline: (app: TApp) => Promise<LogPipelineResult>;
53
+ };
54
+ /**
55
+ * Diagnose why a buffer read returned zero entries.
56
+ *
57
+ * Shared by every empty-result path in `get_logs` and the network tools
58
+ * (summary, SDK, and the plain buffer read) so that all of them report the
59
+ * same reason for the same underlying state.
60
+ */
61
+ export declare function diagnoseEmptyResult<TApp>(deps: EmptyDiagnosisDeps<TApp>): Promise<EmptyDiagnosis>;
62
+ export declare const LOG_EMPTY_LABELS: EmptyDiagnosisLabels;
63
+ /** `diagnoseEmptyResult` bound to the log vocabulary. */
64
+ export declare function diagnoseEmptyLogs<TApp>(deps: LogDiagnosisDeps<TApp>): Promise<LogDiagnosis>;
65
+ //# sourceMappingURL=logDiagnosis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logDiagnosis.d.ts","sourceRoot":"","sources":["../../src/core/logDiagnosis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GACpB,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,oBAAoB,CAAC;AAE3B,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,mGAAmG;IACnG,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB,CAAC,IAAI;IACpC,eAAe,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACtD,MAAM,EAAE,oBAAoB,CAAC;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC5E,UAAU,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC7D,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAmCvG;AAED,eAAO,MAAM,gBAAgB,EAAE,oBAG9B,CAAC;AAEF,yDAAyD;AACzD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAGjG"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Diagnose why a buffer read returned zero entries.
3
+ *
4
+ * Shared by every empty-result path in `get_logs` and the network tools
5
+ * (summary, SDK, and the plain buffer read) so that all of them report the
6
+ * same reason for the same underlying state.
7
+ */
8
+ export async function diagnoseEmptyResult(deps) {
9
+ const status = await deps.checkConnection();
10
+ let warning = status.message ? `\n\n${status.message}` : "";
11
+ if (!status.connected) {
12
+ return { reason: "disconnected", warning, recovered: false };
13
+ }
14
+ // Connected — but by the passive check, which proves nothing about the
15
+ // capture subscription. Start pessimistic and let the pipeline probe
16
+ // upgrade the verdict.
17
+ let reason = status.wasReconnected ? "post_reconnect" : deps.labels.unverified;
18
+ let recovered = false;
19
+ const app = deps.resolveApp?.();
20
+ if (app && deps.verifyPipeline) {
21
+ const pipeline = await deps.verifyPipeline(app);
22
+ if (pipeline.message) {
23
+ warning += `\n\n${pipeline.message}`;
24
+ }
25
+ if (!pipeline.ok) {
26
+ reason = "pipeline_failed";
27
+ }
28
+ else if (pipeline.recovered) {
29
+ reason = "pipeline_recovered";
30
+ recovered = true;
31
+ }
32
+ else if (reason === deps.labels.unverified) {
33
+ // Probe round-tripped: the pipeline is provably healthy, so an
34
+ // empty buffer really does mean the app produced nothing.
35
+ reason = deps.labels.verified;
36
+ }
37
+ // A healthy pipeline does not erase `post_reconnect` — the reconnect is
38
+ // still the reason earlier data is missing.
39
+ }
40
+ return { reason, warning, recovered };
41
+ }
42
+ export const LOG_EMPTY_LABELS = {
43
+ verified: "no_logs_verified",
44
+ unverified: "no_logs_unverified"
45
+ };
46
+ /** `diagnoseEmptyResult` bound to the log vocabulary. */
47
+ export async function diagnoseEmptyLogs(deps) {
48
+ const result = await diagnoseEmptyResult({ ...deps, labels: LOG_EMPTY_LABELS });
49
+ return { ...result, reason: result.reason };
50
+ }
51
+ //# sourceMappingURL=logDiagnosis.js.map