@jshookmcp/jshook 0.2.2 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +15 -6
  3. package/README.zh.md +19 -4
  4. package/dist/native/scripts/linux/enum-windows.sh +12 -12
  5. package/dist/native/scripts/macos/enum-windows.applescript +22 -22
  6. package/dist/native/scripts/windows/enum-windows-by-class.ps1 +51 -51
  7. package/dist/native/scripts/windows/enum-windows.ps1 +44 -44
  8. package/dist/native/scripts/windows/inject-dll.ps1 +21 -21
  9. package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
  10. package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
  11. package/dist/packages/extension-sdk/src/plugin.js +119 -33
  12. package/dist/packages/extension-sdk/src/workflow.d.ts +156 -0
  13. package/dist/packages/extension-sdk/src/workflow.js +236 -0
  14. package/dist/src/config/search-defaults.js +161 -0
  15. package/dist/src/constants.d.ts +3 -0
  16. package/dist/src/constants.js +4 -1
  17. package/dist/src/index.d.ts +1 -1
  18. package/dist/src/index.js +13 -17
  19. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
  20. package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
  21. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
  22. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
  23. package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
  24. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
  25. package/dist/src/modules/analyzer/PatternDetector.js +3 -3
  26. package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
  27. package/dist/src/modules/browser/BrowserDiscovery.d.ts +6 -5
  28. package/dist/src/modules/browser/BrowserDiscovery.js +3 -3
  29. package/dist/src/modules/browser/BrowserModeManager.d.ts +1 -1
  30. package/dist/src/modules/browser/BrowserModeManager.js +11 -10
  31. package/dist/src/modules/browser/TabRegistry.js +2 -2
  32. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  33. package/dist/src/modules/browser/UnifiedBrowserManager.js +19 -4
  34. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +14 -23
  35. package/dist/src/modules/captcha/AICaptchaDetector.js +8 -202
  36. package/dist/src/modules/captcha/CaptchaDetector.d.ts +31 -17
  37. package/dist/src/modules/captcha/CaptchaDetector.js +1 -1
  38. package/dist/src/modules/collector/CodeCache.d.ts +2 -2
  39. package/dist/src/modules/collector/CodeCollector.d.ts +12 -9
  40. package/dist/src/modules/collector/CodeCollector.js +5 -6
  41. package/dist/src/modules/collector/DOMInspector.d.ts +3 -2
  42. package/dist/src/modules/collector/DOMInspector.js +49 -59
  43. package/dist/src/modules/collector/PageController.d.ts +17 -4
  44. package/dist/src/modules/collector/PageController.js +2 -5
  45. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  46. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  47. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  48. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  49. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  50. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  51. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +5 -3
  52. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  53. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  54. package/dist/src/modules/deobfuscator/Deobfuscator.js +4 -39
  55. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  56. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  57. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +2 -3
  58. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +5 -57
  59. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  60. package/dist/src/modules/deobfuscator/PackerDeobfuscator.js +1 -1
  61. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  62. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  63. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  64. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  65. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  66. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  67. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  68. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  69. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  70. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  71. package/dist/src/modules/external/ExternalToolRunner.d.ts +1 -1
  72. package/dist/src/modules/external/ExternalToolRunner.js +26 -23
  73. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  74. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  75. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  76. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  77. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  78. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  79. package/dist/src/modules/process/LinuxProcessManager.js +4 -2
  80. package/dist/src/modules/process/MacProcessManager.js +1 -1
  81. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  82. package/dist/src/modules/process/MemoryManager.js +2 -2
  83. package/dist/src/modules/process/ProcessManager.impl.js +1 -1
  84. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  85. package/dist/src/modules/process/memory/reader.js +35 -3
  86. package/dist/src/modules/process/memory/regions.enumerate.js +1 -1
  87. package/dist/src/modules/process/memory/regions.protection.js +42 -9
  88. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  89. package/dist/src/modules/process/memory/scanner.darwin.js +57 -0
  90. package/dist/src/modules/process/memory/scanner.js +88 -4
  91. package/dist/src/modules/process/memory/writer.js +44 -4
  92. package/dist/src/modules/security/ExecutionSandbox.js +7 -8
  93. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  94. package/dist/src/modules/stealth/StealthScripts.d.ts +4 -2
  95. package/dist/src/modules/stealth/StealthScripts.js +53 -14
  96. package/dist/src/modules/stealth/StealthVerifier.d.ts +1 -1
  97. package/dist/src/modules/stealth/StealthVerifier.js +2 -4
  98. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  99. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  100. package/dist/src/modules/trace/TraceDB.js +12 -6
  101. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  102. package/dist/src/native/AntiCheatDetector.js +67 -16
  103. package/dist/src/native/CodeInjector.js +4 -4
  104. package/dist/src/native/HardwareBreakpoint.js +25 -16
  105. package/dist/src/native/HeapAnalyzer.js +2 -2
  106. package/dist/src/native/MemoryController.js +1 -1
  107. package/dist/src/native/MemoryScanSession.js +2 -2
  108. package/dist/src/native/MemoryScanner.js +4 -8
  109. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  110. package/dist/src/native/PEAnalyzer.js +14 -15
  111. package/dist/src/native/PointerChainEngine.js +2 -4
  112. package/dist/src/native/ScriptLoader.js +4 -9
  113. package/dist/src/native/Speedhack.js +1 -1
  114. package/dist/src/native/StructureAnalyzer.js +52 -33
  115. package/dist/src/native/Win32API.d.ts +1 -0
  116. package/dist/src/native/Win32API.js +13 -0
  117. package/dist/src/native/Win32Debug.js +19 -19
  118. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  119. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  120. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  121. package/dist/src/server/MCPServer.context.d.ts +2 -1
  122. package/dist/src/server/MCPServer.d.ts +2 -1
  123. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  124. package/dist/src/server/MCPServer.domain.js +81 -16
  125. package/dist/src/server/MCPServer.js +42 -14
  126. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  127. package/dist/src/server/MCPServer.resources.js +91 -0
  128. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  129. package/dist/src/server/MCPServer.search.helpers.js +2 -2
  130. package/dist/src/server/MCPServer.tools.js +1 -1
  131. package/dist/src/server/MCPServer.transport.js +12 -0
  132. package/dist/src/server/ToolCallContextGuard.d.ts +5 -0
  133. package/dist/src/server/ToolCallContextGuard.js +85 -0
  134. package/dist/src/server/ToolRouter.d.ts +26 -10
  135. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  136. package/dist/src/server/ToolRouter.intent.js +77 -0
  137. package/dist/src/server/ToolRouter.js +103 -284
  138. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  139. package/dist/src/server/ToolRouter.policy.js +163 -0
  140. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  141. package/dist/src/server/ToolRouter.probe.js +103 -0
  142. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  143. package/dist/src/server/ToolRouter.renderer.js +52 -0
  144. package/dist/src/server/activation/ActivationController.js +15 -12
  145. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  146. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  147. package/dist/src/server/domains/analysis/definitions.js +155 -655
  148. package/dist/src/server/domains/analysis/handlers.impl.d.ts +8 -8
  149. package/dist/src/server/domains/analysis/handlers.impl.js +34 -28
  150. package/dist/src/server/domains/analysis/handlers.web-tools.js +4 -3
  151. package/dist/src/server/domains/analysis/manifest.js +6 -4
  152. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  153. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  154. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  155. package/dist/src/server/domains/browser/definitions.tools.page-core.js +157 -386
  156. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  157. package/dist/src/server/domains/browser/definitions.tools.runtime.js +61 -174
  158. package/dist/src/server/domains/browser/definitions.tools.security.js +92 -237
  159. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  160. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  161. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  162. package/dist/src/server/domains/browser/handlers/facade-initializer.d.ts +3 -3
  163. package/dist/src/server/domains/browser/handlers/facade-initializer.js +3 -3
  164. package/dist/src/server/domains/browser/handlers/framework-state.js +231 -3
  165. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  166. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  167. package/dist/src/server/domains/browser/handlers/stealth-injection.js +8 -2
  168. package/dist/src/server/domains/browser/handlers.impl.d.ts +15 -12
  169. package/dist/src/server/domains/browser/handlers.impl.js +5 -6
  170. package/dist/src/server/domains/browser/manifest.js +37 -13
  171. package/dist/src/server/domains/coordination/definitions.js +50 -149
  172. package/dist/src/server/domains/coordination/index.d.ts +20 -1
  173. package/dist/src/server/domains/coordination/index.js +133 -0
  174. package/dist/src/server/domains/coordination/manifest.js +15 -0
  175. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  176. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  177. package/dist/src/server/domains/debugger/manifest.js +9 -2
  178. package/dist/src/server/domains/encoding/definitions.js +43 -153
  179. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  180. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  181. package/dist/src/server/domains/evidence/definitions.js +42 -0
  182. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  183. package/dist/src/server/domains/evidence/handlers.js +60 -0
  184. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  185. package/dist/src/server/domains/evidence/index.js +2 -0
  186. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  187. package/dist/src/server/domains/evidence/manifest.js +78 -0
  188. package/dist/src/server/domains/graphql/definitions.js +53 -141
  189. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  190. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  191. package/dist/src/server/domains/hooks/ai-handlers.js +4 -70
  192. package/dist/src/server/domains/hooks/definitions.js +69 -335
  193. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  194. package/dist/src/server/domains/hooks/manifest.js +1 -2
  195. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  196. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  197. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  198. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  199. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  200. package/dist/src/server/domains/instrumentation/index.js +2 -0
  201. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  202. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  203. package/dist/src/server/domains/macro/definitions.js +16 -43
  204. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  205. package/dist/src/server/domains/maintenance/handlers.d.ts +2 -2
  206. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  207. package/dist/src/server/domains/maintenance/handlers.js +2 -2
  208. package/dist/src/server/domains/memory/definitions.js +387 -559
  209. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  210. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  211. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  212. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  213. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  214. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  215. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  216. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  217. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  218. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  219. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  220. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  221. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  222. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  223. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  224. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  225. package/dist/src/server/domains/memory/manifest.js +236 -64
  226. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  227. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  228. package/dist/src/server/domains/native-bridge/index.js +2 -1
  229. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  230. package/dist/src/server/domains/network/definitions.js +175 -578
  231. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  232. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  233. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  234. package/dist/src/server/domains/network/handlers.base.js +3 -878
  235. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  236. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  237. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  238. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  239. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  240. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  241. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  242. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  243. package/dist/src/server/domains/network/manifest.js +15 -0
  244. package/dist/src/server/domains/network/replay.js +1 -4
  245. package/dist/src/server/domains/platform/definitions.js +121 -112
  246. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +5 -1
  247. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +194 -5
  248. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  249. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  250. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  251. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  252. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  253. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  254. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  255. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  256. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  257. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  258. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  259. package/dist/src/server/domains/platform/handlers/miniapp-handlers.d.ts +1 -1
  260. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +4 -4
  261. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  262. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  263. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  264. package/dist/src/server/domains/platform/handlers.js +29 -0
  265. package/dist/src/server/domains/platform/manifest.js +38 -0
  266. package/dist/src/server/domains/process/definitions.js +163 -647
  267. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  268. package/dist/src/server/domains/process/handlers.base.js +7 -462
  269. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  270. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  271. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  272. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  273. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +19 -17
  274. package/dist/src/server/domains/process/manifest.js +6 -1
  275. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  276. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  277. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  278. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  279. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  280. package/dist/src/server/domains/shared/modules.js +0 -1
  281. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  282. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  283. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  284. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  285. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  286. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  287. package/dist/src/server/domains/streaming/definitions.js +36 -148
  288. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  289. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  290. package/dist/src/server/domains/trace/TraceSummarizer.d.ts +60 -0
  291. package/dist/src/server/domains/trace/TraceSummarizer.js +112 -0
  292. package/dist/src/server/domains/trace/definitions.tools.js +51 -176
  293. package/dist/src/server/domains/trace/handlers.d.ts +2 -1
  294. package/dist/src/server/domains/trace/handlers.js +62 -9
  295. package/dist/src/server/domains/trace/index.d.ts +2 -1
  296. package/dist/src/server/domains/trace/index.js +2 -1
  297. package/dist/src/server/domains/trace/manifest.js +18 -4
  298. package/dist/src/server/domains/transform/definitions.js +50 -210
  299. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +6 -6
  300. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  301. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  302. package/dist/src/server/domains/transform/manifest.js +1 -1
  303. package/dist/src/server/domains/wasm/definitions.js +55 -232
  304. package/dist/src/server/domains/wasm/handlers.js +3 -3
  305. package/dist/src/server/domains/workflow/definitions.js +144 -414
  306. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +2 -2
  307. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  308. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  309. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  310. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  311. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  312. package/dist/src/server/evidence/index.d.ts +2 -0
  313. package/dist/src/server/evidence/index.js +1 -0
  314. package/dist/src/server/evidence/types.d.ts +22 -0
  315. package/dist/src/server/evidence/types.js +1 -0
  316. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  317. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  318. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  319. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  320. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  321. package/dist/src/server/extensions/ExtensionManager.roots.js +19 -9
  322. package/dist/src/server/extensions/plugin-config.js +1 -1
  323. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  324. package/dist/src/server/extensions/plugin-env.js +10 -4
  325. package/dist/src/server/extensions/types.d.ts +17 -0
  326. package/dist/src/server/extensions/types.js +1 -1
  327. package/dist/src/server/http/HttpMiddleware.js +1 -1
  328. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  329. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  330. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  331. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  332. package/dist/src/server/instrumentation/index.d.ts +2 -0
  333. package/dist/src/server/instrumentation/index.js +2 -0
  334. package/dist/src/server/instrumentation/types.d.ts +62 -0
  335. package/dist/src/server/instrumentation/types.js +7 -0
  336. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  337. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  338. package/dist/src/server/macros/MacroRunner.js +6 -2
  339. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  340. package/dist/src/server/macros/builtins/index.js +51 -7
  341. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  342. package/dist/src/server/registry/contracts.d.ts +7 -1
  343. package/dist/src/server/registry/discovery.js +5 -4
  344. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  345. package/dist/src/server/registry/index.js +4 -4
  346. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  347. package/dist/src/server/registry/tool-builder.js +105 -0
  348. package/dist/src/server/sandbox/MCPBridge.d.ts +9 -0
  349. package/dist/src/server/sandbox/MCPBridge.js +22 -0
  350. package/dist/src/server/sandbox/QuickJSSandbox.d.ts +4 -1
  351. package/dist/src/server/sandbox/QuickJSSandbox.js +162 -2
  352. package/dist/src/server/sandbox/types.d.ts +13 -0
  353. package/dist/src/server/search/AffinityGraph.d.ts +7 -1
  354. package/dist/src/server/search/AffinityGraph.js +24 -3
  355. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  356. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  357. package/dist/src/server/search/FeedbackTracker.js +26 -0
  358. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  359. package/dist/src/server/search/QueryNormalizer.js +94 -0
  360. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  361. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  362. package/dist/src/server/workflows/WorkflowContract.d.ts +24 -0
  363. package/dist/src/server/workflows/WorkflowContract.js +12 -0
  364. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  365. package/dist/src/server/workflows/WorkflowEngine.js +136 -3
  366. package/dist/src/types/config.d.ts +0 -14
  367. package/dist/src/types/deobfuscator.d.ts +0 -1
  368. package/dist/src/types/index.d.ts +1 -1
  369. package/dist/src/utils/DetailedDataManager.js +2 -0
  370. package/dist/src/utils/RingBuffer.js +5 -5
  371. package/dist/src/utils/TokenBudgetManager.js +1 -1
  372. package/dist/src/utils/UnifiedCacheManager.d.ts +1 -1
  373. package/dist/src/utils/UnifiedCacheManager.js +3 -3
  374. package/dist/src/utils/artifactRetention.js +2 -2
  375. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  376. package/dist/src/utils/betterSqlite3.js +88 -0
  377. package/dist/src/utils/browserExecutable.js +2 -2
  378. package/dist/src/utils/cliFastPath.js +17 -6
  379. package/dist/src/utils/config.js +4 -26
  380. package/dist/src/utils/environmentDoctor.js +138 -11
  381. package/dist/src/utils/outputPaths.js +16 -9
  382. package/dist/src/utils/parallel.js +1 -3
  383. package/package.json +76 -72
  384. package/scripts/postinstall.cjs +37 -37
  385. package/src/native/scripts/linux/enum-windows.sh +12 -12
  386. package/src/native/scripts/macos/enum-windows.applescript +22 -22
  387. package/src/native/scripts/windows/enum-windows-by-class.ps1 +51 -51
  388. package/src/native/scripts/windows/enum-windows.ps1 +44 -44
  389. package/src/native/scripts/windows/inject-dll.ps1 +21 -21
  390. package/workflows/.gitkeep +0 -0
  391. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  392. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  393. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  394. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  395. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  396. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  397. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  398. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  399. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  400. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  401. package/dist/src/services/LLMService.d.ts +0 -37
  402. package/dist/src/services/LLMService.js +0 -233
  403. package/dist/src/services/prompts/analysis.d.ts +0 -9
  404. package/dist/src/services/prompts/analysis.js +0 -158
  405. package/dist/src/services/prompts/crypto.d.ts +0 -2
  406. package/dist/src/services/prompts/crypto.js +0 -108
  407. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  408. package/dist/src/services/prompts/deobfuscation.js +0 -300
  409. package/dist/src/services/prompts/environment.d.ts +0 -16
  410. package/dist/src/services/prompts/environment.js +0 -372
  411. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  412. package/dist/src/services/prompts/intelligence.js +0 -250
  413. package/dist/src/services/prompts/taint.d.ts +0 -2
  414. package/dist/src/services/prompts/taint.js +0 -54
