@jshookmcp/jshook 0.2.3 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (583) hide show
  1. package/README.md +14 -5
  2. package/README.zh.md +18 -3
  3. package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
  4. package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
  5. package/dist/packages/extension-sdk/src/plugin.js +119 -33
  6. package/dist/packages/extension-sdk/src/workflow.d.ts +171 -0
  7. package/dist/packages/extension-sdk/src/workflow.js +272 -0
  8. package/dist/src/config/search-defaults.js +161 -0
  9. package/dist/src/constants.d.ts +3 -0
  10. package/dist/src/constants.js +4 -1
  11. package/dist/src/index.d.ts +1 -1
  12. package/dist/src/index.js +13 -17
  13. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
  14. package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
  15. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
  16. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
  17. package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
  18. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
  19. package/dist/src/modules/analyzer/PatternDetector.js +3 -3
  20. package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
  21. package/dist/src/modules/browser/BrowserDiscovery.js +2 -2
  22. package/dist/src/modules/browser/BrowserModeManager.js +11 -10
  23. package/dist/src/modules/browser/BrowserPool.d.ts +49 -0
  24. package/dist/src/modules/browser/BrowserPool.js +288 -0
  25. package/dist/src/modules/browser/TabRegistry.js +2 -2
  26. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  27. package/dist/src/modules/browser/UnifiedBrowserManager.js +18 -3
  28. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +1 -10
  29. package/dist/src/modules/captcha/AICaptchaDetector.js +7 -201
  30. package/dist/src/modules/collector/CodeCollector.js +4 -5
  31. package/dist/src/modules/collector/DOMInspector.js +48 -58
  32. package/dist/src/modules/collector/PageController.d.ts +17 -4
  33. package/dist/src/modules/collector/PageController.js +2 -5
  34. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  35. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  36. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  37. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  38. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  39. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  40. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +4 -2
  41. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  42. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.d.ts +5 -0
  43. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.js +43 -2
  44. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  45. package/dist/src/modules/deobfuscator/Deobfuscator.js +9 -39
  46. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  47. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  48. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -2
  49. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +3 -55
  50. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  51. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  52. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  53. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  54. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  55. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  56. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  57. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  58. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  59. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  60. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  61. package/dist/src/modules/external/ExternalToolRunner.js +25 -22
  62. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
  63. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
  64. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
  65. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
  66. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  67. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  68. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
  69. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  70. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  71. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  72. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
  73. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  74. package/dist/src/modules/process/LinuxProcessManager.js +2 -0
  75. package/dist/src/modules/process/MacProcessManager.js +25 -25
  76. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  77. package/dist/src/modules/process/MemoryManager.js +2 -2
  78. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  79. package/dist/src/modules/process/memory/availability.js +49 -49
  80. package/dist/src/modules/process/memory/injector.js +185 -185
  81. package/dist/src/modules/process/memory/reader.js +85 -53
  82. package/dist/src/modules/process/memory/regions.dump.js +51 -51
  83. package/dist/src/modules/process/memory/regions.enumerate.js +108 -108
  84. package/dist/src/modules/process/memory/regions.modules.js +80 -80
  85. package/dist/src/modules/process/memory/regions.protection.js +148 -115
  86. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  87. package/dist/src/modules/process/memory/scanner.darwin.js +98 -41
  88. package/dist/src/modules/process/memory/scanner.js +88 -4
  89. package/dist/src/modules/process/memory/scanner.windows.js +124 -124
  90. package/dist/src/modules/process/memory/writer.js +98 -58
  91. package/dist/src/modules/security/ExecutionSandbox.js +51 -52
  92. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  93. package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
  94. package/dist/src/modules/stealth/StealthScripts.js +18 -13
  95. package/dist/src/modules/stealth/StealthVerifier.js +1 -3
  96. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  97. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  98. package/dist/src/modules/trace/TraceDB.js +75 -69
  99. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  100. package/dist/src/native/AntiCheatDetector.js +67 -16
  101. package/dist/src/native/CodeInjector.js +3 -3
  102. package/dist/src/native/HardwareBreakpoint.js +24 -15
  103. package/dist/src/native/HeapAnalyzer.js +2 -2
  104. package/dist/src/native/MemoryController.js +1 -1
  105. package/dist/src/native/MemoryScanSession.js +2 -2
  106. package/dist/src/native/MemoryScanner.js +4 -8
  107. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  108. package/dist/src/native/PEAnalyzer.js +14 -15
  109. package/dist/src/native/PointerChainEngine.js +2 -4
  110. package/dist/src/native/ScriptLoader.js +4 -9
  111. package/dist/src/native/Speedhack.js +1 -1
  112. package/dist/src/native/StructureAnalyzer.js +52 -33
  113. package/dist/src/native/Win32API.d.ts +1 -0
  114. package/dist/src/native/Win32API.js +13 -0
  115. package/dist/src/native/Win32Debug.js +19 -19
  116. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  117. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  118. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  119. package/dist/src/server/MCPServer.context.d.ts +3 -1
  120. package/dist/src/server/MCPServer.d.ts +2 -1
  121. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  122. package/dist/src/server/MCPServer.domain.js +81 -16
  123. package/dist/src/server/MCPServer.js +41 -14
  124. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  125. package/dist/src/server/MCPServer.resources.js +91 -0
  126. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  127. package/dist/src/server/MCPServer.search.helpers.js +1 -1
  128. package/dist/src/server/MCPServer.transport.js +12 -0
  129. package/dist/src/server/ToolCallContextGuard.js +8 -0
  130. package/dist/src/server/ToolRouter.d.ts +25 -9
  131. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  132. package/dist/src/server/ToolRouter.intent.js +77 -0
  133. package/dist/src/server/ToolRouter.js +103 -284
  134. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  135. package/dist/src/server/ToolRouter.policy.js +163 -0
  136. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  137. package/dist/src/server/ToolRouter.probe.js +103 -0
  138. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  139. package/dist/src/server/ToolRouter.renderer.js +52 -0
  140. package/dist/src/server/activation/ActivationController.js +15 -12
  141. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  142. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  143. package/dist/src/server/domains/analysis/definitions.js +155 -655
  144. package/dist/src/server/domains/analysis/handlers.impl.js +26 -20
  145. package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -1
  146. package/dist/src/server/domains/analysis/manifest.js +6 -4
  147. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  148. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  149. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  150. package/dist/src/server/domains/browser/definitions.tools.page-core.js +210 -439
  151. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  152. package/dist/src/server/domains/browser/definitions.tools.runtime.js +98 -211
  153. package/dist/src/server/domains/browser/definitions.tools.security.js +194 -339
  154. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  155. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  156. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  157. package/dist/src/server/domains/browser/handlers/framework-state.js +27 -9
  158. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  159. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  160. package/dist/src/server/domains/browser/handlers/stealth-injection.d.ts +1 -0
  161. package/dist/src/server/domains/browser/handlers/stealth-injection.js +3 -0
  162. package/dist/src/server/domains/browser/handlers.impl.d.ts +1 -2
  163. package/dist/src/server/domains/browser/handlers.impl.js +2 -3
  164. package/dist/src/server/domains/browser/manifest.js +37 -13
  165. package/dist/src/server/domains/coordination/definitions.js +50 -216
  166. package/dist/src/server/domains/coordination/index.d.ts +2 -1
  167. package/dist/src/server/domains/coordination/index.js +1 -0
  168. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  169. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  170. package/dist/src/server/domains/debugger/manifest.js +9 -2
  171. package/dist/src/server/domains/encoding/definitions.js +43 -153
  172. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  173. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  174. package/dist/src/server/domains/evidence/definitions.js +42 -0
  175. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  176. package/dist/src/server/domains/evidence/handlers.js +60 -0
  177. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  178. package/dist/src/server/domains/evidence/index.js +2 -0
  179. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  180. package/dist/src/server/domains/evidence/manifest.js +78 -0
  181. package/dist/src/server/domains/graphql/definitions.js +53 -141
  182. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  183. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
  184. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  185. package/dist/src/server/domains/hooks/ai-handlers.js +1 -67
  186. package/dist/src/server/domains/hooks/definitions.js +69 -335
  187. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  188. package/dist/src/server/domains/hooks/manifest.js +1 -2
  189. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  190. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  191. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  192. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  193. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  194. package/dist/src/server/domains/instrumentation/index.js +2 -0
  195. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  196. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  197. package/dist/src/server/domains/macro/definitions.js +16 -43
  198. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  199. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  200. package/dist/src/server/domains/memory/definitions.js +387 -559
  201. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  202. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  203. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  204. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  205. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  206. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  207. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  208. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  209. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  210. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  211. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  212. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  213. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  214. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  215. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  216. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  217. package/dist/src/server/domains/memory/manifest.js +236 -64
  218. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  219. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  220. package/dist/src/server/domains/native-bridge/index.js +2 -1
  221. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  222. package/dist/src/server/domains/network/definitions.js +175 -578
  223. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  224. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  225. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  226. package/dist/src/server/domains/network/handlers.base.js +3 -878
  227. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  228. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  229. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  230. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  231. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  232. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  233. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  234. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  235. package/dist/src/server/domains/network/manifest.js +15 -0
  236. package/dist/src/server/domains/network/replay.js +1 -4
  237. package/dist/src/server/domains/platform/definitions.js +121 -112
  238. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +4 -0
  239. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +193 -4
  240. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  241. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  242. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  243. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  244. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  245. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  246. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  247. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  248. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  249. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  250. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  251. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +3 -3
  252. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  253. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  254. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  255. package/dist/src/server/domains/platform/handlers.js +29 -0
  256. package/dist/src/server/domains/platform/manifest.js +38 -0
  257. package/dist/src/server/domains/process/definitions.js +163 -647
  258. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  259. package/dist/src/server/domains/process/handlers.base.js +7 -462
  260. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  261. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  262. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  263. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  264. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +18 -16
  265. package/dist/src/server/domains/process/manifest.js +6 -1
  266. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  267. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  268. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  269. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  270. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  271. package/dist/src/server/domains/shared/modules.js +0 -1
  272. package/dist/src/server/domains/shared-state-board/definitions.d.ts +2 -0
  273. package/dist/src/server/domains/shared-state-board/definitions.js +78 -0
  274. package/dist/src/server/domains/shared-state-board/handlers.impl.d.ts +58 -0
  275. package/dist/src/server/domains/shared-state-board/handlers.impl.js +419 -0
  276. package/dist/src/server/domains/shared-state-board/index.d.ts +2 -0
  277. package/dist/src/server/domains/shared-state-board/index.js +2 -0
  278. package/dist/src/server/domains/shared-state-board/manifest.d.ts +57 -0
  279. package/dist/src/server/domains/shared-state-board/manifest.js +74 -0
  280. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  281. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  282. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  283. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  284. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  285. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  286. package/dist/src/server/domains/streaming/definitions.js +36 -148
  287. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  288. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  289. package/dist/src/server/domains/trace/TraceSummarizer.js +8 -5
  290. package/dist/src/server/domains/trace/definitions.tools.js +51 -206
  291. package/dist/src/server/domains/trace/handlers.js +10 -12
  292. package/dist/src/server/domains/trace/index.d.ts +2 -1
  293. package/dist/src/server/domains/trace/index.js +2 -1
  294. package/dist/src/server/domains/trace/manifest.js +15 -3
  295. package/dist/src/server/domains/transform/definitions.js +50 -210
  296. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +108 -108
  297. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  298. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  299. package/dist/src/server/domains/transform/manifest.js +1 -1
  300. package/dist/src/server/domains/wasm/definitions.js +55 -232
  301. package/dist/src/server/domains/wasm/handlers.js +1 -1
  302. package/dist/src/server/domains/workflow/definitions.js +144 -414
  303. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
  304. package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
  305. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  306. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  307. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  308. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  309. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  310. package/dist/src/server/evidence/index.d.ts +2 -0
  311. package/dist/src/server/evidence/index.js +1 -0
  312. package/dist/src/server/evidence/types.d.ts +22 -0
  313. package/dist/src/server/evidence/types.js +1 -0
  314. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  315. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  316. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  317. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  318. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  319. package/dist/src/server/extensions/ExtensionManager.roots.js +4 -4
  320. package/dist/src/server/extensions/plugin-config.js +1 -1
  321. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  322. package/dist/src/server/extensions/plugin-env.js +10 -4
  323. package/dist/src/server/extensions/types.d.ts +17 -0
  324. package/dist/src/server/extensions/types.js +1 -1
  325. package/dist/src/server/http/SseStream.d.ts +21 -0
  326. package/dist/src/server/http/SseStream.js +129 -0
  327. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  328. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  329. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  330. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  331. package/dist/src/server/instrumentation/index.d.ts +2 -0
  332. package/dist/src/server/instrumentation/index.js +2 -0
  333. package/dist/src/server/instrumentation/types.d.ts +62 -0
  334. package/dist/src/server/instrumentation/types.js +7 -0
  335. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  336. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  337. package/dist/src/server/macros/MacroRunner.js +6 -2
  338. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  339. package/dist/src/server/macros/builtins/index.js +51 -7
  340. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  341. package/dist/src/server/registry/contracts.d.ts +1 -1
  342. package/dist/src/server/registry/discovery.js +5 -4
  343. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  344. package/dist/src/server/registry/index.js +4 -4
  345. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  346. package/dist/src/server/registry/tool-builder.js +105 -0
  347. package/dist/src/server/sandbox/QuickJSSandbox.js +16 -5
  348. package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
  349. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  350. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  351. package/dist/src/server/search/FeedbackTracker.js +26 -0
  352. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  353. package/dist/src/server/search/QueryNormalizer.js +94 -0
  354. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  355. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  356. package/dist/src/server/teams/TeamManager.d.ts +43 -0
  357. package/dist/src/server/teams/TeamManager.js +238 -0
  358. package/dist/src/server/teams/index.d.ts +1 -0
  359. package/dist/src/server/teams/index.js +1 -0
  360. package/dist/src/server/workflows/WorkflowContract.d.ts +44 -4
  361. package/dist/src/server/workflows/WorkflowContract.js +52 -0
  362. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  363. package/dist/src/server/workflows/WorkflowEngine.js +314 -4
  364. package/dist/src/types/config.d.ts +0 -14
  365. package/dist/src/types/deobfuscator.d.ts +1 -1
  366. package/dist/src/types/index.d.ts +1 -1
  367. package/dist/src/utils/DetailedDataManager.js +2 -0
  368. package/dist/src/utils/RingBuffer.js +5 -5
  369. package/dist/src/utils/TokenBudgetManager.js +1 -1
  370. package/dist/src/utils/UnifiedCacheManager.js +1 -1
  371. package/dist/src/utils/artifactRetention.js +2 -2
  372. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  373. package/dist/src/utils/betterSqlite3.js +88 -0
  374. package/dist/src/utils/browserExecutable.js +2 -2
  375. package/dist/src/utils/cache/CachedDecorator.d.ts +8 -0
  376. package/dist/src/utils/cache/CachedDecorator.js +55 -0
  377. package/dist/src/utils/cache/PersistentCache.d.ts +33 -0
  378. package/dist/src/utils/cache/PersistentCache.js +246 -0
  379. package/dist/src/utils/cache/index.d.ts +2 -0
  380. package/dist/src/utils/cache/index.js +2 -0
  381. package/dist/src/utils/cliFastPath.js +5 -8
  382. package/dist/src/utils/config.js +4 -26
  383. package/dist/src/utils/environmentDoctor.js +138 -11
  384. package/dist/src/utils/outputPaths.js +16 -9
  385. package/dist/src/utils/parallel.js +1 -3
  386. package/package.json +82 -81
  387. package/scripts/postinstall.cjs +54 -27
  388. package/workflows/.gitkeep +0 -0
  389. package/workflows/anti-bot-diagnoser/.jshook-install.json +14 -0
  390. package/workflows/anti-bot-diagnoser/LICENSE +21 -0
  391. package/workflows/anti-bot-diagnoser/README.md +105 -0
  392. package/workflows/anti-bot-diagnoser/docs/agent-recipes.md +44 -0
  393. package/workflows/anti-bot-diagnoser/meta.yaml +6 -0
  394. package/workflows/anti-bot-diagnoser/package.json +22 -0
  395. package/workflows/anti-bot-diagnoser/tsconfig.json +15 -0
  396. package/workflows/anti-bot-diagnoser/workflow.ts +224 -0
  397. package/workflows/api-openapi-probe/.jshook-install.json +14 -0
  398. package/workflows/api-openapi-probe/meta.yaml +6 -0
  399. package/workflows/api-openapi-probe/package.json +22 -0
  400. package/workflows/api-openapi-probe/pnpm-lock.yaml +819 -0
  401. package/workflows/api-openapi-probe/tsconfig.json +15 -0
  402. package/workflows/api-openapi-probe/workflow.ts +40 -0
  403. package/workflows/api-probe-batch/.jshook-install.json +14 -0
  404. package/workflows/api-probe-batch/LICENSE +21 -0
  405. package/workflows/api-probe-batch/README.md +45 -0
  406. package/workflows/api-probe-batch/meta.yaml +4 -0
  407. package/workflows/api-probe-batch/package.json +23 -0
  408. package/workflows/api-probe-batch/tsconfig.json +16 -0
  409. package/workflows/api-probe-batch/workflow.ts +111 -0
  410. package/workflows/auth-bootstrap/.jshook-install.json +14 -0
  411. package/workflows/auth-bootstrap/LICENSE +21 -0
  412. package/workflows/auth-bootstrap/README.md +74 -0
  413. package/workflows/auth-bootstrap/meta.yaml +4 -0
  414. package/workflows/auth-bootstrap/package.json +23 -0
  415. package/workflows/auth-bootstrap/tsconfig.json +16 -0
  416. package/workflows/auth-bootstrap/workflow.ts +141 -0
  417. package/workflows/auth-extract/.jshook-install.json +14 -0
  418. package/workflows/auth-extract/meta.yaml +6 -0
  419. package/workflows/auth-extract/package.json +22 -0
  420. package/workflows/auth-extract/pnpm-lock.yaml +819 -0
  421. package/workflows/auth-extract/tsconfig.json +15 -0
  422. package/workflows/auth-extract/workflow.ts +36 -0
  423. package/workflows/auth-surface-mapper/.jshook-install.json +14 -0
  424. package/workflows/auth-surface-mapper/meta.yaml +6 -0
  425. package/workflows/auth-surface-mapper/package.json +22 -0
  426. package/workflows/auth-surface-mapper/pnpm-lock.yaml +819 -0
  427. package/workflows/auth-surface-mapper/tsconfig.json +15 -0
  428. package/workflows/auth-surface-mapper/workflow.ts +104 -0
  429. package/workflows/batch-register/.jshook-install.json +14 -0
  430. package/workflows/batch-register/LICENSE +21 -0
  431. package/workflows/batch-register/README.md +39 -0
  432. package/workflows/batch-register/meta.yaml +4 -0
  433. package/workflows/batch-register/package.json +23 -0
  434. package/workflows/batch-register/tsconfig.json +16 -0
  435. package/workflows/batch-register/workflow.ts +67 -0
  436. package/workflows/bundle-recovery/.jshook-install.json +14 -0
  437. package/workflows/bundle-recovery/LICENSE +21 -0
  438. package/workflows/bundle-recovery/README.md +105 -0
  439. package/workflows/bundle-recovery/docs/agent-recipes.md +44 -0
  440. package/workflows/bundle-recovery/meta.yaml +6 -0
  441. package/workflows/bundle-recovery/package.json +22 -0
  442. package/workflows/bundle-recovery/tsconfig.json +15 -0
  443. package/workflows/bundle-recovery/workflow.ts +179 -0
  444. package/workflows/challenge-detector/.jshook-install.json +14 -0
  445. package/workflows/challenge-detector/meta.yaml +14 -0
  446. package/workflows/challenge-detector/package.json +22 -0
  447. package/workflows/challenge-detector/pnpm-lock.yaml +819 -0
  448. package/workflows/challenge-detector/tsconfig.json +15 -0
  449. package/workflows/challenge-detector/workflow.ts +298 -0
  450. package/workflows/deobfuscation-pipeline/.jshook-install.json +14 -0
  451. package/workflows/deobfuscation-pipeline/meta.yaml +6 -0
  452. package/workflows/deobfuscation-pipeline/package.json +22 -0
  453. package/workflows/deobfuscation-pipeline/pnpm-lock.yaml +819 -0
  454. package/workflows/deobfuscation-pipeline/tsconfig.json +15 -0
  455. package/workflows/deobfuscation-pipeline/workflow.ts +119 -0
  456. package/workflows/electron-bridge-mapper/.jshook-install.json +14 -0
  457. package/workflows/electron-bridge-mapper/meta.yaml +6 -0
  458. package/workflows/electron-bridge-mapper/package.json +22 -0
  459. package/workflows/electron-bridge-mapper/pnpm-lock.yaml +819 -0
  460. package/workflows/electron-bridge-mapper/tsconfig.json +15 -0
  461. package/workflows/electron-bridge-mapper/workflow.ts +125 -0
  462. package/workflows/evidence-pack/.jshook-install.json +14 -0
  463. package/workflows/evidence-pack/LICENSE +21 -0
  464. package/workflows/evidence-pack/README.md +105 -0
  465. package/workflows/evidence-pack/docs/agent-recipes.md +44 -0
  466. package/workflows/evidence-pack/meta.yaml +6 -0
  467. package/workflows/evidence-pack/package.json +22 -0
  468. package/workflows/evidence-pack/tsconfig.json +15 -0
  469. package/workflows/evidence-pack/workflow.ts +154 -0
  470. package/workflows/js-bundle-search/.jshook-install.json +14 -0
  471. package/workflows/js-bundle-search/LICENSE +21 -0
  472. package/workflows/js-bundle-search/README.md +46 -0
  473. package/workflows/js-bundle-search/meta.yaml +4 -0
  474. package/workflows/js-bundle-search/package.json +23 -0
  475. package/workflows/js-bundle-search/tsconfig.json +16 -0
  476. package/workflows/js-bundle-search/workflow.ts +118 -0
  477. package/workflows/protocol-registry/.jshook-install.json +14 -0
  478. package/workflows/protocol-registry/meta.yaml +6 -0
  479. package/workflows/protocol-registry/package.json +22 -0
  480. package/workflows/protocol-registry/pnpm-lock.yaml +819 -0
  481. package/workflows/protocol-registry/tsconfig.json +15 -0
  482. package/workflows/protocol-registry/workflow.ts +107 -0
  483. package/workflows/qwen-mail-open-latest/meta.yaml +7 -0
  484. package/workflows/qwen-mail-open-latest/package.json +22 -0
  485. package/workflows/qwen-mail-open-latest/pnpm-lock.yaml +819 -0
  486. package/workflows/qwen-mail-open-latest/tsconfig.json +15 -0
  487. package/workflows/qwen-mail-open-latest/workflow.ts +77 -0
  488. package/workflows/register-account-flow/.jshook-install.json +14 -0
  489. package/workflows/register-account-flow/LICENSE +21 -0
  490. package/workflows/register-account-flow/README.md +64 -0
  491. package/workflows/register-account-flow/meta.yaml +4 -0
  492. package/workflows/register-account-flow/package.json +23 -0
  493. package/workflows/register-account-flow/tsconfig.json +16 -0
  494. package/workflows/register-account-flow/workflow.ts +127 -0
  495. package/workflows/replay-lab/.jshook-install.json +14 -0
  496. package/workflows/replay-lab/meta.yaml +6 -0
  497. package/workflows/replay-lab/package.json +22 -0
  498. package/workflows/replay-lab/pnpm-lock.yaml +819 -0
  499. package/workflows/replay-lab/tsconfig.json +15 -0
  500. package/workflows/replay-lab/workflow.ts +106 -0
  501. package/workflows/script-evidence-scan/.jshook-install.json +14 -0
  502. package/workflows/script-evidence-scan/LICENSE +21 -0
  503. package/workflows/script-evidence-scan/README.md +61 -0
  504. package/workflows/script-evidence-scan/meta.yaml +4 -0
  505. package/workflows/script-evidence-scan/package.json +23 -0
  506. package/workflows/script-evidence-scan/tsconfig.json +16 -0
  507. package/workflows/script-evidence-scan/workflow.ts +89 -0
  508. package/workflows/signature-hunter/.jshook-install.json +14 -0
  509. package/workflows/signature-hunter/LICENSE +21 -0
  510. package/workflows/signature-hunter/README.md +105 -0
  511. package/workflows/signature-hunter/docs/agent-recipes.md +44 -0
  512. package/workflows/signature-hunter/meta.yaml +6 -0
  513. package/workflows/signature-hunter/package.json +22 -0
  514. package/workflows/signature-hunter/tsconfig.json +15 -0
  515. package/workflows/signature-hunter/workflow.ts +170 -0
  516. package/workflows/signing-lineage/.jshook-install.json +14 -0
  517. package/workflows/signing-lineage/meta.yaml +6 -0
  518. package/workflows/signing-lineage/package.json +22 -0
  519. package/workflows/signing-lineage/pnpm-lock.yaml +819 -0
  520. package/workflows/signing-lineage/tsconfig.json +15 -0
  521. package/workflows/signing-lineage/workflow.ts +120 -0
  522. package/workflows/temp-mail-extract-link/.jshook-install.json +14 -0
  523. package/workflows/temp-mail-extract-link/LICENSE +21 -0
  524. package/workflows/temp-mail-extract-link/README.md +71 -0
  525. package/workflows/temp-mail-extract-link/meta.yaml +4 -0
  526. package/workflows/temp-mail-extract-link/package.json +23 -0
  527. package/workflows/temp-mail-extract-link/tsconfig.json +16 -0
  528. package/workflows/temp-mail-extract-link/workflow.ts +221 -0
  529. package/workflows/temp-mail-open-latest/.jshook-install.json +14 -0
  530. package/workflows/temp-mail-open-latest/LICENSE +21 -0
  531. package/workflows/temp-mail-open-latest/README.md +61 -0
  532. package/workflows/temp-mail-open-latest/meta.yaml +4 -0
  533. package/workflows/temp-mail-open-latest/package.json +23 -0
  534. package/workflows/temp-mail-open-latest/tsconfig.json +16 -0
  535. package/workflows/temp-mail-open-latest/workflow.ts +136 -0
  536. package/workflows/template/.jshook-install.json +14 -0
  537. package/workflows/template/LICENSE +21 -0
  538. package/workflows/template/README.md +45 -0
  539. package/workflows/template/docs/SKILL.md +111 -0
  540. package/workflows/template/meta.yaml +6 -0
  541. package/workflows/template/package.json +22 -0
  542. package/workflows/template/pnpm-lock.yaml +819 -0
  543. package/workflows/template/tsconfig.json +15 -0
  544. package/workflows/template/workflow.ts +73 -0
  545. package/workflows/web-api-capture-session/.jshook-install.json +14 -0
  546. package/workflows/web-api-capture-session/LICENSE +21 -0
  547. package/workflows/web-api-capture-session/README.md +64 -0
  548. package/workflows/web-api-capture-session/meta.yaml +4 -0
  549. package/workflows/web-api-capture-session/package.json +23 -0
  550. package/workflows/web-api-capture-session/tsconfig.json +16 -0
  551. package/workflows/web-api-capture-session/workflow.ts +124 -0
  552. package/workflows/ws-protocol-lifter/.jshook-install.json +14 -0
  553. package/workflows/ws-protocol-lifter/LICENSE +21 -0
  554. package/workflows/ws-protocol-lifter/README.md +105 -0
  555. package/workflows/ws-protocol-lifter/docs/agent-recipes.md +44 -0
  556. package/workflows/ws-protocol-lifter/meta.yaml +6 -0
  557. package/workflows/ws-protocol-lifter/package.json +22 -0
  558. package/workflows/ws-protocol-lifter/tsconfig.json +15 -0
  559. package/workflows/ws-protocol-lifter/workflow.ts +163 -0
  560. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  561. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  562. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  563. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  564. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  565. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  566. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  567. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  568. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  569. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  570. package/dist/src/services/LLMService.d.ts +0 -37
  571. package/dist/src/services/LLMService.js +0 -233
  572. package/dist/src/services/prompts/analysis.d.ts +0 -9
  573. package/dist/src/services/prompts/analysis.js +0 -158
  574. package/dist/src/services/prompts/crypto.d.ts +0 -2
  575. package/dist/src/services/prompts/crypto.js +0 -108
  576. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  577. package/dist/src/services/prompts/deobfuscation.js +0 -300
  578. package/dist/src/services/prompts/environment.d.ts +0 -16
  579. package/dist/src/services/prompts/environment.js +0 -372
  580. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  581. package/dist/src/services/prompts/intelligence.js +0 -250
  582. package/dist/src/services/prompts/taint.d.ts +0 -2
  583. package/dist/src/services/prompts/taint.js +0 -54
