@petukhovart/agent-view 0.1.0 → 0.3.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 (101) hide show
  1. package/.claude-plugin/plugin.json +12 -1
  2. package/README.md +101 -2
  3. package/dist/adapters/browser.d.ts.map +1 -1
  4. package/dist/adapters/browser.js +11 -11
  5. package/dist/adapters/browser.js.map +1 -1
  6. package/dist/adapters/electron.d.ts.map +1 -1
  7. package/dist/adapters/electron.js +11 -11
  8. package/dist/adapters/electron.js.map +1 -1
  9. package/dist/adapters/tauri.d.ts.map +1 -1
  10. package/dist/adapters/tauri.js +11 -11
  11. package/dist/adapters/tauri.js.map +1 -1
  12. package/dist/adapters/types.d.ts +5 -2
  13. package/dist/adapters/types.d.ts.map +1 -1
  14. package/dist/cdp/_tests/console-stream.d.ts +35 -0
  15. package/dist/cdp/_tests/console-stream.d.ts.map +1 -0
  16. package/dist/cdp/_tests/console-stream.js +103 -0
  17. package/dist/cdp/_tests/console-stream.js.map +1 -0
  18. package/dist/cdp/ax-cache.d.ts +9 -0
  19. package/dist/cdp/ax-cache.d.ts.map +1 -0
  20. package/dist/cdp/ax-cache.js +24 -0
  21. package/dist/cdp/ax-cache.js.map +1 -0
  22. package/dist/cdp/console-stream.d.ts +35 -0
  23. package/dist/cdp/console-stream.d.ts.map +1 -0
  24. package/dist/cdp/console-stream.js +103 -0
  25. package/dist/cdp/console-stream.js.map +1 -0
  26. package/dist/cdp/transport.d.ts +5 -2
  27. package/dist/cdp/transport.d.ts.map +1 -1
  28. package/dist/cdp/transport.js +236 -24
  29. package/dist/cdp/transport.js.map +1 -1
  30. package/dist/cdp/types.d.ts +66 -8
  31. package/dist/cdp/types.d.ts.map +1 -1
  32. package/dist/cdp/types.js +29 -1
  33. package/dist/cdp/types.js.map +1 -1
  34. package/dist/cli/commands/console.d.ts +11 -0
  35. package/dist/cli/commands/console.d.ts.map +1 -0
  36. package/dist/cli/commands/console.js +31 -0
  37. package/dist/cli/commands/console.js.map +1 -0
  38. package/dist/cli/commands/dom.d.ts +1 -0
  39. package/dist/cli/commands/dom.d.ts.map +1 -1
  40. package/dist/cli/commands/dom.js +1 -0
  41. package/dist/cli/commands/dom.js.map +1 -1
  42. package/dist/cli/commands/eval.d.ts +9 -0
  43. package/dist/cli/commands/eval.d.ts.map +1 -0
  44. package/dist/cli/commands/eval.js +30 -0
  45. package/dist/cli/commands/eval.js.map +1 -0
  46. package/dist/cli/commands/screenshot.d.ts +1 -0
  47. package/dist/cli/commands/screenshot.d.ts.map +1 -1
  48. package/dist/cli/commands/screenshot.js +2 -0
  49. package/dist/cli/commands/screenshot.js.map +1 -1
  50. package/dist/cli/commands/targets.d.ts +7 -0
  51. package/dist/cli/commands/targets.d.ts.map +1 -0
  52. package/dist/cli/commands/targets.js +30 -0
  53. package/dist/cli/commands/targets.js.map +1 -0
  54. package/dist/cli/index.js +39 -1
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/config/manager.d.ts.map +1 -1
  57. package/dist/config/manager.js +10 -0
  58. package/dist/config/manager.js.map +1 -1
  59. package/dist/config/types.d.ts +11 -0
  60. package/dist/config/types.d.ts.map +1 -1
  61. package/dist/inspectors/dom/index.d.ts +17 -0
  62. package/dist/inspectors/dom/index.d.ts.map +1 -0
  63. package/dist/inspectors/dom/index.js +131 -0
  64. package/dist/inspectors/dom/index.js.map +1 -0
  65. package/dist/inspectors/scene/adapters/pixi/adapter.d.ts +3 -0
  66. package/dist/inspectors/scene/adapters/pixi/adapter.d.ts.map +1 -0
  67. package/dist/inspectors/scene/adapters/pixi/adapter.js +51 -0
  68. package/dist/inspectors/scene/adapters/pixi/adapter.js.map +1 -0
  69. package/dist/inspectors/scene/adapters/pixi/index.d.ts +2 -0
  70. package/dist/inspectors/scene/adapters/pixi/index.d.ts.map +1 -0
  71. package/dist/inspectors/scene/adapters/pixi/index.js +2 -0
  72. package/dist/inspectors/scene/adapters/pixi/index.js.map +1 -0
  73. package/dist/inspectors/scene/adapters/pixi/injection.d.ts +39 -0
  74. package/dist/inspectors/scene/adapters/pixi/injection.d.ts.map +1 -0
  75. package/dist/inspectors/scene/adapters/pixi/injection.js +41 -0
  76. package/dist/inspectors/scene/adapters/pixi/injection.js.map +1 -0
  77. package/dist/inspectors/scene/formatter.d.ts +0 -1
  78. package/dist/inspectors/scene/formatter.d.ts.map +1 -1
  79. package/dist/inspectors/scene/formatter.js +52 -43
  80. package/dist/inspectors/scene/formatter.js.map +1 -1
  81. package/dist/inspectors/scene/index.d.ts +4 -4
  82. package/dist/inspectors/scene/index.d.ts.map +1 -1
  83. package/dist/inspectors/scene/index.js +8 -5
  84. package/dist/inspectors/scene/index.js.map +1 -1
  85. package/dist/inspectors/scene/pixi.js.map +1 -1
  86. package/dist/inspectors/scene/registry.d.ts +2 -2
  87. package/dist/inspectors/scene/registry.d.ts.map +1 -1
  88. package/dist/inspectors/scene/registry.js +8 -8
  89. package/dist/inspectors/scene/registry.js.map +1 -1
  90. package/dist/inspectors/scene/types.d.ts +5 -10
  91. package/dist/inspectors/scene/types.d.ts.map +1 -1
  92. package/dist/server/server.d.ts +23 -1
  93. package/dist/server/server.d.ts.map +1 -1
  94. package/dist/server/server.js +384 -62
  95. package/dist/server/server.js.map +1 -1
  96. package/dist/types.d.ts +2 -1
  97. package/dist/types.d.ts.map +1 -1
  98. package/dist/types.js +1 -0
  99. package/dist/types.js.map +1 -1
  100. package/package.json +10 -9
  101. package/skills/verify/SKILL.md +99 -15
