@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,4 +1,4 @@
1
- import { Lt as MEMORY_SCAN_MAX_RESULTS } from "./constants-B0OANIBL.mjs";
1
+ import { Rt as MEMORY_SCAN_MAX_RESULTS } from "./constants-CDZLOoVv.mjs";
2
2
  //#region src/server/domains/memory/handlers/session.ts
3
3
  function toTextResponse$6(payload) {
4
4
  return { content: [{
@@ -26,7 +26,7 @@ var SessionHandlers = class {
26
26
  count: sessions.length
27
27
  });
28
28
  } catch (error) {
29
- return toErrorResponse$6("memory_scan_list", error);
29
+ return toErrorResponse$6("memory_scan_session", error);
30
30
  }
31
31
  }
32
32
  async handleScanDelete(args) {
@@ -36,7 +36,7 @@ var SessionHandlers = class {
36
36
  deleted: this.sessionManager.deleteSession(args.sessionId)
37
37
  });
38
38
  } catch (error) {
39
- return toErrorResponse$6("memory_scan_delete", error);
39
+ return toErrorResponse$6("memory_scan_session", error);
40
40
  }
41
41
  }
42
42
  async handleScanExport(args) {
@@ -46,7 +46,7 @@ var SessionHandlers = class {
46
46
  exportedData: this.sessionManager.exportSession(args.sessionId)
47
47
  });
48
48
  } catch (error) {
49
- return toErrorResponse$6("memory_scan_export", error);
49
+ return toErrorResponse$6("memory_scan_session", error);
50
50
  }
51
51
  }
52
52
  };
@@ -250,6 +250,50 @@ function toErrorResponse$3(tool, error) {
250
250
  error: error instanceof Error ? error.message : String(error)
251
251
  });
252
252
  }
