@jshookmcp/jshook 0.2.8 → 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.
- package/README.md +36 -5
- package/README.zh.md +36 -5
- package/dist/{AntiCheatDetector-S8VRj-dD.mjs → AntiCheatDetector-CqGDXmfc.mjs} +160 -54
- package/dist/{CodeInjector-4Z3ngPoX.mjs → CodeInjector-BdjRfNx7.mjs} +5 -5
- package/dist/ConsoleMonitor-DykL3IAw.mjs +2269 -0
- package/dist/{DarwinAPI-B8hg_yhz.mjs → DarwinAPI-ETyy0xyo.mjs} +1 -1
- package/dist/DetailedDataManager-HT49OrvF.mjs +217 -0
- package/dist/EventBus-DFKvADm3.mjs +141 -0
- package/dist/EvidenceGraphBridge-318Oi0Lf.mjs +153 -0
- package/dist/{ExtensionManager-D5-bO9D8.mjs → ExtensionManager-BDMsY2Dz.mjs} +27 -13
- package/dist/{FingerprintManager-BVxFJL2-.mjs → FingerprintManager-BN4UQWnX.mjs} +1 -1
- package/dist/{HardwareBreakpoint-DK1yjWkV.mjs → HardwareBreakpoint-Cc2AFq1Y.mjs} +3 -3
- package/dist/{HeapAnalyzer-CEbo10xU.mjs → HeapAnalyzer-DruMgsgj.mjs} +21 -21
- package/dist/HookGeneratorBuilders.core.generators.storage-CTbB4Lcx.mjs +566 -0
- package/dist/InstrumentationSession-DLH0vd-z.mjs +244 -0
- package/dist/{MemoryController-DdtnBdD4.mjs → MemoryController-CMtviNW_.mjs} +3 -3
- package/dist/{MemoryScanSession-RMixN3bX.mjs → MemoryScanSession-ITgb_NMi.mjs} +81 -78
- package/dist/{MemoryScanner-QjK4ld0B.mjs → MemoryScanner-CiL7Z3ey.mjs} +50 -21
- package/dist/{NativeMemoryManager.impl-CB6gJ0NM.mjs → NativeMemoryManager.impl-D9Lkovvn.mjs} +20 -56
- package/dist/{NativeMemoryManager.utils-BML4q1ry.mjs → NativeMemoryManager.utils-BBlAixF5.mjs} +1 -1
- package/dist/{PEAnalyzer-CK0xe0Fs.mjs → PEAnalyzer-DMQ44gen.mjs} +16 -16
- package/dist/PageController-BPJNqqBN.mjs +431 -0
- package/dist/{PointerChainEngine-Cd73qu5b.mjs → PointerChainEngine-K7wN8Z-w.mjs} +10 -7
- package/dist/PrerequisiteError-TuyZIs6n.mjs +20 -0
- package/dist/ProcessRegistry-zGg12QbE.mjs +74 -0
- package/dist/ResponseBuilder-CJXWmWNw.mjs +143 -0
- package/dist/ReverseEvidenceGraph-C02-gXOh.mjs +269 -0
- package/dist/ScriptManager-ZuWD-0Jg.mjs +3003 -0
- package/dist/{Speedhack-CeF0XmEz.mjs → Speedhack-D-z0umeT.mjs} +2 -2
- package/dist/{StructureAnalyzer-D4GkMduU.mjs → StructureAnalyzer-Cav5AVSL.mjs} +9 -6
- package/dist/ToolCatalog-5OJdMiF0.mjs +582 -0
- package/dist/ToolError-jh9whhMd.mjs +15 -0
- package/dist/ToolProbe-DbCFGyrg.mjs +45 -0
- package/dist/ToolRegistry-B9krbTtI.mjs +180 -0
- package/dist/ToolRouter.policy-BGDAGyeH.mjs +344 -0
- package/dist/TraceRecorder-B41Z5XBj.mjs +1286 -0
- package/dist/{Win32API-Bc0QnQsN.mjs → Win32API-C2kjj0ze.mjs} +19 -13
- package/dist/{Win32Debug-DUHt9XUn.mjs → Win32Debug-CKrGOTpo.mjs} +3 -3
- package/dist/WorkflowEngine-DJ6M4opp.mjs +569 -0
- package/dist/analysis-BHeJW2Nb.mjs +1234 -0
- package/dist/antidebug-BRKeyt27.mjs +1081 -0
- package/dist/artifactRetention-CPXkUJXp.mjs +598 -0
- package/dist/artifacts-DkfosXH3.mjs +59 -0
- package/dist/authorization-schema-DRqyJMSk.mjs +31 -0
- package/dist/betterSqlite3-DLSBZodi.mjs +74 -0
- package/dist/binary-instrument--V3MAhJ4.mjs +971 -0
- package/dist/bind-helpers-ClV34xdn.mjs +42 -0
- package/dist/boringssl-inspector-Bo_LOLaS.mjs +180 -0
- package/dist/browser-Dx3_S2cG.mjs +4369 -0
- package/dist/capabilities-CcHlvWgK.mjs +33 -0
- package/dist/concurrency-Drev_Vz9.mjs +41 -0
- package/dist/{constants-CCvsN80K.mjs → constants-CDZLOoVv.mjs} +105 -48
- package/dist/coordination-DgItD9DL.mjs +259 -0
- package/dist/debugger-RS3RSAqs.mjs +1288 -0
- package/dist/definitions-BEoYofW5.mjs +47 -0
- package/dist/definitions-BRaefg3u.mjs +365 -0
- package/dist/definitions-BbkvZkiv.mjs +96 -0
- package/dist/definitions-BtWSHJ3o.mjs +17 -0
- package/dist/definitions-C1gCHO0i.mjs +43 -0
- package/dist/definitions-CDOg_b-l.mjs +138 -0
- package/dist/definitions-CVPD9hzZ.mjs +54 -0
- package/dist/definitions-Cea8Lgl7.mjs +94 -0
- package/dist/definitions-DAgIyjxM.mjs +10 -0
- package/dist/definitions-DJA27nsL.mjs +66 -0
- package/dist/definitions-DKPFU3LW.mjs +25 -0
- package/dist/definitions-DPRpZQ96.mjs +47 -0
- package/dist/definitions-DUE5gmdn.mjs +18 -0
- package/dist/definitions-DYVjOtxa.mjs +26 -0
- package/dist/definitions-DcYLVLCo.mjs +37 -0
- package/dist/definitions-Pp5LI2H4.mjs +27 -0
- package/dist/definitions-j9KdHVNR.mjs +14 -0
- package/dist/definitions-uzkjBwa7.mjs +258 -0
- package/dist/definitions-va-AnLuQ.mjs +28 -0
- package/dist/encoding-DJeqHmpd.mjs +1079 -0
- package/dist/evidence-graph-bridge-DcYizFk2.mjs +136 -0
- package/dist/{factory-CibqTNC8.mjs → factory-C90tBff6.mjs} +41 -56
- package/dist/flat-target-session-Dgax2Cy3.mjs +29 -0
- package/dist/graphql-CoHrhweh.mjs +1197 -0
- package/dist/handlers-4jmR0nMs.mjs +898 -0
- package/dist/handlers-BAHPxcch.mjs +789 -0
- package/dist/handlers-BOs9b907.mjs +2600 -0
- package/dist/handlers-BWXEy6ef.mjs +917 -0
- package/dist/handlers-Bndn6QvE.mjs +111 -0
- package/dist/handlers-BqC4bD4s.mjs +681 -0
- package/dist/handlers-BtYq60bM2.mjs +276 -0
- package/dist/handlers-BzgcB4iv.mjs +799 -0
- package/dist/handlers-CRyRWj2b.mjs +859 -0
- package/dist/handlers-CVv2H1uq.mjs +592 -0
- package/dist/handlers-Dl5a7JS4.mjs +572 -0
- package/dist/handlers-Dx2d7jt7.mjs +2537 -0
- package/dist/handlers-Dz9PYsCa.mjs +2805 -0
- package/dist/handlers-HujRKC3b.mjs +661 -0
- package/dist/handlers.impl-XWXkQfyi.mjs +807 -0
- package/dist/hooks-B1B8NRHL.mjs +898 -0
- package/dist/index.mjs +491 -259
- package/dist/{logger-BmWzC2lM.mjs → logger-Dh_xb7_2.mjs} +14 -6
- package/dist/maintenance-PRMkLVRW.mjs +835 -0
- package/dist/manifest-67Bok-Si.mjs +58 -0
- package/dist/manifest-6lNTMZAB2.mjs +87 -0
- package/dist/manifest-B2duEHiH.mjs +90 -0
- package/dist/manifest-B6EY9Vm8.mjs +57 -0
- package/dist/manifest-B6nKSbyY.mjs +95 -0
- package/dist/manifest-BL8AQNPF.mjs +106 -0
- package/dist/manifest-BSZvJJmV.mjs +47 -0
- package/dist/manifest-BU7qzUyX.mjs +418 -0
- package/dist/manifest-Bl62e8WK.mjs +49 -0
- package/dist/manifest-Bo5cXjdt.mjs +82 -0
- package/dist/manifest-BpS4gtUK.mjs +1347 -0
- package/dist/manifest-Bv65_e2W.mjs +101 -0
- package/dist/manifest-BytNIF4Z.mjs +117 -0
- package/dist/manifest-C-xtsjS3.mjs +81 -0
- package/dist/manifest-CDYl7OhA.mjs +66 -0
- package/dist/manifest-CRZ3xmkD.mjs +61 -0
- package/dist/manifest-CoW6u4Tp.mjs +132 -0
- package/dist/manifest-Cq5zN_8A.mjs +50 -0
- package/dist/manifest-D7YZM_2e.mjs +194 -0
- package/dist/manifest-DE_VrAeQ.mjs +314 -0
- package/dist/manifest-DGsXSCpT.mjs +39 -0
- package/dist/manifest-DJ2vfEuW.mjs +156 -0
- package/dist/manifest-DPXDYhEu.mjs +80 -0
- package/dist/manifest-Dd4fQb0a.mjs +322 -0
- package/dist/manifest-Deq6opGg.mjs +223 -0
- package/dist/manifest-DfJTafJK.mjs +37 -0
- package/dist/manifest-DgOdgN_j.mjs +50 -0
- package/dist/manifest-DlbMW4v4.mjs +47 -0
- package/dist/manifest-DmVfbH0w.mjs +374 -0
- package/dist/manifest-Dog6Ddjr.mjs +109 -0
- package/dist/manifest-DvgU5FWb.mjs +58 -0
- package/dist/manifest-HsfDBs7j.mjs +50 -0
- package/dist/manifest-I8oQHvCG.mjs +186 -0
- package/dist/manifest-NvH_a-av.mjs +786 -0
- package/dist/manifest-cEJU1v0Z.mjs +129 -0
- package/dist/manifest-wOl5XLB12.mjs +112 -0
- package/dist/modules-tZozf0LQ.mjs +10635 -0
- package/dist/mojo-ipc-DXNEXEqb.mjs +640 -0
- package/dist/network-CPVvwvFg.mjs +3852 -0
- package/dist/{artifacts-BbdOMET5.mjs → outputPaths-um7lCRY3.mjs} +219 -216
- package/dist/parse-args-B4cY5Vx5.mjs +39 -0
- package/dist/platform-CYeFoTWp.mjs +2161 -0
- package/dist/process-BTbgcVc6.mjs +1306 -0
- package/dist/proxy-r8YN6nP1.mjs +192 -0
- package/dist/registry-Bl8ZQW61.mjs +34 -0
- package/dist/response-CWhh2aLo.mjs +34 -0
- package/dist/server/plugin-api.mjs +2 -2
- package/dist/shared-state-board-BoZnSoj-.mjs +586 -0
- package/dist/sourcemap-BIDHUVXy.mjs +934 -0
- package/dist/ssrf-policy-Dsqd-DTX.mjs +166 -0
- package/dist/streaming-Dal6utPp.mjs +725 -0
- package/dist/tool-builder-BHJp32mV.mjs +186 -0
- package/dist/transform-DRVgGG90.mjs +1011 -0
- package/dist/types-Bx92KJfT.mjs +4 -0
- package/dist/wasm-BYx5UOeG.mjs +1044 -0
- package/dist/webcrack-Be0_FccV.mjs +747 -0
- package/dist/workflow-BpuKEtvn.mjs +725 -0
- package/package.json +82 -49
- package/dist/ExtensionManager-CPTJhHFg.mjs +0 -2
- package/dist/ToolCatalog-Bq4V2sbJ.mjs +0 -67201
- package/dist/{CacheAdapters-CzFNpD9a.mjs → CacheAdapters-jJFy20G-.mjs} +0 -0
- package/dist/{StealthVerifier-BzBCFiwx.mjs → StealthVerifier-BWmPgQsv.mjs} +0 -0
- package/dist/{VersionDetector-CNXcvD46.mjs → VersionDetector-K3V4vGsw.mjs} +0 -0
- package/dist/{formatAddress-ChCSIRWT.mjs → formatAddress-nnMvEohD.mjs} +0 -0
- package/dist/{types-BBjOqye-.mjs → types-DDBWs9UP.mjs} +1 -1
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { a as argString } from "./parse-args-B4cY5Vx5.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 };
|