@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.
- package/LICENSE +661 -661
- package/README.md +4 -4
- package/README.zh.md +3 -3
- package/dist/native/scripts/linux/enum-windows.sh +12 -12
- package/dist/native/scripts/macos/enum-windows.applescript +22 -22
- package/dist/native/scripts/windows/enum-windows-by-class.ps1 +51 -51
- package/dist/native/scripts/windows/enum-windows.ps1 +44 -44
- package/dist/native/scripts/windows/inject-dll.ps1 +21 -21
- package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -1
- package/dist/src/modules/analyzer/CodeAnalyzer.js +1 -1
- package/dist/src/modules/browser/BrowserDiscovery.d.ts +6 -5
- package/dist/src/modules/browser/BrowserDiscovery.js +1 -1
- package/dist/src/modules/browser/BrowserModeManager.d.ts +1 -1
- package/dist/src/modules/browser/BrowserModeManager.js +1 -1
- package/dist/src/modules/browser/UnifiedBrowserManager.js +1 -1
- package/dist/src/modules/captcha/AICaptchaDetector.d.ts +22 -22
- package/dist/src/modules/captcha/AICaptchaDetector.js +75 -75
- package/dist/src/modules/captcha/CaptchaDetector.d.ts +31 -17
- package/dist/src/modules/captcha/CaptchaDetector.js +1 -1
- package/dist/src/modules/collector/CodeCache.d.ts +2 -2
- package/dist/src/modules/collector/CodeCollector.d.ts +12 -9
- package/dist/src/modules/collector/CodeCollector.js +1 -1
- package/dist/src/modules/collector/DOMInspector.d.ts +3 -2
- package/dist/src/modules/collector/DOMInspector.js +1 -1
- package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -1
- package/dist/src/modules/crypto/CryptoDetector.js +1 -1
- package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +1 -1
- package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -1
- package/dist/src/modules/deobfuscator/Deobfuscator.js +1 -1
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -1
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +2 -2
- package/dist/src/modules/deobfuscator/PackerDeobfuscator.js +1 -1
- package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +1 -1
- package/dist/src/modules/deobfuscator/VMDeobfuscator.js +82 -82
- package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +1 -1
- package/dist/src/modules/external/ExternalToolRunner.d.ts +1 -1
- package/dist/src/modules/external/ExternalToolRunner.js +1 -1
- package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
- package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
- package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
- package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
- package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
- package/dist/src/modules/process/LinuxProcessManager.js +2 -2
- package/dist/src/modules/process/MacProcessManager.js +26 -26
- package/dist/src/modules/process/ProcessManager.impl.js +1 -1
- package/dist/src/modules/process/memory/availability.js +49 -49
- package/dist/src/modules/process/memory/injector.js +185 -185
- package/dist/src/modules/process/memory/reader.js +50 -50
- package/dist/src/modules/process/memory/regions.dump.js +51 -51
- package/dist/src/modules/process/memory/regions.enumerate.js +107 -107
- package/dist/src/modules/process/memory/regions.modules.js +80 -80
- package/dist/src/modules/process/memory/regions.protection.js +106 -106
- package/dist/src/modules/process/memory/scanner.darwin.js +41 -41
- package/dist/src/modules/process/memory/scanner.windows.js +124 -124
- package/dist/src/modules/process/memory/writer.js +54 -54
- package/dist/src/modules/security/ExecutionSandbox.js +44 -44
- package/dist/src/modules/stealth/StealthScripts.d.ts +3 -2
- package/dist/src/modules/stealth/StealthScripts.js +35 -1
- package/dist/src/modules/stealth/StealthVerifier.d.ts +1 -1
- package/dist/src/modules/stealth/StealthVerifier.js +1 -1
- package/dist/src/modules/trace/TraceDB.js +63 -63
- package/dist/src/native/CodeInjector.js +1 -1
- package/dist/src/native/HardwareBreakpoint.js +1 -1
- package/dist/src/server/MCPServer.js +1 -0
- package/dist/src/server/MCPServer.search.helpers.js +1 -1
- package/dist/src/server/MCPServer.tools.js +1 -1
- package/dist/src/server/ToolCallContextGuard.d.ts +5 -0
- package/dist/src/server/ToolCallContextGuard.js +77 -0
- package/dist/src/server/ToolRouter.d.ts +1 -1
- package/dist/src/server/ToolRouter.js +2 -2
- package/dist/src/server/domains/analysis/handlers.impl.d.ts +8 -8
- package/dist/src/server/domains/analysis/handlers.impl.js +8 -8
- package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -2
- package/dist/src/server/domains/browser/definitions.tools.page-core.js +59 -59
- package/dist/src/server/domains/browser/definitions.tools.runtime.js +41 -41
- package/dist/src/server/domains/browser/definitions.tools.security.js +114 -114
- package/dist/src/server/domains/browser/handlers/facade-initializer.d.ts +3 -3
- package/dist/src/server/domains/browser/handlers/facade-initializer.js +3 -3
- package/dist/src/server/domains/browser/handlers/framework-state.js +210 -0
- package/dist/src/server/domains/browser/handlers/stealth-injection.js +8 -2
- package/dist/src/server/domains/browser/handlers.impl.d.ts +15 -11
- package/dist/src/server/domains/browser/handlers.impl.js +4 -4
- package/dist/src/server/domains/coordination/definitions.js +67 -0
- package/dist/src/server/domains/coordination/index.d.ts +18 -0
- package/dist/src/server/domains/coordination/index.js +132 -0
- package/dist/src/server/domains/coordination/manifest.js +15 -0
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +2 -2
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
- package/dist/src/server/domains/hooks/ai-handlers.js +3 -3
- package/dist/src/server/domains/maintenance/handlers.d.ts +2 -2
- package/dist/src/server/domains/maintenance/handlers.js +2 -2
- package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +1 -1
- package/dist/src/server/domains/platform/handlers/bridge-handlers.js +1 -1
- package/dist/src/server/domains/platform/handlers/miniapp-handlers.d.ts +1 -1
- package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +1 -1
- package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +1 -1
- package/dist/src/server/domains/trace/TraceSummarizer.d.ts +60 -0
- package/dist/src/server/domains/trace/TraceSummarizer.js +109 -0
- package/dist/src/server/domains/trace/definitions.tools.js +101 -71
- package/dist/src/server/domains/trace/handlers.d.ts +2 -1
- package/dist/src/server/domains/trace/handlers.js +59 -4
- package/dist/src/server/domains/trace/manifest.js +3 -1
- package/dist/src/server/domains/transform/handlers.impl.transform-base.js +103 -103
- package/dist/src/server/domains/wasm/handlers.js +2 -2
- package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
- package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
- package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +51 -51
- package/dist/src/server/extensions/ExtensionManager.roots.js +15 -5
- package/dist/src/server/http/HttpMiddleware.js +1 -1
- package/dist/src/server/registry/contracts.d.ts +6 -0
- package/dist/src/server/sandbox/MCPBridge.d.ts +9 -0
- package/dist/src/server/sandbox/MCPBridge.js +22 -0
- package/dist/src/server/sandbox/QuickJSSandbox.d.ts +4 -1
- package/dist/src/server/sandbox/QuickJSSandbox.js +149 -0
- package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
- package/dist/src/server/sandbox/types.d.ts +13 -0
- package/dist/src/server/search/AffinityGraph.d.ts +7 -1
- package/dist/src/server/search/AffinityGraph.js +24 -3
- package/dist/src/services/LLMService.js +1 -1
- package/dist/src/utils/UnifiedCacheManager.d.ts +1 -1
- package/dist/src/utils/UnifiedCacheManager.js +2 -2
- package/dist/src/utils/cliFastPath.js +18 -4
- package/package.json +5 -3
- package/scripts/postinstall.cjs +37 -37
- package/src/native/scripts/linux/enum-windows.sh +12 -12
- package/src/native/scripts/macos/enum-windows.applescript +22 -22
- package/src/native/scripts/windows/enum-windows-by-class.ps1 +51 -51
- package/src/native/scripts/windows/enum-windows.ps1 +44 -44
- 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
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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';
|