@jshookmcp/jshook 0.2.0 → 0.2.2

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 (858) hide show
  1. package/README.md +4 -4
  2. package/README.zh.md +3 -3
  3. package/dist/packages/extension-sdk/src/bridges/shared.d.ts +40 -0
  4. package/dist/packages/extension-sdk/src/bridges/shared.js +196 -0
  5. package/dist/packages/extension-sdk/src/plugin.d.ts +42 -30
  6. package/dist/packages/extension-sdk/src/plugin.js +48 -16
  7. package/dist/src/config/search-defaults.d.ts +46 -0
  8. package/dist/src/config/search-defaults.js +151 -0
  9. package/dist/src/constants.d.ts +47 -15
  10. package/dist/src/constants.js +47 -17
  11. package/dist/src/index.js +61 -15
  12. package/dist/src/modules/analyzer/CodeAnalyzer.js +1 -0
  13. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +4 -1
  14. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +2 -1
  15. package/dist/src/modules/analyzer/PatternDetector.js +2 -1
  16. package/dist/src/modules/browser/BrowserDiscovery.js +24 -7
  17. package/dist/src/modules/browser/BrowserModeManager.d.ts +5 -1
  18. package/dist/src/modules/browser/BrowserModeManager.js +49 -6
  19. package/dist/src/modules/browser/CDPErrorMapper.d.ts +4 -0
  20. package/dist/src/modules/browser/CDPErrorMapper.js +82 -0
  21. package/dist/src/modules/browser/CamoufoxBrowserManager.d.ts +1 -0
  22. package/dist/src/modules/browser/CamoufoxBrowserManager.js +15 -5
  23. package/dist/src/modules/browser/HookHeartbeat.d.ts +38 -0
  24. package/dist/src/modules/browser/HookHeartbeat.js +76 -0
  25. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +2 -2
  26. package/dist/src/modules/browser/UnifiedBrowserManager.js +5 -2
  27. package/dist/src/modules/browser/index.d.ts +2 -2
  28. package/dist/src/modules/browser/index.js +2 -2
  29. package/dist/src/modules/captcha/AICaptchaDetector.js +7 -4
  30. package/dist/src/modules/captcha/CaptchaDetector.js +14 -3
  31. package/dist/src/modules/captcha/rules/captcha-keywords.js +2 -9
  32. package/dist/src/modules/captcha/rules/dom-rules.d.ts +28 -2
  33. package/dist/src/modules/captcha/rules/exclude-keywords.js +15 -2
  34. package/dist/src/modules/collector/CodeCache.d.ts +3 -0
  35. package/dist/src/modules/collector/CodeCache.js +9 -2
  36. package/dist/src/modules/collector/CodeCollector.d.ts +36 -1
  37. package/dist/src/modules/collector/CodeCollector.js +320 -32
  38. package/dist/src/modules/collector/CodeCollectorCollectInternal.js +36 -11
  39. package/dist/src/modules/collector/PageController.d.ts +14 -1
  40. package/dist/src/modules/collector/PageController.js +78 -4
  41. package/dist/src/modules/collector/PageScriptCollectors.d.ts +5 -2
  42. package/dist/src/modules/collector/PageScriptCollectors.js +37 -15
  43. package/dist/src/modules/crypto/CryptoDetector.js +5 -1
  44. package/dist/src/modules/debugger/DebuggerManager.impl.core.execution.js +7 -0
  45. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  46. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.ast.js +3 -2
  47. package/dist/src/modules/deobfuscator/Deobfuscator.js +4 -1
  48. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +1 -1
  49. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +5 -1
  50. package/dist/src/modules/deobfuscator/PackerDeobfuscator.js +8 -2
  51. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +1 -0
  52. package/dist/src/modules/deobfuscator/webcrack.js +3 -1
  53. package/dist/src/modules/detector/ObfuscationDetector.d.ts +1 -1
  54. package/dist/src/modules/emulator/EmulatorCodeGen.js +1 -2
  55. package/dist/src/modules/emulator/EnvironmentEmulator.js +2 -2
  56. package/dist/src/modules/external/ExternalToolRunner.js +2 -6
  57. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +15 -5
  58. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +43 -16
  59. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.d.ts +9 -3
  60. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +39 -15
  61. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.network.d.ts +6 -2
  62. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.network.js +6 -6
  63. package/dist/src/modules/monitor/NetworkMonitor.impl.d.ts +6 -2
  64. package/dist/src/modules/monitor/NetworkMonitor.impl.js +26 -10
  65. package/dist/src/modules/monitor/PerformanceMonitor.js +47 -10
  66. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.d.ts +8 -2
  67. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +39 -15
  68. package/dist/src/modules/process/LinuxProcessManager.d.ts +1 -1
  69. package/dist/src/modules/process/LinuxProcessManager.js +18 -8
  70. package/dist/src/modules/process/MacProcessManager.d.ts +1 -1
  71. package/dist/src/modules/process/MacProcessManager.js +17 -9
  72. package/dist/src/modules/process/MemoryManager.js +8 -4
  73. package/dist/src/modules/process/ProcessManager.impl.d.ts +1 -1
  74. package/dist/src/modules/process/ProcessManager.impl.js +4 -2
  75. package/dist/src/modules/process/memory/availability.js +15 -4
  76. package/dist/src/modules/process/memory/index.d.ts +1 -1
  77. package/dist/src/modules/process/memory/index.js +1 -1
  78. package/dist/src/modules/process/memory/injector.js +8 -2
  79. package/dist/src/modules/process/memory/monitor.js +1 -0
  80. package/dist/src/modules/process/memory/reader.js +17 -6
  81. package/dist/src/modules/process/memory/regions.dump.js +9 -3
  82. package/dist/src/modules/process/memory/regions.enumerate.js +11 -6
  83. package/dist/src/modules/process/memory/regions.modules.js +4 -1
  84. package/dist/src/modules/process/memory/regions.protection.js +10 -4
  85. package/dist/src/modules/process/memory/scanner.darwin.js +13 -5
  86. package/dist/src/modules/process/memory/scanner.js +11 -3
  87. package/dist/src/modules/process/memory/scanner.linux.js +5 -2
  88. package/dist/src/modules/process/memory/scanner.windows.js +4 -2
  89. package/dist/src/modules/process/memory/writer.js +15 -7
  90. package/dist/src/modules/security/ExecutionSandbox.js +2 -2
  91. package/dist/src/modules/stealth/CDPTimingProxy.d.ts +20 -0
  92. package/dist/src/modules/stealth/CDPTimingProxy.js +41 -0
  93. package/dist/src/modules/stealth/CDPTimingProxy.types.d.ts +7 -0
  94. package/dist/src/modules/stealth/CDPTimingProxy.types.js +6 -0
  95. package/dist/src/modules/stealth/FingerprintManager.d.ts +15 -0
  96. package/dist/src/modules/stealth/FingerprintManager.js +92 -0
  97. package/dist/src/modules/stealth/FingerprintManager.types.d.ts +16 -0
  98. package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
  99. package/dist/src/modules/stealth/StealthScripts.js +50 -8
  100. package/dist/src/modules/stealth/StealthVerifier.d.ts +18 -0
  101. package/dist/src/modules/stealth/StealthVerifier.js +145 -0
  102. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +1 -1
  103. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +3 -3
  104. package/dist/src/modules/trace/TraceDB.d.ts +30 -0
  105. package/dist/src/modules/trace/TraceDB.js +221 -0
  106. package/dist/src/modules/trace/TraceDB.types.d.ts +37 -0
  107. package/dist/src/modules/trace/TraceRecorder.d.ts +32 -0
  108. package/dist/src/modules/trace/TraceRecorder.js +260 -0
  109. package/dist/src/modules/trace/TraceRecorder.types.d.ts +15 -0
  110. package/dist/src/native/AntiCheatDetector.d.ts +10 -0
  111. package/dist/src/native/AntiCheatDetector.js +211 -0
  112. package/dist/src/native/AntiCheatDetector.types.d.ts +22 -0
  113. package/dist/src/native/CodeInjector.d.ts +12 -0
  114. package/dist/src/native/CodeInjector.js +155 -0
  115. package/dist/src/native/CodeInjector.types.d.ts +15 -0
  116. package/dist/src/native/HardwareBreakpoint.d.ts +18 -0
  117. package/dist/src/native/HardwareBreakpoint.js +237 -0
  118. package/dist/src/native/HardwareBreakpoint.types.d.ts +53 -0
  119. package/dist/src/native/HeapAnalyzer.d.ts +18 -0
  120. package/dist/src/native/HeapAnalyzer.js +239 -0
  121. package/dist/src/native/HeapAnalyzer.types.d.ts +49 -0
  122. package/dist/src/native/HeapAnalyzer.types.js +9 -0
  123. package/dist/src/native/MemoryController.d.ts +17 -0
  124. package/dist/src/native/MemoryController.js +165 -0
  125. package/dist/src/native/MemoryController.types.d.ts +18 -0
  126. package/dist/src/native/MemoryScanSession.d.ts +24 -0
  127. package/dist/src/native/MemoryScanSession.js +140 -0
  128. package/dist/src/native/MemoryScanner.d.ts +45 -0
  129. package/dist/src/native/MemoryScanner.js +397 -0
  130. package/dist/src/native/NativeMemoryManager.availability.js +32 -1
  131. package/dist/src/native/NativeMemoryManager.impl.d.ts +2 -0
  132. package/dist/src/native/NativeMemoryManager.impl.js +108 -78
  133. package/dist/src/native/NativeMemoryManager.types.d.ts +24 -1
  134. package/dist/src/native/NativeMemoryManager.utils.js +48 -1
  135. package/dist/src/native/PEAnalyzer.d.ts +16 -0
  136. package/dist/src/native/PEAnalyzer.js +380 -0
  137. package/dist/src/native/PEAnalyzer.types.d.ts +77 -0
  138. package/dist/src/native/PEAnalyzer.types.js +16 -0
  139. package/dist/src/native/PointerChainEngine.d.ts +16 -0
  140. package/dist/src/native/PointerChainEngine.js +319 -0
  141. package/dist/src/native/PointerChainEngine.types.d.ts +39 -0
  142. package/dist/src/native/ScanComparators.d.ts +5 -0
  143. package/dist/src/native/ScanComparators.js +162 -0
  144. package/dist/src/native/Speedhack.d.ts +16 -0
  145. package/dist/src/native/Speedhack.js +159 -0
  146. package/dist/src/native/Speedhack.types.d.ts +8 -0
  147. package/dist/src/native/StructureAnalyzer.d.ts +31 -0
  148. package/dist/src/native/StructureAnalyzer.js +449 -0
  149. package/dist/src/native/StructureAnalyzer.types.d.ts +42 -0
  150. package/dist/src/native/Win32API.js +5 -2
  151. package/dist/src/native/Win32Debug.d.ts +112 -0
  152. package/dist/src/native/Win32Debug.js +284 -0
  153. package/dist/src/native/formatAddress.d.ts +2 -0
  154. package/dist/src/native/formatAddress.js +6 -0
  155. package/dist/src/native/platform/PlatformMemoryAPI.d.ts +14 -0
  156. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +122 -0
  157. package/dist/src/native/platform/darwin/DarwinAPI.js +225 -0
  158. package/dist/src/native/platform/darwin/DarwinMemoryProvider.d.ts +17 -0
  159. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +230 -0
  160. package/dist/src/native/platform/darwin/index.d.ts +1 -0
  161. package/dist/src/native/platform/darwin/index.js +1 -0
  162. package/dist/src/native/platform/factory.d.ts +3 -0
  163. package/dist/src/native/platform/factory.js +31 -0
  164. package/dist/src/native/platform/index.d.ts +3 -0
  165. package/dist/src/native/platform/index.js +2 -0
  166. package/dist/src/native/platform/types.d.ts +50 -0
  167. package/dist/src/native/platform/types.js +12 -0
  168. package/dist/src/native/platform/win32/Win32MemoryProvider.d.ts +15 -0
  169. package/dist/src/native/platform/win32/Win32MemoryProvider.js +155 -0
  170. package/dist/src/native/platform/win32/index.d.ts +1 -0
  171. package/dist/src/native/platform/win32/index.js +1 -0
  172. package/dist/src/server/EventBus.d.ts +85 -0
  173. package/dist/src/server/EventBus.js +87 -0
  174. package/dist/src/server/MCPServer.activation.ttl.d.ts +11 -0
  175. package/dist/src/server/MCPServer.activation.ttl.js +100 -0
  176. package/dist/src/server/MCPServer.context.d.ts +54 -83
  177. package/dist/src/server/MCPServer.d.ts +43 -76
  178. package/dist/src/server/MCPServer.domain.js +4 -3
  179. package/dist/src/server/MCPServer.js +75 -81
  180. package/dist/src/server/MCPServer.registration.js +1 -3
  181. package/dist/src/server/MCPServer.search.handlers.activate.d.ts +8 -0
  182. package/dist/src/server/MCPServer.search.handlers.activate.js +37 -27
  183. package/dist/src/server/MCPServer.search.handlers.call.d.ts +3 -0
  184. package/dist/src/server/MCPServer.search.handlers.call.js +91 -0
  185. package/dist/src/server/MCPServer.search.handlers.domain.js +14 -4
  186. package/dist/src/server/MCPServer.search.handlers.route.js +63 -2
  187. package/dist/src/server/MCPServer.search.handlers.search.js +51 -69
  188. package/dist/src/server/MCPServer.search.helpers.d.ts +1 -1
  189. package/dist/src/server/MCPServer.search.helpers.js +12 -26
  190. package/dist/src/server/MCPServer.search.js +169 -122
  191. package/dist/src/server/MCPServer.search.validation.d.ts +1 -0
  192. package/dist/src/server/MCPServer.search.validation.js +13 -2
  193. package/dist/src/server/MCPServer.tools.d.ts +0 -1
  194. package/dist/src/server/MCPServer.tools.js +4 -68
  195. package/dist/src/server/MCPServer.transport.js +41 -9
  196. package/dist/src/server/ToolCallContextGuard.js +8 -1
  197. package/dist/src/server/ToolCatalog.d.ts +1 -2
  198. package/dist/src/server/ToolCatalog.js +23 -9
  199. package/dist/src/server/ToolExecutionRouter.js +2 -1
  200. package/dist/src/server/ToolHandlerMap.d.ts +1 -1
  201. package/dist/src/server/ToolHandlerMap.js +4 -2
  202. package/dist/src/server/ToolRouter.d.ts +10 -0
  203. package/dist/src/server/ToolRouter.js +271 -124
  204. package/dist/src/server/activation/ActivationController.d.ts +35 -0
  205. package/dist/src/server/activation/ActivationController.js +188 -0
  206. package/dist/src/server/activation/AutoPruner.d.ts +25 -0
  207. package/dist/src/server/activation/AutoPruner.js +73 -0
  208. package/dist/src/server/activation/CompoundConditionEngine.d.ts +38 -0
  209. package/dist/src/server/activation/CompoundConditionEngine.js +78 -0
  210. package/dist/src/server/activation/PredictiveBooster.d.ts +13 -0
  211. package/dist/src/server/activation/PredictiveBooster.js +68 -0
  212. package/dist/src/server/activation/types.d.ts +22 -0
  213. package/dist/src/server/domains/analysis/definitions.js +84 -0
  214. package/dist/src/server/domains/analysis/handlers.impl.js +80 -47
  215. package/dist/src/server/domains/analysis/handlers.web-tools.js +32 -13
  216. package/dist/src/server/domains/analysis/manifest.d.ts +66 -4
  217. package/dist/src/server/domains/analysis/manifest.js +47 -7
  218. package/dist/src/server/domains/antidebug/definitions.js +36 -0
  219. package/dist/src/server/domains/antidebug/handlers.js +9 -13
  220. package/dist/src/server/domains/antidebug/manifest.d.ts +54 -4
  221. package/dist/src/server/domains/antidebug/manifest.js +34 -8
  222. package/dist/src/server/domains/browser/definitions.d.ts +1 -1
  223. package/dist/src/server/domains/browser/definitions.js +1 -1
  224. package/dist/src/server/domains/browser/definitions.tools.advanced.js +10 -1
  225. package/dist/src/server/domains/browser/definitions.tools.behavior.js +107 -22
  226. package/dist/src/server/domains/browser/definitions.tools.page-core.js +5 -1
  227. package/dist/src/server/domains/browser/definitions.tools.runtime.js +34 -3
  228. package/dist/src/server/domains/browser/definitions.tools.security.js +117 -3
  229. package/dist/src/server/domains/browser/handlers/browser-control.d.ts +6 -0
  230. package/dist/src/server/domains/browser/handlers/browser-control.js +115 -33
  231. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +6 -5
  232. package/dist/src/server/domains/browser/handlers/camoufox-flow.js +24 -15
  233. package/dist/src/server/domains/browser/handlers/captcha-handlers.js +5 -4
  234. package/dist/src/server/domains/browser/handlers/captcha-solver.js +25 -20
  235. package/dist/src/server/domains/browser/handlers/console-handlers.js +5 -4
  236. package/dist/src/server/domains/browser/handlers/detailed-data.js +3 -2
  237. package/dist/src/server/domains/browser/handlers/dom-query.js +8 -7
  238. package/dist/src/server/domains/browser/handlers/dom-search.js +4 -3
  239. package/dist/src/server/domains/browser/handlers/dom-style.js +3 -2
  240. package/dist/src/server/domains/browser/handlers/facade-initializer.js +3 -0
  241. package/dist/src/server/domains/browser/handlers/framework-state.js +24 -10
  242. package/dist/src/server/domains/browser/handlers/human-behavior.js +41 -35
  243. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +4 -3
  244. package/dist/src/server/domains/browser/handlers/js-heap.js +16 -9
  245. package/dist/src/server/domains/browser/handlers/page-data.js +6 -5
  246. package/dist/src/server/domains/browser/handlers/page-evaluation.js +28 -18
  247. package/dist/src/server/domains/browser/handlers/page-interaction.js +11 -10
  248. package/dist/src/server/domains/browser/handlers/page-navigation.js +5 -4
  249. package/dist/src/server/domains/browser/handlers/script-management.js +11 -9
  250. package/dist/src/server/domains/browser/handlers/stealth-injection.d.ts +26 -0
  251. package/dist/src/server/domains/browser/handlers/stealth-injection.js +127 -1
  252. package/dist/src/server/domains/browser/handlers/tab-workflow.js +1 -3
  253. package/dist/src/server/domains/browser/handlers.impl.d.ts +19 -1
  254. package/dist/src/server/domains/browser/handlers.impl.js +30 -10
  255. package/dist/src/server/domains/browser/manifest.d.ts +110 -4
  256. package/dist/src/server/domains/browser/manifest.js +138 -20
  257. package/dist/src/server/domains/coordination/definitions.d.ts +2 -0
  258. package/dist/src/server/domains/coordination/definitions.js +151 -0
  259. package/dist/src/server/domains/coordination/index.d.ts +34 -0
  260. package/dist/src/server/domains/coordination/index.js +145 -0
  261. package/dist/src/server/domains/coordination/manifest.d.ts +57 -0
  262. package/dist/src/server/domains/coordination/manifest.js +44 -0
  263. package/dist/src/server/domains/debugger/definitions.tools.js +1 -4
  264. package/dist/src/server/domains/debugger/handlers/blackbox-handlers.js +3 -2
  265. package/dist/src/server/domains/debugger/handlers/breakpoint-basic.js +7 -6
  266. package/dist/src/server/domains/debugger/handlers/breakpoint-exception.js +2 -1
  267. package/dist/src/server/domains/debugger/handlers/debugger-evaluate.js +4 -3
  268. package/dist/src/server/domains/debugger/handlers/debugger-state.js +2 -1
  269. package/dist/src/server/domains/debugger/handlers/event-breakpoint.js +6 -5
  270. package/dist/src/server/domains/debugger/handlers/scope-inspection.js +7 -6
  271. package/dist/src/server/domains/debugger/handlers/session-management.js +6 -5
  272. package/dist/src/server/domains/debugger/handlers/watch-expressions.js +5 -4
  273. package/dist/src/server/domains/debugger/handlers/xhr-breakpoint.js +4 -3
  274. package/dist/src/server/domains/debugger/manifest.d.ts +64 -4
  275. package/dist/src/server/domains/debugger/manifest.js +109 -21
  276. package/dist/src/server/domains/encoding/definitions.js +30 -0
  277. package/dist/src/server/domains/encoding/encoding-msgpack.d.ts +7 -0
  278. package/dist/src/server/domains/encoding/encoding-msgpack.js +266 -0
  279. package/dist/src/server/domains/encoding/encoding-protobuf.d.ts +10 -0
  280. package/dist/src/server/domains/encoding/encoding-protobuf.js +221 -0
  281. package/dist/src/server/domains/encoding/{handlers.impl.core.runtime.format.d.ts → handlers.base.d.ts} +22 -2
  282. package/dist/src/server/domains/encoding/{handlers.impl.core.runtime.analysis.js → handlers.base.js} +193 -10
  283. package/dist/src/server/domains/encoding/handlers.d.ts +1 -1
  284. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.d.ts +2 -2
  285. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.js +26 -44
  286. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.shared.d.ts +4 -1
  287. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.shared.js +12 -2
  288. package/dist/src/server/domains/encoding/handlers.js +1 -1
  289. package/dist/src/server/domains/encoding/manifest.d.ts +54 -4
  290. package/dist/src/server/domains/encoding/manifest.js +19 -5
  291. package/dist/src/server/domains/graphql/definitions.js +30 -0
  292. package/dist/src/server/domains/graphql/handlers.base.d.ts +39 -0
  293. package/dist/src/server/domains/graphql/handlers.base.js +240 -0
  294. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.base.d.ts +1 -38
  295. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.base.js +1 -239
  296. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.callgraph.d.ts +1 -9
  297. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.callgraph.js +1 -207
  298. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.extract.d.ts +1 -9
  299. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.extract.js +1 -228
  300. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.introspection.d.ts +1 -9
  301. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.introspection.js +1 -106
  302. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.d.ts +27 -2
  303. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +645 -14
  304. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.script-replace.d.ts +1 -9
  305. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.script-replace.js +1 -74
  306. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.d.ts +1 -5
  307. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +1 -5
  308. package/dist/src/server/domains/graphql/manifest.js +24 -6
  309. package/dist/src/server/domains/hooks/ai-handlers.js +21 -19
  310. package/dist/src/server/domains/hooks/definitions.js +60 -3
  311. package/dist/src/server/domains/hooks/manifest.d.ts +56 -4
  312. package/dist/src/server/domains/hooks/manifest.js +2 -1
  313. package/dist/src/server/domains/hooks/preset-handlers.js +6 -5
  314. package/dist/src/server/domains/macro/definitions.d.ts +2 -0
  315. package/dist/src/server/domains/macro/definitions.js +45 -0
  316. package/dist/src/server/domains/macro/handlers.d.ts +9 -0
  317. package/dist/src/server/domains/macro/handlers.js +82 -0
  318. package/dist/src/server/domains/macro/index.d.ts +2 -0
  319. package/dist/src/server/domains/macro/index.js +2 -0
  320. package/dist/src/server/domains/macro/manifest.d.ts +57 -0
  321. package/dist/src/server/domains/macro/manifest.js +36 -0
  322. package/dist/src/server/domains/maintenance/definitions.js +96 -330
  323. package/dist/src/server/domains/maintenance/handlers.extensions.js +30 -14
  324. package/dist/src/server/domains/maintenance/handlers.js +2 -0
  325. package/dist/src/server/domains/maintenance/index.d.ts +1 -1
  326. package/dist/src/server/domains/maintenance/index.js +1 -1
  327. package/dist/src/server/domains/maintenance/manifest.d.ts +100 -4
  328. package/dist/src/server/domains/maintenance/manifest.js +60 -11
  329. package/dist/src/server/domains/memory/definitions.d.ts +2 -0
  330. package/dist/src/server/domains/memory/definitions.js +561 -0
  331. package/dist/src/server/domains/memory/handlers.impl.d.ts +271 -0
  332. package/dist/src/server/domains/memory/handlers.impl.js +497 -0
  333. package/dist/src/server/domains/memory/index.d.ts +2 -0
  334. package/dist/src/server/domains/memory/index.js +2 -0
  335. package/dist/src/server/domains/memory/manifest.d.ts +7 -0
  336. package/dist/src/server/domains/memory/manifest.js +159 -0
  337. package/dist/src/server/domains/native-bridge/definitions.js +42 -2
  338. package/dist/src/server/domains/native-bridge/index.js +35 -8
  339. package/dist/src/server/domains/network/definitions.js +182 -7
  340. package/dist/src/server/domains/network/handlers.base.d.ts +167 -0
  341. package/dist/src/server/domains/network/handlers.base.js +1008 -0
  342. package/dist/src/server/domains/network/handlers.impl.core.runtime.replay.d.ts +2 -2
  343. package/dist/src/server/domains/network/handlers.impl.core.runtime.replay.js +52 -28
  344. package/dist/src/server/domains/network/har.js +6 -3
  345. package/dist/src/server/domains/network/manifest.js +132 -22
  346. package/dist/src/server/domains/network/replay.js +5 -2
  347. package/dist/src/server/domains/platform/definitions.js +30 -0
  348. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +6 -17
  349. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +3 -12
  350. package/dist/src/server/domains/platform/handlers/electron-handlers.js +8 -22
  351. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +4 -6
  352. package/dist/src/server/domains/platform/handlers/platform-utils.js +3 -6
  353. package/dist/src/server/domains/platform/manifest.d.ts +54 -4
  354. package/dist/src/server/domains/platform/manifest.js +19 -5
  355. package/dist/src/server/domains/process/definitions.js +156 -0
  356. package/dist/src/server/domains/process/handlers.base.d.ts +150 -0
  357. package/dist/src/server/domains/process/handlers.base.js +1022 -0
  358. package/dist/src/server/domains/process/handlers.impl.core.runtime.base.d.ts +1 -87
  359. package/dist/src/server/domains/process/handlers.impl.core.runtime.base.js +1 -404
  360. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.d.ts +2 -2
  361. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +11 -4
  362. package/dist/src/server/domains/process/handlers.impl.core.runtime.memory.d.ts +1 -60
  363. package/dist/src/server/domains/process/handlers.impl.core.runtime.memory.js +1 -613
  364. package/dist/src/server/domains/process/manifest.js +92 -28
  365. package/dist/src/server/domains/sandbox/definitions.d.ts +2 -0
  366. package/dist/src/server/domains/sandbox/definitions.js +35 -0
  367. package/dist/src/server/domains/sandbox/handlers.d.ts +7 -0
  368. package/dist/src/server/domains/sandbox/handlers.js +66 -0
  369. package/dist/src/server/domains/sandbox/index.d.ts +2 -0
  370. package/dist/src/server/domains/sandbox/index.js +2 -0
  371. package/dist/src/server/domains/sandbox/manifest.d.ts +57 -0
  372. package/dist/src/server/domains/sandbox/manifest.js +31 -0
  373. package/dist/src/server/domains/shared/parse-args.d.ts +14 -0
  374. package/dist/src/server/domains/shared/parse-args.js +50 -0
  375. package/dist/src/server/domains/sourcemap/definitions.js +30 -0
  376. package/dist/src/server/domains/sourcemap/handlers.d.ts +1 -1
  377. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-extension.js +2 -6
  378. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  379. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +51 -32
  380. package/dist/src/server/domains/sourcemap/handlers.js +1 -1
  381. package/dist/src/server/domains/sourcemap/manifest.d.ts +54 -4
  382. package/dist/src/server/domains/sourcemap/manifest.js +29 -7
  383. package/dist/src/server/domains/streaming/definitions.js +41 -1
  384. package/dist/src/server/domains/streaming/handlers.d.ts +1 -1
  385. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.d.ts +3 -1
  386. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +20 -8
  387. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +7 -7
  388. package/dist/src/server/domains/streaming/handlers.js +1 -1
  389. package/dist/src/server/domains/streaming/manifest.d.ts +54 -4
  390. package/dist/src/server/domains/streaming/manifest.js +19 -5
  391. package/dist/src/server/domains/trace/definitions.d.ts +1 -0
  392. package/dist/src/server/domains/trace/definitions.js +1 -0
  393. package/dist/src/server/domains/trace/definitions.tools.d.ts +2 -0
  394. package/dist/src/server/domains/trace/definitions.tools.js +178 -0
  395. package/dist/src/server/domains/trace/handlers.d.ts +16 -0
  396. package/dist/src/server/domains/trace/handlers.js +300 -0
  397. package/dist/src/server/domains/trace/index.d.ts +1 -0
  398. package/dist/src/server/domains/trace/index.js +1 -0
  399. package/dist/src/server/domains/trace/manifest.d.ts +64 -0
  400. package/dist/src/server/domains/trace/manifest.js +48 -0
  401. package/dist/src/server/domains/transform/definitions.js +36 -0
  402. package/dist/src/server/domains/transform/handlers.d.ts +1 -1
  403. package/dist/src/server/domains/transform/handlers.impl.transform-base.d.ts +3 -1
  404. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +4 -1
  405. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +2 -1
  406. package/dist/src/server/domains/transform/handlers.impl.transform-ops.js +4 -6
  407. package/dist/src/server/domains/transform/handlers.js +1 -1
  408. package/dist/src/server/domains/transform/manifest.d.ts +54 -4
  409. package/dist/src/server/domains/transform/manifest.js +29 -7
  410. package/dist/src/server/domains/wasm/definitions.js +48 -0
  411. package/dist/src/server/domains/wasm/handlers.js +131 -56
  412. package/dist/src/server/domains/wasm/manifest.d.ts +54 -4
  413. package/dist/src/server/domains/wasm/manifest.js +14 -4
  414. package/dist/src/server/domains/workflow/definitions.js +62 -2
  415. package/dist/src/server/domains/workflow/handlers.d.ts +1 -1
  416. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +109 -52
  417. package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +83 -49
  418. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +18 -12
  419. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +32 -29
  420. package/dist/src/server/domains/workflow/handlers.js +1 -1
  421. package/dist/src/server/domains/workflow/manifest.d.ts +60 -4
  422. package/dist/src/server/domains/workflow/manifest.js +31 -5
  423. package/dist/src/server/extensions/ExtensionManager.integrity.js +2 -2
  424. package/dist/src/server/extensions/ExtensionManager.js +38 -7
  425. package/dist/src/server/extensions/plugin-config.d.ts +2 -1
  426. package/dist/src/server/extensions/plugin-config.js +11 -6
  427. package/dist/src/server/extensions/types.d.ts +2 -0
  428. package/dist/src/server/http/HttpMiddleware.js +4 -10
  429. package/dist/src/server/macros/MacroConfigLoader.d.ts +22 -0
  430. package/dist/src/server/macros/MacroConfigLoader.js +71 -0
  431. package/dist/src/server/macros/MacroRunner.d.ts +12 -0
  432. package/dist/src/server/macros/MacroRunner.js +118 -0
  433. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +2 -0
  434. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +25 -0
  435. package/dist/src/server/macros/builtins/index.d.ts +5 -0
  436. package/dist/src/server/macros/builtins/index.js +7 -0
  437. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +2 -0
  438. package/dist/src/server/macros/builtins/unpacker-flow.js +25 -0
  439. package/dist/src/server/macros/index.d.ts +3 -0
  440. package/dist/src/server/macros/index.js +3 -0
  441. package/dist/src/server/macros/types.d.ts +36 -0
  442. package/dist/src/server/observability/InstrumentationContract.js +4 -2
  443. package/dist/src/server/plugin-api.d.ts +1 -1
  444. package/dist/src/server/plugin-api.js +1 -0
  445. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  446. package/dist/src/server/plugins/PluginContract.js +1 -1
  447. package/dist/src/server/plugins/examples/minimal-plugin/manifest.js +2 -2
  448. package/dist/src/server/registry/contracts.d.ts +14 -2
  449. package/dist/src/server/registry/discovery.js +11 -3
  450. package/dist/src/server/registry/index.d.ts +1 -4
  451. package/dist/src/server/registry/index.js +17 -37
  452. package/dist/src/server/registry/types.d.ts +1 -1
  453. package/dist/src/server/registry/types.js +1 -1
  454. package/dist/src/server/sandbox/AutoCorrectionLoop.d.ts +6 -0
  455. package/dist/src/server/sandbox/AutoCorrectionLoop.js +17 -0
  456. package/dist/src/server/sandbox/DynamicToolRegistry.d.ts +17 -0
  457. package/dist/src/server/sandbox/DynamicToolRegistry.js +46 -0
  458. package/dist/src/server/sandbox/MCPBridge.d.ts +9 -0
  459. package/dist/src/server/sandbox/MCPBridge.js +43 -0
  460. package/dist/src/server/sandbox/QuickJSSandbox.d.ts +11 -0
  461. package/dist/src/server/sandbox/QuickJSSandbox.js +184 -0
  462. package/dist/src/server/sandbox/SandboxHelpers.d.ts +1 -0
  463. package/dist/src/server/sandbox/SandboxHelpers.js +251 -0
  464. package/dist/src/server/sandbox/SessionScratchpad.d.ts +9 -0
  465. package/dist/src/server/sandbox/SessionScratchpad.js +52 -0
  466. package/dist/src/server/sandbox/types.d.ts +14 -0
  467. package/dist/src/server/search/AffinityGraph.js +1 -1
  468. package/dist/src/server/search/BM25Scorer.d.ts +15 -2
  469. package/dist/src/server/search/BM25Scorer.js +63 -60
  470. package/dist/src/server/search/EmbeddingEngine.d.ts +11 -0
  471. package/dist/src/server/search/EmbeddingEngine.js +83 -0
  472. package/dist/src/server/search/EmbeddingWorker.js +51 -0
  473. package/dist/src/server/search/IntentBoost.d.ts +3 -3
  474. package/dist/src/server/search/IntentBoost.js +10 -54
  475. package/dist/src/server/search/SynonymExpander.d.ts +7 -0
  476. package/dist/src/server/search/SynonymExpander.js +97 -0
  477. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +17 -3
  478. package/dist/src/server/search/ToolSearchEngineImpl.js +277 -28
  479. package/dist/src/server/search/TrigramIndex.d.ts +7 -0
  480. package/dist/src/server/search/TrigramIndex.js +40 -0
  481. package/dist/src/server/workflows/WorkflowContract.js +28 -7
  482. package/dist/src/server/workflows/WorkflowEngine.js +1 -1
  483. package/dist/src/server/workflows/examples/batch-register.workflow.js +23 -14
  484. package/dist/src/types/config.d.ts +31 -0
  485. package/dist/src/types/index.d.ts +1 -1
  486. package/dist/src/utils/DetailedDataManager.js +3 -0
  487. package/dist/src/utils/artifactRetention.js +23 -5
  488. package/dist/src/utils/artifacts.js +1 -3
  489. package/dist/src/utils/cliFastPath.js +7 -2
  490. package/dist/src/utils/concurrency.js +4 -2
  491. package/dist/src/utils/config.js +173 -10
  492. package/dist/src/utils/environmentDoctor.js +5 -3
  493. package/dist/src/utils/parallel.js +15 -5
  494. package/package.json +25 -5
  495. package/dist/src/server/MCPServer.boost.d.ts +0 -8
  496. package/dist/src/server/MCPServer.boost.js +0 -334
  497. package/dist/src/server/MCPServer.search.dynamicBoost.d.ts +0 -36
  498. package/dist/src/server/MCPServer.search.dynamicBoost.js +0 -163
  499. package/dist/src/server/domains/encoding/handlers.impl.core.d.ts +0 -1
  500. package/dist/src/server/domains/encoding/handlers.impl.core.js +0 -1
  501. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.analysis.d.ts +0 -24
  502. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.format.js +0 -191
  503. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.msgpack.d.ts +0 -10
  504. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.msgpack.js +0 -268
  505. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.parsers.d.ts +0 -1
  506. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.parsers.js +0 -1
  507. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.protobuf.d.ts +0 -13
  508. package/dist/src/server/domains/encoding/handlers.impl.core.runtime.protobuf.js +0 -204
  509. package/dist/src/server/domains/encoding/handlers.impl.d.ts +0 -1
  510. package/dist/src/server/domains/encoding/handlers.impl.js +0 -1
  511. package/dist/src/server/domains/network/handlers.impl.core.runtime.base.d.ts +0 -46
  512. package/dist/src/server/domains/network/handlers.impl.core.runtime.base.js +0 -186
  513. package/dist/src/server/domains/network/handlers.impl.core.runtime.console.d.ts +0 -46
  514. package/dist/src/server/domains/network/handlers.impl.core.runtime.console.js +0 -122
  515. package/dist/src/server/domains/network/handlers.impl.core.runtime.performance.d.ts +0 -63
  516. package/dist/src/server/domains/network/handlers.impl.core.runtime.performance.js +0 -264
  517. package/dist/src/server/domains/network/handlers.impl.core.runtime.requests.d.ts +0 -21
  518. package/dist/src/server/domains/network/handlers.impl.core.runtime.requests.js +0 -417
  519. package/dist/src/server/domains/sourcemap/handlers.impl.d.ts +0 -1
  520. package/dist/src/server/domains/sourcemap/handlers.impl.js +0 -1
  521. package/dist/src/server/domains/streaming/handlers.impl.d.ts +0 -1
  522. package/dist/src/server/domains/streaming/handlers.impl.js +0 -1
  523. package/dist/src/server/domains/transform/handlers.impl.d.ts +0 -1
  524. package/dist/src/server/domains/transform/handlers.impl.js +0 -1
  525. package/dist/src/server/domains/workflow/handlers.impl.d.ts +0 -1
  526. package/dist/src/server/domains/workflow/handlers.impl.js +0 -1
  527. package/dist/tests/constants.test.js +0 -104
  528. package/dist/tests/contracts/contracts.test.js +0 -125
  529. package/dist/tests/e2e/context-capture.d.ts +0 -2
  530. package/dist/tests/e2e/context-capture.js +0 -55
  531. package/dist/tests/e2e/full-tool-e2e.test.js +0 -108
  532. package/dist/tests/e2e/helpers/mcp-client.d.ts +0 -18
  533. package/dist/tests/e2e/helpers/mcp-client.js +0 -120
  534. package/dist/tests/e2e/helpers/schema-builder.d.ts +0 -6
  535. package/dist/tests/e2e/helpers/schema-builder.js +0 -108
  536. package/dist/tests/e2e/helpers/types.d.ts +0 -30
  537. package/dist/tests/e2e/overrides.d.ts +0 -2
  538. package/dist/tests/e2e/overrides.js +0 -149
  539. package/dist/tests/e2e/phases/analysis-phases.d.ts +0 -2
  540. package/dist/tests/e2e/phases/analysis-phases.js +0 -30
  541. package/dist/tests/e2e/phases/browser-phases.d.ts +0 -2
  542. package/dist/tests/e2e/phases/browser-phases.js +0 -59
  543. package/dist/tests/e2e/phases/debugger-phases.d.ts +0 -2
  544. package/dist/tests/e2e/phases/debugger-phases.js +0 -44
  545. package/dist/tests/e2e/phases/index.d.ts +0 -2
  546. package/dist/tests/e2e/phases/index.js +0 -15
  547. package/dist/tests/e2e/phases/maintenance-phases.d.ts +0 -3
  548. package/dist/tests/e2e/phases/maintenance-phases.js +0 -19
  549. package/dist/tests/e2e/phases/monitor-phases.d.ts +0 -2
  550. package/dist/tests/e2e/phases/monitor-phases.js +0 -52
  551. package/dist/tests/e2e/phases/system-phases.d.ts +0 -2
  552. package/dist/tests/e2e/phases/system-phases.js +0 -47
  553. package/dist/tests/e2e/skip-list.d.ts +0 -5
  554. package/dist/tests/e2e/skip-list.js +0 -17
  555. package/dist/tests/modules/analyzer/AISummarizer.test.js +0 -133
  556. package/dist/tests/modules/analyzer/CodeAnalyzer.test.js +0 -125
  557. package/dist/tests/modules/analyzer/IntelligentAnalyzer.test.js +0 -177
  558. package/dist/tests/modules/analyzer/PatternDetector.test.js +0 -149
  559. package/dist/tests/modules/analyzer/QualityAnalyzer.test.js +0 -85
  560. package/dist/tests/modules/analyzer/SecurityCodeAnalyzer.test.js +0 -82
  561. package/dist/tests/modules/browser/BrowserDiscovery.test.js +0 -72
  562. package/dist/tests/modules/browser/BrowserModeManager.test.js +0 -213
  563. package/dist/tests/modules/browser/CamoufoxBrowserManager.test.js +0 -74
  564. package/dist/tests/modules/browser/UnifiedBrowserManager.test.js +0 -190
  565. package/dist/tests/modules/captcha/AICaptchaDetector.test.js +0 -402
  566. package/dist/tests/modules/captcha/CaptchaDetector.test.d.ts +0 -1
  567. package/dist/tests/modules/captcha/CaptchaDetector.test.js +0 -218
  568. package/dist/tests/modules/captcha/CaptchaPolicy.test.d.ts +0 -1
  569. package/dist/tests/modules/captcha/CaptchaPolicy.test.js +0 -52
  570. package/dist/tests/modules/collector/CodeCache.test.d.ts +0 -1
  571. package/dist/tests/modules/collector/CodeCache.test.js +0 -86
  572. package/dist/tests/modules/collector/CodeCollector.test.d.ts +0 -1
  573. package/dist/tests/modules/collector/CodeCollector.test.js +0 -128
  574. package/dist/tests/modules/collector/CodeCompressor.test.d.ts +0 -1
  575. package/dist/tests/modules/collector/CodeCompressor.test.js +0 -69
  576. package/dist/tests/modules/collector/DOMInspector.test.d.ts +0 -1
  577. package/dist/tests/modules/collector/DOMInspector.test.js +0 -142
  578. package/dist/tests/modules/collector/PageController.test.d.ts +0 -1
  579. package/dist/tests/modules/collector/PageController.test.js +0 -73
  580. package/dist/tests/modules/collector/PageScriptCollectors.test.d.ts +0 -1
  581. package/dist/tests/modules/collector/PageScriptCollectors.test.js +0 -87
  582. package/dist/tests/modules/collector/SmartCodeCollector.test.d.ts +0 -1
  583. package/dist/tests/modules/collector/SmartCodeCollector.test.js +0 -93
  584. package/dist/tests/modules/collector/StreamingCollector.test.d.ts +0 -1
  585. package/dist/tests/modules/collector/StreamingCollector.test.js +0 -64
  586. package/dist/tests/modules/crypto/CryptoDetector.test.d.ts +0 -1
  587. package/dist/tests/modules/crypto/CryptoDetector.test.js +0 -61
  588. package/dist/tests/modules/crypto/CryptoRules.test.d.ts +0 -1
  589. package/dist/tests/modules/crypto/CryptoRules.test.js +0 -57
  590. package/dist/tests/modules/debugger/BlackboxManager.test.d.ts +0 -1
  591. package/dist/tests/modules/debugger/BlackboxManager.test.js +0 -58
  592. package/dist/tests/modules/debugger/DebuggerManager.test.d.ts +0 -1
  593. package/dist/tests/modules/debugger/DebuggerManager.test.js +0 -120
  594. package/dist/tests/modules/debugger/DebuggerSessionManager.test.d.ts +0 -1
  595. package/dist/tests/modules/debugger/DebuggerSessionManager.test.js +0 -130
  596. package/dist/tests/modules/debugger/EventBreakpointManager.test.d.ts +0 -1
  597. package/dist/tests/modules/debugger/EventBreakpointManager.test.js +0 -53
  598. package/dist/tests/modules/debugger/RuntimeInspector.test.d.ts +0 -1
  599. package/dist/tests/modules/debugger/RuntimeInspector.test.js +0 -98
  600. package/dist/tests/modules/debugger/ScriptManager.test.d.ts +0 -1
  601. package/dist/tests/modules/debugger/ScriptManager.test.js +0 -168
  602. package/dist/tests/modules/debugger/WatchExpressionManager.test.d.ts +0 -1
  603. package/dist/tests/modules/debugger/WatchExpressionManager.test.js +0 -61
  604. package/dist/tests/modules/debugger/XHRBreakpointManager.test.d.ts +0 -1
  605. package/dist/tests/modules/debugger/XHRBreakpointManager.test.js +0 -52
  606. package/dist/tests/modules/deobfuscator/ASTOptimizer.test.d.ts +0 -1
  607. package/dist/tests/modules/deobfuscator/ASTOptimizer.test.js +0 -49
  608. package/dist/tests/modules/deobfuscator/AdvancedDeobfuscator.test.d.ts +0 -1
  609. package/dist/tests/modules/deobfuscator/AdvancedDeobfuscator.test.js +0 -117
  610. package/dist/tests/modules/deobfuscator/Deobfuscator.test.d.ts +0 -1
  611. package/dist/tests/modules/deobfuscator/Deobfuscator.test.js +0 -134
  612. package/dist/tests/modules/deobfuscator/JSVMPDeobfuscator.test.d.ts +0 -1
  613. package/dist/tests/modules/deobfuscator/JSVMPDeobfuscator.test.js +0 -109
  614. package/dist/tests/modules/deobfuscator/JScramblerDeobfuscator.test.d.ts +0 -1
  615. package/dist/tests/modules/deobfuscator/JScramblerDeobfuscator.test.js +0 -74
  616. package/dist/tests/modules/deobfuscator/PackerDeobfuscator.test.d.ts +0 -1
  617. package/dist/tests/modules/deobfuscator/PackerDeobfuscator.test.js +0 -81
  618. package/dist/tests/modules/deobfuscator/VMDeobfuscator.test.d.ts +0 -1
  619. package/dist/tests/modules/deobfuscator/VMDeobfuscator.test.js +0 -78
  620. package/dist/tests/modules/deobfuscator/webcrack.test.d.ts +0 -1
  621. package/dist/tests/modules/deobfuscator/webcrack.test.js +0 -111
  622. package/dist/tests/modules/detector/ObfuscationDetector.test.d.ts +0 -1
  623. package/dist/tests/modules/detector/ObfuscationDetector.test.js +0 -69
  624. package/dist/tests/modules/emulator/AIEnvironmentAnalyzer.test.d.ts +0 -1
  625. package/dist/tests/modules/emulator/AIEnvironmentAnalyzer.test.js +0 -107
  626. package/dist/tests/modules/emulator/BrowserAPIDatabase.test.d.ts +0 -1
  627. package/dist/tests/modules/emulator/BrowserAPIDatabase.test.js +0 -48
  628. package/dist/tests/modules/emulator/BrowserEnvironmentRules.test.d.ts +0 -1
  629. package/dist/tests/modules/emulator/BrowserEnvironmentRules.test.js +0 -50
  630. package/dist/tests/modules/emulator/EmulatorCodeGen.test.d.ts +0 -1
  631. package/dist/tests/modules/emulator/EmulatorCodeGen.test.js +0 -51
  632. package/dist/tests/modules/emulator/EnvironmentEmulator.test.d.ts +0 -1
  633. package/dist/tests/modules/emulator/EnvironmentEmulator.test.js +0 -115
  634. package/dist/tests/modules/external/ExternalToolRunner.test.d.ts +0 -1
  635. package/dist/tests/modules/external/ExternalToolRunner.test.js +0 -159
  636. package/dist/tests/modules/external/ToolProbe.test.d.ts +0 -1
  637. package/dist/tests/modules/external/ToolProbe.test.js +0 -80
  638. package/dist/tests/modules/external/ToolRegistry.test.d.ts +0 -1
  639. package/dist/tests/modules/external/ToolRegistry.test.js +0 -71
  640. package/dist/tests/modules/hook/AIHookGenerator.test.d.ts +0 -1
  641. package/dist/tests/modules/hook/AIHookGenerator.test.js +0 -104
  642. package/dist/tests/modules/hook/HookGenerator.test.d.ts +0 -1
  643. package/dist/tests/modules/hook/HookGenerator.test.js +0 -38
  644. package/dist/tests/modules/hook/HookManager.test.d.ts +0 -1
  645. package/dist/tests/modules/hook/HookManager.test.js +0 -114
  646. package/dist/tests/modules/monitor/ConsoleMonitor.test.d.ts +0 -1
  647. package/dist/tests/modules/monitor/ConsoleMonitor.test.js +0 -291
  648. package/dist/tests/modules/monitor/NetworkMonitor.test.d.ts +0 -1
  649. package/dist/tests/modules/monitor/NetworkMonitor.test.js +0 -301
  650. package/dist/tests/modules/monitor/PerformanceMonitor.test.d.ts +0 -1
  651. package/dist/tests/modules/monitor/PerformanceMonitor.test.js +0 -204
  652. package/dist/tests/modules/monitor/PlaywrightNetworkMonitor.test.d.ts +0 -1
  653. package/dist/tests/modules/monitor/PlaywrightNetworkMonitor.test.js +0 -138
  654. package/dist/tests/modules/process/BaseMemoryManager.test.d.ts +0 -1
  655. package/dist/tests/modules/process/BaseMemoryManager.test.js +0 -81
  656. package/dist/tests/modules/process/LinuxProcessManager.test.d.ts +0 -1
  657. package/dist/tests/modules/process/LinuxProcessManager.test.js +0 -136
  658. package/dist/tests/modules/process/MacProcessManager.test.d.ts +0 -1
  659. package/dist/tests/modules/process/MacProcessManager.test.js +0 -144
  660. package/dist/tests/modules/process/MemoryManager.test.d.ts +0 -1
  661. package/dist/tests/modules/process/MemoryManager.test.js +0 -117
  662. package/dist/tests/modules/process/ProcessManager.test.d.ts +0 -1
  663. package/dist/tests/modules/process/ProcessManager.test.js +0 -159
  664. package/dist/tests/modules/process/memory/availability.test.d.ts +0 -1
  665. package/dist/tests/modules/process/memory/availability.test.js +0 -77
  666. package/dist/tests/modules/process/memory/injector.test.d.ts +0 -1
  667. package/dist/tests/modules/process/memory/injector.test.js +0 -62
  668. package/dist/tests/modules/process/memory/monitor.test.d.ts +0 -1
  669. package/dist/tests/modules/process/memory/monitor.test.js +0 -54
  670. package/dist/tests/modules/process/memory/nativeMemoryManager.test.d.ts +0 -1
  671. package/dist/tests/modules/process/memory/nativeMemoryManager.test.js +0 -127
  672. package/dist/tests/modules/process/memory/reader.test.d.ts +0 -1
  673. package/dist/tests/modules/process/memory/reader.test.js +0 -86
  674. package/dist/tests/modules/process/memory/regions.test.d.ts +0 -1
  675. package/dist/tests/modules/process/memory/regions.test.js +0 -81
  676. package/dist/tests/modules/process/memory/scanner.test.d.ts +0 -1
  677. package/dist/tests/modules/process/memory/scanner.test.js +0 -155
  678. package/dist/tests/modules/process/memory/writer.test.d.ts +0 -1
  679. package/dist/tests/modules/process/memory/writer.test.js +0 -81
  680. package/dist/tests/modules/process/memoryUtils.test.d.ts +0 -1
  681. package/dist/tests/modules/process/memoryUtils.test.js +0 -101
  682. package/dist/tests/modules/security/ExecutionSandbox.test.d.ts +0 -1
  683. package/dist/tests/modules/security/ExecutionSandbox.test.js +0 -122
  684. package/dist/tests/modules/security/RedactionService.test.d.ts +0 -1
  685. package/dist/tests/modules/security/RedactionService.test.js +0 -56
  686. package/dist/tests/modules/stealth/StealthScripts.test.d.ts +0 -1
  687. package/dist/tests/modules/stealth/StealthScripts.test.js +0 -67
  688. package/dist/tests/modules/symbolic/JSVMPSymbolicExecutor.test.d.ts +0 -1
  689. package/dist/tests/modules/symbolic/JSVMPSymbolicExecutor.test.js +0 -59
  690. package/dist/tests/modules/symbolic/SymbolicExecutor.test.d.ts +0 -1
  691. package/dist/tests/modules/symbolic/SymbolicExecutor.test.js +0 -45
  692. package/dist/tests/packages/extension-sdk/ExtensionBuilder.test.d.ts +0 -1
  693. package/dist/tests/packages/extension-sdk/ExtensionBuilder.test.js +0 -205
  694. package/dist/tests/server/ExtensionManagementHandlers.test.d.ts +0 -1
  695. package/dist/tests/server/ExtensionManagementHandlers.test.js +0 -238
  696. package/dist/tests/server/ExtensionManager.test.d.ts +0 -1
  697. package/dist/tests/server/ExtensionManager.test.js +0 -133
  698. package/dist/tests/server/MCPServer.boost.test.d.ts +0 -1
  699. package/dist/tests/server/MCPServer.boost.test.js +0 -543
  700. package/dist/tests/server/MCPServer.schema.test.d.ts +0 -1
  701. package/dist/tests/server/MCPServer.schema.test.js +0 -124
  702. package/dist/tests/server/MCPServer.search.test.d.ts +0 -1
  703. package/dist/tests/server/MCPServer.search.test.js +0 -723
  704. package/dist/tests/server/MCPServer.test.d.ts +0 -1
  705. package/dist/tests/server/MCPServer.test.js +0 -218
  706. package/dist/tests/server/ToolCallContextGuard.test.d.ts +0 -1
  707. package/dist/tests/server/ToolCallContextGuard.test.js +0 -114
  708. package/dist/tests/server/ToolCatalog.test.d.ts +0 -1
  709. package/dist/tests/server/ToolCatalog.test.js +0 -154
  710. package/dist/tests/server/ToolCatalog.tier.test.d.ts +0 -1
  711. package/dist/tests/server/ToolCatalog.tier.test.js +0 -97
  712. package/dist/tests/server/ToolExecutionRouter.test.d.ts +0 -1
  713. package/dist/tests/server/ToolExecutionRouter.test.js +0 -44
  714. package/dist/tests/server/ToolHandlerMap.test.d.ts +0 -1
  715. package/dist/tests/server/ToolHandlerMap.test.js +0 -75
  716. package/dist/tests/server/ToolSearch.test.d.ts +0 -1
  717. package/dist/tests/server/ToolSearch.test.js +0 -329
  718. package/dist/tests/server/discovery.test.d.ts +0 -1
  719. package/dist/tests/server/discovery.test.js +0 -64
  720. package/dist/tests/server/domains/analysis/handlers.test.d.ts +0 -1
  721. package/dist/tests/server/domains/analysis/handlers.test.js +0 -184
  722. package/dist/tests/server/domains/antidebug/handlers.test.d.ts +0 -1
  723. package/dist/tests/server/domains/antidebug/handlers.test.js +0 -66
  724. package/dist/tests/server/domains/browser/behavior-tools.test.d.ts +0 -1
  725. package/dist/tests/server/domains/browser/behavior-tools.test.js +0 -30
  726. package/dist/tests/server/domains/browser/browser-control.test.d.ts +0 -1
  727. package/dist/tests/server/domains/browser/browser-control.test.js +0 -74
  728. package/dist/tests/server/domains/browser/captcha-solver.test.d.ts +0 -1
  729. package/dist/tests/server/domains/browser/captcha-solver.test.js +0 -153
  730. package/dist/tests/server/domains/browser/handlers.test.d.ts +0 -1
  731. package/dist/tests/server/domains/browser/handlers.test.js +0 -287
  732. package/dist/tests/server/domains/browser/human-behavior.test.d.ts +0 -1
  733. package/dist/tests/server/domains/browser/human-behavior.test.js +0 -155
  734. package/dist/tests/server/domains/browser/page-evaluation.test.d.ts +0 -1
  735. package/dist/tests/server/domains/browser/page-evaluation.test.js +0 -38
  736. package/dist/tests/server/domains/browser/page-interaction.test.d.ts +0 -1
  737. package/dist/tests/server/domains/browser/page-interaction.test.js +0 -79
  738. package/dist/tests/server/domains/browser/page-navigation.test.d.ts +0 -1
  739. package/dist/tests/server/domains/browser/page-navigation.test.js +0 -55
  740. package/dist/tests/server/domains/browser/security-tools.test.d.ts +0 -1
  741. package/dist/tests/server/domains/browser/security-tools.test.js +0 -25
  742. package/dist/tests/server/domains/debugger/handlers.test.d.ts +0 -1
  743. package/dist/tests/server/domains/debugger/handlers.test.js +0 -181
  744. package/dist/tests/server/domains/encoding/analysis.test.d.ts +0 -1
  745. package/dist/tests/server/domains/encoding/analysis.test.js +0 -318
  746. package/dist/tests/server/domains/encoding/format.test.d.ts +0 -1
  747. package/dist/tests/server/domains/encoding/format.test.js +0 -433
  748. package/dist/tests/server/domains/encoding/handlers.test.d.ts +0 -1
  749. package/dist/tests/server/domains/encoding/handlers.test.js +0 -56
  750. package/dist/tests/server/domains/encoding/msgpack.test.d.ts +0 -1
  751. package/dist/tests/server/domains/encoding/msgpack.test.js +0 -420
  752. package/dist/tests/server/domains/encoding/protobuf.test.d.ts +0 -1
  753. package/dist/tests/server/domains/encoding/protobuf.test.js +0 -448
  754. package/dist/tests/server/domains/graphql/handlers.test.d.ts +0 -1
  755. package/dist/tests/server/domains/graphql/handlers.test.js +0 -87
  756. package/dist/tests/server/domains/hooks/preset-handlers.test.d.ts +0 -1
  757. package/dist/tests/server/domains/hooks/preset-handlers.test.js +0 -66
  758. package/dist/tests/server/domains/maintenance/handlers.test.d.ts +0 -1
  759. package/dist/tests/server/domains/maintenance/handlers.test.js +0 -79
  760. package/dist/tests/server/domains/native-bridge/handlers.test.d.ts +0 -1
  761. package/dist/tests/server/domains/native-bridge/handlers.test.js +0 -127
  762. package/dist/tests/server/domains/network/handlers.test.d.ts +0 -1
  763. package/dist/tests/server/domains/network/handlers.test.js +0 -102
  764. package/dist/tests/server/domains/network/replay.test.d.ts +0 -1
  765. package/dist/tests/server/domains/network/replay.test.js +0 -51
  766. package/dist/tests/server/domains/platform/handlers.test.d.ts +0 -1
  767. package/dist/tests/server/domains/platform/handlers.test.js +0 -108
  768. package/dist/tests/server/domains/process/handlers.inject.test.d.ts +0 -1
  769. package/dist/tests/server/domains/process/handlers.inject.test.js +0 -437
  770. package/dist/tests/server/domains/process/handlers.memory.test.d.ts +0 -1
  771. package/dist/tests/server/domains/process/handlers.memory.test.js +0 -184
  772. package/dist/tests/server/domains/process/handlers.test.d.ts +0 -1
  773. package/dist/tests/server/domains/process/handlers.test.js +0 -103
  774. package/dist/tests/server/domains/shared/response.test.d.ts +0 -1
  775. package/dist/tests/server/domains/shared/response.test.js +0 -38
  776. package/dist/tests/server/domains/sourcemap/common.test.d.ts +0 -1
  777. package/dist/tests/server/domains/sourcemap/common.test.js +0 -240
  778. package/dist/tests/server/domains/sourcemap/handlers.test.d.ts +0 -1
  779. package/dist/tests/server/domains/sourcemap/handlers.test.js +0 -91
  780. package/dist/tests/server/domains/sourcemap/parse-base.test.d.ts +0 -1
  781. package/dist/tests/server/domains/sourcemap/parse-base.test.js +0 -414
  782. package/dist/tests/server/domains/streaming/handlers.test.d.ts +0 -1
  783. package/dist/tests/server/domains/streaming/handlers.test.js +0 -106
  784. package/dist/tests/server/domains/transform/handlers.test.d.ts +0 -1
  785. package/dist/tests/server/domains/transform/handlers.test.js +0 -64
  786. package/dist/tests/server/domains/transform/transform-base.test.d.ts +0 -1
  787. package/dist/tests/server/domains/transform/transform-base.test.js +0 -176
  788. package/dist/tests/server/domains/transform/transform-ops.test.d.ts +0 -1
  789. package/dist/tests/server/domains/transform/transform-ops.test.js +0 -242
  790. package/dist/tests/server/domains/wasm/handlers.test.d.ts +0 -1
  791. package/dist/tests/server/domains/wasm/handlers.test.js +0 -107
  792. package/dist/tests/server/domains/workflow/batch-register.test.d.ts +0 -1
  793. package/dist/tests/server/domains/workflow/batch-register.test.js +0 -158
  794. package/dist/tests/server/domains/workflow/handlers.test.d.ts +0 -1
  795. package/dist/tests/server/domains/workflow/handlers.test.js +0 -258
  796. package/dist/tests/server/http/HttpMiddleware.test.d.ts +0 -1
  797. package/dist/tests/server/http/HttpMiddleware.test.js +0 -152
  798. package/dist/tests/services/LLMService.test.d.ts +0 -1
  799. package/dist/tests/services/LLMService.test.js +0 -274
  800. package/dist/tests/services/prompts.test.d.ts +0 -1
  801. package/dist/tests/services/prompts.test.js +0 -408
  802. package/dist/tests/setup.d.ts +0 -1
  803. package/dist/tests/setup.js +0 -12
  804. package/dist/tests/utils/AdaptiveDataSerializer.test.d.ts +0 -1
  805. package/dist/tests/utils/AdaptiveDataSerializer.test.js +0 -67
  806. package/dist/tests/utils/CacheAdapters.test.d.ts +0 -1
  807. package/dist/tests/utils/CacheAdapters.test.js +0 -91
  808. package/dist/tests/utils/DetailedDataManager.test.d.ts +0 -1
  809. package/dist/tests/utils/DetailedDataManager.test.js +0 -67
  810. package/dist/tests/utils/RingBuffer.test.d.ts +0 -1
  811. package/dist/tests/utils/RingBuffer.test.js +0 -50
  812. package/dist/tests/utils/TokenBudgetManager.test.d.ts +0 -1
  813. package/dist/tests/utils/TokenBudgetManager.test.js +0 -75
  814. package/dist/tests/utils/UnifiedCacheManager.test.d.ts +0 -1
  815. package/dist/tests/utils/UnifiedCacheManager.test.js +0 -114
  816. package/dist/tests/utils/WorkerPool.test.d.ts +0 -1
  817. package/dist/tests/utils/WorkerPool.test.js +0 -143
  818. package/dist/tests/utils/artifactRetention.test.d.ts +0 -1
  819. package/dist/tests/utils/artifactRetention.test.js +0 -50
  820. package/dist/tests/utils/artifacts.test.d.ts +0 -1
  821. package/dist/tests/utils/artifacts.test.js +0 -76
  822. package/dist/tests/utils/browserExecutable.test.d.ts +0 -1
  823. package/dist/tests/utils/browserExecutable.test.js +0 -69
  824. package/dist/tests/utils/cache.test.d.ts +0 -1
  825. package/dist/tests/utils/cache.test.js +0 -93
  826. package/dist/tests/utils/cliFastPath.test.d.ts +0 -1
  827. package/dist/tests/utils/cliFastPath.test.js +0 -30
  828. package/dist/tests/utils/concurrency.test.d.ts +0 -1
  829. package/dist/tests/utils/concurrency.test.js +0 -55
  830. package/dist/tests/utils/config.extended.test.d.ts +0 -1
  831. package/dist/tests/utils/config.extended.test.js +0 -46
  832. package/dist/tests/utils/config.noise.test.d.ts +0 -1
  833. package/dist/tests/utils/config.noise.test.js +0 -21
  834. package/dist/tests/utils/config.test.d.ts +0 -1
  835. package/dist/tests/utils/config.test.js +0 -71
  836. package/dist/tests/utils/environmentDoctor.test.d.ts +0 -1
  837. package/dist/tests/utils/environmentDoctor.test.js +0 -234
  838. package/dist/tests/utils/logger.test.d.ts +0 -1
  839. package/dist/tests/utils/logger.test.js +0 -66
  840. package/dist/tests/utils/outputPaths.test.d.ts +0 -1
  841. package/dist/tests/utils/outputPaths.test.js +0 -51
  842. package/dist/tests/utils/parallel.test.d.ts +0 -1
  843. package/dist/tests/utils/parallel.test.js +0 -74
  844. /package/dist/{tests/constants.test.d.ts → src/modules/stealth/FingerprintManager.types.js} +0 -0
  845. /package/dist/{tests/contracts/contracts.test.d.ts → src/modules/trace/TraceDB.types.js} +0 -0
  846. /package/dist/{tests/e2e/full-tool-e2e.test.d.ts → src/modules/trace/TraceRecorder.types.js} +0 -0
  847. /package/dist/{tests/e2e/helpers/types.js → src/native/AntiCheatDetector.types.js} +0 -0
  848. /package/dist/{tests/modules/analyzer/AISummarizer.test.d.ts → src/native/CodeInjector.types.js} +0 -0
  849. /package/dist/{tests/modules/analyzer/CodeAnalyzer.test.d.ts → src/native/HardwareBreakpoint.types.js} +0 -0
  850. /package/dist/{tests/modules/analyzer/IntelligentAnalyzer.test.d.ts → src/native/MemoryController.types.js} +0 -0
  851. /package/dist/{tests/modules/analyzer/PatternDetector.test.d.ts → src/native/PointerChainEngine.types.js} +0 -0
  852. /package/dist/{tests/modules/analyzer/QualityAnalyzer.test.d.ts → src/native/Speedhack.types.js} +0 -0
  853. /package/dist/{tests/modules/analyzer/SecurityCodeAnalyzer.test.d.ts → src/native/StructureAnalyzer.types.js} +0 -0
  854. /package/dist/{tests/modules/browser/BrowserDiscovery.test.d.ts → src/native/platform/PlatformMemoryAPI.js} +0 -0
  855. /package/dist/{tests/modules/browser/BrowserModeManager.test.d.ts → src/server/activation/types.js} +0 -0
  856. /package/dist/{tests/modules/browser/CamoufoxBrowserManager.test.d.ts → src/server/macros/types.js} +0 -0
  857. /package/dist/{tests/modules/browser/UnifiedBrowserManager.test.d.ts → src/server/sandbox/types.js} +0 -0
  858. /package/dist/{tests/modules/captcha/AICaptchaDetector.test.d.ts → src/server/search/EmbeddingWorker.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { existsSync } from 'fs';
2
- import puppeteer from 'rebrowser-puppeteer-core';
2
+ import puppeteer, { Browser, Page } from 'rebrowser-puppeteer-core';
3
3
  import { logger } from '../../utils/logger.js';
4
4
  import { findBrowserExecutable } from '../../utils/browserExecutable.js';
5
5
  import { CaptchaDetector } from '../captcha/CaptchaDetector.js';
@@ -13,6 +13,8 @@ export class BrowserModeManager {
13
13
  config;
14
14
  captchaDetector;
15
15
  launchOptions;
16
+ chromePid = null;
17
+ static BROWSER_CLOSE_TIMEOUT_MS = 5000;
16
18
  sessionData = {};
17
19
  constructor(config = {}, launchOptions = {}) {
18
20
  this.config = {
@@ -68,13 +70,19 @@ export class BrowserModeManager {
68
70
  options.executablePath = executablePath;
69
71
  }
70
72
  const browser = await puppeteer.launch(options);
73
+ const pid = browser.process()?.pid ?? null;
71
74
  if (this.isClosing) {
72
- await browser.close().catch(error => {
75
+ await browser.close().catch((error) => {
73
76
  logger.warn('Failed to close browser launched during shutdown', error);
77
+ BrowserModeManager.forceKillPid(pid);
74
78
  });
75
79
  throw new Error('Browser launch aborted because close was requested');
76
80
  }
77
81
  this.browser = browser;
82
+ this.chromePid = pid;
83
+ if (pid) {
84
+ logger.debug(`Chrome child process PID: ${pid}`);
85
+ }
78
86
  logger.info('Browser launched successfully');
79
87
  return this.browser;
80
88
  }
@@ -107,11 +115,22 @@ export class BrowserModeManager {
107
115
  async finalizeClose() {
108
116
  try {
109
117
  const browser = this.browser;
118
+ const pid = this.chromePid;
110
119
  this.browser = null;
111
120
  this.currentPage = null;
121
+ this.chromePid = null;
112
122
  if (browser) {
113
- await browser.close();
114
- logger.info('Browser closed');
123
+ try {
124
+ await Promise.race([
125
+ browser.close(),
126
+ new Promise((_, reject) => setTimeout(() => reject(new Error('browser.close() timed out')), BrowserModeManager.BROWSER_CLOSE_TIMEOUT_MS)),
127
+ ]);
128
+ logger.info('Browser closed');
129
+ }
130
+ catch (error) {
131
+ logger.warn('browser.close() failed or timed out, attempting force-kill:', error);
132
+ BrowserModeManager.forceKillPid(pid);
133
+ }
115
134
  }
116
135
  }
117
136
  finally {
@@ -165,7 +184,15 @@ export class BrowserModeManager {
165
184
  async switchToHeaded(currentPage, url, captchaInfo) {
166
185
  logger.info('Switching browser to headed mode for manual CAPTCHA solving');
167
186
  await this.saveSessionData(currentPage);
168
- await this.browser?.close();
187
+ const oldPid = this.chromePid;
188
+ try {
189
+ await this.browser?.close();
190
+ }
191
+ catch (error) {
192
+ logger.warn('Failed to close old browser during mode switch:', error);
193
+ BrowserModeManager.forceKillPid(oldPid);
194
+ }
195
+ this.chromePid = null;
169
196
  this.isHeadless = false;
170
197
  await this.launch();
171
198
  const newPage = await this.newPage();
@@ -262,7 +289,7 @@ export class BrowserModeManager {
262
289
  restoreStorage(sessionStorage, data.session);
263
290
  }, {
264
291
  local: this.sessionData.localStorage,
265
- session: this.sessionData.sessionStorage
292
+ session: this.sessionData.sessionStorage,
266
293
  });
267
294
  logger.info('Session storage data restored');
268
295
  }
@@ -384,4 +411,20 @@ export class BrowserModeManager {
384
411
  isHeadlessMode() {
385
412
  return this.isHeadless;
386
413
  }
414
+ getChromePid() {
415
+ return this.chromePid;
416
+ }
417
+ static forceKillPid(pid) {
418
+ if (!pid)
419
+ return;
420
+ try {
421
+ process.kill(pid, 'SIGKILL');
422
+ logger.info(`Force-killed Chrome process PID ${pid}`);
423
+ }
424
+ catch (error) {
425
+ if (error.code !== 'ESRCH') {
426
+ logger.warn(`Failed to force-kill Chrome PID ${pid}:`, error);
427
+ }
428
+ }
429
+ }
387
430
  }
@@ -0,0 +1,4 @@
1
+ import { ToolError } from '../../errors/ToolError.js';
2
+ export declare function mapCDPError(error: unknown, toolName?: string): ToolError | Error;
3
+ export declare function wrapCDPCall<T>(fn: () => Promise<T>, toolName?: string): Promise<T>;
4
+ export declare function isCDPSessionGone(error: unknown): boolean;
@@ -0,0 +1,82 @@
1
+ import { ToolError } from '../../errors/ToolError.js';
2
+ const CDP_ERROR_MAPPINGS = [
3
+ {
4
+ pattern: /Session.*not found|session closed|Session.*closed/i,
5
+ code: 'CONNECTION',
6
+ hint: 'The browser session has been destroyed. Re-launch the browser or open a new tab.',
7
+ },
8
+ {
9
+ pattern: /Target closed|target.*has.*been.*closed/i,
10
+ code: 'CONNECTION',
11
+ hint: 'The target page/tab was closed. Open a new tab before re-running this tool.',
12
+ },
13
+ {
14
+ pattern: /Protocol error.*Target\.sendMessageToTarget/i,
15
+ code: 'CONNECTION',
16
+ hint: 'CDP protocol communication failed. The browser may have crashed — try page_navigate to restore.',
17
+ },
18
+ {
19
+ pattern: /Execution context was destroyed/i,
20
+ code: 'RUNTIME',
21
+ hint: 'The page navigated while a script was running. Re-run the tool after navigation completes.',
22
+ },
23
+ {
24
+ pattern: /Cannot find context with specified id/i,
25
+ code: 'RUNTIME',
26
+ hint: 'An iframe or context was removed during execution. Retry after the page settles.',
27
+ },
28
+ {
29
+ pattern: /Node.*not found|Could not find node/i,
30
+ code: 'NOT_FOUND',
31
+ hint: 'The referenced DOM node no longer exists. The page may have re-rendered.',
32
+ },
33
+ {
34
+ pattern: /Evaluation failed.*timeout|Navigation timeout|TimeoutError/i,
35
+ code: 'TIMEOUT',
36
+ hint: 'The operation timed out. Increase the timeout or check if the page is responding.',
37
+ },
38
+ {
39
+ pattern: /net::ERR_|Failed to navigate|net::ERR_NAME_NOT_RESOLVED/i,
40
+ code: 'CONNECTION',
41
+ hint: 'Network error while loading the page. Check the URL and network connectivity.',
42
+ },
43
+ {
44
+ pattern: /Debugger.*not.*enabled|Debugger\.enable.*must.*be.*called/i,
45
+ code: 'PREREQUISITE',
46
+ hint: 'The CDP Debugger domain is not enabled. Enable it before using debugger tools.',
47
+ },
48
+ {
49
+ pattern: /Permission denied|Not allowed/i,
50
+ code: 'PERMISSION',
51
+ hint: 'The browser denied this operation. Check browser security policies.',
52
+ },
53
+ ];
54
+ export function mapCDPError(error, toolName) {
55
+ const message = error instanceof Error ? error.message : String(error);
56
+ for (const mapping of CDP_ERROR_MAPPINGS) {
57
+ if (mapping.pattern.test(message)) {
58
+ return new ToolError(mapping.code, `${message}\n\nHint: ${mapping.hint}`, {
59
+ toolName,
60
+ cause: error instanceof Error ? error : undefined,
61
+ details: { originalMessage: message, cdpMapping: true },
62
+ });
63
+ }
64
+ }
65
+ if (error instanceof ToolError)
66
+ return error;
67
+ if (error instanceof Error)
68
+ return error;
69
+ return new Error(String(error));
70
+ }
71
+ export async function wrapCDPCall(fn, toolName) {
72
+ try {
73
+ return await fn();
74
+ }
75
+ catch (error) {
76
+ throw mapCDPError(error, toolName);
77
+ }
78
+ }
79
+ export function isCDPSessionGone(error) {
80
+ const message = error instanceof Error ? error.message : String(error);
81
+ return /Session.*not found|Target closed|session closed/i.test(message);
82
+ }
@@ -38,6 +38,7 @@ export declare class CamoufoxBrowserManager {
38
38
  newPage(): Promise<CamoufoxPageLike>;
39
39
  goto(url: string, page?: CamoufoxPageLike): Promise<CamoufoxPageLike>;
40
40
  close(): Promise<void>;
41
+ private static readonly BROWSER_CLOSE_TIMEOUT_MS;
41
42
  private finalizeClose;
42
43
  launchAsServer(port?: number, ws_path?: string): Promise<string>;
43
44
  connectToServer(wsEndpoint: string): Promise<CamoufoxBrowserLike>;
@@ -38,7 +38,9 @@ export class CamoufoxBrowserManager {
38
38
  async doLaunch() {
39
39
  if (this.browser) {
40
40
  logger.info('Closing existing Camoufox browser before relaunch');
41
- await this.browser.close().catch(err => logger.warn('Failed to close previous browser:', err));
41
+ await this.browser
42
+ .close()
43
+ .catch((err) => logger.warn('Failed to close previous browser:', err));
42
44
  this.browser = null;
43
45
  }
44
46
  logger.info(`Launching Camoufox (Firefox) [os=${this.config.os}, headless=${this.config.headless}]...`);
@@ -59,7 +61,7 @@ export class CamoufoxBrowserManager {
59
61
  block_webrtc: this.config.blockWebrtc,
60
62
  }));
61
63
  if (this.isClosing) {
62
- await this.browser.close().catch(error => {
64
+ await this.browser.close().catch((error) => {
63
65
  logger.warn('Failed to close Camoufox browser launched during shutdown:', error);
64
66
  });
65
67
  this.browser = null;
@@ -95,12 +97,16 @@ export class CamoufoxBrowserManager {
95
97
  }
96
98
  await this.finalizeClose();
97
99
  }
100
+ static BROWSER_CLOSE_TIMEOUT_MS = 5000;
98
101
  async finalizeClose() {
99
102
  try {
100
103
  const browser = this.browser;
101
104
  this.browser = null;
102
105
  if (browser) {
103
- await browser.close();
106
+ await Promise.race([
107
+ browser.close(),
108
+ new Promise((_, reject) => setTimeout(() => reject(new Error('camoufox browser.close() timed out')), CamoufoxBrowserManager.BROWSER_CLOSE_TIMEOUT_MS)),
109
+ ]);
104
110
  logger.info('Camoufox browser closed');
105
111
  }
106
112
  }
@@ -130,7 +136,9 @@ export class CamoufoxBrowserManager {
130
136
  };
131
137
  if (this.browserServer) {
132
138
  logger.info('Closing existing Camoufox server before relaunch');
133
- await this.browserServer.close().catch(err => logger.warn('Failed to close previous server:', err));
139
+ await this.browserServer
140
+ .close()
141
+ .catch((err) => logger.warn('Failed to close previous server:', err));
134
142
  this.browserServer = null;
135
143
  }
136
144
  const server = await launchServer(serverOptions);
@@ -143,7 +151,9 @@ export class CamoufoxBrowserManager {
143
151
  logger.info(`Connecting to Camoufox server: ${wsEndpoint}`);
144
152
  if (this.browser) {
145
153
  logger.info('Disconnecting existing browser before new connection');
146
- await this.browser.close().catch(err => logger.warn('Failed to close previous browser:', err));
154
+ await this.browser
155
+ .close()
156
+ .catch((err) => logger.warn('Failed to close previous browser:', err));
147
157
  this.browser = null;
148
158
  }
149
159
  const playwrightModule = await import('playwright-core');
@@ -0,0 +1,38 @@
1
+ export interface HeartbeatScript {
2
+ id: string;
3
+ source: string;
4
+ }
5
+ export interface HeartbeatOptions {
6
+ debounceMs?: number;
7
+ mainFrameOnly?: boolean;
8
+ }
9
+ interface PageLike {
10
+ on(event: 'framenavigated', handler: (frame: FrameLike) => void): void;
11
+ off(event: 'framenavigated', handler: (frame: FrameLike) => void): void;
12
+ evaluate(fn: string): Promise<unknown>;
13
+ isClosed(): boolean;
14
+ mainFrame(): FrameLike;
15
+ }
16
+ interface FrameLike {
17
+ url(): string;
18
+ parentFrame(): FrameLike | null;
19
+ }
20
+ export declare class HookHeartbeat {
21
+ private readonly page;
22
+ private readonly scripts;
23
+ private readonly debounceMs;
24
+ private readonly mainFrameOnly;
25
+ private debounceTimer;
26
+ private running;
27
+ private readonly boundHandler;
28
+ constructor(page: PageLike, options?: HeartbeatOptions);
29
+ addScript(script: HeartbeatScript): this;
30
+ removeScript(id: string): this;
31
+ start(): this;
32
+ stop(): void;
33
+ get isRunning(): boolean;
34
+ get scriptCount(): number;
35
+ private onFrameNavigated;
36
+ private reinjectAll;
37
+ }
38
+ export {};
@@ -0,0 +1,76 @@
1
+ import { logger } from '../../utils/logger.js';
2
+ export class HookHeartbeat {
3
+ page;
4
+ scripts = new Map();
5
+ debounceMs;
6
+ mainFrameOnly;
7
+ debounceTimer = null;
8
+ running = false;
9
+ boundHandler;
10
+ constructor(page, options) {
11
+ this.page = page;
12
+ this.debounceMs = options?.debounceMs ?? 150;
13
+ this.mainFrameOnly = options?.mainFrameOnly ?? true;
14
+ this.boundHandler = this.onFrameNavigated.bind(this);
15
+ }
16
+ addScript(script) {
17
+ this.scripts.set(script.id, script);
18
+ return this;
19
+ }
20
+ removeScript(id) {
21
+ this.scripts.delete(id);
22
+ return this;
23
+ }
24
+ start() {
25
+ if (this.running)
26
+ return this;
27
+ this.running = true;
28
+ this.page.on('framenavigated', this.boundHandler);
29
+ logger.debug(`[HookHeartbeat] Started monitoring (${this.scripts.size} scripts, debounce=${this.debounceMs}ms)`);
30
+ return this;
31
+ }
32
+ stop() {
33
+ if (!this.running)
34
+ return;
35
+ this.running = false;
36
+ this.page.off('framenavigated', this.boundHandler);
37
+ if (this.debounceTimer) {
38
+ clearTimeout(this.debounceTimer);
39
+ this.debounceTimer = null;
40
+ }
41
+ logger.debug('[HookHeartbeat] Stopped monitoring');
42
+ }
43
+ get isRunning() {
44
+ return this.running;
45
+ }
46
+ get scriptCount() {
47
+ return this.scripts.size;
48
+ }
49
+ onFrameNavigated(frame) {
50
+ if (this.mainFrameOnly && frame.parentFrame() !== null) {
51
+ return;
52
+ }
53
+ if (this.debounceTimer) {
54
+ clearTimeout(this.debounceTimer);
55
+ }
56
+ this.debounceTimer = setTimeout(() => {
57
+ this.debounceTimer = null;
58
+ void this.reinjectAll(frame.url());
59
+ }, this.debounceMs);
60
+ }
61
+ async reinjectAll(url) {
62
+ if (!this.running || this.page.isClosed())
63
+ return;
64
+ if (this.scripts.size === 0)
65
+ return;
66
+ logger.debug(`[HookHeartbeat] Re-injecting ${this.scripts.size} scripts after navigation to ${url}`);
67
+ for (const [id, script] of this.scripts) {
68
+ try {
69
+ await this.page.evaluate(script.source);
70
+ }
71
+ catch (error) {
72
+ logger.warn(`[HookHeartbeat] Failed to re-inject script "${id}":`, error);
73
+ }
74
+ }
75
+ }
76
+ }
@@ -1,6 +1,6 @@
1
1
  import type { Browser as PuppeteerBrowser, Page as PuppeteerPage } from 'rebrowser-puppeteer-core';
2
- import { CamoufoxBrowserLike, CamoufoxPageLike } from '../browser/CamoufoxBrowserManager.js';
3
- import { BrowserInfo } from '../browser/BrowserDiscovery.js';
2
+ import { type CamoufoxBrowserLike, type CamoufoxPageLike } from '../browser/CamoufoxBrowserManager.js';
3
+ import { type BrowserInfo } from '../browser/BrowserDiscovery.js';
4
4
  export type BrowserDriver = 'chrome' | 'camoufox';
5
5
  export type HeadlessMode = boolean | 'shell' | 'virtual';
6
6
  export interface ProxyConfig {
@@ -60,7 +60,10 @@ export class UnifiedBrowserManager {
60
60
  launchOptions.args = [...(launchOptions.args || []), ...proxyArgs];
61
61
  }
62
62
  if (this.config.debugPort) {
63
- launchOptions.args = [...(launchOptions.args || []), `--remote-debugging-port=${this.config.debugPort}`];
63
+ launchOptions.args = [
64
+ ...(launchOptions.args || []),
65
+ `--remote-debugging-port=${this.config.debugPort}`,
66
+ ];
64
67
  }
65
68
  this.chromeManager = new BrowserModeManager(modeConfig, launchOptions);
66
69
  const browser = await this.chromeManager.launch();
@@ -212,7 +215,7 @@ export class UnifiedBrowserManager {
212
215
  }
213
216
  async findChromeWithDebugPort(preferredPorts = [9222, 9229, 9333]) {
214
217
  const browsers = await this.discoverBrowsers();
215
- const chromeBrowsers = browsers.filter(b => b.type === 'chrome' || b.type === 'edge');
218
+ const chromeBrowsers = browsers.filter((b) => b.type === 'chrome' || b.type === 'edge');
216
219
  for (const browser of chromeBrowsers) {
217
220
  if (browser.debugPort && preferredPorts.includes(browser.debugPort)) {
218
221
  return browser;
@@ -1,4 +1,4 @@
1
1
  export { UnifiedBrowserManager, type BrowserDriver, type HeadlessMode, type ProxyConfig, type UnifiedBrowserConfig, type IBrowserManager, type BrowserStatus, } from '../browser/UnifiedBrowserManager.js';
2
2
  export { BrowserModeManager, type BrowserModeConfig } from '../browser/BrowserModeManager.js';
3
- export { CamoufoxBrowserManager, type CamoufoxBrowserConfig } from '../browser/CamoufoxBrowserManager.js';
4
- export { BrowserDiscovery, type BrowserInfo, type BrowserSignature } from '../browser/BrowserDiscovery.js';
3
+ export { CamoufoxBrowserManager, type CamoufoxBrowserConfig, } from '../browser/CamoufoxBrowserManager.js';
4
+ export { BrowserDiscovery, type BrowserInfo, type BrowserSignature, } from '../browser/BrowserDiscovery.js';
@@ -1,4 +1,4 @@
1
1
  export { UnifiedBrowserManager, } from '../browser/UnifiedBrowserManager.js';
2
2
  export { BrowserModeManager } from '../browser/BrowserModeManager.js';
3
- export { CamoufoxBrowserManager } from '../browser/CamoufoxBrowserManager.js';
4
- export { BrowserDiscovery } from '../browser/BrowserDiscovery.js';
3
+ export { CamoufoxBrowserManager, } from '../browser/CamoufoxBrowserManager.js';
4
+ export { BrowserDiscovery, } from '../browser/BrowserDiscovery.js';
@@ -1,6 +1,8 @@
1
+ import { Page } from 'rebrowser-puppeteer-core';
1
2
  import { writeFile, mkdir } from 'fs/promises';
2
3
  import { join } from 'path';
3
4
  import { logger } from '../../utils/logger.js';
5
+ import { LLMService } from '../../services/LLMService.js';
4
6
  import { FALLBACK_CAPTCHA_KEYWORDS, FALLBACK_EXCLUDE_KEYWORDS, } from '../captcha/CaptchaDetector.constants.js';
5
7
  import { CAPTCHA_PROVIDER_HINTS, CAPTCHA_TYPES, LEGACY_CAPTCHA_PROVIDER_HINT_ALIASES, LEGACY_CAPTCHA_TYPE_ALIASES, } from '../captcha/types.js';
6
8
  const PROMPT_INJECTION_PATTERNS = [
@@ -374,9 +376,7 @@ Analyze the screenshot and return valid JSON.`;
374
376
  type: 'none',
375
377
  confidence: 95,
376
378
  reasoning: 'Fallback heuristics matched OTP or account verification text, not a CAPTCHA. / 后备启发式匹配到一次性验证码或账户校验文本,不视为 CAPTCHA。',
377
- suggestions: [
378
- 'Continue the login or verification flow normally / 继续正常登录或验证流程',
379
- ],
379
+ suggestions: ['Continue the login or verification flow normally / 继续正常登录或验证流程'],
380
380
  };
381
381
  }
382
382
  const detected = hasStrongCaptchaSignals;
@@ -390,7 +390,10 @@ Analyze the screenshot and return valid JSON.`;
390
390
  : 'Fallback heuristics matched both suspicious elements and CAPTCHA keywords. / 后备启发式匹配到可疑元素和验证码关键词。'
391
391
  : 'Fallback heuristics did not find strong CAPTCHA signals. / 后备启发式未找到强验证码信号。',
392
392
  suggestions: detected
393
- ? ['Switch to headed mode if needed / 如需要切换到有头模式', 'Wait for manual completion before continuing / 等待手动完成后继续']
393
+ ? [
394
+ 'Switch to headed mode if needed / 如需要切换到有头模式',
395
+ 'Wait for manual completion before continuing / 等待手动完成后继续',
396
+ ]
394
397
  : ['Solve the CAPTCHA manually if one is visible / 如有可见验证码请手动解决'],
395
398
  };
396
399
  }
@@ -1,3 +1,4 @@
1
+ import { Page } from 'rebrowser-puppeteer-core';
1
2
  import { logger } from '../../utils/logger.js';
2
3
  import { CAPTCHA_MATCH_RULES, DOM_MATCH_RULES, EXCLUDE_MATCH_RULES, EXCLUDE_SELECTORS, } from '../captcha/CaptchaDetector.constants.js';
3
4
  export class CaptchaDetector {
@@ -225,7 +226,9 @@ export class CaptchaDetector {
225
226
  if (!input.likelyCaptcha) {
226
227
  return 'ask_ai';
227
228
  }
228
- if (input.confidence >= 95 || input.candidateCount >= 2 || input.score - input.excludeScore >= 120) {
229
+ if (input.confidence >= 95 ||
230
+ input.candidateCount >= 2 ||
231
+ input.score - input.excludeScore >= 120) {
229
232
  return 'manual';
230
233
  }
231
234
  if (input.excludeScore > 0) {
@@ -257,7 +260,11 @@ export class CaptchaDetector {
257
260
  type: matchRule.rule.typeHint ?? 'url_redirect',
258
261
  providerHint: matchRule.rule.providerHint,
259
262
  url,
260
- details: { ruleId: matchRule.rule.id, ruleLabel: matchRule.rule.label, matchText: matchRule.matchText },
263
+ details: {
264
+ ruleId: matchRule.rule.id,
265
+ ruleLabel: matchRule.rule.label,
266
+ matchText: matchRule.matchText,
267
+ },
261
268
  });
262
269
  }
263
270
  return { detected: false, type: 'none', confidence: 0 };
@@ -286,7 +293,11 @@ export class CaptchaDetector {
286
293
  type: matchRule.rule.typeHint ?? 'page_redirect',
287
294
  providerHint: matchRule.rule.providerHint,
288
295
  title,
289
- details: { ruleId: matchRule.rule.id, ruleLabel: matchRule.rule.label, matchText: matchRule.matchText },
296
+ details: {
297
+ ruleId: matchRule.rule.id,
298
+ ruleLabel: matchRule.rule.label,
299
+ matchText: matchRule.matchText,
300
+ },
290
301
  });
291
302
  }
292
303
  return { detected: false, type: 'none', confidence: 0 };
@@ -48,11 +48,7 @@ const EMBEDDED_WIDGET_URL_KEYWORDS = [
48
48
  'siteverify',
49
49
  'sitekey',
50
50
  ];
51
- const REGIONAL_PROVIDER_URL_KEYWORDS = [
52
- 'slider-verify',
53
- 'drag-verify',
54
- 'slide-check',
55
- ];
51
+ const REGIONAL_PROVIDER_URL_KEYWORDS = ['slider-verify', 'drag-verify', 'slide-check'];
56
52
  const GENERIC_CAPTCHA_TEXT_KEYWORDS = [
57
53
  'Please verify',
58
54
  'Verify you are human',
@@ -99,8 +95,5 @@ export const CAPTCHA_KEYWORDS = {
99
95
  ...EMBEDDED_WIDGET_URL_KEYWORDS,
100
96
  ...REGIONAL_PROVIDER_URL_KEYWORDS,
101
97
  ]),
102
- text: mergeUnique([
103
- ...GENERIC_CAPTCHA_TEXT_KEYWORDS,
104
- ...ZH_CAPTCHA_TEXT_KEYWORDS,
105
- ]),
98
+ text: mergeUnique([...GENERIC_CAPTCHA_TEXT_KEYWORDS, ...ZH_CAPTCHA_TEXT_KEYWORDS]),
106
99
  };
@@ -1,2 +1,28 @@
1
- import type { CaptchaDomRule } from '../../captcha/types.js';
2
- export declare const DOM_MATCH_RULES: readonly CaptchaDomRule[];
1
+ export declare const DOM_MATCH_RULES: ({
2
+ id: string;
3
+ label: string;
4
+ selectors: readonly [".captcha-slider", ".verify-slider", "#captcha-slider", ".slide-verify", "[class*=\"captcha\"][class*=\"slider\"]", "[class*=\"verify\"][class*=\"slider\"]", "[id*=\"captcha\"][id*=\"slider\"]", "[id*=\"verify\"][id*=\"slider\"]", "[aria-label*=\"slider\" i]"];
5
+ confidence: number;
6
+ typeHint: "slider";
7
+ requiresVisibility: true;
8
+ verifier: "slider";
9
+ providerHint?: undefined;
10
+ } | {
11
+ id: string;
12
+ label: string;
13
+ selectors: readonly ["iframe[src*=\"captcha\" i]", "iframe[src*=\"challenge\" i]", "iframe[title*=\"captcha\" i]", "iframe[title*=\"verification\" i]", "[data-sitekey]", "[class*=\"captcha\"][class*=\"widget\"]", "[class*=\"challenge\"][class*=\"widget\"]", "[class*=\"human\"][class*=\"check\"]"];
14
+ confidence: number;
15
+ typeHint: "widget";
16
+ providerHint: "embedded_widget";
17
+ requiresVisibility?: undefined;
18
+ verifier?: undefined;
19
+ } | {
20
+ id: string;
21
+ label: string;
22
+ selectors: readonly ["#challenge-form", "[id*=\"challenge-form\"]", "[class*=\"browser-check\"]", "[class*=\"security-check\"]", "[class*=\"challenge-page\"]", "[class*=\"challenge-container\"]"];
23
+ confidence: number;
24
+ typeHint: "browser_check";
25
+ providerHint: "edge_service";
26
+ requiresVisibility?: undefined;
27
+ verifier?: undefined;
28
+ })[];
@@ -29,9 +29,22 @@ const OTP_EXCLUDE_TEXT_KEYWORDS = [
29
29
  'Enter your authenticator code',
30
30
  'Two-factor authentication',
31
31
  ];
32
- const ZH_EXCLUDE_TITLE_KEYWORDS = ['短信验证', '邮箱验证', '输入验证码', '手机验证', '登录验证', '双重验证'];
32
+ const ZH_EXCLUDE_TITLE_KEYWORDS = [
33
+ '短信验证',
34
+ '邮箱验证',
35
+ '输入验证码',
36
+ '手机验证',
37
+ '登录验证',
38
+ '双重验证',
39
+ ];
33
40
  const ZH_EXCLUDE_URL_KEYWORDS = ['验证邮箱', '验证手机', '重置密码'];
34
- const ZH_EXCLUDE_TEXT_KEYWORDS = ['输入验证码', '获取验证码', '发送验证码', '已发送验证码', '双因素认证'];
41
+ const ZH_EXCLUDE_TEXT_KEYWORDS = [
42
+ '输入验证码',
43
+ '获取验证码',
44
+ '发送验证码',
45
+ '已发送验证码',
46
+ '双因素认证',
47
+ ];
35
48
  const AUTH_FLOW_TITLE_KEYWORDS = ['two-factor', '2fa', 'two-factor authentication'];
36
49
  export const EXCLUDE_KEYWORDS = {
37
50
  title: mergeUnique([
@@ -2,8 +2,10 @@ import type { CodeFile, CollectCodeResult } from '../../types/index.js';
2
2
  export interface CacheEntry {
3
3
  url: string;
4
4
  files: CodeFile[];
5
+ dependencies?: CollectCodeResult['dependencies'];
5
6
  totalSize: number;
6
7
  collectTime: number;
8
+ summaries?: CollectCodeResult['summaries'];
7
9
  timestamp: number;
8
10
  hash: string;
9
11
  }
@@ -24,6 +26,7 @@ export declare class CodeCache {
24
26
  init(): Promise<void>;
25
27
  private generateKey;
26
28
  private getCachePath;
29
+ private getDependenciesOrEmpty;
27
30
  private isExpired;
28
31
  get(url: string, options?: Record<string, unknown>): Promise<CollectCodeResult | null>;
29
32
  set(url: string, result: CollectCodeResult, options?: Record<string, unknown>): Promise<void>;
@@ -31,6 +31,9 @@ export class CodeCache {
31
31
  getCachePath(key) {
32
32
  return path.join(this.cacheDir, `${key}.json`);
33
33
  }
34
+ getDependenciesOrEmpty(dependencies) {
35
+ return dependencies ?? { nodes: [], edges: [] };
36
+ }
34
37
  isExpired(entry) {
35
38
  return Date.now() - entry.timestamp > this.maxAge;
36
39
  }
@@ -42,9 +45,10 @@ export class CodeCache {
42
45
  logger.debug(`Cache hit (memory): ${url}`);
43
46
  return {
44
47
  files: entry.files,
45
- dependencies: { nodes: [], edges: [] },
48
+ dependencies: this.getDependenciesOrEmpty(entry.dependencies),
46
49
  totalSize: entry.totalSize,
47
50
  collectTime: entry.collectTime,
51
+ summaries: entry.summaries,
48
52
  };
49
53
  }
50
54
  else {
@@ -64,9 +68,10 @@ export class CodeCache {
64
68
  logger.debug(`Cache hit (disk): ${url}`);
65
69
  return {
66
70
  files: entry.files,
67
- dependencies: { nodes: [], edges: [] },
71
+ dependencies: this.getDependenciesOrEmpty(entry.dependencies),
68
72
  totalSize: entry.totalSize,
69
73
  collectTime: entry.collectTime,
74
+ summaries: entry.summaries,
70
75
  };
71
76
  }
72
77
  catch (err) {
@@ -80,8 +85,10 @@ export class CodeCache {
80
85
  const entry = {
81
86
  url,
82
87
  files: result.files,
88
+ dependencies: result.dependencies,
83
89
  totalSize: result.totalSize,
84
90
  collectTime: result.collectTime,
91
+ summaries: result.summaries,
85
92
  timestamp: Date.now(),
86
93
  hash,
87
94
  };