@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
@@ -52,23 +52,30 @@ export class CoreAnalysisHandlers {
52
52
  }
53
53
  extractWebcrackArgs(args) {
54
54
  const extracted = {};
55
- if (typeof args.unpack === 'boolean')
56
- extracted.unpack = args.unpack;
57
- if (typeof args.unminify === 'boolean')
58
- extracted.unminify = args.unminify;
59
- if (typeof args.jsx === 'boolean')
60
- extracted.jsx = args.jsx;
61
- if (typeof args.mangle === 'boolean')
62
- extracted.mangle = args.mangle;
63
- if (typeof args.outputDir === 'string' && args.outputDir.trim().length > 0) {
64
- extracted.outputDir = args.outputDir;
65
- }
66
- if (typeof args.forceOutput === 'boolean')
67
- extracted.forceOutput = args.forceOutput;
68
- if (typeof args.includeModuleCode === 'boolean')
69
- extracted.includeModuleCode = args.includeModuleCode;
70
- if (typeof args.maxBundleModules === 'number')
71
- extracted.maxBundleModules = args.maxBundleModules;
55
+ const unpack = argBool(args, 'unpack');
56
+ const unminify = argBool(args, 'unminify');
57
+ const jsx = argBool(args, 'jsx');
58
+ const mangle = argBool(args, 'mangle');
59
+ const forceOutput = argBool(args, 'forceOutput');
60
+ const includeModuleCode = argBool(args, 'includeModuleCode');
61
+ const outputDir = argString(args, 'outputDir');
62
+ const maxBundleModules = argNumber(args, 'maxBundleModules');
63
+ if (unpack !== undefined)
64
+ extracted.unpack = unpack;
65
+ if (unminify !== undefined)
66
+ extracted.unminify = unminify;
67
+ if (jsx !== undefined)
68
+ extracted.jsx = jsx;
69
+ if (mangle !== undefined)
70
+ extracted.mangle = mangle;
71
+ if (forceOutput !== undefined)
72
+ extracted.forceOutput = forceOutput;
73
+ if (includeModuleCode !== undefined)
74
+ extracted.includeModuleCode = includeModuleCode;
75
+ if (outputDir?.trim())
76
+ extracted.outputDir = outputDir;
77
+ if (maxBundleModules !== undefined)
78
+ extracted.maxBundleModules = maxBundleModules;
72
79
  if (Array.isArray(args.mappings)) {
73
80
  extracted.mappings = args.mappings.filter((item) => typeof item === 'object' &&
74
81
  item !== null &&
@@ -89,8 +96,8 @@ export class CoreAnalysisHandlers {
89
96
  truncated: file.metadata?.truncated || false,
90
97
  preview: `${file.content.substring(0, 200)}...`,
91
98
  }));
92
- if (returnSummaryOnly && !smartMode) {
93
- smartMode = 'summary';
99
+ if (!smartMode) {
100
+ smartMode = returnSummaryOnly ? 'summary' : 'summary';
94
101
  }
95
102
  const result = await this.collector.collect({
96
103
  url: argStringRequired(args, 'url'),
@@ -247,7 +254,6 @@ export class CoreAnalysisHandlers {
247
254
  }
248
255
  const result = await this.deobfuscator.deobfuscate({
249
256
  code,
250
- llm: argString(args, 'llm'),
251
257
  aggressive: argBool(args, 'aggressive'),
252
258
  ...this.extractWebcrackArgs(args),
253
259
  });
@@ -2,10 +2,11 @@ import { logger } from '../../../utils/logger.js';
2
2
  import { evaluateWithTimeout } from '../../../modules/collector/PageController.js';
3
3
  import { asJsonResponse, asErrorResponse } from '../../domains/shared/response.js';
4
4
  import { argString, argBool, argNumber } from '../../domains/shared/parse-args.js';
5
+ const MAX_WEBPACK_MODULES = 100;
5
6
  export async function runWebpackEnumerate(collector, args) {
6
7
  const searchKeyword = argString(args, 'searchKeyword', '');
7
8
  const forceRequireAll = argBool(args, 'forceRequireAll', !!searchKeyword);
8
- const maxResults = argNumber(args, 'maxResults', 20);
9
+ const maxResults = Math.min(argNumber(args, 'maxResults', 20), MAX_WEBPACK_MODULES);
9
10
  try {
10
11
  const page = await collector.getActivePage();
11
12
  const result = await evaluateWithTimeout(page, async (opts) => {
@@ -14,15 +14,15 @@ const b = (invoke) => bindByDepKey(DEP_KEY, invoke);
14
14
  function ensure(ctx) {
15
15
  ensureBrowserCore(ctx);
16
16
  if (!ctx.deobfuscator)
17
- ctx.deobfuscator = new Deobfuscator(ctx.llm);
17
+ ctx.deobfuscator = new Deobfuscator();
18
18
  if (!ctx.advancedDeobfuscator)
19
19
  ctx.advancedDeobfuscator = new AdvancedDeobfuscator();
20
20
  if (!ctx.obfuscationDetector)
21
21
  ctx.obfuscationDetector = new ObfuscationDetector();
22
22
  if (!ctx.analyzer)
23
- ctx.analyzer = new CodeAnalyzer(ctx.llm);
23
+ ctx.analyzer = new CodeAnalyzer();
24
24
  if (!ctx.cryptoDetector)
25
- ctx.cryptoDetector = new CryptoDetector(ctx.llm);
25
+ ctx.cryptoDetector = new CryptoDetector();
26
26
  if (!ctx.hookManager)
27
27
  ctx.hookManager = new HookManager();
28
28
  if (!ctx.coreAnalysisHandlers) {
@@ -56,7 +56,9 @@ const manifest = {
56
56
  hint: 'JavaScript analysis workflow: collect -> deobfuscate -> inspect function tree',
57
57
  },
58
58
  prerequisites: {
59
- collect_code: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
59
+ collect_code: [
60
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
61
+ ],
60
62
  },
61
63
  registrations: [
62
64
  { tool: t('collect_code'), domain: DOMAIN, bind: b((h, a) => h.handleCollectCode(a)) },
@@ -1,113 +1,27 @@
1
+ import { tool } from '../../registry/tool-builder.js';
1
2
  export const antidebugTools = [
2
- {
3
- name: 'antidebug_bypass_all',
4
- description: 'Inject all anti-anti-debug bypass scripts into the current page. Uses evaluateOnNewDocument + evaluate dual injection.',
5
- inputSchema: {
6
- type: 'object',
7
- properties: {
8
- persistent: {
9
- type: 'boolean',
10
- description: 'Whether to also inject persistently for future documents (default: true).',
11
- default: true,
12
- },
13
- },
14
- },
15
- annotations: {
16
- readOnlyHint: false,
17
- destructiveHint: false,
18
- idempotentHint: false,
19
- openWorldHint: false,
20
- },
21
- },
22
- {
23
- name: 'antidebug_bypass_debugger_statement',
24
- description: 'Bypass debugger-statement based protection by patching Function constructor and monitoring dynamic script insertion.',
25
- inputSchema: {
26
- type: 'object',
27
- properties: {
28
- mode: {
29
- type: 'string',
30
- description: 'remove = strip debugger statements, noop = replace with void 0',
31
- enum: ['remove', 'noop'],
32
- default: 'remove',
33
- },
34
- },
35
- },
36
- annotations: {
37
- readOnlyHint: false,
38
- destructiveHint: false,
39
- idempotentHint: false,
40
- openWorldHint: false,
41
- },
42
- },
43
- {
44
- name: 'antidebug_bypass_timing',
45
- description: 'Bypass timing-based anti-debug checks by stabilizing performance.now / Date.now and console.time APIs.',
46
- inputSchema: {
47
- type: 'object',
48
- properties: {
49
- maxDrift: {
50
- type: 'number',
51
- description: 'Maximum logical time drift allowed per call in milliseconds (default: 50).',
52
- default: 50,
53
- },
54
- },
55
- },
56
- annotations: {
57
- readOnlyHint: false,
58
- destructiveHint: false,
59
- idempotentHint: false,
60
- openWorldHint: false,
61
- },
62
- },
63
- {
64
- name: 'antidebug_bypass_stack_trace',
65
- description: 'Bypass Error.stack based anti-debug checks by filtering suspicious stack frames and hardening function toString.',
66
- inputSchema: {
67
- type: 'object',
68
- properties: {
69
- filterPatterns: {
70
- type: 'array',
71
- description: 'Additional stack frame patterns to filter. Defaults include puppeteer/devtools/__puppeteer/CDP.',
72
- items: {
73
- type: 'string',
74
- },
75
- },
76
- },
77
- },
78
- annotations: {
79
- readOnlyHint: false,
80
- destructiveHint: false,
81
- idempotentHint: false,
82
- openWorldHint: false,
83
- },
84
- },
85
- {
86
- name: 'antidebug_bypass_console_detect',
87
- description: 'Bypass console-based devtools detection by wrapping console methods and sanitizing getter-based payloads.',
88
- inputSchema: {
89
- type: 'object',
90
- properties: {},
91
- },
92
- annotations: {
93
- readOnlyHint: false,
94
- destructiveHint: false,
95
- idempotentHint: false,
96
- openWorldHint: false,
97
- },
98
- },
99
- {
100
- name: 'antidebug_detect_protections',
101
- description: 'Detect anti-debug protections in the current page and return detected techniques with bypass recommendations.',
102
- inputSchema: {
103
- type: 'object',
104
- properties: {},
105
- },
106
- annotations: {
107
- readOnlyHint: false,
108
- destructiveHint: false,
109
- idempotentHint: false,
110
- openWorldHint: false,
111
- },
112
- },
3
+ tool('antidebug_bypass_all')
4
+ .desc('Inject all anti-anti-debug bypass scripts via dual injection')
5
+ .boolean('persistent', 'Also inject persistently for future documents', { default: true })
6
+ .build(),
7
+ tool('antidebug_bypass_debugger_statement')
8
+ .desc('Bypass debugger-statement protection by patching Function constructor')
9
+ .enum('mode', ['remove', 'noop'], 'remove = strip statements, noop = replace with void 0', {
10
+ default: 'remove',
11
+ })
12
+ .build(),
13
+ tool('antidebug_bypass_timing')
14
+ .desc('Bypass timing-based anti-debug by stabilizing performance.now / Date.now')
15
+ .number('maxDrift', 'Max logical time drift per call in ms', { default: 50 })
16
+ .build(),
17
+ tool('antidebug_bypass_stack_trace')
18
+ .desc('Bypass Error.stack anti-debug by filtering suspicious frames and hardening toString')
19
+ .array('filterPatterns', { type: 'string' }, 'Additional stack frame patterns to filter')
20
+ .build(),
21
+ tool('antidebug_bypass_console_detect')
22
+ .desc('Bypass console-based devtools detection by wrapping console methods')
23
+ .build(),
24
+ tool('antidebug_detect_protections')
25
+ .desc('Detect anti-debug protections in current page with bypass recommendations')
26
+ .build(),
113
27
  ];
@@ -1,90 +1,61 @@
1
+ import { tool } from '../../registry/tool-builder.js';
1
2
  export const advancedBrowserToolDefinitions = [
2
- {
3
- name: 'js_heap_search',
4
- description: 'Search the browser JavaScript heap for string values matching a pattern. This is the CE (Cheat Engine) equivalent for web — scans the JS runtime memory to find tokens, API keys, signatures, or any string stored in JS objects.\n\nUSE THIS to:\n- Find auth tokens stored in memory but not in cookies/localStorage\n- Locate signing keys or secrets held in JS closures\n- Discover values that are only briefly held in memory during a request\n\nWARNING: Takes a full heap snapshot (can be 50-500MB for complex pages). Use specific patterns to reduce result noise.\nResults are paginated via DetailedDataManager when large.',
5
- inputSchema: {
6
- type: 'object',
7
- properties: {
8
- pattern: {
9
- type: 'string',
10
- description: 'String pattern to search for in the JS heap',
11
- },
12
- maxResults: {
13
- type: 'number',
14
- description: 'Maximum number of matches to return (default: 50)',
15
- default: 50,
16
- },
17
- caseSensitive: {
18
- type: 'boolean',
19
- description: 'Case-sensitive search (default: false)',
20
- default: false,
21
- },
22
- },
23
- required: ['pattern'],
24
- },
25
- },
26
- {
27
- name: 'tab_workflow',
28
- description: 'Cross-tab coordination for multi-page automation flows.\n\nActions:\n- list: Show all aliases and shared context\n- alias_bind: Name an existing tab by index (e.g., alias="register" index=0)\n- alias_open: Open a URL in a new tab and name it\n- navigate: Navigate a named tab to a URL\n- wait_for: Wait for selector or text to appear in a named tab\n- context_set: Store a value in shared context (accessible across tabs)\n- context_get: Read a value from shared context\n- transfer: Evaluate JS in a named tab and store result in shared context\n\nUSE THIS for:\n- Registration page ↔ email verification page workflows\n- Any flow requiring coordination between multiple open tabs',
29
- inputSchema: {
30
- type: 'object',
31
- properties: {
32
- action: {
33
- type: 'string',
34
- enum: [
35
- 'list',
36
- 'alias_bind',
37
- 'alias_open',
38
- 'navigate',
39
- 'wait_for',
40
- 'context_set',
41
- 'context_get',
42
- 'transfer',
43
- ],
44
- description: 'Tab workflow action to perform',
45
- },
46
- alias: {
47
- type: 'string',
48
- description: 'Tab alias name (used by alias_bind, alias_open, navigate, wait_for, transfer)',
49
- },
50
- fromAlias: {
51
- type: 'string',
52
- description: 'Source tab alias for transfer action',
53
- },
54
- index: {
55
- type: 'number',
56
- description: 'Tab index (0-based) for alias_bind',
57
- },
58
- url: {
59
- type: 'string',
60
- description: 'URL for alias_open or navigate',
61
- },
62
- selector: {
63
- type: 'string',
64
- description: 'CSS selector to wait for (wait_for action)',
65
- },
66
- waitForText: {
67
- type: 'string',
68
- description: 'Text string to wait for in page body (wait_for action)',
69
- },
70
- key: {
71
- type: 'string',
72
- description: 'Context key for context_set, context_get, transfer',
73
- },
74
- value: {
75
- description: 'Value to store (context_set action)',
76
- },
77
- expression: {
78
- type: 'string',
79
- description: 'JavaScript expression to evaluate in the source tab (transfer action)',
80
- },
81
- timeoutMs: {
82
- type: 'number',
83
- description: 'Timeout in milliseconds for wait_for (default: 10000)',
84
- default: 10000,
85
- },
86
- },
87
- required: ['action'],
88
- },
89
- },
3
+ tool('js_heap_search')
4
+ .desc(`Search the browser JavaScript heap for string values matching a pattern. This is the CE (Cheat Engine) equivalent for web — scans the JS runtime memory to find tokens, API keys, signatures, or any string stored in JS objects.
5
+
6
+ USE THIS to:
7
+ - Find auth tokens stored in memory but not in cookies/localStorage
8
+ - Locate signing keys or secrets held in JS closures
9
+ - Discover values that are only briefly held in memory during a request
10
+
11
+ WARNING: Takes a full heap snapshot (can be 50-500MB for complex pages). Use specific patterns to reduce result noise.
12
+ Results are paginated via DetailedDataManager when large.`)
13
+ .string('pattern', 'String pattern to search for in the JS heap')
14
+ .number('maxResults', 'Maximum number of matches to return (default: 50)', { default: 50 })
15
+ .boolean('caseSensitive', 'Case-sensitive search (default: false)', { default: false })
16
+ .required('pattern')
17
+ .readOnly()
18
+ .idempotent()
19
+ .build(),
20
+ tool('tab_workflow')
21
+ .desc(`Cross-tab coordination for multi-page automation flows.
22
+
23
+ Actions:
24
+ - list: Show all aliases and shared context
25
+ - alias_bind: Name an existing tab by index (e.g., alias="register" index=0)
26
+ - alias_open: Open a URL in a new tab and name it
27
+ - navigate: Navigate a named tab to a URL
28
+ - wait_for: Wait for selector or text to appear in a named tab
29
+ - context_set: Store a value in shared context (accessible across tabs)
30
+ - context_get: Read a value from shared context
31
+ - transfer: Evaluate JS in a named tab and store result in shared context
32
+
33
+ USE THIS for:
34
+ - Registration page ↔ email verification page workflows
35
+ - Any flow requiring coordination between multiple open tabs`)
36
+ .enum('action', [
37
+ 'list',
38
+ 'alias_bind',
39
+ 'alias_open',
40
+ 'navigate',
41
+ 'wait_for',
42
+ 'context_set',
43
+ 'context_get',
44
+ 'transfer',
45
+ ], 'Tab workflow action to perform')
46
+ .string('alias', 'Tab alias name (used by alias_bind, alias_open, navigate, wait_for, transfer)')
47
+ .string('fromAlias', 'Source tab alias for transfer action')
48
+ .number('index', 'Tab index (0-based) for alias_bind')
49
+ .string('url', 'URL for alias_open or navigate')
50
+ .string('selector', 'CSS selector to wait for (wait_for action)')
51
+ .string('waitForText', 'Text string to wait for in page body (wait_for action)')
52
+ .string('key', 'Context key for context_set, context_get, transfer')
53
+ .string('value', 'Value to store (context_set action)')
54
+ .string('expression', 'JavaScript expression to evaluate in the source tab (transfer action)')
55
+ .number('timeoutMs', 'Timeout in milliseconds for wait_for (default: 10000)', {
56
+ default: 10000,
57
+ })
58
+ .required('action')
59
+ .openWorld()
60
+ .build(),
90
61
  ];