@ai-jshook/mcp 0.1.1

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 (271) hide show
  1. package/.env.example +38 -0
  2. package/CLAUDE.md +170 -0
  3. package/README.md +564 -0
  4. package/bun.lock +1484 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +57 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/modules/analyzer/AISummarizer.d.ts +41 -0
  10. package/dist/modules/analyzer/AISummarizer.d.ts.map +1 -0
  11. package/dist/modules/analyzer/AISummarizer.js +186 -0
  12. package/dist/modules/analyzer/AISummarizer.js.map +1 -0
  13. package/dist/modules/analyzer/CodeAnalyzer.d.ts +28 -0
  14. package/dist/modules/analyzer/CodeAnalyzer.d.ts.map +1 -0
  15. package/dist/modules/analyzer/CodeAnalyzer.js +1287 -0
  16. package/dist/modules/analyzer/CodeAnalyzer.js.map +1 -0
  17. package/dist/modules/analyzer/IntelligentAnalyzer.d.ts +114 -0
  18. package/dist/modules/analyzer/IntelligentAnalyzer.d.ts.map +1 -0
  19. package/dist/modules/analyzer/IntelligentAnalyzer.js +1176 -0
  20. package/dist/modules/analyzer/IntelligentAnalyzer.js.map +1 -0
  21. package/dist/modules/browser/BrowserModeManager.d.ts +31 -0
  22. package/dist/modules/browser/BrowserModeManager.d.ts.map +1 -0
  23. package/dist/modules/browser/BrowserModeManager.js +241 -0
  24. package/dist/modules/browser/BrowserModeManager.js.map +1 -0
  25. package/dist/modules/captcha/AICaptchaDetector.d.ts +32 -0
  26. package/dist/modules/captcha/AICaptchaDetector.d.ts.map +1 -0
  27. package/dist/modules/captcha/AICaptchaDetector.js +387 -0
  28. package/dist/modules/captcha/AICaptchaDetector.js.map +1 -0
  29. package/dist/modules/captcha/CaptchaDetector.d.ts +28 -0
  30. package/dist/modules/captcha/CaptchaDetector.d.ts.map +1 -0
  31. package/dist/modules/captcha/CaptchaDetector.js +513 -0
  32. package/dist/modules/captcha/CaptchaDetector.js.map +1 -0
  33. package/dist/modules/collector/CodeCache.d.ts +37 -0
  34. package/dist/modules/collector/CodeCache.d.ts.map +1 -0
  35. package/dist/modules/collector/CodeCache.js +188 -0
  36. package/dist/modules/collector/CodeCache.js.map +1 -0
  37. package/dist/modules/collector/CodeCollector.d.ts +107 -0
  38. package/dist/modules/collector/CodeCollector.d.ts.map +1 -0
  39. package/dist/modules/collector/CodeCollector.js +796 -0
  40. package/dist/modules/collector/CodeCollector.js.map +1 -0
  41. package/dist/modules/collector/CodeCompressor.d.ts +65 -0
  42. package/dist/modules/collector/CodeCompressor.d.ts.map +1 -0
  43. package/dist/modules/collector/CodeCompressor.js +245 -0
  44. package/dist/modules/collector/CodeCompressor.js.map +1 -0
  45. package/dist/modules/collector/DOMInspector.d.ts +51 -0
  46. package/dist/modules/collector/DOMInspector.d.ts.map +1 -0
  47. package/dist/modules/collector/DOMInspector.js +437 -0
  48. package/dist/modules/collector/DOMInspector.js.map +1 -0
  49. package/dist/modules/collector/PageController.d.ts +79 -0
  50. package/dist/modules/collector/PageController.d.ts.map +1 -0
  51. package/dist/modules/collector/PageController.js +287 -0
  52. package/dist/modules/collector/PageController.js.map +1 -0
  53. package/dist/modules/collector/SmartCodeCollector.d.ts +38 -0
  54. package/dist/modules/collector/SmartCodeCollector.d.ts.map +1 -0
  55. package/dist/modules/collector/SmartCodeCollector.js +208 -0
  56. package/dist/modules/collector/SmartCodeCollector.js.map +1 -0
  57. package/dist/modules/collector/StreamingCollector.d.ts +46 -0
  58. package/dist/modules/collector/StreamingCollector.d.ts.map +1 -0
  59. package/dist/modules/collector/StreamingCollector.js +127 -0
  60. package/dist/modules/collector/StreamingCollector.js.map +1 -0
  61. package/dist/modules/crypto/CryptoDetector.d.ts +22 -0
  62. package/dist/modules/crypto/CryptoDetector.d.ts.map +1 -0
  63. package/dist/modules/crypto/CryptoDetector.js +168 -0
  64. package/dist/modules/crypto/CryptoDetector.js.map +1 -0
  65. package/dist/modules/crypto/CryptoDetectorEnhanced.d.ts +31 -0
  66. package/dist/modules/crypto/CryptoDetectorEnhanced.d.ts.map +1 -0
  67. package/dist/modules/crypto/CryptoDetectorEnhanced.js +269 -0
  68. package/dist/modules/crypto/CryptoDetectorEnhanced.js.map +1 -0
  69. package/dist/modules/crypto/CryptoRules.d.ts +59 -0
  70. package/dist/modules/crypto/CryptoRules.d.ts.map +1 -0
  71. package/dist/modules/crypto/CryptoRules.js +234 -0
  72. package/dist/modules/crypto/CryptoRules.js.map +1 -0
  73. package/dist/modules/debugger/BlackboxManager.d.ts +14 -0
  74. package/dist/modules/debugger/BlackboxManager.d.ts.map +1 -0
  75. package/dist/modules/debugger/BlackboxManager.js +98 -0
  76. package/dist/modules/debugger/BlackboxManager.js.map +1 -0
  77. package/dist/modules/debugger/DebuggerManager.d.ts +138 -0
  78. package/dist/modules/debugger/DebuggerManager.d.ts.map +1 -0
  79. package/dist/modules/debugger/DebuggerManager.js +777 -0
  80. package/dist/modules/debugger/DebuggerManager.js.map +1 -0
  81. package/dist/modules/debugger/EventBreakpointManager.d.ts +30 -0
  82. package/dist/modules/debugger/EventBreakpointManager.d.ts.map +1 -0
  83. package/dist/modules/debugger/EventBreakpointManager.js +125 -0
  84. package/dist/modules/debugger/EventBreakpointManager.js.map +1 -0
  85. package/dist/modules/debugger/RuntimeInspector.d.ts +54 -0
  86. package/dist/modules/debugger/RuntimeInspector.d.ts.map +1 -0
  87. package/dist/modules/debugger/RuntimeInspector.js +277 -0
  88. package/dist/modules/debugger/RuntimeInspector.js.map +1 -0
  89. package/dist/modules/debugger/ScriptManager.d.ts +94 -0
  90. package/dist/modules/debugger/ScriptManager.d.ts.map +1 -0
  91. package/dist/modules/debugger/ScriptManager.js +433 -0
  92. package/dist/modules/debugger/ScriptManager.js.map +1 -0
  93. package/dist/modules/debugger/WatchExpressionManager.d.ts +52 -0
  94. package/dist/modules/debugger/WatchExpressionManager.d.ts.map +1 -0
  95. package/dist/modules/debugger/WatchExpressionManager.js +136 -0
  96. package/dist/modules/debugger/WatchExpressionManager.js.map +1 -0
  97. package/dist/modules/debugger/XHRBreakpointManager.d.ts +21 -0
  98. package/dist/modules/debugger/XHRBreakpointManager.d.ts.map +1 -0
  99. package/dist/modules/debugger/XHRBreakpointManager.js +81 -0
  100. package/dist/modules/debugger/XHRBreakpointManager.js.map +1 -0
  101. package/dist/modules/deobfuscator/ASTOptimizer.d.ts +12 -0
  102. package/dist/modules/deobfuscator/ASTOptimizer.d.ts.map +1 -0
  103. package/dist/modules/deobfuscator/ASTOptimizer.js +234 -0
  104. package/dist/modules/deobfuscator/ASTOptimizer.js.map +1 -0
  105. package/dist/modules/deobfuscator/AdvancedDeobfuscator.d.ts +52 -0
  106. package/dist/modules/deobfuscator/AdvancedDeobfuscator.d.ts.map +1 -0
  107. package/dist/modules/deobfuscator/AdvancedDeobfuscator.js +985 -0
  108. package/dist/modules/deobfuscator/AdvancedDeobfuscator.js.map +1 -0
  109. package/dist/modules/deobfuscator/Deobfuscator.d.ts +23 -0
  110. package/dist/modules/deobfuscator/Deobfuscator.d.ts.map +1 -0
  111. package/dist/modules/deobfuscator/Deobfuscator.js +487 -0
  112. package/dist/modules/deobfuscator/Deobfuscator.js.map +1 -0
  113. package/dist/modules/deobfuscator/JSVMPDeobfuscator.d.ts +19 -0
  114. package/dist/modules/deobfuscator/JSVMPDeobfuscator.d.ts.map +1 -0
  115. package/dist/modules/deobfuscator/JSVMPDeobfuscator.js +594 -0
  116. package/dist/modules/deobfuscator/JSVMPDeobfuscator.js.map +1 -0
  117. package/dist/modules/deobfuscator/JScramberDeobfuscator.d.ts +28 -0
  118. package/dist/modules/deobfuscator/JScramberDeobfuscator.d.ts.map +1 -0
  119. package/dist/modules/deobfuscator/JScramberDeobfuscator.js +239 -0
  120. package/dist/modules/deobfuscator/JScramberDeobfuscator.js.map +1 -0
  121. package/dist/modules/deobfuscator/PackerDeobfuscator.d.ts +38 -0
  122. package/dist/modules/deobfuscator/PackerDeobfuscator.d.ts.map +1 -0
  123. package/dist/modules/deobfuscator/PackerDeobfuscator.js +191 -0
  124. package/dist/modules/deobfuscator/PackerDeobfuscator.js.map +1 -0
  125. package/dist/modules/detector/ObfuscationDetector.d.ts +35 -0
  126. package/dist/modules/detector/ObfuscationDetector.d.ts.map +1 -0
  127. package/dist/modules/detector/ObfuscationDetector.js +278 -0
  128. package/dist/modules/detector/ObfuscationDetector.js.map +1 -0
  129. package/dist/modules/emulator/AIEnvironmentAnalyzer.d.ts +32 -0
  130. package/dist/modules/emulator/AIEnvironmentAnalyzer.d.ts.map +1 -0
  131. package/dist/modules/emulator/AIEnvironmentAnalyzer.js +548 -0
  132. package/dist/modules/emulator/AIEnvironmentAnalyzer.js.map +1 -0
  133. package/dist/modules/emulator/BrowserAPIDatabase.d.ts +34 -0
  134. package/dist/modules/emulator/BrowserAPIDatabase.d.ts.map +1 -0
  135. package/dist/modules/emulator/BrowserAPIDatabase.js +326 -0
  136. package/dist/modules/emulator/BrowserAPIDatabase.js.map +1 -0
  137. package/dist/modules/emulator/BrowserEnvironmentRules.d.ts +47 -0
  138. package/dist/modules/emulator/BrowserEnvironmentRules.d.ts.map +1 -0
  139. package/dist/modules/emulator/BrowserEnvironmentRules.js +493 -0
  140. package/dist/modules/emulator/BrowserEnvironmentRules.js.map +1 -0
  141. package/dist/modules/emulator/EnvironmentEmulator.d.ts +27 -0
  142. package/dist/modules/emulator/EnvironmentEmulator.d.ts.map +1 -0
  143. package/dist/modules/emulator/EnvironmentEmulator.js +1113 -0
  144. package/dist/modules/emulator/EnvironmentEmulator.js.map +1 -0
  145. package/dist/modules/emulator/EnvironmentEmulatorEnhanced.d.ts +26 -0
  146. package/dist/modules/emulator/EnvironmentEmulatorEnhanced.d.ts.map +1 -0
  147. package/dist/modules/emulator/EnvironmentEmulatorEnhanced.js +493 -0
  148. package/dist/modules/emulator/EnvironmentEmulatorEnhanced.js.map +1 -0
  149. package/dist/modules/emulator/templates/chrome-env.d.ts +260 -0
  150. package/dist/modules/emulator/templates/chrome-env.d.ts.map +1 -0
  151. package/dist/modules/emulator/templates/chrome-env.js +253 -0
  152. package/dist/modules/emulator/templates/chrome-env.js.map +1 -0
  153. package/dist/modules/hook/AIHookGenerator.d.ts +53 -0
  154. package/dist/modules/hook/AIHookGenerator.d.ts.map +1 -0
  155. package/dist/modules/hook/AIHookGenerator.js +353 -0
  156. package/dist/modules/hook/AIHookGenerator.js.map +1 -0
  157. package/dist/modules/hook/HookManager.d.ts +67 -0
  158. package/dist/modules/hook/HookManager.d.ts.map +1 -0
  159. package/dist/modules/hook/HookManager.js +1225 -0
  160. package/dist/modules/hook/HookManager.js.map +1 -0
  161. package/dist/modules/monitor/ConsoleMonitor.d.ts +140 -0
  162. package/dist/modules/monitor/ConsoleMonitor.d.ts.map +1 -0
  163. package/dist/modules/monitor/ConsoleMonitor.js +834 -0
  164. package/dist/modules/monitor/ConsoleMonitor.js.map +1 -0
  165. package/dist/modules/monitor/PerformanceMonitor.d.ts +65 -0
  166. package/dist/modules/monitor/PerformanceMonitor.d.ts.map +1 -0
  167. package/dist/modules/monitor/PerformanceMonitor.js +175 -0
  168. package/dist/modules/monitor/PerformanceMonitor.js.map +1 -0
  169. package/dist/modules/stealth/StealthScripts2025.d.ts +17 -0
  170. package/dist/modules/stealth/StealthScripts2025.d.ts.map +1 -0
  171. package/dist/modules/stealth/StealthScripts2025.js +274 -0
  172. package/dist/modules/stealth/StealthScripts2025.js.map +1 -0
  173. package/dist/modules/symbolic/JSVMPSymbolicExecutor.d.ts +69 -0
  174. package/dist/modules/symbolic/JSVMPSymbolicExecutor.d.ts.map +1 -0
  175. package/dist/modules/symbolic/JSVMPSymbolicExecutor.js +232 -0
  176. package/dist/modules/symbolic/JSVMPSymbolicExecutor.js.map +1 -0
  177. package/dist/modules/symbolic/SymbolicExecutor.d.ts +69 -0
  178. package/dist/modules/symbolic/SymbolicExecutor.d.ts.map +1 -0
  179. package/dist/modules/symbolic/SymbolicExecutor.js +346 -0
  180. package/dist/modules/symbolic/SymbolicExecutor.js.map +1 -0
  181. package/dist/server/AIHookToolDefinitions.d.ts +3 -0
  182. package/dist/server/AIHookToolDefinitions.d.ts.map +1 -0
  183. package/dist/server/AIHookToolDefinitions.js +284 -0
  184. package/dist/server/AIHookToolDefinitions.js.map +1 -0
  185. package/dist/server/AIHookToolHandlers.d.ts +50 -0
  186. package/dist/server/AIHookToolHandlers.d.ts.map +1 -0
  187. package/dist/server/AIHookToolHandlers.js +311 -0
  188. package/dist/server/AIHookToolHandlers.js.map +1 -0
  189. package/dist/server/AdvancedToolDefinitions.d.ts +3 -0
  190. package/dist/server/AdvancedToolDefinitions.d.ts.map +1 -0
  191. package/dist/server/AdvancedToolDefinitions.js +218 -0
  192. package/dist/server/AdvancedToolDefinitions.js.map +1 -0
  193. package/dist/server/AdvancedToolHandlers.d.ts +85 -0
  194. package/dist/server/AdvancedToolHandlers.d.ts.map +1 -0
  195. package/dist/server/AdvancedToolHandlers.js +431 -0
  196. package/dist/server/AdvancedToolHandlers.js.map +1 -0
  197. package/dist/server/BrowserToolDefinitions.d.ts +3 -0
  198. package/dist/server/BrowserToolDefinitions.d.ts.map +1 -0
  199. package/dist/server/BrowserToolDefinitions.js +841 -0
  200. package/dist/server/BrowserToolDefinitions.js.map +1 -0
  201. package/dist/server/BrowserToolHandlers.d.ts +290 -0
  202. package/dist/server/BrowserToolHandlers.d.ts.map +1 -0
  203. package/dist/server/BrowserToolHandlers.js +784 -0
  204. package/dist/server/BrowserToolHandlers.js.map +1 -0
  205. package/dist/server/CacheToolDefinitions.d.ts +3 -0
  206. package/dist/server/CacheToolDefinitions.d.ts.map +1 -0
  207. package/dist/server/CacheToolDefinitions.js +166 -0
  208. package/dist/server/CacheToolDefinitions.js.map +1 -0
  209. package/dist/server/DebuggerToolDefinitions.d.ts +3 -0
  210. package/dist/server/DebuggerToolDefinitions.d.ts.map +1 -0
  211. package/dist/server/DebuggerToolDefinitions.js +600 -0
  212. package/dist/server/DebuggerToolDefinitions.js.map +1 -0
  213. package/dist/server/DebuggerToolHandlers.d.ts +230 -0
  214. package/dist/server/DebuggerToolHandlers.d.ts.map +1 -0
  215. package/dist/server/DebuggerToolHandlers.js +935 -0
  216. package/dist/server/DebuggerToolHandlers.js.map +1 -0
  217. package/dist/server/MCPServer.d.ts +55 -0
  218. package/dist/server/MCPServer.d.ts.map +1 -0
  219. package/dist/server/MCPServer.js +1344 -0
  220. package/dist/server/MCPServer.js.map +1 -0
  221. package/dist/server/TokenBudgetToolDefinitions.d.ts +3 -0
  222. package/dist/server/TokenBudgetToolDefinitions.d.ts.map +1 -0
  223. package/dist/server/TokenBudgetToolDefinitions.js +114 -0
  224. package/dist/server/TokenBudgetToolDefinitions.js.map +1 -0
  225. package/dist/services/LLMService.d.ts +41 -0
  226. package/dist/services/LLMService.d.ts.map +1 -0
  227. package/dist/services/LLMService.js +792 -0
  228. package/dist/services/LLMService.js.map +1 -0
  229. package/dist/types/index.d.ts +527 -0
  230. package/dist/types/index.d.ts.map +1 -0
  231. package/dist/types/index.js +2 -0
  232. package/dist/types/index.js.map +1 -0
  233. package/dist/utils/AdaptiveDataSerializer.d.ts +27 -0
  234. package/dist/utils/AdaptiveDataSerializer.d.ts.map +1 -0
  235. package/dist/utils/AdaptiveDataSerializer.js +215 -0
  236. package/dist/utils/AdaptiveDataSerializer.js.map +1 -0
  237. package/dist/utils/CacheAdapters.d.ts +30 -0
  238. package/dist/utils/CacheAdapters.d.ts.map +1 -0
  239. package/dist/utils/CacheAdapters.js +83 -0
  240. package/dist/utils/CacheAdapters.js.map +1 -0
  241. package/dist/utils/TokenBudgetManager.d.ts +52 -0
  242. package/dist/utils/TokenBudgetManager.d.ts.map +1 -0
  243. package/dist/utils/TokenBudgetManager.js +190 -0
  244. package/dist/utils/TokenBudgetManager.js.map +1 -0
  245. package/dist/utils/UnifiedCacheManager.d.ts +55 -0
  246. package/dist/utils/UnifiedCacheManager.d.ts.map +1 -0
  247. package/dist/utils/UnifiedCacheManager.js +207 -0
  248. package/dist/utils/UnifiedCacheManager.js.map +1 -0
  249. package/dist/utils/cache.d.ts +13 -0
  250. package/dist/utils/cache.d.ts.map +1 -0
  251. package/dist/utils/cache.js +92 -0
  252. package/dist/utils/cache.js.map +1 -0
  253. package/dist/utils/config.d.ts +7 -0
  254. package/dist/utils/config.d.ts.map +1 -0
  255. package/dist/utils/config.js +93 -0
  256. package/dist/utils/config.js.map +1 -0
  257. package/dist/utils/detailedDataManager.d.ts +60 -0
  258. package/dist/utils/detailedDataManager.d.ts.map +1 -0
  259. package/dist/utils/detailedDataManager.js +204 -0
  260. package/dist/utils/detailedDataManager.js.map +1 -0
  261. package/dist/utils/logger.d.ts +16 -0
  262. package/dist/utils/logger.d.ts.map +1 -0
  263. package/dist/utils/logger.js +47 -0
  264. package/dist/utils/logger.js.map +1 -0
  265. package/dist/utils/parallel.d.ts +40 -0
  266. package/dist/utils/parallel.d.ts.map +1 -0
  267. package/dist/utils/parallel.js +148 -0
  268. package/dist/utils/parallel.js.map +1 -0
  269. package/package.json +94 -0
  270. package/server.json +39 -0
  271. package/tsconfig.dev.json +14 -0
