@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,353 @@
1
+ import { logger } from '../../utils/logger.js';
2
+ export class AIHookGenerator {
3
+ hookCounter = 0;
4
+ generateHook(request) {
5
+ logger.info(`🤖 AI Hook Generator: ${request.description}`);
6
+ const hookId = `ai-hook-${++this.hookCounter}-${Date.now()}`;
7
+ const warnings = [];
8
+ try {
9
+ let generatedCode = '';
10
+ let explanation = '';
11
+ let injectionMethod = 'evaluateOnNewDocument';
12
+ switch (request.target.type) {
13
+ case 'function':
14
+ ({ code: generatedCode, explanation } = this.generateFunctionHook(request, hookId));
15
+ break;
16
+ case 'object-method':
17
+ ({ code: generatedCode, explanation } = this.generateObjectMethodHook(request, hookId));
18
+ break;
19
+ case 'api':
20
+ ({ code: generatedCode, explanation } = this.generateAPIHook(request, hookId));
21
+ injectionMethod = 'evaluateOnNewDocument';
22
+ break;
23
+ case 'property':
24
+ ({ code: generatedCode, explanation } = this.generatePropertyHook(request, hookId));
25
+ break;
26
+ case 'event':
27
+ ({ code: generatedCode, explanation } = this.generateEventHook(request, hookId));
28
+ injectionMethod = 'evaluate';
29
+ break;
30
+ case 'custom':
31
+ ({ code: generatedCode, explanation } = this.generateCustomHook(request, hookId));
32
+ break;
33
+ default:
34
+ throw new Error(`Unsupported target type: ${request.target.type}`);
35
+ }
36
+ generatedCode = this.wrapWithGlobalStorage(generatedCode, hookId);
37
+ this.validateGeneratedCode(generatedCode, warnings);
38
+ logger.success(`✅ Hook generated: ${hookId}`);
39
+ return {
40
+ success: true,
41
+ hookId,
42
+ generatedCode,
43
+ explanation,
44
+ injectionMethod,
45
+ warnings: warnings.length > 0 ? warnings : undefined,
46
+ };
47
+ }
48
+ catch (error) {
49
+ logger.error('Failed to generate hook', error);
50
+ return {
51
+ success: false,
52
+ hookId,
53
+ generatedCode: '',
54
+ explanation: `Error: ${error instanceof Error ? error.message : String(error)}`,
55
+ injectionMethod: 'evaluateOnNewDocument',
56
+ warnings: ['Hook generation failed'],
57
+ };
58
+ }
59
+ }
60
+ generateFunctionHook(request, hookId) {
61
+ const { target, behavior, condition, customCode } = request;
62
+ const functionName = target.name || target.pattern || 'unknownFunction';
63
+ let code = `
64
+ // AI Generated Hook: ${request.description}
65
+ // Hook ID: ${hookId}
66
+ (function() {
67
+ const originalFunction = window.${functionName};
68
+
69
+ if (typeof originalFunction !== 'function') {
70
+ console.warn('[${hookId}] Function not found: ${functionName}');
71
+ return;
72
+ }
73
+
74
+ let callCount = 0;
75
+ const maxCalls = ${condition?.maxCalls || 'Infinity'};
76
+
77
+ window.${functionName} = function(...args) {
78
+ callCount++;
79
+
80
+ // 检查调用次数限制
81
+ if (callCount > maxCalls) {
82
+ return originalFunction.apply(this, args);
83
+ }
84
+
85
+ const hookData = {
86
+ hookId: '${hookId}',
87
+ functionName: '${functionName}',
88
+ callCount,
89
+ timestamp: Date.now(),
90
+ ${behavior.captureArgs ? 'args: args,' : ''}
91
+ ${behavior.captureStack ? 'stack: new Error().stack,' : ''}
92
+ };
93
+
94
+ ${customCode?.before || ''}
95
+
96
+ ${condition?.argFilter ? `
97
+ // 参数过滤
98
+ const argFilterPassed = (function() {
99
+ try {
100
+ return ${condition.argFilter};
101
+ } catch (e) {
102
+ console.error('[${hookId}] Arg filter error:', e);
103
+ return true;
104
+ }
105
+ })();
106
+
107
+ if (!argFilterPassed) {
108
+ return originalFunction.apply(this, args);
109
+ }
110
+ ` : ''}
111
+
112
+ ${behavior.logToConsole ? `
113
+ console.log('[${hookId}] Function called:', hookData);
114
+ ` : ''}
115
+
116
+ ${behavior.blockExecution ? `
117
+ console.warn('[${hookId}] Execution blocked');
118
+ return undefined;
119
+ ` : `
120
+ // 执行原函数
121
+ const startTime = performance.now();
122
+ const result = originalFunction.apply(this, args);
123
+ const executionTime = performance.now() - startTime;
124
+
125
+ ${behavior.captureReturn ? `
126
+ hookData.returnValue = result;
127
+ hookData.executionTime = executionTime;
128
+ ` : ''}
129
+
130
+ ${customCode?.after || ''}
131
+
132
+ // 存储Hook数据
133
+ if (!window.__aiHooks) window.__aiHooks = {};
134
+ if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
135
+ window.__aiHooks['${hookId}'].push(hookData);
136
+
137
+ return result;
138
+ `}
139
+ };
140
+
141
+ console.log('[${hookId}] Hook installed for: ${functionName}');
142
+ })();
143
+ `;
144
+ const explanation = `
145
+ Hook已生成用于函数: ${functionName}
146
+ - 捕获参数: ${behavior.captureArgs ? '是' : '否'}
147
+ - 捕获返回值: ${behavior.captureReturn ? '是' : '否'}
148
+ - 捕获调用栈: ${behavior.captureStack ? '是' : '否'}
149
+ - 阻止执行: ${behavior.blockExecution ? '是' : '否'}
150
+ ${condition?.maxCalls ? `- 最大调用次数: ${condition.maxCalls}` : ''}
151
+ `;
152
+ return { code, explanation };
153
+ }
154
+ generateObjectMethodHook(request, hookId) {
155
+ const { target, behavior } = request;
156
+ const objectPath = target.object || 'window';
157
+ const methodName = target.property || target.name || 'unknownMethod';
158
+ const code = `
159
+ // AI Generated Object Method Hook: ${request.description}
160
+ (function() {
161
+ const targetObject = ${objectPath};
162
+ const methodName = '${methodName}';
163
+
164
+ if (!targetObject || typeof targetObject[methodName] !== 'function') {
165
+ console.warn('[${hookId}] Method not found: ${objectPath}.${methodName}');
166
+ return;
167
+ }
168
+
169
+ const originalMethod = targetObject[methodName];
170
+ let callCount = 0;
171
+
172
+ targetObject[methodName] = function(...args) {
173
+ callCount++;
174
+
175
+ const hookData = {
176
+ hookId: '${hookId}',
177
+ object: '${objectPath}',
178
+ method: '${methodName}',
179
+ callCount,
180
+ timestamp: Date.now(),
181
+ ${behavior.captureArgs ? 'args: args,' : ''}
182
+ ${behavior.captureStack ? 'stack: new Error().stack,' : ''}
183
+ };
184
+
185
+ ${behavior.logToConsole ? `
186
+ console.log('[${hookId}] Method called:', hookData);
187
+ ` : ''}
188
+
189
+ const result = originalMethod.apply(this, args);
190
+
191
+ ${behavior.captureReturn ? `
192
+ hookData.returnValue = result;
193
+ ` : ''}
194
+
195
+ if (!window.__aiHooks) window.__aiHooks = {};
196
+ if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
197
+ window.__aiHooks['${hookId}'].push(hookData);
198
+
199
+ return result;
200
+ };
201
+
202
+ console.log('[${hookId}] Hook installed for: ${objectPath}.${methodName}');
203
+ })();
204
+ `;
205
+ const explanation = `Hook已生成用于对象方法: ${objectPath}.${methodName}`;
206
+ return { code, explanation };
207
+ }
208
+ generateAPIHook(request, hookId) {
209
+ const apiName = request.target.name || 'fetch';
210
+ let code = '';
211
+ if (apiName === 'fetch') {
212
+ code = this.generateFetchAPIHook(request, hookId);
213
+ }
214
+ else if (apiName === 'XMLHttpRequest') {
215
+ code = this.generateXHRAPIHook(request, hookId);
216
+ }
217
+ else {
218
+ code = `console.error('[${hookId}] Unsupported API: ${apiName}');`;
219
+ }
220
+ const explanation = `Hook已生成用于API: ${apiName}`;
221
+ return { code, explanation };
222
+ }
223
+ generateFetchAPIHook(request, hookId) {
224
+ const { behavior, condition } = request;
225
+ return `
226
+ // AI Generated Fetch Hook
227
+ (function() {
228
+ const originalFetch = window.fetch;
229
+
230
+ window.fetch = function(...args) {
231
+ const [url, options] = args;
232
+
233
+ ${condition?.urlPattern ? `
234
+ const urlPattern = new RegExp('${condition.urlPattern}');
235
+ if (!urlPattern.test(url)) {
236
+ return originalFetch.apply(this, args);
237
+ }
238
+ ` : ''}
239
+
240
+ const hookData = {
241
+ hookId: '${hookId}',
242
+ type: 'fetch',
243
+ url: url,
244
+ method: options?.method || 'GET',
245
+ timestamp: Date.now(),
246
+ ${behavior.captureArgs ? 'options: options,' : ''}
247
+ };
248
+
249
+ ${behavior.logToConsole ? `
250
+ console.log('[${hookId}] Fetch request:', hookData);
251
+ ` : ''}
252
+
253
+ return originalFetch.apply(this, args).then(response => {
254
+ ${behavior.captureReturn ? `
255
+ hookData.status = response.status;
256
+ hookData.statusText = response.statusText;
257
+ ` : ''}
258
+
259
+ if (!window.__aiHooks) window.__aiHooks = {};
260
+ if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
261
+ window.__aiHooks['${hookId}'].push(hookData);
262
+
263
+ return response;
264
+ });
265
+ };
266
+
267
+ console.log('[${hookId}] Fetch Hook installed');
268
+ })();
269
+ `;
270
+ }
271
+ generateXHRAPIHook(_request, hookId) {
272
+ return `
273
+ // AI Generated XHR Hook
274
+ (function() {
275
+ const originalOpen = XMLHttpRequest.prototype.open;
276
+ const originalSend = XMLHttpRequest.prototype.send;
277
+
278
+ XMLHttpRequest.prototype.open = function(method, url, ...rest) {
279
+ this.__hookData = {
280
+ hookId: '${hookId}',
281
+ type: 'xhr',
282
+ method,
283
+ url,
284
+ timestamp: Date.now(),
285
+ };
286
+ return originalOpen.apply(this, [method, url, ...rest]);
287
+ };
288
+
289
+ XMLHttpRequest.prototype.send = function(...args) {
290
+ const xhr = this;
291
+
292
+ xhr.addEventListener('load', function() {
293
+ if (xhr.__hookData) {
294
+ xhr.__hookData.status = xhr.status;
295
+ xhr.__hookData.response = xhr.responseText;
296
+
297
+ if (!window.__aiHooks) window.__aiHooks = {};
298
+ if (!window.__aiHooks['${hookId}']) window.__aiHooks['${hookId}'] = [];
299
+ window.__aiHooks['${hookId}'].push(xhr.__hookData);
300
+ }
301
+ });
302
+
303
+ return originalSend.apply(this, args);
304
+ };
305
+
306
+ console.log('[${hookId}] XHR Hook installed');
307
+ })();
308
+ `;
309
+ }
310
+ generatePropertyHook(request, _hookId) {
311
+ const code = `// Property Hook not yet implemented for: ${request.description}`;
312
+ const explanation = 'Property Hook generation is under development';
313
+ return { code, explanation };
314
+ }
315
+ generateEventHook(request, _hookId) {
316
+ const code = `// Event Hook not yet implemented for: ${request.description}`;
317
+ const explanation = 'Event Hook generation is under development';
318
+ return { code, explanation };
319
+ }
320
+ generateCustomHook(request, _hookId) {
321
+ const code = request.customCode?.replace || `// Custom Hook: ${request.description}`;
322
+ const explanation = 'Custom Hook code provided by user';
323
+ return { code, explanation };
324
+ }
325
+ wrapWithGlobalStorage(code, hookId) {
326
+ return `
327
+ // Initialize global hook storage
328
+ if (!window.__aiHooks) {
329
+ window.__aiHooks = {};
330
+ window.__aiHookMetadata = {};
331
+ }
332
+
333
+ window.__aiHookMetadata['${hookId}'] = {
334
+ id: '${hookId}',
335
+ createdAt: Date.now(),
336
+ enabled: true,
337
+ };
338
+
339
+ ${code}
340
+ `;
341
+ }
342
+ validateGeneratedCode(code, warnings) {
343
+ if (code.includes('eval(') || code.includes('Function(')) {
344
+ warnings.push('⚠️ Generated code contains eval() or Function(), which may be dangerous');
345
+ }
346
+ const openBraces = (code.match(/{/g) || []).length;
347
+ const closeBraces = (code.match(/}/g) || []).length;
348
+ if (openBraces !== closeBraces) {
349
+ warnings.push('⚠️ Possible syntax error: unmatched braces');
350
+ }
351
+ }
352
+ }
353
+ //# sourceMappingURL=AIHookGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIHookGenerator.js","sourceRoot":"","sources":["../../../src/modules/hook/AIHookGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { HookOptions, HookResult, HookRecord, HookContext } from '../../types/index.js';
2
+ interface HookMetadata {
3
+ id: string;
4
+ enabled: boolean;
5
+ createdAt: number;
6
+ callCount: number;
7
+ totalExecutionTime: number;
8
+ lastCalled?: number;
9
+ }
10
+ export declare class HookManager {
11
+ private hooks;
12
+ private hookScripts;
13
+ private hookMetadata;
14
+ private hookConditions;
15
+ private readonly MAX_HOOK_RECORDS;
16
+ private readonly MAX_TOTAL_RECORDS;
17
+ createHook(options: HookOptions): Promise<HookResult>;
18
+ private generateHookScript;
19
+ private generateFunctionHook;
20
+ private generateXHRHook;
21
+ private generateFetchHook;
22
+ private generateWebSocketHook;
23
+ private generateLocalStorageHook;
24
+ private generateCookieHook;
25
+ private getInjectionInstructions;
26
+ recordHookEvent(hookId: string, context: HookContext): void;
27
+ getHookRecords(hookId: string): HookRecord[];
28
+ clearHookRecords(hookId?: string): void;
29
+ private generateEvalHook;
30
+ private generateObjectMethodHook;
31
+ enableHook(hookId: string): void;
32
+ disableHook(hookId: string): void;
33
+ getHookMetadata(hookId: string): HookMetadata | undefined;
34
+ getAllHookMetadata(): HookMetadata[];
35
+ exportHookData(hookId?: string): {
36
+ metadata: HookMetadata[];
37
+ records: Record<string, HookRecord[]>;
38
+ scripts: Record<string, string>;
39
+ };
40
+ getHookStats(hookId: string): {
41
+ callCount: number;
42
+ avgExecutionTime: number;
43
+ totalExecutionTime: number;
44
+ enabled: boolean;
45
+ } | null;
46
+ deleteHook(hookId: string): void;
47
+ getAllHooks(): string[];
48
+ recordHookCall(hookId: string, record: HookRecord): void;
49
+ private cleanupOldestRecords;
50
+ getHookRecordsStats(): {
51
+ totalHooks: number;
52
+ totalRecords: number;
53
+ recordsByHook: Record<string, number>;
54
+ oldestRecord: number | null;
55
+ newestRecord: number | null;
56
+ };
57
+ generateAntiDebugBypass(): string;
58
+ generateHookTemplate(targetName: string, targetType: 'function' | 'property' | 'prototype'): string;
59
+ createBatchHooks(targets: Array<{
60
+ target: string;
61
+ type: HookOptions['type'];
62
+ action?: 'log' | 'block' | 'modify';
63
+ }>): Promise<HookResult[]>;
64
+ generateHookChain(hooks: HookResult[]): string;
65
+ }
66
+ export {};
67
+ //# sourceMappingURL=HookManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HookManager.d.ts","sourceRoot":"","sources":["../../../src/modules/hook/HookManager.ts"],"names":[],"mappings":"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"}