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