253
+ const FIELD_TYPE_ALIASES = {
254
+ int8_t: "int8",
255
+ uint8_t: "uint8",
256
+ int16_t: "int16",
257
+ uint16_t: "uint16",
258
+ int32_t: "int32",
259
+ uint32_t: "uint32",
260
+ int64_t: "int64",
261
+ uint64_t: "uint64",
262
+ void_ptr: "pointer",
263
+ char_ptr: "string_ptr"
264
+ };
265
+ function normalizeFieldType(value) {
266
+ if (typeof value !== "string" || value.length === 0) return "unknown";
267
+ const normalized = value.toLowerCase().replace(/\s+/g, "_").replace(/\*/g, "_ptr");
268
+ return FIELD_TYPE_ALIASES[normalized] ?? normalized;
269
+ }
270
+ function normalizeStructureForExport(raw) {
271
+ if (!raw || typeof raw !== "object") throw new Error("structure must be a JSON object");
272
+ const source = raw;
273
+ const fields = (Array.isArray(source.fields) ? source.fields : []).map((entry, index) => {
274
+ const field = entry;
275
+ return {
276
+ offset: typeof field.offset === "number" ? field.offset : 0,
277
+ size: typeof field.size === "number" ? field.size : 1,
278
+ type: normalizeFieldType(field.type),
279
+ name: typeof field.name === "string" && field.name.length > 0 ? field.name : `field_${index}`,
280
+ value: typeof field.value === "string" ? field.value : "",
281
+ confidence: typeof field.confidence === "number" ? field.confidence : 1,
282
+ notes: typeof field.notes === "string" ? field.notes : void 0
283
+ };
284
+ });
285
+ const inferredSize = fields.reduce((max, field) => Math.max(max, field.offset + field.size), 0);
286
+ const totalSize = typeof source.totalSize === "number" ? source.totalSize : typeof source.size === "number" ? source.size : inferredSize;
287
+ return {
288
+ baseAddress: typeof source.baseAddress === "string" ? source.baseAddress : "0x0",
289
+ totalSize,
290
+ fields,
291
+ vtableAddress: typeof source.vtableAddress === "string" ? source.vtableAddress : void 0,
292
+ className: typeof source.className === "string" ? source.className : void 0,
293
+ baseClasses: Array.isArray(source.baseClasses) ? source.baseClasses.filter((entry) => typeof entry === "string") : void 0,
294
+ timestamp: typeof source.timestamp === "number" ? source.timestamp : Date.now()
295
+ };
296
+ }
253
297
  var StructureHandlers = class {
254
298
  constructor(structAnalyzer) {
255
299
  this.structAnalyzer = structAnalyzer;
@@ -282,7 +326,7 @@ var StructureHandlers = class {
282
326
  }
283
327
  async handleStructureExportC(args) {
284
328
  try {
285
- const structure = JSON.parse(args.structure);
329
+ const structure = normalizeStructureForExport(JSON.parse(args.structure));
286
330
  return toTextResponse$3({
287
331
  success: true,
288
332
  ...this.structAnalyzer.exportToCStruct(structure, args.name)
@@ -330,10 +374,10 @@ var HookHandlers = class {
330
374
  return toTextResponse$2({
331
375
  success: true,
332
376
  ...await this.bpEngine.setBreakpoint(args.pid, args.address, args.access, args.size ?? 4),
333
- hint: `Hardware breakpoint set on DR register. Use memory_breakpoint_trace to collect hits.`
377
+ hint: "Hardware breakpoint set on DR register. Use memory_breakpoint with action='trace' to collect hits."
334
378
  });
335
379
  } catch (error) {
336
- return toErrorResponse$2("memory_breakpoint_set", error);
380
+ return toErrorResponse$2("memory_breakpoint", error);
337
381
  }
338
382
  }
339
383
  async handleBreakpointRemove(args) {
@@ -343,7 +387,7 @@ var HookHandlers = class {
343
387
  removed: await this.bpEngine.removeBreakpoint(args.breakpointId)
344
388
  });
345
389
  } catch (error) {
346
- return toErrorResponse$2("memory_breakpoint_remove", error);
390
+ return toErrorResponse$2("memory_breakpoint", error);
347
391
  }
348
392
  }
349
393
  async handleBreakpointList(_args) {
@@ -355,7 +399,7 @@ var HookHandlers = class {
355
399
  count: bps.length
356
400
  });
357
401
  } catch (error) {
358
- return toErrorResponse$2("memory_breakpoint_list", error);
402
+ return toErrorResponse$2("memory_breakpoint", error);
359
403
  }
360
404
  }
361
405
  async handleBreakpointTrace(args) {
@@ -368,7 +412,7 @@ var HookHandlers = class {
368
412
  hint: hits.length > 0 ? `${hits.length} accesses captured. Check instructionAddress to find the code accessing this address.` : "No hits captured within timeout."
369
413
  });
370
414
  } catch (error) {
371
- return toErrorResponse$2("memory_breakpoint_trace", error);
415
+ return toErrorResponse$2("memory_breakpoint", error);
372
416
  }
373
417
  }
374
418
  async handlePatchBytes(args) {
@@ -441,7 +485,7 @@ var ReadWriteHandlers = class {
441
485
  return toTextResponse$1({
442
486
  success: true,
443
487
  ...await this.memCtrl.writeValue(args.pid, args.address, args.value, args.valueType),
444
- hint: "Use memory_write_undo to revert."
488
+ hint: "Use memory_write_history with action='undo' to revert."
445
489
  });
446
490
  } catch (error) {
447
491
  return toErrorResponse$1("memory_write_value", error);
@@ -453,7 +497,7 @@ var ReadWriteHandlers = class {
453
497
  return toTextResponse$1({
454
498
  success: true,
455
499
  ...entry,
456
- hint: `Frozen. Use memory_unfreeze with freezeId "${entry.id}" to stop.`
500
+ hint: `Frozen. Use memory_freeze with action="unfreeze" and freezeId "${entry.id}" to stop.`
457
501
  });
458
502
  } catch (error) {
459
503
  return toErrorResponse$1("memory_freeze", error);
@@ -466,7 +510,7 @@ var ReadWriteHandlers = class {
466
510
  unfrozen: await this.memCtrl.unfreeze(args.freezeId)
467
511
  });
468
512
  } catch (error) {
469
- return toErrorResponse$1("memory_unfreeze", error);
513
+ return toErrorResponse$1("memory_freeze", error);
470
514
  }
471
515
  }
