@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
|
@@ -224,7 +224,11 @@ export class FrameworkStateHandlers {
|
|
|
224
224
|
return null;
|
|
225
225
|
states.push({
|
|
226
226
|
component: 'SolidRoot',
|
|
227
|
-
state: [
|
|
227
|
+
state: [
|
|
228
|
+
{
|
|
229
|
+
_note: 'Solid detected via hydration markers; install solid-devtools for full state extraction',
|
|
230
|
+
},
|
|
231
|
+
],
|
|
228
232
|
});
|
|
229
233
|
return states;
|
|
230
234
|
}
|
|
@@ -287,7 +291,9 @@ export class FrameworkStateHandlers {
|
|
|
287
291
|
}
|
|
288
292
|
const typeName = vnode['type'];
|
|
289
293
|
const name = typeof typeName === 'function'
|
|
290
|
-
? typeName['displayName'] ??
|
|
294
|
+
? (typeName['displayName'] ??
|
|
295
|
+
typeName['name'] ??
|
|
296
|
+
'PreactComponent')
|
|
291
297
|
: typeof typeName === 'string'
|
|
292
298
|
? typeName
|
|
293
299
|
: 'PreactComponent';
|
|
@@ -362,25 +368,37 @@ export class FrameworkStateHandlers {
|
|
|
362
368
|
const rootEl = getRootEl();
|
|
363
369
|
const rootObj = rootEl;
|
|
364
370
|
const keys = Object.keys(rootObj);
|
|
371
|
+
const hasReactMarker = keys.some((k) => k.startsWith('__reactFiber') ||
|
|
372
|
+
k.startsWith('__reactInternalInstance') ||
|
|
373
|
+
k.startsWith('__reactFiberContainer'));
|
|
374
|
+
const hasVue3Marker = keys.some((k) => k === '__vueParentComponent' || k === '__vue_app__');
|
|
375
|
+
const hasVue2Marker = keys.some((k) => k === '__vue__');
|
|
376
|
+
const hasSvelteMarker = keys.some((k) => k === '$$' || k === '__svelte_meta' || k.startsWith('__s'));
|
|
377
|
+
const hasSolidMarker = win['_$DX'] !== undefined ||
|
|
378
|
+
win['_$HY'] !== undefined ||
|
|
379
|
+
Boolean(document.querySelector('[data-hk]'));
|
|
380
|
+
const hasPreactMarker = keys.some((k) => k === '__k' || k === '__e' || k === '_dom' || k === '_children');
|
|
365
381
|
let detectedFramework = opts.framework;
|
|
382
|
+
if (detectedFramework === 'preact' && hasReactMarker) {
|
|
383
|
+
detectedFramework = 'react';
|
|
384
|
+
}
|
|
366
385
|
if (detectedFramework === 'auto') {
|
|
367
|
-
if (
|
|
386
|
+
if (hasReactMarker) {
|
|
368
387
|
detectedFramework = 'react';
|
|
369
388
|
}
|
|
370
|
-
else if (
|
|
389
|
+
else if (hasVue3Marker) {
|
|
371
390
|
detectedFramework = 'vue3';
|
|
372
391
|
}
|
|
373
|
-
else if (
|
|
392
|
+
else if (hasVue2Marker) {
|
|
374
393
|
detectedFramework = 'vue2';
|
|
375
394
|
}
|
|
376
|
-
else if (
|
|
395
|
+
else if (hasSvelteMarker) {
|
|
377
396
|
detectedFramework = 'svelte';
|
|
378
397
|
}
|
|
379
|
-
else if (
|
|
398
|
+
else if (hasSolidMarker) {
|
|
380
399
|
detectedFramework = 'solid';
|
|
381
400
|
}
|
|
382
|
-
else if (
|
|
383
|
-
keys.some((k) => k === '__k' || k === '__e' || k === '_dom')) {
|
|
401
|
+
else if (hasPreactMarker) {
|
|
384
402
|
detectedFramework = 'preact';
|
|
385
403
|
}
|
|
386
404
|
}
|
|
@@ -13,33 +13,24 @@ export class IndexedDBDumpHandlers {
|
|
|
13
13
|
const result = await page.evaluate(async (opts) => {
|
|
14
14
|
const dbList = await indexedDB.databases();
|
|
15
15
|
const output = {};
|
|
16
|
-
const openDb = (name, version) => new Promise((resolve, reject) => {
|
|
17
|
-
const req = version ? indexedDB.open(name, version) : indexedDB.open(name);
|
|
18
|
-
req.onsuccess = () => resolve(req.result);
|
|
19
|
-
req.onerror = () => reject(req.error);
|
|
20
|
-
});
|
|
21
|
-
const getAllFromStore = (db, storeName, max) => new Promise((resolve, reject) => {
|
|
22
|
-
try {
|
|
23
|
-
const tx = db.transaction(storeName, 'readonly');
|
|
24
|
-
const req = tx.objectStore(storeName).getAll();
|
|
25
|
-
req.onsuccess = () => resolve(req.result.slice(0, max));
|
|
26
|
-
req.onerror = () => reject(req.error);
|
|
27
|
-
}
|
|
28
|
-
catch (e) {
|
|
29
|
-
reject(e);
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
16
|
for (const dbInfo of dbList) {
|
|
33
17
|
if (!dbInfo.name)
|
|
34
18
|
continue;
|
|
35
19
|
if (opts.database && dbInfo.name !== opts.database)
|
|
36
20
|
continue;
|
|
21
|
+
const dbName = dbInfo.name;
|
|
37
22
|
let db;
|
|
38
23
|
try {
|
|
39
|
-
db = await
|
|
24
|
+
db = await new Promise((resolve, reject) => {
|
|
25
|
+
const req = dbInfo.version
|
|
26
|
+
? indexedDB.open(dbName, dbInfo.version)
|
|
27
|
+
: indexedDB.open(dbName);
|
|
28
|
+
req.addEventListener('success', () => resolve(req.result), { once: true });
|
|
29
|
+
req.addEventListener('error', () => reject(req.error), { once: true });
|
|
30
|
+
});
|
|
40
31
|
}
|
|
41
32
|
catch {
|
|
42
|
-
output[
|
|
33
|
+
output[dbName] = { __error__: ['failed to open'] };
|
|
43
34
|
continue;
|
|
44
35
|
}
|
|
45
36
|
const storeNames = Array.from(db.objectStoreNames);
|
|
@@ -48,14 +39,24 @@ export class IndexedDBDumpHandlers {
|
|
|
48
39
|
if (opts.store && storeName !== opts.store)
|
|
49
40
|
continue;
|
|
50
41
|
try {
|
|
51
|
-
dbData[storeName] = await
|
|
42
|
+
dbData[storeName] = await new Promise((resolve, reject) => {
|
|
43
|
+
try {
|
|
44
|
+
const tx = db.transaction(storeName, 'readonly');
|
|
45
|
+
const req = tx.objectStore(storeName).getAll();
|
|
46
|
+
req.addEventListener('success', () => resolve(req.result.slice(0, opts.maxRecords)), { once: true });
|
|
47
|
+
req.addEventListener('error', () => reject(req.error), { once: true });
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
reject(e);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
52
53
|
}
|
|
53
54
|
catch {
|
|
54
55
|
dbData[storeName] = ['__error reading store__'];
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
db.close();
|
|
58
|
-
output[
|
|
59
|
+
output[dbName] = dbData;
|
|
59
60
|
}
|
|
60
61
|
return output;
|
|
61
62
|
}, { database, store, maxRecords });
|
|
@@ -24,7 +24,7 @@ export class ScriptManagementHandlers {
|
|
|
24
24
|
async handleGetScriptSource(args) {
|
|
25
25
|
const scriptId = argString(args, 'scriptId');
|
|
26
26
|
const url = argString(args, 'url');
|
|
27
|
-
const preview = argBool(args, 'preview',
|
|
27
|
+
const preview = argBool(args, 'preview', true);
|
|
28
28
|
const maxLines = argNumber(args, 'maxLines', 100);
|
|
29
29
|
const startLine = argNumber(args, 'startLine');
|
|
30
30
|
const endLine = argNumber(args, 'endLine');
|
|
@@ -4,7 +4,6 @@ import type { DOMInspector } from '../../domains/shared/modules.js';
|
|
|
4
4
|
import type { ScriptManager } from '../../domains/shared/modules.js';
|
|
5
5
|
import type { ConsoleMonitor } from '../../domains/shared/modules.js';
|
|
6
6
|
import { AICaptchaDetector } from '../../domains/shared/modules.js';
|
|
7
|
-
import { type LLMService } from '../../../services/LLMService.js';
|
|
8
7
|
import { DetailedDataManager } from '../../../utils/DetailedDataManager.js';
|
|
9
8
|
import { type CamoufoxBrowserManager } from '../../domains/shared/modules.js';
|
|
10
9
|
import { BrowserControlHandlers } from '../../domains/browser/handlers/browser-control.js';
|
|
@@ -58,7 +57,7 @@ export declare class BrowserToolHandlers {
|
|
|
58
57
|
private tabWorkflow;
|
|
59
58
|
private detailedData;
|
|
60
59
|
private _tabRegistry;
|
|
61
|
-
constructor(collector: CodeCollector, pageController: PageController, domInspector: DOMInspector, scriptManager: ScriptManager, consoleMonitor: ConsoleMonitor
|
|
60
|
+
constructor(collector: CodeCollector, pageController: PageController, domInspector: DOMInspector, scriptManager: ScriptManager, consoleMonitor: ConsoleMonitor);
|
|
62
61
|
getTabRegistry(): TabRegistry;
|
|
63
62
|
private getCamoufoxPage;
|
|
64
63
|
private closeCamoufox;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AICaptchaDetector } from '../../domains/shared/modules.js';
|
|
2
|
-
import {} from '../../../services/LLMService.js';
|
|
3
2
|
import { argString, argNumber, argBool } from '../../domains/shared/parse-args.js';
|
|
4
3
|
import { DetailedDataManager } from '../../../utils/DetailedDataManager.js';
|
|
5
4
|
import { resolveOutputDirectory } from '../../../utils/outputPaths.js';
|
|
@@ -60,14 +59,14 @@ export class BrowserToolHandlers {
|
|
|
60
59
|
tabWorkflow;
|
|
61
60
|
detailedData;
|
|
62
61
|
_tabRegistry;
|
|
63
|
-
constructor(collector, pageController, domInspector, scriptManager, consoleMonitor
|
|
62
|
+
constructor(collector, pageController, domInspector, scriptManager, consoleMonitor) {
|
|
64
63
|
this.collector = collector;
|
|
65
64
|
this.pageController = pageController;
|
|
66
65
|
this.domInspector = domInspector;
|
|
67
66
|
this.scriptManager = scriptManager;
|
|
68
67
|
this.consoleMonitor = consoleMonitor;
|
|
69
68
|
const screenshotDir = resolveOutputDirectory(process.env.CAPTCHA_SCREENSHOT_DIR, 'screenshots/captcha');
|
|
70
|
-
this.captchaDetector = new AICaptchaDetector(
|
|
69
|
+
this.captchaDetector = new AICaptchaDetector(screenshotDir);
|
|
71
70
|
this.detailedDataManager = DetailedDataManager.getInstance();
|
|
72
71
|
const modules = initializeBrowserHandlerModules({
|
|
73
72
|
collector: this.collector,
|
|
@@ -8,7 +8,7 @@ const b = (invoke) => bindByDepKey(DEP_KEY, invoke);
|
|
|
8
8
|
function ensure(ctx) {
|
|
9
9
|
ensureBrowserCore(ctx);
|
|
10
10
|
if (!ctx.browserHandlers) {
|
|
11
|
-
ctx.browserHandlers = new BrowserToolHandlers(ctx.collector, ctx.pageController, ctx.domInspector, ctx.scriptManager, ctx.consoleMonitor
|
|
11
|
+
ctx.browserHandlers = new BrowserToolHandlers(ctx.collector, ctx.pageController, ctx.domInspector, ctx.scriptManager, ctx.consoleMonitor);
|
|
12
12
|
}
|
|
13
13
|
return ctx.browserHandlers;
|
|
14
14
|
}
|
|
@@ -29,18 +29,42 @@ const manifest = {
|
|
|
29
29
|
hint: 'Browser automation workflow: bootstrap browser/page state -> navigate -> interact -> extract data',
|
|
30
30
|
},
|
|
31
31
|
prerequisites: {
|
|
32
|
-
page_navigate: [
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
page_navigate: [
|
|
33
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
34
|
+
],
|
|
35
|
+
page_click: [
|
|
36
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
37
|
+
],
|
|
38
|
+
page_type: [
|
|
39
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
40
|
+
],
|
|
41
|
+
page_screenshot: [
|
|
42
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
43
|
+
],
|
|
44
|
+
page_evaluate: [
|
|
45
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
46
|
+
],
|
|
47
|
+
page_hover: [
|
|
48
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
49
|
+
],
|
|
50
|
+
page_scroll: [
|
|
51
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
52
|
+
],
|
|
53
|
+
page_back: [
|
|
54
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
55
|
+
],
|
|
56
|
+
page_forward: [
|
|
57
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
58
|
+
],
|
|
59
|
+
page_reload: [
|
|
60
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
61
|
+
],
|
|
62
|
+
dom_get_structure: [
|
|
63
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
64
|
+
],
|
|
65
|
+
dom_query_selector: [
|
|
66
|
+
{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
|
|
67
|
+
],
|
|
44
68
|
},
|
|
45
69
|
registrations: [
|
|
46
70
|
{ tool: t('get_detailed_data'), domain: DOMAIN, bind: b((h, a) => h.handleGetDetailedData(a)) },
|
|
@@ -1,218 +1,52 @@
|
|
|
1
|
+
import { tool } from '../../registry/tool-builder.js';
|
|
1
2
|
export const coordinationTools = [
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
description
|
|
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
|
-
inputSchema: {
|
|
52
|
-
type: 'object',
|
|
53
|
-
properties: {
|
|
54
|
-
taskId: {
|
|
55
|
-
type: 'string',
|
|
56
|
-
description: 'Task ID from create_task_handoff',
|
|
57
|
-
},
|
|
58
|
-
summary: {
|
|
59
|
-
type: 'string',
|
|
60
|
-
description: 'Concise summary of what was accomplished',
|
|
61
|
-
},
|
|
62
|
-
keyFindings: {
|
|
63
|
-
type: 'array',
|
|
64
|
-
items: { type: 'string' },
|
|
65
|
-
description: 'Key discoveries or results from the task',
|
|
66
|
-
},
|
|
67
|
-
artifacts: {
|
|
68
|
-
type: 'array',
|
|
69
|
-
items: { type: 'string' },
|
|
70
|
-
description: 'Paths to generated artifact files (HAR exports, reports, etc.)',
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
required: ['taskId', 'summary'],
|
|
74
|
-
},
|
|
75
|
-
annotations: {
|
|
76
|
-
title: 'Complete Task Handoff',
|
|
77
|
-
readOnlyHint: false,
|
|
78
|
-
destructiveHint: false,
|
|
79
|
-
idempotentHint: false,
|
|
80
|
-
openWorldHint: false,
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
name: 'get_task_context',
|
|
85
|
-
description: 'Read the context of a task handoff.\n\n' +
|
|
86
|
-
'Returns the full handoff record including description, constraints, status, ' +
|
|
87
|
-
'page URL, and any completion data. If no taskId is provided, returns all active handoffs.\n\n' +
|
|
88
|
-
'Also returns accumulated session insights when no taskId is specified.\n\n' +
|
|
89
|
-
'Example:\n' +
|
|
90
|
-
' get_task_context() // list all handoffs + session insights\n' +
|
|
91
|
-
' get_task_context({ taskId: "abc" }) // specific handoff details',
|
|
92
|
-
inputSchema: {
|
|
93
|
-
type: 'object',
|
|
94
|
-
properties: {
|
|
95
|
-
taskId: {
|
|
96
|
-
type: 'string',
|
|
97
|
-
description: 'Specific task ID to retrieve (omit for all active handoffs)',
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
annotations: {
|
|
102
|
-
title: 'Get Task Context',
|
|
103
|
-
readOnlyHint: true,
|
|
104
|
-
destructiveHint: false,
|
|
105
|
-
idempotentHint: true,
|
|
106
|
-
openWorldHint: false,
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
name: 'append_session_insight',
|
|
111
|
-
description: 'Append a discovery to the session-level knowledge accumulator.\n\n' +
|
|
112
|
-
'Session insights persist for the lifetime of the MCP session and are shared ' +
|
|
113
|
-
'across all handoffs. Use this to record cross-cutting findings that any agent ' +
|
|
114
|
-
'in the session should know about.\n\n' +
|
|
115
|
-
'Categories: "auth", "crypto", "api", "anti_debug", "architecture", "vulnerability", "other"\n\n' +
|
|
116
|
-
'Example:\n' +
|
|
117
|
-
' append_session_insight({\n' +
|
|
118
|
-
' category: "auth",\n' +
|
|
119
|
-
' content: "JWT stored in localStorage under key \'access_token\'",\n' +
|
|
120
|
-
' confidence: 0.95\n' +
|
|
121
|
-
' })',
|
|
122
|
-
inputSchema: {
|
|
123
|
-
type: 'object',
|
|
124
|
-
properties: {
|
|
125
|
-
category: {
|
|
126
|
-
type: 'string',
|
|
127
|
-
enum: ['auth', 'crypto', 'api', 'anti_debug', 'architecture', 'vulnerability', 'other'],
|
|
128
|
-
description: 'Category of the insight',
|
|
129
|
-
},
|
|
130
|
-
content: {
|
|
131
|
-
type: 'string',
|
|
132
|
-
description: 'The insight content',
|
|
133
|
-
},
|
|
134
|
-
confidence: {
|
|
135
|
-
type: 'number',
|
|
136
|
-
description: 'Confidence level 0.0-1.0 (default: 1.0)',
|
|
137
|
-
minimum: 0,
|
|
138
|
-
maximum: 1,
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
required: ['category', 'content'],
|
|
142
|
-
},
|
|
143
|
-
annotations: {
|
|
144
|
-
title: 'Append Session Insight',
|
|
145
|
-
readOnlyHint: false,
|
|
146
|
-
destructiveHint: false,
|
|
147
|
-
idempotentHint: false,
|
|
148
|
-
openWorldHint: false,
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
name: 'save_page_snapshot',
|
|
153
|
-
description: 'Save a snapshot of the current page state (URL, cookies, localStorage, sessionStorage).\n\n' +
|
|
154
|
-
'Useful for checkpoint/restore workflows during reverse engineering — ' +
|
|
155
|
-
'save state before invasive operations, restore if needed.\n\n' +
|
|
156
|
-
'Example:\n' +
|
|
157
|
-
' save_page_snapshot()\n' +
|
|
158
|
-
' save_page_snapshot({ label: "before-login" })',
|
|
159
|
-
inputSchema: {
|
|
160
|
-
type: 'object',
|
|
161
|
-
properties: {
|
|
162
|
-
label: {
|
|
163
|
-
type: 'string',
|
|
164
|
-
description: 'Optional human-readable label for this snapshot',
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
annotations: {
|
|
169
|
-
title: 'Save Page Snapshot',
|
|
170
|
-
readOnlyHint: true,
|
|
171
|
-
destructiveHint: false,
|
|
172
|
-
idempotentHint: false,
|
|
173
|
-
openWorldHint: false,
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
name: 'restore_page_snapshot',
|
|
178
|
-
description: 'Restore a previously saved page snapshot.\n\n' +
|
|
179
|
-
'Navigates to the saved URL and reinjects cookies, localStorage, and sessionStorage.\n\n' +
|
|
180
|
-
'Example:\n' +
|
|
181
|
-
' restore_page_snapshot({ snapshotId: "a1b2c3d4" })',
|
|
182
|
-
inputSchema: {
|
|
183
|
-
type: 'object',
|
|
184
|
-
properties: {
|
|
185
|
-
snapshotId: {
|
|
186
|
-
type: 'string',
|
|
187
|
-
description: 'Snapshot ID from save_page_snapshot',
|
|
188
|
-
},
|
|
189
|
-
},
|
|
190
|
-
required: ['snapshotId'],
|
|
191
|
-
},
|
|
192
|
-
annotations: {
|
|
193
|
-
title: 'Restore Page Snapshot',
|
|
194
|
-
readOnlyHint: false,
|
|
195
|
-
destructiveHint: false,
|
|
196
|
-
idempotentHint: true,
|
|
197
|
-
openWorldHint: false,
|
|
198
|
-
},
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
name: 'list_page_snapshots',
|
|
202
|
-
description: 'List all saved page snapshots in the current session.\n\n' +
|
|
203
|
-
'Returns snapshot IDs, URLs, labels, and state counts.\n\n' +
|
|
204
|
-
'Example:\n' +
|
|
205
|
-
' list_page_snapshots()',
|
|
206
|
-
inputSchema: {
|
|
207
|
-
type: 'object',
|
|
208
|
-
properties: {},
|
|
209
|
-
},
|
|
210
|
-
annotations: {
|
|
211
|
-
title: 'List Page Snapshots',
|
|
212
|
-
readOnlyHint: true,
|
|
213
|
-
destructiveHint: false,
|
|
214
|
-
idempotentHint: true,
|
|
215
|
-
openWorldHint: false,
|
|
216
|
-
},
|
|
217
|
-
},
|
|
3
|
+
tool('create_task_handoff')
|
|
4
|
+
.desc('Create a sub-task handoff for specialist agent delegation. Auto-captures active page URL.')
|
|
5
|
+
.string('description', 'What the specialist should accomplish')
|
|
6
|
+
.array('constraints', { type: 'string' }, 'Constraints for the specialist')
|
|
7
|
+
.string('targetDomain', 'Suggested domain for the specialist')
|
|
8
|
+
.required('description')
|
|
9
|
+
.build(),
|
|
10
|
+
tool('complete_task_handoff')
|
|
11
|
+
.desc('Complete a task handoff with results. Transitions status to completed.')
|
|
12
|
+
.string('taskId', 'Task ID from create_task_handoff')
|
|
13
|
+
.string('summary', 'Concise summary of what was accomplished')
|
|
14
|
+
.array('keyFindings', { type: 'string' }, 'Key discoveries or results')
|
|
15
|
+
.array('artifacts', { type: 'string' }, 'Paths to generated artifact files')
|
|
16
|
+
.required('taskId', 'summary')
|
|
17
|
+
.build(),
|
|
18
|
+
tool('get_task_context')
|
|
19
|
+
.desc('Read task handoff context. Without taskId returns all active handoffs + session insights.')
|
|
20
|
+
.string('taskId', 'Specific task ID to retrieve')
|
|
21
|
+
.readOnly()
|
|
22
|
+
.idempotent()
|
|
23
|
+
.build(),
|
|
24
|
+
tool('append_session_insight')
|
|
25
|
+
.desc('Append a discovery to the session-level knowledge accumulator shared across handoffs')
|
|
26
|
+
.enum('category', ['auth', 'crypto', 'api', 'anti_debug', 'architecture', 'vulnerability', 'other'], 'Insight category')
|
|
27
|
+
.string('content', 'The insight content')
|
|
28
|
+
.prop('confidence', {
|
|
29
|
+
type: 'number',
|
|
30
|
+
description: 'Confidence level 0.0-1.0',
|
|
31
|
+
minimum: 0,
|
|
32
|
+
maximum: 1,
|
|
33
|
+
})
|
|
34
|
+
.required('category', 'content')
|
|
35
|
+
.build(),
|
|
36
|
+
tool('save_page_snapshot')
|
|
37
|
+
.desc('Save current page state (URL, cookies, storage) for checkpoint/restore workflows')
|
|
38
|
+
.string('label', 'Human-readable label for this snapshot')
|
|
39
|
+
.readOnly()
|
|
40
|
+
.build(),
|
|
41
|
+
tool('restore_page_snapshot')
|
|
42
|
+
.desc('Restore a saved page snapshot — navigates to URL and reinjects cookies and storage')
|
|
43
|
+
.string('snapshotId', 'Snapshot ID from save_page_snapshot')
|
|
44
|
+
.required('snapshotId')
|
|
45
|
+
.idempotent()
|
|
46
|
+
.build(),
|
|
47
|
+
tool('list_page_snapshots')
|
|
48
|
+
.desc('List all saved page snapshots in the current session')
|
|
49
|
+
.readOnly()
|
|
50
|
+
.idempotent()
|
|
51
|
+
.build(),
|
|
218
52
|
];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { MCPServerContext } from '../../
|
|
1
|
+
import type { MCPServerContext } from '../../domains/shared/registry.js';
|
|
2
|
+
export * from './definitions.js';
|
|
2
3
|
export interface TaskHandoff {
|
|
3
4
|
id: string;
|
|
4
5
|
status: 'pending' | 'in_progress' | 'completed' | 'failed';
|