openchrome-mcp 1.8.13 → 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.
Files changed (50) hide show
  1. package/dist/chrome/headed-fallback.d.ts +43 -0
  2. package/dist/chrome/headed-fallback.d.ts.map +1 -0
  3. package/dist/chrome/headed-fallback.js +232 -0
  4. package/dist/chrome/headed-fallback.js.map +1 -0
  5. package/dist/chrome/launcher.d.ts.map +1 -1
  6. package/dist/chrome/launcher.js +17 -13
  7. package/dist/chrome/launcher.js.map +1 -1
  8. package/dist/errors/timeout.d.ts +3 -1
  9. package/dist/errors/timeout.d.ts.map +1 -1
  10. package/dist/errors/timeout.js +8 -2
  11. package/dist/errors/timeout.js.map +1 -1
  12. package/dist/tools/batch-paginate.d.ts.map +1 -1
  13. package/dist/tools/batch-paginate.js +10 -5
  14. package/dist/tools/batch-paginate.js.map +1 -1
  15. package/dist/tools/click-element.d.ts.map +1 -1
  16. package/dist/tools/click-element.js +9 -1
  17. package/dist/tools/click-element.js.map +1 -1
  18. package/dist/tools/computer.d.ts.map +1 -1
  19. package/dist/tools/computer.js +15 -14
  20. package/dist/tools/computer.js.map +1 -1
  21. package/dist/tools/drag-drop.d.ts.map +1 -1
  22. package/dist/tools/drag-drop.js +9 -1
  23. package/dist/tools/drag-drop.js.map +1 -1
  24. package/dist/tools/fill-form.d.ts.map +1 -1
  25. package/dist/tools/fill-form.js +11 -5
  26. package/dist/tools/fill-form.js.map +1 -1
  27. package/dist/tools/find.d.ts.map +1 -1
  28. package/dist/tools/find.js +10 -2
  29. package/dist/tools/find.js.map +1 -1
  30. package/dist/tools/form-input.d.ts.map +1 -1
  31. package/dist/tools/form-input.js +9 -1
  32. package/dist/tools/form-input.js.map +1 -1
  33. package/dist/tools/interact.d.ts.map +1 -1
  34. package/dist/tools/interact.js +13 -5
  35. package/dist/tools/interact.js.map +1 -1
  36. package/dist/tools/navigate.d.ts.map +1 -1
  37. package/dist/tools/navigate.js +137 -21
  38. package/dist/tools/navigate.js.map +1 -1
  39. package/dist/tools/query-dom.d.ts.map +1 -1
  40. package/dist/tools/query-dom.js +18 -13
  41. package/dist/tools/query-dom.js.map +1 -1
  42. package/dist/utils/display-detect.d.ts +12 -0
  43. package/dist/utils/display-detect.d.ts.map +1 -0
  44. package/dist/utils/display-detect.js +59 -0
  45. package/dist/utils/display-detect.js.map +1 -0
  46. package/dist/utils/with-timeout.d.ts +6 -1
  47. package/dist/utils/with-timeout.d.ts.map +1 -1
  48. package/dist/utils/with-timeout.js +14 -2
  49. package/dist/utils/with-timeout.js.map +1 -1
  50. package/package.json +1 -1
@@ -4,6 +4,7 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerNavigateTool = registerNavigateTool;
7
+ const mcp_1 = require("../types/mcp");
7
8
  const session_manager_1 = require("../session-manager");
8
9
  const smart_goto_1 = require("../utils/smart-goto");
9
10
  const safe_title_1 = require("../utils/safe-title");
@@ -14,10 +15,14 @@ const domain_guard_1 = require("../security/domain-guard");
14
15
  const page_diagnostics_1 = require("../utils/page-diagnostics");
15
16
  const with_timeout_1 = require("../utils/with-timeout");
16
17
  const human_behavior_1 = require("../stealth/human-behavior");
18
+ const headed_fallback_1 = require("../chrome/headed-fallback");
19
+ const global_1 = require("../config/global");
20
+ /** Blocking types that warrant automatic stealth retry (#459) */
21
+ const RETRYABLE_BLOCK_TYPES = new Set(['access-denied', 'bot-check', 'captcha']);
17
22
  /** Compute readiness data for navigate responses. Non-critical — returns defaults on failure. */
18
- async function getReadiness(page) {
23
+ async function getReadiness(page, context) {
19
24
  try {
20
- const readyState = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.readyState), 3000, 'readyState');
25
+ const readyState = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.readyState), 3000, 'readyState', context);
21
26
  let framework = 'none';
22
27
  try {
23
28
  framework = await (0, with_timeout_1.withTimeout)(page.evaluate(() => {
@@ -30,7 +35,7 @@ async function getReadiness(page) {
30
35
  if (window.__ANGULAR_DEVTOOLS_BACKEND_API__)
31
36
  return 'angular';
32
37
  return 'none';
33
- }), 2000, 'framework');
38
+ }), 2000, 'framework', context);
34
39
  }
35
40
  catch { /* ignore */ }
36
41
  return { readyState, domStable: true, framework };
@@ -39,6 +44,88 @@ async function getReadiness(page) {
39
44
  return { readyState: 'unknown', domStable: false, framework: 'unknown' };
40
45
  }
41
46
  }
