openchrome-mcp 1.8.14 → 1.8.15
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/headed-fallback.d.ts +43 -0
- package/dist/chrome/headed-fallback.d.ts.map +1 -0
- package/dist/chrome/headed-fallback.js +232 -0
- package/dist/chrome/headed-fallback.js.map +1 -0
- package/dist/tools/batch-paginate.js +4 -4
- package/dist/tools/batch-paginate.js.map +1 -1
- package/dist/tools/computer.d.ts.map +1 -1
- package/dist/tools/computer.js +14 -13
- package/dist/tools/computer.js.map +1 -1
- package/dist/tools/drag-drop.d.ts.map +1 -1
- package/dist/tools/drag-drop.js +8 -0
- package/dist/tools/drag-drop.js.map +1 -1
- package/dist/tools/fill-form.js +3 -3
- package/dist/tools/fill-form.js.map +1 -1
- package/dist/tools/find.js +1 -1
- package/dist/tools/find.js.map +1 -1
- package/dist/tools/form-input.d.ts.map +1 -1
- package/dist/tools/form-input.js +8 -0
- package/dist/tools/form-input.js.map +1 -1
- package/dist/tools/interact.js +2 -2
- package/dist/tools/interact.js.map +1 -1
- package/dist/tools/navigate.d.ts.map +1 -1
- package/dist/tools/navigate.js +135 -20
- package/dist/tools/navigate.js.map +1 -1
- package/dist/tools/query-dom.d.ts.map +1 -1
- package/dist/tools/query-dom.js +17 -12
- package/dist/tools/query-dom.js.map +1 -1
- package/dist/utils/display-detect.d.ts +12 -0
- package/dist/utils/display-detect.d.ts.map +1 -0
- package/dist/utils/display-detect.js +59 -0
- package/dist/utils/display-detect.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Headed Chrome Fallback (#459)
|
|
3
|
+
*
|
|
4
|
+
* Manages a lazy-launched headed Chrome instance for Tier 3 fallback when
|
|
5
|
+
* headless Chrome is blocked by CDN/WAF systems at the TLS/UA level.
|
|
6
|
+
*
|
|
7
|
+
* Architecture:
|
|
8
|
+
* - Separate from the main headless Chrome (different port)
|
|
9
|
+
* - Launched only when first needed (lazy)
|
|
10
|
+
* - Reused across multiple fallback navigations
|
|
11
|
+
* - Cleaned up on process exit
|
|
12
|
+
*/
|
|
13
|
+
import { BlockingInfo } from '../utils/page-diagnostics';
|
|
14
|
+
/** Navigate result from headed fallback */
|
|
15
|
+
export interface HeadedNavigateResult {
|
|
16
|
+
url: string;
|
|
17
|
+
title: string;
|
|
18
|
+
elementCount: number;
|
|
19
|
+
blockingPage: BlockingInfo | null;
|
|
20
|
+
}
|
|
21
|
+
declare class HeadedFallbackManager {
|
|
22
|
+
private browser;
|
|
23
|
+
private chromeProcess;
|
|
24
|
+
private launching;
|
|
25
|
+
private port;
|
|
26
|
+
constructor(basePort?: number);
|
|
27
|
+
/** Check if headed fallback is available in this environment */
|
|
28
|
+
isAvailable(): boolean;
|
|
29
|
+
/** Get or launch the headed Chrome browser */
|
|
30
|
+
private ensureBrowser;
|
|
31
|
+
private launchHeadedChrome;
|
|
32
|
+
private waitForDebugPort;
|
|
33
|
+
/**
|
|
34
|
+
* Navigate to a URL in the headed Chrome fallback.
|
|
35
|
+
* Creates a temporary page, navigates, extracts results, and closes the page.
|
|
36
|
+
*/
|
|
37
|
+
navigate(url: string): Promise<HeadedNavigateResult>;
|
|
38
|
+
/** Shut down the headed Chrome instance */
|
|
39
|
+
shutdown(): void;
|
|
40
|
+
}
|
|
41
|
+
export declare function getHeadedFallback(basePort?: number): HeadedFallbackManager;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=headed-fallback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headed-fallback.d.ts","sourceRoot":"","sources":["../../src/chrome/headed-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,EAAsB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAM7E,2CAA2C;AAC3C,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC;AA2BD,cAAM,qBAAqB;IACzB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,IAAI,CAAS;gBAET,QAAQ,GAAE,MAAa;IAUnC,gEAAgE;IAChE,WAAW,IAAI,OAAO;IAItB,8CAA8C;YAChC,aAAa;YAeb,kBAAkB;YA4ClB,gBAAgB;IAiB9B;;;OAGG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA8B1D,2CAA2C;IAC3C,QAAQ,IAAI,IAAI;CAUjB;AAKD,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAa,GAAG,qBAAqB,CAKhF"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Headed Chrome Fallback (#459)
|
|
4
|
+
*
|
|
5
|
+
* Manages a lazy-launched headed Chrome instance for Tier 3 fallback when
|
|
6
|
+
* headless Chrome is blocked by CDN/WAF systems at the TLS/UA level.
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* - Separate from the main headless Chrome (different port)
|
|
10
|
+
* - Launched only when first needed (lazy)
|
|
11
|
+
* - Reused across multiple fallback navigations
|
|
12
|
+
* - Cleaned up on process exit
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
48
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.getHeadedFallback = getHeadedFallback;
|
|
52
|
+
const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
|
|
53
|
+
const child_process_1 = require("child_process");
|
|
54
|
+
const fs = __importStar(require("fs"));
|
|
55
|
+
const os = __importStar(require("os"));
|
|
56
|
+
const path = __importStar(require("path"));
|
|
57
|
+
const display_detect_1 = require("../utils/display-detect");
|
|
58
|
+
const page_diagnostics_1 = require("../utils/page-diagnostics");
|
|
59
|
+
const safe_title_1 = require("../utils/safe-title");
|
|
60
|
+
/** Default port offset from main Chrome port for the headed fallback */
|
|
61
|
+
const HEADED_PORT_OFFSET = 100;
|
|
62
|
+
/**
|
|
63
|
+
* Find Chrome binary path (subset of launcher.ts findChromePath for independence)
|
|
64
|
+
*/
|
|
65
|
+
function findChromeBinary() {
|
|
66
|
+
const envPath = process.env.CHROME_PATH;
|
|
67
|
+
if (envPath && fs.existsSync(envPath))
|
|
68
|
+
return envPath;
|
|
69
|
+
const platform = os.platform();
|
|
70
|
+
if (platform === 'darwin') {
|
|
71
|
+
const p = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome';
|
|
72
|
+
if (fs.existsSync(p))
|
|
73
|
+
return p;
|
|
74
|
+
}
|
|
75
|
+
else if (platform === 'win32') {
|
|
76
|
+
const envProgramFiles = process.env['PROGRAMFILES'];
|
|
77
|
+
if (envProgramFiles) {
|
|
78
|
+
const p = path.join(envProgramFiles, 'Google', 'Chrome', 'Application', 'chrome.exe');
|
|
79
|
+
if (fs.existsSync(p))
|
|
80
|
+
return p;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
for (const p of ['/usr/bin/google-chrome-stable', '/usr/bin/google-chrome']) {
|
|
85
|
+
if (fs.existsSync(p))
|
|
86
|
+
return p;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
class HeadedFallbackManager {
|
|
92
|
+
browser = null;
|
|
93
|
+
chromeProcess = null;
|
|
94
|
+
launching = null;
|
|
95
|
+
port;
|
|
96
|
+
constructor(basePort = 9222) {
|
|
97
|
+
this.port = basePort + HEADED_PORT_OFFSET;
|
|
98
|
+
// Clean up on process exit
|
|
99
|
+
const cleanup = () => this.shutdown();
|
|
100
|
+
process.on('exit', cleanup);
|
|
101
|
+
process.on('SIGINT', cleanup);
|
|
102
|
+
process.on('SIGTERM', cleanup);
|
|
103
|
+
}
|
|
104
|
+
/** Check if headed fallback is available in this environment */
|
|
105
|
+
isAvailable() {
|
|
106
|
+
return (0, display_detect_1.hasDisplay)() && findChromeBinary() !== null;
|
|
107
|
+
}
|
|
108
|
+
/** Get or launch the headed Chrome browser */
|
|
109
|
+
async ensureBrowser() {
|
|
110
|
+
if (this.browser?.connected)
|
|
111
|
+
return this.browser;
|
|
112
|
+
// Prevent concurrent launches
|
|
113
|
+
if (this.launching)
|
|
114
|
+
return this.launching;
|
|
115
|
+
this.launching = this.launchHeadedChrome();
|
|
116
|
+
try {
|
|
117
|
+
this.browser = await this.launching;
|
|
118
|
+
return this.browser;
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
this.launching = null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async launchHeadedChrome() {
|
|
125
|
+
const chromePath = findChromeBinary();
|
|
126
|
+
if (!chromePath) {
|
|
127
|
+
throw new Error('[HeadedFallback] Chrome binary not found');
|
|
128
|
+
}
|
|
129
|
+
if (!(0, display_detect_1.hasDisplay)()) {
|
|
130
|
+
throw new Error('[HeadedFallback] No display available for headed Chrome');
|
|
131
|
+
}
|
|
132
|
+
// Use a temp profile to avoid conflicting with the user's Chrome
|
|
133
|
+
const userDataDir = path.join(os.tmpdir(), `openchrome-headed-fallback-${this.port}`);
|
|
134
|
+
fs.mkdirSync(userDataDir, { recursive: true });
|
|
135
|
+
const args = [
|
|
136
|
+
`--remote-debugging-port=${this.port}`,
|
|
137
|
+
`--user-data-dir=${userDataDir}`,
|
|
138
|
+
'--no-first-run',
|
|
139
|
+
'--no-default-browser-check',
|
|
140
|
+
'--start-maximized',
|
|
141
|
+
'--window-size=1920,1080',
|
|
142
|
+
'--disable-blink-features=AutomationControlled',
|
|
143
|
+
];
|
|
144
|
+
console.error(`[HeadedFallback] Launching headed Chrome on port ${this.port}...`);
|
|
145
|
+
this.chromeProcess = (0, child_process_1.spawn)(chromePath, args, {
|
|
146
|
+
detached: true,
|
|
147
|
+
stdio: 'ignore',
|
|
148
|
+
});
|
|
149
|
+
this.chromeProcess.unref();
|
|
150
|
+
// Wait for Chrome to be ready
|
|
151
|
+
const wsEndpoint = await this.waitForDebugPort(15000);
|
|
152
|
+
const browser = await puppeteer_core_1.default.connect({
|
|
153
|
+
browserWSEndpoint: wsEndpoint,
|
|
154
|
+
defaultViewport: null,
|
|
155
|
+
});
|
|
156
|
+
console.error(`[HeadedFallback] Headed Chrome ready on port ${this.port}`);
|
|
157
|
+
return browser;
|
|
158
|
+
}
|
|
159
|
+
async waitForDebugPort(timeoutMs) {
|
|
160
|
+
const start = Date.now();
|
|
161
|
+
while (Date.now() - start < timeoutMs) {
|
|
162
|
+
try {
|
|
163
|
+
const response = await fetch(`http://127.0.0.1:${this.port}/json/version`);
|
|
164
|
+
const data = await response.json();
|
|
165
|
+
if (data.webSocketDebuggerUrl) {
|
|
166
|
+
return data.webSocketDebuggerUrl;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// Chrome not ready yet
|
|
171
|
+
}
|
|
172
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
173
|
+
}
|
|
174
|
+
throw new Error(`[HeadedFallback] Chrome did not start within ${timeoutMs}ms`);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Navigate to a URL in the headed Chrome fallback.
|
|
178
|
+
* Creates a temporary page, navigates, extracts results, and closes the page.
|
|
179
|
+
*/
|
|
180
|
+
async navigate(url) {
|
|
181
|
+
const browser = await this.ensureBrowser();
|
|
182
|
+
const page = await browser.newPage();
|
|
183
|
+
try {
|
|
184
|
+
await page.goto(url, {
|
|
185
|
+
waitUntil: 'domcontentloaded',
|
|
186
|
+
timeout: 30000,
|
|
187
|
+
});
|
|
188
|
+
// Wait a moment for any JS to execute
|
|
189
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
190
|
+
const [title, elementCount, blocking] = await Promise.all([
|
|
191
|
+
(0, safe_title_1.safeTitle)(page),
|
|
192
|
+
page.evaluate(() => document.querySelectorAll('*').length).catch(() => 0),
|
|
193
|
+
(0, page_diagnostics_1.detectBlockingPage)(page).catch(() => null),
|
|
194
|
+
]);
|
|
195
|
+
return {
|
|
196
|
+
url: page.url(),
|
|
197
|
+
title,
|
|
198
|
+
elementCount,
|
|
199
|
+
blockingPage: blocking,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
finally {
|
|
203
|
+
await page.close().catch(() => { });
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/** Shut down the headed Chrome instance */
|
|
207
|
+
shutdown() {
|
|
208
|
+
if (this.browser) {
|
|
209
|
+
try {
|
|
210
|
+
this.browser.disconnect();
|
|
211
|
+
}
|
|
212
|
+
catch { /* ignore */ }
|
|
213
|
+
this.browser = null;
|
|
214
|
+
}
|
|
215
|
+
if (this.chromeProcess && this.chromeProcess.exitCode === null) {
|
|
216
|
+
try {
|
|
217
|
+
this.chromeProcess.kill();
|
|
218
|
+
}
|
|
219
|
+
catch { /* ignore */ }
|
|
220
|
+
this.chromeProcess = null;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Singleton instance — port is set on first use
|
|
225
|
+
let instance = null;
|
|
226
|
+
function getHeadedFallback(basePort = 9222) {
|
|
227
|
+
if (!instance) {
|
|
228
|
+
instance = new HeadedFallbackManager(basePort);
|
|
229
|
+
}
|
|
230
|
+
return instance;
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=headed-fallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headed-fallback.js","sourceRoot":"","sources":["../../src/chrome/headed-fallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -195,10 +195,10 @@ const handler = async (sessionId, args, context) => {
|
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
if (captureMode === 'text' || captureMode === 'both') {
|
|
198
|
-
result.text = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.body.innerText), 10000, 'batch_paginate.evaluate');
|
|
198
|
+
result.text = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.body.innerText), 10000, 'batch_paginate.evaluate', context);
|
|
199
199
|
}
|
|
200
200
|
if (captureMode === 'dom') {
|
|
201
|
-
const rawHtml = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.body.innerHTML), 10000, 'batch_paginate.evaluate');
|
|
201
|
+
const rawHtml = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.body.innerHTML), 10000, 'batch_paginate.evaluate', context);
|
|
202
202
|
// Trim to avoid huge payloads
|
|
203
203
|
result.dom = rawHtml.length > defaults_1.MAX_OUTPUT_CHARS ? rawHtml.slice(0, defaults_1.MAX_OUTPUT_CHARS) + '...[truncated]' : rawHtml;
|
|
204
204
|
}
|
|
@@ -298,7 +298,7 @@ const handler = async (sessionId, args, context) => {
|
|
|
298
298
|
isError: true,
|
|
299
299
|
};
|
|
300
300
|
}
|
|
301
|
-
let lastScrollHeight = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.documentElement.scrollHeight), 10000, 'batch_paginate.evaluate');
|
|
301
|
+
let lastScrollHeight = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.documentElement.scrollHeight), 10000, 'batch_paginate.evaluate', context);
|
|
302
302
|
let stepNumber = 1;
|
|
303
303
|
// Capture initial view
|
|
304
304
|
const initialResult = await capturePageContent(page, stepNumber);
|
|
@@ -314,7 +314,7 @@ const handler = async (sessionId, args, context) => {
|
|
|
314
314
|
newScrollHeight: scrollHeight,
|
|
315
315
|
atBottom: scrollTop + viewportHeight >= scrollHeight - 10,
|
|
316
316
|
};
|
|
317
|
-
}, scrollAmount), 10000, 'batch_paginate.evaluate');
|
|
317
|
+
}, scrollAmount), 10000, 'batch_paginate.evaluate', context);
|
|
318
318
|
await new Promise((r) => setTimeout(r, waitBetweenPages));
|
|
319
319
|
stepNumber++;
|
|
320
320
|
const stepResult = await capturePageContent(page, stepNumber);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-paginate.js","sourceRoot":"","sources":["../../src/tools/batch-paginate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"batch-paginate.js","sourceRoot":"","sources":["../../src/tools/batch-paginate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computer.d.ts","sourceRoot":"","sources":["../../src/tools/computer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"computer.d.ts","sourceRoot":"","sources":["../../src/tools/computer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAw/B1C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE5D"}
|
package/dist/tools/computer.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.registerComputerTool = registerComputerTool;
|
|
7
|
+
const mcp_1 = require("../types/mcp");
|
|
7
8
|
const session_manager_1 = require("../session-manager");
|
|
8
9
|
const ref_id_manager_1 = require("../utils/ref-id-manager");
|
|
9
10
|
const defaults_1 = require("../config/defaults");
|
|
@@ -115,7 +116,7 @@ const handler = async (sessionId, args, context) => {
|
|
|
115
116
|
case 'screenshot': {
|
|
116
117
|
// Phase 1: Page readiness guard
|
|
117
118
|
try {
|
|
118
|
-
const readyState = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.readyState), 10000, 'computer');
|
|
119
|
+
const readyState = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.readyState), 10000, 'computer', context);
|
|
119
120
|
if (readyState !== 'complete') {
|
|
120
121
|
await page.waitForFunction(() => document.readyState === 'complete', { timeout: 3000 }).catch(() => { });
|
|
121
122
|
}
|
|
@@ -146,7 +147,7 @@ const handler = async (sessionId, args, context) => {
|
|
|
146
147
|
const preset = QUALITY_PRESETS[effectiveQuality];
|
|
147
148
|
// text_only mode: skip expensive screenshot, return visual summary
|
|
148
149
|
if (effectiveMode === 'text_only') {
|
|
149
|
-
const summary = await (0, visual_summary_1.generateVisualSummary)(page);
|
|
150
|
+
const summary = (context && !(0, mcp_1.hasBudget)(context, 5_000)) ? null : await (0, visual_summary_1.generateVisualSummary)(page);
|
|
150
151
|
return {
|
|
151
152
|
content: [{
|
|
152
153
|
type: 'text',
|
|
@@ -212,7 +213,7 @@ const handler = async (sessionId, args, context) => {
|
|
|
212
213
|
readyState: document.readyState,
|
|
213
214
|
textPreview: text,
|
|
214
215
|
};
|
|
215
|
-
}), 10000, 'computer');
|
|
216
|
+
}), 10000, 'computer', context);
|
|
216
217
|
return {
|
|
217
218
|
content: [{
|
|
218
219
|
type: 'text',
|
|
@@ -258,7 +259,7 @@ const handler = async (sessionId, args, context) => {
|
|
|
258
259
|
adaptive_screenshot_1.AdaptiveScreenshot.getInstance().reset(tabId);
|
|
259
260
|
if (refInfo) {
|
|
260
261
|
const { delta } = await (0, dom_delta_1.withDomDelta)(page, () => page.mouse.click(clickCoord[0], clickCoord[1]));
|
|
261
|
-
const summary = await (0, visual_summary_1.generateVisualSummary)(page);
|
|
262
|
+
const summary = (context && !(0, mcp_1.hasBudget)(context, 5_000)) ? null : await (0, visual_summary_1.generateVisualSummary)(page);
|
|
262
263
|
const summaryText = summary ? `\n${summary}` : '';
|
|
263
264
|
return {
|
|
264
265
|
content: [{ type: 'text', text: `Clicked element ${ref} at (${clickCoord[0]}, ${clickCoord[1]})${delta}${summaryText}` }],
|
|
@@ -271,11 +272,11 @@ const handler = async (sessionId, args, context) => {
|
|
|
271
272
|
isError: true,
|
|
272
273
|
};
|
|
273
274
|
}
|
|
274
|
-
const leftClickHitInfo = await getHitElementInfo(page, sessionManager.getCDPClient(), clickCoord[0], clickCoord[1], includeUAShadow);
|
|
275
|
+
const leftClickHitInfo = await getHitElementInfo(page, sessionManager.getCDPClient(), clickCoord[0], clickCoord[1], includeUAShadow, context);
|
|
275
276
|
const { delta: leftDelta } = await (0, dom_delta_1.withDomDelta)(page, () => page.mouse.click(clickCoord[0], clickCoord[1]));
|
|
276
277
|
// Internal fallback: if hit non-interactive element, suggest but don't auto-retry
|
|
277
278
|
// (auto-retry could cause unintended side effects on elements the LLM didn't intend)
|
|
278
|
-
const summary = await (0, visual_summary_1.generateVisualSummary)(page);
|
|
279
|
+
const summary = (context && !(0, mcp_1.hasBudget)(context, 5_000)) ? null : await (0, visual_summary_1.generateVisualSummary)(page);
|
|
279
280
|
const summaryText = summary ? `\n${summary}` : '';
|
|
280
281
|
const resultText = leftClickValidation.warning
|
|
281
282
|
? `Clicked at (${clickCoord[0]}, ${clickCoord[1]}). Warning: ${leftClickValidation.warning}${leftDelta}`
|
|
@@ -313,7 +314,7 @@ const handler = async (sessionId, args, context) => {
|
|
|
313
314
|
isError: true,
|
|
314
315
|
};
|
|
315
316
|
}
|
|
316
|
-
const rightClickHitInfo = await getHitElementInfo(page, sessionManager.getCDPClient(), clickCoord[0], clickCoord[1], includeUAShadow);
|
|
317
|
+
const rightClickHitInfo = await getHitElementInfo(page, sessionManager.getCDPClient(), clickCoord[0], clickCoord[1], includeUAShadow, context);
|
|
317
318
|
const { delta: rightDelta } = await (0, dom_delta_1.withDomDelta)(page, () => page.mouse.click(clickCoord[0], clickCoord[1], { button: 'right' }));
|
|
318
319
|
const rightClickText = rightClickValidation.warning
|
|
319
320
|
? `Right-clicked at (${clickCoord[0]}, ${clickCoord[1]}). Warning: ${rightClickValidation.warning}${rightDelta}`
|
|
@@ -353,7 +354,7 @@ const handler = async (sessionId, args, context) => {
|
|
|
353
354
|
isError: true,
|
|
354
355
|
};
|
|
355
356
|
}
|
|
356
|
-
const doubleClickHitInfo = await getHitElementInfo(page, sessionManager.getCDPClient(), clickCoord[0], clickCoord[1], includeUAShadow);
|
|
357
|
+
const doubleClickHitInfo = await getHitElementInfo(page, sessionManager.getCDPClient(), clickCoord[0], clickCoord[1], includeUAShadow, context);
|
|
357
358
|
const { delta: doubleDelta } = await (0, dom_delta_1.withDomDelta)(page, () => page.mouse.click(clickCoord[0], clickCoord[1], { clickCount: 2 }));
|
|
358
359
|
const doubleClickText = doubleClickValidation.warning
|
|
359
360
|
? `Double-clicked at (${clickCoord[0]}, ${clickCoord[1]}). Warning: ${doubleClickValidation.warning}${doubleDelta}`
|
|
@@ -393,7 +394,7 @@ const handler = async (sessionId, args, context) => {
|
|
|
393
394
|
isError: true,
|
|
394
395
|
};
|
|
395
396
|
}
|
|
396
|
-
const tripleClickHitInfo = await getHitElementInfo(page, sessionManager.getCDPClient(), clickCoord[0], clickCoord[1], includeUAShadow);
|
|
397
|
+
const tripleClickHitInfo = await getHitElementInfo(page, sessionManager.getCDPClient(), clickCoord[0], clickCoord[1], includeUAShadow, context);
|
|
397
398
|
const { delta: tripleDelta } = await (0, dom_delta_1.withDomDelta)(page, () => page.mouse.click(clickCoord[0], clickCoord[1], { clickCount: 3 }));
|
|
398
399
|
const tripleClickText = tripleClickValidation.warning
|
|
399
400
|
? `Triple-clicked at (${clickCoord[0]}, ${clickCoord[1]}). Warning: ${tripleClickValidation.warning}${tripleDelta}`
|
|
@@ -548,7 +549,7 @@ const handler = async (sessionId, args, context) => {
|
|
|
548
549
|
// Primary: CDP mouse wheel scroll
|
|
549
550
|
const primaryWheel = () => page.mouse.wheel({ deltaX, deltaY });
|
|
550
551
|
// Fallback: JS window.scrollBy (works even when CDP input is busy)
|
|
551
|
-
const fallbackWheel = () => (0, with_timeout_1.withTimeout)(page.evaluate((dx, dy) => window.scrollBy(dx, dy), deltaX, deltaY), 5000, 'scroll-fallback');
|
|
552
|
+
const fallbackWheel = () => (0, with_timeout_1.withTimeout)(page.evaluate((dx, dy) => window.scrollBy(dx, dy), deltaX, deltaY), 5000, 'scroll-fallback', context);
|
|
552
553
|
const { recovered: scrollRecovered, method: scrollMethod } = await (0, retry_with_fallback_1.retryWithFallback)(primaryWheel, [fallbackWheel], { label: 'computer_scroll', retryDelayMs: 500 });
|
|
553
554
|
const centerNote = usedViewportCenter ? ' [viewport center]' : '';
|
|
554
555
|
const recoveryNote = scrollRecovered ? ` [recovered:${scrollMethod}]` : '';
|
|
@@ -683,7 +684,7 @@ async function resolveRefToCoordinates(sessionId, tabId, ref, page, sessionManag
|
|
|
683
684
|
* Returns a string like '\nHit: <button id="submit"> "Submit" [interactive]'
|
|
684
685
|
* or empty string if CDP fails.
|
|
685
686
|
*/
|
|
686
|
-
async function getHitElementInfo(page, cdpClient, x, y, includeUserAgentShadowDOM = false) {
|
|
687
|
+
async function getHitElementInfo(page, cdpClient, x, y, includeUserAgentShadowDOM = false, context) {
|
|
687
688
|
try {
|
|
688
689
|
const locationResult = await cdpClient.send(page, 'DOM.getNodeForLocation', { x, y, includeUserAgentShadowDOM });
|
|
689
690
|
const backendNodeId = locationResult?.backendNodeId;
|
|
@@ -717,7 +718,7 @@ async function getHitElementInfo(page, cdpClient, x, y, includeUserAgentShadowDO
|
|
|
717
718
|
textContent = await (0, with_timeout_1.withTimeout)(page.evaluate((px, py) => {
|
|
718
719
|
const el = document.elementFromPoint(px, py);
|
|
719
720
|
return el ? (el.textContent || '').trim().substring(0, 50) : '';
|
|
720
|
-
}, x, y), 3000, 'computer');
|
|
721
|
+
}, x, y), 3000, 'computer', context);
|
|
721
722
|
}
|
|
722
723
|
catch { /* skip */ }
|
|
723
724
|
// Build hit tag representation
|
|
@@ -751,7 +752,7 @@ async function getHitElementInfo(page, cdpClient, x, y, includeUserAgentShadowDO
|
|
|
751
752
|
}
|
|
752
753
|
}
|
|
753
754
|
return null;
|
|
754
|
-
}, x, y), 3000, 'computer');
|
|
755
|
+
}, x, y), 3000, 'computer', context);
|
|
755
756
|
if (nearestInfo) {
|
|
756
757
|
const absDx = Math.abs(nearestInfo.dx);
|
|
757
758
|
const absDy = Math.abs(nearestInfo.dy);
|