@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
@@ -0,0 +1,63 @@
1
+ import { NetworkHandlersCore } from './handlers.base.core.js';
2
+ export declare class NetworkHandlersPerformance extends NetworkHandlersCore {
3
+ handlePerformanceGetMetrics(args: Record<string, unknown>): Promise<{
4
+ content: {
5
+ type: string;
6
+ text: string;
7
+ }[];
8
+ }>;
9
+ handlePerformanceStartCoverage(_args: Record<string, unknown>): Promise<{
10
+ content: {
11
+ type: string;
12
+ text: string;
13
+ }[];
14
+ }>;
15
+ handlePerformanceStopCoverage(_args: Record<string, unknown>): Promise<{
16
+ content: {
17
+ type: string;
18
+ text: string;
19
+ }[];
20
+ }>;
21
+ handlePerformanceTakeHeapSnapshot(_args: Record<string, unknown>): Promise<{
22
+ content: {
23
+ type: string;
24
+ text: string;
25
+ }[];
26
+ }>;
27
+ handlePerformanceTraceStart(args: Record<string, unknown>): Promise<{
28
+ content: {
29
+ type: string;
30
+ text: string;
31
+ }[];
32
+ }>;
33
+ handlePerformanceTraceStop(args: Record<string, unknown>): Promise<{
34
+ content: {
35
+ type: string;
36
+ text: string;
37
+ }[];
38
+ }>;
39
+ handleProfilerCpuStart(_args: Record<string, unknown>): Promise<{
40
+ content: {
41
+ type: string;
42
+ text: string;
43
+ }[];
44
+ }>;
45
+ handleProfilerCpuStop(args: Record<string, unknown>): Promise<{
46
+ content: {
47
+ type: string;
48
+ text: string;
49
+ }[];
50
+ }>;
51
+ handleProfilerHeapSamplingStart(args: Record<string, unknown>): Promise<{
52
+ content: {
53
+ type: string;
54
+ text: string;
55
+ }[];
56
+ }>;
57
+ handleProfilerHeapSamplingStop(args: Record<string, unknown>): Promise<{
58
+ content: {
59
+ type: string;
60
+ text: string;
61
+ }[];
62
+ }>;
63
+ }
@@ -0,0 +1,193 @@
1
+ import { NetworkHandlersCore } from './handlers.base.core.js';
2
+ import { asOptionalBoolean, asOptionalNumber, asOptionalString, asOptionalStringArray, toCpuProfilePayload, } from './handlers.base.types.js';
3
+ export class NetworkHandlersPerformance extends NetworkHandlersCore {
4
+ async handlePerformanceGetMetrics(args) {
5
+ const includeTimeline = args.includeTimeline === true;
6
+ const monitor = this.getPerformanceMonitor();
7
+ const metrics = await monitor.getPerformanceMetrics();
8
+ const result = { success: true, metrics };
9
+ if (includeTimeline) {
10
+ result.timeline = await monitor.getPerformanceTimeline();
11
+ }
12
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
13
+ }
14
+ async handlePerformanceStartCoverage(_args) {
15
+ const monitor = this.getPerformanceMonitor();
16
+ await monitor.startCoverage();
17
+ return {
18
+ content: [
19
+ {
20
+ type: 'text',
21
+ text: JSON.stringify({ success: true, message: 'Code coverage collection started' }, null, 2),
22
+ },
23
+ ],
24
+ };
25
+ }
26
+ async handlePerformanceStopCoverage(_args) {
27
+ const monitor = this.getPerformanceMonitor();
28
+ const coverage = await monitor.stopCoverage();
29
+ const avgCoverage = coverage.length > 0
30
+ ? coverage.reduce((sum, info) => sum + info.coveragePercentage, 0) / coverage.length
31
+ : 0;
32
+ return {
33
+ content: [
34
+ {
35
+ type: 'text',
36
+ text: JSON.stringify({ success: true, coverage, totalScripts: coverage.length, avgCoverage }, null, 2),
37
+ },
38
+ ],
39
+ };
40
+ }
41
+ async handlePerformanceTakeHeapSnapshot(_args) {
42
+ const monitor = this.getPerformanceMonitor();
43
+ const snapshot = await monitor.takeHeapSnapshot();
44
+ return {
45
+ content: [
46
+ {
47
+ type: 'text',
48
+ text: JSON.stringify({
49
+ success: true,
50
+ snapshotSize: snapshot.length,
51
+ message: 'Heap snapshot taken (data too large to return, saved internally)',
52
+ }, null, 2),
53
+ },
54
+ ],
55
+ };
56
+ }
57
+ async handlePerformanceTraceStart(args) {
58
+ const monitor = this.getPerformanceMonitor();
59
+ const categories = asOptionalStringArray(args.categories);
60
+ const screenshots = asOptionalBoolean(args.screenshots);
61
+ await monitor.startTracing({ categories, screenshots });
62
+ return {
63
+ content: [
64
+ {
65
+ type: 'text',
66
+ text: JSON.stringify({
67
+ success: true,
68
+ message: 'Performance tracing started. Call performance_trace_stop to save the trace.',
69
+ }),
70
+ },
71
+ ],
72
+ };
73
+ }
74
+ async handlePerformanceTraceStop(args) {
75
+ const monitor = this.getPerformanceMonitor();
76
+ const artifactPath = asOptionalString(args.artifactPath);
77
+ const result = await monitor.stopTracing({ artifactPath });
78
+ return {
79
+ content: [
80
+ {
81
+ type: 'text',
82
+ text: JSON.stringify({
83
+ success: true,
84
+ artifactPath: result.artifactPath,
85
+ eventCount: result.eventCount,
86
+ sizeBytes: result.sizeBytes,
87
+ sizeKB: (result.sizeBytes / 1024).toFixed(1),
88
+ hint: 'Open the trace file in Chrome DevTools → Performance tab → Load profile',
89
+ }, null, 2),
90
+ },
91
+ ],
92
+ };
93
+ }
94
+ async handleProfilerCpuStart(_args) {
95
+ const monitor = this.getPerformanceMonitor();
96
+ await monitor.startCPUProfiling();
97
+ return {
98
+ content: [
99
+ {
100
+ type: 'text',
101
+ text: JSON.stringify({
102
+ success: true,
103
+ message: 'CPU profiling started. Call profiler_cpu_stop to save the profile.',
104
+ }),
105
+ },
106
+ ],
107
+ };
108
+ }
109
+ async handleProfilerCpuStop(args) {
110
+ const monitor = this.getPerformanceMonitor();
111
+ const profileRaw = await monitor.stopCPUProfiling();
112
+ const profile = toCpuProfilePayload(profileRaw) || profileRaw;
113
+ const { writeFile } = await import('node:fs/promises');
114
+ const { resolveArtifactPath } = await import('../../../utils/artifacts.js');
115
+ const artifactPath = asOptionalString(args.artifactPath);
116
+ const profileJson = JSON.stringify(profile, null, 2);
117
+ let savedPath;
118
+ if (artifactPath) {
119
+ await writeFile(artifactPath, profileJson, 'utf-8');
120
+ savedPath = artifactPath;
121
+ }
122
+ else {
123
+ const { absolutePath, displayPath } = await resolveArtifactPath({
124
+ category: 'profiles',
125
+ toolName: 'cpu-profile',
126
+ ext: 'cpuprofile',
127
+ });
128
+ await writeFile(absolutePath, profileJson, 'utf-8');
129
+ savedPath = displayPath;
130
+ }
131
+ const hotFunctions = profile.nodes
132
+ .filter((n) => (n.hitCount || 0) > 0)
133
+ .toSorted((a, b) => (b.hitCount || 0) - (a.hitCount || 0))
134
+ .slice(0, 20)
135
+ .map((n) => ({
136
+ functionName: n.callFrame?.functionName || '(anonymous)',
137
+ url: n.callFrame?.url,
138
+ line: n.callFrame?.lineNumber,
139
+ hitCount: n.hitCount,
140
+ }));
141
+ return {
142
+ content: [
143
+ {
144
+ type: 'text',
145
+ text: JSON.stringify({
146
+ success: true,
147
+ artifactPath: savedPath,
148
+ totalNodes: profile.nodes.length,
149
+ totalSamples: profile.samples?.length || 0,
150
+ durationMs: profile.endTime - profile.startTime,
151
+ hotFunctions,
152
+ hint: 'Open the .cpuprofile file in Chrome DevTools → Performance tab',
153
+ }, null, 2),
154
+ },
155
+ ],
156
+ };
157
+ }
158
+ async handleProfilerHeapSamplingStart(args) {
159
+ const monitor = this.getPerformanceMonitor();
160
+ const samplingInterval = asOptionalNumber(args.samplingInterval);
161
+ await monitor.startHeapSampling({ samplingInterval });
162
+ return {
163
+ content: [
164
+ {
165
+ type: 'text',
166
+ text: JSON.stringify({
167
+ success: true,
168
+ message: 'Heap sampling started. Call profiler_heap_sampling_stop to save the report.',
169
+ }),
170
+ },
171
+ ],
172
+ };
173
+ }
174
+ async handleProfilerHeapSamplingStop(args) {
175
+ const monitor = this.getPerformanceMonitor();
176
+ const artifactPath = asOptionalString(args.artifactPath);
177
+ const topN = asOptionalNumber(args.topN);
178
+ const result = await monitor.stopHeapSampling({ artifactPath, topN });
179
+ return {
180
+ content: [
181
+ {
182
+ type: 'text',
183
+ text: JSON.stringify({
184
+ success: true,
185
+ artifactPath: result.artifactPath,
186
+ sampleCount: result.sampleCount,
187
+ topAllocations: result.topAllocations,
188
+ }, null, 2),
189
+ },
190
+ ],
191
+ };
192
+ }
193
+ }
@@ -0,0 +1,42 @@
1
+ import { DetailedDataManager } from '../../../utils/DetailedDataManager.js';
2
+ export declare const EXCLUDED_RESOURCE_TYPES: Set<string>;
3
+ export declare const TYPE_SORT_PRIORITY: Record<string, number>;
4
+ export declare const DEFAULT_SORT_PRIORITY = 6;
5
+ export interface NetworkRequestPayload {
6
+ requestId?: string;
7
+ url: string;
8
+ method: string;
9
+ type?: string;
10
+ timestamp?: number;
11
+ [key: string]: unknown;
12
+ }
13
+ export interface NetworkResponsePayload {
14
+ status: number;
15
+ [key: string]: unknown;
16
+ }
17
+ export interface CpuProfileCallFramePayload {
18
+ functionName?: string;
19
+ url?: string;
20
+ lineNumber?: number;
21
+ }
22
+ export interface CpuProfileNodePayload {
23
+ hitCount?: number;
24
+ callFrame?: CpuProfileCallFramePayload;
25
+ }
26
+ export interface CpuProfilePayload {
27
+ nodes: CpuProfileNodePayload[];
28
+ samples?: unknown[];
29
+ startTime: number;
30
+ endTime: number;
31
+ }
32
+ export declare const isObjectRecord: (value: unknown) => value is Record<string, unknown>;
33
+ export declare const isNetworkRequestPayload: (value: unknown) => value is NetworkRequestPayload;
34
+ export declare const isNetworkResponsePayload: (value: unknown) => value is NetworkResponsePayload;
35
+ export declare const isFiniteNumber: (value: unknown) => value is number;
36
+ export declare const asOptionalString: (value: unknown) => string | undefined;
37
+ export declare const asOptionalBoolean: (value: unknown) => boolean | undefined;
38
+ export declare const asOptionalNumber: (value: unknown) => number | undefined;
39
+ export declare const asOptionalStringArray: (value: unknown) => string[] | undefined;
40
+ export declare const isCpuProfileNodePayload: (value: unknown) => value is CpuProfileNodePayload;
41
+ export declare const toCpuProfilePayload: (value: unknown) => CpuProfilePayload | null;
42
+ export declare function getDetailedDataManager(): DetailedDataManager;
@@ -0,0 +1,89 @@
1
+ import { DetailedDataManager } from '../../../utils/DetailedDataManager.js';
2
+ export const EXCLUDED_RESOURCE_TYPES = new Set([
3
+ 'Image',
4
+ 'Font',
5
+ 'Stylesheet',
6
+ 'Media',
7
+ 'Manifest',
8
+ 'Ping',
9
+ ]);
10
+ export const TYPE_SORT_PRIORITY = {
11
+ XHR: 0,
12
+ Fetch: 1,
13
+ Document: 2,
14
+ Script: 3,
15
+ WebSocket: 4,
16
+ EventSource: 5,
17
+ };
18
+ export const DEFAULT_SORT_PRIORITY = 6;
19
+ export const isObjectRecord = (value) => typeof value === 'object' && value !== null;
20
+ export const isNetworkRequestPayload = (value) => {
21
+ if (!isObjectRecord(value)) {
22
+ return false;
23
+ }
24
+ return typeof value.url === 'string' && typeof value.method === 'string';
25
+ };
26
+ export const isNetworkResponsePayload = (value) => {
27
+ if (!isObjectRecord(value)) {
28
+ return false;
29
+ }
30
+ return typeof value.status === 'number';
31
+ };
32
+ export const isFiniteNumber = (value) => typeof value === 'number' && Number.isFinite(value);
33
+ export const asOptionalString = (value) => typeof value === 'string' ? value : undefined;
34
+ export const asOptionalBoolean = (value) => typeof value === 'boolean' ? value : undefined;
35
+ export const asOptionalNumber = (value) => typeof value === 'number' && Number.isFinite(value) ? value : undefined;
36
+ export const asOptionalStringArray = (value) => {
37
+ if (!Array.isArray(value)) {
38
+ return undefined;
39
+ }
40
+ return value.every((item) => typeof item === 'string') ? value : undefined;
41
+ };
42
+ export const isCpuProfileNodePayload = (value) => {
43
+ if (!isObjectRecord(value)) {
44
+ return false;
45
+ }
46
+ if (value.hitCount !== undefined && typeof value.hitCount !== 'number') {
47
+ return false;
48
+ }
49
+ if (value.callFrame !== undefined && !isObjectRecord(value.callFrame)) {
50
+ return false;
51
+ }
52
+ if (isObjectRecord(value.callFrame)) {
53
+ if (value.callFrame.functionName !== undefined &&
54
+ typeof value.callFrame.functionName !== 'string') {
55
+ return false;
56
+ }
57
+ if (value.callFrame.url !== undefined && typeof value.callFrame.url !== 'string') {
58
+ return false;
59
+ }
60
+ if (value.callFrame.lineNumber !== undefined &&
61
+ typeof value.callFrame.lineNumber !== 'number') {
62
+ return false;
63
+ }
64
+ }
65
+ return true;
66
+ };
67
+ export const toCpuProfilePayload = (value) => {
68
+ if (!isObjectRecord(value)) {
69
+ return null;
70
+ }
71
+ if (!Array.isArray(value.nodes)) {
72
+ return null;
73
+ }
74
+ if (typeof value.startTime !== 'number' || typeof value.endTime !== 'number') {
75
+ return null;
76
+ }
77
+ if (!value.nodes.every((node) => isCpuProfileNodePayload(node))) {
78
+ return null;
79
+ }
80
+ return {
81
+ nodes: value.nodes,
82
+ samples: Array.isArray(value.samples) ? value.samples : undefined,
83
+ startTime: value.startTime,
84
+ endTime: value.endTime,
85
+ };
86
+ };
87
+ export function getDetailedDataManager() {
88
+ return DetailedDataManager.getInstance();
89
+ }
@@ -1 +1 @@
1
- export { AdvancedToolHandlersRuntime as AdvancedToolHandlers } from '../../domains/network/handlers.impl.core.runtime.replay.js';
1
+ export { AdvancedToolHandlersIntercept as AdvancedToolHandlers } from '../../domains/network/handlers.impl.core.runtime.intercept.js';
@@ -0,0 +1,21 @@
1
+ import { AdvancedToolHandlersRuntime as AdvancedToolHandlersReplay } from '../../domains/network/handlers.impl.core.runtime.replay.js';
2
+ export declare class AdvancedToolHandlersIntercept extends AdvancedToolHandlersReplay {
3
+ handleNetworkInterceptResponse(args: Record<string, unknown>): Promise<{
4
+ content: {
5
+ type: string;
6
+ text: string;
7
+ }[];
8
+ }>;
9
+ handleNetworkInterceptList(_args: Record<string, unknown>): Promise<{
10
+ content: {
11
+ type: string;
12
+ text: string;
13
+ }[];
14
+ }>;
15
+ handleNetworkInterceptDisable(args: Record<string, unknown>): Promise<{
16
+ content: {
17
+ type: string;
18
+ text: string;
19
+ }[];
20
+ }>;
21
+ }
@@ -0,0 +1,186 @@
1
+ import { AdvancedToolHandlersRuntime as AdvancedToolHandlersReplay } from '../../domains/network/handlers.impl.core.runtime.replay.js';
2
+ const isObjectRecord = (value) => typeof value === 'object' && value !== null;
3
+ export class AdvancedToolHandlersIntercept extends AdvancedToolHandlersReplay {
4
+ async handleNetworkInterceptResponse(args) {
5
+ try {
6
+ const rules = [];
7
+ if (Array.isArray(args.rules)) {
8
+ for (const rawRule of args.rules) {
9
+ if (isObjectRecord(rawRule) && typeof rawRule.urlPattern === 'string') {
10
+ rules.push({
11
+ urlPattern: rawRule.urlPattern,
12
+ urlPatternType: rawRule.urlPatternType === 'regex' ? 'regex' : 'glob',
13
+ stage: rawRule.stage === 'Request' ? 'Request' : 'Response',
14
+ responseCode: typeof rawRule.responseCode === 'number' ? rawRule.responseCode : 200,
15
+ responseHeaders: isObjectRecord(rawRule.responseHeaders)
16
+ ? rawRule.responseHeaders
17
+ : undefined,
18
+ responseBody: typeof rawRule.responseBody === 'string'
19
+ ? rawRule.responseBody
20
+ : typeof rawRule.responseBody === 'object'
21
+ ? JSON.stringify(rawRule.responseBody)
22
+ : undefined,
23
+ });
24
+ }
25
+ }
26
+ }
27
+ else if (typeof args.urlPattern === 'string') {
28
+ rules.push({
29
+ urlPattern: args.urlPattern,
30
+ urlPatternType: args.urlPatternType === 'regex' ? 'regex' : 'glob',
31
+ stage: args.stage === 'Request' ? 'Request' : 'Response',
32
+ responseCode: typeof args.responseCode === 'number' ? args.responseCode : 200,
33
+ responseHeaders: isObjectRecord(args.responseHeaders)
34
+ ? args.responseHeaders
35
+ : undefined,
36
+ responseBody: typeof args.responseBody === 'string'
37
+ ? args.responseBody
38
+ : typeof args.responseBody === 'object' && args.responseBody !== null
39
+ ? JSON.stringify(args.responseBody)
40
+ : undefined,
41
+ });
42
+ }
43
+ if (rules.length === 0) {
44
+ return {
45
+ content: [
46
+ {
47
+ type: 'text',
48
+ text: JSON.stringify({
49
+ success: false,
50
+ error: 'No valid rules provided. Provide either "urlPattern" (single) or "rules" array (batch).',
51
+ usage: {
52
+ single: {
53
+ urlPattern: '*api/status*',
54
+ responseCode: 200,
55
+ responseBody: '{"status":"active"}',
56
+ },
57
+ batch: {
58
+ rules: [
59
+ {
60
+ urlPattern: '*api/status*',
61
+ responseBody: '{"status":"active"}',
62
+ },
63
+ ],
64
+ },
65
+ },
66
+ }, null, 2),
67
+ },
68
+ ],
69
+ };
70
+ }
71
+ const createdRules = await this.consoleMonitor.enableFetchIntercept(rules);
72
+ const status = this.consoleMonitor.getFetchInterceptStatus();
73
+ return {
74
+ content: [
75
+ {
76
+ type: 'text',
77
+ text: JSON.stringify({
78
+ success: true,
79
+ message: `Added ${createdRules.length} interception rule(s)`,
80
+ createdRules: createdRules.map((r) => ({
81
+ id: r.id,
82
+ urlPattern: r.urlPattern,
83
+ stage: r.stage,
84
+ responseCode: r.responseCode,
85
+ })),
86
+ totalActiveRules: status.rules.length,
87
+ hint: 'Use network_intercept_list to see all rules and hit counts. Use network_intercept_disable to remove rules.',
88
+ }, null, 2),
89
+ },
90
+ ],
91
+ };
92
+ }
93
+ catch (error) {
94
+ return {
95
+ content: [
96
+ {
97
+ type: 'text',
98
+ text: JSON.stringify({
99
+ success: false,
100
+ error: error instanceof Error ? error.message : String(error),
101
+ hint: 'Ensure browser is launched and a page is active before enabling interception.',
102
+ }, null, 2),
103
+ },
104
+ ],
105
+ };
106
+ }
107
+ }
108
+ async handleNetworkInterceptList(_args) {
109
+ const status = this.consoleMonitor.getFetchInterceptStatus();
110
+ return {
111
+ content: [
112
+ {
113
+ type: 'text',
114
+ text: JSON.stringify({
115
+ success: true,
116
+ ...status,
117
+ hint: status.rules.length > 0
118
+ ? 'Use network_intercept_disable(ruleId) to remove a specific rule, or network_intercept_disable(all=true) to remove all.'
119
+ : 'No active interception rules. Use network_intercept_response to add rules.',
120
+ }, null, 2),
121
+ },
122
+ ],
123
+ };
124
+ }
125
+ async handleNetworkInterceptDisable(args) {
126
+ const ruleId = typeof args.ruleId === 'string' ? args.ruleId : undefined;
127
+ const all = args.all === true;
128
+ if (!ruleId && !all) {
129
+ return {
130
+ content: [
131
+ {
132
+ type: 'text',
133
+ text: JSON.stringify({
134
+ success: false,
135
+ error: 'Provide either "ruleId" to remove a specific rule, or "all": true to disable all.',
136
+ }, null, 2),
137
+ },
138
+ ],
139
+ };
140
+ }
141
+ try {
142
+ if (all) {
143
+ const result = await this.consoleMonitor.disableFetchIntercept();
144
+ return {
145
+ content: [
146
+ {
147
+ type: 'text',
148
+ text: JSON.stringify({
149
+ success: true,
150
+ message: `Disabled all interception. Removed ${result.removedRules} rule(s).`,
151
+ removedRules: result.removedRules,
152
+ }, null, 2),
153
+ },
154
+ ],
155
+ };
156
+ }
157
+ const removed = await this.consoleMonitor.removeFetchInterceptRule(ruleId);
158
+ const status = this.consoleMonitor.getFetchInterceptStatus();
159
+ return {
160
+ content: [
161
+ {
162
+ type: 'text',
163
+ text: JSON.stringify({
164
+ success: removed,
165
+ message: removed ? `Rule ${ruleId} removed.` : `Rule ${ruleId} not found.`,
166
+ remainingRules: status.rules.length,
167
+ }, null, 2),
168
+ },
169
+ ],
170
+ };
171
+ }
172
+ catch (error) {
173
+ return {
174
+ content: [
175
+ {
176
+ type: 'text',
177
+ text: JSON.stringify({
178
+ success: false,
179
+ error: error instanceof Error ? error.message : String(error),
180
+ }, null, 2),
181
+ },
182
+ ],
183
+ };
184
+ }
185
+ }
186
+ }
@@ -1 +1 @@
1
- export { AdvancedToolHandlersRuntime as AdvancedToolHandlers } from '../../domains/network/handlers.impl.core.runtime.replay.js';
1
+ export { AdvancedToolHandlersIntercept as AdvancedToolHandlers } from '../../domains/network/handlers.impl.core.runtime.intercept.js';
@@ -156,6 +156,21 @@ const manifest = {
156
156
  domain: DOMAIN,
157
157
  bind: b((h, a) => h.handleNetworkReplayRequest(a)),
158
158
  },
