@jshookmcp/jshook 0.2.3 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (583) hide show
  1. package/README.md +14 -5
  2. package/README.zh.md +18 -3
  3. package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
  4. package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
  5. package/dist/packages/extension-sdk/src/plugin.js +119 -33
  6. package/dist/packages/extension-sdk/src/workflow.d.ts +171 -0
  7. package/dist/packages/extension-sdk/src/workflow.js +272 -0
  8. package/dist/src/config/search-defaults.js +161 -0
  9. package/dist/src/constants.d.ts +3 -0
  10. package/dist/src/constants.js +4 -1
  11. package/dist/src/index.d.ts +1 -1
  12. package/dist/src/index.js +13 -17
  13. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
  14. package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
  15. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
  16. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
  17. package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
  18. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
  19. package/dist/src/modules/analyzer/PatternDetector.js +3 -3
  20. package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
  21. package/dist/src/modules/browser/BrowserDiscovery.js +2 -2
  22. package/dist/src/modules/browser/BrowserModeManager.js +11 -10
  23. package/dist/src/modules/browser/BrowserPool.d.ts +49 -0
  24. package/dist/src/modules/browser/BrowserPool.js +288 -0
  25. package/dist/src/modules/browser/TabRegistry.js +2 -2
  26. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  27. package/dist/src/modules/browser/UnifiedBrowserManager.js +18 -3
  28. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +1 -10
  29. package/dist/src/modules/captcha/AICaptchaDetector.js +7 -201
  30. package/dist/src/modules/collector/CodeCollector.js +4 -5
  31. package/dist/src/modules/collector/DOMInspector.js +48 -58
  32. package/dist/src/modules/collector/PageController.d.ts +17 -4
  33. package/dist/src/modules/collector/PageController.js +2 -5
  34. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  35. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  36. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  37. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  38. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  39. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  40. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +4 -2
  41. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  42. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.d.ts +5 -0
  43. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.js +43 -2
  44. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  45. package/dist/src/modules/deobfuscator/Deobfuscator.js +9 -39
  46. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  47. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  48. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -2
  49. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +3 -55
  50. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  51. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  52. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  53. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  54. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  55. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  56. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  57. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  58. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  59. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  60. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  61. package/dist/src/modules/external/ExternalToolRunner.js +25 -22
  62. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
  63. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
  64. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
  65. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
  66. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  67. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  68. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
  69. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  70. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  71. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  72. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
  73. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  74. package/dist/src/modules/process/LinuxProcessManager.js +2 -0
  75. package/dist/src/modules/process/MacProcessManager.js +25 -25
  76. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  77. package/dist/src/modules/process/MemoryManager.js +2 -2
  78. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  79. package/dist/src/modules/process/memory/availability.js +49 -49
  80. package/dist/src/modules/process/memory/injector.js +185 -185
  81. package/dist/src/modules/process/memory/reader.js +85 -53
  82. package/dist/src/modules/process/memory/regions.dump.js +51 -51
  83. package/dist/src/modules/process/memory/regions.enumerate.js +108 -108
  84. package/dist/src/modules/process/memory/regions.modules.js +80 -80
  85. package/dist/src/modules/process/memory/regions.protection.js +148 -115
  86. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  87. package/dist/src/modules/process/memory/scanner.darwin.js +98 -41
  88. package/dist/src/modules/process/memory/scanner.js +88 -4
  89. package/dist/src/modules/process/memory/scanner.windows.js +124 -124
  90. package/dist/src/modules/process/memory/writer.js +98 -58
  91. package/dist/src/modules/security/ExecutionSandbox.js +51 -52
  92. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  93. package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
  94. package/dist/src/modules/stealth/StealthScripts.js +18 -13
  95. package/dist/src/modules/stealth/StealthVerifier.js +1 -3
  96. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  97. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  98. package/dist/src/modules/trace/TraceDB.js +75 -69
  99. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  100. package/dist/src/native/AntiCheatDetector.js +67 -16
  101. package/dist/src/native/CodeInjector.js +3 -3
  102. package/dist/src/native/HardwareBreakpoint.js +24 -15
  103. package/dist/src/native/HeapAnalyzer.js +2 -2
  104. package/dist/src/native/MemoryController.js +1 -1
  105. package/dist/src/native/MemoryScanSession.js +2 -2
  106. package/dist/src/native/MemoryScanner.js +4 -8
  107. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  108. package/dist/src/native/PEAnalyzer.js +14 -15
  109. package/dist/src/native/PointerChainEngine.js +2 -4
  110. package/dist/src/native/ScriptLoader.js +4 -9
  111. package/dist/src/native/Speedhack.js +1 -1
  112. package/dist/src/native/StructureAnalyzer.js +52 -33
  113. package/dist/src/native/Win32API.d.ts +1 -0
  114. package/dist/src/native/Win32API.js +13 -0
  115. package/dist/src/native/Win32Debug.js +19 -19
  116. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  117. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  118. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  119. package/dist/src/server/MCPServer.context.d.ts +3 -1
  120. package/dist/src/server/MCPServer.d.ts +2 -1
  121. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  122. package/dist/src/server/MCPServer.domain.js +81 -16
  123. package/dist/src/server/MCPServer.js +41 -14
  124. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  125. package/dist/src/server/MCPServer.resources.js +91 -0
  126. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  127. package/dist/src/server/MCPServer.search.helpers.js +1 -1
  128. package/dist/src/server/MCPServer.transport.js +12 -0
  129. package/dist/src/server/ToolCallContextGuard.js +8 -0
  130. package/dist/src/server/ToolRouter.d.ts +25 -9
  131. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  132. package/dist/src/server/ToolRouter.intent.js +77 -0
  133. package/dist/src/server/ToolRouter.js +103 -284
  134. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  135. package/dist/src/server/ToolRouter.policy.js +163 -0
  136. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  137. package/dist/src/server/ToolRouter.probe.js +103 -0
  138. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  139. package/dist/src/server/ToolRouter.renderer.js +52 -0
  140. package/dist/src/server/activation/ActivationController.js +15 -12
  141. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  142. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  143. package/dist/src/server/domains/analysis/definitions.js +155 -655
  144. package/dist/src/server/domains/analysis/handlers.impl.js +26 -20
  145. package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -1
  146. package/dist/src/server/domains/analysis/manifest.js +6 -4
  147. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  148. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  149. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  150. package/dist/src/server/domains/browser/definitions.tools.page-core.js +210 -439
  151. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  152. package/dist/src/server/domains/browser/definitions.tools.runtime.js +98 -211
  153. package/dist/src/server/domains/browser/definitions.tools.security.js +194 -339
  154. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  155. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  156. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  157. package/dist/src/server/domains/browser/handlers/framework-state.js +27 -9
  158. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  159. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  160. package/dist/src/server/domains/browser/handlers/stealth-injection.d.ts +1 -0
  161. package/dist/src/server/domains/browser/handlers/stealth-injection.js +3 -0
  162. package/dist/src/server/domains/browser/handlers.impl.d.ts +1 -2
  163. package/dist/src/server/domains/browser/handlers.impl.js +2 -3
  164. package/dist/src/server/domains/browser/manifest.js +37 -13
  165. package/dist/src/server/domains/coordination/definitions.js +50 -216
  166. package/dist/src/server/domains/coordination/index.d.ts +2 -1
  167. package/dist/src/server/domains/coordination/index.js +1 -0
  168. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  169. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  170. package/dist/src/server/domains/debugger/manifest.js +9 -2
  171. package/dist/src/server/domains/encoding/definitions.js +43 -153
  172. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  173. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  174. package/dist/src/server/domains/evidence/definitions.js +42 -0
  175. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  176. package/dist/src/server/domains/evidence/handlers.js +60 -0
  177. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  178. package/dist/src/server/domains/evidence/index.js +2 -0
  179. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  180. package/dist/src/server/domains/evidence/manifest.js +78 -0
  181. package/dist/src/server/domains/graphql/definitions.js +53 -141
  182. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  183. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
  184. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  185. package/dist/src/server/domains/hooks/ai-handlers.js +1 -67
  186. package/dist/src/server/domains/hooks/definitions.js +69 -335
  187. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  188. package/dist/src/server/domains/hooks/manifest.js +1 -2
  189. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  190. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  191. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  192. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  193. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  194. package/dist/src/server/domains/instrumentation/index.js +2 -0
  195. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  196. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  197. package/dist/src/server/domains/macro/definitions.js +16 -43
  198. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  199. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  200. package/dist/src/server/domains/memory/definitions.js +387 -559
  201. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  202. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  203. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  204. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  205. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  206. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  207. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  208. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  209. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  210. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  211. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  212. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  213. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  214. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  215. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  216. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  217. package/dist/src/server/domains/memory/manifest.js +236 -64
  218. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  219. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  220. package/dist/src/server/domains/native-bridge/index.js +2 -1
  221. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  222. package/dist/src/server/domains/network/definitions.js +175 -578
  223. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  224. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  225. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  226. package/dist/src/server/domains/network/handlers.base.js +3 -878
  227. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  228. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  229. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  230. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  231. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  232. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  233. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  234. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  235. package/dist/src/server/domains/network/manifest.js +15 -0
  236. package/dist/src/server/domains/network/replay.js +1 -4
  237. package/dist/src/server/domains/platform/definitions.js +121 -112
  238. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +4 -0
  239. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +193 -4
  240. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  241. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  242. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  243. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  244. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  245. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  246. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  247. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  248. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  249. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  250. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  251. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +3 -3
  252. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  253. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  254. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  255. package/dist/src/server/domains/platform/handlers.js +29 -0
  256. package/dist/src/server/domains/platform/manifest.js +38 -0
  257. package/dist/src/server/domains/process/definitions.js +163 -647
  258. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  259. package/dist/src/server/domains/process/handlers.base.js +7 -462
  260. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  261. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  262. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  263. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  264. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +18 -16
  265. package/dist/src/server/domains/process/manifest.js +6 -1
  266. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  267. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  268. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  269. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  270. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  271. package/dist/src/server/domains/shared/modules.js +0 -1
  272. package/dist/src/server/domains/shared-state-board/definitions.d.ts +2 -0
  273. package/dist/src/server/domains/shared-state-board/definitions.js +78 -0
  274. package/dist/src/server/domains/shared-state-board/handlers.impl.d.ts +58 -0
  275. package/dist/src/server/domains/shared-state-board/handlers.impl.js +419 -0
  276. package/dist/src/server/domains/shared-state-board/index.d.ts +2 -0
  277. package/dist/src/server/domains/shared-state-board/index.js +2 -0
  278. package/dist/src/server/domains/shared-state-board/manifest.d.ts +57 -0
  279. package/dist/src/server/domains/shared-state-board/manifest.js +74 -0
  280. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  281. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  282. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  283. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  284. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  285. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  286. package/dist/src/server/domains/streaming/definitions.js +36 -148
  287. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  288. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  289. package/dist/src/server/domains/trace/TraceSummarizer.js +8 -5
  290. package/dist/src/server/domains/trace/definitions.tools.js +51 -206
  291. package/dist/src/server/domains/trace/handlers.js +10 -12
  292. package/dist/src/server/domains/trace/index.d.ts +2 -1
  293. package/dist/src/server/domains/trace/index.js +2 -1
  294. package/dist/src/server/domains/trace/manifest.js +15 -3
  295. package/dist/src/server/domains/transform/definitions.js +50 -210
  296. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +108 -108
  297. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  298. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  299. package/dist/src/server/domains/transform/manifest.js +1 -1
  300. package/dist/src/server/domains/wasm/definitions.js +55 -232
  301. package/dist/src/server/domains/wasm/handlers.js +1 -1
  302. package/dist/src/server/domains/workflow/definitions.js +144 -414
  303. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
  304. package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
  305. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  306. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  307. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  308. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  309. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  310. package/dist/src/server/evidence/index.d.ts +2 -0
  311. package/dist/src/server/evidence/index.js +1 -0
  312. package/dist/src/server/evidence/types.d.ts +22 -0
  313. package/dist/src/server/evidence/types.js +1 -0
  314. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  315. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  316. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  317. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  318. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  319. package/dist/src/server/extensions/ExtensionManager.roots.js +4 -4
  320. package/dist/src/server/extensions/plugin-config.js +1 -1
  321. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  322. package/dist/src/server/extensions/plugin-env.js +10 -4
  323. package/dist/src/server/extensions/types.d.ts +17 -0
  324. package/dist/src/server/extensions/types.js +1 -1
  325. package/dist/src/server/http/SseStream.d.ts +21 -0
  326. package/dist/src/server/http/SseStream.js +129 -0
  327. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  328. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  329. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  330. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  331. package/dist/src/server/instrumentation/index.d.ts +2 -0
  332. package/dist/src/server/instrumentation/index.js +2 -0
  333. package/dist/src/server/instrumentation/types.d.ts +62 -0
  334. package/dist/src/server/instrumentation/types.js +7 -0
  335. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  336. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  337. package/dist/src/server/macros/MacroRunner.js +6 -2
  338. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  339. package/dist/src/server/macros/builtins/index.js +51 -7
  340. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  341. package/dist/src/server/registry/contracts.d.ts +1 -1
  342. package/dist/src/server/registry/discovery.js +5 -4
  343. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  344. package/dist/src/server/registry/index.js +4 -4
  345. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  346. package/dist/src/server/registry/tool-builder.js +105 -0
  347. package/dist/src/server/sandbox/QuickJSSandbox.js +16 -5
  348. package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
  349. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  350. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  351. package/dist/src/server/search/FeedbackTracker.js +26 -0
  352. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  353. package/dist/src/server/search/QueryNormalizer.js +94 -0
  354. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  355. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  356. package/dist/src/server/teams/TeamManager.d.ts +43 -0
  357. package/dist/src/server/teams/TeamManager.js +238 -0
  358. package/dist/src/server/teams/index.d.ts +1 -0
  359. package/dist/src/server/teams/index.js +1 -0
  360. package/dist/src/server/workflows/WorkflowContract.d.ts +44 -4
  361. package/dist/src/server/workflows/WorkflowContract.js +52 -0
  362. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  363. package/dist/src/server/workflows/WorkflowEngine.js +314 -4
  364. package/dist/src/types/config.d.ts +0 -14
  365. package/dist/src/types/deobfuscator.d.ts +1 -1
  366. package/dist/src/types/index.d.ts +1 -1
  367. package/dist/src/utils/DetailedDataManager.js +2 -0
  368. package/dist/src/utils/RingBuffer.js +5 -5
  369. package/dist/src/utils/TokenBudgetManager.js +1 -1
  370. package/dist/src/utils/UnifiedCacheManager.js +1 -1
  371. package/dist/src/utils/artifactRetention.js +2 -2
  372. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  373. package/dist/src/utils/betterSqlite3.js +88 -0
  374. package/dist/src/utils/browserExecutable.js +2 -2
  375. package/dist/src/utils/cache/CachedDecorator.d.ts +8 -0
  376. package/dist/src/utils/cache/CachedDecorator.js +55 -0
  377. package/dist/src/utils/cache/PersistentCache.d.ts +33 -0
  378. package/dist/src/utils/cache/PersistentCache.js +246 -0
  379. package/dist/src/utils/cache/index.d.ts +2 -0
  380. package/dist/src/utils/cache/index.js +2 -0
  381. package/dist/src/utils/cliFastPath.js +5 -8
  382. package/dist/src/utils/config.js +4 -26
  383. package/dist/src/utils/environmentDoctor.js +138 -11
  384. package/dist/src/utils/outputPaths.js +16 -9
  385. package/dist/src/utils/parallel.js +1 -3
  386. package/package.json +82 -81
  387. package/scripts/postinstall.cjs +54 -27
  388. package/workflows/.gitkeep +0 -0
  389. package/workflows/anti-bot-diagnoser/.jshook-install.json +14 -0
  390. package/workflows/anti-bot-diagnoser/LICENSE +21 -0
  391. package/workflows/anti-bot-diagnoser/README.md +105 -0
  392. package/workflows/anti-bot-diagnoser/docs/agent-recipes.md +44 -0
  393. package/workflows/anti-bot-diagnoser/meta.yaml +6 -0
  394. package/workflows/anti-bot-diagnoser/package.json +22 -0
  395. package/workflows/anti-bot-diagnoser/tsconfig.json +15 -0
  396. package/workflows/anti-bot-diagnoser/workflow.ts +224 -0
  397. package/workflows/api-openapi-probe/.jshook-install.json +14 -0
  398. package/workflows/api-openapi-probe/meta.yaml +6 -0
  399. package/workflows/api-openapi-probe/package.json +22 -0
  400. package/workflows/api-openapi-probe/pnpm-lock.yaml +819 -0
  401. package/workflows/api-openapi-probe/tsconfig.json +15 -0
  402. package/workflows/api-openapi-probe/workflow.ts +40 -0
  403. package/workflows/api-probe-batch/.jshook-install.json +14 -0
  404. package/workflows/api-probe-batch/LICENSE +21 -0
  405. package/workflows/api-probe-batch/README.md +45 -0
  406. package/workflows/api-probe-batch/meta.yaml +4 -0
  407. package/workflows/api-probe-batch/package.json +23 -0
  408. package/workflows/api-probe-batch/tsconfig.json +16 -0
  409. package/workflows/api-probe-batch/workflow.ts +111 -0
  410. package/workflows/auth-bootstrap/.jshook-install.json +14 -0
  411. package/workflows/auth-bootstrap/LICENSE +21 -0
  412. package/workflows/auth-bootstrap/README.md +74 -0
  413. package/workflows/auth-bootstrap/meta.yaml +4 -0
  414. package/workflows/auth-bootstrap/package.json +23 -0
  415. package/workflows/auth-bootstrap/tsconfig.json +16 -0
  416. package/workflows/auth-bootstrap/workflow.ts +141 -0
  417. package/workflows/auth-extract/.jshook-install.json +14 -0
  418. package/workflows/auth-extract/meta.yaml +6 -0
  419. package/workflows/auth-extract/package.json +22 -0
  420. package/workflows/auth-extract/pnpm-lock.yaml +819 -0
  421. package/workflows/auth-extract/tsconfig.json +15 -0
  422. package/workflows/auth-extract/workflow.ts +36 -0
  423. package/workflows/auth-surface-mapper/.jshook-install.json +14 -0
  424. package/workflows/auth-surface-mapper/meta.yaml +6 -0
  425. package/workflows/auth-surface-mapper/package.json +22 -0
  426. package/workflows/auth-surface-mapper/pnpm-lock.yaml +819 -0
  427. package/workflows/auth-surface-mapper/tsconfig.json +15 -0
  428. package/workflows/auth-surface-mapper/workflow.ts +104 -0
  429. package/workflows/batch-register/.jshook-install.json +14 -0
  430. package/workflows/batch-register/LICENSE +21 -0
  431. package/workflows/batch-register/README.md +39 -0
  432. package/workflows/batch-register/meta.yaml +4 -0
  433. package/workflows/batch-register/package.json +23 -0
  434. package/workflows/batch-register/tsconfig.json +16 -0
  435. package/workflows/batch-register/workflow.ts +67 -0
  436. package/workflows/bundle-recovery/.jshook-install.json +14 -0
  437. package/workflows/bundle-recovery/LICENSE +21 -0
  438. package/workflows/bundle-recovery/README.md +105 -0
  439. package/workflows/bundle-recovery/docs/agent-recipes.md +44 -0
  440. package/workflows/bundle-recovery/meta.yaml +6 -0
  441. package/workflows/bundle-recovery/package.json +22 -0
  442. package/workflows/bundle-recovery/tsconfig.json +15 -0
  443. package/workflows/bundle-recovery/workflow.ts +179 -0
  444. package/workflows/challenge-detector/.jshook-install.json +14 -0
  445. package/workflows/challenge-detector/meta.yaml +14 -0
  446. package/workflows/challenge-detector/package.json +22 -0
  447. package/workflows/challenge-detector/pnpm-lock.yaml +819 -0
  448. package/workflows/challenge-detector/tsconfig.json +15 -0
  449. package/workflows/challenge-detector/workflow.ts +298 -0
  450. package/workflows/deobfuscation-pipeline/.jshook-install.json +14 -0
  451. package/workflows/deobfuscation-pipeline/meta.yaml +6 -0
  452. package/workflows/deobfuscation-pipeline/package.json +22 -0
  453. package/workflows/deobfuscation-pipeline/pnpm-lock.yaml +819 -0
  454. package/workflows/deobfuscation-pipeline/tsconfig.json +15 -0
  455. package/workflows/deobfuscation-pipeline/workflow.ts +119 -0
  456. package/workflows/electron-bridge-mapper/.jshook-install.json +14 -0
  457. package/workflows/electron-bridge-mapper/meta.yaml +6 -0
  458. package/workflows/electron-bridge-mapper/package.json +22 -0
  459. package/workflows/electron-bridge-mapper/pnpm-lock.yaml +819 -0
  460. package/workflows/electron-bridge-mapper/tsconfig.json +15 -0
  461. package/workflows/electron-bridge-mapper/workflow.ts +125 -0
  462. package/workflows/evidence-pack/.jshook-install.json +14 -0
  463. package/workflows/evidence-pack/LICENSE +21 -0
  464. package/workflows/evidence-pack/README.md +105 -0
  465. package/workflows/evidence-pack/docs/agent-recipes.md +44 -0
  466. package/workflows/evidence-pack/meta.yaml +6 -0
  467. package/workflows/evidence-pack/package.json +22 -0
  468. package/workflows/evidence-pack/tsconfig.json +15 -0
  469. package/workflows/evidence-pack/workflow.ts +154 -0
  470. package/workflows/js-bundle-search/.jshook-install.json +14 -0
  471. package/workflows/js-bundle-search/LICENSE +21 -0
  472. package/workflows/js-bundle-search/README.md +46 -0
  473. package/workflows/js-bundle-search/meta.yaml +4 -0
  474. package/workflows/js-bundle-search/package.json +23 -0
  475. package/workflows/js-bundle-search/tsconfig.json +16 -0
  476. package/workflows/js-bundle-search/workflow.ts +118 -0
  477. package/workflows/protocol-registry/.jshook-install.json +14 -0
  478. package/workflows/protocol-registry/meta.yaml +6 -0
  479. package/workflows/protocol-registry/package.json +22 -0
  480. package/workflows/protocol-registry/pnpm-lock.yaml +819 -0
  481. package/workflows/protocol-registry/tsconfig.json +15 -0
  482. package/workflows/protocol-registry/workflow.ts +107 -0
  483. package/workflows/qwen-mail-open-latest/meta.yaml +7 -0
  484. package/workflows/qwen-mail-open-latest/package.json +22 -0
  485. package/workflows/qwen-mail-open-latest/pnpm-lock.yaml +819 -0
  486. package/workflows/qwen-mail-open-latest/tsconfig.json +15 -0
  487. package/workflows/qwen-mail-open-latest/workflow.ts +77 -0
  488. package/workflows/register-account-flow/.jshook-install.json +14 -0
  489. package/workflows/register-account-flow/LICENSE +21 -0
  490. package/workflows/register-account-flow/README.md +64 -0
  491. package/workflows/register-account-flow/meta.yaml +4 -0
  492. package/workflows/register-account-flow/package.json +23 -0
  493. package/workflows/register-account-flow/tsconfig.json +16 -0
  494. package/workflows/register-account-flow/workflow.ts +127 -0
  495. package/workflows/replay-lab/.jshook-install.json +14 -0
  496. package/workflows/replay-lab/meta.yaml +6 -0
  497. package/workflows/replay-lab/package.json +22 -0
  498. package/workflows/replay-lab/pnpm-lock.yaml +819 -0
  499. package/workflows/replay-lab/tsconfig.json +15 -0
  500. package/workflows/replay-lab/workflow.ts +106 -0
  501. package/workflows/script-evidence-scan/.jshook-install.json +14 -0
  502. package/workflows/script-evidence-scan/LICENSE +21 -0
  503. package/workflows/script-evidence-scan/README.md +61 -0
  504. package/workflows/script-evidence-scan/meta.yaml +4 -0
  505. package/workflows/script-evidence-scan/package.json +23 -0
  506. package/workflows/script-evidence-scan/tsconfig.json +16 -0
  507. package/workflows/script-evidence-scan/workflow.ts +89 -0
  508. package/workflows/signature-hunter/.jshook-install.json +14 -0
  509. package/workflows/signature-hunter/LICENSE +21 -0
  510. package/workflows/signature-hunter/README.md +105 -0
  511. package/workflows/signature-hunter/docs/agent-recipes.md +44 -0
  512. package/workflows/signature-hunter/meta.yaml +6 -0
  513. package/workflows/signature-hunter/package.json +22 -0
  514. package/workflows/signature-hunter/tsconfig.json +15 -0
  515. package/workflows/signature-hunter/workflow.ts +170 -0
  516. package/workflows/signing-lineage/.jshook-install.json +14 -0
  517. package/workflows/signing-lineage/meta.yaml +6 -0
  518. package/workflows/signing-lineage/package.json +22 -0
  519. package/workflows/signing-lineage/pnpm-lock.yaml +819 -0
  520. package/workflows/signing-lineage/tsconfig.json +15 -0
  521. package/workflows/signing-lineage/workflow.ts +120 -0
  522. package/workflows/temp-mail-extract-link/.jshook-install.json +14 -0
  523. package/workflows/temp-mail-extract-link/LICENSE +21 -0
  524. package/workflows/temp-mail-extract-link/README.md +71 -0
  525. package/workflows/temp-mail-extract-link/meta.yaml +4 -0
  526. package/workflows/temp-mail-extract-link/package.json +23 -0
  527. package/workflows/temp-mail-extract-link/tsconfig.json +16 -0
  528. package/workflows/temp-mail-extract-link/workflow.ts +221 -0
  529. package/workflows/temp-mail-open-latest/.jshook-install.json +14 -0
  530. package/workflows/temp-mail-open-latest/LICENSE +21 -0
  531. package/workflows/temp-mail-open-latest/README.md +61 -0
  532. package/workflows/temp-mail-open-latest/meta.yaml +4 -0
  533. package/workflows/temp-mail-open-latest/package.json +23 -0
  534. package/workflows/temp-mail-open-latest/tsconfig.json +16 -0
  535. package/workflows/temp-mail-open-latest/workflow.ts +136 -0
  536. package/workflows/template/.jshook-install.json +14 -0
  537. package/workflows/template/LICENSE +21 -0
  538. package/workflows/template/README.md +45 -0
  539. package/workflows/template/docs/SKILL.md +111 -0
  540. package/workflows/template/meta.yaml +6 -0
  541. package/workflows/template/package.json +22 -0
  542. package/workflows/template/pnpm-lock.yaml +819 -0
  543. package/workflows/template/tsconfig.json +15 -0
  544. package/workflows/template/workflow.ts +73 -0
  545. package/workflows/web-api-capture-session/.jshook-install.json +14 -0
  546. package/workflows/web-api-capture-session/LICENSE +21 -0
  547. package/workflows/web-api-capture-session/README.md +64 -0
  548. package/workflows/web-api-capture-session/meta.yaml +4 -0
  549. package/workflows/web-api-capture-session/package.json +23 -0
  550. package/workflows/web-api-capture-session/tsconfig.json +16 -0
  551. package/workflows/web-api-capture-session/workflow.ts +124 -0
  552. package/workflows/ws-protocol-lifter/.jshook-install.json +14 -0
  553. package/workflows/ws-protocol-lifter/LICENSE +21 -0
  554. package/workflows/ws-protocol-lifter/README.md +105 -0
  555. package/workflows/ws-protocol-lifter/docs/agent-recipes.md +44 -0
  556. package/workflows/ws-protocol-lifter/meta.yaml +6 -0
  557. package/workflows/ws-protocol-lifter/package.json +22 -0
  558. package/workflows/ws-protocol-lifter/tsconfig.json +15 -0
  559. package/workflows/ws-protocol-lifter/workflow.ts +163 -0
  560. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  561. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  562. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  563. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  564. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  565. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  566. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  567. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  568. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  569. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  570. package/dist/src/services/LLMService.d.ts +0 -37
  571. package/dist/src/services/LLMService.js +0 -233
  572. package/dist/src/services/prompts/analysis.d.ts +0 -9
  573. package/dist/src/services/prompts/analysis.js +0 -158
  574. package/dist/src/services/prompts/crypto.d.ts +0 -2
  575. package/dist/src/services/prompts/crypto.js +0 -108
  576. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  577. package/dist/src/services/prompts/deobfuscation.js +0 -300
  578. package/dist/src/services/prompts/environment.d.ts +0 -16
  579. package/dist/src/services/prompts/environment.js +0 -372
  580. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  581. package/dist/src/services/prompts/intelligence.js +0 -250
  582. package/dist/src/services/prompts/taint.d.ts +0 -2
  583. package/dist/src/services/prompts/taint.js +0 -54
