@jshookmcp/jshook 0.2.2 → 0.2.3

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 (130) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +4 -4
  3. package/README.zh.md +3 -3
  4. package/dist/native/scripts/linux/enum-windows.sh +12 -12
  5. package/dist/native/scripts/macos/enum-windows.applescript +22 -22
  6. package/dist/native/scripts/windows/enum-windows-by-class.ps1 +51 -51
  7. package/dist/native/scripts/windows/enum-windows.ps1 +44 -44
  8. package/dist/native/scripts/windows/inject-dll.ps1 +21 -21
  9. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -1
  10. package/dist/src/modules/analyzer/CodeAnalyzer.js +1 -1
  11. package/dist/src/modules/browser/BrowserDiscovery.d.ts +6 -5
  12. package/dist/src/modules/browser/BrowserDiscovery.js +1 -1
  13. package/dist/src/modules/browser/BrowserModeManager.d.ts +1 -1
  14. package/dist/src/modules/browser/BrowserModeManager.js +1 -1
  15. package/dist/src/modules/browser/UnifiedBrowserManager.js +1 -1
  16. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +22 -22
  17. package/dist/src/modules/captcha/AICaptchaDetector.js +75 -75
  18. package/dist/src/modules/captcha/CaptchaDetector.d.ts +31 -17
  19. package/dist/src/modules/captcha/CaptchaDetector.js +1 -1
  20. package/dist/src/modules/collector/CodeCache.d.ts +2 -2
  21. package/dist/src/modules/collector/CodeCollector.d.ts +12 -9
  22. package/dist/src/modules/collector/CodeCollector.js +1 -1
  23. package/dist/src/modules/collector/DOMInspector.d.ts +3 -2
  24. package/dist/src/modules/collector/DOMInspector.js +1 -1
  25. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -1
  26. package/dist/src/modules/crypto/CryptoDetector.js +1 -1
  27. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +1 -1
  28. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -1
  29. package/dist/src/modules/deobfuscator/Deobfuscator.js +1 -1
  30. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -1
  31. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +2 -2
  32. package/dist/src/modules/deobfuscator/PackerDeobfuscator.js +1 -1
  33. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +1 -1
  34. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +82 -82
  35. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +1 -1
  36. package/dist/src/modules/external/ExternalToolRunner.d.ts +1 -1
  37. package/dist/src/modules/external/ExternalToolRunner.js +1 -1
  38. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
  39. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
  40. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
  41. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
  42. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
  43. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
  44. package/dist/src/modules/process/LinuxProcessManager.js +2 -2
  45. package/dist/src/modules/process/MacProcessManager.js +26 -26
  46. package/dist/src/modules/process/ProcessManager.impl.js +1 -1
  47. package/dist/src/modules/process/memory/availability.js +49 -49
  48. package/dist/src/modules/process/memory/injector.js +185 -185
  49. package/dist/src/modules/process/memory/reader.js +50 -50
  50. package/dist/src/modules/process/memory/regions.dump.js +51 -51
  51. package/dist/src/modules/process/memory/regions.enumerate.js +107 -107
  52. package/dist/src/modules/process/memory/regions.modules.js +80 -80
  53. package/dist/src/modules/process/memory/regions.protection.js +106 -106
  54. package/dist/src/modules/process/memory/scanner.darwin.js +41 -41
  55. package/dist/src/modules/process/memory/scanner.windows.js +124 -124
  56. package/dist/src/modules/process/memory/writer.js +54 -54
  57. package/dist/src/modules/security/ExecutionSandbox.js +44 -44
  58. package/dist/src/modules/stealth/StealthScripts.d.ts +3 -2
  59. package/dist/src/modules/stealth/StealthScripts.js +35 -1
  60. package/dist/src/modules/stealth/StealthVerifier.d.ts +1 -1
  61. package/dist/src/modules/stealth/StealthVerifier.js +1 -1
  62. package/dist/src/modules/trace/TraceDB.js +63 -63
  63. package/dist/src/native/CodeInjector.js +1 -1
  64. package/dist/src/native/HardwareBreakpoint.js +1 -1
  65. package/dist/src/server/MCPServer.js +1 -0
  66. package/dist/src/server/MCPServer.search.helpers.js +1 -1
  67. package/dist/src/server/MCPServer.tools.js +1 -1
  68. package/dist/src/server/ToolCallContextGuard.d.ts +5 -0
  69. package/dist/src/server/ToolCallContextGuard.js +77 -0
  70. package/dist/src/server/ToolRouter.d.ts +1 -1
  71. package/dist/src/server/ToolRouter.js +2 -2
  72. package/dist/src/server/domains/analysis/handlers.impl.d.ts +8 -8
  73. package/dist/src/server/domains/analysis/handlers.impl.js +8 -8
  74. package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -2
  75. package/dist/src/server/domains/browser/definitions.tools.page-core.js +59 -59
  76. package/dist/src/server/domains/browser/definitions.tools.runtime.js +41 -41
  77. package/dist/src/server/domains/browser/definitions.tools.security.js +114 -114
  78. package/dist/src/server/domains/browser/handlers/facade-initializer.d.ts +3 -3
  79. package/dist/src/server/domains/browser/handlers/facade-initializer.js +3 -3
  80. package/dist/src/server/domains/browser/handlers/framework-state.js +210 -0
  81. package/dist/src/server/domains/browser/handlers/stealth-injection.js +8 -2
  82. package/dist/src/server/domains/browser/handlers.impl.d.ts +15 -11
  83. package/dist/src/server/domains/browser/handlers.impl.js +4 -4
  84. package/dist/src/server/domains/coordination/definitions.js +67 -0
  85. package/dist/src/server/domains/coordination/index.d.ts +18 -0
  86. package/dist/src/server/domains/coordination/index.js +132 -0
  87. package/dist/src/server/domains/coordination/manifest.js +15 -0
  88. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +2 -2
  89. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
  90. package/dist/src/server/domains/hooks/ai-handlers.js +3 -3
  91. package/dist/src/server/domains/maintenance/handlers.d.ts +2 -2
  92. package/dist/src/server/domains/maintenance/handlers.js +2 -2
  93. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +1 -1
  94. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +1 -1
  95. package/dist/src/server/domains/platform/handlers/miniapp-handlers.d.ts +1 -1
  96. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +1 -1
  97. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +1 -1
  98. package/dist/src/server/domains/trace/TraceSummarizer.d.ts +60 -0
  99. package/dist/src/server/domains/trace/TraceSummarizer.js +109 -0
  100. package/dist/src/server/domains/trace/definitions.tools.js +101 -71
  101. package/dist/src/server/domains/trace/handlers.d.ts +2 -1
  102. package/dist/src/server/domains/trace/handlers.js +59 -4
  103. package/dist/src/server/domains/trace/manifest.js +3 -1
  104. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +103 -103
  105. package/dist/src/server/domains/wasm/handlers.js +2 -2
  106. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
  107. package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
  108. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +51 -51
  109. package/dist/src/server/extensions/ExtensionManager.roots.js +15 -5
  110. package/dist/src/server/http/HttpMiddleware.js +1 -1
  111. package/dist/src/server/registry/contracts.d.ts +6 -0
  112. package/dist/src/server/sandbox/MCPBridge.d.ts +9 -0
  113. package/dist/src/server/sandbox/MCPBridge.js +22 -0
  114. package/dist/src/server/sandbox/QuickJSSandbox.d.ts +4 -1
  115. package/dist/src/server/sandbox/QuickJSSandbox.js +149 -0
  116. package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
  117. package/dist/src/server/sandbox/types.d.ts +13 -0
  118. package/dist/src/server/search/AffinityGraph.d.ts +7 -1
  119. package/dist/src/server/search/AffinityGraph.js +24 -3
  120. package/dist/src/services/LLMService.js +1 -1
  121. package/dist/src/utils/UnifiedCacheManager.d.ts +1 -1
  122. package/dist/src/utils/UnifiedCacheManager.js +2 -2
  123. package/dist/src/utils/cliFastPath.js +18 -4
  124. package/package.json +5 -3
  125. package/scripts/postinstall.cjs +37 -37
  126. package/src/native/scripts/linux/enum-windows.sh +12 -12
  127. package/src/native/scripts/macos/enum-windows.applescript +22 -22
  128. package/src/native/scripts/windows/enum-windows-by-class.ps1 +51 -51
  129. package/src/native/scripts/windows/enum-windows.ps1 +44 -44
  130. package/src/native/scripts/windows/inject-dll.ps1 +21 -21
