@jshookmcp/jshook 0.2.3 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (583) hide show
  1. package/README.md +14 -5
  2. package/README.zh.md +18 -3
  3. package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
  4. package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
  5. package/dist/packages/extension-sdk/src/plugin.js +119 -33
  6. package/dist/packages/extension-sdk/src/workflow.d.ts +171 -0
  7. package/dist/packages/extension-sdk/src/workflow.js +272 -0
  8. package/dist/src/config/search-defaults.js +161 -0
  9. package/dist/src/constants.d.ts +3 -0
  10. package/dist/src/constants.js +4 -1
  11. package/dist/src/index.d.ts +1 -1
  12. package/dist/src/index.js +13 -17
  13. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
  14. package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
  15. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
  16. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
  17. package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
  18. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
  19. package/dist/src/modules/analyzer/PatternDetector.js +3 -3
  20. package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
  21. package/dist/src/modules/browser/BrowserDiscovery.js +2 -2
  22. package/dist/src/modules/browser/BrowserModeManager.js +11 -10
  23. package/dist/src/modules/browser/BrowserPool.d.ts +49 -0
  24. package/dist/src/modules/browser/BrowserPool.js +288 -0
  25. package/dist/src/modules/browser/TabRegistry.js +2 -2
  26. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  27. package/dist/src/modules/browser/UnifiedBrowserManager.js +18 -3
  28. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +1 -10
  29. package/dist/src/modules/captcha/AICaptchaDetector.js +7 -201
  30. package/dist/src/modules/collector/CodeCollector.js +4 -5
  31. package/dist/src/modules/collector/DOMInspector.js +48 -58
  32. package/dist/src/modules/collector/PageController.d.ts +17 -4
  33. package/dist/src/modules/collector/PageController.js +2 -5
  34. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  35. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  36. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  37. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  38. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  39. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  40. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +4 -2
  41. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  42. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.d.ts +5 -0
  43. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.js +43 -2
  44. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  45. package/dist/src/modules/deobfuscator/Deobfuscator.js +9 -39
  46. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  47. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  48. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -2
  49. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +3 -55
  50. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  51. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  52. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  53. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  54. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  55. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  56. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  57. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  58. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  59. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  60. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  61. package/dist/src/modules/external/ExternalToolRunner.js +25 -22
  62. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
  63. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
  64. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
  65. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
  66. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  67. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  68. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
  69. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  70. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  71. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  72. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
  73. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  74. package/dist/src/modules/process/LinuxProcessManager.js +2 -0
  75. package/dist/src/modules/process/MacProcessManager.js +25 -25
  76. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  77. package/dist/src/modules/process/MemoryManager.js +2 -2
  78. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  79. package/dist/src/modules/process/memory/availability.js +49 -49
  80. package/dist/src/modules/process/memory/injector.js +185 -185
  81. package/dist/src/modules/process/memory/reader.js +85 -53
  82. package/dist/src/modules/process/memory/regions.dump.js +51 -51
  83. package/dist/src/modules/process/memory/regions.enumerate.js +108 -108
  84. package/dist/src/modules/process/memory/regions.modules.js +80 -80
  85. package/dist/src/modules/process/memory/regions.protection.js +148 -115
  86. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  87. package/dist/src/modules/process/memory/scanner.darwin.js +98 -41
  88. package/dist/src/modules/process/memory/scanner.js +88 -4
  89. package/dist/src/modules/process/memory/scanner.windows.js +124 -124
  90. package/dist/src/modules/process/memory/writer.js +98 -58
  91. package/dist/src/modules/security/ExecutionSandbox.js +51 -52
  92. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  93. package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
  94. package/dist/src/modules/stealth/StealthScripts.js +18 -13
  95. package/dist/src/modules/stealth/StealthVerifier.js +1 -3
  96. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  97. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  98. package/dist/src/modules/trace/TraceDB.js +75 -69
  99. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  100. package/dist/src/native/AntiCheatDetector.js +67 -16
  101. package/dist/src/native/CodeInjector.js +3 -3
  102. package/dist/src/native/HardwareBreakpoint.js +24 -15
  103. package/dist/src/native/HeapAnalyzer.js +2 -2
  104. package/dist/src/native/MemoryController.js +1 -1
  105. package/dist/src/native/MemoryScanSession.js +2 -2
  106. package/dist/src/native/MemoryScanner.js +4 -8
  107. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  108. package/dist/src/native/PEAnalyzer.js +14 -15
  109. package/dist/src/native/PointerChainEngine.js +2 -4
  110. package/dist/src/native/ScriptLoader.js +4 -9
  111. package/dist/src/native/Speedhack.js +1 -1
  112. package/dist/src/native/StructureAnalyzer.js +52 -33
  113. package/dist/src/native/Win32API.d.ts +1 -0
  114. package/dist/src/native/Win32API.js +13 -0
  115. package/dist/src/native/Win32Debug.js +19 -19
  116. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  117. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  118. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  119. package/dist/src/server/MCPServer.context.d.ts +3 -1
  120. package/dist/src/server/MCPServer.d.ts +2 -1
  121. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  122. package/dist/src/server/MCPServer.domain.js +81 -16
  123. package/dist/src/server/MCPServer.js +41 -14
  124. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  125. package/dist/src/server/MCPServer.resources.js +91 -0
  126. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  127. package/dist/src/server/MCPServer.search.helpers.js +1 -1
  128. package/dist/src/server/MCPServer.transport.js +12 -0
  129. package/dist/src/server/ToolCallContextGuard.js +8 -0
  130. package/dist/src/server/ToolRouter.d.ts +25 -9
  131. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  132. package/dist/src/server/ToolRouter.intent.js +77 -0
  133. package/dist/src/server/ToolRouter.js +103 -284
  134. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  135. package/dist/src/server/ToolRouter.policy.js +163 -0
  136. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  137. package/dist/src/server/ToolRouter.probe.js +103 -0
  138. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  139. package/dist/src/server/ToolRouter.renderer.js +52 -0
  140. package/dist/src/server/activation/ActivationController.js +15 -12
  141. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  142. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  143. package/dist/src/server/domains/analysis/definitions.js +155 -655
  144. package/dist/src/server/domains/analysis/handlers.impl.js +26 -20
  145. package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -1
  146. package/dist/src/server/domains/analysis/manifest.js +6 -4
  147. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  148. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  149. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  150. package/dist/src/server/domains/browser/definitions.tools.page-core.js +210 -439
  151. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  152. package/dist/src/server/domains/browser/definitions.tools.runtime.js +98 -211
  153. package/dist/src/server/domains/browser/definitions.tools.security.js +194 -339
  154. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  155. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  156. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  157. package/dist/src/server/domains/browser/handlers/framework-state.js +27 -9
  158. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  159. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  160. package/dist/src/server/domains/browser/handlers/stealth-injection.d.ts +1 -0
  161. package/dist/src/server/domains/browser/handlers/stealth-injection.js +3 -0
  162. package/dist/src/server/domains/browser/handlers.impl.d.ts +1 -2
  163. package/dist/src/server/domains/browser/handlers.impl.js +2 -3
  164. package/dist/src/server/domains/browser/manifest.js +37 -13
  165. package/dist/src/server/domains/coordination/definitions.js +50 -216
  166. package/dist/src/server/domains/coordination/index.d.ts +2 -1
  167. package/dist/src/server/domains/coordination/index.js +1 -0
  168. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  169. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  170. package/dist/src/server/domains/debugger/manifest.js +9 -2
  171. package/dist/src/server/domains/encoding/definitions.js +43 -153
  172. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  173. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  174. package/dist/src/server/domains/evidence/definitions.js +42 -0
  175. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  176. package/dist/src/server/domains/evidence/handlers.js +60 -0
  177. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  178. package/dist/src/server/domains/evidence/index.js +2 -0
  179. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  180. package/dist/src/server/domains/evidence/manifest.js +78 -0
  181. package/dist/src/server/domains/graphql/definitions.js +53 -141
  182. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  183. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
  184. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  185. package/dist/src/server/domains/hooks/ai-handlers.js +1 -67
  186. package/dist/src/server/domains/hooks/definitions.js +69 -335
  187. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  188. package/dist/src/server/domains/hooks/manifest.js +1 -2
  189. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  190. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  191. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  192. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  193. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  194. package/dist/src/server/domains/instrumentation/index.js +2 -0
  195. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  196. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  197. package/dist/src/server/domains/macro/definitions.js +16 -43
  198. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  199. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  200. package/dist/src/server/domains/memory/definitions.js +387 -559
  201. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  202. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  203. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  204. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  205. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  206. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  207. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  208. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  209. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  210. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  211. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  212. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  213. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  214. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  215. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  216. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  217. package/dist/src/server/domains/memory/manifest.js +236 -64
  218. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  219. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  220. package/dist/src/server/domains/native-bridge/index.js +2 -1
  221. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  222. package/dist/src/server/domains/network/definitions.js +175 -578
  223. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  224. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  225. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  226. package/dist/src/server/domains/network/handlers.base.js +3 -878
  227. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  228. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  229. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  230. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  231. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  232. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  233. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  234. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  235. package/dist/src/server/domains/network/manifest.js +15 -0
  236. package/dist/src/server/domains/network/replay.js +1 -4
  237. package/dist/src/server/domains/platform/definitions.js +121 -112
  238. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +4 -0
  239. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +193 -4
  240. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  241. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  242. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  243. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  244. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  245. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  246. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  247. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  248. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  249. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  250. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  251. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +3 -3
  252. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  253. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  254. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  255. package/dist/src/server/domains/platform/handlers.js +29 -0
  256. package/dist/src/server/domains/platform/manifest.js +38 -0
  257. package/dist/src/server/domains/process/definitions.js +163 -647
  258. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  259. package/dist/src/server/domains/process/handlers.base.js +7 -462
  260. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  261. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  262. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  263. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  264. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +18 -16
  265. package/dist/src/server/domains/process/manifest.js +6 -1
  266. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  267. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  268. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  269. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  270. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  271. package/dist/src/server/domains/shared/modules.js +0 -1
  272. package/dist/src/server/domains/shared-state-board/definitions.d.ts +2 -0
  273. package/dist/src/server/domains/shared-state-board/definitions.js +78 -0
  274. package/dist/src/server/domains/shared-state-board/handlers.impl.d.ts +58 -0
  275. package/dist/src/server/domains/shared-state-board/handlers.impl.js +419 -0
  276. package/dist/src/server/domains/shared-state-board/index.d.ts +2 -0
  277. package/dist/src/server/domains/shared-state-board/index.js +2 -0
  278. package/dist/src/server/domains/shared-state-board/manifest.d.ts +57 -0
  279. package/dist/src/server/domains/shared-state-board/manifest.js +74 -0
  280. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  281. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  282. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  283. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  284. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  285. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  286. package/dist/src/server/domains/streaming/definitions.js +36 -148
  287. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  288. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  289. package/dist/src/server/domains/trace/TraceSummarizer.js +8 -5
  290. package/dist/src/server/domains/trace/definitions.tools.js +51 -206
  291. package/dist/src/server/domains/trace/handlers.js +10 -12
  292. package/dist/src/server/domains/trace/index.d.ts +2 -1
  293. package/dist/src/server/domains/trace/index.js +2 -1
  294. package/dist/src/server/domains/trace/manifest.js +15 -3
  295. package/dist/src/server/domains/transform/definitions.js +50 -210
  296. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +108 -108
  297. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  298. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  299. package/dist/src/server/domains/transform/manifest.js +1 -1
  300. package/dist/src/server/domains/wasm/definitions.js +55 -232
  301. package/dist/src/server/domains/wasm/handlers.js +1 -1
  302. package/dist/src/server/domains/workflow/definitions.js +144 -414
  303. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
  304. package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
  305. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  306. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  307. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  308. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  309. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  310. package/dist/src/server/evidence/index.d.ts +2 -0
  311. package/dist/src/server/evidence/index.js +1 -0
  312. package/dist/src/server/evidence/types.d.ts +22 -0
  313. package/dist/src/server/evidence/types.js +1 -0
  314. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  315. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  316. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  317. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  318. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  319. package/dist/src/server/extensions/ExtensionManager.roots.js +4 -4
  320. package/dist/src/server/extensions/plugin-config.js +1 -1
  321. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  322. package/dist/src/server/extensions/plugin-env.js +10 -4
  323. package/dist/src/server/extensions/types.d.ts +17 -0
  324. package/dist/src/server/extensions/types.js +1 -1
  325. package/dist/src/server/http/SseStream.d.ts +21 -0
  326. package/dist/src/server/http/SseStream.js +129 -0
  327. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  328. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  329. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  330. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  331. package/dist/src/server/instrumentation/index.d.ts +2 -0
  332. package/dist/src/server/instrumentation/index.js +2 -0
  333. package/dist/src/server/instrumentation/types.d.ts +62 -0
  334. package/dist/src/server/instrumentation/types.js +7 -0
  335. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  336. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  337. package/dist/src/server/macros/MacroRunner.js +6 -2
  338. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  339. package/dist/src/server/macros/builtins/index.js +51 -7
  340. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  341. package/dist/src/server/registry/contracts.d.ts +1 -1
  342. package/dist/src/server/registry/discovery.js +5 -4
  343. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  344. package/dist/src/server/registry/index.js +4 -4
  345. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  346. package/dist/src/server/registry/tool-builder.js +105 -0
  347. package/dist/src/server/sandbox/QuickJSSandbox.js +16 -5
  348. package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
  349. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  350. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  351. package/dist/src/server/search/FeedbackTracker.js +26 -0
  352. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  353. package/dist/src/server/search/QueryNormalizer.js +94 -0
  354. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  355. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  356. package/dist/src/server/teams/TeamManager.d.ts +43 -0
  357. package/dist/src/server/teams/TeamManager.js +238 -0
  358. package/dist/src/server/teams/index.d.ts +1 -0
  359. package/dist/src/server/teams/index.js +1 -0
  360. package/dist/src/server/workflows/WorkflowContract.d.ts +44 -4
  361. package/dist/src/server/workflows/WorkflowContract.js +52 -0
  362. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  363. package/dist/src/server/workflows/WorkflowEngine.js +314 -4
  364. package/dist/src/types/config.d.ts +0 -14
  365. package/dist/src/types/deobfuscator.d.ts +1 -1
  366. package/dist/src/types/index.d.ts +1 -1
  367. package/dist/src/utils/DetailedDataManager.js +2 -0
  368. package/dist/src/utils/RingBuffer.js +5 -5
  369. package/dist/src/utils/TokenBudgetManager.js +1 -1
  370. package/dist/src/utils/UnifiedCacheManager.js +1 -1
  371. package/dist/src/utils/artifactRetention.js +2 -2
  372. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  373. package/dist/src/utils/betterSqlite3.js +88 -0
  374. package/dist/src/utils/browserExecutable.js +2 -2
  375. package/dist/src/utils/cache/CachedDecorator.d.ts +8 -0
  376. package/dist/src/utils/cache/CachedDecorator.js +55 -0
  377. package/dist/src/utils/cache/PersistentCache.d.ts +33 -0
  378. package/dist/src/utils/cache/PersistentCache.js +246 -0
  379. package/dist/src/utils/cache/index.d.ts +2 -0
  380. package/dist/src/utils/cache/index.js +2 -0
  381. package/dist/src/utils/cliFastPath.js +5 -8
  382. package/dist/src/utils/config.js +4 -26
  383. package/dist/src/utils/environmentDoctor.js +138 -11
  384. package/dist/src/utils/outputPaths.js +16 -9
  385. package/dist/src/utils/parallel.js +1 -3
  386. package/package.json +82 -81
  387. package/scripts/postinstall.cjs +54 -27
  388. package/workflows/.gitkeep +0 -0
  389. package/workflows/anti-bot-diagnoser/.jshook-install.json +14 -0
  390. package/workflows/anti-bot-diagnoser/LICENSE +21 -0
  391. package/workflows/anti-bot-diagnoser/README.md +105 -0
  392. package/workflows/anti-bot-diagnoser/docs/agent-recipes.md +44 -0
  393. package/workflows/anti-bot-diagnoser/meta.yaml +6 -0
  394. package/workflows/anti-bot-diagnoser/package.json +22 -0
  395. package/workflows/anti-bot-diagnoser/tsconfig.json +15 -0
  396. package/workflows/anti-bot-diagnoser/workflow.ts +224 -0
  397. package/workflows/api-openapi-probe/.jshook-install.json +14 -0
  398. package/workflows/api-openapi-probe/meta.yaml +6 -0
  399. package/workflows/api-openapi-probe/package.json +22 -0
  400. package/workflows/api-openapi-probe/pnpm-lock.yaml +819 -0
  401. package/workflows/api-openapi-probe/tsconfig.json +15 -0
  402. package/workflows/api-openapi-probe/workflow.ts +40 -0
  403. package/workflows/api-probe-batch/.jshook-install.json +14 -0
  404. package/workflows/api-probe-batch/LICENSE +21 -0
  405. package/workflows/api-probe-batch/README.md +45 -0
  406. package/workflows/api-probe-batch/meta.yaml +4 -0
  407. package/workflows/api-probe-batch/package.json +23 -0
  408. package/workflows/api-probe-batch/tsconfig.json +16 -0
  409. package/workflows/api-probe-batch/workflow.ts +111 -0
  410. package/workflows/auth-bootstrap/.jshook-install.json +14 -0
  411. package/workflows/auth-bootstrap/LICENSE +21 -0
  412. package/workflows/auth-bootstrap/README.md +74 -0
  413. package/workflows/auth-bootstrap/meta.yaml +4 -0
  414. package/workflows/auth-bootstrap/package.json +23 -0
  415. package/workflows/auth-bootstrap/tsconfig.json +16 -0
  416. package/workflows/auth-bootstrap/workflow.ts +141 -0
  417. package/workflows/auth-extract/.jshook-install.json +14 -0
  418. package/workflows/auth-extract/meta.yaml +6 -0
  419. package/workflows/auth-extract/package.json +22 -0
  420. package/workflows/auth-extract/pnpm-lock.yaml +819 -0
  421. package/workflows/auth-extract/tsconfig.json +15 -0
  422. package/workflows/auth-extract/workflow.ts +36 -0
  423. package/workflows/auth-surface-mapper/.jshook-install.json +14 -0
  424. package/workflows/auth-surface-mapper/meta.yaml +6 -0
  425. package/workflows/auth-surface-mapper/package.json +22 -0
  426. package/workflows/auth-surface-mapper/pnpm-lock.yaml +819 -0
  427. package/workflows/auth-surface-mapper/tsconfig.json +15 -0
  428. package/workflows/auth-surface-mapper/workflow.ts +104 -0
  429. package/workflows/batch-register/.jshook-install.json +14 -0
  430. package/workflows/batch-register/LICENSE +21 -0
  431. package/workflows/batch-register/README.md +39 -0
  432. package/workflows/batch-register/meta.yaml +4 -0
  433. package/workflows/batch-register/package.json +23 -0
  434. package/workflows/batch-register/tsconfig.json +16 -0
  435. package/workflows/batch-register/workflow.ts +67 -0
  436. package/workflows/bundle-recovery/.jshook-install.json +14 -0
  437. package/workflows/bundle-recovery/LICENSE +21 -0
  438. package/workflows/bundle-recovery/README.md +105 -0
  439. package/workflows/bundle-recovery/docs/agent-recipes.md +44 -0
  440. package/workflows/bundle-recovery/meta.yaml +6 -0
  441. package/workflows/bundle-recovery/package.json +22 -0
  442. package/workflows/bundle-recovery/tsconfig.json +15 -0
  443. package/workflows/bundle-recovery/workflow.ts +179 -0
  444. package/workflows/challenge-detector/.jshook-install.json +14 -0
  445. package/workflows/challenge-detector/meta.yaml +14 -0
  446. package/workflows/challenge-detector/package.json +22 -0
  447. package/workflows/challenge-detector/pnpm-lock.yaml +819 -0
  448. package/workflows/challenge-detector/tsconfig.json +15 -0
  449. package/workflows/challenge-detector/workflow.ts +298 -0
  450. package/workflows/deobfuscation-pipeline/.jshook-install.json +14 -0
  451. package/workflows/deobfuscation-pipeline/meta.yaml +6 -0
  452. package/workflows/deobfuscation-pipeline/package.json +22 -0
  453. package/workflows/deobfuscation-pipeline/pnpm-lock.yaml +819 -0
  454. package/workflows/deobfuscation-pipeline/tsconfig.json +15 -0
  455. package/workflows/deobfuscation-pipeline/workflow.ts +119 -0
  456. package/workflows/electron-bridge-mapper/.jshook-install.json +14 -0
  457. package/workflows/electron-bridge-mapper/meta.yaml +6 -0
  458. package/workflows/electron-bridge-mapper/package.json +22 -0
  459. package/workflows/electron-bridge-mapper/pnpm-lock.yaml +819 -0
  460. package/workflows/electron-bridge-mapper/tsconfig.json +15 -0
  461. package/workflows/electron-bridge-mapper/workflow.ts +125 -0
  462. package/workflows/evidence-pack/.jshook-install.json +14 -0
  463. package/workflows/evidence-pack/LICENSE +21 -0
  464. package/workflows/evidence-pack/README.md +105 -0
  465. package/workflows/evidence-pack/docs/agent-recipes.md +44 -0
  466. package/workflows/evidence-pack/meta.yaml +6 -0
  467. package/workflows/evidence-pack/package.json +22 -0
  468. package/workflows/evidence-pack/tsconfig.json +15 -0
  469. package/workflows/evidence-pack/workflow.ts +154 -0
  470. package/workflows/js-bundle-search/.jshook-install.json +14 -0
  471. package/workflows/js-bundle-search/LICENSE +21 -0
  472. package/workflows/js-bundle-search/README.md +46 -0
  473. package/workflows/js-bundle-search/meta.yaml +4 -0
  474. package/workflows/js-bundle-search/package.json +23 -0
  475. package/workflows/js-bundle-search/tsconfig.json +16 -0
  476. package/workflows/js-bundle-search/workflow.ts +118 -0
  477. package/workflows/protocol-registry/.jshook-install.json +14 -0
  478. package/workflows/protocol-registry/meta.yaml +6 -0
  479. package/workflows/protocol-registry/package.json +22 -0
  480. package/workflows/protocol-registry/pnpm-lock.yaml +819 -0
  481. package/workflows/protocol-registry/tsconfig.json +15 -0
  482. package/workflows/protocol-registry/workflow.ts +107 -0
  483. package/workflows/qwen-mail-open-latest/meta.yaml +7 -0
  484. package/workflows/qwen-mail-open-latest/package.json +22 -0
  485. package/workflows/qwen-mail-open-latest/pnpm-lock.yaml +819 -0
  486. package/workflows/qwen-mail-open-latest/tsconfig.json +15 -0
  487. package/workflows/qwen-mail-open-latest/workflow.ts +77 -0
  488. package/workflows/register-account-flow/.jshook-install.json +14 -0
  489. package/workflows/register-account-flow/LICENSE +21 -0
  490. package/workflows/register-account-flow/README.md +64 -0
  491. package/workflows/register-account-flow/meta.yaml +4 -0
  492. package/workflows/register-account-flow/package.json +23 -0
  493. package/workflows/register-account-flow/tsconfig.json +16 -0
  494. package/workflows/register-account-flow/workflow.ts +127 -0
  495. package/workflows/replay-lab/.jshook-install.json +14 -0
  496. package/workflows/replay-lab/meta.yaml +6 -0
  497. package/workflows/replay-lab/package.json +22 -0
  498. package/workflows/replay-lab/pnpm-lock.yaml +819 -0
  499. package/workflows/replay-lab/tsconfig.json +15 -0
  500. package/workflows/replay-lab/workflow.ts +106 -0
  501. package/workflows/script-evidence-scan/.jshook-install.json +14 -0
  502. package/workflows/script-evidence-scan/LICENSE +21 -0
  503. package/workflows/script-evidence-scan/README.md +61 -0
  504. package/workflows/script-evidence-scan/meta.yaml +4 -0
  505. package/workflows/script-evidence-scan/package.json +23 -0
  506. package/workflows/script-evidence-scan/tsconfig.json +16 -0
  507. package/workflows/script-evidence-scan/workflow.ts +89 -0
  508. package/workflows/signature-hunter/.jshook-install.json +14 -0
  509. package/workflows/signature-hunter/LICENSE +21 -0
  510. package/workflows/signature-hunter/README.md +105 -0
  511. package/workflows/signature-hunter/docs/agent-recipes.md +44 -0
  512. package/workflows/signature-hunter/meta.yaml +6 -0
  513. package/workflows/signature-hunter/package.json +22 -0
  514. package/workflows/signature-hunter/tsconfig.json +15 -0
  515. package/workflows/signature-hunter/workflow.ts +170 -0
  516. package/workflows/signing-lineage/.jshook-install.json +14 -0
  517. package/workflows/signing-lineage/meta.yaml +6 -0
  518. package/workflows/signing-lineage/package.json +22 -0
  519. package/workflows/signing-lineage/pnpm-lock.yaml +819 -0
  520. package/workflows/signing-lineage/tsconfig.json +15 -0
  521. package/workflows/signing-lineage/workflow.ts +120 -0
  522. package/workflows/temp-mail-extract-link/.jshook-install.json +14 -0
  523. package/workflows/temp-mail-extract-link/LICENSE +21 -0
  524. package/workflows/temp-mail-extract-link/README.md +71 -0
  525. package/workflows/temp-mail-extract-link/meta.yaml +4 -0
  526. package/workflows/temp-mail-extract-link/package.json +23 -0
  527. package/workflows/temp-mail-extract-link/tsconfig.json +16 -0
  528. package/workflows/temp-mail-extract-link/workflow.ts +221 -0
  529. package/workflows/temp-mail-open-latest/.jshook-install.json +14 -0
  530. package/workflows/temp-mail-open-latest/LICENSE +21 -0
  531. package/workflows/temp-mail-open-latest/README.md +61 -0
  532. package/workflows/temp-mail-open-latest/meta.yaml +4 -0
  533. package/workflows/temp-mail-open-latest/package.json +23 -0
  534. package/workflows/temp-mail-open-latest/tsconfig.json +16 -0
  535. package/workflows/temp-mail-open-latest/workflow.ts +136 -0
  536. package/workflows/template/.jshook-install.json +14 -0
  537. package/workflows/template/LICENSE +21 -0
  538. package/workflows/template/README.md +45 -0
  539. package/workflows/template/docs/SKILL.md +111 -0
  540. package/workflows/template/meta.yaml +6 -0
  541. package/workflows/template/package.json +22 -0
  542. package/workflows/template/pnpm-lock.yaml +819 -0
  543. package/workflows/template/tsconfig.json +15 -0
  544. package/workflows/template/workflow.ts +73 -0
  545. package/workflows/web-api-capture-session/.jshook-install.json +14 -0
  546. package/workflows/web-api-capture-session/LICENSE +21 -0
  547. package/workflows/web-api-capture-session/README.md +64 -0
  548. package/workflows/web-api-capture-session/meta.yaml +4 -0
  549. package/workflows/web-api-capture-session/package.json +23 -0
  550. package/workflows/web-api-capture-session/tsconfig.json +16 -0
  551. package/workflows/web-api-capture-session/workflow.ts +124 -0
  552. package/workflows/ws-protocol-lifter/.jshook-install.json +14 -0
  553. package/workflows/ws-protocol-lifter/LICENSE +21 -0
  554. package/workflows/ws-protocol-lifter/README.md +105 -0
  555. package/workflows/ws-protocol-lifter/docs/agent-recipes.md +44 -0
  556. package/workflows/ws-protocol-lifter/meta.yaml +6 -0
  557. package/workflows/ws-protocol-lifter/package.json +22 -0
  558. package/workflows/ws-protocol-lifter/tsconfig.json +15 -0
  559. package/workflows/ws-protocol-lifter/workflow.ts +163 -0
  560. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  561. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  562. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  563. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  564. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  565. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  566. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  567. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  568. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  569. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  570. package/dist/src/services/LLMService.d.ts +0 -37
  571. package/dist/src/services/LLMService.js +0 -233
  572. package/dist/src/services/prompts/analysis.d.ts +0 -9
  573. package/dist/src/services/prompts/analysis.js +0 -158
  574. package/dist/src/services/prompts/crypto.d.ts +0 -2
  575. package/dist/src/services/prompts/crypto.js +0 -108
  576. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  577. package/dist/src/services/prompts/deobfuscation.js +0 -300
  578. package/dist/src/services/prompts/environment.d.ts +0 -16
  579. package/dist/src/services/prompts/environment.js +0 -372
  580. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  581. package/dist/src/services/prompts/intelligence.js +0 -250
  582. package/dist/src/services/prompts/taint.d.ts +0 -2
  583. package/dist/src/services/prompts/taint.js +0 -54
