@jshookmcp/jshook 0.2.3 → 0.2.6

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.
Files changed (583) hide show
  1. package/README.md +14 -5
  2. package/README.zh.md +18 -3
  3. package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
  4. package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
  5. package/dist/packages/extension-sdk/src/plugin.js +119 -33
  6. package/dist/packages/extension-sdk/src/workflow.d.ts +171 -0
  7. package/dist/packages/extension-sdk/src/workflow.js +272 -0
  8. package/dist/src/config/search-defaults.js +161 -0
  9. package/dist/src/constants.d.ts +3 -0
  10. package/dist/src/constants.js +4 -1
  11. package/dist/src/index.d.ts +1 -1
  12. package/dist/src/index.js +13 -17
  13. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
  14. package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
  15. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
  16. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
  17. package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
  18. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
  19. package/dist/src/modules/analyzer/PatternDetector.js +3 -3
  20. package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
  21. package/dist/src/modules/browser/BrowserDiscovery.js +2 -2
  22. package/dist/src/modules/browser/BrowserModeManager.js +11 -10
  23. package/dist/src/modules/browser/BrowserPool.d.ts +49 -0
  24. package/dist/src/modules/browser/BrowserPool.js +288 -0
  25. package/dist/src/modules/browser/TabRegistry.js +2 -2
  26. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  27. package/dist/src/modules/browser/UnifiedBrowserManager.js +18 -3
  28. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +1 -10
  29. package/dist/src/modules/captcha/AICaptchaDetector.js +7 -201
  30. package/dist/src/modules/collector/CodeCollector.js +4 -5
  31. package/dist/src/modules/collector/DOMInspector.js +48 -58
  32. package/dist/src/modules/collector/PageController.d.ts +17 -4
  33. package/dist/src/modules/collector/PageController.js +2 -5
  34. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  35. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  36. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  37. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  38. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  39. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  40. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +4 -2
  41. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  42. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.d.ts +5 -0
  43. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.js +43 -2
  44. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  45. package/dist/src/modules/deobfuscator/Deobfuscator.js +9 -39
  46. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  47. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  48. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -2
  49. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +3 -55
  50. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  51. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  52. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  53. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  54. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  55. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  56. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  57. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  58. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  59. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  60. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  61. package/dist/src/modules/external/ExternalToolRunner.js +25 -22
  62. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
  63. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
  64. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
  65. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
  66. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  67. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  68. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
  69. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  70. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  71. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  72. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
  73. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  74. package/dist/src/modules/process/LinuxProcessManager.js +2 -0
  75. package/dist/src/modules/process/MacProcessManager.js +25 -25
  76. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  77. package/dist/src/modules/process/MemoryManager.js +2 -2
  78. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  79. package/dist/src/modules/process/memory/availability.js +49 -49
  80. package/dist/src/modules/process/memory/injector.js +185 -185
  81. package/dist/src/modules/process/memory/reader.js +85 -53
  82. package/dist/src/modules/process/memory/regions.dump.js +51 -51
  83. package/dist/src/modules/process/memory/regions.enumerate.js +108 -108
  84. package/dist/src/modules/process/memory/regions.modules.js +80 -80
  85. package/dist/src/modules/process/memory/regions.protection.js +148 -115
  86. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  87. package/dist/src/modules/process/memory/scanner.darwin.js +98 -41
  88. package/dist/src/modules/process/memory/scanner.js +88 -4
  89. package/dist/src/modules/process/memory/scanner.windows.js +124 -124
  90. package/dist/src/modules/process/memory/writer.js +98 -58
  91. package/dist/src/modules/security/ExecutionSandbox.js +51 -52
  92. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  93. package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
  94. package/dist/src/modules/stealth/StealthScripts.js +18 -13
  95. package/dist/src/modules/stealth/StealthVerifier.js +1 -3
  96. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  97. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  98. package/dist/src/modules/trace/TraceDB.js +75 -69
  99. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  100. package/dist/src/native/AntiCheatDetector.js +67 -16
  101. package/dist/src/native/CodeInjector.js +3 -3
  102. package/dist/src/native/HardwareBreakpoint.js +24 -15
  103. package/dist/src/native/HeapAnalyzer.js +2 -2
  104. package/dist/src/native/MemoryController.js +1 -1
  105. package/dist/src/native/MemoryScanSession.js +2 -2
  106. package/dist/src/native/MemoryScanner.js +4 -8
  107. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  108. package/dist/src/native/PEAnalyzer.js +14 -15
  109. package/dist/src/native/PointerChainEngine.js +2 -4
  110. package/dist/src/native/ScriptLoader.js +4 -9
  111. package/dist/src/native/Speedhack.js +1 -1
  112. package/dist/src/native/StructureAnalyzer.js +52 -33
  113. package/dist/src/native/Win32API.d.ts +1 -0
  114. package/dist/src/native/Win32API.js +13 -0
  115. package/dist/src/native/Win32Debug.js +19 -19
  116. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  117. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  118. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  119. package/dist/src/server/MCPServer.context.d.ts +3 -1
  120. package/dist/src/server/MCPServer.d.ts +2 -1
  121. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  122. package/dist/src/server/MCPServer.domain.js +81 -16
  123. package/dist/src/server/MCPServer.js +41 -14
  124. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  125. package/dist/src/server/MCPServer.resources.js +91 -0
  126. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  127. package/dist/src/server/MCPServer.search.helpers.js +1 -1
  128. package/dist/src/server/MCPServer.transport.js +12 -0
  129. package/dist/src/server/ToolCallContextGuard.js +8 -0
  130. package/dist/src/server/ToolRouter.d.ts +25 -9
  131. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  132. package/dist/src/server/ToolRouter.intent.js +77 -0
  133. package/dist/src/server/ToolRouter.js +103 -284
  134. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  135. package/dist/src/server/ToolRouter.policy.js +163 -0
  136. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  137. package/dist/src/server/ToolRouter.probe.js +103 -0
  138. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  139. package/dist/src/server/ToolRouter.renderer.js +52 -0
  140. package/dist/src/server/activation/ActivationController.js +15 -12
  141. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  142. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  143. package/dist/src/server/domains/analysis/definitions.js +155 -655
  144. package/dist/src/server/domains/analysis/handlers.impl.js +26 -20
  145. package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -1
  146. package/dist/src/server/domains/analysis/manifest.js +6 -4
  147. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  148. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  149. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  150. package/dist/src/server/domains/browser/definitions.tools.page-core.js +210 -439
  151. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  152. package/dist/src/server/domains/browser/definitions.tools.runtime.js +98 -211
  153. package/dist/src/server/domains/browser/definitions.tools.security.js +194 -339
  154. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  155. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  156. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  157. package/dist/src/server/domains/browser/handlers/framework-state.js +27 -9
  158. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  159. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  160. package/dist/src/server/domains/browser/handlers/stealth-injection.d.ts +1 -0
  161. package/dist/src/server/domains/browser/handlers/stealth-injection.js +3 -0
  162. package/dist/src/server/domains/browser/handlers.impl.d.ts +1 -2
  163. package/dist/src/server/domains/browser/handlers.impl.js +2 -3
  164. package/dist/src/server/domains/browser/manifest.js +37 -13
  165. package/dist/src/server/domains/coordination/definitions.js +50 -216
  166. package/dist/src/server/domains/coordination/index.d.ts +2 -1
  167. package/dist/src/server/domains/coordination/index.js +1 -0
  168. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  169. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  170. package/dist/src/server/domains/debugger/manifest.js +9 -2
  171. package/dist/src/server/domains/encoding/definitions.js +43 -153
  172. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  173. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  174. package/dist/src/server/domains/evidence/definitions.js +42 -0
  175. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  176. package/dist/src/server/domains/evidence/handlers.js +60 -0
  177. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  178. package/dist/src/server/domains/evidence/index.js +2 -0
  179. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  180. package/dist/src/server/domains/evidence/manifest.js +78 -0
  181. package/dist/src/server/domains/graphql/definitions.js +53 -141
  182. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  183. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
  184. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  185. package/dist/src/server/domains/hooks/ai-handlers.js +1 -67
  186. package/dist/src/server/domains/hooks/definitions.js +69 -335
  187. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  188. package/dist/src/server/domains/hooks/manifest.js +1 -2
  189. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  190. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  191. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  192. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  193. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  194. package/dist/src/server/domains/instrumentation/index.js +2 -0
  195. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  196. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  197. package/dist/src/server/domains/macro/definitions.js +16 -43
  198. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  199. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  200. package/dist/src/server/domains/memory/definitions.js +387 -559
  201. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  202. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  203. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  204. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  205. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  206. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  207. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  208. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  209. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  210. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  211. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  212. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  213. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  214. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  215. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  216. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  217. package/dist/src/server/domains/memory/manifest.js +236 -64
  218. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  219. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  220. package/dist/src/server/domains/native-bridge/index.js +2 -1
  221. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  222. package/dist/src/server/domains/network/definitions.js +175 -578
  223. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  224. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  225. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  226. package/dist/src/server/domains/network/handlers.base.js +3 -878
  227. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  228. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  229. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  230. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  231. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  232. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  233. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  234. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  235. package/dist/src/server/domains/network/manifest.js +15 -0
  236. package/dist/src/server/domains/network/replay.js +1 -4
  237. package/dist/src/server/domains/platform/definitions.js +121 -112
  238. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +4 -0
  239. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +193 -4
  240. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  241. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  242. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  243. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  244. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  245. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  246. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  247. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  248. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  249. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  250. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  251. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +3 -3
  252. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  253. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  254. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  255. package/dist/src/server/domains/platform/handlers.js +29 -0
  256. package/dist/src/server/domains/platform/manifest.js +38 -0
  257. package/dist/src/server/domains/process/definitions.js +163 -647
  258. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  259. package/dist/src/server/domains/process/handlers.base.js +7 -462
  260. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  261. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  262. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  263. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  264. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +18 -16
  265. package/dist/src/server/domains/process/manifest.js +6 -1
  266. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  267. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  268. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  269. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  270. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  271. package/dist/src/server/domains/shared/modules.js +0 -1
  272. package/dist/src/server/domains/shared-state-board/definitions.d.ts +2 -0
  273. package/dist/src/server/domains/shared-state-board/definitions.js +78 -0
  274. package/dist/src/server/domains/shared-state-board/handlers.impl.d.ts +58 -0
  275. package/dist/src/server/domains/shared-state-board/handlers.impl.js +419 -0
  276. package/dist/src/server/domains/shared-state-board/index.d.ts +2 -0
  277. package/dist/src/server/domains/shared-state-board/index.js +2 -0
  278. package/dist/src/server/domains/shared-state-board/manifest.d.ts +57 -0
  279. package/dist/src/server/domains/shared-state-board/manifest.js +74 -0
  280. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  281. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  282. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  283. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  284. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  285. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  286. package/dist/src/server/domains/streaming/definitions.js +36 -148
  287. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  288. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  289. package/dist/src/server/domains/trace/TraceSummarizer.js +8 -5
  290. package/dist/src/server/domains/trace/definitions.tools.js +51 -206
  291. package/dist/src/server/domains/trace/handlers.js +10 -12
  292. package/dist/src/server/domains/trace/index.d.ts +2 -1
  293. package/dist/src/server/domains/trace/index.js +2 -1
  294. package/dist/src/server/domains/trace/manifest.js +15 -3
  295. package/dist/src/server/domains/transform/definitions.js +50 -210
  296. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +108 -108
  297. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  298. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  299. package/dist/src/server/domains/transform/manifest.js +1 -1
  300. package/dist/src/server/domains/wasm/definitions.js +55 -232
  301. package/dist/src/server/domains/wasm/handlers.js +1 -1
  302. package/dist/src/server/domains/workflow/definitions.js +144 -414
  303. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
  304. package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
  305. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  306. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  307. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  308. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  309. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  310. package/dist/src/server/evidence/index.d.ts +2 -0
  311. package/dist/src/server/evidence/index.js +1 -0
  312. package/dist/src/server/evidence/types.d.ts +22 -0
  313. package/dist/src/server/evidence/types.js +1 -0
  314. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  315. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  316. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  317. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  318. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  319. package/dist/src/server/extensions/ExtensionManager.roots.js +4 -4
  320. package/dist/src/server/extensions/plugin-config.js +1 -1
  321. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  322. package/dist/src/server/extensions/plugin-env.js +10 -4
  323. package/dist/src/server/extensions/types.d.ts +17 -0
  324. package/dist/src/server/extensions/types.js +1 -1
  325. package/dist/src/server/http/SseStream.d.ts +21 -0
  326. package/dist/src/server/http/SseStream.js +129 -0
  327. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  328. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  329. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  330. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  331. package/dist/src/server/instrumentation/index.d.ts +2 -0
  332. package/dist/src/server/instrumentation/index.js +2 -0
  333. package/dist/src/server/instrumentation/types.d.ts +62 -0
  334. package/dist/src/server/instrumentation/types.js +7 -0
  335. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  336. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  337. package/dist/src/server/macros/MacroRunner.js +6 -2
  338. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  339. package/dist/src/server/macros/builtins/index.js +51 -7
  340. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  341. package/dist/src/server/registry/contracts.d.ts +1 -1
  342. package/dist/src/server/registry/discovery.js +5 -4
  343. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  344. package/dist/src/server/registry/index.js +4 -4
  345. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  346. package/dist/src/server/registry/tool-builder.js +105 -0
  347. package/dist/src/server/sandbox/QuickJSSandbox.js +16 -5
  348. package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
  349. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  350. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  351. package/dist/src/server/search/FeedbackTracker.js +26 -0
  352. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  353. package/dist/src/server/search/QueryNormalizer.js +94 -0
  354. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  355. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  356. package/dist/src/server/teams/TeamManager.d.ts +43 -0
  357. package/dist/src/server/teams/TeamManager.js +238 -0
  358. package/dist/src/server/teams/index.d.ts +1 -0
  359. package/dist/src/server/teams/index.js +1 -0
  360. package/dist/src/server/workflows/WorkflowContract.d.ts +44 -4
  361. package/dist/src/server/workflows/WorkflowContract.js +52 -0
  362. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  363. package/dist/src/server/workflows/WorkflowEngine.js +314 -4
  364. package/dist/src/types/config.d.ts +0 -14
  365. package/dist/src/types/deobfuscator.d.ts +1 -1
  366. package/dist/src/types/index.d.ts +1 -1
  367. package/dist/src/utils/DetailedDataManager.js +2 -0
  368. package/dist/src/utils/RingBuffer.js +5 -5
  369. package/dist/src/utils/TokenBudgetManager.js +1 -1
  370. package/dist/src/utils/UnifiedCacheManager.js +1 -1
  371. package/dist/src/utils/artifactRetention.js +2 -2
  372. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  373. package/dist/src/utils/betterSqlite3.js +88 -0
  374. package/dist/src/utils/browserExecutable.js +2 -2
  375. package/dist/src/utils/cache/CachedDecorator.d.ts +8 -0
  376. package/dist/src/utils/cache/CachedDecorator.js +55 -0
  377. package/dist/src/utils/cache/PersistentCache.d.ts +33 -0
  378. package/dist/src/utils/cache/PersistentCache.js +246 -0
  379. package/dist/src/utils/cache/index.d.ts +2 -0
  380. package/dist/src/utils/cache/index.js +2 -0
  381. package/dist/src/utils/cliFastPath.js +5 -8
  382. package/dist/src/utils/config.js +4 -26
  383. package/dist/src/utils/environmentDoctor.js +138 -11
  384. package/dist/src/utils/outputPaths.js +16 -9
  385. package/dist/src/utils/parallel.js +1 -3
  386. package/package.json +82 -81
  387. package/scripts/postinstall.cjs +54 -27
  388. package/workflows/.gitkeep +0 -0
  389. package/workflows/anti-bot-diagnoser/.jshook-install.json +14 -0
  390. package/workflows/anti-bot-diagnoser/LICENSE +21 -0
  391. package/workflows/anti-bot-diagnoser/README.md +105 -0
  392. package/workflows/anti-bot-diagnoser/docs/agent-recipes.md +44 -0
  393. package/workflows/anti-bot-diagnoser/meta.yaml +6 -0
  394. package/workflows/anti-bot-diagnoser/package.json +22 -0
  395. package/workflows/anti-bot-diagnoser/tsconfig.json +15 -0
  396. package/workflows/anti-bot-diagnoser/workflow.ts +224 -0
  397. package/workflows/api-openapi-probe/.jshook-install.json +14 -0
  398. package/workflows/api-openapi-probe/meta.yaml +6 -0
  399. package/workflows/api-openapi-probe/package.json +22 -0
  400. package/workflows/api-openapi-probe/pnpm-lock.yaml +819 -0
  401. package/workflows/api-openapi-probe/tsconfig.json +15 -0
  402. package/workflows/api-openapi-probe/workflow.ts +40 -0
  403. package/workflows/api-probe-batch/.jshook-install.json +14 -0
  404. package/workflows/api-probe-batch/LICENSE +21 -0
  405. package/workflows/api-probe-batch/README.md +45 -0
  406. package/workflows/api-probe-batch/meta.yaml +4 -0
  407. package/workflows/api-probe-batch/package.json +23 -0
  408. package/workflows/api-probe-batch/tsconfig.json +16 -0
  409. package/workflows/api-probe-batch/workflow.ts +111 -0
  410. package/workflows/auth-bootstrap/.jshook-install.json +14 -0
  411. package/workflows/auth-bootstrap/LICENSE +21 -0
  412. package/workflows/auth-bootstrap/README.md +74 -0
  413. package/workflows/auth-bootstrap/meta.yaml +4 -0
  414. package/workflows/auth-bootstrap/package.json +23 -0
  415. package/workflows/auth-bootstrap/tsconfig.json +16 -0
  416. package/workflows/auth-bootstrap/workflow.ts +141 -0
  417. package/workflows/auth-extract/.jshook-install.json +14 -0
  418. package/workflows/auth-extract/meta.yaml +6 -0
  419. package/workflows/auth-extract/package.json +22 -0
  420. package/workflows/auth-extract/pnpm-lock.yaml +819 -0
  421. package/workflows/auth-extract/tsconfig.json +15 -0
  422. package/workflows/auth-extract/workflow.ts +36 -0
  423. package/workflows/auth-surface-mapper/.jshook-install.json +14 -0
  424. package/workflows/auth-surface-mapper/meta.yaml +6 -0
  425. package/workflows/auth-surface-mapper/package.json +22 -0
  426. package/workflows/auth-surface-mapper/pnpm-lock.yaml +819 -0
  427. package/workflows/auth-surface-mapper/tsconfig.json +15 -0
  428. package/workflows/auth-surface-mapper/workflow.ts +104 -0
  429. package/workflows/batch-register/.jshook-install.json +14 -0
  430. package/workflows/batch-register/LICENSE +21 -0
  431. package/workflows/batch-register/README.md +39 -0
  432. package/workflows/batch-register/meta.yaml +4 -0
  433. package/workflows/batch-register/package.json +23 -0
  434. package/workflows/batch-register/tsconfig.json +16 -0
  435. package/workflows/batch-register/workflow.ts +67 -0
  436. package/workflows/bundle-recovery/.jshook-install.json +14 -0
  437. package/workflows/bundle-recovery/LICENSE +21 -0
  438. package/workflows/bundle-recovery/README.md +105 -0
  439. package/workflows/bundle-recovery/docs/agent-recipes.md +44 -0
  440. package/workflows/bundle-recovery/meta.yaml +6 -0
  441. package/workflows/bundle-recovery/package.json +22 -0
  442. package/workflows/bundle-recovery/tsconfig.json +15 -0
  443. package/workflows/bundle-recovery/workflow.ts +179 -0
  444. package/workflows/challenge-detector/.jshook-install.json +14 -0
  445. package/workflows/challenge-detector/meta.yaml +14 -0
  446. package/workflows/challenge-detector/package.json +22 -0
  447. package/workflows/challenge-detector/pnpm-lock.yaml +819 -0
  448. package/workflows/challenge-detector/tsconfig.json +15 -0
  449. package/workflows/challenge-detector/workflow.ts +298 -0
  450. package/workflows/deobfuscation-pipeline/.jshook-install.json +14 -0
  451. package/workflows/deobfuscation-pipeline/meta.yaml +6 -0
  452. package/workflows/deobfuscation-pipeline/package.json +22 -0
  453. package/workflows/deobfuscation-pipeline/pnpm-lock.yaml +819 -0
  454. package/workflows/deobfuscation-pipeline/tsconfig.json +15 -0
  455. package/workflows/deobfuscation-pipeline/workflow.ts +119 -0
  456. package/workflows/electron-bridge-mapper/.jshook-install.json +14 -0
  457. package/workflows/electron-bridge-mapper/meta.yaml +6 -0
  458. package/workflows/electron-bridge-mapper/package.json +22 -0
  459. package/workflows/electron-bridge-mapper/pnpm-lock.yaml +819 -0
  460. package/workflows/electron-bridge-mapper/tsconfig.json +15 -0
  461. package/workflows/electron-bridge-mapper/workflow.ts +125 -0
  462. package/workflows/evidence-pack/.jshook-install.json +14 -0
  463. package/workflows/evidence-pack/LICENSE +21 -0
  464. package/workflows/evidence-pack/README.md +105 -0
  465. package/workflows/evidence-pack/docs/agent-recipes.md +44 -0
  466. package/workflows/evidence-pack/meta.yaml +6 -0
  467. package/workflows/evidence-pack/package.json +22 -0
  468. package/workflows/evidence-pack/tsconfig.json +15 -0
  469. package/workflows/evidence-pack/workflow.ts +154 -0
  470. package/workflows/js-bundle-search/.jshook-install.json +14 -0
  471. package/workflows/js-bundle-search/LICENSE +21 -0
  472. package/workflows/js-bundle-search/README.md +46 -0
  473. package/workflows/js-bundle-search/meta.yaml +4 -0
  474. package/workflows/js-bundle-search/package.json +23 -0
  475. package/workflows/js-bundle-search/tsconfig.json +16 -0
  476. package/workflows/js-bundle-search/workflow.ts +118 -0
  477. package/workflows/protocol-registry/.jshook-install.json +14 -0
  478. package/workflows/protocol-registry/meta.yaml +6 -0
  479. package/workflows/protocol-registry/package.json +22 -0
  480. package/workflows/protocol-registry/pnpm-lock.yaml +819 -0
  481. package/workflows/protocol-registry/tsconfig.json +15 -0
  482. package/workflows/protocol-registry/workflow.ts +107 -0
  483. package/workflows/qwen-mail-open-latest/meta.yaml +7 -0
  484. package/workflows/qwen-mail-open-latest/package.json +22 -0
  485. package/workflows/qwen-mail-open-latest/pnpm-lock.yaml +819 -0
  486. package/workflows/qwen-mail-open-latest/tsconfig.json +15 -0
  487. package/workflows/qwen-mail-open-latest/workflow.ts +77 -0
  488. package/workflows/register-account-flow/.jshook-install.json +14 -0
  489. package/workflows/register-account-flow/LICENSE +21 -0
  490. package/workflows/register-account-flow/README.md +64 -0
  491. package/workflows/register-account-flow/meta.yaml +4 -0
  492. package/workflows/register-account-flow/package.json +23 -0
  493. package/workflows/register-account-flow/tsconfig.json +16 -0
  494. package/workflows/register-account-flow/workflow.ts +127 -0
  495. package/workflows/replay-lab/.jshook-install.json +14 -0
  496. package/workflows/replay-lab/meta.yaml +6 -0
  497. package/workflows/replay-lab/package.json +22 -0
  498. package/workflows/replay-lab/pnpm-lock.yaml +819 -0
  499. package/workflows/replay-lab/tsconfig.json +15 -0
  500. package/workflows/replay-lab/workflow.ts +106 -0
  501. package/workflows/script-evidence-scan/.jshook-install.json +14 -0
  502. package/workflows/script-evidence-scan/LICENSE +21 -0
  503. package/workflows/script-evidence-scan/README.md +61 -0
  504. package/workflows/script-evidence-scan/meta.yaml +4 -0
  505. package/workflows/script-evidence-scan/package.json +23 -0
  506. package/workflows/script-evidence-scan/tsconfig.json +16 -0
  507. package/workflows/script-evidence-scan/workflow.ts +89 -0
  508. package/workflows/signature-hunter/.jshook-install.json +14 -0
  509. package/workflows/signature-hunter/LICENSE +21 -0
  510. package/workflows/signature-hunter/README.md +105 -0
  511. package/workflows/signature-hunter/docs/agent-recipes.md +44 -0
  512. package/workflows/signature-hunter/meta.yaml +6 -0
  513. package/workflows/signature-hunter/package.json +22 -0
  514. package/workflows/signature-hunter/tsconfig.json +15 -0
  515. package/workflows/signature-hunter/workflow.ts +170 -0
  516. package/workflows/signing-lineage/.jshook-install.json +14 -0
  517. package/workflows/signing-lineage/meta.yaml +6 -0
  518. package/workflows/signing-lineage/package.json +22 -0
  519. package/workflows/signing-lineage/pnpm-lock.yaml +819 -0
  520. package/workflows/signing-lineage/tsconfig.json +15 -0
  521. package/workflows/signing-lineage/workflow.ts +120 -0
  522. package/workflows/temp-mail-extract-link/.jshook-install.json +14 -0
  523. package/workflows/temp-mail-extract-link/LICENSE +21 -0
  524. package/workflows/temp-mail-extract-link/README.md +71 -0
  525. package/workflows/temp-mail-extract-link/meta.yaml +4 -0
  526. package/workflows/temp-mail-extract-link/package.json +23 -0
  527. package/workflows/temp-mail-extract-link/tsconfig.json +16 -0
  528. package/workflows/temp-mail-extract-link/workflow.ts +221 -0
  529. package/workflows/temp-mail-open-latest/.jshook-install.json +14 -0
  530. package/workflows/temp-mail-open-latest/LICENSE +21 -0
  531. package/workflows/temp-mail-open-latest/README.md +61 -0
  532. package/workflows/temp-mail-open-latest/meta.yaml +4 -0
  533. package/workflows/temp-mail-open-latest/package.json +23 -0
  534. package/workflows/temp-mail-open-latest/tsconfig.json +16 -0
  535. package/workflows/temp-mail-open-latest/workflow.ts +136 -0
  536. package/workflows/template/.jshook-install.json +14 -0
  537. package/workflows/template/LICENSE +21 -0
  538. package/workflows/template/README.md +45 -0
  539. package/workflows/template/docs/SKILL.md +111 -0
  540. package/workflows/template/meta.yaml +6 -0
  541. package/workflows/template/package.json +22 -0
  542. package/workflows/template/pnpm-lock.yaml +819 -0
  543. package/workflows/template/tsconfig.json +15 -0
  544. package/workflows/template/workflow.ts +73 -0
  545. package/workflows/web-api-capture-session/.jshook-install.json +14 -0
  546. package/workflows/web-api-capture-session/LICENSE +21 -0
  547. package/workflows/web-api-capture-session/README.md +64 -0
  548. package/workflows/web-api-capture-session/meta.yaml +4 -0
  549. package/workflows/web-api-capture-session/package.json +23 -0
  550. package/workflows/web-api-capture-session/tsconfig.json +16 -0
  551. package/workflows/web-api-capture-session/workflow.ts +124 -0
  552. package/workflows/ws-protocol-lifter/.jshook-install.json +14 -0
  553. package/workflows/ws-protocol-lifter/LICENSE +21 -0
  554. package/workflows/ws-protocol-lifter/README.md +105 -0
  555. package/workflows/ws-protocol-lifter/docs/agent-recipes.md +44 -0
  556. package/workflows/ws-protocol-lifter/meta.yaml +6 -0
  557. package/workflows/ws-protocol-lifter/package.json +22 -0
  558. package/workflows/ws-protocol-lifter/tsconfig.json +15 -0
  559. package/workflows/ws-protocol-lifter/workflow.ts +163 -0
  560. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  561. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  562. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  563. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  564. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  565. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  566. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  567. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  568. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  569. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  570. package/dist/src/services/LLMService.d.ts +0 -37
  571. package/dist/src/services/LLMService.js +0 -233
  572. package/dist/src/services/prompts/analysis.d.ts +0 -9
  573. package/dist/src/services/prompts/analysis.js +0 -158
  574. package/dist/src/services/prompts/crypto.d.ts +0 -2
  575. package/dist/src/services/prompts/crypto.js +0 -108
  576. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  577. package/dist/src/services/prompts/deobfuscation.js +0 -300
  578. package/dist/src/services/prompts/environment.d.ts +0 -16
  579. package/dist/src/services/prompts/environment.js +0 -372
  580. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  581. package/dist/src/services/prompts/intelligence.js +0 -250
  582. package/dist/src/services/prompts/taint.d.ts +0 -2
  583. package/dist/src/services/prompts/taint.js +0 -54
