@jshookmcp/jshook 0.2.9 → 0.3.0

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 (187) hide show
  1. package/README.md +2 -2
  2. package/README.zh.md +2 -2
  3. package/dist/{AntiCheatDetector-BNk-EoBt.mjs → AntiCheatDetector-CqGDXmfc.mjs} +159 -53
  4. package/dist/{CodeInjector-Cq8q01kp.mjs → CodeInjector-BdjRfNx7.mjs} +5 -5
  5. package/dist/{ConsoleMonitor-CPVQW1Y-.mjs → ConsoleMonitor-DykL3IAw.mjs} +85 -17
  6. package/dist/{DetailedDataManager-BQQcxh64.mjs → DetailedDataManager-HT49OrvF.mjs} +1 -1
  7. package/dist/{ExtensionManager-CWYgw0YW.mjs → ExtensionManager-BDMsY2Dz.mjs} +15 -8
  8. package/dist/{HardwareBreakpoint-B9gZCdFP.mjs → HardwareBreakpoint-Cc2AFq1Y.mjs} +3 -3
  9. package/dist/{HeapAnalyzer-BLDH0dCv.mjs → HeapAnalyzer-DruMgsgj.mjs} +20 -20
  10. package/dist/{HookGeneratorBuilders.core.generators.storage-CtcdK78Q.mjs → HookGeneratorBuilders.core.generators.storage-CTbB4Lcx.mjs} +1 -74
  11. package/dist/{InstrumentationSession-CvPC7Jwy.mjs → InstrumentationSession-DLH0vd-z.mjs} +2 -2
  12. package/dist/{MemoryController-CbVdCIJF.mjs → MemoryController-CMtviNW_.mjs} +3 -3
  13. package/dist/{MemoryScanSession-BsDZbLYm.mjs → MemoryScanSession-ITgb_NMi.mjs} +2 -2
  14. package/dist/{MemoryScanner-Bcpml6II.mjs → MemoryScanner-CiL7Z3ey.mjs} +12 -9
  15. package/dist/{NativeMemoryManager.impl-dZtA1ZGn.mjs → NativeMemoryManager.impl-D9Lkovvn.mjs} +13 -10
  16. package/dist/{NativeMemoryManager.utils-B-FjA2mJ.mjs → NativeMemoryManager.utils-BBlAixF5.mjs} +1 -1
  17. package/dist/{PEAnalyzer-D1lzJ_VG.mjs → PEAnalyzer-DMQ44gen.mjs} +15 -15
  18. package/dist/{PageController-Bqm2kZ_X.mjs → PageController-BPJNqqBN.mjs} +18 -4
  19. package/dist/{PointerChainEngine-BOhyVsjx.mjs → PointerChainEngine-K7wN8Z-w.mjs} +10 -7
  20. package/dist/ProcessRegistry-zGg12QbE.mjs +74 -0
  21. package/dist/{ResponseBuilder-D3iFYx2N.mjs → ResponseBuilder-CJXWmWNw.mjs} +10 -10
  22. package/dist/{ScriptManager-aHHq0X7U.mjs → ScriptManager-ZuWD-0Jg.mjs} +195 -192
  23. package/dist/{Speedhack-CqdIFlQl.mjs → Speedhack-D-z0umeT.mjs} +2 -2
  24. package/dist/{StructureAnalyzer-DhFaPvRO.mjs → StructureAnalyzer-Cav5AVSL.mjs} +9 -6
  25. package/dist/{ToolCatalog-C0JGZoOm.mjs → ToolCatalog-5OJdMiF0.mjs} +81 -81
  26. package/dist/{ToolProbe-oC7aPrkv.mjs → ToolProbe-DbCFGyrg.mjs} +1 -1
  27. package/dist/{ToolRegistry-BjaF4oNz.mjs → ToolRegistry-B9krbTtI.mjs} +51 -2
  28. package/dist/{ToolRouter.policy-BWV67ZK-.mjs → ToolRouter.policy-BGDAGyeH.mjs} +60 -20
  29. package/dist/TraceRecorder-B41Z5XBj.mjs +1286 -0
  30. package/dist/{Win32API-CePkipZY.mjs → Win32API-C2kjj0ze.mjs} +18 -12
  31. package/dist/{Win32Debug-BvKs-gxc.mjs → Win32Debug-CKrGOTpo.mjs} +2 -2
  32. package/dist/{WorkflowEngine-CuvkZtWu.mjs → WorkflowEngine-DJ6M4opp.mjs} +226 -255
  33. package/dist/analysis-BHeJW2Nb.mjs +1234 -0
  34. package/dist/{antidebug-CqDTB_uk.mjs → antidebug-BRKeyt27.mjs} +3 -3
  35. package/dist/{artifactRetention-CFEprwPw.mjs → artifactRetention-CPXkUJXp.mjs} +13 -6
  36. package/dist/{artifacts-Bk2-_uPq.mjs → artifacts-DkfosXH3.mjs} +1 -1
  37. package/dist/authorization-schema-DRqyJMSk.mjs +31 -0
  38. package/dist/{binary-instrument-CXfpx6fT.mjs → binary-instrument--V3MAhJ4.mjs} +19 -27
  39. package/dist/bind-helpers-ClV34xdn.mjs +42 -0
  40. package/dist/{boringssl-inspector-BH2D3VKc.mjs → boringssl-inspector-Bo_LOLaS.mjs} +1 -1
  41. package/dist/{browser-BpOr5PEx.mjs → browser-Dx3_S2cG.mjs} +324 -37
  42. package/dist/capabilities-CcHlvWgK.mjs +33 -0
  43. package/dist/{constants-B0OANIBL.mjs → constants-CDZLOoVv.mjs} +18 -3
  44. package/dist/{coordination-qUbyF8KU.mjs → coordination-DgItD9DL.mjs} +2 -2
  45. package/dist/{debugger-gnKxRSN0.mjs → debugger-RS3RSAqs.mjs} +30 -13
  46. package/dist/definitions-BEoYofW5.mjs +47 -0
  47. package/dist/{definitions-bAhHQJq9.mjs → definitions-BRaefg3u.mjs} +11 -5
  48. package/dist/{definitions-DVGfrn7y.mjs → definitions-BbkvZkiv.mjs} +2 -2
  49. package/dist/definitions-BtWSHJ3o.mjs +17 -0
  50. package/dist/{definitions-BMfYXoNC.mjs → definitions-C1gCHO0i.mjs} +1 -1
  51. package/dist/{definitions-C1UvM5Iy.mjs → definitions-CDOg_b-l.mjs} +14 -2
  52. package/dist/definitions-CVPD9hzZ.mjs +54 -0
  53. package/dist/{definitions-Cke7zEb8.mjs → definitions-Cea8Lgl7.mjs} +1 -1
  54. package/dist/definitions-DAgIyjxM.mjs +10 -0
  55. package/dist/{definitions-B4rAvHNZ.mjs → definitions-DJA27nsL.mjs} +12 -9
  56. package/dist/{definitions-ClJLzsJQ.mjs → definitions-DKPFU3LW.mjs} +1 -1
  57. package/dist/{definitions-D3VsGcvz.mjs → definitions-DPRpZQ96.mjs} +7 -7
  58. package/dist/{definitions-B18eyf0B.mjs → definitions-DUE5gmdn.mjs} +1 -1
  59. package/dist/definitions-DYVjOtxa.mjs +26 -0
  60. package/dist/{definitions-BB_4jnmy.mjs → definitions-DcYLVLCo.mjs} +1 -1
  61. package/dist/{definitions-Beid2EB3.mjs → definitions-Pp5LI2H4.mjs} +1 -1
  62. package/dist/definitions-j9KdHVNR.mjs +14 -0
  63. package/dist/definitions-uzkjBwa7.mjs +258 -0
  64. package/dist/{definitions-Cq-zroAU.mjs → definitions-va-AnLuQ.mjs} +4 -4
  65. package/dist/{encoding-Bvz5jLRv.mjs → encoding-DJeqHmpd.mjs} +18 -4
  66. package/dist/{evidence-graph-bridge-C_fv9PuC.mjs → evidence-graph-bridge-DcYizFk2.mjs} +1 -0
  67. package/dist/{factory-DxlGh9Xf.mjs → factory-C90tBff6.mjs} +6 -6
  68. package/dist/flat-target-session-Dgax2Cy3.mjs +29 -0
  69. package/dist/{graphql-DYWzJ29s.mjs → graphql-CoHrhweh.mjs} +205 -34
  70. package/dist/{handlers-C67ktuRN.mjs → handlers-4jmR0nMs.mjs} +220 -32
  71. package/dist/{handlers-DlCJN4Td.mjs → handlers-BAHPxcch.mjs} +122 -90
  72. package/dist/{handlers-9sAbfIg-.mjs → handlers-BOs9b907.mjs} +849 -801
  73. package/dist/{handlers-DxGIq15_2.mjs → handlers-BWXEy6ef.mjs} +16 -16
  74. package/dist/{handlers-tB9Mp9ZK.mjs → handlers-Bndn6QvE.mjs} +31 -4
  75. package/dist/{handlers-CTsDAO6p.mjs → handlers-BqC4bD4s.mjs} +1 -1
  76. package/dist/{handlers-C87g8oCe.mjs → handlers-BtYq60bM2.mjs} +1 -1
  77. package/dist/{handlers-DeLOCd5m.mjs → handlers-BzgcB4iv.mjs} +17 -17
  78. package/dist/{handlers-Cgyg6c0U.mjs → handlers-CRyRWj2b.mjs} +237 -23
  79. package/dist/{handlers-U6L4xhuF.mjs → handlers-CVv2H1uq.mjs} +24 -17
  80. package/dist/{handlers-tiy7EIBp.mjs → handlers-Dl5a7JS4.mjs} +3 -3
  81. package/dist/{handlers-D6j6yka7.mjs → handlers-Dx2d7jt7.mjs} +1893 -1480
  82. package/dist/{handlers-Bl8zkwz1.mjs → handlers-Dz9PYsCa.mjs} +95 -6
  83. package/dist/handlers-HujRKC3b.mjs +661 -0
  84. package/dist/{handlers.impl-DS0d9fUw.mjs → handlers.impl-XWXkQfyi.mjs} +70 -24
  85. package/dist/{hooks-CzCWByww.mjs → hooks-B1B8NRHL.mjs} +3 -3
  86. package/dist/index.mjs +154 -144
  87. package/dist/{maintenance-P7ePRXQC.mjs → maintenance-PRMkLVRW.mjs} +35 -30
  88. package/dist/manifest-67Bok-Si.mjs +58 -0
  89. package/dist/{manifest-B3QVVeBS.mjs → manifest-6lNTMZAB2.mjs} +33 -28
  90. package/dist/manifest-B2duEHiH.mjs +90 -0
  91. package/dist/manifest-B6EY9Vm8.mjs +57 -0
  92. package/dist/{manifest-gZ4s_UtG.mjs → manifest-B6nKSbyY.mjs} +32 -33
  93. package/dist/{manifest-2ToTpjv8.mjs → manifest-BL8AQNPF.mjs} +31 -31
  94. package/dist/{manifest-DzwvxPJX.mjs → manifest-BSZvJJmV.mjs} +23 -14
  95. package/dist/{manifest-Sc_0JQ13.mjs → manifest-BU7qzUyX.mjs} +23 -23
  96. package/dist/{manifest-CT7zZBV1.mjs → manifest-Bl62e8WK.mjs} +24 -23
  97. package/dist/manifest-Bo5cXjdt.mjs +82 -0
  98. package/dist/manifest-BpS4gtUK.mjs +1347 -0
  99. package/dist/manifest-Bv65_e2W.mjs +101 -0
  100. package/dist/manifest-BytNIF4Z.mjs +117 -0
  101. package/dist/{manifest-BqrQ4Tpj.mjs → manifest-C-xtsjS3.mjs} +23 -23
  102. package/dist/{manifest-NXctwWQq.mjs → manifest-CDYl7OhA.mjs} +36 -38
  103. package/dist/manifest-CRZ3xmkD.mjs +61 -0
  104. package/dist/manifest-CoW6u4Tp.mjs +132 -0
  105. package/dist/manifest-Cq5zN_8A.mjs +50 -0
  106. package/dist/{manifest-CAhOuvSl.mjs → manifest-D7YZM_2e.mjs} +75 -85
  107. package/dist/{manifest-DCyjf4n2.mjs → manifest-DE_VrAeQ.mjs} +27 -7
  108. package/dist/manifest-DGsXSCpT.mjs +39 -0
  109. package/dist/{manifest-BB2J8IMJ.mjs → manifest-DJ2vfEuW.mjs} +48 -41
  110. package/dist/{manifest-3g71z6Bg.mjs → manifest-DPXDYhEu.mjs} +26 -25
  111. package/dist/manifest-Dd4fQb0a.mjs +322 -0
  112. package/dist/{manifest-CXsRWjjI.mjs → manifest-Deq6opGg.mjs} +95 -96
  113. package/dist/{manifest-C9RT5nk32.mjs → manifest-DfJTafJK.mjs} +14 -11
  114. package/dist/manifest-DgOdgN_j.mjs +50 -0
  115. package/dist/{manifest-BmtZzQiQ2.mjs → manifest-DlbMW4v4.mjs} +17 -15
  116. package/dist/{manifest-DrbmZcFl2.mjs → manifest-DmVfbH0w.mjs} +212 -91
  117. package/dist/manifest-Dog6Ddjr.mjs +109 -0
  118. package/dist/manifest-DvgU5FWb.mjs +58 -0
  119. package/dist/manifest-HsfDBs7j.mjs +50 -0
  120. package/dist/manifest-I8oQHvCG.mjs +186 -0
  121. package/dist/manifest-NvH_a-av.mjs +786 -0
  122. package/dist/{manifest-Dh8WBmEW.mjs → manifest-cEJU1v0Z.mjs} +24 -24
  123. package/dist/manifest-wOl5XLB12.mjs +112 -0
  124. package/dist/{modules-C184v-S9.mjs → modules-tZozf0LQ.mjs} +130 -860
  125. package/dist/{mojo-ipc-B_H61Afw.mjs → mojo-ipc-DXNEXEqb.mjs} +141 -26
  126. package/dist/{network-671Cw6hV.mjs → network-CPVvwvFg.mjs} +1329 -823
  127. package/dist/{outputPaths-B1uGmrWZ.mjs → outputPaths-um7lCRY3.mjs} +4 -8
  128. package/dist/{platform-WmNn8Sxb.mjs → platform-CYeFoTWp.mjs} +101 -10
  129. package/dist/{process-QcbIy5Zq.mjs → process-BTbgcVc6.mjs} +251 -346
  130. package/dist/{proxy-DqNs0bAd.mjs → proxy-r8YN6nP1.mjs} +30 -8
  131. package/dist/{registry-D-6e18lB.mjs → registry-Bl8ZQW61.mjs} +3 -3
  132. package/dist/{response-BQVP-xUn.mjs → response-CWhh2aLo.mjs} +7 -1
  133. package/dist/{shared-state-board-DV-dpHFJ.mjs → shared-state-board-BoZnSoj-.mjs} +2 -2
  134. package/dist/{sourcemap-Dq8ez8vS.mjs → sourcemap-BIDHUVXy.mjs} +350 -66
  135. package/dist/{streaming-BUQ0VJsg.mjs → streaming-Dal6utPp.mjs} +13 -13
  136. package/dist/{tool-builder-DCbIC5Eo.mjs → tool-builder-BHJp32mV.mjs} +1 -1
  137. package/dist/{transform-CiYJfNX0.mjs → transform-DRVgGG90.mjs} +18 -14
  138. package/dist/wasm-BYx5UOeG.mjs +1044 -0
  139. package/dist/webcrack-Be0_FccV.mjs +747 -0
  140. package/dist/{workflow-f3xJOcjx.mjs → workflow-BpuKEtvn.mjs} +8 -8
  141. package/package.json +76 -43
  142. package/dist/TraceRecorder-DgxyVbdQ.mjs +0 -519
  143. package/dist/analysis-CL9uACt9.mjs +0 -463
  144. package/dist/bind-helpers-xFfRF-qm.mjs +0 -22
  145. package/dist/definitions-6M-eejaT.mjs +0 -53
  146. package/dist/definitions-B3QdlrHv.mjs +0 -34
  147. package/dist/definitions-CXEI7QC72.mjs +0 -216
  148. package/dist/definitions-C_4r7Fo-2.mjs +0 -14
  149. package/dist/definitions-CkFDALoa.mjs +0 -26
  150. package/dist/definitions-Cy3Sl6gV.mjs +0 -34
  151. package/dist/definitions-LKpC3-nL.mjs +0 -9
  152. package/dist/handlers-DdFzXLvF.mjs +0 -446
  153. package/dist/manifest-82baTv4U.mjs +0 -45
  154. package/dist/manifest-BKbgbSiY.mjs +0 -60
  155. package/dist/manifest-Bcf-TJzH.mjs +0 -848
  156. package/dist/manifest-Bnd7kqEY.mjs +0 -55
  157. package/dist/manifest-BqQX6OQC2.mjs +0 -65
  158. package/dist/manifest-Br4RPFt5.mjs +0 -370
  159. package/dist/manifest-C5qDjysN.mjs +0 -107
  160. package/dist/manifest-CBYWCUBJ.mjs +0 -51
  161. package/dist/manifest-CFADCRa1.mjs +0 -37
  162. package/dist/manifest-CQVhavRF.mjs +0 -114
  163. package/dist/manifest-CV12bcrF.mjs +0 -121
  164. package/dist/manifest-CZLUCfG02.mjs +0 -95
  165. package/dist/manifest-D6phHKFd.mjs +0 -131
  166. package/dist/manifest-DHsnKgP6.mjs +0 -60
  167. package/dist/manifest-Df_dliIe.mjs +0 -55
  168. package/dist/manifest-DhKRAT8_.mjs +0 -92
  169. package/dist/manifest-DlpTj4ic2.mjs +0 -193
  170. package/dist/manifest-DuwHjUa5.mjs +0 -70
  171. package/dist/manifest-qSleDqdO.mjs +0 -1023
  172. package/dist/wasm-DQTnHDs4.mjs +0 -531
  173. /package/dist/{CacheAdapters-CDe5WPSV.mjs → CacheAdapters-jJFy20G-.mjs} +0 -0
  174. /package/dist/{DarwinAPI-BNPxu0RH.mjs → DarwinAPI-ETyy0xyo.mjs} +0 -0
  175. /package/dist/{EventBus-DgPmwpeu.mjs → EventBus-DFKvADm3.mjs} +0 -0
  176. /package/dist/{EvidenceGraphBridge-SFesNera.mjs → EvidenceGraphBridge-318Oi0Lf.mjs} +0 -0
  177. /package/dist/{FingerprintManager-gzWtkKuf.mjs → FingerprintManager-BN4UQWnX.mjs} +0 -0
  178. /package/dist/{PrerequisiteError-Dl33Svkz.mjs → PrerequisiteError-TuyZIs6n.mjs} +0 -0
  179. /package/dist/{ReverseEvidenceGraph-Dlsk94LC.mjs → ReverseEvidenceGraph-C02-gXOh.mjs} +0 -0
  180. /package/dist/{StealthVerifier-Bo4T3bz8.mjs → StealthVerifier-BWmPgQsv.mjs} +0 -0
  181. /package/dist/{VersionDetector-CwVLVdDM.mjs → VersionDetector-K3V4vGsw.mjs} +0 -0
  182. /package/dist/{betterSqlite3-0pqusHHH.mjs → betterSqlite3-DLSBZodi.mjs} +0 -0
  183. /package/dist/{concurrency-Bt0yv1kJ.mjs → concurrency-Drev_Vz9.mjs} +0 -0
  184. /package/dist/{formatAddress-DVkj9kpI.mjs → formatAddress-nnMvEohD.mjs} +0 -0
  185. /package/dist/{parse-args-BlRjqlkL.mjs → parse-args-B4cY5Vx5.mjs} +0 -0
  186. /package/dist/{ssrf-policy-ZaUfvhq7.mjs → ssrf-policy-Dsqd-DTX.mjs} +0 -0
  187. /package/dist/{types-CPhOReNX.mjs → types-DDBWs9UP.mjs} +0 -0
