@ai2qa/local-agent 0.1.6 → 0.1.7
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/dist/chrome.d.ts +34 -0
- package/dist/chrome.d.ts.map +1 -0
- package/dist/chrome.js +275 -0
- package/dist/chrome.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/click.d.ts +1 -0
- package/dist/tools/click.d.ts.map +1 -1
- package/dist/tools/click.js +87 -2
- package/dist/tools/click.js.map +1 -1
- package/dist/tools/fill.d.ts +1 -0
- package/dist/tools/fill.d.ts.map +1 -1
- package/dist/tools/fill.js +46 -2
- package/dist/tools/fill.js.map +1 -1
- package/dist/tools/hover.d.ts +1 -0
- package/dist/tools/hover.d.ts.map +1 -1
- package/dist/tools/hover.js +39 -2
- package/dist/tools/hover.js.map +1 -1
- package/dist/tools/snapshot.js +198 -5
- package/dist/tools/snapshot.js.map +1 -1
- package/dist/tools/types.d.ts +3 -2
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/package.json +1 -1
package/dist/chrome.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chrome Management Utility
|
|
3
|
+
*
|
|
4
|
+
* Manages a separate Chrome instance for AI2QA agent debugging.
|
|
5
|
+
* Keeps the user's regular Chrome untouched.
|
|
6
|
+
*/
|
|
7
|
+
interface ChromeStatus {
|
|
8
|
+
running: boolean;
|
|
9
|
+
port: number;
|
|
10
|
+
version?: string;
|
|
11
|
+
tabs?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get the status of the agent Chrome.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getChromeStatus(): Promise<ChromeStatus>;
|
|
17
|
+
/**
|
|
18
|
+
* Start a new Chrome instance for the agent.
|
|
19
|
+
* This is separate from the user's regular Chrome.
|
|
20
|
+
*/
|
|
21
|
+
export declare function startAgentChrome(): Promise<{
|
|
22
|
+
success: boolean;
|
|
23
|
+
message: string;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Stop the agent Chrome instance.
|
|
27
|
+
* Only stops the agent Chrome, not the user's regular Chrome.
|
|
28
|
+
*/
|
|
29
|
+
export declare function stopAgentChrome(): Promise<{
|
|
30
|
+
success: boolean;
|
|
31
|
+
message: string;
|
|
32
|
+
}>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=chrome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../src/chrome.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,UAAU,YAAY;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AA2DD;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAwB7D;AA6CD;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAoFvF;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA+CtF"}
|
package/dist/chrome.js
ADDED
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Chrome Management Utility
|
|
4
|
+
*
|
|
5
|
+
* Manages a separate Chrome instance for AI2QA agent debugging.
|
|
6
|
+
* Keeps the user's regular Chrome untouched.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.getChromeStatus = getChromeStatus;
|
|
10
|
+
exports.startAgentChrome = startAgentChrome;
|
|
11
|
+
exports.stopAgentChrome = stopAgentChrome;
|
|
12
|
+
const child_process_1 = require("child_process");
|
|
13
|
+
const fs_1 = require("fs");
|
|
14
|
+
const os_1 = require("os");
|
|
15
|
+
const path_1 = require("path");
|
|
16
|
+
const DEBUG_PORT = 9222;
|
|
17
|
+
const AI2QA_DIR = (0, path_1.join)((0, os_1.homedir)(), '.ai2qa');
|
|
18
|
+
const CHROME_PROFILE_DIR = (0, path_1.join)(AI2QA_DIR, 'chrome-agent-profile');
|
|
19
|
+
const PID_FILE = (0, path_1.join)(AI2QA_DIR, 'chrome-agent.pid');
|
|
20
|
+
/**
|
|
21
|
+
* Get the Chrome executable path based on the platform.
|
|
22
|
+
*/
|
|
23
|
+
function getChromePath() {
|
|
24
|
+
const os = (0, os_1.platform)();
|
|
25
|
+
if (os === 'darwin') {
|
|
26
|
+
// macOS
|
|
27
|
+
const paths = [
|
|
28
|
+
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
|
|
29
|
+
`${(0, os_1.homedir)()}/Applications/Google Chrome.app/Contents/MacOS/Google Chrome`,
|
|
30
|
+
];
|
|
31
|
+
for (const p of paths) {
|
|
32
|
+
if ((0, fs_1.existsSync)(p))
|
|
33
|
+
return p;
|
|
34
|
+
}
|
|
35
|
+
throw new Error('Google Chrome not found. Please install Chrome from https://www.google.com/chrome/');
|
|
36
|
+
}
|
|
37
|
+
else if (os === 'win32') {
|
|
38
|
+
// Windows
|
|
39
|
+
const paths = [
|
|
40
|
+
'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
|
|
41
|
+
'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
|
|
42
|
+
`${process.env.LOCALAPPDATA}\\Google\\Chrome\\Application\\chrome.exe`,
|
|
43
|
+
];
|
|
44
|
+
for (const p of paths) {
|
|
45
|
+
if ((0, fs_1.existsSync)(p))
|
|
46
|
+
return p;
|
|
47
|
+
}
|
|
48
|
+
throw new Error('Google Chrome not found. Please install Chrome from https://www.google.com/chrome/');
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// Linux
|
|
52
|
+
const paths = [
|
|
53
|
+
'/usr/bin/google-chrome',
|
|
54
|
+
'/usr/bin/google-chrome-stable',
|
|
55
|
+
'/usr/bin/chromium',
|
|
56
|
+
'/usr/bin/chromium-browser',
|
|
57
|
+
'/snap/bin/chromium',
|
|
58
|
+
];
|
|
59
|
+
for (const p of paths) {
|
|
60
|
+
if ((0, fs_1.existsSync)(p))
|
|
61
|
+
return p;
|
|
62
|
+
}
|
|
63
|
+
throw new Error('Google Chrome or Chromium not found. Please install Chrome.');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if the agent Chrome is running by querying the CDP endpoint.
|
|
68
|
+
*/
|
|
69
|
+
async function isAgentChromeRunning() {
|
|
70
|
+
try {
|
|
71
|
+
const response = await fetch(`http://localhost:${DEBUG_PORT}/json/version`, {
|
|
72
|
+
signal: AbortSignal.timeout(2000),
|
|
73
|
+
});
|
|
74
|
+
return response.ok;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get the status of the agent Chrome.
|
|
82
|
+
*/
|
|
83
|
+
async function getChromeStatus() {
|
|
84
|
+
const running = await isAgentChromeRunning();
|
|
85
|
+
if (!running) {
|
|
86
|
+
return { running: false, port: DEBUG_PORT };
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
const versionRes = await fetch(`http://localhost:${DEBUG_PORT}/json/version`);
|
|
90
|
+
const versionData = await versionRes.json();
|
|
91
|
+
const tabsRes = await fetch(`http://localhost:${DEBUG_PORT}/json/list`);
|
|
92
|
+
const tabsData = await tabsRes.json();
|
|
93
|
+
const tabs = tabsData.filter((t) => t.type === 'page').length;
|
|
94
|
+
return {
|
|
95
|
+
running: true,
|
|
96
|
+
port: DEBUG_PORT,
|
|
97
|
+
version: versionData.Browser,
|
|
98
|
+
tabs,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return { running: true, port: DEBUG_PORT };
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Find PIDs of Chrome processes using our agent profile directory.
|
|
107
|
+
* Uses safe process listing without shell commands.
|
|
108
|
+
*/
|
|
109
|
+
function findAgentChromePids() {
|
|
110
|
+
const os = (0, os_1.platform)();
|
|
111
|
+
const pids = [];
|
|
112
|
+
if (os === 'darwin' || os === 'linux') {
|
|
113
|
+
// Use pgrep which is safer than ps | grep
|
|
114
|
+
const result = (0, child_process_1.spawnSync)('pgrep', ['-f', CHROME_PROFILE_DIR], {
|
|
115
|
+
encoding: 'utf-8',
|
|
116
|
+
});
|
|
117
|
+
if (result.stdout) {
|
|
118
|
+
const lines = result.stdout.trim().split('\n').filter(Boolean);
|
|
119
|
+
pids.push(...lines);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return pids;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Kill a process by PID safely.
|
|
126
|
+
*/
|
|
127
|
+
function killProcess(pid, force = false) {
|
|
128
|
+
const os = (0, os_1.platform)();
|
|
129
|
+
try {
|
|
130
|
+
if (os === 'win32') {
|
|
131
|
+
const args = force ? ['/PID', pid, '/F'] : ['/PID', pid];
|
|
132
|
+
(0, child_process_1.spawnSync)('taskkill', args, { stdio: 'ignore' });
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
const signal = force ? '-9' : '-15';
|
|
136
|
+
(0, child_process_1.spawnSync)('kill', [signal, pid], { stdio: 'ignore' });
|
|
137
|
+
}
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Start a new Chrome instance for the agent.
|
|
146
|
+
* This is separate from the user's regular Chrome.
|
|
147
|
+
*/
|
|
148
|
+
async function startAgentChrome() {
|
|
149
|
+
// Check if already running
|
|
150
|
+
if (await isAgentChromeRunning()) {
|
|
151
|
+
const status = await getChromeStatus();
|
|
152
|
+
return {
|
|
153
|
+
success: true,
|
|
154
|
+
message: `Agent Chrome is already running on port ${DEBUG_PORT}${status.version ? ` (${status.version})` : ''}`,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
// Ensure directories exist
|
|
158
|
+
if (!(0, fs_1.existsSync)(AI2QA_DIR)) {
|
|
159
|
+
(0, fs_1.mkdirSync)(AI2QA_DIR, { recursive: true });
|
|
160
|
+
}
|
|
161
|
+
if (!(0, fs_1.existsSync)(CHROME_PROFILE_DIR)) {
|
|
162
|
+
(0, fs_1.mkdirSync)(CHROME_PROFILE_DIR, { recursive: true });
|
|
163
|
+
}
|
|
164
|
+
const chromePath = getChromePath();
|
|
165
|
+
const os = (0, os_1.platform)();
|
|
166
|
+
const chromeArgs = [
|
|
167
|
+
`--remote-debugging-port=${DEBUG_PORT}`,
|
|
168
|
+
`--user-data-dir=${CHROME_PROFILE_DIR}`,
|
|
169
|
+
'--no-first-run',
|
|
170
|
+
'--no-default-browser-check',
|
|
171
|
+
'--disable-background-networking',
|
|
172
|
+
'--disable-client-side-phishing-detection',
|
|
173
|
+
'--disable-default-apps',
|
|
174
|
+
'--disable-hang-monitor',
|
|
175
|
+
'--disable-popup-blocking',
|
|
176
|
+
'--disable-prompt-on-repost',
|
|
177
|
+
'--disable-sync',
|
|
178
|
+
'--metrics-recording-only',
|
|
179
|
+
'--safebrowsing-disable-auto-update',
|
|
180
|
+
'--enable-features=NetworkService,NetworkServiceInProcess',
|
|
181
|
+
'--disable-features=TranslateUI',
|
|
182
|
+
'--window-size=1280,800',
|
|
183
|
+
];
|
|
184
|
+
try {
|
|
185
|
+
if (os === 'darwin') {
|
|
186
|
+
// macOS: Use 'open -n -a' to force a new instance
|
|
187
|
+
const chromeApp = '/Applications/Google Chrome.app';
|
|
188
|
+
(0, child_process_1.spawn)('open', ['-n', '-a', chromeApp, '--args', ...chromeArgs], {
|
|
189
|
+
detached: true,
|
|
190
|
+
stdio: 'ignore',
|
|
191
|
+
}).unref();
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
// Windows/Linux: Spawn directly
|
|
195
|
+
const child = (0, child_process_1.spawn)(chromePath, chromeArgs, {
|
|
196
|
+
detached: true,
|
|
197
|
+
stdio: 'ignore',
|
|
198
|
+
});
|
|
199
|
+
child.unref();
|
|
200
|
+
// Save PID for later cleanup
|
|
201
|
+
if (child.pid) {
|
|
202
|
+
(0, fs_1.writeFileSync)(PID_FILE, child.pid.toString());
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// Wait for Chrome to start
|
|
206
|
+
for (let i = 0; i < 15; i++) {
|
|
207
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
208
|
+
if (await isAgentChromeRunning()) {
|
|
209
|
+
const status = await getChromeStatus();
|
|
210
|
+
return {
|
|
211
|
+
success: true,
|
|
212
|
+
message: `Agent Chrome started successfully on port ${DEBUG_PORT}${status.version ? ` (${status.version})` : ''}`,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
success: false,
|
|
218
|
+
message: 'Chrome failed to start within 15 seconds. Try running: ai2qa-agent chrome --stop && ai2qa-agent chrome',
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
return {
|
|
223
|
+
success: false,
|
|
224
|
+
message: `Failed to start Chrome: ${error instanceof Error ? error.message : String(error)}`,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Stop the agent Chrome instance.
|
|
230
|
+
* Only stops the agent Chrome, not the user's regular Chrome.
|
|
231
|
+
*/
|
|
232
|
+
async function stopAgentChrome() {
|
|
233
|
+
if (!(await isAgentChromeRunning())) {
|
|
234
|
+
return { success: true, message: 'Agent Chrome is not running' };
|
|
235
|
+
}
|
|
236
|
+
try {
|
|
237
|
+
// Find Chrome processes using our specific user data dir
|
|
238
|
+
const pids = findAgentChromePids();
|
|
239
|
+
for (const pid of pids) {
|
|
240
|
+
killProcess(pid);
|
|
241
|
+
}
|
|
242
|
+
// Also try killing by PID file
|
|
243
|
+
if ((0, fs_1.existsSync)(PID_FILE)) {
|
|
244
|
+
try {
|
|
245
|
+
const pid = (0, fs_1.readFileSync)(PID_FILE, 'utf-8').trim();
|
|
246
|
+
killProcess(pid);
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
// Process might already be dead
|
|
250
|
+
}
|
|
251
|
+
(0, fs_1.unlinkSync)(PID_FILE);
|
|
252
|
+
}
|
|
253
|
+
// Wait a moment and verify
|
|
254
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
255
|
+
// Force kill if still running
|
|
256
|
+
if (await isAgentChromeRunning()) {
|
|
257
|
+
const remainingPids = findAgentChromePids();
|
|
258
|
+
for (const pid of remainingPids) {
|
|
259
|
+
killProcess(pid, true);
|
|
260
|
+
}
|
|
261
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
262
|
+
}
|
|
263
|
+
if (await isAgentChromeRunning()) {
|
|
264
|
+
return { success: false, message: 'Failed to stop agent Chrome. You may need to close it manually.' };
|
|
265
|
+
}
|
|
266
|
+
return { success: true, message: 'Agent Chrome stopped successfully' };
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
return {
|
|
270
|
+
success: false,
|
|
271
|
+
message: `Failed to stop Chrome: ${error instanceof Error ? error.message : String(error)}`,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=chrome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../src/chrome.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+EH,0CAwBC;AAiDD,4CAoFC;AAMD,0CA+CC;AA/RD,iDAAiD;AACjD,2BAAoF;AACpF,2BAAuC;AACvC,+BAA4B;AAE5B,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,QAAQ,CAAC,CAAC;AAC5C,MAAM,kBAAkB,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AACnE,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AASrD;;GAEG;AACH,SAAS,aAAa;IAClB,MAAM,EAAE,GAAG,IAAA,aAAQ,GAAE,CAAC;IAEtB,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClB,QAAQ;QACR,MAAM,KAAK,GAAG;YACV,8DAA8D;YAC9D,GAAG,IAAA,YAAO,GAAE,8DAA8D;SAC7E,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,IAAI,IAAA,eAAU,EAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IAC1G,CAAC;SAAM,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACxB,UAAU;QACV,MAAM,KAAK,GAAG;YACV,4DAA4D;YAC5D,kEAAkE;YAClE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,2CAA2C;SACzE,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,IAAI,IAAA,eAAU,EAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IAC1G,CAAC;SAAM,CAAC;QACJ,QAAQ;QACR,MAAM,KAAK,GAAG;YACV,wBAAwB;YACxB,+BAA+B;YAC/B,mBAAmB;YACnB,2BAA2B;YAC3B,oBAAoB;SACvB,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,IAAI,IAAA,eAAU,EAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACnF,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB;IAC/B,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,UAAU,eAAe,EAAE;YACxE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe;IACjC,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,oBAAoB,UAAU,eAAe,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,EAA0B,CAAC;QAEpE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,oBAAoB,UAAU,YAAY,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAA6B,CAAC;QACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAE9D,OAAO;YACH,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,IAAI;SACP,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC/C,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB;IACxB,MAAM,EAAE,GAAG,IAAA,aAAQ,GAAE,CAAC;IACtB,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACpC,0CAA0C;QAC1C,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,OAAO,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE;YAC1D,QAAQ,EAAE,OAAO;SACpB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW,EAAE,QAAiB,KAAK;IACpD,MAAM,EAAE,GAAG,IAAA,aAAQ,GAAE,CAAC;IAEtB,IAAI,CAAC;QACD,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACzD,IAAA,yBAAS,EAAC,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YACpC,IAAA,yBAAS,EAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB;IAClC,2BAA2B;IAC3B,IAAI,MAAM,oBAAoB,EAAE,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;QACvC,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,2CAA2C,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;SAClH,CAAC;IACN,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;QACzB,IAAA,cAAS,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,IAAA,eAAU,EAAC,kBAAkB,CAAC,EAAE,CAAC;QAClC,IAAA,cAAS,EAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,IAAA,aAAQ,GAAE,CAAC;IAEtB,MAAM,UAAU,GAAG;QACf,2BAA2B,UAAU,EAAE;QACvC,mBAAmB,kBAAkB,EAAE;QACvC,gBAAgB;QAChB,4BAA4B;QAC5B,iCAAiC;QACjC,0CAA0C;QAC1C,wBAAwB;QACxB,wBAAwB;QACxB,0BAA0B;QAC1B,4BAA4B;QAC5B,gBAAgB;QAChB,0BAA0B;QAC1B,oCAAoC;QACpC,0DAA0D;QAC1D,gCAAgC;QAChC,wBAAwB;KAC3B,CAAC;IAEF,IAAI,CAAC;QACD,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;YAClB,kDAAkD;YAClD,MAAM,SAAS,GAAG,iCAAiC,CAAC;YACpD,IAAA,qBAAK,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,EAAE;gBAC5D,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,QAAQ;aAClB,CAAC,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACJ,gCAAgC;YAChC,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,UAAU,EAAE,UAAU,EAAE;gBACxC,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,QAAQ;aAClB,CAAC,CAAC;YACH,KAAK,CAAC,KAAK,EAAE,CAAC;YAEd,6BAA6B;YAC7B,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAA,kBAAa,EAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1D,IAAI,MAAM,oBAAoB,EAAE,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;gBACvC,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,6CAA6C,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;iBACpH,CAAC;YACN,CAAC;QACL,CAAC;QAED,OAAO;YACH,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,wGAAwG;SACpH,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SAC/F,CAAC;IACN,CAAC;AACL,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,eAAe;IACjC,IAAI,CAAC,CAAC,MAAM,oBAAoB,EAAE,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACrE,CAAC;IAED,IAAI,CAAC;QACD,yDAAyD;QACzD,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;QAEnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,WAAW,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnD,WAAW,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACL,gCAAgC;YACpC,CAAC;YACD,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,2BAA2B;QAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAE1D,8BAA8B;QAC9B,IAAI,MAAM,oBAAoB,EAAE,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;YAC5C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC9B,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,MAAM,oBAAoB,EAAE,EAAE,CAAC;YAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iEAAiE,EAAE,CAAC;QAC1G,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SAC9F,CAAC;IACN,CAAC;AACL,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAySH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAChF,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,8 @@ exports.BrowserConnection = exports.Ai2qaMcpServer = exports.createMcpServer = v
|
|
|
24
24
|
const commander_1 = require("commander");
|
|
25
25
|
const server_js_1 = require("./server.js");
|
|
26
26
|
const config_js_1 = require("./config.js");
|
|
27
|
-
const
|
|
27
|
+
const chrome_js_1 = require("./chrome.js");
|
|
28
|
+
const VERSION = '0.1.7';
|
|
28
29
|
async function main() {
|
|
29
30
|
const program = new commander_1.Command();
|
|
30
31
|
program
|
|
@@ -183,8 +184,87 @@ async function main() {
|
|
|
183
184
|
console.log('║ ai2qa-agent start --cloud Start with cloud connection ║');
|
|
184
185
|
console.log('║ ai2qa-agent login <token> Login to AI2QA cloud ║');
|
|
185
186
|
console.log('║ ai2qa-agent logout Logout from AI2QA cloud ║');
|
|
187
|
+
console.log('║ ai2qa-agent chrome Start Chrome for debugging ║');
|
|
186
188
|
console.log('╚════════════════════════════════════════════════════════════╝');
|
|
187
189
|
});
|
|
190
|
+
program
|
|
191
|
+
.command('chrome')
|
|
192
|
+
.description('Start a separate Chrome instance for AI2QA agent (keeps your regular Chrome open)')
|
|
193
|
+
.option('--stop', 'Stop the agent Chrome instance')
|
|
194
|
+
.option('--status', 'Check if agent Chrome is running')
|
|
195
|
+
.option('--restart', 'Restart the agent Chrome instance')
|
|
196
|
+
.action(async (options) => {
|
|
197
|
+
if (options.status) {
|
|
198
|
+
const status = await (0, chrome_js_1.getChromeStatus)();
|
|
199
|
+
console.log('╔════════════════════════════════════════════════════════════╗');
|
|
200
|
+
console.log('║ AI2QA Agent Chrome Status ║');
|
|
201
|
+
console.log('╠════════════════════════════════════════════════════════════╣');
|
|
202
|
+
if (status.running) {
|
|
203
|
+
console.log(`║ Status: ${'Running'.padEnd(49)}║`);
|
|
204
|
+
console.log(`║ Debug Port: ${String(status.port).padEnd(45)}║`);
|
|
205
|
+
if (status.version) {
|
|
206
|
+
console.log(`║ Browser: ${status.version.substring(0, 47).padEnd(48)}║`);
|
|
207
|
+
}
|
|
208
|
+
if (status.tabs !== undefined) {
|
|
209
|
+
console.log(`║ Open Tabs: ${String(status.tabs).padEnd(46)}║`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
console.log(`║ Status: ${'Not running'.padEnd(49)}║`);
|
|
214
|
+
console.log('║ ║');
|
|
215
|
+
console.log('║ Run: ai2qa-agent chrome ║');
|
|
216
|
+
}
|
|
217
|
+
console.log('╚════════════════════════════════════════════════════════════╝');
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if (options.stop) {
|
|
221
|
+
console.log('Stopping agent Chrome...');
|
|
222
|
+
const result = await (0, chrome_js_1.stopAgentChrome)();
|
|
223
|
+
if (result.success) {
|
|
224
|
+
console.log(`✓ ${result.message}`);
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
console.error(`✗ ${result.message}`);
|
|
228
|
+
process.exit(1);
|
|
229
|
+
}
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
if (options.restart) {
|
|
233
|
+
console.log('Restarting agent Chrome...');
|
|
234
|
+
await (0, chrome_js_1.stopAgentChrome)();
|
|
235
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
236
|
+
}
|
|
237
|
+
// Start Chrome
|
|
238
|
+
console.log('╔════════════════════════════════════════════════════════════╗');
|
|
239
|
+
console.log('║ Starting AI2QA Agent Chrome ║');
|
|
240
|
+
console.log('╠════════════════════════════════════════════════════════════╣');
|
|
241
|
+
console.log('║ This starts a SEPARATE Chrome instance. ║');
|
|
242
|
+
console.log('║ Your regular Chrome and all tabs stay open! ║');
|
|
243
|
+
console.log('╚════════════════════════════════════════════════════════════╝');
|
|
244
|
+
console.log('');
|
|
245
|
+
const result = await (0, chrome_js_1.startAgentChrome)();
|
|
246
|
+
if (result.success) {
|
|
247
|
+
console.log('╔════════════════════════════════════════════════════════════╗');
|
|
248
|
+
console.log('║ ✓ Agent Chrome is ready! ║');
|
|
249
|
+
console.log('╠════════════════════════════════════════════════════════════╣');
|
|
250
|
+
console.log('║ CDP Endpoint: http://localhost:9222 ║');
|
|
251
|
+
console.log('║ ║');
|
|
252
|
+
console.log('║ Next steps: ║');
|
|
253
|
+
console.log('║ 1. Run: ai2qa-agent start --cloud ║');
|
|
254
|
+
console.log('║ 2. Start a test from ai2qa.com ║');
|
|
255
|
+
console.log('║ ║');
|
|
256
|
+
console.log('║ To stop: ai2qa-agent chrome --stop ║');
|
|
257
|
+
console.log('╚════════════════════════════════════════════════════════════╝');
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
console.error('╔════════════════════════════════════════════════════════════╗');
|
|
261
|
+
console.error('║ ✗ Failed to start Chrome ║');
|
|
262
|
+
console.error('╠════════════════════════════════════════════════════════════╣');
|
|
263
|
+
console.error(`║ ${result.message.substring(0, 56).padEnd(57)}║`);
|
|
264
|
+
console.error('╚════════════════════════════════════════════════════════════╝');
|
|
265
|
+
process.exit(1);
|
|
266
|
+
}
|
|
267
|
+
});
|
|
188
268
|
await program.parseAsync(process.argv);
|
|
189
269
|
}
|
|
190
270
|
// Run if executed directly
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/click.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"click.d.ts","sourceRoot":"","sources":["../../src/tools/click.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"click.d.ts","sourceRoot":"","sources":["../../src/tools/click.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAS,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAqB,WAAW,EAAE,MAAM,YAAY,CAAC;AAK5D,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExD;AAED,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAqD7E"}
|
package/dist/tools/click.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Click Tool
|
|
4
4
|
*
|
|
5
5
|
* Clicks on elements by selector or ref ID.
|
|
6
|
+
* Supports clicking elements in iframes (important for cookie consent banners).
|
|
6
7
|
*/
|
|
7
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
9
|
exports.setRef = setRef;
|
|
@@ -39,6 +40,7 @@ async function click(page, params) {
|
|
|
39
40
|
};
|
|
40
41
|
}
|
|
41
42
|
try {
|
|
43
|
+
// First try to click in the main page
|
|
42
44
|
await page.click(resolvedSelector, {
|
|
43
45
|
button,
|
|
44
46
|
clickCount,
|
|
@@ -49,8 +51,19 @@ async function click(page, params) {
|
|
|
49
51
|
selector: resolvedSelector,
|
|
50
52
|
};
|
|
51
53
|
}
|
|
52
|
-
catch (
|
|
53
|
-
|
|
54
|
+
catch (mainPageErr) {
|
|
55
|
+
// If click failed on main page, try to find and click in iframes
|
|
56
|
+
// This is important for cookie consent banners (OneTrust, CookieBot, etc.)
|
|
57
|
+
const iframeResult = await tryClickInIframes(page, resolvedSelector, {
|
|
58
|
+
button,
|
|
59
|
+
clickCount,
|
|
60
|
+
timeout,
|
|
61
|
+
});
|
|
62
|
+
if (iframeResult.success) {
|
|
63
|
+
return iframeResult;
|
|
64
|
+
}
|
|
65
|
+
// Return the original error if iframe click also failed
|
|
66
|
+
const message = mainPageErr instanceof Error ? mainPageErr.message : String(mainPageErr);
|
|
54
67
|
return {
|
|
55
68
|
success: false,
|
|
56
69
|
error: `Click failed on "${resolvedSelector}": ${message}`,
|
|
@@ -58,4 +71,76 @@ async function click(page, params) {
|
|
|
58
71
|
};
|
|
59
72
|
}
|
|
60
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Try to click an element inside iframes.
|
|
76
|
+
* Searches through all frames, prioritizing consent-related iframes.
|
|
77
|
+
*/
|
|
78
|
+
async function tryClickInIframes(page, selector, options) {
|
|
79
|
+
const frames = page.frames();
|
|
80
|
+
// Sort frames to prioritize consent-related ones
|
|
81
|
+
const sortedFrames = sortFramesByPriority(frames, page.mainFrame());
|
|
82
|
+
for (const frame of sortedFrames) {
|
|
83
|
+
try {
|
|
84
|
+
// Check if element exists in this frame
|
|
85
|
+
const element = await frame.$(selector);
|
|
86
|
+
if (element) {
|
|
87
|
+
await frame.click(selector, {
|
|
88
|
+
button: options.button,
|
|
89
|
+
clickCount: options.clickCount,
|
|
90
|
+
timeout: options.timeout || 5000,
|
|
91
|
+
});
|
|
92
|
+
const frameName = frame.name() || frame.url() || 'unnamed';
|
|
93
|
+
return {
|
|
94
|
+
success: true,
|
|
95
|
+
selector: selector,
|
|
96
|
+
message: `Clicked in iframe: ${frameName}`,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Frame might be detached or cross-origin, continue to next
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
success: false,
|
|
106
|
+
error: `Element not found in any iframe: ${selector}`,
|
|
107
|
+
selector: selector,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Sort frames to prioritize consent-related iframes (OneTrust, CookieBot, etc.)
|
|
112
|
+
*/
|
|
113
|
+
function sortFramesByPriority(frames, mainFrame) {
|
|
114
|
+
return frames
|
|
115
|
+
.filter(frame => frame !== mainFrame)
|
|
116
|
+
.sort((a, b) => {
|
|
117
|
+
const aUrl = a.url().toLowerCase();
|
|
118
|
+
const bUrl = b.url().toLowerCase();
|
|
119
|
+
const aIsConsent = isConsentFrame(aUrl);
|
|
120
|
+
const bIsConsent = isConsentFrame(bUrl);
|
|
121
|
+
// Consent frames first
|
|
122
|
+
if (aIsConsent && !bIsConsent)
|
|
123
|
+
return -1;
|
|
124
|
+
if (!aIsConsent && bIsConsent)
|
|
125
|
+
return 1;
|
|
126
|
+
return 0;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Check if a frame URL looks like a consent-related iframe.
|
|
131
|
+
*/
|
|
132
|
+
function isConsentFrame(url) {
|
|
133
|
+
const consentKeywords = [
|
|
134
|
+
'consent',
|
|
135
|
+
'cookie',
|
|
136
|
+
'onetrust',
|
|
137
|
+
'trustarc',
|
|
138
|
+
'cookiebot',
|
|
139
|
+
'privacy',
|
|
140
|
+
'gdpr',
|
|
141
|
+
'ccpa',
|
|
142
|
+
'optanon',
|
|
143
|
+
];
|
|
144
|
+
return consentKeywords.some(keyword => url.includes(keyword));
|
|
145
|
+
}
|
|
61
146
|
//# sourceMappingURL=click.js.map
|
package/dist/tools/click.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"click.js","sourceRoot":"","sources":["../../src/tools/click.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"click.js","sourceRoot":"","sources":["../../src/tools/click.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAQH,wBAEC;AAED,wBAEC;AAED,8BAEC;AAED,sBAqDC;AAtED,yCAA4D;AAE5D,+DAA+D;AAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEzC,SAAgB,MAAM,CAAC,KAAa,EAAE,QAAgB;IAClD,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,MAAM,CAAC,KAAa;IAChC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,SAAS;IACrB,MAAM,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAEM,KAAK,UAAU,KAAK,CAAC,IAAU,EAAE,MAAe;IACnD,MAAM,WAAW,GAAG,4BAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,uBAAuB,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;SAC5D,CAAC;IACN,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;IAExE,wCAAwC;IACxC,MAAM,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC,sBAAsB;SAC9D,CAAC;IACN,CAAC;IAED,IAAI,CAAC;QACD,sCAAsC;QACtC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;YAC/B,MAAM;YACN,UAAU;YACV,OAAO;SACV,CAAC,CAAC;QAEH,OAAO;YACH,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,gBAAgB;SAC7B,CAAC;IACN,CAAC;IAAC,OAAO,WAAW,EAAE,CAAC;QACnB,iEAAiE;QACjE,2EAA2E;QAC3E,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,EAAE;YACjE,MAAM;YACN,UAAU;YACV,OAAO;SACV,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC;QACxB,CAAC;QAED,wDAAwD;QACxD,MAAM,OAAO,GAAG,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACzF,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,oBAAoB,gBAAgB,MAAM,OAAO,EAAE;YAC1D,QAAQ,EAAE,gBAAgB;SAC7B,CAAC;IACN,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAC5B,IAAU,EACV,QAAgB,EAChB,OAAwF;IAExF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAE7B,iDAAiD;IACjD,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAEpE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC;YACD,wCAAwC;YACxC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;iBACnC,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;gBAC3D,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,sBAAsB,SAAS,EAAE;iBAC7C,CAAC;YACN,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,4DAA4D;QAChE,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,oCAAoC,QAAQ,EAAE;QACrD,QAAQ,EAAE,QAAQ;KACrB,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAe,EAAE,SAAgB;IAC3D,OAAO,MAAM;SACR,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;SACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACX,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAEnC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAExC,uBAAuB;QACvB,IAAI,UAAU,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,IAAI,UAAU;YAAE,OAAO,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IAC/B,MAAM,eAAe,GAAG;QACpB,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,WAAW;QACX,SAAS;QACT,MAAM;QACN,MAAM;QACN,SAAS;KACZ,CAAC;IACF,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC"}
|
package/dist/tools/fill.d.ts
CHANGED
package/dist/tools/fill.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../src/tools/fill.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../src/tools/fill.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAoB,UAAU,EAAE,MAAM,YAAY,CAAC;AAG1D,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAoD3E"}
|
package/dist/tools/fill.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Fill Tool
|
|
4
4
|
*
|
|
5
5
|
* Fills input elements with text values.
|
|
6
|
+
* Supports filling elements in iframes.
|
|
6
7
|
*/
|
|
7
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
9
|
exports.fill = fill;
|
|
@@ -36,8 +37,17 @@ async function fill(page, params) {
|
|
|
36
37
|
selector: resolvedSelector,
|
|
37
38
|
};
|
|
38
39
|
}
|
|
39
|
-
catch (
|
|
40
|
-
|
|
40
|
+
catch (mainPageErr) {
|
|
41
|
+
// If fill failed on main page, try to find and fill in iframes
|
|
42
|
+
const iframeResult = await tryFillInIframes(page, resolvedSelector, value, {
|
|
43
|
+
clear,
|
|
44
|
+
timeout,
|
|
45
|
+
});
|
|
46
|
+
if (iframeResult.success) {
|
|
47
|
+
return iframeResult;
|
|
48
|
+
}
|
|
49
|
+
// Return the original error if iframe fill also failed
|
|
50
|
+
const message = mainPageErr instanceof Error ? mainPageErr.message : String(mainPageErr);
|
|
41
51
|
return {
|
|
42
52
|
success: false,
|
|
43
53
|
error: `Fill failed on "${resolvedSelector}": ${message}`,
|
|
@@ -45,4 +55,38 @@ async function fill(page, params) {
|
|
|
45
55
|
};
|
|
46
56
|
}
|
|
47
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Try to fill an element inside iframes.
|
|
60
|
+
*/
|
|
61
|
+
async function tryFillInIframes(page, selector, value, options) {
|
|
62
|
+
const frames = page.frames();
|
|
63
|
+
for (const frame of frames) {
|
|
64
|
+
// Skip main frame
|
|
65
|
+
if (frame === page.mainFrame())
|
|
66
|
+
continue;
|
|
67
|
+
try {
|
|
68
|
+
// Check if element exists in this frame
|
|
69
|
+
const element = frame.locator(selector);
|
|
70
|
+
const count = await element.count();
|
|
71
|
+
if (count > 0) {
|
|
72
|
+
if (options.clear) {
|
|
73
|
+
await element.clear({ timeout: options.timeout });
|
|
74
|
+
}
|
|
75
|
+
await element.fill(value, { timeout: options.timeout });
|
|
76
|
+
return {
|
|
77
|
+
success: true,
|
|
78
|
+
selector: selector,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Frame might be detached or cross-origin, continue to next
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
success: false,
|
|
88
|
+
error: `Element not found in any iframe: ${selector}`,
|
|
89
|
+
selector: selector,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
48
92
|
//# sourceMappingURL=fill.js.map
|
package/dist/tools/fill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill.js","sourceRoot":"","sources":["../../src/tools/fill.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"fill.js","sourceRoot":"","sources":["../../src/tools/fill.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/hover.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover.d.ts","sourceRoot":"","sources":["../../src/tools/hover.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hover.d.ts","sourceRoot":"","sources":["../../src/tools/hover.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAqB,WAAW,EAAE,MAAM,YAAY,CAAC;AAG5D,wBAAsB,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CA2C7E"}
|
package/dist/tools/hover.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Hover Tool
|
|
4
4
|
*
|
|
5
5
|
* Hovers over elements to trigger hover states, tooltips, etc.
|
|
6
|
+
* Supports hovering elements in iframes.
|
|
6
7
|
*/
|
|
7
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
9
|
exports.hover = hover;
|
|
@@ -32,8 +33,14 @@ async function hover(page, params) {
|
|
|
32
33
|
selector: resolvedSelector,
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
|
-
catch (
|
|
36
|
-
|
|
36
|
+
catch (mainPageErr) {
|
|
37
|
+
// If hover failed on main page, try to find and hover in iframes
|
|
38
|
+
const iframeResult = await tryHoverInIframes(page, resolvedSelector, { timeout });
|
|
39
|
+
if (iframeResult.success) {
|
|
40
|
+
return iframeResult;
|
|
41
|
+
}
|
|
42
|
+
// Return the original error if iframe hover also failed
|
|
43
|
+
const message = mainPageErr instanceof Error ? mainPageErr.message : String(mainPageErr);
|
|
37
44
|
return {
|
|
38
45
|
success: false,
|
|
39
46
|
error: `Hover failed on "${resolvedSelector}": ${message}`,
|
|
@@ -41,4 +48,34 @@ async function hover(page, params) {
|
|
|
41
48
|
};
|
|
42
49
|
}
|
|
43
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Try to hover an element inside iframes.
|
|
53
|
+
*/
|
|
54
|
+
async function tryHoverInIframes(page, selector, options) {
|
|
55
|
+
const frames = page.frames();
|
|
56
|
+
for (const frame of frames) {
|
|
57
|
+
// Skip main frame
|
|
58
|
+
if (frame === page.mainFrame())
|
|
59
|
+
continue;
|
|
60
|
+
try {
|
|
61
|
+
// Check if element exists in this frame
|
|
62
|
+
const element = await frame.$(selector);
|
|
63
|
+
if (element) {
|
|
64
|
+
await frame.hover(selector, { timeout: options.timeout });
|
|
65
|
+
return {
|
|
66
|
+
success: true,
|
|
67
|
+
selector: selector,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Frame might be detached or cross-origin, continue to next
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
success: false,
|
|
77
|
+
error: `Element not found in any iframe: ${selector}`,
|
|
78
|
+
selector: selector,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
44
81
|
//# sourceMappingURL=hover.js.map
|
package/dist/tools/hover.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover.js","sourceRoot":"","sources":["../../src/tools/hover.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"hover.js","sourceRoot":"","sources":["../../src/tools/hover.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAMH,sBA2CC;AA9CD,yCAA4D;AAC5D,yCAAoC;AAE7B,KAAK,UAAU,KAAK,CAAC,IAAU,EAAE,MAAe;IACnD,MAAM,WAAW,GAAG,4BAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,uBAAuB,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;SAC5D,CAAC;IACN,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;IAEpD,wCAAwC;IACxC,MAAM,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,IAAA,iBAAM,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC,sBAAsB;SAC9D,CAAC;IACN,CAAC;IAED,IAAI,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAEhD,OAAO;YACH,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,gBAAgB;SAC7B,CAAC;IACN,CAAC;IAAC,OAAO,WAAW,EAAE,CAAC;QACnB,iEAAiE;QACjE,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAElF,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC;QACxB,CAAC;QAED,wDAAwD;QACxD,MAAM,OAAO,GAAG,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACzF,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,oBAAoB,gBAAgB,MAAM,OAAO,EAAE;YAC1D,QAAQ,EAAE,gBAAgB;SAC7B,CAAC;IACN,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC5B,IAAU,EACV,QAAgB,EAChB,OAA6B;IAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,kBAAkB;QAClB,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;YAAE,SAAS;QAEzC,IAAI,CAAC;YACD,wCAAwC;YACxC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE1D,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,QAAQ;iBACrB,CAAC;YACN,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,4DAA4D;QAChE,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,oCAAoC,QAAQ,EAAE;QACrD,QAAQ,EAAE,QAAQ;KACrB,CAAC;AACN,CAAC"}
|
package/dist/tools/snapshot.js
CHANGED
|
@@ -57,13 +57,33 @@ async function snapshot(page, params) {
|
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* Capture accessibility tree snapshot using Playwright's aria snapshot.
|
|
60
|
+
* IMPORTANT: Captures consent banners FIRST so they don't get truncated.
|
|
60
61
|
*/
|
|
61
62
|
async function captureAccessibilitySnapshot(page, verbose, refs) {
|
|
62
63
|
// Clear previous refs
|
|
63
64
|
(0, click_js_1.clearRefs)();
|
|
64
65
|
refCounter = 0;
|
|
65
|
-
//
|
|
66
|
+
// Build output - consent content goes FIRST to avoid truncation
|
|
67
|
+
const lines = [];
|
|
68
|
+
// 1. FIRST: Capture consent banners from main DOM (OneTrust, CookieBot, etc.)
|
|
69
|
+
// These are often injected directly into the page, not iframes
|
|
70
|
+
const consentElements = await captureConsentBannerElements(page);
|
|
71
|
+
if (consentElements) {
|
|
72
|
+
lines.push('=== CONSENT BANNER DETECTED ===');
|
|
73
|
+
lines.push(consentElements);
|
|
74
|
+
lines.push('');
|
|
75
|
+
}
|
|
76
|
+
// 2. SECOND: Capture iframe content (some consent banners use iframes)
|
|
77
|
+
const iframeContent = await captureIframeContent(page);
|
|
78
|
+
if (iframeContent) {
|
|
79
|
+
lines.push('=== Iframe Content (Cookie Consent / Overlays) ===');
|
|
80
|
+
lines.push(iframeContent);
|
|
81
|
+
lines.push('');
|
|
82
|
+
}
|
|
83
|
+
// 3. THIRD: Main page accessibility snapshot
|
|
66
84
|
const ariaSnapshot = await page.locator('body').ariaSnapshot();
|
|
85
|
+
lines.push('=== Accessibility Snapshot ===');
|
|
86
|
+
lines.push(ariaSnapshot);
|
|
67
87
|
// Also capture interactive elements and assign refs
|
|
68
88
|
// Note: This code runs in browser context via Playwright's evaluate
|
|
69
89
|
const interactiveElements = await page.evaluate(`(() => {
|
|
@@ -114,10 +134,6 @@ async function captureAccessibilitySnapshot(page, verbose, refs) {
|
|
|
114
134
|
refs[refId] = el.selector;
|
|
115
135
|
(0, click_js_1.setRef)(refId, el.selector);
|
|
116
136
|
});
|
|
117
|
-
// Build output
|
|
118
|
-
const lines = [];
|
|
119
|
-
lines.push('=== Accessibility Snapshot ===');
|
|
120
|
-
lines.push(ariaSnapshot);
|
|
121
137
|
if (verbose && interactiveElements.length > 0) {
|
|
122
138
|
lines.push('');
|
|
123
139
|
lines.push('=== Interactive Elements (with refs) ===');
|
|
@@ -131,4 +147,181 @@ async function captureAccessibilitySnapshot(page, verbose, refs) {
|
|
|
131
147
|
}
|
|
132
148
|
return lines.join('\n');
|
|
133
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Capture consent banner elements from the MAIN DOM.
|
|
152
|
+
* OneTrust, CookieBot, and similar SDKs inject directly into the page.
|
|
153
|
+
* This captures them explicitly so they appear at the TOP of the snapshot.
|
|
154
|
+
*/
|
|
155
|
+
async function captureConsentBannerElements(page) {
|
|
156
|
+
try {
|
|
157
|
+
const consentInfo = await page.evaluate(`(() => {
|
|
158
|
+
// Common consent banner selectors (OneTrust, CookieBot, TrustArc, etc.)
|
|
159
|
+
const bannerSelectors = [
|
|
160
|
+
'#onetrust-banner-sdk',
|
|
161
|
+
'#onetrust-consent-sdk',
|
|
162
|
+
'.onetrust-pc-dark-filter',
|
|
163
|
+
'#CybotCookiebotDialog',
|
|
164
|
+
'#truste-consent-track',
|
|
165
|
+
'[class*="cookie-banner"]',
|
|
166
|
+
'[class*="cookie-consent"]',
|
|
167
|
+
'[class*="consent-banner"]',
|
|
168
|
+
'[id*="cookie-banner"]',
|
|
169
|
+
'[id*="cookie-consent"]',
|
|
170
|
+
'[id*="consent-banner"]',
|
|
171
|
+
'[data-testid*="cookie"]',
|
|
172
|
+
'[aria-label*="cookie"]',
|
|
173
|
+
'[aria-label*="consent"]',
|
|
174
|
+
];
|
|
175
|
+
|
|
176
|
+
let banner = null;
|
|
177
|
+
let bannerType = 'unknown';
|
|
178
|
+
|
|
179
|
+
for (const sel of bannerSelectors) {
|
|
180
|
+
const el = document.querySelector(sel);
|
|
181
|
+
if (el) {
|
|
182
|
+
const rect = el.getBoundingClientRect();
|
|
183
|
+
if (rect.width > 0 && rect.height > 0) {
|
|
184
|
+
banner = el;
|
|
185
|
+
bannerType = sel;
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if (!banner) {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Find all buttons within the banner
|
|
196
|
+
const buttonSelectors = [
|
|
197
|
+
'button',
|
|
198
|
+
'[role="button"]',
|
|
199
|
+
'a[class*="btn"]',
|
|
200
|
+
'a[class*="button"]',
|
|
201
|
+
'[class*="accept"]',
|
|
202
|
+
'[class*="reject"]',
|
|
203
|
+
'[class*="agree"]',
|
|
204
|
+
'[id*="accept"]',
|
|
205
|
+
'[id*="reject"]',
|
|
206
|
+
];
|
|
207
|
+
|
|
208
|
+
const buttons = [];
|
|
209
|
+
for (const btnSel of buttonSelectors) {
|
|
210
|
+
banner.querySelectorAll(btnSel).forEach(btn => {
|
|
211
|
+
const rect = btn.getBoundingClientRect();
|
|
212
|
+
if (rect.width === 0 || rect.height === 0) return;
|
|
213
|
+
|
|
214
|
+
const text = (btn.innerText || '').trim().slice(0, 50);
|
|
215
|
+
const id = btn.id || '';
|
|
216
|
+
let selector = '';
|
|
217
|
+
|
|
218
|
+
if (id) {
|
|
219
|
+
selector = '#' + id;
|
|
220
|
+
} else if (btn.getAttribute('class')) {
|
|
221
|
+
// Use first meaningful class
|
|
222
|
+
const classes = btn.getAttribute('class').split(' ').filter(c => c.length > 2);
|
|
223
|
+
if (classes.length > 0) {
|
|
224
|
+
selector = '.' + classes[0];
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
if (text || id) {
|
|
229
|
+
buttons.push({ text, selector, id });
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Get banner text (truncated)
|
|
235
|
+
const bannerText = (banner.innerText || '').slice(0, 200).trim();
|
|
236
|
+
|
|
237
|
+
return {
|
|
238
|
+
found: true,
|
|
239
|
+
bannerType,
|
|
240
|
+
buttons,
|
|
241
|
+
bannerText
|
|
242
|
+
};
|
|
243
|
+
})()`);
|
|
244
|
+
if (!consentInfo || !consentInfo.found) {
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
const lines = [];
|
|
248
|
+
lines.push(`Banner Type: ${consentInfo.bannerType}`);
|
|
249
|
+
lines.push(`Banner Text: "${consentInfo.bannerText}..."`);
|
|
250
|
+
lines.push('Buttons found:');
|
|
251
|
+
consentInfo.buttons.forEach(btn => {
|
|
252
|
+
lines.push(` - button: "${btn.text}" (id="${btn.id}", selector="${btn.selector}")`);
|
|
253
|
+
});
|
|
254
|
+
return lines.join('\n');
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Capture interactive elements from iframes.
|
|
262
|
+
* This is critical for cookie consent banners (OneTrust, CookieBot, etc.)
|
|
263
|
+
* which are often loaded in iframes.
|
|
264
|
+
*/
|
|
265
|
+
async function captureIframeContent(page) {
|
|
266
|
+
try {
|
|
267
|
+
const frames = page.frames();
|
|
268
|
+
const iframeLines = [];
|
|
269
|
+
for (const frame of frames) {
|
|
270
|
+
// Skip main frame
|
|
271
|
+
if (frame === page.mainFrame())
|
|
272
|
+
continue;
|
|
273
|
+
const frameUrl = frame.url();
|
|
274
|
+
// Only process frames that look like consent-related
|
|
275
|
+
const isConsentFrame = frameUrl.includes('consent') ||
|
|
276
|
+
frameUrl.includes('cookie') ||
|
|
277
|
+
frameUrl.includes('onetrust') ||
|
|
278
|
+
frameUrl.includes('trustarc') ||
|
|
279
|
+
frameUrl.includes('cookiebot') ||
|
|
280
|
+
frameUrl.includes('privacy') ||
|
|
281
|
+
frameUrl.includes('gdpr') ||
|
|
282
|
+
frameUrl === 'about:blank'; // Some consent iframes start as about:blank
|
|
283
|
+
if (!isConsentFrame && frames.length > 5) {
|
|
284
|
+
// Skip non-consent frames if there are many frames (performance)
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
try {
|
|
288
|
+
// Try to get buttons and interactive elements from the iframe
|
|
289
|
+
const iframeElements = await frame.evaluate(`(() => {
|
|
290
|
+
const elements = [];
|
|
291
|
+
const selectors = ['button', '[role="button"]', 'a', 'input[type="submit"]'];
|
|
292
|
+
|
|
293
|
+
selectors.forEach(sel => {
|
|
294
|
+
document.querySelectorAll(sel).forEach(el => {
|
|
295
|
+
const rect = el.getBoundingClientRect();
|
|
296
|
+
if (rect.width === 0 || rect.height === 0) return;
|
|
297
|
+
|
|
298
|
+
elements.push({
|
|
299
|
+
tag: el.tagName.toLowerCase(),
|
|
300
|
+
text: (el.innerText || '').slice(0, 100).trim(),
|
|
301
|
+
ariaLabel: el.getAttribute('aria-label') || '',
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
return elements;
|
|
307
|
+
})()`);
|
|
308
|
+
if (iframeElements.length > 0) {
|
|
309
|
+
const frameName = frame.name() || 'unnamed';
|
|
310
|
+
iframeLines.push(`[Frame: ${frameName}]`);
|
|
311
|
+
iframeElements.slice(0, 20).forEach(el => {
|
|
312
|
+
const label = el.text || el.ariaLabel || '(no text)';
|
|
313
|
+
iframeLines.push(` - ${el.tag}: "${label}"`);
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
catch {
|
|
318
|
+
// Frame might be detached or cross-origin, skip silently
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
return iframeLines.length > 0 ? iframeLines.join('\n') : null;
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
134
327
|
//# sourceMappingURL=snapshot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AASH,4BA4CC;AAlDD,yCAAkE;AAClE,yCAA+C;AAE/C,kDAAkD;AAClD,IAAI,UAAU,GAAG,CAAC,CAAC;AAEZ,KAAK,UAAU,QAAQ,CAAC,IAAU,EAAE,MAAe;IACtD,MAAM,WAAW,GAAG,+BAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,uBAAuB,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;SAC5D,CAAC;IACN,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;IAE3C,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEjC,IAAI,OAAe,CAAC;QACpB,MAAM,IAAI,GAA2B,EAAE,CAAC;QAExC,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,eAAe;gBAChB,OAAO,GAAG,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClE,MAAM;YACV,KAAK,MAAM;gBACP,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM;YACV,KAAK,MAAM;gBACP,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACvC,MAAM;QACd,CAAC;QAED,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO;YACP,GAAG;YACH,KAAK;YACL,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,oBAAoB,OAAO,EAAE;SACvC,CAAC;IACN,CAAC;AACL,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/tools/snapshot.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AASH,4BA4CC;AAlDD,yCAAkE;AAClE,yCAA+C;AAE/C,kDAAkD;AAClD,IAAI,UAAU,GAAG,CAAC,CAAC;AAEZ,KAAK,UAAU,QAAQ,CAAC,IAAU,EAAE,MAAe;IACtD,MAAM,WAAW,GAAG,+BAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,uBAAuB,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;SAC5D,CAAC;IACN,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;IAE3C,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEjC,IAAI,OAAe,CAAC;QACpB,MAAM,IAAI,GAA2B,EAAE,CAAC;QAExC,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,eAAe;gBAChB,OAAO,GAAG,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClE,MAAM;YACV,KAAK,MAAM;gBACP,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM;YACV,KAAK,MAAM;gBACP,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACvC,MAAM;QACd,CAAC;QAED,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO;YACP,GAAG;YACH,KAAK;YACL,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,oBAAoB,OAAO,EAAE;SACvC,CAAC;IACN,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,4BAA4B,CACvC,IAAU,EACV,OAAgB,EAChB,IAA4B;IAE5B,sBAAsB;IACtB,IAAA,oBAAS,GAAE,CAAC;IACZ,UAAU,GAAG,CAAC,CAAC;IAEf,gEAAgE;IAChE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,8EAA8E;IAC9E,+DAA+D;IAC/D,MAAM,eAAe,GAAG,MAAM,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,eAAe,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,uEAAuE;IACvE,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,aAAa,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,6CAA6C;IAC7C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEzB,oDAAoD;IACpD,oEAAoE;IACpE,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAK3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAyCC,CAAC,CAAC;IAEP,sCAAsC;IACtC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAC7B,MAAM,KAAK,GAAG,OAAO,UAAU,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC1B,IAAA,iBAAM,EAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACvD,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;YACjD,MAAM,KAAK,GAAG,OAAO,GAAG,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAI,mBAAmB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,WAAW,mBAAmB,CAAC,MAAM,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,4BAA4B,CAAC,IAAU;IAClD,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAK7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAsFL,CAAC,CAAC;QAEP,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,gBAAgB,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,UAAU,MAAM,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC9B,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,gBAAgB,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,oBAAoB,CAAC,IAAU;IAC1C,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,kBAAkB;YAClB,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;gBAAE,SAAS;YAEzC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7B,qDAAqD;YACrD,MAAM,cAAc,GAChB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC5B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC3B,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC7B,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC7B,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC9B,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC5B,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACzB,QAAQ,KAAK,aAAa,CAAC,CAAC,4CAA4C;YAE5E,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,iEAAiE;gBACjE,SAAS;YACb,CAAC;YAED,IAAI,CAAC;gBACD,8DAA8D;gBAC9D,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,QAAQ,CAIvC;;;;;;;;;;;;;;;;;;qBAkBC,CAAC,CAAC;gBAEP,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;oBAC5C,WAAW,CAAC,IAAI,CAAC,WAAW,SAAS,GAAG,CAAC,CAAC;oBAC1C,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACrC,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,SAAS,IAAI,WAAW,CAAC;wBACrD,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC;oBAClD,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,yDAAyD;YAC7D,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC"}
|
package/dist/tools/types.d.ts
CHANGED
|
@@ -64,6 +64,7 @@ export declare const ClickParamsSchema: z.ZodEffects<z.ZodObject<{
|
|
|
64
64
|
export type ClickParams = z.infer<typeof ClickParamsSchema>;
|
|
65
65
|
export interface ClickResult extends ToolResult {
|
|
66
66
|
readonly selector?: string;
|
|
67
|
+
readonly message?: string;
|
|
67
68
|
}
|
|
68
69
|
/** Fill tool */
|
|
69
70
|
export declare const FillParamsSchema: z.ZodEffects<z.ZodObject<{
|
|
@@ -192,7 +193,7 @@ export declare const WaitParamsSchema: z.ZodObject<{
|
|
|
192
193
|
timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
193
194
|
}, "strip", z.ZodTypeAny, {
|
|
194
195
|
timeout: number;
|
|
195
|
-
state: "
|
|
196
|
+
state: "detached" | "attached" | "visible" | "hidden";
|
|
196
197
|
selector?: string | undefined;
|
|
197
198
|
text?: string | undefined;
|
|
198
199
|
ms?: number | undefined;
|
|
@@ -201,7 +202,7 @@ export declare const WaitParamsSchema: z.ZodObject<{
|
|
|
201
202
|
selector?: string | undefined;
|
|
202
203
|
text?: string | undefined;
|
|
203
204
|
ms?: number | undefined;
|
|
204
|
-
state?: "
|
|
205
|
+
state?: "detached" | "attached" | "visible" | "hidden" | undefined;
|
|
205
206
|
}>;
|
|
206
207
|
export type WaitParams = z.infer<typeof WaitParamsSchema>;
|
|
207
208
|
export interface WaitResult extends ToolResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,oBAAoB;AACpB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,iBAAiB;AACjB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,6BAAwB;AAQxB,oBAAoB;AACP,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC9E,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAChD,CAAC,CAAC;AAQH,iBAAiB;AACJ,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACtE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAChD,CAAC,CAAC,MAAM,CACL,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAC7D,EAAE,OAAO,EAAE,yCAAyC,EAAE,CACzD,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED