@jshookmcp/jshook 0.2.2 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +15 -6
  3. package/README.zh.md +19 -4
  4. package/dist/native/scripts/linux/enum-windows.sh +12 -12
  5. package/dist/native/scripts/macos/enum-windows.applescript +22 -22
  6. package/dist/native/scripts/windows/enum-windows-by-class.ps1 +51 -51
  7. package/dist/native/scripts/windows/enum-windows.ps1 +44 -44
  8. package/dist/native/scripts/windows/inject-dll.ps1 +21 -21
  9. package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
  10. package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
  11. package/dist/packages/extension-sdk/src/plugin.js +119 -33
  12. package/dist/packages/extension-sdk/src/workflow.d.ts +156 -0
  13. package/dist/packages/extension-sdk/src/workflow.js +236 -0
  14. package/dist/src/config/search-defaults.js +161 -0
  15. package/dist/src/constants.d.ts +3 -0
  16. package/dist/src/constants.js +4 -1
  17. package/dist/src/index.d.ts +1 -1
  18. package/dist/src/index.js +13 -17
  19. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
  20. package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
  21. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
  22. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
  23. package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
  24. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
  25. package/dist/src/modules/analyzer/PatternDetector.js +3 -3
  26. package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
  27. package/dist/src/modules/browser/BrowserDiscovery.d.ts +6 -5
  28. package/dist/src/modules/browser/BrowserDiscovery.js +3 -3
  29. package/dist/src/modules/browser/BrowserModeManager.d.ts +1 -1
  30. package/dist/src/modules/browser/BrowserModeManager.js +11 -10
  31. package/dist/src/modules/browser/TabRegistry.js +2 -2
  32. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  33. package/dist/src/modules/browser/UnifiedBrowserManager.js +19 -4
  34. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +14 -23
  35. package/dist/src/modules/captcha/AICaptchaDetector.js +8 -202
  36. package/dist/src/modules/captcha/CaptchaDetector.d.ts +31 -17
  37. package/dist/src/modules/captcha/CaptchaDetector.js +1 -1
  38. package/dist/src/modules/collector/CodeCache.d.ts +2 -2
  39. package/dist/src/modules/collector/CodeCollector.d.ts +12 -9
  40. package/dist/src/modules/collector/CodeCollector.js +5 -6
  41. package/dist/src/modules/collector/DOMInspector.d.ts +3 -2
  42. package/dist/src/modules/collector/DOMInspector.js +49 -59
  43. package/dist/src/modules/collector/PageController.d.ts +17 -4
  44. package/dist/src/modules/collector/PageController.js +2 -5
  45. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  46. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  47. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  48. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  49. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  50. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  51. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +5 -3
  52. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  53. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  54. package/dist/src/modules/deobfuscator/Deobfuscator.js +4 -39
  55. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  56. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  57. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +2 -3
  58. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +5 -57
  59. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  60. package/dist/src/modules/deobfuscator/PackerDeobfuscator.js +1 -1
  61. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  62. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  63. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  64. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  65. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  66. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  67. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  68. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  69. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  70. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  71. package/dist/src/modules/external/ExternalToolRunner.d.ts +1 -1
  72. package/dist/src/modules/external/ExternalToolRunner.js +26 -23
  73. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  74. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  75. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  76. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  77. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  78. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  79. package/dist/src/modules/process/LinuxProcessManager.js +4 -2
  80. package/dist/src/modules/process/MacProcessManager.js +1 -1
  81. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  82. package/dist/src/modules/process/MemoryManager.js +2 -2
  83. package/dist/src/modules/process/ProcessManager.impl.js +1 -1
  84. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  85. package/dist/src/modules/process/memory/reader.js +35 -3
  86. package/dist/src/modules/process/memory/regions.enumerate.js +1 -1
  87. package/dist/src/modules/process/memory/regions.protection.js +42 -9
  88. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  89. package/dist/src/modules/process/memory/scanner.darwin.js +57 -0
  90. package/dist/src/modules/process/memory/scanner.js +88 -4
  91. package/dist/src/modules/process/memory/writer.js +44 -4
  92. package/dist/src/modules/security/ExecutionSandbox.js +7 -8
  93. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  94. package/dist/src/modules/stealth/StealthScripts.d.ts +4 -2
  95. package/dist/src/modules/stealth/StealthScripts.js +53 -14
  96. package/dist/src/modules/stealth/StealthVerifier.d.ts +1 -1
  97. package/dist/src/modules/stealth/StealthVerifier.js +2 -4
  98. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  99. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  100. package/dist/src/modules/trace/TraceDB.js +12 -6
  101. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  102. package/dist/src/native/AntiCheatDetector.js +67 -16
  103. package/dist/src/native/CodeInjector.js +4 -4
  104. package/dist/src/native/HardwareBreakpoint.js +25 -16
  105. package/dist/src/native/HeapAnalyzer.js +2 -2
  106. package/dist/src/native/MemoryController.js +1 -1
  107. package/dist/src/native/MemoryScanSession.js +2 -2
  108. package/dist/src/native/MemoryScanner.js +4 -8
  109. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  110. package/dist/src/native/PEAnalyzer.js +14 -15
  111. package/dist/src/native/PointerChainEngine.js +2 -4
  112. package/dist/src/native/ScriptLoader.js +4 -9
  113. package/dist/src/native/Speedhack.js +1 -1
  114. package/dist/src/native/StructureAnalyzer.js +52 -33
  115. package/dist/src/native/Win32API.d.ts +1 -0
  116. package/dist/src/native/Win32API.js +13 -0
  117. package/dist/src/native/Win32Debug.js +19 -19
  118. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  119. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  120. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  121. package/dist/src/server/MCPServer.context.d.ts +2 -1
  122. package/dist/src/server/MCPServer.d.ts +2 -1
  123. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  124. package/dist/src/server/MCPServer.domain.js +81 -16
  125. package/dist/src/server/MCPServer.js +42 -14
  126. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  127. package/dist/src/server/MCPServer.resources.js +91 -0
  128. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  129. package/dist/src/server/MCPServer.search.helpers.js +2 -2
  130. package/dist/src/server/MCPServer.tools.js +1 -1
  131. package/dist/src/server/MCPServer.transport.js +12 -0
  132. package/dist/src/server/ToolCallContextGuard.d.ts +5 -0
  133. package/dist/src/server/ToolCallContextGuard.js +85 -0
  134. package/dist/src/server/ToolRouter.d.ts +26 -10
  135. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  136. package/dist/src/server/ToolRouter.intent.js +77 -0
  137. package/dist/src/server/ToolRouter.js +103 -284
  138. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  139. package/dist/src/server/ToolRouter.policy.js +163 -0
  140. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  141. package/dist/src/server/ToolRouter.probe.js +103 -0
  142. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  143. package/dist/src/server/ToolRouter.renderer.js +52 -0
  144. package/dist/src/server/activation/ActivationController.js +15 -12
  145. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  146. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  147. package/dist/src/server/domains/analysis/definitions.js +155 -655
  148. package/dist/src/server/domains/analysis/handlers.impl.d.ts +8 -8
  149. package/dist/src/server/domains/analysis/handlers.impl.js +34 -28
  150. package/dist/src/server/domains/analysis/handlers.web-tools.js +4 -3
  151. package/dist/src/server/domains/analysis/manifest.js +6 -4
  152. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  153. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  154. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  155. package/dist/src/server/domains/browser/definitions.tools.page-core.js +157 -386
  156. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  157. package/dist/src/server/domains/browser/definitions.tools.runtime.js +61 -174
  158. package/dist/src/server/domains/browser/definitions.tools.security.js +92 -237
  159. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  160. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  161. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  162. package/dist/src/server/domains/browser/handlers/facade-initializer.d.ts +3 -3
  163. package/dist/src/server/domains/browser/handlers/facade-initializer.js +3 -3
  164. package/dist/src/server/domains/browser/handlers/framework-state.js +231 -3
  165. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  166. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  167. package/dist/src/server/domains/browser/handlers/stealth-injection.js +8 -2
  168. package/dist/src/server/domains/browser/handlers.impl.d.ts +15 -12
  169. package/dist/src/server/domains/browser/handlers.impl.js +5 -6
  170. package/dist/src/server/domains/browser/manifest.js +37 -13
  171. package/dist/src/server/domains/coordination/definitions.js +50 -149
  172. package/dist/src/server/domains/coordination/index.d.ts +20 -1
  173. package/dist/src/server/domains/coordination/index.js +133 -0
  174. package/dist/src/server/domains/coordination/manifest.js +15 -0
  175. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  176. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  177. package/dist/src/server/domains/debugger/manifest.js +9 -2
  178. package/dist/src/server/domains/encoding/definitions.js +43 -153
  179. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  180. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  181. package/dist/src/server/domains/evidence/definitions.js +42 -0
  182. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  183. package/dist/src/server/domains/evidence/handlers.js +60 -0
  184. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  185. package/dist/src/server/domains/evidence/index.js +2 -0
  186. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  187. package/dist/src/server/domains/evidence/manifest.js +78 -0
  188. package/dist/src/server/domains/graphql/definitions.js +53 -141
  189. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  190. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  191. package/dist/src/server/domains/hooks/ai-handlers.js +4 -70
  192. package/dist/src/server/domains/hooks/definitions.js +69 -335
  193. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  194. package/dist/src/server/domains/hooks/manifest.js +1 -2
  195. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  196. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  197. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  198. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  199. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  200. package/dist/src/server/domains/instrumentation/index.js +2 -0
  201. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  202. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  203. package/dist/src/server/domains/macro/definitions.js +16 -43
  204. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  205. package/dist/src/server/domains/maintenance/handlers.d.ts +2 -2
  206. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  207. package/dist/src/server/domains/maintenance/handlers.js +2 -2
  208. package/dist/src/server/domains/memory/definitions.js +387 -559
  209. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  210. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  211. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  212. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  213. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  214. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  215. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  216. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  217. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  218. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  219. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  220. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  221. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  222. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  223. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  224. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  225. package/dist/src/server/domains/memory/manifest.js +236 -64
  226. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  227. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  228. package/dist/src/server/domains/native-bridge/index.js +2 -1
  229. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  230. package/dist/src/server/domains/network/definitions.js +175 -578
  231. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  232. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  233. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  234. package/dist/src/server/domains/network/handlers.base.js +3 -878
  235. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  236. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  237. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  238. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  239. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  240. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  241. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  242. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  243. package/dist/src/server/domains/network/manifest.js +15 -0
  244. package/dist/src/server/domains/network/replay.js +1 -4
  245. package/dist/src/server/domains/platform/definitions.js +121 -112
  246. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +5 -1
  247. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +194 -5
  248. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  249. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  250. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  251. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  252. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  253. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  254. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  255. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  256. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  257. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  258. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  259. package/dist/src/server/domains/platform/handlers/miniapp-handlers.d.ts +1 -1
  260. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +4 -4
  261. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  262. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  263. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  264. package/dist/src/server/domains/platform/handlers.js +29 -0
  265. package/dist/src/server/domains/platform/manifest.js +38 -0
  266. package/dist/src/server/domains/process/definitions.js +163 -647
  267. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  268. package/dist/src/server/domains/process/handlers.base.js +7 -462
  269. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  270. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  271. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  272. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  273. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +19 -17
  274. package/dist/src/server/domains/process/manifest.js +6 -1
  275. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  276. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  277. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  278. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  279. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  280. package/dist/src/server/domains/shared/modules.js +0 -1
  281. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  282. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  283. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  284. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  285. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  286. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  287. package/dist/src/server/domains/streaming/definitions.js +36 -148
  288. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  289. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  290. package/dist/src/server/domains/trace/TraceSummarizer.d.ts +60 -0
  291. package/dist/src/server/domains/trace/TraceSummarizer.js +112 -0
  292. package/dist/src/server/domains/trace/definitions.tools.js +51 -176
  293. package/dist/src/server/domains/trace/handlers.d.ts +2 -1
  294. package/dist/src/server/domains/trace/handlers.js +62 -9
  295. package/dist/src/server/domains/trace/index.d.ts +2 -1
  296. package/dist/src/server/domains/trace/index.js +2 -1
  297. package/dist/src/server/domains/trace/manifest.js +18 -4
  298. package/dist/src/server/domains/transform/definitions.js +50 -210
  299. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +6 -6
  300. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  301. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  302. package/dist/src/server/domains/transform/manifest.js +1 -1
  303. package/dist/src/server/domains/wasm/definitions.js +55 -232
  304. package/dist/src/server/domains/wasm/handlers.js +3 -3
  305. package/dist/src/server/domains/workflow/definitions.js +144 -414
  306. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +2 -2
  307. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  308. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  309. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  310. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  311. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  312. package/dist/src/server/evidence/index.d.ts +2 -0
  313. package/dist/src/server/evidence/index.js +1 -0
  314. package/dist/src/server/evidence/types.d.ts +22 -0
  315. package/dist/src/server/evidence/types.js +1 -0
  316. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  317. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  318. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  319. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  320. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  321. package/dist/src/server/extensions/ExtensionManager.roots.js +19 -9
  322. package/dist/src/server/extensions/plugin-config.js +1 -1
  323. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  324. package/dist/src/server/extensions/plugin-env.js +10 -4
  325. package/dist/src/server/extensions/types.d.ts +17 -0
  326. package/dist/src/server/extensions/types.js +1 -1
  327. package/dist/src/server/http/HttpMiddleware.js +1 -1
  328. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  329. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  330. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  331. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  332. package/dist/src/server/instrumentation/index.d.ts +2 -0
  333. package/dist/src/server/instrumentation/index.js +2 -0
  334. package/dist/src/server/instrumentation/types.d.ts +62 -0
  335. package/dist/src/server/instrumentation/types.js +7 -0
  336. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  337. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  338. package/dist/src/server/macros/MacroRunner.js +6 -2
  339. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  340. package/dist/src/server/macros/builtins/index.js +51 -7
  341. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  342. package/dist/src/server/registry/contracts.d.ts +7 -1
  343. package/dist/src/server/registry/discovery.js +5 -4
  344. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  345. package/dist/src/server/registry/index.js +4 -4
  346. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  347. package/dist/src/server/registry/tool-builder.js +105 -0
  348. package/dist/src/server/sandbox/MCPBridge.d.ts +9 -0
  349. package/dist/src/server/sandbox/MCPBridge.js +22 -0
  350. package/dist/src/server/sandbox/QuickJSSandbox.d.ts +4 -1
  351. package/dist/src/server/sandbox/QuickJSSandbox.js +162 -2
  352. package/dist/src/server/sandbox/types.d.ts +13 -0
  353. package/dist/src/server/search/AffinityGraph.d.ts +7 -1
  354. package/dist/src/server/search/AffinityGraph.js +24 -3
  355. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  356. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  357. package/dist/src/server/search/FeedbackTracker.js +26 -0
  358. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  359. package/dist/src/server/search/QueryNormalizer.js +94 -0
  360. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  361. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  362. package/dist/src/server/workflows/WorkflowContract.d.ts +24 -0
  363. package/dist/src/server/workflows/WorkflowContract.js +12 -0
  364. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  365. package/dist/src/server/workflows/WorkflowEngine.js +136 -3
  366. package/dist/src/types/config.d.ts +0 -14
  367. package/dist/src/types/deobfuscator.d.ts +0 -1
  368. package/dist/src/types/index.d.ts +1 -1
  369. package/dist/src/utils/DetailedDataManager.js +2 -0
  370. package/dist/src/utils/RingBuffer.js +5 -5
  371. package/dist/src/utils/TokenBudgetManager.js +1 -1
  372. package/dist/src/utils/UnifiedCacheManager.d.ts +1 -1
  373. package/dist/src/utils/UnifiedCacheManager.js +3 -3
  374. package/dist/src/utils/artifactRetention.js +2 -2
  375. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  376. package/dist/src/utils/betterSqlite3.js +88 -0
  377. package/dist/src/utils/browserExecutable.js +2 -2
  378. package/dist/src/utils/cliFastPath.js +17 -6
  379. package/dist/src/utils/config.js +4 -26
  380. package/dist/src/utils/environmentDoctor.js +138 -11
  381. package/dist/src/utils/outputPaths.js +16 -9
  382. package/dist/src/utils/parallel.js +1 -3
  383. package/package.json +76 -72
  384. package/scripts/postinstall.cjs +37 -37
  385. package/src/native/scripts/linux/enum-windows.sh +12 -12
  386. package/src/native/scripts/macos/enum-windows.applescript +22 -22
  387. package/src/native/scripts/windows/enum-windows-by-class.ps1 +51 -51
  388. package/src/native/scripts/windows/enum-windows.ps1 +44 -44
  389. package/src/native/scripts/windows/inject-dll.ps1 +21 -21
  390. package/workflows/.gitkeep +0 -0
  391. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  392. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  393. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  394. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  395. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  396. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  397. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  398. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  399. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  400. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  401. package/dist/src/services/LLMService.d.ts +0 -37
  402. package/dist/src/services/LLMService.js +0 -233
  403. package/dist/src/services/prompts/analysis.d.ts +0 -9
  404. package/dist/src/services/prompts/analysis.js +0 -158
  405. package/dist/src/services/prompts/crypto.d.ts +0 -2
  406. package/dist/src/services/prompts/crypto.js +0 -108
  407. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  408. package/dist/src/services/prompts/deobfuscation.js +0 -300
  409. package/dist/src/services/prompts/environment.d.ts +0 -16
  410. package/dist/src/services/prompts/environment.js +0 -372
  411. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  412. package/dist/src/services/prompts/intelligence.js +0 -250
  413. package/dist/src/services/prompts/taint.d.ts +0 -2
  414. package/dist/src/services/prompts/taint.js +0 -54
