@jshookmcp/jshook 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) 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 +156 -0
  7. package/dist/packages/extension-sdk/src/workflow.js +236 -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/TabRegistry.js +2 -2
  24. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  25. package/dist/src/modules/browser/UnifiedBrowserManager.js +18 -3
  26. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +1 -10
  27. package/dist/src/modules/captcha/AICaptchaDetector.js +7 -201
  28. package/dist/src/modules/collector/CodeCollector.js +4 -5
  29. package/dist/src/modules/collector/DOMInspector.js +48 -58
  30. package/dist/src/modules/collector/PageController.d.ts +17 -4
  31. package/dist/src/modules/collector/PageController.js +2 -5
  32. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  33. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  34. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  35. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  36. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  37. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  38. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +4 -2
  39. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  40. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  41. package/dist/src/modules/deobfuscator/Deobfuscator.js +4 -39
  42. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  43. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  44. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -2
  45. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +3 -55
  46. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  47. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  48. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  49. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  50. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  51. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  52. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  53. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  54. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  55. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  56. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  57. package/dist/src/modules/external/ExternalToolRunner.js +25 -22
  58. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
  59. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
  60. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
  61. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
  62. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  63. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  64. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
  65. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  66. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  67. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  68. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
  69. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  70. package/dist/src/modules/process/LinuxProcessManager.js +2 -0
  71. package/dist/src/modules/process/MacProcessManager.js +25 -25
  72. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  73. package/dist/src/modules/process/MemoryManager.js +2 -2
  74. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  75. package/dist/src/modules/process/memory/availability.js +49 -49
  76. package/dist/src/modules/process/memory/injector.js +185 -185
  77. package/dist/src/modules/process/memory/reader.js +85 -53
  78. package/dist/src/modules/process/memory/regions.dump.js +51 -51
  79. package/dist/src/modules/process/memory/regions.enumerate.js +108 -108
  80. package/dist/src/modules/process/memory/regions.modules.js +80 -80
  81. package/dist/src/modules/process/memory/regions.protection.js +148 -115
  82. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  83. package/dist/src/modules/process/memory/scanner.darwin.js +98 -41
  84. package/dist/src/modules/process/memory/scanner.js +88 -4
  85. package/dist/src/modules/process/memory/scanner.windows.js +124 -124
  86. package/dist/src/modules/process/memory/writer.js +98 -58
  87. package/dist/src/modules/security/ExecutionSandbox.js +51 -52
  88. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  89. package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
  90. package/dist/src/modules/stealth/StealthScripts.js +18 -13
  91. package/dist/src/modules/stealth/StealthVerifier.js +1 -3
  92. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  93. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  94. package/dist/src/modules/trace/TraceDB.js +75 -69
  95. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  96. package/dist/src/native/AntiCheatDetector.js +67 -16
  97. package/dist/src/native/CodeInjector.js +3 -3
  98. package/dist/src/native/HardwareBreakpoint.js +24 -15
  99. package/dist/src/native/HeapAnalyzer.js +2 -2
  100. package/dist/src/native/MemoryController.js +1 -1
  101. package/dist/src/native/MemoryScanSession.js +2 -2
  102. package/dist/src/native/MemoryScanner.js +4 -8
  103. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  104. package/dist/src/native/PEAnalyzer.js +14 -15
  105. package/dist/src/native/PointerChainEngine.js +2 -4
  106. package/dist/src/native/ScriptLoader.js +4 -9
  107. package/dist/src/native/Speedhack.js +1 -1
  108. package/dist/src/native/StructureAnalyzer.js +52 -33
  109. package/dist/src/native/Win32API.d.ts +1 -0
  110. package/dist/src/native/Win32API.js +13 -0
  111. package/dist/src/native/Win32Debug.js +19 -19
  112. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  113. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  114. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  115. package/dist/src/server/MCPServer.context.d.ts +2 -1
  116. package/dist/src/server/MCPServer.d.ts +2 -1
  117. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  118. package/dist/src/server/MCPServer.domain.js +81 -16
  119. package/dist/src/server/MCPServer.js +41 -14
  120. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  121. package/dist/src/server/MCPServer.resources.js +91 -0
  122. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  123. package/dist/src/server/MCPServer.search.helpers.js +1 -1
  124. package/dist/src/server/MCPServer.transport.js +12 -0
  125. package/dist/src/server/ToolCallContextGuard.js +8 -0
  126. package/dist/src/server/ToolRouter.d.ts +25 -9
  127. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  128. package/dist/src/server/ToolRouter.intent.js +77 -0
  129. package/dist/src/server/ToolRouter.js +103 -284
  130. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  131. package/dist/src/server/ToolRouter.policy.js +163 -0
  132. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  133. package/dist/src/server/ToolRouter.probe.js +103 -0
  134. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  135. package/dist/src/server/ToolRouter.renderer.js +52 -0
  136. package/dist/src/server/activation/ActivationController.js +15 -12
  137. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  138. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  139. package/dist/src/server/domains/analysis/definitions.js +155 -655
  140. package/dist/src/server/domains/analysis/handlers.impl.js +26 -20
  141. package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -1
  142. package/dist/src/server/domains/analysis/manifest.js +6 -4
  143. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  144. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  145. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  146. package/dist/src/server/domains/browser/definitions.tools.page-core.js +210 -439
  147. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  148. package/dist/src/server/domains/browser/definitions.tools.runtime.js +98 -211
  149. package/dist/src/server/domains/browser/definitions.tools.security.js +194 -339
  150. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  151. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  152. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  153. package/dist/src/server/domains/browser/handlers/framework-state.js +27 -9
  154. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  155. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  156. package/dist/src/server/domains/browser/handlers.impl.d.ts +1 -2
  157. package/dist/src/server/domains/browser/handlers.impl.js +2 -3
  158. package/dist/src/server/domains/browser/manifest.js +37 -13
  159. package/dist/src/server/domains/coordination/definitions.js +50 -216
  160. package/dist/src/server/domains/coordination/index.d.ts +2 -1
  161. package/dist/src/server/domains/coordination/index.js +1 -0
  162. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  163. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  164. package/dist/src/server/domains/debugger/manifest.js +9 -2
  165. package/dist/src/server/domains/encoding/definitions.js +43 -153
  166. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  167. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  168. package/dist/src/server/domains/evidence/definitions.js +42 -0
  169. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  170. package/dist/src/server/domains/evidence/handlers.js +60 -0
  171. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  172. package/dist/src/server/domains/evidence/index.js +2 -0
  173. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  174. package/dist/src/server/domains/evidence/manifest.js +78 -0
  175. package/dist/src/server/domains/graphql/definitions.js +53 -141
  176. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  177. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
  178. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  179. package/dist/src/server/domains/hooks/ai-handlers.js +1 -67
  180. package/dist/src/server/domains/hooks/definitions.js +69 -335
  181. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  182. package/dist/src/server/domains/hooks/manifest.js +1 -2
  183. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  184. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  185. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  186. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  187. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  188. package/dist/src/server/domains/instrumentation/index.js +2 -0
  189. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  190. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  191. package/dist/src/server/domains/macro/definitions.js +16 -43
  192. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  193. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  194. package/dist/src/server/domains/memory/definitions.js +387 -559
  195. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  196. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  197. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  198. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  199. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  200. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  201. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  202. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  203. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  204. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  205. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  206. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  207. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  208. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  209. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  210. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  211. package/dist/src/server/domains/memory/manifest.js +236 -64
  212. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  213. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  214. package/dist/src/server/domains/native-bridge/index.js +2 -1
  215. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  216. package/dist/src/server/domains/network/definitions.js +175 -578
  217. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  218. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  219. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  220. package/dist/src/server/domains/network/handlers.base.js +3 -878
  221. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  222. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  223. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  224. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  225. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  226. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  227. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  228. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  229. package/dist/src/server/domains/network/manifest.js +15 -0
  230. package/dist/src/server/domains/network/replay.js +1 -4
  231. package/dist/src/server/domains/platform/definitions.js +121 -112
  232. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +4 -0
  233. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +193 -4
  234. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  235. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  236. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  237. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  238. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  239. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  240. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  241. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  242. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  243. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  244. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  245. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +3 -3
  246. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  247. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  248. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  249. package/dist/src/server/domains/platform/handlers.js +29 -0
  250. package/dist/src/server/domains/platform/manifest.js +38 -0
  251. package/dist/src/server/domains/process/definitions.js +163 -647
  252. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  253. package/dist/src/server/domains/process/handlers.base.js +7 -462
  254. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  255. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  256. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  257. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  258. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +18 -16
  259. package/dist/src/server/domains/process/manifest.js +6 -1
  260. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  261. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  262. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  263. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  264. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  265. package/dist/src/server/domains/shared/modules.js +0 -1
  266. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  267. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  268. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  269. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  270. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  271. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  272. package/dist/src/server/domains/streaming/definitions.js +36 -148
  273. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  274. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  275. package/dist/src/server/domains/trace/TraceSummarizer.js +8 -5
  276. package/dist/src/server/domains/trace/definitions.tools.js +51 -206
  277. package/dist/src/server/domains/trace/handlers.js +10 -12
  278. package/dist/src/server/domains/trace/index.d.ts +2 -1
  279. package/dist/src/server/domains/trace/index.js +2 -1
  280. package/dist/src/server/domains/trace/manifest.js +15 -3
  281. package/dist/src/server/domains/transform/definitions.js +50 -210
  282. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +108 -108
  283. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  284. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  285. package/dist/src/server/domains/transform/manifest.js +1 -1
  286. package/dist/src/server/domains/wasm/definitions.js +55 -232
  287. package/dist/src/server/domains/wasm/handlers.js +1 -1
  288. package/dist/src/server/domains/workflow/definitions.js +144 -414
  289. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
  290. package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
  291. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  292. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  293. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  294. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  295. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  296. package/dist/src/server/evidence/index.d.ts +2 -0
  297. package/dist/src/server/evidence/index.js +1 -0
  298. package/dist/src/server/evidence/types.d.ts +22 -0
  299. package/dist/src/server/evidence/types.js +1 -0
  300. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  301. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  302. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  303. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  304. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  305. package/dist/src/server/extensions/ExtensionManager.roots.js +4 -4
  306. package/dist/src/server/extensions/plugin-config.js +1 -1
  307. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  308. package/dist/src/server/extensions/plugin-env.js +10 -4
  309. package/dist/src/server/extensions/types.d.ts +17 -0
  310. package/dist/src/server/extensions/types.js +1 -1
  311. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  312. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  313. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  314. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  315. package/dist/src/server/instrumentation/index.d.ts +2 -0
  316. package/dist/src/server/instrumentation/index.js +2 -0
  317. package/dist/src/server/instrumentation/types.d.ts +62 -0
  318. package/dist/src/server/instrumentation/types.js +7 -0
  319. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  320. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  321. package/dist/src/server/macros/MacroRunner.js +6 -2
  322. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  323. package/dist/src/server/macros/builtins/index.js +51 -7
  324. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  325. package/dist/src/server/registry/contracts.d.ts +1 -1
  326. package/dist/src/server/registry/discovery.js +5 -4
  327. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  328. package/dist/src/server/registry/index.js +4 -4
  329. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  330. package/dist/src/server/registry/tool-builder.js +105 -0
  331. package/dist/src/server/sandbox/QuickJSSandbox.js +16 -5
  332. package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
  333. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  334. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  335. package/dist/src/server/search/FeedbackTracker.js +26 -0
  336. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  337. package/dist/src/server/search/QueryNormalizer.js +94 -0
  338. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  339. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  340. package/dist/src/server/workflows/WorkflowContract.d.ts +24 -0
  341. package/dist/src/server/workflows/WorkflowContract.js +12 -0
  342. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  343. package/dist/src/server/workflows/WorkflowEngine.js +136 -3
  344. package/dist/src/types/config.d.ts +0 -14
  345. package/dist/src/types/deobfuscator.d.ts +0 -1
  346. package/dist/src/types/index.d.ts +1 -1
  347. package/dist/src/utils/DetailedDataManager.js +2 -0
  348. package/dist/src/utils/RingBuffer.js +5 -5
  349. package/dist/src/utils/TokenBudgetManager.js +1 -1
  350. package/dist/src/utils/UnifiedCacheManager.js +1 -1
  351. package/dist/src/utils/artifactRetention.js +2 -2
  352. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  353. package/dist/src/utils/betterSqlite3.js +88 -0
  354. package/dist/src/utils/browserExecutable.js +2 -2
  355. package/dist/src/utils/cliFastPath.js +5 -8
  356. package/dist/src/utils/config.js +4 -26
  357. package/dist/src/utils/environmentDoctor.js +138 -11
  358. package/dist/src/utils/outputPaths.js +16 -9
  359. package/dist/src/utils/parallel.js +1 -3
  360. package/package.json +74 -72
  361. package/workflows/.gitkeep +0 -0
  362. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  363. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  364. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  365. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  366. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  367. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  368. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  369. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  370. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  371. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  372. package/dist/src/services/LLMService.d.ts +0 -37
  373. package/dist/src/services/LLMService.js +0 -233
  374. package/dist/src/services/prompts/analysis.d.ts +0 -9
  375. package/dist/src/services/prompts/analysis.js +0 -158
  376. package/dist/src/services/prompts/crypto.d.ts +0 -2
  377. package/dist/src/services/prompts/crypto.js +0 -108
  378. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  379. package/dist/src/services/prompts/deobfuscation.js +0 -300
  380. package/dist/src/services/prompts/environment.d.ts +0 -16
  381. package/dist/src/services/prompts/environment.js +0 -372
  382. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  383. package/dist/src/services/prompts/intelligence.js +0 -250
  384. package/dist/src/services/prompts/taint.d.ts +0 -2
  385. package/dist/src/services/prompts/taint.js +0 -54
