@jshookmcp/jshook 0.2.8 → 0.2.9

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 (157) hide show
  1. package/README.md +36 -5
  2. package/README.zh.md +36 -5
  3. package/dist/{AntiCheatDetector-S8VRj-dD.mjs → AntiCheatDetector-BNk-EoBt.mjs} +3 -3
  4. package/dist/{CodeInjector-4Z3ngPoX.mjs → CodeInjector-Cq8q01kp.mjs} +5 -5
  5. package/dist/ConsoleMonitor-CPVQW1Y-.mjs +2201 -0
  6. package/dist/{DarwinAPI-B8hg_yhz.mjs → DarwinAPI-BNPxu0RH.mjs} +1 -1
  7. package/dist/DetailedDataManager-BQQcxh64.mjs +217 -0
  8. package/dist/EventBus-DgPmwpeu.mjs +141 -0
  9. package/dist/EvidenceGraphBridge-SFesNera.mjs +153 -0
  10. package/dist/{ExtensionManager-D5-bO9D8.mjs → ExtensionManager-CWYgw0YW.mjs} +13 -6
  11. package/dist/{FingerprintManager-BVxFJL2-.mjs → FingerprintManager-gzWtkKuf.mjs} +1 -1
  12. package/dist/{HardwareBreakpoint-DK1yjWkV.mjs → HardwareBreakpoint-B9gZCdFP.mjs} +3 -3
  13. package/dist/{HeapAnalyzer-CEbo10xU.mjs → HeapAnalyzer-BLDH0dCv.mjs} +4 -4
  14. package/dist/HookGeneratorBuilders.core.generators.storage-CtcdK78Q.mjs +639 -0
  15. package/dist/InstrumentationSession-CvPC7Jwy.mjs +244 -0
  16. package/dist/{MemoryController-DdtnBdD4.mjs → MemoryController-CbVdCIJF.mjs} +3 -3
  17. package/dist/{MemoryScanSession-RMixN3bX.mjs → MemoryScanSession-BsDZbLYm.mjs} +81 -78
  18. package/dist/{MemoryScanner-QjK4ld0B.mjs → MemoryScanner-Bcpml6II.mjs} +44 -18
  19. package/dist/{NativeMemoryManager.impl-CB6gJ0NM.mjs → NativeMemoryManager.impl-dZtA1ZGn.mjs} +14 -53
  20. package/dist/{NativeMemoryManager.utils-BML4q1ry.mjs → NativeMemoryManager.utils-B-FjA2mJ.mjs} +1 -1
  21. package/dist/{PEAnalyzer-CK0xe0Fs.mjs → PEAnalyzer-D1lzJ_VG.mjs} +2 -2
  22. package/dist/PageController-Bqm2kZ_X.mjs +417 -0
  23. package/dist/{PointerChainEngine-Cd73qu5b.mjs → PointerChainEngine-BOhyVsjx.mjs} +4 -4
  24. package/dist/PrerequisiteError-Dl33Svkz.mjs +20 -0
  25. package/dist/ResponseBuilder-D3iFYx2N.mjs +143 -0
  26. package/dist/ReverseEvidenceGraph-Dlsk94LC.mjs +269 -0
  27. package/dist/ScriptManager-aHHq0X7U.mjs +3000 -0
  28. package/dist/{Speedhack-CeF0XmEz.mjs → Speedhack-CqdIFlQl.mjs} +2 -2
  29. package/dist/{StructureAnalyzer-D4GkMduU.mjs → StructureAnalyzer-DhFaPvRO.mjs} +3 -3
  30. package/dist/ToolCatalog-C0JGZoOm.mjs +582 -0
  31. package/dist/ToolError-jh9whhMd.mjs +15 -0
  32. package/dist/ToolProbe-oC7aPrkv.mjs +45 -0
  33. package/dist/ToolRegistry-BjaF4oNz.mjs +131 -0
  34. package/dist/ToolRouter.policy-BWV67ZK-.mjs +304 -0
  35. package/dist/TraceRecorder-DgxyVbdQ.mjs +519 -0
  36. package/dist/{Win32API-Bc0QnQsN.mjs → Win32API-CePkipZY.mjs} +1 -1
  37. package/dist/{Win32Debug-DUHt9XUn.mjs → Win32Debug-BvKs-gxc.mjs} +2 -2
  38. package/dist/WorkflowEngine-CuvkZtWu.mjs +598 -0
  39. package/dist/analysis-CL9uACt9.mjs +463 -0
  40. package/dist/antidebug-CqDTB_uk.mjs +1081 -0
  41. package/dist/artifactRetention-CFEprwPw.mjs +591 -0
  42. package/dist/artifacts-Bk2-_uPq.mjs +59 -0
  43. package/dist/betterSqlite3-0pqusHHH.mjs +74 -0
  44. package/dist/binary-instrument-CXfpx6fT.mjs +979 -0
  45. package/dist/bind-helpers-xFfRF-qm.mjs +22 -0
  46. package/dist/boringssl-inspector-BH2D3VKc.mjs +180 -0
  47. package/dist/browser-BpOr5PEx.mjs +4082 -0
  48. package/dist/concurrency-Bt0yv1kJ.mjs +41 -0
  49. package/dist/{constants-CCvsN80K.mjs → constants-B0OANIBL.mjs} +88 -46
  50. package/dist/coordination-qUbyF8KU.mjs +259 -0
  51. package/dist/debugger-gnKxRSN0.mjs +1271 -0
  52. package/dist/definitions-6M-eejaT.mjs +53 -0
  53. package/dist/definitions-B18eyf0B.mjs +18 -0
  54. package/dist/definitions-B3QdlrHv.mjs +34 -0
  55. package/dist/definitions-B4rAvHNZ.mjs +63 -0
  56. package/dist/definitions-BB_4jnmy.mjs +37 -0
  57. package/dist/definitions-BMfYXoNC.mjs +43 -0
  58. package/dist/definitions-Beid2EB3.mjs +27 -0
  59. package/dist/definitions-C1UvM5Iy.mjs +126 -0
  60. package/dist/definitions-CXEI7QC72.mjs +216 -0
  61. package/dist/definitions-C_4r7Fo-2.mjs +14 -0
  62. package/dist/definitions-CkFDALoa.mjs +26 -0
  63. package/dist/definitions-Cke7zEb8.mjs +94 -0
  64. package/dist/definitions-ClJLzsJQ.mjs +25 -0
  65. package/dist/definitions-Cq-zroAU.mjs +28 -0
  66. package/dist/definitions-Cy3Sl6gV.mjs +34 -0
  67. package/dist/definitions-D3VsGcvz.mjs +47 -0
  68. package/dist/definitions-DVGfrn7y.mjs +96 -0
  69. package/dist/definitions-LKpC3-nL.mjs +9 -0
  70. package/dist/definitions-bAhHQJq9.mjs +359 -0
  71. package/dist/encoding-Bvz5jLRv.mjs +1065 -0
  72. package/dist/evidence-graph-bridge-C_fv9PuC.mjs +135 -0
  73. package/dist/{factory-CibqTNC8.mjs → factory-DxlGh9Xf.mjs} +37 -52
  74. package/dist/graphql-DYWzJ29s.mjs +1026 -0
  75. package/dist/handlers-9sAbfIg-.mjs +2552 -0
  76. package/dist/handlers-Bl8zkwz1.mjs +2716 -0
  77. package/dist/handlers-C67ktuRN.mjs +710 -0
  78. package/dist/handlers-C87g8oCe.mjs +276 -0
  79. package/dist/handlers-CTsDAO6p.mjs +681 -0
  80. package/dist/handlers-Cgyg6c0U.mjs +645 -0
  81. package/dist/handlers-D6j6yka7.mjs +2124 -0
  82. package/dist/handlers-DdFzXLvF.mjs +446 -0
  83. package/dist/handlers-DeLOCd5m.mjs +799 -0
  84. package/dist/handlers-DlCJN4Td.mjs +757 -0
  85. package/dist/handlers-DxGIq15_2.mjs +917 -0
  86. package/dist/handlers-U6L4xhuF.mjs +585 -0
  87. package/dist/handlers-tB9Mp9ZK.mjs +84 -0
  88. package/dist/handlers-tiy7EIBp.mjs +572 -0
  89. package/dist/handlers.impl-DS0d9fUw.mjs +761 -0
  90. package/dist/hooks-CzCWByww.mjs +898 -0
  91. package/dist/index.mjs +377 -155
  92. package/dist/{logger-BmWzC2lM.mjs → logger-Dh_xb7_2.mjs} +14 -6
  93. package/dist/maintenance-P7ePRXQC.mjs +830 -0
  94. package/dist/manifest-2ToTpjv8.mjs +106 -0
  95. package/dist/manifest-3g71z6Bg.mjs +79 -0
  96. package/dist/manifest-82baTv4U.mjs +45 -0
  97. package/dist/manifest-B3QVVeBS.mjs +82 -0
  98. package/dist/manifest-BB2J8IMJ.mjs +149 -0
  99. package/dist/manifest-BKbgbSiY.mjs +60 -0
  100. package/dist/manifest-Bcf-TJzH.mjs +848 -0
  101. package/dist/manifest-BmtZzQiQ2.mjs +45 -0
  102. package/dist/manifest-Bnd7kqEY.mjs +55 -0
  103. package/dist/manifest-BqQX6OQC2.mjs +65 -0
  104. package/dist/manifest-BqrQ4Tpj.mjs +81 -0
  105. package/dist/manifest-Br4RPFt5.mjs +370 -0
  106. package/dist/manifest-C5qDjysN.mjs +107 -0
  107. package/dist/manifest-C9RT5nk32.mjs +34 -0
  108. package/dist/manifest-CAhOuvSl.mjs +204 -0
  109. package/dist/manifest-CBYWCUBJ.mjs +51 -0
  110. package/dist/manifest-CFADCRa1.mjs +37 -0
  111. package/dist/manifest-CQVhavRF.mjs +114 -0
  112. package/dist/manifest-CT7zZBV1.mjs +48 -0
  113. package/dist/manifest-CV12bcrF.mjs +121 -0
  114. package/dist/manifest-CXsRWjjI.mjs +224 -0
  115. package/dist/manifest-CZLUCfG02.mjs +95 -0
  116. package/dist/manifest-D6phHKFd.mjs +131 -0
  117. package/dist/manifest-DCyjf4n2.mjs +294 -0
  118. package/dist/manifest-DHsnKgP6.mjs +60 -0
  119. package/dist/manifest-Df_dliIe.mjs +55 -0
  120. package/dist/manifest-Dh8WBmEW.mjs +129 -0
  121. package/dist/manifest-DhKRAT8_.mjs +92 -0
  122. package/dist/manifest-DlpTj4ic2.mjs +193 -0
  123. package/dist/manifest-DrbmZcFl2.mjs +253 -0
  124. package/dist/manifest-DuwHjUa5.mjs +70 -0
  125. package/dist/manifest-DzwvxPJX.mjs +38 -0
  126. package/dist/manifest-NXctwWQq.mjs +68 -0
  127. package/dist/manifest-Sc_0JQ13.mjs +418 -0
  128. package/dist/manifest-gZ4s_UtG.mjs +96 -0
  129. package/dist/manifest-qSleDqdO.mjs +1023 -0
  130. package/dist/modules-C184v-S9.mjs +11365 -0
  131. package/dist/mojo-ipc-B_H61Afw.mjs +525 -0
  132. package/dist/network-671Cw6hV.mjs +3346 -0
  133. package/dist/{artifacts-BbdOMET5.mjs → outputPaths-B1uGmrWZ.mjs} +219 -212
  134. package/dist/parse-args-BlRjqlkL.mjs +39 -0
  135. package/dist/platform-WmNn8Sxb.mjs +2070 -0
  136. package/dist/process-QcbIy5Zq.mjs +1401 -0
  137. package/dist/proxy-DqNs0bAd.mjs +170 -0
  138. package/dist/registry-D-6e18lB.mjs +34 -0
  139. package/dist/response-BQVP-xUn.mjs +28 -0
  140. package/dist/server/plugin-api.mjs +2 -2
  141. package/dist/shared-state-board-DV-dpHFJ.mjs +586 -0
  142. package/dist/sourcemap-Dq8ez8vS.mjs +650 -0
  143. package/dist/ssrf-policy-ZaUfvhq7.mjs +166 -0
  144. package/dist/streaming-BUQ0VJsg.mjs +725 -0
  145. package/dist/tool-builder-DCbIC5Eo.mjs +186 -0
  146. package/dist/transform-CiYJfNX0.mjs +1007 -0
  147. package/dist/types-Bx92KJfT.mjs +4 -0
  148. package/dist/wasm-DQTnHDs4.mjs +531 -0
  149. package/dist/workflow-f3xJOcjx.mjs +725 -0
  150. package/package.json +16 -16
  151. package/dist/ExtensionManager-CPTJhHFg.mjs +0 -2
  152. package/dist/ToolCatalog-Bq4V2sbJ.mjs +0 -67201
  153. package/dist/{CacheAdapters-CzFNpD9a.mjs → CacheAdapters-CDe5WPSV.mjs} +0 -0
  154. package/dist/{StealthVerifier-BzBCFiwx.mjs → StealthVerifier-Bo4T3bz8.mjs} +0 -0
  155. package/dist/{VersionDetector-CNXcvD46.mjs → VersionDetector-CwVLVdDM.mjs} +0 -0
  156. package/dist/{formatAddress-ChCSIRWT.mjs → formatAddress-DVkj9kpI.mjs} +0 -0
  157. package/dist/{types-BBjOqye-.mjs → types-CPhOReNX.mjs} +1 -1
