@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,442 +1,213 @@
1
+ import { tool } from '../../registry/tool-builder.js';
1
2
  export const browserPageCoreTools = [
2
- {
3
- name: 'page_navigate',
4
- description: `Navigate to a URL
5
-
6
- Features:
7
- - Automatic CAPTCHA detection
8
- - Optional network monitoring (set enableNetworkMonitoring=true to auto-enable)
9
- - Waits for page load based on waitUntil strategy
10
-
11
- Network Monitoring:
12
- If you want to capture network requests, you have two options:
13
- 1. Call network_enable before page_navigate (recommended for full control)
14
- 2. Set enableNetworkMonitoring=true in page_navigate (convenient for quick capture)
15
-
16
- Example with network monitoring:
17
- page_navigate(url="https:
18
- -> Network monitoring auto-enabled
19
- -> Page loads
20
- -> Use network_get_requests to see captured requests`,
21
- inputSchema: {
22
- type: 'object',
23
- properties: {
24
- url: {
25
- type: 'string',
26
- description: 'Target URL to navigate to',
27
- },
28
- waitUntil: {
29
- type: 'string',
30
- description: 'When to consider navigation succeeded',
31
- enum: ['load', 'domcontentloaded', 'networkidle', 'commit'],
32
- default: 'networkidle',
33
- },
34
- timeout: {
35
- type: 'number',
36
- description: 'Navigation timeout in milliseconds',
37
- default: 30000,
38
- },
39
- enableNetworkMonitoring: {
40
- type: 'boolean',
41
- description: ' Auto-enable network monitoring before navigation to capture all requests. If already enabled, this has no effect.',
42
- default: false,
43
- },
3
+ tool('page_navigate')
4
+ .desc(`Navigate to a URL
5
+
6
+ Features:
7
+ - Automatic CAPTCHA detection
8
+ - Optional network monitoring (set enableNetworkMonitoring=true to auto-enable)
9
+ - Waits for page load based on waitUntil strategy
10
+
11
+ Network Monitoring:
12
+ If you want to capture network requests, you have two options:
13
+ 1. Call network_enable before page_navigate (recommended for full control)
14
+ 2. Set enableNetworkMonitoring=true in page_navigate (convenient for quick capture)
15
+
16
+ Example with network monitoring:
17
+ page_navigate(url="https:")
18
+ -> Network monitoring auto-enabled
19
+ -> Page loads
20
+ -> Use network_get_requests to see captured requests`)
21
+ .string('url', 'Target URL to navigate to')
22
+ .enum('waitUntil', ['load', 'domcontentloaded', 'networkidle', 'commit'], 'When to consider navigation succeeded', { default: 'networkidle' })
23
+ .number('timeout', 'Navigation timeout in milliseconds', { default: 30000 })
24
+ .boolean('enableNetworkMonitoring', 'Auto-enable network monitoring before navigation to capture all requests. If already enabled, this has no effect.', { default: false })
25
+ .required('url')
26
+ .idempotent()
27
+ .openWorld()
28
+ .build(),
29
+ tool('page_reload').desc('Reload current page').idempotent().openWorld().build(),
30
+ tool('page_back').desc('Navigate back in history').openWorld().build(),
31
+ tool('page_forward').desc('Navigate forward in history').openWorld().build(),
32
+ tool('dom_query_selector')
33
+ .desc('Query single element (like document.querySelector). AI should use this BEFORE clicking to verify element exists.')
34
+ .string('selector', 'CSS selector')
35
+ .boolean('getAttributes', 'Whether to get element attributes', { default: true })
36
+ .required('selector')
37
+ .readOnly()
38
+ .idempotent()
39
+ .build(),
40
+ tool('dom_query_all')
41
+ .desc('Query all matching elements (like document.querySelectorAll)')
42
+ .string('selector', 'CSS selector')
43
+ .number('limit', 'Maximum number of elements to return', { default: 100 })
44
+ .required('selector')
45
+ .readOnly()
46
+ .idempotent()
47
+ .build(),
48
+ tool('dom_get_structure')
49
+ .desc(`Get page DOM structure (for AI to understand page layout).
50
+
51
+ IMPORTANT: Large DOM structures (>50KB) automatically return summary + detailId.
52
+
53
+ Best Practices:
54
+ 1. Use maxDepth=2 for initial exploration (faster, smaller)
55
+ 2. Use maxDepth=3 only when needed (may be large)
56
+ 3. Set includeText=false to reduce size if text not needed
57
+
58
+ Example:
59
+ dom_get_structure(maxDepth=2, includeText=false)
60
+ -> Returns compact structure without text content`)
61
+ .number('maxDepth', 'Maximum depth of DOM tree (default: 3, recommend: 2 for large pages)', {
62
+ default: 3,
63
+ })
64
+ .boolean('includeText', 'Whether to include text content (set false to reduce size)', {
65
+ default: true,
66
+ })
67
+ .readOnly()
68
+ .idempotent()
69
+ .build(),
70
+ tool('dom_find_clickable')
71
+ .desc('Find all clickable elements (buttons, links). Use this to discover what can be clicked.')
72
+ .string('filterText', 'Filter by text content (optional)')
73
+ .readOnly()
74
+ .idempotent()
75
+ .build(),
76
+ tool('page_click')
77
+ .desc('Click an element. Use dom_query_selector FIRST to verify element exists.')
78
+ .string('selector', 'CSS selector of element to click')
79
+ .enum('button', ['left', 'right', 'middle'], 'Mouse button to click', { default: 'left' })
80
+ .number('clickCount', 'Number of clicks (numeric string is accepted and auto-normalized)', {
81
+ default: 1,
82
+ })
83
+ .number('delay', 'Delay between mousedown and mouseup in milliseconds (numeric string is accepted)')
84
+ .required('selector')
85
+ .openWorld()
86
+ .build(),
87
+ tool('page_type')
88
+ .desc('Type text into an input element')
89
+ .string('selector', 'CSS selector of input element')
90
+ .string('text', 'Text to type')
91
+ .number('delay', 'Delay between key presses in milliseconds')
92
+ .required('selector', 'text')
93
+ .openWorld()
94
+ .build(),
95
+ tool('page_select')
96
+ .desc('Select option(s) in a <select> element')
97
+ .string('selector', 'CSS selector of select element')
98
+ .array('values', { type: 'string' }, 'Values to select')
99
+ .required('selector', 'values')
100
+ .idempotent()
101
+ .openWorld()
102
+ .build(),
103
+ tool('page_hover')
104
+ .desc('Hover over an element')
105
+ .string('selector', 'CSS selector of element to hover')
106
+ .required('selector')
107
+ .idempotent()
108
+ .openWorld()
109
+ .build(),
110
+ tool('page_scroll')
111
+ .desc('Scroll the page')
112
+ .number('x', 'Horizontal scroll position', { default: 0 })
113
+ .number('y', 'Vertical scroll position', { default: 0 })
114
+ .idempotent()
115
+ .build(),
116
+ tool('page_wait_for_selector')
117
+ .desc('Wait for an element to appear')
118
+ .string('selector', 'CSS selector to wait for')
119
+ .number('timeout', 'Timeout in milliseconds', { default: 30000 })
120
+ .required('selector')
121
+ .readOnly()
122
+ .idempotent()
123
+ .build(),
124
+ tool('page_evaluate')
125
+ .desc(`Execute JavaScript code in page context and get result.
126
+
127
+ IMPORTANT: Large results (>50KB) automatically return summary + detailId to prevent context overflow.
128
+ Use get_detailed_data(detailId) to retrieve full data if needed.
129
+
130
+ Best Practices:
131
+ - Query specific properties: { hasAcrawler: !!window.byted_acrawler }
132
+ - Return only needed data: Object.keys(window.byted_acrawler)
133
+ - Avoid returning entire objects: window (too large!)
134
+
135
+ Example:
136
+ page_evaluate("({ keys: Object.keys(window.byted_acrawler), type: typeof window.byted_acrawler })")
137
+ -> Returns small summary
138
+ -> If you need full object, use the returned detailId`)
139
+ .string('code', 'JavaScript code to execute')
140
+ .boolean('autoSummarize', 'Auto-summarize large results (default: true)', { default: true })
141
+ .number('maxSize', 'Max result size in bytes before auto-summarizing (default: 50KB)', {
142
+ default: 51200,
143
+ })
144
+ .array('fieldFilter', { type: 'string' }, 'Server-side field filter: remove keys matching these names from the result object (recursive). Useful to strip noise fields like "icon", "avatar", "base64Image".')
145
+ .boolean('stripBase64', 'Strip data URI and bare base64 strings from the result, replacing them with a size placeholder. Prevents context overflow from embedded images/fonts (default: false).', { default: false })
146
+ .required('code')
147
+ .openWorld()
148
+ .build(),
149
+ tool('page_screenshot')
150
+ .desc(`Take a screenshot of the page, a specific DOM element, multiple elements, or a pixel region.
151
+
152
+ Modes:
153
+ - Full page: omit selector or pass "all"
154
+ - Single element: selector = ".my-class"
155
+ - Multiple elements: selector = [".header", "#main", ".footer"] — returns one screenshot per element
156
+ - Pixel region: pass clip = {x, y, width, height} (ignored when selector is set)`)
157
+ .prop('selector', {
158
+ oneOf: [
159
+ { type: 'string', description: 'Single CSS selector' },
160
+ {
161
+ type: 'array',
162
+ items: { type: 'string' },
163
+ description: 'Array of CSS selectors for batch element screenshots',
44
164
  },
45
- required: ['url'],
46
- },
47
- },
48
- {
49
- name: 'page_reload',
50
- description: 'Reload current page',
51
- inputSchema: {
52
- type: 'object',
53
- properties: {},
54
- },
55
- },
56
- {
57
- name: 'page_back',
58
- description: 'Navigate back in history',
59
- inputSchema: {
60
- type: 'object',
61
- properties: {},
62
- },
63
- },
64
- {
65
- name: 'page_forward',
66
- description: 'Navigate forward in history',
67
- inputSchema: {
68
- type: 'object',
69
- properties: {},
70
- },
71
- },
72
- {
73
- name: 'dom_query_selector',
74
- description: 'Query single element (like document.querySelector). AI should use this BEFORE clicking to verify element exists.',
75
- inputSchema: {
76
- type: 'object',
77
- properties: {
78
- selector: {
79
- type: 'string',
80
- description: 'CSS selector',
81
- },
82
- getAttributes: {
83
- type: 'boolean',
84
- description: 'Whether to get element attributes',
85
- default: true,
86
- },
87
- },
88
- required: ['selector'],
89
- },
90
- },
91
- {
92
- name: 'dom_query_all',
93
- description: 'Query all matching elements (like document.querySelectorAll)',
94
- inputSchema: {
95
- type: 'object',
96
- properties: {
97
- selector: {
98
- type: 'string',
99
- description: 'CSS selector',
100
- },
101
- limit: {
102
- type: 'number',
103
- description: 'Maximum number of elements to return',
104
- default: 100,
105
- },
106
- },
107
- required: ['selector'],
108
- },
109
- },
110
- {
111
- name: 'dom_get_structure',
112
- description: `Get page DOM structure (for AI to understand page layout).
113
-
114
- IMPORTANT: Large DOM structures (>50KB) automatically return summary + detailId.
115
-
116
- Best Practices:
117
- 1. Use maxDepth=2 for initial exploration (faster, smaller)
118
- 2. Use maxDepth=3 only when needed (may be large)
119
- 3. Set includeText=false to reduce size if text not needed
120
-
121
- Example:
122
- dom_get_structure(maxDepth=2, includeText=false)
123
- -> Returns compact structure without text content`,
124
- inputSchema: {
125
- type: 'object',
126
- properties: {
127
- maxDepth: {
128
- type: 'number',
129
- description: 'Maximum depth of DOM tree (default: 3, recommend: 2 for large pages)',
130
- default: 3,
131
- },
132
- includeText: {
133
- type: 'boolean',
134
- description: 'Whether to include text content (set false to reduce size)',
135
- default: true,
136
- },
137
- },
138
- },
139
- },
140
- {
141
- name: 'dom_find_clickable',
142
- description: 'Find all clickable elements (buttons, links). Use this to discover what can be clicked.',
143
- inputSchema: {
144
- type: 'object',
145
- properties: {
146
- filterText: {
147
- type: 'string',
148
- description: 'Filter by text content (optional)',
149
- },
150
- },
151
- },
152
- },
153
- {
154
- name: 'page_click',
155
- description: 'Click an element. Use dom_query_selector FIRST to verify element exists.',
156
- inputSchema: {
157
- type: 'object',
158
- properties: {
159
- selector: {
160
- type: 'string',
161
- description: 'CSS selector of element to click',
162
- },
163
- button: {
164
- type: 'string',
165
- description: 'Mouse button to click',
166
- enum: ['left', 'right', 'middle'],
167
- default: 'left',
168
- },
169
- clickCount: {
170
- oneOf: [{ type: 'number' }, { type: 'string' }],
171
- description: 'Number of clicks (numeric string is accepted and auto-normalized)',
172
- default: 1,
173
- },
174
- delay: {
175
- oneOf: [{ type: 'number' }, { type: 'string' }],
176
- description: 'Delay between mousedown and mouseup in milliseconds (numeric string is accepted)',
177
- },
178
- },
179
- required: ['selector'],
180
- },
181
- },
182
- {
183
- name: 'page_type',
184
- description: 'Type text into an input element',
185
- inputSchema: {
186
- type: 'object',
187
- properties: {
188
- selector: {
189
- type: 'string',
190
- description: 'CSS selector of input element',
191
- },
192
- text: {
193
- type: 'string',
194
- description: 'Text to type',
195
- },
196
- delay: {
197
- type: 'number',
198
- description: 'Delay between key presses in milliseconds',
199
- },
200
- },
201
- required: ['selector', 'text'],
202
- },
203
- },
204
- {
205
- name: 'page_select',
206
- description: 'Select option(s) in a <select> element',
207
- inputSchema: {
208
- type: 'object',
209
- properties: {
210
- selector: {
211
- type: 'string',
212
- description: 'CSS selector of select element',
213
- },
214
- values: {
215
- type: 'array',
216
- description: 'Values to select',
217
- items: {
218
- type: 'string',
219
- },
220
- },
221
- },
222
- required: ['selector', 'values'],
223
- },
224
- },
225
- {
226
- name: 'page_hover',
227
- description: 'Hover over an element',
228
- inputSchema: {
229
- type: 'object',
230
- properties: {
231
- selector: {
232
- type: 'string',
233
- description: 'CSS selector of element to hover',
234
- },
235
- },
236
- required: ['selector'],
237
- },
238
- },
239
- {
240
- name: 'page_scroll',
241
- description: 'Scroll the page',
242
- inputSchema: {
243
- type: 'object',
244
- properties: {
245
- x: {
246
- type: 'number',
247
- description: 'Horizontal scroll position',
248
- default: 0,
249
- },
250
- y: {
251
- type: 'number',
252
- description: 'Vertical scroll position',
253
- default: 0,
254
- },
255
- },
256
- },
257
- },
258
- {
259
- name: 'page_wait_for_selector',
260
- description: 'Wait for an element to appear',
261
- inputSchema: {
262
- type: 'object',
263
- properties: {
264
- selector: {
265
- type: 'string',
266
- description: 'CSS selector to wait for',
267
- },
268
- timeout: {
269
- type: 'number',
270
- description: 'Timeout in milliseconds',
271
- default: 30000,
272
- },
273
- },
274
- required: ['selector'],
275
- },
276
- },
277
- {
278
- name: 'page_evaluate',
279
- description: `Execute JavaScript code in page context and get result.
280
-
281
- IMPORTANT: Large results (>50KB) automatically return summary + detailId to prevent context overflow.
282
- Use get_detailed_data(detailId) to retrieve full data if needed.
283
-
284
- Best Practices:
285
- - Query specific properties: { hasAcrawler: !!window.byted_acrawler }
286
- - Return only needed data: Object.keys(window.byted_acrawler)
287
- - Avoid returning entire objects: window (too large!)
288
-
289
- Example:
290
- page_evaluate("({ keys: Object.keys(window.byted_acrawler), type: typeof window.byted_acrawler })")
291
- -> Returns small summary
292
- -> If you need full object, use the returned detailId`,
293
- inputSchema: {
294
- type: 'object',
295
- properties: {
296
- code: {
297
- type: 'string',
298
- description: 'JavaScript code to execute',
299
- },
300
- autoSummarize: {
301
- type: 'boolean',
302
- description: 'Auto-summarize large results (default: true)',
303
- default: true,
304
- },
305
- maxSize: {
306
- type: 'number',
307
- description: 'Max result size in bytes before auto-summarizing (default: 50KB)',
308
- default: 51200,
309
- },
310
- fieldFilter: {
311
- type: 'array',
312
- items: { type: 'string' },
313
- description: 'Server-side field filter: remove keys matching these names from the result object (recursive). Useful to strip noise fields like "icon", "avatar", "base64Image".',
314
- },
315
- stripBase64: {
316
- type: 'boolean',
317
- description: 'Strip data URI and bare base64 strings from the result, replacing them with a size placeholder. Prevents context overflow from embedded images/fonts (default: false).',
318
- default: false,
319
- },
320
- },
321
- required: ['code'],
322
- },
323
- },
324
- {
325
- name: 'page_screenshot',
326
- description: `Take a screenshot of the page, a specific DOM element, multiple elements, or a pixel region.
327
-
328
- Modes:
329
- - Full page: omit selector or pass "all"
330
- - Single element: selector = ".my-class"
331
- - Multiple elements: selector = [".header", "#main", ".footer"] — returns one screenshot per element
332
- - Pixel region: pass clip = {x, y, width, height} (ignored when selector is set)`,
333
- inputSchema: {
334
- type: 'object',
335
- properties: {
336
- selector: {
337
- oneOf: [
338
- { type: 'string', description: 'Single CSS selector' },
339
- {
340
- type: 'array',
341
- items: { type: 'string' },
342
- description: 'Array of CSS selectors for batch element screenshots',
343
- },
344
- ],
345
- description: 'CSS selector(s) of the element(s) to screenshot. Omit or pass "all" for full page viewport.',
346
- },
347
- clip: {
348
- type: 'object',
349
- description: 'Pixel region to capture (ignored when selector is set)',
350
- properties: {
351
- x: { type: 'number', description: 'Left offset in pixels' },
352
- y: { type: 'number', description: 'Top offset in pixels' },
353
- width: { type: 'number', description: 'Region width in pixels' },
354
- height: { type: 'number', description: 'Region height in pixels' },
355
- },
356
- required: ['x', 'y', 'width', 'height'],
357
- },
358
- path: {
359
- type: 'string',
360
- description: 'File path to save screenshot (optional). For batch mode, used as directory or base name.',
361
- },
362
- type: {
363
- type: 'string',
364
- description: 'Image format',
365
- enum: ['png', 'jpeg'],
366
- default: 'png',
367
- },
368
- quality: {
369
- type: 'number',
370
- description: 'Image quality (0-100, only for jpeg)',
371
- },
372
- fullPage: {
373
- type: 'boolean',
374
- description: 'Capture full scrollable page (ignored when selector or clip is set)',
375
- default: false,
376
- },
377
- },
378
- },
379
- },
380
- {
381
- name: 'get_all_scripts',
382
- description: 'Get list of all loaded scripts on the page',
383
- inputSchema: {
384
- type: 'object',
385
- properties: {
386
- includeSource: {
387
- type: 'boolean',
388
- description: 'Whether to include script source code',
389
- default: false,
390
- },
391
- },
392
- },
393
- },
394
- {
395
- name: 'get_script_source',
396
- description: `Get source code of a specific script.
397
-
398
- IMPORTANT: Large scripts (>50KB) automatically return summary + detailId.
399
- Use preview mode first to check script size before fetching full source.
400
-
401
- Best Practices:
402
- 1. Use preview=true first to see script overview
403
- 2. If script is large, use detailId to get full source
404
- 3. Or use startLine/endLine to get specific sections
405
-
406
- Example:
407
- get_script_source(scriptId="abc", preview=true)
408
- -> Returns: { lines: 5000, size: "500KB", preview: "...", detailId: "..." }
409
- -> Then: get_detailed_data(detailId) to get full source`,
410
- inputSchema: {
411
- type: 'object',
412
- properties: {
413
- scriptId: {
414
- type: 'string',
415
- description: 'Script ID from get_all_scripts',
416
- },
417
- url: {
418
- type: 'string',
419
- description: 'Script URL (supports wildcards like *.js)',
420
- },
421
- preview: {
422
- type: 'boolean',
423
- description: 'Return preview only (first 100 lines + metadata)',
424
- default: false,
425
- },
426
- maxLines: {
427
- type: 'number',
428
- description: 'Max lines to return in preview mode (default: 100)',
429
- default: 100,
430
- },
431
- startLine: {
432
- type: 'number',
433
- description: 'Start line number (1-based, for partial fetch)',
434
- },
435
- endLine: {
436
- type: 'number',
437
- description: 'End line number (1-based, for partial fetch)',
438
- },
439
- },
440
- },
441
- },
165
+ ],
166
+ description: 'CSS selector(s) of the element(s) to screenshot. Omit or pass "all" for full page viewport.',
167
+ })
168
+ .object('clip', {
169
+ x: { type: 'number', description: 'Left offset in pixels' },
170
+ y: { type: 'number', description: 'Top offset in pixels' },
171
+ width: { type: 'number', description: 'Region width in pixels' },
172
+ height: { type: 'number', description: 'Region height in pixels' },
173
+ }, 'Pixel region to capture (ignored when selector is set)', { required: ['x', 'y', 'width', 'height'] })
174
+ .string('path', 'File path to save screenshot (optional). For batch mode, used as directory or base name.')
175
+ .enum('type', ['png', 'jpeg'], 'Image format', { default: 'png' })
176
+ .number('quality', 'Image quality (0-100, only for jpeg)')
177
+ .boolean('fullPage', 'Capture full scrollable page (ignored when selector or clip is set)', {
178
+ default: false,
179
+ })
180
+ .readOnly()
181
+ .idempotent()
182
+ .build(),
183
+ tool('get_all_scripts')
184
+ .desc('Get list of all loaded scripts on the page')
185
+ .boolean('includeSource', 'Whether to include script source code', { default: false })
186
+ .readOnly()
187
+ .idempotent()
188
+ .build(),
189
+ tool('get_script_source')
190
+ .desc(`Get source code of a specific script.
191
+
192
+ IMPORTANT: Large scripts (>50KB) automatically return summary + detailId.
193
+ Use preview mode first to check script size before fetching full source.
194
+
195
+ Best Practices:
196
+ 1. Use preview=true first to see script overview
197
+ 2. If script is large, use detailId to get full source
198
+ 3. Or use startLine/endLine to get specific sections
199
+
200
+ Example:
201
+ get_script_source(scriptId="abc", preview=true)
202
+ -> Returns: { lines: 5000, size: "500KB", preview: "...", detailId: "..." }
203
+ -> Then: get_detailed_data(detailId) to get full source`)
204
+ .string('scriptId', 'Script ID from get_all_scripts')
205
+ .string('url', 'Script URL (supports wildcards like *.js)')
206
+ .boolean('preview', 'Return preview only (first 100 lines + metadata)', { default: false })
207
+ .number('maxLines', 'Max lines to return in preview mode (default: 100)', { default: 100 })
208
+ .number('startLine', 'Start line number (1-based, for partial fetch)')
209
+ .number('endLine', 'End line number (1-based, for partial fetch)')
210
+ .readOnly()
211
+ .idempotent()
212
+ .build(),
442
213
  ];