159
+ {
160
+ tool: t('network_intercept_response'),
161
+ domain: DOMAIN,
162
+ bind: b((h, a) => h.handleNetworkInterceptResponse(a)),
163
+ },
164
+ {
165
+ tool: t('network_intercept_list'),
166
+ domain: DOMAIN,
167
+ bind: b((h, a) => h.handleNetworkInterceptList(a)),
168
+ },
169
+ {
170
+ tool: t('network_intercept_disable'),
171
+ domain: DOMAIN,
172
+ bind: b((h, a) => h.handleNetworkInterceptDisable(a)),
173
+ },
159
174
  ],
160
175
  };
161
176
  export default manifest;
@@ -126,14 +126,11 @@ export async function replayRequest(base, args, maxBodyBytes = 512_000) {
126
126
  let currentBody = body;
127
127
  let resp;
128
128
  for (let hop = 0; hop < MAX_REDIRECTS; hop++) {
129
- const { pinnedUrl, originalHost } = await resolvePinned(currentUrl);
129
+ const { pinnedUrl } = await resolvePinned(currentUrl);
130
130
  if (!pinnedUrl.startsWith('https://') && !LOOPBACK_HTTP_URL_RE.test(pinnedUrl)) {
131
131
  throw new Error(`Replay blocked: insecure HTTP is only allowed for loopback targets, got "${currentUrl}"`);
132
132
  }
133
133
  const hopHeaders = { ...mergedHeaders };
134
- if (pinnedUrl !== currentUrl && !hopHeaders['host'] && !hopHeaders['Host']) {
135
- hopHeaders['Host'] = originalHost;
136
- }
137
134
  resp = await fetch(pinnedUrl, {
138
135
  method: currentMethod,
139
136
  headers: hopHeaders,