@jshookmcp/jshook 0.3.2 → 0.3.4

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 (357) hide show
  1. package/README.md +19 -4
  2. package/README.zh.md +19 -4
  3. package/dist/AntiCheatDetector-B-mz4DK_.mjs +1 -0
  4. package/dist/{BrowserSessionCoordinator-BJ-HOxo0.mjs → BrowserSessionCoordinator-Cdic8FsH.mjs} +1 -1
  5. package/dist/CodeAnalyzerDataFlow-a-NkwcaG.mjs +2 -0
  6. package/dist/CodeInjector-B099WO6x.mjs +1 -0
  7. package/dist/ConsoleMonitor-BZRqrBH-.mjs +306 -0
  8. package/dist/CpuEngine-BC8jayy9.mjs +1 -0
  9. package/dist/DartAotExecutor-B7WVTKsd.mjs +1 -0
  10. package/dist/DartAotLoader-BxdhW-K2.mjs +2 -0
  11. package/dist/DarwinAPI-DzojdfjF.mjs +1 -0
  12. package/dist/DetailedDataManager-Dgh402Gp.mjs +5 -0
  13. package/dist/ExecutionSandbox-QbWQmzuC.mjs +45 -0
  14. package/dist/ExtensionManager.tools-D3h818Xs.mjs +1 -0
  15. package/dist/FingerprintManager-D9Zlr6be.mjs +1 -0
  16. package/dist/HardwareBreakpoint-C_lJ22bj.mjs +1 -0
  17. package/dist/HeapAnalyzer-bJbLvzp6.mjs +1 -0
  18. package/dist/HookPatternScanner-yx4vJ9sd.mjs +1 -0
  19. package/dist/InstrumentationSession-Cv1wikLA.mjs +1 -0
  20. package/dist/IntegrityScanner-BB7sw-SA.mjs +1 -0
  21. package/dist/JScramblerDeobfuscator-NVR5VatT.mjs +1 -0
  22. package/dist/MCPServer.activation.ttl-C2wOCMLV.mjs +1 -0
  23. package/dist/MCPServer.search.helpers-DlassAew.mjs +2 -0
  24. package/dist/MCPServer.search.validation-DnifPCCv.mjs +1 -0
  25. package/dist/MemoryController-CCsGuGJS.mjs +2 -0
  26. package/dist/{MemoryScanSession-DG_F-PjE.mjs → MemoryScanSession-BZ2A9Ph1.mjs} +1 -1
  27. package/dist/MemoryScanner-DAxsq7Sx.mjs +1 -0
  28. package/dist/NativeMemoryManager.impl-BIJzXMqH.mjs +1 -0
  29. package/dist/{NativeMemoryManager.utils-BHy1P_jM.mjs → NativeMemoryManager.utils-CMoul2an.mjs} +1 -1
  30. package/dist/PEAnalyzer-CB_kaTis.mjs +1 -0
  31. package/dist/PackerDeobfuscator-BpwGjxDL.mjs +7 -0
  32. package/dist/PointerChainEngine-B6SYv6ZM.mjs +1 -0
  33. package/dist/ProcessRegistry-C5W1Tkn9.mjs +1 -0
  34. package/dist/{handlers-mPFiNPe8.mjs → QuickJSSandbox-CIde-jzG.mjs} +2 -5
  35. package/dist/{ResponseBuilder-BfWP-uaT.mjs → ResponseBuilder-BLicSCjn.mjs} +1 -1
  36. package/dist/ReverseEvidenceGraph-DJzk0GQz.mjs +2 -0
  37. package/dist/ServerRuntimeState-DGXNv8Ji.mjs +1 -0
  38. package/dist/Speedhack-MGoeq1ZS.mjs +1 -0
  39. package/dist/StructureAnalyzer-CCTWAXR3.mjs +2 -0
  40. package/dist/ToolHandlerMap-C40EmuLT.mjs +1 -0
  41. package/dist/{ToolProbe-C7ZU2x7M.mjs → ToolProbe-B02GC3ZY.mjs} +1 -1
  42. package/dist/ToolRegistry-CzqQxFqf.mjs +1 -0
  43. package/dist/ToolRouter.policy-Bgb3S8jc.mjs +4 -0
  44. package/dist/TraceRecorder-BfeCTQUj.mjs +407 -0
  45. package/dist/VMDeobfuscator-BHtkV850.mjs +1 -0
  46. package/dist/Win32API-G7QPyckq.mjs +1 -0
  47. package/dist/{Win32Debug-CYrIQBvr.mjs → Win32Debug-6yzmtv5b.mjs} +1 -1
  48. package/dist/allocation-track-CiI-CnaI.mjs +1 -0
  49. package/dist/analysis-CojUzwX-.mjs +27 -0
  50. package/dist/antidebug-CgU84TE1.mjs +1 -0
  51. package/dist/apk-DrPBsOq8.mjs +1 -0
  52. package/dist/artifactRetention-Bk6fW2uF.mjs +1 -0
  53. package/dist/artifacts-Bx9GLx4J.mjs +1 -0
  54. package/dist/ast-bridge-BlOrmVAv.mjs +1 -0
  55. package/dist/ast-utils-B9E5k_v1.mjs +1 -0
  56. package/dist/{betterSqlite3-Brtq-SIQ.mjs → betterSqlite3-Bdo_ifuJ.mjs} +1 -1
  57. package/dist/binary-instrument-DiE1BP0x.mjs +12 -0
  58. package/dist/boringssl-inspector-C6M3sOga.mjs +2 -0
  59. package/dist/browser-QDUu5ML9.mjs +29 -0
  60. package/dist/{handlers-yo_xYzT8.mjs → canvas-g5kmLdY-.mjs} +1098 -24
  61. package/dist/{capabilities-CyXuKUl1.mjs → capabilities-DwzyxL2w.mjs} +1 -1
  62. package/dist/cdp-session-Dy4OwMOP.mjs +1 -0
  63. package/dist/collector-Cld4i-E4.mjs +1 -0
  64. package/dist/config-5ODJ3Aj0.mjs +3 -0
  65. package/dist/constants-nvsLpSri.mjs +1 -0
  66. package/dist/coordination-C6y2gM9O.mjs +98 -0
  67. package/dist/coverage-and-block--cWjjEe5.mjs +1 -0
  68. package/dist/dart-inspector-D4IKxZ6u.mjs +0 -0
  69. package/dist/debugger-C2SpiXoO.mjs +1 -0
  70. package/dist/definitions-0mtilYzG.mjs +1 -0
  71. package/dist/definitions-9csunmeX.mjs +1 -0
  72. package/dist/definitions-B11MudW_.mjs +1 -0
  73. package/dist/definitions-BKpRDjcI.mjs +1 -0
  74. package/dist/definitions-BXE3H4re.mjs +1 -0
  75. package/dist/definitions-BlPHe5DX.mjs +1 -0
  76. package/dist/definitions-Bob4XMxI.mjs +27 -0
  77. package/dist/definitions-BpIQN2nm.mjs +1 -0
  78. package/dist/definitions-BvolWeSu.mjs +1 -0
  79. package/dist/definitions-C-6j3Ejl.mjs +1 -0
  80. package/dist/definitions-C-AdFfFu.mjs +1 -0
  81. package/dist/definitions-CArdw_9T.mjs +1 -0
  82. package/dist/definitions-CCvIcRrT.mjs +1 -0
  83. package/dist/definitions-CJPE5PIl.mjs +1 -0
  84. package/dist/definitions-CbqeW06u.mjs +1 -0
  85. package/dist/definitions-Cexmkypg.mjs +1 -0
  86. package/dist/definitions-D1dxl8qt.mjs +1 -0
  87. package/dist/definitions-D3uT-ZbU.mjs +1 -0
  88. package/dist/definitions-DtOY5iUc.mjs +1 -0
  89. package/dist/{definitions-DxFNRQNK2.mjs → definitions-DvrYdDCJ2.mjs} +1 -1
  90. package/dist/{definitions-Cenu6mxo.mjs → definitions-aeRd5DAR.mjs} +1 -1
  91. package/dist/definitions-ihxOqOC4.mjs +1 -0
  92. package/dist/deopt-trace-qnAcC931.mjs +17 -0
  93. package/dist/disasm-DoxSucGp.mjs +1 -0
  94. package/dist/dumpsys-parser-Du-5ruEe.mjs +2 -0
  95. package/dist/encoding-UMtwgy4M.mjs +2 -0
  96. package/dist/ensure-browser-core-BP70x0TB.mjs +285 -0
  97. package/dist/factory-BeND77hf.mjs +2 -0
  98. package/dist/graphql-CF7QKJME.mjs +68 -0
  99. package/dist/grpc-raw-Dp7ps2sv.mjs +1 -0
  100. package/dist/handlers--qCl9vNv.mjs +1 -0
  101. package/dist/handlers-BHIu1LqA.mjs +1 -0
  102. package/dist/{antidebug-7L3ygj_9.mjs → handlers-BQ4K8Jbr.mjs} +2 -2
  103. package/dist/handlers-BxQv-wtf.mjs +8 -0
  104. package/dist/handlers-ByYG27-5.mjs +1 -0
  105. package/dist/handlers-C0I9-BtX.mjs +5 -0
  106. package/dist/handlers-CL0Iokmw.mjs +1 -0
  107. package/dist/handlers-CNbhIdSK.mjs +4 -0
  108. package/dist/handlers-CnTTSJFs.mjs +109 -0
  109. package/dist/handlers-CoDx6akJ2.mjs +49 -0
  110. package/dist/{handlers-0yKLRIfo.mjs → handlers-DASJI0Pn.mjs} +1 -1
  111. package/dist/handlers-DRKMaA-_.mjs +74 -0
  112. package/dist/handlers-Dalu0olz.mjs +2 -0
  113. package/dist/handlers-KY0g31ny.mjs +9 -0
  114. package/dist/handlers-oGo60aVv.mjs +1 -0
  115. package/dist/handlers.impl-BTXLw6Qc.mjs +1 -0
  116. package/dist/heap-sampling-BqdiU-5j.mjs +1 -0
  117. package/dist/{hooks-D4XLfgtV.mjs → hooks-COK3t5rT.mjs} +52 -33
  118. package/dist/index.mjs +11 -11
  119. package/dist/logger-BGCcd-jJ.mjs +1 -0
  120. package/dist/macro-nUYUjKNZ.mjs +2 -0
  121. package/dist/maintenance-CfnE7ZKU.mjs +4 -0
  122. package/dist/manifest-7EOTUc0D.mjs +1 -0
  123. package/dist/manifest-B5ujuQmf.mjs +1 -0
  124. package/dist/manifest-BErXl3zn.mjs +1 -0
  125. package/dist/manifest-BKA-mD3J.mjs +1 -0
  126. package/dist/manifest-BUXj23bX.mjs +1 -0
  127. package/dist/manifest-BfXt9cau.mjs +1 -0
  128. package/dist/manifest-Bx-tpURK.mjs +1 -0
  129. package/dist/manifest-C0owVAdq.mjs +1 -0
  130. package/dist/manifest-C5XqYc9o.mjs +1 -0
  131. package/dist/manifest-CVKzLjsA.mjs +1 -0
  132. package/dist/manifest-CaeFjdhj.mjs +1 -0
  133. package/dist/manifest-CegBgip0.mjs +1 -0
  134. package/dist/manifest-CoJHqlgS.mjs +1 -0
  135. package/dist/manifest-D0dbtDqd.mjs +1 -0
  136. package/dist/manifest-D5Gr8ujd.mjs +12 -0
  137. package/dist/manifest-D82z-5og.mjs +1 -0
  138. package/dist/manifest-DA2afIwh.mjs +1 -0
  139. package/dist/manifest-DAbiFP5o.mjs +1 -0
  140. package/dist/manifest-DEY0s1O72.mjs +1 -0
  141. package/dist/manifest-DTOqNqiA.mjs +1 -0
  142. package/dist/manifest-DZ6ELNgX.mjs +1 -0
  143. package/dist/manifest-DjHkjddT.mjs +1 -0
  144. package/dist/manifest-DocA_itf2.mjs +1 -0
  145. package/dist/manifest-Dpnhvfq0.mjs +1 -0
  146. package/dist/manifest-DucPMG_a.mjs +1 -0
  147. package/dist/manifest-Dw5yYEac.mjs +1 -0
  148. package/dist/manifest-Ic_Cg66S.mjs +1 -0
  149. package/dist/manifest-JHaG6GMN.mjs +1 -0
  150. package/dist/manifest-QdkIzmYM.mjs +1 -0
  151. package/dist/manifest-YZqaCe25.mjs +1 -0
  152. package/dist/manifest-f0lUeXwq.mjs +1 -0
  153. package/dist/manifest-h-Ebisf8.mjs +1 -0
  154. package/dist/manifest-oOfTymBS.mjs +1 -0
  155. package/dist/manifest-qXqrO6KC.mjs +2 -0
  156. package/dist/mapsParser-DrJoeC0c.mjs +1 -0
  157. package/dist/modules-CC_ADmwi.mjs +333 -0
  158. package/dist/mojo-ipc-kVztXYw-.mjs +140 -0
  159. package/dist/native-D9ouskXO.mjs +961 -0
  160. package/dist/native-bridge-Dzd7hYoq.mjs +1 -0
  161. package/dist/network-C5Y-S87J.mjs +7 -0
  162. package/dist/one-gadget-CiWFE17F.mjs +1 -0
  163. package/dist/outputPaths-CHtELDyi.mjs +1 -0
  164. package/dist/parse-args-B6dwWc9k.mjs +1 -0
  165. package/dist/platform-BIXgJaM3.mjs +94 -0
  166. package/dist/process-aDIfLC0v.mjs +6 -0
  167. package/dist/proxy-DsHsQ1I4.mjs +2 -0
  168. package/dist/registry-7h8jJ9y9.mjs +1 -0
  169. package/dist/{registry-DH4sc1dt.mjs → registry-DJDnkQW2.mjs} +1 -1
  170. package/dist/response-R8ghbZSb.mjs +1 -0
  171. package/dist/retry-policy-DtYv0kDi.mjs +1 -0
  172. package/dist/reverseEngineeringConfig-BhZLOa3C.mjs +1 -0
  173. package/dist/safeOutput-Dt4mfjXA.mjs +1 -0
  174. package/dist/search-defaults-BBRJNAzC.mjs +1 -0
  175. package/dist/server/plugin-api.mjs +1 -1
  176. package/dist/server/search/EmbeddingWorker.d.mts +1 -0
  177. package/dist/server/search/EmbeddingWorker.mjs +1 -0
  178. package/dist/shared-BKtWZDGN.mjs +1 -0
  179. package/dist/sourcemap-2VIeVeKw.mjs +3 -0
  180. package/dist/streaming-DkpE3GGU.mjs +15 -0
  181. package/dist/syscall-DGZoYM_U.mjs +1 -0
  182. package/dist/transform-BJqsBC_-.mjs +105 -0
  183. package/dist/turbofan-graph-CbGHNVtl.mjs +1 -0
  184. package/dist/turbofan-inspect--NdCuYXi.mjs +23 -0
  185. package/dist/types-CWSvzmIh.mjs +1 -0
  186. package/dist/v8-inspector-CTJo08-K.mjs +297 -0
  187. package/dist/wasm-DX4Qm2Vs.mjs +235 -0
  188. package/dist/weakrefs-inspect-CnhaF-rN.mjs +57 -0
  189. package/dist/webgpu-D4-DxbxZ.mjs +6 -0
  190. package/dist/workflow-DHktRNF2.mjs +108 -0
  191. package/package.json +33 -27
  192. package/dist/AntiCheatDetector-B6d4Qe9D.mjs +0 -1
  193. package/dist/CodeInjector-Cll_7bLJ.mjs +0 -1
  194. package/dist/ConsoleMonitor-CxDJV15E.mjs +0 -306
  195. package/dist/DOMInspector-C19J4zeq.mjs +0 -95
  196. package/dist/DarwinAPI-ZfQdpLNI.mjs +0 -1
  197. package/dist/DetailedDataManager-DmQ1LT-W.mjs +0 -1
  198. package/dist/ExtensionManager-BD724zkO.mjs +0 -1
  199. package/dist/ExtensionManager.tools-oVMJgPcN.mjs +0 -1
  200. package/dist/FingerprintManager-DT0EAUEo.mjs +0 -1
  201. package/dist/HardwareBreakpoint-BUfPdp0f.mjs +0 -1
  202. package/dist/HeapAnalyzer-B_aqY8oj.mjs +0 -1
  203. package/dist/InstrumentationSession-D_G1ZPyd.mjs +0 -1
  204. package/dist/MCPServer.search.handlers.domain-BbS-6LnX.mjs +0 -1
  205. package/dist/MemoryController-X1XNSn1n.mjs +0 -2
  206. package/dist/MemoryScanner-g1_L1ub5.mjs +0 -1
  207. package/dist/NativeMemoryManager.impl-DniBe2wf.mjs +0 -1
  208. package/dist/NetworkMonitor-B_-au6aV.mjs +0 -185
  209. package/dist/PEAnalyzer-yWQaGrcx.mjs +0 -1
  210. package/dist/PageController-Dfsm1_o7.mjs +0 -1
  211. package/dist/PointerChainEngine-BhCUkmxY.mjs +0 -1
  212. package/dist/PrerequisiteError-BjCQA-gK.mjs +0 -1
  213. package/dist/ProcessRegistry-C-bN48oR.mjs +0 -1
  214. package/dist/ReverseEvidenceGraph-BhSYYdiI.mjs +0 -2
  215. package/dist/ScriptManager-LWGPTdvD.mjs +0 -7
  216. package/dist/ServerRuntimeState-D2bWHqEE.mjs +0 -1
  217. package/dist/Speedhack-yseDPSZ9.mjs +0 -1
  218. package/dist/StructureAnalyzer-C5lpuZkg.mjs +0 -2
  219. package/dist/ToolCatalog-CYdD9F5f.mjs +0 -1
  220. package/dist/ToolRegistry-C5oB8KP8.mjs +0 -1
  221. package/dist/ToolRouter.policy-CfhJczkt.mjs +0 -4
  222. package/dist/TraceRecorder-BiJWBXHX.mjs +0 -272
  223. package/dist/VersionDetector-CHT36Az0.mjs +0 -9
  224. package/dist/Win32API-eUCF57l_.mjs +0 -1
  225. package/dist/WorkflowEngine-D876meOO.mjs +0 -1
  226. package/dist/analysis-D4swdMvq.mjs +0 -6
  227. package/dist/apk-packer-BqXcInnX.mjs +0 -1
  228. package/dist/artifactRetention-BCPQASm7.mjs +0 -1
  229. package/dist/artifacts-CkodUM4j.mjs +0 -1
  230. package/dist/binary-instrument-DU7V6TUM.mjs +0 -7
  231. package/dist/binary-secrets-PdMVoyt0.mjs +0 -1
  232. package/dist/boringssl-inspector-BBaJwwkU.mjs +0 -2
  233. package/dist/browser-Qqco2rOT.mjs +0 -11
  234. package/dist/collector-Bpl6qy2L.mjs +0 -1
  235. package/dist/constants-BYj8Xek8.mjs +0 -1
  236. package/dist/coordination-CWXW1o8K.mjs +0 -1
  237. package/dist/dart-inspector-7AkPeZ_Q.mjs +0 -0
  238. package/dist/debugger-DyALjYMk.mjs +0 -1
  239. package/dist/definitions-BWxBke3r.mjs +0 -1
  240. package/dist/definitions-BYwATKc-.mjs +0 -1
  241. package/dist/definitions-B_83XfNQ.mjs +0 -1
  242. package/dist/definitions-Bf3H1EwV.mjs +0 -1
  243. package/dist/definitions-BftdXgXI.mjs +0 -1
  244. package/dist/definitions-Bio5XJYy.mjs +0 -1
  245. package/dist/definitions-C3qNgSn1.mjs +0 -1
  246. package/dist/definitions-CB6vmOer.mjs +0 -1
  247. package/dist/definitions-CMZRSy3k.mjs +0 -1
  248. package/dist/definitions-CQd7yCQH.mjs +0 -1
  249. package/dist/definitions-CT8ln6GQ.mjs +0 -1
  250. package/dist/definitions-D4g-MS10.mjs +0 -1
  251. package/dist/definitions-D5wl_8HN.mjs +0 -1
  252. package/dist/definitions-DAQm1Xar.mjs +0 -1
  253. package/dist/definitions-DP1vgxEY.mjs +0 -1
  254. package/dist/definitions-Ibci7e_L.mjs +0 -1
  255. package/dist/definitions-OeLvmlQy.mjs +0 -1
  256. package/dist/definitions-RZYGD_Ey.mjs +0 -1
  257. package/dist/definitions-Tls8c0A0.mjs +0 -1
  258. package/dist/definitions-bybDvnG0.mjs +0 -26
  259. package/dist/definitions-l7TjdE6V.mjs +0 -1
  260. package/dist/encoding-ycOaz8Vr.mjs +0 -2
  261. package/dist/ensure-browser-core-DxWC-NTp.mjs +0 -1
  262. package/dist/factory-CKr4fAE1.mjs +0 -1
  263. package/dist/flat-target-session-DvcQX7J5.mjs +0 -1
  264. package/dist/graphql-B2TiPEow.mjs +0 -62
  265. package/dist/handlers-8zN_vBIz.mjs +0 -1
  266. package/dist/handlers-B62K4FTc.mjs +0 -1
  267. package/dist/handlers-BpDlVVVU.mjs +0 -1
  268. package/dist/handlers-CMJK7m1c.mjs +0 -31
  269. package/dist/handlers-D2ZOul9p.mjs +0 -54
  270. package/dist/handlers-D5E40ssn.mjs +0 -5
  271. package/dist/handlers-DGbdQAgD.mjs +0 -4
  272. package/dist/handlers-DHO3rjsW.mjs +0 -1
  273. package/dist/handlers-FJ80VzUI.mjs +0 -2
  274. package/dist/handlers-VHWrxbM_.mjs +0 -1
  275. package/dist/handlers-l8QIKqBj.mjs +0 -2
  276. package/dist/handlers.impl-D9Hh8Bgl.mjs +0 -1
  277. package/dist/jadx-search-B_Yse0Zh.mjs +0 -5
  278. package/dist/logger-sBC6IdRT.mjs +0 -1
  279. package/dist/maintenance-BUpIukhg.mjs +0 -1
  280. package/dist/manifest-0Jpt_AQa.mjs +0 -1
  281. package/dist/manifest-B3fZbSWR.mjs +0 -1
  282. package/dist/manifest-B7NB2rh2.mjs +0 -1
  283. package/dist/manifest-BDi4nbH1.mjs +0 -1
  284. package/dist/manifest-BLDfkE7n.mjs +0 -1
  285. package/dist/manifest-BcXbB4gf.mjs +0 -1
  286. package/dist/manifest-Bdnc_vrc.mjs +0 -1
  287. package/dist/manifest-BuYKgCnp.mjs +0 -1
  288. package/dist/manifest-CBfNnGPV.mjs +0 -1
  289. package/dist/manifest-CPS1Xv69.mjs +0 -1
  290. package/dist/manifest-CQH9FhwI.mjs +0 -1
  291. package/dist/manifest-CRryuZF4.mjs +0 -1
  292. package/dist/manifest-CctIumog.mjs +0 -1
  293. package/dist/manifest-CvTe5ZGV2.mjs +0 -1
  294. package/dist/manifest-D-5GH0DV.mjs +0 -1
  295. package/dist/manifest-D3Ssf3IC.mjs +0 -1
  296. package/dist/manifest-D5ck3NvC.mjs +0 -1
  297. package/dist/manifest-D9jUUJAu.mjs +0 -1
  298. package/dist/manifest-DCx6w2XV.mjs +0 -1
  299. package/dist/manifest-DG19q-Ld.mjs +0 -1
  300. package/dist/manifest-DLMlD0Zc.mjs +0 -1
  301. package/dist/manifest-DYpn8w_h.mjs +0 -1
  302. package/dist/manifest-DYzWI8Xs.mjs +0 -1
  303. package/dist/manifest-D_obs5F4.mjs +0 -1
  304. package/dist/manifest-DujQqEQR.mjs +0 -2
  305. package/dist/manifest-DwL2ik8P.mjs +0 -1
  306. package/dist/manifest-ItF5P8A12.mjs +0 -1
  307. package/dist/manifest-KZphqIyX.mjs +0 -1
  308. package/dist/manifest-LG42zPLY2.mjs +0 -1
  309. package/dist/manifest-LLdI5m4T.mjs +0 -1
  310. package/dist/manifest-QYbQXJn0.mjs +0 -1
  311. package/dist/manifest-RcpX_MyZ.mjs +0 -123
  312. package/dist/manifest-YgVd8Sgz.mjs +0 -1
  313. package/dist/manifest-Zy7Odg5J.mjs +0 -1
  314. package/dist/manifest-ff1H7Pdp.mjs +0 -1
  315. package/dist/manifest-iuhF6pTL2.mjs +0 -1
  316. package/dist/manifest-nXHmtMSp2.mjs +0 -1
  317. package/dist/manifest-xWfu6iLo.mjs +0 -1
  318. package/dist/manifest-yC16OhL2.mjs +0 -1
  319. package/dist/manifest-ztWJoXy4.mjs +0 -1
  320. package/dist/matchesWildcardPattern-BAG6LvX5.mjs +0 -1
  321. package/dist/modules-BPBcSaM-.mjs +0 -333
  322. package/dist/mojo-ipc-BhwsdVUW.mjs +0 -9
  323. package/dist/native-j8l473zn.mjs +0 -961
  324. package/dist/network-T0VRwNPd.mjs +0 -7
  325. package/dist/outputPaths-B4Ic4RZh.mjs +0 -2
  326. package/dist/parse-args-Bw413PlW.mjs +0 -1
  327. package/dist/platform-CzaQtISh.mjs +0 -93
  328. package/dist/playwright-cdp-fallback-DqFdx9-s.mjs +0 -1
  329. package/dist/process-CWhsCWrf.mjs +0 -2
  330. package/dist/proxy-DZFlDsG3.mjs +0 -2
  331. package/dist/renderer-pid-9tJnZ_9N.mjs +0 -1
  332. package/dist/response-C7rKQst4.mjs +0 -1
  333. package/dist/search-defaults-lYBVn_3L.mjs +0 -1
  334. package/dist/shared-state-board-BSjXLUV1.mjs +0 -1
  335. package/dist/sourcemap-Dh3Ai_ur.mjs +0 -1
  336. package/dist/streaming-BcJ0B6ao.mjs +0 -1
  337. package/dist/transform-DOxzeWPB.mjs +0 -103
  338. package/dist/types-D9EiE5o9.mjs +0 -1
  339. package/dist/wasm-CZ_HTfKR.mjs +0 -174
  340. package/dist/webcrack-C1iYG_EX.mjs +0 -46
  341. package/dist/workflow-BdwQmARn.mjs +0 -101
  342. /package/dist/{CacheAdapters-CsNtQIR8.mjs → CacheAdapters-BlDrQg8f.mjs} +0 -0
  343. /package/dist/{EventBus-DL8iLA09.mjs → EventBus-Cm-t-B65.mjs} +0 -0
  344. /package/dist/{EvidenceGraphBridge-BtbwXsLC.mjs → EvidenceGraphBridge-DBDc0wUA.mjs} +0 -0
  345. /package/dist/{HookGeneratorBuilders.core.generators.storage-DzD6dIJd.mjs → HookGeneratorBuilders.core.generators.storage-CWaWpOHa.mjs} +0 -0
  346. /package/dist/{RingBuffer-Dm54ELKT.mjs → RingBuffer-B6RTHmij.mjs} +0 -0
  347. /package/dist/{StealthVerifier-BmcxfwSF.mjs → StealthVerifier-DMBrtkhN.mjs} +0 -0
  348. /package/dist/{ToolError-DWU_z7gp.mjs → ToolError-g3rjWzhx.mjs} +0 -0
  349. /package/dist/{authorization-schema-BOFwSXUN.mjs → authorization-schema-Jtikc5Yt.mjs} +0 -0
  350. /package/dist/{bind-helpers-m2U8glkF.mjs → bind-helpers-D0mGAOof.mjs} +0 -0
  351. /package/dist/{concurrency-DCr8WQ2M.mjs → concurrency-Dehnw4JC.mjs} +0 -0
  352. /package/dist/{evidence-graph-bridge-CV_UdYqj.mjs → evidence-graph-bridge-eT9icP6a.mjs} +0 -0
  353. /package/dist/{formatAddress-vLA_hOJt.mjs → formatAddress-DAcw4Ckg.mjs} +0 -0
  354. /package/dist/{chunk-C_pMuVsO.mjs → rolldown-runtime-88NL7fhV.mjs} +0 -0
  355. /package/dist/{ssrf-policy-CsIJGkpd.mjs → ssrf-policy-B72vdy23.mjs} +0 -0
  356. /package/dist/{tool-builder-qif8M9-K.mjs → tool-builder-CpLh-UQd.mjs} +0 -0
  357. /package/dist/{types-Fz69RzbZ.mjs → types-BzPBzmVB.mjs} +0 -0