@@ -1,360 +0,0 @@
1
- import { logger } from '../../utils/logger.js';
2
- import { generatePropertyHookTemplate, generateEventHookTemplate, } from '../hook/AIHookGeneratorTemplates.js';
3
- export class AIHookGenerator {
4
- hookCounter = 0;
5
- generateHook(request) {
6
- logger.info(` AI Hook Generator: ${request.description}`);
7
- const hookId = `ai-hook-${++this.hookCounter}-${Date.now()}`;
8
- const warnings = [];
9
- try {
10
- let generatedCode = '';
11
- let explanation = '';
12
- let injectionMethod = 'evaluateOnNewDocument';
13
- switch (request.target.type) {
14
- case 'function':
15
- ({ code: generatedCode, explanation } = this.generateFunctionHook(request, hookId));
16
- break;
17
- case 'object-method':
18
- ({ code: generatedCode, explanation } = this.generateObjectMethodHook(request, hookId));
19
- break;
20
- case 'api':
21
- ({ code: generatedCode, explanation } = this.generateAPIHook(request, hookId));
22
- injectionMethod = 'evaluateOnNewDocument';
23
- break;
24
- case 'property':
25
- ({ code: generatedCode, explanation } = this.generatePropertyHook(request, hookId));
26
- break;
27
- case 'event':
28
- ({ code: generatedCode, explanation } = this.generateEventHook(request, hookId));
29
- injectionMethod = 'evaluate';
30
- break;
31
- case 'custom':
32
- ({ code: generatedCode, explanation } = this.generateCustomHook(request, hookId));
33
- break;
34
- default:
35
- throw new Error(`Unsupported target type: ${request.target.type}`);
36
- }
37
- generatedCode = this.wrapWithGlobalStorage(generatedCode, hookId);
38
- this.validateGeneratedCode(generatedCode, warnings);
39
- logger.success(` Hook generated: ${hookId}`);
40
- return {
41
- success: true,
42
- hookId,
43
- generatedCode,
44
- explanation,
45
- injectionMethod,
46
- warnings: warnings.length > 0 ? warnings : undefined,
47
- };
48
- }
49
- catch (error) {
50
- logger.error('Failed to generate hook', error);
51
- return {
52
- success: false,
53
- hookId,
54
- generatedCode: '',
55
- explanation: `Error: ${error instanceof Error ? error.message : String(error)}`,
56
- injectionMethod: 'evaluateOnNewDocument',
57
- warnings: ['Hook generation failed'],
58
- };
59
- }
60
- }
61
- generateFunctionHook(request, hookId) {
62
- const { target, behavior, condition, customCode } = request;
63
- const functionName = target.name || target.pattern || 'unknownFunction';
64
- const code = `
65
- (function() {
66
- const originalFunction = window.${functionName};
67
-
68
- if (typeof originalFunction !== 'function') {
69
- console.warn('[${hookId}] Function not found: ${functionName}');
70
- return;
71
- }
72
-
73
- let callCount = 0;
74
- const maxCalls = ${condition?.maxCalls || 'Infinity'};
75
-
76
- window.${functionName} = function(...args) {
77
- callCount++;
78
-
79
- if (callCount > maxCalls) {
80
- return originalFunction.apply(this, args);
81
- }
82
-
83
- const hookData = {
84
- hookId: '${hookId}',
85
- functionName: '${functionName}',
86
- callCount,
87
- timestamp: Date.now(),
88
- ${behavior.captureArgs ? 'args: args,' : ''}
89
- ${behavior.captureStack ? 'stack: new Error().stack,' : ''}
90
- };
91
-
92
- ${customCode?.before || ''}
93
-
94
- ${condition?.argFilter
95
- ? `
96
- const argFilterPassed = (function() {
97
- try {
98
- return ${condition.argFilter};
99
- } catch (e) {
100
- console.error('[${hookId}] Arg filter error:', e);
101
- return true;
102
- }
103
- })();
104
-
105
- if (!argFilterPassed) {
106
- return originalFunction.apply(this, args);
107
- }
108
- `
109
- : ''}
110
-
111
- ${behavior.logToConsole
112
- ? `
113
- console.log('[${hookId}] Function called:', hookData);
114
- `
115
- : ''}
116
-
117
- ${behavior.blockExecution
118
- ? `
119
- console.warn('[${hookId}] Execution blocked');
120
- return undefined;
121
- `
122
- : `
123
- const startTime = performance.now();
124
- const result = originalFunction.apply(this, args);
125
- const executionTime = performance.now() - startTime;
126
-
127
- ${behavior.captureReturn
128
- ? `
129
- hookData.returnValue = result;
130
- hookData.executionTime = executionTime;
131
- `
132
- : ''}
133
-
134
- ${customCode?.after || ''}
135
-
136
- if (!window.__aiHooks) window.__aiHooks = {};
137
- if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
138
- window.__aiHooks['${hookId}'].push(hookData);
139
-
140
- return result;
141
- `}
142
- };
143
-
144
- console.log('[${hookId}] Hook installed for: ${functionName}');
145
- })();
146
- `;
147
- const explanation = `
148
- Hook: ${functionName}
149
- - : ${behavior.captureArgs ? '' : ''}
150
- - : ${behavior.captureReturn ? '' : ''}
151
- - : ${behavior.captureStack ? '' : ''}
152
- - : ${behavior.blockExecution ? '' : ''}
153
- ${condition?.maxCalls ? `- : ${condition.maxCalls}` : ''}
154
- `;
155
- return { code, explanation };
156
- }
157
- generateObjectMethodHook(request, hookId) {
158
- const { target, behavior } = request;
159
- const objectPath = target.object || 'window';
160
- const methodName = target.property || target.name || 'unknownMethod';
161
- const code = `
162
- (function() {
163
- const targetObject = ${objectPath};
164
- const methodName = '${methodName}';
165
-
166
- if (!targetObject || typeof targetObject[methodName] !== 'function') {
167
- console.warn('[${hookId}] Method not found: ${objectPath}.${methodName}');
168
- return;
169
- }
170
-
171
- const originalMethod = targetObject[methodName];
172
- let callCount = 0;
173
-
174
- targetObject[methodName] = function(...args) {
175
- callCount++;
176
-
177
- const hookData = {
178
- hookId: '${hookId}',
179
- object: '${objectPath}',
180
- method: '${methodName}',
181
- callCount,
182
- timestamp: Date.now(),
183
- ${behavior.captureArgs ? 'args: args,' : ''}
184
- ${behavior.captureStack ? 'stack: new Error().stack,' : ''}
185
- };
186
-
187
- ${behavior.logToConsole
188
- ? `
189
- console.log('[${hookId}] Method called:', hookData);
190
- `
191
- : ''}
192
-
193
- const result = originalMethod.apply(this, args);
194
-
195
- ${behavior.captureReturn
196
- ? `
197
- hookData.returnValue = result;
198
- `
199
- : ''}
200
-
201
- if (!window.__aiHooks) window.__aiHooks = {};
202
- if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
203
- window.__aiHooks['${hookId}'].push(hookData);
204
-
205
- return result;
206
- };
207
-
208
- console.log('[${hookId}] Hook installed for: ${objectPath}.${methodName}');
209
- })();
210
- `;
211
- const explanation = `Hook: ${objectPath}.${methodName}`;
212
- return { code, explanation };
213
- }
214
- generateAPIHook(request, hookId) {
215
- const apiName = request.target.name || 'fetch';
216
- let code = '';
217
- if (apiName === 'fetch') {
218
- code = this.generateFetchAPIHook(request, hookId);
219
- }
220
- else if (apiName === 'XMLHttpRequest') {
221
- code = this.generateXHRAPIHook(request, hookId);
222
- }
223
- else {
224
- code = `console.error('[${hookId}] Unsupported API: ${apiName}');`;
225
- }
226
- const explanation = `HookAPI: ${apiName}`;
227
- return { code, explanation };
228
- }
229
- generateFetchAPIHook(request, hookId) {
230
- const { behavior, condition } = request;
231
- return `
232
- (function() {
233
- const originalFetch = window.fetch;
234
-
235
- window.fetch = function(...args) {
236
- const [url, options] = args;
237
-
238
- ${condition?.urlPattern
239
- ? `
240
- const urlPattern = new RegExp('${condition.urlPattern}');
241
- if (!urlPattern.test(url)) {
242
- return originalFetch.apply(this, args);
243
- }
244
- `
245
- : ''}
246
-
247
- const hookData = {
248
- hookId: '${hookId}',
249
- type: 'fetch',
250
- url: url,
251
- method: options?.method || 'GET',
252
- timestamp: Date.now(),
253
- ${behavior.captureArgs ? 'options: options,' : ''}
254
- };
255
-
256
- ${behavior.logToConsole
257
- ? `
258
- console.log('[${hookId}] Fetch request:', hookData);
259
- `
260
- : ''}
261
-
262
- return originalFetch.apply(this, args).then(response => {
263
- ${behavior.captureReturn
264
- ? `
265
- hookData.status = response.status;
266
- hookData.statusText = response.statusText;
267
- `
268
- : ''}
269
-
270
- if (!window.__aiHooks) window.__aiHooks = {};
271
- if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
272
- window.__aiHooks['${hookId}'].push(hookData);
273
-
274
- return response;
275
- });
276
- };
277
-
278
- console.log('[${hookId}] Fetch Hook installed');
279
- })();
280
- `;
281
- }
282
- generateXHRAPIHook(_request, hookId) {
283
- return `
284
- (function() {
285
- const originalOpen = XMLHttpRequest.prototype.open;
286
- const originalSend = XMLHttpRequest.prototype.send;
287
-
288
- XMLHttpRequest.prototype.open = function(method, url, ...rest) {
289
- this.__hookData = {
290
- hookId: '${hookId}',
291
- type: 'xhr',
292
- method,
293
- url,
294
- timestamp: Date.now(),
295
- };
296
- return originalOpen.apply(this, [method, url, ...rest]);
297
- };
298
-
299
- XMLHttpRequest.prototype.send = function(...args) {
300
- const xhr = this;
301
-
302
- xhr.addEventListener('load', function() {
303
- if (xhr.__hookData) {
304
- xhr.__hookData.status = xhr.status;
305
- xhr.__hookData.response = xhr.responseText;
306
-
307
- if (!window.__aiHooks) window.__aiHooks = {};
308
- if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
309
- window.__aiHooks['${hookId}'].push(xhr.__hookData);
310
- }
311
- });
312
-
313
- return originalSend.apply(this, args);
314
- };
315
-
316
- console.log('[${hookId}] XHR Hook installed');
317
- })();
318
- `;
319
- }
320
- generatePropertyHook(request, hookId) {
321
- return generatePropertyHookTemplate(request, hookId);
322
- }
323
- generateEventHook(request, hookId) {
324
- return generateEventHookTemplate(request, hookId);
325
- }
326
- generateCustomHook(request, _hookId) {
327
- const code = request.customCode?.replace || ``;
328
- const explanation = 'Custom Hook code provided by user';
329
- return { code, explanation };
330
- }
331
- wrapWithGlobalStorage(code, hookId) {
332
- return `
333
- // Initialize __aiHooks and __aiHookMetadata independently to avoid race conditions
334
- if (typeof window.__aiHooks === 'undefined') {
335
- window.__aiHooks = {};
336
- }
337
- if (typeof window.__aiHookMetadata === 'undefined') {
338
- window.__aiHookMetadata = {};
339
- }
340
-
341
- window.__aiHookMetadata['${hookId}'] = {
342
- id: '${hookId}',
343
- createdAt: Date.now(),
344
- enabled: true,
345
- };
346
-
347
- ${code}
348
- `;
349
- }
350
- validateGeneratedCode(code, warnings) {
351
- if (code.includes('eval(') || code.includes('Function(')) {
352
- warnings.push('Generated code contains eval() or Function(), which may be dangerous');
353
- }
354
- const openBraces = (code.match(/{/g) || []).length;
355
- const closeBraces = (code.match(/}/g) || []).length;
356
- if (openBraces !== closeBraces) {
357
- warnings.push('Possible syntax error: unmatched braces');
358
- }
359
- }
360
- }
@@ -1,9 +0,0 @@
1
- import type { AIHookRequest } from '../hook/AIHookGenerator.js';
2
- export declare function generatePropertyHookTemplate(request: AIHookRequest, hookId: string): {
3
- code: string;
4
- explanation: string;
5
- };
6
- export declare function generateEventHookTemplate(request: AIHookRequest, hookId: string): {
7
- code: string;
8
- explanation: string;
9
- };
@@ -1,157 +0,0 @@
1
- export function generatePropertyHookTemplate(request, hookId) {
2
- const { target, behavior, condition } = request;
3
- const objectPath = target.object || 'window';
4
- const propertyName = target.property || target.name || 'unknownProperty';
5
- const code = `
6
- (function() {
7
- const targetObject = ${objectPath};
8
- const propName = '${propertyName}';
9
-
10
- if (!targetObject) {
11
- console.warn('[${hookId}] Object not found: ${objectPath}');
12
- return;
13
- }
14
-
15
- const descriptor = Object.getOwnPropertyDescriptor(targetObject, propName)
16
- || (Object.getPrototypeOf(targetObject)
17
- ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(targetObject), propName)
18
- : undefined);
19
-
20
- let currentValue = descriptor ? descriptor.value : targetObject[propName];
21
- const originalGet = descriptor && descriptor.get ? descriptor.get : null;
22
- const originalSet = descriptor && descriptor.set ? descriptor.set : null;
23
- let callCount = 0;
24
-
25
- Object.defineProperty(targetObject, propName, {
26
- configurable: true,
27
- enumerable: true,
28
- get() {
29
- callCount++;
30
- const value = originalGet ? originalGet.call(this) : currentValue;
31
-
32
- const hookData = {
33
- hookId: '${hookId}',
34
- type: 'property-get',
35
- object: '${objectPath}',
36
- property: propName,
37
- callCount,
38
- timestamp: Date.now(),
39
- ${behavior.captureReturn ? 'value: value,' : ''}
40
- ${behavior.captureStack ? 'stack: new Error().stack,' : ''}
41
- };
42
-
43
- ${behavior.logToConsole ? `console.log('[${hookId}] Property get:', hookData);` : ''}
44
-
45
- if (!window.__aiHooks) window.__aiHooks = {};
46
- if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
47
- window.__aiHooks['${hookId}'].push(hookData);
48
-
49
- return value;
50
- },
51
- set(newValue) {
52
- callCount++;
53
-
54
- ${condition?.argFilter
55
- ? `
56
- const args = [newValue];
57
- const argFilterPassed = (function() {
58
- try { return ${condition.argFilter}; } catch(e) { return true; }
59
- })();
60
- if (!argFilterPassed) {
61
- if (originalSet) originalSet.call(this, newValue); else currentValue = newValue;
62
- return;
63
- }
64
- `
65
- : ''}
66
-
67
- const hookData = {
68
- hookId: '${hookId}',
69
- type: 'property-set',
70
- object: '${objectPath}',
71
- property: propName,
72
- callCount,
73
- timestamp: Date.now(),
74
- ${behavior.captureArgs ? 'newValue: newValue,' : ''}
75
- ${behavior.captureStack ? 'stack: new Error().stack,' : ''}
76
- };
77
-
78
- ${behavior.logToConsole ? `console.log('[${hookId}] Property set:', hookData);` : ''}
79
-
80
- if (!window.__aiHooks) window.__aiHooks = {};
81
- if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
82
- window.__aiHooks['${hookId}'].push(hookData);
83
-
84
- if (!${behavior.blockExecution ? 'true' : 'false'}) {
85
- if (originalSet) originalSet.call(this, newValue); else currentValue = newValue;
86
- }
87
- },
88
- });
89
-
90
- console.log('[${hookId}] Property hook installed for: ${objectPath}.${propertyName}');
91
- })();
92
- `;
93
- const explanation = `Property hook: ${objectPath}.${propertyName} (get + set intercepted via Object.defineProperty)`;
94
- return { code, explanation };
95
- }
96
- export function generateEventHookTemplate(request, hookId) {
97
- const { target, behavior, condition } = request;
98
- const eventType = target.name || target.property || '';
99
- const maxCalls = condition?.maxCalls || 'Infinity';
100
- const code = `
101
- (function() {
102
- const originalAddEventListener = EventTarget.prototype.addEventListener;
103
- let callCount = 0;
104
-
105
- EventTarget.prototype.addEventListener = function(type, listener, options) {
106
- ${eventType
107
- ? `if (type !== '${eventType}') {
108
- return originalAddEventListener.call(this, type, listener, options);
109
- }`
110
- : ''}
111
-
112
- const wrappedListener = function(event) {
113
- callCount++;
114
- const maxCalls = ${maxCalls};
115
-
116
- if (callCount <= maxCalls) {
117
- const hookData = {
118
- hookId: '${hookId}',
119
- type: 'event',
120
- eventType: type,
121
- callCount,
122
- timestamp: Date.now(),
123
- ${behavior.captureArgs
124
- ? `event: {
125
- type: event.type,
126
- target: event.target ? (event.target.tagName || String(event.target)) : null,
127
- detail: event.detail != null ? event.detail : null,
128
- },`
129
- : ''}
130
- ${behavior.captureStack ? 'stack: new Error().stack,' : ''}
131
- };
132
-
133
- ${behavior.logToConsole ? `console.log('[${hookId}] Event fired:', hookData);` : ''}
134
-
135
- if (!window.__aiHooks) window.__aiHooks = {};
136
- if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
137
- window.__aiHooks['${hookId}'].push(hookData);
138
- }
139
-
140
- ${behavior.blockExecution
141
- ? `// Execution blocked`
142
- : `if (typeof listener === 'function') {
143
- listener.call(this, event);
144
- } else if (listener && typeof listener.handleEvent === 'function') {
145
- listener.handleEvent(event);
146
- }`}
147
- };
148
-
149
- return originalAddEventListener.call(this, type, wrappedListener, options);
150
- };
151
-
152
- console.log('[${hookId}] Event hook installed for: ${eventType || 'all events'}');
153
- })();
154
- `;
155
- const explanation = `Event hook: ${eventType ? `"${eventType}" events` : 'all events'} via EventTarget.prototype.addEventListener override`;
156
- return { code, explanation };
157
- }
@@ -1,2 +0,0 @@
1
- import type { MacroDefinition } from '../../macros/types.js';
2
- export declare const deobfuscateAstFlow: MacroDefinition;
@@ -1,25 +0,0 @@
1
- export const deobfuscateAstFlow = {
2
- id: 'deobfuscate_ast_flow',
3
- displayName: 'Deobfuscate AST Flow',
4
- description: 'Chain: deobfuscate → advanced deobfuscation → extract function tree',
5
- tags: ['analysis', 'deobfuscation', 'ast'],
6
- timeoutMs: 60_000,
7
- steps: [
8
- {
9
- id: 'deobfuscate',
10
- toolName: 'deobfuscate',
11
- input: {},
12
- },
13
- {
14
- id: 'advanced_deobfuscate',
15
- toolName: 'advanced_deobfuscate',
16
- inputFrom: { code: 'deobfuscate.code' },
17
- optional: true,
18
- },
19
- {
20
- id: 'extract_functions',
21
- toolName: 'extract_function_tree',
22
- inputFrom: { code: 'deobfuscate.code' },
23
- },
24
- ],
25
- };
@@ -1,2 +0,0 @@
1
- import type { MacroDefinition } from '../../macros/types.js';
2
- export declare const unpackerFlow: MacroDefinition;
@@ -1,25 +0,0 @@
1
- export const unpackerFlow = {
2
- id: 'unpacker_flow',
3
- displayName: 'Unpacker Flow',
4
- description: 'Detect packer type → extract inner code → deobfuscate → beautify output',
5
- tags: ['analysis', 'unpacking', 'deobfuscation'],
6
- timeoutMs: 90_000,
7
- steps: [
8
- {
9
- id: 'detect_and_unpack',
10
- toolName: 'deobfuscate',
11
- input: { unpack: true },
12
- },
13
- {
14
- id: 'deep_deobfuscate',
15
- toolName: 'advanced_deobfuscate',
16
- inputFrom: { code: 'detect_and_unpack.code' },
17
- optional: true,
18
- },
19
- {
20
- id: 'beautify',
21
- toolName: 'ast_transform_beautify',
22
- inputFrom: { code: 'detect_and_unpack.code' },
23
- },
24
- ],
25
- };
@@ -1,37 +0,0 @@
1
- import type { LLMConfig } from '../types/index.js';
2
- export interface LLMMessage {
3
- role: 'system' | 'user' | 'assistant';
4
- content: string;
5
- }
6
- export interface LLMResponse {
7
- content: string;
8
- usage?: {
9
- promptTokens: number;
10
- completionTokens: number;
11
- totalTokens: number;
12
- };
13
- }
14
- export interface RetryOptions {
15
- maxRetries?: number;
16
- initialDelay?: number;
17
- maxDelay?: number;
18
- backoffMultiplier?: number;
19
- }
20
- export declare class LLMService {
21
- private config;
22
- private openai?;
23
- private anthropic?;
24
- private hasLoggedVisionModelWarning;
25
- private retryOptions;
26
- constructor(config: LLMConfig, retryOptions?: RetryOptions);
27
- private initClients;
28
- chat(messages: LLMMessage[], options?: {
29
- temperature?: number;
30
- maxTokens?: number;
31
- }): Promise<LLMResponse>;
32
- analyzeImage(imageInput: string, prompt: string, isFilePath?: boolean): Promise<string>;
33
- private withRetry;
34
- private shouldRetry;
35
- private chatOpenAI;
36
- private chatAnthropic;
37
- }