execbro 1.10.23 → 1.10.24

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 (70) hide show
  1. package/README.md +2 -1
  2. package/build/__tests__/unit/componentSource.test.d.ts +2 -0
  3. package/build/__tests__/unit/componentSource.test.d.ts.map +1 -0
  4. package/build/__tests__/unit/componentSource.test.js +67 -0
  5. package/build/__tests__/unit/componentSource.test.js.map +1 -0
  6. package/build/__tests__/unit/componentSourceResolve.test.d.ts +2 -0
  7. package/build/__tests__/unit/componentSourceResolve.test.d.ts.map +1 -0
  8. package/build/__tests__/unit/componentSourceResolve.test.js +91 -0
  9. package/build/__tests__/unit/componentSourceResolve.test.js.map +1 -0
  10. package/build/__tests__/unit/inspectorHarvest.test.d.ts +2 -0
  11. package/build/__tests__/unit/inspectorHarvest.test.d.ts.map +1 -0
  12. package/build/__tests__/unit/inspectorHarvest.test.js +61 -0
  13. package/build/__tests__/unit/inspectorHarvest.test.js.map +1 -0
  14. package/build/__tests__/unit/inspectorSource.test.d.ts +2 -0
  15. package/build/__tests__/unit/inspectorSource.test.d.ts.map +1 -0
  16. package/build/__tests__/unit/inspectorSource.test.js +74 -0
  17. package/build/__tests__/unit/inspectorSource.test.js.map +1 -0
  18. package/build/__tests__/unit/selectionBuffer.test.d.ts +2 -0
  19. package/build/__tests__/unit/selectionBuffer.test.d.ts.map +1 -0
  20. package/build/__tests__/unit/selectionBuffer.test.js +86 -0
  21. package/build/__tests__/unit/selectionBuffer.test.js.map +1 -0
  22. package/build/__tests__/unit/selectionPoller.test.d.ts +2 -0
  23. package/build/__tests__/unit/selectionPoller.test.d.ts.map +1 -0
  24. package/build/__tests__/unit/selectionPoller.test.js +109 -0
  25. package/build/__tests__/unit/selectionPoller.test.js.map +1 -0
  26. package/build/__tests__/unit/symbolicate.test.d.ts +2 -0
  27. package/build/__tests__/unit/symbolicate.test.d.ts.map +1 -0
  28. package/build/__tests__/unit/symbolicate.test.js +154 -0
  29. package/build/__tests__/unit/symbolicate.test.js.map +1 -0
  30. package/build/core/componentSource.d.ts +62 -0
  31. package/build/core/componentSource.d.ts.map +1 -0
  32. package/build/core/componentSource.js +268 -0
  33. package/build/core/componentSource.js.map +1 -0
  34. package/build/core/connection.d.ts.map +1 -1
  35. package/build/core/connection.js +4 -0
  36. package/build/core/connection.js.map +1 -1
  37. package/build/core/guides.js +1 -1
  38. package/build/core/index.d.ts +4 -1
  39. package/build/core/index.d.ts.map +1 -1
  40. package/build/core/index.js +4 -1
  41. package/build/core/index.js.map +1 -1
  42. package/build/core/inspector.d.ts +24 -0
  43. package/build/core/inspector.d.ts.map +1 -1
  44. package/build/core/inspector.js +58 -0
  45. package/build/core/inspector.js.map +1 -1
  46. package/build/core/selectionBuffer.d.ts +42 -0
  47. package/build/core/selectionBuffer.d.ts.map +1 -0
  48. package/build/core/selectionBuffer.js +51 -0
  49. package/build/core/selectionBuffer.js.map +1 -0
  50. package/build/core/selectionPoller.d.ts +13 -0
  51. package/build/core/selectionPoller.d.ts.map +1 -0
  52. package/build/core/selectionPoller.js +102 -0
  53. package/build/core/selectionPoller.js.map +1 -0
  54. package/build/core/symbolicate.d.ts +18 -0
  55. package/build/core/symbolicate.d.ts.map +1 -0
  56. package/build/core/symbolicate.js +119 -0
  57. package/build/core/symbolicate.js.map +1 -0
  58. package/build/tools/componentTools.d.ts.map +1 -1
  59. package/build/tools/componentTools.js +78 -9
  60. package/build/tools/componentTools.js.map +1 -1
  61. package/build/tools/connectionTools.d.ts.map +1 -1
  62. package/build/tools/connectionTools.js +3 -1
  63. package/build/tools/connectionTools.js.map +1 -1
  64. package/build/tools/interactionTools.d.ts.map +1 -1
  65. package/build/tools/interactionTools.js +1 -0
  66. package/build/tools/interactionTools.js.map +1 -1
  67. package/build/tools/screenshotTools.d.ts.map +1 -1
  68. package/build/tools/screenshotTools.js +3 -0
  69. package/build/tools/screenshotTools.js.map +1 -1
  70. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ export declare const IDLE_INTERVAL_MS = 2000;
