@jshookmcp/jshook 0.2.2 → 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/LICENSE +661 -661
- package/README.md +15 -6
- package/README.zh.md +19 -4
- 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/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.d.ts +6 -5
- package/dist/src/modules/browser/BrowserDiscovery.js +3 -3
- package/dist/src/modules/browser/BrowserModeManager.d.ts +1 -1
- 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 +19 -4
- package/dist/src/modules/captcha/AICaptchaDetector.d.ts +14 -23
- package/dist/src/modules/captcha/AICaptchaDetector.js +8 -202
- 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 +5 -6
- package/dist/src/modules/collector/DOMInspector.d.ts +3 -2
- package/dist/src/modules/collector/DOMInspector.js +49 -59
- 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 +5 -3
- 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 +2 -3
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +5 -57
- package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
- package/dist/src/modules/deobfuscator/PackerDeobfuscator.js +1 -1
- 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.d.ts +1 -1
- package/dist/src/modules/external/ExternalToolRunner.js +26 -23
- 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/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/process/BaseMemoryManager.d.ts +1 -1
- package/dist/src/modules/process/LinuxProcessManager.js +4 -2
- package/dist/src/modules/process/MacProcessManager.js +1 -1
- package/dist/src/modules/process/MemoryManager.d.ts +1 -1
- package/dist/src/modules/process/MemoryManager.js +2 -2
- package/dist/src/modules/process/ProcessManager.impl.js +1 -1
- package/dist/src/modules/process/memory/AuditTrail.js +1 -1
- package/dist/src/modules/process/memory/reader.js +35 -3
- package/dist/src/modules/process/memory/regions.enumerate.js +1 -1
- package/dist/src/modules/process/memory/regions.protection.js +42 -9
- package/dist/src/modules/process/memory/scanner.d.ts +5 -1
- package/dist/src/modules/process/memory/scanner.darwin.js +57 -0
- package/dist/src/modules/process/memory/scanner.js +88 -4
- package/dist/src/modules/process/memory/writer.js +44 -4
- package/dist/src/modules/security/ExecutionSandbox.js +7 -8
- package/dist/src/modules/stealth/FingerprintManager.js +1 -1
- package/dist/src/modules/stealth/StealthScripts.d.ts +4 -2
- package/dist/src/modules/stealth/StealthScripts.js +53 -14
- package/dist/src/modules/stealth/StealthVerifier.d.ts +1 -1
- package/dist/src/modules/stealth/StealthVerifier.js +2 -4
- 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 +12 -6
- package/dist/src/modules/trace/TraceRecorder.js +1 -5
- package/dist/src/native/AntiCheatDetector.js +67 -16
- package/dist/src/native/CodeInjector.js +4 -4
- package/dist/src/native/HardwareBreakpoint.js +25 -16
- 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 +42 -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 +2 -2
- package/dist/src/server/MCPServer.tools.js +1 -1
- package/dist/src/server/MCPServer.transport.js +12 -0
- package/dist/src/server/ToolCallContextGuard.d.ts +5 -0
- package/dist/src/server/ToolCallContextGuard.js +85 -0
- package/dist/src/server/ToolRouter.d.ts +26 -10
- 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.d.ts +8 -8
- package/dist/src/server/domains/analysis/handlers.impl.js +34 -28
- package/dist/src/server/domains/analysis/handlers.web-tools.js +4 -3
- 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 +157 -386
- package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
- package/dist/src/server/domains/browser/definitions.tools.runtime.js +61 -174
- package/dist/src/server/domains/browser/definitions.tools.security.js +92 -237
- 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/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 +231 -3
- 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/stealth-injection.js +8 -2
- package/dist/src/server/domains/browser/handlers.impl.d.ts +15 -12
- package/dist/src/server/domains/browser/handlers.impl.js +5 -6
- package/dist/src/server/domains/browser/manifest.js +37 -13
- package/dist/src/server/domains/coordination/definitions.js +50 -149
- package/dist/src/server/domains/coordination/index.d.ts +20 -1
- package/dist/src/server/domains/coordination/index.js +133 -0
- package/dist/src/server/domains/coordination/manifest.js +15 -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/hooks/ai-handlers.d.ts +0 -7
- package/dist/src/server/domains/hooks/ai-handlers.js +4 -70
- 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.d.ts +2 -2
- package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
- package/dist/src/server/domains/maintenance/handlers.js +2 -2
- 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 +5 -1
- package/dist/src/server/domains/platform/handlers/bridge-handlers.js +194 -5
- 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.d.ts +1 -1
- package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +4 -4
- 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 +19 -17
- 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.d.ts +60 -0
- package/dist/src/server/domains/trace/TraceSummarizer.js +112 -0
- package/dist/src/server/domains/trace/definitions.tools.js +51 -176
- package/dist/src/server/domains/trace/handlers.d.ts +2 -1
- package/dist/src/server/domains/trace/handlers.js +62 -9
- 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 +18 -4
- package/dist/src/server/domains/transform/definitions.js +50 -210
- package/dist/src/server/domains/transform/handlers.impl.transform-base.js +6 -6
- 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 +3 -3
- package/dist/src/server/domains/workflow/definitions.js +144 -414
- package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +2 -2
- 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 +19 -9
- 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/http/HttpMiddleware.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 +7 -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/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 +162 -2
- 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/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.d.ts +1 -1
- package/dist/src/utils/UnifiedCacheManager.js +3 -3
- 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 +17 -6
- 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 +76 -72
- 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
- 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,12 +1,12 @@
|
|
|
1
1
|
import type { ToolArgs, ToolResponse } from '../../types.js';
|
|
2
|
-
import { CodeCollector } from '../../domains/shared/modules.js';
|
|
3
|
-
import { ScriptManager } from '../../domains/shared/modules.js';
|
|
4
|
-
import { Deobfuscator } from '../../domains/shared/modules.js';
|
|
5
|
-
import { AdvancedDeobfuscator } from '../../domains/shared/modules.js';
|
|
6
|
-
import { ObfuscationDetector } from '../../domains/shared/modules.js';
|
|
7
|
-
import { CodeAnalyzer } from '../../domains/shared/modules.js';
|
|
8
|
-
import { CryptoDetector } from '../../domains/shared/modules.js';
|
|
9
|
-
import { HookManager } from '../../domains/shared/modules.js';
|
|
2
|
+
import { type CodeCollector } from '../../domains/shared/modules.js';
|
|
3
|
+
import { type ScriptManager } from '../../domains/shared/modules.js';
|
|
4
|
+
import { type Deobfuscator } from '../../domains/shared/modules.js';
|
|
5
|
+
import { type AdvancedDeobfuscator } from '../../domains/shared/modules.js';
|
|
6
|
+
import { type ObfuscationDetector } from '../../domains/shared/modules.js';
|
|
7
|
+
import { type CodeAnalyzer } from '../../domains/shared/modules.js';
|
|
8
|
+
import { type CryptoDetector } from '../../domains/shared/modules.js';
|
|
9
|
+
import { type HookManager } from '../../domains/shared/modules.js';
|
|
10
10
|
interface CoreAnalysisHandlerDeps {
|
|
11
11
|
collector: CodeCollector;
|
|
12
12
|
scriptManager: ScriptManager;
|
|
@@ -13,14 +13,14 @@ const HOOK_TYPES = new Set([
|
|
|
13
13
|
'cookie',
|
|
14
14
|
]);
|
|
15
15
|
const HOOK_ACTIONS = new Set(['log', 'block', 'modify']);
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
16
|
+
import {} from '../../domains/shared/modules.js';
|
|
17
|
+
import {} from '../../domains/shared/modules.js';
|
|
18
|
+
import {} from '../../domains/shared/modules.js';
|
|
19
|
+
import {} from '../../domains/shared/modules.js';
|
|
20
|
+
import {} from '../../domains/shared/modules.js';
|
|
21
|
+
import {} from '../../domains/shared/modules.js';
|
|
22
|
+
import {} from '../../domains/shared/modules.js';
|
|
23
|
+
import {} from '../../domains/shared/modules.js';
|
|
24
24
|
import { runSourceMapExtract, runWebpackEnumerate, } from '../../domains/analysis/handlers.web-tools.js';
|
|
25
25
|
import { runWebcrack } from '../../../modules/deobfuscator/webcrack.js';
|
|
26
26
|
export class CoreAnalysisHandlers {
|
|
@@ -52,23 +52,30 @@ export class CoreAnalysisHandlers {
|
|
|
52
52
|
}
|
|
53
53
|
extractWebcrackArgs(args) {
|
|
54
54
|
const extracted = {};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (
|
|
64
|
-
extracted.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
55
|
+
const unpack = argBool(args, 'unpack');
|
|
56
|
+
const unminify = argBool(args, 'unminify');
|
|
57
|
+
const jsx = argBool(args, 'jsx');
|
|
58
|
+
const mangle = argBool(args, 'mangle');
|
|
59
|
+
const forceOutput = argBool(args, 'forceOutput');
|
|
60
|
+
const includeModuleCode = argBool(args, 'includeModuleCode');
|
|
61
|
+
const outputDir = argString(args, 'outputDir');
|
|
62
|
+
const maxBundleModules = argNumber(args, 'maxBundleModules');
|
|
63
|
+
if (unpack !== undefined)
|
|
64
|
+
extracted.unpack = unpack;
|
|
65
|
+
if (unminify !== undefined)
|
|
66
|
+
extracted.unminify = unminify;
|
|
67
|
+
if (jsx !== undefined)
|
|
68
|
+
extracted.jsx = jsx;
|
|
69
|
+
if (mangle !== undefined)
|
|
70
|
+
extracted.mangle = mangle;
|
|
71
|
+
if (forceOutput !== undefined)
|
|
72
|
+
extracted.forceOutput = forceOutput;
|
|
73
|
+
if (includeModuleCode !== undefined)
|
|
74
|
+
extracted.includeModuleCode = includeModuleCode;
|
|
75
|
+
if (outputDir?.trim())
|
|
76
|
+
extracted.outputDir = outputDir;
|
|
77
|
+
if (maxBundleModules !== undefined)
|
|
78
|
+
extracted.maxBundleModules = maxBundleModules;
|
|
72
79
|
if (Array.isArray(args.mappings)) {
|
|
73
80
|
extracted.mappings = args.mappings.filter((item) => typeof item === 'object' &&
|
|
74
81
|
item !== null &&
|
|
@@ -89,8 +96,8 @@ export class CoreAnalysisHandlers {
|
|
|
89
96
|
truncated: file.metadata?.truncated || false,
|
|
90
97
|
preview: `${file.content.substring(0, 200)}...`,
|
|
91
98
|
}));
|
|
92
|
-
if (
|
|
93
|
-
smartMode = 'summary';
|
|
99
|
+
if (!smartMode) {
|
|
100
|
+
smartMode = returnSummaryOnly ? 'summary' : 'summary';
|
|
94
101
|
}
|
|
95
102
|
const result = await this.collector.collect({
|
|
96
103
|
url: argStringRequired(args, 'url'),
|
|
@@ -247,7 +254,6 @@ export class CoreAnalysisHandlers {
|
|
|
247
254
|
}
|
|
248
255
|
const result = await this.deobfuscator.deobfuscate({
|
|
249
256
|
code,
|
|
250
|
-
llm: argString(args, 'llm'),
|
|
251
257
|
aggressive: argBool(args, 'aggressive'),
|
|
252
258
|
...this.extractWebcrackArgs(args),
|
|
253
259
|
});
|
|
@@ -2,10 +2,11 @@ import { logger } from '../../../utils/logger.js';
|
|
|
2
2
|
import { evaluateWithTimeout } from '../../../modules/collector/PageController.js';
|
|
3
3
|
import { asJsonResponse, asErrorResponse } from '../../domains/shared/response.js';
|
|
4
4
|
import { argString, argBool, argNumber } from '../../domains/shared/parse-args.js';
|
|
5
|
+
const MAX_WEBPACK_MODULES = 100;
|
|
5
6
|
export async function runWebpackEnumerate(collector, args) {
|
|
6
7
|
const searchKeyword = argString(args, 'searchKeyword', '');
|
|
7
8
|
const forceRequireAll = argBool(args, 'forceRequireAll', !!searchKeyword);
|
|
8
|
-
const maxResults = argNumber(args, 'maxResults', 20);
|
|
9
|
+
const maxResults = Math.min(argNumber(args, 'maxResults', 20), MAX_WEBPACK_MODULES);
|
|
9
10
|
try {
|
|
10
11
|
const page = await collector.getActivePage();
|
|
11
12
|
const result = await evaluateWithTimeout(page, async (opts) => {
|
|
@@ -41,7 +42,7 @@ export async function runWebpackEnumerate(collector, args) {
|
|
|
41
42
|
if (!requireFn) {
|
|
42
43
|
for (const key of chunkKeys) {
|
|
43
44
|
const arr = w[key];
|
|
44
|
-
if (arr
|
|
45
|
+
if (arr?.m && typeof arr.m === 'object') {
|
|
45
46
|
const mods = arr.m;
|
|
46
47
|
requireFn = (id) => {
|
|
47
48
|
try {
|
|
@@ -151,7 +152,7 @@ export async function runSourceMapExtract(collector, args) {
|
|
|
151
152
|
clearTimeout(t1);
|
|
152
153
|
}
|
|
153
154
|
const match = text.match(/\/\/# sourceMappingURL=([^\s]+)/);
|
|
154
|
-
if (!match
|
|
155
|
+
if (!match?.[1])
|
|
155
156
|
continue;
|
|
156
157
|
let mapUrl = match[1].trim();
|
|
157
158
|
if (mapUrl.startsWith('data:')) {
|
|
@@ -14,15 +14,15 @@ const b = (invoke) => bindByDepKey(DEP_KEY, invoke);
|
|
|
14
14
|
function ensure(ctx) {
|
|
15
15
|
ensureBrowserCore(ctx);
|
|
16
16
|
if (!ctx.deobfuscator)
|
|
17
|
-
ctx.deobfuscator = new Deobfuscator(
|
|
17
|
+
ctx.deobfuscator = new Deobfuscator();
|
|
18
18
|
if (!ctx.advancedDeobfuscator)
|
|
19
19
|
ctx.advancedDeobfuscator = new AdvancedDeobfuscator();
|
|
20
20
|
if (!ctx.obfuscationDetector)
|
|
21
21
|
ctx.obfuscationDetector = new ObfuscationDetector();
|
|
22
22
|
if (!ctx.analyzer)
|
|
23
|
-
ctx.analyzer = new CodeAnalyzer(
|
|
23
|
+
ctx.analyzer = new CodeAnalyzer();
|
|
24
24
|
if (!ctx.cryptoDetector)
|
|
25
|
-
ctx.cryptoDetector = new CryptoDetector(
|
|
25
|
+
ctx.cryptoDetector = new CryptoDetector();
|
|
26
26
|
if (!ctx.hookManager)
|
|
27
27
|
ctx.hookManager = new HookManager();
|
|
28
28
|
if (!ctx.coreAnalysisHandlers) {
|
|
@@ -56,7 +56,9 @@ const manifest = {
|
|
|
56
56
|
hint: 'JavaScript analysis workflow: collect -> deobfuscate -> inspect function tree',
|
|
57
57
|
},
|
|
58
58
|
prerequisites: {
|
|
59
|
-
collect_code: [
|
|
59
|
+
collect_code: [
|
|
60
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
61
|
+
],
|
|
60
62
|
},
|
|
61
63
|
registrations: [
|
|
62
64
|
{ tool: t('collect_code'), domain: DOMAIN, bind: b((h, a) => h.handleCollectCode(a)) },
|
|
@@ -1,113 +1,27 @@
|
|
|
1
|
+
import { tool } from '../../registry/tool-builder.js';
|
|
1
2
|
export const antidebugTools = [
|
|
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
|
-
type: 'object',
|
|
27
|
-
properties: {
|
|
28
|
-
mode: {
|
|
29
|
-
type: 'string',
|
|
30
|
-
description: 'remove = strip debugger statements, noop = replace with void 0',
|
|
31
|
-
enum: ['remove', 'noop'],
|
|
32
|
-
default: 'remove',
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
annotations: {
|
|
37
|
-
readOnlyHint: false,
|
|
38
|
-
destructiveHint: false,
|
|
39
|
-
idempotentHint: false,
|
|
40
|
-
openWorldHint: false,
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: 'antidebug_bypass_timing',
|
|
45
|
-
description: 'Bypass timing-based anti-debug checks by stabilizing performance.now / Date.now and console.time APIs.',
|
|
46
|
-
inputSchema: {
|
|
47
|
-
type: 'object',
|
|
48
|
-
properties: {
|
|
49
|
-
maxDrift: {
|
|
50
|
-
type: 'number',
|
|
51
|
-
description: 'Maximum logical time drift allowed per call in milliseconds (default: 50).',
|
|
52
|
-
default: 50,
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
annotations: {
|
|
57
|
-
readOnlyHint: false,
|
|
58
|
-
destructiveHint: false,
|
|
59
|
-
idempotentHint: false,
|
|
60
|
-
openWorldHint: false,
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
name: 'antidebug_bypass_stack_trace',
|
|
65
|
-
description: 'Bypass Error.stack based anti-debug checks by filtering suspicious stack frames and hardening function toString.',
|
|
66
|
-
inputSchema: {
|
|
67
|
-
type: 'object',
|
|
68
|
-
properties: {
|
|
69
|
-
filterPatterns: {
|
|
70
|
-
type: 'array',
|
|
71
|
-
description: 'Additional stack frame patterns to filter. Defaults include puppeteer/devtools/__puppeteer/CDP.',
|
|
72
|
-
items: {
|
|
73
|
-
type: 'string',
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
annotations: {
|
|
79
|
-
readOnlyHint: false,
|
|
80
|
-
destructiveHint: false,
|
|
81
|
-
idempotentHint: false,
|
|
82
|
-
openWorldHint: false,
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
name: 'antidebug_bypass_console_detect',
|
|
87
|
-
description: 'Bypass console-based devtools detection by wrapping console methods and sanitizing getter-based payloads.',
|
|
88
|
-
inputSchema: {
|
|
89
|
-
type: 'object',
|
|
90
|
-
properties: {},
|
|
91
|
-
},
|
|
92
|
-
annotations: {
|
|
93
|
-
readOnlyHint: false,
|
|
94
|
-
destructiveHint: false,
|
|
95
|
-
idempotentHint: false,
|
|
96
|
-
openWorldHint: false,
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
name: 'antidebug_detect_protections',
|
|
101
|
-
description: 'Detect anti-debug protections in the current page and return detected techniques with bypass recommendations.',
|
|
102
|
-
inputSchema: {
|
|
103
|
-
type: 'object',
|
|
104
|
-
properties: {},
|
|
105
|
-
},
|
|
106
|
-
annotations: {
|
|
107
|
-
readOnlyHint: false,
|
|
108
|
-
destructiveHint: false,
|
|
109
|
-
idempotentHint: false,
|
|
110
|
-
openWorldHint: false,
|
|
111
|
-
},
|
|
112
|
-
},
|
|
3
|
+
tool('antidebug_bypass_all')
|
|
4
|
+
.desc('Inject all anti-anti-debug bypass scripts via dual injection')
|
|
5
|
+
.boolean('persistent', 'Also inject persistently for future documents', { default: true })
|
|
6
|
+
.build(),
|
|
7
|
+
tool('antidebug_bypass_debugger_statement')
|
|
8
|
+
.desc('Bypass debugger-statement protection by patching Function constructor')
|
|
9
|
+
.enum('mode', ['remove', 'noop'], 'remove = strip statements, noop = replace with void 0', {
|
|
10
|
+
default: 'remove',
|
|
11
|
+
})
|
|
12
|
+
.build(),
|
|
13
|
+
tool('antidebug_bypass_timing')
|
|
14
|
+
.desc('Bypass timing-based anti-debug by stabilizing performance.now / Date.now')
|
|
15
|
+
.number('maxDrift', 'Max logical time drift per call in ms', { default: 50 })
|
|
16
|
+
.build(),
|
|
17
|
+
tool('antidebug_bypass_stack_trace')
|
|
18
|
+
.desc('Bypass Error.stack anti-debug by filtering suspicious frames and hardening toString')
|
|
19
|
+
.array('filterPatterns', { type: 'string' }, 'Additional stack frame patterns to filter')
|
|
20
|
+
.build(),
|
|
21
|
+
tool('antidebug_bypass_console_detect')
|
|
22
|
+
.desc('Bypass console-based devtools detection by wrapping console methods')
|
|
23
|
+
.build(),
|
|
24
|
+
tool('antidebug_detect_protections')
|
|
25
|
+
.desc('Detect anti-debug protections in current page with bypass recommendations')
|
|
26
|
+
.build(),
|
|
113
27
|
];
|
|
@@ -1,90 +1,61 @@
|
|
|
1
|
+
import { tool } from '../../registry/tool-builder.js';
|
|
1
2
|
export const advancedBrowserToolDefinitions = [
|
|
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
|
-
description: 'URL for alias_open or navigate',
|
|
61
|
-
},
|
|
62
|
-
selector: {
|
|
63
|
-
type: 'string',
|
|
64
|
-
description: 'CSS selector to wait for (wait_for action)',
|
|
65
|
-
},
|
|
66
|
-
waitForText: {
|
|
67
|
-
type: 'string',
|
|
68
|
-
description: 'Text string to wait for in page body (wait_for action)',
|
|
69
|
-
},
|
|
70
|
-
key: {
|
|
71
|
-
type: 'string',
|
|
72
|
-
description: 'Context key for context_set, context_get, transfer',
|
|
73
|
-
},
|
|
74
|
-
value: {
|
|
75
|
-
description: 'Value to store (context_set action)',
|
|
76
|
-
},
|
|
77
|
-
expression: {
|
|
78
|
-
type: 'string',
|
|
79
|
-
description: 'JavaScript expression to evaluate in the source tab (transfer action)',
|
|
80
|
-
},
|
|
81
|
-
timeoutMs: {
|
|
82
|
-
type: 'number',
|
|
83
|
-
description: 'Timeout in milliseconds for wait_for (default: 10000)',
|
|
84
|
-
default: 10000,
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
required: ['action'],
|
|
88
|
-
},
|
|
89
|
-
},
|
|
3
|
+
tool('js_heap_search')
|
|
4
|
+
.desc(`Search the browser JavaScript heap for string values matching a pattern. This is the CE (Cheat Engine) equivalent for web — scans the JS runtime memory to find tokens, API keys, signatures, or any string stored in JS objects.
|
|
5
|
+
|
|
6
|
+
USE THIS to:
|
|
7
|
+
- Find auth tokens stored in memory but not in cookies/localStorage
|
|
8
|
+
- Locate signing keys or secrets held in JS closures
|
|
9
|
+
- Discover values that are only briefly held in memory during a request
|
|
10
|
+
|
|
11
|
+
WARNING: Takes a full heap snapshot (can be 50-500MB for complex pages). Use specific patterns to reduce result noise.
|
|
12
|
+
Results are paginated via DetailedDataManager when large.`)
|
|
13
|
+
.string('pattern', 'String pattern to search for in the JS heap')
|
|
14
|
+
.number('maxResults', 'Maximum number of matches to return (default: 50)', { default: 50 })
|
|
15
|
+
.boolean('caseSensitive', 'Case-sensitive search (default: false)', { default: false })
|
|
16
|
+
.required('pattern')
|
|
17
|
+
.readOnly()
|
|
18
|
+
.idempotent()
|
|
19
|
+
.build(),
|
|
20
|
+
tool('tab_workflow')
|
|
21
|
+
.desc(`Cross-tab coordination for multi-page automation flows.
|
|
22
|
+
|
|
23
|
+
Actions:
|
|
24
|
+
- list: Show all aliases and shared context
|
|
25
|
+
- alias_bind: Name an existing tab by index (e.g., alias="register" index=0)
|
|
26
|
+
- alias_open: Open a URL in a new tab and name it
|
|
27
|
+
- navigate: Navigate a named tab to a URL
|
|
28
|
+
- wait_for: Wait for selector or text to appear in a named tab
|
|
29
|
+
- context_set: Store a value in shared context (accessible across tabs)
|
|
30
|
+
- context_get: Read a value from shared context
|
|
31
|
+
- transfer: Evaluate JS in a named tab and store result in shared context
|
|
32
|
+
|
|
33
|
+
USE THIS for:
|
|
34
|
+
- Registration page ↔ email verification page workflows
|
|
35
|
+
- Any flow requiring coordination between multiple open tabs`)
|
|
36
|
+
.enum('action', [
|
|
37
|
+
'list',
|
|
38
|
+
'alias_bind',
|
|
39
|
+
'alias_open',
|
|
40
|
+
'navigate',
|
|
41
|
+
'wait_for',
|
|
42
|
+
'context_set',
|
|
43
|
+
'context_get',
|
|
44
|
+
'transfer',
|
|
45
|
+
], 'Tab workflow action to perform')
|
|
46
|
+
.string('alias', 'Tab alias name (used by alias_bind, alias_open, navigate, wait_for, transfer)')
|
|
47
|
+
.string('fromAlias', 'Source tab alias for transfer action')
|
|
48
|
+
.number('index', 'Tab index (0-based) for alias_bind')
|
|
49
|
+
.string('url', 'URL for alias_open or navigate')
|
|
50
|
+
.string('selector', 'CSS selector to wait for (wait_for action)')
|
|
51
|
+
.string('waitForText', 'Text string to wait for in page body (wait_for action)')
|
|
52
|
+
.string('key', 'Context key for context_set, context_get, transfer')
|
|
53
|
+
.string('value', 'Value to store (context_set action)')
|
|
54
|
+
.string('expression', 'JavaScript expression to evaluate in the source tab (transfer action)')
|
|
55
|
+
.number('timeoutMs', 'Timeout in milliseconds for wait_for (default: 10000)', {
|
|
56
|
+
default: 10000,
|
|
57
|
+
})
|
|
58
|
+
.required('action')
|
|
59
|
+
.openWorld()
|
|
60
|
+
.build(),
|
|
90
61
|
];
|