real-browser-mcp-server 1.4.7 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +6 -10
  2. package/dist/lib/cjs/index.js +2 -381
  3. package/dist/lib/cjs/index.js.map +1 -1
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +1 -13
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/mcp/handlers/browser.d.ts.map +1 -1
  8. package/dist/src/mcp/handlers/browser.js +18 -2
  9. package/dist/src/mcp/handlers/browser.js.map +1 -1
  10. package/dist/src/mcp/handlers/dom.js +5 -5
  11. package/dist/src/mcp/handlers/dom.js.map +1 -1
  12. package/dist/src/mcp/handlers/helpers.d.ts +7 -3
  13. package/dist/src/mcp/handlers/helpers.d.ts.map +1 -1
  14. package/dist/src/mcp/handlers/helpers.js +21 -176
  15. package/dist/src/mcp/handlers/helpers.js.map +1 -1
  16. package/dist/src/mcp/handlers/index.d.ts.map +1 -1
  17. package/dist/src/mcp/handlers/index.js +11 -0
  18. package/dist/src/mcp/handlers/index.js.map +1 -1
  19. package/dist/src/mcp/handlers/network.d.ts +95 -12
  20. package/dist/src/mcp/handlers/network.d.ts.map +1 -1
  21. package/dist/src/mcp/handlers/network.js +73 -48
  22. package/dist/src/mcp/handlers/network.js.map +1 -1
  23. package/dist/src/mcp/handlers/utility-handlers.d.ts +47 -18
  24. package/dist/src/mcp/handlers/utility-handlers.d.ts.map +1 -1
  25. package/dist/src/mcp/handlers/utility-handlers.js +79 -70
  26. package/dist/src/mcp/handlers/utility-handlers.js.map +1 -1
  27. package/dist/src/mcp/handlers/vision.d.ts +143 -41
  28. package/dist/src/mcp/handlers/vision.d.ts.map +1 -1
  29. package/dist/src/mcp/handlers/vision.js +148 -76
  30. package/dist/src/mcp/handlers/vision.js.map +1 -1
  31. package/dist/src/mcp/index.d.ts.map +1 -1
  32. package/dist/src/mcp/index.js +1 -12
  33. package/dist/src/mcp/index.js.map +1 -1
  34. package/dist/src/mcp/server.d.ts.map +1 -1
  35. package/dist/src/mcp/server.js +6 -1
  36. package/dist/src/mcp/server.js.map +1 -1
  37. package/dist/src/shared/colors.d.ts +12 -0
  38. package/dist/src/shared/colors.d.ts.map +1 -0
  39. package/dist/src/shared/colors.js +15 -0
  40. package/dist/src/shared/colors.js.map +1 -0
  41. package/dist/src/shared/lib-core.d.ts +17 -0
  42. package/dist/src/shared/lib-core.d.ts.map +1 -0
  43. package/dist/src/shared/lib-core.js +421 -0
  44. package/dist/src/shared/lib-core.js.map +1 -0
  45. package/dist/src/shared/tools.d.ts.map +1 -1
  46. package/dist/src/shared/tools.js +64 -49
  47. package/dist/src/shared/tools.js.map +1 -1
  48. package/dist/test/cjs/test.js +61 -104
  49. package/dist/test/cjs/test.js.map +1 -1
  50. package/dist/test/mcp/smoke-test.d.ts +1 -1
  51. package/dist/test/mcp/smoke-test.d.ts.map +1 -1
  52. package/dist/test/mcp/smoke-test.js +8 -2
  53. package/dist/test/mcp/smoke-test.js.map +1 -1
  54. package/lib/esm/index.mjs +2 -396
  55. package/package.json +1 -1
package/README.md CHANGED
@@ -194,16 +194,15 @@ Configure the server in your `opencode.jsonc` or standard MCP settings configura
194
194
 
195
195
  ---
196
196
 
197
- ## 🌐 Complete MCP Tool Reference (23 Tools)
197
+ ## 🌐 Complete MCP Tool Reference (21 Tools)
198
198
 
199
- The server exposes 23 highly optimized tools categorized into functional units:
199
+ The server exposes 21 highly optimized tools categorized into functional units:
200
200
 
201
201
  ### 🌐 Browser & Session
202
202
  | Tool Name | Description | Parameters |