@@ -0,0 +1,276 @@
1
+ import { a as argString } from "./parse-args-BlRjqlkL.mjs";
2
+ //#region src/server/domains/instrumentation/handlers.ts
3
+ function jsonResponse(data) {
4
+ return { content: [{
5
+ type: "text",
6
+ text: JSON.stringify(data, null, 2)
7
+ }] };
8
+ }
9
+ var InstrumentationHandlers = class {
10
+ constructor(sessionManager, deps = {}) {
11
+ this.sessionManager = sessionManager;
12
+ this.deps = deps;
13
+ }
14
+ async handleSessionDispatch(args) {
15
+ const action = argString(args, "action");
16
+ switch (action) {
17
+ case "create": return this.handleSessionCreate(args);
18
+ case "list": return this.handleSessionList(args);
19
+ case "destroy": return this.handleSessionDestroy(args);
20
+ case "status": return this.handleSessionStatus(args);
21
+ default: return jsonResponse({
22
+ success: false,
23
+ error: `Unknown action: ${action}. Valid: create, list, destroy, status`
24
+ });
25
+ }
26
+ }
27
+ async handleOperationDispatch(args) {
28
+ const action = argString(args, "action");
29
+ switch (action) {
30
+ case "register": return this.handleOperationRegister(args);
31
+ case "list": return this.handleOperationList(args);
32
+ default: return jsonResponse({
33
+ success: false,
34
+ error: `Unknown action: ${action}. Valid: register, list`
35
+ });
36
+ }
37
+ }
38
+ async handleArtifactDispatch(args) {
39
+ const action = argString(args, "action");
40
+ switch (action) {
41
+ case "record": return this.handleArtifactRecord(args);
42
+ case "query": return this.handleArtifactQuery(args);
43
+ default: return jsonResponse({
44
+ success: false,
45
+ error: `Unknown action: ${action}. Valid: record, query`
46
+ });
47
+ }
48
+ }
49
+ async handleSessionCreate(args) {
50
+ try {
51
+ const name = argString(args, "name");
52
+ return jsonResponse({
53
+ success: true,
54
+ session: this.sessionManager.createSession(name || void 0)
55
+ });
56
+ } catch (error) {
57
+ return jsonResponse({
58
+ success: false,
59
+ error: error instanceof Error ? error.message : String(error)
60
+ });
61
+ }
62
+ }
63
+ async handleSessionList(_args) {
64
+ try {
65
+ const sessions = this.sessionManager.listSessions();
66
+ return jsonResponse({
67
+ success: true,
68
+ totalSessions: sessions.length,
69
+ sessions
70
+ });
71
+ } catch (error) {
72
+ return jsonResponse({
73
+ success: false,
74
+ error: error instanceof Error ? error.message : String(error)
75
+ });
76
+ }
77
+ }
78
+ async handleSessionDestroy(args) {
79
+ try {
80
+ const sessionId = argString(args, "sessionId", "");
81
+ if (!sessionId) return jsonResponse({
82
+ success: false,
83
+ error: "sessionId is required"
84
+ });
85
+ this.sessionManager.destroySession(sessionId);
86
+ return jsonResponse({
87
+ success: true,
88
+ sessionId,
89
+ message: "Session destroyed"
90
+ });
91
+ } catch (error) {
92
+ return jsonResponse({
93
+ success: false,
94
+ error: error instanceof Error ? error.message : String(error)
95
+ });
96
+ }
97
+ }
98
+ async handleSessionStatus(args) {
99
+ try {
100
+ const sessionId = argString(args, "sessionId", "");
101
+ if (!sessionId) return jsonResponse({
102
+ success: false,
103
+ error: "sessionId is required"
104
+ });
105
+ const session = this.sessionManager.getSession(sessionId);
106
+ if (!session) return jsonResponse({
107
+ success: false,
108
+ error: `Session "${sessionId}" not found`
109
+ });
110
+ return jsonResponse({
111
+ success: true,
112
+ session,
113
+ stats: this.sessionManager.getSessionStats(sessionId)
114
+ });
115
+ } catch (error) {
116
+ return jsonResponse({
117
+ success: false,
118
+ error: error instanceof Error ? error.message : String(error)
119
+ });
120
+ }
121
+ }
122
+ async handleOperationList(args) {
123
+ try {
124
+ const sessionId = argString(args, "sessionId", "");
125
+ if (!sessionId) return jsonResponse({
126
+ success: false,
127
+ error: "sessionId is required"
128
+ });
129
+ let ops = this.sessionManager.getSessionOperations(sessionId);
130
+ const typeFilter = argString(args, "type");
131
+ if (typeFilter) ops = ops.filter((o) => o.type === typeFilter);
132
+ return jsonResponse({
133
+ success: true,
134
+ totalOperations: ops.length,
135
+ operations: ops
136
+ });
137
+ } catch (error) {
138
+ return jsonResponse({
139
+ success: false,
140
+ error: error instanceof Error ? error.message : String(error)
141
+ });
142
+ }
143
+ }
144
+ async handleOperationRegister(args) {
145
+ try {
146
+ const sessionId = argString(args, "sessionId", "");
147
+ const type = argString(args, "type", "");
148
+ const target = argString(args, "target", "");
149
+ const config = args.config && typeof args.config === "object" && !Array.isArray(args.config) ? args.config : {};
150
+ if (!sessionId) return jsonResponse({
151
+ success: false,
152
+ error: "sessionId is required"
153
+ });
154
+ if (!type) return jsonResponse({
155
+ success: false,
156
+ error: "type is required"
157
+ });
158
+ if (!target) return jsonResponse({
159
+ success: false,
160
+ error: "target is required"
161
+ });
162
+ return jsonResponse({
163
+ success: true,
164
+ operation: this.sessionManager.registerOperation(sessionId, type, target, config)
165
+ });
166
+ } catch (error) {
167
+ return jsonResponse({
168
+ success: false,
169
+ error: error instanceof Error ? error.message : String(error)
170
+ });
171
+ }
172
+ }
173
+ async handleArtifactQuery(args) {
174
+ try {
175
+ const sessionId = argString(args, "sessionId", "");
176
+ if (!sessionId) return jsonResponse({
177
+ success: false,
178
+ error: "sessionId is required"
179
+ });
180
+ const typeRaw = argString(args, "type");
181
+ const type = typeRaw ? typeRaw : void 0;
182
+ const limit = typeof args.limit === "number" ? args.limit : 50;
183
+ let artifacts = this.sessionManager.getArtifacts(sessionId, type);
184
+ if (limit > 0) artifacts = artifacts.slice(0, limit);
185
+ return jsonResponse({
186
+ success: true,
187
+ totalArtifacts: artifacts.length,
188
+ artifacts
189
+ });
190
+ } catch (error) {
191
+ return jsonResponse({
192
+ success: false,
193
+ error: error instanceof Error ? error.message : String(error)
194
+ });
195
+ }
196
+ }
197
+ async handleArtifactRecord(args) {
198
+ try {
199
+ const operationId = argString(args, "operationId", "");
200
+ const data = args.data && typeof args.data === "object" && !Array.isArray(args.data) ? args.data : void 0;
201
+ if (!operationId) return jsonResponse({
202
+ success: false,
203
+ error: "operationId is required"
204
+ });
205
+ if (!data) return jsonResponse({
206
+ success: false,
207
+ error: "data is required"
208
+ });
209
+ return jsonResponse({
210
+ success: true,
211
+ artifact: this.sessionManager.recordArtifact(operationId, data)
212
+ });
213
+ } catch (error) {
214
+ return jsonResponse({
215
+ success: false,
216
+ error: error instanceof Error ? error.message : String(error)
217
+ });
218
+ }
219
+ }
220
+ async handleHookPreset(args) {
221
+ try {
222
+ const sessionId = argString(args, "sessionId", "");
223
+ if (!sessionId) return jsonResponse({
224
+ success: false,
225
+ error: "sessionId is required"
226
+ });
227
+ if (!this.deps.hookPresetHandlers) return jsonResponse({
228
+ success: false,
229
+ error: "hookPresetHandlers is not available"
230
+ });
231
+ const delegatedArgs = { ...args };
232
+ delete delegatedArgs["sessionId"];
233
+ const result = await this.sessionManager.applyHookPreset(sessionId, this.deps.hookPresetHandlers, delegatedArgs);
234
+ return jsonResponse({
235
+ success: result.payload.success !== false && result.operation.status === "completed",
236
+ operation: result.operation,
237
+ artifacts: result.artifacts,
238
+ result: result.payload
239
+ });
240
+ } catch (error) {
241
+ return jsonResponse({
242
+ success: false,
243
+ error: error instanceof Error ? error.message : String(error)
244
+ });
245
+ }
246
+ }
247
+ async handleNetworkReplay(args) {
248
+ try {
249
+ const sessionId = argString(args, "sessionId", "");
250
+ if (!sessionId) return jsonResponse({
251
+ success: false,
252
+ error: "sessionId is required"
253
+ });
254
+ if (!this.deps.advancedHandlers) return jsonResponse({
255
+ success: false,
256
+ error: "advancedHandlers is not available"
257
+ });
258
+ const delegatedArgs = { ...args };
259
+ delete delegatedArgs["sessionId"];
260
+ const result = await this.sessionManager.replayNetworkRequest(sessionId, this.deps.advancedHandlers, delegatedArgs);
261
+ return jsonResponse({
262
+ success: result.payload.success !== false && result.operation.status === "completed",
263
+ operation: result.operation,
264
+ artifacts: result.artifacts,
265
+ result: result.payload
266
+ });
267
+ } catch (error) {
268
+ return jsonResponse({
269
+ success: false,
270
+ error: error instanceof Error ? error.message : String(error)
271
+ });
272
+ }
273
+ }
274
+ };
275
+ //#endregion
276
+ export { InstrumentationHandlers };