@@ -1,151 +1,52 @@
1
+ import { tool } from '../../registry/tool-builder.js';
1
2
  export const coordinationTools = [
2
- {
3
- name: 'create_task_handoff',
4
- description: 'Create a sub-task handoff for specialist agent delegation.\n\n' +
5
- 'Use this as a Planner Agent to delegate work to a Specialist. ' +
6
- 'Automatically captures the current page URL (if any) and injects it into the task context.\n\n' +
7
- 'Returns:\n' +
8
- '- taskId: unique identifier to track this handoff\n' +
9
- '- status: "pending"\n' +
10
- '- pageUrl: auto-captured active page URL\n\n' +
11
- 'Example:\n' +
12
- ' create_task_handoff({ description: "Analyze API surface of current page", targetDomain: "network" })',
13
- inputSchema: {
14
- type: 'object',
15
- properties: {
16
- description: {
17
- type: 'string',
18
- description: 'Clear description of what the specialist should accomplish',
19
- },
20
- constraints: {
21
- type: 'array',
22
- items: { type: 'string' },
23
- description: 'Optional constraints for the specialist (e.g. "do not navigate away", "read-only analysis")',
24
- },
25
- targetDomain: {
26
- type: 'string',
27
- description: 'Suggested domain for the specialist (e.g. "network", "debugger", "browser"). Advisory only.',
28
- },
29
- },
30
- required: ['description'],
31
- },
32
- annotations: {
33
- title: 'Create Task Handoff',
34
- readOnlyHint: false,
35
- destructiveHint: false,
36
- idempotentHint: false,
37
- openWorldHint: false,
38
- },
39
- },
40
- {
41
- name: 'complete_task_handoff',
42
- description: 'Complete a previously created task handoff with results.\n\n' +
43
- 'Use this as a Specialist Agent to report execution results back to the Planner. ' +
44
- 'Once completed, the handoff status transitions to "completed" and cannot be modified.\n\n' +
45
- 'Example:\n' +
46
- ' complete_task_handoff({\n' +
47
- ' taskId: "abc-123",\n' +
48
- ' summary: "Found 5 API endpoints with Bearer auth",\n' +
49
- ' keyFindings: ["POST /api/v1/login uses JWT", "X-Signature header is HMAC-SHA256"]\n' +
50
- ' })',
51
- inputSchema: {
52
- type: 'object',
53
- properties: {
54
- taskId: {
55
- type: 'string',
56
- description: 'Task ID from create_task_handoff',
57
- },
58
- summary: {
59
- type: 'string',
60
- description: 'Concise summary of what was accomplished',
61
- },
62
- keyFindings: {
63
- type: 'array',
64
- items: { type: 'string' },
65
- description: 'Key discoveries or results from the task',
66
- },
67
- artifacts: {
68
- type: 'array',
69
- items: { type: 'string' },
70
- description: 'Paths to generated artifact files (HAR exports, reports, etc.)',
71
- },
72
- },
73
- required: ['taskId', 'summary'],
74
- },
75
- annotations: {
76
- title: 'Complete Task Handoff',
77
- readOnlyHint: false,
78
- destructiveHint: false,
79
- idempotentHint: false,
80
- openWorldHint: false,
81
- },
82
- },
83
- {
84
- name: 'get_task_context',
85
- description: 'Read the context of a task handoff.\n\n' +
86
- 'Returns the full handoff record including description, constraints, status, ' +
87
- 'page URL, and any completion data. If no taskId is provided, returns all active handoffs.\n\n' +
88
- 'Also returns accumulated session insights when no taskId is specified.\n\n' +
89
- 'Example:\n' +
90
- ' get_task_context() // list all handoffs + session insights\n' +
91
- ' get_task_context({ taskId: "abc" }) // specific handoff details',
92
- inputSchema: {
93
- type: 'object',
94
- properties: {
95
- taskId: {
96
- type: 'string',
97
- description: 'Specific task ID to retrieve (omit for all active handoffs)',
98
- },
99
- },
100
- },
101
- annotations: {
102
- title: 'Get Task Context',
103
- readOnlyHint: true,
104
- destructiveHint: false,
105
- idempotentHint: true,
106
- openWorldHint: false,
107
- },
108
- },
109
- {
110
- name: 'append_session_insight',
111
- description: 'Append a discovery to the session-level knowledge accumulator.\n\n' +
112
- 'Session insights persist for the lifetime of the MCP session and are shared ' +
113
- 'across all handoffs. Use this to record cross-cutting findings that any agent ' +
114
- 'in the session should know about.\n\n' +
115
- 'Categories: "auth", "crypto", "api", "anti_debug", "architecture", "vulnerability", "other"\n\n' +
116
- 'Example:\n' +
117
- ' append_session_insight({\n' +
118
- ' category: "auth",\n' +
119
- ' content: "JWT stored in localStorage under key \'access_token\'",\n' +
120
- ' confidence: 0.95\n' +
121
- ' })',
122
- inputSchema: {
123
- type: 'object',
124
- properties: {
125
- category: {
126
- type: 'string',
127
- enum: ['auth', 'crypto', 'api', 'anti_debug', 'architecture', 'vulnerability', 'other'],
128
- description: 'Category of the insight',
129
- },
130
- content: {
131
- type: 'string',
132
- description: 'The insight content',
133
- },
134
- confidence: {
135
- type: 'number',
136
- description: 'Confidence level 0.0-1.0 (default: 1.0)',
137
- minimum: 0,
138
- maximum: 1,
139
- },
140
- },
141
- required: ['category', 'content'],
142
- },
143
- annotations: {
144
- title: 'Append Session Insight',
145
- readOnlyHint: false,
146
- destructiveHint: false,
147
- idempotentHint: false,
148
- openWorldHint: false,
149
- },
150
- },
3
+ tool('create_task_handoff')
4
+ .desc('Create a sub-task handoff for specialist agent delegation. Auto-captures active page URL.')
5
+ .string('description', 'What the specialist should accomplish')
6
+ .array('constraints', { type: 'string' }, 'Constraints for the specialist')
7
+ .string('targetDomain', 'Suggested domain for the specialist')
8
+ .required('description')
9
+ .build(),
10
+ tool('complete_task_handoff')
11
+ .desc('Complete a task handoff with results. Transitions status to completed.')
12
+ .string('taskId', 'Task ID from create_task_handoff')
13
+ .string('summary', 'Concise summary of what was accomplished')
14
+ .array('keyFindings', { type: 'string' }, 'Key discoveries or results')
15
+ .array('artifacts', { type: 'string' }, 'Paths to generated artifact files')
16
+ .required('taskId', 'summary')
17
+ .build(),
18
+ tool('get_task_context')
19
+ .desc('Read task handoff context. Without taskId returns all active handoffs + session insights.')
20
+ .string('taskId', 'Specific task ID to retrieve')
21
+ .readOnly()
22
+ .idempotent()
23
+ .build(),
24
+ tool('append_session_insight')
25
+ .desc('Append a discovery to the session-level knowledge accumulator shared across handoffs')
26
+ .enum('category', ['auth', 'crypto', 'api', 'anti_debug', 'architecture', 'vulnerability', 'other'], 'Insight category')
27
+ .string('content', 'The insight content')
28
+ .prop('confidence', {
29
+ type: 'number',
30
+ description: 'Confidence level 0.0-1.0',
31
+ minimum: 0,
32
+ maximum: 1,
33
+ })
34
+ .required('category', 'content')
35
+ .build(),
36
+ tool('save_page_snapshot')
37
+ .desc('Save current page state (URL, cookies, storage) for checkpoint/restore workflows')
38
+ .string('label', 'Human-readable label for this snapshot')
39
+ .readOnly()
40
+ .build(),
41
+ tool('restore_page_snapshot')
42
+ .desc('Restore a saved page snapshot — navigates to URL and reinjects cookies and storage')
43
+ .string('snapshotId', 'Snapshot ID from save_page_snapshot')
44
+ .required('snapshotId')
45
+ .idempotent()
46
+ .build(),
47
+ tool('list_page_snapshots')
48
+ .desc('List all saved page snapshots in the current session')
49
+ .readOnly()
50
+ .idempotent()
51
+ .build(),
151
52
  ];