2
+ export declare const ACTIVE_INTERVAL_MS = 500;
3
+ /**
4
+ * One poll cycle. The probe is cheap and runs every tick; the harvest measures
5
+ * host fibers and runs only when the probe reports a change - once per tap.
6
+ * Returns whether an entry was buffered.
7
+ */
8
+ export declare function pollOnce(device: string): Promise<boolean>;
9
+ export declare function isSelectionPollerRunning(device: string): boolean;
10
+ export declare function startSelectionPoller(device: string): void;
11
+ export declare function stopSelectionPoller(device: string): void;
12
+ export declare function stopAllSelectionPollers(): void;
13
+ //# sourceMappingURL=selectionPoller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectionPoller.d.ts","sourceRoot":"","sources":["../../src/core/selectionPoller.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAStC;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2D/D;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAoBzD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIxD;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C"}
@@ -0,0 +1,102 @@
1
+ import { executeInApp } from "./jsExecute.js";
2
+ import { buildSelectionProbeExpression, buildDebugStackHarvestExpression, } from "./componentSource.js";
3
+ import { selectionBuffer } from "./selectionBuffer.js";
4
+ export const IDLE_INTERVAL_MS = 2000;
5
+ export const ACTIVE_INTERVAL_MS = 500;
6
+ const timers = new Map();
7
+ let entryCounter = 0;
8
+ function pollingDisabled() {
9
+ return process.env.EXECBRO_DISABLE_SELECTION_POLL === "1";
10
+ }
11
+ /**
12
+ * One poll cycle. The probe is cheap and runs every tick; the harvest measures
13
+ * host fibers and runs only when the probe reports a change - once per tap.
14
+ * Returns whether an entry was buffered.
15
+ */
16
+ export async function pollOnce(device) {
17
+ let probe;
18
+ try {
19
+ const raw = await executeInApp(buildSelectionProbeExpression(), false, {
20
+ maxRetries: 0,
21
+ autoReconnect: false,
22
+ timeoutMs: 3000,
23
+ originatingToolName: "selection_poll",
24
+ }, device);
25
+ if (!raw.success || !raw.result)
26
+ return false;
27
+ probe = JSON.parse(raw.result);
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ if (!probe.changed || !probe.selected)
33
+ return false;
34
+ let stacks = [];
35
+ if (probe.frame) {
36
+ const centreX = probe.frame.left + probe.frame.width / 2;
37
+ const centreY = probe.frame.top + probe.frame.height / 2;
38
+ try {
39
+ const harvest = await executeInApp(buildDebugStackHarvestExpression(centreX, centreY), true, {
40
+ maxRetries: 0,
41
+ autoReconnect: false,
42
+ timeoutMs: 3000,
43
+ originatingToolName: "selection_poll",
44
+ }, device);
45
+ if (harvest.success && harvest.result) {
46
+ const parsed = JSON.parse(harvest.result);
47
+ stacks = parsed.stacks ?? [];
48
+ }
49
+ }
50
+ catch {
51
+ stacks = [];
52
+ }
53
+ }
54
+ entryCounter += 1;
55
+ return selectionBuffer.add({
56
+ id: `sel-${Date.now()}-${entryCounter}`,
57
+ device,
58
+ timestamp: Date.now(),
59
+ element: probe.element ?? "Unknown",
60
+ path: probe.path ?? "",
61
+ hierarchy: probe.hierarchy ?? [],
62
+ frame: probe.frame ?? null,
63
+ style: probe.style ?? null,
64
+ stacks,
65
+ });
66
+ }
67
+ export function isSelectionPollerRunning(device) {
68
+ return timers.has(device);
69
+ }
70
+ export function startSelectionPoller(device) {
71
+ if (pollingDisabled() || timers.has(device))
72
+ return;
73
+ const schedule = (delay) => {
74
+ const timer = setTimeout(async () => {
75
+ let active = false;
76
+ try {
77
+ active = await pollOnce(device);
78
+ }
79
+ catch {
80
+ active = false;
81
+ }
82
+ if (timers.has(device)) {
83
+ schedule(active ? ACTIVE_INTERVAL_MS : IDLE_INTERVAL_MS);
84
+ }
85
+ }, delay);
86
+ timer.unref?.();
87
+ timers.set(device, timer);
88
+ };
89
+ schedule(IDLE_INTERVAL_MS);
90
+ }
91
+ export function stopSelectionPoller(device) {
92
+ const timer = timers.get(device);
93
+ if (timer)
94
+ clearTimeout(timer);
95
+ timers.delete(device);
96
+ }
97
+ export function stopAllSelectionPollers() {
98
+ for (const device of [...timers.keys()]) {
99
+ stopSelectionPoller(device);
100
+ }
101
+ }
102
+ //# sourceMappingURL=selectionPoller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectionPoller.js","sourceRoot":"","sources":["../../src/core/selectionPoller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface StackFrame {
2
+ file: string;
3
+ lineNumber: number;
4
+ column: number;
5
+ methodName: string | null;
6
+ }
7
+ export interface SymbolicatedFrame {
8
+ file: string;
9
+ lineNumber: number;
10
+ column: number;
11
+ methodName: string | null;
12
+ collapse: boolean;
13
+ }
14
+ export declare function clearSymbolicateCache(): void;
15
+ export declare function parseStackString(stack: string, limit?: number): StackFrame[];
16
+ export declare function firstUserFrame(frames: SymbolicatedFrame[]): SymbolicatedFrame | null;
17
+ export declare function symbolicateFrames(frames: StackFrame[], timeoutMs?: number): Promise<SymbolicatedFrame[] | null>;
18
+ //# sourceMappingURL=symbolicate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbolicate.d.ts","sourceRoot":"","sources":["../../src/core/symbolicate.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACrB;AAgBD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,UAAU,EAAE,CAevE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAKpF;AAkBD,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,UAAU,EAAE,EACpB,SAAS,SAAQ,GAClB,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,CA0DrC"}
@@ -0,0 +1,119 @@
1
+ // Matches Hermes/V8 frames:
2
+ // " at HomeScreen (http://host:8081/bundle?a=b:342013:64)"
3
+ // " at http://host:8081/bundle:100:5"
4
+ // The file group is greedy so the trailing ":line:col" anchors the match at the
5
+ // end — a lazy group would split on the colon inside "http://".
6
+ const FRAME_RE = /^\s*at\s+(?:(.+?)\s+\()?(.*):(\d+):(\d+)\)?\s*$/;
7
+ const MAX_CACHE_ENTRIES = 500;
8
+ const cache = new Map();
9
+ function cacheKey(frame) {
10
+ return `${frame.file}|${frame.lineNumber}|${frame.column}`;
11
+ }
12
+ export function clearSymbolicateCache() {
13
+ cache.clear();
14
+ }
15
+ export function parseStackString(stack, limit = 5) {
16
+ if (!stack)
17
+ return [];
18
+ const out = [];
19
+ for (const line of stack.split("\n")) {
20
+ if (out.length >= limit)
21
+ break;
22
+ const m = FRAME_RE.exec(line);
23
+ if (!m)
24
+ continue;
25
+ out.push({
26
+ methodName: m[1] ?? null,
27
+ file: m[2],
28
+ lineNumber: Number(m[3]),
29
+ column: Number(m[4]),
30
+ });
31
+ }
32
+ return out;
33
+ }
34
+ export function firstUserFrame(frames) {
35
+ for (const frame of frames) {
36
+ if (!frame.collapse)
37
+ return frame;
38
+ }
39
+ return null;
40
+ }
41
+ /**
42
+ * Metro's /symbolicate endpoint. The `file` values are sent verbatim because
43
+ * Metro matches them against its own bundle registry — rewriting them breaks
44
+ * the lookup. Only the POST target is rewritten: the frames carry the LAN
45
+ * address the device used, while execbro reaches Metro on loopback.
46
+ */
47
+ function symbolicateEndpoint(file) {
48
+ try {
49
+ const url = new URL(file);
50
+ if (url.port)
51
+ return `http://127.0.0.1:${url.port}/symbolicate`;
52
+ return `${url.origin}/symbolicate`;
53
+ }
54
+ catch {
55
+ return "http://127.0.0.1:8081/symbolicate";
56
+ }
57
+ }
58
+ export async function symbolicateFrames(frames, timeoutMs = 10000) {
59
+ if (frames.length === 0)
60
+ return [];
61
+ const results = frames.map((f) => cache.get(cacheKey(f)) ?? null);
62
+ const missingIndexes = [];
63
+ results.forEach((r, i) => {
64
+ if (r === null)
65
+ missingIndexes.push(i);
66
+ });
67
+ if (missingIndexes.length === 0)
68
+ return results;
69
+ const endpoint = symbolicateEndpoint(frames[missingIndexes[0]].file);
70
+ const payload = {
71
+ stack: missingIndexes.map((i) => ({
72
+ file: frames[i].file,
73
+ lineNumber: frames[i].lineNumber,
74
+ column: frames[i].column,
75
+ methodName: frames[i].methodName,
76
+ })),
77
+ };
78
+ const controller = new AbortController();
79
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
80
+ try {
81
+ const res = await fetch(endpoint, {
82
+ method: "POST",
83
+ headers: { "Content-Type": "application/json" },
84
+ body: JSON.stringify(payload),
85
+ signal: controller.signal,
86
+ });
87
+ if (!res.ok)
88
+ return null;
89
+ const body = (await res.json());
90
+ const returned = Array.isArray(body.stack) ? body.stack : [];
91
+ missingIndexes.forEach((target, i) => {
92
+ const raw = returned[i];
93
+ if (!raw)
94
+ return;
95
+ const resolved = {
96
+ file: String(raw.file ?? frames[target].file),
97
+ lineNumber: Number(raw.lineNumber ?? frames[target].lineNumber),
98
+ column: Number(raw.column ?? frames[target].column),
99
+ methodName: raw.methodName ?? null,
100
+ collapse: raw.collapse === true,
101
+ };
102
+ results[target] = resolved;
103
+ if (cache.size >= MAX_CACHE_ENTRIES) {
104
+ const oldest = cache.keys().next().value;
105
+ if (oldest !== undefined)
106
+ cache.delete(oldest);
107
+ }
108
+ cache.set(cacheKey(frames[target]), resolved);
109
+ });
110
+ return results.filter((r) => r !== null);
111
+ }
112
+ catch {
113
+ return null;
114
+ }
115
+ finally {
116
+ clearTimeout(timer);
117
+ }
118
+ }
119
+ //# sourceMappingURL=symbolicate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbolicate.js","sourceRoot":"","sources":["../../src/core/symbolicate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"componentTools.d.ts","sourceRoot":"","sources":["../../src/tools/componentTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4CzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAy2B9D"}
1
+ {"version":3,"file":"componentTools.d.ts","sourceRoot":"","sources":["../../src/tools/componentTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgDzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAq7B9D"}
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { registerToolWithTelemetry } from "../core/register.js";
3
3
  import { iconLabel } from "../core/iconSemantics.js";
4
- import { getComponentTree, getScreenLayout, getPressableElements, getScreenState, formatScreenStateSummary, inspectComponent, findComponents, toggleElementInspector, getInspectorSelection, getInspectorSelectionAtPoint, inspectAtPoint, measureComponent, iosScreenshot, androidScreenshot, androidGetDensity, getDevicePixelRatio, getIOSSafeAreaTop, inferIOSDevicePixelRatio, metroMissingHintIfAbsent, hasMetro, getConnectedAppByDevice, getFirstConnectedApp, } from "../core/index.js";
4
+ import { getComponentTree, getScreenLayout, getPressableElements, getScreenState, formatScreenStateSummary, inspectComponent, findComponents, toggleElementInspector, getInspectorSelection, getInspectorSelectionAtPoint, getSelectionHistory, harvestStacksAtPoint, harvestStacksAtFrame, enrichWithSource, inspectAtPoint, measureComponent, iosScreenshot, androidScreenshot, androidGetDensity, getDevicePixelRatio, getIOSSafeAreaTop, inferIOSDevicePixelRatio, metroMissingHintIfAbsent, hasMetro, getConnectedAppByDevice, getFirstConnectedApp, } from "../core/index.js";
5
5
  import { primaryInteractionBanner } from "../core/toolHelpers.js";
6
6
  function collectMetaNotes(r) {
7
7
  const out = [];
@@ -16,14 +16,15 @@ function collectMetaNotes(r) {
16
16
  export function registerComponentTools(server) {
17
17
  // Tool: Get full screen layout (all components with layout styles)
18
18
  registerToolWithTelemetry(server, "get_screen_layout", {
19
- description: "Get a screen map showing visible components as an indented tree with actual screen positions. Uses measureInWindow for real coordinates and filters out off-screen components. Returns meaningful component names with text content and frame data (x,y width x height). Coordinates are in **points** (iOS) or **dp** (Android) — NOT screenshot pixels. Use tap(text=...) or tap(testID=...) to interact with discovered components. Use extended=true to include layout styles (padding, margin, flex, backgroundColor, etc.)." +
19
+ description: "Get a screen map showing visible components as an indented tree with actual screen positions. Uses measureInWindow for real coordinates and filters out off-screen components. Returns meaningful component names with text content and frame data (x,y width x height). Coordinates are in **points** (iOS) or **dp** (Android) — NOT screenshot pixels. Use extended=true to include layout styles (padding, margin, flex, backgroundColor, etc.)." +
20
20
  primaryInteractionBanner() + "\n" +
21
21
  "PURPOSE: Quickest textual map of what is actually on screen right now — component names, positions, and text — so you can plan taps and inspections without guessing.\n" +
22
22
  "WHEN TO USE: First step whenever the user asks \"what's on screen\", \"why is X covering Y\", or before tapping a visually ambiguous element.\n" +
23
23
  "WORKFLOW: get_screen_layout -> find_components(pattern=\"...\") or inspect_component(componentName=\"...\") -> tap(testID=...) -> get_screen_layout again to confirm.\n" +
24
- "LIMITATIONS: Coordinates are points/dp, not screenshot pixels — pass them to tap() which handles conversion, do not multiply by devicePixelRatio yourself.\n" +
24
+ "LIMITATIONS: pass coordinates straight to tap(), which handles conversion — never multiply by devicePixelRatio yourself.\n" +
25
25
  "GOOD: get_screen_layout({ extended: true })\n" +
26
26
  "BAD: get_screen_layout({ summary: true }) when you actually need to pick a specific element — summary hides the tree.\n" +
27
+ "SOURCE: file:line for an element? get_inspector_selection(x, y).\n" +
27
28
  "SEE ALSO: call get_usage_guide(topic=\"layout\") for the full layout-check playbook.",
28
29
  inputSchema: {
29
30
  extended: z
@@ -263,6 +264,7 @@ export function registerComponentTools(server) {
263
264
  "Elements covered by an open overlay are grouped under 🚫 Blocked — visible for context, but taps will NOT reach them until the overlay closes. Long text truncates to 80 chars (fullText=true for full strings); pressablesOnly=true returns just the lean tappable list.\n\n" +
264
265
  "WHEN TO USE: After every tap/swipe that may navigate, and to read screen content (prices, labels, which image loaded) without a screenshot+OCR round-trip.\n" +
265
266
  "LIMITATIONS: route is null without React Navigation / Expo Router. Requires a live Metro connection. Coordinates in points (iOS) / dp (Android); text frames are container-level (climb to nearest measurable host).\n" +
267
+ "SOURCE: this lists what is on screen, not where it lives in code — for the file:line that renders an element, call get_inspector_selection(x, y).\n" +
266
268
  "SEE ALSO: get_screen_layout for the full hierarchical component tree (deep inspection) — this gives a flat, tap-ready content list instead.",
267
269
  inputSchema: {
268
270
  device: z.string().optional().describe("Target device name (substring match). Omit for default device. Run get_apps to see connected devices."),
@@ -435,6 +437,7 @@ export function registerComponentTools(server) {
435
437
  "LIMITATIONS: Matches the React display name only; minified builds may return opaque names. Large result sets — use maxResults or a tighter pattern.\n" +
436
438
  "GOOD: find_components({ pattern: \"Button\" }); find_components({ pattern: \"Screen$\" })\n" +
437
439
  "BAD: find_components({ pattern: \".*\" }) — floods the response; narrow the regex.\n" +
440
+ "SOURCE: searching by name to find a file? If you can point at it on screen, get_inspector_selection(x, y) returns the file and line directly.\n" +
438
441
  "SEE ALSO: call get_usage_guide(topic=\"inspect\") for the full component-inspect playbook.",
439
442
  inputSchema: {
440
443
  pattern: z
@@ -548,7 +551,9 @@ export function registerComponentTools(server) {
548
551
  "PURPOSE: Identity + styling — \"what is this and how is it styled?\" The primary tool for visual/style debugging at a coordinate.\n" +
549
552
  "WHEN TO USE: You see a visual issue at a pixel and want the component name AND its style values (e.g. \"why is borderRadius 14 instead of 16?\").\n" +
550
553
  "WORKFLOW: screenshot → note suspect pixel → get_inspector_selection(x, y) → edit returned style values.\n" +
551
- "LIMITATIONS: Requires RN dev mode. Brief overlay flicker (~600ms). Source paths are null on React 19 (where _debugSource was dropped); name + style is always returned.\n" +
554
+ "LIMITATIONS: Requires RN dev mode. Brief overlay flicker (~600ms). Source needs Metro reachable; otherwise `sourceUnavailable` is set and name + style still return.\n" +
555
+ "SOURCE: Returns `source: {file, line, column}` where the component is rendered, plus `ancestors[]` — open it directly instead of hunting for it.\n" +
556
+ "HISTORY: history=true returns recent buffered selections, including manual inspector taps.\n" +
552
557
  "VS inspect_at_point: this returns RICH STYLE per ancestor but only ONE frame. inspect_at_point returns FRAME PER ANCESTOR + PROPS but no rich style merging.\n" +
553
558
  "SEE ALSO: get_usage_guide(topic=\"inspect\") for the full playbook.",
554
559
  inputSchema: {
@@ -560,9 +565,23 @@ export function registerComponentTools(server) {
560
565
  .number()
561
566
  .optional()
562
567
  .describe("Y coordinate (in points). If provided with x, auto-taps at this location."),
563
- device: z.string().optional().describe("Target device name (substring match). Omit for default device. Run get_apps to see connected devices.")
568
+ device: z.string().optional().describe("Target device name (substring match). Omit for default device. Run get_apps to see connected devices."),
569
+ source: z
570
+ .boolean()
571
+ .optional()
572
+ .default(true)
573
+ .describe("Resolve the component's source file and line via Metro symbolication. Default true. Set false to skip if you only need name and style."),
574
+ history: z
575
+ .boolean()
576
+ .optional()
577
+ .default(false)
578
+ .describe("Return recent buffered selections (newest first) instead of the current one. Captures taps made while RN's Element Inspector was on, including ones the agent never requested."),
579
+ limit: z
580
+ .number()
581
+ .optional()
582
+ .describe("Max entries to return when history=true. Default 10.")
564
583
  }
565
- }, async ({ x, y, device }) => {
584
+ }, async ({ x, y, device, source = true, history = false, limit }) => {
566
585
  if (!hasMetro()) {
567
586
  const hint = await metroMissingHintIfAbsent("get_inspector_selection");
568
587
  return {
@@ -570,6 +589,17 @@ export function registerComponentTools(server) {
570
589
  isError: true
571
590
  };
572
591
  }
592
+ if (history) {
593
+ const entries = await getSelectionHistory({ device, limit });
594
+ return {
595
+ content: [{
596
+ type: "text",
597
+ text: entries.length === 0
598
+ ? "No buffered selections. Toggle RN's Element Inspector on and tap an element."
599
+ : JSON.stringify(entries, null, 2)
600
+ }]
601
+ };
602
+ }
573
603
  // Coordinate path: use fiber-based hit testing (works on Bridgeless / new arch
574
604
  // where RN's built-in inspector cannot populate hierarchy via UIManager.findSubviewIn).
575
605
  // Avoids toggling the on-device overlay so screenshots stay clean.
@@ -597,6 +627,29 @@ export function registerComponentTools(server) {
597
627
  const f = parsed.frame;
598
628
  output += `Frame: (${f.left?.toFixed(1)}, ${f.top?.toFixed(1)}) ${f.width?.toFixed?.(1) ?? f.width}x${f.height?.toFixed?.(1) ?? f.height}\n`;
599
629
  }
630
+ // Source resolution: harvest _debugStack at the selection, then
631
+ // symbolicate host-side. Failure only adds a reason — never drops
632
+ // the identity/style payload the caller already has.
633
+ if (source) {
634
+ const stacks = x !== undefined && y !== undefined
635
+ ? await harvestStacksAtPoint(x, y, device)
636
+ : await harvestStacksAtFrame(parsed.frame, device);
637
+ const enriched = await enrichWithSource({}, stacks);
638
+ const loc = enriched.source;
639
+ if (loc) {
640
+ output += `Source: ${loc.file}:${loc.line}:${loc.column}\n`;
641
+ const ancestors = enriched.ancestors;
642
+ if (ancestors && ancestors.length > 1) {
643
+ output += `Source ancestors:\n`;
644
+ for (const a of ancestors) {
645
+ output += ` - ${a.component} ${a.file}:${a.line}\n`;
646
+ }
647
+ }
648
+ }
649
+ else {
650
+ output += `Source: unavailable (${enriched.sourceUnavailable})\n`;
651
+ }
652
+ }
600
653
  if (parsed.style) {
601
654
  output += `Style: ${JSON.stringify(parsed.style, null, 2)}\n`;
602
655
  }
@@ -631,6 +684,7 @@ export function registerComponentTools(server) {
631
684
  "WORKFLOW: screenshot → suspect pixel → divide by pixel ratio → inspect_at_point(x, y).\n" +
632
685
  "LIMITATIONS: Coordinates MUST be in dp, not screenshot pixels — wrong unit = wrong node. Style is shown for reference only (no rich merging); for style debugging use get_inspector_selection.\n" +
633
686
  "VS get_inspector_selection: this returns FRAME PER ANCESTOR + PROPS, no flicker. Inspector returns RICH STYLE per ancestor but only one frame and briefly toggles the overlay.\n" +
687
+ "SOURCE: also returns `source: {file, line, column}` for the component at the point (set source=false to skip in tight loops).\n" +
634
688
  "SEE ALSO: get_usage_guide(topic=\"inspect\") for the full playbook.",
635
689
  inputSchema: {
636
690
  x: z
@@ -649,9 +703,14 @@ export function registerComponentTools(server) {
649
703
  .optional()
650
704
  .default(true)
651
705
  .describe("Include position/dimensions (frame) in the output (default: true)"),
652
- device: z.string().optional().describe("Target device name (substring match). Omit for default device. Run get_apps to see connected devices.")
706
+ device: z.string().optional().describe("Target device name (substring match). Omit for default device. Run get_apps to see connected devices."),
707
+ source: z
708
+ .boolean()
709
+ .optional()
710
+ .default(true)
711
+ .describe("Resolve the component's source file and line via Metro symbolication. Default true. Set false to skip in tight loops.")
653
712
  }
654
- }, async ({ x, y, includeProps, includeFrame, device }) => {
713
+ }, async ({ x, y, includeProps, includeFrame, device, source = true }) => {
655
714
  const result = await inspectAtPoint(x, y, { includeProps, includeFrame, device });
656
715
  if (!result.success) {
657
716
  return {
@@ -686,11 +745,21 @@ export function registerComponentTools(server) {
686
745
  catch {
687
746
  // If parsing fails, just return the raw result
688
747
  }
748
+ // Source resolution reuses the same hit-test point, so no extra
749
+ // coordinate translation is needed. Failure only adds a reason line.
750
+ let sourceLine = "";
751
+ if (source) {
752
+ const enriched = await enrichWithSource({}, await harvestStacksAtPoint(x, y, device));
753
+ const loc = enriched.source;
754
+ sourceLine = loc
755
+ ? `\n\nSource: ${loc.file}:${loc.line}:${loc.column}`
756
+ : `\n\nSource: unavailable (${enriched.sourceUnavailable})`;
757
+ }
689
758
  return {
690
759
  content: [
691
760
  {
692
761
  type: "text",
693
- text: `Element at (${x}, ${y}):\n\n${result.result}`
762
+ text: `Element at (${x}, ${y}):\n\n${result.result}${sourceLine}`
694
763
  }
695
764
  ]
696
765
  };
@@ -1 +1 @@
1
- {"version":3,"file":"componentTools.js","sourceRoot":"","sources":["../../src/tools/componentTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"componentTools.js","sourceRoot":"","sources":["../../src/tools/componentTools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"connectionTools.d.ts","sourceRoot":"","sources":["../../src/tools/connectionTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+sB/D"}
1
+ {"version":3,"file":"connectionTools.d.ts","sourceRoot":"","sources":["../../src/tools/connectionTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoCzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAktB/D"}
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { registerToolWithTelemetry } from "../core/register.js";
3
- import { scanMetroPorts, fetchDevices, filterDebuggableDevices, connectToDevice, ensureConnection, getConnectedAppByDevice, getConnectedApps, getContextHealth, getAllConnectionMetadata, getAllConnectionStates, getConnectionEvents, formatDuration, cancelAllReconnectionTimers, cancelReconnectionTimer, clearAllCDPMessageTimes, clearAllConnectionState, suppressReconnection, clearReconnectionSuppression, purgeStaleConnectionsForPorts, connectMetroBuildEvents, disconnectMetroBuildEvents, reloadApp, connectedApps, isUiDriverAvailable, getTotalLogCount, suppressReconnectionForKey, getWebSocketStateName, awaitAppDetection, } from "../core/index.js";
3
+ import { scanMetroPorts, fetchDevices, filterDebuggableDevices, connectToDevice, ensureConnection, getConnectedAppByDevice, getConnectedApps, getContextHealth, getAllConnectionMetadata, getAllConnectionStates, getConnectionEvents, formatDuration, cancelAllReconnectionTimers, cancelReconnectionTimer, clearAllCDPMessageTimes, clearAllConnectionState, suppressReconnection, clearReconnectionSuppression, purgeStaleConnectionsForPorts, connectMetroBuildEvents, disconnectMetroBuildEvents, stopAllSelectionPollers, reloadApp, connectedApps, isUiDriverAvailable, getTotalLogCount, suppressReconnectionForKey, getWebSocketStateName, awaitAppDetection, } from "../core/index.js";
4
4
  export function registerConnectionTools(server) {
5
5
  // Tool: Scan for Metro servers
6
6
  registerToolWithTelemetry(server, "scan_metro", {
@@ -573,6 +573,8 @@ export function registerConnectionTools(server) {
573
573
  }
574
574
  // Disconnect Metro build events WebSocket
575
575
  disconnectMetroBuildEvents();
576
+ // Stop watching RN's Element Inspector on every device
577
+ stopAllSelectionPollers();
576
578
  // Clear connection state (but NOT log/network buffers)
577
579
  clearAllConnectionState();
578
580
  clearAllCDPMessageTimes();