@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
@@ -224,7 +224,11 @@ export class FrameworkStateHandlers {
224
224
  return null;
225
225
  states.push({
226
226
  component: 'SolidRoot',
227
- state: [{ _note: 'Solid detected via hydration markers; install solid-devtools for full state extraction' }],
227
+ state: [
228
+ {
229
+ _note: 'Solid detected via hydration markers; install solid-devtools for full state extraction',
230
+ },
231
+ ],
228
232
  });
229
233
  return states;
230
234
  }
@@ -287,7 +291,9 @@ export class FrameworkStateHandlers {
287
291
  }
288
292
  const typeName = vnode['type'];
289
293
  const name = typeof typeName === 'function'
290
- ? typeName['displayName'] ?? typeName['name'] ?? 'PreactComponent'
294
+ ? (typeName['displayName'] ??
295
+ typeName['name'] ??
296
+ 'PreactComponent')
291
297
  : typeof typeName === 'string'
292
298
  ? typeName
293
299
  : 'PreactComponent';
@@ -362,25 +368,37 @@ export class FrameworkStateHandlers {
362
368
  const rootEl = getRootEl();
363
369
  const rootObj = rootEl;
364
370
  const keys = Object.keys(rootObj);
371
+ const hasReactMarker = keys.some((k) => k.startsWith('__reactFiber') ||
372
+ k.startsWith('__reactInternalInstance') ||
373
+ k.startsWith('__reactFiberContainer'));
374
+ const hasVue3Marker = keys.some((k) => k === '__vueParentComponent' || k === '__vue_app__');
375
+ const hasVue2Marker = keys.some((k) => k === '__vue__');
376
+ const hasSvelteMarker = keys.some((k) => k === '$$' || k === '__svelte_meta' || k.startsWith('__s'));
377
+ const hasSolidMarker = win['_$DX'] !== undefined ||
378
+ win['_$HY'] !== undefined ||
379
+ Boolean(document.querySelector('[data-hk]'));
380
+ const hasPreactMarker = keys.some((k) => k === '__k' || k === '__e' || k === '_dom' || k === '_children');
365
381
  let detectedFramework = opts.framework;
382
+ if (detectedFramework === 'preact' && hasReactMarker) {
383
+ detectedFramework = 'react';
384
+ }
366
385
  if (detectedFramework === 'auto') {
367
- if (keys.some((k) => k.startsWith('__reactFiber') || k.startsWith('__reactInternalInstance'))) {
386
+ if (hasReactMarker) {
368
387
  detectedFramework = 'react';
369
388
  }
370
- else if (keys.some((k) => k === '__vueParentComponent' || k === '__vue_app__')) {
389
+ else if (hasVue3Marker) {
371
390
  detectedFramework = 'vue3';
372
391
  }
373
- else if (keys.some((k) => k === '__vue__')) {
392
+ else if (hasVue2Marker) {
374
393
  detectedFramework = 'vue2';
375
394
  }
376
- else if (keys.some((k) => k === '$$' || k === '__svelte_meta' || k.startsWith('__s'))) {
395
+ else if (hasSvelteMarker) {
377
396
  detectedFramework = 'svelte';
378
397
  }
379
- else if (win['_$DX'] || win['_$HY'] || document.querySelector('[data-hk]')) {
398
+ else if (hasSolidMarker) {
380
399
  detectedFramework = 'solid';
381
400
  }
382
- else if (!keys.some((k) => k.startsWith('__reactFiber')) &&
383
- keys.some((k) => k === '__k' || k === '__e' || k === '_dom')) {
401
+ else if (hasPreactMarker) {
384
402
  detectedFramework = 'preact';
385
403
  }
386
404
  }
@@ -13,33 +13,24 @@ export class IndexedDBDumpHandlers {
13
13
  const result = await page.evaluate(async (opts) => {
14
14
  const dbList = await indexedDB.databases();
15
15
  const output = {};
16
- const openDb = (name, version) => new Promise((resolve, reject) => {
17
- const req = version ? indexedDB.open(name, version) : indexedDB.open(name);
18
- req.onsuccess = () => resolve(req.result);
19
- req.onerror = () => reject(req.error);
20
- });
21
- const getAllFromStore = (db, storeName, max) => new Promise((resolve, reject) => {
22
- try {
23
- const tx = db.transaction(storeName, 'readonly');
24
- const req = tx.objectStore(storeName).getAll();
25
- req.onsuccess = () => resolve(req.result.slice(0, max));
26
- req.onerror = () => reject(req.error);
27
- }
28
- catch (e) {
29
- reject(e);
30
- }
31
- });
32
16
  for (const dbInfo of dbList) {
33
17
  if (!dbInfo.name)
34
18
  continue;
35
19
  if (opts.database && dbInfo.name !== opts.database)
36
20
  continue;
21
+ const dbName = dbInfo.name;
37
22
  let db;
38
23
  try {
39
- db = await openDb(dbInfo.name, dbInfo.version);
24
+ db = await new Promise((resolve, reject) => {
25
+ const req = dbInfo.version
26
+ ? indexedDB.open(dbName, dbInfo.version)
27
+ : indexedDB.open(dbName);
28
+ req.addEventListener('success', () => resolve(req.result), { once: true });
29
+ req.addEventListener('error', () => reject(req.error), { once: true });
30
+ });
40
31
  }
41
32
  catch {
42
- output[dbInfo.name] = { __error__: ['failed to open'] };
33
+ output[dbName] = { __error__: ['failed to open'] };
43
34
  continue;
44
35
  }
45
36
  const storeNames = Array.from(db.objectStoreNames);
@@ -48,14 +39,24 @@ export class IndexedDBDumpHandlers {
48
39
  if (opts.store && storeName !== opts.store)
49
40
  continue;
50
41
  try {
51
- dbData[storeName] = await getAllFromStore(db, storeName, opts.maxRecords);
42
+ dbData[storeName] = await new Promise((resolve, reject) => {
43
+ try {
44
+ const tx = db.transaction(storeName, 'readonly');
45
+ const req = tx.objectStore(storeName).getAll();
46
+ req.addEventListener('success', () => resolve(req.result.slice(0, opts.maxRecords)), { once: true });
47
+ req.addEventListener('error', () => reject(req.error), { once: true });
48
+ }
49
+ catch (e) {
50
+ reject(e);
51
+ }
52
+ });
52
53
  }
53
54
  catch {
54
55
  dbData[storeName] = ['__error reading store__'];
55
56
  }
56
57
  }
57
58
  db.close();
58
- output[dbInfo.name] = dbData;
59
+ output[dbName] = dbData;
59
60
  }
60
61
  return output;
61
62
  }, { database, store, maxRecords });
@@ -24,7 +24,7 @@ export class ScriptManagementHandlers {
24
24
  async handleGetScriptSource(args) {
25
25
  const scriptId = argString(args, 'scriptId');
26
26
  const url = argString(args, 'url');
27
- const preview = argBool(args, 'preview', false);
27
+ const preview = argBool(args, 'preview', true);
28
28
  const maxLines = argNumber(args, 'maxLines', 100);
29
29
  const startLine = argNumber(args, 'startLine');
30
30
  const endLine = argNumber(args, 'endLine');
@@ -5,6 +5,7 @@ interface StealthInjectionHandlersDeps {
5
5
  pageController: PageController;
6
6
  getActiveDriver: () => 'chrome' | 'camoufox';
7
7
  }
8
+ export declare function _resetFingerprintCacheForTesting(): void;
8
9
  export declare class StealthInjectionHandlers {
9
10
  private deps;
10
11
  constructor(deps: StealthInjectionHandlersDeps);
@@ -17,6 +17,9 @@ async function getFingerprintManager() {
17
17
  return null;
18
18
  }
19
19
  }
20
+ export function _resetFingerprintCacheForTesting() {
21
+ fingerprintManagerInstance = null;
22
+ }
20
23
  export class StealthInjectionHandlers {
21
24
  deps;
22
25
  constructor(deps) {
@@ -4,7 +4,6 @@ import type { DOMInspector } from '../../domains/shared/modules.js';
4
4
  import type { ScriptManager } from '../../domains/shared/modules.js';
5
5
  import type { ConsoleMonitor } from '../../domains/shared/modules.js';
6
6
  import { AICaptchaDetector } from '../../domains/shared/modules.js';
7
- import { type LLMService } from '../../../services/LLMService.js';
8
7
  import { DetailedDataManager } from '../../../utils/DetailedDataManager.js';
9
8
  import { type CamoufoxBrowserManager } from '../../domains/shared/modules.js';
10
9
  import { BrowserControlHandlers } from '../../domains/browser/handlers/browser-control.js';
@@ -58,7 +57,7 @@ export declare class BrowserToolHandlers {
58
57
  private tabWorkflow;
59
58
  private detailedData;
60
59
  private _tabRegistry;
61
- constructor(collector: CodeCollector, pageController: PageController, domInspector: DOMInspector, scriptManager: ScriptManager, consoleMonitor: ConsoleMonitor, llmService: LLMService);
60
+ constructor(collector: CodeCollector, pageController: PageController, domInspector: DOMInspector, scriptManager: ScriptManager, consoleMonitor: ConsoleMonitor);
62
61
  getTabRegistry(): TabRegistry;
63
62
  private getCamoufoxPage;
64
63
  private closeCamoufox;
@@ -1,5 +1,4 @@
1
1
  import { AICaptchaDetector } from '../../domains/shared/modules.js';
2
- import {} from '../../../services/LLMService.js';
3
2
  import { argString, argNumber, argBool } from '../../domains/shared/parse-args.js';
4
3
  import { DetailedDataManager } from '../../../utils/DetailedDataManager.js';
5
4
  import { resolveOutputDirectory } from '../../../utils/outputPaths.js';
@@ -60,14 +59,14 @@ export class BrowserToolHandlers {
60
59
  tabWorkflow;
61
60
  detailedData;
62
61
  _tabRegistry;
63
- constructor(collector, pageController, domInspector, scriptManager, consoleMonitor, llmService) {
62
+ constructor(collector, pageController, domInspector, scriptManager, consoleMonitor) {
64
63
  this.collector = collector;
65
64
  this.pageController = pageController;
66
65
  this.domInspector = domInspector;
67
66
  this.scriptManager = scriptManager;
68
67
  this.consoleMonitor = consoleMonitor;
69
68
  const screenshotDir = resolveOutputDirectory(process.env.CAPTCHA_SCREENSHOT_DIR, 'screenshots/captcha');
70
- this.captchaDetector = new AICaptchaDetector(llmService, screenshotDir);
69
+ this.captchaDetector = new AICaptchaDetector(screenshotDir);
71
70
  this.detailedDataManager = DetailedDataManager.getInstance();
72
71
  const modules = initializeBrowserHandlerModules({
73
72
  collector: this.collector,
@@ -8,7 +8,7 @@ const b = (invoke) => bindByDepKey(DEP_KEY, invoke);
8
8
  function ensure(ctx) {
9
9
  ensureBrowserCore(ctx);
10
10
  if (!ctx.browserHandlers) {
11
- ctx.browserHandlers = new BrowserToolHandlers(ctx.collector, ctx.pageController, ctx.domInspector, ctx.scriptManager, ctx.consoleMonitor, ctx.llm);
11
+ ctx.browserHandlers = new BrowserToolHandlers(ctx.collector, ctx.pageController, ctx.domInspector, ctx.scriptManager, ctx.consoleMonitor);
12
12
  }
13
13
  return ctx.browserHandlers;
14
14
  }
@@ -29,18 +29,42 @@ const manifest = {
29
29
  hint: 'Browser automation workflow: bootstrap browser/page state -> navigate -> interact -> extract data',
30
30
  },
31
31
  prerequisites: {
32
- page_navigate: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
33
- page_click: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
34
- page_type: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
35
- page_screenshot: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
36
- page_evaluate: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
37
- page_hover: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
38
- page_scroll: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
39
- page_back: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
40
- page_forward: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
41
- page_reload: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
42
- dom_get_structure: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
43
- dom_query_selector: [{ condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' }],
32
+ page_navigate: [
33
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
34
+ ],
35
+ page_click: [
36
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
37
+ ],
38
+ page_type: [
39
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
40
+ ],
41
+ page_screenshot: [
42
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
43
+ ],
44
+ page_evaluate: [
45
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
46
+ ],
47
+ page_hover: [
48
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
49
+ ],
50
+ page_scroll: [
51
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
52
+ ],
53
+ page_back: [
54
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
55
+ ],
56
+ page_forward: [
57
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
58
+ ],
59
+ page_reload: [
60
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
61
+ ],
62
+ dom_get_structure: [
63
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
64
+ ],
65
+ dom_query_selector: [
66
+ { condition: 'Browser must be launched', fix: 'Call browser_launch or browser_attach first' },
67
+ ],
44
68
  },
45
69
  registrations: [
46
70
  { tool: t('get_detailed_data'), domain: DOMAIN, bind: b((h, a) => h.handleGetDetailedData(a)) },
@@ -1,218 +1,52 @@
1
+ import { tool } from '../../registry/tool-builder.js';
1
2
  export const coordinationTools = [
2
- {
3
- name: 'create_task_handoff',
4
- description: 'Create a sub-task handoff for specialist agent delegation.\n\n' +
5
- 'Use this as a Planner Agent to delegate work to a Specialist. ' +
6
- 'Automatically captures the current page URL (if any) and injects it into the task context.\n\n' +
7
- 'Returns:\n' +
8
- '- taskId: unique identifier to track this handoff\n' +
9
- '- status: "pending"\n' +
10
- '- pageUrl: auto-captured active page URL\n\n' +
11
- 'Example:\n' +
12
- ' create_task_handoff({ description: "Analyze API surface of current page", targetDomain: "network" })',
13
- inputSchema: {
14
- type: 'object',
15
- properties: {
16
- description: {
17
- type: 'string',
18
- description: 'Clear description of what the specialist should accomplish',
19
- },
20
- constraints: {
21
- type: 'array',
22
- items: { type: 'string' },
23
- description: 'Optional constraints for the specialist (e.g. "do not navigate away", "read-only analysis")',
24
- },
25
- targetDomain: {
26
- type: 'string',
27
- description: 'Suggested domain for the specialist (e.g. "network", "debugger", "browser"). Advisory only.',
28
- },
29
- },
30
- required: ['description'],
31
- },
32
- annotations: {
33
- title: 'Create Task Handoff',
34
- readOnlyHint: false,
35
- destructiveHint: false,
36
- idempotentHint: false,
37
- openWorldHint: false,
38
- },
39
- },
40
- {
41
- name: 'complete_task_handoff',
42
- description: 'Complete a previously created task handoff with results.\n\n' +
43
- 'Use this as a Specialist Agent to report execution results back to the Planner. ' +
44
- 'Once completed, the handoff status transitions to "completed" and cannot be modified.\n\n' +
45
- 'Example:\n' +
46
- ' complete_task_handoff({\n' +
47
- ' taskId: "abc-123",\n' +
48
- ' summary: "Found 5 API endpoints with Bearer auth",\n' +
49
- ' keyFindings: ["POST /api/v1/login uses JWT", "X-Signature header is HMAC-SHA256"]\n' +
50
- ' })',
51
- inputSchema: {
52
- type: 'object',
53
- properties: {
54
- taskId: {
55
- type: 'string',
56
- description: 'Task ID from create_task_handoff',
57
- },
58
- summary: {
59
- type: 'string',
60
- description: 'Concise summary of what was accomplished',
61
- },
62
- keyFindings: {
63
- type: 'array',
64
- items: { type: 'string' },
65
- description: 'Key discoveries or results from the task',
66
- },
67
- artifacts: {
68
- type: 'array',
69
- items: { type: 'string' },
70
- description: 'Paths to generated artifact files (HAR exports, reports, etc.)',
71
- },
72
- },
73
- required: ['taskId', 'summary'],
74
- },
75
- annotations: {
76
- title: 'Complete Task Handoff',
77
- readOnlyHint: false,
78
- destructiveHint: false,
79
- idempotentHint: false,
80
- openWorldHint: false,
81
- },
82
- },
83
- {
84
- name: 'get_task_context',
85
- description: 'Read the context of a task handoff.\n\n' +
86
- 'Returns the full handoff record including description, constraints, status, ' +
87
- 'page URL, and any completion data. If no taskId is provided, returns all active handoffs.\n\n' +
88
- 'Also returns accumulated session insights when no taskId is specified.\n\n' +
89
- 'Example:\n' +
90
- ' get_task_context() // list all handoffs + session insights\n' +
91
- ' get_task_context({ taskId: "abc" }) // specific handoff details',
92
- inputSchema: {
93
- type: 'object',
94
- properties: {
95
- taskId: {
96
- type: 'string',
97
- description: 'Specific task ID to retrieve (omit for all active handoffs)',
98
- },
99
- },
100
- },
101
- annotations: {
102
- title: 'Get Task Context',
103
- readOnlyHint: true,
104
- destructiveHint: false,
105
- idempotentHint: true,
106
- openWorldHint: false,
107
- },
108
- },
109
- {
110
- name: 'append_session_insight',
111
- description: 'Append a discovery to the session-level knowledge accumulator.\n\n' +
112
- 'Session insights persist for the lifetime of the MCP session and are shared ' +
113
- 'across all handoffs. Use this to record cross-cutting findings that any agent ' +
114
- 'in the session should know about.\n\n' +
115
- 'Categories: "auth", "crypto", "api", "anti_debug", "architecture", "vulnerability", "other"\n\n' +
116
- 'Example:\n' +
117
- ' append_session_insight({\n' +
118
- ' category: "auth",\n' +
119
- ' content: "JWT stored in localStorage under key \'access_token\'",\n' +
120
- ' confidence: 0.95\n' +
121
- ' })',
122
- inputSchema: {
123
- type: 'object',
124
- properties: {
125
- category: {
126
- type: 'string',
127
- enum: ['auth', 'crypto', 'api', 'anti_debug', 'architecture', 'vulnerability', 'other'],
128
- description: 'Category of the insight',
129
- },
130
- content: {
131
- type: 'string',
132
- description: 'The insight content',
133
- },
134
- confidence: {
135
- type: 'number',
136
- description: 'Confidence level 0.0-1.0 (default: 1.0)',
137
- minimum: 0,
138
- maximum: 1,
139
- },
140
- },
141
- required: ['category', 'content'],
142
- },
143
- annotations: {
144
- title: 'Append Session Insight',
145
- readOnlyHint: false,
146
- destructiveHint: false,
147
- idempotentHint: false,
148
- openWorldHint: false,
149
- },
150
- },
151
- {
152
- name: 'save_page_snapshot',
153
- description: 'Save a snapshot of the current page state (URL, cookies, localStorage, sessionStorage).\n\n' +
154
- 'Useful for checkpoint/restore workflows during reverse engineering — ' +
155
- 'save state before invasive operations, restore if needed.\n\n' +
156
- 'Example:\n' +
157
- ' save_page_snapshot()\n' +
158
- ' save_page_snapshot({ label: "before-login" })',
159
- inputSchema: {
160
- type: 'object',
161
- properties: {
162
- label: {
163
- type: 'string',
164
- description: 'Optional human-readable label for this snapshot',
165
- },
166
- },
167
- },
168
- annotations: {
169
- title: 'Save Page Snapshot',
170
- readOnlyHint: true,
171
- destructiveHint: false,
172
- idempotentHint: false,
173
- openWorldHint: false,
174
- },
175
- },
176
- {
177
- name: 'restore_page_snapshot',
178
- description: 'Restore a previously saved page snapshot.\n\n' +
179
- 'Navigates to the saved URL and reinjects cookies, localStorage, and sessionStorage.\n\n' +
180
- 'Example:\n' +
181
- ' restore_page_snapshot({ snapshotId: "a1b2c3d4" })',
182
- inputSchema: {
183
- type: 'object',
184
- properties: {
185
- snapshotId: {
186
- type: 'string',
187
- description: 'Snapshot ID from save_page_snapshot',
188
- },
189
- },
190
- required: ['snapshotId'],
191
- },
192
- annotations: {
193
- title: 'Restore Page Snapshot',
194
- readOnlyHint: false,
195
- destructiveHint: false,
196
- idempotentHint: true,
197
- openWorldHint: false,
198
- },
199
- },
200
- {
201
- name: 'list_page_snapshots',
202
- description: 'List all saved page snapshots in the current session.\n\n' +
203
- 'Returns snapshot IDs, URLs, labels, and state counts.\n\n' +
204
- 'Example:\n' +
205
- ' list_page_snapshots()',
206
- inputSchema: {
207
- type: 'object',
208
- properties: {},
209
- },
210
- annotations: {
211
- title: 'List Page Snapshots',
212
- readOnlyHint: true,
213
- destructiveHint: false,
214
- idempotentHint: true,
215
- openWorldHint: false,
216
- },
217
- },
3
+ tool('create_task_handoff')
4
+ .desc('Create a sub-task handoff for specialist agent delegation. Auto-captures active page URL.')
5
+ .string('description', 'What the specialist should accomplish')
6
+ .array('constraints', { type: 'string' }, 'Constraints for the specialist')
7
+ .string('targetDomain', 'Suggested domain for the specialist')
8
+ .required('description')
9
+ .build(),
10
+ tool('complete_task_handoff')
11
+ .desc('Complete a task handoff with results. Transitions status to completed.')
12
+ .string('taskId', 'Task ID from create_task_handoff')
13
+ .string('summary', 'Concise summary of what was accomplished')
14
+ .array('keyFindings', { type: 'string' }, 'Key discoveries or results')
15
+ .array('artifacts', { type: 'string' }, 'Paths to generated artifact files')
16
+ .required('taskId', 'summary')
17
+ .build(),
18
+ tool('get_task_context')
19
+ .desc('Read task handoff context. Without taskId returns all active handoffs + session insights.')
20
+ .string('taskId', 'Specific task ID to retrieve')
21
+ .readOnly()
22
+ .idempotent()
23
+ .build(),
24
+ tool('append_session_insight')
25
+ .desc('Append a discovery to the session-level knowledge accumulator shared across handoffs')
26
+ .enum('category', ['auth', 'crypto', 'api', 'anti_debug', 'architecture', 'vulnerability', 'other'], 'Insight category')
27
+ .string('content', 'The insight content')
28
+ .prop('confidence', {
29
+ type: 'number',
30
+ description: 'Confidence level 0.0-1.0',
31
+ minimum: 0,
32
+ maximum: 1,
33
+ })
34
+ .required('category', 'content')
35
+ .build(),
36
+ tool('save_page_snapshot')
37
+ .desc('Save current page state (URL, cookies, storage) for checkpoint/restore workflows')
38
+ .string('label', 'Human-readable label for this snapshot')
39
+ .readOnly()
40
+ .build(),
41
+ tool('restore_page_snapshot')
42
+ .desc('Restore a saved page snapshot — navigates to URL and reinjects cookies and storage')
43
+ .string('snapshotId', 'Snapshot ID from save_page_snapshot')
44
+ .required('snapshotId')
45
+ .idempotent()
46
+ .build(),
47
+ tool('list_page_snapshots')
48
+ .desc('List all saved page snapshots in the current session')
49
+ .readOnly()
50
+ .idempotent()
51
+ .build(),
218
52
  ];
@@ -1,4 +1,5 @@
1
- import type { MCPServerContext } from '../../MCPServer.context.js';
1
+ import type { MCPServerContext } from '../../domains/shared/registry.js';
2
+ export * from './definitions.js';
2
3
  export interface TaskHandoff {
3
4
  id: string;
4
5
  status: 'pending' | 'in_progress' | 'completed' | 'failed';
@@ -1,4 +1,5 @@
1
1
  import { randomUUID } from 'node:crypto';
2
+ export * from './definitions.js';
2
3
  export class CoordinationHandlers {
3
4
  handoffs = new Map();
4
5
  insights = [];