react-native-ai-debugger 1.6.8 → 1.6.10
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.
- package/README.md +13 -13
- package/build/core/appDetection.js +2 -2
- package/build/core/appDetection.js.map +1 -1
- package/build/core/bundle.js +6 -6
- package/build/core/bundle.js.map +1 -1
- package/build/core/connection.d.ts.map +1 -1
- package/build/core/connection.js +125 -30
- package/build/core/connection.js.map +1 -1
- package/build/core/executor.d.ts.map +1 -1
- package/build/core/executor.js +123 -24
- package/build/core/executor.js.map +1 -1
- package/build/core/fingerprint.js +1 -1
- package/build/core/fingerprint.js.map +1 -1
- package/build/core/guides.d.ts.map +1 -1
- package/build/core/guides.js +10 -3
- package/build/core/guides.js.map +1 -1
- package/build/core/logbox.js +1 -1
- package/build/core/logbox.js.map +1 -1
- package/build/core/networkInterceptor.d.ts.map +1 -1
- package/build/core/networkInterceptor.js +4 -0
- package/build/core/networkInterceptor.js.map +1 -1
- package/build/core/telemetry.js +1 -1
- package/build/core/telemetry.js.map +1 -1
- package/build/core/types.d.ts +2 -0
- package/build/core/types.d.ts.map +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +59 -27
- package/build/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ExecBro
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> Ships as the npm package `react-native-ai-devtools`.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Give your AI assistant eyes and hands into your running React Native app.** Like Chrome DevTools — but for AI agents.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
ExecBro is the runtime bridge that gives your AI coding assistant live access to your React Native app — logs, network, component state, screenshots, taps, and JS execution. One MCP server, zero-config, zero SDK required, zero code changes to your app.
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<img src="https://raw.githubusercontent.com/igorzheludkov/react-native-ai-devtools/main/docs/demo/get_logs_demo.gif" alt="
|
|
10
|
+
<img src="https://raw.githubusercontent.com/igorzheludkov/react-native-ai-devtools/main/docs/demo/get_logs_demo.gif" alt="ExecBro demo" width="800" />
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
13
|
## Get started
|
|
14
14
|
|
|
15
|
-
1. [Setup
|
|
15
|
+
1. [Setup ExecBro as an MCP server for your agent of choice](#claude-code-setup)
|
|
16
16
|
2. [Setup UI automation helpers](#ios-simulator--ui-automation-setup)
|
|
17
17
|
|
|
18
18
|
## Feedback & Feature Requests
|
|
@@ -63,13 +63,13 @@ No installation required - Claude Code uses `npx` to run the latest version auto
|
|
|
63
63
|
#### Global (all projects)
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
claude mcp add
|
|
66
|
+
claude mcp add execbro --scope user -- npx react-native-ai-devtools
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
#### Project-specific
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
claude mcp add
|
|
72
|
+
claude mcp add execbro --scope project -- npx react-native-ai-devtools
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
#### Manual Configuration
|
|
@@ -79,7 +79,7 @@ Add to `~/.claude.json` (user scope) or `.mcp.json` (project scope):
|
|
|
79
79
|
```json
|
|
80
80
|
{
|
|
81
81
|
"mcpServers": {
|
|
82
|
-
"
|
|
82
|
+
"execbro": {
|
|
83
83
|
"type": "stdio",
|
|
84
84
|
"command": "npx",
|
|
85
85
|
"args": ["react-native-ai-devtools"]
|
|
@@ -101,7 +101,7 @@ Requires VS Code 1.102+ with Copilot ([docs](https://code.visualstudio.com/docs/
|
|
|
101
101
|
```json
|
|
102
102
|
{
|
|
103
103
|
"servers": {
|
|
104
|
-
"
|
|
104
|
+
"execbro": {
|
|
105
105
|
"type": "stdio",
|
|
106
106
|
"command": "npx",
|
|
107
107
|
"args": ["-y", "react-native-ai-devtools"]
|
|
@@ -121,7 +121,7 @@ Requires VS Code 1.102+ with Copilot ([docs](https://code.visualstudio.com/docs/
|
|
|
121
121
|
```json
|
|
122
122
|
{
|
|
123
123
|
"mcpServers": {
|
|
124
|
-
"
|
|
124
|
+
"execbro": {
|
|
125
125
|
"command": "npx",
|
|
126
126
|
"args": ["-y", "react-native-ai-devtools"]
|
|
127
127
|
}
|
|
@@ -156,7 +156,7 @@ Add `env` to your MCP server configuration:
|
|
|
156
156
|
```json
|
|
157
157
|
{
|
|
158
158
|
"mcpServers": {
|
|
159
|
-
"
|
|
159
|
+
"execbro": {
|
|
160
160
|
"type": "stdio",
|
|
161
161
|
"command": "npx",
|
|
162
162
|
"args": ["react-native-ai-devtools"],
|
|
@@ -379,7 +379,7 @@ To disable telemetry and auto-registration, add `RN_DEBUGGER_TELEMETRY` to the `
|
|
|
379
379
|
```json
|
|
380
380
|
{
|
|
381
381
|
"mcpServers": {
|
|
382
|
-
"
|
|
382
|
+
"execbro": {
|
|
383
383
|
"type": "stdio",
|
|
384
384
|
"command": "npx",
|
|
385
385
|
"args": ["react-native-ai-devtools"],
|
|
@@ -92,12 +92,12 @@ export function scheduleAppDetection(app) {
|
|
|
92
92
|
trackAppDetection(parsed);
|
|
93
93
|
const versionStr = parsed.reactNativeVersion !== "unknown"
|
|
94
94
|
? `RN ${parsed.reactNativeVersion}, ` : "";
|
|
95
|
-
console.error(`[
|
|
95
|
+
console.error(`[execbro] App detected: ${versionStr}${parsed.architecture} arch, ${parsed.jsEngine}, ${parsed.appPlatform} ${parsed.osVersion}`);
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
catch (e) {
|
|
100
|
-
console.error(`[
|
|
100
|
+
console.error(`[execbro] App detection failed: ${e}`);
|
|
101
101
|
}
|
|
102
102
|
}, DETECTION_DELAY_MS);
|
|
103
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appDetection.js","sourceRoot":"","sources":["../../src/core/appDetection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"appDetection.js","sourceRoot":"","sources":["../../src/core/appDetection.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,iGAAiG;AACjG,8FAA8F;AAC9F,wCAAwC;AACxC,iEAAiE;AACjE,4DAA4D;AAC5D,sFAAsF;AACtF,6DAA6D;AAC7D,+DAA+D;AAC/D,MAAM,oBAAoB,GAAG;;;;;;;;;;;aAWhB,CAAC;AAEd,SAAS,aAAa,CAAC,CAAkD;IACrE,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,oBAAoB,CACzB,GAOQ,EACR,QAA2B;IAE3B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,uEAAuE;IACvE,8EAA8E;IAC9E,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAEzF,OAAO;QACH,kBAAkB,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;QACzC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;QACvC,WAAW,EAAE,QAAQ;QACrB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACrC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,yBAAyB,CAAC,GAAiB;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;IACzC,OAAO;QACH,kBAAkB,EAAE,SAAS;QAC7B,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;QACzD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;QACrD,WAAW,EAAE,GAAG,CAAC,QAAQ;QACzB,SAAS,EAAE,SAAS;QACpB,eAAe,EAAE,aAAa;KACjC,CAAC;AACN,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAiB;IAClD,2CAA2C;IAC3C,IAAI,GAAG,CAAC,YAAY,EAAE,eAAe,KAAK,OAAO;QAAE,OAAO;IAE1D,4EAA4E;IAC5E,6DAA6D;IAC7D,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;QACnD,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC;QAC/B,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC1D,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC;oBACjC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;oBAC1B,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,kBAAkB,KAAK,SAAS;wBACtD,CAAC,CAAC,MAAM,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/C,OAAO,CAAC,KAAK,CACT,2BAA2B,UAAU,GAAG,MAAM,CAAC,YAAY,UAAU,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE,CACpI,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,EAAa;IAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAEzB,SAAS,OAAO,CAAC,IAAoB;YACjC,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5C,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS;oBAAE,OAAO;gBAErC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACtC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEtB,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;oBAChC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,2BAA2B;YAC/B,CAAC;QACL,CAAC;QAED,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1B,EAAE,CAAC,IAAI,CACH,IAAI,CAAC,SAAS,CAAC;YACX,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE;gBACJ,UAAU,EAAE,oBAAoB;gBAChC,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,IAAI;gBACjB,eAAe,EAAE,KAAK;aACzB;SACJ,CAAC,CACL,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/build/core/bundle.js
CHANGED
|
@@ -154,13 +154,13 @@ function scheduleBuildEventReconnection(port) {
|
|
|
154
154
|
if (metroBuildEventReconnecting)
|
|
155
155
|
return;
|
|
156
156
|
if (metroBuildEventAttempts >= MAX_BUILD_EVENT_RECONNECT_ATTEMPTS) {
|
|
157
|
-
console.error(`[
|
|
157
|
+
console.error(`[execbro] Max reconnection attempts for Metro build events reached`);
|
|
158
158
|
metroBuildEventReconnecting = false;
|
|
159
159
|
return;
|
|
160
160
|
}
|
|
161
161
|
metroBuildEventReconnecting = true;
|
|
162
162
|
const delay = Math.min(BUILD_EVENT_BACKOFF_BASE_MS * Math.pow(2, metroBuildEventAttempts), 8000);
|
|
163
|
-
console.error(`[
|
|
163
|
+
console.error(`[execbro] Scheduling Metro build events reconnection in ${delay}ms (attempt ${metroBuildEventAttempts + 1}/${MAX_BUILD_EVENT_RECONNECT_ATTEMPTS})`);
|
|
164
164
|
setTimeout(async () => {
|
|
165
165
|
metroBuildEventAttempts++;
|
|
166
166
|
try {
|
|
@@ -175,7 +175,7 @@ function scheduleBuildEventReconnection(port) {
|
|
|
175
175
|
scheduleBuildEventReconnection(port);
|
|
176
176
|
}
|
|
177
177
|
else {
|
|
178
|
-
console.error("[
|
|
178
|
+
console.error("[execbro] Failed to reconnect to Metro build events");
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
}, delay);
|
|
@@ -195,7 +195,7 @@ export async function connectMetroBuildEvents(port) {
|
|
|
195
195
|
// Reset reconnection state on successful connection
|
|
196
196
|
metroBuildEventAttempts = 0;
|
|
197
197
|
metroBuildEventReconnecting = false;
|
|
198
|
-
console.error(`[
|
|
198
|
+
console.error(`[execbro] Connected to Metro build events on port ${port}`);
|
|
199
199
|
ws.on("message", (data) => {
|
|
200
200
|
try {
|
|
201
201
|
const message = JSON.parse(data.toString());
|
|
@@ -213,14 +213,14 @@ export async function connectMetroBuildEvents(port) {
|
|
|
213
213
|
});
|
|
214
214
|
ws.on("close", () => {
|
|
215
215
|
metroEventWs = null;
|
|
216
|
-
console.error("[
|
|
216
|
+
console.error("[execbro] Disconnected from Metro build events");
|
|
217
217
|
// Trigger auto-reconnection
|
|
218
218
|
if (metroBuildEventPort && !metroBuildEventReconnecting) {
|
|
219
219
|
scheduleBuildEventReconnection(metroBuildEventPort);
|
|
220
220
|
}
|
|
221
221
|
});
|
|
222
222
|
ws.on("error", (error) => {
|
|
223
|
-
console.error(`[
|
|
223
|
+
console.error(`[execbro] Metro build events WebSocket error: ${error?.message || error}`);
|
|
224
224
|
});
|
|
225
225
|
resolve(`Connected to Metro build events on port ${port}`);
|
|
226
226
|
}
|
package/build/core/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/core/bundle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/core/bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/core/connection.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAoB,YAAY,EAAkB,cAAc,EAAsB,sBAAsB,EAAmB,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/core/connection.ts"],"names":[],"mappings":"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"}
|
package/build/core/connection.js
CHANGED
|
@@ -11,6 +11,51 @@ import { DEFAULT_RECONNECTION_CONFIG, MIN_STABLE_CONNECTION_MS, initConnectionSt
|
|
|
11
11
|
const connectionLocks = new Set();
|
|
12
12
|
// Track Network.enable message IDs to detect CDP network support
|
|
13
13
|
const pendingNetworkEnableIds = new Set();
|
|
14
|
+
// Track SDK-probe message IDs so we can decode their responses and set
|
|
15
|
+
// app.sdkPresent. The probe runs on connect and then periodically because
|
|
16
|
+
// the SDK's init() may execute after we attach.
|
|
17
|
+
const pendingSdkProbeIds = new Map(); // msgId -> appKey
|
|
18
|
+
const SDK_PROBE_INITIAL_DELAY_MS = 200;
|
|
19
|
+
const SDK_PROBE_INTERVAL_MS = 3000;
|
|
20
|
+
function sendSdkProbe(ws, appKey) {
|
|
21
|
+
if (ws.readyState !== WebSocket.OPEN)
|
|
22
|
+
return;
|
|
23
|
+
const id = getNextMessageId();
|
|
24
|
+
pendingSdkProbeIds.set(id, appKey);
|
|
25
|
+
try {
|
|
26
|
+
ws.send(JSON.stringify({
|
|
27
|
+
id,
|
|
28
|
+
method: "Runtime.evaluate",
|
|
29
|
+
params: {
|
|
30
|
+
expression: 'typeof globalThis.__RN_AI_DEVTOOLS__?.getNetworkEntries === "function"',
|
|
31
|
+
returnByValue: true
|
|
32
|
+
}
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
pendingSdkProbeIds.delete(id);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function startSdkProbeLoop(ws, appKey) {
|
|
40
|
+
const initial = setTimeout(() => sendSdkProbe(ws, appKey), SDK_PROBE_INITIAL_DELAY_MS);
|
|
41
|
+
const interval = setInterval(() => {
|
|
42
|
+
const app = connectedApps.get(appKey);
|
|
43
|
+
if (!app || ws.readyState !== WebSocket.OPEN) {
|
|
44
|
+
clearInterval(interval);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
sendSdkProbe(ws, appKey);
|
|
48
|
+
}, SDK_PROBE_INTERVAL_MS);
|
|
49
|
+
const app = connectedApps.get(appKey);
|
|
50
|
+
if (app) {
|
|
51
|
+
app.sdkProbeTimer = interval;
|
|
52
|
+
}
|
|
53
|
+
// Best-effort cleanup if the socket closes before the initial probe fires
|
|
54
|
+
ws.once("close", () => {
|
|
55
|
+
clearTimeout(initial);
|
|
56
|
+
clearInterval(interval);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
14
59
|
// Suppress auto-reconnection for intentionally disconnected devices
|
|
15
60
|
const reconnectionSuppressed = new Set();
|
|
16
61
|
/**
|
|
@@ -70,7 +115,7 @@ export function createWebSocketWithOriginFallback(url, timeoutMs = 5000) {
|
|
|
70
115
|
return;
|
|
71
116
|
if (ws.readyState === WebSocket.OPEN) {
|
|
72
117
|
settled = true;
|
|
73
|
-
console.error("[
|
|
118
|
+
console.error("[execbro] WebSocket connected with Origin header");
|
|
74
119
|
resolve(ws);
|
|
75
120
|
}
|
|
76
121
|
// If not OPEN, the close handler will trigger fallback
|
|
@@ -80,7 +125,7 @@ export function createWebSocketWithOriginFallback(url, timeoutMs = 5000) {
|
|
|
80
125
|
if (settled)
|
|
81
126
|
return;
|
|
82
127
|
settled = true;
|
|
83
|
-
console.error("[
|
|
128
|
+
console.error("[execbro] WebSocket connected without Origin header");
|
|
84
129
|
resolve(ws);
|
|
85
130
|
}
|
|
86
131
|
});
|
|
@@ -91,7 +136,7 @@ export function createWebSocketWithOriginFallback(url, timeoutMs = 5000) {
|
|
|
91
136
|
ws.terminate();
|
|
92
137
|
if (withOrigin) {
|
|
93
138
|
const reason = opened ? "immediately closed after open" : "rejected before open";
|
|
94
|
-
console.error(`[
|
|
139
|
+
console.error(`[execbro] Origin header connection ${reason}, retrying without...`);
|
|
95
140
|
tryConnect(false);
|
|
96
141
|
}
|
|
97
142
|
else {
|
|
@@ -155,7 +200,7 @@ export function purgeStaleConnectionsForPorts(freshDevicesByPort) {
|
|
|
155
200
|
const reason = !matchingDevice
|
|
156
201
|
? "device no longer in Metro /json"
|
|
157
202
|
: `appId changed: ${app.deviceInfo.appId} → ${matchingDevice.appId}`;
|
|
158
|
-
console.error(`[
|
|
203
|
+
console.error(`[execbro] Purging stale connection: ${name} (port ${app.port}, id ${app.deviceInfo.id}) — ${reason}`);
|
|
159
204
|
// Suppress reconnection so close handler doesn't try to reconnect
|
|
160
205
|
reconnectionSuppressed.add(appKey);
|
|
161
206
|
cancelReconnectionTimer(appKey);
|
|
@@ -471,6 +516,40 @@ export function handleCDPMessage(message, device, ws) {
|
|
|
471
516
|
}
|
|
472
517
|
pending.resolve({ success: true, result: "undefined" });
|
|
473
518
|
}
|
|
519
|
+
// Track SDK-probe responses
|
|
520
|
+
if (pendingSdkProbeIds.has(message.id)) {
|
|
521
|
+
const appKey = pendingSdkProbeIds.get(message.id);
|
|
522
|
+
pendingSdkProbeIds.delete(message.id);
|
|
523
|
+
const app = connectedApps.get(appKey);
|
|
524
|
+
if (app) {
|
|
525
|
+
const result = message.result?.result;
|
|
526
|
+
const present = result?.value === true;
|
|
527
|
+
const wasPresent = app.sdkPresent === true;
|
|
528
|
+
app.sdkPresent = present;
|
|
529
|
+
if (present !== wasPresent) {
|
|
530
|
+
console.error(`[execbro] SDK ${present ? "detected" : "no longer detected"} on ${app.deviceInfo.title}; CDP/JS-interceptor buffer writes ${present ? "suppressed" : "restored"}`);
|
|
531
|
+
// Toggle the in-app interceptor's emit flag so it stops
|
|
532
|
+
// (or resumes) producing console.debug lines and CDP
|
|
533
|
+
// traffic. Fire-and-forget — the flag is idempotent.
|
|
534
|
+
if (app.ws.readyState === WebSocket.OPEN) {
|
|
535
|
+
try {
|
|
536
|
+
app.ws.send(JSON.stringify({
|
|
537
|
+
id: getNextMessageId(),
|
|
538
|
+
method: "Runtime.evaluate",
|
|
539
|
+
params: {
|
|
540
|
+
expression: `globalThis.__RN_NET_DISABLED__ = ${present ? "true" : "false"}`,
|
|
541
|
+
returnByValue: true
|
|
542
|
+
}
|
|
543
|
+
}));
|
|
544
|
+
}
|
|
545
|
+
catch {
|
|
546
|
+
// ignore — next probe will retry
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
474
553
|
// Track Network.enable responses to detect CDP network support
|
|
475
554
|
if (pendingNetworkEnableIds.has(message.id)) {
|
|
476
555
|
pendingNetworkEnableIds.delete(message.id);
|
|
@@ -480,11 +559,11 @@ export function handleCDPMessage(message, device, ws) {
|
|
|
480
559
|
if (app) {
|
|
481
560
|
if (message.error) {
|
|
482
561
|
app.cdpNetworkSupported = false;
|
|
483
|
-
console.error(`[
|
|
562
|
+
console.error(`[execbro] CDP Network domain not supported, using JS interceptor`);
|
|
484
563
|
}
|
|
485
564
|
else {
|
|
486
565
|
app.cdpNetworkSupported = true;
|
|
487
|
-
console.error(`[
|
|
566
|
+
console.error(`[execbro] CDP Network domain supported`);
|
|
488
567
|
}
|
|
489
568
|
}
|
|
490
569
|
}
|
|
@@ -503,7 +582,10 @@ export function handleCDPMessage(message, device, ws) {
|
|
|
503
582
|
if (interceptorJson !== null) {
|
|
504
583
|
const iAppKey = findAppKeyForDevice(device);
|
|
505
584
|
const iApp = iAppKey ? connectedApps.get(iAppKey) : null;
|
|
506
|
-
|
|
585
|
+
// Skip when CDP Network domain is the source, OR when the in-app
|
|
586
|
+
// SDK is the source — both would otherwise produce duplicate
|
|
587
|
+
// entries for every request.
|
|
588
|
+
if (!iApp?.cdpNetworkSupported && !iApp?.sdkPresent) {
|
|
507
589
|
applyInterceptedEvent(interceptorJson, getNetworkBuffer(deviceName));
|
|
508
590
|
}
|
|
509
591
|
return;
|
|
@@ -556,6 +638,15 @@ export function handleCDPMessage(message, device, ws) {
|
|
|
556
638
|
}
|
|
557
639
|
// Handle Network.requestWillBeSent
|
|
558
640
|
if (method === "Network.requestWillBeSent") {
|
|
641
|
+
// Skip CDP capture when the in-app SDK is the source of truth —
|
|
642
|
+
// otherwise every request lands in both buffers under different ids.
|
|
643
|
+
// The follow-up Network.responseReceived/loadingFinished/loadingFailed
|
|
644
|
+
// handlers below only mutate existing entries, so they self-skip.
|
|
645
|
+
const nAppKey = findAppKeyForDevice(device);
|
|
646
|
+
const nApp = nAppKey ? connectedApps.get(nAppKey) : null;
|
|
647
|
+
if (nApp?.sdkPresent) {
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
559
650
|
const params = message.params;
|
|
560
651
|
const request = {
|
|
561
652
|
requestId: params.requestId,
|
|
@@ -616,7 +707,7 @@ export function handleCDPMessage(message, device, ws) {
|
|
|
616
707
|
if (method === "Runtime.executionContextCreated") {
|
|
617
708
|
const params = message.params;
|
|
618
709
|
markContextHealthy(appKey, params.context.id);
|
|
619
|
-
console.error(`[
|
|
710
|
+
console.error(`[execbro] Context created: ${params.context.id}`);
|
|
620
711
|
// Re-inject network interceptor and re-check CDP Network support
|
|
621
712
|
const ctxApp = connectedApps.get(appKey);
|
|
622
713
|
if (ctxApp?.ws?.readyState === WebSocket.OPEN) {
|
|
@@ -628,12 +719,12 @@ export function handleCDPMessage(message, device, ws) {
|
|
|
628
719
|
// Handle Runtime.executionContextDestroyed
|
|
629
720
|
if (method === "Runtime.executionContextDestroyed") {
|
|
630
721
|
markContextStale(appKey);
|
|
631
|
-
console.error(`[
|
|
722
|
+
console.error(`[execbro] Context destroyed`);
|
|
632
723
|
}
|
|
633
724
|
// Handle Runtime.executionContextsCleared
|
|
634
725
|
if (method === "Runtime.executionContextsCleared") {
|
|
635
726
|
markContextStale(appKey);
|
|
636
|
-
console.error(`[
|
|
727
|
+
console.error(`[execbro] All contexts cleared`);
|
|
637
728
|
}
|
|
638
729
|
}
|
|
639
730
|
}
|
|
@@ -668,7 +759,7 @@ export async function connectToDevice(device, port, options = {}) {
|
|
|
668
759
|
return;
|
|
669
760
|
}
|
|
670
761
|
// Ping failed — connection is dead, clean up
|
|
671
|
-
console.error(`[
|
|
762
|
+
console.error(`[execbro] Existing connection to ${device.title} failed liveness check (no pong), reconnecting`);
|
|
672
763
|
reconnectionSuppressed.add(appKey);
|
|
673
764
|
try {
|
|
674
765
|
existingApp.ws.terminate();
|
|
@@ -680,7 +771,7 @@ export async function connectToDevice(device, port, options = {}) {
|
|
|
680
771
|
}
|
|
681
772
|
else {
|
|
682
773
|
// WebSocket exists but not OPEN - clean up stale entry
|
|
683
|
-
console.error(`[
|
|
774
|
+
console.error(`[execbro] Cleaning up stale connection for ${device.title} (state: ${getWebSocketStateName(existingApp.ws.readyState)})`);
|
|
684
775
|
connectedApps.delete(appKey);
|
|
685
776
|
}
|
|
686
777
|
}
|
|
@@ -724,7 +815,7 @@ export async function connectToDevice(device, port, options = {}) {
|
|
|
724
815
|
}
|
|
725
816
|
catch { /* ignore */ }
|
|
726
817
|
clearConnectionMetadata(appKey);
|
|
727
|
-
console.error(`[
|
|
818
|
+
console.error(`[execbro] Rejecting stale CDP target for ${device.title} (no probe response)`);
|
|
728
819
|
resolve(`Skipped ${device.deviceName || device.title} (stale CDP target — no response from JS context)`);
|
|
729
820
|
return;
|
|
730
821
|
}
|
|
@@ -743,12 +834,12 @@ export async function connectToDevice(device, port, options = {}) {
|
|
|
743
834
|
});
|
|
744
835
|
// Reset context health for reconnection
|
|
745
836
|
initContextHealth(appKey);
|
|
746
|
-
console.error(`[
|
|
837
|
+
console.error(`[execbro] Reconnected to ${device.title}`);
|
|
747
838
|
}
|
|
748
839
|
else {
|
|
749
840
|
initConnectionState(appKey);
|
|
750
841
|
initContextHealth(appKey);
|
|
751
|
-
console.error(`[
|
|
842
|
+
console.error(`[execbro] Connected to ${device.title}`);
|
|
752
843
|
}
|
|
753
844
|
// Enable Runtime domain to receive console messages
|
|
754
845
|
ws.send(JSON.stringify({
|
|
@@ -777,7 +868,7 @@ export async function connectToDevice(device, port, options = {}) {
|
|
|
777
868
|
connectedApp.platform = "ios";
|
|
778
869
|
connectedApp.simulatorUdid = simulatorUdid;
|
|
779
870
|
}
|
|
780
|
-
console.error(`[
|
|
871
|
+
console.error(`[execbro] Linked to iOS simulator: ${simulatorUdid}`);
|
|
781
872
|
}
|
|
782
873
|
}
|
|
783
874
|
// Fire-and-forget app detection (500ms delayed, non-blocking)
|
|
@@ -785,12 +876,16 @@ export async function connectToDevice(device, port, options = {}) {
|
|
|
785
876
|
if (appForDetection) {
|
|
786
877
|
scheduleAppDetection(appForDetection);
|
|
787
878
|
}
|
|
879
|
+
// Start periodic SDK probe. When __RN_AI_DEVTOOLS__ is detected,
|
|
880
|
+
// app.sdkPresent flips to true and CDP/JS-interceptor buffer
|
|
881
|
+
// writes are suppressed (SDK becomes the single source).
|
|
882
|
+
startSdkProbeLoop(ws, appKey);
|
|
788
883
|
// Start WebSocket ping/pong keepalive to detect dead connections
|
|
789
884
|
// (especially important for physical devices over Wi-Fi)
|
|
790
885
|
let pongReceived = true;
|
|
791
886
|
const pingInterval = setInterval(() => {
|
|
792
887
|
if (!pongReceived) {
|
|
793
|
-
console.error(`[
|
|
888
|
+
console.error(`[execbro] No pong from ${device.title}, terminating connection`);
|
|
794
889
|
clearInterval(pingInterval);
|
|
795
890
|
ws.terminate();
|
|
796
891
|
return;
|
|
@@ -829,7 +924,7 @@ export async function connectToDevice(device, port, options = {}) {
|
|
|
829
924
|
if (wasStable) {
|
|
830
925
|
// Connection was stable - reset attempts for fresh start
|
|
831
926
|
updateConnectionState(appKey, { reconnectionAttempts: 0 });
|
|
832
|
-
console.error(`[
|
|
927
|
+
console.error(`[execbro] Connection was stable for ${Math.round(connectionDuration / 1000)}s, resetting reconnection attempts`);
|
|
833
928
|
}
|
|
834
929
|
}
|
|
835
930
|
// Record the gap and trigger reconnection
|
|
@@ -838,18 +933,18 @@ export async function connectToDevice(device, port, options = {}) {
|
|
|
838
933
|
status: "disconnected",
|
|
839
934
|
lastDisconnectTime: new Date()
|
|
840
935
|
});
|
|
841
|
-
console.error(`[
|
|
936
|
+
console.error(`[execbro] Disconnected from ${device.title}`);
|
|
842
937
|
// Schedule auto-reconnection if enabled (skip if intentionally disconnected)
|
|
843
938
|
if (reconnectionConfig.enabled && !reconnectionSuppressed.has(appKey)) {
|
|
844
939
|
scheduleReconnection(appKey, reconnectionConfig);
|
|
845
940
|
}
|
|
846
941
|
else if (reconnectionSuppressed.has(appKey)) {
|
|
847
942
|
reconnectionSuppressed.delete(appKey);
|
|
848
|
-
console.error(`[
|
|
943
|
+
console.error(`[execbro] Reconnection suppressed for ${device.title} (intentional disconnect)`);
|
|
849
944
|
}
|
|
850
945
|
});
|
|
851
946
|
ws.on("error", (error) => {
|
|
852
|
-
console.error(`[
|
|
947
|
+
console.error(`[execbro] WebSocket error for ${device.title}: ${error?.message || error}`);
|
|
853
948
|
});
|
|
854
949
|
resolve(`Connected to ${device.title} (${device.deviceName})`);
|
|
855
950
|
}
|
|
@@ -865,7 +960,7 @@ export async function connectToDevice(device, port, options = {}) {
|
|
|
865
960
|
reject(`Failed to connect to ${device.title}: ${errorMsg}`);
|
|
866
961
|
}
|
|
867
962
|
else {
|
|
868
|
-
console.error(`[
|
|
963
|
+
console.error(`[execbro] Reconnection error: ${errorMsg}`);
|
|
869
964
|
}
|
|
870
965
|
}
|
|
871
966
|
});
|
|
@@ -879,12 +974,12 @@ function scheduleReconnection(appKey, config = DEFAULT_RECONNECTION_CONFIG) {
|
|
|
879
974
|
return;
|
|
880
975
|
const attempts = state.reconnectionAttempts;
|
|
881
976
|
if (attempts >= config.maxAttempts) {
|
|
882
|
-
console.error(`[
|
|
977
|
+
console.error(`[execbro] Max reconnection attempts (${config.maxAttempts}) reached for ${appKey}`);
|
|
883
978
|
updateConnectionState(appKey, { status: "disconnected" });
|
|
884
979
|
return;
|
|
885
980
|
}
|
|
886
981
|
const delay = calculateBackoffDelay(attempts, config);
|
|
887
|
-
console.error(`[
|
|
982
|
+
console.error(`[execbro] Scheduling reconnection attempt ${attempts + 1}/${config.maxAttempts} in ${delay}ms`);
|
|
888
983
|
updateConnectionState(appKey, {
|
|
889
984
|
status: "reconnecting",
|
|
890
985
|
reconnectionAttempts: attempts + 1
|
|
@@ -900,14 +995,14 @@ function scheduleReconnection(appKey, config = DEFAULT_RECONNECTION_CONFIG) {
|
|
|
900
995
|
async function attemptReconnection(appKey, config = DEFAULT_RECONNECTION_CONFIG) {
|
|
901
996
|
const metadata = getConnectionMetadata(appKey);
|
|
902
997
|
if (!metadata) {
|
|
903
|
-
console.error(`[
|
|
998
|
+
console.error(`[execbro] No metadata for reconnection: ${appKey}`);
|
|
904
999
|
return false;
|
|
905
1000
|
}
|
|
906
1001
|
// Quick check: is Metro even running on this port?
|
|
907
1002
|
const { scanMetroPorts } = await import("./metro.js");
|
|
908
1003
|
const openPorts = await scanMetroPorts(metadata.port, metadata.port);
|
|
909
1004
|
if (openPorts.length === 0) {
|
|
910
|
-
console.error(`[
|
|
1005
|
+
console.error(`[execbro] Metro not running on port ${metadata.port}, stopping reconnection for ${appKey}`);
|
|
911
1006
|
updateConnectionState(appKey, { status: "disconnected" });
|
|
912
1007
|
return false;
|
|
913
1008
|
}
|
|
@@ -918,7 +1013,7 @@ async function attemptReconnection(appKey, config = DEFAULT_RECONNECTION_CONFIG)
|
|
|
918
1013
|
const device = devices.find(d => d.id === metadata.deviceInfo.id)
|
|
919
1014
|
|| selectMainDevice(devices);
|
|
920
1015
|
if (!device) {
|
|
921
|
-
console.error(`[
|
|
1016
|
+
console.error(`[execbro] Device no longer available for ${appKey}`);
|
|
922
1017
|
// Schedule next attempt
|
|
923
1018
|
scheduleReconnection(appKey, config);
|
|
924
1019
|
return false;
|
|
@@ -927,7 +1022,7 @@ async function attemptReconnection(appKey, config = DEFAULT_RECONNECTION_CONFIG)
|
|
|
927
1022
|
return true;
|
|
928
1023
|
}
|
|
929
1024
|
catch (error) {
|
|
930
|
-
console.error(`[
|
|
1025
|
+
console.error(`[execbro] Reconnection failed: ${error}`);
|
|
931
1026
|
// Schedule next attempt
|
|
932
1027
|
scheduleReconnection(appKey, config);
|
|
933
1028
|
return false;
|
|
@@ -949,7 +1044,7 @@ export function getFirstConnectedApp() {
|
|
|
949
1044
|
return app;
|
|
950
1045
|
}
|
|
951
1046
|
// Clean up stale entry
|
|
952
|
-
console.error(`[
|
|
1047
|
+
console.error(`[execbro] Cleaning up stale connection in getFirstConnectedApp: ${key} (state: ${getWebSocketStateName(app.ws.readyState)})`);
|
|
953
1048
|
connectedApps.delete(key);
|
|
954
1049
|
}
|
|
955
1050
|
return null;
|
|
@@ -1319,7 +1414,7 @@ export async function ensureConnection(options = {}) {
|
|
|
1319
1414
|
healthCheckPassed = await runQuickHealthCheck(app);
|
|
1320
1415
|
// If health check failed and we haven't just reconnected, try reconnecting
|
|
1321
1416
|
if (!healthCheckPassed && !wasReconnected) {
|
|
1322
|
-
console.error(`[
|
|
1417
|
+
console.error(`[execbro] Health check failed, attempting reconnection...`);
|
|
1323
1418
|
// Close and reconnect
|
|
1324
1419
|
const appKey = `${app.port}-${app.deviceInfo.id}`;
|
|
1325
1420
|
const targetPort = app.port;
|