execbro 1.10.25 → 1.11.1
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 +1 -1
- package/build/__tests__/integration/native-logs.test.d.ts +2 -0
- package/build/__tests__/integration/native-logs.test.d.ts.map +1 -0
- package/build/__tests__/integration/native-logs.test.js +39 -0
- package/build/__tests__/integration/native-logs.test.js.map +1 -0
- package/build/__tests__/unit/clearLogsNative.test.d.ts +2 -0
- package/build/__tests__/unit/clearLogsNative.test.d.ts.map +1 -0
- package/build/__tests__/unit/clearLogsNative.test.js +43 -0
- package/build/__tests__/unit/clearLogsNative.test.js.map +1 -0
- package/build/__tests__/unit/componentFormatNaming.test.d.ts +2 -0
- package/build/__tests__/unit/componentFormatNaming.test.d.ts.map +1 -0
- package/build/__tests__/unit/componentFormatNaming.test.js +32 -0
- package/build/__tests__/unit/componentFormatNaming.test.js.map +1 -0
- package/build/__tests__/unit/getLogsEmptyContract.test.js +20 -7
- package/build/__tests__/unit/getLogsEmptyContract.test.js.map +1 -1
- package/build/__tests__/unit/getLogsNativeSource.test.d.ts +2 -0
- package/build/__tests__/unit/getLogsNativeSource.test.d.ts.map +1 -0
- package/build/__tests__/unit/getLogsNativeSource.test.js +138 -0
- package/build/__tests__/unit/getLogsNativeSource.test.js.map +1 -0
- package/build/__tests__/unit/jsLogEvents.test.d.ts +2 -0
- package/build/__tests__/unit/jsLogEvents.test.d.ts.map +1 -0
- package/build/__tests__/unit/jsLogEvents.test.js +58 -0
- package/build/__tests__/unit/jsLogEvents.test.js.map +1 -0
- package/build/__tests__/unit/logEventFormat.test.d.ts +2 -0
- package/build/__tests__/unit/logEventFormat.test.d.ts.map +1 -0
- package/build/__tests__/unit/logEventFormat.test.js +210 -0
- package/build/__tests__/unit/logEventFormat.test.js.map +1 -0
- package/build/__tests__/unit/logEvents.test.d.ts +2 -0
- package/build/__tests__/unit/logEvents.test.d.ts.map +1 -0
- package/build/__tests__/unit/logEvents.test.js +118 -0
- package/build/__tests__/unit/logEvents.test.js.map +1 -0
- package/build/__tests__/unit/logGrouping.test.d.ts +2 -0
- package/build/__tests__/unit/logGrouping.test.d.ts.map +1 -0
- package/build/__tests__/unit/logGrouping.test.js +104 -0
- package/build/__tests__/unit/logGrouping.test.js.map +1 -0
- package/build/__tests__/unit/logOwnership.test.d.ts +2 -0
- package/build/__tests__/unit/logOwnership.test.d.ts.map +1 -0
- package/build/__tests__/unit/logOwnership.test.js +118 -0
- package/build/__tests__/unit/logOwnership.test.js.map +1 -0
- package/build/__tests__/unit/logRelevance.test.d.ts +2 -0
- package/build/__tests__/unit/logRelevance.test.d.ts.map +1 -0
- package/build/__tests__/unit/logRelevance.test.js +30 -0
- package/build/__tests__/unit/logRelevance.test.js.map +1 -0
- package/build/__tests__/unit/logSourceAndroid.test.d.ts +2 -0
- package/build/__tests__/unit/logSourceAndroid.test.d.ts.map +1 -0
- package/build/__tests__/unit/logSourceAndroid.test.js +61 -0
- package/build/__tests__/unit/logSourceAndroid.test.js.map +1 -0
- package/build/__tests__/unit/logSourceIos.test.d.ts +2 -0
- package/build/__tests__/unit/logSourceIos.test.d.ts.map +1 -0
- package/build/__tests__/unit/logSourceIos.test.js +64 -0
- package/build/__tests__/unit/logSourceIos.test.js.map +1 -0
- package/build/__tests__/unit/logs.test.js +23 -0
- package/build/__tests__/unit/logs.test.js.map +1 -1
- package/build/__tests__/unit/nativeLogs.test.d.ts +2 -0
- package/build/__tests__/unit/nativeLogs.test.d.ts.map +1 -0
- package/build/__tests__/unit/nativeLogs.test.js +230 -0
- package/build/__tests__/unit/nativeLogs.test.js.map +1 -0
- package/build/__tests__/unit/toolsJson.test.js +11 -0
- package/build/__tests__/unit/toolsJson.test.js.map +1 -1
- package/build/core/componentSearch.d.ts +1 -1
- package/build/core/componentSearch.d.ts.map +1 -1
- package/build/core/componentSearch.js +8 -8
- package/build/core/componentSearch.js.map +1 -1
- package/build/core/componentTree.d.ts +1 -1
- package/build/core/componentTree.d.ts.map +1 -1
- package/build/core/componentTree.js +8 -8
- package/build/core/componentTree.js.map +1 -1
- package/build/core/guides.d.ts.map +1 -1
- package/build/core/guides.js +25 -0
- package/build/core/guides.js.map +1 -1
- package/build/core/index.d.ts +0 -2
- package/build/core/index.d.ts.map +1 -1
- package/build/core/index.js +0 -2
- package/build/core/index.js.map +1 -1
- package/build/core/jsLogEvents.d.ts +13 -0
- package/build/core/jsLogEvents.d.ts.map +1 -0
- package/build/core/jsLogEvents.js +65 -0
- package/build/core/jsLogEvents.js.map +1 -0
- package/build/core/logEventFormat.d.ts +14 -0
- package/build/core/logEventFormat.d.ts.map +1 -0
- package/build/core/logEventFormat.js +85 -0
- package/build/core/logEventFormat.js.map +1 -0
- package/build/core/logEvents.d.ts +115 -0
- package/build/core/logEvents.d.ts.map +1 -0
- package/build/core/logEvents.js +146 -0
- package/build/core/logEvents.js.map +1 -0
- package/build/core/logGrouping.d.ts +17 -0
- package/build/core/logGrouping.d.ts.map +1 -0
- package/build/core/logGrouping.js +134 -0
- package/build/core/logGrouping.js.map +1 -0
- package/build/core/logOwnership.d.ts +29 -0
- package/build/core/logOwnership.d.ts.map +1 -0
- package/build/core/logOwnership.js +83 -0
- package/build/core/logOwnership.js.map +1 -0
- package/build/core/logRelevance.d.ts +13 -0
- package/build/core/logRelevance.d.ts.map +1 -0
- package/build/core/logRelevance.js +23 -0
- package/build/core/logRelevance.js.map +1 -0
- package/build/core/logSourceAndroid.d.ts +27 -0
- package/build/core/logSourceAndroid.d.ts.map +1 -0
- package/build/core/logSourceAndroid.js +89 -0
- package/build/core/logSourceAndroid.js.map +1 -0
- package/build/core/logSourceIos.d.ts +26 -0
- package/build/core/logSourceIos.d.ts.map +1 -0
- package/build/core/logSourceIos.js +119 -0
- package/build/core/logSourceIos.js.map +1 -0
- package/build/core/logs.d.ts +5 -1
- package/build/core/logs.d.ts.map +1 -1
- package/build/core/logs.js +8 -1
- package/build/core/logs.js.map +1 -1
- package/build/core/nativeLogs.d.ts +75 -0
- package/build/core/nativeLogs.d.ts.map +1 -0
- package/build/core/nativeLogs.js +260 -0
- package/build/core/nativeLogs.js.map +1 -0
- package/build/core/screenLayout.d.ts +1 -1
- package/build/core/screenLayout.d.ts.map +1 -1
- package/build/core/screenLayout.js +3 -3
- package/build/core/screenLayout.js.map +1 -1
- package/build/core/types.d.ts +3 -2
- package/build/core/types.d.ts.map +1 -1
- package/build/tools/componentTools.js +6 -6
- package/build/tools/componentTools.js.map +1 -1
- package/build/tools/logTools.d.ts +25 -0
- package/build/tools/logTools.d.ts.map +1 -1
- package/build/tools/logTools.js +246 -70
- package/build/tools/logTools.js.map +1 -1
- package/build/tools/networkTools.d.ts.map +1 -1
- package/build/tools/networkTools.js +5 -44
- package/build/tools/networkTools.js.map +1 -1
- package/package.json +6 -4
- package/tools.json +447 -0
- package/build/core/format.d.ts +0 -8
- package/build/core/format.d.ts.map +0 -1
- package/build/core/format.js +0 -34
- package/build/core/format.js.map +0 -1
package/build/tools/logTools.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { registerToolWithTelemetry } from "../core/register.js";
|
|
3
|
-
import { getLogs, searchLogs, getLogSummary, getTotalLogCount, getConnectedAppByDevice, getFirstConnectedApp,
|
|
3
|
+
import { getLogs, searchLogs, getLogSummary, getTotalLogCount, getConnectedAppByDevice, getFirstConnectedApp, checkAndEnsureConnection, metroMissingHintIfAbsent, logBuffers, verifyLogPipeline, getPassiveConnectionStatus, connectedApps, getRecentGaps, formatDuration, getLogBuffer, } from "../core/index.js";
|
|
4
4
|
import { resolveLogBuffer } from "../core/toolHelpers.js";
|
|
5
5
|
import { diagnoseEmptyLogs } from "../core/logDiagnosis.js";
|
|
6
6
|
import { UserInputError } from "../core/errors.js";
|
|
7
7
|
import { isSDKInstalled, querySDKConsole, clearSDKConsole, getSDKConsoleStats, } from "../core/sdkBridge.js";
|
|
8
|
+
import { findLogEvent, nativeLogBuffers, getNativeLogBuffer } from "../core/logEvents.js";
|
|
9
|
+
import { jsEventsFromEntries } from "../core/jsLogEvents.js";
|
|
10
|
+
import { formatEventList, formatEventDetails } from "../core/logEventFormat.js";
|
|
11
|
+
import { collectNativeEvents, deviceKeyOf } from "../core/nativeLogs.js";
|
|
8
12
|
// Binds the live connection/pipeline probes for `diagnoseEmptyLogs`. Kept here
|
|
9
13
|
// so the diagnosis logic itself stays free of module-level state and testable.
|
|
10
14
|
function logDiagnosisDeps(device) {
|
|
@@ -14,11 +18,103 @@ function logDiagnosisDeps(device) {
|
|
|
14
18
|
verifyPipeline: verifyLogPipeline,
|
|
15
19
|
};
|
|
16
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Parse "5m" / "90s" / an ISO timestamp into an absolute Date.
|
|
23
|
+
*
|
|
24
|
+
* Distinguishes "not provided" from "provided but unparseable" — the latter
|
|
25
|
+
* silently falling back to the default watermark would look, from the
|
|
26
|
+
* caller's side, like their filter was honored when it was actually ignored.
|
|
27
|
+
*/
|
|
28
|
+
function parseSince(since) {
|
|
29
|
+
if (!since)
|
|
30
|
+
return { date: undefined };
|
|
31
|
+
const rel = since.match(/^(\d+)([smh])$/);
|
|
32
|
+
if (rel) {
|
|
33
|
+
const mult = { s: 1000, m: 60_000, h: 3_600_000 }[rel[2]];
|
|
34
|
+
return { date: new Date(Date.now() - Number(rel[1]) * mult) };
|
|
35
|
+
}
|
|
36
|
+
const parsed = new Date(since);
|
|
37
|
+
if (Number.isNaN(parsed.getTime())) {
|
|
38
|
+
return {
|
|
39
|
+
date: undefined,
|
|
40
|
+
note: `[NOTE] since="${since}" was not recognized (use an ISO timestamp or a duration like "5m"/"90s"/"2h") — showing the default window instead.`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return { date: parsed };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Bound the events shown on the native/merged path to `maxLogs`, applied
|
|
47
|
+
* AFTER kind-filtering and keeping the newest — when investigating a crash
|
|
48
|
+
* the latest one is the subject. Never truncates silently: an agent that
|
|
49
|
+
* cannot see the list was capped will assume it has the full picture and
|
|
50
|
+
* reason from a partial one. Exported (not a `__`-prefixed test hook) because
|
|
51
|
+
* it is a genuinely reusable, side-effect-free piece of the response shape.
|
|
52
|
+
*/
|
|
53
|
+
export function capEventsForDisplay(events, maxLogs) {
|
|
54
|
+
const capped = maxLogs > 0 && events.length > maxLogs ? events.slice(-maxLogs) : events;
|
|
55
|
+
const omitted = events.length - capped.length;
|
|
56
|
+
const note = omitted > 0
|
|
57
|
+
? `\n\n[${omitted} older event${omitted === 1 ? "" : "s"} not shown — raise maxLogs or narrow with kind/minLevel/since]`
|
|
58
|
+
: "";
|
|
59
|
+
return { capped, note };
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Native acquisition costs a ~1-1.5s subprocess per device, so it must never
|
|
63
|
+
* run on the hot path. It earns its cost in exactly one situation: the JS
|
|
64
|
+
* buffer is empty AND the app is not connected — which is what a native crash
|
|
65
|
+
* looks like from here. Mirrors get_bundle_errors' screenshot fallback, which
|
|
66
|
+
* likewise fires only when the cheap path has demonstrably failed.
|
|
67
|
+
*/
|
|
68
|
+
function shouldEscalateToNative(bufferEmpty, connected) {
|
|
69
|
+
return bufferEmpty && !connected;
|
|
70
|
+
}
|
|
71
|
+
const ESCALATION_COOLDOWN_MS = 30_000;
|
|
72
|
+
/**
|
|
73
|
+
* Negative-result cooldown for the empty-and-disconnected escalation, keyed by
|
|
74
|
+
* the `device` argument that produced the miss.
|
|
75
|
+
*
|
|
76
|
+
* A miss (buffer empty, disconnected, no crash found) still costs a
|
|
77
|
+
* subprocess per device. Without a cooldown, every get_logs call made while
|
|
78
|
+
* the app stays crashed-and-disconnected would re-pay that cost forever. 30s
|
|
79
|
+
* is short enough that a real crash occurring during the cooldown is still
|
|
80
|
+
* caught by the very next get_logs call once it expires, and long enough to
|
|
81
|
+
* stop a tight investigation loop from thrashing the device.
|
|
82
|
+
*
|
|
83
|
+
* Keying matters: a miss for device="A" says nothing about device B, and a
|
|
84
|
+
* process-wide latch would let one device's quiet period suppress another
|
|
85
|
+
* device's real crash. An undefined device queries every device at once, so
|
|
86
|
+
* caching that miss under a single key is correct.
|
|
87
|
+
*
|
|
88
|
+
* Cleared for a key whenever its escalation DOES find crashes, so a genuine
|
|
89
|
+
* crash is never suppressed by a stale miss.
|
|
90
|
+
*/
|
|
91
|
+
const lastEmptyEscalationAt = new Map();
|
|
92
|
+
function escalationKey(device) {
|
|
93
|
+
return device ?? "*";
|
|
94
|
+
}
|
|
95
|
+
function isEscalationCoolingDown(device) {
|
|
96
|
+
const at = lastEmptyEscalationAt.get(escalationKey(device));
|
|
97
|
+
return at !== undefined && Date.now() - at < ESCALATION_COOLDOWN_MS;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Test-only. Exercises the per-device cooldown map directly, so the
|
|
101
|
+
* per-device keying can be pinned without standing up a full get_logs
|
|
102
|
+
* invocation (device connection, CDP session, etc).
|
|
103
|
+
*/
|
|
104
|
+
export const __escalationCooldownTestHooks = {
|
|
105
|
+
isEscalationCoolingDown,
|
|
106
|
+
recordMiss: (device) => {
|
|
107
|
+
lastEmptyEscalationAt.set(escalationKey(device), Date.now());
|
|
108
|
+
},
|
|
109
|
+
reset: () => {
|
|
110
|
+
lastEmptyEscalationAt.clear();
|
|
111
|
+
},
|
|
112
|
+
};
|
|
17
113
|
export function registerLogTools(server) {
|
|
18
114
|
// Tool: Get console logs
|
|
19
115
|
registerToolWithTelemetry(server, "get_logs", {
|
|
20
116
|
description: "Retrieve console logs from connected React Native app. Tip: Use summary=true first for a quick overview (counts by level + last 5 messages), then fetch specific logs as needed.\n" +
|
|
21
|
-
"PURPOSE: Pull captured console output (log/warn/error/info/debug) from the in-memory buffer
|
|
117
|
+
"PURPOSE: Pull captured console output (log/warn/error/info/debug) from the in-memory buffer, and optionally native device logs (crashes, ANRs) via source=\"native\".\n" +
|
|
22
118
|
"WHEN TO USE: Start of any log-driven investigation, verifying a code change picked up via Fast Refresh, or confirming a reported error actually fires.\n" +
|
|
23
119
|
"WORKFLOW: scan_metro -> get_logs(summary=true) -> narrow with search_logs(text=\"...\") or get_logs(level=\"error\") -> clear_logs between reproductions.\n" +
|
|
24
120
|
"LIMITATIONS: Circular buffer (~500 entries). Only captures logs emitted after the app connected; pre-connect logs are lost.\n" +
|
|
@@ -47,24 +143,79 @@ export function registerLogTools(server) {
|
|
|
47
143
|
.optional()
|
|
48
144
|
.default(false)
|
|
49
145
|
.describe("Disable all truncation and return full messages. Tip: Use with lower maxLogs (e.g., 10) to avoid token overload when inspecting large objects."),
|
|
50
|
-
format: z
|
|
51
|
-
.enum(["text", "tonl"])
|
|
52
|
-
.optional()
|
|
53
|
-
.default("tonl")
|
|
54
|
-
.describe("Output format: 'text' or 'tonl' (default, compact token-optimized format, ~30-50% smaller)"),
|
|
55
146
|
summary: z
|
|
56
147
|
.boolean()
|
|
57
148
|
.optional()
|
|
58
149
|
.default(false)
|
|
59
150
|
.describe("Return summary statistics instead of full logs (count by level + last 5 messages). Use for quick overview."),
|
|
60
|
-
device: z.string().optional().describe("Target device name (substring match). Omit for all devices. Run get_apps to see connected devices.")
|
|
151
|
+
device: z.string().optional().describe("Target device name (substring match). Omit for all devices. Run get_apps to see connected devices."),
|
|
152
|
+
source: z
|
|
153
|
+
.enum(["js", "native", "all"])
|
|
154
|
+
.optional()
|
|
155
|
+
.default("js")
|
|
156
|
+
.describe("Which log stream to read. 'js' (default) = console output over CDP, instant. " +
|
|
157
|
+
"'native' = device logs (Android logcat / iOS os_log) filtered to this app — surfaces crashes, ANRs and OOM kills that never reach JS; costs ~1-1.5s per device. " +
|
|
158
|
+
"'all' = both, merged. When the JS buffer is empty and the app is disconnected, native crash events are consulted automatically."),
|
|
159
|
+
kind: z
|
|
160
|
+
.enum(["crash", "anr", "exception", "lifecycle", "message"])
|
|
161
|
+
.optional()
|
|
162
|
+
.describe("Filter native/merged events by kind. Omit for all kinds."),
|
|
163
|
+
minLevel: z
|
|
164
|
+
.enum(["debug", "info", "warn", "error", "fatal"])
|
|
165
|
+
.optional()
|
|
166
|
+
.default("warn")
|
|
167
|
+
.describe("Relevance floor for native events (default: warn). Crashes and ANRs are always returned regardless. Lower to 'debug' to see native library loading."),
|
|
168
|
+
since: z
|
|
169
|
+
.string()
|
|
170
|
+
.optional()
|
|
171
|
+
.describe("Native acquisition window — ISO timestamp or a duration like \"5m\". Widens the device query; already-seen events are still deduped.")
|
|
61
172
|
}
|
|
62
|
-
}, async ({ maxLogs, level, startFromText, maxMessageLength, verbose,
|
|
173
|
+
}, async ({ maxLogs, level, startFromText, maxMessageLength, verbose, summary, device, source, kind, minLevel, since }) => {
|
|
63
174
|
// Check if SDK is installed — prefer SDK data for richer logs.
|
|
64
175
|
// `device` must be threaded through: without it the SDK bridge reads
|
|
65
176
|
// whichever app happens to be first, so a multi-device session
|
|
66
177
|
// silently answers with the wrong device's buffer.
|
|
67
178
|
const sdkAvailable = await isSDKInstalled(device);
|
|
179
|
+
// Prepended to every return's text below when source==="all".
|
|
180
|
+
let nativePrefix = "";
|
|
181
|
+
// Set when source==="native"/"all" already paid for a native fetch
|
|
182
|
+
// this call, so the empty+disconnected escalation below can reuse
|
|
183
|
+
// it instead of paying twice.
|
|
184
|
+
let nativeEventsForEscalation;
|
|
185
|
+
// Explicit native / merged read — the caller asked for the cost.
|
|
186
|
+
if (source === "native" || source === "all") {
|
|
187
|
+
const sinceParsed = parseSince(since);
|
|
188
|
+
const nativeOpts = { device, minLevel, since: sinceParsed.date };
|
|
189
|
+
const { events, notes } = await collectNativeEvents(nativeOpts);
|
|
190
|
+
nativeEventsForEscalation = events;
|
|
191
|
+
const filtered = kind ? events.filter((e) => e.kind === kind) : events;
|
|
192
|
+
const { capped, note: cappedNote } = capEventsForDisplay(filtered, maxLogs);
|
|
193
|
+
const showDevice = nativeLogBuffers.size > 1;
|
|
194
|
+
const noteText = notes.length > 0 ? `\n\n${notes.join("\n")}` : "";
|
|
195
|
+
const sinceNote = sinceParsed.note ? `\n\n${sinceParsed.note}` : "";
|
|
196
|
+
const rendered = formatEventList(capped, { showDevice, maxLength: maxMessageLength, verbose });
|
|
197
|
+
if (source === "native") {
|
|
198
|
+
// Emptiness is judged on the UNFILTERED events: a `kind`
|
|
199
|
+
// filter matching nothing is a filter outcome, not a
|
|
200
|
+
// capture failure — mirrors the js-buffer `filtered_out`
|
|
201
|
+
// handling below. Capping is a display bound, not a
|
|
202
|
+
// capture/filter outcome, so it plays no part in either
|
|
203
|
+
// signal.
|
|
204
|
+
const nativeEmpty = events.length === 0;
|
|
205
|
+
const nativeEmptyReason = !nativeEmpty && filtered.length === 0 ? "filtered_out" : undefined;
|
|
206
|
+
return {
|
|
207
|
+
_emptyResult: nativeEmpty,
|
|
208
|
+
...(nativeEmptyReason && { _emptyReason: nativeEmptyReason }),
|
|
209
|
+
content: [{
|
|
210
|
+
type: "text",
|
|
211
|
+
text: `Native Log Events (${capped.length}):\n\n${rendered}${cappedNote}${noteText}${sinceNote}\n\nUse get_log_details("<id>") for a full backtrace.`
|
|
212
|
+
}]
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
// source === "all": fall through so JS output is appended below,
|
|
216
|
+
// carrying the native block with it.
|
|
217
|
+
nativePrefix = `Native Log Events (${capped.length}):\n\n${rendered}${cappedNote}${noteText}${sinceNote}\n\n`;
|
|
218
|
+
}
|
|
68
219
|
if (sdkAvailable) {
|
|
69
220
|
if (summary) {
|
|
70
221
|
const sdkStats = await getSDKConsoleStats(device);
|
|
@@ -81,23 +232,12 @@ export function registerLogTools(server) {
|
|
|
81
232
|
}
|
|
82
233
|
// Served real SDK data — not empty, regardless of what the
|
|
83
234
|
// (separate) CDP buffer happens to hold.
|
|
84
|
-
return { _emptyResult: false, content: [{ type: "text", text:
|
|
235
|
+
return { _emptyResult: false, content: [{ type: "text", text: `${nativePrefix}Log Summary (SDK):\n\n${lines.join("\n")}` }] };
|
|
85
236
|
}
|
|
86
237
|
}
|
|
87
238
|
const sdkResult = await querySDKConsole({ count: maxLogs, level, text: startFromText }, device);
|
|
88
239
|
if (sdkResult.success && sdkResult.data.length > 0) {
|
|
89
240
|
const entries = sdkResult.data;
|
|
90
|
-
if (format === "tonl") {
|
|
91
|
-
const tonlLines = entries.map((e) => {
|
|
92
|
-
const time = new Date(e.timestamp).toLocaleTimeString();
|
|
93
|
-
let msg = e.message;
|
|
94
|
-
if (!verbose && maxMessageLength > 0 && msg.length > maxMessageLength) {
|
|
95
|
-
msg = msg.slice(0, maxMessageLength) + "...";
|
|
96
|
-
}
|
|
97
|
-
return `${time} [${e.level}] ${msg}`;
|
|
98
|
-
});
|
|
99
|
-
return { _emptyResult: false, content: [{ type: "text", text: `Console Logs (${entries.length} entries, SDK):\n\n${tonlLines.join("\n")}` }] };
|
|
100
|
-
}
|
|
101
241
|
const lines = entries.map((e) => {
|
|
102
242
|
const time = new Date(e.timestamp).toLocaleTimeString();
|
|
103
243
|
let msg = e.message;
|
|
@@ -106,7 +246,7 @@ export function registerLogTools(server) {
|
|
|
106
246
|
}
|
|
107
247
|
return `[${time}] [${e.level.toUpperCase()}] ${msg}`;
|
|
108
248
|
});
|
|
109
|
-
return { _emptyResult: false, content: [{ type: "text", text:
|
|
249
|
+
return { _emptyResult: false, content: [{ type: "text", text: `${nativePrefix}Console Logs (${entries.length} entries, SDK):\n\n${lines.join("\n")}` }] };
|
|
110
250
|
}
|
|
111
251
|
}
|
|
112
252
|
// Return summary if requested
|
|
@@ -130,7 +270,7 @@ export function registerLogTools(server) {
|
|
|
130
270
|
content: [
|
|
131
271
|
{
|
|
132
272
|
type: "text",
|
|
133
|
-
text:
|
|
273
|
+
text: `${nativePrefix}Log Summary:\n\n${summaryText}${connectionWarning}`
|
|
134
274
|
}
|
|
135
275
|
]
|
|
136
276
|
};
|
|
@@ -138,7 +278,7 @@ export function registerLogTools(server) {
|
|
|
138
278
|
// Resolved once: for the all-devices case this copies every buffered
|
|
139
279
|
// entry into a merged buffer, so it is not free to call repeatedly.
|
|
140
280
|
const logBuffer = resolveLogBuffer(device);
|
|
141
|
-
const { logs, count
|
|
281
|
+
const { logs, count } = getLogs(logBuffer, {
|
|
142
282
|
maxLogs,
|
|
143
283
|
level,
|
|
144
284
|
startFromText,
|
|
@@ -171,16 +311,47 @@ export function registerLogTools(server) {
|
|
|
171
311
|
maxLogs, level, startFromText, maxMessageLength, verbose
|
|
172
312
|
});
|
|
173
313
|
if (retryResult.count > 0) {
|
|
314
|
+
// Route through the same event pipeline as the final JS
|
|
315
|
+
// return below — retryResult.formatted is legacy text with
|
|
316
|
+
// no [jN] ids, which would leave get_log_details unusable
|
|
317
|
+
// for whatever this call surfaces.
|
|
318
|
+
const retryEvents = jsEventsFromEntries(retryResult.logs, device ?? "all devices");
|
|
319
|
+
const retryFiltered = kind ? retryEvents.filter((e) => e.kind === kind) : retryEvents;
|
|
320
|
+
const retryRendered = formatEventList(retryFiltered, { showDevice: logBuffers.size > 1, maxLength: maxMessageLength, verbose });
|
|
174
321
|
// Return the recovered logs instead of empty
|
|
175
322
|
return {
|
|
176
323
|
_emptyResult: false,
|
|
177
324
|
_emptyReason: "pipeline_recovered",
|
|
178
325
|
content: [{
|
|
179
326
|
type: "text",
|
|
180
|
-
text:
|
|
327
|
+
text: `${nativePrefix}React Native Console Logs (${retryFiltered.length} entries):\n\n${retryRendered}${connectionWarning}`
|
|
328
|
+
}]
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
if (shouldEscalateToNative(bufferEmpty, getPassiveConnectionStatus().connected) && !isEscalationCoolingDown(device)) {
|
|
333
|
+
// Safe to reuse a fetch taken at a higher minLevel: isRelevant
|
|
334
|
+
// exempts crash/anr from the floor entirely, so they are present
|
|
335
|
+
// regardless of what the caller asked for.
|
|
336
|
+
// Reuse the native fetch already paid for by source==="all"
|
|
337
|
+
// instead of running the subprocess a second time.
|
|
338
|
+
const events = nativeEventsForEscalation
|
|
339
|
+
?? (await collectNativeEvents({ device, minLevel: "warn" })).events;
|
|
340
|
+
const crashes = events.filter((e) => e.kind === "crash" || e.kind === "anr");
|
|
341
|
+
if (crashes.length > 0) {
|
|
342
|
+
lastEmptyEscalationAt.delete(escalationKey(device));
|
|
343
|
+
return {
|
|
344
|
+
_emptyResult: false,
|
|
345
|
+
_emptyReason: "native_crash_found",
|
|
346
|
+
content: [{
|
|
347
|
+
type: "text",
|
|
348
|
+
text: `${nativePrefix}React Native Console Logs (0 entries) — app is not connected.\n\n` +
|
|
349
|
+
`Native crash found:\n${formatEventList(crashes, { showDevice: nativeLogBuffers.size > 1, maxLength: maxMessageLength, verbose })}\n\n` +
|
|
350
|
+
`Use get_log_details("${crashes[0].id}") for the full backtrace.`
|
|
181
351
|
}]
|
|
182
352
|
};
|
|
183
353
|
}
|
|
354
|
+
lastEmptyEscalationAt.set(escalationKey(device), Date.now());
|
|
184
355
|
}
|
|
185
356
|
// Diagnostic metadata for empty results (local dev dashboard only —
|
|
186
357
|
// responsePreview is never sent to the remote telemetry backend).
|
|
@@ -215,27 +386,16 @@ export function registerLogTools(server) {
|
|
|
215
386
|
}
|
|
216
387
|
}
|
|
217
388
|
const startNote = startFromText ? ` (starting from "${startFromText}")` : "";
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
return {
|
|
222
|
-
_emptyResult: bufferEmpty,
|
|
223
|
-
...(emptyReason && { _emptyReason: emptyReason }),
|
|
224
|
-
content: [
|
|
225
|
-
{
|
|
226
|
-
type: "text",
|
|
227
|
-
text: `React Native Console Logs (${count} entries)${startNote}:\n\n${tonlOutput}${gapWarning}${connectionWarning}`
|
|
228
|
-
}
|
|
229
|
-
]
|
|
230
|
-
};
|
|
231
|
-
}
|
|
389
|
+
const jsEvents = jsEventsFromEntries(logs, device ?? "all devices");
|
|
390
|
+
const jsFiltered = kind ? jsEvents.filter((e) => e.kind === kind) : jsEvents;
|
|
391
|
+
const jsRendered = formatEventList(jsFiltered, { showDevice: logBuffers.size > 1, maxLength: maxMessageLength, verbose });
|
|
232
392
|
return {
|
|
233
393
|
_emptyResult: bufferEmpty,
|
|
234
394
|
...(emptyReason && { _emptyReason: emptyReason }),
|
|
235
395
|
content: [
|
|
236
396
|
{
|
|
237
397
|
type: "text",
|
|
238
|
-
text:
|
|
398
|
+
text: `${nativePrefix}React Native Console Logs (${jsFiltered.length} entries)${startNote}:\n\n${jsRendered}${gapWarning}${connectionWarning}`
|
|
239
399
|
}
|
|
240
400
|
]
|
|
241
401
|
};
|
|
@@ -267,14 +427,9 @@ export function registerLogTools(server) {
|
|
|
267
427
|
.default(500)
|
|
268
428
|
.describe("Max characters per message (default: 500, set to 0 for unlimited)"),
|
|
269
429
|
verbose: z.boolean().optional().default(false).describe("Disable all truncation and return full messages"),
|
|
270
|
-
format: z
|
|
271
|
-
.enum(["text", "tonl"])
|
|
272
|
-
.optional()
|
|
273
|
-
.default("tonl")
|
|
274
|
-
.describe("Output format: 'text' or 'tonl' (default, compact token-optimized format)"),
|
|
275
430
|
device: z.string().optional().describe("Target device name (substring match). Omit for all devices. Run get_apps to see connected devices.")
|
|
276
431
|
}
|
|
277
|
-
}, async ({ text, maxResults, maxMessageLength, verbose,
|
|
432
|
+
}, async ({ text, maxResults, maxMessageLength, verbose, device }) => {
|
|
278
433
|
// Check if SDK is installed — prefer SDK data. See get_logs: the
|
|
279
434
|
// device must be threaded through, and an empty SDK result falls
|
|
280
435
|
// through to the CDP buffer instead of short-circuiting.
|
|
@@ -283,17 +438,6 @@ export function registerLogTools(server) {
|
|
|
283
438
|
const sdkResult = await querySDKConsole({ count: maxResults, text }, device);
|
|
284
439
|
if (sdkResult.success && sdkResult.data.length > 0) {
|
|
285
440
|
const entries = sdkResult.data;
|
|
286
|
-
if (format === "tonl") {
|
|
287
|
-
const tonlLines = entries.map((e) => {
|
|
288
|
-
const time = new Date(e.timestamp).toLocaleTimeString();
|
|
289
|
-
let msg = e.message;
|
|
290
|
-
if (!verbose && maxMessageLength > 0 && msg.length > maxMessageLength) {
|
|
291
|
-
msg = msg.slice(0, maxMessageLength) + "...";
|
|
292
|
-
}
|
|
293
|
-
return `${time} [${e.level}] ${msg}`;
|
|
294
|
-
});
|
|
295
|
-
return { content: [{ type: "text", text: `Search results for "${text}" (${entries.length} matches, SDK):\n\n${tonlLines.join("\n")}` }] };
|
|
296
|
-
}
|
|
297
441
|
const lines = entries.map((e) => {
|
|
298
442
|
const time = new Date(e.timestamp).toLocaleTimeString();
|
|
299
443
|
let msg = e.message;
|
|
@@ -305,7 +449,7 @@ export function registerLogTools(server) {
|
|
|
305
449
|
return { content: [{ type: "text", text: `Search results for "${text}" (${entries.length} matches, SDK):\n\n${lines.join("\n")}` }] };
|
|
306
450
|
}
|
|
307
451
|
}
|
|
308
|
-
const {
|
|
452
|
+
const { count, formatted } = searchLogs(resolveLogBuffer(device), text, { maxResults, maxMessageLength, verbose });
|
|
309
453
|
// Check connection health
|
|
310
454
|
let connectionWarning = "";
|
|
311
455
|
if (count === 0) {
|
|
@@ -319,18 +463,6 @@ export function registerLogTools(server) {
|
|
|
319
463
|
? "\n\n[CONNECTION] Disconnected. Showing cached data. New data is not being captured."
|
|
320
464
|
: "";
|
|
321
465
|
}
|
|
322
|
-
// Use TONL format if requested
|
|
323
|
-
if (format === "tonl") {
|
|
324
|
-
const tonlOutput = formatLogsAsTonl(logs, { maxMessageLength: verbose ? 0 : maxMessageLength });
|
|
325
|
-
return {
|
|
326
|
-
content: [
|
|
327
|
-
{
|
|
328
|
-
type: "text",
|
|
329
|
-
text: `Search results for "${text}" (${count} matches):\n\n${tonlOutput}${connectionWarning}`
|
|
330
|
-
}
|
|
331
|
-
]
|
|
332
|
-
};
|
|
333
|
-
}
|
|
334
466
|
return {
|
|
335
467
|
content: [
|
|
336
468
|
{
|
|
@@ -367,6 +499,16 @@ export function registerLogTools(server) {
|
|
|
367
499
|
if (sdkResult.success && sdkResult.count)
|
|
368
500
|
count += sdkResult.count;
|
|
369
501
|
}
|
|
502
|
+
// Clear that device's native buffer too, otherwise a targeted
|
|
503
|
+
// clear leaves native (logcat/os_log) events behind and
|
|
504
|
+
// get_logs(source="native") still shows pre-repro entries. The
|
|
505
|
+
// native buffer deliberately keeps its watermark on clear (see
|
|
506
|
+
// the all-devices branch below) so cleared events are not
|
|
507
|
+
// re-ingested on the next fetch.
|
|
508
|
+
const deviceKey = deviceKeyOf(app);
|
|
509
|
+
if (deviceKey) {
|
|
510
|
+
count += getNativeLogBuffer(deviceKey).clear();
|
|
511
|
+
}
|
|
370
512
|
return { content: [{ type: "text", text: `Cleared ${count} log entries from ${deviceName}.` }] };
|
|
371
513
|
}
|
|
372
514
|
// Clear all
|
|
@@ -382,7 +524,41 @@ export function registerLogTools(server) {
|
|
|
382
524
|
total += sdkResult.count;
|
|
383
525
|
}
|
|
384
526
|
}
|
|
527
|
+
// Native buffers keep their watermark so cleared events are not
|
|
528
|
+
// re-ingested on the next fetch.
|
|
529
|
+
for (const buffer of nativeLogBuffers.values()) {
|
|
530
|
+
total += buffer.clear();
|
|
531
|
+
}
|
|
385
532
|
return { content: [{ type: "text", text: `Cleared ${total} log entries from all devices.` }] };
|
|
386
533
|
});
|
|
534
|
+
// Tool: Get full payload for one log event
|
|
535
|
+
registerToolWithTelemetry(server, "get_log_details", {
|
|
536
|
+
description: "Get the full payload of a single log event — complete stack trace, backtrace, or oversized message.\n" +
|
|
537
|
+
"PURPOSE: Expand one row from get_logs into its full text. A crash row collapses a 60-line backtrace; this returns all of it.\n" +
|
|
538
|
+
"WHEN TO USE: After get_logs shows an event you need to read in full (a crash, an exception, a large payload).\n" +
|
|
539
|
+
"WORKFLOW: get_logs -> copy the id (e.g. \"n7\") -> get_log_details(id=\"n7\").\n" +
|
|
540
|
+
"LIMITATIONS: Ids are valid until that device's buffer rolls over or clear_logs runs, not for the whole server session — call get_logs again to get fresh ones. Reads the buffer — it does not re-query the device.\n" +
|
|
541
|
+
"GOOD: get_log_details({ id: \"n7\" })\n" +
|
|
542
|
+
"BAD: Guessing ids — always take them from get_logs.\n" +
|
|
543
|
+
"SEE ALSO: call get_usage_guide(topic=\"logs\") for the full console-debugging playbook.",
|
|
544
|
+
inputSchema: {
|
|
545
|
+
id: z.string().describe("Event id from get_logs (e.g. \"n7\")"),
|
|
546
|
+
maxLength: z.coerce
|
|
547
|
+
.number()
|
|
548
|
+
.optional()
|
|
549
|
+
.default(4000)
|
|
550
|
+
.describe("Max characters of payload (default: 4000, 0 for unlimited)"),
|
|
551
|
+
verbose: z.boolean().optional().default(false).describe("Disable truncation entirely")
|
|
552
|
+
}
|
|
553
|
+
}, async ({ id, maxLength, verbose }) => {
|
|
554
|
+
const event = findLogEvent(id);
|
|
555
|
+
if (!event) {
|
|
556
|
+
throw new UserInputError(`No log event with id "${id}". Ids come from get_logs — "n7" for native events, "j12" for console entries — ` +
|
|
557
|
+
`and are valid until that device's buffer rolls over or clear_logs runs. Call get_logs again to refresh them.`);
|
|
558
|
+
}
|
|
559
|
+
return {
|
|
560
|
+
content: [{ type: "text", text: formatEventDetails(event, { maxLength, verbose }) }]
|
|
561
|
+
};
|
|
562
|
+
});
|
|
387
563
|
}
|
|
388
564
|
//# sourceMappingURL=logTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logTools.js","sourceRoot":"","sources":["../../src/tools/logTools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logTools.js","sourceRoot":"","sources":["../../src/tools/logTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkTools.d.ts","sourceRoot":"","sources":["../../src/tools/networkTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"networkTools.d.ts","sourceRoot":"","sources":["../../src/tools/networkTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuCzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+e5D"}
|