real-browser-mcp-server 1.5.1 → 2.0.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.
- package/README.md +46 -41
- package/dist/lib/cjs/index.d.ts +14 -1
- package/dist/lib/cjs/index.d.ts.map +1 -1
- package/dist/lib/cjs/index.js +5 -3
- package/dist/lib/cjs/index.js.map +1 -1
- package/dist/lib/cjs/module/pageController.d.ts +7 -1
- package/dist/lib/cjs/module/pageController.d.ts.map +1 -1
- package/dist/lib/cjs/module/pageController.js +4 -23
- package/dist/lib/cjs/module/pageController.js.map +1 -1
- package/dist/lib/cjs/module/turnstile.d.ts +4 -1
- package/dist/lib/cjs/module/turnstile.d.ts.map +1 -1
- package/dist/lib/cjs/module/turnstile.js +14 -13
- package/dist/lib/cjs/module/turnstile.js.map +1 -1
- package/dist/lib/esm/index.d.mjs +11 -0
- package/dist/lib/esm/index.mjs +4 -0
- package/dist/lib/esm/module/pageController.d.mjs +3 -0
- package/dist/lib/esm/module/turnstile.d.mjs +3 -0
- package/dist/scripts/generate-esm.d.ts +2 -0
- package/dist/scripts/generate-esm.d.ts.map +1 -0
- package/dist/scripts/generate-esm.js +100 -0
- package/dist/scripts/generate-esm.js.map +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/handlers/browser.d.ts +8 -7
- package/dist/src/mcp/handlers/browser.d.ts.map +1 -1
- package/dist/src/mcp/handlers/browser.js +4 -3
- package/dist/src/mcp/handlers/browser.js.map +1 -1
- package/dist/src/mcp/handlers/dom.d.ts +19 -18
- package/dist/src/mcp/handlers/dom.d.ts.map +1 -1
- package/dist/src/mcp/handlers/dom.js +7 -28
- package/dist/src/mcp/handlers/dom.js.map +1 -1
- package/dist/src/mcp/handlers/extract.js.map +1 -1
- package/dist/src/mcp/handlers/handler-utils.d.ts +14 -0
- package/dist/src/mcp/handlers/handler-utils.d.ts.map +1 -0
- package/dist/src/mcp/handlers/handler-utils.js +42 -0
- package/dist/src/mcp/handlers/handler-utils.js.map +1 -0
- package/dist/src/mcp/handlers/helpers.d.ts +0 -7
- package/dist/src/mcp/handlers/helpers.d.ts.map +1 -1
- package/dist/src/mcp/handlers/helpers.js +0 -15
- package/dist/src/mcp/handlers/helpers.js.map +1 -1
- package/dist/src/mcp/handlers/media-handlers.d.ts +2 -1
- package/dist/src/mcp/handlers/media-handlers.d.ts.map +1 -1
- package/dist/src/mcp/handlers/media-handlers.js +24 -8
- package/dist/src/mcp/handlers/media-handlers.js.map +1 -1
- package/dist/src/mcp/handlers/network-extractors.d.ts +2 -0
- package/dist/src/mcp/handlers/network-extractors.d.ts.map +1 -0
- package/dist/src/mcp/handlers/network-extractors.js +651 -0
- package/dist/src/mcp/handlers/network-extractors.js.map +1 -0
- package/dist/src/mcp/handlers/network-recorder.d.ts +119 -0
- package/dist/src/mcp/handlers/network-recorder.d.ts.map +1 -0
- package/dist/src/mcp/handlers/network-recorder.js +337 -0
- package/dist/src/mcp/handlers/network-recorder.js.map +1 -0
- package/dist/src/mcp/handlers/network.d.ts +30 -118
- package/dist/src/mcp/handlers/network.d.ts.map +1 -1
- package/dist/src/mcp/handlers/network.js +28 -1187
- package/dist/src/mcp/handlers/network.js.map +1 -1
- package/dist/src/mcp/handlers/state.d.ts +1 -0
- package/dist/src/mcp/handlers/state.d.ts.map +1 -1
- package/dist/src/mcp/handlers/state.js +17 -0
- package/dist/src/mcp/handlers/state.js.map +1 -1
- package/dist/src/mcp/handlers/utility-handlers.d.ts +8 -37
- package/dist/src/mcp/handlers/utility-handlers.d.ts.map +1 -1
- package/dist/src/mcp/handlers/utility-handlers.js +69 -31
- package/dist/src/mcp/handlers/utility-handlers.js.map +1 -1
- package/dist/src/mcp/handlers/vision-captcha.d.ts +221 -0
- package/dist/src/mcp/handlers/vision-captcha.d.ts.map +1 -0
- package/dist/src/mcp/handlers/vision-captcha.js +238 -0
- package/dist/src/mcp/handlers/vision-captcha.js.map +1 -0
- package/dist/src/mcp/handlers/vision-see-page.d.ts +32 -0
- package/dist/src/mcp/handlers/vision-see-page.d.ts.map +1 -0
- package/dist/src/mcp/handlers/vision-see-page.js +260 -0
- package/dist/src/mcp/handlers/vision-see-page.js.map +1 -0
- package/dist/src/mcp/handlers/vision.d.ts +50 -27
- package/dist/src/mcp/handlers/vision.d.ts.map +1 -1
- package/dist/src/mcp/handlers/vision.js +4 -606
- package/dist/src/mcp/handlers/vision.js.map +1 -1
- package/dist/src/mcp/index.d.ts.map +1 -1
- package/dist/src/mcp/index.js +11 -3
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/shared/cache-manager.d.ts +0 -2
- package/dist/src/shared/cache-manager.d.ts.map +1 -1
- package/dist/src/shared/cache-manager.js +1 -3
- package/dist/src/shared/cache-manager.js.map +1 -1
- package/dist/src/shared/lib-core.d.ts +2 -1
- package/dist/src/shared/lib-core.d.ts.map +1 -1
- package/dist/src/shared/lib-core.js +5 -38
- package/dist/src/shared/lib-core.js.map +1 -1
- package/dist/src/shared/tools.d.ts.map +1 -1
- package/dist/src/shared/tools.js +6 -18
- package/dist/src/shared/tools.js.map +1 -1
- package/dist/src/types.d.ts +25 -6
- package/dist/src/types.d.ts.map +1 -1
- package/dist/test/cjs/test.js +29 -33
- package/dist/test/cjs/test.js.map +1 -1
- package/dist/test/mcp/smoke-test.d.ts.map +1 -1
- package/dist/test/mcp/smoke-test.js +9 -3
- package/dist/test/mcp/smoke-test.js.map +1 -1
- package/dist/test/unit/handler-test.d.ts +3 -0
- package/dist/test/unit/handler-test.d.ts.map +1 -0
- package/dist/test/unit/handler-test.js +133 -0
- package/dist/test/unit/handler-test.js.map +1 -0
- package/lib/esm/module/pageController.mjs +4 -22
- package/lib/esm/module/turnstile.mjs +16 -13
- package/package.json +5 -4
- package/typings.d.ts +5 -40
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.seePage = seePage;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const state_1 = require("./state");
|
|
40
|
+
async function seePage(params = {}) {
|
|
41
|
+
const { page } = (0, state_1.requireBrowser)();
|
|
42
|
+
const { fullPage = false, format = 'jpeg', quality = 70, includeElements = true, annotate = false, includeDomText = false, maxElements = 60, path: savePath, autoHover = false, watchMutations = false } = params;
|
|
43
|
+
(0, state_1.notifyProgress)('see_page', 'started', `👁️ Looking at the page (${fullPage ? 'full page' : 'viewport'})${annotate ? ' with Super Annotations' : ''}...`);
|
|
44
|
+
let mutationsSinceLastCheck = [];
|
|
45
|
+
if (watchMutations) {
|
|
46
|
+
mutationsSinceLastCheck = await page.evaluate(() => {
|
|
47
|
+
if (!window.__mutations) {
|
|
48
|
+
window.__mutations = [];
|
|
49
|
+
const observer = new MutationObserver((mutations) => {
|
|
50
|
+
for (const m of mutations) {
|
|
51
|
+
if (m.addedNodes.length) {
|
|
52
|
+
const text = Array.from(m.addedNodes).map((n) => n.innerText || '').join(' ').trim();
|
|
53
|
+
if (text.length > 5)
|
|
54
|
+
window.__mutations.push({ time: Date.now(), text: text.slice(0, 100) });
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
|
59
|
+
}
|
|
60
|
+
const recent = [...window.__mutations];
|
|
61
|
+
window.__mutations = [];
|
|
62
|
+
return recent;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (autoHover) {
|
|
66
|
+
(0, state_1.notifyProgress)('see_page', 'progress', 'Hovering over menus to reveal dropdowns...');
|
|
67
|
+
await page.evaluate(() => {
|
|
68
|
+
const hoverables = document.querySelectorAll('nav, li, [role="menuitem"], .dropdown, [aria-haspopup="true"]');
|
|
69
|
+
hoverables.forEach(el => {
|
|
70
|
+
try {
|
|
71
|
+
el.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));
|
|
72
|
+
el.dispatchEvent(new MouseEvent('mouseenter', { bubbles: true }));
|
|
73
|
+
}
|
|
74
|
+
catch (e) { }
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
await new Promise(r => setTimeout(r, 400));
|
|
78
|
+
}
|
|
79
|
+
let elements = [];
|
|
80
|
+
let pageInfo = {};
|
|
81
|
+
if (includeElements || annotate) {
|
|
82
|
+
const data = await page.evaluate(({ maxEls, isFullPage, doAnnotate }) => {
|
|
83
|
+
const out = [];
|
|
84
|
+
const seen = new Set();
|
|
85
|
+
const sel = 'a[href], button, input, select, textarea, [role="button"], [role="link"], [onclick], [tabindex]';
|
|
86
|
+
const nodes = document.querySelectorAll(sel);
|
|
87
|
+
const cssPath = (el) => {
|
|
88
|
+
if (el.id)
|
|
89
|
+
return `#${CSS.escape(el.id)}`;
|
|
90
|
+
if (el.name)
|
|
91
|
+
return `${el.tagName.toLowerCase()}[name="${el.name}"]`;
|
|
92
|
+
const parts = [];
|
|
93
|
+
let node = el;
|
|
94
|
+
while (node && node.nodeType === 1 && parts.length < 4) {
|
|
95
|
+
let part = node.tagName.toLowerCase();
|
|
96
|
+
if (node.classList.length) {
|
|
97
|
+
const cls = Array.from(node.classList).slice(0, 2).map((c) => '.' + CSS.escape(c)).join('');
|
|
98
|
+
part += cls;
|
|
99
|
+
}
|
|
100
|
+
const parent = node.parentElement;
|
|
101
|
+
if (parent) {
|
|
102
|
+
const sibs = Array.from(parent.children).filter((c) => c.tagName === node.tagName);
|
|
103
|
+
if (sibs.length > 1)
|
|
104
|
+
part += `:nth-of-type(${sibs.indexOf(node) + 1})`;
|
|
105
|
+
}
|
|
106
|
+
parts.unshift(part);
|
|
107
|
+
node = node.parentElement;
|
|
108
|
+
}
|
|
109
|
+
return parts.join(' > ');
|
|
110
|
+
};
|
|
111
|
+
let elementIdCounter = 1;
|
|
112
|
+
const boxesToInject = [];
|
|
113
|
+
for (const el of nodes) {
|
|
114
|
+
if (out.length >= maxEls)
|
|
115
|
+
break;
|
|
116
|
+
const rect = el.getBoundingClientRect();
|
|
117
|
+
if (rect.width < 2 || rect.height < 2)
|
|
118
|
+
continue;
|
|
119
|
+
const style = window.getComputedStyle(el);
|
|
120
|
+
if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0')
|
|
121
|
+
continue;
|
|
122
|
+
if (!isFullPage) {
|
|
123
|
+
if (rect.bottom < 0 || rect.right < 0 || rect.top > window.innerHeight || rect.left > window.innerWidth)
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const tag = el.tagName.toLowerCase();
|
|
127
|
+
let label = (el.innerText || el.value || el.getAttribute('aria-label') || el.getAttribute('placeholder') || el.getAttribute('title') || el.getAttribute('alt') || '').trim().replace(/\s+/g, ' ').slice(0, 80);
|
|
128
|
+
let kind = tag;
|
|
129
|
+
if (tag === 'a')
|
|
130
|
+
kind = 'link';
|
|
131
|
+
else if (tag === 'button' || el.getAttribute('role') === 'button')
|
|
132
|
+
kind = 'button';
|
|
133
|
+
else if (tag === 'input')
|
|
134
|
+
kind = `input:${el.type || 'text'}`;
|
|
135
|
+
else if (tag === 'select')
|
|
136
|
+
kind = 'select';
|
|
137
|
+
else if (tag === 'textarea')
|
|
138
|
+
kind = 'textarea';
|
|
139
|
+
const selector = cssPath(el);
|
|
140
|
+
if (seen.has(selector + '|' + label))
|
|
141
|
+
continue;
|
|
142
|
+
seen.add(selector + '|' + label);
|
|
143
|
+
const annotationId = elementIdCounter++;
|
|
144
|
+
if (doAnnotate)
|
|
145
|
+
boxesToInject.push({ id: annotationId, rect, tag: kind });
|
|
146
|
+
out.push({
|
|
147
|
+
id: annotationId, kind, text: label, selector,
|
|
148
|
+
href: tag === 'a' ? el.href : undefined,
|
|
149
|
+
box: { x: Math.round(rect.x), y: Math.round(rect.y), w: Math.round(rect.width), h: Math.round(rect.height) }
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
if (doAnnotate && boxesToInject.length > 0) {
|
|
153
|
+
let container = document.getElementById('real-browser-annotations');
|
|
154
|
+
if (container)
|
|
155
|
+
container.remove();
|
|
156
|
+
container = document.createElement('div');
|
|
157
|
+
container.id = 'real-browser-annotations';
|
|
158
|
+
container.style.position = 'absolute';
|
|
159
|
+
container.style.top = '0';
|
|
160
|
+
container.style.left = '0';
|
|
161
|
+
container.style.width = '100%';
|
|
162
|
+
container.style.height = '100%';
|
|
163
|
+
container.style.pointerEvents = 'none';
|
|
164
|
+
container.style.zIndex = '2147483647';
|
|
165
|
+
for (const box of boxesToInject) {
|
|
166
|
+
const absoluteY = box.rect.y + window.scrollY;
|
|
167
|
+
const absoluteX = box.rect.x + window.scrollX;
|
|
168
|
+
const div = document.createElement('div');
|
|
169
|
+
div.style.position = 'absolute';
|
|
170
|
+
div.style.border = '2px solid red';
|
|
171
|
+
div.style.backgroundColor = 'rgba(255, 0, 0, 0.1)';
|
|
172
|
+
div.style.left = absoluteX + 'px';
|
|
173
|
+
div.style.top = absoluteY + 'px';
|
|
174
|
+
div.style.width = box.rect.width + 'px';
|
|
175
|
+
div.style.height = box.rect.height + 'px';
|
|
176
|
+
div.style.boxSizing = 'border-box';
|
|
177
|
+
const label = document.createElement('div');
|
|
178
|
+
label.innerText = String(box.id);
|
|
179
|
+
label.style.position = 'absolute';
|
|
180
|
+
label.style.top = '-2px';
|
|
181
|
+
label.style.left = '-2px';
|
|
182
|
+
label.style.backgroundColor = 'red';
|
|
183
|
+
label.style.color = 'white';
|
|
184
|
+
label.style.fontSize = '12px';
|
|
185
|
+
label.style.fontWeight = 'bold';
|
|
186
|
+
label.style.padding = '1px 4px';
|
|
187
|
+
label.style.fontFamily = 'monospace';
|
|
188
|
+
label.style.borderBottomRightRadius = '4px';
|
|
189
|
+
div.appendChild(label);
|
|
190
|
+
container.appendChild(div);
|
|
191
|
+
}
|
|
192
|
+
document.body.appendChild(container);
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
elements: out,
|
|
196
|
+
info: {
|
|
197
|
+
title: document.title, url: location.href,
|
|
198
|
+
viewport: { width: window.innerWidth, height: window.innerHeight },
|
|
199
|
+
scrollY: Math.round(window.scrollY), scrollHeight: document.body ? document.body.scrollHeight : 0
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
}, { maxEls: maxElements, isFullPage: fullPage, doAnnotate: annotate }).catch((e) => { console.error(e); return { elements: [], info: {} }; });
|
|
203
|
+
elements = data.elements || [];
|
|
204
|
+
pageInfo = data.info || {};
|
|
205
|
+
state_1.state.activeAnnotations = {};
|
|
206
|
+
for (const el of elements)
|
|
207
|
+
state_1.state.activeAnnotations[el.id] = { selector: el.selector, text: el.text, type: el.kind };
|
|
208
|
+
}
|
|
209
|
+
const shotOpts = { type: format, fullPage };
|
|
210
|
+
if (format === 'jpeg' && typeof quality === 'number')
|
|
211
|
+
shotOpts.quality = quality;
|
|
212
|
+
let buffer;
|
|
213
|
+
try {
|
|
214
|
+
buffer = await page.screenshot(shotOpts);
|
|
215
|
+
}
|
|
216
|
+
catch (e) {
|
|
217
|
+
return { success: false, error: `Vision capture failed: ${e.message}` };
|
|
218
|
+
}
|
|
219
|
+
if (annotate) {
|
|
220
|
+
await page.evaluate(() => {
|
|
221
|
+
const container = document.getElementById('real-browser-annotations');
|
|
222
|
+
if (container)
|
|
223
|
+
container.remove();
|
|
224
|
+
}).catch(() => { });
|
|
225
|
+
}
|
|
226
|
+
let domText = undefined;
|
|
227
|
+
if (includeDomText) {
|
|
228
|
+
domText = await page.evaluate(() => document.body ? document.body.innerText : '').catch(() => '');
|
|
229
|
+
}
|
|
230
|
+
let savedTo = null;
|
|
231
|
+
if (savePath) {
|
|
232
|
+
const dir = path.dirname(savePath);
|
|
233
|
+
if (dir && !fs.existsSync(dir))
|
|
234
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
235
|
+
fs.writeFileSync(savePath, buffer);
|
|
236
|
+
savedTo = savePath;
|
|
237
|
+
}
|
|
238
|
+
(0, state_1.notifyProgress)('see_page', 'completed', `👁️ Saw the page: ${elements.length} interactive elements visible${savedTo ? ' (saved ' + savedTo + ')' : ''}`);
|
|
239
|
+
const base64 = Buffer.from(buffer).toString('base64');
|
|
240
|
+
const summary = {
|
|
241
|
+
success: true,
|
|
242
|
+
url: pageInfo.url || page.url(),
|
|
243
|
+
title: pageInfo.title,
|
|
244
|
+
viewport: pageInfo.viewport,
|
|
245
|
+
scroll: { y: pageInfo.scrollY, pageHeight: pageInfo.scrollHeight },
|
|
246
|
+
visibleInteractiveElements: elements.length,
|
|
247
|
+
domText,
|
|
248
|
+
mutationsSinceLastCheck: watchMutations ? mutationsSinceLastCheck : undefined,
|
|
249
|
+
elements,
|
|
250
|
+
savedTo
|
|
251
|
+
};
|
|
252
|
+
return {
|
|
253
|
+
mcpContent: [
|
|
254
|
+
{ type: 'image', data: base64, mimeType: format === 'jpeg' ? 'image/jpeg' : 'image/png' },
|
|
255
|
+
{ type: 'text', text: `If the current model cannot read images, ignore the attached image and use this JSON summary instead.\n\n${JSON.stringify(summary, null, 2)}` }
|
|
256
|
+
],
|
|
257
|
+
...summary
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=vision-see-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vision-see-page.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/vision-see-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,41 @@ export declare const visionHandlers: {
|
|
|
2
2
|
solve_captcha(params?: any): Promise<{
|
|
3
3
|
success: boolean;
|
|
4
4
|
error: string | undefined;
|
|
5
|
+
requiresVision?: undefined;
|
|
6
|
+
fallback?: undefined;
|
|
7
|
+
formResult?: undefined;
|
|
8
|
+
mcpContent?: undefined;
|
|
9
|
+
type?: undefined;
|
|
10
|
+
detectedType?: undefined;
|
|
11
|
+
solved?: undefined;
|
|
12
|
+
submitted?: undefined;
|
|
13
|
+
submitMessage?: undefined;
|
|
14
|
+
method?: undefined;
|
|
15
|
+
attempts?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
success: boolean;
|
|
18
|
+
error: string;
|
|
19
|
+
requiresVision: boolean;
|
|
20
|
+
fallback: {
|
|
21
|
+
captchaSelector: string;
|
|
22
|
+
inputSelector: string | null;
|
|
23
|
+
submit: boolean;
|
|
24
|
+
guidance: string;
|
|
25
|
+
};
|
|
26
|
+
formResult: {
|
|
27
|
+
success: boolean;
|
|
28
|
+
filledCount: number;
|
|
29
|
+
filledFields: {
|
|
30
|
+
field: string;
|
|
31
|
+
selector: any;
|
|
32
|
+
matchScore: number;
|
|
33
|
+
}[];
|
|
34
|
+
unfilledFields: string[];
|
|
35
|
+
totalFields: number;
|
|
36
|
+
pageInfo: any;
|
|
37
|
+
} | null;
|
|
5
38
|
mcpContent?: undefined;
|
|
6
39
|
type?: undefined;
|
|
7
|
-
formResult?: undefined;
|
|
8
40
|
detectedType?: undefined;
|
|
9
41
|
solved?: undefined;
|
|
10
42
|
submitted?: undefined;
|
|
@@ -25,8 +57,10 @@ export declare const visionHandlers: {
|
|
|
25
57
|
text?: undefined;
|
|
26
58
|
})[];
|
|
27
59
|
error?: undefined;
|
|
28
|
-
|
|
60
|
+
requiresVision?: undefined;
|
|
61
|
+
fallback?: undefined;
|
|
29
62
|
formResult?: undefined;
|
|
63
|
+
type?: undefined;
|
|
30
64
|
detectedType?: undefined;
|
|
31
65
|
solved?: undefined;
|
|
32
66
|
submitted?: undefined;
|
|
@@ -49,6 +83,8 @@ export declare const visionHandlers: {
|
|
|
49
83
|
totalFields: number;
|
|
50
84
|
pageInfo: any;
|
|
51
85
|
} | null;
|
|
86
|
+
requiresVision?: undefined;
|
|
87
|
+
fallback?: undefined;
|
|
52
88
|
mcpContent?: undefined;
|
|
53
89
|
detectedType?: undefined;
|
|
54
90
|
solved?: undefined;
|
|
@@ -71,6 +107,8 @@ export declare const visionHandlers: {
|
|
|
71
107
|
totalFields: number;
|
|
72
108
|
pageInfo: any;
|
|
73
109
|
} | null;
|
|
110
|
+
requiresVision?: undefined;
|
|
111
|
+
fallback?: undefined;
|
|
74
112
|
mcpContent?: undefined;
|
|
75
113
|
type?: undefined;
|
|
76
114
|
detectedType?: undefined;
|
|
@@ -82,7 +120,7 @@ export declare const visionHandlers: {
|
|
|
82
120
|
} | {
|
|
83
121
|
success: boolean;
|
|
84
122
|
error: string;
|
|
85
|
-
detectedType:
|
|
123
|
+
detectedType: string;
|
|
86
124
|
formResult: {
|
|
87
125
|
success: boolean;
|
|
88
126
|
filledCount: number;
|
|
@@ -95,6 +133,8 @@ export declare const visionHandlers: {
|
|
|
95
133
|
totalFields: number;
|
|
96
134
|
pageInfo: any;
|
|
97
135
|
} | null;
|
|
136
|
+
requiresVision?: undefined;
|
|
137
|
+
fallback?: undefined;
|
|
98
138
|
mcpContent?: undefined;
|
|
99
139
|
type?: undefined;
|
|
100
140
|
solved?: undefined;
|
|
@@ -121,6 +161,8 @@ export declare const visionHandlers: {
|
|
|
121
161
|
submitted: boolean;
|
|
122
162
|
submitMessage: any;
|
|
123
163
|
error?: undefined;
|
|
164
|
+
requiresVision?: undefined;
|
|
165
|
+
fallback?: undefined;
|
|
124
166
|
mcpContent?: undefined;
|
|
125
167
|
detectedType?: undefined;
|
|
126
168
|
method?: undefined;
|
|
@@ -142,6 +184,8 @@ export declare const visionHandlers: {
|
|
|
142
184
|
pageInfo: any;
|
|
143
185
|
} | null;
|
|
144
186
|
error?: undefined;
|
|
187
|
+
requiresVision?: undefined;
|
|
188
|
+
fallback?: undefined;
|
|
145
189
|
mcpContent?: undefined;
|
|
146
190
|
detectedType?: undefined;
|
|
147
191
|
submitted?: undefined;
|
|
@@ -167,33 +211,12 @@ export declare const visionHandlers: {
|
|
|
167
211
|
pageInfo: any;
|
|
168
212
|
} | null;
|
|
169
213
|
error?: undefined;
|
|
214
|
+
requiresVision?: undefined;
|
|
215
|
+
fallback?: undefined;
|
|
170
216
|
mcpContent?: undefined;
|
|
171
217
|
detectedType?: undefined;
|
|
172
218
|
submitted?: undefined;
|
|
173
219
|
submitMessage?: undefined;
|
|
174
|
-
} | {
|
|
175
|
-
success: boolean;
|
|
176
|
-
error: string;
|
|
177
|
-
type: any;
|
|
178
|
-
formResult: {
|
|
179
|
-
success: boolean;
|
|
180
|
-
filledCount: number;
|
|
181
|
-
filledFields: {
|
|
182
|
-
field: string;
|
|
183
|
-
selector: any;
|
|
184
|
-
matchScore: number;
|
|
185
|
-
}[];
|
|
186
|
-
unfilledFields: string[];
|
|
187
|
-
totalFields: number;
|
|
188
|
-
pageInfo: any;
|
|
189
|
-
} | null;
|
|
190
|
-
mcpContent?: undefined;
|
|
191
|
-
detectedType?: undefined;
|
|
192
|
-
solved?: undefined;
|
|
193
|
-
submitted?: undefined;
|
|
194
|
-
submitMessage?: undefined;
|
|
195
|
-
method?: undefined;
|
|
196
|
-
attempts?: undefined;
|
|
197
220
|
}>;
|
|
198
221
|
see_page(params?: any): Promise<{
|
|
199
222
|
success: boolean;
|
|
@@ -211,7 +234,7 @@ export declare const visionHandlers: {
|
|
|
211
234
|
domText: string | undefined;
|
|
212
235
|
mutationsSinceLastCheck: any[] | undefined;
|
|
213
236
|
elements: any[];
|
|
214
|
-
savedTo:
|
|
237
|
+
savedTo: string | null;
|
|
215
238
|
mcpContent: ({
|
|
216
239
|
type: string;
|
|
217
240
|
data: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/vision.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/vision.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc;2BACG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAIR,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3B,CAAC"}
|