203
203
  |:---|:---|:---|
204
204
  | `browser_init` | Initialize Brave/Patchright browser with stealth, ad blocker, and turnstile bypass. | `headless` (boolean), `proxy` (object) |
205
205
  | `browser_close` | Close browser with cleanup and session saving. | None |
206
- | `cookie_manager` | Smart cookie management (get, set, delete, import, export). | `action` (string), `cookies` (array) |
207
206
 
208
207
  ### 🧭 Navigation
209
208
  | Tool Name | Description | Parameters |
@@ -224,10 +223,7 @@ The server exposes 23 highly optimized tools categorized into functional units:
224
223
  | Tool Name | Description | Parameters |
225
224
  |:---|:---|:---|
226
225
  | `get_content` | Retrieve page content in `html`, `text`, `markdown`, or direct `rawHttp` modes. | `format` (string) |
227
- | `find_element` | Locate elements via CSS selectors, XPath, or exact text. | `selector` (string), `strategy` (string) |
228
- | `save_content_as_markdown` | Export current page content as clean, readable Markdown, stripping ads. | `filename` (string) |
229
226
  | `extract_data` | Advanced 8-mode extractor (Regex, JSON, Meta tags, JS Deobfuscator, Cryptography). | `mode` (string), `target` (string) |
230
- | `link_harvester` | Scrapes all visible, hidden, iframe-nested, or encoded links on a page. | None |
231
227
  | `media_extractor` | Capture and control HLS, DASH, JWPlayer, Plyr, or dynamic streaming content. | `action` (string), `targetUrl` (string) |
232
228
 
233
229
  ### 📡 Network & Utilities
@@ -235,17 +231,17 @@ The server exposes 23 highly optimized tools categorized into functional units:
235
231
  |:---|:---|:---|
236
232
  | `redirect_tracer` | Trace complete redirect chains (HTTP 301/302, JS location, meta refresh). | `url` (string) |
237
233
  | `network_recorder` | Capture network requests, XHR request/response bodies, or WebSockets. | `action` (string), `captureXhrBody` (boolean) |
238
- | `file_downloader` | Secure file downloader supporting resumes, batches, and URL decoding. | `url` (string), `outputPath` (string) |
239
234
  | `deep_analysis` | Detailed analysis of DOM structure, scripts, anti-bots, and stack. | None |
240
235
  | `wait` | Smart delay with AI prediction or static timeout. | `duration` (number) |
241
236
  | `progress_tracker` | Track running automation progress with AI-estimated remaining times. | `step` (string), `percentage` (number) |
242
-
243
-
237
+ | `storage_inspector` | Inspect IndexedDB and Service Workers natively via JS. | None |
238
+ | `replay_request` | Replay a captured API request directly in the browser context (bypasses CORS). | `requestId` (string) |
239
+ | `api_analyzer` | Generate schemas, diff JSONs, and create SDK boilerplates (Python/TypeScript). | `action` (string), `data` (string) |
244
240
 
245
241
  ### 👁️ AI Vision (Eyes)
246
242
  | Tool Name | Description | Parameters |
247
243
  |:---|:---|:---|
248
- | `see_page` | Lets the AI **visually SEE** the page like human eyes: returns the actual screenshot image to the agent **plus** a "visual map" of every visible interactive element (button/link/input) with its on-screen position, text label, and a click-ready selector. Use it to look before deciding where to click/type. | `fullPage` (boolean), `format` (png/jpeg), `includeElements` (boolean), `maxElements` (number) |
244
+ | `see_page` | Lets the AI **visually SEE** the page like human eyes: returns the actual screenshot image to the agent **plus** a "visual map" of every visible interactive element. | `fullPage` (boolean), `format` (png/jpeg) |
249
245
 
250
246
  ---
251
247
 
@@ -1,386 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const { chromium } = require("patchright");
4
- const { createCursor } = require("ghost-cursor-patchright");
5
- const { PlaywrightBlocker } = require("@ghostery/adblocker-playwright");
6
3
  const { pageController } = require("./module/pageController.js");