@@ -1,875 +1,7 @@
1
- import { logger } from '../../../utils/logger.js';
2
- import { PerformanceMonitor } from '../../domains/shared/modules.js';
3
- import { DetailedDataManager } from '../../../utils/DetailedDataManager.js';
1
+ import { NetworkHandlersPerformance } from './handlers.base.performance.js';
2
+ import { asOptionalString } from './handlers.base.types.js';
4
3
  import { argBool } from '../../domains/shared/parse-args.js';
5
- const isObjectRecord = (value) => typeof value === 'object' && value !== null;
6
- const isNetworkRequestPayload = (value) => {
7
- if (!isObjectRecord(value)) {
8
- return false;
9
- }
10
- return typeof value.url === 'string' && typeof value.method === 'string';
11
- };
12
- const isNetworkResponsePayload = (value) => {
13
- if (!isObjectRecord(value)) {
14
- return false;
15
- }
16
- return typeof value.status === 'number';
17
- };
18
- const isFiniteNumber = (value) => typeof value === 'number' && Number.isFinite(value);
19
- const asOptionalString = (value) => typeof value === 'string' ? value : undefined;
20
- const asOptionalBoolean = (value) => typeof value === 'boolean' ? value : undefined;
21
- const asOptionalNumber = (value) => typeof value === 'number' && Number.isFinite(value) ? value : undefined;
22
- const asOptionalStringArray = (value) => {
23
- if (!Array.isArray(value)) {
24
- return undefined;
25
- }
26
- return value.every((item) => typeof item === 'string') ? value : undefined;
27
- };
28
- const isCpuProfileNodePayload = (value) => {
29
- if (!isObjectRecord(value)) {
30
- return false;
31
- }
32
- if (value.hitCount !== undefined && typeof value.hitCount !== 'number') {
33
- return false;
34
- }
35
- if (value.callFrame !== undefined && !isObjectRecord(value.callFrame)) {
36
- return false;
37
- }
38
- if (isObjectRecord(value.callFrame)) {
39
- if (value.callFrame.functionName !== undefined &&
40
- typeof value.callFrame.functionName !== 'string') {
41
- return false;
42
- }
43
- if (value.callFrame.url !== undefined && typeof value.callFrame.url !== 'string') {
44
- return false;
45
- }
46
- if (value.callFrame.lineNumber !== undefined &&
47
- typeof value.callFrame.lineNumber !== 'number') {
48
- return false;
49
- }
50
- }
51
- return true;
52
- };
53
- const toCpuProfilePayload = (value) => {
54
- if (!isObjectRecord(value)) {
55
- return null;
56
- }
57
- if (!Array.isArray(value.nodes)) {
58
- return null;
59
- }
60
- if (typeof value.startTime !== 'number' || typeof value.endTime !== 'number') {
61
- return null;
62
- }
63
- if (!value.nodes.every((node) => isCpuProfileNodePayload(node))) {
64
- return null;
65
- }
66
- return {
67
- nodes: value.nodes,
68
- samples: Array.isArray(value.samples) ? value.samples : undefined,
69
- startTime: value.startTime,
70
- endTime: value.endTime,
71
- };
72
- };
73
- export class AdvancedHandlersBase {
74
- collector;
75
- consoleMonitor;
76
- performanceMonitor = null;
77
- detailedDataManager;
78
- constructor(collector, consoleMonitor) {
79
- this.collector = collector;
80
- this.consoleMonitor = consoleMonitor;
81
- this.detailedDataManager = DetailedDataManager.getInstance();
82
- }
83
- getPerformanceMonitor() {
84
- if (!this.performanceMonitor) {
85
- this.performanceMonitor = new PerformanceMonitor(this.collector);
86
- }
87
- return this.performanceMonitor;
88
- }
89
- parseBooleanArg(value, defaultValue) {
90
- if (typeof value === 'boolean') {
91
- return value;
92
- }
93
- if (typeof value === 'number') {
94
- if (value === 1)
95
- return true;
96
- if (value === 0)
97
- return false;
98
- return defaultValue;
99
- }
100
- if (typeof value === 'string') {
101
- const normalized = value.trim().toLowerCase();
102
- if (['true', '1', 'yes', 'on'].includes(normalized))
103
- return true;
104
- if (['false', '0', 'no', 'off'].includes(normalized))
105
- return false;
106
- }
107
- return defaultValue;
108
- }
109
- parseNumberArg(value, options) {
110
- let parsed;
111
- if (typeof value === 'number' && Number.isFinite(value)) {
112
- parsed = value;
113
- }
114
- else if (typeof value === 'string') {
115
- const trimmed = value.trim();
116
- if (trimmed.length > 0) {
117
- const n = Number(trimmed);
118
- if (Number.isFinite(n)) {
119
- parsed = n;
120
- }
121
- }
122
- }
123
- if (parsed === undefined) {
124
- parsed = options.defaultValue;
125
- }
126
- if (options.integer) {
127
- parsed = Math.trunc(parsed);
128
- }
129
- if (typeof options.min === 'number') {
130
- parsed = Math.max(options.min, parsed);
131
- }
132
- if (typeof options.max === 'number') {
133
- parsed = Math.min(options.max, parsed);
134
- }
135
- return parsed;
136
- }
137
- sleep(ms) {
138
- return new Promise((resolve) => setTimeout(resolve, ms));
139
- }
140
- async ensureNetworkEnabled(options) {
141
- if (this.consoleMonitor.isNetworkEnabled()) {
142
- return { enabled: true, autoEnabled: false };
143
- }
144
- if (!options.autoEnable) {
145
- return { enabled: false, autoEnabled: false };
146
- }
147
- try {
148
- await this.consoleMonitor.enable({
149
- enableNetwork: true,
150
- enableExceptions: options.enableExceptions,
151
- });
152
- return {
153
- enabled: this.consoleMonitor.isNetworkEnabled(),
154
- autoEnabled: true,
155
- };
156
- }
157
- catch (error) {
158
- return {
159
- enabled: false,
160
- autoEnabled: false,
161
- error: error instanceof Error ? error.message : String(error),
162
- };
163
- }
164
- }
165
- async handleNetworkEnable(args) {
166
- const enableExceptions = this.parseBooleanArg(args.enableExceptions, true);
167
- await this.consoleMonitor.enable({
168
- enableNetwork: true,
169
- enableExceptions,
170
- });
171
- const status = this.consoleMonitor.getNetworkStatus();
172
- const result = {
173
- success: true,
174
- message: ' Network monitoring enabled successfully',
175
- enabled: status.enabled,
176
- cdpSessionActive: status.cdpSessionActive,
177
- listenerCount: status.listenerCount,
178
- usage: {
179
- step1: 'Network monitoring is now active',
180
- step2: 'Navigate to a page using page_navigate tool',
181
- step3: 'Use network_get_requests to retrieve captured requests',
182
- step4: 'Use network_get_response_body to get response content',
183
- },
184
- important: 'Network monitoring must be enabled BEFORE navigating to capture requests',
185
- };
186
- return {
187
- content: [
188
- {
189
- type: 'text',
190
- text: JSON.stringify(result, null, 2),
191
- },
192
- ],
193
- };
194
- }
195
- async handleNetworkDisable(_args) {
196
- await this.consoleMonitor.disable();
197
- return {
198
- content: [
199
- {
200
- type: 'text',
201
- text: JSON.stringify({
202
- success: true,
203
- message: 'Network monitoring disabled',
204
- }, null, 2),
205
- },
206
- ],
207
- };
208
- }
209
- async handleNetworkGetStatus(_args) {
210
- const status = this.consoleMonitor.getNetworkStatus();
211
- let result;
212
- if (!status.enabled) {
213
- result = {
214
- success: false,
215
- enabled: false,
216
- message: ' Network monitoring is NOT enabled',
217
- requestCount: 0,
218
- responseCount: 0,
219
- nextSteps: {
220
- step1: 'Call network_enable tool to start monitoring',
221
- step2: 'Then navigate to a page using page_navigate',
222
- step3: 'Finally use network_get_requests to see captured requests',
223
- },
224
- example: 'network_enable -> page_navigate -> network_get_requests',
225
- };
226
- }
227
- else {
228
- result = {
229
- success: true,
230
- enabled: true,
231
- message: ` Network monitoring is active. Captured ${status.requestCount} requests and ${status.responseCount} responses.`,
232
- requestCount: status.requestCount,
233
- responseCount: status.responseCount,
234
- listenerCount: status.listenerCount,
235
- cdpSessionActive: status.cdpSessionActive,
236
- nextSteps: status.requestCount === 0
237
- ? {
238
- hint: 'No requests captured yet',
239
- action: 'Navigate to a page using page_navigate to capture network traffic',
240
- }
241
- : {
242
- hint: `${status.requestCount} requests captured`,
243
- action: 'Use network_get_requests to retrieve them',
244
- },
245
- };
246
- }
247
- return {
248
- content: [
249
- {
250
- type: 'text',
251
- text: JSON.stringify(result, null, 2),
252
- },
253
- ],
254
- };
255
- }
256
- async handleNetworkGetRequests(args) {
257
- let result;
258
- const autoEnable = this.parseBooleanArg(args.autoEnable, true);
259
- const enableExceptions = this.parseBooleanArg(args.enableExceptions, true);
260
- const networkState = await this.ensureNetworkEnabled({
261
- autoEnable,
262
- enableExceptions,
263
- });
264
- if (!networkState.enabled) {
265
- if (autoEnable && networkState.error) {
266
- result = {
267
- success: false,
268
- message: 'Failed to auto-enable network monitoring',
269
- detail: networkState.error,
270
- solution: {
271
- step1: 'Ensure browser page is active and reachable',
272
- step2: 'Call network_enable manually',
273
- step3: 'Navigate to target page: page_navigate(url)',
274
- step4: 'Get requests: network_get_requests',
275
- },
276
- };
277
- }
278
- else {
279
- result = {
280
- success: false,
281
- message: ' Network monitoring is not enabled',
282
- requests: [],
283
- total: 0,
284
- solution: {
285
- step1: 'Enable network monitoring: network_enable',
286
- step2: 'Navigate to target page: page_navigate(url)',
287
- step3: 'Get requests: network_get_requests',
288
- },
289
- tip: 'Set autoEnable=true to auto-enable monitoring in this call',
290
- };
291
- }
292
- return {
293
- content: [
294
- {
295
- type: 'text',
296
- text: JSON.stringify(result, null, 2),
297
- },
298
- ],
299
- };
300
- }
301
- const url = asOptionalString(args.url);
302
- const urlRegex = asOptionalString(args.urlRegex);
303
- const method = asOptionalString(args.method);
304
- const sinceTimestamp = isFiniteNumber(args.sinceTimestamp) ? args.sinceTimestamp : undefined;
305
- const sinceRequestId = asOptionalString(args.sinceRequestId);
306
- const tail = isFiniteNumber(args.tail) && args.tail > 0 ? Math.floor(args.tail) : undefined;
307
- const limit = this.parseNumberArg(args.limit, {
308
- defaultValue: 100,
309
- min: 1,
310
- max: 1000,
311
- integer: true,
312
- });
313
- const offset = this.parseNumberArg(args.offset, {
314
- defaultValue: 0,
315
- min: 0,
316
- integer: true,
317
- });
318
- let requests = this.consoleMonitor
319
- .getNetworkRequests()
320
- .filter((req) => isNetworkRequestPayload(req));
321
- if (requests.length === 0) {
322
- result = {
323
- success: true,
324
- message: 'No network requests captured yet',
325
- requests: [],
326
- total: 0,
327
- hint: 'Network monitoring is enabled, but no requests have been captured',
328
- possibleReasons: [
329
- "1. You haven't navigated to any page yet (use page_navigate)",
330
- '2. The page has already loaded before network monitoring was enabled',
331
- "3. The page doesn't make any network requests",
332
- '4. The page uses frontend-wrapped fetch/XHR not captured by CDP',
333
- ],
334
- recommended_actions: [
335
- 'console_inject_fetch_interceptor() — capture frontend-wrapped fetch calls (SPAs, React, Vue)',
336
- 'console_inject_xhr_interceptor() — capture XMLHttpRequest calls',
337
- 'page_navigate(url, enableNetworkMonitoring=true) — re-navigate with monitoring enabled',
338
- ],
339
- nextAction: 'Call console_inject_fetch_interceptor(), then re-navigate or trigger the target action',
340
- monitoring: {
341
- autoEnabled: networkState.autoEnabled,
342
- },
343
- };
344
- return {
345
- content: [
346
- {
347
- type: 'text',
348
- text: JSON.stringify(result, null, 2),
349
- },
350
- ],
351
- };
352
- }
353
- const originalCount = requests.length;
354
- const allUrls = requests.map((r) => r.url);
355
- if (sinceRequestId) {
356
- const idx = requests.findIndex((r) => r.requestId === sinceRequestId);
357
- if (idx >= 0) {
358
- requests = requests.slice(idx + 1);
359
- }
360
- }
361
- if (sinceTimestamp !== undefined) {
362
- requests = requests.filter((r) => (r.timestamp ?? 0) > sinceTimestamp);
363
- }
364
- if (urlRegex) {
365
- if (urlRegex.length > 500) {
366
- return {
367
- content: [
368
- {
369
- type: 'text',
370
- text: JSON.stringify({
371
- success: false,
372
- error: 'urlRegex too long (max 500 characters)',
373
- }, null, 2),
374
- },
375
- ],
376
- };
377
- }
378
- try {
379
- const re = new RegExp(urlRegex, 'i');
380
- requests = requests.filter((req) => re.test(req.url));
381
- }
382
- catch {
383
- return {
384
- content: [
385
- {
386
- type: 'text',
387
- text: JSON.stringify({
388
- success: false,
389
- error: `Invalid urlRegex pattern: ${urlRegex}`,
390
- }, null, 2),
391
- },
392
- ],
393
- };
394
- }
395
- }
396
- else if (url) {
397
- const urlLower = url.toLowerCase();
398
- requests = requests.filter((req) => req.url.toLowerCase().includes(urlLower));
399
- }
400
- if (method && method.toUpperCase() !== 'ALL') {
401
- requests = requests.filter((req) => req.method.toUpperCase() === method.toUpperCase());
402
- }
403
- if (tail !== undefined && requests.length > tail) {
404
- requests = requests.slice(-tail);
405
- }
406
- const beforeLimit = requests.length;
407
- requests = requests.slice(offset, offset + limit);
408
- const hasMore = offset + requests.length < beforeLimit;
409
- const filterMiss = beforeLimit === 0 &&
410
- originalCount > 0 &&
411
- !!(url || (method && method.toUpperCase() !== 'ALL'));
412
- const urlSamples = filterMiss
413
- ? allUrls.slice(0, 10).map((u) => u.substring(0, 120))
414
- : undefined;
415
- result = {
416
- success: true,
417
- message: ` Retrieved ${requests.length} network request(s)`,
418
- requests,
419
- total: requests.length,
420
- page: {
421
- offset,
422
- limit,
423
- returned: requests.length,
424
- totalAfterFilter: beforeLimit,
425
- hasMore,
426
- nextOffset: hasMore ? offset + requests.length : null,
427
- },
428
- stats: {
429
- totalCaptured: originalCount,
430
- afterFilter: beforeLimit,
431
- returned: requests.length,
432
- truncated: beforeLimit > offset + limit,
433
- },
434
- filtered: !!(url ||
435
- urlRegex ||
436
- (method && method.toUpperCase() !== 'ALL') ||
437
- sinceTimestamp ||
438
- sinceRequestId ||
439
- tail),
440
- filters: { url, urlRegex, method, sinceTimestamp, sinceRequestId, tail, limit, offset },
441
- monitoring: {
442
- autoEnabled: networkState.autoEnabled,
443
- },
444
- ...(filterMiss && {
445
- filterMiss: true,
446
- hint: `URL filter "${url}" matched 0 of ${originalCount} captured requests. Check urlSamples to verify the correct filter substring.`,
447
- urlSamples,
448
- }),
449
- tip: requests.length > 0
450
- ? 'Use network_get_response_body(requestId) to get response content'
451
- : undefined,
452
- };
453
- const processedResult = this.detailedDataManager.smartHandle(result, 51200);
454
- return {
455
- content: [
456
- {
457
- type: 'text',
458
- text: JSON.stringify(processedResult, null, 2),
459
- },
460
- ],
461
- };
462
- }
463
- async handleNetworkGetResponseBody(args) {
464
- const requestId = asOptionalString(args.requestId) || '';
465
- const maxSize = this.parseNumberArg(args.maxSize, {
466
- defaultValue: 100000,
467
- min: 1024,
468
- max: 20 * 1024 * 1024,
469
- integer: true,
470
- });
471
- const returnSummary = this.parseBooleanArg(args.returnSummary, false);
472
- const retries = this.parseNumberArg(args.retries, {
473
- defaultValue: 3,
474
- min: 0,
475
- max: 10,
476
- integer: true,
477
- });
478
- const retryIntervalMs = this.parseNumberArg(args.retryIntervalMs, {
479
- defaultValue: 500,
480
- min: 50,
481
- max: 5000,
482
- integer: true,
483
- });
484
- const autoEnable = this.parseBooleanArg(args.autoEnable, false);
485
- const enableExceptions = this.parseBooleanArg(args.enableExceptions, true);
486
- let result;
487
- if (!requestId) {
488
- result = {
489
- success: false,
490
- message: 'requestId parameter is required',
491
- hint: 'Get requestId from network_get_requests tool',
492
- };
493
- return {
494
- content: [
495
- {
496
- type: 'text',
497
- text: JSON.stringify(result, null, 2),
498
- },
499
- ],
500
- };
501
- }
502
- const networkState = await this.ensureNetworkEnabled({
503
- autoEnable,
504
- enableExceptions,
505
- });
506
- if (!networkState.enabled) {
507
- result = {
508
- success: false,
509
- message: 'Network monitoring is not enabled',
510
- hint: autoEnable
511
- ? 'Auto-enable failed. Check active page and call network_enable manually.'
512
- : 'Use network_enable tool first, or set autoEnable=true',
513
- detail: networkState.error,
514
- };
515
- return {
516
- content: [
517
- {
518
- type: 'text',
519
- text: JSON.stringify(result, null, 2),
520
- },
521
- ],
522
- };
523
- }
524
- let body = null;
525
- let attemptsMade = 0;
526
- for (let attempt = 0; attempt <= retries; attempt += 1) {
527
- attemptsMade = attempt + 1;
528
- body = await this.consoleMonitor.getResponseBody(requestId);
529
- if (body) {
530
- break;
531
- }
532
- if (attempt < retries) {
533
- await this.sleep(retryIntervalMs);
534
- }
535
- }
536
- if (!body) {
537
- result = {
538
- success: false,
539
- message: `No response body found for requestId: ${requestId}`,
540
- hint: 'The request may not have completed yet, or the requestId is invalid',
541
- attempts: attemptsMade,
542
- waitedMs: retries * retryIntervalMs,
543
- retryConfig: {
544
- retries,
545
- retryIntervalMs,
546
- },
547
- };
548
- return {
549
- content: [
550
- {
551
- type: 'text',
552
- text: JSON.stringify(result, null, 2),
553
- },
554
- ],
555
- };
556
- }
557
- const originalSize = body.body.length;
558
- const isTooLarge = originalSize > maxSize;
559
- if (returnSummary || isTooLarge) {
560
- const preview = body.body.substring(0, 500);
561
- result = {
562
- success: true,
563
- requestId,
564
- attempts: attemptsMade,
565
- summary: {
566
- size: originalSize,
567
- sizeKB: (originalSize / 1024).toFixed(2),
568
- base64Encoded: body.base64Encoded,
569
- preview: preview + (originalSize > 500 ? '...' : ''),
570
- truncated: isTooLarge,
571
- reason: isTooLarge
572
- ? `Response too large (${(originalSize / 1024).toFixed(2)} KB > ${(maxSize / 1024).toFixed(2)} KB)`
573
- : 'Summary mode enabled',
574
- },
575
- tip: isTooLarge
576
- ? 'Use collect_code tool to collect and compress this script, or increase maxSize parameter'
577
- : 'Set returnSummary=false to get full body',
578
- };
579
- }
580
- else {
581
- result = {
582
- success: true,
583
- requestId,
584
- attempts: attemptsMade,
585
- body: body.body,
586
- base64Encoded: body.base64Encoded,
587
- size: originalSize,
588
- sizeKB: (originalSize / 1024).toFixed(2),
589
- };
590
- }
591
- return {
592
- content: [
593
- {
594
- type: 'text',
595
- text: JSON.stringify(result, null, 2),
596
- },
597
- ],
598
- };
599
- }
600
- async handleNetworkGetStats(_args) {
601
- if (!this.consoleMonitor.isNetworkEnabled()) {
602
- const result = {
603
- success: false,
604
- message: 'Network monitoring is not enabled',
605
- hint: 'Use network_enable tool first',
606
- };
607
- return {
608
- content: [
609
- {
610
- type: 'text',
611
- text: JSON.stringify(result, null, 2),
612
- },
613
- ],
614
- };
615
- }
616
- const requests = this.consoleMonitor
617
- .getNetworkRequests()
618
- .filter((req) => isNetworkRequestPayload(req));
619
- const responses = this.consoleMonitor
620
- .getNetworkResponses()
621
- .filter((res) => isNetworkResponsePayload(res));
622
- const byMethod = {};
623
- requests.forEach((req) => {
624
- byMethod[req.method] = (byMethod[req.method] || 0) + 1;
625
- });
626
- const byStatus = {};
627
- responses.forEach((res) => {
628
- byStatus[res.status] = (byStatus[res.status] || 0) + 1;
629
- });
630
- const byType = {};
631
- requests.forEach((req) => {
632
- const type = req.type || 'unknown';
633
- byType[type] = (byType[type] || 0) + 1;
634
- });
635
- const timestamps = requests
636
- .map((r) => r.timestamp)
637
- .filter((t) => isFiniteNumber(t));
638
- const timeStats = timestamps.length > 0
639
- ? {
640
- earliest: Math.min(...timestamps),
641
- latest: Math.max(...timestamps),
642
- duration: Math.max(...timestamps) - Math.min(...timestamps),
643
- }
644
- : null;
645
- const result = {
646
- success: true,
647
- stats: {
648
- totalRequests: requests.length,
649
- totalResponses: responses.length,
650
- byMethod,
651
- byStatus,
652
- byType,
653
- timeStats,
654
- monitoringEnabled: true,
655
- },
656
- };
657
- return {
658
- content: [
659
- {
660
- type: 'text',
661
- text: JSON.stringify(result, null, 2),
662
- },
663
- ],
664
- };
665
- }
666
- async handlePerformanceGetMetrics(args) {
667
- const includeTimeline = args.includeTimeline === true;
668
- const monitor = this.getPerformanceMonitor();
669
- const metrics = await monitor.getPerformanceMetrics();
670
- const result = {
671
- success: true,
672
- metrics,
673
- };
674
- if (includeTimeline) {
675
- result.timeline = await monitor.getPerformanceTimeline();
676
- }
677
- return {
678
- content: [
679
- {
680
- type: 'text',
681
- text: JSON.stringify(result, null, 2),
682
- },
683
- ],
684
- };
685
- }
686
- async handlePerformanceStartCoverage(_args) {
687
- const monitor = this.getPerformanceMonitor();
688
- await monitor.startCoverage();
689
- return {
690
- content: [
691
- {
692
- type: 'text',
693
- text: JSON.stringify({
694
- success: true,
695
- message: 'Code coverage collection started',
696
- }, null, 2),
697
- },
698
- ],
699
- };
700
- }
701
- async handlePerformanceStopCoverage(_args) {
702
- const monitor = this.getPerformanceMonitor();
703
- const coverage = await monitor.stopCoverage();
704
- const avgCoverage = coverage.length > 0
705
- ? coverage.reduce((sum, info) => sum + info.coveragePercentage, 0) / coverage.length
706
- : 0;
707
- return {
708
- content: [
709
- {
710
- type: 'text',
711
- text: JSON.stringify({
712
- success: true,
713
- coverage,
714
- totalScripts: coverage.length,
715
- avgCoverage,
716
- }, null, 2),
717
- },
718
- ],
719
- };
720
- }
721
- async handlePerformanceTakeHeapSnapshot(_args) {
722
- const monitor = this.getPerformanceMonitor();
723
- const snapshot = await monitor.takeHeapSnapshot();
724
- return {
725
- content: [
726
- {
727
- type: 'text',
728
- text: JSON.stringify({
729
- success: true,
730
- snapshotSize: snapshot.length,
731
- message: 'Heap snapshot taken (data too large to return, saved internally)',
732
- }, null, 2),
733
- },
734
- ],
735
- };
736
- }
737
- async handlePerformanceTraceStart(args) {
738
- const monitor = this.getPerformanceMonitor();
739
- const categories = asOptionalStringArray(args.categories);
740
- const screenshots = asOptionalBoolean(args.screenshots);
741
- await monitor.startTracing({ categories, screenshots });
742
- return {
743
- content: [
744
- {
745
- type: 'text',
746
- text: JSON.stringify({
747
- success: true,
748
- message: 'Performance tracing started. Call performance_trace_stop to save the trace.',
749
- }),
750
- },
751
- ],
752
- };
753
- }
754
- async handlePerformanceTraceStop(args) {
755
- const monitor = this.getPerformanceMonitor();
756
- const artifactPath = asOptionalString(args.artifactPath);
757
- const result = await monitor.stopTracing({ artifactPath });
758
- return {
759
- content: [
760
- {
761
- type: 'text',
762
- text: JSON.stringify({
763
- success: true,
764
- artifactPath: result.artifactPath,
765
- eventCount: result.eventCount,
766
- sizeBytes: result.sizeBytes,
767
- sizeKB: (result.sizeBytes / 1024).toFixed(1),
768
- hint: 'Open the trace file in Chrome DevTools → Performance tab → Load profile',
769
- }, null, 2),
770
- },
771
- ],
772
- };
773
- }
774
- async handleProfilerCpuStart(_args) {
775
- const monitor = this.getPerformanceMonitor();
776
- await monitor.startCPUProfiling();
777
- return {
778
- content: [
779
- {
780
- type: 'text',
781
- text: JSON.stringify({
782
- success: true,
783
- message: 'CPU profiling started. Call profiler_cpu_stop to save the profile.',
784
- }),
785
- },
786
- ],
787
- };
788
- }
789
- async handleProfilerCpuStop(args) {
790
- const monitor = this.getPerformanceMonitor();
791
- const profileRaw = await monitor.stopCPUProfiling();
792
- const profile = toCpuProfilePayload(profileRaw) || profileRaw;
793
- const { writeFile } = await import('node:fs/promises');
794
- const { resolveArtifactPath } = await import('../../../utils/artifacts.js');
795
- const artifactPath = asOptionalString(args.artifactPath);
796
- const profileJson = JSON.stringify(profile, null, 2);
797
- let savedPath;
798
- if (artifactPath) {
799
- await writeFile(artifactPath, profileJson, 'utf-8');
800
- savedPath = artifactPath;
801
- }
802
- else {
803
- const { absolutePath, displayPath } = await resolveArtifactPath({
804
- category: 'profiles',
805
- toolName: 'cpu-profile',
806
- ext: 'cpuprofile',
807
- });
808
- await writeFile(absolutePath, profileJson, 'utf-8');
809
- savedPath = displayPath;
810
- }
811
- const hotFunctions = profile.nodes
812
- .filter((n) => (n.hitCount || 0) > 0)
813
- .sort((a, b) => (b.hitCount || 0) - (a.hitCount || 0))
814
- .slice(0, 20)
815
- .map((n) => ({
816
- functionName: n.callFrame?.functionName || '(anonymous)',
817
- url: n.callFrame?.url,
818
- line: n.callFrame?.lineNumber,
819
- hitCount: n.hitCount,
820
- }));
821
- return {
822
- content: [
823
- {
824
- type: 'text',
825
- text: JSON.stringify({
826
- success: true,
827
- artifactPath: savedPath,
828
- totalNodes: profile.nodes.length,
829
- totalSamples: profile.samples?.length || 0,
830
- durationMs: profile.endTime - profile.startTime,
831
- hotFunctions,
832
- hint: 'Open the .cpuprofile file in Chrome DevTools → Performance tab',
833
- }, null, 2),
834
- },
835
- ],
836
- };
837
- }
838
- async handleProfilerHeapSamplingStart(args) {
839
- const monitor = this.getPerformanceMonitor();
840
- const samplingInterval = asOptionalNumber(args.samplingInterval);
841
- await monitor.startHeapSampling({ samplingInterval });
842
- return {
843
- content: [
844
- {
845
- type: 'text',
846
- text: JSON.stringify({
847
- success: true,
848
- message: 'Heap sampling started. Call profiler_heap_sampling_stop to save the report.',
849
- }),
850
- },
851
- ],
852
- };
853
- }
854
- async handleProfilerHeapSamplingStop(args) {
855
- const monitor = this.getPerformanceMonitor();
856
- const artifactPath = asOptionalString(args.artifactPath);
857
- const topN = asOptionalNumber(args.topN);
858
- const result = await monitor.stopHeapSampling({ artifactPath, topN });
859
- return {
860
- content: [
861
- {
862
- type: 'text',
863
- text: JSON.stringify({
864
- success: true,
865
- artifactPath: result.artifactPath,
866
- sampleCount: result.sampleCount,
867
- topAllocations: result.topAllocations,
868
- }, null, 2),
869
- },
870
- ],
871
- };
872
- }
4
+ export class AdvancedHandlersBase extends NetworkHandlersPerformance {
873
5
  async handleConsoleGetExceptions(args) {
874
6
  const url = asOptionalString(args.url);
875
7
  const limit = this.parseNumberArg(args.limit, {
@@ -998,11 +130,4 @@ export class AdvancedHandlersBase {
998
130
  ],
999
131
  };
1000
132
  }
1001
- async cleanup() {
1002
- if (this.performanceMonitor) {
1003
- await this.performanceMonitor.close();
1004
- this.performanceMonitor = null;
1005
- }
1006
- logger.info('AdvancedHandlersBase cleaned up');
1007
- }
1008
133
  }