@@ -0,0 +1,841 @@
1
+ export const browserTools = [
2
+ {
3
+ name: 'get_detailed_data',
4
+ description: `🔑 Retrieve detailed data using detailId token.
5
+
6
+ When tools return large data, they provide a detailId instead of full data to prevent context overflow.
7
+ Use this tool to retrieve the full data or specific parts.
8
+
9
+ Examples:
10
+ - get_detailed_data("detail_abc123") → Get full data
11
+ - get_detailed_data("detail_abc123", path="frontierSign") → Get specific property
12
+ - get_detailed_data("detail_abc123", path="methods.0") → Get first method`,
13
+ inputSchema: {
14
+ type: 'object',
15
+ properties: {
16
+ detailId: {
17
+ type: 'string',
18
+ description: 'Detail ID token from previous tool response',
19
+ },
20
+ path: {
21
+ type: 'string',
22
+ description: 'Optional: Path to specific data (e.g., "frontierSign" or "methods.0")',
23
+ },
24
+ },
25
+ required: ['detailId'],
26
+ },
27
+ },
28
+ {
29
+ name: 'browser_launch',
30
+ description: 'Launch browser instance',
31
+ inputSchema: {
32
+ type: 'object',
33
+ properties: {},
34
+ },
35
+ },
36
+ {
37
+ name: 'browser_close',
38
+ description: 'Close browser instance',
39
+ inputSchema: {
40
+ type: 'object',
41
+ properties: {},
42
+ },
43
+ },
44
+ {
45
+ name: 'browser_status',
46
+ description: 'Get browser status (running, pages count, version)',
47
+ inputSchema: {
48
+ type: 'object',
49
+ properties: {},
50
+ },
51
+ },
52
+ {
53
+ name: 'page_navigate',
54
+ description: `Navigate to a URL
55
+
56
+ Features:
57
+ - Automatic CAPTCHA detection
58
+ - Optional network monitoring (set enableNetworkMonitoring=true to auto-enable)
59
+ - Waits for page load based on waitUntil strategy
60
+
61
+ Network Monitoring:
62
+ If you want to capture network requests, you have two options:
63
+ 1. Call network_enable before page_navigate (recommended for full control)
64
+ 2. Set enableNetworkMonitoring=true in page_navigate (convenient for quick capture)
65
+
66
+ Example with network monitoring:
67
+ page_navigate(url="https://api.example.com", enableNetworkMonitoring=true)
68
+ → Network monitoring auto-enabled
69
+ → Page loads
70
+ → Use network_get_requests to see captured requests`,
71
+ inputSchema: {
72
+ type: 'object',
73
+ properties: {
74
+ url: {
75
+ type: 'string',
76
+ description: 'Target URL to navigate to',
77
+ },
78
+ waitUntil: {
79
+ type: 'string',
80
+ description: 'When to consider navigation succeeded',
81
+ enum: ['load', 'domcontentloaded', 'networkidle0', 'networkidle2'],
82
+ default: 'networkidle2',
83
+ },
84
+ timeout: {
85
+ type: 'number',
86
+ description: 'Navigation timeout in milliseconds',
87
+ default: 30000,
88
+ },
89
+ enableNetworkMonitoring: {
90
+ type: 'boolean',
91
+ description: '✨ Auto-enable network monitoring before navigation to capture all requests. If already enabled, this has no effect.',
92
+ default: false,
93
+ },
94
+ },
95
+ required: ['url'],
96
+ },
97
+ },
98
+ {
99
+ name: 'page_reload',
100
+ description: 'Reload current page',
101
+ inputSchema: {
102
+ type: 'object',
103
+ properties: {},
104
+ },
105
+ },
106
+ {
107
+ name: 'page_back',
108
+ description: 'Navigate back in history',
109
+ inputSchema: {
110
+ type: 'object',
111
+ properties: {},
112
+ },
113
+ },
114
+ {
115
+ name: 'page_forward',
116
+ description: 'Navigate forward in history',
117
+ inputSchema: {
118
+ type: 'object',
119
+ properties: {},
120
+ },
121
+ },
122
+ {
123
+ name: 'dom_query_selector',
124
+ description: 'Query single element (like document.querySelector). AI should use this BEFORE clicking to verify element exists.',
125
+ inputSchema: {
126
+ type: 'object',
127
+ properties: {
128
+ selector: {
129
+ type: 'string',
130
+ description: 'CSS selector',
131
+ },
132
+ getAttributes: {
133
+ type: 'boolean',
134
+ description: 'Whether to get element attributes',
135
+ default: true,
136
+ },
137
+ },
138
+ required: ['selector'],
139
+ },
140
+ },
141
+ {
142
+ name: 'dom_query_all',
143
+ description: 'Query all matching elements (like document.querySelectorAll)',
144
+ inputSchema: {
145
+ type: 'object',
146
+ properties: {
147
+ selector: {
148
+ type: 'string',
149
+ description: 'CSS selector',
150
+ },
151
+ limit: {
152
+ type: 'number',
153
+ description: 'Maximum number of elements to return',
154
+ default: 100,
155
+ },
156
+ },
157
+ required: ['selector'],
158
+ },
159
+ },
160
+ {
161
+ name: 'dom_get_structure',
162
+ description: `Get page DOM structure (for AI to understand page layout).
163
+
164
+ ⚠️ IMPORTANT: Large DOM structures (>50KB) automatically return summary + detailId.
165
+
166
+ Best Practices:
167
+ 1. Use maxDepth=2 for initial exploration (faster, smaller)
168
+ 2. Use maxDepth=3 only when needed (may be large)
169
+ 3. Set includeText=false to reduce size if text not needed
170
+
171
+ Example:
172
+ dom_get_structure(maxDepth=2, includeText=false)
173
+ → Returns compact structure without text content`,
174
+ inputSchema: {
175
+ type: 'object',
176
+ properties: {
177
+ maxDepth: {
178
+ type: 'number',
179
+ description: 'Maximum depth of DOM tree (default: 3, recommend: 2 for large pages)',
180
+ default: 3,
181
+ },
182
+ includeText: {
183
+ type: 'boolean',
184
+ description: 'Whether to include text content (set false to reduce size)',
185
+ default: true,
186
+ },
187
+ },
188
+ },
189
+ },
190
+ {
191
+ name: 'dom_find_clickable',
192
+ description: 'Find all clickable elements (buttons, links). Use this to discover what can be clicked.',
193
+ inputSchema: {
194
+ type: 'object',
195
+ properties: {
196
+ filterText: {
197
+ type: 'string',
198
+ description: 'Filter by text content (optional)',
199
+ },
200
+ },
201
+ },
202
+ },
203
+ {
204
+ name: 'page_click',
205
+ description: 'Click an element. Use dom_query_selector FIRST to verify element exists.',
206
+ inputSchema: {
207
+ type: 'object',
208
+ properties: {
209
+ selector: {
210
+ type: 'string',
211
+ description: 'CSS selector of element to click',
212
+ },
213
+ button: {
214
+ type: 'string',
215
+ description: 'Mouse button to click',
216
+ enum: ['left', 'right', 'middle'],
217
+ default: 'left',
218
+ },
219
+ clickCount: {
220
+ type: 'number',
221
+ description: 'Number of clicks',
222
+ default: 1,
223
+ },
224
+ delay: {
225
+ type: 'number',
226
+ description: 'Delay between mousedown and mouseup in milliseconds',
227
+ },
228
+ },
229
+ required: ['selector'],
230
+ },
231
+ },
232
+ {
233
+ name: 'page_type',
234
+ description: 'Type text into an input element',
235
+ inputSchema: {
236
+ type: 'object',
237
+ properties: {
238
+ selector: {
239
+ type: 'string',
240
+ description: 'CSS selector of input element',
241
+ },
242
+ text: {
243
+ type: 'string',
244
+ description: 'Text to type',
245
+ },
246
+ delay: {
247
+ type: 'number',
248
+ description: 'Delay between key presses in milliseconds',
249
+ },
250
+ },
251
+ required: ['selector', 'text'],
252
+ },
253
+ },
254
+ {
255
+ name: 'page_select',
256
+ description: 'Select option(s) in a <select> element',
257
+ inputSchema: {
258
+ type: 'object',
259
+ properties: {
260
+ selector: {
261
+ type: 'string',
262
+ description: 'CSS selector of select element',
263
+ },
264
+ values: {
265
+ type: 'array',
266
+ description: 'Values to select',
267
+ items: {
268
+ type: 'string',
269
+ },
270
+ },
271
+ },
272
+ required: ['selector', 'values'],
273
+ },
274
+ },
275
+ {
276
+ name: 'page_hover',
277
+ description: 'Hover over an element',
278
+ inputSchema: {
279
+ type: 'object',
280
+ properties: {
281
+ selector: {
282
+ type: 'string',
283
+ description: 'CSS selector of element to hover',
284
+ },
285
+ },
286
+ required: ['selector'],
287
+ },
288
+ },
289
+ {
290
+ name: 'page_scroll',
291
+ description: 'Scroll the page',
292
+ inputSchema: {
293
+ type: 'object',
294
+ properties: {
295
+ x: {
296
+ type: 'number',
297
+ description: 'Horizontal scroll position',
298
+ default: 0,
299
+ },
300
+ y: {
301
+ type: 'number',
302
+ description: 'Vertical scroll position',
303
+ default: 0,
304
+ },
305
+ },
306
+ },
307
+ },
308
+ {
309
+ name: 'page_wait_for_selector',
310
+ description: 'Wait for an element to appear',
311
+ inputSchema: {
312
+ type: 'object',
313
+ properties: {
314
+ selector: {
315
+ type: 'string',
316
+ description: 'CSS selector to wait for',
317
+ },
318
+ timeout: {
319
+ type: 'number',
320
+ description: 'Timeout in milliseconds',
321
+ default: 30000,
322
+ },
323
+ },
324
+ required: ['selector'],
325
+ },
326
+ },
327
+ {
328
+ name: 'page_evaluate',
329
+ description: `Execute JavaScript code in page context and get result.
330
+
331
+ ⚠️ IMPORTANT: Large results (>50KB) automatically return summary + detailId to prevent context overflow.
332
+ Use get_detailed_data(detailId) to retrieve full data if needed.
333
+
334
+ Best Practices:
335
+ - ✅ Query specific properties: { hasAcrawler: !!window.byted_acrawler }
336
+ - ✅ Return only needed data: Object.keys(window.byted_acrawler)
337
+ - ❌ Avoid returning entire objects: window (too large!)
338
+
339
+ Example:
340
+ page_evaluate("({ keys: Object.keys(window.byted_acrawler), type: typeof window.byted_acrawler })")
341
+ → Returns small summary
342
+ → If you need full object, use the returned detailId`,
343
+ inputSchema: {
344
+ type: 'object',
345
+ properties: {
346
+ code: {
347
+ type: 'string',
348
+ description: 'JavaScript code to execute',
349
+ },
350
+ autoSummarize: {
351
+ type: 'boolean',
352
+ description: 'Auto-summarize large results (default: true)',
353
+ default: true,
354
+ },
355
+ maxSize: {
356
+ type: 'number',
357
+ description: 'Max result size in bytes before auto-summarizing (default: 50KB)',
358
+ default: 51200,
359
+ },
360
+ },
361
+ required: ['code'],
362
+ },
363
+ },
364
+ {
365
+ name: 'page_screenshot',
366
+ description: 'Take a screenshot of the page',
367
+ inputSchema: {
368
+ type: 'object',
369
+ properties: {
370
+ path: {
371
+ type: 'string',
372
+ description: 'File path to save screenshot (optional)',
373
+ },
374
+ type: {
375
+ type: 'string',
376
+ description: 'Image format',
377
+ enum: ['png', 'jpeg'],
378
+ default: 'png',
379
+ },
380
+ quality: {
381
+ type: 'number',
382
+ description: 'Image quality (0-100, only for jpeg)',
383
+ },
384
+ fullPage: {
385
+ type: 'boolean',
386
+ description: 'Capture full scrollable page',
387
+ default: false,
388
+ },
389
+ },
390
+ },
391
+ },
392
+ {
393
+ name: 'get_all_scripts',
394
+ description: 'Get list of all loaded scripts on the page',
395
+ inputSchema: {
396
+ type: 'object',
397
+ properties: {
398
+ includeSource: {
399
+ type: 'boolean',
400
+ description: 'Whether to include script source code',
401
+ default: false,
402
+ },
403
+ },
404
+ },
405
+ },
406
+ {
407
+ name: 'get_script_source',
408
+ description: `Get source code of a specific script.
409
+
410
+ ⚠️ IMPORTANT: Large scripts (>50KB) automatically return summary + detailId.
411
+ Use preview mode first to check script size before fetching full source.
412
+
413
+ Best Practices:
414
+ 1. Use preview=true first to see script overview
415
+ 2. If script is large, use detailId to get full source
416
+ 3. Or use startLine/endLine to get specific sections
417
+
418
+ Example:
419
+ get_script_source(scriptId="abc", preview=true)
420
+ → Returns: { lines: 5000, size: "500KB", preview: "...", detailId: "..." }
421
+ → Then: get_detailed_data(detailId) to get full source`,
422
+ inputSchema: {
423
+ type: 'object',
424
+ properties: {
425
+ scriptId: {
426
+ type: 'string',
427
+ description: 'Script ID from get_all_scripts',
428
+ },
429
+ url: {
430
+ type: 'string',
431
+ description: 'Script URL (supports wildcards like *.js)',
432
+ },
433
+ preview: {
434
+ type: 'boolean',
435
+ description: 'Return preview only (first 100 lines + metadata)',
436
+ default: false,
437
+ },
438
+ maxLines: {
439
+ type: 'number',
440
+ description: 'Max lines to return in preview mode (default: 100)',
441
+ default: 100,
442
+ },
443
+ startLine: {
444
+ type: 'number',
445
+ description: 'Start line number (1-based, for partial fetch)',
446
+ },
447
+ endLine: {
448
+ type: 'number',
449
+ description: 'End line number (1-based, for partial fetch)',
450
+ },
451
+ },
452
+ },
453
+ },
454
+ {
455
+ name: 'console_enable',
456
+ description: 'Enable console monitoring to capture console.log, console.error, etc.',
457
+ inputSchema: {
458
+ type: 'object',
459
+ properties: {},
460
+ },
461
+ },
462
+ {
463
+ name: 'console_get_logs',
464
+ description: 'Get captured console logs',
465
+ inputSchema: {
466
+ type: 'object',
467
+ properties: {
468
+ type: {
469
+ type: 'string',
470
+ description: 'Filter by log type',
471
+ enum: ['log', 'warn', 'error', 'info', 'debug'],
472
+ },
473
+ limit: {
474
+ type: 'number',
475
+ description: 'Maximum number of logs to return',
476
+ },
477
+ since: {
478
+ type: 'number',
479
+ description: 'Only return logs after this timestamp',
480
+ },
481
+ },
482
+ },
483
+ },
484
+ {
485
+ name: 'console_execute',
486
+ description: 'Execute JavaScript expression in console context',
487
+ inputSchema: {
488
+ type: 'object',
489
+ properties: {
490
+ expression: {
491
+ type: 'string',
492
+ description: 'JavaScript expression to execute',
493
+ },
494
+ },
495
+ required: ['expression'],
496
+ },
497
+ },
498
+ {
499
+ name: 'dom_get_computed_style',
500
+ description: 'Get computed CSS styles of an element',
501
+ inputSchema: {
502
+ type: 'object',
503
+ properties: {
504
+ selector: {
505
+ type: 'string',
506
+ description: 'CSS selector',
507
+ },
508
+ },
509
+ required: ['selector'],
510
+ },
511
+ },
512
+ {
513
+ name: 'dom_find_by_text',
514
+ description: 'Find elements by text content (useful for dynamic content)',
515
+ inputSchema: {
516
+ type: 'object',
517
+ properties: {
518
+ text: {
519
+ type: 'string',
520
+ description: 'Text to search for',
521
+ },
522
+ tag: {
523
+ type: 'string',
524
+ description: 'Optional tag name to filter (e.g., "button", "a")',
525
+ },
526
+ },
527
+ required: ['text'],
528
+ },
529
+ },
530
+ {
531
+ name: 'dom_get_xpath',
532
+ description: 'Get XPath of an element',
533
+ inputSchema: {
534
+ type: 'object',
535
+ properties: {
536
+ selector: {
537
+ type: 'string',
538
+ description: 'CSS selector',
539
+ },
540
+ },
541
+ required: ['selector'],
542
+ },
543
+ },
544
+ {
545
+ name: 'dom_is_in_viewport',
546
+ description: 'Check if element is visible in viewport',
547
+ inputSchema: {
548
+ type: 'object',
549
+ properties: {
550
+ selector: {
551
+ type: 'string',
552
+ description: 'CSS selector',
553
+ },
554
+ },
555
+ required: ['selector'],
556
+ },
557
+ },
558
+ {
559
+ name: 'page_get_performance',
560
+ description: 'Get page performance metrics (load time, network time, etc.)',
561
+ inputSchema: {
562
+ type: 'object',
563
+ properties: {},
564
+ },
565
+ },
566
+ {
567
+ name: 'page_inject_script',
568
+ description: 'Inject JavaScript code into page',
569
+ inputSchema: {
570
+ type: 'object',
571
+ properties: {
572
+ script: {
573
+ type: 'string',
574
+ description: 'JavaScript code to inject',
575
+ },
576
+ },
577
+ required: ['script'],
578
+ },
579
+ },
580
+ {
581
+ name: 'page_set_cookies',
582
+ description: 'Set cookies for the page',
583
+ inputSchema: {
584
+ type: 'object',
585
+ properties: {
586
+ cookies: {
587
+ type: 'array',
588
+ description: 'Array of cookie objects',
589
+ items: {
590
+ type: 'object',
591
+ properties: {
592
+ name: { type: 'string' },
593
+ value: { type: 'string' },
594
+ domain: { type: 'string' },
595
+ path: { type: 'string' },
596
+ expires: { type: 'number' },
597
+ httpOnly: { type: 'boolean' },
598
+ secure: { type: 'boolean' },
599
+ sameSite: { type: 'string', enum: ['Strict', 'Lax', 'None'] },
600
+ },
601
+ required: ['name', 'value'],
602
+ },
603
+ },
604
+ },
605
+ required: ['cookies'],
606
+ },
607
+ },
608
+ {
609
+ name: 'page_get_cookies',
610
+ description: 'Get all cookies for the page',
611
+ inputSchema: {
612
+ type: 'object',
613
+ properties: {},
614
+ },
615
+ },
616
+ {
617
+ name: 'page_clear_cookies',
618
+ description: 'Clear all cookies',
619
+ inputSchema: {
620
+ type: 'object',
621
+ properties: {},
622
+ },
623
+ },
624
+ {
625
+ name: 'page_set_viewport',
626
+ description: 'Set viewport size',
627
+ inputSchema: {
628
+ type: 'object',
629
+ properties: {
630
+ width: {
631
+ type: 'number',
632
+ description: 'Viewport width',
633
+ },
634
+ height: {
635
+ type: 'number',
636
+ description: 'Viewport height',
637
+ },
638
+ },
639
+ required: ['width', 'height'],
640
+ },
641
+ },
642
+ {
643
+ name: 'page_emulate_device',
644
+ description: 'Emulate mobile device (iPhone, iPad, Android)',
645
+ inputSchema: {
646
+ type: 'object',
647
+ properties: {
648
+ device: {
649
+ type: 'string',
650
+ description: 'Device to emulate',
651
+ enum: ['iPhone', 'iPad', 'Android'],
652
+ },
653
+ },
654
+ required: ['device'],
655
+ },
656
+ },
657
+ {
658
+ name: 'page_get_local_storage',
659
+ description: 'Get all localStorage items',
660
+ inputSchema: {
661
+ type: 'object',
662
+ properties: {},
663
+ },
664
+ },
665
+ {
666
+ name: 'page_set_local_storage',
667
+ description: 'Set localStorage item',
668
+ inputSchema: {
669
+ type: 'object',
670
+ properties: {
671
+ key: {
672
+ type: 'string',
673
+ description: 'Storage key',
674
+ },
675
+ value: {
676
+ type: 'string',
677
+ description: 'Storage value',
678
+ },
679
+ },
680
+ required: ['key', 'value'],
681
+ },
682
+ },
683
+ {
684
+ name: 'page_press_key',
685
+ description: 'Press a keyboard key (e.g., "Enter", "Escape", "ArrowDown")',
686
+ inputSchema: {
687
+ type: 'object',
688
+ properties: {
689
+ key: {
690
+ type: 'string',
691
+ description: 'Key to press',
692
+ },
693
+ },
694
+ required: ['key'],
695
+ },
696
+ },
697
+ {
698
+ name: 'page_get_all_links',
699
+ description: 'Get all links on the page',
700
+ inputSchema: {
701
+ type: 'object',
702
+ properties: {},
703
+ },
704
+ },
705
+ {
706
+ name: 'captcha_detect',
707
+ description: `🤖 AI驱动的验证码检测器
708
+
709
+ **检测方式**:
710
+ 1. 优先使用AI视觉识别(需要支持Vision的LLM模型)
711
+ 2. AI不可用时,返回截图让外部AI智能体分析
712
+ 3. 最后降级到基于规则的检测
713
+
714
+ **支持检测的验证码类型**:
715
+ - 滑块验证码 (Slider CAPTCHA): 极验、阿里云、腾讯等
716
+ - 图形验证码 (Image CAPTCHA)
717
+ - reCAPTCHA / hCaptcha
718
+ - Cloudflare Challenge
719
+ - 页面重定向到验证页
720
+
721
+ **返回结果包含**:
722
+ - detected: 是否检测到验证码
723
+ - type: 验证码类型
724
+ - vendor: 验证码厂商
725
+ - confidence: 检测置信度 (0-100)
726
+ - reasoning: AI的推理过程
727
+ - screenshot: 页面截图(base64编码)- 当MCP内部AI不可用时返回
728
+ - suggestions: 处理建议
729
+
730
+ **特殊情况**:
731
+ 如果MCP内部LLM不支持Vision API(如使用DeepSeek),会返回:
732
+ - screenshot: base64编码的页面截图
733
+ - reasoning: 包含详细的分析提示词
734
+ - vendor: "external-ai-required"
735
+ 此时请使用外部AI智能体(GPT-4o、Claude 3等)分析screenshot字段中的图片。`,
736
+ inputSchema: {
737
+ type: 'object',
738
+ properties: {},
739
+ },
740
+ },
741
+ {
742
+ name: 'captcha_wait',
743
+ description: `等待用户手动完成验证码
744
+
745
+ 使用场景:
746
+ 1. 检测到验证码后调用此工具
747
+ 2. 工具会持续检测验证码是否完成
748
+ 3. 验证完成后自动返回,继续执行后续任务
749
+ 4. 超时后返回失败
750
+
751
+ 注意:此工具会阻塞执行,直到验证完成或超时`,
752
+ inputSchema: {
753
+ type: 'object',
754
+ properties: {
755
+ timeout: {
756
+ type: 'number',
757
+ description: 'Timeout in milliseconds (default: 300000 = 5 minutes)',
758
+ default: 300000,
759
+ },
760
+ },
761
+ },
762
+ },
763
+ {
764
+ name: 'captcha_config',
765
+ description: `配置验证码检测选项
766
+
767
+ 可配置项:
768
+ - autoDetectCaptcha: 是否在page_navigate后自动检测验证码 (默认true)
769
+ - autoSwitchHeadless: 是否检测到验证码时自动切换到有头模式 (默认true)
770
+ - captchaTimeout: 等待用户完成验证的超时时间,单位毫秒 (默认300000)`,
771
+ inputSchema: {
772
+ type: 'object',
773
+ properties: {
774
+ autoDetectCaptcha: {
775
+ type: 'boolean',
776
+ description: 'Whether to automatically detect CAPTCHA after navigation',
777
+ },
778
+ autoSwitchHeadless: {
779
+ type: 'boolean',
780
+ description: 'Whether to automatically switch to headed mode when CAPTCHA detected',
781
+ },
782
+ captchaTimeout: {
783
+ type: 'number',
784
+ description: 'Timeout for waiting user to complete CAPTCHA (milliseconds)',
785
+ },
786
+ },
787
+ },
788
+ },
789
+ {
790
+ name: 'stealth_inject',
791
+ description: `注入2024-2025最新反检测脚本
792
+
793
+ 包含以下反检测技术:
794
+ 1. 隐藏 navigator.webdriver 属性
795
+ 2. 模拟真实的 window.chrome 对象
796
+ 3. 添加真实的 navigator.plugins
797
+ 4. 修复 Permissions API
798
+ 5. Canvas 指纹一致性处理
799
+ 6. WebGL 指纹模拟
800
+ 7. 语言和时区设置
801
+ 8. Battery API 模拟
802
+ 9. MediaDevices 修复
803
+ 10. Notification 权限模拟
804
+
805
+ 基于以下项目的最佳实践:
806
+ - undetected-chromedriver
807
+ - puppeteer-extra-plugin-stealth
808
+ - playwright-stealth
809
+
810
+ 建议在 browser_launch 后立即调用此工具`,
811
+ inputSchema: {
812
+ type: 'object',
813
+ properties: {},
814
+ },
815
+ },
816
+ {
817
+ name: 'stealth_set_user_agent',
818
+ description: `设置真实的User-Agent并确保一致性
819
+
820
+ 会同时设置:
821
+ - User-Agent 字符串
822
+ - navigator.platform
823
+ - navigator.vendor
824
+ - navigator.hardwareConcurrency
825
+ - navigator.deviceMemory
826
+
827
+ 确保所有属性与选择的平台一致,避免被检测`,
828
+ inputSchema: {
829
+ type: 'object',
830
+ properties: {
831
+ platform: {
832
+ type: 'string',
833
+ description: 'Target platform',
834
+ enum: ['windows', 'mac', 'linux'],
835
+ default: 'windows',
836
+ },
837
+ },
838
+ },
839
+ },
840
+ ];
841
+ //# sourceMappingURL=BrowserToolDefinitions.js.map