@@ -22,10 +22,9 @@ const manifest = {
22
22
  domain: DOMAIN,
23
23
  depKey: DEP_KEY,
24
24
  secondaryDepKeys: ['hookPresetHandlers'],
25
- profiles: ['full'],
25
+ profiles: ['workflow', 'full'],
26
26
  ensure,
27
27
  registrations: [
28
- { tool: t('ai_hook_generate'), domain: DOMAIN, bind: b((h, a) => h.handleAIHookGenerate(a)) },
29
28
  { tool: t('ai_hook_inject'), domain: DOMAIN, bind: b((h, a) => h.handleAIHookInject(a)) },
30
29
  { tool: t('ai_hook_get_data'), domain: DOMAIN, bind: b((h, a) => h.handleAIHookGetData(a)) },
31
30
  { tool: t('ai_hook_list'), domain: DOMAIN, bind: b((h, a) => h.handleAIHookList(a)) },
@@ -0,0 +1,2 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ export declare const instrumentationTools: Tool[];
@@ -0,0 +1,99 @@
1
+ import { tool } from '../../registry/tool-builder.js';
2
+ const queryTypes = [
3
+ 'before-load-inject',
4
+ 'runtime-hook',
5
+ 'network-intercept',
6
+ 'function-trace',
7
+ ];
8
+ export const instrumentationTools = [
9
+ tool('instrumentation_session_create')
10
+ .desc('Create a new instrumentation session that groups hooks, intercepts, and traces into a single queryable container.\n\nAll subsequent instrumentation operations can be associated with this session for unified management and artifact export.')
11
+ .string('name', 'Optional human-readable name for the session')
12
+ .build(),
13
+ tool('instrumentation_session_list')
14
+ .desc('List all active instrumentation sessions with their operation and artifact counts.')
15
+ .readOnly()
16
+ .idempotent()
17
+ .build(),
18
+ tool('instrumentation_session_destroy')
19
+ .desc('Destroy an instrumentation session, marking all its operations as completed. Session data is retained for querying but no new operations can be added.')
20
+ .string('sessionId', 'Session ID returned by instrumentation_session_create')
21
+ .required('sessionId')
22
+ .destructive()
23
+ .idempotent()
24
+ .build(),
25
+ tool('instrumentation_session_status')
26
+ .desc('Get detailed status for an instrumentation session including operation count, artifact count, and active/destroyed state.')
27
+ .string('sessionId', 'Session ID')
28
+ .required('sessionId')
29
+ .readOnly()
30
+ .idempotent()
31
+ .build(),
32
+ tool('instrumentation_operation_register')
33
+ .desc('Register a new instrumentation operation within a session so hooks, intercepts, and traces become queryable evidence-producing work items.')
34
+ .string('sessionId', 'Session ID returned by instrumentation_session_create')
35
+ .enum('type', queryTypes, 'Instrumentation type to register')
36
+ .string('target', 'Function name, URL pattern, or script target for the operation')
37
+ .object('config', {}, 'Operation-specific configuration payload')
38
+ .required('sessionId', 'type', 'target')
39
+ .build(),
40
+ tool('instrumentation_operation_list')
41
+ .desc('List all operations (hooks, intercepts, traces) registered within a session, optionally filtered by type.')
42
+ .string('sessionId', 'Session ID')
43
+ .enum('type', queryTypes, 'Optional filter by instrumentation type')
44
+ .required('sessionId')
45
+ .readOnly()
46
+ .idempotent()
47
+ .build(),
48
+ tool('instrumentation_artifact_record')
49
+ .desc('Record a captured artifact for an instrumentation operation so the session and evidence graph reflect observed runtime data.')
50
+ .string('operationId', 'Operation ID returned by instrumentation_operation_register')
51
+ .object('data', {}, 'Captured artifact payload such as args, returnValue, headers, or body')
52
+ .required('operationId', 'data')
53
+ .build(),
54
+ tool('instrumentation_artifact_query')
55
+ .desc('Query captured artifacts (args, return values, intercepted requests, trace data) from a session, optionally filtered by type and limited.')
56
+ .string('sessionId', 'Session ID')
57
+ .enum('type', queryTypes, 'Optional filter by artifact type')
58
+ .number('limit', 'Maximum number of artifacts to return', { default: 50 })
59
+ .required('sessionId')
60
+ .readOnly()
61
+ .idempotent()
62
+ .build(),
63
+ tool('instrumentation_hook_preset')
64
+ .desc('Apply hooks domain preset hooks within an instrumentation session and persist the injected preset summary as session artifacts.')
65
+ .string('sessionId', 'Session ID returned by instrumentation_session_create')
66
+ .string('preset', 'Single preset id to inject')
67
+ .array('presets', { type: 'string' }, 'Multiple preset ids to inject in one call')
68
+ .boolean('captureStack', 'Whether injected presets should capture stack traces', {
69
+ default: false,
70
+ })
71
+ .boolean('logToConsole', 'Whether injected presets should log to console', { default: true })
72
+ .enum('method', ['evaluate', 'evaluateOnNewDocument'], 'Injection method forwarded to hook_preset', { default: 'evaluate' })
73
+ .prop('customTemplate', {
74
+ type: 'object',
75
+ additionalProperties: true,
76
+ description: 'Optional inline custom preset definition',
77
+ })
78
+ .prop('customTemplates', {
79
+ type: 'array',
80
+ items: { type: 'object', additionalProperties: true },
81
+ description: 'Optional inline custom preset definitions',
82
+ })
83
+ .required('sessionId')
84
+ .openWorld()
85
+ .build(),
86
+ tool('instrumentation_network_replay')
87
+ .desc('Replay a previously captured network request inside an instrumentation session and persist the replay result or dry-run preview as session artifacts.')
88
+ .string('sessionId', 'Session ID returned by instrumentation_session_create')
89
+ .string('requestId', 'Captured request ID returned by network_get_requests')
90
+ .object('headerPatch', { additionalProperties: { type: 'string' } }, 'Optional request header overrides')
91
+ .string('bodyPatch', 'Optional raw request body override')
92
+ .string('methodOverride', 'Optional HTTP method override')
93
+ .string('urlOverride', 'Optional destination URL override')
94
+ .number('timeoutMs', 'Optional replay timeout in milliseconds')
95
+ .boolean('dryRun', 'Preview the replay without sending the request', { default: true })
96
+ .required('sessionId', 'requestId')
97
+ .openWorld()
98
+ .build(),
99
+ ];
@@ -0,0 +1,78 @@
1
+ import type { InstrumentationSessionManager } from '../../instrumentation/InstrumentationSession.js';
2
+ import type { ToolResponse } from '../../types.js';
3
+ interface HookPresetHandlerLike {
4
+ handleHookPreset(args: Record<string, unknown>): Promise<ToolResponse>;
5
+ }
6
+ interface NetworkReplayHandlerLike {
7
+ handleNetworkReplayRequest(args: Record<string, unknown>): Promise<ToolResponse>;
8
+ }
9
+ interface InstrumentationHandlerDeps {
10
+ hookPresetHandlers?: HookPresetHandlerLike;
11
+ advancedHandlers?: NetworkReplayHandlerLike;
12
+ }
13
+ export declare class InstrumentationHandlers {
14
+ private readonly sessionManager;
15
+ private readonly deps;
16
+ constructor(sessionManager: InstrumentationSessionManager, deps?: InstrumentationHandlerDeps);
17
+ handleSessionCreate(args: Record<string, unknown>): Promise<{
18
+ content: {
19
+ type: "text";
20
+ text: string;
21
+ }[];
22
+ }>;
23
+ handleSessionList(_args: Record<string, unknown>): Promise<{
24
+ content: {
25
+ type: "text";
26
+ text: string;
27
+ }[];
28
+ }>;
29
+ handleSessionDestroy(args: Record<string, unknown>): Promise<{
30
+ content: {
31
+ type: "text";
32
+ text: string;
33
+ }[];
34
+ }>;
35
+ handleSessionStatus(args: Record<string, unknown>): Promise<{
36
+ content: {
37
+ type: "text";
38
+ text: string;
39
+ }[];
40
+ }>;
41
+ handleOperationList(args: Record<string, unknown>): Promise<{
42
+ content: {
43
+ type: "text";
44
+ text: string;
45
+ }[];
46
+ }>;
47
+ handleOperationRegister(args: Record<string, unknown>): Promise<{
48
+ content: {
49
+ type: "text";
50
+ text: string;
51
+ }[];
52
+ }>;
53
+ handleArtifactQuery(args: Record<string, unknown>): Promise<{
54
+ content: {
55
+ type: "text";
56
+ text: string;
57
+ }[];
58
+ }>;
59
+ handleArtifactRecord(args: Record<string, unknown>): Promise<{
60
+ content: {
61
+ type: "text";
62
+ text: string;
63
+ }[];
64
+ }>;
65
+ handleHookPreset(args: Record<string, unknown>): Promise<{
66
+ content: {
67
+ type: "text";
68
+ text: string;
69
+ }[];
70
+ }>;
71
+ handleNetworkReplay(args: Record<string, unknown>): Promise<{
72
+ content: {
73
+ type: "text";
74
+ text: string;
75
+ }[];
76
+ }>;
77
+ }
78
+ export {};
@@ -0,0 +1,206 @@
1
+ import { InstrumentationType } from '../../instrumentation/types.js';
2
+ import { argString } from '../../domains/shared/parse-args.js';
3
+ function jsonResponse(data) {
4
+ return {
5
+ content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],
6
+ };
7
+ }
8
+ export class InstrumentationHandlers {
9
+ sessionManager;
10
+ deps;
11
+ constructor(sessionManager, deps = {}) {
12
+ this.sessionManager = sessionManager;
13
+ this.deps = deps;
14
+ }
15
+ async handleSessionCreate(args) {
16
+ try {
17
+ const name = argString(args, 'name');
18
+ const session = this.sessionManager.createSession(name || undefined);
19
+ return jsonResponse({ success: true, session });
20
+ }
21
+ catch (error) {
22
+ return jsonResponse({
23
+ success: false,
24
+ error: error instanceof Error ? error.message : String(error),
25
+ });
26
+ }
27
+ }
28
+ async handleSessionList(_args) {
29
+ try {
30
+ const sessions = this.sessionManager.listSessions();
31
+ return jsonResponse({ success: true, totalSessions: sessions.length, sessions });
32
+ }
33
+ catch (error) {
34
+ return jsonResponse({
35
+ success: false,
36
+ error: error instanceof Error ? error.message : String(error),
37
+ });
38
+ }
39
+ }
40
+ async handleSessionDestroy(args) {
41
+ try {
42
+ const sessionId = argString(args, 'sessionId', '');
43
+ if (!sessionId)
44
+ return jsonResponse({ success: false, error: 'sessionId is required' });
45
+ this.sessionManager.destroySession(sessionId);
46
+ return jsonResponse({ success: true, sessionId, message: 'Session destroyed' });
47
+ }
48
+ catch (error) {
49
+ return jsonResponse({
50
+ success: false,
51
+ error: error instanceof Error ? error.message : String(error),
52
+ });
53
+ }
54
+ }
55
+ async handleSessionStatus(args) {
56
+ try {
57
+ const sessionId = argString(args, 'sessionId', '');
58
+ if (!sessionId)
59
+ return jsonResponse({ success: false, error: 'sessionId is required' });
60
+ const session = this.sessionManager.getSession(sessionId);
61
+ if (!session)
62
+ return jsonResponse({ success: false, error: `Session "${sessionId}" not found` });
63
+ const stats = this.sessionManager.getSessionStats(sessionId);
64
+ return jsonResponse({ success: true, session, stats });
65
+ }
66
+ catch (error) {
67
+ return jsonResponse({
68
+ success: false,
69
+ error: error instanceof Error ? error.message : String(error),
70
+ });
71
+ }
72
+ }
73
+ async handleOperationList(args) {
74
+ try {
75
+ const sessionId = argString(args, 'sessionId', '');
76
+ if (!sessionId)
77
+ return jsonResponse({ success: false, error: 'sessionId is required' });
78
+ let ops = this.sessionManager.getSessionOperations(sessionId);
79
+ const typeFilter = argString(args, 'type');
80
+ if (typeFilter) {
81
+ ops = ops.filter((o) => o.type === typeFilter);
82
+ }
83
+ return jsonResponse({ success: true, totalOperations: ops.length, operations: ops });
84
+ }
85
+ catch (error) {
86
+ return jsonResponse({
87
+ success: false,
88
+ error: error instanceof Error ? error.message : String(error),
89
+ });
90
+ }
91
+ }
92
+ async handleOperationRegister(args) {
93
+ try {
94
+ const sessionId = argString(args, 'sessionId', '');
95
+ const type = argString(args, 'type', '');
96
+ const target = argString(args, 'target', '');
97
+ const config = args.config && typeof args.config === 'object' && !Array.isArray(args.config)
98
+ ? args.config
99
+ : {};
100
+ if (!sessionId)
101
+ return jsonResponse({ success: false, error: 'sessionId is required' });
102
+ if (!type)
103
+ return jsonResponse({ success: false, error: 'type is required' });
104
+ if (!target)
105
+ return jsonResponse({ success: false, error: 'target is required' });
106
+ const operation = this.sessionManager.registerOperation(sessionId, type, target, config);
107
+ return jsonResponse({ success: true, operation });
108
+ }
109
+ catch (error) {
110
+ return jsonResponse({
111
+ success: false,
112
+ error: error instanceof Error ? error.message : String(error),
113
+ });
114
+ }
115
+ }
116
+ async handleArtifactQuery(args) {
117
+ try {
118
+ const sessionId = argString(args, 'sessionId', '');
119
+ if (!sessionId)
120
+ return jsonResponse({ success: false, error: 'sessionId is required' });
121
+ const typeRaw = argString(args, 'type');
122
+ const type = typeRaw ? typeRaw : undefined;
123
+ const limit = typeof args.limit === 'number' ? args.limit : 50;
124
+ let artifacts = this.sessionManager.getArtifacts(sessionId, type);
125
+ if (limit > 0)
126
+ artifacts = artifacts.slice(0, limit);
127
+ return jsonResponse({ success: true, totalArtifacts: artifacts.length, artifacts });
128
+ }
129
+ catch (error) {
130
+ return jsonResponse({
131
+ success: false,
132
+ error: error instanceof Error ? error.message : String(error),
133
+ });
134
+ }
135
+ }
136
+ async handleArtifactRecord(args) {
137
+ try {
138
+ const operationId = argString(args, 'operationId', '');
139
+ const data = args.data && typeof args.data === 'object' && !Array.isArray(args.data)
140
+ ? args.data
141
+ : undefined;
142
+ if (!operationId)
143
+ return jsonResponse({ success: false, error: 'operationId is required' });
144
+ if (!data)
145
+ return jsonResponse({ success: false, error: 'data is required' });
146
+ const artifact = this.sessionManager.recordArtifact(operationId, data);
147
+ return jsonResponse({ success: true, artifact });
148
+ }
149
+ catch (error) {
150
+ return jsonResponse({
151
+ success: false,
152
+ error: error instanceof Error ? error.message : String(error),
153
+ });
154
+ }
155
+ }
156
+ async handleHookPreset(args) {
157
+ try {
158
+ const sessionId = argString(args, 'sessionId', '');
159
+ if (!sessionId)
160
+ return jsonResponse({ success: false, error: 'sessionId is required' });
161
+ if (!this.deps.hookPresetHandlers) {
162
+ return jsonResponse({ success: false, error: 'hookPresetHandlers is not available' });
163
+ }
164
+ const delegatedArgs = { ...args };
165
+ delete delegatedArgs['sessionId'];
166
+ const result = await this.sessionManager.applyHookPreset(sessionId, this.deps.hookPresetHandlers, delegatedArgs);
167
+ return jsonResponse({
168
+ success: result.payload.success !== false && result.operation.status === 'completed',
169
+ operation: result.operation,
170
+ artifacts: result.artifacts,
171
+ result: result.payload,
172
+ });
173
+ }
174
+ catch (error) {
175
+ return jsonResponse({
176
+ success: false,
177
+ error: error instanceof Error ? error.message : String(error),
178
+ });
179
+ }
180
+ }
181
+ async handleNetworkReplay(args) {
182
+ try {
183
+ const sessionId = argString(args, 'sessionId', '');
184
+ if (!sessionId)
185
+ return jsonResponse({ success: false, error: 'sessionId is required' });
186
+ if (!this.deps.advancedHandlers) {
187
+ return jsonResponse({ success: false, error: 'advancedHandlers is not available' });
188
+ }
189
+ const delegatedArgs = { ...args };
190
+ delete delegatedArgs['sessionId'];
191
+ const result = await this.sessionManager.replayNetworkRequest(sessionId, this.deps.advancedHandlers, delegatedArgs);
192
+ return jsonResponse({
193
+ success: result.payload.success !== false && result.operation.status === 'completed',
194
+ operation: result.operation,
195
+ artifacts: result.artifacts,
196
+ result: result.payload,
197
+ });
198
+ }
199
+ catch (error) {
200
+ return jsonResponse({
201
+ success: false,
202
+ error: error instanceof Error ? error.message : String(error),
203
+ });
204
+ }
205
+ }
206
+ }
@@ -0,0 +1,2 @@
1
+ export { InstrumentationHandlers } from './handlers.js';
2
+ export { instrumentationTools } from './definitions.js';
@@ -0,0 +1,2 @@
1
+ export { InstrumentationHandlers } from './handlers.js';
2
+ export { instrumentationTools } from './definitions.js';
@@ -0,0 +1,63 @@
1
+ import type { MCPServerContext } from '../../domains/shared/registry.js';
2
+ import { InstrumentationHandlers } from '../../domains/instrumentation/handlers.js';
3
+ type H = InstrumentationHandlers;
4
+ declare function ensure(ctx: MCPServerContext): H;
5
+ declare const manifest: {
6
+ kind: "domain-manifest";
7
+ version: 1;
8
+ domain: "instrumentation";
9
+ depKey: "instrumentationHandlers";
10
+ profiles: ("workflow" | "full")[];
11
+ ensure: typeof ensure;
12
+ workflowRule: {
13
+ patterns: RegExp[];
14
+ priority: number;
15
+ tools: string[];
16
+ hint: string;
17
+ };
18
+ registrations: {
19
+ tool: {
20
+ inputSchema: {
21
+ [x: string]: unknown;
22
+ type: "object";
23
+ properties?: {
24
+ [x: string]: object;
25
+ } | undefined;
26
+ required?: string[] | undefined;
27
+ };
28
+ name: string;
29
+ description?: string | undefined;
30
+ outputSchema?: {
31
+ [x: string]: unknown;
32
+ type: "object";
33
+ properties?: {
34
+ [x: string]: object;
35
+ } | undefined;
36
+ required?: string[] | undefined;
37
+ } | undefined;
38
+ annotations?: {
39
+ title?: string | undefined;
40
+ readOnlyHint?: boolean | undefined;
41
+ destructiveHint?: boolean | undefined;
42
+ idempotentHint?: boolean | undefined;
43
+ openWorldHint?: boolean | undefined;
44
+ } | undefined;
45
+ execution?: {
46
+ taskSupport?: "optional" | "required" | "forbidden" | undefined;
47
+ } | undefined;
48
+ _meta?: {
49
+ [x: string]: unknown;
50
+ } | undefined;
51
+ icons?: {
52
+ src: string;
53
+ mimeType?: string | undefined;
54
+ sizes?: string[] | undefined;
55
+ theme?: "light" | "dark" | undefined;
56
+ }[] | undefined;
57
+ title?: string | undefined;
58
+ };
59
+ domain: "instrumentation";
60
+ bind: (deps: import("../../domains/shared/registry.js").ToolHandlerDeps) => (args: import("../../types.js").ToolArgs) => Promise<unknown>;
61
+ }[];
62
+ };
63
+ export default manifest;
@@ -0,0 +1,114 @@
1
+ import { bindByDepKey, toolLookup } from '../../domains/shared/registry.js';
2
+ import { instrumentationTools } from '../../domains/instrumentation/definitions.js';
3
+ import { InstrumentationHandlers } from '../../domains/instrumentation/handlers.js';
4
+ import { InstrumentationSessionManager } from '../../instrumentation/InstrumentationSession.js';
5
+ import { EvidenceGraphBridge } from '../../instrumentation/EvidenceGraphBridge.js';
6
+ import { ReverseEvidenceGraph } from '../../evidence/ReverseEvidenceGraph.js';
7
+ const DOMAIN = 'instrumentation';
8
+ const DEP_KEY = 'instrumentationHandlers';
9
+ const t = toolLookup(instrumentationTools);
10
+ const b = (invoke) => bindByDepKey(DEP_KEY, invoke);
11
+ function ensure(ctx) {
12
+ const hookPresetHandlers = ctx.handlerDeps.hookPresetHandlers;
13
+ const advancedHandlers = ctx.handlerDeps.advancedHandlers;
14
+ let graph = ctx.getDomainInstance('evidenceGraph');
15
+ if (!graph) {
16
+ graph = new ReverseEvidenceGraph();
17
+ ctx.setDomainInstance('evidenceGraph', graph);
18
+ }
19
+ let sessionManager = ctx.getDomainInstance('instrumentationSessionManager');
20
+ if (!sessionManager) {
21
+ sessionManager = new InstrumentationSessionManager();
22
+ ctx.setDomainInstance('instrumentationSessionManager', sessionManager);
23
+ }
24
+ let bridge = ctx.getDomainInstance('evidenceGraphBridge');
25
+ if (!bridge) {
26
+ bridge = new EvidenceGraphBridge(graph);
27
+ ctx.setDomainInstance('evidenceGraphBridge', bridge);
28
+ }
29
+ sessionManager.setEvidenceBridge(bridge);
30
+ if (!ctx.instrumentationHandlers) {
31
+ ctx.instrumentationHandlers = new InstrumentationHandlers(sessionManager, {
32
+ hookPresetHandlers: hookPresetHandlers,
33
+ advancedHandlers: advancedHandlers,
34
+ });
35
+ }
36
+ return ctx.instrumentationHandlers;
37
+ }
38
+ const manifest = {
39
+ kind: 'domain-manifest',
40
+ version: 1,
41
+ domain: DOMAIN,
42
+ depKey: DEP_KEY,
43
+ profiles: ['workflow', 'full'],
44
+ ensure,
45
+ workflowRule: {
46
+ patterns: [
47
+ /(hook|intercept|trace|instrument).*(session|unified|manage|all)/i,
48
+ /(session|统一|会话).*(hook|拦截|追踪|仪器化|instrument)/i,
49
+ ],
50
+ priority: 95,
51
+ tools: [
52
+ 'instrumentation_session_create',
53
+ 'instrumentation_operation_register',
54
+ 'instrumentation_artifact_record',
55
+ 'instrumentation_artifact_query',
56
+ 'instrumentation_hook_preset',
57
+ 'instrumentation_network_replay',
58
+ ],
59
+ hint: 'Instrumentation session: create session → attach hook presets / network replay → record artifacts → query artifacts → destroy when done',
60
+ },
61
+ registrations: [
62
+ {
63
+ tool: t('instrumentation_session_create'),
64
+ domain: DOMAIN,
65
+ bind: b((h, a) => h.handleSessionCreate(a)),
66
+ },
67
+ {
68
+ tool: t('instrumentation_session_list'),
69
+ domain: DOMAIN,
70
+ bind: b((h, a) => h.handleSessionList(a)),
71
+ },
72
+ {
73
+ tool: t('instrumentation_session_destroy'),
74
+ domain: DOMAIN,
75
+ bind: b((h, a) => h.handleSessionDestroy(a)),
76
+ },
77
+ {
78
+ tool: t('instrumentation_session_status'),
79
+ domain: DOMAIN,
80
+ bind: b((h, a) => h.handleSessionStatus(a)),
81
+ },
82
+ {
83
+ tool: t('instrumentation_operation_register'),
84
+ domain: DOMAIN,
85
+ bind: b((h, a) => h.handleOperationRegister(a)),
86
+ },
87
+ {
88
+ tool: t('instrumentation_operation_list'),
89
+ domain: DOMAIN,
90
+ bind: b((h, a) => h.handleOperationList(a)),
91
+ },
92
+ {
93
+ tool: t('instrumentation_artifact_record'),
94
+ domain: DOMAIN,
95
+ bind: b((h, a) => h.handleArtifactRecord(a)),
96
+ },
97
+ {
98
+ tool: t('instrumentation_artifact_query'),
99
+ domain: DOMAIN,
100
+ bind: b((h, a) => h.handleArtifactQuery(a)),
101
+ },
102
+ {
103
+ tool: t('instrumentation_hook_preset'),
104
+ domain: DOMAIN,
105
+ bind: b((h, a) => h.handleHookPreset(a)),
106
+ },
107
+ {
108
+ tool: t('instrumentation_network_replay'),
109
+ domain: DOMAIN,
110
+ bind: b((h, a) => h.handleNetworkReplay(a)),
111
+ },
112
+ ],
113
+ };
114
+ export default manifest;
@@ -1,45 +1,18 @@
1
+ import { tool } from '../../registry/tool-builder.js';
1
2
  export const macroTools = [
2
- {
3
- name: 'run_macro',
4
- description: 'Execute a registered macro by ID. Macros chain multiple MCP tools in sequence with inline progress reporting and atomic bailout.\n\nBuilt-in macros:\n- `deobfuscate_ast_flow` — deobfuscate → advanced deobfuscation → extract function tree\n- `unpacker_flow` — detect packer → extract → deobfuscate → beautify\n\nUser-defined macros are loaded from JSON files in `macros/` directory.\n\nUse `list_macros` to see all available macros.',
5
- inputSchema: {
6
- type: 'object',
7
- properties: {
8
- macroId: {
9
- type: 'string',
10
- description: 'ID of the macro to execute (e.g., "deobfuscate_ast_flow")',
11
- },
12
- inputOverrides: {
13
- type: 'object',
14
- description: 'Optional per-step input overrides keyed by step ID (e.g., { "deobfuscate": { "code": "..." } })',
15
- additionalProperties: {
16
- type: 'object',
17
- additionalProperties: true,
18
- },
19
- },
20
- },
21
- required: ['macroId'],
22
- },
23
- annotations: {
24
- readOnlyHint: false,
25
- destructiveHint: false,
26
- idempotentHint: false,
27
- openWorldHint: false,
28
- },
29
- },
30
- {
31
- name: 'list_macros',
32
- description: 'List all available macros (built-in + user-defined from macros/ directory).',
33
- inputSchema: {
34
- type: 'object',
35
- properties: {},
36
- additionalProperties: false,
37
- },
38
- annotations: {
39
- readOnlyHint: true,
40
- destructiveHint: false,
41
- idempotentHint: true,
42
- openWorldHint: false,
43
- },
44
- },
3
+ tool('run_macro')
4
+ .desc('Execute a registered macro by ID with inline progress and atomic bailout')
5
+ .string('macroId', 'Macro ID to execute')
6
+ .prop('inputOverrides', {
7
+ type: 'object',
8
+ description: 'Per-step input overrides keyed by step ID',
9
+ additionalProperties: { type: 'object', additionalProperties: true },
10
+ })
11
+ .required('macroId')
12
+ .build(),
13
+ tool('list_macros')
14
+ .desc('List all available macros (built-in + user-defined)')
15
+ .readOnly()
16
+ .idempotent()
17
+ .build(),
45
18
  ];