@@ -1,660 +1,160 @@
1
- export const coreTools = [
2
- {
3
- name: 'collect_code',
4
- description: 'Collect JavaScript code from a target website. Supports summary, priority, incremental, and full collection modes.',
5
- inputSchema: {
6
- type: 'object',
7
- properties: {
8
- url: {
9
- type: 'string',
10
- description: 'Target website URL',
11
- },
12
- includeInline: {
13
- type: 'boolean',
14
- description: 'Include inline scripts',
15
- default: true,
16
- },
17
- includeExternal: {
18
- type: 'boolean',
19
- description: 'Include external scripts',
20
- default: true,
21
- },
22
- includeDynamic: {
23
- type: 'boolean',
24
- description: 'Include dynamically loaded scripts',
25
- default: false,
26
- },
27
- smartMode: {
28
- type: 'string',
29
- description: 'Collection mode',
30
- enum: ['summary', 'priority', 'incremental', 'full'],
31
- default: 'full',
32
- },
33
- compress: {
34
- type: 'boolean',
35
- description: 'Enable compression for collected content',
36
- default: false,
37
- },
38
- maxTotalSize: {
39
- type: 'number',
40
- description: 'Maximum total collection size in bytes',
41
- default: 2097152,
42
- },
43
- maxFileSize: {
44
- type: 'number',
45
- description: 'Maximum single file size in KB',
46
- default: 500,
47
- },
48
- priorities: {
49
- type: 'array',
50
- description: 'Preferred URL patterns for priority mode',
51
- items: { type: 'string' },
52
- },
53
- returnSummaryOnly: {
54
- type: 'boolean',
55
- description: 'Return summary only (legacy compatibility)',
56
- default: false,
57
- },
58
- },
59
- required: ['url'],
60
- },
61
- annotations: {
62
- readOnlyHint: false,
63
- destructiveHint: false,
64
- idempotentHint: false,
65
- openWorldHint: true,
66
- },
67
- },
68
- {
69
- name: 'search_in_scripts',
70
- description: 'Search collected scripts by keyword or regex pattern.',
71
- inputSchema: {
72
- type: 'object',
73
- properties: {
74
- keyword: {
75
- type: 'string',
76
- description: 'Search keyword or regex pattern',
77
- },
78
- isRegex: {
79
- type: 'boolean',
80
- description: 'Treat keyword as a regex pattern',
81
- default: false,
82
- },
83
- caseSensitive: {
84
- type: 'boolean',
85
- description: 'Enable case-sensitive search',
86
- default: false,
87
- },
88
- contextLines: {
89
- type: 'number',
90
- description: 'Context lines before and after each match',
91
- default: 3,
92
- },
93
- maxMatches: {
94
- type: 'number',
95
- description: 'Maximum matches to return',
96
- default: 100,
97
- },
98
- returnSummary: {
99
- type: 'boolean',
100
- description: 'Return summary data instead of full match payload',
101
- default: false,
102
- },
103
- maxContextSize: {
104
- type: 'number',
105
- description: 'Maximum response size in bytes before summary fallback',
106
- default: 50000,
107
- },
108
- },
109
- required: ['keyword'],
110
- },
111
- annotations: {
112
- readOnlyHint: true,
113
- destructiveHint: false,
114
- idempotentHint: true,
115
- openWorldHint: false,
116
- },
117
- },
118
- {
119
- name: 'extract_function_tree',
120
- description: 'Extract a function and its dependency tree from collected scripts.',
121
- inputSchema: {
122
- type: 'object',
123
- properties: {
124
- scriptId: {
125
- type: 'string',
126
- description: 'Script identifier',
127
- },
128
- functionName: {
129
- type: 'string',
130
- description: 'Function name to extract',
131
- },
132
- maxDepth: {
133
- type: 'number',
134
- description: 'Maximum dependency traversal depth',
135
- default: 3,
136
- },
137
- maxSize: {
138
- type: 'number',
139
- description: 'Maximum output size in KB',
140
- default: 500,
141
- },
142
- includeComments: {
143
- type: 'boolean',
144
- description: 'Include comments in extracted source',
145
- default: true,
146
- },
147
- },
148
- required: ['scriptId', 'functionName'],
149
- },
150
- annotations: {
151
- readOnlyHint: false,
152
- destructiveHint: false,
153
- idempotentHint: false,
154
- openWorldHint: false,
155
- },
156
- },
157
- {
158
- name: 'deobfuscate',
159
- description: 'Run webcrack-powered JavaScript deobfuscation with bundle unpacking support.',
160
- inputSchema: {
161
- type: 'object',
162
- properties: {
163
- code: {
164
- type: 'string',
165
- description: 'Obfuscated JavaScript source',
166
- },
167
- llm: {
168
- type: 'string',
169
- enum: ['gpt-4', 'claude'],
170
- description: 'Preferred LLM for analysis',
171
- default: 'gpt-4',
172
- },
173
- aggressive: {
174
- type: 'boolean',
175
- description: 'Enable aggressive deobfuscation strategy',
176
- default: false,
177
- },
178
- unpack: {
179
- type: 'boolean',
180
- description: 'Use webcrack to unpack webpack/browserify bundles when possible',
181
- default: true,
182
- },
183
- unminify: {
184
- type: 'boolean',
185
- description: 'Use webcrack to reformat and unminify code before post-processing',
186
- default: true,
187
- },
188
- jsx: {
189
- type: 'boolean',
190
- description: 'Ask webcrack to decompile React.createElement trees back to JSX when supported',
191
- default: true,
192
- },
193
- mangle: {
194
- type: 'boolean',
195
- description: 'Rename obfuscated identifiers using webcrack mangle pass',
196
- default: false,
197
- },
198
- outputDir: {
199
- type: 'string',
200
- description: 'Optional directory where webcrack should save the deobfuscated code and extracted bundle',
201
- },
202
- forceOutput: {
203
- type: 'boolean',
204
- description: 'Remove outputDir before saving webcrack artifacts',
205
- default: false,
206
- },
207
- includeModuleCode: {
208
- type: 'boolean',
209
- description: 'Include unpacked module source in bundle output when returning bundle details',
210
- default: false,
211
- },
212
- maxBundleModules: {
213
- type: 'number',
214
- description: 'Maximum number of bundle modules to return in the response',
215
- default: 100,
216
- },
217
- mappings: {
218
- type: 'array',
219
- description: 'Optional remapping rules applied to unpacked bundle module paths. Each rule can match against module code or current path.',
220
- items: {
221
- type: 'object',
222
- properties: {
223
- path: {
224
- type: 'string',
225
- description: 'New module path to assign when the rule matches',
226
- },
227
- pattern: {
228
- type: 'string',
229
- description: 'Text or regex used to match module code/path',
230
- },
231
- matchType: {
232
- type: 'string',
233
- enum: ['includes', 'regex', 'exact'],
234
- description: 'How to interpret pattern',
235
- default: 'includes',
236
- },
237
- target: {
238
- type: 'string',
239
- enum: ['code', 'path'],
240
- description: 'Whether to match against module source code or the current module path',
241
- default: 'code',
242
- },
243
- },
244
- required: ['path', 'pattern'],
245
- },
246
- },
247
- },
248
- required: ['code'],
249
- },
250
- annotations: {
251
- readOnlyHint: false,
252
- destructiveHint: false,
253
- idempotentHint: false,
254
- openWorldHint: false,
255
- },
256
- },
257
- {
258
- name: 'understand_code',
259
- description: 'Run semantic code analysis for structure, behavior, and risks.',
260
- inputSchema: {
261
- type: 'object',
262
- properties: {
263
- code: {
264
- type: 'string',
265
- description: 'Source code to analyze',
266
- },
267
- context: {
268
- type: 'object',
269
- description: 'Additional contextual data',
270
- },
271
- focus: {
272
- type: 'string',
273
- enum: ['structure', 'business', 'security', 'all'],
274
- description: 'Analysis focus',
275
- default: 'all',
276
- },
277
- },
278
- required: ['code'],
279
- },
280
- annotations: {
281
- readOnlyHint: false,
282
- destructiveHint: false,
283
- idempotentHint: false,
284
- openWorldHint: false,
285
- },
286
- },
287
- {
288
- name: 'detect_crypto',
289
- description: 'Detect cryptographic algorithms and usage patterns in source code.',
290
- inputSchema: {
291
- type: 'object',
292
- properties: {
293
- code: {
294
- type: 'string',
295
- description: 'Source code for crypto analysis',
296
- },
297
- },
298
- required: ['code'],
299
- },
300
- annotations: {
301
- readOnlyHint: true,
302
- destructiveHint: false,
303
- idempotentHint: true,
304
- openWorldHint: false,
305
- },
306
- },
307
- {
308
- name: 'manage_hooks',
309
- description: 'Create, inspect, and clear JavaScript runtime hooks.',
310
- inputSchema: {
311
- type: 'object',
312
- properties: {
313
- action: {
314
- type: 'string',
315
- enum: ['create', 'list', 'records', 'clear'],
316
- description: 'Hook management operation',
317
- },
318
- target: {
319
- type: 'string',
320
- description: 'Hook target identifier',
321
- },
322
- type: {
323
- type: 'string',
324
- enum: ['function', 'xhr', 'fetch', 'websocket', 'localstorage', 'cookie'],
325
- description: 'Hook target type',
326
- },
327
- hookAction: {
328
- type: 'string',
329
- enum: ['log', 'block', 'modify'],
330
- description: 'Hook behavior',
331
- default: 'log',
332
- },
333
- customCode: {
334
- type: 'string',
335
- description: 'Custom JavaScript hook payload',
336
- },
337
- hookId: {
338
- type: 'string',
339
- description: 'Hook identifier',
340
- },
341
- },
342
- required: ['action'],
343
- },
344
- annotations: {
345
- readOnlyHint: false,
346
- destructiveHint: false,
347
- idempotentHint: false,
348
- openWorldHint: true,
349
- },
350
- },
351
- {
352
- name: 'detect_obfuscation',
353
- description: 'Detect obfuscation techniques in JavaScript source.',
354
- inputSchema: {
355
- type: 'object',
356
- properties: {
357
- code: {
358
- type: 'string',
359
- description: 'Source code to inspect',
360
- },
361
- generateReport: {
362
- type: 'boolean',
363
- description: 'Include human-readable report output',
364
- default: true,
365
- },
366
- },
367
- required: ['code'],
368
- },
369
- annotations: {
370
- readOnlyHint: true,
371
- destructiveHint: false,
372
- idempotentHint: true,
373
- openWorldHint: false,
374
- },
375
- },
376
- {
377
- name: 'advanced_deobfuscate',
378
- description: 'Run advanced deobfuscation with webcrack backend (deprecated legacy flags ignored).',
379
- inputSchema: {
380
- type: 'object',
381
- properties: {
382
- code: {
383
- type: 'string',
384
- description: 'Obfuscated JavaScript source',
385
- },
386
- detectOnly: {
387
- type: 'boolean',
388
- description: 'Only detect techniques without transformation',
389
- default: false,
390
- },
391
- aggressiveVM: {
392
- type: 'boolean',
393
- description: 'Enable aggressive VM deobfuscation mode',
394
- default: false,
395
- },
396
- useASTOptimization: {
397
- type: 'boolean',
398
- description: 'Apply AST-based optimization after transformation',
399
- default: true,
400
- },
401
- timeout: {
402
- type: 'number',
403
- description: 'Operation timeout in milliseconds',
404
- default: 60000,
405
- },
406
- unpack: {
407
- type: 'boolean',
408
- description: 'Use webcrack to unpack webpack/browserify bundles before advanced cleanup',
409
- default: true,
410
- },
411
- unminify: {
412
- type: 'boolean',
413
- description: 'Use webcrack unminify pass before VM and AST-oriented cleanup',
414
- default: true,
415
- },
416
- jsx: {
417
- type: 'boolean',
418
- description: 'Allow webcrack to decompile React.createElement back to JSX when supported',
419
- default: true,
420
- },
421
- mangle: {
422
- type: 'boolean',
423
- description: 'Rename obfuscated identifiers during the webcrack phase',
424
- default: false,
425
- },
426
- outputDir: {
427
- type: 'string',
428
- description: 'Optional directory where webcrack should save the deobfuscated code and extracted bundle',
429
- },
430
- forceOutput: {
431
- type: 'boolean',
432
- description: 'Remove outputDir before saving webcrack artifacts',
433
- default: false,
434
- },
435
- includeModuleCode: {
436
- type: 'boolean',
437
- description: 'Include unpacked module source in bundle output when returning bundle details',
438
- default: false,
439
- },
440
- maxBundleModules: {
441
- type: 'number',
442
- description: 'Maximum number of bundle modules to return in the response',
443
- default: 100,
444
- },
445
- mappings: {
446
- type: 'array',
447
- description: 'Optional remapping rules applied to unpacked bundle module paths. Each rule can match against module code or current path.',
448
- items: {
449
- type: 'object',
450
- properties: {
451
- path: {
452
- type: 'string',
453
- description: 'New module path to assign when the rule matches',
454
- },
455
- pattern: {
456
- type: 'string',
457
- description: 'Text or regex used to match module code/path',
458
- },
459
- matchType: {
460
- type: 'string',
461
- enum: ['includes', 'regex', 'exact'],
462
- description: 'How to interpret pattern',
463
- default: 'includes',
464
- },
465
- target: {
466
- type: 'string',
467
- enum: ['code', 'path'],
468
- description: 'Whether to match against module source code or the current module path',
469
- default: 'code',
470
- },
471
- },
472
- required: ['path', 'pattern'],
473
- },
474
- },
475
- },
476
- required: ['code'],
477
- },
478
- annotations: {
479
- readOnlyHint: false,
480
- destructiveHint: false,
481
- idempotentHint: false,
482
- openWorldHint: false,
483
- },
484
- },
485
- {
486
- name: 'webcrack_unpack',
487
- description: 'Run webcrack bundle unpacking directly and return extracted module graph details.',
488
- inputSchema: {
489
- type: 'object',
490
- properties: {
491
- code: {
492
- type: 'string',
493
- description: 'Bundled or obfuscated JavaScript source',
494
- },
495
- unpack: {
496
- type: 'boolean',
497
- description: 'Extract modules from the bundle when supported',
498
- default: true,
499
- },
500
- unminify: {
501
- type: 'boolean',
502
- description: 'Unminify the code before extracting bundle modules',
503
- default: true,
504
- },
505
- jsx: {
506
- type: 'boolean',
507
- description: 'Decompile React.createElement trees back to JSX when supported',
508
- default: true,
509
- },
510
- mangle: {
511
- type: 'boolean',
512
- description: 'Rename obfuscated identifiers during the webcrack pass',
513
- default: false,
514
- },
515
- outputDir: {
516
- type: 'string',
517
- description: 'Optional directory where webcrack should save the extracted bundle files',
518
- },
519
- forceOutput: {
520
- type: 'boolean',
521
- description: 'Remove outputDir before saving webcrack artifacts',
522
- default: false,
523
- },
524
- includeModuleCode: {
525
- type: 'boolean',
526
- description: 'Include unpacked module source in bundle output',
527
- default: false,
528
- },
529
- maxBundleModules: {
530
- type: 'number',
531
- description: 'Maximum number of bundle modules to return in the response',
532
- default: 100,
533
- },
534
- mappings: {
535
- type: 'array',
536
- description: 'Optional remapping rules applied to unpacked bundle module paths. Each rule can match against module code or current path.',
537
- items: {
538
- type: 'object',
539
- properties: {
540
- path: {
541
- type: 'string',
542
- description: 'New module path to assign when the rule matches',
543
- },
544
- pattern: {
545
- type: 'string',
546
- description: 'Text or regex used to match module code/path',
547
- },
548
- matchType: {
549
- type: 'string',
550
- enum: ['includes', 'regex', 'exact'],
551
- description: 'How to interpret pattern',
552
- default: 'includes',
553
- },
554
- target: {
555
- type: 'string',
556
- enum: ['code', 'path'],
557
- description: 'Whether to match against module source code or the current module path',
558
- default: 'code',
559
- },
560
- },
561
- required: ['path', 'pattern'],
562
- },
563
- },
564
- },
565
- required: ['code'],
566
- },
567
- annotations: {
568
- readOnlyHint: false,
569
- destructiveHint: false,
570
- idempotentHint: false,
571
- openWorldHint: false,
572
- },
573
- },
574
- {
575
- name: 'clear_collected_data',
576
- description: 'Clear collected script data, caches, and in-memory indexes.',
577
- inputSchema: {
578
- type: 'object',
579
- properties: {},
580
- },
581
- annotations: {
582
- readOnlyHint: false,
583
- destructiveHint: true,
584
- idempotentHint: false,
585
- openWorldHint: false,
586
- },
587
- },
588
- {
589
- name: 'get_collection_stats',
590
- description: 'Get collection, cache, and compression statistics.',
591
- inputSchema: {
592
- type: 'object',
593
- properties: {},
594
- },
595
- annotations: {
596
- readOnlyHint: true,
597
- destructiveHint: false,
598
- idempotentHint: true,
599
- openWorldHint: false,
600
- },
601
- },
602
- {
603
- name: 'webpack_enumerate',
604
- description: 'Enumerate all webpack modules in the current page and optionally search for keywords. Useful for finding hidden APIs, flags, or internal logic in bundled applications.',
605
- inputSchema: {
606
- type: 'object',
607
- properties: {
608
- searchKeyword: {
609
- type: 'string',
610
- description: 'Keyword to search across all module exports (case-insensitive). Leave empty to just list all module IDs.',
611
- },
612
- forceRequireAll: {
613
- type: 'boolean',
614
- description: 'Force-require every module (slower, but finds lazily-loaded modules). Default: true when searchKeyword provided.',
615
- default: false,
616
- },
617
- maxResults: {
618
- type: 'number',
619
- description: 'Maximum number of matching modules to return',
620
- default: 20,
621
- },
1
+ import { tool } from '../../registry/tool-builder.js';
2
+ const webcrackMappingsSchema = {
3
+ type: 'array',
4
+ description: 'Remapping rules for unpacked bundle module paths',
5
+ items: {
6
+ type: 'object',
7
+ properties: {
8
+ path: { type: 'string', description: 'New module path when matched' },
9
+ pattern: { type: 'string', description: 'Match text or regex' },
10
+ matchType: {
11
+ type: 'string',
12
+ enum: ['includes', 'regex', 'exact'],
13
+ description: 'How to interpret pattern',
14
+ default: 'includes',
622
15
  },
623
- },
624
- annotations: {
625
- readOnlyHint: false,
626
- destructiveHint: false,
627
- idempotentHint: false,
628
- openWorldHint: true,
629
- },
630
- },
631
- {
632
- name: 'source_map_extract',
633
- description: 'Find and parse JavaScript source maps to recover original source code. Useful for analyzing minified or bundled applications.',
634
- inputSchema: {
635
- type: 'object',
636
- properties: {
637
- includeContent: {
638
- type: 'boolean',
639
- description: 'Include full source file content (can be large). Default: false (only lists recovered file names).',
640
- default: false,
641
- },
642
- filterPath: {
643
- type: 'string',
644
- description: 'Only return source files whose path contains this string (e.g., "src/", ".tsx")',
645
- },
646
- maxFiles: {
647
- type: 'number',
648
- description: 'Maximum number of source files to return',
649
- default: 50,
650
- },
16
+ target: {
17
+ type: 'string',
18
+ enum: ['code', 'path'],
19
+ description: 'Match against source code or module path',
20
+ default: 'code',
651
21
  },
652
22
  },
653
- annotations: {
654
- readOnlyHint: true,
655
- destructiveHint: false,
656
- idempotentHint: true,
657
- openWorldHint: false,
658
- },
23
+ required: ['path', 'pattern'],
659
24
  },
25
+ };
26
+ function withWebcrackOpts(b) {
27
+ return b
28
+ .boolean('unpack', 'Unpack webpack/browserify bundles', { default: true })
29
+ .boolean('unminify', 'Reformat and unminify code', { default: true })
30
+ .boolean('jsx', 'Decompile React.createElement to JSX', { default: true })
31
+ .boolean('mangle', 'Rename obfuscated identifiers', { default: false })
32
+ .string('outputDir', 'Directory to save deobfuscated artifacts')
33
+ .boolean('forceOutput', 'Remove outputDir before saving', { default: false })
34
+ .boolean('includeModuleCode', 'Include module source in bundle output', { default: false })
35
+ .number('maxBundleModules', 'Maximum bundle modules to return', { default: 100 })
36
+ .prop('mappings', webcrackMappingsSchema);
37
+ }
38
+ export const coreTools = [
39
+ tool('collect_code')
40
+ .desc('Collect JavaScript from a target website in summary, priority, incremental, or full mode')
41
+ .string('url', 'Target website URL')
42
+ .boolean('includeInline', 'Include inline scripts', { default: true })
43
+ .boolean('includeExternal', 'Include external scripts', { default: true })
44
+ .boolean('includeDynamic', 'Include dynamically loaded scripts', { default: false })
45
+ .enum('smartMode', ['summary', 'priority', 'incremental', 'full'], 'Collection mode', {
46
+ default: 'full',
47
+ })
48
+ .boolean('compress', 'Enable compression', { default: false })
49
+ .number('maxTotalSize', 'Maximum total size in bytes', { default: 2097152 })
50
+ .number('maxFileSize', 'Maximum single file size in KB', { default: 500 })
51
+ .array('priorities', { type: 'string' }, 'Preferred URL patterns for priority mode')
52
+ .boolean('returnSummaryOnly', 'Return summary only', { default: false })
53
+ .required('url')
54
+ .openWorld()
55
+ .build(),
56
+ tool('search_in_scripts')
57
+ .desc('Search collected scripts by keyword or regex pattern')
58
+ .string('keyword', 'Search keyword or regex pattern')
59
+ .boolean('isRegex', 'Treat keyword as regex', { default: false })
60
+ .boolean('caseSensitive', 'Case-sensitive search', { default: false })
61
+ .number('contextLines', 'Context lines around each match', { default: 3 })
62
+ .number('maxMatches', 'Maximum matches', { default: 100 })
63
+ .boolean('returnSummary', 'Return summary instead of full payload', { default: false })
64
+ .number('maxContextSize', 'Max response size before summary fallback', { default: 50000 })
65
+ .required('keyword')
66
+ .readOnly()
67
+ .idempotent()
68
+ .build(),
69
+ tool('extract_function_tree')
70
+ .desc('Extract a function and its dependency tree from collected scripts')
71
+ .string('scriptId', 'Script identifier')
72
+ .string('functionName', 'Function name to extract')
73
+ .number('maxDepth', 'Maximum dependency traversal depth', { default: 3 })
74
+ .number('maxSize', 'Maximum output size in KB', { default: 500 })
75
+ .boolean('includeComments', 'Include comments in extracted source', { default: true })
76
+ .required('scriptId', 'functionName')
77
+ .build(),
78
+ withWebcrackOpts(tool('deobfuscate')
79
+ .desc('Run webcrack-powered JavaScript deobfuscation with bundle unpacking')
80
+ .string('code', 'Obfuscated JavaScript source')
81
+ .enum('llm', ['gpt-4', 'claude'], 'Preferred LLM for analysis', { default: 'gpt-4' })
82
+ .boolean('aggressive', 'Aggressive deobfuscation strategy', { default: false }))
83
+ .required('code')
84
+ .build(),
85
+ tool('understand_code')
86
+ .desc('Run semantic code analysis for structure, behavior, and risks')
87
+ .string('code', 'Source code to analyze')
88
+ .prop('context', { type: 'object', description: 'Additional contextual data' })
89
+ .enum('focus', ['structure', 'business', 'security', 'all'], 'Analysis focus', {
90
+ default: 'all',
91
+ })
92
+ .required('code')
93
+ .build(),
94
+ tool('detect_crypto')
95
+ .desc('Detect cryptographic algorithms and usage patterns in source code')
96
+ .string('code', 'Source code for crypto analysis')
97
+ .required('code')
98
+ .readOnly()
99
+ .idempotent()
100
+ .build(),
101
+ tool('manage_hooks')
102
+ .desc('Create, inspect, and clear JavaScript runtime hooks')
103
+ .enum('action', ['create', 'list', 'records', 'clear'], 'Hook management operation')
104
+ .string('target', 'Hook target identifier')
105
+ .enum('type', ['function', 'xhr', 'fetch', 'websocket', 'localstorage', 'cookie'], 'Hook target type')
106
+ .enum('hookAction', ['log', 'block', 'modify'], 'Hook behavior', { default: 'log' })
107
+ .string('customCode', 'Custom JavaScript hook payload')
108
+ .string('hookId', 'Hook identifier')
109
+ .required('action')
110
+ .openWorld()
111
+ .build(),
112
+ tool('detect_obfuscation')
113
+ .desc('Detect obfuscation techniques in JavaScript source')
114
+ .string('code', 'Source code to inspect')
115
+ .boolean('generateReport', 'Include human-readable report', { default: true })
116
+ .required('code')
117
+ .readOnly()
118
+ .idempotent()
119
+ .build(),
120
+ withWebcrackOpts(tool('advanced_deobfuscate')
121
+ .desc('Advanced deobfuscation with webcrack backend')
122
+ .string('code', 'Obfuscated JavaScript source')
123
+ .boolean('detectOnly', 'Detect only without transformation', { default: false })
124
+ .boolean('aggressiveVM', 'Aggressive VM deobfuscation', { default: false })
125
+ .boolean('useASTOptimization', 'Apply AST optimization after transformation', {
126
+ default: true,
127
+ })
128
+ .number('timeout', 'Operation timeout in ms', { default: 60000 }))
129
+ .required('code')
130
+ .build(),
131
+ withWebcrackOpts(tool('webcrack_unpack')
132
+ .desc('Run webcrack bundle unpacking and return extracted module graph')
133
+ .string('code', 'Bundled or obfuscated JavaScript source'))
134
+ .required('code')
135
+ .build(),
136
+ tool('clear_collected_data')
137
+ .desc('Clear collected script data, caches, and in-memory indexes')
138
+ .destructive()
139
+ .build(),
140
+ tool('get_collection_stats')
141
+ .desc('Get collection, cache, and compression statistics')
142
+ .readOnly()
143
+ .idempotent()
144
+ .build(),
145
+ tool('webpack_enumerate')
146
+ .desc('Enumerate webpack modules in current page and search for keywords')
147
+ .string('searchKeyword', 'Keyword to search across module exports')
148
+ .boolean('forceRequireAll', 'Force-require every module', { default: false })
149
+ .number('maxResults', 'Maximum matching modules', { default: 20 })
150
+ .openWorld()
151
+ .build(),
152
+ tool('source_map_extract')
153
+ .desc('Find and parse JavaScript source maps to recover original source code')
154
+ .boolean('includeContent', 'Include full source file content', { default: false })
155
+ .string('filterPath', 'Filter by path substring')
156
+ .number('maxFiles', 'Maximum source files', { default: 50 })
157
+ .readOnly()
158
+ .idempotent()
159
+ .build(),
660
160
  ];