@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,7 +1,7 @@
|
|
|
1
|
+
import { tool } from '../../registry/tool-builder.js';
|
|
1
2
|
export const browserPageCoreTools = [
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
description: `Navigate to a URL
|
|
3
|
+
tool('page_navigate')
|
|
4
|
+
.desc(`Navigate to a URL
|
|
5
5
|
|
|
6
6
|
Features:
|
|
7
7
|
- Automatic CAPTCHA detection
|
|
@@ -14,102 +14,39 @@ If you want to capture network requests, you have two options:
|
|
|
14
14
|
2. Set enableNetworkMonitoring=true in page_navigate (convenient for quick capture)
|
|
15
15
|
|
|
16
16
|
Example with network monitoring:
|
|
17
|
-
page_navigate(url="https:
|
|
17
|
+
page_navigate(url="https:")
|
|
18
18
|
-> Network monitoring auto-enabled
|
|
19
19
|
-> Page loads
|
|
20
|
-
-> Use network_get_requests to see captured requests
|
|
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
|
-
description: 'Reload current page',
|
|
51
|
-
inputSchema: {
|
|
52
|
-
type: 'object',
|
|
53
|
-
properties: {},
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
name: 'page_back',
|
|
58
|
-
description: 'Navigate back in history',
|
|
59
|
-
inputSchema: {
|
|
60
|
-
type: 'object',
|
|
61
|
-
properties: {},
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
name: 'page_forward',
|
|
66
|
-
description: 'Navigate forward in history',
|
|
67
|
-
inputSchema: {
|
|
68
|
-
type: 'object',
|
|
69
|
-
properties: {},
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: 'dom_query_selector',
|
|
74
|
-
description: 'Query single element (like document.querySelector). AI should use this BEFORE clicking to verify element exists.',
|
|
75
|
-
inputSchema: {
|
|
76
|
-
type: 'object',
|
|
77
|
-
properties: {
|
|
78
|
-
selector: {
|
|
79
|
-
type: 'string',
|
|
80
|
-
description: 'CSS selector',
|
|
81
|
-
},
|
|
82
|
-
getAttributes: {
|
|
83
|
-
type: 'boolean',
|
|
84
|
-
description: 'Whether to get element attributes',
|
|
85
|
-
default: true,
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
required: ['selector'],
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
name: 'dom_query_all',
|
|
93
|
-
description: 'Query all matching elements (like document.querySelectorAll)',
|
|
94
|
-
inputSchema: {
|
|
95
|
-
type: 'object',
|
|
96
|
-
properties: {
|
|
97
|
-
selector: {
|
|
98
|
-
type: 'string',
|
|
99
|
-
description: 'CSS selector',
|
|
100
|
-
},
|
|
101
|
-
limit: {
|
|
102
|
-
type: 'number',
|
|
103
|
-
description: 'Maximum number of elements to return',
|
|
104
|
-
default: 100,
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
required: ['selector'],
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
name: 'dom_get_structure',
|
|
112
|
-
description: `Get page DOM structure (for AI to understand page layout).
|
|
20
|
+
-> Use network_get_requests to see captured requests`)
|
|
21
|
+
.string('url', 'Target URL to navigate to')
|
|
22
|
+
.enum('waitUntil', ['load', 'domcontentloaded', 'networkidle', 'commit'], 'When to consider navigation succeeded', { default: 'networkidle' })
|
|
23
|
+
.number('timeout', 'Navigation timeout in milliseconds', { default: 30000 })
|
|
24
|
+
.boolean('enableNetworkMonitoring', 'Auto-enable network monitoring before navigation to capture all requests. If already enabled, this has no effect.', { default: false })
|
|
25
|
+
.required('url')
|
|
26
|
+
.idempotent()
|
|
27
|
+
.openWorld()
|
|
28
|
+
.build(),
|
|
29
|
+
tool('page_reload').desc('Reload current page').idempotent().openWorld().build(),
|
|
30
|
+
tool('page_back').desc('Navigate back in history').openWorld().build(),
|
|
31
|
+
tool('page_forward').desc('Navigate forward in history').openWorld().build(),
|
|
32
|
+
tool('dom_query_selector')
|
|
33
|
+
.desc('Query single element (like document.querySelector). AI should use this BEFORE clicking to verify element exists.')
|
|
34
|
+
.string('selector', 'CSS selector')
|
|
35
|
+
.boolean('getAttributes', 'Whether to get element attributes', { default: true })
|
|
36
|
+
.required('selector')
|
|
37
|
+
.readOnly()
|
|
38
|
+
.idempotent()
|
|
39
|
+
.build(),
|
|
40
|
+
tool('dom_query_all')
|
|
41
|
+
.desc('Query all matching elements (like document.querySelectorAll)')
|
|
42
|
+
.string('selector', 'CSS selector')
|
|
43
|
+
.number('limit', 'Maximum number of elements to return', { default: 100 })
|
|
44
|
+
.required('selector')
|
|
45
|
+
.readOnly()
|
|
46
|
+
.idempotent()
|
|
47
|
+
.build(),
|
|
48
|
+
tool('dom_get_structure')
|
|
49
|
+
.desc(`Get page DOM structure (for AI to understand page layout).
|
|
113
50
|
|
|
114
51
|
IMPORTANT: Large DOM structures (>50KB) automatically return summary + detailId.
|
|
115
52
|
|
|
@@ -120,163 +57,72 @@ Best Practices:
|
|
|
120
57
|
|
|
121
58
|
Example:
|
|
122
59
|
dom_get_structure(maxDepth=2, includeText=false)
|
|
123
|
-
-> Returns compact structure without text content
|
|
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
|
-
type: 'string',
|
|
190
|
-
description: 'CSS selector of input element',
|
|
191
|
-
},
|
|
192
|
-
text: {
|
|
193
|
-
type: 'string',
|
|
194
|
-
description: 'Text to type',
|
|
195
|
-
},
|
|
196
|
-
delay: {
|
|
197
|
-
type: 'number',
|
|
198
|
-
description: 'Delay between key presses in milliseconds',
|
|
199
|
-
},
|
|
200
|
-
},
|
|
201
|
-
required: ['selector', 'text'],
|
|
202
|
-
},
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
name: 'page_select',
|
|
206
|
-
description: 'Select option(s) in a <select> element',
|
|
207
|
-
inputSchema: {
|
|
208
|
-
type: 'object',
|
|
209
|
-
properties: {
|
|
210
|
-
selector: {
|
|
211
|
-
type: 'string',
|
|
212
|
-
description: 'CSS selector of select element',
|
|
213
|
-
},
|
|
214
|
-
values: {
|
|
215
|
-
type: 'array',
|
|
216
|
-
description: 'Values to select',
|
|
217
|
-
items: {
|
|
218
|
-
type: 'string',
|
|
219
|
-
},
|
|
220
|
-
},
|
|
221
|
-
},
|
|
222
|
-
required: ['selector', 'values'],
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
name: 'page_hover',
|
|
227
|
-
description: 'Hover over an element',
|
|
228
|
-
inputSchema: {
|
|
229
|
-
type: 'object',
|
|
230
|
-
properties: {
|
|
231
|
-
selector: {
|
|
232
|
-
type: 'string',
|
|
233
|
-
description: 'CSS selector of element to hover',
|
|
234
|
-
},
|
|
235
|
-
},
|
|
236
|
-
required: ['selector'],
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
name: 'page_scroll',
|
|
241
|
-
description: 'Scroll the page',
|
|
242
|
-
inputSchema: {
|
|
243
|
-
type: 'object',
|
|
244
|
-
properties: {
|
|
245
|
-
x: {
|
|
246
|
-
type: 'number',
|
|
247
|
-
description: 'Horizontal scroll position',
|
|
248
|
-
default: 0,
|
|
249
|
-
},
|
|
250
|
-
y: {
|
|
251
|
-
type: 'number',
|
|
252
|
-
description: 'Vertical scroll position',
|
|
253
|
-
default: 0,
|
|
254
|
-
},
|
|
255
|
-
},
|
|
256
|
-
},
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
name: 'page_wait_for_selector',
|
|
260
|
-
description: 'Wait for an element to appear',
|
|
261
|
-
inputSchema: {
|
|
262
|
-
type: 'object',
|
|
263
|
-
properties: {
|
|
264
|
-
selector: {
|
|
265
|
-
type: 'string',
|
|
266
|
-
description: 'CSS selector to wait for',
|
|
267
|
-
},
|
|
268
|
-
timeout: {
|
|
269
|
-
type: 'number',
|
|
270
|
-
description: 'Timeout in milliseconds',
|
|
271
|
-
default: 30000,
|
|
272
|
-
},
|
|
273
|
-
},
|
|
274
|
-
required: ['selector'],
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
name: 'page_evaluate',
|
|
279
|
-
description: `Execute JavaScript code in page context and get result.
|
|
60
|
+
-> Returns compact structure without text content`)
|
|
61
|
+
.number('maxDepth', 'Maximum depth of DOM tree (default: 3, recommend: 2 for large pages)', {
|
|
62
|
+
default: 3,
|
|
63
|
+
})
|
|
64
|
+
.boolean('includeText', 'Whether to include text content (set false to reduce size)', {
|
|
65
|
+
default: true,
|
|
66
|
+
})
|
|
67
|
+
.readOnly()
|
|
68
|
+
.idempotent()
|
|
69
|
+
.build(),
|
|
70
|
+
tool('dom_find_clickable')
|
|
71
|
+
.desc('Find all clickable elements (buttons, links). Use this to discover what can be clicked.')
|
|
72
|
+
.string('filterText', 'Filter by text content (optional)')
|
|
73
|
+
.readOnly()
|
|
74
|
+
.idempotent()
|
|
75
|
+
.build(),
|
|
76
|
+
tool('page_click')
|
|
77
|
+
.desc('Click an element. Use dom_query_selector FIRST to verify element exists.')
|
|
78
|
+
.string('selector', 'CSS selector of element to click')
|
|
79
|
+
.enum('button', ['left', 'right', 'middle'], 'Mouse button to click', { default: 'left' })
|
|
80
|
+
.number('clickCount', 'Number of clicks (numeric string is accepted and auto-normalized)', {
|
|
81
|
+
default: 1,
|
|
82
|
+
})
|
|
83
|
+
.number('delay', 'Delay between mousedown and mouseup in milliseconds (numeric string is accepted)')
|
|
84
|
+
.required('selector')
|
|
85
|
+
.openWorld()
|
|
86
|
+
.build(),
|
|
87
|
+
tool('page_type')
|
|
88
|
+
.desc('Type text into an input element')
|
|
89
|
+
.string('selector', 'CSS selector of input element')
|
|
90
|
+
.string('text', 'Text to type')
|
|
91
|
+
.number('delay', 'Delay between key presses in milliseconds')
|
|
92
|
+
.required('selector', 'text')
|
|
93
|
+
.openWorld()
|
|
94
|
+
.build(),
|
|
95
|
+
tool('page_select')
|
|
96
|
+
.desc('Select option(s) in a <select> element')
|
|
97
|
+
.string('selector', 'CSS selector of select element')
|
|
98
|
+
.array('values', { type: 'string' }, 'Values to select')
|
|
99
|
+
.required('selector', 'values')
|
|
100
|
+
.idempotent()
|
|
101
|
+
.openWorld()
|
|
102
|
+
.build(),
|
|
103
|
+
tool('page_hover')
|
|
104
|
+
.desc('Hover over an element')
|
|
105
|
+
.string('selector', 'CSS selector of element to hover')
|
|
106
|
+
.required('selector')
|
|
107
|
+
.idempotent()
|
|
108
|
+
.openWorld()
|
|
109
|
+
.build(),
|
|
110
|
+
tool('page_scroll')
|
|
111
|
+
.desc('Scroll the page')
|
|
112
|
+
.number('x', 'Horizontal scroll position', { default: 0 })
|
|
113
|
+
.number('y', 'Vertical scroll position', { default: 0 })
|
|
114
|
+
.idempotent()
|
|
115
|
+
.build(),
|
|
116
|
+
tool('page_wait_for_selector')
|
|
117
|
+
.desc('Wait for an element to appear')
|
|
118
|
+
.string('selector', 'CSS selector to wait for')
|
|
119
|
+
.number('timeout', 'Timeout in milliseconds', { default: 30000 })
|
|
120
|
+
.required('selector')
|
|
121
|
+
.readOnly()
|
|
122
|
+
.idempotent()
|
|
123
|
+
.build(),
|
|
124
|
+
tool('page_evaluate')
|
|
125
|
+
.desc(`Execute JavaScript code in page context and get result.
|
|
280
126
|
|
|
281
127
|
IMPORTANT: Large results (>50KB) automatically return summary + detailId to prevent context overflow.
|
|
282
128
|
Use get_detailed_data(detailId) to retrieve full data if needed.
|
|
@@ -289,111 +135,59 @@ Best Practices:
|
|
|
289
135
|
Example:
|
|
290
136
|
page_evaluate("({ keys: Object.keys(window.byted_acrawler), type: typeof window.byted_acrawler })")
|
|
291
137
|
-> Returns small summary
|
|
292
|
-
-> If you need full object, use the returned detailId
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
maxSize: {
|
|
306
|
-
type: 'number',
|
|
307
|
-
description: 'Max result size in bytes before auto-summarizing (default: 50KB)',
|
|
308
|
-
default: 51200,
|
|
309
|
-
},
|
|
310
|
-
fieldFilter: {
|
|
311
|
-
type: 'array',
|
|
312
|
-
items: { type: 'string' },
|
|
313
|
-
description: 'Server-side field filter: remove keys matching these names from the result object (recursive). Useful to strip noise fields like "icon", "avatar", "base64Image".',
|
|
314
|
-
},
|
|
315
|
-
stripBase64: {
|
|
316
|
-
type: 'boolean',
|
|
317
|
-
description: 'Strip data URI and bare base64 strings from the result, replacing them with a size placeholder. Prevents context overflow from embedded images/fonts (default: false).',
|
|
318
|
-
default: false,
|
|
319
|
-
},
|
|
320
|
-
},
|
|
321
|
-
required: ['code'],
|
|
322
|
-
},
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
name: 'page_screenshot',
|
|
326
|
-
description: `Take a screenshot of the page, a specific DOM element, multiple elements, or a pixel region.
|
|
138
|
+
-> If you need full object, use the returned detailId`)
|
|
139
|
+
.string('code', 'JavaScript code to execute')
|
|
140
|
+
.boolean('autoSummarize', 'Auto-summarize large results (default: true)', { default: true })
|
|
141
|
+
.number('maxSize', 'Max result size in bytes before auto-summarizing (default: 50KB)', {
|
|
142
|
+
default: 51200,
|
|
143
|
+
})
|
|
144
|
+
.array('fieldFilter', { type: 'string' }, 'Server-side field filter: remove keys matching these names from the result object (recursive). Useful to strip noise fields like "icon", "avatar", "base64Image".')
|
|
145
|
+
.boolean('stripBase64', 'Strip data URI and bare base64 strings from the result, replacing them with a size placeholder. Prevents context overflow from embedded images/fonts (default: false).', { default: false })
|
|
146
|
+
.required('code')
|
|
147
|
+
.openWorld()
|
|
148
|
+
.build(),
|
|
149
|
+
tool('page_screenshot')
|
|
150
|
+
.desc(`Take a screenshot of the page, a specific DOM element, multiple elements, or a pixel region.
|
|
327
151
|
|
|
328
152
|
Modes:
|
|
329
153
|
- Full page: omit selector or pass "all"
|
|
330
154
|
- Single element: selector = ".my-class"
|
|
331
155
|
- Multiple elements: selector = [".header", "#main", ".footer"] — returns one screenshot per element
|
|
332
|
-
- Pixel region: pass clip = {x, y, width, height} (ignored when selector is set)
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
type: 'array',
|
|
341
|
-
items: { type: 'string' },
|
|
342
|
-
description: 'Array of CSS selectors for batch element screenshots',
|
|
343
|
-
},
|
|
344
|
-
],
|
|
345
|
-
description: 'CSS selector(s) of the element(s) to screenshot. Omit or pass "all" for full page viewport.',
|
|
346
|
-
},
|
|
347
|
-
clip: {
|
|
348
|
-
type: 'object',
|
|
349
|
-
description: 'Pixel region to capture (ignored when selector is set)',
|
|
350
|
-
properties: {
|
|
351
|
-
x: { type: 'number', description: 'Left offset in pixels' },
|
|
352
|
-
y: { type: 'number', description: 'Top offset in pixels' },
|
|
353
|
-
width: { type: 'number', description: 'Region width in pixels' },
|
|
354
|
-
height: { type: 'number', description: 'Region height in pixels' },
|
|
355
|
-
},
|
|
356
|
-
required: ['x', 'y', 'width', 'height'],
|
|
357
|
-
},
|
|
358
|
-
path: {
|
|
359
|
-
type: 'string',
|
|
360
|
-
description: 'File path to save screenshot (optional). For batch mode, used as directory or base name.',
|
|
361
|
-
},
|
|
362
|
-
type: {
|
|
363
|
-
type: 'string',
|
|
364
|
-
description: 'Image format',
|
|
365
|
-
enum: ['png', 'jpeg'],
|
|
366
|
-
default: 'png',
|
|
367
|
-
},
|
|
368
|
-
quality: {
|
|
369
|
-
type: 'number',
|
|
370
|
-
description: 'Image quality (0-100, only for jpeg)',
|
|
371
|
-
},
|
|
372
|
-
fullPage: {
|
|
373
|
-
type: 'boolean',
|
|
374
|
-
description: 'Capture full scrollable page (ignored when selector or clip is set)',
|
|
375
|
-
default: false,
|
|
376
|
-
},
|
|
377
|
-
},
|
|
378
|
-
},
|
|
379
|
-
},
|
|
380
|
-
{
|
|
381
|
-
name: 'get_all_scripts',
|
|
382
|
-
description: 'Get list of all loaded scripts on the page',
|
|
383
|
-
inputSchema: {
|
|
384
|
-
type: 'object',
|
|
385
|
-
properties: {
|
|
386
|
-
includeSource: {
|
|
387
|
-
type: 'boolean',
|
|
388
|
-
description: 'Whether to include script source code',
|
|
389
|
-
default: false,
|
|
390
|
-
},
|
|
156
|
+
- Pixel region: pass clip = {x, y, width, height} (ignored when selector is set)`)
|
|
157
|
+
.prop('selector', {
|
|
158
|
+
oneOf: [
|
|
159
|
+
{ type: 'string', description: 'Single CSS selector' },
|
|
160
|
+
{
|
|
161
|
+
type: 'array',
|
|
162
|
+
items: { type: 'string' },
|
|
163
|
+
description: 'Array of CSS selectors for batch element screenshots',
|
|
391
164
|
},
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
165
|
+
],
|
|
166
|
+
description: 'CSS selector(s) of the element(s) to screenshot. Omit or pass "all" for full page viewport.',
|
|
167
|
+
})
|
|
168
|
+
.object('clip', {
|
|
169
|
+
x: { type: 'number', description: 'Left offset in pixels' },
|
|
170
|
+
y: { type: 'number', description: 'Top offset in pixels' },
|
|
171
|
+
width: { type: 'number', description: 'Region width in pixels' },
|
|
172
|
+
height: { type: 'number', description: 'Region height in pixels' },
|
|
173
|
+
}, 'Pixel region to capture (ignored when selector is set)', { required: ['x', 'y', 'width', 'height'] })
|
|
174
|
+
.string('path', 'File path to save screenshot (optional). For batch mode, used as directory or base name.')
|
|
175
|
+
.enum('type', ['png', 'jpeg'], 'Image format', { default: 'png' })
|
|
176
|
+
.number('quality', 'Image quality (0-100, only for jpeg)')
|
|
177
|
+
.boolean('fullPage', 'Capture full scrollable page (ignored when selector or clip is set)', {
|
|
178
|
+
default: false,
|
|
179
|
+
})
|
|
180
|
+
.readOnly()
|
|
181
|
+
.idempotent()
|
|
182
|
+
.build(),
|
|
183
|
+
tool('get_all_scripts')
|
|
184
|
+
.desc('Get list of all loaded scripts on the page')
|
|
185
|
+
.boolean('includeSource', 'Whether to include script source code', { default: false })
|
|
186
|
+
.readOnly()
|
|
187
|
+
.idempotent()
|
|
188
|
+
.build(),
|
|
189
|
+
tool('get_script_source')
|
|
190
|
+
.desc(`Get source code of a specific script.
|
|
397
191
|
|
|
398
192
|
IMPORTANT: Large scripts (>50KB) automatically return summary + detailId.
|
|
399
193
|
Use preview mode first to check script size before fetching full source.
|
|
@@ -406,37 +200,14 @@ Best Practices:
|
|
|
406
200
|
Example:
|
|
407
201
|
get_script_source(scriptId="abc", preview=true)
|
|
408
202
|
-> Returns: { lines: 5000, size: "500KB", preview: "...", detailId: "..." }
|
|
409
|
-
-> Then: get_detailed_data(detailId) to get full source
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
description: 'Script URL (supports wildcards like *.js)',
|
|
420
|
-
},
|
|
421
|
-
preview: {
|
|
422
|
-
type: 'boolean',
|
|
423
|
-
description: 'Return preview only (first 100 lines + metadata)',
|
|
424
|
-
default: false,
|
|
425
|
-
},
|
|
426
|
-
maxLines: {
|
|
427
|
-
type: 'number',
|
|
428
|
-
description: 'Max lines to return in preview mode (default: 100)',
|
|
429
|
-
default: 100,
|
|
430
|
-
},
|
|
431
|
-
startLine: {
|
|
432
|
-
type: 'number',
|
|
433
|
-
description: 'Start line number (1-based, for partial fetch)',
|
|
434
|
-
},
|
|
435
|
-
endLine: {
|
|
436
|
-
type: 'number',
|
|
437
|
-
description: 'End line number (1-based, for partial fetch)',
|
|
438
|
-
},
|
|
439
|
-
},
|
|
440
|
-
},
|
|
441
|
-
},
|
|
203
|
+
-> Then: get_detailed_data(detailId) to get full source`)
|
|
204
|
+
.string('scriptId', 'Script ID from get_all_scripts')
|
|
205
|
+
.string('url', 'Script URL (supports wildcards like *.js)')
|
|
206
|
+
.boolean('preview', 'Return preview only (first 100 lines + metadata)', { default: false })
|
|
207
|
+
.number('maxLines', 'Max lines to return in preview mode (default: 100)', { default: 100 })
|
|
208
|
+
.number('startLine', 'Start line number (1-based, for partial fetch)')
|
|
209
|
+
.number('endLine', 'End line number (1-based, for partial fetch)')
|
|
210
|
+
.readOnly()
|
|
211
|
+
.idempotent()
|
|
212
|
+
.build(),
|
|
442
213
|
];
|