@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,935 @@
1
+ export class DebuggerToolHandlers {
2
+ debuggerManager;
3
+ runtimeInspector;
4
+ constructor(debuggerManager, runtimeInspector) {
5
+ this.debuggerManager = debuggerManager;
6
+ this.runtimeInspector = runtimeInspector;
7
+ }
8
+ async handleDebuggerEnable(_args) {
9
+ await this.debuggerManager.init();
10
+ await this.runtimeInspector.init();
11
+ return {
12
+ content: [{
13
+ type: 'text',
14
+ text: JSON.stringify({
15
+ success: true,
16
+ message: 'Debugger enabled',
17
+ enabled: this.debuggerManager.isEnabled(),
18
+ }, null, 2),
19
+ }],
20
+ };
21
+ }
22
+ async handleDebuggerDisable(_args) {
23
+ await this.debuggerManager.disable();
24
+ await this.runtimeInspector.disable();
25
+ return {
26
+ content: [{
27
+ type: 'text',
28
+ text: JSON.stringify({
29
+ success: true,
30
+ message: 'Debugger disabled',
31
+ }, null, 2),
32
+ }],
33
+ };
34
+ }
35
+ async handleDebuggerPause(_args) {
36
+ await this.debuggerManager.pause();
37
+ return {
38
+ content: [{
39
+ type: 'text',
40
+ text: JSON.stringify({
41
+ success: true,
42
+ message: 'Execution paused',
43
+ }, null, 2),
44
+ }],
45
+ };
46
+ }
47
+ async handleDebuggerResume(_args) {
48
+ await this.debuggerManager.resume();
49
+ return {
50
+ content: [{
51
+ type: 'text',
52
+ text: JSON.stringify({
53
+ success: true,
54
+ message: 'Execution resumed',
55
+ }, null, 2),
56
+ }],
57
+ };
58
+ }
59
+ async handleDebuggerStepInto(_args) {
60
+ await this.debuggerManager.stepInto();
61
+ return {
62
+ content: [{
63
+ type: 'text',
64
+ text: JSON.stringify({
65
+ success: true,
66
+ message: 'Stepped into',
67
+ }, null, 2),
68
+ }],
69
+ };
70
+ }
71
+ async handleDebuggerStepOver(_args) {
72
+ await this.debuggerManager.stepOver();
73
+ return {
74
+ content: [{
75
+ type: 'text',
76
+ text: JSON.stringify({
77
+ success: true,
78
+ message: 'Stepped over',
79
+ }, null, 2),
80
+ }],
81
+ };
82
+ }
83
+ async handleDebuggerStepOut(_args) {
84
+ await this.debuggerManager.stepOut();
85
+ return {
86
+ content: [{
87
+ type: 'text',
88
+ text: JSON.stringify({
89
+ success: true,
90
+ message: 'Stepped out',
91
+ }, null, 2),
92
+ }],
93
+ };
94
+ }
95
+ async handleBreakpointSet(args) {
96
+ const url = args.url;
97
+ const scriptId = args.scriptId;
98
+ const lineNumber = args.lineNumber;
99
+ const columnNumber = args.columnNumber;
100
+ const condition = args.condition;
101
+ let breakpoint;
102
+ if (url) {
103
+ breakpoint = await this.debuggerManager.setBreakpointByUrl({
104
+ url,
105
+ lineNumber,
106
+ columnNumber,
107
+ condition,
108
+ });
109
+ }
110
+ else if (scriptId) {
111
+ breakpoint = await this.debuggerManager.setBreakpoint({
112
+ scriptId,
113
+ lineNumber,
114
+ columnNumber,
115
+ condition,
116
+ });
117
+ }
118
+ else {
119
+ throw new Error('Either url or scriptId must be provided');
120
+ }
121
+ return {
122
+ content: [{
123
+ type: 'text',
124
+ text: JSON.stringify({
125
+ success: true,
126
+ breakpoint: {
127
+ breakpointId: breakpoint.breakpointId,
128
+ location: breakpoint.location,
129
+ condition: breakpoint.condition,
130
+ enabled: breakpoint.enabled,
131
+ },
132
+ }, null, 2),
133
+ }],
134
+ };
135
+ }
136
+ async handleBreakpointRemove(args) {
137
+ const breakpointId = args.breakpointId;
138
+ await this.debuggerManager.removeBreakpoint(breakpointId);
139
+ return {
140
+ content: [{
141
+ type: 'text',
142
+ text: JSON.stringify({
143
+ success: true,
144
+ message: `Breakpoint ${breakpointId} removed`,
145
+ }, null, 2),
146
+ }],
147
+ };
148
+ }
149
+ async handleBreakpointList(_args) {
150
+ const breakpoints = this.debuggerManager.listBreakpoints();
151
+ return {
152
+ content: [{
153
+ type: 'text',
154
+ text: JSON.stringify({
155
+ count: breakpoints.length,
156
+ breakpoints: breakpoints.map(bp => ({
157
+ breakpointId: bp.breakpointId,
158
+ location: bp.location,
159
+ condition: bp.condition,
160
+ enabled: bp.enabled,
161
+ hitCount: bp.hitCount,
162
+ })),
163
+ }, null, 2),
164
+ }],
165
+ };
166
+ }
167
+ async handleGetCallStack(_args) {
168
+ const callStack = await this.runtimeInspector.getCallStack();
169
+ if (!callStack) {
170
+ return {
171
+ content: [{
172
+ type: 'text',
173
+ text: JSON.stringify({
174
+ success: false,
175
+ message: 'Not in paused state. Set a breakpoint and trigger it first.',
176
+ }, null, 2),
177
+ }],
178
+ };
179
+ }
180
+ return {
181
+ content: [{
182
+ type: 'text',
183
+ text: JSON.stringify({
184
+ success: true,
185
+ callStack: {
186
+ frameCount: callStack.callFrames.length,
187
+ reason: callStack.reason,
188
+ frames: callStack.callFrames.map((frame, index) => ({
189
+ index,
190
+ callFrameId: frame.callFrameId,
191
+ functionName: frame.functionName,
192
+ location: `${frame.location.url}:${frame.location.lineNumber}:${frame.location.columnNumber}`,
193
+ scopeCount: frame.scopeChain.length,
194
+ })),
195
+ },
196
+ }, null, 2),
197
+ }],
198
+ };
199
+ }
200
+ async handleDebuggerEvaluate(args) {
201
+ const expression = args.expression;
202
+ const callFrameId = args.callFrameId;
203
+ const result = await this.runtimeInspector.evaluate(expression, callFrameId);
204
+ return {
205
+ content: [{
206
+ type: 'text',
207
+ text: JSON.stringify({
208
+ success: true,
209
+ expression,
210
+ result,
211
+ }, null, 2),
212
+ }],
213
+ };
214
+ }
215
+ async handleDebuggerEvaluateGlobal(args) {
216
+ const expression = args.expression;
217
+ const result = await this.runtimeInspector.evaluateGlobal(expression);
218
+ return {
219
+ content: [{
220
+ type: 'text',
221
+ text: JSON.stringify({
222
+ success: true,
223
+ expression,
224
+ result,
225
+ }, null, 2),
226
+ }],
227
+ };
228
+ }
229
+ async handleDebuggerWaitForPaused(args) {
230
+ const timeout = args.timeout || 30000;
231
+ try {
232
+ const pausedState = await this.debuggerManager.waitForPaused(timeout);
233
+ return {
234
+ content: [{
235
+ type: 'text',
236
+ text: JSON.stringify({
237
+ success: true,
238
+ paused: true,
239
+ reason: pausedState.reason,
240
+ location: pausedState.callFrames[0]?.location,
241
+ hitBreakpoints: pausedState.hitBreakpoints,
242
+ }, null, 2),
243
+ }],
244
+ };
245
+ }
246
+ catch (error) {
247
+ return {
248
+ content: [{
249
+ type: 'text',
250
+ text: JSON.stringify({
251
+ success: false,
252
+ paused: false,
253
+ message: 'Timeout waiting for paused event',
254
+ }, null, 2),
255
+ }],
256
+ };
257
+ }
258
+ }
259
+ async handleDebuggerGetPausedState(_args) {
260
+ const pausedState = this.debuggerManager.getPausedState();
261
+ if (!pausedState) {
262
+ return {
263
+ content: [{
264
+ type: 'text',
265
+ text: JSON.stringify({
266
+ paused: false,
267
+ message: 'Debugger is not paused',
268
+ }, null, 2),
269
+ }],
270
+ };
271
+ }
272
+ return {
273
+ content: [{
274
+ type: 'text',
275
+ text: JSON.stringify({
276
+ paused: true,
277
+ reason: pausedState.reason,
278
+ frameCount: pausedState.callFrames.length,
279
+ topFrame: {
280
+ functionName: pausedState.callFrames[0]?.functionName,
281
+ location: pausedState.callFrames[0]?.location,
282
+ },
283
+ hitBreakpoints: pausedState.hitBreakpoints,
284
+ timestamp: pausedState.timestamp,
285
+ }, null, 2),
286
+ }],
287
+ };
288
+ }
289
+ async handleGetObjectProperties(args) {
290
+ const objectId = args.objectId;
291
+ const properties = await this.runtimeInspector.getObjectProperties(objectId);
292
+ return {
293
+ content: [{
294
+ type: 'text',
295
+ text: JSON.stringify({
296
+ success: true,
297
+ propertyCount: properties.length,
298
+ properties: properties.map(p => ({
299
+ name: p.name,
300
+ value: p.value,
301
+ type: p.type,
302
+ objectId: p.objectId,
303
+ description: p.description,
304
+ })),
305
+ }, null, 2),
306
+ }],
307
+ };
308
+ }
309
+ async handleBreakpointSetOnException(args) {
310
+ const state = args.state || 'none';
311
+ await this.debuggerManager.setPauseOnExceptions(state);
312
+ return {
313
+ content: [{
314
+ type: 'text',
315
+ text: JSON.stringify({
316
+ success: true,
317
+ message: `Pause on exceptions set to: ${state}`,
318
+ state,
319
+ }, null, 2),
320
+ }],
321
+ };
322
+ }
323
+ async handleGetScopeVariablesEnhanced(args) {
324
+ const callFrameId = args.callFrameId;
325
+ const includeObjectProperties = args.includeObjectProperties;
326
+ const maxDepth = args.maxDepth;
327
+ const skipErrors = args.skipErrors !== false;
328
+ try {
329
+ const result = await this.debuggerManager.getScopeVariables({
330
+ callFrameId,
331
+ includeObjectProperties,
332
+ maxDepth,
333
+ skipErrors,
334
+ });
335
+ return {
336
+ content: [{
337
+ type: 'text',
338
+ text: JSON.stringify(result, null, 2),
339
+ }],
340
+ };
341
+ }
342
+ catch (error) {
343
+ return {
344
+ content: [{
345
+ type: 'text',
346
+ text: JSON.stringify({
347
+ success: false,
348
+ message: error.message || 'Failed to get scope variables',
349
+ error: String(error),
350
+ }, null, 2),
351
+ }],
352
+ };
353
+ }
354
+ }
355
+ async handleSaveSession(args) {
356
+ const filePath = args.filePath;
357
+ const metadata = args.metadata;
358
+ try {
359
+ const savedPath = await this.debuggerManager.saveSession(filePath, metadata);
360
+ return {
361
+ content: [{
362
+ type: 'text',
363
+ text: JSON.stringify({
364
+ success: true,
365
+ message: 'Session saved successfully',
366
+ filePath: savedPath,
367
+ breakpointCount: this.debuggerManager.listBreakpoints().length,
368
+ }, null, 2),
369
+ }],
370
+ };
371
+ }
372
+ catch (error) {
373
+ return {
374
+ content: [{
375
+ type: 'text',
376
+ text: JSON.stringify({
377
+ success: false,
378
+ message: 'Failed to save session',
379
+ error: error.message || String(error),
380
+ }, null, 2),
381
+ }],
382
+ };
383
+ }
384
+ }
385
+ async handleLoadSession(args) {
386
+ const filePath = args.filePath;
387
+ const sessionData = args.sessionData;
388
+ try {
389
+ if (filePath) {
390
+ await this.debuggerManager.loadSessionFromFile(filePath);
391
+ }
392
+ else if (sessionData) {
393
+ await this.debuggerManager.importSession(sessionData);
394
+ }
395
+ else {
396
+ throw new Error('Either filePath or sessionData must be provided');
397
+ }
398
+ return {
399
+ content: [{
400
+ type: 'text',
401
+ text: JSON.stringify({
402
+ success: true,
403
+ message: 'Session loaded successfully',
404
+ breakpointCount: this.debuggerManager.listBreakpoints().length,
405
+ pauseOnExceptions: this.debuggerManager.getPauseOnExceptionsState(),
406
+ }, null, 2),
407
+ }],
408
+ };
409
+ }
410
+ catch (error) {
411
+ return {
412
+ content: [{
413
+ type: 'text',
414
+ text: JSON.stringify({
415
+ success: false,
416
+ message: 'Failed to load session',
417
+ error: error.message || String(error),
418
+ }, null, 2),
419
+ }],
420
+ };
421
+ }
422
+ }
423
+ async handleExportSession(args) {
424
+ const metadata = args.metadata;
425
+ try {
426
+ const session = this.debuggerManager.exportSession(metadata);
427
+ return {
428
+ content: [{
429
+ type: 'text',
430
+ text: JSON.stringify({
431
+ success: true,
432
+ message: 'Session exported successfully',
433
+ session,
434
+ }, null, 2),
435
+ }],
436
+ };
437
+ }
438
+ catch (error) {
439
+ return {
440
+ content: [{
441
+ type: 'text',
442
+ text: JSON.stringify({
443
+ success: false,
444
+ message: 'Failed to export session',
445
+ error: error.message || String(error),
446
+ }, null, 2),
447
+ }],
448
+ };
449
+ }
450
+ }
451
+ async handleListSessions(_args) {
452
+ try {
453
+ const sessions = await this.debuggerManager.listSavedSessions();
454
+ return {
455
+ content: [{
456
+ type: 'text',
457
+ text: JSON.stringify({
458
+ success: true,
459
+ count: sessions.length,
460
+ sessions: sessions.map(s => ({
461
+ path: s.path,
462
+ timestamp: s.timestamp,
463
+ date: new Date(s.timestamp).toISOString(),
464
+ metadata: s.metadata,
465
+ })),
466
+ }, null, 2),
467
+ }],
468
+ };
469
+ }
470
+ catch (error) {
471
+ return {
472
+ content: [{
473
+ type: 'text',
474
+ text: JSON.stringify({
475
+ success: false,
476
+ message: 'Failed to list sessions',
477
+ error: error.message || String(error),
478
+ }, null, 2),
479
+ }],
480
+ };
481
+ }
482
+ }
483
+ async handleWatchAdd(args) {
484
+ try {
485
+ const expression = args.expression;
486
+ const name = args.name;
487
+ const watchManager = this.debuggerManager.getWatchManager();
488
+ const watchId = watchManager.addWatch(expression, name);
489
+ return {
490
+ content: [{
491
+ type: 'text',
492
+ text: JSON.stringify({
493
+ success: true,
494
+ message: 'Watch expression added',
495
+ watchId,
496
+ expression,
497
+ name: name || expression,
498
+ }, null, 2),
499
+ }],
500
+ };
501
+ }
502
+ catch (error) {
503
+ return {
504
+ content: [{
505
+ type: 'text',
506
+ text: JSON.stringify({
507
+ success: false,
508
+ message: 'Failed to add watch expression',
509
+ error: error.message || String(error),
510
+ }, null, 2),
511
+ }],
512
+ };
513
+ }
514
+ }
515
+ async handleWatchRemove(args) {
516
+ try {
517
+ const watchId = args.watchId;
518
+ const watchManager = this.debuggerManager.getWatchManager();
519
+ const removed = watchManager.removeWatch(watchId);
520
+ return {
521
+ content: [{
522
+ type: 'text',
523
+ text: JSON.stringify({
524
+ success: removed,
525
+ message: removed ? 'Watch expression removed' : 'Watch expression not found',
526
+ watchId,
527
+ }, null, 2),
528
+ }],
529
+ };
530
+ }
531
+ catch (error) {
532
+ return {
533
+ content: [{
534
+ type: 'text',
535
+ text: JSON.stringify({
536
+ success: false,
537
+ message: 'Failed to remove watch expression',
538
+ error: error.message || String(error),
539
+ }, null, 2),
540
+ }],
541
+ };
542
+ }
543
+ }
544
+ async handleWatchList(_args) {
545
+ try {
546
+ const watchManager = this.debuggerManager.getWatchManager();
547
+ const watches = watchManager.getAllWatches();
548
+ return {
549
+ content: [{
550
+ type: 'text',
551
+ text: JSON.stringify({
552
+ success: true,
553
+ message: `Found ${watches.length} watch expression(s)`,
554
+ watches,
555
+ }, null, 2),
556
+ }],
557
+ };
558
+ }
559
+ catch (error) {
560
+ return {
561
+ content: [{
562
+ type: 'text',
563
+ text: JSON.stringify({
564
+ success: false,
565
+ message: 'Failed to list watch expressions',
566
+ error: error.message || String(error),
567
+ }, null, 2),
568
+ }],
569
+ };
570
+ }
571
+ }
572
+ async handleWatchEvaluateAll(args) {
573
+ try {
574
+ const callFrameId = args.callFrameId;
575
+ const watchManager = this.debuggerManager.getWatchManager();
576
+ const results = await watchManager.evaluateAll(callFrameId);
577
+ return {
578
+ content: [{
579
+ type: 'text',
580
+ text: JSON.stringify({
581
+ success: true,
582
+ message: `Evaluated ${results.length} watch expression(s)`,
583
+ results,
584
+ }, null, 2),
585
+ }],
586
+ };
587
+ }
588
+ catch (error) {
589
+ return {
590
+ content: [{
591
+ type: 'text',
592
+ text: JSON.stringify({
593
+ success: false,
594
+ message: 'Failed to evaluate watch expressions',
595
+ error: error.message || String(error),
596
+ }, null, 2),
597
+ }],
598
+ };
599
+ }
600
+ }
601
+ async handleWatchClearAll(_args) {
602
+ try {
603
+ const watchManager = this.debuggerManager.getWatchManager();
604
+ watchManager.clearAll();
605
+ return {
606
+ content: [{
607
+ type: 'text',
608
+ text: JSON.stringify({
609
+ success: true,
610
+ message: 'All watch expressions cleared',
611
+ }, null, 2),
612
+ }],
613
+ };
614
+ }
615
+ catch (error) {
616
+ return {
617
+ content: [{
618
+ type: 'text',
619
+ text: JSON.stringify({
620
+ success: false,
621
+ message: 'Failed to clear watch expressions',
622
+ error: error.message || String(error),
623
+ }, null, 2),
624
+ }],
625
+ };
626
+ }
627
+ }
628
+ async handleXHRBreakpointSet(args) {
629
+ try {
630
+ const urlPattern = args.urlPattern;
631
+ const xhrManager = this.debuggerManager.getXHRManager();
632
+ const breakpointId = await xhrManager.setXHRBreakpoint(urlPattern);
633
+ return {
634
+ content: [{
635
+ type: 'text',
636
+ text: JSON.stringify({
637
+ success: true,
638
+ message: 'XHR breakpoint set',
639
+ breakpointId,
640
+ urlPattern,
641
+ }, null, 2),
642
+ }],
643
+ };
644
+ }
645
+ catch (error) {
646
+ return {
647
+ content: [{
648
+ type: 'text',
649
+ text: JSON.stringify({
650
+ success: false,
651
+ message: 'Failed to set XHR breakpoint',
652
+ error: error.message || String(error),
653
+ }, null, 2),
654
+ }],
655
+ };
656
+ }
657
+ }
658
+ async handleXHRBreakpointRemove(args) {
659
+ try {
660
+ const breakpointId = args.breakpointId;
661
+ const xhrManager = this.debuggerManager.getXHRManager();
662
+ const removed = await xhrManager.removeXHRBreakpoint(breakpointId);
663
+ return {
664
+ content: [{
665
+ type: 'text',
666
+ text: JSON.stringify({
667
+ success: removed,
668
+ message: removed ? 'XHR breakpoint removed' : 'XHR breakpoint not found',
669
+ breakpointId,
670
+ }, null, 2),
671
+ }],
672
+ };
673
+ }
674
+ catch (error) {
675
+ return {
676
+ content: [{
677
+ type: 'text',
678
+ text: JSON.stringify({
679
+ success: false,
680
+ message: 'Failed to remove XHR breakpoint',
681
+ error: error.message || String(error),
682
+ }, null, 2),
683
+ }],
684
+ };
685
+ }
686
+ }
687
+ async handleXHRBreakpointList(_args) {
688
+ try {
689
+ const xhrManager = this.debuggerManager.getXHRManager();
690
+ const breakpoints = xhrManager.getAllXHRBreakpoints();
691
+ return {
692
+ content: [{
693
+ type: 'text',
694
+ text: JSON.stringify({
695
+ success: true,
696
+ message: `Found ${breakpoints.length} XHR breakpoint(s)`,
697
+ breakpoints,
698
+ }, null, 2),
699
+ }],
700
+ };
701
+ }
702
+ catch (error) {
703
+ return {
704
+ content: [{
705
+ type: 'text',
706
+ text: JSON.stringify({
707
+ success: false,
708
+ message: 'Failed to list XHR breakpoints',
709
+ error: error.message || String(error),
710
+ }, null, 2),
711
+ }],
712
+ };
713
+ }
714
+ }
715
+ async handleEventBreakpointSet(args) {
716
+ try {
717
+ const eventName = args.eventName;
718
+ const targetName = args.targetName;
719
+ const eventManager = this.debuggerManager.getEventManager();
720
+ const breakpointId = await eventManager.setEventListenerBreakpoint(eventName, targetName);
721
+ return {
722
+ content: [{
723
+ type: 'text',
724
+ text: JSON.stringify({
725
+ success: true,
726
+ message: 'Event breakpoint set',
727
+ breakpointId,
728
+ eventName,
729
+ targetName,
730
+ }, null, 2),
731
+ }],
732
+ };
733
+ }
734
+ catch (error) {
735
+ return {
736
+ content: [{
737
+ type: 'text',
738
+ text: JSON.stringify({
739
+ success: false,
740
+ message: 'Failed to set event breakpoint',
741
+ error: error.message || String(error),
742
+ }, null, 2),
743
+ }],
744
+ };
745
+ }
746
+ }
747
+ async handleEventBreakpointSetCategory(args) {
748
+ try {
749
+ const category = args.category;
750
+ const eventManager = this.debuggerManager.getEventManager();
751
+ let breakpointIds;
752
+ switch (category) {
753
+ case 'mouse':
754
+ breakpointIds = await eventManager.setMouseEventBreakpoints();
755
+ break;
756
+ case 'keyboard':
757
+ breakpointIds = await eventManager.setKeyboardEventBreakpoints();
758
+ break;
759
+ case 'timer':
760
+ breakpointIds = await eventManager.setTimerEventBreakpoints();
761
+ break;
762
+ case 'websocket':
763
+ breakpointIds = await eventManager.setWebSocketEventBreakpoints();
764
+ break;
765
+ default:
766
+ throw new Error(`Unknown category: ${category}`);
767
+ }
768
+ return {
769
+ content: [{
770
+ type: 'text',
771
+ text: JSON.stringify({
772
+ success: true,
773
+ message: `Set ${breakpointIds.length} ${category} event breakpoint(s)`,
774
+ category,
775
+ breakpointIds,
776
+ }, null, 2),
777
+ }],
778
+ };
779
+ }
780
+ catch (error) {
781
+ return {
782
+ content: [{
783
+ type: 'text',
784
+ text: JSON.stringify({
785
+ success: false,
786
+ message: 'Failed to set event breakpoints',
787
+ error: error.message || String(error),
788
+ }, null, 2),
789
+ }],
790
+ };
791
+ }
792
+ }
793
+ async handleEventBreakpointRemove(args) {
794
+ try {
795
+ const breakpointId = args.breakpointId;
796
+ const eventManager = this.debuggerManager.getEventManager();
797
+ const removed = await eventManager.removeEventListenerBreakpoint(breakpointId);
798
+ return {
799
+ content: [{
800
+ type: 'text',
801
+ text: JSON.stringify({
802
+ success: removed,
803
+ message: removed ? 'Event breakpoint removed' : 'Event breakpoint not found',
804
+ breakpointId,
805
+ }, null, 2),
806
+ }],
807
+ };
808
+ }
809
+ catch (error) {
810
+ return {
811
+ content: [{
812
+ type: 'text',
813
+ text: JSON.stringify({
814
+ success: false,
815
+ message: 'Failed to remove event breakpoint',
816
+ error: error.message || String(error),
817
+ }, null, 2),
818
+ }],
819
+ };
820
+ }
821
+ }
822
+ async handleEventBreakpointList(_args) {
823
+ try {
824
+ const eventManager = this.debuggerManager.getEventManager();
825
+ const breakpoints = eventManager.getAllEventBreakpoints();
826
+ return {
827
+ content: [{
828
+ type: 'text',
829
+ text: JSON.stringify({
830
+ success: true,
831
+ message: `Found ${breakpoints.length} event breakpoint(s)`,
832
+ breakpoints,
833
+ }, null, 2),
834
+ }],
835
+ };
836
+ }
837
+ catch (error) {
838
+ return {
839
+ content: [{
840
+ type: 'text',
841
+ text: JSON.stringify({
842
+ success: false,
843
+ message: 'Failed to list event breakpoints',
844
+ error: error.message || String(error),
845
+ }, null, 2),
846
+ }],
847
+ };
848
+ }
849
+ }
850
+ async handleBlackboxAdd(args) {
851
+ try {
852
+ const urlPattern = args.urlPattern;
853
+ const blackboxManager = this.debuggerManager.getBlackboxManager();
854
+ await blackboxManager.blackboxByPattern(urlPattern);
855
+ return {
856
+ content: [{
857
+ type: 'text',
858
+ text: JSON.stringify({
859
+ success: true,
860
+ message: 'Pattern blackboxed',
861
+ urlPattern,
862
+ }, null, 2),
863
+ }],
864
+ };
865
+ }
866
+ catch (error) {
867
+ return {
868
+ content: [{
869
+ type: 'text',
870
+ text: JSON.stringify({
871
+ success: false,
872
+ message: 'Failed to blackbox pattern',
873
+ error: error.message || String(error),
874
+ }, null, 2),
875
+ }],
876
+ };
877
+ }
878
+ }
879
+ async handleBlackboxAddCommon(_args) {
880
+ try {
881
+ const blackboxManager = this.debuggerManager.getBlackboxManager();
882
+ await blackboxManager.blackboxCommonLibraries();
883
+ return {
884
+ content: [{
885
+ type: 'text',
886
+ text: JSON.stringify({
887
+ success: true,
888
+ message: 'Common libraries blackboxed',
889
+ }, null, 2),
890
+ }],
891
+ };
892
+ }
893
+ catch (error) {
894
+ return {
895
+ content: [{
896
+ type: 'text',
897
+ text: JSON.stringify({
898
+ success: false,
899
+ message: 'Failed to blackbox common libraries',
900
+ error: error.message || String(error),
901
+ }, null, 2),
902
+ }],
903
+ };
904
+ }
905
+ }
906
+ async handleBlackboxList(_args) {
907
+ try {
908
+ const blackboxManager = this.debuggerManager.getBlackboxManager();
909
+ const patterns = blackboxManager.getAllBlackboxedPatterns();
910
+ return {
911
+ content: [{
912
+ type: 'text',
913
+ text: JSON.stringify({
914
+ success: true,
915
+ message: `Found ${patterns.length} blackboxed pattern(s)`,
916
+ patterns,
917
+ }, null, 2),
918
+ }],
919
+ };
920
+ }
921
+ catch (error) {
922
+ return {
923
+ content: [{
924
+ type: 'text',
925
+ text: JSON.stringify({
926
+ success: false,
927
+ message: 'Failed to list blackboxed patterns',
928
+ error: error.message || String(error),
929
+ }, null, 2),
930
+ }],
931
+ };
932
+ }
933
+ }
934
+ }
935
+ //# sourceMappingURL=DebuggerToolHandlers.js.map