@@ -0,0 +1 @@
1
+ import{t as e}from"./EventBus-Cm-t-B65.mjs";import{t}from"./native-D9ouskXO.mjs";import{t as n}from"./tool-builder-CpLh-UQd.mjs";const r=[`byte`,`int8`,`int16`,`uint16`,`int32`,`uint32`,`int64`,`uint64`,`float`,`double`,`string`,`hex`,`pointer`],i=[`exact`,`unknown_initial`,`changed`,`unchanged`,`increased`,`decreased`,`greater_than`,`less_than`,`between`,`not_equal`],a=[n(`memory_first_scan`,e=>e.desc(`Start a new memory scan session.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`value`,`Value to search for (as string, e.g. "100", "3.14", "48 65 6C 6C 6F")`).enum(`valueType`,[...r],`Data type of the value`).number(`alignment`,`Alignment in bytes (0=unaligned, 4=4-byte aligned). Default: natural alignment for the type.`).number(`maxResults`,`Maximum results to return (default: 1,000,000)`).prop(`regionFilter`,{type:`object`,properties:{writable:{type:`boolean`,description:`Only scan writable regions`},executable:{type:`boolean`,description:`Only scan executable regions`},moduleOnly:{type:`boolean`,description:`Only scan module-backed regions`}},description:`Filter which memory regions to scan`}).requiredOpenWorld(`value`,`valueType`)),n(`memory_next_scan`,e=>e.desc(`Narrow an existing scan session.`).string(`sessionId`,`Scan session ID`).enum(`mode`,[...i],`Comparison mode`).string(`value`,`Target value for exact/greater_than/less_than/between/not_equal modes`).string(`value2`,`Upper bound value for "between" mode`).requiredOpenWorld(`sessionId`,`mode`)),n(`memory_unknown_scan`,e=>e.desc(`Start an unknown initial value scan.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).enum(`valueType`,[...r],`Data type to capture`).number(`alignment`,`Alignment in bytes (default: natural for type)`).number(`maxResults`,`Maximum addresses to capture (default: 5,000,000)`).prop(`regionFilter`,{type:`object`,properties:{writable:{type:`boolean`},executable:{type:`boolean`},moduleOnly:{type:`boolean`}}}).requiredOpenWorld(`valueType`)),n(`memory_pointer_scan`,e=>e.desc(`Find pointers to a target address.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`targetAddress`,`Target address to find pointers to (hex, e.g. "0x7FF612340000")`).number(`maxResults`,`Maximum results (default: 10,000)`).boolean(`moduleOnly`,`Only scan module-backed regions`).required(`targetAddress`).query().openWorld()),n(`memory_group_scan`,e=>e.desc(`Search for multiple values at known offsets simultaneously.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).array(`pattern`,{type:`object`,properties:{offset:{type:`number`,description:`Byte offset from base`},value:{type:`string`,description:`Expected value at offset`},type:{type:`string`,enum:[...r],description:`Value type at offset`}},required:[`offset`,`value`,`type`]},`Array of {offset, value, type} patterns`).number(`alignment`,`Alignment for base address (default: 4)`).number(`maxResults`,`Maximum results (default: 1,000,000)`).required(`pattern`).query()),n(`memory_scan_session`,e=>e.desc(`Manage scan sessions. Actions: list (all sessions), delete (by sessionId), export (as JSON).`).enum(`action`,[`list`,`delete`,`export`],`Session management action`).string(`sessionId`,`Scan session ID (required for delete/export)`).required(`action`)),n(`memory_pointer_chain`,e=>e.desc(`Pointer chain operations: scan (find chains to target), validate, resolve, or export as JSON.`).enum(`action`,[`scan`,`validate`,`resolve`,`export`],`Chain operation`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`targetAddress`,`Target address hex (action=scan)`).number(`maxDepth`,`Max chain depth 1-6 (action=scan, default: 4)`).number(`maxOffset`,`Max offset per level in bytes (action=scan, default: 4096)`).boolean(`staticOnly`,`Only module-relative chains (action=scan, default: false)`).array(`modules`,{type:`string`},`Only scan specific modules (action=scan)`).number(`maxResults`,`Max chains to return (action=scan, default: 1000)`).string(`chains`,`JSON PointerChain[] (action=validate/export)`).string(`chain`,`JSON single PointerChain (action=resolve)`).required(`action`)),n(`memory_structure_analyze`,e=>e.desc(`Analyze memory at an address to infer data structure layout.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`address`,`Base address of the structure (hex)`).number(`size`,`Size to analyze in bytes (default: 256)`).array(`otherInstances`,{type:`string`},`Additional instance addresses for cross-comparison`).boolean(`parseRtti`,`Whether to attempt RTTI parsing (default: true)`).required(`address`).query()),n(`memory_vtable_parse`,e=>e.desc(`Parse a vtable to enumerate virtual function pointers and resolve them to module+offset. Also attempts RTTI parsing for class name and inheritance hierarchy.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`vtableAddress`,`Address of the vtable (hex)`).required(`vtableAddress`).query()),n(`memory_structure_export_c`,e=>e.desc(`Export an inferred structure as a C-style struct definition with offset comments and type annotations.`).string(`structure`,`JSON string of InferredStruct to export`).string(`name`,`Struct name (defaults to RTTI class name or "UnknownStruct")`).required(`structure`).query()),n(`memory_structure_compare`,e=>e.desc(`Compare two structure instances to identify which fields differ (dynamic values like health/position) vs which are constant (vtable, type flags). Useful for finding important fields.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`address1`,`First instance address (hex)`).string(`address2`,`Second instance address (hex)`).number(`size`,`Size to compare in bytes (default: 256)`).required(`address1`,`address2`).query()),n(`memory_breakpoint`,e=>e.desc(`Hardware breakpoint via x64 debug registers (DR0-DR3). Actions: set, remove, list, trace.`).enum(`action`,[`set`,`remove`,`list`,`trace`],`Breakpoint operation`).number(`pid`,`Target process ID (optional when a browser session is attached; action=set/trace)`).string(`address`,`Address hex (action=set/trace)`).enum(`access`,[`read`,`write`,`readwrite`,`execute`],`Access type (action=set/trace)`).number(`size`,`Watch size in bytes (action=set, default: 4)`).string(`breakpointId`,`Breakpoint ID (action=remove)`).number(`maxHits`,`Max hits to collect (action=trace, default: 50)`).number(`timeoutMs`,`Timeout ms (action=trace, default: 10000)`).required(`action`).destructive()),n(`memory_find_accesses`,e=>e.desc(`Find what writes to or accesses a memory address (Cheat Engine MWT workflow). Sets a hardware breakpoint on the target address, auto-rearms after each hit, captures the faulting instruction address + context + timestamp, and optionally disassembles the instruction. Returns aggregated hits with per-hit instruction details.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`address`,`Memory address to watch (hex, e.g. "0x7FF612340000")`).enum(`mode`,[`write`,`readwrite`],`Access mode: write (only writes) or readwrite (reads and writes)`).number(`size`,`Watch size in bytes: 1, 2, 4, or 8 (default: 4)`).number(`maxHits`,`Maximum hits before auto-stop (default: 20)`).number(`timeoutMs`,`Timeout in ms before auto-stop (default: 15000)`).boolean(`disassemble`,`Whether to disassemble the faulting instruction (default: true)`).required(`address`,`mode`).query()),n(`memory_patch_bytes`,e=>e.desc(`Write bytes to target process at address. Saves original bytes for undo. Use for runtime code patching.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`address`,`Address to patch (hex)`).array(`bytes`,{type:`number`},`Byte values to write (e.g. [0x90, 0x90])`).required(`address`,`bytes`).destructive().openWorld()),n(`memory_patch_nop`,e=>e.desc(`NOP out instructions at address (replace with 0x90). Useful for disabling checks or jumps.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`address`,`Address to NOP (hex)`).number(`count`,`Number of bytes to NOP`).required(`address`,`count`).destructive()),n(`memory_patch_undo`,e=>e.desc(`Undo a previous patch by restoring the original bytes.`).string(`patchId`,`Patch ID to undo`).required(`patchId`).destructive()),n(`memory_code_caves`,e=>e.desc(`Find code caves (runs of 0x00 or 0xCC) in executable sections of loaded modules. Returns largest caves first.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).number(`minSize`,`Minimum cave size in bytes (default: 16)`).required().query()),n(`memory_write_value`,e=>e.desc(`Write a typed value to a memory address. Supports undo/redo via memory_write_history(action=undo|redo).`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`address`,`Address to write to (hex)`).string(`value`,`Value to write (as string)`).enum(`valueType`,[...r],`Data type of the value`).required(`address`,`value`,`valueType`).destructive()),n(`memory_freeze`,e=>e.desc(`Freeze or unfreeze a memory address. Freeze continuously writes a value to prevent changes; unfreeze stops it.`).enum(`action`,[`freeze`,`unfreeze`],`Freeze operation`).number(`pid`,`Target process ID (optional when a browser session is attached; action=freeze)`).string(`address`,`Address to freeze hex (action=freeze)`).string(`value`,`Value to maintain (action=freeze)`).enum(`valueType`,[...r],`Data type (action=freeze)`).number(`intervalMs`,`Write interval ms (action=freeze, default: 100)`).string(`freezeId`,`Freeze ID to remove (action=unfreeze)`).required(`action`).destructive()),n(`memory_dump`,e=>e.desc(`Dump memory region as hex with ASCII column. Outputs a formatted hex dump similar to xxd.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`address`,`Start address (hex)`).number(`size`,`Size to dump in bytes (default: 256)`).required(`address`).query()),n(`memory_speedhack`,e=>e.desc(`Hook time APIs (GetTickCount64/GetTickCount/QueryPerformanceCounter) to scale process time via an in-process SSE2 trampoline. Actions: apply (hook + set speed), set (adjust speed without re-hooking), restore (unhook and restore original functions). Speed range 0.01–100x; values outside this range are rejected to avoid destabilising the target.`).enum(`action`,[`apply`,`set`,`restore`],`Speedhack action`).number(`pid`,`Target process ID (optional when a browser session is attached)`).number(`speed`,`Speed multiplier (0.01–100)`).required(`action`).destructive()),n(`memory_write_history`,e=>e.desc(`Undo or redo the last memory write operation. Pass pid to scope the operation to a specific process — per-PID undo prevents reverting an unrelated process's write when multiple processes are being edited concurrently.`).enum(`action`,[`undo`,`redo`],`History action`).number(`pid`,`Target process ID — scopes undo/redo to this process (optional; omit for global)`).required(`action`).destructive().openWorld()),n(`memory_heap_enumerate`,e=>e.desc(`Enumerate all heaps and heap blocks in a process via Toolhelp32 snapshot. Returns heap list with block counts, sizes, and overall statistics.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).number(`maxBlocks`,`Maximum blocks to enumerate per heap (default: 10000)`).required().query()),n(`memory_heap_stats`,e=>e.desc(`Get detailed heap statistics with size distribution buckets (0-64B, 64B-1KB, 1-64KB, 64KB-1MB, >1MB), fragmentation ratio, and aggregate metrics.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).required().query()),n(`memory_heap_anomalies`,e=>e.desc(`Detect heap anomalies: heap spray patterns (many same-size blocks), possible use-after-free (non-zero free blocks), and suspicious block sizes (0 or >100MB).`).number(`pid`,`Target process ID (optional when a browser session is attached)`).required().query()),n(`memory_pe_headers`,e=>e.desc(`Parse PE headers (DOS, NT, File, Optional) from a module base address in process memory. Returns machine type, entry point, image base, section count, and data directory info.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`moduleBase`,`Module base address (hex, e.g. "0x7ff612340000") — Win32`).string(`moduleName`,`Module name/path substring (cross-platform: required on Linux/macOS to locate the on-disk ELF/Mach-O binary)`).required().query()),n(`memory_pe_imports_exports`,e=>e.desc(`Parse import and/or export tables from a PE module in process memory. Returns DLL names, function names, ordinals, hints, and forwarded exports. Cross-platform: parses ELF .dynsym / Mach-O LC_SYMTAB from disk when moduleName is given on Linux/macOS.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`moduleBase`,`Module base address (hex) — Win32`).string(`moduleName`,`Module name/path substring (cross-platform: required on Linux/macOS)`).enum(`table`,[`imports`,`exports`,`both`],`Which table to parse`,{default:`both`}).required().query()),n(`memory_inline_hook_detect`,e=>e.desc(`Detect hooks in process modules. scanMode "inline" (default) compares the first 16 bytes of each exported function disk-vs-memory and recognises 8 hook patterns (JMP/CALL/short-jmp/MOV+JMP/MOV+CALL/PUSH+RET/INT3/padding). scanMode "iat" detects Import Address Table hooks (entries redirected outside their source module — evades inline detection, used by EasyHook/MinHook/Detours). scanMode "both" runs both scans.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`moduleName`,`Module name filter (optional — scans all modules if omitted)`).string(`startAddress`,`Hex address of the code range to scan (cross-platform raw mode — required on Linux/macOS where there is no PE export table)`).number(`size`,`Byte length of the range to scan in cross-platform raw mode (default 4096)`).enum(`scanMode`,[`inline`,`iat`,`both`],`Hook scan mode (default: inline)`,{default:`inline`}).required().query()),n(`memory_anticheat_detect`,e=>e.desc(`Scan process imports for anti-debug/anti-cheat mechanisms: IsDebuggerPresent, NtQueryInformationProcess, timing checks (QPC, GetTickCount), thread hiding, heap flag checks, and DR register inspection. Each detection includes a bypass suggestion.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).required().query()),n(`memory_guard_pages`,e=>e.desc(`Find all memory regions with PAGE_GUARD protection in a process. Guard pages are often used as anti-tampering mechanisms or stack overflow detection.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).number(`maxRegions`,`Maximum regions to scan before stopping (default: 10000)`).required().query()),n(`memory_integrity_check`,e=>e.desc(`Check executable memory regions against their corresponding on-disk PE files (.text sections) to detect modifications like inline hooks or code patches.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).number(`maxSections`,`Maximum sections to check before stopping (default: 100)`).required().query()),n(`memory_region_enumerate`,e=>e.desc(`Enumerate memory regions in a target process. Cross-platform: Windows (VirtualQueryEx), macOS (mach_vm_region), Linux (/proc/pid/maps). Returns base address, size, protection (r/w/x/rw/rx/rwx), state, type (image/mapped/private), and module name (if module-backed).`).number(`pid`,`Target process ID (optional when a browser session is attached)`).enum(`protection`,[`r`,`w`,`x`,`rw`,`rx`,`wx`,`rwx`],`Filter by protection (optional)`).string(`moduleName`,`Filter regions by module name (optional, case-insensitive substring match)`).number(`maxRegions`,`Maximum regions to return (default: 500)`).required().query()),n(`memory_aob_scan`,e=>e.desc(`Array-of-Bytes scan with wildcard support. Search for byte patterns like "48 8B ?? ?? 00 00" across readable memory. Accepts hex bytes (00-FF, optional 0x prefix) and "??" wildcards. Case insensitive.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`pattern`,`AOB pattern: space-separated hex bytes (00-FF) and "??" wildcards. Example: "48 8B ?? ?? 00 00".`).string(`moduleName`,`Restrict scan to a specific module (optional, case-insensitive)`).number(`maxResults`,`Maximum results to return (default: 10000)`).required(`pattern`).query()),n(`memory_parse_dump`,e=>e.desc(`Parse a Windows Minidump (.dmp) file and extract forensic information: loaded modules (base/size/name/timestamp), threads (ID/stack/context), memory ranges (64-bit or 32-bit), system info (OS/CPU), and exception records. Optionally resolve a list of addresses against the dump contents. Pure TS — cross-platform (can analyze Windows dumps on Linux/macOS).`).string(`filePath`,`Absolute or relative path to the .dmp file`).boolean(`includeModules`,`Include module list (default: true)`,{default:!0}).boolean(`includeThreads`,`Include thread list (default: true)`,{default:!0}).boolean(`includeMemoryRanges`,`Include memory ranges (default: true)`,{default:!0}).boolean(`includeException`,`Include exception record (default: true)`,{default:!0}).boolean(`includeSystemInfo`,`Include system information (default: true)`,{default:!0}).array(`resolveAddresses`,{type:`string`},`Optional list of addresses to resolve against the dump`).required(`filePath`))],o=`memory`,s=`memoryScanHandlers`,c=(process.env.JSHOOK_REGISTRY_PLATFORM===`win32`||process.env.JSHOOK_REGISTRY_PLATFORM===`linux`||process.env.JSHOOK_REGISTRY_PLATFORM===`darwin`?process.env.JSHOOK_REGISTRY_PLATFORM:process.platform)===`win32`;let l=null,u=null;async function d(e){let{MemoryScanHandlers:n}=await import(`./handlers.impl-BTXLw6Qc.mjs`);l=e;let r=e;if(r[s])return r[s];let[i,a,o,d,f,p,m]=await Promise.all([import(`./MemoryScanner-DAxsq7Sx.mjs`),import(`./MemoryScanSession-BZ2A9Ph1.mjs`),import(`./PointerChainEngine-B6SYv6ZM.mjs`),import(`./StructureAnalyzer-CCTWAXR3.mjs`),import(`./CodeInjector-B099WO6x.mjs`),import(`./MemoryController-CCsGuGJS.mjs`),import(`./HeapAnalyzer-bJbLvzp6.mjs`)]);if(u||=new t,c){let[t,c,l,h]=await Promise.all([import(`./HardwareBreakpoint-C_lJ22bj.mjs`),import(`./Speedhack-MGoeq1ZS.mjs`),import(`./PEAnalyzer-CB_kaTis.mjs`).then(e=>e.n),import(`./AntiCheatDetector-B-mz4DK_.mjs`)]);r[s]=new n(i.memoryScanner,a.scanSessionManager,o.pointerChainEngine,d.structureAnalyzer,t.hardwareBreakpointEngine,f.codeInjector,p.memoryController,c.speedhack,m.heapAnalyzer,l.peAnalyzer,h.antiCheatDetector,e.eventBus,u,e)}else r[s]=new n(i.memoryScanner,a.scanSessionManager,o.pointerChainEngine,d.structureAnalyzer,null,f.codeInjector,p.memoryController,null,m.heapAnalyzer,null,null,e.eventBus,u,e);return r[s]}function f(t){return n=>{let r=n[s];return n=>{let i=n._meta,a;return i?.progressToken!==void 0&&l&&(a=e(l.eventBus,i.progressToken)),t(r,{...n,onProgress:a})}}}function p(e){let t=a.find(t=>t.name===e);if(!t)throw Error(`Memory tool not found: ${e}`);return t}const m=new Set([`memory_breakpoint`,`memory_find_accesses`,`memory_speedhack`]),h=[{tool:p(`memory_first_scan`),domain:o,bind:f((e,t)=>e.handleFirstScan(t))},{tool:p(`memory_next_scan`),domain:o,bind:f((e,t)=>e.handleNextScan(t))},{tool:p(`memory_unknown_scan`),domain:o,bind:f((e,t)=>e.handleUnknownScan(t))},{tool:p(`memory_pointer_scan`),domain:o,bind:f((e,t)=>e.handlePointerScan(t))},{tool:p(`memory_group_scan`),domain:o,bind:f((e,t)=>e.handleGroupScan(t))},{tool:p(`memory_scan_session`),domain:o,bind:f((e,t)=>e.handleScanSessionDispatch(t))},{tool:p(`memory_pointer_chain`),domain:o,bind:f((e,t)=>e.handlePointerChainDispatch(t))},{tool:p(`memory_structure_analyze`),domain:o,bind:f((e,t)=>e.handleStructureAnalyze(t))},{tool:p(`memory_vtable_parse`),domain:o,bind:f((e,t)=>e.handleVtableParse(t))},{tool:p(`memory_structure_export_c`),domain:o,bind:f((e,t)=>e.handleStructureExportC(t))},{tool:p(`memory_structure_compare`),domain:o,bind:f((e,t)=>e.handleStructureCompare(t))},{tool:p(`memory_breakpoint`),domain:o,bind:f((e,t)=>e.handleBreakpointDispatch(t))},{tool:p(`memory_patch_bytes`),domain:o,bind:f((e,t)=>e.handlePatchBytes(t))},{tool:p(`memory_patch_nop`),domain:o,bind:f((e,t)=>e.handlePatchNop(t))},{tool:p(`memory_patch_undo`),domain:o,bind:f((e,t)=>e.handlePatchUndo(t))},{tool:p(`memory_code_caves`),domain:o,bind:f((e,t)=>e.handleCodeCaves(t))},{tool:p(`memory_write_value`),domain:o,bind:f((e,t)=>e.handleWriteValue(t))},{tool:p(`memory_freeze`),domain:o,bind:f((e,t)=>e.handleFreezeDispatch(t))},{tool:p(`memory_dump`),domain:o,bind:f((e,t)=>e.handleDump(t))},{tool:p(`memory_speedhack`),domain:o,bind:f((e,t)=>e.handleSpeedhackDispatch(t))},{tool:p(`memory_write_history`),domain:o,bind:f((e,t)=>e.handleWriteHistoryDispatch(t))},{tool:p(`memory_heap_enumerate`),domain:o,bind:f((e,t)=>e.handleHeapEnumerate(t))},{tool:p(`memory_heap_stats`),domain:o,bind:f((e,t)=>e.handleHeapStats(t))},{tool:p(`memory_heap_anomalies`),domain:o,bind:f((e,t)=>e.handleHeapAnomalies(t))},{tool:p(`memory_pe_headers`),domain:o,bind:f((e,t)=>e.handlePEHeaders(t))},{tool:p(`memory_pe_imports_exports`),domain:o,bind:f((e,t)=>e.handlePEImportsExports(t))},{tool:p(`memory_inline_hook_detect`),domain:o,bind:f((e,t)=>e.handleInlineHookDetect(t))},{tool:p(`memory_anticheat_detect`),domain:o,bind:f((e,t)=>e.handleAntiCheatDetect(t))},{tool:p(`memory_guard_pages`),domain:o,bind:f((e,t)=>e.handleGuardPages(t))},{tool:p(`memory_integrity_check`),domain:o,bind:f((e,t)=>e.handleIntegrityCheck(t))},{tool:p(`memory_region_enumerate`),domain:o,bind:f((e,t)=>e.handleRegionEnumerate(t))},{tool:p(`memory_aob_scan`),domain:o,bind:f((e,t)=>e.handleAobScan(t))},{tool:p(`memory_find_accesses`),domain:o,bind:f((e,t)=>e.handleFindAccesses(t))},{tool:p(`memory_parse_dump`),domain:o,bind:f((e,t)=>e.handleMemoryParseDump(t))}],g={kind:`domain-manifest`,version:1,domain:o,depKey:s,profiles:[`full`],ensure:d,registrations:c?h:h.filter(e=>!m.has(e.tool.name)),workflowRule:{patterns:[/memory\s*scan/i,/cheat\s*engine/i,/find\s*(value|address|variable|struct)/i,/scan\s*(for|memory)/i,/aob\s*scan|signature\s*scan|byte\s*pattern/i,/region\s*(enum|list)/i,/pointer\s*(chain|scan)/i,/struct(ure)?\s*(analy|infer|dissect)/i,/vtable|rtti/i,/breakpoint|watchpoint|hardware\s*bp/i,/find\s*(what|access|write|read).*address/i,/MWT|memory\s*write\s*trace/i,/patch\s*(byte|nop|code)/i,/code\s*cave/i,/freeze|unfreeze/i,/speedhack|time\s*(hack|scale)/i,/memory\s*(dump|hex)/i,/undo|redo/i,/heap|堆\s*(分析|枚举|异常)/i,/PE\s*(header|import|export)|inline.*hook/i,/anti.?cheat|anti.?debug|反作弊|反调试/i,/guard\s*page|integrity\s*check|代码完整性/i,/内存\s*(扫描|搜索|分析|结构|断点|注入|冻结|加速|堆|模块|反作弊)/i],priority:90,tools:[`memory_first_scan`,`memory_next_scan`,`memory_unknown_scan`,`memory_aob_scan`,`memory_region_enumerate`,`memory_pointer_chain`,`memory_structure_analyze`,`memory_vtable_parse`,`memory_scan_session`,...c?[`memory_breakpoint`,`memory_find_accesses`,`memory_speedhack`]:[],`memory_patch_bytes`,`memory_freeze`,`memory_dump`,...c?[`memory_speedhack`,`memory_heap_enumerate`,`memory_pe_headers`,`memory_anticheat_detect`]:[],`memory_write_history`],hint:c?`Memory domain: scan → narrow → pointer chain → structure | breakpoint trace → patch/NOP → freeze speedhack | heap analysis | PE introspection | anti-cheat detection`:`Memory domain: scan → narrow → pointer chain → structure | patch/NOP → freeze | dump`}};export{g as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DJDnkQW2.mjs";import{n as t}from"./bind-helpers-D0mGAOof.mjs";import{t as n}from"./tool-builder-CpLh-UQd.mjs";const r=[`etw`,`strace`,`dtrace`],i={type:`object`,properties:{timestamp:{type:`number`,description:`Relative elapsed time in milliseconds since bpftrace start`},pid:{type:`number`,description:`Process identifier`},syscall:{type:`string`,description:`Observed syscall name`},args:{type:`array`,description:`Stringified syscall arguments`,items:{type:`string`}},returnValue:{type:`number`,description:`Numeric syscall return value if available`},duration:{type:`number`,description:`Execution duration in milliseconds if available`}},required:[`timestamp`,`pid`,`syscall`,`args`]},a=[n(`syscall_start_monitor`,e=>e.desc(`Start syscall monitoring.`).enum(`backend`,r,`Syscall capture backend`).number(`pid`,`Optional PID to scope monitoring to a single process`).boolean(`simulate`,`Use synthetic events instead of a real system tracer`,{default:!1}).array(`etwProviders`,{type:`string`},`ETW (Windows) named providers to enable beyond the legacy NT Kernel Logger: nt-kernel | kernel-process | kernel-network | kernel-file | kernel-image. Ignored on non-Windows backends.`).required(`backend`)),n(`syscall_stop_monitor`,e=>e.desc(`Stop syscall interception and release all captured events.`).idempotent()),n(`syscall_capture_events`,e=>e.desc(`Capture syscall events from the active or last monitoring session.`).prop(`filter`,{type:`object`,description:`Optional event filter`,properties:{name:{type:`array`,description:`Restrict events to specific syscall names`,items:{type:`string`}},pid:{type:`number`,description:`Restrict events to a specific process ID`}}}).number(`minTimestamp`,`Return only events with timestamp >= this value`).number(`maxTimestamp`,`Return only events with timestamp <= this value`).number(`limit`,`Maximum number of most recent events to return after filters`,{minimum:1}).boolean(`includeSummary`,`Include aggregate counts by syscall and PID`,{default:!0}).query()),n(`syscall_correlate_js`,e=>e.desc(`Correlate captured syscalls with likely JavaScript functions.`).array(`syscallEvents`,i,`Syscall events to correlate`).required(`syscallEvents`).query()),n(`syscall_filter`,e=>e.desc(`Filter captured syscall events by name, PID, or return value.`).array(`names`,{type:`string`},`Syscall names to keep`).number(`pid`,`Restrict events to a specific process ID`).number(`returnValueMin`,`Keep events whose returnValue >= this value`).number(`returnValueMax`,`Keep events whose returnValue <= this value`).boolean(`errorOnly`,`Keep only events with returnValue < 0 (syscalls returning an error code)`,{default:!1}).query()),n(`syscall_get_stats`,e=>e.desc(`Get syscall monitoring statistics.`).query()),n(`syscall_ebpf_trace`,e=>e.desc(`Trace syscalls on Linux with eBPF. Requires root or CAP_BPF.`).number(`pid`,`Process ID to trace. 0 = trace all.`,{default:0}).array(`syscalls`,{type:`string`},`Specific syscall names to trace (empty = all)`).number(`durationSec`,`Trace duration in seconds`,{default:10,minimum:1,maximum:300}).boolean(`simulate`,`Use synthetic events when bpftrace is unavailable`,{default:!1}).query()),n(`syscall_resolve_ssn`,e=>e.desc(`Resolve NT syscall service numbers (SSN) from on-disk ntdll.dll. Parses the export table to extract Zw* → SSN mappings and locates a syscall;ret gadget for direct invocation stubs. Win32 only.`).string(`ntdllPath`,`Optional custom path to ntdll.dll for offline analysis`).query()),n(`syscall_direct_invoke`,e=>e.desc(`Direct NT syscall invocation guidance. Resolves SSN for a given NT function and returns a stub template with usage instructions for in-process direct syscall invocation. Bypasses user-mode hooks on ntdll.dll. Win32 only.`).string(`functionName`,`NT function name (e.g. NtOpenProcess, NtAllocateVirtualMemory)`).required(`functionName`)),n(`syscall_stack_capture`,e=>e.desc(`Correlate captured syscall events with real JS call stacks via debugger integration. Goes beyond static heuristics by querying live CDP call stacks for syscall→JS mapping. Falls back to heuristic-only mode when no debugger is attached.`).number(`maxEvents`,`Maximum number of recent syscall events to correlate (default: 20)`,{default:20,minimum:1,maximum:200}).boolean(`useDebugger`,`Attempt CDP call stack capture (default: true)`,{default:!0}).query()),n(`syscall_trace_compare`,e=>e.desc(`Diff two syscall trace snapshots to find appeared/disappeared syscalls and frequency changes. Useful for understanding what OS calls a JS operation triggers. Capture baseline events → perform the operation → capture target events → pass both arrays here. Use syscall_capture_events (or syscall_trace_export) to obtain each snapshot.`).array(`baselineEvents`,i,`Baseline syscall events (before the operation)`).array(`targetEvents`,i,`Target syscall events (after the operation)`).number(`maxDeltas`,`Maximum frequency delta entries to return (default: 30)`,{default:30}).required(`baselineEvents`,`targetEvents`).query()),n(`syscall_trace_export`,e=>e.desc(`Export captured syscall events to portable NDJSON with optional time-range filtering and deduplication. Returns both structured array and NDJSON string.`).number(`minTimestamp`,`Filter events with timestamp >= this value`).number(`maxTimestamp`,`Filter events with timestamp <= this value`).boolean(`deduplicate`,`Remove duplicate events within a time window`,{default:!1}).number(`dedupWindowMs`,`Deduplication time window in ms (default: 100)`,{default:100}).boolean(`includeNdjson`,`Include NDJSON string in output (default: true)`,{default:!0}).query()),n(`syscall_ebpf_attach`,e=>e.desc(`Live eBPF syscall attach — spawns a bpftrace process, captures syscall events as structured JSON in real time, and returns them directly. Unlike syscall_ebpf_trace (script-generator), this tool actually runs bpftrace and captures output. Falls back to script mode on non-Linux or when bpftrace is unavailable. Requires bpftrace + CAP_BPF or root on Linux.`).number(`pid`,`Process ID to trace. 0 = trace all.`,{default:0}).array(`syscalls`,{type:`string`},`Specific syscall names to trace (empty = all)`).number(`durationSec`,`Trace duration in seconds`,{default:10,minimum:1,maximum:300}).boolean(`output`,`Return all captured JSON lines in the raw output`,{default:!1}).boolean(`simulate`,`Use synthetic events when bpftrace is unavailable`,{default:!1}).query()),n(`syscall_origin_map`,e=>e.desc(`Build a unified syscall→JS origin map by integrating live CDP call stacks (syscall_stack_capture) with static timing heuristics (syscall_correlate_js). Aggregates recent syscall events by JavaScript function so callers can see which JS function triggered which syscalls and how often. Debugger stacks are preferred when available; heuristics fill the gaps.`).number(`maxEvents`,`Maximum number of recent syscall events to analyze (default: 50)`,{default:50,minimum:1,maximum:500}).boolean(`useDebugger`,`Attempt CDP call stack capture (default: true)`,{default:!0}).query()),n(`syscall_pattern_detect`,e=>e.desc(`Scan captured syscall events for behavioral patterns relevant to reverse engineering: anti-debug probes (ptrace / IsDebuggerPresent), system fingerprinting (uname / getuid), filesystem enumeration (openat + getdents), network beaconing (connect / sendto), process spawning (clone / execve), and Windows registry probing. Returns classified patterns with evidence.`).number(`maxEvents`,`Maximum number of recent syscall events to scan (default: 200)`,{default:200,minimum:1,maximum:2e3}).query())],o=`syscall-hook`,s=`syscallHookHandlers`,c=(process.env.JSHOOK_REGISTRY_PLATFORM===`win32`||process.env.JSHOOK_REGISTRY_PLATFORM===`linux`||process.env.JSHOOK_REGISTRY_PLATFORM===`darwin`?process.env.JSHOOK_REGISTRY_PLATFORM:process.platform)===`win32`,l=t({domain:o,depKey:s,lookup:e(a),entries:[{tool:`syscall_start_monitor`,method:`handleSyscallStartMonitorTool`},{tool:`syscall_stop_monitor`,method:`handleSyscallStopMonitorTool`},{tool:`syscall_capture_events`,method:`handleSyscallCaptureEventsTool`},{tool:`syscall_correlate_js`,method:`handleSyscallCorrelateJsTool`},{tool:`syscall_filter`,method:`handleSyscallFilterTool`},{tool:`syscall_get_stats`,method:`handleSyscallGetStatsTool`},{tool:`syscall_ebpf_trace`,method:`handleSyscallEbpfTraceTool`},{tool:`syscall_resolve_ssn`,method:`handleSyscallResolveSsnTool`},{tool:`syscall_direct_invoke`,method:`handleSyscallDirectInvokeTool`},{tool:`syscall_stack_capture`,method:`handleSyscallStackCaptureTool`},{tool:`syscall_trace_compare`,method:`handleSyscallTraceCompareTool`},{tool:`syscall_trace_export`,method:`handleSyscallTraceExportTool`},{tool:`syscall_ebpf_attach`,method:`handleSyscallEbpfAttachTool`},{tool:`syscall_origin_map`,method:`handleSyscallOriginMapTool`},{tool:`syscall_pattern_detect`,method:`handleSyscallPatternDetectTool`}]}),u=new Set([`syscall_resolve_ssn`,`syscall_direct_invoke`]),d=c?l:l.filter(e=>!u.has(e.tool.name));async function f(e){let{SyscallHookHandlers:t}=await import(`./handlers-CnTTSJFs.mjs`),n=e.getDomainInstance(s);if(n)return n;let r=new t(void 0,void 0,e.eventBus,void 0,e);return e.setDomainInstance(s,r),r}const p={kind:`domain-manifest`,version:1,domain:o,depKey:s,profiles:[`full`],ensure:f,registrations:d,workflowRule:{patterns:[/\b(syscall|etw|strace|dtrace|kernel|system\s?call)\b/i,/(syscall|kernel).*(trace|monitor|capture|filter)/i],priority:78,tools:[`syscall_start_monitor`,`syscall_capture_events`,`syscall_correlate_js`],hint:`Syscall tracing: start monitor (ETW/strace/dtrace) → capture events → correlate with JS stacks.`},prerequisites:{syscall_start_monitor:[{condition:`Administrator/root privileges required for ETW and dtrace; Linux strace needs ptrace_scope=0`,fix:`Run the MCP server with elevated privileges, or relax kernel restrictions on Linux`}],syscall_correlate_js:[{condition:`A debugger or v8-inspector session must expose JS stacks`,fix:`Attach the debugger or v8-inspector domain before correlating`}]},toolDependencies:[{from:`memory`,to:`syscall-hook`,relation:`uses`,weight:.5}]};export{p as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DJDnkQW2.mjs";import{n as t}from"./bind-helpers-D0mGAOof.mjs";import{n,t as r}from"./definitions-D1dxl8qt.mjs";import{resolve as i}from"node:path";const a=`coordination`,o=`coordinationHandlers`,s=e([...n,...r]),c=t({domain:a,depKey:o,lookup:s,entries:[{tool:`create_task_handoff`,method:`handleCreateTaskHandoffTool`,profiles:[`full`]},{tool:`complete_task_handoff`,method:`handleCompleteTaskHandoffTool`,profiles:[`full`]},{tool:`update_task_handoff`,method:`handleUpdateTaskHandoffTool`,profiles:[`full`]},{tool:`get_task_context`,method:`handleGetTaskContextTool`,profiles:[`full`]},{tool:`append_session_insight`,method:`handleAppendSessionInsightTool`,profiles:[`full`]},{tool:`save_page_snapshot`,method:`handleSavePageSnapshotTool`,profiles:[`full`]},{tool:`restore_page_snapshot`,method:`handleRestorePageSnapshotTool`,profiles:[`full`]},{tool:`list_page_snapshots`,method:`handleListPageSnapshotsTool`,profiles:[`full`]},{tool:`coordination_restore_snapshot`,method:`handleCoordinationRestoreSnapshotTool`,profiles:[`full`]}]}),l=t({domain:a,depKey:`sharedStateBoardHandlers`,lookup:s,entries:[{tool:`state_board`,method:`handleDispatchTool`},{tool:`state_board_watch`,method:`handleWatchDispatchTool`},{tool:`state_board_io`,method:`handleIODispatchTool`}]});async function u(e){let{CoordinationHandlers:t,SharedStateBoardHandlers:n}=await import(`./coordination-C6y2gM9O.mjs`);e.coordinationHandlers||=new t(e);let r=e.getDomainInstance(`snapshotScheduler`),a=e.getDomainInstance(`snapshotStateDir`);return e.coordinationHandlers.setPersistNotifier(r?()=>r.notifyDirty():void 0),r&&a&&!e.getDomainInstance(`coordinationSnapshotRegistered`)&&(r.register(i(a,`coordination`,`current.json`),e.coordinationHandlers),e.setDomainInstance(`coordinationSnapshotRegistered`,!0)),e.sharedStateBoardHandlers||=new n,e.sharedStateBoardHandlers.setPersistNotifier(r?()=>r.notifyDirty():void 0),r&&a&&!e.getDomainInstance(`sharedStateBoardSnapshotRegistered`)&&(r.register(i(a,`state-board`,`current.json`),e.sharedStateBoardHandlers.getStore()),e.setDomainInstance(`sharedStateBoardSnapshotRegistered`,!0)),e.coordinationHandlers}const d={kind:`domain-manifest`,version:1,domain:a,depKey:o,secondaryDepKeys:[`sharedStateBoardHandlers`],profiles:[`workflow`,`full`],ensure:u,registrations:[...c,...l]};export{d as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DJDnkQW2.mjs";import{n as t}from"./bind-helpers-D0mGAOof.mjs";import{t as n}from"./tool-builder-CpLh-UQd.mjs";const r=[n(`trace_recording`,e=>e.desc(`Start or stop trace recording into a SQLite database.`).enum(`action`,[`start`,`stop`],`Recording action`).array(`cdpDomains`,{type:`string`},`CDP domains to record (default: Debugger, Runtime, Network, Page)`).boolean(`recordMemoryDeltas`,`Record memory write deltas`,{default:!0}).boolean(`recordResponseBodies`,`Persist response bodies when available.`,{default:!0}).boolean(`streamResponseChunks`,`Capture response chunks when the browser supports it.`,{default:!0}).number(`networkBodyMaxBytes`,`Maximum response body bytes to persist per request`,{default:10485760,minimum:1024,maximum:104857600}).number(`networkInlineBodyBytes`,`Bodies up to this size are stored inline in SQLite; larger ones go to artifacts`,{default:262144,minimum:1024,maximum:10485760}).required(`action`).idempotent()),n(`start_trace_recording`,e=>e.desc(`Start recording debugger traces into a SQLite database for time-travel.`).array(`cdpDomains`,{type:`string`},`CDP domains to record (default: Debugger, Runtime, Network, Page)`).boolean(`recordMemoryDeltas`,`Record memory write deltas`,{default:!0}).boolean(`recordResponseBodies`,`Persist response bodies when available.`,{default:!0}).boolean(`streamResponseChunks`,`Capture response chunks when the browser supports it.`,{default:!0}).number(`networkBodyMaxBytes`,`Maximum response body bytes to persist per request`,{default:10485760,minimum:1024,maximum:104857600}).number(`networkInlineBodyBytes`,`Bodies up to this size are stored inline in SQLite; larger ones go to artifacts`,{default:262144,minimum:1024,maximum:10485760}).idempotent()),n(`stop_trace_recording`,e=>e.desc(`Stop trace recording and return the final session summary.`).idempotent()),n(`query_trace_sql`,e=>e.desc(`Execute a read-only SQL query against a trace database.`).string(`sql`,`SQL query to execute (SELECT only — write operations are rejected)`).string(`dbPath`,`Path to trace DB file. Uses the active recording if omitted.`).required(`sql`).query()),n(`seek_to_timestamp`,e=>e.desc(`Reconstruct trace state at a specific timestamp.`).number(`timestamp`,`Target timestamp in milliseconds`).string(`dbPath`,`Path to trace DB file. Uses the active recording if omitted.`).number(`windowMs`,`Time window around timestamp to include in ms`,{default:100}).enum(`timeDomain`,[`wall`,`monotonic`],`Interpret timestamp using wall or monotonic time`,{default:`wall`}).enum(`direction`,[`forward`,`backward`,`both`],`Event-stream window direction: forward (timestamp..timestamp+windowMs), backward (timestamp-windowMs..timestamp), or both (symmetric, default). State snapshots stay most-recent-at-or-before timestamp regardless.`,{default:`both`}).required(`timestamp`).query()),n(`trace_get_network_flow`,e=>e.desc(`Get a recorded request-scoped network flow from a trace.`).string(`requestId`,`Network requestId to retrieve from the trace`).string(`dbPath`,`Path to trace DB file. Uses the active recording if omitted.`).boolean(`includeBody`,`Include persisted response body metadata/content when available`,{default:!0}).boolean(`includeChunks`,`Include recorded response chunk timing data`,{default:!0}).boolean(`includeEvents`,`Include related network events from the trace`,{default:!0}).number(`chunkLimit`,`Maximum number of chunks to return`,{default:200,minimum:1,maximum:5e3}).number(`maxBodyBytes`,`Maximum response body bytes to inline before summarizing`,{default:1e5,minimum:1024,maximum:52428800}).boolean(`returnSummary`,`Return body summary even when body is within maxBodyBytes`,{default:!1}).required(`requestId`).query()),n(`trace_get_samples`,e=>e.desc(`Query recorded CPU profile samples. mode="top" returns the hottest functions by self time (per-function rollup); mode="function" returns samples for one function; mode="window" returns samples near a timestamp. Ships NO hardcoded hot-function library — ordering is pure data projection, the caller decides what counts as hot.`).enum(`mode`,[`top`,`function`,`window`],`Query mode: top (hottest functions by self time), function (samples for one function), window (samples near a timestamp)`,{default:`top`}).string(`functionName`,`Function name to query (required for mode="function")`).number(`timestamp`,`Target timestamp in ms (required for mode="window")`).number(`windowMs`,`Half-window around timestamp in ms (mode="window")`,{default:100,minimum:1,maximum:6e4}).number(`startTimestamp`,`Optional window start in ms (mode="top" aggregation filter)`).number(`endTimestamp`,`Optional window end in ms (mode="top" aggregation filter)`).number(`limit`,`Maximum results to return`,{default:20,minimum:1,maximum:1e3}).string(`dbPath`,`Path to trace DB file. Uses the active recording if omitted.`).query()),n(`diff_heap_snapshots`,e=>e.desc(`Compare two heap snapshots from a trace.`).number(`snapshotId1`,`First snapshot ID (earlier)`).number(`snapshotId2`,`Second snapshot ID (later)`).string(`dbPath`,`Path to trace DB file. Uses the active recording if omitted.`).required(`snapshotId1`,`snapshotId2`).query()),n(`export_trace`,e=>e.desc(`Export a trace database. format="chrome-trace" (default) emits Chrome Trace Event JSON with per-category thread tracks, thread_name metadata, and CPU-profile flame-graph X events. format="har" emits HTTP Archive 1.4 joining network_resources + response bodies — interchange format for Burp/ZAP/Postman.`).enum(`format`,[`chrome-trace`,`har`,`perfetto`],`Export format: chrome-trace (default), har (HTTP Archive 1.2), or perfetto (binary protobuf)`,{default:`chrome-trace`}).string(`dbPath`,`Path to trace DB file. Uses the active recording if omitted.`).string(`outputPath`,`Output file path (auto-generated if omitted).`).idempotent()),n(`summarize_trace`,e=>e.desc(`Generate a compact summary of a trace database.`).enum(`detail`,[`compact`,`balanced`,`full`],`Summary detail level`,{default:`balanced`}).string(`dbPath`,`Path to trace DB file. Uses the active recording if omitted.`).query())],i=`trace`,a=`traceHandlers`,o=t({domain:i,depKey:a,lookup:e(r),entries:[{tool:`trace_recording`,method:`handleTraceRecordingTool`},{tool:`start_trace_recording`,method:`handleStartTraceRecordingTool`},{tool:`stop_trace_recording`,method:`handleStopTraceRecordingTool`},{tool:`query_trace_sql`,method:`handleQueryTraceSqlTool`},{tool:`seek_to_timestamp`,method:`handleSeekToTimestampTool`},{tool:`trace_get_samples`,method:`handleGetTraceSamplesTool`},{tool:`trace_get_network_flow`,method:`handleGetTraceNetworkFlowTool`},{tool:`diff_heap_snapshots`,method:`handleDiffHeapSnapshotsTool`},{tool:`export_trace`,method:`handleExportTraceTool`},{tool:`summarize_trace`,method:`handleSummarizeTraceTool`}]});async function s(e){let{TraceRecorder:t}=await import(`./TraceRecorder-BfeCTQUj.mjs`),{TraceToolHandlers:n}=await import(`./handlers-CoDx6akJ2.mjs`);return(!e.traceRecorder||!e.traceHandlers)&&(e.traceRecorder||=new t,e.traceHandlers||=new n(e.traceRecorder,e)),e.traceHandlers}const c={kind:`domain-manifest`,version:1,domain:i,depKey:a,profiles:[`full`],ensure:s,prerequisites:{},workflowRule:{patterns:[/trace/i,/time.?travel/i,/replay/i,/recorded?\s+events?/i],priority:70,tools:[`trace_recording`,`start_trace_recording`,`stop_trace_recording`,`query_trace_sql`,`seek_to_timestamp`,`trace_get_samples`,`trace_get_network_flow`,`diff_heap_snapshots`,`export_trace`,`summarize_trace`],hint:`Start recording → perform actions → stop recording → summarize/query/seek/diff/export`},registrations:o};export{c as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DJDnkQW2.mjs";import{n as t}from"./bind-helpers-D0mGAOof.mjs";import{t as n}from"./definitions-BpIQN2nm.mjs";const r=`proxy`,i=`proxyHandlers`,a=t({domain:r,depKey:i,lookup:e(n),entries:[{tool:`proxy_start`,method:`handleProxyStartTool`},{tool:`proxy_stop`,method:`handleProxyStopTool`},{tool:`proxy_status`,method:`handleProxyStatusTool`},{tool:`proxy_export_ca`,method:`handleProxyExportCaTool`},{tool:`proxy_add_rule`,method:`handleProxyAddRuleTool`},{tool:`proxy_remove_rule`,method:`handleProxyRemoveRuleTool`},{tool:`proxy_list_rules`,method:`handleProxyListRulesTool`},{tool:`proxy_clear_rules`,method:`handleProxyClearRulesTool`},{tool:`proxy_get_requests`,method:`handleProxyGetRequestsTool`},{tool:`proxy_clear_logs`,method:`handleProxyClearLogsTool`},{tool:`proxy_setup_adb_device`,method:`handleProxySetupAdbDeviceTool`}]});async function o(e){let{ProxyHandlers:t}=await import(`./proxy-DsHsQ1I4.mjs`);return e.proxyHandlers||=new t,e.proxyHandlers}const s={kind:`domain-manifest`,version:1,domain:r,depKey:i,profiles:[`full`],ensure:o,registrations:a};export{s as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DJDnkQW2.mjs";import{n as t}from"./bind-helpers-D0mGAOof.mjs";import{t as n}from"./tool-builder-CpLh-UQd.mjs";const r=[n(`extension_install`,e=>e.desc(`Install/register an extension from a manifest, local package directory, local module file, or remote module URL.`).string(`source`,`Local directory, package.json, module file, or http(s) module URL`).object(`manifest`,{id:{type:`string`,description:`Plugin identifier`},name:{type:`string`,description:`Display name`},version:{type:`string`,description:`Semantic version`},entry:{type:`string`,description:`Module entry path or URL`},permissions:{type:`array`,items:{type:`string`},description:`Declared plugin permissions`}},`Inline extension manifest. Top-level fields override this object.`).string(`id`,`Plugin identifier override`).string(`name`,`Plugin display name override`).string(`version`,`Plugin version override`).string(`entry`,`Module entry path or URL override`).array(`permissions`,{type:`string`},`Declared plugin permissions override`).openWorld()),n(`extension_list_installed`,e=>e.desc(`List installed extensions from the local registry.`).query()),n(`extension_info`,e=>e.desc(`Read installed extension manifest details without importing plugin code.`).string(`pluginId`,`Plugin identifier`).required(`pluginId`).query()),n(`extension_execute_in_context`,e=>e.desc(`Load an extension and execute a named exported context function.`).string(`pluginId`,`Plugin identifier`).string(`contextName`,`Exported function or context name`).prop(`args`,{type:`object`,description:`Arguments passed to the target context`,additionalProperties:!0}).requiredOpenWorld(`pluginId`,`contextName`)),n(`extension_reload`,e=>e.desc(`Reload an installed extension by unloading and loading it again.`).string(`pluginId`,`Plugin identifier`).requiredOpenWorld(`pluginId`)),n(`extension_uninstall`,e=>e.desc(`Uninstall an extension from the local registry.`).string(`pluginId`,`Plugin identifier`).required(`pluginId`).destructive()),n(`webhook`,e=>e.desc(`Manage webhook endpoints for external callbacks. Actions: create, list, delete, commands.`).enum(`action`,[`create`,`list`,`delete`,`commands`],`Webhook operation`).string(`name`,`Human-readable webhook name (action=create)`).string(`path`,`URL path for the webhook endpoint (action=create)`).string(`secret`,`Optional HMAC secret for webhook authentication (action=create)`).string(`url`,`Optional external callback URL for webhook forwarding (action=create)`).array(`events`,{type:`string`},`List of events to subscribe to (action=create)`).string(`endpointId`,`Webhook endpoint identifier (action=delete, commands)`).string(`status`,`Filter commands by status: pending, processing, completed, failed (action=commands)`).prop(`command`,{type:`object`,description:`Command to enqueue (action=commands, if provided adds to queue instead of listing)`,additionalProperties:!0}).required(`action`))],i=`extension-registry`,a=`extensionRegistryHandlers`,o=t({domain:i,depKey:a,lookup:e(r),entries:[{tool:`extension_install`,method:`handleInstallTool`},{tool:`extension_list_installed`,method:`handleListInstalledTool`},{tool:`extension_info`,method:`handleInfoTool`},{tool:`extension_execute_in_context`,method:`handleExecuteInContextTool`},{tool:`extension_reload`,method:`handleReloadTool`},{tool:`extension_uninstall`,method:`handleUninstallTool`},{tool:`webhook`,method:`handleWebhookDispatchTool`}]});async function s(e){let{ExtensionRegistryHandlers:t}=await import(`./handlers-BHIu1LqA.mjs`),n=e.getDomainInstance(a);if(n)return n;let r=new t;return e.setDomainInstance(a,r),r.startWebhookServer().catch(()=>void 0),r}const c={kind:`domain-manifest`,version:1,domain:i,depKey:a,profiles:[`full`],ensure:s,registrations:o,workflowRule:{patterns:[/\b(extension|plugin|addon|webhook|c2|registry)\b/i,/(install|uninstall|reload).*(extension|plugin)/i],priority:70,tools:[`extension_install`,`extension_list_installed`,`extension_info`,`webhook`,`extension_execute_in_context`],hint:`Plugin lifecycle (install/info/list/execute/reload/uninstall) + webhook C2 endpoint management.`},prerequisites:{extension_install:[{condition:`Local package sources must include package.json or pass an inline manifest`,fix:`Pass manifest.{id,name,version,entry} or use a package directory/file with resolvable entry metadata`}],webhook:[{condition:`Webhook listen port must be free`,fix:"Pick an unused port via the `port` argument or stop the conflicting service"}]},toolDependencies:[{from:`extension_info`,to:`extension_list_installed`,relation:`suggests`,weight:.4},{from:`webhook`,to:`extension_list_installed`,relation:`suggests`,weight:.5}]};export{c as default};
@@ -0,0 +1 @@
1
+ import{n as e}from"./ServerRuntimeState-DGXNv8Ji.mjs";import{t}from"./BrowserSessionCoordinator-Cdic8FsH.mjs";import{t as n}from"./ensure-browser-core-BP70x0TB.mjs";import{t as r}from"./registry-DJDnkQW2.mjs";import{n as i}from"./bind-helpers-D0mGAOof.mjs";import{n as a,t as o}from"./definitions-B11MudW_.mjs";const s=`browser`,c=`browserHandlers`,l=i({domain:s,depKey:c,lookup:r([...o,...a]),entries:[{tool:`get_detailed_data`,method:`handleGetDetailedData`},{tool:`get_offloaded_data`,method:`handleGetOffloadedData`},{tool:`browser_attach`,method:`handleBrowserAttach`},{tool:`browser_list_tabs`,method:`handleBrowserListTabs`},{tool:`browser_list_cdp_targets`,method:`handleBrowserListCdpTargets`},{tool:`browser_select_tab`,method:`handleBrowserSelectTab`},{tool:`browser_attach_cdp_target`,method:`handleBrowserAttachCdpTarget`},{tool:`browser_detach_cdp_target`,method:`handleBrowserDetachCdpTarget`},{tool:`browser_evaluate_cdp_target`,method:`handleBrowserEvaluateCdpTarget`},{tool:`browser_list_workers`,method:`handleBrowserListWorkers`},{tool:`browser_worker_scripts`,method:`handleBrowserWorkerScripts`},{tool:`browser_font_fingerprint`,method:`handleBrowserFontFingerprint`},{tool:`browser_launch`,method:`handleBrowserLaunch`},{tool:`browser_close`,method:`handleBrowserClose`},{tool:`browser_status`,method:`handleBrowserStatus`},{tool:`page_navigate`,method:`handlePageNavigate`},{tool:`page_reload`,method:`handlePageReload`},{tool:`page_back`,method:`handlePageBack`},{tool:`page_forward`,method:`handlePageForward`},{tool:`page_list_frames`,method:`handlePageListFrames`},{tool:`page_click`,method:`handlePageClick`},{tool:`page_type`,method:`handlePageType`},{tool:`page_upload_files`,method:`handlePageUploadFiles`},{tool:`page_select`,method:`handlePageSelect`},{tool:`page_hover`,method:`handlePageHover`},{tool:`page_scroll`,method:`handlePageScroll`},{tool:`page_wait_for_selector`,method:`handlePageWaitForSelector`},{tool:`page_evaluate`,method:`handlePageEvaluate`},{tool:`page_screenshot`,method:`handlePageScreenshot`},{tool:`get_all_scripts`,method:`handleGetAllScripts`},{tool:`get_script_source`,method:`handleGetScriptSource`},{tool:`console_monitor`,method:`handleConsoleMonitor`},{tool:`console_get_logs`,method:`handleConsoleGetLogs`},{tool:`console_execute`,method:`handleConsoleExecute`},{tool:`page_inject_script`,method:`handlePageInjectScript`},{tool:`page_coverage_start`,method:`handlePageCoverageStart`},{tool:`page_coverage_stop`,method:`handlePageCoverageStop`},{tool:`page_block_script`,method:`handlePageBlockScript`},{tool:`page_cookies`,method:`handlePageCookiesDispatch`},{tool:`page_set_viewport`,method:`handlePageSetViewport`},{tool:`page_emulate_device`,method:`handlePageEmulateDevice`},{tool:`page_local_storage`,method:`handlePageLocalStorageDispatch`},{tool:`page_session_storage`,method:`handlePageSessionStorageDispatch`},{tool:`page_storage_info`,method:`handlePageStorageInfo`},{tool:`browser_passkey_seed`,method:`handleBrowserPasskeySeed`},{tool:`page_press_key`,method:`handlePagePressKey`},{tool:`page_handle_dialog`,method:`handlePageHandleDialog`},{tool:`service_worker_deliver_push`,method:`handleServiceWorkerDeliverPush`},{tool:`service_worker_dispatch_sync`,method:`handleServiceWorkerDispatchSync`},{tool:`captcha_detect`,method:`handleCaptchaDetect`},{tool:`captcha_wait`,method:`handleCaptchaWait`},{tool:`captcha_config`,method:`handleCaptchaConfig`},{tool:`stealth_inject`,method:`handleStealthInject`},{tool:`stealth_set_user_agent`,method:`handleStealthSetUserAgent`},{tool:`stealth_configure_jitter`,method:`handleStealthConfigureJitter`},{tool:`stealth_generate_fingerprint`,method:`handleStealthGenerateFingerprint`},{tool:`stealth_verify`,method:`handleStealthVerify`},{tool:`camoufox_geolocation`,method:`handleCamoufoxGeolocation`},{tool:`camoufox_server`,method:`handleCamoufoxServerDispatch`},{tool:`framework_state_extract`,method:`handleFrameworkStateExtract`},{tool:`indexeddb_dump`,method:`handleIndexedDBDump`},{tool:`js_heap_search`,method:`handleJSHeapSearch`},{tool:`tab_workflow`,method:`handleTabWorkflow`},{tool:`browser_codegen_start`,method:`handleBrowserCodegenStart`},{tool:`browser_codegen_stop`,method:`handleBrowserCodegenStop`},{tool:`human_mouse`,method:`handleHumanMouse`},{tool:`human_scroll`,method:`handleHumanScroll`},{tool:`human_typing`,method:`handleHumanTyping`},{tool:`captcha_solver_capabilities`,method:`handleCaptchaSolverCapabilities`},{tool:`captcha_vision_solve`,method:`handleCaptchaVisionSolve`},{tool:`widget_challenge_solve`,method:`handleWidgetChallengeSolve`},{tool:`browser_jsdom_parse`,method:`handleJsdomParse`},{tool:`browser_jsdom_query`,method:`handleJsdomQuery`},{tool:`browser_jsdom_execute`,method:`handleJsdomExecute`},{tool:`browser_jsdom_serialize`,method:`handleJsdomSerialize`},{tool:`browser_jsdom_cookies`,method:`handleJsdomCookies`}]});async function u(r){let{BrowserToolHandlers:i}=await import(`./browser-QDUu5ML9.mjs`);if(await n(r),!r.browserHandlers){let n=r,a=typeof r.getDomainInstance==`function`?r.getDomainInstance.bind(r):null,o=typeof r.setDomainInstance==`function`?r.setDomainInstance.bind(r):null,s=a?.(`browserSessionCoordinator`)??n.browserSessionCoordinator??new t(()=>r.collector);o?o(`browserSessionCoordinator`,s):n.browserSessionCoordinator=s,r.browserHandlers=new i(r.collector,r.pageController,r.scriptManager,r.consoleMonitor,r.eventBus,()=>s.getCurrentSessionId(),s,t=>{e(r)?.setBrowserAttach(t)})}return r.browserHandlers}const d={kind:`domain-manifest`,version:1,domain:s,depKey:c,profiles:[`workflow`,`full`],ensure:u,workflowRule:{patterns:[/(browser|page|navigate|screenshot|click|type|scrape)/i,/(浏览器|页面|导航|截图|点击|输入|爬取)/i],priority:90,tools:[`page_navigate`,`page_evaluate`,`browser_jsdom_parse`,`console_get_logs`,`page_click`,`page_type`,`page_screenshot`],hint:`Browser automation workflow: bootstrap browser/page state -> inspect page state -> interact -> capture visual evidence only when needed`},prerequisites:{page_navigate:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],page_click:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],page_type:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],page_upload_files:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],page_screenshot:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],page_evaluate:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],page_hover:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],page_back:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],page_forward:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],page_reload:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],page_scroll:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}]},registrations:l};export{d as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./ensure-browser-core-BP70x0TB.mjs";import{t}from"./registry-DJDnkQW2.mjs";import{n}from"./bind-helpers-D0mGAOof.mjs";import{t as r}from"./definitions-CbqeW06u.mjs";const i=`webgpu`,a=`webgpuHandlers`,o=n({domain:i,depKey:a,lookup:t(r),entries:[{tool:`webgpu_adapter_info`,method:`webgpu_adapter_info`},{tool:`webgpu_shader_compile`,method:`webgpu_shader_compile`},{tool:`webgpu_shader_disassemble`,method:`webgpu_shader_disassemble`},{tool:`webgpu_timing_analysis`,method:`webgpu_timing_analysis`},{tool:`webgpu_memory_layout`,method:`webgpu_memory_layout`},{tool:`webgpu_capture_commands`,method:`webgpu_capture_commands`},{tool:`webgpu_shader_source_capture`,method:`webgpu_shader_source_capture`},{tool:`webgpu_error_capture`,method:`webgpu_error_capture`},{tool:`webgpu_pipeline_dump`,method:`webgpu_pipeline_dump`}]});async function s(t){let{WebGPUHandlers:n}=await import(`./webgpu-D4-DxbxZ.mjs`);return await e(t),t.webgpuHandlers||=new n(t,{pageController:t.pageController}),t.webgpuHandlers}const c={kind:`domain-manifest`,version:1,domain:i,depKey:a,profiles:[`workflow`,`full`],ensure:s,workflowRule:{patterns:[/webgpu|gpu.*shader|wgsl|side.*channel.*gpu|gpu.*timing/i,/(GPU|着色器|侧信道|WebGPU)/i],priority:60,tools:[`webgpu_adapter_info`,`webgpu_shader_compile`,`webgpu_timing_analysis`,`webgpu_capture_commands`],hint:`WebGPU analysis workflow: get adapter info → compile/analyze shaders → detect side-channel timing → capture commands`},prerequisites:{webgpu_adapter_info:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],webgpu_shader_compile:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],webgpu_timing_analysis:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],webgpu_memory_layout:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],webgpu_capture_commands:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],webgpu_shader_source_capture:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],webgpu_error_capture:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],webgpu_pipeline_dump:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}]},registrations:o};export{c as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./ensure-browser-core-BP70x0TB.mjs";import{t}from"./registry-DJDnkQW2.mjs";import{n}from"./bind-helpers-D0mGAOof.mjs";import{t as r}from"./definitions-CCvIcRrT.mjs";const i=`encoding`,a=`encodingHandlers`,o=n({domain:i,depKey:a,lookup:t(r),entries:[{tool:`binary_detect_format`,method:`handleBinaryDetectFormatTool`},{tool:`binary_decode`,method:`handleBinaryDecodeTool`},{tool:`binary_encode`,method:`handleBinaryEncodeTool`},{tool:`binary_entropy_analysis`,method:`handleBinaryEntropyAnalysisTool`},{tool:`protobuf_decode_raw`,method:`handleProtobufDecodeRawTool`}]});async function s(t){let{EncodingToolHandlers:n}=await import(`./encoding-UMtwgy4M.mjs`);return await e(t),t.encodingHandlers||=new n(t.collector,async e=>t.consoleMonitor?.getResponseBody(e)??null),t.encodingHandlers}const c={kind:`domain-manifest`,version:1,domain:i,depKey:a,profiles:[`workflow`,`full`],ensure:s,registrations:o};export{c as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./ensure-browser-core-BP70x0TB.mjs";import{t}from"./registry-DJDnkQW2.mjs";import{n}from"./bind-helpers-D0mGAOof.mjs";import{t as r}from"./definitions-aeRd5DAR.mjs";import{t as i}from"./definitions-Bob4XMxI.mjs";const a=`debugger`,o=`debuggerHandlers`,s=[`antidebugHandlers`],c=t(i),l=t(r),u=[...n({domain:a,depKey:o,lookup:c,entries:[{tool:`debugger_lifecycle`,method:`handleDebuggerLifecycle`},{tool:`debugger_pause`,method:`handleDebuggerPause`},{tool:`debugger_resume`,method:`handleDebuggerResume`},{tool:`debugger_run_to_location`,method:`handleDebuggerRunToLocation`},{tool:`debugger_step`,method:`handleDebuggerStep`},{tool:`breakpoint`,method:`handleBreakpoint`},{tool:`get_call_stack`,method:`handleGetCallStack`},{tool:`debugger_disassemble`,method:`handleDebuggerDisassemble`},{tool:`debugger_evaluate`,method:`handleDebuggerEvaluateDispatch`},{tool:`debugger_wait_for_paused`,method:`handleDebuggerWaitForPaused`},{tool:`debugger_capture_hit`,method:`handleDebuggerCaptureHit`},{tool:`debugger_get_paused_state`,method:`handleDebuggerGetPausedState`},{tool:`get_object_properties`,method:`handleGetObjectProperties`},{tool:`get_scope_variables_enhanced`,method:`handleGetScopeVariablesEnhanced`},{tool:`debugger_session`,method:`handleDebuggerSession`},{tool:`watch`,method:`handleWatch`},{tool:`blackbox_add`,method:`handleBlackboxAdd`},{tool:`blackbox_add_common`,method:`handleBlackboxAddCommon`},{tool:`blackbox_list`,method:`handleBlackboxList`}]}),...n({domain:a,depKey:`antidebugHandlers`,lookup:l,entries:[{tool:`antidebug_bypass`,method:`handleAntidebugBypass`,profiles:[`full`]},{tool:`antidebug_detect_protections`,method:`handleAntiDebugDetectProtections`,profiles:[`full`]}]})];async function d(t){let{DebuggerManager:n,RuntimeInspector:r}=await import(`./modules-CC_ADmwi.mjs`).then(e=>e.t),{DebuggerToolHandlers:i}=await import(`./debugger-C2SpiXoO.mjs`);if(await e(t),(!t.debuggerManager||!t.runtimeInspector||!t.debuggerHandlers)&&(t.debuggerManager||=new n(t.collector),t.runtimeInspector||=new r(t.collector,t.debuggerManager),!t.debuggerHandlers)){let e=t.pageController;t.debuggerHandlers=new i(t.debuggerManager,t.runtimeInspector,t.eventBus,e?async()=>e.getPage():void 0)}if(!t.antidebugHandlers){let{AntiDebugToolHandlers:e}=await import(`./antidebug-CgU84TE1.mjs`);t.antidebugHandlers=new e(t.collector)}return t.debuggerHandlers}const f={kind:`domain-manifest`,version:1,domain:a,depKey:o,secondaryDepKeys:s,profiles:[`workflow`,`full`],ensure:d,prerequisites:{debugger_lifecycle:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],breakpoint:[{condition:`Browser must be launched`,fix:`Call browser_launch and debugger_lifecycle(enable) first`}],debugger_run_to_location:[{condition:`Browser must be launched`,fix:`Call browser_launch and debugger_lifecycle(enable) first`}],debugger_disassemble:[{condition:`Browser must be launched and debugger enabled`,fix:`Call browser_launch and debugger_lifecycle(enable); pause at a breakpoint or pass scriptId`}]},registrations:u};export{f as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DJDnkQW2.mjs";import{n as t}from"./bind-helpers-D0mGAOof.mjs";import{t as n}from"./tool-builder-CpLh-UQd.mjs";const r=[n(`mojo_ipc_capabilities`,e=>e.desc(`Report Mojo IPC monitoring availability.`).query()),n(`mojo_monitor`,e=>e.desc(`Start or stop Mojo IPC monitoring for the active Chromium-based target.`).enum(`action`,[`start`,`stop`],`Monitor action`).string(`deviceId`,`Optional device or transport identifier (action=start)`).required(`action`)),n(`mojo_decode_message`,e=>e.desc(`Decode a Mojo IPC hex payload into a structured field map.`).string(`hexPayload`,`Hex-encoded Mojo IPC payload`).string(`interfaceName`,`Optional Mojo interface name used to label known fields`).prop(`messageType`,{anyOf:[{type:`string`},{type:`number`}],description:`Optional method name or message type used with interfaceName to label fields`}).required(`hexPayload`).query()),n(`mojo_encode_message`,e=>e.desc(`Encode a structured Mojo IPC message into a hex payload.`).string(`interfaceName`,`Mojo interface name, for example network.mojom.URLLoaderFactory`).prop(`messageType`,{anyOf:[{type:`string`},{type:`number`}],description:`Message type as a method name, decimal number, or 0x-prefixed hex value`}).array(`fields`,{anyOf:[{type:`boolean`},{type:`number`},{type:`string`},{type:`object`,additionalProperties:!0}]},`Fields to encode. Objects may specify { type, value }, arrays, structs, or handles.`).prop(`header`,{type:`object`,additionalProperties:!1,properties:{expectsResponse:{type:`boolean`},isResponse:{type:`boolean`},isSync:{type:`boolean`},interfaceId:{type:`number`},requestId:{anyOf:[{type:`integer`},{type:`string`}],description:`Request id as a number or numeric string (encoded as uint64)`}},description:`Optional v2 header fields. Setting any flag or interfaceId/requestId emits an 18-byte v2 message header; omit to emit the default 6-byte v1 header.`}).required(`interfaceName`,`messageType`,`fields`).query()),n(`mojo_list_interfaces`,e=>e.desc(`List discovered Mojo IPC interfaces and their pending message counts.`).query()),n(`mojo_messages_get`,e=>e.desc(`Retrieve captured Mojo IPC messages from the active monitoring session.`).number(`limit`,`Maximum number of messages to retrieve (default 100)`).string(`interface`,`Filter messages by interface name`).prop(`messageType`,{anyOf:[{type:`string`},{type:`number`}],description:`Filter messages by message type or method name`}).number(`sinceTimestamp`,`Only return messages captured at or after this Unix timestamp`).string(`hexSearch`,`Case-insensitive hex substring to search in captured payloads`).enum(`direction`,[`request`,`response`,`sync`],`Filter by message direction inferred from the header flags byte`).query()),n(`mojo_verify_live`,e=>e.desc(`Generate a Frida verification script that probes a target Chromium process for known Mojo C-API exports (MojoWriteMessage, MojoWriteMessageNew) across modules. Uses a curated symbol database covering Chromium M96+ across Win32, Linux, and macOS. Returns a ready-to-run Frida script and probe metadata. Honest boundary (B-class): symbol DB is manually curated; symbols may vary by build config. Verified flag is always false — confirm against the live binary.`).enum(`platform`,[`win32`,`linux`,`darwin`],`Target platform`).number(`chromiumVersion`,`Chromium major version (e.g. 120) for version-aware probing`).enum(`channel`,[`stable`,`beta`,`dev`,`canary`],`Chromium release channel`,{default:`stable`}).string(`targetProcess`,`Browser process name for the frida command (default: chrome)`).required(`platform`).readOnly()),n(`mojo_messages_summarize`,e=>e.desc(`Aggregate the captured Mojo IPC buffer (non-destructive) into interface/method/direction breakdowns, top-N lists, and a capture time window. Does not drain the buffer.`).string(`interface`,`Restrict the summary to a single interface name`).prop(`messageType`,{anyOf:[{type:`string`},{type:`number`}],description:`Restrict the summary to a single message type or method name`}).number(`sinceTimestamp`,`Only include messages captured at or after this Unix timestamp`).string(`hexSearch`,`Case-insensitive hex substring that must appear in included payloads`).enum(`direction`,[`request`,`response`,`sync`],`Restrict the summary to a single message direction`).number(`topN`,`Number of top interfaces/methods to return (default 5)`).query())],i=`mojo-ipc`,a=`mojoIpcHandlers`,o=t({domain:i,depKey:a,lookup:e(r),entries:[{tool:`mojo_ipc_capabilities`,method:`handleMojoIpcCapabilitiesTool`},{tool:`mojo_monitor`,method:`handleMojoMonitorDispatchTool`},{tool:`mojo_decode_message`,method:`handleMojoDecodeMessageTool`},{tool:`mojo_encode_message`,method:`handleMojoEncodeMessageTool`},{tool:`mojo_list_interfaces`,method:`handleMojoListInterfacesTool`},{tool:`mojo_messages_get`,method:`handleMojoMessagesGetTool`},{tool:`mojo_messages_summarize`,method:`handleMojoMessagesSummarizeTool`},{tool:`mojo_verify_live`,method:`handleMojoVerifyLiveTool`}]});async function s(e){let{MojoIPCHandlers:t}=await import(`./mojo-ipc-kVztXYw-.mjs`),n=e.getDomainInstance(a);if(n)return n;let r=new t(void 0,void 0,e.eventBus);return e.setDomainInstance(a,r),r}const c={kind:`domain-manifest`,version:1,domain:i,depKey:a,profiles:[`full`],registrations:o,ensure:s,workflowRule:{patterns:[/\b(mojo|ipc|chromium\s?(ipc|message)|interface\s?(broker|registry))\b/i,/(mojo|ipc|chromium).*(monitor|capture|hook|trace)/i],priority:75,tools:[`mojo_monitor`,`mojo_decode_message`,`mojo_encode_message`,`mojo_list_interfaces`],hint:`Mojo IPC: start monitor → capture messages → decode payloads → correlate with CDP`},prerequisites:{mojo_monitor:[{condition:`Frida must be available for real process attachment`,fix:`Install Frida and ensure the Chromium target process is launched first`}],mojo_decode_message:[{condition:`Captured message payload hex is required`,fix:`Start a monitoring session via mojo_monitor and capture traffic first`}]},toolDependencies:[{from:`browser`,to:`mojo-ipc`,relation:`uses`,weight:.8}]};export{c as default,r as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./ensure-browser-core-BP70x0TB.mjs";import{t}from"./registry-DJDnkQW2.mjs";import{n}from"./bind-helpers-D0mGAOof.mjs";import{n as r,t as i}from"./definitions-CArdw_9T.mjs";const a=`canvas`,o=`canvasHandlers`,s=t([...r,...i]),c=n({domain:a,depKey:o,lookup:s,entries:[{tool:`canvas_engine_fingerprint`,method:`handleFingerprintTool`,profiles:[`full`]},{tool:`canvas_scene_dump`,method:`handleSceneDumpTool`,profiles:[`full`]},{tool:`canvas_pick_object_at_point`,method:`handlePickTool`,profiles:[`full`]},{tool:`canvas_trace_click_handler`,method:`handleTraceClickTool`,profiles:[`full`]},{tool:`canvas_scene_search`,method:`handleSceneSearchTool`,profiles:[`full`]},{tool:`canvas_inject_draw_hook`,method:`handleDrawHookTool`,profiles:[`full`]}]}),l=n({domain:a,depKey:`skiaCaptureHandlers`,lookup:s,entries:[{tool:`skia_detect_renderer`,method:`handleSkiaDetectRendererTool`},{tool:`skia_extract_scene`,method:`handleSkiaExtractSceneTool`},{tool:`skia_correlate_objects`,method:`handleSkiaCorrelateObjectsTool`}]});async function u(t){let{DebuggerManager:n}=await import(`./modules-CC_ADmwi.mjs`).then(e=>e.t),{TraceRecorder:r}=await import(`./TraceRecorder-BfeCTQUj.mjs`),{ReverseEvidenceGraph:i}=await import(`./ReverseEvidenceGraph-DJzk0GQz.mjs`).then(e=>e.t),{CanvasToolHandlers:a,SkiaCaptureHandlers:o}=await import(`./canvas-g5kmLdY-.mjs`);await e(t),t.debuggerManager||=new n(t.collector),t.traceRecorder||=new r;let s=t.getDomainInstance(`evidenceGraph`);return s||(s=new i,t.setDomainInstance(`evidenceGraph`,s)),t.canvasHandlers||=new a({pageController:t.pageController,debuggerManager:t.debuggerManager,traceRecorder:t.traceRecorder,evidenceStore:s}),t.skiaCaptureHandlers||=new o({pageController:t.pageController??null,eventBus:t.eventBus}),t.canvasHandlers}const d={kind:`domain-manifest`,version:1,domain:a,depKey:o,secondaryDepKeys:[`skiaCaptureHandlers`],profiles:[`workflow`,`full`],ensure:u,workflowRule:{patterns:[/(canvas|scene|engine|game).*(pick|dump|trace|reverse)/i,/(canvas|webgl|webgpu|scene).*(graph|tree|node)/i,/(laya|pixi|phaser|cocos|unity).*(reverse|scene|dump|hook)/i,/\b(skia|gpu|render(er)?|scene\s?(tree|graph)|draw\s?call|raster|paint|layer)\b/i,/skia.*(render|detect|scene)/i,/gpu.*backend/i],priority:80,tools:[`canvas_engine_fingerprint`,`canvas_scene_dump`,`canvas_pick_object_at_point`,`canvas_trace_click_handler`,`canvas_inject_draw_hook`,`skia_detect_renderer`,`skia_extract_scene`,`skia_correlate_objects`],hint:`Canvas/Skia reverse: fingerprint engine → dump scene tree → pick object at point → trace click; or detect Skia GPU backend → extract scene → correlate with JS objects.`},prerequisites:{canvas_engine_fingerprint:[{condition:`Browser must be running`,fix:`Call browser_launch or browser_attach first`}],canvas_scene_dump:[{condition:`Browser must be running`,fix:`Call browser_launch or browser_attach first`}],canvas_pick_object_at_point:[{condition:`Browser must be running`,fix:`Call browser_launch or browser_attach first`}],canvas_trace_click_handler:[{condition:`Debugger must be enabled`,fix:`Call debugger_lifecycle({ action: 'enable' }) first`}],canvas_inject_draw_hook:[{condition:`Browser must be running`,fix:`Call browser_launch or browser_attach first`}],skia_detect_renderer:[{condition:`Browser must be running with CDP attached`,fix:`Call browser_launch or browser_attach first`}],skia_extract_scene:[{condition:`Browser must be running with CDP attached`,fix:`Call browser_launch or browser_attach first`}],skia_correlate_objects:[{condition:`V8 heap snapshot should be available for robust matching`,fix:`Run v8_heap_snapshot_capture before correlation`}]},toolDependencies:[{from:`skia_correlate_objects`,to:`v8_heap_snapshot_capture`,relation:`precedes`,weight:.6}],registrations:[...c,...l]};export{d as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DJDnkQW2.mjs";import{n as t}from"./bind-helpers-D0mGAOof.mjs";import{t as n}from"./definitions-ihxOqOC4.mjs";const r=`dart-inspector`,i=`dartInspectorHandlers`,a=t({domain:r,depKey:i,lookup:e(n),entries:[{tool:`dart_strings_extract`,method:`handleDartStringsExtract`},{tool:`dart_smi_scan`,method:`handleDartSmiScan`},{tool:`dart_symbolize`,method:`handleDartSymbolize`},{tool:`flutter_packages_detect`,method:`handleDartPackagesDetect`},{tool:`dart_snapshot_header_parse`,method:`handleDartSnapshotHeaderParse`},{tool:`dart_version_fingerprint`,method:`handleDartVersionFingerprint`},{tool:`dart_object_pool_dump`,method:`handleDartObjectPoolDump`},{tool:`dart_load_snapshot`,method:`handleDartLoadSnapshot`},{tool:`dart_list_functions`,method:`handleDartListFunctions`},{tool:`dart_call_function`,method:`handleDartCallFunction`},{tool:`dart_inspect_object_pool`,method:`handleDartInspectObjectPool`},{tool:`dart_trace_execution`,method:`handleDartTraceExecution`},{tool:`dart_call_graph`,method:`handleDartCallGraph`},{tool:`dart_pc_descriptors`,method:`handleDartPcDescriptors`},{tool:`dart_create_session`,method:`handleDartCreateSession`},{tool:`dart_destroy_session`,method:`handleDartDestroySession`}]});async function o(e){let{DartInspectorHandlers:t}=await import(`./dart-inspector-D4IKxZ6u.mjs`);return e.dartInspectorHandlers||=new t,e.dartInspectorHandlers}const s={kind:`domain-manifest`,version:1,domain:r,depKey:i,profiles:[`full`],ensure:o,registrations:a};export{s as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DJDnkQW2.mjs";import{n as t}from"./bind-helpers-D0mGAOof.mjs";import{a as n,i as r,n as i,r as a,t as o}from"./definitions-DtOY5iUc.mjs";const s=`maintenance`,c=`coreMaintenanceHandlers`,l=[...n,...i,...o],u=[...a],d=[...r],f=e([...l,...u,...d]),p=t({domain:s,depKey:c,lookup:f,entries:[{tool:`get_token_budget_stats`,method:`handleGetTokenBudgetStats`,profiles:[`workflow`,`full`]},{tool:`manual_token_cleanup`,method:`handleManualTokenCleanup`},{tool:`reset_token_budget`,method:`handleResetTokenBudget`},{tool:`get_cache_stats`,method:`handleGetCacheStats`,profiles:[`workflow`,`full`]},{tool:`smart_cache_cleanup`,method:`handleSmartCacheCleanup`,mapArgs:e=>[e.targetSize,e.namespaces]},{tool:`clear_all_caches`,method:`handleClearAllCaches`},{tool:`cleanup_artifacts`,method:`handleCleanupArtifacts`,mapArgs:e=>[{retentionDays:e.retentionDays,maxTotalBytes:e.maxTotalBytes,dryRun:e.dryRun,categories:e.categories,excludeCategories:e.excludeCategories}]},{tool:`doctor_environment`,method:`handleEnvironmentDoctor`,mapArgs:e=>[{includeBridgeHealth:e.includeBridgeHealth}]},{tool:`maintenance_detect_gpu`,method:`handleDetectGpu`,profiles:[`workflow`,`full`]}]}),m=t({domain:s,depKey:`extensionManagementHandlers`,lookup:f,entries:[{tool:`list_extensions`,method:`handleListExtensions`,profiles:[`workflow`,`full`],mapArgs:e=>[{includeIntegrity:e.includeIntegrity}]},{tool:`reload_extensions`,method:`handleReloadExtensions`},{tool:`browse_extension_registry`,method:`handleBrowseExtensionRegistry`,profiles:[`workflow`,`full`],mapArgs:e=>[e.kind??`all`]},{tool:`install_extension`,method:`handleInstallExtension`,mapArgs:e=>[e.slug,e.targetDir]}]}),h=t({domain:s,depKey:`sandboxHandlers`,lookup:f,entries:[{tool:`execute_sandbox_script`,method:`handleExecuteSandboxScript`,profiles:[`full`]}]});async function g(e){let{CoreMaintenanceHandlers:t,ExtensionManagementHandlers:n,SandboxToolHandlers:r}=await import(`./maintenance-CfnE7ZKU.mjs`);return(!e.coreMaintenanceHandlers||!e.extensionManagementHandlers||!e.sandboxHandlers)&&(e.coreMaintenanceHandlers||=new t({tokenBudget:e.tokenBudget,unifiedCache:e.unifiedCache}),e.extensionManagementHandlers||=new n(e),e.sandboxHandlers||=new r(e)),e.coreMaintenanceHandlers}const _={kind:`domain-manifest`,version:1,domain:s,depKey:c,secondaryDepKeys:[`extensionManagementHandlers`,`sandboxHandlers`],profiles:[`workflow`,`full`],ensure:g,registrations:[...p,...m,...h]};export{_ as default};
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./logger-BGCcd-jJ.mjs";import{t}from"./EventBus-Cm-t-B65.mjs";import{t as n}from"./ensure-browser-core-BP70x0TB.mjs";import{t as r}from"./registry-DJDnkQW2.mjs";import{t as i}from"./definitions-BXE3H4re.mjs";const a=2e3;var o=class{bridge;constructor(e){this.bridge=e}isAvailable(){return this.bridge.isSamplingSupported()}async suggestVariableNames(t,n){if(!this.bridge.isSamplingSupported())return e.debug(`LLMDeobfuscator: sampling not available, skipping name suggestion`),null;let r=n.slice(0,20),i=t.slice(0,a),o=[`Given this obfuscated JavaScript code, suggest meaningful variable/function names`,`for these identifiers: ${r.join(`, `)}`,``,"```javascript",i,"```",``,`Respond ONLY with a valid JSON array of objects with fields:`,` { "original": "<old_name>", "suggested": "<new_name>", "confidence": "high"|"medium"|"low" }`,``,`Rules:`,`- Use camelCase for variables/functions, PascalCase for classes`,`- If uncertain, use confidence "low"`,`- If the name is already meaningful, keep it and mark confidence "high"`].join(`
2
+ `),s=await this.bridge.sampleText({systemPrompt:`You are an expert JavaScript reverse engineer. You specialize in deobfuscation and renaming obfuscated identifiers to semantically meaningful names. Output only valid JSON.`,userMessage:o,maxTokens:256,temperature:.3,modelHint:`haiku`});return s?this.parseNameSuggestions(s,r):null}async inferFunctionPurpose(e){if(!this.bridge.isSamplingSupported())return null;let t=e.slice(0,a);return(await this.bridge.sampleText({systemPrompt:`You are a JavaScript reverse engineer. Analyze code and describe its purpose in one concise sentence.`,userMessage:`What does this function do?\n\n\`\`\`javascript\n${t}\n\`\`\`\n\nRespond with a single sentence.`,maxTokens:100,temperature:.2,modelHint:`haiku`}))?.trim()??null}parseNameSuggestions(t,n){try{let r=t.match(/\[[\s\S]*\]/);if(!r)return e.warn(`LLMDeobfuscator: no JSON array found in LLM response`),[];let i=JSON.parse(r[0]);if(!Array.isArray(i))return[];let a=new Set(n);return i.filter(e=>typeof e==`object`&&!!e&&typeof e.original==`string`&&typeof e.suggested==`string`).filter(e=>a.has(e.original)).map(e=>({original:e.original,suggested:e.suggested,confidence:[`high`,`medium`,`low`].includes(e.confidence)?e.confidence:`low`}))}catch(t){return e.warn(`LLMDeobfuscator: failed to parse LLM response:`,t),[]}}};const s=`core`,c=`coreAnalysisHandlers`,l=r(i);let u=null;function d(e){return n=>{let r=n[c];return n=>{let i=n._meta,a;return i?.progressToken!==void 0&&u&&(a=t(u.eventBus,i.progressToken)),e(r,{...n,onProgress:a})}}}const f=d;async function p(e){let{Deobfuscator:t,AdvancedDeobfuscator:r,ObfuscationDetector:i,CodeAnalyzer:a,CryptoDetector:o,HookManager:s}=await import(`./modules-CC_ADmwi.mjs`).then(e=>e.t),{CoreAnalysisHandlers:c}=await import(`./analysis-CojUzwX-.mjs`),{JScramberDeobfuscator:l}=await import(`./JScramblerDeobfuscator-NVR5VatT.mjs`).then(e=>e.t),{UniversalUnpacker:d}=await import(`./PackerDeobfuscator-BpwGjxDL.mjs`).then(e=>e.t),{VMDeobfuscator:f}=await import(`./VMDeobfuscator-BHtkV850.mjs`).then(e=>e.t);return u=e,await n(e),(!e.deobfuscator||!e.advancedDeobfuscator||!e.obfuscationDetector||!e.analyzer||!e.cryptoDetector||!e.hookManager||!e.coreAnalysisHandlers)&&(e.deobfuscator||=new t,e.advancedDeobfuscator||=new r,e.obfuscationDetector||=new i,e.analyzer||=new a,e.cryptoDetector||=new o,e.hookManager||=new s,e.coreAnalysisHandlers||=new c({collector:e.collector,scriptManager:e.scriptManager,deobfuscator:e.deobfuscator,advancedDeobfuscator:e.advancedDeobfuscator,obfuscationDetector:e.obfuscationDetector,analyzer:e.analyzer,cryptoDetector:e.cryptoDetector,hookManager:e.hookManager,samplingBridge:e.samplingBridge,jscramblerDeobfuscator:new l,packerDeobfuscator:new d,vmDeobfuscator:new f})),e.coreAnalysisHandlers}const m={kind:`domain-manifest`,version:1,domain:s,depKey:c,profiles:[`workflow`,`full`],ensure:p,workflowRule:{patterns:[/(deobfuscate|deobfusc|beautify|analyze).*(javascript|js|script|code)/i,/(反混淆|美化|分析).*(javascript|js|脚本|代码)/i],priority:85,tools:[`deobfuscate`,`extract_function_tree`,`llm_suggest_names`],hint:`JavaScript analysis workflow: collect -> deobfuscate -> inspect function tree | LLM-powered naming`},prerequisites:{collect_code:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],ai_suggest_exploits:[{condition:`Client must support MCP sampling`,fix:`Use Claude Desktop or another sampling-capable MCP client`}]},registrations:[{tool:l(`collect_code`),domain:s,bind:f((e,t)=>e.handleCollectCode(t))},{tool:l(`search_in_scripts`),domain:s,profiles:[`search`,`workflow`,`full`],bind:f((e,t)=>e.handleSearchInScripts(t))},{tool:l(`extract_function_tree`),domain:s,bind:f((e,t)=>e.handleExtractFunctionTree(t))},{tool:l(`deobfuscate`),domain:s,bind:f((e,t)=>e.handleDeobfuscate(t))},{tool:l(`understand_code`),domain:s,profiles:[`search`,`workflow`,`full`],bind:f((e,t)=>e.handleUnderstandCode(t))},{tool:l(`detect_crypto`),domain:s,profiles:[`search`,`workflow`,`full`],bind:f((e,t)=>e.handleDetectCrypto(t))},{tool:l(`manage_hooks`),domain:s,bind:f((e,t)=>e.handleManageHooks(t))},{tool:l(`detect_obfuscation`),domain:s,profiles:[`search`,`workflow`,`full`],bind:f((e,t)=>e.handleDetectObfuscation(t))},{tool:l(`webcrack_unpack`),domain:s,bind:f((e,t)=>e.handleWebcrackUnpack(t))},{tool:l(`clear_collected_data`),domain:s,bind:f(e=>e.handleClearCollectedData())},{tool:l(`get_collection_stats`),domain:s,bind:f(e=>e.handleGetCollectionStats())},{tool:l(`webpack_enumerate`),domain:s,bind:f((e,t)=>e.handleWebpackEnumerate(t))},{tool:l(`llm_suggest_names`),domain:s,bind:d(async(e,t)=>{if(!u)return{content:[{type:`text`,text:JSON.stringify({success:!1,error:`Server context not initialized`})}]};let n=new o(u.samplingBridge);if(!n.isAvailable())return{content:[{type:`text`,text:JSON.stringify({success:!1,error:`Sampling not supported by this client`,hint:`The connected MCP client does not declare sampling capabilities. Try using Claude Desktop or another sampling-capable client.`})}]};let r=typeof t.code==`string`?t.code:``,i=Array.isArray(t.identifiers)?t.identifiers.filter(e=>typeof e==`string`):[],a=await n.suggestVariableNames(r,i);return{content:[{type:`text`,text:JSON.stringify({success:!0,suggestions:a??[],samplingUsed:!0})}]}})},{tool:l(`js_deobfuscate_jsvmp`),domain:s,bind:f((e,t)=>e.handleJsDeobfuscateJsvmp(t))},{tool:l(`js_deobfuscate_pipeline`),domain:s,bind:f((e,t)=>e.handleJsDeobfuscatePipeline(t))},{tool:l(`js_analyze_vm`),domain:s,bind:f((e,t)=>e.handleJsAnalyzeVm(t))},{tool:l(`js_solve_constraints`),domain:s,bind:f((e,t)=>e.handleJsSolveConstraints(t))},{tool:l(`analysis_ast_match`),domain:s,bind:f((e,t)=>e.handleAnalysisAstMatch(t))},{tool:l(`analysis_deflat_control_flow`),domain:s,bind:f((e,t)=>e.handleAnalysisDeflatControlFlow(t))},{tool:l(`analysis_decode_string_array`),domain:s,bind:f((e,t)=>e.handleAnalysisDecodeStringArray(t))},{tool:l(`js_symbolic_execute`),domain:s,bind:f((e,t)=>e.handleJsSymbolicExecute(t))},{tool:l(`js_symbolic_execute_jsvmp`),domain:s,bind:f((e,t)=>e.handleJsSymbolicExecuteJsvmp(t))},{tool:l(`ai_suggest_exploits`),domain:s,profiles:[`workflow`,`full`],bind:f((e,t)=>e.handleAiSuggestExploits(t))},{tool:l(`analysis_data_flow`),domain:s,profiles:[`workflow`,`full`],bind:f((e,t)=>e.handleAnalysisDataFlow(t))},{tool:l(`analysis_security_scan`),domain:s,profiles:[`workflow`,`full`],bind:f((e,t)=>e.handleAnalysisSecurityScan(t))}]};export{m as default};
@@ -0,0 +1 @@
1
+ const e=/^([0-9a-f]+)-([0-9a-f]+)\s+([r-][w-][x-][ps])\s+([0-9a-f]+)\s+(\S+)\s+(\d+)\s*(.*)$/i;function t(t){let n=[];for(let r of t.split(/\r?\n/)){let t=r.trimEnd().match(e);if(!t)continue;let i=t[3];n.push({start:BigInt(`0x${t[1]}`),end:BigInt(`0x${t[2]}`),permissions:{read:i[0]===`r`,write:i[1]===`w`,exec:i[2]===`x`,private:i[3]===`p`},offset:BigInt(`0x${t[4]}`),dev:t[5],inode:parseInt(t[6],10),pathname:t[7]?.trim()??``})}return n}function n(e){return`${e.read?`r`:`-`}${e.write?`w`:`-`}${e.exec?`x`:`-`}`}export{t as n,n as t};