@@ -0,0 +1,41 @@
1
+ // Injected via Runtime.evaluate; serializePixiStage is embedded by .toString()
2
+ // so the same TS function runs in the page and is unit-testable on the host.
3
+ const HARD_DEPTH_LIMIT = 100;
4
+ export function serializePixiStage(stage, depth) {
5
+ if (depth > HARD_DEPTH_LIMIT)
6
+ return null;
7
+ const kids = stage.children ?? [];
8
+ const children = [];
9
+ for (const kid of kids) {
10
+ const child = serializePixiStage(kid, depth + 1);
11
+ if (child)
12
+ children.push(child);
13
+ }
14
+ return {
15
+ type: stage.constructor?.name ?? 'Unknown',
16
+ name: stage.label || stage.name || '',
17
+ x: Math.round(stage.x ?? 0),
18
+ y: Math.round(stage.y ?? 0),
19
+ visible: stage.visible !== false,
20
+ tint: typeof stage.tint === 'number' ? stage.tint : null,
21
+ alpha: stage.alpha ?? 1,
22
+ scaleX: stage.scale?.x ?? 1,
23
+ scaleY: stage.scale?.y ?? 1,
24
+ rotationRad: stage.rotation ?? 0,
25
+ width: Math.round(stage.width ?? 0),
26
+ height: Math.round(stage.height ?? 0),
27
+ children,
28
+ };
29
+ }
30
+ export const PIXI_EXTRACT_SCRIPT = `
31
+ (function () {
32
+ var devtools = window.__PIXI_DEVTOOLS__;
33
+ if (!devtools) return null;
34
+ var app = devtools.app || (devtools.stage && devtools.stage.parent);
35
+ var stage = (app && app.stage) || devtools.stage;
36
+ if (!stage) return null;
37
+ var serialize = ${serializePixiStage.toString()};
38
+ return serialize(stage, 0);
39
+ })()
40
+ `;
41
+ //# sourceMappingURL=injection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection.js","sourceRoot":"","sources":["../../../../../src/inspectors/scene/adapters/pixi/injection.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6EAA6E;AAkC7E,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAE5B,MAAM,UAAU,kBAAkB,CAAC,KAAwB,EAAE,KAAa;IACxE,IAAI,KAAK,GAAG,gBAAgB;QAAE,OAAO,IAAI,CAAA;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAA;IACjC,MAAM,QAAQ,GAAkB,EAAE,CAAA;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QAChD,IAAI,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,SAAS;QAC1C,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;QACrC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK;QAChC,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QACxD,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;QACvB,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;QAC3B,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;QAC3B,WAAW,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC;QAChC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACrC,QAAQ;KACT,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;oBAOf,kBAAkB,CAAC,QAAQ,EAAE;;;CAGhD,CAAA"}
@@ -1,5 +1,4 @@
1
1
  import type { SceneNode, SceneOptions } from './types.js';