@@ -1,4 +1,5 @@
1
- import type { MCPServerContext } from '../../MCPServer.context.js';
1
+ import type { MCPServerContext } from '../../domains/shared/registry.js';
2
+ export * from './definitions.js';
2
3
  export interface TaskHandoff {
3
4
  id: string;
4
5
  status: 'pending' | 'in_progress' | 'completed' | 'failed';
@@ -31,4 +32,22 @@ export declare class CoordinationHandlers {
31
32
  handleAppendSessionInsight(args: Record<string, unknown>): Promise<unknown>;
32
33
  private serializeHandoff;
33
34
  private getInsightCountByCategory;
35
+ private readonly snapshots;
36
+ handleSavePageSnapshot(args: Record<string, unknown>): Promise<unknown>;
37
+ handleRestorePageSnapshot(args: Record<string, unknown>): Promise<unknown>;
38
+ handleListPageSnapshots(): Promise<unknown>;
39
+ }
40
+ export interface PageSnapshot {
41
+ id: string;
42
+ url: string;
43
+ cookies: Array<{
44
+ name: string;
45
+ value: string;
46
+ domain: string;
47
+ path: string;
48
+ }>;
49
+ localStorage: Record<string, string>;
50
+ sessionStorage: Record<string, string>;
51
+ timestamp: number;
52
+ label?: string;
34
53
  }
@@ -1,4 +1,5 @@
1
1
  import { randomUUID } from 'node:crypto';
2
+ export * from './definitions.js';
2
3
  export class CoordinationHandlers {
3
4
  handoffs = new Map();
4
5
  insights = [];
@@ -142,4 +143,136 @@ export class CoordinationHandlers {
142
143
  }
143
144
  return counts;
144
145
  }
146
+ snapshots = new Map();
147
+ async handleSavePageSnapshot(args) {
148
+ const label = args.label;
149
+ const pc = this.ctx.pageController;
150
+ if (!pc)
151
+ throw new Error('No page controller available');
152
+ const page = await pc.getPage();
153
+ if (!page)
154
+ throw new Error('No active page to snapshot');
155
+ const url = page.url();
156
+ let cookies = [];
157
+ try {
158
+ const cdp = await page.createCDPSession();
159
+ const result = (await cdp.send('Network.getAllCookies'));
160
+ cookies = result.cookies.map((c) => ({
161
+ name: c.name,
162
+ value: c.value,
163
+ domain: c.domain,
164
+ path: c.path,
165
+ }));
166
+ await cdp.detach();
167
+ }
168
+ catch {
169
+ }
170
+ let localStorage = {};
171
+ let sessionStorage = {};
172
+ try {
173
+ localStorage = await page.evaluate(() => {
174
+ const ls = {};
175
+ for (let i = 0; i < window.localStorage.length; i++) {
176
+ const key = window.localStorage.key(i);
177
+ if (key)
178
+ ls[key] = window.localStorage.getItem(key) ?? '';
179
+ }
180
+ return ls;
181
+ });
182
+ sessionStorage = await page.evaluate(() => {
183
+ const ss = {};
184
+ for (let i = 0; i < window.sessionStorage.length; i++) {
185
+ const key = window.sessionStorage.key(i);
186
+ if (key)
187
+ ss[key] = window.sessionStorage.getItem(key) ?? '';
188
+ }
189
+ return ss;
190
+ });
191
+ }
192
+ catch {
193
+ }
194
+ const snapshot = {
195
+ id: randomUUID().slice(0, 8),
196
+ url,
197
+ cookies,
198
+ localStorage,
199
+ sessionStorage,
200
+ timestamp: Date.now(),
201
+ label,
202
+ };
203
+ this.snapshots.set(snapshot.id, snapshot);
204
+ return {
205
+ snapshotId: snapshot.id,
206
+ url: snapshot.url,
207
+ cookieCount: snapshot.cookies.length,
208
+ localStorageKeys: Object.keys(snapshot.localStorage).length,
209
+ sessionStorageKeys: Object.keys(snapshot.sessionStorage).length,
210
+ label: snapshot.label,
211
+ };
212
+ }
213
+ async handleRestorePageSnapshot(args) {
214
+ const snapshotId = args.snapshotId;
215
+ if (!snapshotId)
216
+ throw new Error('snapshotId is required');
217
+ const snapshot = this.snapshots.get(snapshotId);
218
+ if (!snapshot)
219
+ throw new Error(`Snapshot "${snapshotId}" not found`);
220
+ const pc = this.ctx.pageController;
221
+ if (!pc)
222
+ throw new Error('No page controller available');
223
+ const page = await pc.getPage();
224
+ if (!page)
225
+ throw new Error('No active page for restoration');
226
+ await page.goto(snapshot.url, { waitUntil: 'domcontentloaded', timeout: 30000 });
227
+ if (snapshot.cookies.length > 0) {
228
+ try {
229
+ const cdp = await page.createCDPSession();
230
+ await cdp.send('Network.setCookies', {
231
+ cookies: snapshot.cookies.map((c) => ({
232
+ name: c.name,
233
+ value: c.value,
234
+ domain: c.domain,
235
+ path: c.path,
236
+ })),
237
+ });
238
+ await cdp.detach();
239
+ }
240
+ catch {
241
+ }
242
+ }
243
+ try {
244
+ await page.evaluate((ls, ss) => {
245
+ window.localStorage.clear();
246
+ for (const [k, v] of Object.entries(ls)) {
247
+ window.localStorage.setItem(k, v);
248
+ }
249
+ window.sessionStorage.clear();
250
+ for (const [k, v] of Object.entries(ss)) {
251
+ window.sessionStorage.setItem(k, v);
252
+ }
253
+ }, snapshot.localStorage, snapshot.sessionStorage);
254
+ }
255
+ catch {
256
+ }
257
+ return {
258
+ restored: true,
259
+ snapshotId: snapshot.id,
260
+ url: snapshot.url,
261
+ cookiesRestored: snapshot.cookies.length,
262
+ localStorageKeysRestored: Object.keys(snapshot.localStorage).length,
263
+ sessionStorageKeysRestored: Object.keys(snapshot.sessionStorage).length,
264
+ };
265
+ }
266
+ async handleListPageSnapshots() {
267
+ const list = [...this.snapshots.values()].map((s) => ({
268
+ id: s.id,
269
+ url: s.url,
270
+ label: s.label,
271
+ cookieCount: s.cookies.length,
272
+ localStorageKeys: Object.keys(s.localStorage).length,
273
+ sessionStorageKeys: Object.keys(s.sessionStorage).length,
274
+ createdAt: new Date(s.timestamp).toISOString(),
275
+ }));
276
+ return { snapshots: list, total: list.length };
277
+ }
145
278
  }
@@ -39,6 +39,21 @@ const manifest = {
39
39
  domain: DOMAIN,
40
40
  bind: b((h, a) => h.handleAppendSessionInsight(a)),
41
41
  },
42
+ {
43
+ tool: t('save_page_snapshot'),
44
+ domain: DOMAIN,
45
+ bind: b((h, a) => h.handleSavePageSnapshot(a)),
46
+ },
47
+ {
48
+ tool: t('restore_page_snapshot'),
49
+ domain: DOMAIN,
50
+ bind: b((h, a) => h.handleRestorePageSnapshot(a)),
51
+ },
52
+ {
53
+ tool: t('list_page_snapshots'),
54
+ domain: DOMAIN,
55
+ bind: b((h) => h.handleListPageSnapshots()),
56
+ },
42
57
  ],
43
58
  };
44
59
  export default manifest;