47
+ /**
48
+ * Auto-fallback: retry navigation with stealth mode when a CDN/WAF block is detected.
49
+ * Closes the original blocked tab (if just created), creates a new stealth tab,
50
+ * and returns the result with fallbackTier/fallbackReason metadata. (#459)
51
+ */
52
+ async function stealthAutoRetry(sessionId, targetUrl, workerId, stealthSettleMs, profileDirectory, blockingInfo, closeTabId, autoFallbackToHeaded = false, context) {
53
+ const sessionManager = (0, session_manager_1.getSessionManager)();
54
+ if (closeTabId) {
55
+ await sessionManager.closeTarget(sessionId, closeTabId).catch(() => { });
56
+ }
57
+ console.error(`[navigate] Auto-fallback: block detected (${blockingInfo.type}), retrying with stealth...`);
58
+ const { targetId, page, workerId: assignedWorkerId } = await sessionManager.createTargetStealth(sessionId, targetUrl, workerId, stealthSettleMs, profileDirectory);
59
+ await (0, human_behavior_1.simulatePresence)(page);
60
+ adaptive_screenshot_1.AdaptiveScreenshot.getInstance().reset(targetId);
61
+ const [summary, blocking] = await Promise.all([
62
+ (context && !(0, mcp_1.hasBudget)(context, 5_000)) ? Promise.resolve(null) : (0, visual_summary_1.generateVisualSummary)(page),
63
+ Promise.race([
64
+ (0, page_diagnostics_1.detectBlockingPage)(page),
65
+ new Promise(resolve => setTimeout(() => resolve(null), 5000)),
66
+ ]).catch(() => null),
67
+ ]);
68
+ let elementCount = 0;
69
+ try {
70
+ elementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount', context);
71
+ }
72
+ catch { /* non-critical */ }
73
+ const readiness = await getReadiness(page, context);
74
+ const resultText = JSON.stringify({
75
+ action: 'navigate',
76
+ url: page.url(),
77
+ title: await (0, safe_title_1.safeTitle)(page),
78
+ tabId: targetId,
79
+ workerId: assignedWorkerId,
80
+ created: true,
81
+ elementCount,
82
+ readiness,
83
+ stealth: true,
84
+ fallbackTier: 2,
85
+ fallbackReason: blockingInfo.type,
86
+ ...(summary && { visualSummary: summary }),
87
+ ...(blocking && { blockingPage: blocking }),
88
+ });
89
+ // Tier 3: if stealth retry also got blocked and headed Chrome is available, escalate (#459)
90
+ if (blocking && autoFallbackToHeaded && RETRYABLE_BLOCK_TYPES.has(blocking.type)) {
91
+ const headedResult = await headedAutoRetry(targetUrl, blocking);
92
+ if (headedResult)
93
+ return headedResult;
94
+ }
95
+ return { content: [{ type: 'text', text: resultText }] };
96
+ }
97
+ /**
98
+ * Tier 3 fallback: retry navigation in headed Chrome when stealth also fails.
99
+ * Headed Chrome has a real user-agent and TLS fingerprint, bypassing CDN/WAF detection. (#459)
100
+ * Returns null if headed fallback is not available (no display, no Chrome binary).
101
+ */
102
+ async function headedAutoRetry(targetUrl, blockingInfo) {
103
+ const headedFallback = (0, headed_fallback_1.getHeadedFallback)((0, global_1.getGlobalConfig)().port);
104
+ if (!headedFallback.isAvailable()) {
105
+ console.error('[navigate] Tier 3 skipped: no display available for headed Chrome');
106
+ return null;
107
+ }
108
+ console.error(`[navigate] Auto-fallback Tier 3: stealth also blocked (${blockingInfo.type}), retrying in headed Chrome...`);
109
+ try {
110
+ const result = await headedFallback.navigate(targetUrl);
111
+ const resultText = JSON.stringify({
112
+ action: 'navigate',
113
+ url: result.url,
114
+ title: result.title,
115
+ elementCount: result.elementCount,
116
+ headed: true,
117
+ stealth: true,
118
+ fallbackTier: 3,
119
+ fallbackReason: blockingInfo.type,
120
+ ...(result.blockingPage && { blockingPage: result.blockingPage }),
121
+ });
122
+ return { content: [{ type: 'text', text: resultText }] };
123
+ }
124
+ catch (err) {
125
+ console.error('[navigate] Tier 3 headed fallback failed:', err instanceof Error ? err.message : err);
126
+ return null;
127
+ }
128
+ }
42
129
  const definition = {
43
130
  name: 'navigate',
44
131
  description: 'Navigate to URL or go forward/back. Omit tabId for new tab.',
@@ -65,6 +152,14 @@ const definition = {
65
152
  type: 'number',
66
153
  description: 'How long to wait (ms) before attaching CDP in stealth mode. Default: 8000. Range: 1000-30000.',
67
154
  },
155
+ autoFallback: {
156
+ type: 'boolean',
157
+ description: 'Auto-retry with stealth when CDN/WAF block is detected (access-denied, bot-check, captcha). Default: true. Set false to disable.',
158
+ },
159
+ headed: {
160
+ type: 'boolean',
161
+ description: 'Force navigation in headed (non-headless) Chrome. Bypasses CDN/TLS-level blocking by using a real Chrome user-agent and TLS fingerprint. Requires a display. Default: false.',
162
+ },
68
163
  profileDirectory: {
69
164
  type: 'string',
70
165
  description: 'Chrome profile directory name (e.g., "Profile 1"). Use list_profiles to see available profiles. Launches a separate Chrome instance for each profile. If omitted, uses the server default. Cannot be combined with workerId.',
@@ -73,7 +168,7 @@ const definition = {
73
168
  required: ['url'],
74
169
  },
75
170
  };
76
- const handler = async (sessionId, args) => {
171
+ const handler = async (sessionId, args, context) => {
77
172
  const tabId = args.tabId;
78
173
  const url = args.url;
79
174
  const profileDirectory = args.profileDirectory;
@@ -88,6 +183,8 @@ const handler = async (sessionId, args) => {
88
183
  const workerId = args.workerId || (profileDirectory ? `profile:${profileDirectory}` : undefined);
89
184
  const stealth = args.stealth;
90
185
  const stealthSettleMs = Math.min(Math.max(args.stealthSettleMs || 8000, 1000), 30000);
186
+ const autoFallback = args.autoFallback !== false; // default: true
187
+ const headed = args.headed;
91
188
  const stealthIgnoredWarning = stealth && tabId ? 'stealth mode only works when creating new tabs (omit tabId). The stealth parameter was ignored for this navigation.' : undefined;
92
189
  const sessionManager = (0, session_manager_1.getSessionManager)();
93
190
  if (!url) {
@@ -149,6 +246,16 @@ const handler = async (sessionId, args) => {
149
246
  }
150
247
  // Domain blocklist check on normalized URL
151
248
  (0, domain_guard_1.assertDomainAllowed)(targetUrl);
249
+ // headed=true: skip headless entirely, navigate directly in headed Chrome (#459)
250
+ if (headed) {
251
+ const headedResult = await headedAutoRetry(targetUrl, { type: 'access-denied', detail: 'user-requested headed mode' });
252
+ if (headedResult)
253
+ return headedResult;
254
+ return {
255
+ content: [{ type: 'text', text: 'Error: headed mode requested but no display available for headed Chrome.' }],
256
+ isError: true,
257
+ };
258
+ }
152
259
  // Tab reuse: if worker has exactly 1 existing tab, reuse it instead of creating new
153
260
  const resolvedWorkerId = workerId || 'default';
154
261
  const existingTargets = sessionManager.getWorkerTargetIds(sessionId, resolvedWorkerId);
@@ -157,7 +264,7 @@ const handler = async (sessionId, args) => {
157
264
  if (await sessionManager.isTargetValid(existingTabId)) {
158
265
  const page = await sessionManager.getPage(sessionId, existingTabId, undefined, 'navigate');
159
266
  if (page) {
160
- const { authRedirect } = await (0, with_timeout_1.withTimeout)((0, smart_goto_1.smartGoto)(page, targetUrl, { timeout: defaults_1.DEFAULT_NAVIGATION_TIMEOUT_MS }), defaults_1.DEFAULT_NAVIGATION_TIMEOUT_MS + 5000, `navigate to ${targetUrl}`);
267
+ const { authRedirect } = await (0, with_timeout_1.withTimeout)((0, smart_goto_1.smartGoto)(page, targetUrl, { timeout: defaults_1.DEFAULT_NAVIGATION_TIMEOUT_MS }), defaults_1.DEFAULT_NAVIGATION_TIMEOUT_MS + 5000, `navigate to ${targetUrl}`, context);
161
268
  if (authRedirect) {
162
269
  adaptive_screenshot_1.AdaptiveScreenshot.getInstance().reset(existingTabId);
163
270
  return {
@@ -183,7 +290,7 @@ const handler = async (sessionId, args) => {
183
290
  }
184
291
  adaptive_screenshot_1.AdaptiveScreenshot.getInstance().reset(existingTabId);
185
292
  const [summary, reuseBlocking] = await Promise.all([
186
- (0, visual_summary_1.generateVisualSummary)(page),
293
+ (context && !(0, mcp_1.hasBudget)(context, 5_000)) ? Promise.resolve(null) : (0, visual_summary_1.generateVisualSummary)(page),
187
294
  Promise.race([
188
295
  (0, page_diagnostics_1.detectBlockingPage)(page),
189
296
  new Promise(resolve => setTimeout(() => resolve(null), 5000)),
@@ -192,12 +299,16 @@ const handler = async (sessionId, args) => {
192
299
  // Get element count for SPA readiness visibility
193
300
  let reuseElementCount = 0;
194
301
  try {
195
- reuseElementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount');
302
+ reuseElementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount', context);
196
303
  }
197
304
  catch {
198
305
  // Non-critical — proceed without count
199
306
  }
200
- const reuseReadiness = await getReadiness(page);
307
+ const reuseReadiness = await getReadiness(page, context);
308
+ // Auto-fallback: if reused tab hit a CDN/WAF block, retry with stealth in a new tab (#459)
309
+ if (reuseBlocking && autoFallback && RETRYABLE_BLOCK_TYPES.has(reuseBlocking.type)) {
310
+ return stealthAutoRetry(sessionId, targetUrl, workerId, stealthSettleMs, profileDirectory, reuseBlocking, undefined, autoFallback, context);
311
+ }
201
312
  const reuseResultText = JSON.stringify({
202
313
  action: 'navigate',
203
314
  url: page.url(),
@@ -228,7 +339,7 @@ const handler = async (sessionId, args) => {
228
339
  }
229
340
  adaptive_screenshot_1.AdaptiveScreenshot.getInstance().reset(targetId);
230
341
  const [newTabSummary, newTabBlocking] = await Promise.all([
231
- (0, visual_summary_1.generateVisualSummary)(page),
342
+ (context && !(0, mcp_1.hasBudget)(context, 5_000)) ? Promise.resolve(null) : (0, visual_summary_1.generateVisualSummary)(page),
232
343
  Promise.race([
233
344
  (0, page_diagnostics_1.detectBlockingPage)(page),
234
345
  new Promise(resolve => setTimeout(() => resolve(null), 5000)),
@@ -237,12 +348,16 @@ const handler = async (sessionId, args) => {
237
348
  // Get element count for SPA readiness visibility
238
349
  let newTabElementCount = 0;
239
350
  try {
240
- newTabElementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount');
351
+ newTabElementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount', context);
241
352
  }
242
353
  catch {
243
354
  // Non-critical — proceed without count
244
355
  }
245
- const newTabReadiness = await getReadiness(page);
356
+ const newTabReadiness = await getReadiness(page, context);
357
+ // Auto-fallback: if new tab hit a CDN/WAF block and stealth wasn't already used, retry with stealth (#459)
358
+ if (newTabBlocking && !stealth && autoFallback && RETRYABLE_BLOCK_TYPES.has(newTabBlocking.type)) {
359
+ return stealthAutoRetry(sessionId, targetUrl, workerId, stealthSettleMs, profileDirectory, newTabBlocking, targetId, autoFallback, context);
360
+ }
246
361
  const newTabResultText = JSON.stringify({
247
362
  action: 'navigate',
248
363
  url: page.url(),
@@ -252,6 +367,7 @@ const handler = async (sessionId, args) => {
252
367
  created: true,
253
368
  elementCount: newTabElementCount,
254
369
  readiness: newTabReadiness,
370
+ ...(stealth && { stealth: true }),
255
371
  ...(newTabSummary && { visualSummary: newTabSummary }),
256
372
  ...(newTabBlocking && { blockingPage: newTabBlocking }),
257
373
  });
@@ -306,7 +422,7 @@ const handler = async (sessionId, args) => {
306
422
  await page.goBack({ waitUntil: 'domcontentloaded', timeout: defaults_1.DEFAULT_NAVIGATION_TIMEOUT_MS });
307
423
  adaptive_screenshot_1.AdaptiveScreenshot.getInstance().reset(tabId);
308
424
  const [backSummary, backBlocking] = await Promise.all([
309
- (0, visual_summary_1.generateVisualSummary)(page),
425
+ (context && !(0, mcp_1.hasBudget)(context, 5_000)) ? Promise.resolve(null) : (0, visual_summary_1.generateVisualSummary)(page),
310
426
  Promise.race([
311
427
  (0, page_diagnostics_1.detectBlockingPage)(page),
312
428
  new Promise(resolve => setTimeout(() => resolve(null), 5000)),
@@ -315,7 +431,7 @@ const handler = async (sessionId, args) => {
315
431
  // Get element count for SPA readiness visibility
316
432
  let backElementCount = 0;
317
433
  try {
318
- backElementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount');
434
+ backElementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount', context);
319
435
  }
320
436
  catch {
321
437
  // Non-critical — proceed without count
@@ -337,7 +453,7 @@ const handler = async (sessionId, args) => {
337
453
  await page.goForward({ waitUntil: 'domcontentloaded', timeout: defaults_1.DEFAULT_NAVIGATION_TIMEOUT_MS });
338
454
  adaptive_screenshot_1.AdaptiveScreenshot.getInstance().reset(tabId);
339
455
  const [fwdSummary, fwdBlocking] = await Promise.all([
340
- (0, visual_summary_1.generateVisualSummary)(page),
456
+ (context && !(0, mcp_1.hasBudget)(context, 5_000)) ? Promise.resolve(null) : (0, visual_summary_1.generateVisualSummary)(page),
341
457
  Promise.race([
342
458
  (0, page_diagnostics_1.detectBlockingPage)(page),
343
459
  new Promise(resolve => setTimeout(() => resolve(null), 5000)),
@@ -346,7 +462,7 @@ const handler = async (sessionId, args) => {
346
462
  // Get element count for SPA readiness visibility
347
463
  let fwdElementCount = 0;
348
464
  try {
349
- fwdElementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount');
465
+ fwdElementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount', context);
350
466
  }
351
467
  catch {
352
468
  // Non-critical — proceed without count
@@ -422,7 +538,7 @@ const handler = async (sessionId, args) => {
422
538
  // Domain blocklist check on normalized URL (existing-tab path)
423
539
  (0, domain_guard_1.assertDomainAllowed)(targetUrl);
424
540
  // Navigate with smart auth redirect detection
425
- const { authRedirect } = await (0, with_timeout_1.withTimeout)((0, smart_goto_1.smartGoto)(page, targetUrl, { timeout: defaults_1.DEFAULT_NAVIGATION_TIMEOUT_MS }), defaults_1.DEFAULT_NAVIGATION_TIMEOUT_MS + 5000, `navigate to ${targetUrl}`);
541
+ const { authRedirect } = await (0, with_timeout_1.withTimeout)((0, smart_goto_1.smartGoto)(page, targetUrl, { timeout: defaults_1.DEFAULT_NAVIGATION_TIMEOUT_MS }), defaults_1.DEFAULT_NAVIGATION_TIMEOUT_MS + 5000, `navigate to ${targetUrl}`, context);
426
542
  // Auth redirect = fail-fast with clear error
427
543
  if (authRedirect) {
428
544
  adaptive_screenshot_1.AdaptiveScreenshot.getInstance().reset(tabId);
@@ -447,7 +563,7 @@ const handler = async (sessionId, args) => {
447
563
  }
448
564
  adaptive_screenshot_1.AdaptiveScreenshot.getInstance().reset(tabId);
449
565
  const [navSummary, navBlocking] = await Promise.all([
450
- (0, visual_summary_1.generateVisualSummary)(page),
566
+ (context && !(0, mcp_1.hasBudget)(context, 5_000)) ? Promise.resolve(null) : (0, visual_summary_1.generateVisualSummary)(page),
451
567
  Promise.race([
452
568
  (0, page_diagnostics_1.detectBlockingPage)(page),
453
569
  new Promise(resolve => setTimeout(() => resolve(null), 5000)),
@@ -456,12 +572,12 @@ const handler = async (sessionId, args) => {
456
572
  // Get element count for SPA readiness visibility
457
573
  let navElementCount = 0;
458
574
  try {
459
- navElementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount');
575
+ navElementCount = await (0, with_timeout_1.withTimeout)(page.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount', context);
460
576
  }
461
577
  catch {
462
578
  // Non-critical — proceed without count
463
579
  }
464
- const navReadiness = await getReadiness(page);
580
+ const navReadiness = await getReadiness(page, context);
465
581
  const navResultText = JSON.stringify({
466
582
  action: 'navigate',
467
583
  url: page.url(),
@@ -484,10 +600,10 @@ const handler = async (sessionId, args) => {
484
600
  try {
485
601
  const timeoutPage = await sessionManager.getPage(sessionId, tabId, undefined, 'navigate');
486
602
  if (timeoutPage) {
487
- const timeoutReadiness = await getReadiness(timeoutPage);
603
+ const timeoutReadiness = await getReadiness(timeoutPage, context);
488
604
  let timeoutElementCount = 0;
489
605
  try {
490
- timeoutElementCount = await (0, with_timeout_1.withTimeout)(timeoutPage.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount');
606
+ timeoutElementCount = await (0, with_timeout_1.withTimeout)(timeoutPage.evaluate(() => document.querySelectorAll('*').length), 3000, 'elementCount', context);
491
607
  }
492
608
  catch { /* ignore */ }
493
609
  const hasContent = (timeoutReadiness.readyState === 'interactive' || timeoutReadiness.readyState === 'complete') && timeoutElementCount > 10;
@@ -1 +1 @@
1
- {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../../src/tools/navigate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../../src/tools/navigate.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAusBH,oDAEC;AAtsBD,sCAAiG;AACjG,wDAAuD;AACvD,oDAAgD;AAChD,oDAAgD;AAChD,iDAAmE;AACnE,4DAAgE;AAChE,sEAAkE;AAClE,2DAA+D;AAC/D,gEAA6E;AAC7E,wDAAoD;AACpD,8DAA6D;AAC7D,+DAA8D;AAC9D,6CAAmD;AAGnD,iEAAiE;AACjE,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AAEtG,iGAAiG;AACjG,KAAK,UAAU,YAAY,CAAC,IAAU,EAAE,OAAqB;IAC3D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAC5G,IAAI,SAAS,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,IAAA,0BAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAC/C,IAAK,MAAc,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;oBAAE,OAAO,MAAM,CAAC;gBACtF,IAAK,MAAc,CAAC,8BAA8B,IAAI,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC;oBAAE,OAAO,OAAO,CAAC;gBACjH,IAAK,MAAc,CAAC,OAAO;oBAAE,OAAO,KAAK,CAAC;gBAC1C,IAAK,MAAc,CAAC,gCAAgC;oBAAE,OAAO,SAAS,CAAC;gBACvE,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACxB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAC7B,SAAiB,EACjB,SAAiB,EACjB,QAA4B,EAC5B,eAAuB,EACvB,gBAAoC,EACpC,YAA0B,EAC1B,UAAmB,EACnB,uBAAgC,KAAK,EACrC,OAAqB;IAErB,MAAM,cAAc,GAAG,IAAA,mCAAiB,GAAE,CAAC;IAE3C,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,6CAA6C,YAAY,CAAC,IAAI,6BAA6B,CAAC,CAAC;IAE3G,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAClD,MAAM,cAAc,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAE9G,MAAM,IAAA,iCAAgB,EAAC,IAAI,CAAC,CAAC;IAE7B,wCAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,CAAC,OAAO,IAAI,CAAC,IAAA,eAAS,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,sCAAqB,EAAC,IAAI,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC;YACX,IAAA,qCAAkB,EAAC,IAAI,CAAC;YACxB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;SACpE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KACrB,CAAC,CAAC;IAEH,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,IAAA,0BAAW,EAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAC1D,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,MAAM,EAAE,UAAU;QAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;QACf,KAAK,EAAE,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC;QAC5B,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,IAAI;QACb,YAAY;QACZ,SAAS;QACT,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,YAAY,CAAC,IAAI;QACjC,GAAG,CAAC,OAAO,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;QAC1C,GAAG,CAAC,QAAQ,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;KAC5C,CAAC,CAAC;IACH,4FAA4F;IAC5F,IAAI,QAAQ,IAAI,oBAAoB,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjF,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,YAAY;YAAE,OAAO,YAAY,CAAC;IACxC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAC5B,SAAiB,EACjB,YAA0B;IAE1B,MAAM,cAAc,GAAG,IAAA,mCAAiB,EAAC,IAAA,wBAAe,GAAE,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,0DAA0D,YAAY,CAAC,IAAI,iCAAiC,CAAC,CAAC;IAE5H,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,YAAY,CAAC,IAAI;YACjC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;SAClE,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrG,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAsB;IACpC,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,6DAA6D;IAC1E,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;aACxC;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACzC;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,iLAAiL;aAC/L;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+FAA+F;aAC7G;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,kIAAkI;aAChJ;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,8KAA8K;aAC5L;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8NAA8N;aAC5O;SACF;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC;KAClB;CACF,CAAC;AAEF,MAAM,OAAO,GAAgB,KAAK,EAChC,SAAiB,EACjB,IAA6B,EAC7B,OAAqB,EACD,EAAE;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAA2B,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa,CAAC;IAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAsC,CAAC;IACrE,uDAAuD;IACvD,IAAI,IAAI,CAAC,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kIAAkI,EAAE,CAAC;YACrK,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,6EAA6E;IAC7E,MAAM,QAAQ,GAAI,IAAI,CAAC,QAA+B,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzH,MAAM,OAAO,GAAG,IAAI,CAAC,OAA8B,CAAC;IACpD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,eAA0B,IAAI,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAClG,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,gBAAgB;IAClE,MAAM,MAAM,GAAG,IAAI,CAAC,MAA6B,CAAC;IAClD,MAAM,qBAAqB,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,qHAAqH,CAAC,CAAC,CAAC,SAAS,CAAC;IACnL,MAAM,cAAc,GAAG,IAAA,mCAAiB,GAAE,CAAC;IAE3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;YAC3D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,IAAI,CAAC,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,sBAAsB;YACtB,IAAI,SAAS,GAAG,GAAG,CAAC;YACpB,8EAA8E;YAC9E,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAClE,IAAI,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC7E,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,sBAAsB,WAAW,CAAC,CAAC,CAAC,+EAA+E;yBAC1H,CAAC;oBACF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1E,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;YACrC,CAAC;YAED,mCAAmC;YACnC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;gBACrC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtD,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,4BAA4B,SAAS,CAAC,QAAQ,qCAAqC;6BAC1F;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3D,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uCAAuC,EAAE,CAAC;wBAC1E,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,+BAA+B,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;yBACtG;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,2CAA2C;YAC3C,IAAA,kCAAmB,EAAC,SAAS,CAAC,CAAC;YAE/B,iFAAiF;YACjF,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;gBACvH,IAAI,YAAY;oBAAE,OAAO,YAAY,CAAC;gBACtC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0EAA0E,EAAE,CAAC;oBAC7G,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,oFAAoF;YACpF,MAAM,gBAAgB,GAAG,QAAQ,IAAI,SAAS,CAAC;YAC/C,MAAM,eAAe,GAAG,cAAc,CAAC,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YACvF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7C,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,MAAM,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;oBACtD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;oBAC3F,IAAI,IAAI,EAAE,CAAC;wBACT,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,0BAAW,EACxC,IAAA,sBAAS,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,wCAA6B,EAAE,CAAC,EACtE,wCAA6B,GAAG,IAAI,EACpC,eAAe,SAAS,EAAE,EAC1B,OAAO,CAAC,CAAC;wBACX,IAAI,YAAY,EAAE,CAAC;4BACjB,wCAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;4BACtD,OAAO;gCACL,OAAO,EAAE,CAAC;wCACR,IAAI,EAAE,MAAM;wCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4CACnB,MAAM,EAAE,UAAU;4CAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;4CACf,KAAK,EAAE,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC;4CAC5B,KAAK,EAAE,aAAa;4CACpB,QAAQ,EAAE,gBAAgB;4CAC1B,YAAY,EAAE,IAAI;4CAClB,cAAc,EAAE,YAAY,CAAC,IAAI;4CACjC,gBAAgB,EAAE,YAAY,CAAC,IAAI;4CACnC,OAAO,EAAE,2EAA2E,GAAG,YAAY,CAAC,IAAI,GAAG,MAAM,GAAG,YAAY,CAAC,IAAI;gDACnI,2DAA2D;gDAC3D,wEAAwE;gDACxE,kDAAkD;yCACrD,CAAC;qCACH,CAAC;gCACF,OAAO,EAAE,KAAK;6BACf,CAAC;wBACJ,CAAC;wBACD,wCAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;wBACtD,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;4BACjD,CAAC,OAAO,IAAI,CAAC,IAAA,eAAS,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,sCAAqB,EAAC,IAAI,CAAC;4BAC7F,OAAO,CAAC,IAAI,CAAC;gCACX,IAAA,qCAAkB,EAAC,IAAI,CAAC;gCACxB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;6BACpE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;yBACtG,CAAC,CAAC;wBACH,iDAAiD;wBACjD,IAAI,iBAAiB,GAAG,CAAC,CAAC;wBAC1B,IAAI,CAAC;4BACH,iBAAiB,GAAG,MAAM,IAAA,0BAAW,EACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAC1D,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,CAAC;wBACb,CAAC;wBAAC,MAAM,CAAC;4BACP,uCAAuC;wBACzC,CAAC;wBACD,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;wBAEzD,2FAA2F;wBAC3F,IAAI,aAAa,IAAI,YAAY,IAAI,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;4BACnF,OAAO,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;wBAC9I,CAAC;wBAED,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;4BACrC,MAAM,EAAE,UAAU;4BAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;4BACf,KAAK,EAAE,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC;4BAC5B,KAAK,EAAE,aAAa;4BACpB,QAAQ,EAAE,gBAAgB;4BAC1B,MAAM,EAAE,IAAI;4BACZ,YAAY,EAAE,iBAAiB;4BAC/B,SAAS,EAAE,cAAc;4BACzB,GAAG,CAAC,OAAO,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;4BAC1C,GAAG,CAAC,aAAa,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;yBACtD,CAAC,CAAC;wBACH,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;yBACnD,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,uFAAuF;YACvF,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO;gBAC5D,CAAC,CAAC,MAAM,cAAc,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,CAAC;gBAC7G,CAAC,CAAC,MAAM,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAExF,yEAAyE;YACzE,0EAA0E;YAC1E,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAA,iCAAgB,EAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YAED,wCAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACxD,CAAC,OAAO,IAAI,CAAC,IAAA,eAAS,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,sCAAqB,EAAC,IAAI,CAAC;gBAC7F,OAAO,CAAC,IAAI,CAAC;oBACX,IAAA,qCAAkB,EAAC,IAAI,CAAC;oBACxB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;iBACpE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;aACpG,CAAC,CAAC;YACH,iDAAiD;YACjD,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC;gBACH,kBAAkB,GAAG,MAAM,IAAA,0BAAW,EACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAC1D,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;YACD,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE1D,2GAA2G;YAC3G,IAAI,cAAc,IAAI,CAAC,OAAO,IAAI,YAAY,IAAI,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjG,OAAO,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAC9I,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;gBACtC,MAAM,EAAE,UAAU;gBAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;gBACf,KAAK,EAAE,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC;gBAC5B,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,gBAAgB;gBAC1B,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,kBAAkB;gBAChC,SAAS,EAAE,eAAe;gBAC1B,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBACjC,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;gBACtD,GAAG,CAAC,cAAc,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;aACxD,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3E,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS;4BACb,CAAC,CAAC,sCAAsC,GAAG,kJAAkJ;4BAC7L,CAAC,CAAC,uBAAuB,MAAM,EAAE;qBACpC;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sDAAsD,EAAE,CAAC;YACzF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,iCAAiC;QACjC,IAAI,CAAC,MAAM,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,yBAAyB,EAAE,CAAC;gBAC/E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACtE,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;gBACxC,CAAC,CAAC,sBAAsB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxG,CAAC,CAAC,uEAAuE,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,qCAAqC,aAAa,EAAE,EAAE,CAAC;gBAC1G,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,wCAA6B,EAAE,CAAC,CAAC;YAC7F,wCAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACpD,CAAC,OAAO,IAAI,CAAC,IAAA,eAAS,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,sCAAqB,EAAC,IAAI,CAAC;gBAC7F,OAAO,CAAC,IAAI,CAAC;oBACX,IAAA,qCAAkB,EAAC,IAAI,CAAC;oBACxB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;iBACpE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;aACjG,CAAC,CAAC;YACH,iDAAiD;YACjD,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC;gBACH,gBAAgB,GAAG,MAAM,IAAA,0BAAW,EAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAC1D,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;gBACpC,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;gBACf,KAAK,EAAE,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC;gBAC5B,YAAY,EAAE,gBAAgB;gBAC9B,GAAG,CAAC,WAAW,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;gBAClD,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;gBACnD,GAAG,CAAC,qBAAqB,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;aACjE,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;aAClD,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,wCAA6B,EAAE,CAAC,CAAC;YAChG,wCAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAClD,CAAC,OAAO,IAAI,CAAC,IAAA,eAAS,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,sCAAqB,EAAC,IAAI,CAAC;gBAC7F,OAAO,CAAC,IAAI,CAAC;oBACX,IAAA,qCAAkB,EAAC,IAAI,CAAC;oBACxB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;iBACpE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;aACpG,CAAC,CAAC;YACH,iDAAiD;YACjD,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC;gBACH,eAAe,GAAG,MAAM,IAAA,0BAAW,EACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAC1D,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnC,MAAM,EAAE,SAAS;gBACjB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;gBACf,KAAK,EAAE,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC;gBAC5B,YAAY,EAAE,eAAe;gBAC7B,GAAG,CAAC,UAAU,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;gBAChD,GAAG,CAAC,WAAW,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;gBACjD,GAAG,CAAC,qBAAqB,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;aACjE,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;aACjD,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,IAAI,SAAS,GAAG,GAAG,CAAC;QACpB,8EAA8E;QAC9E,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClE,IAAI,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC7E,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,sBAAsB,WAAW,CAAC,CAAC,CAAC,+EAA+E;qBAC1H,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1E,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;QACrC,CAAC;QAED,eAAe;QACf,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAErC,sCAAsC;YACtC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4BAA4B,SAAS,CAAC,QAAQ,qCAAqC;yBAC1F;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,2BAA2B;YAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3D,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,uCAAuC;yBAC9C;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,+BAA+B,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;qBACtG;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,IAAA,kCAAmB,EAAC,SAAS,CAAC,CAAC;QAE/B,8CAA8C;QAC9C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,0BAAW,EACxC,IAAA,sBAAS,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,wCAA6B,EAAE,CAAC,EACtE,wCAA6B,GAAG,IAAI,EACpC,eAAe,SAAS,EAAE,EAC1B,OAAO,CAAC,CAAC;QAEX,6CAA6C;QAC7C,IAAI,YAAY,EAAE,CAAC;YACjB,wCAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,MAAM,EAAE,UAAU;4BAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;4BACf,KAAK,EAAE,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC;4BAC5B,YAAY,EAAE,IAAI;4BAClB,cAAc,EAAE,YAAY,CAAC,IAAI;4BACjC,gBAAgB,EAAE,YAAY,CAAC,IAAI;4BACnC,OAAO,EAAE,2EAA2E,GAAG,YAAY,CAAC,IAAI,GAAG,MAAM,GAAG,YAAY,CAAC,IAAI;gCACnI,2DAA2D;gCAC3D,wEAAwE;gCACxE,kDAAkD;yBACrD,CAAC;qBACH,CAAC;gBACF,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QAED,wCAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAClD,CAAC,OAAO,IAAI,CAAC,IAAA,eAAS,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,sCAAqB,EAAC,IAAI,CAAC;YAC7F,OAAO,CAAC,IAAI,CAAC;gBACX,IAAA,qCAAkB,EAAC,IAAI,CAAC;gBACxB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;aACpE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;SACzG,CAAC,CAAC;QACH,iDAAiD;QACjD,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,eAAe,GAAG,MAAM,IAAA,0BAAW,EACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAC1D,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;YACf,KAAK,EAAE,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC;YAC5B,YAAY,EAAE,eAAe;YAC7B,SAAS,EAAE,YAAY;YACvB,GAAG,CAAC,UAAU,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;YAChD,GAAG,CAAC,WAAW,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;YACjD,GAAG,CAAC,qBAAqB,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;SACjE,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;SACjD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE3E,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YACvB,uDAAuD;YACvD,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC1F,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBAClE,IAAI,mBAAmB,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC;wBACH,mBAAmB,GAAG,MAAM,IAAA,0BAAW,EACrC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EACjE,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,CAAC;oBACb,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;oBAExB,MAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC,UAAU,KAAK,aAAa,IAAI,gBAAgB,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,mBAAmB,GAAG,EAAE,CAAC;oBAC7I,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO;4BACL,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wCACnB,MAAM,EAAE,UAAU;wCAClB,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE;wCACtB,KAAK,EAAE,MAAM,IAAA,sBAAS,EAAC,WAAW,CAAC;wCACnC,KAAK;wCACL,YAAY,EAAE,mBAAmB;wCACjC,SAAS,EAAE,EAAE,GAAG,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE;wCACpD,OAAO,EAAE,qFAAqF;qCAC/F,CAAC;iCACH,CAAC;yBACH,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;wBACb,CAAC,CAAC,mNAAmN;wBACrN,CAAC,CAAC,qBAAqB,MAAM,EAAE;iBAClC;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,SAAgB,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;AACrF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"query-dom.d.ts","sourceRoot":"","sources":["../../src/tools/query-dom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAsvB1C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE5D"}
1
+ {"version":3,"file":"query-dom.d.ts","sourceRoot":"","sources":["../../src/tools/query-dom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA8vB1C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE5D"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.registerQueryDomTool = registerQueryDomTool;
9
+ const mcp_1 = require("../types/mcp");
9
10
  const session_manager_1 = require("../session-manager");
10
11
  const with_timeout_1 = require("../utils/with-timeout");
11
12
  const shadow_dom_1 = require("../utils/shadow-dom");
@@ -51,7 +52,7 @@ const definition = {
51
52
  required: ['tabId', 'method'],
52
53
  },
53
54
  };
54
- async function gatherDiagnostics(page, selector) {
55
+ async function gatherDiagnostics(page, selector, context) {
55
56
  try {
56
57
  // Single atomic evaluate to avoid race conditions if page navigates between calls
57
58
  return await (0, with_timeout_1.withTimeout)(page.evaluate((sel) => {
@@ -90,7 +91,7 @@ async function gatherDiagnostics(page, selector) {
90
91
  framework,
91
92
  closestMatch,
92
93
  };
93
- }, selector), 15000, 'query_dom');
94
+ }, selector), 15000, 'query_dom', context);
94
95
  }
95
96
  catch (err) {
96
97
  console.error('[query_dom] diagnostics failed:', err);
@@ -177,7 +178,7 @@ async function shadowCSSFallback(page, selector, multiple) {
177
178
  // ---------------------------------------------------------------------------
178
179
  // CSS handler
179
180
  // ---------------------------------------------------------------------------
180
- async function handleCSS(sessionId, args) {
181
+ async function handleCSS(sessionId, args, context) {
181
182
  const tabId = args.tabId;
182
183
  const selector = args.selector;
183
184
  const multiple = args.multiple ?? false;
@@ -221,7 +222,7 @@ async function handleCSS(sessionId, args) {
221
222
  };
222
223
  }
223
224
  }
224
- const diag = await gatherDiagnostics(page, selector);
225
+ const diag = await gatherDiagnostics(page, selector, context);
225
226
  return {
226
227
  content: [
227
228
  {
@@ -245,6 +246,10 @@ async function handleCSS(sessionId, args) {
245
246
  const limitedElements = elements.slice(0, MAX_SELECTOR_RESULTS);
246
247
  const elementInfos = [];
247
248
  for (let i = 0; i < limitedElements.length; i++) {
249
+ // Budget check: return partial results if deadline is approaching
250
+ if (context && !(0, mcp_1.hasBudget)(context, 10_000)) {
251
+ break;
252
+ }
248
253
  const element = limitedElements[i];
249
254
  const info = await (0, with_timeout_1.withTimeout)(page.evaluate((el, index) => {
250
255
  const rect = el.getBoundingClientRect();
@@ -275,7 +280,7 @@ async function handleCSS(sessionId, args) {
275
280
  }
276
281
  : null,
277
282
  };
278
- }, element, i), 2000, 'query_dom');
283
+ }, element, i), 2000, 'query_dom', context);
279
284
  elementInfos.push(info);
280
285
  }
281
286
  const result = {
@@ -318,7 +323,7 @@ async function handleCSS(sessionId, args) {
318
323
  };
319
324
  }
320
325
  }
321
- const diag = await gatherDiagnostics(page, selector);
326
+ const diag = await gatherDiagnostics(page, selector, context);
322
327
  return {
323
328
  content: [
324
329
  {
@@ -365,7 +370,7 @@ async function handleCSS(sessionId, args) {
365
370
  }
366
371
  : null,
367
372
  };
368
- }, element), 15000, 'query_dom');
373
+ }, element), 15000, 'query_dom', context);
369
374
  return {
370
375
  content: [
371
376
  {
@@ -385,7 +390,7 @@ async function handleCSS(sessionId, args) {
385
390
  // ---------------------------------------------------------------------------
386
391
  // XPath handler
387
392
  // ---------------------------------------------------------------------------
388
- async function handleXPath(sessionId, args) {
393
+ async function handleXPath(sessionId, args, context) {
389
394
  const tabId = args.tabId;
390
395
  const xpath = args.xpath;
391
396
  const multiple = args.multiple ?? false;
@@ -473,7 +478,7 @@ async function handleXPath(sessionId, args) {
473
478
  elements,
474
479
  totalCount: allNodes.length,
475
480
  };
476
- }, xpath, limit), 15000, 'query_dom');
481
+ }, xpath, limit), 15000, 'query_dom', context);
477
482
  return {
478
483
  content: [
479
484
  {
@@ -556,7 +561,7 @@ async function handleXPath(sessionId, args) {
556
561
  if (shadowNode)
557
562
  return extractElementInfo(shadowNode, xpathExpr);
558
563
  return null;
559
- }, xpath), 15000, 'query_dom');
564
+ }, xpath), 15000, 'query_dom', context);
560
565
  if (!element) {
561
566
  return {
562
567
  content: [
@@ -594,7 +599,7 @@ async function handleXPath(sessionId, args) {
594
599
  // ---------------------------------------------------------------------------
595
600
  // Router
596
601
  // ---------------------------------------------------------------------------
597
- const handler = async (sessionId, args) => {
602
+ const handler = async (sessionId, args, context) => {
598
603
  const tabId = args.tabId;
599
604
  const method = args.method;
600
605
  if (!tabId) {
@@ -606,9 +611,9 @@ const handler = async (sessionId, args) => {
606
611
  try {
607
612
  switch (method) {
608
613
  case 'css':
609
- return await handleCSS(sessionId, args);
614
+ return await handleCSS(sessionId, args, context);
610
615
  case 'xpath':
611
- return await handleXPath(sessionId, args);
616
+ return await handleXPath(sessionId, args, context);
612
617
  default:
613
618
  return {
614
619
  content: [