@@ -1,419 +1,149 @@
1
+ import { tool } from '../../registry/tool-builder.js';
1
2
  export const workflowToolDefinitions = [
2
- {
3
- name: 'web_api_capture_session',
4
- description: 'Full-chain web API capture workflow: navigate → inject interceptors → perform actions → collect requests → extract auth → optionally export HAR + Markdown report.\n\nThis is a composite tool that replaces the following manual sequence:\n1. network_enable\n2. console_inject_fetch_interceptor + console_inject_xhr_interceptor\n3. page_navigate\n4. (perform actions)\n5. network_get_requests\n6. network_extract_auth\n7. network_export_har (optional)\n\n**Captured fetch requests are auto-persisted to localStorage.__capturedAPIs** — survives context compression.\n**Set exportHar/exportReport: true to persist artifacts to disk** before context is compressed.\n\nUSE THIS when you need to capture the complete API surface of a page in one step.',
5
- inputSchema: {
6
- type: 'object',
7
- properties: {
8
- url: {
9
- type: 'string',
10
- description: 'URL to navigate to',
11
- },
12
- waitUntil: {
13
- type: 'string',
14
- enum: ['load', 'domcontentloaded', 'networkidle', 'networkidle2'],
15
- description: 'Navigation wait condition (default: domcontentloaded)',
16
- default: 'domcontentloaded',
17
- },
18
- actions: {
19
- type: 'array',
20
- description: 'Optional sequence of actions to perform after navigation (click, type, wait)',
21
- items: {
22
- type: 'object',
23
- properties: {
24
- type: { type: 'string', enum: ['click', 'type', 'wait', 'evaluate'] },
25
- selector: { type: 'string' },
26
- text: { type: 'string' },
27
- expression: { type: 'string' },
28
- delayMs: { type: 'number' },
29
- },
30
- required: ['type'],
31
- },
32
- },
33
- exportHar: {
34
- type: 'boolean',
35
- description: 'Export captured traffic as HAR after collection (default: true — always persists to disk to survive context compression)',
36
- default: true,
37
- },
38
- harOutputPath: {
39
- type: 'string',
40
- description: 'File path for HAR export (default: auto-generated timestamped path artifacts/har/jshook-capture-<ts>.har)',
41
- },
42
- exportReport: {
43
- type: 'boolean',
44
- description: 'Export workflow summary as Markdown report (default: true)',
45
- default: true,
46
- },
47
- reportOutputPath: {
48
- type: 'string',
49
- description: 'File path for Markdown report export (default: auto-generated timestamped path artifacts/reports/web-api-capture-<ts>.md)',
50
- },
51
- waitAfterActionsMs: {
52
- type: 'number',
53
- description: 'Milliseconds to wait after all actions before collecting (default: 1500)',
54
- default: 1500,
55
- },
3
+ tool('web_api_capture_session')
4
+ .desc('Full-chain web API capture workflow: navigate → inject interceptors → perform actions → collect requests → extract auth → optionally export HAR + Markdown report.\n\nThis is a composite tool that replaces the following manual sequence:\n1. network_enable\n2. console_inject_fetch_interceptor + console_inject_xhr_interceptor\n3. page_navigate\n4. (perform actions)\n5. network_get_requests\n6. network_extract_auth\n7. network_export_har (optional)\n\n**Captured fetch requests are auto-persisted to localStorage.__capturedAPIs** — survives context compression.\n**Set exportHar/exportReport: true to persist artifacts to disk** before context is compressed.\n\nUSE THIS when you need to capture the complete API surface of a page in one step.')
5
+ .string('url', 'URL to navigate to')
6
+ .enum('waitUntil', ['load', 'domcontentloaded', 'networkidle', 'networkidle2'], 'Navigation wait condition', { default: 'domcontentloaded' })
7
+ .array('actions', {
8
+ type: 'object',
9
+ properties: {
10
+ type: { type: 'string', enum: ['click', 'type', 'wait', 'evaluate'] },
11
+ selector: { type: 'string' },
12
+ text: { type: 'string' },
13
+ expression: { type: 'string' },
14
+ delayMs: { type: 'number' },
15
+ },
16
+ required: ['type'],
17
+ }, 'Optional sequence of actions to perform after navigation (click, type, wait)')
18
+ .boolean('exportHar', 'Export captured traffic as HAR after collection (always persists to disk to survive context compression)', { default: true })
19
+ .string('harOutputPath', 'File path for HAR export (default: auto-generated timestamped random path)')
20
+ .boolean('exportReport', 'Export workflow summary as Markdown report', { default: true })
21
+ .string('reportOutputPath', 'File path for Markdown report export (default: auto-generated timestamped random path)')
22
+ .number('waitAfterActionsMs', 'Milliseconds to wait after all actions before collecting', {
23
+ default: 1500,
24
+ })
25
+ .required('url')
26
+ .openWorld()
27
+ .build(),
28
+ tool('js_bundle_search')
29
+ .desc('Fetch a remote JavaScript bundle and search it with multiple named regex patterns in a single call.\n\nFeatures over bundle_search script:\n- Server-side fetch (no browser CORS constraints)\n- Bundle caching (5-min TTL, keyed by URL) — avoids re-downloading 1MB+ files\n- SVG/base64 false-positive filtering (`stripNoise: true` by default)\n- Per-pattern independent context window (`contextBefore`/`contextAfter`)\n- Up to `maxMatches` hits per pattern\n\nExample:\n js_bundle_search({\n url: "https://assets.example.com/main.js",\n patterns: [\n { name: "tier_values", regex: "subscription.plus|user_tier" },\n { name: "payment_apis", regex: "/api/v1/payment/[a-z_]+" },\n { name: "setSubscription", regex: "setSubscriptionPlus\\\\([^)]{0,80}\\\\)" }\n ]\n })')
30
+ .string('url', 'Remote URL of the JavaScript bundle to analyze')
31
+ .array('patterns', {
32
+ type: 'object',
33
+ properties: {
34
+ name: { type: 'string', description: 'Human-readable label for this pattern' },
35
+ regex: { type: 'string', description: 'JavaScript regex string' },
36
+ contextBefore: {
37
+ type: 'number',
38
+ description: 'Characters of context before match (default: 80)',
56
39
  },
57
- required: ['url'],
58
- },
59
- annotations: {
60
- readOnlyHint: false,
61
- destructiveHint: false,
62
- idempotentHint: false,
63
- openWorldHint: true,
64
- },
65
- },
66
- {
67
- name: 'js_bundle_search',
68
- description: 'Fetch a remote JavaScript bundle and search it with multiple named regex patterns in a single call.\n\nFeatures over bundle_search script:\n- Server-side fetch (no browser CORS constraints)\n- Bundle caching (5-min TTL, keyed by URL) — avoids re-downloading 1MB+ files\n- SVG/base64 false-positive filtering (`stripNoise: true` by default)\n- Per-pattern independent context window (`contextBefore`/`contextAfter`)\n- Up to `maxMatches` hits per pattern\n\nExample:\n js_bundle_search({\n url: "https://assets.example.com/main.js",\n patterns: [\n { name: "tier_values", regex: "subscription.plus|user_tier" },\n { name: "payment_apis", regex: "/api/v1/payment/[a-z_]+" },\n { name: "setSubscription", regex: "setSubscriptionPlus\\\\([^)]{0,80}\\\\)" }\n ]\n })',
69
- inputSchema: {
70
- type: 'object',
71
- properties: {
72
- url: {
73
- type: 'string',
74
- description: 'Remote URL of the JavaScript bundle to analyze',
75
- },
76
- patterns: {
77
- type: 'array',
78
- description: 'Named regex patterns to search for',
79
- items: {
80
- type: 'object',
81
- properties: {
82
- name: { type: 'string', description: 'Human-readable label for this pattern' },
83
- regex: { type: 'string', description: 'JavaScript regex string' },
84
- contextBefore: {
85
- type: 'number',
86
- description: 'Characters of context before match (default: 80)',
87
- },
88
- contextAfter: {
89
- type: 'number',
90
- description: 'Characters of context after match (default: 80)',
91
- },
92
- },
93
- required: ['name', 'regex'],
94
- },
95
- },
96
- cacheBundle: {
97
- type: 'boolean',
98
- description: 'Cache the bundle for 5 minutes to avoid re-downloads (default: true)',
99
- default: true,
100
- },
101
- stripNoise: {
102
- type: 'boolean',
103
- description: 'Skip matches inside SVG path data or base64 blobs (default: true)',
104
- default: true,
105
- },
106
- maxMatches: {
107
- type: 'number',
108
- description: 'Maximum matches to return per pattern (default: 10)',
109
- default: 10,
110
- },
111
- },
112
- required: ['url', 'patterns'],
113
- },
114
- annotations: {
115
- readOnlyHint: false,
116
- destructiveHint: false,
117
- idempotentHint: false,
118
- openWorldHint: true,
119
- },
120
- },
121
- {
122
- name: 'page_script_register',
123
- description: 'Register a named reusable JavaScript snippet in the Script Library.\n\nBuilt-in snippets available without registration:\n- `auth_extract` — pull JWT/tokens from localStorage and cookies\n- `bundle_search` — fetch a CDN JS bundle and search it with regexes (params: { url, patterns })\n- `react_fill_form` — fill React controlled inputs (params: { fields: { selector: value } })\n- `dom_find_upgrade_buttons` — scan for upgrade/subscription UI elements\n\nRegistered scripts are executed with `page_script_run`. Scripts may reference `__params__` (set at call time via page_script_run params).',
124
- inputSchema: {
125
- type: 'object',
126
- properties: {
127
- name: {
128
- type: 'string',
129
- description: 'Unique script name (e.g. "my_extractor")',
130
- },
131
- code: {
132
- type: 'string',
133
- description: 'JavaScript expression/IIFE to register. Use `typeof __params__ !== "undefined" ? __params__ : {}` to safely access runtime parameters.',
134
- },
135
- description: {
136
- type: 'string',
137
- description: 'Optional human-readable description of the script',
138
- },
139
- },
140
- required: ['name', 'code'],
141
- },
142
- annotations: {
143
- readOnlyHint: false,
144
- destructiveHint: false,
145
- idempotentHint: false,
146
- openWorldHint: false,
147
- },
148
- },
149
- {
150
- name: 'page_script_run',
151
- description: 'Execute a named script from the Script Library in the current page context.\n\nOptionally inject runtime parameters accessible as `__params__` inside the script.\n\nExample:\n page_script_run({ name: "bundle_search", params: { url: "https://cdn.main.js", patterns: ["tier", "subscription"] } })\n page_script_run({ name: "auth_extract" })',
152
- inputSchema: {
153
- type: 'object',
154
- properties: {
155
- name: {
156
- type: 'string',
157
- description: 'Script name to run (built-in or registered)',
158
- },
159
- params: {
160
- type: 'object',
161
- description: 'Optional parameters injected as __params__ (must be JSON-serializable)',
162
- additionalProperties: true,
163
- },
164
- },
165
- required: ['name'],
166
- },
167
- annotations: {
168
- readOnlyHint: false,
169
- destructiveHint: false,
170
- idempotentHint: false,
171
- openWorldHint: true,
172
- },
173
- },
174
- {
175
- name: 'api_probe_batch',
176
- description: 'Probe multiple API endpoints in a single browser-context fetch burst.\n\nAuto-injects Bearer token from localStorage[token] / localStorage[active_token]. Returns status codes, content types, and response snippets for matching statuses. Skips HTML responses (login-redirect false-positives).\n\nReplaces 5–30 individual page_evaluate fetch calls with one tool call.\n\n**ALWAYS start with OpenAPI/Swagger discovery paths first** — a single 200 response gives you the full API schema:\n "/docs", "/openapi.json", "/api/docs", "/swagger.json", "/api/v1/openapi.json", "/api/openapi.json"\n\nExample:\n api_probe_batch({ baseUrl: "https://chat.qwen.ai", paths: ["/docs", "/openapi.json", "/api/v1/users/me", "/api/v1/chats/", "/api/admin/users"] })',
177
- inputSchema: {
178
- type: 'object',
179
- properties: {
180
- baseUrl: {
181
- type: 'string',
182
- description: 'Base URL prefix (e.g. "https://chat.qwen.ai") — trailing slash will be stripped',
183
- },
184
- paths: {
185
- type: 'array',
186
- items: { type: 'string' },
187
- description: 'Paths to probe (e.g. ["/api/v1/users", "/api/v1/chats"])',
188
- },
189
- method: {
190
- type: 'string',
191
- enum: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'],
192
- description: 'HTTP method for all probes (default: GET)',
193
- default: 'GET',
194
- },
195
- headers: {
196
- type: 'object',
197
- description: 'Additional HTTP headers to include in all requests',
198
- additionalProperties: { type: 'string' },
199
- },
200
- bodyTemplate: {
201
- type: 'string',
202
- description: 'JSON body string to send for POST/PUT/PATCH requests (optional)',
203
- },
204
- includeBodyStatuses: {
205
- type: 'array',
206
- items: { type: 'number' },
207
- description: 'Status codes for which to include response body snippet (default: [200, 201, 204])',
208
- },
209
- maxBodySnippetLength: {
210
- type: 'number',
211
- description: 'Max characters per response body snippet (default: 500)',
212
- default: 500,
213
- },
214
- autoInjectAuth: {
215
- type: 'boolean',
216
- description: 'Auto-inject Bearer token from localStorage (token / active_token / access_token). Default: true.',
217
- default: true,
218
- },
40
+ contextAfter: {
41
+ type: 'number',
42
+ description: 'Characters of context after match (default: 80)',
219
43
  },
220
- required: ['baseUrl', 'paths'],
221
- },
222
- annotations: {
223
- readOnlyHint: false,
224
- destructiveHint: false,
225
- idempotentHint: false,
226
- openWorldHint: true,
227
- },
228
- },
229
- {
230
- name: 'register_account_flow',
231
- description: 'Automated account registration flow with email verification.\n\nHandles the full flow:\n1. Navigate to registration page\n2. Fill in account fields (username, email, password, etc.)\n3. Submit registration form\n4. Open temporary email provider in a new tab\n5. Wait for and extract verification link/code\n6. Navigate to verification URL or fill in the code\n7. Return complete flow result\n\nUSE THIS instead of manually coordinating page_type + page_click + tab_workflow + dom_find_by_text for registration flows.',
232
- inputSchema: {
233
- type: 'object',
234
- properties: {
235
- registerUrl: {
236
- type: 'string',
237
- description: 'URL of the registration page',
238
- },
239
- fields: {
240
- type: 'object',
241
- description: 'Form field values keyed by input name attribute (e.g. {"email": "...", "password": "..."})',
242
- additionalProperties: { type: 'string' },
243
- },
244
- submitSelector: {
245
- type: 'string',
246
- description: 'CSS selector for the submit button (default: "button[type=\'submit\']")',
247
- default: "button[type='submit']",
248
- },
249
- emailProviderUrl: {
250
- type: 'string',
251
- description: 'URL of the temporary email provider page (e.g. https://www.linshiyouxiang.net)',
252
- },
253
- emailSelector: {
254
- type: 'string',
255
- description: 'CSS selector for the current email address element in the provider page',
256
- },
257
- verificationLinkPattern: {
258
- type: 'string',
259
- description: 'URL pattern to identify the verification link in emails (e.g. "/auth/activate", "/verify")',
260
- },
261
- checkboxSelectors: {
262
- type: 'array',
263
- items: { type: 'string' },
264
- description: 'CSS selectors for checkboxes to click before submitting (terms of service, etc.)',
265
- },
266
- timeoutMs: {
267
- type: 'number',
268
- description: 'Total timeout for the entire flow in milliseconds (default: 60000)',
269
- default: 60000,
270
- },
271
- },
272
- required: ['registerUrl', 'fields'],
273
- },
274
- annotations: {
275
- readOnlyHint: false,
276
- destructiveHint: false,
277
- idempotentHint: false,
278
- openWorldHint: true,
279
- },
280
- },
281
- {
282
- name: 'batch_register',
283
- description: 'Batch account registration with concurrency control, retry policies, and idempotency.\n\n' +
284
- 'Executes register_account_flow for multiple accounts in parallel, with:\n' +
285
- '- Configurable max concurrency\n' +
286
- '- Per-account retry with exponential backoff\n' +
287
- '- Idempotent key (email/username) to skip already-succeeded accounts\n' +
288
- '- Aggregated success/failure summary\n\n' +
289
- 'Example:\n' +
290
- ' batch_register({\n' +
291
- ' registerUrl: "https://example.com/register",\n' +
292
- ' accounts: [\n' +
293
- ' { fields: { email: "a@temp.mail", password: "Pass1!" } },\n' +
294
- ' { fields: { email: "b@temp.mail", password: "Pass2!" } }\n' +
295
- ' ],\n' +
296
- ' maxConcurrency: 2\n' +
297
- ' })',
298
- inputSchema: {
299
- type: 'object',
300
- properties: {
301
- registerUrl: {
302
- type: 'string',
303
- description: 'URL of the registration page (shared across all accounts)',
304
- },
305
- accounts: {
306
- type: 'array',
307
- description: 'Array of account configurations',
308
- items: {
309
- type: 'object',
310
- properties: {
311
- fields: {
312
- type: 'object',
313
- description: 'Form field values for this account',
314
- additionalProperties: { type: 'string' },
315
- },
316
- submitSelector: { type: 'string' },
317
- emailProviderUrl: { type: 'string' },
318
- emailSelector: { type: 'string' },
319
- verificationLinkPattern: { type: 'string' },
320
- checkboxSelectors: {
321
- type: 'array',
322
- items: { type: 'string' },
323
- },
324
- },
325
- required: ['fields'],
326
- },
327
- },
328
- maxConcurrency: {
329
- type: 'integer',
330
- description: 'Maximum parallel registrations (default: 2)',
331
- default: 2,
332
- },
333
- maxRetries: {
334
- type: 'integer',
335
- description: 'Max retries per account on failure (default: 1)',
336
- default: 1,
337
- },
338
- retryBackoffMs: {
339
- type: 'number',
340
- description: 'Initial retry backoff in ms (default: 2000)',
341
- default: 2000,
342
- },
343
- timeoutPerAccountMs: {
344
- type: 'number',
345
- description: 'Timeout per individual registration in ms (default: 90000)',
346
- default: 90000,
347
- },
348
- submitSelector: {
349
- type: 'string',
350
- description: 'Default submit button selector for all accounts',
351
- default: "button[type='submit']",
352
- },
353
- },
354
- required: ['registerUrl', 'accounts'],
355
- },
356
- annotations: {
357
- readOnlyHint: false,
358
- destructiveHint: false,
359
- idempotentHint: false,
360
- openWorldHint: true,
361
- },
362
- },
363
- {
364
- name: 'list_extension_workflows',
365
- description: 'List runtime-loaded extension workflows discovered from plugins/ or workflows/ directories, including metadata needed before execution.',
366
- inputSchema: {
367
- type: 'object',
368
- properties: {},
369
- additionalProperties: false,
370
- },
371
- annotations: {
372
- readOnlyHint: true,
373
- destructiveHint: false,
374
- idempotentHint: true,
375
- openWorldHint: false,
376
- },
377
- },
378
- {
379
- name: 'run_extension_workflow',
380
- description: 'Execute a runtime-loaded extension workflow contract by workflowId. Supports config overrides, per-node input overrides, and an optional timeout override.',
381
- inputSchema: {
382
- type: 'object',
383
- properties: {
384
- workflowId: {
385
- type: 'string',
386
- description: 'Registered extension workflow id to execute',
387
- },
388
- profile: {
389
- type: 'string',
390
- description: 'Optional profile label exposed to the workflow execution context',
391
- },
392
- config: {
393
- type: 'object',
394
- description: 'Optional config overrides read through ctx.getConfig(path, fallback)',
395
- additionalProperties: true,
396
- },
397
- nodeInputOverrides: {
398
- type: 'object',
399
- description: 'Optional shallow input overrides keyed by workflow node id',
400
- additionalProperties: {
401
- type: 'object',
402
- additionalProperties: true,
403
- },
404
- },
405
- timeoutMs: {
406
- type: 'number',
407
- description: 'Optional override for total workflow timeout in milliseconds',
408
- },
409
- },
410
- required: ['workflowId'],
411
- },
412
- annotations: {
413
- readOnlyHint: false,
414
- destructiveHint: false,
415
- idempotentHint: false,
416
- openWorldHint: true,
417
44
  },
418
- },
45
+ required: ['name', 'regex'],
46
+ }, 'Named regex patterns to search for')
47
+ .boolean('cacheBundle', 'Cache the bundle for 5 minutes to avoid re-downloads', {
48
+ default: true,
49
+ })
50
+ .boolean('stripNoise', 'Skip matches inside SVG path data or base64 blobs', { default: true })
51
+ .number('maxMatches', 'Maximum matches to return per pattern', { default: 10 })
52
+ .required('url', 'patterns')
53
+ .openWorld()
54
+ .build(),
55
+ tool('page_script_register')
56
+ .desc('Register a named reusable JavaScript snippet in the Script Library.\n\nCore ships built-in snippets such as `auth_extract`, `bundle_search`, `react_fill_form`, and `dom_find_upgrade_buttons`.\n\nRegistered scripts are executed with `page_script_run`. Scripts may reference `__params__` (set at call time via page_script_run params).')
57
+ .string('name', 'Unique script name (e.g. "my_extractor")')
58
+ .string('code', 'JavaScript expression/IIFE to register. Use `typeof __params__ !== "undefined" ? __params__ : {}` to safely access runtime parameters.')
59
+ .string('description', 'Optional human-readable description of the script')
60
+ .required('name', 'code')
61
+ .build(),
62
+ tool('page_script_run')
63
+ .desc('Execute a named script from the Script Library in the current page context.\n\nOptionally inject runtime parameters accessible as `__params__` inside the script.\n\nExample:\n page_script_run({ name: "bundle_search", params: { url: "https://cdn.main.js", patterns: ["tier", "subscription"] } })\n page_script_run({ name: "auth_extract" })')
64
+ .string('name', 'Script name to run (built-in or registered)')
65
+ .prop('params', {
66
+ type: 'object',
67
+ additionalProperties: true,
68
+ description: 'Optional parameters injected as __params__ (must be JSON-serializable)',
69
+ })
70
+ .required('name')
71
+ .openWorld()
72
+ .build(),
73
+ tool('api_probe_batch')
74
+ .desc('Probe multiple API endpoints in a single browser-context fetch burst.\n\nAuto-injects Bearer token from localStorage[token] / localStorage[active_token]. Returns status codes, content types, and response snippets for matching statuses. Skips HTML responses (login-redirect false-positives).\n\nReplaces 5–30 individual page_evaluate fetch calls with one tool call.\n\n**ALWAYS start with OpenAPI/Swagger discovery paths first** — a single 200 response gives you the full API schema:\n "/docs", "/openapi.json", "/api/docs", "/swagger.json", "/api/v1/openapi.json", "/api/openapi.json"\n\nExample:\n api_probe_batch({ baseUrl: "https://chat.qwen.ai", paths: ["/docs", "/openapi.json", "/api/v1/users/me", "/api/v1/chats/", "/api/admin/users"] })')
75
+ .string('baseUrl', 'Base URL prefix (e.g. "https://chat.qwen.ai") — trailing slash will be stripped')
76
+ .array('paths', { type: 'string' }, 'Paths to probe (e.g. ["/api/v1/users", "/api/v1/chats"])')
77
+ .enum('method', ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'], 'HTTP method for all probes', { default: 'GET' })
78
+ .object('headers', { additionalProperties: { type: 'string' } }, 'Additional HTTP headers to include in all requests')
79
+ .string('bodyTemplate', 'JSON body string to send for POST/PUT/PATCH requests (optional)')
80
+ .array('includeBodyStatuses', { type: 'number' }, 'Status codes for which to include response body snippet (default: [200, 201, 204])')
81
+ .number('maxBodySnippetLength', 'Max characters per response body snippet', { default: 500 })
82
+ .boolean('autoInjectAuth', 'Auto-inject Bearer token from localStorage (token / active_token / access_token).', { default: true })
83
+ .required('baseUrl', 'paths')
84
+ .openWorld()
85
+ .build(),
86
+ tool('register_account_flow')
87
+ .desc('Automated account registration flow with email verification.\n\nHandles the full flow:\n1. Navigate to registration page\n2. Fill in account fields (username, email, password, etc.)\n3. Submit registration form\n4. Open temporary email provider in a new tab\n5. Wait for and extract verification link/code\n6. Navigate to verification URL or fill in the code\n7. Return complete flow result\n\nUSE THIS instead of manually coordinating page_type + page_click + tab_workflow + dom_find_by_text for registration flows.')
88
+ .string('registerUrl', 'URL of the registration page')
89
+ .object('fields', { additionalProperties: { type: 'string' } }, 'Form field values keyed by input name attribute (e.g. {"email": "...", "password": "..."})')
90
+ .string('submitSelector', 'CSS selector for the submit button', {
91
+ default: "button[type='submit']",
92
+ })
93
+ .string('emailProviderUrl', 'URL of the temporary email provider page (e.g. https://www.linshiyouxiang.net)')
94
+ .string('emailSelector', 'CSS selector for the current email address element in the provider page')
95
+ .string('verificationLinkPattern', 'URL pattern to identify the verification link in emails (e.g. "/auth/activate", "/verify")')
96
+ .array('checkboxSelectors', { type: 'string' }, 'CSS selectors for checkboxes to click before submitting (terms of service, etc.)')
97
+ .number('timeoutMs', 'Total timeout for the entire flow in milliseconds', { default: 60000 })
98
+ .required('registerUrl', 'fields')
99
+ .openWorld()
100
+ .build(),
101
+ tool('batch_register')
102
+ .desc('Batch account registration with concurrency control, retry policies, and idempotency.\n\nExecutes register_account_flow for multiple accounts in parallel, with:\n- Configurable max concurrency\n- Per-account retry with exponential backoff\n- Idempotent key (email/username) to skip already-succeeded accounts\n- Aggregated success/failure summary\n\nExample:\n batch_register({\n registerUrl: "https://example.com/register",\n accounts: [\n { fields: { email: "a@temp.mail", password: "Pass1!" } },\n { fields: { email: "b@temp.mail", password: "Pass2!" } }\n ],\n maxConcurrency: 2\n })')
103
+ .string('registerUrl', 'URL of the registration page (shared across all accounts)')
104
+ .array('accounts', {
105
+ type: 'object',
106
+ properties: {
107
+ fields: { type: 'object', additionalProperties: { type: 'string' } },
108
+ submitSelector: { type: 'string' },
109
+ emailProviderUrl: { type: 'string' },
110
+ emailSelector: { type: 'string' },
111
+ verificationLinkPattern: { type: 'string' },
112
+ checkboxSelectors: { type: 'array', items: { type: 'string' } },
113
+ },
114
+ required: ['fields'],
115
+ }, 'Array of account configurations')
116
+ .number('maxConcurrency', 'Maximum parallel registrations', { default: 2 })
117
+ .number('maxRetries', 'Max retries per account on failure', { default: 1 })
118
+ .number('retryBackoffMs', 'Initial retry backoff in ms', { default: 2000 })
119
+ .number('timeoutPerAccountMs', 'Timeout per individual registration in ms', { default: 90000 })
120
+ .string('submitSelector', 'Default submit button selector for all accounts', {
121
+ default: "button[type='submit']",
122
+ })
123
+ .required('registerUrl', 'accounts')
124
+ .openWorld()
125
+ .build(),
126
+ tool('list_extension_workflows')
127
+ .desc('List runtime-loaded extension workflows discovered from plugins/ or workflows/ directories, including metadata needed before execution.')
128
+ .readOnly()
129
+ .idempotent()
130
+ .build(),
131
+ tool('run_extension_workflow')
132
+ .desc('Execute a runtime-loaded extension workflow contract by workflowId. Supports config overrides, per-node input overrides, and an optional timeout override.')
133
+ .string('workflowId', 'Registered extension workflow id to execute')
134
+ .string('profile', 'Optional profile label exposed to the workflow execution context')
135
+ .prop('config', {
136
+ type: 'object',
137
+ additionalProperties: true,
138
+ description: 'Optional config overrides read through ctx.getConfig(path, fallback)',
139
+ })
140
+ .prop('nodeInputOverrides', {
141
+ type: 'object',
142
+ additionalProperties: { type: 'object', additionalProperties: true },
143
+ description: 'Optional shallow input overrides keyed by workflow node id',
144
+ })
145
+ .number('timeoutMs', 'Optional override for total workflow timeout in milliseconds')
146
+ .required('workflowId')
147
+ .openWorld()
148
+ .build(),
419
149
  ];
@@ -244,7 +244,7 @@ export class WorkflowHandlersAccountBundle extends WorkflowHandlersApi {
244
244
  catch (e) {
245
245
  if (e instanceof Error && e.message.startsWith('Blocked:'))
246
246
  throw e;
247
- throw new Error(`DNS resolution failed for "${currentUrl}"`);
247
+ throw new Error(`DNS resolution failed for "${currentUrl}"`, { cause: e });
248
248
  }
249
249
  }
250
250
  if (!fetchUrl.startsWith('https://') && !LOOPBACK_HTTP_URL_RE.test(fetchUrl)) {