@@ -1,14 +1,14 @@
1
1
  export const browserRuntimeTools = [
2
2
  {
3
3
  name: 'get_detailed_data',
4
- description: ` Retrieve detailed data using detailId token.
5
-
6
- When tools return large data, they provide a detailId instead of full data to prevent context overflow.
7
- Use this tool to retrieve the full data or specific parts.
8
-
9
- Examples:
10
- - get_detailed_data("detail_abc123") -> Get full data
11
- - get_detailed_data("detail_abc123", path="frontierSign") -> Get specific property
4
+ description: ` Retrieve detailed data using detailId token.
5
+
6
+ When tools return large data, they provide a detailId instead of full data to prevent context overflow.
7
+ Use this tool to retrieve the full data or specific parts.
8
+
9
+ Examples:
10
+ - get_detailed_data("detail_abc123") -> Get full data
11
+ - get_detailed_data("detail_abc123", path="frontierSign") -> Get specific property
12
12
  - get_detailed_data("detail_abc123", path="methods.0") -> Get first method`,
13
13
  inputSchema: {
14
14
  type: 'object',
@@ -27,18 +27,18 @@ Examples:
27
27
  },
28
28
  {
29
29
  name: 'browser_launch',
30
- description: `Launch browser instance.
31
-
32
- Drivers:
33
- - chrome (default): rebrowser-puppeteer-core, Chromium-based, full CDP support (debugger, network, stealth scripts, etc.)
34
- - camoufox: Firefox-based anti-detect browser, C++ engine-level fingerprint spoofing.
35
- Requires binaries first: npx camoufox-js fetch
36
- Note: CDP tools (debugger, network monitor, etc.) are not available in camoufox mode.
37
-
38
- Modes:
39
- - launch (default): launch a local browser instance
40
- - connect: reuse an existing browser instance
41
- - chrome: connect via browserURL (http://host:port), wsEndpoint, or Chrome 144+ autoConnect
30
+ description: `Launch browser instance.
31
+
32
+ Drivers:
33
+ - chrome (default): rebrowser-puppeteer-core, Chromium-based, full CDP support (debugger, network, stealth scripts, etc.)
34
+ - camoufox: Firefox-based anti-detect browser, C++ engine-level fingerprint spoofing.
35
+ Requires binaries first: npx camoufox-js fetch
36
+ Note: CDP tools (debugger, network monitor, etc.) are not available in camoufox mode.
37
+
38
+ Modes:
39
+ - launch (default): launch a local browser instance
40
+ - connect: reuse an existing browser instance
41
+ - chrome: connect via browserURL (http://host:port), wsEndpoint, or Chrome 144+ autoConnect
42
42
  - camoufox: connect via wsEndpoint from camoufox_server_launch`,
43
43
  inputSchema: {
44
44
  type: 'object',
@@ -94,16 +94,16 @@ Modes:
94
94
  },
95
95
  {
96
96
  name: 'camoufox_server_launch',
97
- description: `Launch a Camoufox WebSocket server for multi-process / remote connections.
98
-
99
- Use this when you need concurrent browser instances or want to manage the browser lifecycle separately from the automation client.
100
-
101
- Steps:
102
- 1. Call camoufox_server_launch → get wsEndpoint
103
- 2. Call browser_launch(driver="camoufox", mode="connect", wsEndpoint=<endpoint>) from one or more sessions
104
- 3. Use page_navigate and other tools normally
105
- 4. Call camoufox_server_close when done
106
-
97
+ description: `Launch a Camoufox WebSocket server for multi-process / remote connections.
98
+
99
+ Use this when you need concurrent browser instances or want to manage the browser lifecycle separately from the automation client.
100
+
101
+ Steps:
102
+ 1. Call camoufox_server_launch → get wsEndpoint
103
+ 2. Call browser_launch(driver="camoufox", mode="connect", wsEndpoint=<endpoint>) from one or more sessions
104
+ 3. Use page_navigate and other tools normally
105
+ 4. Call camoufox_server_close when done
106
+
107
107
  Requires binaries: npx camoufox-js fetch`,
108
108
  inputSchema: {
109
109
  type: 'object',
@@ -148,17 +148,17 @@ Requires binaries: npx camoufox-js fetch`,
148
148
  },
149
149
  {
150
150
  name: 'browser_attach',
151
- description: `Attach to an existing browser instance via Chrome DevTools Protocol (CDP).
152
-
153
- Use this when a browser is already running with remote debugging enabled.
154
- Supports browserURL (http://host:port), WebSocket endpoint (ws://...), and Chrome 144+ autoConnect.
155
-
156
- Example:
157
- - browser_attach(browserURL="http://127.0.0.1:9222")
158
- - browser_attach(wsEndpoint="ws://127.0.0.1:9222/devtools/browser/xxx")
159
- - browser_attach(autoConnect=true, channel="stable")
160
- - browser_attach(browserURL="http://127.0.0.1:9222", pageIndex=0)
161
-
151
+ description: `Attach to an existing browser instance via Chrome DevTools Protocol (CDP).
152
+
153
+ Use this when a browser is already running with remote debugging enabled.
154
+ Supports browserURL (http://host:port), WebSocket endpoint (ws://...), and Chrome 144+ autoConnect.
155
+
156
+ Example:
157
+ - browser_attach(browserURL="http://127.0.0.1:9222")
158
+ - browser_attach(wsEndpoint="ws://127.0.0.1:9222/devtools/browser/xxx")
159
+ - browser_attach(autoConnect=true, channel="stable")
160
+ - browser_attach(browserURL="http://127.0.0.1:9222", pageIndex=0)
161
+
162
162
  After attaching, use page_navigate / page_screenshot / debugger_enable normally.`,
163
163
  inputSchema: {
164
164
  type: 'object',
@@ -1,32 +1,32 @@
1
1
  export const browserSecurityStateTools = [
2
2
  {
3
3
  name: 'captcha_detect',
4
- description: `Detect CAPTCHA on the current page using AI vision analysis.
5
-
6
- Detection process:
7
- 1. Takes a screenshot and analyzes it with AI (Vision LLM)
8
- 2. Applies rule-based detection as fallback if AI unavailable
9
- 3. Returns detection result with confidence score
10
-
11
- Supported CAPTCHA types:
12
- - Slider CAPTCHA: drag-to-verify style challenges
13
- - Image CAPTCHA: select-images challenges
14
- - Widget CAPTCHA: embedded checkbox or iframe-based challenges
15
- - Browser Check: interstitial or automatic integrity checks
16
- - Custom CAPTCHA implementations
17
-
18
- Response fields:
19
- - detected: whether CAPTCHA was found
20
- - type: CAPTCHA type identifier
21
- - providerHint: broad provider category if identified
22
- - confidence: detection confidence (0-100)
23
- - reasoning: AI analysis explanation
24
- - screenshotPath: saved screenshot path when a vision-capable model is unavailable
25
- - suggestions: recommended next steps
26
-
27
- Note:
28
- When the configured MCP model cannot access vision directly, the detector saves a screenshot
29
- to disk and returns screenshotPath together with prompt guidance in the reasoning field.
4
+ description: `Detect CAPTCHA on the current page using AI vision analysis.
5
+
6
+ Detection process:
7
+ 1. Takes a screenshot and analyzes it with AI (Vision LLM)
8
+ 2. Applies rule-based detection as fallback if AI unavailable
9
+ 3. Returns detection result with confidence score
10
+
11
+ Supported CAPTCHA types:
12
+ - Slider CAPTCHA: drag-to-verify style challenges
13
+ - Image CAPTCHA: select-images challenges
14
+ - Widget CAPTCHA: embedded checkbox or iframe-based challenges
15
+ - Browser Check: interstitial or automatic integrity checks
16
+ - Custom CAPTCHA implementations
17
+
18
+ Response fields:
19
+ - detected: whether CAPTCHA was found
20
+ - type: CAPTCHA type identifier
21
+ - providerHint: broad provider category if identified
22
+ - confidence: detection confidence (0-100)
23
+ - reasoning: AI analysis explanation
24
+ - screenshotPath: saved screenshot path when a vision-capable model is unavailable
25
+ - suggestions: recommended next steps
26
+
27
+ Note:
28
+ When the configured MCP model cannot access vision directly, the detector saves a screenshot
29
+ to disk and returns screenshotPath together with prompt guidance in the reasoning field.
30
30
  Use an external AI (GPT-4o, Claude 3) to analyze the saved screenshot if needed.`,
31
31
  inputSchema: {
32
32
  type: 'object',
@@ -35,16 +35,16 @@ Use an external AI (GPT-4o, Claude 3) to analyze the saved screenshot if needed.
35
35
  },
36
36
  {
37
37
  name: 'captcha_wait',
38
- description: `Wait for the user to manually solve a CAPTCHA.
39
-
40
- Steps:
41
- 1. CAPTCHA is detected on the page
42
- 2. This tool polls the current page until the CAPTCHA is no longer detected
43
- 3. User solves the CAPTCHA manually in the active browser/page
44
- 4. Script resumes automatically after detection
45
-
46
- Note: this tool does not switch browser modes on its own.
47
-
38
+ description: `Wait for the user to manually solve a CAPTCHA.
39
+
40
+ Steps:
41
+ 1. CAPTCHA is detected on the page
42
+ 2. This tool polls the current page until the CAPTCHA is no longer detected
43
+ 3. User solves the CAPTCHA manually in the active browser/page
44
+ 4. Script resumes automatically after detection
45
+
46
+ Note: this tool does not switch browser modes on its own.
47
+
48
48
  Timeout: default 300000ms (5 minutes)`,
49
49
  inputSchema: {
50
50
  type: 'object',
@@ -59,11 +59,11 @@ Timeout: default 300000ms (5 minutes)`,
59
59
  },
60
60
  {
61
61
  name: 'captcha_config',
62
- description: `Configure CAPTCHA detection behavior.
63
-
64
- Parameters:
65
- - autoDetectCaptcha: enable CAPTCHA auto-handling for browser-mode integrations that use these settings
66
- - autoSwitchHeadless: allow supported integrations to switch to headed mode when CAPTCHA is detected
62
+ description: `Configure CAPTCHA detection behavior.
63
+
64
+ Parameters:
65
+ - autoDetectCaptcha: enable CAPTCHA auto-handling for browser-mode integrations that use these settings
66
+ - autoSwitchHeadless: allow supported integrations to switch to headed mode when CAPTCHA is detected
67
67
  - captchaTimeout: timeout for waiting user to solve CAPTCHA in ms (default: 300000)`,
68
68
  inputSchema: {
69
69
  type: 'object',
@@ -85,21 +85,21 @@ Parameters:
85
85
  },
86
86
  {
87
87
  name: 'stealth_inject',
88
- description: `Inject modern stealth scripts to bypass bot detection.
89
-
90
- Anti-detection patches:
91
- 1. Hide navigator.webdriver flag
92
- 2. Inject window.chrome object
93
- 3. Restore navigator.plugins
94
- 4. Fix Permissions API behavior
95
- 5. Patch Canvas fingerprinting
96
- 6. Patch WebGL fingerprinting
97
- 7. Restore hardware concurrency
98
- 8. Fix Battery API responses
99
- 9. Fix MediaDevices enumeration
100
- 10. Fix Notification API
101
-
102
- Compatible with undetected-chromedriver, puppeteer-extra-plugin-stealth, playwright-stealth.
88
+ description: `Inject modern stealth scripts to bypass bot detection.
89
+
90
+ Anti-detection patches:
91
+ 1. Hide navigator.webdriver flag
92
+ 2. Inject window.chrome object
93
+ 3. Restore navigator.plugins
94
+ 4. Fix Permissions API behavior
95
+ 5. Patch Canvas fingerprinting
96
+ 6. Patch WebGL fingerprinting
97
+ 7. Restore hardware concurrency
98
+ 8. Fix Battery API responses
99
+ 9. Fix MediaDevices enumeration
100
+ 10. Fix Notification API
101
+
102
+ Compatible with undetected-chromedriver, puppeteer-extra-plugin-stealth, playwright-stealth.
103
103
  Call after browser_launch for best results.`,
104
104
  inputSchema: {
105
105
  type: 'object',
@@ -108,12 +108,12 @@ Call after browser_launch for best results.`,
108
108
  },
109
109
  {
110
110
  name: 'stealth_set_user_agent',
111
- description: `Set a realistic User-Agent and browser fingerprint for the target platform.
112
-
113
- Updates navigator.userAgent, navigator.platform, navigator.vendor,
114
- navigator.hardwareConcurrency, and navigator.deviceMemory consistently
115
- to avoid fingerprint inconsistencies.
116
-
111
+ description: `Set a realistic User-Agent and browser fingerprint for the target platform.
112
+
113
+ Updates navigator.userAgent, navigator.platform, navigator.vendor,
114
+ navigator.hardwareConcurrency, and navigator.deviceMemory consistently
115
+ to avoid fingerprint inconsistencies.
116
+
117
117
  UA strings are updated to Chrome 131 with platform-appropriate hardware profiles.`,
118
118
  inputSchema: {
119
119
  type: 'object',
@@ -129,15 +129,15 @@ UA strings are updated to Chrome 131 with platform-appropriate hardware profiles
129
129
  },
130
130
  {
131
131
  name: 'stealth_configure_jitter',
132
- description: `Configure CDP command timing jitter to mimic natural network latency.
133
-
134
- Jitter adds random delays to CDP commands to prevent timing-based bot detection.
135
- Default: 20-80ms uniform random delay on all CDP send() calls.
136
-
137
- Parameters:
138
- - enabled: turn jitter on/off
139
- - minDelayMs: minimum delay in milliseconds
140
- - maxDelayMs: maximum delay in milliseconds
132
+ description: `Configure CDP command timing jitter to mimic natural network latency.
133
+
134
+ Jitter adds random delays to CDP commands to prevent timing-based bot detection.
135
+ Default: 20-80ms uniform random delay on all CDP send() calls.
136
+
137
+ Parameters:
138
+ - enabled: turn jitter on/off
139
+ - minDelayMs: minimum delay in milliseconds
140
+ - maxDelayMs: maximum delay in milliseconds
141
141
  - burstMode: skip jitter for time-critical operations (debugging, breakpoints)`,
142
142
  inputSchema: {
143
143
  type: 'object',
@@ -167,12 +167,12 @@ Parameters:
167
167
  },
168
168
  {
169
169
  name: 'stealth_generate_fingerprint',
170
- description: `Generate a realistic browser fingerprint using real-world datasets.
171
-
172
- Requires fingerprint-generator and fingerprint-injector packages (optional dependencies).
173
- The generated fingerprint is cached per session and auto-applied on next stealth_inject.
174
-
175
- Covers: screen resolution, WebGL params, fonts, codecs, AudioContext, navigator properties.
170
+ description: `Generate a realistic browser fingerprint using real-world datasets.
171
+
172
+ Requires fingerprint-generator and fingerprint-injector packages (optional dependencies).
173
+ The generated fingerprint is cached per session and auto-applied on next stealth_inject.
174
+
175
+ Covers: screen resolution, WebGL params, fonts, codecs, AudioContext, navigator properties.
176
176
  Falls back to built-in StealthScripts patches if packages are not installed.`,
177
177
  inputSchema: {
178
178
  type: 'object',
@@ -198,21 +198,21 @@ Falls back to built-in StealthScripts patches if packages are not installed.`,
198
198
  },
199
199
  {
200
200
  name: 'stealth_verify',
201
- description: `Run offline anti-detection checks on the current page.
202
-
203
- Verifies that stealth patches are working correctly by checking:
204
- - navigator.webdriver absence
205
- - window.chrome object structure
206
- - navigator.plugins list
207
- - UA/platform consistency
208
- - WebGL vendor/renderer
209
- - Canvas noise injection
210
- - cdc_ variable cleanup
211
- - Hardware profile consistency
212
-
213
- Returns a structured report with pass/fail for each check, an overall score (0-100),
214
- and recommendations for improving detection evasion.
215
-
201
+ description: `Run offline anti-detection checks on the current page.
202
+
203
+ Verifies that stealth patches are working correctly by checking:
204
+ - navigator.webdriver absence
205
+ - window.chrome object structure
206
+ - navigator.plugins list
207
+ - UA/platform consistency
208
+ - WebGL vendor/renderer
209
+ - Canvas noise injection
210
+ - cdc_ variable cleanup
211
+ - Hardware profile consistency
212
+
213
+ Returns a structured report with pass/fail for each check, an overall score (0-100),
214
+ and recommendations for improving detection evasion.
215
+
216
216
  Best used after stealth_inject to verify patches are effective.`,
217
217
  inputSchema: {
218
218
  type: 'object',
@@ -221,18 +221,18 @@ Best used after stealth_inject to verify patches are effective.`,
221
221
  },
222
222
  {
223
223
  name: 'browser_list_tabs',
224
- description: `List all open tabs/pages in the connected browser.
225
-
226
- Use this after browser_attach to see all available pages/tabs.
227
- Returns index, URL, and title for each tab.
228
-
229
- Workflow:
230
- 1. browser_attach(browserURL="http://127.0.0.1:9222") or browser_attach(autoConnect=true)
231
- 2. browser_list_tabs() -> see all tabs with their indexes
232
- 3. browser_select_tab(index=N) -> switch to desired tab
233
-
234
- Can also connect and list in one call:
235
- browser_list_tabs(browserURL="http://127.0.0.1:9222")
224
+ description: `List all open tabs/pages in the connected browser.
225
+
226
+ Use this after browser_attach to see all available pages/tabs.
227
+ Returns index, URL, and title for each tab.
228
+
229
+ Workflow:
230
+ 1. browser_attach(browserURL="http://127.0.0.1:9222") or browser_attach(autoConnect=true)
231
+ 2. browser_list_tabs() -> see all tabs with their indexes
232
+ 3. browser_select_tab(index=N) -> switch to desired tab
233
+
234
+ Can also connect and list in one call:
235
+ browser_list_tabs(browserURL="http://127.0.0.1:9222")
236
236
  browser_list_tabs(autoConnect=true, channel="stable")`,
237
237
  inputSchema: {
238
238
  type: 'object',
@@ -265,14 +265,14 @@ browser_list_tabs(autoConnect=true, channel="stable")`,
265
265
  },
266
266
  {
267
267
  name: 'browser_select_tab',
268
- description: `Switch the active tab/page by index or URL/title pattern.
269
-
270
- After browser_list_tabs, use this to activate a specific tab.
271
- All subsequent page_* tools will operate on the selected tab.
272
-
273
- Examples:
274
- - browser_select_tab(index=0) -> first tab
275
- - browser_select_tab(urlPattern="qwen") -> tab whose URL contains "qwen"
268
+ description: `Switch the active tab/page by index or URL/title pattern.
269
+
270
+ After browser_list_tabs, use this to activate a specific tab.
271
+ All subsequent page_* tools will operate on the selected tab.
272
+
273
+ Examples:
274
+ - browser_select_tab(index=0) -> first tab
275
+ - browser_select_tab(urlPattern="qwen") -> tab whose URL contains "qwen"
276
276
  - browser_select_tab(titlePattern="Mini Program") -> tab whose title contains "Mini Program"`,
277
277
  inputSchema: {
278
278
  type: 'object',
@@ -294,14 +294,14 @@ Examples:
294
294
  },
295
295
  {
296
296
  name: 'framework_state_extract',
297
- description: 'Extract React/Vue component state from the live page. Useful for debugging frontend applications and finding hidden state.',
297
+ description: 'Extract component state from the live page. Supports React, Vue 2/3, Svelte 3/4/5, Solid.js, and Preact. Also detects Next.js/Nuxt meta-framework metadata (routes, build info, payload). Useful for debugging frontend applications, reverse-engineering SPA state, and finding hidden data.',
298
298
  inputSchema: {
299
299
  type: 'object',
300
300
  properties: {
301
301
  framework: {
302
302
  type: 'string',
303
303
  description: 'Framework to target. auto = detect automatically.',
304
- enum: ['auto', 'react', 'vue2', 'vue3'],
304
+ enum: ['auto', 'react', 'vue2', 'vue3', 'svelte', 'solid', 'preact'],
305
305
  default: 'auto',
306
306
  },
307
307
  selector: {
@@ -3,9 +3,9 @@ import type { PageController } from '../../../domains/shared/modules.js';
3
3
  import type { DOMInspector } from '../../../domains/shared/modules.js';
4
4
  import type { ScriptManager } from '../../../domains/shared/modules.js';
5
5
  import type { ConsoleMonitor } from '../../../domains/shared/modules.js';
6
- import { AICaptchaDetector } from '../../../domains/shared/modules.js';
7
- import { DetailedDataManager } from '../../../../utils/DetailedDataManager.js';
8
- import { CamoufoxBrowserManager } from '../../../domains/shared/modules.js';
6
+ import { type AICaptchaDetector } from '../../../domains/shared/modules.js';
7
+ import { type DetailedDataManager } from '../../../../utils/DetailedDataManager.js';
8
+ import { type CamoufoxBrowserManager } from '../../../domains/shared/modules.js';
9
9
  import { BrowserControlHandlers } from '../../../domains/browser/handlers/browser-control.js';
10
10
  import { CamoufoxBrowserHandlers } from '../../../domains/browser/handlers/camoufox-browser.js';
11
11
  import { PageNavigationHandlers } from '../../../domains/browser/handlers/page-navigation.js';
@@ -1,6 +1,6 @@
1
- import { AICaptchaDetector } from '../../../domains/shared/modules.js';
2
- import { DetailedDataManager } from '../../../../utils/DetailedDataManager.js';
3
- import { CamoufoxBrowserManager } from '../../../domains/shared/modules.js';
1
+ import {} from '../../../domains/shared/modules.js';
2
+ import {} from '../../../../utils/DetailedDataManager.js';
3
+ import {} from '../../../domains/shared/modules.js';
4
4
  import { BrowserControlHandlers } from '../../../domains/browser/handlers/browser-control.js';
5
5
  import { CamoufoxBrowserHandlers } from '../../../domains/browser/handlers/camoufox-browser.js';
6
6
  import { PageNavigationHandlers } from '../../../domains/browser/handlers/page-navigation.js';