@petukhovart/agent-view 0.3.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/.claude-plugin/marketplace.json +14 -0
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/README.md +292 -143
  4. package/agents/design-conformance-runner.md +101 -0
  5. package/agents/verify-runner.md +97 -0
  6. package/dist/cdp/ax-cache.d.ts +7 -0
  7. package/dist/cdp/ax-cache.d.ts.map +1 -1
  8. package/dist/cdp/ax-cache.js +7 -0
  9. package/dist/cdp/ax-cache.js.map +1 -1
  10. package/dist/cdp/transport.d.ts.map +1 -1
  11. package/dist/cdp/transport.js +98 -27
  12. package/dist/cdp/transport.js.map +1 -1
  13. package/dist/cdp/types.d.ts +45 -2
  14. package/dist/cdp/types.d.ts.map +1 -1
  15. package/dist/cdp/types.js +6 -0
  16. package/dist/cdp/types.js.map +1 -1
  17. package/dist/cli/commands/console.d.ts +1 -0
  18. package/dist/cli/commands/console.d.ts.map +1 -1
  19. package/dist/cli/commands/console.js +1 -0
  20. package/dist/cli/commands/console.js.map +1 -1
  21. package/dist/cli/commands/dom.d.ts +4 -0
  22. package/dist/cli/commands/dom.d.ts.map +1 -1
  23. package/dist/cli/commands/dom.js +4 -0
  24. package/dist/cli/commands/dom.js.map +1 -1
  25. package/dist/cli/commands/drag.d.ts +13 -0
  26. package/dist/cli/commands/drag.d.ts.map +1 -0
  27. package/dist/cli/commands/drag.js +72 -0
  28. package/dist/cli/commands/drag.js.map +1 -0
  29. package/dist/cli/commands/scene.d.ts +1 -0
  30. package/dist/cli/commands/scene.d.ts.map +1 -1
  31. package/dist/cli/commands/scene.js +2 -0
  32. package/dist/cli/commands/scene.js.map +1 -1
  33. package/dist/cli/commands/screenshot.d.ts +1 -0
  34. package/dist/cli/commands/screenshot.d.ts.map +1 -1
  35. package/dist/cli/commands/screenshot.js +4 -0
  36. package/dist/cli/commands/screenshot.js.map +1 -1
  37. package/dist/cli/commands/snap.d.ts +1 -0
  38. package/dist/cli/commands/snap.d.ts.map +1 -1
  39. package/dist/cli/commands/snap.js +2 -0
  40. package/dist/cli/commands/snap.js.map +1 -1
  41. package/dist/cli/commands/watch.d.ts +12 -0
  42. package/dist/cli/commands/watch.d.ts.map +1 -0
  43. package/dist/cli/commands/watch.js +233 -0
  44. package/dist/cli/commands/watch.js.map +1 -0
  45. package/dist/cli/index.js +48 -1
  46. package/dist/cli/index.js.map +1 -1
  47. package/dist/config/manager.js +1 -1
  48. package/dist/config/types.d.ts +0 -3
  49. package/dist/config/types.d.ts.map +1 -1
  50. package/dist/inspectors/dom/index.d.ts +13 -0
  51. package/dist/inspectors/dom/index.d.ts.map +1 -1
  52. package/dist/inspectors/dom/index.js +255 -103
  53. package/dist/inspectors/dom/index.js.map +1 -1
  54. package/dist/inspectors/scene/formatter.d.ts.map +1 -1
  55. package/dist/inspectors/scene/formatter.js +56 -8
  56. package/dist/inspectors/scene/formatter.js.map +1 -1
  57. package/dist/inspectors/scene/types.d.ts +1 -0
  58. package/dist/inspectors/scene/types.d.ts.map +1 -1
  59. package/dist/inspectors/watch/index.d.ts +18 -0
  60. package/dist/inspectors/watch/index.d.ts.map +1 -0
  61. package/dist/inspectors/watch/index.js +39 -0
  62. package/dist/inspectors/watch/index.js.map +1 -0
  63. package/dist/inspectors/watch/types.d.ts +70 -0
  64. package/dist/inspectors/watch/types.d.ts.map +1 -0
  65. package/dist/inspectors/watch/types.js +21 -0
  66. package/dist/inspectors/watch/types.js.map +1 -0
  67. package/dist/server/server.d.ts +9 -1
  68. package/dist/server/server.d.ts.map +1 -1
  69. package/dist/server/server.js +279 -48
  70. package/dist/server/server.js.map +1 -1
  71. package/dist/server/watch-session.d.ts +32 -0
  72. package/dist/server/watch-session.d.ts.map +1 -0
  73. package/dist/server/watch-session.js +165 -0
  74. package/dist/server/watch-session.js.map +1 -0
  75. package/dist/types.d.ts +2 -0
  76. package/dist/types.d.ts.map +1 -1
  77. package/package.json +62 -60
  78. package/skills/verify/SKILL.md +84 -13
  79. package/skills/verify-recipe/SKILL.md +202 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,7 @@ export function generateConfig(cwd) {
57
57
  const launch = detectLaunchCommand(cwd, pkg.scripts);
58
58
  const config = {
59
59
  runtime,
60
- port: 9222,
60
+ port: 9876,
61
61
  launch,
62
62
  };
63
63
  if (webglEngine) {
@@ -17,8 +17,5 @@ export type AgentViewConfig = {
17
17
  consoleBufferSize?: number;
18
18
  /** Target types that `agent-view console` auto-attaches to on first call. */
19
19
  consoleTargets?: ReadonlyArray<TargetType>;
20
- verify?: Record<string, {
21
- steps: string[];
22
- }>;
23
20
  };
24
21
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,WAAW,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,WAAW,CAAA;KACpB,CAAA;IACD;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,6EAA6E;IAC7E,cAAc,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CAC7C,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,WAAW,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,WAAW,CAAA;KACpB,CAAA;IACD;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,6EAA6E;IAC7E,cAAc,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAC3C,CAAA"}
@@ -7,11 +7,24 @@ export type DOMSnapshotOptions = {
7
7
  filter?: string;
8
8
  depth?: number;
9
9
  startRef?: number;
10
+ compact?: boolean;
11
+ maxLines?: number;
10
12
  };
11
13
  export type DOMSnapshotResult = {
12
14
  text: string;
13
15
  refs: RefEntry[];
14
16
  nextRef: number;
15
17
  };
18
+ export type DOMCountResult = {
19
+ count: number;
20
+ };
21
+ /**
22
+ * Compute a line-level diff between two formatted DOM texts. Refs are
23
+ * normalised before comparison (sessions reuse ids monotonically; without
24
+ * normalisation every line would look "changed"). Emitted lines retain the
25
+ * real `[ref=N]` from the *current* snapshot so the user can still click them.
26
+ */
27
+ export declare function diffDomText(prev: string, curr: string): string;
16
28
  export declare function formatAccessibilityTree(nodes: AXNode[], options?: DOMSnapshotOptions): DOMSnapshotResult;
29
+ export declare function countAccessibilityNodes(nodes: AXNode[], options?: Pick<DOMSnapshotOptions, 'filter' | 'depth'>): DOMCountResult;
17
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inspectors/dom/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAgInB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inspectors/dom/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAQD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAqD9D;AAuHD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAiDnB;AA+DD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,OAAO,CAAM,GACzD,cAAc,CAehB"}
@@ -1,131 +1,283 @@
1
- export function formatAccessibilityTree(nodes, options = {}) {
2
- const { filter, depth: maxDepth } = options;
3
- const refs = [];
4
- let nextRef = options.startRef ?? 1;
5
- const lines = [];
6
- const nodeMap = new Map();
7
- for (const node of nodes) {
8
- nodeMap.set(node.nodeId, node);
1
+ const REF_PATTERN = /\[ref=\d+\]/g;
2
+ function normalizeRef(line) {
3
+ return line.replace(REF_PATTERN, '[ref=*]');
4
+ }
5
+ /**
6
+ * Compute a line-level diff between two formatted DOM texts. Refs are
7
+ * normalised before comparison (sessions reuse ids monotonically; without
8
+ * normalisation every line would look "changed"). Emitted lines retain the
9
+ * real `[ref=N]` from the *current* snapshot so the user can still click them.
10
+ */
11
+ export function diffDomText(prev, curr) {
12
+ if (normalizeRef(prev) === normalizeRef(curr))
13
+ return 'No changes';
14
+ const prevLines = prev.split('\n');
15
+ const currLines = curr.split('\n');
16
+ const prevCounts = new Map();
17
+ for (const line of prevLines) {
18
+ const key = normalizeRef(line);
19
+ prevCounts.set(key, (prevCounts.get(key) ?? 0) + 1);
9
20
  }
10
- const rootNodeId = nodes[0]?.nodeId;
11
- if (!rootNodeId)
12
- return { text: '(empty)', refs: [], nextRef };
13
- const ALWAYS_SKIP_ROLES = new Set(['InlineTextBox']);
14
- const SKIP_WHEN_EMPTY_ROLES = new Set(['none', 'generic', 'StaticText']);
15
- // WAI-ARIA-like fallback: when a node has no accessible name,
16
- // walk its children to find the first non-empty name, description, or title.
17
- // This handles cases like v-list-item with title on a child v-icon.
18
- function resolveNameFromChildren(node, depthLimit = 5) {
19
- if (depthLimit <= 0 || !node.childIds)
20
- return '';
21
- for (const childId of node.childIds) {
21
+ const currCounts = new Map();
22
+ const currByKey = new Map();
23
+ for (const line of currLines) {
24
+ const key = normalizeRef(line);
25
+ currCounts.set(key, (currCounts.get(key) ?? 0) + 1);
26
+ const bucket = currByKey.get(key);
27
+ if (bucket)
28
+ bucket.push(line);
29
+ else
30
+ currByKey.set(key, [line]);
31
+ }
32
+ const prevByKey = new Map();
33
+ for (const line of prevLines) {
34
+ const key = normalizeRef(line);
35
+ const bucket = prevByKey.get(key);
36
+ if (bucket)
37
+ bucket.push(line);
38
+ else
39
+ prevByKey.set(key, [line]);
40
+ }
41
+ const changes = [];
42
+ for (const [key, count] of currCounts) {
43
+ const prevCount = prevCounts.get(key) ?? 0;
44
+ const added = count - prevCount;
45
+ if (added <= 0)
46
+ continue;
47
+ const bucket = currByKey.get(key) ?? [];
48
+ for (let i = bucket.length - added; i < bucket.length; i++) {
49
+ changes.push(`+ ${bucket[i]}`);
50
+ }
51
+ }
52
+ for (const [key, count] of prevCounts) {
53
+ const currCount = currCounts.get(key) ?? 0;
54
+ const removed = count - currCount;
55
+ if (removed <= 0)
56
+ continue;
57
+ const bucket = prevByKey.get(key) ?? [];
58
+ for (let i = bucket.length - removed; i < bucket.length; i++) {
59
+ changes.push(`- ${bucket[i]}`);
60
+ }
61
+ }
62
+ return changes.length > 0 ? changes.join('\n') : 'No changes';
63
+ }
64
+ const ALWAYS_SKIP_ROLES = new Set(['InlineTextBox']);
65
+ const SKIP_WHEN_EMPTY_ROLES = new Set(['none', 'generic', 'StaticText']);
66
+ const HARD_MAX_DEPTH = 100;
67
+ function resolveNameFromChildren(node, nodeMap, depthLimit = 5) {
68
+ if (depthLimit <= 0 || !node.childIds)
69
+ return '';
70
+ for (const childId of node.childIds) {
71
+ const child = nodeMap.get(childId);
72
+ if (!child)
73
+ continue;
74
+ if (child.name?.value)
75
+ return child.name.value;
76
+ const desc = child.properties?.find(p => p.name === 'description');
77
+ if (desc?.value?.value && typeof desc.value.value === 'string')
78
+ return desc.value.value;
79
+ const deeper = resolveNameFromChildren(child, nodeMap, depthLimit - 1);
80
+ if (deeper)
81
+ return deeper;
82
+ }
83
+ return '';
84
+ }
85
+ function getDescendantText(node, nodeMap, depthLimit = 10) {
86
+ const parts = [];
87
+ function collect(n, depth) {
88
+ if (depth > depthLimit || !n.childIds)
89
+ return;
90
+ for (const childId of n.childIds) {
22
91
  const child = nodeMap.get(childId);
23
92
  if (!child)
24
93
  continue;
25
- // Check child's own name
26
94
  if (child.name?.value)
27
- return child.name.value;
28
- // Check description/title in AX properties
95
+ parts.push(child.name.value);
29
96
  const desc = child.properties?.find(p => p.name === 'description');
30
97
  if (desc?.value?.value && typeof desc.value.value === 'string')
31
- return desc.value.value;
32
- // Recurse into grandchildren
33
- const deeper = resolveNameFromChildren(child, depthLimit - 1);
34
- if (deeper)
35
- return deeper;
98
+ parts.push(desc.value.value);
99
+ collect(child, depth + 1);
36
100
  }
37
- return '';
38
101
  }
39
- // Collect all descendant text for heuristic filter matching.
40
- // Searches name and description of all descendants, not just current node.
41
- function getDescendantText(node, depthLimit = 10) {
42
- const parts = [];
43
- function collect(n, depth) {
44
- if (depth > depthLimit || !n.childIds)
45
- return;
46
- for (const childId of n.childIds) {
47
- const child = nodeMap.get(childId);
48
- if (!child)
49
- continue;
50
- if (child.name?.value)
51
- parts.push(child.name.value);
52
- const desc = child.properties?.find(p => p.name === 'description');
53
- if (desc?.value?.value && typeof desc.value.value === 'string')
54
- parts.push(desc.value.value);
55
- collect(child, depth + 1);
56
- }
102
+ collect(node, 0);
103
+ return parts.join(' ').toLowerCase();
104
+ }
105
+ function hasMatchingDescendant(node, nodeMap, lowerFilter) {
106
+ if (!node.childIds)
107
+ return false;
108
+ for (const childId of node.childIds) {
109
+ const child = nodeMap.get(childId);
110
+ if (!child)
111
+ continue;
112
+ const childRole = child.role?.value ?? '';
113
+ if (ALWAYS_SKIP_ROLES.has(childRole))
114
+ continue;
115
+ const childName = child.name?.value?.toLowerCase() ?? '';
116
+ if (childName.includes(lowerFilter) || childRole.toLowerCase().includes(lowerFilter))
117
+ return true;
118
+ if (hasMatchingDescendant(child, nodeMap, lowerFilter))
119
+ return true;
120
+ }
121
+ return false;
122
+ }
123
+ function nodePassesFilter(node, name, role, ctx) {
124
+ if (!ctx.lowerFilter)
125
+ return true;
126
+ const lf = ctx.lowerFilter;
127
+ const matchesName = name.toLowerCase().includes(lf);
128
+ const matchesRole = role.toLowerCase().includes(lf);
129
+ const matchesDescendants = !matchesName && !matchesRole
130
+ ? getDescendantText(node, ctx.nodeMap, 10).includes(lf)
131
+ : false;
132
+ return matchesName || matchesRole || matchesDescendants || hasMatchingDescendant(node, ctx.nodeMap, lf);
133
+ }
134
+ function walkVisibleNodes(nodeId, indent, ctx, onVisit) {
135
+ if (indent > HARD_MAX_DEPTH)
136
+ return;
137
+ if (ctx.maxDepth !== undefined && indent > ctx.maxDepth)
138
+ return;
139
+ const node = ctx.nodeMap.get(nodeId);
140
+ if (!node)
141
+ return;
142
+ const role = node.role?.value ?? '';
143
+ const ownName = node.name?.value ?? '';
144
+ const fallbackName = !ownName ? resolveNameFromChildren(node, ctx.nodeMap) : '';
145
+ const name = ownName || fallbackName;
146
+ if (ALWAYS_SKIP_ROLES.has(role))
147
+ return;
148
+ const skip = SKIP_WHEN_EMPTY_ROLES.has(role) && !name;
149
+ if (!skip) {
150
+ if (nodePassesFilter(node, name, role, ctx)) {
151
+ onVisit(node, name, !ownName && !!fallbackName, indent);
152
+ }
153
+ else {
154
+ return;
57
155
  }
58
- collect(node, 0);
59
- return parts.join(' ').toLowerCase();
60
156
  }
61
- function hasMatchingDescendant(node, lowerFilter) {
62
- if (!node.childIds)
63
- return false;
157
+ if (node.childIds) {
64
158
  for (const childId of node.childIds) {
65
- const child = nodeMap.get(childId);
66
- if (!child)
67
- continue;
68
- const childRole = child.role?.value ?? '';
69
- if (ALWAYS_SKIP_ROLES.has(childRole))
70
- continue;
71
- const childName = child.name?.value?.toLowerCase() ?? '';
72
- if (childName.includes(lowerFilter) || childRole.toLowerCase().includes(lowerFilter))
73
- return true;
74
- if (hasMatchingDescendant(child, lowerFilter))
75
- return true;
159
+ walkVisibleNodes(childId, skip ? indent : indent + 1, ctx, onVisit);
76
160
  }
77
- return false;
78
161
  }
79
- const HARD_MAX_DEPTH = 100;
80
- function walk(nodeId, depth, indent) {
81
- if (indent > HARD_MAX_DEPTH)
82
- return;
83
- if (maxDepth !== undefined && indent > maxDepth)
84
- return;
85
- const node = nodeMap.get(nodeId);
86
- if (!node)
87
- return;
88
- const role = node.role?.value ?? '';
89
- const ownName = node.name?.value ?? '';
90
- // Fallback: resolve name from children when node has no accessible name
91
- const fallbackName = !ownName ? resolveNameFromChildren(node) : '';
92
- const name = ownName || fallbackName;
93
- if (ALWAYS_SKIP_ROLES.has(role))
94
- return;
95
- const skip = SKIP_WHEN_EMPTY_ROLES.has(role) && !name;
96
- if (!skip) {
97
- if (filter) {
98
- const lowerFilter = filter.toLowerCase();
99
- const matchesName = name.toLowerCase().includes(lowerFilter);
100
- const matchesRole = role.toLowerCase().includes(lowerFilter);
101
- // Heuristic: also search descendant names/descriptions
102
- const matchesDescendants = !matchesName && !matchesRole
103
- ? getDescendantText(node, 10).includes(lowerFilter)
104
- : false;
105
- if (!matchesName && !matchesRole && !matchesDescendants && !hasMatchingDescendant(node, lowerFilter)) {
106
- return;
107
- }
108
- }
162
+ }
163
+ function effectiveChildren(node, nodeMap) {
164
+ if (!node.childIds)
165
+ return [];
166
+ return node.childIds.filter(childId => {
167
+ const child = nodeMap.get(childId);
168
+ if (!child)
169
+ return false;
170
+ const childRole = child.role?.value ?? '';
171
+ if (ALWAYS_SKIP_ROLES.has(childRole))
172
+ return false;
173
+ const childName = child.name?.value ?? '';
174
+ const fallback = !childName ? resolveNameFromChildren(child, nodeMap) : '';
175
+ const resolvedName = childName || fallback;
176
+ if (SKIP_WHEN_EMPTY_ROLES.has(childRole) && !resolvedName)
177
+ return false;
178
+ return true;
179
+ });
180
+ }
181
+ export function formatAccessibilityTree(nodes, options = {}) {
182
+ const { filter, depth: maxDepth, compact = false, maxLines } = options;
183
+ const refs = [];
184
+ let nextRef = options.startRef ?? 1;
185
+ const lines = [];
186
+ const nodeMap = new Map();
187
+ for (const node of nodes) {
188
+ nodeMap.set(node.nodeId, node);
189
+ }
190
+ const rootNodeId = nodes[0]?.nodeId;
191
+ if (!rootNodeId)
192
+ return { text: '(empty)', refs: [], nextRef };
193
+ const ctx = { nodeMap, lowerFilter: filter?.toLowerCase(), maxDepth };
194
+ if (!compact) {
195
+ walkVisibleNodes(rootNodeId, 0, ctx, (node, name, isFallback, indent) => {
109
196
  const ref = nextRef++;
110
197
  if (node.backendDOMNodeId) {
111
198
  refs.push({ ref, backendDOMNodeId: node.backendDOMNodeId });
112
199
  }
113
200
  const padding = ' '.repeat(indent);
114
- const isFallback = !ownName && fallbackName;
201
+ const role = node.role?.value ?? '';
115
202
  const nameStr = name ? ` "${name}"${isFallback ? ' [fallback]' : ''}` : '';
116
203
  lines.push(`${padding}${role}${nameStr} [ref=${ref}]`);
117
- }
118
- if (node.childIds) {
119
- for (const childId of node.childIds) {
120
- walk(childId, depth + 1, skip ? indent : indent + 1);
121
- }
122
- }
204
+ });
205
+ }
206
+ else {
207
+ walkCompact(rootNodeId, 0, [], 0, ctx, {
208
+ allocRef: (backendDOMNodeId) => {
209
+ const ref = nextRef++;
210
+ if (backendDOMNodeId !== undefined) {
211
+ refs.push({ ref, backendDOMNodeId });
212
+ }
213
+ return ref;
214
+ },
215
+ pushLine: (line) => lines.push(line),
216
+ });
123
217
  }
124
- walk(rootNodeId, 0, 0);
218
+ const displayLines = maxLines !== undefined && lines.length > maxLines
219
+ ? [...lines.slice(0, maxLines - 1), `… ${lines.length - (maxLines - 1)} more nodes`]
220
+ : lines;
125
221
  return {
126
- text: lines.join('\n') || '(no matching elements)',
222
+ text: displayLines.join('\n') || '(no matching elements)',
127
223
  refs,
128
224
  nextRef,
129
225
  };
130
226
  }
227
+ function walkCompact(nodeId, indent, chain, chainIndent, ctx, sink) {
228
+ if (indent > HARD_MAX_DEPTH)
229
+ return;
230
+ if (ctx.maxDepth !== undefined && indent > ctx.maxDepth)
231
+ return;
232
+ const node = ctx.nodeMap.get(nodeId);
233
+ if (!node)
234
+ return;
235
+ const role = node.role?.value ?? '';
236
+ const ownName = node.name?.value ?? '';
237
+ const fallbackName = !ownName ? resolveNameFromChildren(node, ctx.nodeMap) : '';
238
+ const name = ownName || fallbackName;
239
+ if (ALWAYS_SKIP_ROLES.has(role))
240
+ return;
241
+ const skip = SKIP_WHEN_EMPTY_ROLES.has(role) && !name;
242
+ if (skip) {
243
+ if (node.childIds) {
244
+ for (const childId of node.childIds) {
245
+ walkCompact(childId, indent, chain, chainIndent, ctx, sink);
246
+ }
247
+ }
248
+ return;
249
+ }
250
+ if (!nodePassesFilter(node, name, role, ctx))
251
+ return;
252
+ const ref = sink.allocRef(node.backendDOMNodeId);
253
+ const effChildren = effectiveChildren(node, ctx.nodeMap);
254
+ const isSingleChild = effChildren.length === 1;
255
+ if (isSingleChild && !ownName) {
256
+ walkCompact(effChildren[0], indent + 1, [...chain, role], chainIndent, ctx, sink);
257
+ return;
258
+ }
259
+ const isFallback = !ownName && !!fallbackName;
260
+ const nameStr = name ? ` "${name}"${isFallback ? ' [fallback]' : ''}` : '';
261
+ const padding = ' '.repeat(chainIndent);
262
+ const chainPrefix = chain.length > 0 ? `${chain.join(' > ')} > ` : '';
263
+ sink.pushLine(`${padding}${chainPrefix}${role}${nameStr} [ref=${ref}]`);
264
+ if (node.childIds) {
265
+ for (const childId of node.childIds) {
266
+ walkCompact(childId, indent + 1, [], chainIndent + 1, ctx, sink);
267
+ }
268
+ }
269
+ }
270
+ export function countAccessibilityNodes(nodes, options = {}) {
271
+ const nodeMap = new Map();
272
+ for (const node of nodes) {
273
+ nodeMap.set(node.nodeId, node);
274
+ }
275
+ const rootNodeId = nodes[0]?.nodeId;
276
+ if (!rootNodeId)
277
+ return { count: 0 };
278
+ const ctx = { nodeMap, lowerFilter: options.filter?.toLowerCase(), maxDepth: options.depth };
279
+ let count = 0;
280
+ walkVisibleNodes(rootNodeId, 0, ctx, () => { count++; });
281
+ return { count };
282
+ }
131
283
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/inspectors/dom/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/inspectors/dom/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../src/inspectors/scene/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAIzD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAYvG;AA+BD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAInE"}
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../src/inspectors/scene/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAIzD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAevG;AA6ED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAInE"}
@@ -7,27 +7,75 @@ export function formatNode(node, depth, lines, options) {
7
7
  const lowerFilter = options.filter?.toLowerCase();
8
8
  if (lowerFilter && !subtreeMatches(node, lowerFilter))
9
9
  return;
10
- lines.push(formatLine(node, depth, options));
11
- for (const child of node.children ?? []) {
12
- formatNode(child, depth + 1, lines, options);
10
+ if (options.compact) {
11
+ formatNodeCompact(node, depth, lines, options);
12
+ }
13
+ else {
14
+ lines.push(formatLine(node, depth, options));
15
+ for (const child of node.children ?? []) {
16
+ formatNode(child, depth + 1, lines, options);
17
+ }
13
18
  }
14
19
  }
15
- function formatLine(node, depth, options) {
20
+ /**
21
+ * Compact mode: merge single-child chains onto one line separated by " > ".
22
+ * Multi-child nodes render normally (each child on its own line).
23
+ */
24
+ function formatNodeCompact(node, depth, lines, options) {
25
+ const chain = collectSingleChildChain(node, options);
26
+ const tail = chain[chain.length - 1];
27
+ const tailChildren = tail.children ?? [];
28
+ const chainParts = chain.map(n => nodeLabel(n, options));
16
29
  const indent = ' '.repeat(depth);
30
+ lines.push(`${indent}${chainParts.join(' > ')}`);
31
+ for (const child of tailChildren) {
32
+ formatNodeCompact(child, depth + 1, lines, options);
33
+ }
34
+ }
35
+ /**
36
+ * Walk down while the current node has exactly one child (and that child
37
+ * passes the depth limit). Returns every node in the single-child chain,
38
+ * including the node that breaks the pattern (0 or 2+ children).
39
+ */
40
+ function collectSingleChildChain(node, options) {
41
+ const chain = [node];
42
+ let current = node;
43
+ while (true) {
44
+ const children = current.children ?? [];
45
+ if (children.length !== 1)
46
+ break;
47
+ const next = children[0];
48
+ if (options.depth !== undefined) {
49
+ // depth limit: stop chaining if we'd exceed it
50
+ const nextDepth = chain.length; // relative depth from start of chain
51
+ if (nextDepth > options.depth)
52
+ break;
53
+ }
54
+ chain.push(next);
55
+ current = next;
56
+ }
57
+ return chain;
58
+ }
59
+ /** Single-node label without indent — used inside compact chains. */
60
+ function nodeLabel(node, options) {
17
61
  const vis = node.visible ? '' : ' [hidden]';
18
62
  const nameStr = node.name ? ` "${node.name}"` : '';
19
- let line = `${indent}${node.type}${nameStr} (${node.x},${node.y})${vis}`;
63
+ let label = `${node.type}${nameStr} (${node.x},${node.y})${vis}`;
20
64
  if (node.extras) {
21
65
  for (const [key, value] of Object.entries(node.extras)) {
22
- line += ` ${key}=${value}`;
66
+ label += ` ${key}=${value}`;
23
67
  }
24
68
  }
25
69
  if (options.verbose && node.verboseExtras) {
26
70
  for (const [key, value] of Object.entries(node.verboseExtras)) {
27
- line += ` ${key}=${value}`;
71
+ label += ` ${key}=${value}`;
28
72
  }
29
73
  }
30
- return line;
74
+ return label;
75
+ }
76
+ function formatLine(node, depth, options) {
77
+ const indent = ' '.repeat(depth);
78
+ return `${indent}${nodeLabel(node, options)}`;
31
79
  }
32
80
  function subtreeMatches(node, lowerFilter) {
33
81
  if (node.name.toLowerCase().includes(lowerFilter) ||