@jshookmcp/jshook 0.2.3 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -5
- package/README.zh.md +18 -3
- package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
- package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
- package/dist/packages/extension-sdk/src/plugin.js +119 -33
- package/dist/packages/extension-sdk/src/workflow.d.ts +156 -0
- package/dist/packages/extension-sdk/src/workflow.js +236 -0
- package/dist/src/config/search-defaults.js +161 -0
- package/dist/src/constants.d.ts +3 -0
- package/dist/src/constants.js +4 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +13 -17
- package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
- package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
- package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
- package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
- package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
- package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
- package/dist/src/modules/analyzer/PatternDetector.js +3 -3
- package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
- package/dist/src/modules/browser/BrowserDiscovery.js +2 -2
- package/dist/src/modules/browser/BrowserModeManager.js +11 -10
- package/dist/src/modules/browser/TabRegistry.js +2 -2
- package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
- package/dist/src/modules/browser/UnifiedBrowserManager.js +18 -3
- package/dist/src/modules/captcha/AICaptchaDetector.d.ts +1 -10
- package/dist/src/modules/captcha/AICaptchaDetector.js +7 -201
- package/dist/src/modules/collector/CodeCollector.js +4 -5
- package/dist/src/modules/collector/DOMInspector.js +48 -58
- package/dist/src/modules/collector/PageController.d.ts +17 -4
- package/dist/src/modules/collector/PageController.js +2 -5
- package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
- package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
- package/dist/src/modules/crypto/CryptoDetector.js +2 -42
- package/dist/src/modules/crypto/CryptoRules.js +1 -1
- package/dist/src/modules/debugger/BlackboxManager.js +1 -1
- package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
- package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +4 -2
- package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
- package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
- package/dist/src/modules/deobfuscator/Deobfuscator.js +4 -39
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -2
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +3 -55
- package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
- package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
- package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
- package/dist/src/modules/deobfuscator/webcrack.js +15 -2
- package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
- package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
- package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
- package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
- package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
- package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
- package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
- package/dist/src/modules/external/ExternalToolRunner.js +25 -22
- 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.class.d.ts +13 -0
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
- package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
- package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
- package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
- package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
- package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
- package/dist/src/modules/process/LinuxProcessManager.js +2 -0
- package/dist/src/modules/process/MacProcessManager.js +25 -25
- package/dist/src/modules/process/MemoryManager.d.ts +1 -1
- package/dist/src/modules/process/MemoryManager.js +2 -2
- package/dist/src/modules/process/memory/AuditTrail.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 +85 -53
- package/dist/src/modules/process/memory/regions.dump.js +51 -51
- package/dist/src/modules/process/memory/regions.enumerate.js +108 -108
- package/dist/src/modules/process/memory/regions.modules.js +80 -80
- package/dist/src/modules/process/memory/regions.protection.js +148 -115
- package/dist/src/modules/process/memory/scanner.d.ts +5 -1
- package/dist/src/modules/process/memory/scanner.darwin.js +98 -41
- package/dist/src/modules/process/memory/scanner.js +88 -4
- package/dist/src/modules/process/memory/scanner.windows.js +124 -124
- package/dist/src/modules/process/memory/writer.js +98 -58
- package/dist/src/modules/security/ExecutionSandbox.js +51 -52
- package/dist/src/modules/stealth/FingerprintManager.js +1 -1
- package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
- package/dist/src/modules/stealth/StealthScripts.js +18 -13
- package/dist/src/modules/stealth/StealthVerifier.js +1 -3
- package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
- package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
- package/dist/src/modules/trace/TraceDB.js +75 -69
- package/dist/src/modules/trace/TraceRecorder.js +1 -5
- package/dist/src/native/AntiCheatDetector.js +67 -16
- package/dist/src/native/CodeInjector.js +3 -3
- package/dist/src/native/HardwareBreakpoint.js +24 -15
- package/dist/src/native/HeapAnalyzer.js +2 -2
- package/dist/src/native/MemoryController.js +1 -1
- package/dist/src/native/MemoryScanSession.js +2 -2
- package/dist/src/native/MemoryScanner.js +4 -8
- package/dist/src/native/NativeMemoryManager.impl.js +2 -2
- package/dist/src/native/PEAnalyzer.js +14 -15
- package/dist/src/native/PointerChainEngine.js +2 -4
- package/dist/src/native/ScriptLoader.js +4 -9
- package/dist/src/native/Speedhack.js +1 -1
- package/dist/src/native/StructureAnalyzer.js +52 -33
- package/dist/src/native/Win32API.d.ts +1 -0
- package/dist/src/native/Win32API.js +13 -0
- package/dist/src/native/Win32Debug.js +19 -19
- package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
- package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
- package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
- package/dist/src/server/MCPServer.context.d.ts +2 -1
- package/dist/src/server/MCPServer.d.ts +2 -1
- package/dist/src/server/MCPServer.domain.d.ts +1 -1
- package/dist/src/server/MCPServer.domain.js +81 -16
- package/dist/src/server/MCPServer.js +41 -14
- package/dist/src/server/MCPServer.resources.d.ts +2 -0
- package/dist/src/server/MCPServer.resources.js +91 -0
- package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
- package/dist/src/server/MCPServer.search.helpers.js +1 -1
- package/dist/src/server/MCPServer.transport.js +12 -0
- package/dist/src/server/ToolCallContextGuard.js +8 -0
- package/dist/src/server/ToolRouter.d.ts +25 -9
- package/dist/src/server/ToolRouter.intent.d.ts +26 -0
- package/dist/src/server/ToolRouter.intent.js +77 -0
- package/dist/src/server/ToolRouter.js +103 -284
- package/dist/src/server/ToolRouter.policy.d.ts +22 -0
- package/dist/src/server/ToolRouter.policy.js +163 -0
- package/dist/src/server/ToolRouter.probe.d.ts +17 -0
- package/dist/src/server/ToolRouter.probe.js +103 -0
- package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
- package/dist/src/server/ToolRouter.renderer.js +52 -0
- package/dist/src/server/activation/ActivationController.js +15 -12
- package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
- package/dist/src/server/activation/PredictiveBooster.js +1 -3
- package/dist/src/server/domains/analysis/definitions.js +155 -655
- package/dist/src/server/domains/analysis/handlers.impl.js +26 -20
- package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -1
- package/dist/src/server/domains/analysis/manifest.js +6 -4
- package/dist/src/server/domains/antidebug/definitions.js +25 -111
- package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
- package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
- package/dist/src/server/domains/browser/definitions.tools.page-core.js +210 -439
- package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
- package/dist/src/server/domains/browser/definitions.tools.runtime.js +98 -211
- package/dist/src/server/domains/browser/definitions.tools.security.js +194 -339
- package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
- package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
- package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
- package/dist/src/server/domains/browser/handlers/framework-state.js +27 -9
- package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
- package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
- package/dist/src/server/domains/browser/handlers.impl.d.ts +1 -2
- package/dist/src/server/domains/browser/handlers.impl.js +2 -3
- package/dist/src/server/domains/browser/manifest.js +37 -13
- package/dist/src/server/domains/coordination/definitions.js +50 -216
- package/dist/src/server/domains/coordination/index.d.ts +2 -1
- package/dist/src/server/domains/coordination/index.js +1 -0
- package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
- package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
- package/dist/src/server/domains/debugger/manifest.js +9 -2
- package/dist/src/server/domains/encoding/definitions.js +43 -153
- package/dist/src/server/domains/encoding/handlers.base.js +2 -2
- package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
- package/dist/src/server/domains/evidence/definitions.js +42 -0
- package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
- package/dist/src/server/domains/evidence/handlers.js +60 -0
- package/dist/src/server/domains/evidence/index.d.ts +2 -0
- package/dist/src/server/domains/evidence/index.js +2 -0
- package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
- package/dist/src/server/domains/evidence/manifest.js +78 -0
- package/dist/src/server/domains/graphql/definitions.js +53 -141
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
- package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
- package/dist/src/server/domains/hooks/ai-handlers.js +1 -67
- package/dist/src/server/domains/hooks/definitions.js +69 -335
- package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
- package/dist/src/server/domains/hooks/manifest.js +1 -2
- package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
- package/dist/src/server/domains/instrumentation/definitions.js +99 -0
- package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
- package/dist/src/server/domains/instrumentation/handlers.js +206 -0
- package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
- package/dist/src/server/domains/instrumentation/index.js +2 -0
- package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
- package/dist/src/server/domains/instrumentation/manifest.js +114 -0
- package/dist/src/server/domains/macro/definitions.js +16 -43
- package/dist/src/server/domains/maintenance/definitions.js +60 -219
- package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
- package/dist/src/server/domains/memory/definitions.js +387 -559
- package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
- package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
- package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
- package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
- package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
- package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
- package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
- package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
- package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
- package/dist/src/server/domains/memory/handlers/scan.js +97 -0
- package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
- package/dist/src/server/domains/memory/handlers/session.js +49 -0
- package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
- package/dist/src/server/domains/memory/handlers/structure.js +74 -0
- package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
- package/dist/src/server/domains/memory/handlers.impl.js +63 -494
- package/dist/src/server/domains/memory/manifest.js +236 -64
- package/dist/src/server/domains/native-bridge/definitions.js +54 -192
- package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
- package/dist/src/server/domains/native-bridge/index.js +2 -1
- package/dist/src/server/domains/network/auth-extractor.js +1 -1
- package/dist/src/server/domains/network/definitions.js +175 -578
- package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
- package/dist/src/server/domains/network/handlers.base.core.js +623 -0
- package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
- package/dist/src/server/domains/network/handlers.base.js +3 -878
- package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
- package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
- package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
- package/dist/src/server/domains/network/handlers.base.types.js +89 -0
- package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
- package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
- package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
- package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
- package/dist/src/server/domains/network/manifest.js +15 -0
- package/dist/src/server/domains/network/replay.js +1 -4
- package/dist/src/server/domains/platform/definitions.js +121 -112
- package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +4 -0
- package/dist/src/server/domains/platform/handlers/bridge-handlers.js +193 -4
- package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
- package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
- package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
- package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
- package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
- package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
- package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
- package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
- package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
- package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
- package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
- package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +3 -3
- package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
- package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
- package/dist/src/server/domains/platform/handlers.d.ts +48 -0
- package/dist/src/server/domains/platform/handlers.js +29 -0
- package/dist/src/server/domains/platform/manifest.js +38 -0
- package/dist/src/server/domains/process/definitions.js +163 -647
- package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
- package/dist/src/server/domains/process/handlers.base.js +7 -462
- package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
- package/dist/src/server/domains/process/handlers.base.process.js +417 -0
- package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
- package/dist/src/server/domains/process/handlers.base.types.js +50 -0
- package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +18 -16
- package/dist/src/server/domains/process/manifest.js +6 -1
- package/dist/src/server/domains/sandbox/definitions.js +11 -33
- package/dist/src/server/domains/sandbox/handlers.js +8 -3
- package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
- package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
- package/dist/src/server/domains/shared/modules.d.ts +0 -2
- package/dist/src/server/domains/shared/modules.js +0 -1
- package/dist/src/server/domains/sourcemap/definitions.js +27 -111
- package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
- package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
- package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
- package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
- package/dist/src/server/domains/sourcemap/manifest.js +1 -1
- package/dist/src/server/domains/streaming/definitions.js +36 -148
- package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
- package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
- package/dist/src/server/domains/trace/TraceSummarizer.js +8 -5
- package/dist/src/server/domains/trace/definitions.tools.js +51 -206
- package/dist/src/server/domains/trace/handlers.js +10 -12
- package/dist/src/server/domains/trace/index.d.ts +2 -1
- package/dist/src/server/domains/trace/index.js +2 -1
- package/dist/src/server/domains/trace/manifest.js +15 -3
- package/dist/src/server/domains/transform/definitions.js +50 -210
- package/dist/src/server/domains/transform/handlers.impl.transform-base.js +108 -108
- package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
- package/dist/src/server/domains/transform/manifest.d.ts +1 -1
- package/dist/src/server/domains/transform/manifest.js +1 -1
- package/dist/src/server/domains/wasm/definitions.js +55 -232
- package/dist/src/server/domains/wasm/handlers.js +1 -1
- package/dist/src/server/domains/workflow/definitions.js +144 -414
- 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.d.ts +2 -0
- package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
- package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
- package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
- package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
- package/dist/src/server/evidence/index.d.ts +2 -0
- package/dist/src/server/evidence/index.js +1 -0
- package/dist/src/server/evidence/types.d.ts +22 -0
- package/dist/src/server/evidence/types.js +1 -0
- package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
- package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
- package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
- package/dist/src/server/extensions/ExtensionManager.js +193 -40
- package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
- package/dist/src/server/extensions/ExtensionManager.roots.js +4 -4
- package/dist/src/server/extensions/plugin-config.js +1 -1
- package/dist/src/server/extensions/plugin-env.d.ts +1 -1
- package/dist/src/server/extensions/plugin-env.js +10 -4
- package/dist/src/server/extensions/types.d.ts +17 -0
- package/dist/src/server/extensions/types.js +1 -1
- package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
- package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
- package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
- package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
- package/dist/src/server/instrumentation/index.d.ts +2 -0
- package/dist/src/server/instrumentation/index.js +2 -0
- package/dist/src/server/instrumentation/types.d.ts +62 -0
- package/dist/src/server/instrumentation/types.js +7 -0
- package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
- package/dist/src/server/macros/MacroConfigLoader.js +61 -59
- package/dist/src/server/macros/MacroRunner.js +6 -2
- package/dist/src/server/macros/builtins/index.d.ts +2 -3
- package/dist/src/server/macros/builtins/index.js +51 -7
- package/dist/src/server/plugins/PluginContract.d.ts +1 -1
- package/dist/src/server/registry/contracts.d.ts +1 -1
- package/dist/src/server/registry/discovery.js +5 -4
- package/dist/src/server/registry/ensure-browser-core.js +0 -3
- package/dist/src/server/registry/index.js +4 -4
- package/dist/src/server/registry/tool-builder.d.ts +46 -0
- package/dist/src/server/registry/tool-builder.js +105 -0
- package/dist/src/server/sandbox/QuickJSSandbox.js +16 -5
- package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
- package/dist/src/server/search/EmbeddingWorker.js +5 -3
- package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
- package/dist/src/server/search/FeedbackTracker.js +26 -0
- package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
- package/dist/src/server/search/QueryNormalizer.js +94 -0
- package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
- package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
- package/dist/src/server/workflows/WorkflowContract.d.ts +24 -0
- package/dist/src/server/workflows/WorkflowContract.js +12 -0
- package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
- package/dist/src/server/workflows/WorkflowEngine.js +136 -3
- package/dist/src/types/config.d.ts +0 -14
- package/dist/src/types/deobfuscator.d.ts +0 -1
- package/dist/src/types/index.d.ts +1 -1
- package/dist/src/utils/DetailedDataManager.js +2 -0
- package/dist/src/utils/RingBuffer.js +5 -5
- package/dist/src/utils/TokenBudgetManager.js +1 -1
- package/dist/src/utils/UnifiedCacheManager.js +1 -1
- package/dist/src/utils/artifactRetention.js +2 -2
- package/dist/src/utils/betterSqlite3.d.ts +11 -0
- package/dist/src/utils/betterSqlite3.js +88 -0
- package/dist/src/utils/browserExecutable.js +2 -2
- package/dist/src/utils/cliFastPath.js +5 -8
- package/dist/src/utils/config.js +4 -26
- package/dist/src/utils/environmentDoctor.js +138 -11
- package/dist/src/utils/outputPaths.js +16 -9
- package/dist/src/utils/parallel.js +1 -3
- package/package.json +74 -72
- package/workflows/.gitkeep +0 -0
- package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
- package/dist/src/modules/analyzer/AISummarizer.js +0 -122
- package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
- package/dist/src/modules/hook/AIHookGenerator.js +0 -360
- package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
- package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
- package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
- package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
- package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
- package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
- package/dist/src/services/LLMService.d.ts +0 -37
- package/dist/src/services/LLMService.js +0 -233
- package/dist/src/services/prompts/analysis.d.ts +0 -9
- package/dist/src/services/prompts/analysis.js +0 -158
- package/dist/src/services/prompts/crypto.d.ts +0 -2
- package/dist/src/services/prompts/crypto.js +0 -108
- package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
- package/dist/src/services/prompts/deobfuscation.js +0 -300
- package/dist/src/services/prompts/environment.d.ts +0 -16
- package/dist/src/services/prompts/environment.js +0 -372
- package/dist/src/services/prompts/intelligence.d.ts +0 -4
- package/dist/src/services/prompts/intelligence.js +0 -250
- package/dist/src/services/prompts/taint.d.ts +0 -2
- package/dist/src/services/prompts/taint.js +0 -54
|
@@ -1,341 +1,196 @@
|
|
|
1
|
+
import { tool } from '../../registry/tool-builder.js';
|
|
1
2
|
export const browserSecurityStateTools = [
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
},
|
|
196
|
-
},
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
{
|
|
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
|
-
|
|
216
|
-
Best used after stealth_inject to verify patches are effective.`,
|
|
217
|
-
inputSchema: {
|
|
218
|
-
type: 'object',
|
|
219
|
-
properties: {},
|
|
220
|
-
},
|
|
221
|
-
},
|
|
222
|
-
{
|
|
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")
|
|
236
|
-
browser_list_tabs(autoConnect=true, channel="stable")`,
|
|
237
|
-
inputSchema: {
|
|
238
|
-
type: 'object',
|
|
239
|
-
properties: {
|
|
240
|
-
browserURL: {
|
|
241
|
-
type: 'string',
|
|
242
|
-
description: 'Optional: connect to this browser URL before listing (e.g. http://127.0.0.1:9222)',
|
|
243
|
-
},
|
|
244
|
-
wsEndpoint: {
|
|
245
|
-
type: 'string',
|
|
246
|
-
description: 'Optional: connect to this browser WebSocket endpoint before listing.',
|
|
247
|
-
},
|
|
248
|
-
autoConnect: {
|
|
249
|
-
type: 'boolean',
|
|
250
|
-
description: 'Chrome 144+ only. Auto-detect the local Chrome debugging WebSocket from DevToolsActivePort. Requires remote debugging to be enabled at chrome://inspect/#remote-debugging, and Chrome may prompt you to manually approve this client.',
|
|
251
|
-
default: false,
|
|
252
|
-
},
|
|
253
|
-
channel: {
|
|
254
|
-
type: 'string',
|
|
255
|
-
description: 'Chrome channel used for autoConnect when userDataDir is not provided.',
|
|
256
|
-
enum: ['stable', 'beta', 'dev', 'canary'],
|
|
257
|
-
default: 'stable',
|
|
258
|
-
},
|
|
259
|
-
userDataDir: {
|
|
260
|
-
type: 'string',
|
|
261
|
-
description: 'Optional Chrome profile directory for autoConnect. If omitted, the default profile path for the selected channel is used.',
|
|
262
|
-
},
|
|
263
|
-
},
|
|
264
|
-
},
|
|
265
|
-
},
|
|
266
|
-
{
|
|
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"
|
|
276
|
-
- browser_select_tab(titlePattern="Mini Program") -> tab whose title contains "Mini Program"`,
|
|
277
|
-
inputSchema: {
|
|
278
|
-
type: 'object',
|
|
279
|
-
properties: {
|
|
280
|
-
index: {
|
|
281
|
-
type: 'number',
|
|
282
|
-
description: 'Tab index from browser_list_tabs (0-based)',
|
|
283
|
-
},
|
|
284
|
-
urlPattern: {
|
|
285
|
-
type: 'string',
|
|
286
|
-
description: 'Substring to match against tab URLs',
|
|
287
|
-
},
|
|
288
|
-
titlePattern: {
|
|
289
|
-
type: 'string',
|
|
290
|
-
description: 'Substring to match against tab titles',
|
|
291
|
-
},
|
|
292
|
-
},
|
|
293
|
-
},
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
name: 'framework_state_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
|
-
inputSchema: {
|
|
299
|
-
type: 'object',
|
|
300
|
-
properties: {
|
|
301
|
-
framework: {
|
|
302
|
-
type: 'string',
|
|
303
|
-
description: 'Framework to target. auto = detect automatically.',
|
|
304
|
-
enum: ['auto', 'react', 'vue2', 'vue3', 'svelte', 'solid', 'preact'],
|
|
305
|
-
default: 'auto',
|
|
306
|
-
},
|
|
307
|
-
selector: {
|
|
308
|
-
type: 'string',
|
|
309
|
-
description: 'CSS selector of root element to inspect (default: #root, #app, [data-reactroot], body)',
|
|
310
|
-
},
|
|
311
|
-
maxDepth: {
|
|
312
|
-
type: 'number',
|
|
313
|
-
description: 'Maximum component tree depth to traverse',
|
|
314
|
-
default: 5,
|
|
315
|
-
},
|
|
316
|
-
},
|
|
317
|
-
},
|
|
318
|
-
},
|
|
319
|
-
{
|
|
320
|
-
name: 'indexeddb_dump',
|
|
321
|
-
description: 'Dump all IndexedDB databases and their contents. Useful for analyzing PWA data, stored tokens, or offline application state.',
|
|
322
|
-
inputSchema: {
|
|
323
|
-
type: 'object',
|
|
324
|
-
properties: {
|
|
325
|
-
database: {
|
|
326
|
-
type: 'string',
|
|
327
|
-
description: 'Specific database name to dump (default: all databases)',
|
|
328
|
-
},
|
|
329
|
-
store: {
|
|
330
|
-
type: 'string',
|
|
331
|
-
description: 'Specific object store to dump (default: all stores)',
|
|
332
|
-
},
|
|
333
|
-
maxRecords: {
|
|
334
|
-
type: 'number',
|
|
335
|
-
description: 'Maximum records per store to return',
|
|
336
|
-
default: 100,
|
|
337
|
-
},
|
|
338
|
-
},
|
|
339
|
-
},
|
|
340
|
-
},
|
|
3
|
+
tool('captcha_detect')
|
|
4
|
+
.desc(`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
|
+
Use an external AI (GPT-4o, Claude 3) to analyze the saved screenshot if needed.`)
|
|
31
|
+
.readOnly()
|
|
32
|
+
.idempotent()
|
|
33
|
+
.build(),
|
|
34
|
+
tool('captcha_wait')
|
|
35
|
+
.desc(`Wait for the user to manually solve a CAPTCHA.
|
|
36
|
+
|
|
37
|
+
Steps:
|
|
38
|
+
1. CAPTCHA is detected on the page
|
|
39
|
+
2. This tool polls the current page until the CAPTCHA is no longer detected
|
|
40
|
+
3. User solves the CAPTCHA manually in the active browser/page
|
|
41
|
+
4. Script resumes automatically after detection
|
|
42
|
+
|
|
43
|
+
Note: this tool does not switch browser modes on its own.
|
|
44
|
+
|
|
45
|
+
Timeout: default 300000ms (5 minutes)`)
|
|
46
|
+
.number('timeout', 'Timeout in milliseconds (default: 300000 = 5 minutes)', { default: 300000 })
|
|
47
|
+
.readOnly()
|
|
48
|
+
.idempotent()
|
|
49
|
+
.openWorld()
|
|
50
|
+
.build(),
|
|
51
|
+
tool('captcha_config')
|
|
52
|
+
.desc(`Configure CAPTCHA detection behavior.
|
|
53
|
+
|
|
54
|
+
Parameters:
|
|
55
|
+
- autoDetectCaptcha: enable CAPTCHA auto-handling for browser-mode integrations that use these settings
|
|
56
|
+
- autoSwitchHeadless: allow supported integrations to switch to headed mode when CAPTCHA is detected
|
|
57
|
+
- captchaTimeout: timeout for waiting user to solve CAPTCHA in ms (default: 300000)`)
|
|
58
|
+
.boolean('autoDetectCaptcha', 'Whether to automatically detect CAPTCHA after navigation')
|
|
59
|
+
.boolean('autoSwitchHeadless', 'Whether to automatically switch to headed mode when CAPTCHA detected')
|
|
60
|
+
.number('captchaTimeout', 'Timeout for waiting user to complete CAPTCHA (milliseconds)')
|
|
61
|
+
.idempotent()
|
|
62
|
+
.build(),
|
|
63
|
+
tool('stealth_inject')
|
|
64
|
+
.desc(`Inject modern stealth scripts to bypass bot detection.
|
|
65
|
+
|
|
66
|
+
Anti-detection patches:
|
|
67
|
+
1. Hide navigator.webdriver flag
|
|
68
|
+
2. Inject window.chrome object
|
|
69
|
+
3. Restore navigator.plugins
|
|
70
|
+
4. Fix Permissions API behavior
|
|
71
|
+
5. Patch Canvas fingerprinting
|
|
72
|
+
6. Patch WebGL fingerprinting
|
|
73
|
+
7. Restore hardware concurrency
|
|
74
|
+
8. Fix Battery API responses
|
|
75
|
+
9. Fix MediaDevices enumeration
|
|
76
|
+
10. Fix Notification API
|
|
77
|
+
|
|
78
|
+
Compatible with undetected-chromedriver, puppeteer-extra-plugin-stealth, playwright-stealth.
|
|
79
|
+
Call after browser_launch for best results.`)
|
|
80
|
+
.idempotent()
|
|
81
|
+
.build(),
|
|
82
|
+
tool('stealth_set_user_agent')
|
|
83
|
+
.desc(`Set a realistic User-Agent and browser fingerprint for the target platform.
|
|
84
|
+
|
|
85
|
+
Updates navigator.userAgent, navigator.platform, navigator.vendor,
|
|
86
|
+
navigator.hardwareConcurrency, and navigator.deviceMemory consistently
|
|
87
|
+
to avoid fingerprint inconsistencies.
|
|
88
|
+
|
|
89
|
+
UA strings are updated to Chrome 131 with platform-appropriate hardware profiles.`)
|
|
90
|
+
.enum('platform', ['windows', 'mac', 'linux'], 'Target platform', { default: 'windows' })
|
|
91
|
+
.idempotent()
|
|
92
|
+
.build(),
|
|
93
|
+
tool('stealth_configure_jitter')
|
|
94
|
+
.desc(`Configure CDP command timing jitter to mimic natural network latency.
|
|
95
|
+
|
|
96
|
+
Jitter adds random delays to CDP commands to prevent timing-based bot detection.
|
|
97
|
+
Default: 20-80ms uniform random delay on all CDP send() calls.
|
|
98
|
+
|
|
99
|
+
Parameters:
|
|
100
|
+
- enabled: turn jitter on/off
|
|
101
|
+
- minDelayMs: minimum delay in milliseconds
|
|
102
|
+
- maxDelayMs: maximum delay in milliseconds
|
|
103
|
+
- burstMode: skip jitter for time-critical operations (debugging, breakpoints)`)
|
|
104
|
+
.boolean('enabled', 'Enable/disable jitter', { default: true })
|
|
105
|
+
.number('minDelayMs', 'Minimum delay (ms)', { default: 20 })
|
|
106
|
+
.number('maxDelayMs', 'Maximum delay (ms)', { default: 80 })
|
|
107
|
+
.boolean('burstMode', 'Skip jitter for time-critical ops', { default: false })
|
|
108
|
+
.idempotent()
|
|
109
|
+
.build(),
|
|
110
|
+
tool('stealth_generate_fingerprint')
|
|
111
|
+
.desc(`Generate a realistic browser fingerprint using real-world datasets.
|
|
112
|
+
|
|
113
|
+
Requires fingerprint-generator and fingerprint-injector packages (optional dependencies).
|
|
114
|
+
The generated fingerprint is cached per session and auto-applied on next stealth_inject.
|
|
115
|
+
|
|
116
|
+
Covers: screen resolution, WebGL params, fonts, codecs, AudioContext, navigator properties.
|
|
117
|
+
Falls back to built-in StealthScripts patches if packages are not installed.`)
|
|
118
|
+
.enum('os', ['windows', 'macos', 'linux'], 'Target OS for fingerprint')
|
|
119
|
+
.enum('browser', ['chrome', 'firefox'], 'Target browser', { default: 'chrome' })
|
|
120
|
+
.string('locale', 'Locale string (e.g. en-US)', { default: 'en-US' })
|
|
121
|
+
.build(),
|
|
122
|
+
tool('stealth_verify')
|
|
123
|
+
.desc(`Run offline anti-detection checks on the current page.
|
|
124
|
+
|
|
125
|
+
Verifies that stealth patches are working correctly by checking:
|
|
126
|
+
- navigator.webdriver absence
|
|
127
|
+
- window.chrome object structure
|
|
128
|
+
- navigator.plugins list
|
|
129
|
+
- UA/platform consistency
|
|
130
|
+
- WebGL vendor/renderer
|
|
131
|
+
- Canvas noise injection
|
|
132
|
+
- cdc_ variable cleanup
|
|
133
|
+
- Hardware profile consistency
|
|
134
|
+
|
|
135
|
+
Returns a structured report with pass/fail for each check, an overall score (0-100),
|
|
136
|
+
and recommendations for improving detection evasion.
|
|
137
|
+
|
|
138
|
+
Best used after stealth_inject to verify patches are effective.`)
|
|
139
|
+
.readOnly()
|
|
140
|
+
.idempotent()
|
|
141
|
+
.build(),
|
|
142
|
+
tool('browser_list_tabs')
|
|
143
|
+
.desc(`List all open tabs/pages in the connected browser.
|
|
144
|
+
|
|
145
|
+
Use this after browser_attach to see all available pages/tabs.
|
|
146
|
+
Returns index, URL, and title for each tab.
|
|
147
|
+
|
|
148
|
+
Workflow:
|
|
149
|
+
1. browser_attach(browserURL="http://127.0.0.1:9222") or browser_attach(autoConnect=true)
|
|
150
|
+
2. browser_list_tabs() -> see all tabs with their indexes
|
|
151
|
+
3. browser_select_tab(index=N) -> switch to desired tab
|
|
152
|
+
|
|
153
|
+
Can also connect and list in one call:
|
|
154
|
+
browser_list_tabs(browserURL="http://127.0.0.1:9222")
|
|
155
|
+
browser_list_tabs(autoConnect=true, channel="stable")`)
|
|
156
|
+
.string('browserURL', 'Optional: connect to this browser URL before listing (e.g. http://127.0.0.1:9222)')
|
|
157
|
+
.string('wsEndpoint', 'Optional: connect to this browser WebSocket endpoint before listing.')
|
|
158
|
+
.boolean('autoConnect', 'Chrome 144+ only. Auto-detect the local Chrome debugging WebSocket from DevToolsActivePort. Requires remote debugging to be enabled at chrome://inspect/#remote-debugging, and Chrome may prompt you to manually approve this client.', { default: false })
|
|
159
|
+
.enum('channel', ['stable', 'beta', 'dev', 'canary'], 'Chrome channel used for autoConnect when userDataDir is not provided.', { default: 'stable' })
|
|
160
|
+
.string('userDataDir', 'Optional Chrome profile directory for autoConnect. If omitted, the default profile path for the selected channel is used.')
|
|
161
|
+
.readOnly()
|
|
162
|
+
.idempotent()
|
|
163
|
+
.openWorld()
|
|
164
|
+
.build(),
|
|
165
|
+
tool('browser_select_tab')
|
|
166
|
+
.desc(`Switch the active tab/page by index or URL/title pattern.
|
|
167
|
+
|
|
168
|
+
After browser_list_tabs, use this to activate a specific tab.
|
|
169
|
+
All subsequent page_* tools will operate on the selected tab.
|
|
170
|
+
|
|
171
|
+
Examples:
|
|
172
|
+
- browser_select_tab(index=0) -> first tab
|
|
173
|
+
- browser_select_tab(urlPattern="qwen") -> tab whose URL contains "qwen"
|
|
174
|
+
- browser_select_tab(titlePattern="Mini Program") -> tab whose title contains "Mini Program"`)
|
|
175
|
+
.number('index', 'Tab index from browser_list_tabs (0-based)')
|
|
176
|
+
.string('urlPattern', 'Substring to match against tab URLs')
|
|
177
|
+
.string('titlePattern', 'Substring to match against tab titles')
|
|
178
|
+
.idempotent()
|
|
179
|
+
.build(),
|
|
180
|
+
tool('framework_state_extract')
|
|
181
|
+
.desc('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.')
|
|
182
|
+
.enum('framework', ['auto', 'react', 'vue2', 'vue3', 'svelte', 'solid', 'preact'], 'Framework to target. auto = detect automatically.', { default: 'auto' })
|
|
183
|
+
.string('selector', 'CSS selector of root element to inspect (default: #root, #app, [data-reactroot], body)')
|
|
184
|
+
.number('maxDepth', 'Maximum component tree depth to traverse', { default: 5 })
|
|
185
|
+
.readOnly()
|
|
186
|
+
.idempotent()
|
|
187
|
+
.build(),
|
|
188
|
+
tool('indexeddb_dump')
|
|
189
|
+
.desc('Dump all IndexedDB databases and their contents. Useful for analyzing PWA data, stored tokens, or offline application state.')
|
|
190
|
+
.string('database', 'Specific database name to dump (default: all databases)')
|
|
191
|
+
.string('store', 'Specific object store to dump (default: all stores)')
|
|
192
|
+
.number('maxRecords', 'Maximum records per store to return', { default: 100 })
|
|
193
|
+
.readOnly()
|
|
194
|
+
.idempotent()
|
|
195
|
+
.build(),
|
|
341
196
|
];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CamoufoxBrowserManager } from '../../../domains/shared/modules.js';
|
|
2
2
|
import { argString, argNumber, argBool } from '../../../domains/shared/parse-args.js';
|
|
3
|
+
import { formatBetterSqlite3Error, isBetterSqlite3RelatedError } from '../../../../utils/betterSqlite3.js';
|
|
3
4
|
import { logger } from '../../../../utils/logger.js';
|
|
4
5
|
async function checkCamoufoxDependencies() {
|
|
5
6
|
try {
|
|
@@ -8,8 +9,8 @@ async function checkCamoufoxDependencies() {
|
|
|
8
9
|
}
|
|
9
10
|
catch (error) {
|
|
10
11
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
11
|
-
if (
|
|
12
|
-
return `Camoufox requires
|
|
12
|
+
if (isBetterSqlite3RelatedError(error)) {
|
|
13
|
+
return `Camoufox requires the same native SQLite backend used by trace tooling. ${formatBetterSqlite3Error(error)}`;
|
|
13
14
|
}
|
|
14
15
|
if (errorMsg.includes("Cannot find package 'camoufox-js'")) {
|
|
15
16
|
return 'camoufox-js package is not installed. Run: pnpm add camoufox-js && npx camoufox-js fetch';
|
|
@@ -254,10 +254,10 @@ export async function handleWidgetChallengeSolve(args, collector) {
|
|
|
254
254
|
.__turnstile_callbacks;
|
|
255
255
|
if (origCallbacks) {
|
|
256
256
|
for (const [key, cb] of Object.entries(origCallbacks)) {
|
|
257
|
-
origCallbacks[key] = (
|
|
257
|
+
origCallbacks[key] = (captchaToken) => {
|
|
258
258
|
clearTimeout(timeout);
|
|
259
|
-
resolve(
|
|
260
|
-
cb(
|
|
259
|
+
resolve(captchaToken);
|
|
260
|
+
cb(captchaToken);
|
|
261
261
|
};
|
|
262
262
|
}
|
|
263
263
|
}
|
|
@@ -35,7 +35,8 @@ export class DOMQueryHandlers {
|
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
async handleDOMGetStructure(args) {
|
|
38
|
-
const
|
|
38
|
+
const MAX_DOM_DEPTH = 4;
|
|
39
|
+
const maxDepth = Math.min(argNumber(args, 'maxDepth', 3), MAX_DOM_DEPTH);
|
|
39
40
|
const includeText = argBool(args, 'includeText', true);
|
|
40
41
|
const structure = await this.deps.domInspector.getStructure(maxDepth, includeText);
|
|
41
42
|
return {
|