@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
package/README.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# @jshookmcp/jshook
|
|
2
2
|
|
|
3
3
|
[](LICENSE)
|
|
4
|
-
[](https://nodejs.org/)
|
|
5
5
|
[](https://www.typescriptlang.org/)
|
|
6
6
|
[](https://modelcontextprotocol.io/)
|
|
7
7
|
[](https://pnpm.io/)
|
|
8
8
|
|
|
9
9
|
English | [中文](./README.zh.md)
|
|
10
10
|
|
|
11
|
-
An MCP (Model Context Protocol) server
|
|
11
|
+
An MCP (Model Context Protocol) server with a runtime-registry-driven catalog of built-in tools for AI-assisted JavaScript analysis and security analysis. It combines browser automation, Chrome DevTools Protocol debugging, network monitoring, intelligent JavaScript hooks, LLM-powered code analysis, process and memory inspection, WASM tooling, source-map reconstruction, AST transforms, and composite workflows in a single server.
|
|
12
12
|
|
|
13
13
|
## Documentation / Quick Links
|
|
14
14
|
|
|
@@ -42,11 +42,20 @@ Provides a comprehensive suite of tools for AI-assisted JavaScript analysis, bro
|
|
|
42
42
|
- **Lazy Domain Initialization**: Handler classes instantiated via Proxy on first invocation, not during startup
|
|
43
43
|
- **Domain Self-Discovery**: Runtime manifest scanning (`domains/*/manifest.ts`) replaces hardcoded imports; add new domains by creating a single manifest file
|
|
44
44
|
- **B-Skeleton Contracts**: Extensibility contracts for plugins (`PluginContract`), workflows (`WorkflowContract`), and observability (`InstrumentationContract`)
|
|
45
|
-
- **
|
|
45
|
+
- **MCP ToolAnnotations**: Every tool carries semantic annotations (`readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`) enabling AI orchestrators to reason about tool safety and side-effects before invocation
|
|
46
|
+
- **Context Efficiency Benchmark**: Built-in tool-schema init delta (Claude server-side count): `search` ≈ 3K tokens vs `full` ≈ 40K+ tokens; values change as tools/descriptions evolve
|
|
46
47
|
|
|
47
|
-
##
|
|
48
|
+
## Registry Snapshot
|
|
48
49
|
|
|
49
|
-
The
|
|
50
|
+
The built-in surface below is generated from the runtime registry and checked in CI.
|
|
51
|
+
|
|
52
|
+
<!-- metadata-sync:start -->
|
|
53
|
+
- Package version: `0.2.5`
|
|
54
|
+
- Built-in domains: `23`
|
|
55
|
+
- Built-in tools: `327`
|
|
56
|
+
- Domains: `antidebug`, `browser`, `coordination`, `core`, `debugger`, `encoding`, `evidence`, `graphql`, `hooks`, `instrumentation`, `macro`, `maintenance`, `memory`, `network`, `platform`, `process`, `sandbox`, `sourcemap`, `streaming`, `trace`, `transform`, `wasm`, `workflow`
|
|
57
|
+
- Note: this snapshot is generated from the runtime registry; do not edit the counts by hand.
|
|
58
|
+
<!-- metadata-sync:end -->
|
|
50
59
|
|
|
51
60
|
> **[View the complete Tool Reference ↗](https://vmoranv.github.io/jshookmcp/reference/)**
|
|
52
61
|
|
package/README.zh.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# @jshookmcp/jshook
|
|
2
2
|
|
|
3
3
|
[](LICENSE)
|
|
4
|
-
[](https://nodejs.org/)
|
|
5
5
|
[](https://www.typescriptlang.org/)
|
|
6
6
|
[](https://modelcontextprotocol.io/)
|
|
7
7
|
[](https://pnpm.io/)
|
|
8
8
|
|
|
9
9
|
[English](./README.md) | 中文
|
|
10
10
|
|
|
11
|
-
面向 AI 辅助 JavaScript 分析与安全分析的 MCP
|
|
11
|
+
面向 AI 辅助 JavaScript 分析与安全分析的 MCP(模型上下文协议)服务器,内置工具面来自运行时 registry,而不是手写清单。它将浏览器自动化、Chrome DevTools Protocol 调试、网络监控、JavaScript Hook、LLM 驱动代码分析、进程与内存检查、WASM 工具链、Source Map 重建、AST 变换与复合工作流整合到同一服务中。
|
|
12
12
|
|
|
13
13
|
## 文档与快速导航
|
|
14
14
|
|
|
@@ -42,7 +42,22 @@
|
|
|
42
42
|
- **域延迟初始化**:处理器类通过 Proxy 在首次调用时实例化,而非启动时预加载
|
|
43
43
|
- **域自发现架构**:运行时扫描 `domains/*/manifest.ts` 替代硬编码导入;新增域只需创建一个 manifest 文件
|
|
44
44
|
- **B-Skeleton 契约**:插件(`PluginContract`)、工作流(`WorkflowContract`)、可观测性(`InstrumentationContract`)的扩展性契约
|
|
45
|
-
-
|
|
45
|
+
- **MCP ToolAnnotations**:每个工具均带有语义标注(`readOnlyHint`、`destructiveHint`、`idempotentHint`、`openWorldHint`),使 AI 协调器能在调用前推理工具安全性与副作用
|
|
46
|
+
- **上下文效率基准**:基于 Claude 服务端实测,`search` 档 ≈ 3K tokens,`full` 档 ≈ 40K+ tokens;数值会随工具与描述变更而变化
|
|
47
|
+
|
|
48
|
+
## 注册表快照
|
|
49
|
+
|
|
50
|
+
下面的内置能力快照由运行时 registry 动态生成,并在 CI 中校验。
|
|
51
|
+
|
|
52
|
+
<!-- metadata-sync:start -->
|
|
53
|
+
- 包版本:`0.2.5`
|
|
54
|
+
- 内置工具域:`23`
|
|
55
|
+
- 内置工具数:`327`
|
|
56
|
+
- 域列表:`antidebug`, `browser`, `coordination`, `core`, `debugger`, `encoding`, `evidence`, `graphql`, `hooks`, `instrumentation`, `macro`, `maintenance`, `memory`, `network`, `platform`, `process`, `sandbox`, `sourcemap`, `streaming`, `trace`, `transform`, `wasm`, `workflow`
|
|
57
|
+
- 说明:以上数据由运行时 registry 动态生成,不要手改计数。
|
|
58
|
+
<!-- metadata-sync:end -->
|
|
59
|
+
|
|
60
|
+
> **[查看完整工具参考 ↗](https://vmoranv.github.io/jshookmcp/reference/)**
|
|
46
61
|
|
|
47
62
|
## 项目统计
|
|
48
63
|
|
|
@@ -52,7 +52,7 @@ export async function checkExternalCommand(command, versionArgs, label, installH
|
|
|
52
52
|
const { stdout, stderr } = await execFileAsync(command, versionArgs, {
|
|
53
53
|
timeout: 10_000,
|
|
54
54
|
});
|
|
55
|
-
const version = (stdout || stderr).trim().split('\n')[0]
|
|
55
|
+
const version = (stdout || stderr).trim().split('\n')[0];
|
|
56
56
|
return toTextResponse({
|
|
57
57
|
success: true,
|
|
58
58
|
tool: label,
|
|
@@ -179,7 +179,7 @@ export async function requestJson(url, method = 'GET', bodyObj, timeoutMs = 15_0
|
|
|
179
179
|
Accept: 'application/json',
|
|
180
180
|
...(body ? { 'Content-Type': 'application/json' } : {}),
|
|
181
181
|
},
|
|
182
|
-
body,
|
|
182
|
+
...(body === undefined ? {} : { body }),
|
|
183
183
|
signal: AbortSignal.timeout(timeoutMs),
|
|
184
184
|
});
|
|
185
185
|
const text = await response.text();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import type { WorkflowContract } from './workflow.js';
|
|
2
3
|
export type ToolProfileId = 'search' | 'workflow' | 'full';
|
|
3
4
|
export type ToolArgs = Record<string, unknown>;
|
|
4
5
|
export type ToolResponse = CallToolResult;
|
|
@@ -23,6 +24,7 @@ export interface ExtensionToolDefinition {
|
|
|
23
24
|
handler: ExtensionToolHandler;
|
|
24
25
|
profiles?: ToolProfileId[];
|
|
25
26
|
}
|
|
27
|
+
export type ExtensionWorkflowDefinition = WorkflowContract;
|
|
26
28
|
export declare const jsonResponse: (payload: Record<string, unknown>) => ToolResponse;
|
|
27
29
|
export declare const errorResponse: (tool: string, error: unknown, extra?: Record<string, unknown>) => ToolResponse;
|
|
28
30
|
export declare class ExtensionBuilder {
|
|
@@ -35,6 +37,7 @@ export declare class ExtensionBuilder {
|
|
|
35
37
|
private _compatibleCore;
|
|
36
38
|
private _profiles;
|
|
37
39
|
private _tools;
|
|
40
|
+
private _workflows;
|
|
38
41
|
private _allowCommands;
|
|
39
42
|
private _allowHosts;
|
|
40
43
|
private _allowTools;
|
|
@@ -54,6 +57,7 @@ export declare class ExtensionBuilder {
|
|
|
54
57
|
get compatibleCoreRange(): string;
|
|
55
58
|
get profiles(): ToolProfileId[];
|
|
56
59
|
get tools(): ExtensionToolDefinition[];
|
|
60
|
+
get workflows(): ExtensionWorkflowDefinition[];
|
|
57
61
|
get allowedCommands(): string[];
|
|
58
62
|
get allowedHosts(): string[];
|
|
59
63
|
get allowedTools(): string[];
|
|
@@ -87,6 +91,7 @@ export declare class ExtensionBuilder {
|
|
|
87
91
|
metric(m: string | string[]): this;
|
|
88
92
|
configDefault(key: string, value: unknown): this;
|
|
89
93
|
tool(name: string, desc: string, schema: Record<string, unknown>, handler: ExtensionToolHandler, profiles?: ToolProfileId[]): this;
|
|
94
|
+
workflow(workflow: ExtensionWorkflowDefinition | ExtensionWorkflowDefinition[]): this;
|
|
90
95
|
onLoad(h: (ctx: PluginLifecycleContext) => Promise<void> | void): this;
|
|
91
96
|
onValidate(h: (ctx: PluginLifecycleContext) => Promise<{
|
|
92
97
|
valid: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { toTextResponse, toErrorResponse
|
|
1
|
+
import { toTextResponse, toErrorResponse } from './bridges/shared.js';
|
|
2
2
|
export const jsonResponse = toTextResponse;
|
|
3
3
|
export const errorResponse = toErrorResponse;
|
|
4
4
|
export class ExtensionBuilder {
|
|
@@ -11,6 +11,7 @@ export class ExtensionBuilder {
|
|
|
11
11
|
_compatibleCore = '>=0.1.0';
|
|
12
12
|
_profiles = ['full'];
|
|
13
13
|
_tools = [];
|
|
14
|
+
_workflows = [];
|
|
14
15
|
_allowCommands = [];
|
|
15
16
|
_allowHosts = [];
|
|
16
17
|
_allowTools = [];
|
|
@@ -24,29 +25,83 @@ export class ExtensionBuilder {
|
|
|
24
25
|
this._id = id;
|
|
25
26
|
this._version = version;
|
|
26
27
|
}
|
|
27
|
-
get id() {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
get
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
get
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
get
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
get
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
get
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
28
|
+
get id() {
|
|
29
|
+
return this._id;
|
|
30
|
+
}
|
|
31
|
+
get version() {
|
|
32
|
+
return this._version;
|
|
33
|
+
}
|
|
34
|
+
get pluginName() {
|
|
35
|
+
return this._name;
|
|
36
|
+
}
|
|
37
|
+
get pluginDescription() {
|
|
38
|
+
return this._description;
|
|
39
|
+
}
|
|
40
|
+
get pluginAuthor() {
|
|
41
|
+
return this._author;
|
|
42
|
+
}
|
|
43
|
+
get pluginSourceRepo() {
|
|
44
|
+
return this._sourceRepo;
|
|
45
|
+
}
|
|
46
|
+
get compatibleCoreRange() {
|
|
47
|
+
return this._compatibleCore;
|
|
48
|
+
}
|
|
49
|
+
get profiles() {
|
|
50
|
+
return this._profiles;
|
|
51
|
+
}
|
|
52
|
+
get tools() {
|
|
53
|
+
return this._tools;
|
|
54
|
+
}
|
|
55
|
+
get workflows() {
|
|
56
|
+
return this._workflows;
|
|
57
|
+
}
|
|
58
|
+
get allowedCommands() {
|
|
59
|
+
return this._allowCommands;
|
|
60
|
+
}
|
|
61
|
+
get allowedHosts() {
|
|
62
|
+
return this._allowHosts;
|
|
63
|
+
}
|
|
64
|
+
get allowedTools() {
|
|
65
|
+
return this._allowTools;
|
|
66
|
+
}
|
|
67
|
+
get declaredMetrics() {
|
|
68
|
+
return this._metrics;
|
|
69
|
+
}
|
|
70
|
+
get configDefaults() {
|
|
71
|
+
return this._configDefaults;
|
|
72
|
+
}
|
|
73
|
+
get onLoadHandler() {
|
|
74
|
+
return this._onLoadHandler;
|
|
75
|
+
}
|
|
76
|
+
get onValidateHandler() {
|
|
77
|
+
return this._onValidateHandler;
|
|
78
|
+
}
|
|
79
|
+
get onActivateHandler() {
|
|
80
|
+
return this._onActivateHandler;
|
|
81
|
+
}
|
|
82
|
+
get onDeactivateHandler() {
|
|
83
|
+
return this._onDeactivateHandler;
|
|
84
|
+
}
|
|
85
|
+
name(n) {
|
|
86
|
+
this._name = n;
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
description(desc) {
|
|
90
|
+
this._description = desc;
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
author(a) {
|
|
94
|
+
this._author = a;
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
sourceRepo(url) {
|
|
98
|
+
this._sourceRepo = url;
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
compatibleCore(range) {
|
|
102
|
+
this._compatibleCore = range;
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
50
105
|
mergeMetadata(meta) {
|
|
51
106
|
if (!this._name && meta.name)
|
|
52
107
|
this._name = meta.name;
|
|
@@ -62,11 +117,26 @@ export class ExtensionBuilder {
|
|
|
62
117
|
this._profiles = Array.isArray(p) ? p : [p];
|
|
63
118
|
return this;
|
|
64
119
|
}
|
|
65
|
-
allowCommand(cmd) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
120
|
+
allowCommand(cmd) {
|
|
121
|
+
this._allowCommands.push(...(Array.isArray(cmd) ? cmd : [cmd]));
|
|
122
|
+
return this;
|
|
123
|
+
}
|
|
124
|
+
allowHost(host) {
|
|
125
|
+
this._allowHosts.push(...(Array.isArray(host) ? host : [host]));
|
|
126
|
+
return this;
|
|
127
|
+
}
|
|
128
|
+
allowTool(tool) {
|
|
129
|
+
this._allowTools.push(...(Array.isArray(tool) ? tool : [tool]));
|
|
130
|
+
return this;
|
|
131
|
+
}
|
|
132
|
+
metric(m) {
|
|
133
|
+
this._metrics.push(...(Array.isArray(m) ? m : [m]));
|
|
134
|
+
return this;
|
|
135
|
+
}
|
|
136
|
+
configDefault(key, value) {
|
|
137
|
+
this._configDefaults[key] = value;
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
70
140
|
tool(name, desc, schema, handler, profiles) {
|
|
71
141
|
this._tools.push({
|
|
72
142
|
name,
|
|
@@ -77,10 +147,26 @@ export class ExtensionBuilder {
|
|
|
77
147
|
});
|
|
78
148
|
return this;
|
|
79
149
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
150
|
+
workflow(workflow) {
|
|
151
|
+
this._workflows.push(...(Array.isArray(workflow) ? workflow : [workflow]));
|
|
152
|
+
return this;
|
|
153
|
+
}
|
|
154
|
+
onLoad(h) {
|
|
155
|
+
this._onLoadHandler = h;
|
|
156
|
+
return this;
|
|
157
|
+
}
|
|
158
|
+
onValidate(h) {
|
|
159
|
+
this._onValidateHandler = h;
|
|
160
|
+
return this;
|
|
161
|
+
}
|
|
162
|
+
onActivate(h) {
|
|
163
|
+
this._onActivateHandler = h;
|
|
164
|
+
return this;
|
|
165
|
+
}
|
|
166
|
+
onDeactivate(h) {
|
|
167
|
+
this._onDeactivateHandler = h;
|
|
168
|
+
return this;
|
|
169
|
+
}
|
|
84
170
|
}
|
|
85
171
|
export function createExtension(id, version) {
|
|
86
172
|
return new ExtensionBuilder(id, version);
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
export interface RetryPolicy {
|
|
2
|
+
maxAttempts: number;
|
|
3
|
+
backoffMs: number;
|
|
4
|
+
multiplier?: number;
|
|
5
|
+
}
|
|
6
|
+
export type WorkflowNodeType = 'tool' | 'sequence' | 'parallel' | 'branch';
|
|
7
|
+
export interface ToolNode {
|
|
8
|
+
readonly kind: 'tool';
|
|
9
|
+
readonly id: string;
|
|
10
|
+
readonly toolName: string;
|
|
11
|
+
readonly input?: Record<string, unknown>;
|
|
12
|
+
readonly timeoutMs?: number;
|
|
13
|
+
readonly retry?: RetryPolicy;
|
|
14
|
+
}
|
|
15
|
+
export interface SequenceNode {
|
|
16
|
+
readonly kind: 'sequence';
|
|
17
|
+
readonly id: string;
|
|
18
|
+
readonly steps: WorkflowNode[];
|
|
19
|
+
}
|
|
20
|
+
export interface ParallelNode {
|
|
21
|
+
readonly kind: 'parallel';
|
|
22
|
+
readonly id: string;
|
|
23
|
+
readonly steps: WorkflowNode[];
|
|
24
|
+
readonly maxConcurrency?: number;
|
|
25
|
+
readonly failFast?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface BranchNode {
|
|
28
|
+
readonly kind: 'branch';
|
|
29
|
+
readonly id: string;
|
|
30
|
+
readonly predicateId: string;
|
|
31
|
+
readonly predicateFn?: (ctx: WorkflowExecutionContext) => boolean | Promise<boolean>;
|
|
32
|
+
readonly whenTrue: WorkflowNode;
|
|
33
|
+
readonly whenFalse?: WorkflowNode;
|
|
34
|
+
}
|
|
35
|
+
export type WorkflowNode = ToolNode | SequenceNode | ParallelNode | BranchNode;
|
|
36
|
+
export interface ToolNodeOptions {
|
|
37
|
+
input?: Record<string, unknown>;
|
|
38
|
+
retry?: RetryPolicy;
|
|
39
|
+
timeoutMs?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface WorkflowExecutionContext {
|
|
42
|
+
readonly workflowRunId: string;
|
|
43
|
+
readonly profile: string;
|
|
44
|
+
invokeTool(toolName: string, args: Record<string, unknown>): Promise<unknown>;
|
|
45
|
+
emitSpan(name: string, attrs?: Record<string, unknown>): void;
|
|
46
|
+
emitMetric(name: string, value: number, type: 'counter' | 'gauge' | 'histogram', attrs?: Record<string, unknown>): void;
|
|
47
|
+
getConfig<T = unknown>(path: string, fallback?: T): T;
|
|
48
|
+
}
|
|
49
|
+
export interface WorkflowRouteStep {
|
|
50
|
+
readonly id: string;
|
|
51
|
+
readonly toolName: string;
|
|
52
|
+
readonly description: string;
|
|
53
|
+
readonly prerequisites: string[];
|
|
54
|
+
readonly parallel?: boolean;
|
|
55
|
+
readonly expectedInputs?: Record<string, string>;
|
|
56
|
+
readonly evidenceNodeType?: string;
|
|
57
|
+
}
|
|
58
|
+
export type WorkflowRouteKind = 'preset' | 'workflow';
|
|
59
|
+
export interface WorkflowRouteMetadata {
|
|
60
|
+
readonly kind: WorkflowRouteKind;
|
|
61
|
+
readonly triggerPatterns: RegExp[];
|
|
62
|
+
readonly steps: WorkflowRouteStep[];
|
|
63
|
+
readonly requiredDomains: string[];
|
|
64
|
+
readonly priority: number;
|
|
65
|
+
}
|
|
66
|
+
export interface WorkflowContract {
|
|
67
|
+
readonly kind: 'workflow-contract';
|
|
68
|
+
readonly version: 1;
|
|
69
|
+
readonly id: string;
|
|
70
|
+
readonly displayName: string;
|
|
71
|
+
readonly description?: string;
|
|
72
|
+
readonly tags?: string[];
|
|
73
|
+
readonly timeoutMs?: number;
|
|
74
|
+
readonly defaultMaxConcurrency?: number;
|
|
75
|
+
readonly route?: WorkflowRouteMetadata;
|
|
76
|
+
build(ctx: WorkflowExecutionContext): WorkflowNode;
|
|
77
|
+
onStart?(ctx: WorkflowExecutionContext): Promise<void> | void;
|
|
78
|
+
onFinish?(ctx: WorkflowExecutionContext, result: unknown): Promise<void> | void;
|
|
79
|
+
onError?(ctx: WorkflowExecutionContext, error: Error): Promise<void> | void;
|
|
80
|
+
}
|
|
81
|
+
export declare abstract class WorkflowNodeBuilder<T extends WorkflowNode> {
|
|
82
|
+
protected id: string;
|
|
83
|
+
constructor(id: string);
|
|
84
|
+
abstract build(): T;
|
|
85
|
+
}
|
|
86
|
+
type AnyWorkflowNodeBuilder = WorkflowNodeBuilder<WorkflowNode>;
|
|
87
|
+
export declare class ToolNodeBuilder extends WorkflowNodeBuilder<ToolNode> {
|
|
88
|
+
private toolName;
|
|
89
|
+
private _input?;
|
|
90
|
+
private _retry?;
|
|
91
|
+
private _timeoutMs?;
|
|
92
|
+
constructor(id: string, toolName: string);
|
|
93
|
+
input(input: Record<string, unknown>): this;
|
|
94
|
+
retry(policy: RetryPolicy): this;
|
|
95
|
+
timeout(ms: number): this;
|
|
96
|
+
build(): ToolNode;
|
|
97
|
+
}
|
|
98
|
+
declare abstract class CompositeNodeBuilder<T extends WorkflowNode> extends WorkflowNodeBuilder<T> {
|
|
99
|
+
protected _steps: AnyWorkflowNodeBuilder[];
|
|
100
|
+
step(nodeBuilder: AnyWorkflowNodeBuilder): this;
|
|
101
|
+
tool(id: string, toolName: string, config?: ToolNodeOptions | ((b: ToolNodeBuilder) => void)): this;
|
|
102
|
+
sequence(id: string, config?: (b: SequenceNodeBuilder) => void): this;
|
|
103
|
+
parallel(id: string, config?: (b: ParallelNodeBuilder) => void): this;
|
|
104
|
+
branch(id: string, predicateId: string, config?: (b: BranchNodeBuilder) => void): this;
|
|
105
|
+
}
|
|
106
|
+
export declare class SequenceNodeBuilder extends CompositeNodeBuilder<SequenceNode> {
|
|
107
|
+
build(): SequenceNode;
|
|
108
|
+
}
|
|
109
|
+
export declare class ParallelNodeBuilder extends CompositeNodeBuilder<ParallelNode> {
|
|
110
|
+
private _maxConcurrency?;
|
|
111
|
+
private _failFast?;
|
|
112
|
+
maxConcurrency(concurrency: number): this;
|
|
113
|
+
failFast(ff: boolean): this;
|
|
114
|
+
build(): ParallelNode;
|
|
115
|
+
}
|
|
116
|
+
export declare class BranchNodeBuilder extends WorkflowNodeBuilder<BranchNode> {
|
|
117
|
+
private predicateId;
|
|
118
|
+
private _predicateFn?;
|
|
119
|
+
private _whenTrue?;
|
|
120
|
+
private _whenFalse?;
|
|
121
|
+
constructor(id: string, predicateId: string);
|
|
122
|
+
predicateFn(fn: (ctx: WorkflowExecutionContext) => boolean | Promise<boolean>): this;
|
|
123
|
+
whenTrue(nodeBuilder: AnyWorkflowNodeBuilder): this;
|
|
124
|
+
whenFalse(nodeBuilder: AnyWorkflowNodeBuilder): this;
|
|
125
|
+
build(): BranchNode;
|
|
126
|
+
}
|
|
127
|
+
export declare class WorkflowBuilder {
|
|
128
|
+
private _id;
|
|
129
|
+
private _displayName;
|
|
130
|
+
private _description?;
|
|
131
|
+
private _tags?;
|
|
132
|
+
private _timeoutMs?;
|
|
133
|
+
private _defaultMaxConcurrency?;
|
|
134
|
+
private _route?;
|
|
135
|
+
private _buildFn;
|
|
136
|
+
private _onStart?;
|
|
137
|
+
private _onFinish?;
|
|
138
|
+
private _onError?;
|
|
139
|
+
constructor(id: string, displayName: string);
|
|
140
|
+
description(desc: string): this;
|
|
141
|
+
tags(tags: string[]): this;
|
|
142
|
+
timeoutMs(timeout: number): this;
|
|
143
|
+
defaultMaxConcurrency(max: number): this;
|
|
144
|
+
route(route: WorkflowRouteMetadata): this;
|
|
145
|
+
buildGraph(fn: (ctx: WorkflowExecutionContext) => AnyWorkflowNodeBuilder): this;
|
|
146
|
+
onStart(fn: (ctx: WorkflowExecutionContext) => Promise<void> | void): this;
|
|
147
|
+
onFinish(fn: (ctx: WorkflowExecutionContext, result: unknown) => Promise<void> | void): this;
|
|
148
|
+
onError(fn: (ctx: WorkflowExecutionContext, error: Error) => Promise<void> | void): this;
|
|
149
|
+
build(): WorkflowContract;
|
|
150
|
+
}
|
|
151
|
+
export declare function createWorkflow(id: string, displayName: string): WorkflowBuilder;
|
|
152
|
+
export declare function toolNode(id: string, toolName: string): ToolNodeBuilder;
|
|
153
|
+
export declare function sequenceNode(id: string): SequenceNodeBuilder;
|
|
154
|
+
export declare function parallelNode(id: string): ParallelNodeBuilder;
|
|
155
|
+
export declare function branchNode(id: string, predicateId: string): BranchNodeBuilder;
|
|
156
|
+
export {};
|