@jshookmcp/jshook 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +32 -49
  3. package/README.zh.md +32 -47
  4. package/dist/AntiCheatDetector-B6d4Qe9D.mjs +1 -0
  5. package/dist/BrowserSessionCoordinator-BJ-HOxo0.mjs +1 -0
  6. package/dist/CacheAdapters-CsNtQIR8.mjs +1 -0
  7. package/dist/CodeInjector-Cll_7bLJ.mjs +1 -0
  8. package/dist/ConsoleMonitor-CxDJV15E.mjs +306 -0
  9. package/dist/DOMInspector-C19J4zeq.mjs +95 -0
  10. package/dist/DarwinAPI-ZfQdpLNI.mjs +1 -0
  11. package/dist/DetailedDataManager-DmQ1LT-W.mjs +1 -0
  12. package/dist/EventBus-DL8iLA09.mjs +1 -0
  13. package/dist/EvidenceGraphBridge-BtbwXsLC.mjs +1 -0
  14. package/dist/ExtensionManager-BD724zkO.mjs +1 -0
  15. package/dist/ExtensionManager.tools-oVMJgPcN.mjs +1 -0
  16. package/dist/FingerprintManager-DT0EAUEo.mjs +1 -0
  17. package/dist/HardwareBreakpoint-BUfPdp0f.mjs +1 -0
  18. package/dist/HeapAnalyzer-B_aqY8oj.mjs +1 -0
  19. package/dist/{HookGeneratorBuilders.core.generators.storage-CTbB4Lcx.mjs → HookGeneratorBuilders.core.generators.storage-DzD6dIJd.mjs} +66 -101
  20. package/dist/InstrumentationSession-D_G1ZPyd.mjs +1 -0
  21. package/dist/MCPServer.search.handlers.domain-BbS-6LnX.mjs +1 -0
  22. package/dist/MemoryController-X1XNSn1n.mjs +2 -0
  23. package/dist/MemoryScanSession-DG_F-PjE.mjs +1 -0
  24. package/dist/MemoryScanner-g1_L1ub5.mjs +1 -0
  25. package/dist/NativeMemoryManager.impl-DniBe2wf.mjs +1 -0
  26. package/dist/NativeMemoryManager.utils-BHy1P_jM.mjs +1 -0
  27. package/dist/NetworkMonitor-B_-au6aV.mjs +185 -0
  28. package/dist/PEAnalyzer-yWQaGrcx.mjs +1 -0
  29. package/dist/PageController-Dfsm1_o7.mjs +1 -0
  30. package/dist/PointerChainEngine-BhCUkmxY.mjs +1 -0
  31. package/dist/PrerequisiteError-BjCQA-gK.mjs +1 -0
  32. package/dist/ProcessRegistry-C-bN48oR.mjs +1 -0
  33. package/dist/ResponseBuilder-BfWP-uaT.mjs +1 -0
  34. package/dist/ReverseEvidenceGraph-BhSYYdiI.mjs +2 -0
  35. package/dist/RingBuffer-Dm54ELKT.mjs +1 -0
  36. package/dist/ScriptManager-LWGPTdvD.mjs +7 -0
  37. package/dist/ServerRuntimeState-D2bWHqEE.mjs +1 -0
  38. package/dist/Speedhack-yseDPSZ9.mjs +1 -0
  39. package/dist/StealthVerifier-BmcxfwSF.mjs +1 -0
  40. package/dist/StructureAnalyzer-C5lpuZkg.mjs +2 -0
  41. package/dist/ToolCatalog-CYdD9F5f.mjs +1 -0
  42. package/dist/ToolError-DWU_z7gp.mjs +1 -0
  43. package/dist/ToolProbe-C7ZU2x7M.mjs +1 -0
  44. package/dist/ToolRegistry-C5oB8KP8.mjs +1 -0
  45. package/dist/ToolRouter.policy-CfhJczkt.mjs +4 -0
  46. package/dist/TraceRecorder-BiJWBXHX.mjs +272 -0
  47. package/dist/VersionDetector-CHT36Az0.mjs +9 -0
  48. package/dist/Win32API-eUCF57l_.mjs +1 -0
  49. package/dist/Win32Debug-CYrIQBvr.mjs +1 -0
  50. package/dist/WorkflowEngine-D876meOO.mjs +1 -0
  51. package/dist/analysis-D4swdMvq.mjs +6 -0
  52. package/dist/{antidebug-BRKeyt27.mjs → antidebug-7L3ygj_9.mjs} +8 -259
  53. package/dist/apk-packer-BqXcInnX.mjs +1 -0
  54. package/dist/artifactRetention-BCPQASm7.mjs +1 -0
  55. package/dist/artifacts-CkodUM4j.mjs +1 -0
  56. package/dist/authorization-schema-BOFwSXUN.mjs +1 -0
  57. package/dist/betterSqlite3-Brtq-SIQ.mjs +1 -0
  58. package/dist/binary-instrument-DU7V6TUM.mjs +7 -0
  59. package/dist/binary-secrets-PdMVoyt0.mjs +1 -0
  60. package/dist/bind-helpers-m2U8glkF.mjs +1 -0
  61. package/dist/boringssl-inspector-BBaJwwkU.mjs +2 -0
  62. package/dist/browser-Qqco2rOT.mjs +11 -0
  63. package/dist/capabilities-CyXuKUl1.mjs +1 -0
  64. package/dist/chunk-C_pMuVsO.mjs +1 -0
  65. package/dist/collector-Bpl6qy2L.mjs +1 -0
  66. package/dist/concurrency-DCr8WQ2M.mjs +1 -0
  67. package/dist/constants-BYj8Xek8.mjs +1 -0
  68. package/dist/coordination-CWXW1o8K.mjs +1 -0
  69. package/dist/dart-inspector-7AkPeZ_Q.mjs +0 -0
  70. package/dist/debugger-DyALjYMk.mjs +1 -0
  71. package/dist/definitions-BWxBke3r.mjs +1 -0
  72. package/dist/definitions-BYwATKc-.mjs +1 -0
  73. package/dist/definitions-B_83XfNQ.mjs +1 -0
  74. package/dist/definitions-Bf3H1EwV.mjs +1 -0
  75. package/dist/definitions-BftdXgXI.mjs +1 -0
  76. package/dist/definitions-Bio5XJYy.mjs +1 -0
  77. package/dist/definitions-C3qNgSn1.mjs +1 -0
  78. package/dist/definitions-CB6vmOer.mjs +1 -0
  79. package/dist/definitions-CMZRSy3k.mjs +1 -0
  80. package/dist/definitions-CQd7yCQH.mjs +1 -0
  81. package/dist/definitions-CT8ln6GQ.mjs +1 -0
  82. package/dist/definitions-Cenu6mxo.mjs +1 -0
  83. package/dist/definitions-D4g-MS10.mjs +1 -0
  84. package/dist/definitions-D5wl_8HN.mjs +1 -0
  85. package/dist/definitions-DAQm1Xar.mjs +1 -0
  86. package/dist/definitions-DP1vgxEY.mjs +1 -0
  87. package/dist/definitions-DxFNRQNK2.mjs +1 -0
  88. package/dist/definitions-Ibci7e_L.mjs +1 -0
  89. package/dist/definitions-OeLvmlQy.mjs +1 -0
  90. package/dist/definitions-RZYGD_Ey.mjs +1 -0
  91. package/dist/definitions-Tls8c0A0.mjs +1 -0
  92. package/dist/definitions-bybDvnG0.mjs +26 -0
  93. package/dist/definitions-l7TjdE6V.mjs +1 -0
  94. package/dist/encoding-ycOaz8Vr.mjs +2 -0
  95. package/dist/ensure-browser-core-DxWC-NTp.mjs +1 -0
  96. package/dist/evidence-graph-bridge-CV_UdYqj.mjs +1 -0
  97. package/dist/factory-CKr4fAE1.mjs +1 -0
  98. package/dist/flat-target-session-DvcQX7J5.mjs +1 -0
  99. package/dist/formatAddress-vLA_hOJt.mjs +1 -0
  100. package/dist/graphql-B2TiPEow.mjs +62 -0
  101. package/dist/handlers-0yKLRIfo.mjs +2 -0
  102. package/dist/handlers-8zN_vBIz.mjs +1 -0
  103. package/dist/handlers-B62K4FTc.mjs +1 -0
  104. package/dist/handlers-BpDlVVVU.mjs +1 -0
  105. package/dist/handlers-CMJK7m1c.mjs +31 -0
  106. package/dist/handlers-D2ZOul9p.mjs +54 -0
  107. package/dist/handlers-D5E40ssn.mjs +5 -0
  108. package/dist/handlers-DGbdQAgD.mjs +4 -0
  109. package/dist/handlers-DHO3rjsW.mjs +1 -0
  110. package/dist/handlers-FJ80VzUI.mjs +2 -0
  111. package/dist/handlers-VHWrxbM_.mjs +1 -0
  112. package/dist/handlers-l8QIKqBj.mjs +2 -0
  113. package/dist/handlers-mPFiNPe8.mjs +302 -0
  114. package/dist/{handlers-Dz9PYsCa.mjs → handlers-yo_xYzT8.mjs} +118 -904
  115. package/dist/handlers.impl-D9Hh8Bgl.mjs +1 -0
  116. package/dist/hooks-D4XLfgtV.mjs +600 -0
  117. package/dist/index.mjs +13 -5240
  118. package/dist/jadx-search-B_Yse0Zh.mjs +5 -0
  119. package/dist/logger-sBC6IdRT.mjs +1 -0
  120. package/dist/maintenance-BUpIukhg.mjs +1 -0
  121. package/dist/manifest-0Jpt_AQa.mjs +1 -0
  122. package/dist/manifest-B3fZbSWR.mjs +1 -0
  123. package/dist/manifest-B7NB2rh2.mjs +1 -0
  124. package/dist/manifest-BDi4nbH1.mjs +1 -0
  125. package/dist/manifest-BLDfkE7n.mjs +1 -0
  126. package/dist/manifest-BcXbB4gf.mjs +1 -0
  127. package/dist/manifest-Bdnc_vrc.mjs +1 -0
  128. package/dist/manifest-BuYKgCnp.mjs +1 -0
  129. package/dist/manifest-CBfNnGPV.mjs +1 -0
  130. package/dist/manifest-CPS1Xv69.mjs +1 -0
  131. package/dist/manifest-CQH9FhwI.mjs +1 -0
  132. package/dist/manifest-CRryuZF4.mjs +1 -0
  133. package/dist/manifest-CctIumog.mjs +1 -0
  134. package/dist/manifest-CvTe5ZGV2.mjs +1 -0
  135. package/dist/manifest-D-5GH0DV.mjs +1 -0
  136. package/dist/manifest-D3Ssf3IC.mjs +1 -0
  137. package/dist/manifest-D5ck3NvC.mjs +1 -0
  138. package/dist/manifest-D9jUUJAu.mjs +1 -0
  139. package/dist/manifest-DCx6w2XV.mjs +1 -0
  140. package/dist/manifest-DG19q-Ld.mjs +1 -0
  141. package/dist/manifest-DLMlD0Zc.mjs +1 -0
  142. package/dist/manifest-DYpn8w_h.mjs +1 -0
  143. package/dist/manifest-DYzWI8Xs.mjs +1 -0
  144. package/dist/manifest-D_obs5F4.mjs +1 -0
  145. package/dist/manifest-DujQqEQR.mjs +2 -0
  146. package/dist/manifest-DwL2ik8P.mjs +1 -0
  147. package/dist/manifest-ItF5P8A12.mjs +1 -0
  148. package/dist/manifest-KZphqIyX.mjs +1 -0
  149. package/dist/manifest-LG42zPLY2.mjs +1 -0
  150. package/dist/manifest-LLdI5m4T.mjs +1 -0
  151. package/dist/manifest-QYbQXJn0.mjs +1 -0
  152. package/dist/manifest-RcpX_MyZ.mjs +123 -0
  153. package/dist/manifest-YgVd8Sgz.mjs +1 -0
  154. package/dist/manifest-Zy7Odg5J.mjs +1 -0
  155. package/dist/manifest-ff1H7Pdp.mjs +1 -0
  156. package/dist/manifest-iuhF6pTL2.mjs +1 -0
  157. package/dist/manifest-nXHmtMSp2.mjs +1 -0
  158. package/dist/manifest-xWfu6iLo.mjs +1 -0
  159. package/dist/manifest-yC16OhL2.mjs +1 -0
  160. package/dist/manifest-ztWJoXy4.mjs +1 -0
  161. package/dist/matchesWildcardPattern-BAG6LvX5.mjs +1 -0
  162. package/dist/modules-BPBcSaM-.mjs +333 -0
  163. package/dist/mojo-ipc-BhwsdVUW.mjs +9 -0
  164. package/dist/native/scripts/linux/enum-windows.sh +12 -12
  165. package/dist/native/scripts/macos/enum-windows.applescript +22 -22
  166. package/dist/native-j8l473zn.mjs +961 -0
  167. package/dist/network-T0VRwNPd.mjs +7 -0
  168. package/dist/outputPaths-B4Ic4RZh.mjs +2 -0
  169. package/dist/parse-args-Bw413PlW.mjs +1 -0
  170. package/dist/platform-CzaQtISh.mjs +93 -0
  171. package/dist/playwright-cdp-fallback-DqFdx9-s.mjs +1 -0
  172. package/dist/process-CWhsCWrf.mjs +2 -0
  173. package/dist/proxy-DZFlDsG3.mjs +2 -0
  174. package/dist/registry-DH4sc1dt.mjs +1 -0
  175. package/dist/renderer-pid-9tJnZ_9N.mjs +1 -0
  176. package/dist/response-C7rKQst4.mjs +1 -0
  177. package/dist/search-defaults-lYBVn_3L.mjs +1 -0
  178. package/dist/server/plugin-api.d.mts +19 -36
  179. package/dist/server/plugin-api.mjs +1 -293
  180. package/dist/shared-state-board-BSjXLUV1.mjs +1 -0
  181. package/dist/sourcemap-Dh3Ai_ur.mjs +1 -0
  182. package/dist/ssrf-policy-CsIJGkpd.mjs +1 -0
  183. package/dist/streaming-BcJ0B6ao.mjs +1 -0
  184. package/dist/tool-builder-qif8M9-K.mjs +1 -0
  185. package/dist/transform-DOxzeWPB.mjs +103 -0
  186. package/dist/types-D9EiE5o9.mjs +1 -0
  187. package/dist/types-Fz69RzbZ.mjs +1 -0
  188. package/dist/wasm-CZ_HTfKR.mjs +174 -0
  189. package/dist/webcrack-C1iYG_EX.mjs +46 -0
  190. package/dist/workflow-BdwQmARn.mjs +101 -0
  191. package/package.json +55 -82
  192. package/src/native/scripts/linux/enum-windows.sh +12 -12
  193. package/src/native/scripts/macos/enum-windows.applescript +22 -22
  194. package/dist/AntiCheatDetector-CqGDXmfc.mjs +0 -350
  195. package/dist/CacheAdapters-jJFy20G-.mjs +0 -80
  196. package/dist/CodeInjector-BdjRfNx7.mjs +0 -150
  197. package/dist/ConsoleMonitor-DykL3IAw.mjs +0 -2269
  198. package/dist/DarwinAPI-ETyy0xyo.mjs +0 -363
  199. package/dist/DetailedDataManager-HT49OrvF.mjs +0 -217
  200. package/dist/EventBus-DFKvADm3.mjs +0 -141
  201. package/dist/EvidenceGraphBridge-318Oi0Lf.mjs +0 -153
  202. package/dist/ExtensionManager-BDMsY2Dz.mjs +0 -721
  203. package/dist/FingerprintManager-BN4UQWnX.mjs +0 -96
  204. package/dist/HardwareBreakpoint-Cc2AFq1Y.mjs +0 -239
  205. package/dist/HeapAnalyzer-DruMgsgj.mjs +0 -284
  206. package/dist/InstrumentationSession-DLH0vd-z.mjs +0 -244
  207. package/dist/MemoryController-CMtviNW_.mjs +0 -167
  208. package/dist/MemoryScanSession-ITgb_NMi.mjs +0 -278
  209. package/dist/MemoryScanner-CiL7Z3ey.mjs +0 -428
  210. package/dist/NativeMemoryManager.impl-D9Lkovvn.mjs +0 -485
  211. package/dist/NativeMemoryManager.utils-BBlAixF5.mjs +0 -165
  212. package/dist/PEAnalyzer-DMQ44gen.mjs +0 -385
  213. package/dist/PageController-BPJNqqBN.mjs +0 -431
  214. package/dist/PointerChainEngine-K7wN8Z-w.mjs +0 -325
  215. package/dist/PrerequisiteError-TuyZIs6n.mjs +0 -20
  216. package/dist/ProcessRegistry-zGg12QbE.mjs +0 -74
  217. package/dist/ResponseBuilder-CJXWmWNw.mjs +0 -143
  218. package/dist/ReverseEvidenceGraph-C02-gXOh.mjs +0 -269
  219. package/dist/ScriptManager-ZuWD-0Jg.mjs +0 -3003
  220. package/dist/Speedhack-D-z0umeT.mjs +0 -156
  221. package/dist/StealthVerifier-BWmPgQsv.mjs +0 -135
  222. package/dist/StructureAnalyzer-Cav5AVSL.mjs +0 -429
  223. package/dist/ToolCatalog-5OJdMiF0.mjs +0 -582
  224. package/dist/ToolError-jh9whhMd.mjs +0 -15
  225. package/dist/ToolProbe-DbCFGyrg.mjs +0 -45
  226. package/dist/ToolRegistry-B9krbTtI.mjs +0 -180
  227. package/dist/ToolRouter.policy-BGDAGyeH.mjs +0 -344
  228. package/dist/TraceRecorder-B41Z5XBj.mjs +0 -1286
  229. package/dist/VersionDetector-K3V4vGsw.mjs +0 -104
  230. package/dist/Win32API-C2kjj0ze.mjs +0 -346
  231. package/dist/Win32Debug-CKrGOTpo.mjs +0 -274
  232. package/dist/WorkflowEngine-DJ6M4opp.mjs +0 -569
  233. package/dist/analysis-BHeJW2Nb.mjs +0 -1234
  234. package/dist/artifactRetention-CPXkUJXp.mjs +0 -598
  235. package/dist/artifacts-DkfosXH3.mjs +0 -59
  236. package/dist/authorization-schema-DRqyJMSk.mjs +0 -31
  237. package/dist/betterSqlite3-DLSBZodi.mjs +0 -74
  238. package/dist/binary-instrument--V3MAhJ4.mjs +0 -971
  239. package/dist/bind-helpers-ClV34xdn.mjs +0 -42
  240. package/dist/boringssl-inspector-Bo_LOLaS.mjs +0 -180
  241. package/dist/browser-Dx3_S2cG.mjs +0 -4369
  242. package/dist/capabilities-CcHlvWgK.mjs +0 -33
  243. package/dist/chunk-CjcI7cDX.mjs +0 -15
  244. package/dist/concurrency-Drev_Vz9.mjs +0 -41
  245. package/dist/constants-CDZLOoVv.mjs +0 -534
  246. package/dist/coordination-DgItD9DL.mjs +0 -259
  247. package/dist/debugger-RS3RSAqs.mjs +0 -1288
  248. package/dist/definitions-BEoYofW5.mjs +0 -47
  249. package/dist/definitions-BRaefg3u.mjs +0 -365
  250. package/dist/definitions-BbkvZkiv.mjs +0 -96
  251. package/dist/definitions-BtWSHJ3o.mjs +0 -17
  252. package/dist/definitions-C1gCHO0i.mjs +0 -43
  253. package/dist/definitions-CDOg_b-l.mjs +0 -138
  254. package/dist/definitions-CVPD9hzZ.mjs +0 -54
  255. package/dist/definitions-Cea8Lgl7.mjs +0 -94
  256. package/dist/definitions-DAgIyjxM.mjs +0 -10
  257. package/dist/definitions-DJA27nsL.mjs +0 -66
  258. package/dist/definitions-DKPFU3LW.mjs +0 -25
  259. package/dist/definitions-DPRpZQ96.mjs +0 -47
  260. package/dist/definitions-DUE5gmdn.mjs +0 -18
  261. package/dist/definitions-DYVjOtxa.mjs +0 -26
  262. package/dist/definitions-DcYLVLCo.mjs +0 -37
  263. package/dist/definitions-Pp5LI2H4.mjs +0 -27
  264. package/dist/definitions-j9KdHVNR.mjs +0 -14
  265. package/dist/definitions-uzkjBwa7.mjs +0 -258
  266. package/dist/definitions-va-AnLuQ.mjs +0 -28
  267. package/dist/encoding-DJeqHmpd.mjs +0 -1079
  268. package/dist/evidence-graph-bridge-DcYizFk2.mjs +0 -136
  269. package/dist/factory-C90tBff6.mjs +0 -575
  270. package/dist/flat-target-session-Dgax2Cy3.mjs +0 -29
  271. package/dist/formatAddress-nnMvEohD.mjs +0 -17
  272. package/dist/graphql-CoHrhweh.mjs +0 -1197
  273. package/dist/handlers-4jmR0nMs.mjs +0 -898
  274. package/dist/handlers-BAHPxcch.mjs +0 -789
  275. package/dist/handlers-BOs9b907.mjs +0 -2600
  276. package/dist/handlers-BWXEy6ef.mjs +0 -917
  277. package/dist/handlers-Bndn6QvE.mjs +0 -111
  278. package/dist/handlers-BqC4bD4s.mjs +0 -681
  279. package/dist/handlers-BtYq60bM2.mjs +0 -276
  280. package/dist/handlers-BzgcB4iv.mjs +0 -799
  281. package/dist/handlers-CRyRWj2b.mjs +0 -859
  282. package/dist/handlers-CVv2H1uq.mjs +0 -592
  283. package/dist/handlers-Dl5a7JS4.mjs +0 -572
  284. package/dist/handlers-Dx2d7jt7.mjs +0 -2537
  285. package/dist/handlers-HujRKC3b.mjs +0 -661
  286. package/dist/handlers.impl-XWXkQfyi.mjs +0 -807
  287. package/dist/hooks-B1B8NRHL.mjs +0 -898
  288. package/dist/logger-Dh_xb7_2.mjs +0 -93
  289. package/dist/maintenance-PRMkLVRW.mjs +0 -835
  290. package/dist/manifest-67Bok-Si.mjs +0 -58
  291. package/dist/manifest-6lNTMZAB2.mjs +0 -87
  292. package/dist/manifest-B2duEHiH.mjs +0 -90
  293. package/dist/manifest-B6EY9Vm8.mjs +0 -57
  294. package/dist/manifest-B6nKSbyY.mjs +0 -95
  295. package/dist/manifest-BL8AQNPF.mjs +0 -106
  296. package/dist/manifest-BSZvJJmV.mjs +0 -47
  297. package/dist/manifest-BU7qzUyX.mjs +0 -418
  298. package/dist/manifest-Bl62e8WK.mjs +0 -49
  299. package/dist/manifest-Bo5cXjdt.mjs +0 -82
  300. package/dist/manifest-BpS4gtUK.mjs +0 -1347
  301. package/dist/manifest-Bv65_e2W.mjs +0 -101
  302. package/dist/manifest-BytNIF4Z.mjs +0 -117
  303. package/dist/manifest-C-xtsjS3.mjs +0 -81
  304. package/dist/manifest-CDYl7OhA.mjs +0 -66
  305. package/dist/manifest-CRZ3xmkD.mjs +0 -61
  306. package/dist/manifest-CoW6u4Tp.mjs +0 -132
  307. package/dist/manifest-Cq5zN_8A.mjs +0 -50
  308. package/dist/manifest-D7YZM_2e.mjs +0 -194
  309. package/dist/manifest-DE_VrAeQ.mjs +0 -314
  310. package/dist/manifest-DGsXSCpT.mjs +0 -39
  311. package/dist/manifest-DJ2vfEuW.mjs +0 -156
  312. package/dist/manifest-DPXDYhEu.mjs +0 -80
  313. package/dist/manifest-Dd4fQb0a.mjs +0 -322
  314. package/dist/manifest-Deq6opGg.mjs +0 -223
  315. package/dist/manifest-DfJTafJK.mjs +0 -37
  316. package/dist/manifest-DgOdgN_j.mjs +0 -50
  317. package/dist/manifest-DlbMW4v4.mjs +0 -47
  318. package/dist/manifest-DmVfbH0w.mjs +0 -374
  319. package/dist/manifest-Dog6Ddjr.mjs +0 -109
  320. package/dist/manifest-DvgU5FWb.mjs +0 -58
  321. package/dist/manifest-HsfDBs7j.mjs +0 -50
  322. package/dist/manifest-I8oQHvCG.mjs +0 -186
  323. package/dist/manifest-NvH_a-av.mjs +0 -786
  324. package/dist/manifest-cEJU1v0Z.mjs +0 -129
  325. package/dist/manifest-wOl5XLB12.mjs +0 -112
  326. package/dist/modules-tZozf0LQ.mjs +0 -10635
  327. package/dist/mojo-ipc-DXNEXEqb.mjs +0 -640
  328. package/dist/network-CPVvwvFg.mjs +0 -3852
  329. package/dist/outputPaths-um7lCRY3.mjs +0 -1141
  330. package/dist/parse-args-B4cY5Vx5.mjs +0 -39
  331. package/dist/platform-CYeFoTWp.mjs +0 -2161
  332. package/dist/process-BTbgcVc6.mjs +0 -1306
  333. package/dist/proxy-r8YN6nP1.mjs +0 -192
  334. package/dist/registry-Bl8ZQW61.mjs +0 -34
  335. package/dist/response-CWhh2aLo.mjs +0 -34
  336. package/dist/shared-state-board-BoZnSoj-.mjs +0 -586
  337. package/dist/sourcemap-BIDHUVXy.mjs +0 -934
  338. package/dist/ssrf-policy-Dsqd-DTX.mjs +0 -166
  339. package/dist/streaming-Dal6utPp.mjs +0 -725
  340. package/dist/tool-builder-BHJp32mV.mjs +0 -186
  341. package/dist/transform-DRVgGG90.mjs +0 -1011
  342. package/dist/types-Bx92KJfT.mjs +0 -4
  343. package/dist/types-DDBWs9UP.mjs +0 -37
  344. package/dist/wasm-BYx5UOeG.mjs +0 -1044
  345. package/dist/webcrack-Be0_FccV.mjs +0 -747
  346. package/dist/workflow-BpuKEtvn.mjs +0 -725
