react-native-ai-debugger 1.0.39 → 1.0.41
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/build/__tests__/helpers/fake-cdp-server.d.ts +56 -0
- package/build/__tests__/helpers/fake-cdp-server.d.ts.map +1 -0
- package/build/__tests__/helpers/fake-cdp-server.js +108 -0
- package/build/__tests__/helpers/fake-cdp-server.js.map +1 -0
- package/build/__tests__/integration/connection-health.test.d.ts +2 -0
- package/build/__tests__/integration/connection-health.test.d.ts.map +1 -0
- package/build/__tests__/integration/connection-health.test.js +151 -0
- package/build/__tests__/integration/connection-health.test.js.map +1 -0
- package/build/__tests__/integration/execute-in-app.test.d.ts +2 -0
- package/build/__tests__/integration/execute-in-app.test.d.ts.map +1 -0
- package/build/__tests__/integration/execute-in-app.test.js +115 -0
- package/build/__tests__/integration/execute-in-app.test.js.map +1 -0
- package/build/__tests__/integration/tools.test.d.ts +2 -0
- package/build/__tests__/integration/tools.test.d.ts.map +1 -0
- package/build/__tests__/integration/tools.test.js +228 -0
- package/build/__tests__/integration/tools.test.js.map +1 -0
- package/build/__tests__/unit/bundle.test.d.ts +2 -0
- package/build/__tests__/unit/bundle.test.d.ts.map +1 -0
- package/build/__tests__/unit/bundle.test.js +53 -0
- package/build/__tests__/unit/bundle.test.js.map +1 -0
- package/build/__tests__/unit/connection-health.test.d.ts +2 -0
- package/build/__tests__/unit/connection-health.test.d.ts.map +1 -0
- package/build/__tests__/unit/connection-health.test.js +28 -0
- package/build/__tests__/unit/connection-health.test.js.map +1 -0
- package/build/__tests__/unit/executor.test.d.ts +2 -0
- package/build/__tests__/unit/executor.test.d.ts.map +1 -0
- package/build/__tests__/unit/executor.test.js +79 -0
- package/build/__tests__/unit/executor.test.js.map +1 -0
- package/build/__tests__/unit/logs.test.d.ts +2 -0
- package/build/__tests__/unit/logs.test.d.ts.map +1 -0
- package/build/__tests__/unit/logs.test.js +81 -0
- package/build/__tests__/unit/logs.test.js.map +1 -0
- package/build/__tests__/unit/metro.test.d.ts +2 -0
- package/build/__tests__/unit/metro.test.d.ts.map +1 -0
- package/build/__tests__/unit/metro.test.js +61 -0
- package/build/__tests__/unit/metro.test.js.map +1 -0
- package/build/__tests__/unit/network.test.d.ts +2 -0
- package/build/__tests__/unit/network.test.d.ts.map +1 -0
- package/build/__tests__/unit/network.test.js +102 -0
- package/build/__tests__/unit/network.test.js.map +1 -0
- package/build/core/connection.d.ts +8 -1
- package/build/core/connection.d.ts.map +1 -1
- package/build/core/connection.js +56 -1
- package/build/core/connection.js.map +1 -1
- package/build/core/executor.d.ts +20 -0
- package/build/core/executor.d.ts.map +1 -1
- package/build/core/executor.js +7 -61
- package/build/core/executor.js.map +1 -1
- package/build/core/index.d.ts +3 -2
- package/build/core/index.d.ts.map +1 -1
- package/build/core/index.js +2 -2
- package/build/core/index.js.map +1 -1
- package/build/core/state.d.ts +2 -0
- package/build/core/state.d.ts.map +1 -1
- package/build/core/state.js +8 -0
- package/build/core/state.js.map +1 -1
- package/build/core/types.d.ts +5 -0
- package/build/core/types.d.ts.map +1 -1
- package/build/index.js +91 -19
- package/build/index.js.map +1 -1
- package/package.json +8 -2
package/build/core/index.js
CHANGED
|
@@ -5,7 +5,7 @@ export { DEFAULT_RECONNECTION_CONFIG, initConnectionState, updateConnectionState
|
|
|
5
5
|
// Context health tracking
|
|
6
6
|
initContextHealth, getContextHealth, updateContextHealth, markContextStale, markContextHealthy, clearContextHealth, getAllContextHealth, } from "./connectionState.js";
|
|
7
7
|
// State
|
|
8
|
-
export { logBuffer, networkBuffer, bundleErrorBuffer, connectedApps, pendingExecutions, getNextMessageId, getActiveSimulatorUdid } from "./state.js";
|
|
8
|
+
export { logBuffer, networkBuffer, bundleErrorBuffer, connectedApps, pendingExecutions, getNextMessageId, getActiveSimulatorUdid, getLastCDPMessageTime, updateLastCDPMessageTime } from "./state.js";
|
|
9
9
|
// Logs
|
|
10
10
|
export { LogBuffer, mapConsoleType, formatLogs, getLogs, searchLogs, getLogSummary } from "./logs.js";
|
|
11
11
|
// Network
|
|
@@ -13,7 +13,7 @@ export { NetworkBuffer, formatRequest, formatRequests, formatRequestDetails, get
|
|
|
13
13
|
// Metro
|
|
14
14
|
export { COMMON_PORTS, isPortOpen, scanMetroPorts, fetchDevices, selectMainDevice, discoverMetroDevices, checkMetroState } from "./metro.js";
|
|
15
15
|
// Connection
|
|
16
|
-
export { formatRemoteObject, handleCDPMessage, connectToDevice, getConnectedApps, getFirstConnectedApp, hasConnectedApp, runQuickHealthCheck, ensureConnection, } from "./connection.js";
|
|
16
|
+
export { formatRemoteObject, handleCDPMessage, connectToDevice, getConnectedApps, getFirstConnectedApp, hasConnectedApp, runQuickHealthCheck, ensureConnection, getPassiveConnectionStatus, checkAndEnsureConnection, } from "./connection.js";
|
|
17
17
|
// Executor
|
|
18
18
|
export { executeInApp, listDebugGlobals, inspectGlobal, reloadApp,
|
|
19
19
|
// React Component Inspection
|
package/build/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,8BAA8B;AAC9B,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,cAAc;AACd,0BAA0B;AAC1B,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,QAAQ;AACR,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
package/build/core/state.d.ts
CHANGED
|
@@ -11,4 +11,6 @@ export declare function getNextMessageId(): number;
|
|
|
11
11
|
export declare function getActiveSimulatorUdid(): string | null;
|
|
12
12
|
export declare function setActiveSimulatorUdid(udid: string | null, sourceAppKey?: string): void;
|
|
13
13
|
export declare function clearActiveSimulatorIfSource(appKey: string): void;
|
|
14
|
+
export declare function getLastCDPMessageTime(): Date | null;
|
|
15
|
+
export declare function updateLastCDPMessageTime(time: Date | null): void;
|
|
14
16
|
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAyB,MAAM,aAAa,CAAC;AAGvE,eAAO,MAAM,SAAS,WAAqB,CAAC;AAG5C,eAAO,MAAM,aAAa,eAAyB,CAAC;AAGpD,eAAO,MAAM,iBAAiB,mBAA6B,CAAC;AAM5D,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAa,CAAC;AAGlE,eAAO,MAAM,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAa,CAAC;AAK1E,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAOD,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAGvF;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAKjE"}
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAyB,MAAM,aAAa,CAAC;AAGvE,eAAO,MAAM,SAAS,WAAqB,CAAC;AAG5C,eAAO,MAAM,aAAa,eAAyB,CAAC;AAGpD,eAAO,MAAM,iBAAiB,mBAA6B,CAAC;AAM5D,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAa,CAAC;AAGlE,eAAO,MAAM,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAa,CAAC;AAK1E,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAOD,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAGvF;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAKjE;AAKD,wBAAgB,qBAAqB,IAAI,IAAI,GAAG,IAAI,CAEnD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAEhE"}
|
package/build/core/state.js
CHANGED
|
@@ -35,4 +35,12 @@ export function clearActiveSimulatorIfSource(appKey) {
|
|
|
35
35
|
_activeSimulatorSourceAppKey = null;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
// Last CDP message received timestamp (for connection liveness detection)
|
|
39
|
+
let _lastCDPMessageAt = null;
|
|
40
|
+
export function getLastCDPMessageTime() {
|
|
41
|
+
return _lastCDPMessageAt;
|
|
42
|
+
}
|
|
43
|
+
export function updateLastCDPMessageTime(time) {
|
|
44
|
+
_lastCDPMessageAt = time;
|
|
45
|
+
}
|
|
38
46
|
//# sourceMappingURL=state.js.map
|
package/build/core/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,oBAAoB;AACpB,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAE5C,wBAAwB;AACxB,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;AAEpD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAE5D,wDAAwD;AACxD,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AAEzC,iBAAiB;AACjB,MAAM,CAAC,MAAM,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;AAElE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAkC,IAAI,GAAG,EAAE,CAAC;AAE1E,yBAAyB;AACzB,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,MAAM,UAAU,gBAAgB;IAC5B,OAAO,UAAU,EAAE,CAAC;AACxB,CAAC;AAED,6DAA6D;AAC7D,6DAA6D;AAC7D,IAAI,oBAAoB,GAAkB,IAAI,CAAC;AAC/C,IAAI,4BAA4B,GAAkB,IAAI,CAAC;AAEvD,MAAM,UAAU,sBAAsB;IAClC,OAAO,oBAAoB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAmB,EAAE,YAAqB;IAC7E,oBAAoB,GAAG,IAAI,CAAC;IAC5B,4BAA4B,GAAG,YAAY,IAAI,IAAI,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAc;IACvD,IAAI,4BAA4B,KAAK,MAAM,EAAE,CAAC;QAC1C,oBAAoB,GAAG,IAAI,CAAC;QAC5B,4BAA4B,GAAG,IAAI,CAAC;IACxC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,oBAAoB;AACpB,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAE5C,wBAAwB;AACxB,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;AAEpD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAE5D,wDAAwD;AACxD,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AAEzC,iBAAiB;AACjB,MAAM,CAAC,MAAM,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;AAElE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAkC,IAAI,GAAG,EAAE,CAAC;AAE1E,yBAAyB;AACzB,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,MAAM,UAAU,gBAAgB;IAC5B,OAAO,UAAU,EAAE,CAAC;AACxB,CAAC;AAED,6DAA6D;AAC7D,6DAA6D;AAC7D,IAAI,oBAAoB,GAAkB,IAAI,CAAC;AAC/C,IAAI,4BAA4B,GAAkB,IAAI,CAAC;AAEvD,MAAM,UAAU,sBAAsB;IAClC,OAAO,oBAAoB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAmB,EAAE,YAAqB;IAC7E,oBAAoB,GAAG,IAAI,CAAC;IAC5B,4BAA4B,GAAG,YAAY,IAAI,IAAI,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAc;IACvD,IAAI,4BAA4B,KAAK,MAAM,EAAE,CAAC;QAC1C,oBAAoB,GAAG,IAAI,CAAC;QAC5B,4BAA4B,GAAG,IAAI,CAAC;IACxC,CAAC;AACL,CAAC;AAED,0EAA0E;AAC1E,IAAI,iBAAiB,GAAgB,IAAI,CAAC;AAE1C,MAAM,UAAU,qBAAqB;IACjC,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAiB;IACtD,iBAAiB,GAAG,IAAI,CAAC;AAC7B,CAAC"}
|
package/build/core/types.d.ts
CHANGED
|
@@ -108,6 +108,11 @@ export interface ExecuteOptions {
|
|
|
108
108
|
autoReconnect?: boolean;
|
|
109
109
|
timeoutMs?: number;
|
|
110
110
|
}
|
|
111
|
+
export interface ConnectionCheckResult {
|
|
112
|
+
connected: boolean;
|
|
113
|
+
wasReconnected: boolean;
|
|
114
|
+
message: string | null;
|
|
115
|
+
}
|
|
111
116
|
export interface EnsureConnectionResult {
|
|
112
117
|
connected: boolean;
|
|
113
118
|
wasReconnected: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -10,7 +10,7 @@ getAllConnectionStates, getAllConnectionMetadata, getRecentGaps, formatDuration,
|
|
|
10
10
|
// Context health tracking
|
|
11
11
|
getContextHealth,
|
|
12
12
|
// Connection resilience
|
|
13
|
-
ensureConnection,
|
|
13
|
+
ensureConnection, checkAndEnsureConnection, getPassiveConnectionStatus,
|
|
14
14
|
// Bundle (Metro build errors)
|
|
15
15
|
connectMetroBuildEvents, getBundleErrors, getBundleStatusWithErrors, checkMetroState,
|
|
16
16
|
// Error screen parsing (OCR fallback)
|
|
@@ -412,29 +412,46 @@ registerToolWithTelemetry("get_logs", {
|
|
|
412
412
|
// Return summary if requested
|
|
413
413
|
if (summary) {
|
|
414
414
|
const summaryText = getLogSummary(logBuffer, { lastN: 5, maxMessageLength: 100 });
|
|
415
|
+
let connectionWarning = "";
|
|
416
|
+
if (logBuffer.size === 0) {
|
|
417
|
+
const status = await checkAndEnsureConnection();
|
|
418
|
+
connectionWarning = status.message ? `\n\n${status.message}` : "";
|
|
419
|
+
}
|
|
415
420
|
return {
|
|
416
421
|
content: [
|
|
417
422
|
{
|
|
418
423
|
type: "text",
|
|
419
|
-
text: `Log Summary:\n\n${summaryText}`
|
|
424
|
+
text: `Log Summary:\n\n${summaryText}${connectionWarning}`
|
|
420
425
|
}
|
|
421
426
|
]
|
|
422
427
|
};
|
|
423
428
|
}
|
|
424
429
|
const { logs, count, formatted } = getLogs(logBuffer, { maxLogs, level, startFromText, maxMessageLength, verbose });
|
|
430
|
+
// Check connection health
|
|
431
|
+
let connectionWarning = "";
|
|
432
|
+
if (count === 0) {
|
|
433
|
+
const status = await checkAndEnsureConnection();
|
|
434
|
+
connectionWarning = status.message ? `\n\n${status.message}` : "";
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
const passive = getPassiveConnectionStatus();
|
|
438
|
+
connectionWarning = !passive.connected
|
|
439
|
+
? "\n\n[CONNECTION] Disconnected. Showing cached data. New data is not being captured."
|
|
440
|
+
: "";
|
|
441
|
+
}
|
|
425
442
|
// Check for recent connection gaps
|
|
426
443
|
const warningThresholdMs = 30000; // 30 seconds
|
|
427
444
|
const recentGaps = getRecentGaps(warningThresholdMs);
|
|
428
|
-
let
|
|
445
|
+
let gapWarning = "";
|
|
429
446
|
if (recentGaps.length > 0) {
|
|
430
447
|
const latestGap = recentGaps[recentGaps.length - 1];
|
|
431
448
|
const gapDuration = latestGap.durationMs || (Date.now() - latestGap.disconnectedAt.getTime());
|
|
432
449
|
if (latestGap.reconnectedAt) {
|
|
433
450
|
const secAgo = Math.round((Date.now() - latestGap.reconnectedAt.getTime()) / 1000);
|
|
434
|
-
|
|
451
|
+
gapWarning = `\n\n[WARNING] Connection was restored ${secAgo}s ago. Some logs may have been missed during the ${formatDuration(gapDuration)} gap.`;
|
|
435
452
|
}
|
|
436
453
|
else {
|
|
437
|
-
|
|
454
|
+
gapWarning = `\n\n[WARNING] Connection is currently disconnected. Logs may be incomplete.`;
|
|
438
455
|
}
|
|
439
456
|
}
|
|
440
457
|
const startNote = startFromText ? ` (starting from "${startFromText}")` : "";
|
|
@@ -445,7 +462,7 @@ registerToolWithTelemetry("get_logs", {
|
|
|
445
462
|
content: [
|
|
446
463
|
{
|
|
447
464
|
type: "text",
|
|
448
|
-
text: `React Native Console Logs (${count} entries)${startNote}:\n\n${tonlOutput}${
|
|
465
|
+
text: `React Native Console Logs (${count} entries)${startNote}:\n\n${tonlOutput}${gapWarning}${connectionWarning}`
|
|
449
466
|
}
|
|
450
467
|
]
|
|
451
468
|
};
|
|
@@ -454,7 +471,7 @@ registerToolWithTelemetry("get_logs", {
|
|
|
454
471
|
content: [
|
|
455
472
|
{
|
|
456
473
|
type: "text",
|
|
457
|
-
text: `React Native Console Logs (${count} entries)${startNote}:\n\n${formatted}${
|
|
474
|
+
text: `React Native Console Logs (${count} entries)${startNote}:\n\n${formatted}${gapWarning}${connectionWarning}`
|
|
458
475
|
}
|
|
459
476
|
]
|
|
460
477
|
};
|
|
@@ -483,6 +500,18 @@ registerToolWithTelemetry("search_logs", {
|
|
|
483
500
|
}
|
|
484
501
|
}, async ({ text, maxResults, maxMessageLength, verbose, format }) => {
|
|
485
502
|
const { logs, count, formatted } = searchLogs(logBuffer, text, { maxResults, maxMessageLength, verbose });
|
|
503
|
+
// Check connection health
|
|
504
|
+
let connectionWarning = "";
|
|
505
|
+
if (count === 0) {
|
|
506
|
+
const status = await checkAndEnsureConnection();
|
|
507
|
+
connectionWarning = status.message ? `\n\n${status.message}` : "";
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
const passive = getPassiveConnectionStatus();
|
|
511
|
+
connectionWarning = !passive.connected
|
|
512
|
+
? "\n\n[CONNECTION] Disconnected. Showing cached data. New data is not being captured."
|
|
513
|
+
: "";
|
|
514
|
+
}
|
|
486
515
|
// Use TONL format if requested
|
|
487
516
|
if (format === "tonl") {
|
|
488
517
|
const tonlOutput = formatLogsAsTonl(logs, { maxMessageLength: verbose ? 0 : maxMessageLength });
|
|
@@ -490,7 +519,7 @@ registerToolWithTelemetry("search_logs", {
|
|
|
490
519
|
content: [
|
|
491
520
|
{
|
|
492
521
|
type: "text",
|
|
493
|
-
text: `Search results for "${text}" (${count} matches):\n\n${tonlOutput}`
|
|
522
|
+
text: `Search results for "${text}" (${count} matches):\n\n${tonlOutput}${connectionWarning}`
|
|
494
523
|
}
|
|
495
524
|
]
|
|
496
525
|
};
|
|
@@ -499,7 +528,7 @@ registerToolWithTelemetry("search_logs", {
|
|
|
499
528
|
content: [
|
|
500
529
|
{
|
|
501
530
|
type: "text",
|
|
502
|
-
text: `Search results for "${text}" (${count} matches):\n\n${formatted}`
|
|
531
|
+
text: `Search results for "${text}" (${count} matches):\n\n${formatted}${connectionWarning}`
|
|
503
532
|
}
|
|
504
533
|
]
|
|
505
534
|
};
|
|
@@ -1171,11 +1200,16 @@ registerToolWithTelemetry("get_network_requests", {
|
|
|
1171
1200
|
// Return summary if requested
|
|
1172
1201
|
if (summary) {
|
|
1173
1202
|
const stats = getNetworkStats(networkBuffer);
|
|
1203
|
+
let connectionWarning = "";
|
|
1204
|
+
if (networkBuffer.size === 0) {
|
|
1205
|
+
const connStatus = await checkAndEnsureConnection();
|
|
1206
|
+
connectionWarning = connStatus.message ? `\n\n${connStatus.message}` : "";
|
|
1207
|
+
}
|
|
1174
1208
|
return {
|
|
1175
1209
|
content: [
|
|
1176
1210
|
{
|
|
1177
1211
|
type: "text",
|
|
1178
|
-
text: `Network Summary:\n\n${stats}`
|
|
1212
|
+
text: `Network Summary:\n\n${stats}${connectionWarning}`
|
|
1179
1213
|
}
|
|
1180
1214
|
]
|
|
1181
1215
|
};
|
|
@@ -1186,19 +1220,31 @@ registerToolWithTelemetry("get_network_requests", {
|
|
|
1186
1220
|
urlPattern,
|
|
1187
1221
|
status
|
|
1188
1222
|
});
|
|
1223
|
+
// Check connection health
|
|
1224
|
+
let connectionWarning = "";
|
|
1225
|
+
if (count === 0) {
|
|
1226
|
+
const connStatus = await checkAndEnsureConnection();
|
|
1227
|
+
connectionWarning = connStatus.message ? `\n\n${connStatus.message}` : "";
|
|
1228
|
+
}
|
|
1229
|
+
else {
|
|
1230
|
+
const passive = getPassiveConnectionStatus();
|
|
1231
|
+
connectionWarning = !passive.connected
|
|
1232
|
+
? "\n\n[CONNECTION] Disconnected. Showing cached data. New data is not being captured."
|
|
1233
|
+
: "";
|
|
1234
|
+
}
|
|
1189
1235
|
// Check for recent connection gaps
|
|
1190
1236
|
const warningThresholdMs = 30000; // 30 seconds
|
|
1191
1237
|
const recentGaps = getRecentGaps(warningThresholdMs);
|
|
1192
|
-
let
|
|
1238
|
+
let gapWarning = "";
|
|
1193
1239
|
if (recentGaps.length > 0) {
|
|
1194
1240
|
const latestGap = recentGaps[recentGaps.length - 1];
|
|
1195
1241
|
const gapDuration = latestGap.durationMs || (Date.now() - latestGap.disconnectedAt.getTime());
|
|
1196
1242
|
if (latestGap.reconnectedAt) {
|
|
1197
1243
|
const secAgo = Math.round((Date.now() - latestGap.reconnectedAt.getTime()) / 1000);
|
|
1198
|
-
|
|
1244
|
+
gapWarning = `\n\n[WARNING] Connection was restored ${secAgo}s ago. Some requests may have been missed during the ${formatDuration(gapDuration)} gap.`;
|
|
1199
1245
|
}
|
|
1200
1246
|
else {
|
|
1201
|
-
|
|
1247
|
+
gapWarning = `\n\n[WARNING] Connection is currently disconnected. Network data may be incomplete.`;
|
|
1202
1248
|
}
|
|
1203
1249
|
}
|
|
1204
1250
|
// Use TONL format if requested
|
|
@@ -1208,7 +1254,7 @@ registerToolWithTelemetry("get_network_requests", {
|
|
|
1208
1254
|
content: [
|
|
1209
1255
|
{
|
|
1210
1256
|
type: "text",
|
|
1211
|
-
text: `Network Requests (${count} entries):\n\n${tonlOutput}${
|
|
1257
|
+
text: `Network Requests (${count} entries):\n\n${tonlOutput}${gapWarning}${connectionWarning}`
|
|
1212
1258
|
}
|
|
1213
1259
|
]
|
|
1214
1260
|
};
|
|
@@ -1217,7 +1263,7 @@ registerToolWithTelemetry("get_network_requests", {
|
|
|
1217
1263
|
content: [
|
|
1218
1264
|
{
|
|
1219
1265
|
type: "text",
|
|
1220
|
-
text: `Network Requests (${count} entries):\n\n${formatted}${
|
|
1266
|
+
text: `Network Requests (${count} entries):\n\n${formatted}${gapWarning}${connectionWarning}`
|
|
1221
1267
|
}
|
|
1222
1268
|
]
|
|
1223
1269
|
};
|
|
@@ -1240,6 +1286,18 @@ registerToolWithTelemetry("search_network", {
|
|
|
1240
1286
|
}
|
|
1241
1287
|
}, async ({ urlPattern, maxResults, format }) => {
|
|
1242
1288
|
const { requests, count, formatted } = searchNetworkRequests(networkBuffer, urlPattern, maxResults);
|
|
1289
|
+
// Check connection health
|
|
1290
|
+
let connectionWarning = "";
|
|
1291
|
+
if (count === 0) {
|
|
1292
|
+
const status = await checkAndEnsureConnection();
|
|
1293
|
+
connectionWarning = status.message ? `\n\n${status.message}` : "";
|
|
1294
|
+
}
|
|
1295
|
+
else {
|
|
1296
|
+
const passive = getPassiveConnectionStatus();
|
|
1297
|
+
connectionWarning = !passive.connected
|
|
1298
|
+
? "\n\n[CONNECTION] Disconnected. Showing cached data. New data is not being captured."
|
|
1299
|
+
: "";
|
|
1300
|
+
}
|
|
1243
1301
|
// Use TONL format if requested
|
|
1244
1302
|
if (format === "tonl") {
|
|
1245
1303
|
const tonlOutput = formatNetworkAsTonl(requests);
|
|
@@ -1247,7 +1305,7 @@ registerToolWithTelemetry("search_network", {
|
|
|
1247
1305
|
content: [
|
|
1248
1306
|
{
|
|
1249
1307
|
type: "text",
|
|
1250
|
-
text: `Network search results for "${urlPattern}" (${count} matches):\n\n${tonlOutput}`
|
|
1308
|
+
text: `Network search results for "${urlPattern}" (${count} matches):\n\n${tonlOutput}${connectionWarning}`
|
|
1251
1309
|
}
|
|
1252
1310
|
]
|
|
1253
1311
|
};
|
|
@@ -1256,7 +1314,7 @@ registerToolWithTelemetry("search_network", {
|
|
|
1256
1314
|
content: [
|
|
1257
1315
|
{
|
|
1258
1316
|
type: "text",
|
|
1259
|
-
text: `Network search results for "${urlPattern}" (${count} matches):\n\n${formatted}`
|
|
1317
|
+
text: `Network search results for "${urlPattern}" (${count} matches):\n\n${formatted}${connectionWarning}`
|
|
1260
1318
|
}
|
|
1261
1319
|
]
|
|
1262
1320
|
};
|
|
@@ -1280,11 +1338,13 @@ registerToolWithTelemetry("get_request_details", {
|
|
|
1280
1338
|
}, async ({ requestId, maxBodyLength, verbose }) => {
|
|
1281
1339
|
const request = networkBuffer.get(requestId);
|
|
1282
1340
|
if (!request) {
|
|
1341
|
+
const status = await checkAndEnsureConnection();
|
|
1342
|
+
const connectionNote = status.message ? `\n\n${status.message}` : "";
|
|
1283
1343
|
return {
|
|
1284
1344
|
content: [
|
|
1285
1345
|
{
|
|
1286
1346
|
type: "text",
|
|
1287
|
-
text: `Request not found: ${requestId}`
|
|
1347
|
+
text: `Request not found: ${requestId}${connectionNote}`
|
|
1288
1348
|
}
|
|
1289
1349
|
],
|
|
1290
1350
|
isError: true
|
|
@@ -1305,11 +1365,23 @@ registerToolWithTelemetry("get_network_stats", {
|
|
|
1305
1365
|
inputSchema: {}
|
|
1306
1366
|
}, async () => {
|
|
1307
1367
|
const stats = getNetworkStats(networkBuffer);
|
|
1368
|
+
// Check connection health
|
|
1369
|
+
let connectionWarning = "";
|
|
1370
|
+
if (networkBuffer.size === 0) {
|
|
1371
|
+
const status = await checkAndEnsureConnection();
|
|
1372
|
+
connectionWarning = status.message ? `\n\n${status.message}` : "";
|
|
1373
|
+
}
|
|
1374
|
+
else {
|
|
1375
|
+
const passive = getPassiveConnectionStatus();
|
|
1376
|
+
connectionWarning = !passive.connected
|
|
1377
|
+
? "\n\n[CONNECTION] Disconnected. Showing cached data. New data is not being captured."
|
|
1378
|
+
: "";
|
|
1379
|
+
}
|
|
1308
1380
|
return {
|
|
1309
1381
|
content: [
|
|
1310
1382
|
{
|
|
1311
1383
|
type: "text",
|
|
1312
|
-
text: `Network Statistics:\n\n${stats}`
|
|
1384
|
+
text: `Network Statistics:\n\n${stats}${connectionWarning}`
|
|
1313
1385
|
}
|
|
1314
1386
|
]
|
|
1315
1387
|
};
|