2
2
  export declare function formatNode(node: SceneNode, depth: number, lines: string[], options: SceneOptions): void;
3
3
  export declare function diffScenes(prev: SceneNode, curr: SceneNode): string;
4
- export declare function hasMatch(node: SceneNode, filter: string): boolean;
5
4
  //# sourceMappingURL=formatter.d.ts.map
@@ -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,CAqCvG;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAInE;AA0CD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMjE"}
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"}
@@ -4,38 +4,37 @@ export function formatNode(node, depth, lines, options) {
4
4
  return;
5
5
  if (options.depth !== undefined && depth > options.depth)
6
6
  return;
7
- const matchesFilter = !options.filter ||
8
- node.name.toLowerCase().includes(options.filter.toLowerCase()) ||
9
- node.type.toLowerCase().includes(options.filter.toLowerCase());
10
- const hasMatchingChildren = options.filter
11
- ? (node.children || []).some(c => hasMatch(c, options.filter))
12
- : false;
13
- if (matchesFilter || hasMatchingChildren) {
14
- const indent = ' '.repeat(depth);
15
- const vis = node.visible ? '' : ' [hidden]';
16
- const nameStr = node.name ? ` "${node.name}"` : '';
17
- let line = `${indent}${node.type}${nameStr} (${node.x},${node.y})${vis}`;
18
- if (node.tint !== '0xffffff' && node.tint !== '#ffffff') {
19
- line += ` tint=${node.tint}`;
7
+ const lowerFilter = options.filter?.toLowerCase();
8
+ if (lowerFilter && !subtreeMatches(node, lowerFilter))
9
+ return;
10
+ lines.push(formatLine(node, depth, options));
11
+ for (const child of node.children ?? []) {
12
+ formatNode(child, depth + 1, lines, options);
13
+ }
14
+ }
15
+ function formatLine(node, depth, options) {
16
+ const indent = ' '.repeat(depth);
17
+ const vis = node.visible ? '' : ' [hidden]';
18
+ const nameStr = node.name ? ` "${node.name}"` : '';
19
+ let line = `${indent}${node.type}${nameStr} (${node.x},${node.y})${vis}`;
20
+ if (node.extras) {
21
+ for (const [key, value] of Object.entries(node.extras)) {
22
+ line += ` ${key}=${value}`;
20
23
  }
21
- if (options.verbose) {
22
- const extras = [];
23
- if (node.alpha !== undefined && node.alpha !== 1)
24
- extras.push(`alpha=${node.alpha}`);
25
- if (node.scaleX !== 1 || node.scaleY !== 1)
26
- extras.push(`scale=(${node.scaleX},${node.scaleY})`);
27
- if (node.rotation !== 0)
28
- extras.push(`rot=${node.rotation}°`);
29
- if (node.width || node.height)
30
- extras.push(`size=${node.width}x${node.height}`);
31
- if (extras.length > 0)
32
- line += ` ${extras.join(' ')}`;
24
+ }
25
+ if (options.verbose && node.verboseExtras) {
26
+ for (const [key, value] of Object.entries(node.verboseExtras)) {
27
+ line += ` ${key}=${value}`;
33
28
  }
34
- lines.push(line);
35
29
  }
36
- for (const child of node.children || []) {
37
- formatNode(child, depth + 1, lines, options);
30
+ return line;
31
+ }
32
+ function subtreeMatches(node, lowerFilter) {
33
+ if (node.name.toLowerCase().includes(lowerFilter) ||
34
+ node.type.toLowerCase().includes(lowerFilter)) {
35
+ return true;
38
36
  }
37
+ return (node.children ?? []).some(child => subtreeMatches(child, lowerFilter));
39
38
  }
40
39
  export function diffScenes(prev, curr) {
41
40
  const changes = [];
@@ -48,19 +47,36 @@ function diffNode(prev, curr, depth, changes) {
48
47
  const indent = ' '.repeat(depth);
49
48
  const nameStr = curr.name ? ` "${curr.name}"` : '';
50
49
  const diffs = [];
51
- if (prev.x !== curr.x || prev.y !== curr.y)
50
+ if (prev.x !== curr.x || prev.y !== curr.y) {
52
51
  diffs.push(`pos: (${prev.x},${prev.y})→(${curr.x},${curr.y})`);
53
- if (prev.visible !== curr.visible)
52
+ }
53
+ if (prev.visible !== curr.visible) {
54
54
  diffs.push(`visible: ${prev.visible}→${curr.visible}`);
55
- if (prev.tint !== curr.tint)
56
- diffs.push(`tint: ${prev.tint}→${curr.tint}`);
57
- if (prev.alpha !== curr.alpha)
58
- diffs.push(`alpha: ${prev.alpha}→${curr.alpha}`);
55
+ }
56
+ diffExtras(prev, curr, diffs);
59
57
  if (diffs.length > 0) {
60
58
  changes.push(`${indent}~ ${curr.type}${nameStr}: ${diffs.join(', ')}`);
61
59
  }
62
- const prevChildren = prev.children || [];
63
- const currChildren = curr.children || [];
60
+ diffChildren(prev, curr, depth, changes, indent);
61
+ }
62
+ function diffExtras(prev, curr, diffs) {
63
+ const prevAll = mergeExtras(prev);
64
+ const currAll = mergeExtras(curr);
65
+ const keys = new Set([...Object.keys(prevAll), ...Object.keys(currAll)]);
66
+ for (const key of keys) {
67
+ const before = prevAll[key];
68
+ const after = currAll[key];
69
+ if (before !== after) {
70
+ diffs.push(`${key}: ${before ?? '∅'}→${after ?? '∅'}`);
71
+ }
72
+ }
73
+ }
74
+ function mergeExtras(node) {
75
+ return { ...(node.extras ?? {}), ...(node.verboseExtras ?? {}) };
76
+ }
77
+ function diffChildren(prev, curr, depth, changes, indent) {
78
+ const prevChildren = prev.children ?? [];
79
+ const currChildren = curr.children ?? [];
64
80
  const prevByKey = new Map(prevChildren.map((c, i) => [childKey(c, i), c]));
65
81
  const currByKey = new Map(currChildren.map((c, i) => [childKey(c, i), c]));
66
82
  for (const [key, child] of currByKey) {
@@ -81,11 +97,4 @@ function diffNode(prev, curr, depth, changes) {
81
97
  function childKey(node, index) {
82
98
  return node.name ? `${node.type}:${node.name}` : `${node.type}:${index}`;
83
99
  }
84
- export function hasMatch(node, filter) {
85
- const lower = filter.toLowerCase();
86
- if (node.name.toLowerCase().includes(lower) || node.type.toLowerCase().includes(lower)) {
87
- return true;
88
- }
89
- return (node.children || []).some(c => hasMatch(c, lower));
90
- }
91
100
  //# sourceMappingURL=formatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/inspectors/scene/formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/inspectors/scene/formatter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { CDPConnection } from '../../cdp/types.js';
1
+ import type { RuntimeSession } from '../../cdp/types.js';
2
2
  import type { WebGLEngine } from '../../types.js';
3
3
  import type { SceneOptions, SceneNode } from './types.js';
4
- export declare function getSceneGraph(conn: CDPConnection, engine: WebGLEngine | undefined, options?: SceneOptions): Promise<string>;
5
- export declare function getRawScene(conn: CDPConnection, engine: WebGLEngine | undefined): Promise<SceneNode | null>;
4
+ export declare function getSceneGraph(conn: RuntimeSession, engine: WebGLEngine | undefined, options?: SceneOptions): Promise<string>;
5
+ export declare function getRawScene(conn: RuntimeSession, engine: WebGLEngine | undefined): Promise<SceneNode | null>;
6
6
  export { diffScenes } from './formatter.js';
7
- export type { SceneNode, SceneOptions } from './types.js';
7
+ export type { SceneNode, SceneOptions, SceneAdapter } from './types.js';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inspectors/scene/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEzD,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAI3B;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inspectors/scene/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEzD,wBAAsB,aAAa,CACjC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAG3B;AAQD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA"}
@@ -1,11 +1,10 @@
1
- import { getExtractor } from './registry.js';
1
+ import { getAdapter } from './registry.js';
2
2
  import { formatNode } from './formatter.js';
3
3
  export async function getSceneGraph(conn, engine, options = {}) {
4
4
  if (!engine) {
5
5
  return 'No WebGL engine configured. Add "webgl": { "engine": "pixi" } to agent-view.config.json';
6
6
  }
7
- const extractor = getExtractor(engine);
8
- const tree = await extractor.extract(conn);
7
+ const tree = await extract(conn, engine);
9
8
  if (!tree) {
10
9
  return `No ${engine} scene found`;
11
10
  }
@@ -19,8 +18,12 @@ export async function getSceneGraph(conn, engine, options = {}) {
19
18
  export async function getRawScene(conn, engine) {
20
19
  if (!engine)
21
20
  return null;
22
- const extractor = getExtractor(engine);
23
- return extractor.extract(conn);
21
+ return extract(conn, engine);
22
+ }
23
+ async function extract(conn, engine) {
24
+ const adapter = getAdapter(engine);
25
+ const raw = await conn.evaluate(adapter.extractScript);
26
+ return adapter.normalize(raw);
24
27
  }
25
28
  export { diffScenes } from './formatter.js';
26
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/inspectors/scene/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAA;AAKvD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAmB,EACnB,MAA+B,EAC/B,UAAwB,EAAE;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,yFAAyF,CAAA;IAClG,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAAM,MAAM,cAAc,CAAA;IACnC,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,8BAA8B,OAAO,CAAC,MAAM,GAAG,CAAA;IACxD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAmB,EACnB,MAA+B;IAE/B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACtC,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/inspectors/scene/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAA;AAKvD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAoB,EACpB,MAA+B,EAC/B,UAAwB,EAAE;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,yFAAyF,CAAA;IAClG,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAAM,MAAM,cAAc,CAAA;IACnC,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,8BAA8B,OAAO,CAAC,MAAM,GAAG,CAAA;IACxD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAoB,EACpB,MAA+B;IAE/B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAoB,EAAE,MAAmB;IAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAClC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACtD,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pixi.js","sourceRoot":"","sources":["../../../src/inspectors/scene/pixi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAI5C,qEAAqE;AACrE,sDAAsD;AACtD,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkClB,CAAA;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAA;IACxC,OAAO,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAA;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,MAAM,EAAE,WAAW,CAAC,IAAI;IACxB,KAAK,CAAC,OAAO,CAAC,IAAmB;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC9C,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"pixi.js","sourceRoot":"","sources":["../../../src/inspectors/scene/pixi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAI5C,qEAAqE;AACrE,sDAAsD;AACtD,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkClB,CAAA;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAA;IACxC,OAAO,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAA;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,MAAM,EAAE,WAAW,CAAC,IAAI;IACxB,KAAK,CAAC,OAAO,CAAC,IAAoB;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC9C,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,CAAC;CACF,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import { WebGLEngine } from '../../types.js';
2
- import type { SceneExtractor } from './types.js';
3
- export declare function getExtractor(engine: WebGLEngine): SceneExtractor;
2
+ import type { SceneAdapter } from './types.js';
3
+ export declare function getAdapter(engine: WebGLEngine): SceneAdapter;
4
4
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/inspectors/scene/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAOhD,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAMhE"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/inspectors/scene/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAO9C,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAM5D"}
@@ -1,13 +1,13 @@
1
1
  import { WebGLEngine } from '../../types.js';
2
- import { pixiExtractor } from './pixi.js';
3
- const extractors = {
4
- [WebGLEngine.Pixi]: pixiExtractor,
2
+ import { pixiAdapter } from './adapters/pixi/index.js';
3
+ const adapters = {
4
+ [WebGLEngine.Pixi]: pixiAdapter,
5
5
  };
6
- export function getExtractor(engine) {
7
- const extractor = extractors[engine];
8
- if (!extractor) {
9
- throw new Error(`Scene extractor for "${engine}" is not implemented yet`);
6
+ export function getAdapter(engine) {
7
+ const adapter = adapters[engine];
8
+ if (!adapter) {
9
+ throw new Error(`Scene adapter for "${engine}" is not implemented yet`);
10
10
  }
11
- return extractor;
11
+ return adapter;
12
12
  }
13
13
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/inspectors/scene/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,UAAU,GAAiD;IAC/D,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa;CAClC,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,0BAA0B,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/inspectors/scene/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,MAAM,QAAQ,GAA+C;IAC3D,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW;CAChC,CAAA;AAED,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,0BAA0B,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,4 +1,3 @@
1
- import type { CDPConnection } from '../../cdp/types.js';
2
1
  import type { WebGLEngine } from '../../types.js';
3
2
  export type SceneNode = {
4
3
  type: string;
@@ -6,14 +5,9 @@ export type SceneNode = {
6
5
  x: number;
7
6
  y: number;
8
7
  visible: boolean;
9
- tint: string;
10
- alpha?: number;
11
- scaleX?: number;
12
- scaleY?: number;
13
- rotation?: number;
14
- width?: number;
15
- height?: number;
16
8
  children?: SceneNode[];
9
+ extras?: Record<string, string>;
10
+ verboseExtras?: Record<string, string>;
17
11
  };
18
12
  export type SceneOptions = {
19
13
  filter?: string;
@@ -24,8 +18,9 @@ export type SceneDiffResult = {
24
18
  text: string;
25
19
  snapshot: SceneNode;
26
20
  };
27
- export type SceneExtractor = {
21
+ export type SceneAdapter = {
28
22
  readonly engine: WebGLEngine;
29
- extract(conn: CDPConnection): Promise<SceneNode | null>;
23
+ readonly extractScript: string;
24
+ normalize(raw: unknown): SceneNode | null;
30
25
  };
31
26
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/inspectors/scene/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;CACxD,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/inspectors/scene/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE/B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAE9B,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAA;CAC1C,CAAA"}
@@ -1,17 +1,34 @@
1
+ import { type PageSession } from '../cdp/types.js';
2
+ type ParsedFilter = {
3
+ kind: 'simple';
4
+ name: string;
5
+ role?: string;
6
+ } | {
7
+ kind: 'heuristic';
8
+ raw: string;
9
+ };
10
+ export declare function resolveDepth(filter: string | undefined, explicit: number | undefined): number | undefined;
11
+ export declare function textContentFallback(conn: PageSession, filter: string): Promise<string>;
12
+ export declare function parseFilter(filter: string): ParsedFilter;
1
13
  export declare class AgentViewServer {
2
14
  private server;
3
15
  private connections;
4
16
  private refStore;
5
17
  private idleTimer;
6
18
  private sceneCache;
19
+ private axTreeCache;
20
+ private consoleStream;
7
21
  private token;
22
+ private readonly handlers;
23
+ private readonly validCommands;
8
24
  start(): Promise<void>;
9
25
  private resetIdleTimer;
10
26
  private handleSocket;
11
27
  private processRequest;
12
28
  private handleCommand;
13
29
  private resolveWindow;
14
- private getConnection;
30
+ private getPageSession;
31
+ private getRuntimeSession;
15
32
  private handleDiscover;
16
33
  private handleLaunch;
17
34
  private handleDom;
@@ -22,7 +39,12 @@ export declare class AgentViewServer {
22
39
  private handleScreenshot;
23
40
  private handleScene;
24
41
  private handleSnap;
42
+ private handleTargets;
43
+ private resolveTarget;
44
+ private handleEval;
45
+ private handleConsole;
25
46
  private handleStop;
26
47
  private shutdown;
27
48
  }
49
+ export {};
28
50
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAwCA,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,KAAK,CAAK;IAEZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;YAmBN,cAAc;YAoCd,aAAa;YA2Bb,aAAa;YA0Bb,aAAa;YAWb,cAAc;YAad,YAAY;YAwBZ,SAAS;YAgBT,YAAY;YAwEZ,WAAW;YAqCX,UAAU;YAkCV,UAAU;YA+BV,gBAAgB;YAYhB,WAAW;YAwCX,UAAU;YA+BV,UAAU;YAKV,QAAQ;CAavB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAaA,OAAO,EAIL,KAAK,WAAW,EAGjB,MAAM,iBAAiB,CAAA;AAiDxB,KAAK,YAAY,GACb;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtC,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAIzG;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B5F;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAaxD;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,KAAK,CAAK;IAElB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAc2D;IAEpF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2D;IAEnF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;YAmBN,cAAc;YAoCd,aAAa;YAMb,aAAa;YA0Bb,cAAc;YAad,iBAAiB;YAgBjB,cAAc;YASd,YAAY;YAmBZ,SAAS;YAuBT,YAAY;YAqGZ,WAAW;YAyCX,UAAU;YAqCV,UAAU;YA+BV,gBAAgB;YAehB,WAAW;YAwCX,UAAU;YAgCV,aAAa;YASb,aAAa;YAgCb,UAAU;YAwCV,aAAa;YAuFb,UAAU;YAKV,QAAQ;CAavB"}