@@ -94,6 +94,12 @@ function collectTopHeapAllocations(root, topN) {
94
94
  }
95
95
  return { sampleCount, topAllocations };
96
96
  }
97
+ async function PING(cdp) {
98
+ await Promise.race([
99
+ cdp.send('Runtime.evaluate', { expression: '1', returnByValue: true }),
100
+ new Promise((_, reject) => setTimeout(() => reject(new Error('cdp_unreachable')), 500)),
101
+ ]);
102
+ }
97
103
  export class PerformanceMonitor {
98
104
  collector;
99
105
  cdpSession = null;
@@ -107,12 +113,6 @@ export class PerformanceMonitor {
107
113
  this.collector = collector;
108
114
  }
109
115
  async ensureCDPSession() {
110
- const PING = async (cdp) => {
111
- await Promise.race([
112
- cdp.send('Runtime.evaluate', { expression: '1', returnByValue: true }),
113
- new Promise((_, reject) => setTimeout(() => reject(new Error('cdp_unreachable')), 500)),
114
- ]);
115
- };
116
116
  if (!this.cdpSession) {
117
117
  const page = await this.collector.getActivePage();
118
118
  this.cdpSession = await Promise.race([
@@ -133,7 +133,8 @@ export class PerformanceMonitor {
133
133
  try {
134
134
  await this.cdpSession.detach();
135
135
  }
136
- catch { }
136
+ catch {
137
+ }
137
138
  this.cdpSession = null;
138
139
  const page = await this.collector.getActivePage();
139
140
  this.cdpSession = await Promise.race([
@@ -300,38 +300,38 @@ export class PlaywrightNetworkMonitor {
300
300
  await this.evaluateInPage(script);
301
301
  }
302
302
  async injectXHRInterceptor(options) {
303
- const script = `
304
- (function() {
305
- if (window.__xhrInterceptorInjected) return;
306
- window.__xhrInterceptorInjected = true;
307
- const maxRecords = ${this.MAX_INJECTED_RECORDS};
308
- const OrigXHR = window.__pwOriginalXMLHttpRequest || window.XMLHttpRequest;
309
- window.__pwOriginalXMLHttpRequest = OrigXHR;
310
- if (!window.__xhrRequests) window.__xhrRequests = [];
311
- window.XMLHttpRequest = function() {
312
- const xhr = new OrigXHR();
313
- const origOpen = xhr.open.bind(xhr);
314
- const origSend = xhr.send.bind(xhr);
315
- xhr.open = function(method, url, ...rest) {
316
- xhr.__hookMeta = { method, url, timestamp: Date.now() };
317
- return origOpen(method, url, ...rest);
318
- };
319
- xhr.send = function(body) {
320
- xhr.addEventListener('load', function() {
321
- window.__xhrRequests.push({
322
- ...xhr.__hookMeta, body: body ? String(body).slice(0, 2048) : null,
323
- status: xhr.status, response: xhr.responseText.slice(0, 2048),
324
- });
325
- if (window.__xhrRequests.length > maxRecords) {
326
- window.__xhrRequests.splice(0, window.__xhrRequests.length - maxRecords);
327
- }
328
- });
329
- return origSend(body);
330
- };
331
- return xhr;
332
- };
333
- console.log('[PlaywrightXHR] XHR interceptor injected');
334
- })();
303
+ const script = `
304
+ (function() {
305
+ if (window.__xhrInterceptorInjected) return;
306
+ window.__xhrInterceptorInjected = true;
307
+ const maxRecords = ${this.MAX_INJECTED_RECORDS};
308
+ const OrigXHR = window.__pwOriginalXMLHttpRequest || window.XMLHttpRequest;
309
+ window.__pwOriginalXMLHttpRequest = OrigXHR;
310
+ if (!window.__xhrRequests) window.__xhrRequests = [];
311
+ window.XMLHttpRequest = function() {
312
+ const xhr = new OrigXHR();
313
+ const origOpen = xhr.open.bind(xhr);
314
+ const origSend = xhr.send.bind(xhr);
315
+ xhr.open = function(method, url, ...rest) {
316
+ xhr.__hookMeta = { method, url, timestamp: Date.now() };
317
+ return origOpen(method, url, ...rest);
318
+ };
319
+ xhr.send = function(body) {
320
+ xhr.addEventListener('load', function() {
321
+ window.__xhrRequests.push({
322
+ ...xhr.__hookMeta, body: body ? String(body).slice(0, 2048) : null,
323
+ status: xhr.status, response: xhr.responseText.slice(0, 2048),
324
+ });
325
+ if (window.__xhrRequests.length > maxRecords) {
326
+ window.__xhrRequests.splice(0, window.__xhrRequests.length - maxRecords);
327
+ }
328
+ });
329
+ return origSend(body);
330
+ };
331
+ return xhr;
332
+ };
333
+ console.log('[PlaywrightXHR] XHR interceptor injected');
334
+ })();
335
335
  `;
336
336
  if (options?.persistent) {
337
337
  await this.evaluateOnNewDocumentInPage(script);
@@ -341,36 +341,36 @@ export class PlaywrightNetworkMonitor {
341
341
  }
342
342
  }
343
343
  async injectFetchInterceptor(options) {
344
- const script = `
345
- (function() {
346
- if (window.__fetchInterceptorInjected) return;
347
- window.__fetchInterceptorInjected = true;
348
- const maxRecords = ${this.MAX_INJECTED_RECORDS};
349
- const origFetch = window.__pwOriginalFetch || window.fetch;
350
- window.__pwOriginalFetch = origFetch;
351
- if (!window.__fetchRequests) window.__fetchRequests = [];
352
- window.fetch = function(...args) {
353
- const [url, opts] = args;
354
- const entry = { url: String(url), method: opts?.method || 'GET', timestamp: Date.now() };
355
- return origFetch.apply(this, args).then(res => {
356
- entry.status = res.status;
357
- window.__fetchRequests.push(entry);
358
- if (window.__fetchRequests.length > maxRecords) {
359
- window.__fetchRequests.splice(0, window.__fetchRequests.length - maxRecords);
360
- }
361
- // Auto-persist compact summary so data survives context compression
362
- try {
363
- const s = { url: entry.url, method: entry.method, status: entry.status, ts: entry.timestamp };
364
- const prev = JSON.parse(localStorage.getItem('__capturedAPIs') || '[]');
365
- prev.push(s);
366
- if (prev.length > 500) prev.splice(0, prev.length - 500);
367
- localStorage.setItem('__capturedAPIs', JSON.stringify(prev));
368
- } catch(e) {}
369
- return res;
370
- });
371
- };
372
- console.log('[PlaywrightFetch] Fetch interceptor injected');
373
- })();
344
+ const script = `
345
+ (function() {
346
+ if (window.__fetchInterceptorInjected) return;
347
+ window.__fetchInterceptorInjected = true;
348
+ const maxRecords = ${this.MAX_INJECTED_RECORDS};
349
+ const origFetch = window.__pwOriginalFetch || window.fetch;
350
+ window.__pwOriginalFetch = origFetch;
351
+ if (!window.__fetchRequests) window.__fetchRequests = [];
352
+ window.fetch = function(...args) {
353
+ const [url, opts] = args;
354
+ const entry = { url: String(url), method: opts?.method || 'GET', timestamp: Date.now() };
355
+ return origFetch.apply(this, args).then(res => {
356
+ entry.status = res.status;
357
+ window.__fetchRequests.push(entry);
358
+ if (window.__fetchRequests.length > maxRecords) {
359
+ window.__fetchRequests.splice(0, window.__fetchRequests.length - maxRecords);
360
+ }
361
+ // Auto-persist compact summary so data survives context compression
362
+ try {
363
+ const s = { url: entry.url, method: entry.method, status: entry.status, ts: entry.timestamp };
364
+ const prev = JSON.parse(localStorage.getItem('__capturedAPIs') || '[]');
365
+ prev.push(s);
366
+ if (prev.length > 500) prev.splice(0, prev.length - 500);
367
+ localStorage.setItem('__capturedAPIs', JSON.stringify(prev));
368
+ } catch(e) {}
369
+ return res;
370
+ });
371
+ };
372
+ console.log('[PlaywrightFetch] Fetch interceptor injected');
373
+ })();
374
374
  `;
375
375
  if (options?.persistent) {
376
376
  await this.evaluateOnNewDocumentInPage(script);
@@ -3,7 +3,7 @@ export declare abstract class BaseMemoryManager {
3
3
  abstract readonly platform: string;
4
4
  abstract readMemory(pid: number, address: number, size: number): Promise<MemoryReadResult>;
5
5
  abstract writeMemory(pid: number, address: number, data: Buffer): Promise<MemoryWriteResult>;
6
- abstract scanMemory(pid: number, pattern: string, patternType: PatternType): Promise<MemoryScanResult>;
6
+ abstract scanMemory(pid: number, pattern: string, patternType: PatternType, suspendTarget?: boolean): Promise<MemoryScanResult>;
7
7
  abstract checkMemoryProtection(pid: number, address: number): Promise<MemoryProtectionInfo>;
8
8
  abstract enumerateRegions(pid: number): Promise<{
9
9
  success: boolean;
@@ -42,6 +42,8 @@ export class LinuxProcessManager {
42
42
  const parts = line.trim().split(/\s+/);
43
43
  if (parts.length >= 11) {
44
44
  const pid = parseInt(parts[1] || '0', 10);
45
+ if (isNaN(pid))
46
+ continue;
45
47
  const cpu = parseFloat(parts[2] || '0');
46
48
  const mem = parseFloat(parts[3] || '0');
47
49
  const command = parts.slice(10).join(' ');
@@ -109,31 +109,31 @@ export class MacProcessManager {
109
109
  if (!process) {
110
110
  return [];
111
111
  }
112
- const appleScript = `
113
- tell application "System Events"
114
- set processList to {}
115
- try
116
- set targetProcess to first process whose unix id is ${pid}
117
- set procName to name of targetProcess
118
- set windowList to {}
119
-
120
- tell targetProcess
121
- repeat with win in windows
122
- set winInfo to {|
123
- title:name of win,
124
- className:procName,
125
- processId:${pid},
126
- handle:"applescript-window"
127
- |}
128
- set end of windowList to winInfo
129
- end repeat
130
- end tell
131
-
132
- return windowList
133
- on error
134
- return {}
135
- end try
136
- end tell
112
+ const appleScript = `
113
+ tell application "System Events"
114
+ set processList to {}
115
+ try
116
+ set targetProcess to first process whose unix id is ${pid}
117
+ set procName to name of targetProcess
118
+ set windowList to {}
119
+
120
+ tell targetProcess
121
+ repeat with win in windows
122
+ set winInfo to {|
123
+ title:name of win,
124
+ className:procName,
125
+ processId:${pid},
126
+ handle:"applescript-window"
127
+ |}
128
+ set end of windowList to winInfo
129
+ end repeat
130
+ end tell
131
+
132
+ return windowList
133
+ on error
134
+ return {}
135
+ end try
136
+ end tell
137
137
  `;
138
138
  const { stdout } = await execAsync(`osascript -e '${appleScript.replace(/'/g, "'\"'\"'")}' 2>/dev/null || echo "[]"`, { timeout: 5000 });
139
139
  const windows = [];
@@ -15,7 +15,7 @@ export declare class MemoryManager {
15
15
  }[];
16
16
  error?: string;
17
17
  }>;
18
- scanMemory(pid: number, pattern: string, patternType?: PatternType): Promise<MemoryScanResult>;
18
+ scanMemory(pid: number, pattern: string, patternType?: PatternType, suspendTarget?: boolean): Promise<MemoryScanResult>;
19
19
  scanMemoryFiltered(pid: number, pattern: string, addresses: string[], patternType?: PatternType): Promise<MemoryScanResult>;
20
20
  dumpMemoryRegion(pid: number, startAddress: string, size: number, outputPath: string): Promise<{
21
21
  success: boolean;
@@ -29,8 +29,8 @@ export class MemoryManager {
29
29
  async batchMemoryWrite(pid, patches) {
30
30
  return _batchMemoryWrite(pid, patches, (p, addr, data, enc) => this.writeMemory(p, addr, data, enc));
31
31
  }
32
- async scanMemory(pid, pattern, patternType = 'hex') {
33
- return _scanMemory(this.platform, pid, pattern, patternType);
32
+ async scanMemory(pid, pattern, patternType = 'hex', suspendTarget = false) {
33
+ return _scanMemory(this.platform, pid, pattern, patternType, suspendTarget);
34
34
  }
35
35
  async scanMemoryFiltered(pid, pattern, addresses, patternType = 'hex') {
36
36
  return _scanMemoryFiltered(pid, pattern, addresses, patternType, (p, addr, size) => this.readMemory(p, addr, size), (p, pat, type) => this.scanMemory(p, pat, type));
@@ -5,7 +5,7 @@ export class MemoryAuditTrail {
5
5
  capacity;
6
6
  constructor(capacity = 5000) {
7
7
  this.capacity = Number.isInteger(capacity) && capacity > 0 ? capacity : 5000;
8
- this.buffer = [];
8
+ this.buffer = Array.from({ length: this.capacity });
9
9
  }
10
10
  record(entry) {
11
11
  const fullEntry = {
@@ -111,55 +111,55 @@ export async function checkDebugPort(platform, pid) {
111
111
  return { success: false, error: 'Debug port check currently only implemented for Windows' };
112
112
  }
113
113
  try {
114
- const psScript = `
115
- Add-Type @"
116
- using System;
117
- using System.Runtime.InteropServices;
118
- using System.ComponentModel;
119
-
120
- public class DebugChecker {
121
- [DllImport("ntdll.dll")]
122
- public static extern int NtQueryInformationProcess(IntPtr processHandle, int processInformationClass, out IntPtr processInformation, int processInformationLength, out int returnLength);
123
-
124
- [DllImport("kernel32.dll", SetLastError = true)]
125
- public static extern IntPtr OpenProcess(int access, bool inherit, int pid);
126
-
127
- [DllImport("kernel32.dll", SetLastError = true)]
128
- public static extern bool CloseHandle(IntPtr handle);
129
-
130
- const int PROCESS_QUERY_INFORMATION = 0x0400;
131
- const int ProcessDebugPort = 7;
132
-
133
- public static object Check(int pid) {
134
- IntPtr hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, false, pid);
135
- if (hProcess == IntPtr.Zero) {
136
- int error = Marshal.GetLastWin32Error();
137
- throw new Win32Exception(error, "Failed to open process");
138
- }
139
-
140
- try {
141
- IntPtr debugPort;
142
- int returnLength;
143
- int status = NtQueryInformationProcess(hProcess, ProcessDebugPort, out debugPort, IntPtr.Size, out returnLength);
144
-
145
- if (status != 0) {
146
- return new { success = false, error = "NtQueryInformationProcess failed with status: 0x" + status.ToString("X") };
147
- }
148
-
149
- return new { success = true, isDebugged = debugPort != IntPtr.Zero };
150
- } finally {
151
- CloseHandle(hProcess);
152
- }
153
- }
154
- }
155
- "@
156
-
157
- try {
158
- $result = [DebugChecker]::Check(${pid})
159
- $result | ConvertTo-Json -Compress
160
- } catch {
161
- @{ success = $false; error = $_.Exception.Message } | ConvertTo-Json -Compress
162
- }
114
+ const psScript = `
115
+ Add-Type @"
116
+ using System;
117
+ using System.Runtime.InteropServices;
118
+ using System.ComponentModel;
119
+
120
+ public class DebugChecker {
121
+ [DllImport("ntdll.dll")]
122
+ public static extern int NtQueryInformationProcess(IntPtr processHandle, int processInformationClass, out IntPtr processInformation, int processInformationLength, out int returnLength);
123
+
124
+ [DllImport("kernel32.dll", SetLastError = true)]
125
+ public static extern IntPtr OpenProcess(int access, bool inherit, int pid);
126
+
127
+ [DllImport("kernel32.dll", SetLastError = true)]
128
+ public static extern bool CloseHandle(IntPtr handle);
129
+
130
+ const int PROCESS_QUERY_INFORMATION = 0x0400;
131
+ const int ProcessDebugPort = 7;
132
+
133
+ public static object Check(int pid) {
134
+ IntPtr hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, false, pid);
135
+ if (hProcess == IntPtr.Zero) {
136
+ int error = Marshal.GetLastWin32Error();
137
+ throw new Win32Exception(error, "Failed to open process");
138
+ }
139
+
140
+ try {
141
+ IntPtr debugPort;
142
+ int returnLength;
143
+ int status = NtQueryInformationProcess(hProcess, ProcessDebugPort, out debugPort, IntPtr.Size, out returnLength);
144
+
145
+ if (status != 0) {
146
+ return new { success = false, error = "NtQueryInformationProcess failed with status: 0x" + status.ToString("X") };
147
+ }
148
+
149
+ return new { success = true, isDebugged = debugPort != IntPtr.Zero };
150
+ } finally {
151
+ CloseHandle(hProcess);
152
+ }
153
+ }
154
+ }
155
+ "@
156
+
157
+ try {
158
+ $result = [DebugChecker]::Check(${pid})
159
+ $result | ConvertTo-Json -Compress
160
+ } catch {
161
+ @{ success = $false; error = $_.Exception.Message } | ConvertTo-Json -Compress
162
+ }
163
163
  `;
164
164
  const { stdout } = await executePowerShellScript(psScript, {
165
165
  maxBuffer: 1024 * 1024,