472
516
  async handleDump(args) {
@@ -488,7 +532,7 @@ var ReadWriteHandlers = class {
488
532
  entry
489
533
  });
490
534
  } catch (error) {
491
- return toErrorResponse$1("memory_write_undo", error);
535
+ return toErrorResponse$1("memory_write_history", error);
492
536
  }
493
537
  }
494
538
  async handleWriteRedo(_args) {
@@ -500,7 +544,7 @@ var ReadWriteHandlers = class {
500
544
  entry
501
545
  });
502
546
  } catch (error) {
503
- return toErrorResponse$1("memory_write_redo", error);
547
+ return toErrorResponse$1("memory_write_history", error);
504
548
  }
505
549
  }
506
550
  };
@@ -634,12 +678,13 @@ var IntegrityHandlers = class {
634
678
  }
635
679
  async handleGuardPages(args) {
636
680
  try {
637
- const pages = await this.antiCheatDetector.findGuardPages(args.pid);
681
+ const { guardPages, stats } = await this.antiCheatDetector.scanGuardPages(args.pid);
638
682
  return toTextResponse({
639
683
  success: true,
640
- guardPages: pages,
641
- count: pages.length,
642
- hint: pages.length > 0 ? `Found ${pages.length} guard page regions — these may indicate anti-tampering.` : "No guard pages found."
684
+ guardPages,
685
+ count: guardPages.length,
686
+ scan: stats,
687
+ hint: stats.truncated ? `Scan stopped after ${stats.scannedRegions} regions in ${stats.durationMs}ms to avoid hanging. Results may be partial.` : guardPages.length > 0 ? `Found ${guardPages.length} guard page regions — these may indicate anti-tampering.` : "No guard pages found."
643
688
  });
644
689
  } catch (error) {
645
690
  return toErrorResponse("memory_guard_pages", error);
@@ -647,14 +692,15 @@ var IntegrityHandlers = class {
647
692
  }
648
693
  async handleIntegrityCheck(args) {
649
694
  try {
650
- const results = await this.antiCheatDetector.checkIntegrity(args.pid, args.moduleName);
651
- const modified = results.filter((r) => r.isModified);
695
+ const { sections, stats } = await this.antiCheatDetector.scanIntegrity(args.pid, args.moduleName);
696
+ const modified = sections.filter((r) => r.isModified);
652
697
  return toTextResponse({
653
698
  success: true,
654
- sections: results,
655
- totalChecked: results.length,
699
+ sections,
700
+ totalChecked: sections.length,
656
701
  modifiedCount: modified.length,
657
- hint: modified.length > 0 ? `${modified.length} section(s) modified — code may have been patched or hooked.` : "All checked sections match disk — no runtime modifications detected."
702
+ scan: stats,
703
+ hint: stats.truncated ? `Checked ${stats.scannedSections} executable section(s) across ${stats.scannedModules} module(s) before hitting safety limits. Results may be partial.` : modified.length > 0 ? `${modified.length} section(s) modified — code may have been patched or hooked.` : "All checked sections match disk — no runtime modifications detected."
658
704
  });
659
705
  } catch (error) {
660
706
  return toErrorResponse("memory_integrity_check", error);
@@ -1,7 +1,7 @@
1
1
  import { t as logger } from "./logger-Dh_xb7_2.mjs";
2
- import { a as argString, o as argStringArray, s as argStringRequired, t as argBool } from "./parse-args-BlRjqlkL.mjs";
3
- import { o as evaluateOnNewDocumentWithTimeout, s as evaluateWithTimeout } from "./PageController-Bqm2kZ_X.mjs";
4
- import "./definitions-BMfYXoNC.mjs";
2
+ import { a as argString, o as argStringArray, s as argStringRequired, t as argBool } from "./parse-args-B4cY5Vx5.mjs";
3
+ import { o as evaluateOnNewDocumentWithTimeout, s as evaluateWithTimeout } from "./PageController-BPJNqqBN.mjs";
4
+ import "./definitions-C1gCHO0i.mjs";
5
5
  //#region src/server/domains/hooks/ai-handlers.ts
6
6
  var AIHookToolHandlers = class {
7
7
  injectedHooks = /* @__PURE__ */ new Map();