@@ -1,8 +1,9 @@
1
- import { n as toolLookup } from "./registry-D-6e18lB.mjs";
2
- import { t as bindByDepKey } from "./bind-helpers-xFfRF-qm.mjs";
3
- import { t as tool } from "./tool-builder-DCbIC5Eo.mjs";
1
+ import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
2
+ import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
3
+ import { t as tool } from "./tool-builder-BHJp32mV.mjs";
4
4
  //#region src/server/domains/mojo-ipc/definitions.ts
5
5
  const mojoIpcTools = [
6
+ tool("mojo_ipc_capabilities", (t) => t.desc("Report Mojo IPC monitoring availability.").query()),
6
7
  tool("mojo_monitor", (t) => t.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")),
7
8
  tool("mojo_decode_message", (t) => t.desc("Decode a Mojo IPC hex payload into a structured field map").string("hexPayload", "Hex-encoded Mojo IPC payload").required("hexPayload").query()),
8
9
  tool("mojo_list_interfaces", (t) => t.desc("List discovered Mojo IPC interfaces and their pending message counts").query()),
@@ -12,10 +13,35 @@ const mojoIpcTools = [
12
13
  //#region src/server/domains/mojo-ipc/manifest.ts
13
14
  const DOMAIN = "mojo-ipc";
14
15
  const DEP_KEY = "mojoIpcHandlers";
15
- const toolByName = toolLookup(mojoIpcTools);
16
- const bind = (invoke) => bindByDepKey(DEP_KEY, invoke);
16
+ const registrations = defineMethodRegistrations({
17
+ domain: DOMAIN,
18
+ depKey: DEP_KEY,
19
+ lookup: toolLookup(mojoIpcTools),
20
+ entries: [
21
+ {
22
+ tool: "mojo_ipc_capabilities",
23
+ method: "handleMojoIpcCapabilities"
24
+ },
25
+ {
26
+ tool: "mojo_monitor",
27
+ method: "handleMojoMonitorDispatch"
28
+ },
29
+ {
30
+ tool: "mojo_decode_message",
31
+ method: "handleMojoDecodeMessage"
32
+ },
33
+ {
34
+ tool: "mojo_list_interfaces",
35
+ method: "handleMojoListInterfaces"
36
+ },
37
+ {
38
+ tool: "mojo_messages_get",
39
+ method: "handleMojoMessagesGet"
40
+ }
41
+ ]
42
+ });
17
43
  async function ensure(ctx) {
18
- const { MojoIPCHandlers } = await import("./mojo-ipc-B_H61Afw.mjs");
44
+ const { MojoIPCHandlers } = await import("./mojo-ipc-DXNEXEqb.mjs");
19
45
  const existingHandlers = ctx.getDomainInstance(DEP_KEY);
20
46
  if (existingHandlers) return existingHandlers;
21
47
  const handlers = new MojoIPCHandlers(void 0, void 0, ctx.eventBus);
@@ -28,28 +54,7 @@ const manifest = {
28
54
  domain: DOMAIN,
29
55
  depKey: DEP_KEY,
30
56
  profiles: ["full"],
31
- registrations: [
32
- {
33
- tool: toolByName("mojo_monitor"),
34
- domain: DOMAIN,
35
- bind: bind((handlers, args) => handlers.handleMojoMonitorDispatch(args))
36
- },
37
- {
38
- tool: toolByName("mojo_decode_message"),
39
- domain: DOMAIN,
40
- bind: bind((handlers, args) => handlers.handleMojoDecodeMessage(args))
41
- },
42
- {
43
- tool: toolByName("mojo_list_interfaces"),
44
- domain: DOMAIN,
45
- bind: bind((handlers) => handlers.handleMojoListInterfaces())
46
- },
47
- {
48
- tool: toolByName("mojo_messages_get"),
49
- domain: DOMAIN,
50
- bind: bind((handlers, args) => handlers.handleMojoMessagesGet(args))
51
- }
52
- ],
57
+ registrations,
53
58
  ensure,
54
59
  workflowRule: {
55
60
  patterns: [/\b(mojo|ipc|chromium\s?(ipc|message)|interface\s?(broker|registry))\b/i, /(mojo|ipc|chromium).*(monitor|capture|hook|trace)/i],
@@ -0,0 +1,90 @@
1
+ import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
2
+ import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
3
+ import { t as platformTools } from "./definitions-CVPD9hzZ.mjs";
4
+ //#region src/server/domains/platform/manifest.ts
5
+ const DOMAIN = "platform";
6
+ const DEP_KEY = "platformHandlers";
7
+ const registrations = defineMethodRegistrations({
8
+ domain: DOMAIN,
9
+ depKey: DEP_KEY,
10
+ lookup: toolLookup(platformTools),
11
+ entries: [
12
+ {
13
+ tool: "platform_capabilities",
14
+ method: "handlePlatformCapabilities"
15
+ },
16
+ {
17
+ tool: "miniapp_pkg_scan",
18
+ method: "handleMiniappPkgScan"
19
+ },
20
+ {
21
+ tool: "miniapp_pkg_unpack",
22
+ method: "handleMiniappPkgUnpack"
23
+ },
24
+ {
25
+ tool: "miniapp_pkg_analyze",
26
+ method: "handleMiniappPkgAnalyze"
27
+ },
28
+ {
29
+ tool: "asar_extract",
30
+ method: "handleAsarExtract"
31
+ },
32
+ {
33
+ tool: "electron_inspect_app",
34
+ method: "handleElectronInspectApp"
35
+ },
36
+ {
37
+ tool: "electron_scan_userdata",
38
+ method: "handleElectronScanUserdata"
39
+ },
40
+ {
41
+ tool: "asar_search",
42
+ method: "handleAsarSearch"
43
+ },
44
+ {
45
+ tool: "electron_check_fuses",
46
+ method: "handleElectronCheckFuses"
47
+ },
48
+ {
49
+ tool: "electron_patch_fuses",
50
+ method: "handleElectronPatchFuses"
51
+ },
52
+ {
53
+ tool: "v8_bytecode_decompile",
54
+ method: "handleV8BytecodeDecompile"
55
+ },
56
+ {
57
+ tool: "electron_launch_debug",
58
+ method: "handleElectronLaunchDebug"
59
+ },
60
+ {
61
+ tool: "electron_debug_status",
62
+ method: "handleElectronDebugStatus"
63
+ },
64
+ {
65
+ tool: "electron_ipc_sniff",
66
+ method: "handleElectronIPCSniff"
67
+ }
68
+ ]
69
+ });
70
+ async function ensure(ctx) {
71
+ const { CodeCollector } = await import("./modules-tZozf0LQ.mjs").then((n) => n.t);
72
+ const { PlatformToolHandlers } = await import("./platform-CYeFoTWp.mjs");
73
+ if (!ctx.collector) {
74
+ ctx.collector = new CodeCollector(ctx.config.puppeteer);
75
+ ctx.registerCaches();
76
+ }
77
+ if (!ctx.platformHandlers) ctx.platformHandlers = new PlatformToolHandlers(ctx.collector);
78
+ return ctx.platformHandlers;
79
+ }
80
+ const manifest = {
81
+ kind: "domain-manifest",
82
+ version: 1,
83
+ domain: DOMAIN,
84
+ depKey: DEP_KEY,
85
+ profiles: ["full"],
86
+ ensure,
87
+ registrations
88
+ };
89
+ //#endregion
90
+ export { manifest as default };
@@ -0,0 +1,57 @@
1
+ import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
2
+ import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
3
+ import { t as coordinationTools } from "./definitions-BtWSHJ3o.mjs";
4
+ //#region src/server/domains/coordination/manifest.ts
5
+ const DOMAIN = "coordination";
6
+ const DEP_KEY = "coordinationHandlers";
7
+ const registrations = defineMethodRegistrations({
8
+ domain: DOMAIN,
9
+ depKey: DEP_KEY,
10
+ lookup: toolLookup(coordinationTools),
11
+ entries: [
12
+ {
13
+ tool: "create_task_handoff",
14
+ method: "handleCreateTaskHandoff"
15
+ },
16
+ {
17
+ tool: "complete_task_handoff",
18
+ method: "handleCompleteTaskHandoff"
19
+ },
20
+ {
21
+ tool: "get_task_context",
22
+ method: "handleGetTaskContext"
23
+ },
24
+ {
25
+ tool: "append_session_insight",
26
+ method: "handleAppendSessionInsight"
27
+ },
28
+ {
29
+ tool: "save_page_snapshot",
30
+ method: "handleSavePageSnapshot"
31
+ },
32
+ {
33
+ tool: "restore_page_snapshot",
34
+ method: "handleRestorePageSnapshot"
35
+ },
36
+ {
37
+ tool: "list_page_snapshots",
38
+ method: "handleListPageSnapshots"
39
+ }
40
+ ]
41
+ });
42
+ async function ensure(ctx) {
43
+ const { CoordinationHandlers } = await import("./coordination-DgItD9DL.mjs");
44
+ if (!ctx.coordinationHandlers) ctx.coordinationHandlers = new CoordinationHandlers(ctx);
45
+ return ctx.coordinationHandlers;
46
+ }
47
+ const manifest = {
48
+ kind: "domain-manifest",
49
+ version: 1,
50
+ domain: DOMAIN,
51
+ depKey: DEP_KEY,
52
+ profiles: ["full"],
53
+ ensure,
54
+ registrations
55
+ };
56
+ //#endregion
57
+ export { manifest as default };
@@ -1,6 +1,6 @@
1
- import { n as toolLookup } from "./registry-D-6e18lB.mjs";
2
- import { t as bindByDepKey } from "./bind-helpers-xFfRF-qm.mjs";
3
- import { t as tool } from "./tool-builder-DCbIC5Eo.mjs";
1
+ import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
2
+ import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
3
+ import { t as tool } from "./tool-builder-BHJp32mV.mjs";
4
4
  //#region src/server/domains/extension-registry/definitions.ts
5
5
  const extensionRegistryTools = [
6
6
  tool("extension_list_installed", (t) => t.desc("List installed extensions from the local extension registry").query()),
@@ -26,10 +26,35 @@ const extensionRegistryTools = [
26
26
  //#region src/server/domains/extension-registry/manifest.ts
27
27
  const DOMAIN = "extension-registry";
28
28
  const DEP_KEY = "extensionRegistryHandlers";
29
- const t = toolLookup(extensionRegistryTools);
30
- const b = (invoke) => bindByDepKey(DEP_KEY, invoke);
29
+ const registrations = defineMethodRegistrations({
30
+ domain: DOMAIN,
31
+ depKey: DEP_KEY,
32
+ lookup: toolLookup(extensionRegistryTools),
33
+ entries: [
34
+ {
35
+ tool: "extension_list_installed",
36
+ method: "handleListInstalled"
37
+ },
38
+ {
39
+ tool: "extension_execute_in_context",
40
+ method: "handleExecuteInContext"
41
+ },
42
+ {
43
+ tool: "extension_reload",
44
+ method: "handleReload"
45
+ },
46
+ {
47
+ tool: "extension_uninstall",
48
+ method: "handleUninstall"
49
+ },
50
+ {
51
+ tool: "webhook",
52
+ method: "handleWebhookDispatch"
53
+ }
54
+ ]
55
+ });
31
56
  async function ensure(ctx) {
32
- const { ExtensionRegistryHandlers } = await import("./handlers-DeLOCd5m.mjs");
57
+ const { ExtensionRegistryHandlers } = await import("./handlers-BzgcB4iv.mjs");
33
58
  const existing = ctx.getDomainInstance(DEP_KEY);
34
59
  if (existing) return existing;
35
60
  const handlers = new ExtensionRegistryHandlers();
@@ -44,33 +69,7 @@ const manifest = {
44
69
  depKey: DEP_KEY,
45
70
  profiles: ["full"],
46
71
  ensure,
47
- registrations: [
48
- {
49
- tool: t("extension_list_installed"),
50
- domain: DOMAIN,
51
- bind: b((handlers) => handlers.handleListInstalled())
52
- },
53
- {
54
- tool: t("extension_execute_in_context"),
55
- domain: DOMAIN,
56
- bind: b((handlers, args) => handlers.handleExecuteInContext(args))
57
- },
58
- {
59
- tool: t("extension_reload"),
60
- domain: DOMAIN,
61
- bind: b((handlers, args) => handlers.handleReload(args))
62
- },
63
- {
64
- tool: t("extension_uninstall"),
65
- domain: DOMAIN,
66
- bind: b((handlers, args) => handlers.handleUninstall(args))
67
- },
68
- {
69
- tool: t("webhook"),
70
- domain: DOMAIN,
71
- bind: b((handlers, args) => handlers.handleWebhookDispatch(args))
72
- }
73
- ],
72
+ registrations,
74
73
  workflowRule: {
75
74
  patterns: [/\b(extension|plugin|addon|webhook|c2|bluetooth|ble|hid|serial|esp32|registry)\b/i, /(install|uninstall|reload).*(extension|plugin)/i],
76
75
  priority: 70,
@@ -1,6 +1,6 @@
1
- import { n as toolLookup, t as ensureBrowserCore } from "./registry-D-6e18lB.mjs";
2
- import { t as bindByDepKey } from "./bind-helpers-xFfRF-qm.mjs";
3
- import { t as tool } from "./tool-builder-DCbIC5Eo.mjs";
1
+ import { n as toolLookup, t as ensureBrowserCore } from "./registry-Bl8ZQW61.mjs";
2
+ import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
3
+ import { t as tool } from "./tool-builder-BHJp32mV.mjs";
4
4
  //#region src/server/domains/canvas/definitions.ts
5
5
  const canvasTools = [
6
6
  tool("canvas_engine_fingerprint", (t) => t.desc("Detect Canvas/WebGL game engine instances running in the page (LayaAir, PixiJ...").query()),
@@ -16,13 +16,34 @@ const canvasTools = [
16
16
  //#region src/server/domains/canvas/manifest.ts
17
17
  const DOMAIN = "canvas";
18
18
  const DEP_KEY = "canvasHandlers";
19
- const t = toolLookup(canvasTools);
20
- const b = (invoke) => bindByDepKey(DEP_KEY, invoke);
19
+ const registrations = defineMethodRegistrations({
20
+ domain: DOMAIN,
21
+ depKey: DEP_KEY,
22
+ lookup: toolLookup(canvasTools),
23
+ entries: [
24
+ {
25
+ tool: "canvas_engine_fingerprint",
26
+ method: "handleFingerprint"
27
+ },
28
+ {
29
+ tool: "canvas_scene_dump",
30
+ method: "handleSceneDump"
31
+ },
32
+ {
33
+ tool: "canvas_pick_object_at_point",
34
+ method: "handlePick"
35
+ },
36
+ {
37
+ tool: "canvas_trace_click_handler",
38
+ method: "handleTraceClick"
39
+ }
40
+ ]
41
+ });
21
42
  async function ensure(ctx) {
22
- const { DebuggerManager } = await import("./modules-C184v-S9.mjs").then((n) => n.t);
23
- const { TraceRecorder } = await import("./TraceRecorder-DgxyVbdQ.mjs");
24
- const { ReverseEvidenceGraph } = await import("./ReverseEvidenceGraph-Dlsk94LC.mjs").then((n) => n.t);
25
- const { CanvasToolHandlers } = await import("./handlers-Bl8zkwz1.mjs");
43
+ const { DebuggerManager } = await import("./modules-tZozf0LQ.mjs").then((n) => n.t);
44
+ const { TraceRecorder } = await import("./TraceRecorder-B41Z5XBj.mjs");
45
+ const { ReverseEvidenceGraph } = await import("./ReverseEvidenceGraph-C02-gXOh.mjs").then((n) => n.t);
46
+ const { CanvasToolHandlers } = await import("./handlers-Dz9PYsCa.mjs");
26
47
  await ensureBrowserCore(ctx);
27
48
  if (!ctx.debuggerManager) ctx.debuggerManager = new DebuggerManager(ctx.collector);
28
49
  if (!ctx.traceRecorder) ctx.traceRecorder = new TraceRecorder();
@@ -79,28 +100,7 @@ const manifest = {
79
100
  fix: "Call debugger_lifecycle({ action: 'enable' }) first"
80
101
  }]
81
102
  },
82
- registrations: [
83
- {
84
- tool: t("canvas_engine_fingerprint"),
85
- domain: DOMAIN,
86
- bind: b((h, a) => h.handleFingerprint(a))
87
- },
88
- {
89
- tool: t("canvas_scene_dump"),
90
- domain: DOMAIN,
91
- bind: b((h, a) => h.handleSceneDump(a))
92
- },
93
- {
94
- tool: t("canvas_pick_object_at_point"),
95
- domain: DOMAIN,
96
- bind: b((h, a) => h.handlePick(a))
97
- },
98
- {
99
- tool: t("canvas_trace_click_handler"),
100
- domain: DOMAIN,
101
- bind: b((h, a) => h.handleTraceClick(a))
102
- }
103
- ]
103
+ registrations
104
104
  };
105
105
  //#endregion
106
106
  export { manifest as default };
@@ -1,14 +1,31 @@
1
- import { n as toolLookup, t as ensureBrowserCore } from "./registry-D-6e18lB.mjs";
2
- import { n as getDep, t as bindByDepKey } from "./bind-helpers-xFfRF-qm.mjs";
3
- import { n as hookPresetTools, t as aiHookTools } from "./definitions-BMfYXoNC.mjs";
1
+ import { n as toolLookup, t as ensureBrowserCore } from "./registry-Bl8ZQW61.mjs";
2
+ import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
3
+ import { n as hookPresetTools, t as aiHookTools } from "./definitions-C1gCHO0i.mjs";
4
4
  //#region src/server/domains/hooks/manifest.ts
5
5
  const DOMAIN = "hooks";
6
6
  const DEP_KEY = "aiHookHandlers";
7
7
  const DEP_KEY_PRESET = "hookPresetHandlers";
8
8
  const t = toolLookup([...aiHookTools, ...hookPresetTools]);
9
- const b = (invoke) => bindByDepKey(DEP_KEY, invoke);
9
+ const aiRegistrations = defineMethodRegistrations({
10
+ domain: DOMAIN,
11
+ depKey: DEP_KEY,
12
+ lookup: t,
13
+ entries: [{
14
+ tool: "ai_hook",
15
+ method: "handleAIHook"
16
+ }]
17
+ });
18
+ const presetRegistrations = defineMethodRegistrations({
19
+ domain: DOMAIN,
20
+ depKey: DEP_KEY_PRESET,
21
+ lookup: t,
22
+ entries: [{
23
+ tool: "hook_preset",
24
+ method: "handleHookPreset"
25
+ }]
26
+ });
10
27
  async function ensure(ctx) {
11
- const { AIHookToolHandlers, HookPresetToolHandlers } = await import("./hooks-CzCWByww.mjs");
28
+ const { AIHookToolHandlers, HookPresetToolHandlers } = await import("./hooks-B1B8NRHL.mjs");
12
29
  await ensureBrowserCore(ctx);
13
30
  if (!ctx.aiHookHandlers || !ctx.hookPresetHandlers) {
14
31
  if (!ctx.aiHookHandlers) ctx.aiHookHandlers = new AIHookToolHandlers(ctx.pageController);
@@ -24,15 +41,7 @@ const manifest = {
24
41
  secondaryDepKeys: ["hookPresetHandlers"],
25
42
  profiles: ["full"],
26
43
  ensure,
27
- registrations: [{
28
- tool: t("ai_hook"),
29
- domain: DOMAIN,
30
- bind: b((h, a) => h.handleAIHook(a))
31
- }, {
32
- tool: t("hook_preset"),
33
- domain: DOMAIN,
34
- bind: (deps) => (args) => getDep(deps, DEP_KEY_PRESET).handleHookPreset(args)
35
- }]
44
+ registrations: [...aiRegistrations, ...presetRegistrations]
36
45
  };
37
46
  //#endregion
38
47
  export { manifest as default };
@@ -1,5 +1,5 @@
1
- import { t as createProgressDebouncer } from "./EventBus-DgPmwpeu.mjs";
2
- import { t as tool } from "./tool-builder-DCbIC5Eo.mjs";
1
+ import { t as createProgressDebouncer } from "./EventBus-DFKvADm3.mjs";
2
+ import { t as tool } from "./tool-builder-BHJp32mV.mjs";
3
3
  //#region src/server/domains/memory/definitions.ts
4
4
  const ScanValueTypeOptions = [
5
5
  "byte",
@@ -29,7 +29,7 @@ const ScanCompareModeOptions = [
29
29
  "not_equal"
30
30
  ];
31
31
  const memoryScanToolDefinitions = [
32
- tool("memory_first_scan", (t) => t.desc("Start a new memory scan session.").string("value", "Value to search for (as string, e.g. \"100\", \"3.14\", \"48 65 6C 6C 6F\")").enum("valueType", [...ScanValueTypeOptions], "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", {
32
+ tool("memory_first_scan", (t) => t.desc("Start a new memory scan session.").number("pid", "Target process ID").string("value", "Value to search for (as string, e.g. \"100\", \"3.14\", \"48 65 6C 6C 6F\")").enum("valueType", [...ScanValueTypeOptions], "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", {
33
33
  type: "object",
34
34
  properties: {
35
35
  writable: {
@@ -47,8 +47,8 @@ const memoryScanToolDefinitions = [
47
47
  },
48
48
  description: "Filter which memory regions to scan"
49
49
  }).requiredOpenWorld("pid", "value", "valueType")),
50
- tool("memory_next_scan", (t) => t.desc("Narrow an existing scan session.").enum("mode", [...ScanCompareModeOptions], "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")),
51
- tool("memory_unknown_scan", (t) => t.desc("Start an unknown initial value scan.").enum("valueType", [...ScanValueTypeOptions], "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", {
50
+ tool("memory_next_scan", (t) => t.desc("Narrow an existing scan session.").string("sessionId", "Scan session ID").enum("mode", [...ScanCompareModeOptions], "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")),
51
+ tool("memory_unknown_scan", (t) => t.desc("Start an unknown initial value scan.").number("pid", "Target process ID").enum("valueType", [...ScanValueTypeOptions], "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", {
52
52
  type: "object",
53
53
  properties: {
54
54
  writable: { type: "boolean" },
@@ -56,8 +56,8 @@ const memoryScanToolDefinitions = [
56
56
  moduleOnly: { type: "boolean" }
57
57
  }
58
58
  }).requiredOpenWorld("pid", "valueType")),
59
- tool("memory_pointer_scan", (t) => t.desc("Find pointers to a target address.").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("pid", "targetAddress").query().openWorld()),
60
- tool("memory_group_scan", (t) => t.desc("Search for multiple values at known offsets simultaneously.").array("pattern", {
59
+ tool("memory_pointer_scan", (t) => t.desc("Find pointers to a target address.").number("pid", "Target process ID").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("pid", "targetAddress").query().openWorld()),
60
+ tool("memory_group_scan", (t) => t.desc("Search for multiple values at known offsets simultaneously.").number("pid", "Target process ID").array("pattern", {
61
61
  type: "object",
62
62
  properties: {
63
63
  offset: {
@@ -97,7 +97,7 @@ Actions:
97
97
  "resolve",
98
98
  "export"
99
99
  ], "Chain operation").number("pid", "Target process ID").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")),
100
- tool("memory_structure_analyze", (t) => t.desc("Analyze memory at an address to infer data structure layout.").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("pid", "address").query()),
100
+ tool("memory_structure_analyze", (t) => t.desc("Analyze memory at an address to infer data structure layout.").number("pid", "Target process ID").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("pid", "address").query()),
101
101
  tool("memory_vtable_parse", (t) => t.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").string("vtableAddress", "Address of the vtable (hex)").required("pid", "vtableAddress").query()),
102
102
  tool("memory_structure_export_c", (t) => t.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()),
103
103
  tool("memory_structure_compare", (t) => t.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").string("address1", "First instance address (hex)").string("address2", "Second instance address (hex)").number("size", "Size to compare in bytes (default: 256)").required("pid", "address1", "address2").query()),
@@ -122,7 +122,7 @@ Actions:
122
122
  tool("memory_patch_nop", (t) => t.desc("NOP out instructions at address (replace with 0x90). Useful for disabling checks or jumps.").number("pid", "Target process ID").string("address", "Address to NOP (hex)").number("count", "Number of bytes to NOP").required("pid", "address", "count").destructive()),
123
123
  tool("memory_patch_undo", (t) => t.desc("Undo a previous patch by restoring the original bytes.").string("patchId", "Patch ID to undo").required("patchId").destructive()),
124
124
  tool("memory_code_caves", (t) => t.desc("Find code caves (runs of 0x00 or 0xCC) in executable sections of loaded modules. Returns largest caves first.").number("pid", "Target process ID").number("minSize", "Minimum cave size in bytes (default: 16)").required("pid").query()),
125
- tool("memory_write_value", (t) => t.desc("Write a typed value to a memory address. Supports undo via memory_write_undo.").number("pid", "Target process ID").string("address", "Address to write to (hex)").string("value", "Value to write (as string)").enum("valueType", [...ScanValueTypeOptions], "Data type of the value").required("pid", "address", "value", "valueType").destructive()),
125
+ tool("memory_write_value", (t) => t.desc("Write a typed value to a memory address. Supports undo/redo via memory_write_history(action=undo|redo).").number("pid", "Target process ID").string("address", "Address to write to (hex)").string("value", "Value to write (as string)").enum("valueType", [...ScanValueTypeOptions], "Data type of the value").required("pid", "address", "value", "valueType").destructive()),
126
126
  tool("memory_freeze", (t) => t.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 (action=freeze)").string("address", "Address to freeze hex (action=freeze)").string("value", "Value to maintain (action=freeze)").enum("valueType", [...ScanValueTypeOptions], "Data type (action=freeze)").number("intervalMs", "Write interval ms (action=freeze, default: 100)").string("freezeId", "Freeze ID to remove (action=unfreeze)").required("action").destructive()),
127
127
  tool("memory_dump", (t) => t.desc("Dump memory region as hex with ASCII column. Outputs a formatted hex dump similar to xxd.").number("pid", "Target process ID").string("address", "Start address (hex)").number("size", "Size to dump in bytes (default: 256)").required("pid", "address").query()),
128
128
  tool("memory_speedhack", (t) => t.desc(`Speedhack: hook time APIs to scale process time. Speed 2.0 = 2x faster, 0.5 = half speed.
@@ -152,25 +152,25 @@ const DEP_KEY = "memoryScanHandlers";
152
152
  const IS_WIN32 = (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";
153
153
  let globalContext = null;
154
154
  async function ensure(ctx) {
155
- const { MemoryScanHandlers } = await import("./handlers.impl-DS0d9fUw.mjs");
155
+ const { MemoryScanHandlers } = await import("./handlers.impl-XWXkQfyi.mjs");
156
156
  globalContext = ctx;
157
157
  const ctxAny = ctx;
158
158
  if (ctxAny[DEP_KEY]) return ctxAny[DEP_KEY];
159
159
  const [memoryScanner, scanSessionManager, pointerChainEngine, structureAnalyzer, codeInjector, memoryController] = await Promise.all([
160
- import("./MemoryScanner-Bcpml6II.mjs"),
161
- import("./MemoryScanSession-BsDZbLYm.mjs"),
162
- import("./PointerChainEngine-BOhyVsjx.mjs"),
163
- import("./StructureAnalyzer-DhFaPvRO.mjs"),
164
- import("./CodeInjector-Cq8q01kp.mjs"),
165
- import("./MemoryController-CbVdCIJF.mjs")
160
+ import("./MemoryScanner-CiL7Z3ey.mjs"),
161
+ import("./MemoryScanSession-ITgb_NMi.mjs"),
162
+ import("./PointerChainEngine-K7wN8Z-w.mjs"),
163
+ import("./StructureAnalyzer-Cav5AVSL.mjs"),
164
+ import("./CodeInjector-BdjRfNx7.mjs"),
165
+ import("./MemoryController-CMtviNW_.mjs")
166
166
  ]);
167
167
  if (IS_WIN32) {
168
168
  const [hardwareBreakpointEngine, speedhack, heapAnalyzer, peAnalyzer, antiCheatDetector] = await Promise.all([
169
- import("./HardwareBreakpoint-B9gZCdFP.mjs"),
170
- import("./Speedhack-CqdIFlQl.mjs"),
171
- import("./HeapAnalyzer-BLDH0dCv.mjs"),
172
- import("./PEAnalyzer-D1lzJ_VG.mjs"),
173
- import("./AntiCheatDetector-BNk-EoBt.mjs")
169
+ import("./HardwareBreakpoint-Cc2AFq1Y.mjs"),
170
+ import("./Speedhack-D-z0umeT.mjs"),
171
+ import("./HeapAnalyzer-DruMgsgj.mjs"),
172
+ import("./PEAnalyzer-DMQ44gen.mjs"),
173
+ import("./AntiCheatDetector-CqGDXmfc.mjs")
174
174
  ]);
175
175
  ctxAny[DEP_KEY] = new MemoryScanHandlers(memoryScanner.memoryScanner, scanSessionManager.scanSessionManager, pointerChainEngine.pointerChainEngine, structureAnalyzer.structureAnalyzer, hardwareBreakpointEngine.hardwareBreakpointEngine, codeInjector.codeInjector, memoryController.memoryController, speedhack.speedhack, heapAnalyzer.heapAnalyzer, peAnalyzer.peAnalyzer, antiCheatDetector.antiCheatDetector, ctx.eventBus);
176
176
  } else ctxAny[DEP_KEY] = new MemoryScanHandlers(memoryScanner.memoryScanner, scanSessionManager.scanSessionManager, pointerChainEngine.pointerChainEngine, structureAnalyzer.structureAnalyzer, null, codeInjector.codeInjector, memoryController.memoryController, null, null, null, null, ctx.eventBus);
@@ -180,9 +180,9 @@ function bindByKey(invoke) {
180
180
  return (deps) => {
181
181
  const handler = deps[DEP_KEY];
182
182
  return (args) => {
183
- const _meta = args._meta;
183
+ const meta = args._meta;
184
184
  let onProgress;
185
- if (_meta?.progressToken !== void 0 && globalContext) onProgress = createProgressDebouncer(globalContext.eventBus, _meta.progressToken);
185
+ if (meta?.progressToken !== void 0 && globalContext) onProgress = createProgressDebouncer(globalContext.eventBus, meta.progressToken);
186
186
  return invoke(handler, {
187
187
  ...args,
188
188
  onProgress
@@ -1,14 +1,31 @@
1
- import { n as toolLookup } from "./registry-D-6e18lB.mjs";
2
- import { t as bindByDepKey } from "./bind-helpers-xFfRF-qm.mjs";
3
- import { t as sharedStateBoardTools } from "./definitions-B3QdlrHv.mjs";
1
+ import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
2
+ import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
3
+ import { t as sharedStateBoardTools } from "./definitions-DYVjOtxa.mjs";
4
4
  import { resolve } from "node:path";
5
5
  //#region src/server/domains/shared-state-board/manifest.ts
6
6
  const DOMAIN = "shared-state-board";
7
7
  const DEP_KEY = "sharedStateBoardHandlers";
8
- const t = toolLookup(sharedStateBoardTools);
9
- const b = (invoke) => bindByDepKey(DEP_KEY, invoke);
8
+ const registrations = defineMethodRegistrations({
9
+ domain: DOMAIN,
10
+ depKey: DEP_KEY,
11
+ lookup: toolLookup(sharedStateBoardTools),
12
+ entries: [
13
+ {
14
+ tool: "state_board",
15
+ method: "handleDispatch"
16
+ },
17
+ {
18
+ tool: "state_board_watch",
19
+ method: "handleWatchDispatch"
20
+ },
21
+ {
22
+ tool: "state_board_io",
23
+ method: "handleIODispatch"
24
+ }
25
+ ]
26
+ });
10
27
  async function ensure(ctx) {
11
- const { SharedStateBoardHandlers } = await import("./shared-state-board-DV-dpHFJ.mjs");
28
+ const { SharedStateBoardHandlers } = await import("./shared-state-board-BoZnSoj-.mjs");
12
29
  if (!ctx.sharedStateBoardHandlers) ctx.sharedStateBoardHandlers = new SharedStateBoardHandlers();
13
30
  const scheduler = ctx.getDomainInstance("snapshotScheduler");
14
31
  const stateDir = ctx.getDomainInstance("snapshotStateDir");
@@ -26,23 +43,7 @@ const manifest = {
26
43
  depKey: DEP_KEY,
27
44
  profiles: ["workflow", "full"],
28
45
  ensure,
29
- registrations: [
30
- {
31
- tool: t("state_board"),
32
- domain: DOMAIN,
33
- bind: b((h, a) => h.handleDispatch(a))
34
- },
35
- {
36
- tool: t("state_board_watch"),
37
- domain: DOMAIN,
38
- bind: b((h, a) => h.handleWatchDispatch(a))
39
- },
40
- {
41
- tool: t("state_board_io"),
42
- domain: DOMAIN,
43
- bind: b((h, a) => h.handleIODispatch(a))
44
- }
45
- ]
46
+ registrations
46
47
  };
47
48
  //#endregion
48
49
  export { manifest as default };