@@ -0,0 +1,123 @@
1
+ import{t as e}from"./VersionDetector-CHT36Az0.mjs";import{a as t,r as n,t as r}from"./parse-args-Bw413PlW.mjs";import{t as i}from"./bind-helpers-m2U8glkF.mjs";import{t as a}from"./tool-builder-qif8M9-K.mjs";import{spawn as o}from"node:child_process";function s(e){return typeof e==`object`&&!!e}function c(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function l(e){return s(e)?`value`in e?l(e.value):`result`in e?l(e.result):e:e}function u(e){let t=l(e),n=typeof t==`string`?(()=>{try{return JSON.parse(t)}catch{return null}})():t;if(!s(n))return null;let r=c(n.jsHeapSizeUsed)??c(n.usedSize),i=c(n.jsHeapSizeTotal)??c(n.totalSize),a=c(n.jsHeapSizeLimit)??0;if(r===null&&i===null&&a===0)return null;let o={};return r!==null&&(o.jsHeapSizeUsed=r),i!==null&&(o.jsHeapSizeTotal=i),a>0&&(o.jsHeapSizeLimit=a),o}function d(e){return e.jsHeapSizeUsed>0||e.jsHeapSizeTotal>0||e.jsHeapSizeLimit>0}function f(e,t){if(!e&&!t)return null;let n={jsHeapSizeUsed:t?.jsHeapSizeUsed??e?.jsHeapSizeUsed??0,jsHeapSizeTotal:t?.jsHeapSizeTotal??e?.jsHeapSizeTotal??0,jsHeapSizeLimit:t?.jsHeapSizeLimit??e?.jsHeapSizeLimit??0};return d(n)?n:null}function ee(e){let t=l(e);if(!s(t)||!Array.isArray(t.metrics))return null;let n=new Map;for(let e of t.metrics){if(!s(e))continue;let t=typeof e.name==`string`?e.name:null,r=c(e.value);!t||r===null||n.set(t,r)}let r=n.get(`JSHeapUsedSize`)??0,i=n.get(`JSHeapTotalSize`)??0;return r===0&&i===0?null:{jsHeapSizeUsed:r,jsHeapSizeTotal:i}}function p(e){return s(e)&&typeof e.createCDPSession==`function`}function m(e){return s(e)&&typeof e.send==`function`&&typeof e.detach==`function`}var h=class{getPage;session=null;constructor(e){this.getPage=e}async enableHeapProfiler(){let e=await this.createSession();if(!e)throw Error(`V8InspectorClient: cannot create CDP session`);await e.send(`HeapProfiler.enable`),this.session=e}async takeHeapSnapshot(e){this.session||await this.enableHeapProfiler();let t=this.session;if(!t)throw Error(`V8InspectorClient: session not available for heap snapshot`);return new Promise((n,r)=>{let i=[],a=0,o=t=>{let n=t?.chunk;typeof n==`string`&&(i.push(n),a+=Buffer.byteLength(n,`utf8`),e?.(n))};t.on(`HeapProfiler.addHeapSnapshotChunk`,o),t.send(`HeapProfiler.takeHeapSnapshot`,{reportProgress:!1}).then(()=>{t.off(`HeapProfiler.addHeapSnapshotChunk`,o),n(a)}).catch(e=>{t.off(`HeapProfiler.addHeapSnapshotChunk`,o),r(e)})})}async getObjectByObjectId(e){let t=await this.createSession();if(!t)return null;try{let n=await t.send(`Runtime.getProperties`,{objectId:e,ownProperties:!0,accessorPropertiesOnly:!1,generatePreview:!0});if(Array.isArray(n.result))return{kind:`runtime-object`,properties:n.result,internalProperties:Array.isArray(n.internalProperties)?n.internalProperties:[],privateProperties:Array.isArray(n.privateProperties)?n.privateProperties:[],...n.exceptionDetails?{exceptionDetails:n.exceptionDetails}:{}}}catch{}try{return await t.send(`HeapProfiler.getObjectByHeapObjectId`,{objectId:e})}catch{return null}}async getHeapUsage(){this.session||await this.enableHeapProfiler();let e=this.session;if(!e)throw Error(`V8InspectorClient: session not available for heap usage`);let t=null;try{let n=await e.send(`Runtime.getHeapUsage`);t=f(t,u(n))}catch{}try{let n=await e.send(`HeapProfiler.getHeapUsage`);t=f(t,u(n))}catch{}try{let n=await e.send(`Performance.getMetrics`);t=f(t,ee(n))}catch{}try{let n=await e.send(`Runtime.evaluate`,{expression:`
2
+ (() => {
3
+ const m = performance.memory;
4
+ return m
5
+ ? {
6
+ jsHeapSizeUsed: m.usedJSHeapSize,
7
+ jsHeapSizeTotal: m.totalJSHeapSize,
8
+ jsHeapSizeLimit: m.jsHeapSizeLimit
9
+ }
10
+ : null;
11
+ })()
12
+ `,returnByValue:!0});t=f(t,u(n))}catch{}if(!t)throw Error(`V8InspectorClient: heap usage metrics unavailable`);return t}async dispose(){this.session&&=(await this.session.detach().catch(()=>void 0),null)}async createSession(){if(this.session)return this.session;if(!this.getPage)return null;try{let e=await this.getPage();if(!p(e))return null;let t=await e.createCDPSession();return m(t)?(this.session=t,t):null}catch{return null}}};const g=[a(`v8_heap_snapshot_capture`,e=>e.desc(`Capture a V8 heap snapshot for offline analysis.`).query()),a(`v8_heap_snapshot_analyze`,e=>e.desc(`Analyze a heap snapshot: retained size, constructor distribution, dominators.`).string(`snapshotId`,`Snapshot ID`).required(`snapshotId`).query()),a(`v8_heap_diff`,e=>e.desc(`Compare two heap snapshots to find allocation changes.`).string(`beforeSnapshotId`,`Baseline snapshot ID`).string(`afterSnapshotId`,`Updated snapshot ID`).required(`beforeSnapshotId`,`afterSnapshotId`).query()),a(`v8_object_inspect`,e=>e.desc(`Inspect a live JS object by objectId with property enumeration.`).string(`address`,`Runtime objectId or compatible heap object id`).required(`address`).query()),a(`v8_heap_stats`,e=>e.desc(`Report V8 heap statistics: used, total, external.`).query()),a(`v8_bytecode_extract`,e=>e.desc(`Extract V8 bytecode for a script by scriptId, with source fallback.`).string(`scriptId`,`CDP scriptId`).number(`functionOffset`,`Optional function byte offset`).boolean(`includeSourceFallback`,`Include source-derived fallback output`).required(`scriptId`).query()),a(`v8_version_detect`,e=>e.desc(`Detect V8 engine version, flags, and runtime capabilities.`).query()),a(`v8_jit_inspect`,e=>e.desc(`Report JIT compilation status and optimization tier for a script.`).string(`scriptId`,`CDP scriptId`).required(`scriptId`).query())],_=new Map;function te(){return _}function v(e){return _.set(e.id,e),e}function y(e){return _.get(e)}function b(e){return typeof e==`object`&&!!e}function x(e){return b(e)&&typeof e.createCDPSession==`function`}function S(e){return b(e)?`value`in e?S(e.value):`result`in e?S(e.result):e:e}async function C(e,t){let n=`snapshot_${Date.now().toString(36)}`,r=new Date().toISOString(),i=[];if(t.client)try{let e=v({id:n,chunks:i,capturedAt:r,sizeBytes:await t.client.takeHeapSnapshot(e=>{i.push(e)})});return t.setSnapshot(n),{success:!0,snapshotId:e.id,capturedAt:e.capturedAt,sizeBytes:e.sizeBytes,chunks:[],simulated:!1}}catch{}try{let e=await t.getPage();if(x(e)){let i=await e.createCDPSession(),a=(e,t)=>i.send(e,t),o=()=>i.detach();await a(`HeapProfiler.enable`);let s=await a(`Runtime.evaluate`,{expression:`
13
+ (() => {
14
+ const m = performance.memory;
15
+ return m
16
+ ? {
17
+ jsHeapSizeUsed: m.usedJSHeapSize,
18
+ jsHeapSizeTotal: m.totalJSHeapSize,
19
+ jsHeapSizeLimit: m.jsHeapSizeLimit
20
+ }
21
+ : null;
22
+ })()
23
+ `,returnByValue:!0});await o().catch(()=>void 0);let c=S(s),l=typeof c==`string`?(()=>{try{return JSON.parse(c)}catch{return null}})():c,u=0;b(l)&&typeof l.jsHeapSizeUsed==`number`&&(u=l.jsHeapSizeUsed);let d=v({id:n,chunks:[`{"simulated":true,"sizeBytes":${u}}`],capturedAt:r,sizeBytes:u});return t.setSnapshot(n),{success:!0,snapshotId:d.id,capturedAt:d.capturedAt,sizeBytes:d.sizeBytes,chunks:[],simulated:!0}}}catch{}let a=v({id:n,chunks:[`{}`],capturedAt:r,sizeBytes:0});return t.setSnapshot(n),{success:!0,snapshotId:a.id,capturedAt:a.capturedAt,sizeBytes:a.sizeBytes,chunks:[],simulated:!0}}const w=`__JSHOOK_BYTECODE_STATUS__:`,T=`__jshookBytecodeTarget__`;function ne(e){return/^[A-Za-z_$][\w$]*$/u.test(e)}function re(e){let t=e.trim();return t.length===0||t===`anonymous`?T:ne(t)?t:T}function ie(e){let t=e.trim();return t.startsWith(`function`)||t.startsWith(`async function`)||t.startsWith(`class `)||t.startsWith(`(`)||t.includes(`=>`)?!1:/^(?:async\s+)?(?:get\s+|set\s+)?\*?\s*[A-Za-z_$][\w$]*\s*\(/u.test(t)}function E(e){let t=e.sourceSlice.trim(),n=e.functionName.trim();return`
24
+ let ${T};
25
+ ${ie(t)?`
26
+ try {
27
+ const __jshookHolder = { ${t} };
28
+ const __jshookCandidate = __jshookHolder[${JSON.stringify(n)}];
29
+ if (typeof __jshookCandidate === 'function') {
30
+ ${T} = __jshookCandidate;
31
+ }
32
+ } catch {}
33
+ `:`
34
+ try {
35
+ ${T} = (${t});
36
+ } catch {}
37
+ `}
38
+
39
+ if (typeof ${T} !== 'function') {
40
+ console.log(${JSON.stringify(`${w}resolve-failed`)});
41
+ } else {
42
+ try {
43
+ const __jshookArity =
44
+ typeof ${T}.length === 'number' && ${T}.length > 0
45
+ ? ${T}.length
46
+ : 0;
47
+ Reflect.apply(${T}, globalThis, Array.from({ length: __jshookArity }, () => undefined));
48
+ } catch (error) {
49
+ console.log(${JSON.stringify(`${w}invoke-error:`)} + String(error));
50
+ }
51
+ console.log(${JSON.stringify(`${w}done`)});
52
+ }
53
+ `}function D(e,t){let n=e.split(/\r?\n/u),r=new Set(t.filter(e=>e.length>0)),i=null,a=!1,o=[];for(let e of n){let t=/^\[generated bytecode for function: (.+?) \(/u.exec(e);if(t?.[1]){if(a&&o.length>0)break;i=r.has(t[1])?t[1]:null,a=i!==null,a&&(o.length=0,o.push(e));continue}if(a){if(e.startsWith(w))break;o.push(e)}}return o.length===0?{bytecode:null,matchedFunctionName:null}:{bytecode:o.join(`
54
+ `).trim(),matchedFunctionName:i}}function O(e){let t=e.split(/\r?\n/u).find(e=>e.startsWith(w)&&e.length>27);return t?t.slice(27):null}function k(e,t,n){let r=O(e);if(r===`resolve-failed`)return`Unable to reconstruct an executable function from the captured source slice`;if(typeof r==`string`&&r.startsWith(`invoke-error:`))return`Function compiled but raised during isolated invocation: ${r.slice(13)}`;let i=t.trim();return i.length>0?i:n}async function A(e,t,n){return await new Promise(r=>{let i=o(process.execPath,[`--print-bytecode`,`--print-bytecode-filter=${t}`,`-`],{stdio:[`pipe`,`pipe`,`pipe`]}),a=``,s=``,c=!1,l=e=>{c||(c=!0,clearTimeout(u),r({stdout:a,stderr:s,error:e}))},u=setTimeout(()=>{i.kill(),l(`Timed out after ${n}ms while waiting for isolated bytecode output`)},n);i.stdout.setEncoding(`utf8`),i.stderr.setEncoding(`utf8`),i.stdout.on(`data`,e=>{a+=e}),i.stderr.on(`data`,e=>{s+=e}),i.on(`error`,e=>{l(e instanceof Error?e.message:String(e))}),i.on(`close`,e=>{l(e===0?null:`Bytecode printer exited with code ${e}`)}),i.stdin.end(e)})}async function j(e,t=15e3){let n=re(e.functionName),r=Array.from(new Set([n,T])),i=E(e);for(let e of r){let{stdout:a,stderr:o,error:s}=await A(i,e,t),c=D(a,r);if(c.bytecode){let e=c.matchedFunctionName===T?n:c.matchedFunctionName;return{available:!0,bytecode:c.bytecode,format:`ignition-bytecode`,functionName:e??n,reason:`Ignition bytecode emitted by an isolated V8 process via --print-bytecode from the extracted source slice`,rawIgnitionBytecodeAvailable:!0}}if(s&&e===r.at(-1))return{available:!1,bytecode:null,format:null,functionName:n,reason:k(a,o,s),rawIgnitionBytecodeAvailable:!1}}return{available:!1,bytecode:null,format:null,functionName:n,reason:`Isolated V8 bytecode printer did not emit a matching function block`,rawIgnitionBytecodeAvailable:!1}}function M(e){return typeof e==`object`&&!!e}function N(e){return M(e)&&typeof e.createCDPSession==`function`}function P(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function F(e){return typeof e==`string`?e:null}function I(e){return Array.isArray(e)?e.filter(M):[]}function L(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}function R(e){let t=e.trim();if(t.startsWith(`function `))return{opcode:`FunctionDeclaration`,operands:[]};if(t.startsWith(`return `))return{opcode:`Return`,operands:[t.slice(7)]};if(t.includes(`=>`))return{opcode:`CreateClosure`,operands:[]};if(t.includes(`(`)&&t.includes(`)`)){let e=/^([A-Za-z_$][\w$]*)\(/u.exec(t);if(e?.[1])return{opcode:`Call`,operands:[e[1]]}}if(t.includes(`=`)){let e=t.split(`=`,2),n=e[0],r=e[1];if(n&&r)return{opcode:`Store`,operands:[n.trim(),r.trim()]}}return t.startsWith(`if `)?{opcode:`JumpIfTrue`,operands:[t]}:t.startsWith(`for `)||t.startsWith(`while `)?{opcode:`Loop`,operands:[t]}:t.startsWith(`{`)||t.startsWith(`const `)||t.startsWith(`let `)?{opcode:`LoadLiteral`,operands:[t]}:{opcode:`Evaluate`,operands:[t]}}function z(e){let t=[`; pseudo-bytecode synthesized from script source`],n=0;for(let r of e.split(/\r?\n/u)){let e=r.trim();if(e.length===0)continue;let{opcode:i,operands:a}=R(e),o=a.join(`, `);t.push(`${n} ${i}${o.length>0?` ${o}`:``}`),n+=1}return t.join(`
55
+ `)}function B(e,t){if(typeof t==`number`&&t>=0&&t<e.length){let n=Math.max(0,t-120),r=Math.min(e.length,t+120),i=e.slice(n,r),a=/function\s+([A-Za-z_$][\w$]*)/u.exec(i);if(a?.[1])return a[1];let o=/([A-Za-z_$][\w$]*)\s*=\s*(?:async\s*)?\(/u.exec(i);if(o?.[1])return o[1]}return/function\s+([A-Za-z_$][\w$]*)/u.exec(e)?.[1]??`anonymous`}function V(e){let t=e.matchAll(/\{([^{}]+:[^{}]+)\}/gu),n=[],r=0;for(let e of t){let t=e[1];if(!t)continue;let i=t.split(`,`).map(e=>e.trim()).map(e=>{let[t]=e.split(`:`,1);return t?.trim()??``}).filter(e=>e.length>0).filter((e,t,n)=>n.indexOf(e)===t);i.length!==0&&(n.push({address:`hidden-class-${r}`,properties:i,transitionMap:i.length>1?i.join(` -> `):void 0}),r+=1)}return n}function ae(e){let t=e.result;return M(t)&&t.value!==void 0?t.value:t}function H(e){let t=F(e.reason);if(t)return t;let n=F(e.disassemblyError);if(n)return n;let r=F(e.disassemblyType);return r?`Native disassembly returned ${r} instead of text`:`Runtime disassembly output is not exposed through the current browser/CDP path`}var U=class{getPage;versionDetector;constructor(t){this.getPage=t,this.versionDetector=new e(t)}async extractBytecode(e,t){let n=await this.resolveScriptFunctionContext(e,t);return n?{functionName:n.functionName,bytecode:z(n.sourceSlice),sourcePosition:n.sourcePosition}:null}async attemptNativeBytecodeExtraction(e,t){let n=await this.resolveScriptFunctionContext(e,t);if(!n)return null;if(!await this.versionDetector.supportsNativesSyntax())return{available:!1,bytecode:null,format:null,functionName:n.functionName,rawIgnitionBytecodeAvailable:!1,reason:`V8 natives syntax is unavailable in the current browser target`,sourcePosition:n.sourcePosition,supportsNativesSyntax:!1};let r=await this.createSession();if(!r)return{available:!1,bytecode:null,format:null,functionName:n.functionName,rawIgnitionBytecodeAvailable:!1,reason:`Browser/page CDP session is unavailable for native bytecode inspection`,sourcePosition:n.sourcePosition,supportsNativesSyntax:!0};try{let e=await r.send(`Runtime.evaluate`,{expression:this.buildNativeExtractionExpression(n.functionName),returnByValue:!0,awaitPromise:!1});if(!M(e))return{available:!1,bytecode:null,format:null,functionName:n.functionName,rawIgnitionBytecodeAvailable:!1,reason:`Runtime.evaluate did not return structured data`,sourcePosition:n.sourcePosition,supportsNativesSyntax:!0};if(e.exceptionDetails)return{available:!1,bytecode:null,format:null,functionName:n.functionName,rawIgnitionBytecodeAvailable:!1,reason:`Runtime.evaluate raised an exception while probing native bytecode`,sourcePosition:n.sourcePosition,supportsNativesSyntax:!0};let t=ae(e),i=M(t)?t:{},a=F(i.disassembly),o=P(i.nativeSourcePosition);if(a&&a.length>0)return{available:!0,bytecode:a,format:`v8-disassembly`,functionName:n.functionName,rawIgnitionBytecodeAvailable:!1,reason:`Native V8 disassembly text returned via %DisassembleFunction`,sourcePosition:o??n.sourcePosition,supportsNativesSyntax:!0};let s=await j(n);return s.available&&s.bytecode?{available:!0,bytecode:s.bytecode,format:s.format,functionName:s.functionName,rawIgnitionBytecodeAvailable:s.rawIgnitionBytecodeAvailable,reason:s.reason,sourcePosition:o??n.sourcePosition,supportsNativesSyntax:!0}:{available:!1,bytecode:null,format:null,functionName:n.functionName,rawIgnitionBytecodeAvailable:!1,reason:`${H(i)}; isolated printer: ${s.reason}`,sourcePosition:o??n.sourcePosition,supportsNativesSyntax:!0}}catch(e){return{available:!1,bytecode:null,format:null,functionName:n.functionName,rawIgnitionBytecodeAvailable:!1,reason:e instanceof Error?e.message:String(e),sourcePosition:n.sourcePosition,supportsNativesSyntax:!0}}finally{await r.detach().catch(()=>void 0)}}disassembleBytecode(e){let t=[];for(let n of e.split(/\r?\n/u)){let e=n.trim();if(e.length===0||e.startsWith(`;`))continue;let r=/^\d+\s+\w+>\s+[0-9A-Fa-f]+\s+@\s*(\d+)\s*:\s*(?:[0-9A-Fa-f]{2}(?:\s+[0-9A-Fa-f]{2})*\s+)?([A-Za-z_][\w.]*)\s*(.*)$/u.exec(e)??/^(\d+)\s*@\s*([A-Za-z_][\w.]*)\s*(.*)$/u.exec(e)??/^(?:0x[0-9a-fA-F]+\s+@)?\s*(\d+)\s*[: ]\s*([A-Za-z_][\w.]*)\s*(.*)$/u.exec(e)??/^(\d+)\s+([A-Za-z_][\w.]*)\s*(.*)$/u.exec(e);if(!r)continue;let i=Number(r[1]);Number.isFinite(i)&&t.push({offset:i,opcode:r[2]??`Unknown`,operands:L(r[3]??``)})}return t}async findHiddenClasses(e){let t=await this.getScriptSource(e);return t?V(t):[]}buildNativeExtractionExpression(e){return`
56
+ (() => {
57
+ const functionName = ${JSON.stringify(e)};
58
+ try {
59
+ const candidate = globalThis[functionName];
60
+ if (typeof candidate !== 'function') {
61
+ return {
62
+ functionName,
63
+ reason: 'Resolved function is not reachable via globalThis in the current target',
64
+ };
65
+ }
66
+
67
+ const nativeSourcePosition = (() => {
68
+ try {
69
+ return %FunctionGetScriptSourcePosition(candidate);
70
+ } catch (error) {
71
+ return null;
72
+ }
73
+ })();
74
+
75
+ try {
76
+ const disassembly = %DisassembleFunction(candidate);
77
+ return {
78
+ functionName,
79
+ disassembly: typeof disassembly === 'string' ? disassembly : null,
80
+ disassemblyType: typeof disassembly,
81
+ nativeSourcePosition:
82
+ typeof nativeSourcePosition === 'number' ? nativeSourcePosition : null,
83
+ };
84
+ } catch (error) {
85
+ return {
86
+ functionName,
87
+ disassemblyError: String(error),
88
+ nativeSourcePosition:
89
+ typeof nativeSourcePosition === 'number' ? nativeSourcePosition : null,
90
+ };
91
+ }
92
+ } catch (error) {
93
+ return {
94
+ functionName,
95
+ reason: String(error),
96
+ };
97
+ }
98
+ })()
99
+ `}async resolveScriptFunctionContext(e,t){let n=await this.getScriptSource(e);if(!n)return null;let r=await this.getCoverageFunctions(e),i=(typeof t==`number`?r.find(e=>t>=e.startOffset&&t<=e.endOffset):void 0)??r.find(e=>e.functionName.length>0&&e.functionName!==`anonymous`)??r[0],a=i?.functionName&&i.functionName.length>0&&i.functionName!==`anonymous`?i.functionName:B(n,t),o=i&&i.endOffset>i.startOffset?n.slice(i.startOffset,i.endOffset):n;return{functionName:a,sourcePosition:typeof t==`number`?t:i?i.startOffset:void 0,sourceSlice:o}}async getCoverageFunctions(e){let t=await this.createSession();if(!t)return[];try{await t.send(`Profiler.enable`),await t.send(`Profiler.startPreciseCoverage`,{callCount:!0,detailed:!0});let n=await t.send(`Profiler.takePreciseCoverage`),r=(M(n)?I(n.result):[]).find(t=>typeof t.scriptId==`string`&&t.scriptId===e);if(!r)return[];let i=I(r.functions),a=[];for(let e of i){let t=I(e.ranges)[0];if(!t)continue;let n=P(t.startOffset),r=P(t.endOffset);n===null||r===null||a.push({functionName:F(e.functionName)??`anonymous`,startOffset:n,endOffset:r})}return a}catch{return[]}finally{await t.send(`Profiler.stopPreciseCoverage`).catch(()=>void 0),await t.send(`Profiler.disable`).catch(()=>void 0),await t.detach().catch(()=>void 0)}}async getScriptSource(e){let t=await this.createSession();if(!t)return null;try{await t.send(`Debugger.enable`);let n=await t.send(`Debugger.getScriptSource`,{scriptId:e});if(!M(n))return null;let r=n.scriptSource;return typeof r==`string`?r:null}catch{return null}finally{await t.send(`Debugger.disable`).catch(()=>void 0),await t.detach().catch(()=>void 0)}}async createSession(){if(!this.getPage)return null;try{let e=await this.getPage();return N(e)?await e.createCDPSession():null}catch{return null}}};function W(e){return typeof e==`object`&&!!e}function G(e){return W(e)&&typeof e.createCDPSession==`function`}function K(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(W(e)&&typeof e.value==`number`){let t=e.value;return typeof t==`number`&&Number.isFinite(t)?t:null}return null}function q(e){return e===null?{optimized:!1,tier:`unknown`}:e&128?{optimized:!0,tier:`maglev`}:e&64?{optimized:!0,tier:`turbofan`}:e&16||e&32?{optimized:!0,tier:`optimized`}:{optimized:!1,tier:`interpreted`}}var J=class{getPage;bytecodeExtractor;versionDetector;optimizedFunctionsCache=[];constructor(t){this.getPage=t,this.bytecodeExtractor=new U(t),this.versionDetector=new e(t)}async inspectJIT(e){let t=await this.bytecodeExtractor.findHiddenClasses(e),n=await this.bytecodeExtractor.extractBytecode(e),r=new Set;n&&r.add(n.functionName);for(let e of t){let t=e.properties[0];t&&r.add(t)}r.size===0&&r.add(`anonymous`);let i=await this.versionDetector.supportsNativesSyntax(),a=[];for(let e of r){let{optimized:t,tier:n}=q(i?await this.getOptimizationStatus(e):null);a.push({functionName:e,optimized:t,tier:n})}return this.optimizedFunctionsCache=a,{functions:a,supportsNativesSyntax:i,inspectionMode:i?`native-status`:`heuristic`}}async forceDeoptimization(e){if(!await this.versionDetector.supportsNativesSyntax())return;let t=await this.createSession();if(t)try{await t.send(`Runtime.evaluate`,{expression:`
100
+ (() => {
101
+ try {
102
+ const candidate = eval(${JSON.stringify(e)});
103
+ if (typeof candidate === 'function') {
104
+ %DeoptimizeFunction(candidate);
105
+ }
106
+ } catch (error) {
107
+ return undefined;
108
+ }
109
+ return undefined;
110
+ })()
111
+ `,returnByValue:!0,awaitPromise:!1})}finally{await t.detach().catch(()=>void 0)}}async getOptimizedFunctions(){return[...this.optimizedFunctionsCache]}async getOptimizationStatus(e){let t=await this.createSession();if(!t)return null;try{let n=await t.send(`Runtime.evaluate`,{expression:`
112
+ (() => {
113
+ try {
114
+ const candidate = globalThis[${JSON.stringify(e)}];
115
+ if (typeof candidate !== 'function') {
116
+ return null;
117
+ }
118
+ return %GetOptimizationStatus(candidate);
119
+ } catch (error) {
120
+ return null;
121
+ }
122
+ })()
123
+ `,returnByValue:!0,awaitPromise:!1});return W(n)?K(n.result):null}catch{return null}finally{await t.detach().catch(()=>void 0)}}async createSession(){if(!this.getPage)return null;try{let e=await this.getPage();return G(e)?await e.createCDPSession():null}catch{return null}}};async function oe(e,i){let a=t(e,`scriptId`,``).trim(),o=n(e,`functionOffset`),s=r(e,`includeSourceFallback`,!1);if(a.length===0)return{success:!1,error:`scriptId is required`};let c=new U(i?.getPage),l=await c.attemptNativeBytecodeExtraction(a,o??void 0);if(!l)return{success:!1,error:`Unable to inspect bytecode for scriptId "${a}"`};let u=await c.findHiddenClasses(a);if(l.available&&l.bytecode){let e={functionName:l.functionName,bytecode:l.bytecode,sourcePosition:l.sourcePosition};return{success:!0,scriptId:a,functionOffset:o??null,mode:`native`,bytecodeAvailable:!0,format:l.format,rawIgnitionBytecodeAvailable:l.rawIgnitionBytecodeAvailable,supportsNativesSyntax:l.supportsNativesSyntax,reason:l.reason,extraction:e,disassembly:c.disassembleBytecode(l.bytecode),hiddenClasses:u,sourceFallback:null}}let d=s?await c.extractBytecode(a,o??void 0):null;return{success:!0,scriptId:a,functionOffset:o??null,mode:d?`source-fallback`:`unavailable`,bytecodeAvailable:!1,format:null,rawIgnitionBytecodeAvailable:l.rawIgnitionBytecodeAvailable,supportsNativesSyntax:l.supportsNativesSyntax,reason:l.reason,extraction:null,disassembly:[],hiddenClasses:u,sourceFallback:d?{format:`pseudo-bytecode`,extraction:d,disassembly:c.disassembleBytecode(d.bytecode)}:null}}async function se(e,n){let r=t(e,`scriptId`,``).trim();if(r.length===0)return{success:!1,error:`scriptId is required`};let i=await new J(n?.getPage).inspectJIT(r);return{success:!0,scriptId:r,inspectionMode:i.inspectionMode,supportsNativesSyntax:i.supportsNativesSyntax,functions:i.functions}}function ce(e){return{kind:`runtime-object`,source:`debugger-session`,propertyCount:e.length,properties:e}}function Y(e,t){let n=e[t];if(typeof n!=`string`||n.length===0)throw Error(`${t} is required`);return n}function X(e){let t=e.pageController;if(!t)throw Error(`PageController not available`);return t}function Z(e){return{success:!1,error:`${e}: PageController not available`,capability:`page-controller`,fix:`Call browser_launch or browser_attach first, and select a tab that exposes a stable Page handle.`}}function le(e){return new h(e.pageController?Q(e):void 0)}function Q(e){let t=X(e);return async()=>await t.getPage()}var $=class{deps;currentSnapshotId=null;constructor(e){this.deps=e}async handle(e,t){let n={v8_heap_snapshot_capture:e=>this.v8_heap_snapshot_capture(e),v8_heap_snapshot_analyze:e=>this.v8_heap_snapshot_analyze(e),v8_heap_diff:e=>this.v8_heap_diff(e),v8_object_inspect:e=>this.v8_object_inspect(e),v8_heap_stats:e=>this.v8_heap_stats(e),v8_bytecode_extract:e=>this.v8_bytecode_extract(e),v8_version_detect:e=>this.v8_version_detect(e),v8_jit_inspect:e=>this.v8_jit_inspect(e)}[e];if(!n)throw Error(`Unknown v8-inspector tool: ${e}`);return n(t)}async v8_heap_snapshot_capture(e){X(this.deps.ctx);let t=await C(e,{getPage:Q(this.deps.ctx),getSnapshot:()=>this.currentSnapshotId,setSnapshot:e=>{this.currentSnapshotId=e},client:this.deps.client});return t.success&&t.snapshotId&&this.deps.ctx.eventBus.emit(`v8:heap_captured`,{snapshotId:t.snapshotId,sizeBytes:t.sizeBytes,timestamp:t.capturedAt}),t}async v8_heap_snapshot_analyze(e){let t=Y(e,`snapshotId`),n=y(t);if(!n)throw Error(`Snapshot ${t} not found`);return{success:!0,snapshotId:t,summary:{chunkCount:n.chunks.length,sizeBytes:n.sizeBytes},objectAddress:`0x${n.sizeBytes.toString(16)}`}}async v8_heap_diff(e){let t=typeof e.beforeSnapshotId==`string`?e.beforeSnapshotId:void 0,n=typeof e.afterSnapshotId==`string`?e.afterSnapshotId:void 0;if(!t||!n)throw Error(`Both beforeSnapshotId and afterSnapshotId are required`);let r=y(t);if(!r)throw Error(`Snapshot ${t} not found`);let i=y(n);if(!i)throw Error(`Snapshot ${n} not found`);return{success:!0,beforeSnapshotId:t,afterSnapshotId:n,sizeDeltaBytes:i.sizeBytes-r.sizeBytes}}async v8_object_inspect(e){let t=Y(e,`address`),n=await this.inspectObjectViaDebugger(t);if(!n)try{n=await this.deps.client.getObjectByObjectId(t)??void 0}catch{}return{success:!0,address:t,...n?{objectData:n}:{}}}async v8_heap_stats(e){X(this.deps.ctx);let t;try{t=await this.deps.client.getHeapUsage()}catch{}return{success:!0,snapshotCount:te().size,...t?{heapUsage:t}:{}}}async v8_bytecode_extract(e){return oe(e,{getPage:this.deps.ctx.pageController?Q(this.deps.ctx):void 0})}async v8_version_detect(e){if(!this.deps.ctx.pageController)return Z(`v8_version_detect`);let{VersionDetector:t}=await import(`./VersionDetector-CHT36Az0.mjs`).then(e=>e.n),n=new t(Q(this.deps.ctx));return{success:!0,version:await n.detectV8Version(),features:{nativesSyntax:await n.supportsNativesSyntax()}}}async v8_jit_inspect(e){return se(e,{getPage:this.deps.ctx.pageController?Q(this.deps.ctx):void 0})}async inspectObjectViaDebugger(e){let t=this.deps.ctx.debuggerManager;if(!(!t||typeof t.getObjectPropertiesById!=`function`))try{let n=await t.getObjectPropertiesById(e);return Array.isArray(n)?ce(n):void 0}catch{return}}};const ue=g.map(e=>({tool:e,domain:`v8-inspector`,bind:i(`v8InspectorHandlers`,(t,n)=>t.handle(e.name,n))}));async function de(e){let t=new $({ctx:e,client:le(e)});return e.v8InspectorHandlers=t,t}const fe={kind:`domain-manifest`,version:1,domain:`v8-inspector`,depKey:`v8InspectorHandlers`,profiles:[`workflow`,`full`],registrations:ue,ensure:de,prerequisites:{v8_heap_snapshot_capture:[{condition:`Browser must be connected`,fix:`Call browser_launch or browser_attach first`}],v8_heap_snapshot_analyze:[{condition:`A snapshotId must be provided`,fix:`Capture a heap snapshot before analysis`}],v8_heap_diff:[{condition:`Both snapshot identifiers are required`,fix:`Capture before/after snapshots before diffing`}]},toolDependencies:[{from:`v8_heap_snapshot_capture`,to:`browser_attach`,relation:`requires`,weight:.8},{from:`v8_object_inspect`,to:`v8_heap_snapshot_analyze`,relation:`precedes`,weight:.6}],workflowRule:{patterns:[/v8.*heap/i,/heap.*snapshot/i,/jit/i,/object.*address/i],priority:80,tools:[`v8_heap_snapshot_capture`,`v8_heap_snapshot_analyze`,`v8_object_inspect`,`v8_heap_stats`],hint:`Capture a heap snapshot, analyze it, then inspect interesting objects by address.`}};export{$ as V8InspectorHandlers,fe as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DH4sc1dt.mjs";import{n as t}from"./bind-helpers-m2U8glkF.mjs";import{t as n}from"./definitions-CT8ln6GQ.mjs";const r=`wasm`,i=`wasmHandlers`,a=t({domain:r,depKey:i,lookup:e(n),entries:[{tool:`wasm_capabilities`,method:`handleWasmCapabilities`},{tool:`wasm_dump`,method:`handleWasmDump`},{tool:`wasm_disassemble`,method:`handleWasmDisassemble`},{tool:`wasm_decompile`,method:`handleWasmDecompile`},{tool:`wasm_inspect_sections`,method:`handleWasmInspectSections`},{tool:`wasm_offline_run`,method:`handleWasmOfflineRun`},{tool:`wasm_optimize`,method:`handleWasmOptimize`},{tool:`wasm_vmp_trace`,method:`handleWasmVmpTrace`},{tool:`wasm_memory_inspect`,method:`handleWasmMemoryInspect`},{tool:`wasm_to_c`,method:`handleWasmToC`},{tool:`wasm_detect_obfuscation`,method:`handleWasmDetectObfuscation`},{tool:`wasm_instrument_trace`,method:`handleWasmInstrumentTrace`}]});async function o(e){let{CodeCollector:t}=await import(`./collector-Bpl6qy2L.mjs`),{WasmToolHandlers:n}=await import(`./wasm-CZ_HTfKR.mjs`);return e.collector||(e.collector=new t(e.config.puppeteer),e.registerCaches()),e.wasmHandlers||=new n(e.collector),e.wasmHandlers}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-DH4sc1dt.mjs";import{n as t}from"./bind-helpers-m2U8glkF.mjs";import{t as n}from"./definitions-Cenu6mxo.mjs";const r=`antidebug`,i=`antidebugHandlers`,a=t({domain:r,depKey:i,lookup:e(n),entries:[{tool:`antidebug_bypass`,method:`handleAntidebugBypass`},{tool:`antidebug_detect_protections`,method:`handleAntiDebugDetectProtections`}]});async function o(e){let{CodeCollector:t}=await import(`./collector-Bpl6qy2L.mjs`),{AntiDebugToolHandlers:n}=await import(`./antidebug-7L3ygj_9.mjs`);return e.collector||(e.collector=new t(e.config.puppeteer),e.registerCaches()),e.antidebugHandlers||=new n(e.collector),e.antidebugHandlers}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-DH4sc1dt.mjs";import{n as t}from"./bind-helpers-m2U8glkF.mjs";import{t as n}from"./definitions-Tls8c0A0.mjs";const r=`apk-packer`,i=`apkPackerHandlers`,a=t({domain:r,depKey:i,lookup:e(n),entries:[{tool:`apk_packer_detect`,method:`handleApkPackerDetect`},{tool:`apk_packer_list_signatures`,method:`handleApkPackerListSignatures`},{tool:`apk_signing_block_parse`,method:`handleApkSigningBlockParse`}]});async function o(e){let{ApkPackerHandlers:t}=await import(`./apk-packer-BqXcInnX.mjs`);return e.apkPackerHandlers||=new t,e.apkPackerHandlers}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-DH4sc1dt.mjs";import{n as t}from"./bind-helpers-m2U8glkF.mjs";import{t as n}from"./ensure-browser-core-DxWC-NTp.mjs";import{t as r}from"./definitions-Ibci7e_L.mjs";const i=`workflow`,a=`workflowHandlers`,o=t({domain:i,depKey:a,lookup:e(r),entries:[{tool:`page_script_register`,method:`handlePageScriptRegister`},{tool:`page_script_run`,method:`handlePageScriptRun`},{tool:`api_probe_batch`,method:`handleApiProbeBatch`},{tool:`js_bundle_search`,method:`handleJsBundleSearch`},{tool:`list_extension_workflows`,method:`handleListExtensionWorkflows`},{tool:`run_extension_workflow`,method:`handleRunExtensionWorkflow`}]});async function s(e){let{WorkflowHandlers:t}=await import(`./workflow-BdwQmARn.mjs`);await n(e);let r=e.handlerDeps.browserHandlers,i=e.handlerDeps.advancedHandlers;return e.workflowHandlers||=new t({browserHandlers:r,advancedHandlers:i,serverContext:e}),e.workflowHandlers}const c={kind:`domain-manifest`,version:1,domain:i,depKey:a,profiles:[`workflow`,`full`],ensure:s,workflowRule:{patterns:[/(workflow|extension|run)/i,/(工作流|扩展|运行)/i],priority:95,tools:[`run_extension_workflow`,`list_extension_workflows`],hint:`Extension workflow: list available workflows -> run the best matching workflow`},prerequisites:{page_script_run:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],api_probe_batch:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`},{condition:`Network monitoring must be enabled`,fix:`Call network_monitor(enable) first`}],js_bundle_search:[{condition:`Browser must be launched`,fix:`Call browser_launch or browser_attach first`}],run_extension_workflow:[{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"./registry-DH4sc1dt.mjs";import{n as t}from"./bind-helpers-m2U8glkF.mjs";import{t as n}from"./definitions-CQd7yCQH.mjs";const r=`graphql`,i=`graphqlHandlers`,a=t({domain:r,depKey:i,lookup:e(n),entries:[{tool:`call_graph_analyze`,method:`handleCallGraphAnalyze`},{tool:`script_replace_persist`,method:`handleScriptReplacePersist`},{tool:`graphql_introspect`,method:`handleGraphqlIntrospect`},{tool:`graphql_extract_queries`,method:`handleGraphqlExtractQueries`},{tool:`graphql_replay`,method:`handleGraphqlReplay`},{tool:`graphql_enum_schema`,method:`handleGraphqlEnumSchema`}]});async function o(e){let{CodeCollector:t,ConsoleMonitor:n}=await import(`./collector-Bpl6qy2L.mjs`),{GraphQLToolHandlers:r}=await import(`./graphql-B2TiPEow.mjs`);return e.collector||(e.collector=new t(e.config.puppeteer),e.registerCaches()),e.consoleMonitor||=new n(e.collector),e.graphqlHandlers||=new r({collector:e.collector,consoleMonitor:e.consoleMonitor}),e.graphqlHandlers}const s={kind:`domain-manifest`,version:1,domain:r,depKey:i,profiles:[`workflow`,`full`],ensure:o,registrations:a};export{s as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DH4sc1dt.mjs";import{n as t}from"./bind-helpers-m2U8glkF.mjs";import{t as n}from"./tool-builder-qif8M9-K.mjs";const r=[n(`extension_list_installed`,e=>e.desc(`List installed extensions from the local registry.`).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_list_installed`,method:`handleListInstalled`},{tool:`extension_execute_in_context`,method:`handleExecuteInContext`},{tool:`extension_reload`,method:`handleReload`},{tool:`extension_uninstall`,method:`handleUninstall`},{tool:`webhook`,method:`handleWebhookDispatch`}]});async function s(e){let{ExtensionRegistryHandlers:t}=await import(`./handlers-BpDlVVVU.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|bluetooth|ble|hid|serial|esp32|registry)\b/i,/(install|uninstall|reload).*(extension|plugin)/i],priority:70,tools:[`install_extension`,`extension_list_installed`,`webhook`],hint:`Plugin + webhook C2 + BLE HID + serial flashing pipeline.`},prerequisites:{webhook:[{condition:`Webhook listen port must be free`,fix:"Pick an unused port via the `port` argument or stop the conflicting service"}]},toolDependencies:[{from:`webhook`,to:`extension_list_installed`,relation:`suggests`,weight:.5}]};export{c as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./registry-DH4sc1dt.mjs";import{n as t}from"./bind-helpers-m2U8glkF.mjs";import{t as n}from"./definitions-BftdXgXI.mjs";import{resolve as r}from"node:path";const i=`shared-state-board`,a=`sharedStateBoardHandlers`,o=t({domain:i,depKey:a,lookup:e(n),entries:[{tool:`state_board`,method:`handleDispatch`},{tool:`state_board_watch`,method:`handleWatchDispatch`},{tool:`state_board_io`,method:`handleIODispatch`}]});async function s(e){let{SharedStateBoardHandlers:t}=await import(`./shared-state-board-BSjXLUV1.mjs`);e.sharedStateBoardHandlers||=new t;let n=e.getDomainInstance(`snapshotScheduler`),i=e.getDomainInstance(`snapshotStateDir`);return e.sharedStateBoardHandlers.setPersistNotifier(n?()=>n.notifyDirty():void 0),n&&i&&!e.getDomainInstance(`sharedStateBoardSnapshotRegistered`)&&(n.register(r(i,`state-board`,`current.json`),e.sharedStateBoardHandlers.getStore()),e.setDomainInstance(`sharedStateBoardSnapshotRegistered`,!0)),e.sharedStateBoardHandlers}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"./EventBus-DL8iLA09.mjs";import{t}from"./tool-builder-qif8M9-K.mjs";import{t as n}from"./native-j8l473zn.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=[t(`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`)),t(`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`)),t(`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`)),t(`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()),t(`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()),t(`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`)),t(`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`)),t(`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()),t(`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()),t(`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()),t(`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()),t(`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()),t(`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()),t(`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()),t(`memory_patch_undo`,e=>e.desc(`Undo a previous patch by restoring the original bytes.`).string(`patchId`,`Patch ID to undo`).required(`patchId`).destructive()),t(`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()),t(`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()),t(`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()),t(`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()),t(`memory_speedhack`,e=>e.desc(`Hook time APIs to scale process time. Actions: apply (hook + set speed), set (adjust speed).`).enum(`action`,[`apply`,`set`],`Speedhack action`).number(`pid`,`Target process ID (optional when a browser session is attached)`).number(`speed`,`Speed multiplier`).required(`action`,`speed`).destructive()),t(`memory_write_history`,e=>e.desc(`Undo or redo the last memory write operation.`).enum(`action`,[`undo`,`redo`],`History action`).required(`action`).destructive().openWorld()),t(`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()),t(`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()),t(`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()),t(`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")`).required(`moduleBase`).query()),t(`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.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`moduleBase`,`Module base address (hex)`).enum(`table`,[`imports`,`exports`,`both`],`Which table to parse`,{default:`both`}).required(`moduleBase`).query()),t(`memory_inline_hook_detect`,e=>e.desc(`Detect inline hooks by comparing the first 16 bytes of each exported function on disk vs in memory. Identifies JMP rel32, JMP abs64, PUSH+RET hooks and decodes jump targets.`).number(`pid`,`Target process ID (optional when a browser session is attached)`).string(`moduleName`,`Module name filter (optional — scans all modules if omitted)`).required().query()),t(`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()),t(`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)`).required().query()),t(`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)`).required().query())],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:t}=await import(`./handlers.impl-D9Hh8Bgl.mjs`);l=e;let r=e;if(r[s])return r[s];let[i,a,o,d,f,p]=await Promise.all([import(`./MemoryScanner-g1_L1ub5.mjs`),import(`./MemoryScanSession-DG_F-PjE.mjs`),import(`./PointerChainEngine-BhCUkmxY.mjs`),import(`./StructureAnalyzer-C5lpuZkg.mjs`),import(`./CodeInjector-Cll_7bLJ.mjs`),import(`./MemoryController-X1XNSn1n.mjs`)]);if(u||=new n,c){let[n,c,l,m,h]=await Promise.all([import(`./HardwareBreakpoint-BUfPdp0f.mjs`),import(`./Speedhack-yseDPSZ9.mjs`),import(`./HeapAnalyzer-B_aqY8oj.mjs`),import(`./PEAnalyzer-yWQaGrcx.mjs`),import(`./AntiCheatDetector-B6d4Qe9D.mjs`)]);r[s]=new t(i.memoryScanner,a.scanSessionManager,o.pointerChainEngine,d.structureAnalyzer,n.hardwareBreakpointEngine,f.codeInjector,p.memoryController,c.speedhack,l.heapAnalyzer,m.peAnalyzer,h.antiCheatDetector,e.eventBus,u,e)}else r[s]=new t(i.memoryScanner,a.scanSessionManager,o.pointerChainEngine,d.structureAnalyzer,null,f.codeInjector,p.memoryController,null,null,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_heap_enumerate`,`memory_heap_stats`,`memory_heap_anomalies`,`memory_pe_headers`,`memory_pe_imports_exports`,`memory_inline_hook_detect`,`memory_anticheat_detect`,`memory_guard_pages`,`memory_integrity_check`,`memory_breakpoint`,`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))}],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,/pointer\s*(chain|scan)/i,/struct(ure)?\s*(analy|infer|dissect)/i,/vtable|rtti/i,/breakpoint|watchpoint|hardware\s*bp/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_pointer_chain`,`memory_structure_analyze`,`memory_vtable_parse`,`memory_scan_session`,...c?[`memory_breakpoint`,`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
+ function e(e,t){if(t.length===0)return!0;let n=t.split(`*`).filter(e=>e.length>0);if(n.length===0)return!0;let r=0;for(let t of n){let n=e.indexOf(t,r);if(n===-1)return!1;r=n+t.length}return!0}export{e as t};