7
- const fs = require('fs');
8
- const path = require('path');
9
- let adBlockerInstance = null;
10
- let adBlockerPromise = null;
11
- function getAdBlocker() {
12
- if (!adBlockerPromise) {
13
- const cachePath = path.join(__dirname, 'adblocker.bin');
14
- adBlockerPromise = PlaywrightBlocker.fromPrebuiltAdsAndTracking(fetch, {
15
- path: cachePath,
16
- read: fs.promises.readFile,
17
- write: fs.promises.writeFile,
18
- }).then(blocker => {
19
- adBlockerInstance = blocker;
20
- return blocker;
21
- }).catch(err => {
22
- console.error('[adblocker] Failed to initialize adblocker:', err.message);
23
- return null;
24
- });
25
- }
26
- return adBlockerPromise;
27
- }
28
- function loadEnvFile() {
29
- const envPaths = [
30
- path.join(process.cwd(), '.env'),
31
- ];
32
- let currentDir = process.cwd();
33
- for (let i = 0; i < 5; i++) {
34
- const envPath = path.join(currentDir, '.env');
35
- if (fs.existsSync(envPath) && !envPaths.includes(envPath)) {
36
- envPaths.push(envPath);
37
- }
38
- const parentDir = path.dirname(currentDir);
39
- if (parentDir === currentDir)
40
- break;
41
- currentDir = parentDir;
42
- }
43
- for (const envPath of envPaths) {
44
- try {
45
- if (fs.existsSync(envPath)) {
46
- const envContent = fs.readFileSync(envPath, 'utf-8');
47
- envContent.split('\n').forEach(line => {
48
- const trimmed = line.trim();
49
- if (trimmed && !trimmed.startsWith('#')) {
50
- const [key, ...valueParts] = trimmed.split('=');
51
- const value = valueParts.join('=').replace(/^["']|["']$/g, '');
52
- if (key && !process.env[key]) {
53
- process.env[key] = value;
54
- }
55
- }
56
- });
57
- break;
58
- }
59
- }
60
- catch (error) {
61
- // Silently ignore .env loading errors
62
- }
63
- }
64
- }
65
- loadEnvFile();
66
- function getDefaultHeadless() {
67
- const envHeadless = process.env.HEADLESS;
68
- if (envHeadless !== undefined && envHeadless !== null && envHeadless !== '') {
69
- const value = envHeadless.toLowerCase().trim();
70
- return value === 'true' || value === '1' || value === 'yes';
71
- }
72
- // Auto-detect CI environments
73
- if (process.env.CI || process.env.GITHUB_ACTIONS || process.env.TRAVIS || process.env.CIRCLECI) {
74
- return true;
75
- }
76
- // Auto-detect headless Linux environments without X11 or Wayland
77
- if (process.platform === 'linux') {
78
- const hasDisplay = process.env.DISPLAY || process.env.WAYLAND_DISPLAY;
79
- if (!hasDisplay) {
80
- return true;
81
- }
82
- }
83
- return false;
84
- }
85
- function setupRealPage(browser, page) {
86
- if (page._setupApplied)
87
- return page;
88
- page._setupApplied = true;
89
- // Enable ad blocker
90
- if (adBlockerInstance) {
91
- adBlockerInstance.enableBlockingInPage(page).catch(() => { });
92
- }
93
- else {
94
- getAdBlocker().then(blocker => {
95
- if (blocker) {
96
- blocker.enableBlockingInPage(page).catch(() => { });
97
- }
98
- });
99
- }
100
- // Human-like smooth scrolling with 60FPS Cubic Ease-Out physics
101
- page.realScroll = async (deltaY, duration = 600) => {
102
- try {
103
- const stepDelay = 15; // ~60 FPS
104
- const steps = Math.max(10, Math.floor(duration / stepDelay));
105
- const easeOutCubic = (t) => 1 - Math.pow(1 - t, 3);
106
- let currentScroll = 0;
107
- for (let i = 1; i <= steps; i++) {
108
- const t = i / steps;
109
- const targetScroll = deltaY * easeOutCubic(t);
110
- const diff = targetScroll - currentScroll;
111
- await page.mouse.wheel(0, diff);
112
- currentScroll = targetScroll;
113
- await new Promise(r => setTimeout(r, stepDelay));
114
- }
115
- }
116
- catch (e) {
117
- // Fallback to native window scroll in case of wheel errors
118
- try {
119
- await page.evaluate((y) => window.scrollBy({ top: y, behavior: 'smooth' }), deltaY);
120
- }
121
- catch (_) { }
122
- }
123
- };
124
- // Ghost Cursor integration - Bézier curve human-like mouse movement
125
- try {
126
- const cursor = createCursor(page);
127
- page.realCursor = {
128
- move: async (selector, options = {}) => {
129
- try {
130
- await cursor.actions.move(selector, options);
131
- }
132
- catch (e) {
133
- // Fallback to native hover if ghost-cursor fails
134
- try {
135
- await page.hover(selector);
136
- }
137
- catch (_) { }
138
- }
139
- }
140
- };
141
- page.realClick = async (selector, options = {}) => {
142
- try {
143
- await cursor.actions.click({ target: selector, ...options });
144
- }
145
- catch (e) {
146
- // Fallback to native click if ghost-cursor fails
147
- await page.click(selector, options);
148
- }
149
- };
150
- }
151
- catch (e) {
152
- // Fallback if ghost-cursor-patchright fails to initialize
153
- if (!page.realClick) {
154
- page.realClick = async (selector, options) => {
155
- await page.click(selector, options);
156
- };
157
- }
158
- if (!page.realCursor) {
159
- page.realCursor = {
160
- move: async (selector) => {
161
- try {
162
- await page.hover(selector);
163
- }
164
- catch (_) { }
165
- }
166
- };
167
- }
168
- }
169
- return page;
170
- }
171
- function getBraveExecutablePath() {
172
- if (process.env.BRAVE_PATH && fs.existsSync(process.env.BRAVE_PATH)) {
173
- return process.env.BRAVE_PATH;
174
- }
175
- const platform = process.platform;
176
- const { execSync } = require('child_process');
177
- // Try automatic scanning via CLI / registry query
178
- if (platform === 'win32') {
179
- const regQueries = [
180
- 'reg query "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\brave.exe" /ve',
181
- 'reg query "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\brave.exe" /ve',
182
- 'reg query "HKEY_LOCAL_MACHINE\\SOFTWARE\\Clients\\StartMenuInternet\\Brave-Browser\\shell\\open\\command" /ve'
183
- ];
184
- for (const cmd of regQueries) {
185
- try {
186
- const output = execSync(cmd, { stdio: ['ignore', 'pipe', 'ignore'] }).toString();
187
- const match = output.match(/REG_SZ\s+(.*)/);
188
- if (match && match[1]) {
189
- let p = match[1].trim().replace(/^"|"$/g, '');
190
- if (!p.toLowerCase().endsWith('.exe')) {
191
- const exeIndex = p.toLowerCase().indexOf('.exe');
192
- if (exeIndex !== -1) {
193
- p = p.substring(0, exeIndex + 4).replace(/^"|"$/g, '');
194
- }
195
- }
196
- if (fs.existsSync(p))
197
- return p;
198
- }
199
- }
200
- catch (e) { }
201
- }
202
- try {
203
- const output = execSync('where brave.exe', { stdio: ['ignore', 'pipe', 'ignore'] }).toString().trim().split('\r\n')[0];
204
- if (output && fs.existsSync(output))
205
- return output;
206
- }
207
- catch (e) { }
208
- }
209
- else if (platform === 'darwin') {
210
- try {
211
- const output = execSync('mdfind "kMDItemCFBundleIdentifier == \'com.brave.Browser\'"', { stdio: ['ignore', 'pipe', 'ignore'] }).toString().trim().split('\n')[0];
212
- if (output) {
213
- const p = path.join(output, 'Contents', 'MacOS', 'Brave Browser');
214
- if (fs.existsSync(p))
215
- return p;
216
- }
217
- }
218
- catch (e) { }
219
- }
220
- else {
221
- try {
222
- const output = execSync('which brave-browser || which brave', { stdio: ['ignore', 'pipe', 'ignore'] }).toString().trim();
223
- if (output && fs.existsSync(output))
224
- return output;
225
- }
226
- catch (e) { }
227
- }
228
- // Fallback to hardcoded common paths
229
- let paths = [];
230
- if (platform === 'win32') {
231
- paths = [
232
- path.join(process.env.PROGRAMFILES || 'C:\\Program Files', 'BraveSoftware', 'Brave-Browser', 'Application', 'brave.exe'),
233
- path.join(process.env['PROGRAMFILES(X86)'] || 'C:\\Program Files (x86)', 'BraveSoftware', 'Brave-Browser', 'Application', 'brave.exe'),
234
- path.join(process.env.LOCALAPPDATA || '', 'BraveSoftware', 'Brave-Browser', 'Application', 'brave.exe')
235
- ].filter(p => p);
236
- }
237
- else if (platform === 'darwin') {
238
- paths = [
239
- '/Applications/Brave Browser.app/Contents/MacOS/Brave Browser'
240
- ];
241
- }
242
- else {
243
- paths = [
244
- '/usr/bin/brave-browser',
245
- '/usr/bin/brave',
246
- '/usr/bin/brave-browser-stable',
247
- '/usr/bin/brave-browser-beta',
248
- '/usr/bin/brave-browser-nightly',
249
- '/usr/local/bin/brave-browser',
250
- '/usr/local/bin/brave'
251
- ];
252
- }
253
- for (const p of paths) {
254
- if (p && fs.existsSync(p)) {
255
- return p;
256
- }
257
- }
258
- return null;
259
- }
260
- async function applyUserAgentOverride(page, userAgent, userAgentMetadata) {
261
- try {
262
- const client = await page.context().newCDPSession(page);
263
- await client.send('Emulation.setUserAgentOverride', {
264
- userAgent: userAgent,
265
- userAgentMetadata: userAgentMetadata
266
- });
267
- }
268
- catch (e) {
269
- // Ignore errors
270
- }
271
- }
272
- async function connect({ args = [], headless = getDefaultHeadless(), proxy = {}, contextOptions = {}, turnstile = false, executablePath = undefined, } = {}) {
273
- let playwrightProxy = undefined;
274
- if (proxy && proxy.host && proxy.port) {
275
- playwrightProxy = {
276
- server: `${proxy.host}:${proxy.port}`
277
- };
278
- if (proxy.username && proxy.password) {
279
- playwrightProxy.username = proxy.username;
280
- playwrightProxy.password = proxy.password;
281
- }
282
- }
283
- // 1. Launch a temporary browser to retrieve the native user agent and properties
284
- const tempBrowser = await chromium.launch({
285
- headless: true,
286
- args: ['--no-sandbox', '--disable-setuid-sandbox'],
287
- ...(executablePath ? { executablePath } : {}),
288
- });
289
- const tempContext = await tempBrowser.newContext();
290
- const tempPage = await tempContext.newPage();
291
- let nativeUa = '';
292
- let isBrave = false;
293
- try {
294
- nativeUa = await tempPage.evaluate(() => navigator.userAgent);
295
- isBrave = await tempPage.evaluate(() => typeof navigator.brave !== 'undefined');
296
- }
297
- catch (e) {
298
- nativeUa = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/148.0.0.0 Safari/537.36';
299
- isBrave = executablePath && executablePath.toLowerCase().includes('brave');
300
- }
301
- await tempBrowser.close();
302
- let modifiedUa = nativeUa.replace(/HeadlessChrome\//g, 'Chrome/');
303
- const chromeVersionMatch = modifiedUa.match(/Chrome\/([\d.]+)/);
304
- const chromeVersion = chromeVersionMatch ? chromeVersionMatch[1] : '148.0.0.0';
305
- const majorVersion = chromeVersion.split('.')[0];
306
- const brands = [
307
- { brand: 'Chromium', version: majorVersion },
308
- { brand: 'Not/A)Brand', version: '99' }
309
- ];
310
- if (isBrave) {
311
- brands.unshift({ brand: 'Brave', version: majorVersion });
312
- }
313
- else {
314
- brands.unshift({ brand: 'Google Chrome', version: majorVersion });
315
- }
316
- let platformName = 'Windows';
317
- if (nativeUa.includes('Macintosh') || nativeUa.includes('Mac OS X')) {
318
- platformName = 'macOS';
319
- }
320
- else if (nativeUa.includes('Linux')) {
321
- platformName = 'Linux';
322
- }
323
- const userAgentMetadata = {
324
- brands: brands,
325
- mobile: false,
326
- platform: platformName,
327
- platformVersion: platformName === 'macOS' ? '14.0.0' : platformName === 'Linux' ? '6.0.0' : '10.0.0',
328
- architecture: 'x86',
329
- model: '',
330
- bitness: '64',
331
- wow64: false
332
- };
333
- const chromiumArgs = [
334
- `--user-agent=${modifiedUa}`,
335
- '--disable-blink-features=AutomationControlled',
336
- '--no-sandbox',
337
- '--disable-setuid-sandbox',
338
- ...args
339
- ];
340
- // If headless is true, we run with headless: false but pass '--headless=new' to args.
341
- // This triggers Chromium's modern undetected headless mode instead of Playwright's default old headless shell.
342
- let launchHeadless = headless;
343
- if (headless === true) {
344
- launchHeadless = false;
345
- if (!chromiumArgs.includes('--headless=new')) {
346
- chromiumArgs.push('--headless=new');
347
- }
348
- }
349
- const browser = await chromium.launch({
350
- headless: launchHeadless,
351
- args: chromiumArgs,
352
- proxy: playwrightProxy,
353
- ...(executablePath ? { executablePath } : {}),
354
- });
355
- // Ensure ad blocker is ready
356
- await getAdBlocker();
357
- const context = await browser.newContext({
358
- viewport: null,
359
- ...contextOptions,
360
- });
361
- let page = await context.newPage();
362
- await applyUserAgentOverride(page, modifiedUa, userAgentMetadata);
363
- setupRealPage(browser, page);
364
- page = await pageController({
365
- browser,
366
- page,
367
- proxy,
368
- turnstile,
369
- });
370
- context.on('page', async (newPage) => {
371
- await applyUserAgentOverride(newPage, modifiedUa, userAgentMetadata);
372
- setupRealPage(browser, newPage);
373
- await pageController({
374
- browser,
375
- page: newPage,
376
- proxy,
377
- turnstile,
378
- });
379
- });
380
- return {
381
- browser,
382
- page,
383
- };
384
- }
4
+ const { createConnect } = require("../../src/shared/lib-core.js");
5
+ const connect = createConnect(pageController);
385
6
  module.exports = { connect };
386
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/cjs/index.ts"],"names":[],"mappings":";;AAEA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAC3C,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAC5D,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;AACxE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AACjE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,IAAI,iBAAiB,GAAG,IAAI,CAAC;AAC7B,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAC5B,SAAS,YAAY;IACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACxD,gBAAgB,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,KAAK,EAAE;YACrE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ;YAC1B,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS;SAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAChB,iBAAiB,GAAG,OAAO,CAAC;YAC5B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,QAAQ,GAAG;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC;KACjC,CAAC;IAEF,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU;YAAE,MAAM;QACpC,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACrD,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxC,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAChD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;wBAC/D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wBAC3B,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sCAAsC;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,WAAW,EAAE,CAAC;AAEd,SAAS,kBAAkB;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACzC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;QAC5E,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK,CAAC;IAC9D,CAAC;IACD,8BAA8B;IAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,iEAAiE;IACjE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,OAAO,EAAE,IAAI;IAClC,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAE1B,oBAAoB;IACpB,IAAI,iBAAiB,EAAE,CAAC;QACtB,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,GAAG,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,UAAU;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC;YAC7D,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpB,MAAM,YAAY,GAAG,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,YAAY,GAAG,aAAa,CAAC;gBAC1C,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAChC,aAAa,GAAG,YAAY,CAAC;gBAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,2DAA2D;YAC3D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACtF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,oEAAoE;IACpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG;YAChB,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;gBACrC,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC/C,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,iDAAiD;oBACjD,IAAI,CAAC;wBAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAAC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBAClD,CAAC;YACH,CAAC;SACF,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YAChD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,iDAAiD;gBACjD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;gBAC3C,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG;gBAChB,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;oBACvB,IAAI,CAAC;wBAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAAC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBAClD,CAAC;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AAEd,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE9C,kDAAkD;IAClD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG;YACjB,wGAAwG;YACxG,uGAAuG;YACvG,+GAA+G;SAChH,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACjF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC5C,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAC9C,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBACtC,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACjD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;4BACpB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;oBACD,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;wBAAE,OAAO,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvH,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC;QACrD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;SAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,6DAA6D,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACjK,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;gBAClE,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;oBAAE,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YACzH,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC;QACrD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;IAED,qCAAqC;IACrC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,KAAK,GAAG;YACN,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,CAAC;YACxH,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,yBAAyB,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,CAAC;YACtI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,CAAC;SACxG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;SAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,KAAK,GAAG;YACN,8DAA8D;SAC/D,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,GAAG;YACN,wBAAwB;YACxB,gBAAgB;YAChB,+BAA+B;YAC/B,6BAA6B;YAC7B,gCAAgC;YAChC,8BAA8B;YAC9B,sBAAsB;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB;IACtE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YAClD,SAAS,EAAE,SAAS;YACpB,iBAAiB,EAAE,iBAAiB;SACrC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,gBAAgB;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,EACrB,IAAI,GAAG,EAAE,EACT,QAAQ,GAAG,kBAAkB,EAAE,EAC/B,KAAK,GAAG,EAAS,EACjB,cAAc,GAAG,EAAE,EACnB,SAAS,GAAG,KAAK,EACjB,cAAc,GAAG,SAAS,MACxB,EAAE;IACJ,IAAI,eAAe,GAAQ,SAAS,CAAC;IACrC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACtC,eAAe,GAAG;YAChB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;SACtC,CAAC;QACF,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,eAAe,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC1C,eAAe,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACxC,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,CAAC,cAAc,EAAE,0BAA0B,CAAC;QAClD,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;IAC7C,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9D,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAQ,SAAiB,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,QAAQ,GAAG,yHAAyH,CAAC;QACrI,OAAO,GAAG,cAAc,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAE1B,IAAI,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/E,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG;QACb,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE;QAC5C,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE;KACxC,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,YAAY,GAAG,SAAS,CAAC;IAC7B,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC;SAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,MAAM,iBAAiB,GAAG;QACxB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,YAAY;QACtB,eAAe,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;QACpG,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,gBAAgB,UAAU,EAAE;QAC5B,+CAA+C;QAC/C,cAAc;QACd,0BAA0B;QAC1B,GAAG,IAAI;KACR,CAAC;IAEF,sFAAsF;IACtF,+GAA+G;IAC/G,IAAI,cAAc,GAAG,QAAQ,CAAC;IAC9B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,cAAc,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACpC,QAAQ,EAAE,cAAc;QACxB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,eAAe;QACtB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,YAAY,EAAE,CAAC;IAErB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACvC,QAAQ,EAAE,IAAI;QACd,GAAG,cAAc;KAClB,CAAC,CAAC;IAEH,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAEnC,MAAM,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAElE,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE7B,IAAI,GAAG,MAAM,cAAc,CAAC;QAC1B,OAAO;QACP,IAAI;QACJ,KAAK;QACL,SAAS;KACV,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACnC,MAAM,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACrE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,cAAc,CAAC;YACnB,OAAO;YACP,IAAI,EAAE,OAAO;YACb,KAAK;YACL,SAAS;SACV,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/cjs/index.ts"],"names":[],"mappings":";;AAEA,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AACjE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAElE,MAAM,OAAO,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;AAE9C,MAAM,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAsHH,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AA0GH,OAAO,EAAE,CAAA"}
package/dist/src/index.js CHANGED
@@ -12,18 +12,7 @@
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  const { TOOLS, TOOL_DISPLAY, CATEGORIES } = require('./shared/tools');
14
14
  const { activityLogger, ActivityLogger } = require('./shared/activity-logger');
15
- // ANSI colors for terminal
16
- const colors = {
17
- reset: '\x1b[0m',
18
- bright: '\x1b[1m',
19
- dim: '\x1b[2m',
20
- green: '\x1b[32m',
21
- yellow: '\x1b[33m',
22
- blue: '\x1b[34m',
23
- magenta: '\x1b[35m',
24
- cyan: '\x1b[36m',
25
- red: '\x1b[31m',
26
- };
15
+ const { colors } = require('./shared/colors');
27
16
  /**
28
17
  * Display help message
29
18
  */
@@ -102,7 +91,6 @@ module.exports = {
102
91
  activityLogger,
103
92
  ActivityLogger,
104
93
  startMCP: () => require('./mcp/index'),
105
- startBoth: () => require('./mcp/index'),
106
94
  };
107
95
  // Run if called directly
108
96
  if (require.main === module) {
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/browser.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiQ3B,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/browser.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkR3B,CAAC"}
@@ -11,12 +11,17 @@ exports.browserHandlers = {
11
11
  // Get headless from params OR environment variable
12
12
  const envHeadless = (0, state_1.getHeadlessFromEnv)();
13
13
  const headless = params.headless !== undefined ? params.headless : envHeadless;
14
- const { proxy = {}, contextOptions = {}, turnstile = false, enableBlocker = true } = params;
14
+ const { proxy = {}, contextOptions = {}, turnstile = false, enableBlocker = true, recordVideo = false } = params;
15
15
  (0, state_1.notifyProgress)('browser_init', 'progress', `Mode: ${headless ? 'Headless' : 'GUI (Visible)'}`, { headless });
16
+ // Load storage state from globalCache
17
+ const savedStorage = state_1.globalCache.get('storage_state');
18
+ const mergedContextOptions = savedStorage
19
+ ? { ...contextOptions, storageState: savedStorage }
20
+ : contextOptions;
16
21
  const result = await connect({
17
22
  headless,
18
23
  proxy,
19
- contextOptions,
24
+ contextOptions: recordVideo ? { ...mergedContextOptions, recordVideo: { dir: './videos' } } : mergedContextOptions,
20
25
  turnstile,
21
26
  enableBlocker,
22
27
  });
@@ -209,6 +214,17 @@ exports.browserHandlers = {
209
214
  const { force = false } = params;
210
215
  (0, state_1.notifyProgress)('browser_close', 'started', 'Closing browser...');
211
216
  if (state_1.state.browserInstance) {
217
+ // Save storage state to globalCache before closing
218
+ if (state_1.state.pageInstance) {
219
+ try {
220
+ const storageState = await state_1.state.pageInstance.context().storageState();
221
+ state_1.globalCache.set('storage_state', storageState);
222
+ state_1.globalCache.saveToDisk();
223
+ }
224
+ catch (e) {
225
+ // ignore error
226
+ }
227
+ }
212
228
  try {
213
229
  await state_1.state.browserInstance.close();
214
230
  (0, state_1.notifyProgress)('browser_close', 'progress', 'Browser closed gracefully');
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/browser.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.domHandlers = void 0;
4
4
  const state_1 = require("./state");
5
- const index_1 = require("./index");
5
+ const helpers_1 = require("./helpers");
6
6
  // Auto-generated dom handlers
7
7
  exports.domHandlers = {
8
8
  async click(params) {
@@ -74,7 +74,7 @@ exports.domHandlers = {
74
74
  // Manual iframe selection (if not auto-detected)
75
75
  if (!autoDetectPlayer && (iframe !== undefined || iframeSelector)) {
76
76
  try {
77
- const resolved = await index_1.handlers._resolveIframeContext(page, iframe, iframeSelector);
77
+ const resolved = await helpers_1.helpersHandlers._resolveIframeContext(page, iframe, iframeSelector);
78
78
  if (resolved.success) {
79
79
  context = resolved.targetFrame;
80
80
  frameInfo = resolved.frameInfo;
@@ -89,7 +89,7 @@ exports.domHandlers = {
89
89
  }
90
90
  }
91
91
  // Auto-close any blocking modals before clicking
92
- await index_1.handlers._handleBlockingModals(page);
92
+ await helpers_1.helpersHandlers._handleBlockingModals(page);
93
93
  // Auto-handle dialogs
94
94
  let dialogHandled = false;
95
95
  const dialogHandler = async (dialog) => {
@@ -347,7 +347,7 @@ exports.domHandlers = {
347
347
  let frameInfo = null;
348
348
  if (iframe !== undefined || iframeSelector) {
349
349
  try {
350
- const resolved = await index_1.handlers._resolveIframeContext(page, iframe, iframeSelector);
350
+ const resolved = await helpers_1.helpersHandlers._resolveIframeContext(page, iframe, iframeSelector);
351
351
  if (resolved.success) {
352
352
  context = resolved.targetFrame;
353
353
  frameInfo = resolved.frameInfo;
@@ -362,7 +362,7 @@ exports.domHandlers = {
362
362
  }
363
363
  }
364
364
  // Auto-close any blocking modals before typing
365
- await index_1.handlers._handleBlockingModals(page);
365
+ await helpers_1.helpersHandlers._handleBlockingModals(page);
366
366
  // Wait for selector if enabled
367
367
  if (waitForSelector) {
368
368
  try {