@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.
- package/README.md +2 -2
- package/README.zh.md +2 -2
- package/dist/{AntiCheatDetector-BNk-EoBt.mjs → AntiCheatDetector-CqGDXmfc.mjs} +159 -53
- package/dist/{CodeInjector-Cq8q01kp.mjs → CodeInjector-BdjRfNx7.mjs} +5 -5
- package/dist/{ConsoleMonitor-CPVQW1Y-.mjs → ConsoleMonitor-DykL3IAw.mjs} +85 -17
- package/dist/{DetailedDataManager-BQQcxh64.mjs → DetailedDataManager-HT49OrvF.mjs} +1 -1
- package/dist/{ExtensionManager-CWYgw0YW.mjs → ExtensionManager-BDMsY2Dz.mjs} +15 -8
- package/dist/{HardwareBreakpoint-B9gZCdFP.mjs → HardwareBreakpoint-Cc2AFq1Y.mjs} +3 -3
- package/dist/{HeapAnalyzer-BLDH0dCv.mjs → HeapAnalyzer-DruMgsgj.mjs} +20 -20
- package/dist/{HookGeneratorBuilders.core.generators.storage-CtcdK78Q.mjs → HookGeneratorBuilders.core.generators.storage-CTbB4Lcx.mjs} +1 -74
- package/dist/{InstrumentationSession-CvPC7Jwy.mjs → InstrumentationSession-DLH0vd-z.mjs} +2 -2
- package/dist/{MemoryController-CbVdCIJF.mjs → MemoryController-CMtviNW_.mjs} +3 -3
- package/dist/{MemoryScanSession-BsDZbLYm.mjs → MemoryScanSession-ITgb_NMi.mjs} +2 -2
- package/dist/{MemoryScanner-Bcpml6II.mjs → MemoryScanner-CiL7Z3ey.mjs} +12 -9
- package/dist/{NativeMemoryManager.impl-dZtA1ZGn.mjs → NativeMemoryManager.impl-D9Lkovvn.mjs} +13 -10
- package/dist/{NativeMemoryManager.utils-B-FjA2mJ.mjs → NativeMemoryManager.utils-BBlAixF5.mjs} +1 -1
- package/dist/{PEAnalyzer-D1lzJ_VG.mjs → PEAnalyzer-DMQ44gen.mjs} +15 -15
- package/dist/{PageController-Bqm2kZ_X.mjs → PageController-BPJNqqBN.mjs} +18 -4
- package/dist/{PointerChainEngine-BOhyVsjx.mjs → PointerChainEngine-K7wN8Z-w.mjs} +10 -7
- package/dist/ProcessRegistry-zGg12QbE.mjs +74 -0
- package/dist/{ResponseBuilder-D3iFYx2N.mjs → ResponseBuilder-CJXWmWNw.mjs} +10 -10
- package/dist/{ScriptManager-aHHq0X7U.mjs → ScriptManager-ZuWD-0Jg.mjs} +195 -192
- package/dist/{Speedhack-CqdIFlQl.mjs → Speedhack-D-z0umeT.mjs} +2 -2
- package/dist/{StructureAnalyzer-DhFaPvRO.mjs → StructureAnalyzer-Cav5AVSL.mjs} +9 -6
- package/dist/{ToolCatalog-C0JGZoOm.mjs → ToolCatalog-5OJdMiF0.mjs} +81 -81
- package/dist/{ToolProbe-oC7aPrkv.mjs → ToolProbe-DbCFGyrg.mjs} +1 -1
- package/dist/{ToolRegistry-BjaF4oNz.mjs → ToolRegistry-B9krbTtI.mjs} +51 -2
- package/dist/{ToolRouter.policy-BWV67ZK-.mjs → ToolRouter.policy-BGDAGyeH.mjs} +60 -20
- package/dist/TraceRecorder-B41Z5XBj.mjs +1286 -0
- package/dist/{Win32API-CePkipZY.mjs → Win32API-C2kjj0ze.mjs} +18 -12
- package/dist/{Win32Debug-BvKs-gxc.mjs → Win32Debug-CKrGOTpo.mjs} +2 -2
- package/dist/{WorkflowEngine-CuvkZtWu.mjs → WorkflowEngine-DJ6M4opp.mjs} +226 -255
- package/dist/analysis-BHeJW2Nb.mjs +1234 -0
- package/dist/{antidebug-CqDTB_uk.mjs → antidebug-BRKeyt27.mjs} +3 -3
- package/dist/{artifactRetention-CFEprwPw.mjs → artifactRetention-CPXkUJXp.mjs} +13 -6
- package/dist/{artifacts-Bk2-_uPq.mjs → artifacts-DkfosXH3.mjs} +1 -1
- package/dist/authorization-schema-DRqyJMSk.mjs +31 -0
- package/dist/{binary-instrument-CXfpx6fT.mjs → binary-instrument--V3MAhJ4.mjs} +19 -27
- package/dist/bind-helpers-ClV34xdn.mjs +42 -0
- package/dist/{boringssl-inspector-BH2D3VKc.mjs → boringssl-inspector-Bo_LOLaS.mjs} +1 -1
- package/dist/{browser-BpOr5PEx.mjs → browser-Dx3_S2cG.mjs} +324 -37
- package/dist/capabilities-CcHlvWgK.mjs +33 -0
- package/dist/{constants-B0OANIBL.mjs → constants-CDZLOoVv.mjs} +18 -3
- package/dist/{coordination-qUbyF8KU.mjs → coordination-DgItD9DL.mjs} +2 -2
- package/dist/{debugger-gnKxRSN0.mjs → debugger-RS3RSAqs.mjs} +30 -13
- package/dist/definitions-BEoYofW5.mjs +47 -0
- package/dist/{definitions-bAhHQJq9.mjs → definitions-BRaefg3u.mjs} +11 -5
- package/dist/{definitions-DVGfrn7y.mjs → definitions-BbkvZkiv.mjs} +2 -2
- package/dist/definitions-BtWSHJ3o.mjs +17 -0
- package/dist/{definitions-BMfYXoNC.mjs → definitions-C1gCHO0i.mjs} +1 -1
- package/dist/{definitions-C1UvM5Iy.mjs → definitions-CDOg_b-l.mjs} +14 -2
- package/dist/definitions-CVPD9hzZ.mjs +54 -0
- package/dist/{definitions-Cke7zEb8.mjs → definitions-Cea8Lgl7.mjs} +1 -1
- package/dist/definitions-DAgIyjxM.mjs +10 -0
- package/dist/{definitions-B4rAvHNZ.mjs → definitions-DJA27nsL.mjs} +12 -9
- package/dist/{definitions-ClJLzsJQ.mjs → definitions-DKPFU3LW.mjs} +1 -1
- package/dist/{definitions-D3VsGcvz.mjs → definitions-DPRpZQ96.mjs} +7 -7
- package/dist/{definitions-B18eyf0B.mjs → definitions-DUE5gmdn.mjs} +1 -1
- package/dist/definitions-DYVjOtxa.mjs +26 -0
- package/dist/{definitions-BB_4jnmy.mjs → definitions-DcYLVLCo.mjs} +1 -1
- package/dist/{definitions-Beid2EB3.mjs → definitions-Pp5LI2H4.mjs} +1 -1
- package/dist/definitions-j9KdHVNR.mjs +14 -0
- package/dist/definitions-uzkjBwa7.mjs +258 -0
- package/dist/{definitions-Cq-zroAU.mjs → definitions-va-AnLuQ.mjs} +4 -4
- package/dist/{encoding-Bvz5jLRv.mjs → encoding-DJeqHmpd.mjs} +18 -4
- package/dist/{evidence-graph-bridge-C_fv9PuC.mjs → evidence-graph-bridge-DcYizFk2.mjs} +1 -0
- package/dist/{factory-DxlGh9Xf.mjs → factory-C90tBff6.mjs} +6 -6
- package/dist/flat-target-session-Dgax2Cy3.mjs +29 -0
- package/dist/{graphql-DYWzJ29s.mjs → graphql-CoHrhweh.mjs} +205 -34
- package/dist/{handlers-C67ktuRN.mjs → handlers-4jmR0nMs.mjs} +220 -32
- package/dist/{handlers-DlCJN4Td.mjs → handlers-BAHPxcch.mjs} +122 -90
- package/dist/{handlers-9sAbfIg-.mjs → handlers-BOs9b907.mjs} +849 -801
- package/dist/{handlers-DxGIq15_2.mjs → handlers-BWXEy6ef.mjs} +16 -16
- package/dist/{handlers-tB9Mp9ZK.mjs → handlers-Bndn6QvE.mjs} +31 -4
- package/dist/{handlers-CTsDAO6p.mjs → handlers-BqC4bD4s.mjs} +1 -1
- package/dist/{handlers-C87g8oCe.mjs → handlers-BtYq60bM2.mjs} +1 -1
- package/dist/{handlers-DeLOCd5m.mjs → handlers-BzgcB4iv.mjs} +17 -17
- package/dist/{handlers-Cgyg6c0U.mjs → handlers-CRyRWj2b.mjs} +237 -23
- package/dist/{handlers-U6L4xhuF.mjs → handlers-CVv2H1uq.mjs} +24 -17
- package/dist/{handlers-tiy7EIBp.mjs → handlers-Dl5a7JS4.mjs} +3 -3
- package/dist/{handlers-D6j6yka7.mjs → handlers-Dx2d7jt7.mjs} +1893 -1480
- package/dist/{handlers-Bl8zkwz1.mjs → handlers-Dz9PYsCa.mjs} +95 -6
- package/dist/handlers-HujRKC3b.mjs +661 -0
- package/dist/{handlers.impl-DS0d9fUw.mjs → handlers.impl-XWXkQfyi.mjs} +70 -24
- package/dist/{hooks-CzCWByww.mjs → hooks-B1B8NRHL.mjs} +3 -3
- package/dist/index.mjs +154 -144
- package/dist/{maintenance-P7ePRXQC.mjs → maintenance-PRMkLVRW.mjs} +35 -30
- package/dist/manifest-67Bok-Si.mjs +58 -0
- package/dist/{manifest-B3QVVeBS.mjs → manifest-6lNTMZAB2.mjs} +33 -28
- package/dist/manifest-B2duEHiH.mjs +90 -0
- package/dist/manifest-B6EY9Vm8.mjs +57 -0
- package/dist/{manifest-gZ4s_UtG.mjs → manifest-B6nKSbyY.mjs} +32 -33
- package/dist/{manifest-2ToTpjv8.mjs → manifest-BL8AQNPF.mjs} +31 -31
- package/dist/{manifest-DzwvxPJX.mjs → manifest-BSZvJJmV.mjs} +23 -14
- package/dist/{manifest-Sc_0JQ13.mjs → manifest-BU7qzUyX.mjs} +23 -23
- package/dist/{manifest-CT7zZBV1.mjs → manifest-Bl62e8WK.mjs} +24 -23
- 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-BqrQ4Tpj.mjs → manifest-C-xtsjS3.mjs} +23 -23
- package/dist/{manifest-NXctwWQq.mjs → manifest-CDYl7OhA.mjs} +36 -38
- 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-CAhOuvSl.mjs → manifest-D7YZM_2e.mjs} +75 -85
- package/dist/{manifest-DCyjf4n2.mjs → manifest-DE_VrAeQ.mjs} +27 -7
- package/dist/manifest-DGsXSCpT.mjs +39 -0
- package/dist/{manifest-BB2J8IMJ.mjs → manifest-DJ2vfEuW.mjs} +48 -41
- package/dist/{manifest-3g71z6Bg.mjs → manifest-DPXDYhEu.mjs} +26 -25
- package/dist/manifest-Dd4fQb0a.mjs +322 -0
- package/dist/{manifest-CXsRWjjI.mjs → manifest-Deq6opGg.mjs} +95 -96
- package/dist/{manifest-C9RT5nk32.mjs → manifest-DfJTafJK.mjs} +14 -11
- package/dist/manifest-DgOdgN_j.mjs +50 -0
- package/dist/{manifest-BmtZzQiQ2.mjs → manifest-DlbMW4v4.mjs} +17 -15
- package/dist/{manifest-DrbmZcFl2.mjs → manifest-DmVfbH0w.mjs} +212 -91
- 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-Dh8WBmEW.mjs → manifest-cEJU1v0Z.mjs} +24 -24
- package/dist/manifest-wOl5XLB12.mjs +112 -0
- package/dist/{modules-C184v-S9.mjs → modules-tZozf0LQ.mjs} +130 -860
- package/dist/{mojo-ipc-B_H61Afw.mjs → mojo-ipc-DXNEXEqb.mjs} +141 -26
- package/dist/{network-671Cw6hV.mjs → network-CPVvwvFg.mjs} +1329 -823
- package/dist/{outputPaths-B1uGmrWZ.mjs → outputPaths-um7lCRY3.mjs} +4 -8
- package/dist/{platform-WmNn8Sxb.mjs → platform-CYeFoTWp.mjs} +101 -10
- package/dist/{process-QcbIy5Zq.mjs → process-BTbgcVc6.mjs} +251 -346
- package/dist/{proxy-DqNs0bAd.mjs → proxy-r8YN6nP1.mjs} +30 -8
- package/dist/{registry-D-6e18lB.mjs → registry-Bl8ZQW61.mjs} +3 -3
- package/dist/{response-BQVP-xUn.mjs → response-CWhh2aLo.mjs} +7 -1
- package/dist/{shared-state-board-DV-dpHFJ.mjs → shared-state-board-BoZnSoj-.mjs} +2 -2
- package/dist/{sourcemap-Dq8ez8vS.mjs → sourcemap-BIDHUVXy.mjs} +350 -66
- package/dist/{streaming-BUQ0VJsg.mjs → streaming-Dal6utPp.mjs} +13 -13
- package/dist/{tool-builder-DCbIC5Eo.mjs → tool-builder-BHJp32mV.mjs} +1 -1
- package/dist/{transform-CiYJfNX0.mjs → transform-DRVgGG90.mjs} +18 -14
- package/dist/wasm-BYx5UOeG.mjs +1044 -0
- package/dist/webcrack-Be0_FccV.mjs +747 -0
- package/dist/{workflow-f3xJOcjx.mjs → workflow-BpuKEtvn.mjs} +8 -8
- package/package.json +76 -43
- package/dist/TraceRecorder-DgxyVbdQ.mjs +0 -519
- package/dist/analysis-CL9uACt9.mjs +0 -463
- package/dist/bind-helpers-xFfRF-qm.mjs +0 -22
- package/dist/definitions-6M-eejaT.mjs +0 -53
- package/dist/definitions-B3QdlrHv.mjs +0 -34
- package/dist/definitions-CXEI7QC72.mjs +0 -216
- package/dist/definitions-C_4r7Fo-2.mjs +0 -14
- package/dist/definitions-CkFDALoa.mjs +0 -26
- package/dist/definitions-Cy3Sl6gV.mjs +0 -34
- package/dist/definitions-LKpC3-nL.mjs +0 -9
- package/dist/handlers-DdFzXLvF.mjs +0 -446
- package/dist/manifest-82baTv4U.mjs +0 -45
- package/dist/manifest-BKbgbSiY.mjs +0 -60
- package/dist/manifest-Bcf-TJzH.mjs +0 -848
- package/dist/manifest-Bnd7kqEY.mjs +0 -55
- package/dist/manifest-BqQX6OQC2.mjs +0 -65
- package/dist/manifest-Br4RPFt5.mjs +0 -370
- package/dist/manifest-C5qDjysN.mjs +0 -107
- package/dist/manifest-CBYWCUBJ.mjs +0 -51
- package/dist/manifest-CFADCRa1.mjs +0 -37
- package/dist/manifest-CQVhavRF.mjs +0 -114
- package/dist/manifest-CV12bcrF.mjs +0 -121
- package/dist/manifest-CZLUCfG02.mjs +0 -95
- package/dist/manifest-D6phHKFd.mjs +0 -131
- package/dist/manifest-DHsnKgP6.mjs +0 -60
- package/dist/manifest-Df_dliIe.mjs +0 -55
- package/dist/manifest-DhKRAT8_.mjs +0 -92
- package/dist/manifest-DlpTj4ic2.mjs +0 -193
- package/dist/manifest-DuwHjUa5.mjs +0 -70
- package/dist/manifest-qSleDqdO.mjs +0 -1023
- package/dist/wasm-DQTnHDs4.mjs +0 -531
- /package/dist/{CacheAdapters-CDe5WPSV.mjs → CacheAdapters-jJFy20G-.mjs} +0 -0
- /package/dist/{DarwinAPI-BNPxu0RH.mjs → DarwinAPI-ETyy0xyo.mjs} +0 -0
- /package/dist/{EventBus-DgPmwpeu.mjs → EventBus-DFKvADm3.mjs} +0 -0
- /package/dist/{EvidenceGraphBridge-SFesNera.mjs → EvidenceGraphBridge-318Oi0Lf.mjs} +0 -0
- /package/dist/{FingerprintManager-gzWtkKuf.mjs → FingerprintManager-BN4UQWnX.mjs} +0 -0
- /package/dist/{PrerequisiteError-Dl33Svkz.mjs → PrerequisiteError-TuyZIs6n.mjs} +0 -0
- /package/dist/{ReverseEvidenceGraph-Dlsk94LC.mjs → ReverseEvidenceGraph-C02-gXOh.mjs} +0 -0
- /package/dist/{StealthVerifier-Bo4T3bz8.mjs → StealthVerifier-BWmPgQsv.mjs} +0 -0
- /package/dist/{VersionDetector-CwVLVdDM.mjs → VersionDetector-K3V4vGsw.mjs} +0 -0
- /package/dist/{betterSqlite3-0pqusHHH.mjs → betterSqlite3-DLSBZodi.mjs} +0 -0
- /package/dist/{concurrency-Bt0yv1kJ.mjs → concurrency-Drev_Vz9.mjs} +0 -0
- /package/dist/{formatAddress-DVkj9kpI.mjs → formatAddress-nnMvEohD.mjs} +0 -0
- /package/dist/{parse-args-BlRjqlkL.mjs → parse-args-B4cY5Vx5.mjs} +0 -0
- /package/dist/{ssrf-policy-ZaUfvhq7.mjs → ssrf-policy-Dsqd-DTX.mjs} +0 -0
- /package/dist/{types-CPhOReNX.mjs → types-DDBWs9UP.mjs} +0 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
|
|
2
|
+
import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
|
|
3
|
+
import { t as processToolDefinitions } from "./definitions-DJA27nsL.mjs";
|
|
4
|
+
//#region src/server/domains/process/manifest.ts
|
|
5
|
+
const DOMAIN = "process";
|
|
6
|
+
const DEP_KEY = "processHandlers";
|
|
7
|
+
const t = toolLookup(processToolDefinitions);
|
|
8
|
+
const EFFECTIVE_PLATFORM = 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;
|
|
9
|
+
async function ensure(ctx) {
|
|
10
|
+
const { ProcessToolHandlers } = await import("./process-BTbgcVc6.mjs");
|
|
11
|
+
if (!ctx.processHandlers) ctx.processHandlers = new ProcessToolHandlers();
|
|
12
|
+
return ctx.processHandlers;
|
|
13
|
+
}
|
|
14
|
+
const IS_WIN32 = EFFECTIVE_PLATFORM === "win32";
|
|
15
|
+
const WIN32_ONLY_TOOLS = new Set(["check_debug_port"]);
|
|
16
|
+
const allRegistrations = defineMethodRegistrations({
|
|
17
|
+
domain: DOMAIN,
|
|
18
|
+
depKey: DEP_KEY,
|
|
19
|
+
lookup: t,
|
|
20
|
+
entries: [
|
|
21
|
+
{
|
|
22
|
+
tool: "electron_attach",
|
|
23
|
+
method: "handleElectronAttach"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
tool: "process_windows",
|
|
27
|
+
method: "handleProcessWindows"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
tool: "process_check_debug_port",
|
|
31
|
+
method: "handleProcessCheckDebugPort"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
tool: "process_launch_debug",
|
|
35
|
+
method: "handleProcessLaunchDebug"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
tool: "memory_read",
|
|
39
|
+
method: "handleMemoryRead"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
tool: "memory_write",
|
|
43
|
+
method: "handleMemoryWrite"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
tool: "memory_scan",
|
|
47
|
+
method: "handleMemoryScan"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
tool: "memory_check_protection",
|
|
51
|
+
method: "handleMemoryCheckProtection"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
tool: "memory_scan_filtered",
|
|
55
|
+
method: "handleMemoryScanFiltered"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
tool: "memory_batch_write",
|
|
59
|
+
method: "handleMemoryBatchWrite"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
tool: "memory_dump_region",
|
|
63
|
+
method: "handleMemoryDumpRegion"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
tool: "memory_list_regions",
|
|
67
|
+
method: "handleMemoryListRegions"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
tool: "memory_audit_export",
|
|
71
|
+
method: "handleMemoryAuditExport"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
tool: "inject_dll",
|
|
75
|
+
method: "handleInjectDll"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
tool: "inject_shellcode",
|
|
79
|
+
method: "handleInjectShellcode"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
tool: "check_debug_port",
|
|
83
|
+
method: "handleCheckDebugPort"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
tool: "enumerate_modules",
|
|
87
|
+
method: "handleEnumerateModules"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
});
|
|
91
|
+
const manifest = {
|
|
92
|
+
kind: "domain-manifest",
|
|
93
|
+
version: 1,
|
|
94
|
+
domain: DOMAIN,
|
|
95
|
+
depKey: DEP_KEY,
|
|
96
|
+
profiles: ["full"],
|
|
97
|
+
ensure,
|
|
98
|
+
registrations: IS_WIN32 ? allRegistrations : allRegistrations.filter((r) => !WIN32_ONLY_TOOLS.has(r.tool.name))
|
|
99
|
+
};
|
|
100
|
+
//#endregion
|
|
101
|
+
export { manifest as default };
|
|
@@ -0,0 +1,117 @@
|
|
|
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
|
+
import { t as networkAuthorizationSchema } from "./authorization-schema-DRqyJMSk.mjs";
|
|
5
|
+
//#region src/server/domains/instrumentation/definitions.ts
|
|
6
|
+
const queryTypes = [
|
|
7
|
+
"before-load-inject",
|
|
8
|
+
"runtime-hook",
|
|
9
|
+
"network-intercept",
|
|
10
|
+
"function-trace"
|
|
11
|
+
];
|
|
12
|
+
const instrumentationTools = [
|
|
13
|
+
tool("instrumentation_session", (t) => t.desc("Manage instrumentation sessions.").enum("action", [
|
|
14
|
+
"create",
|
|
15
|
+
"list",
|
|
16
|
+
"destroy",
|
|
17
|
+
"status"
|
|
18
|
+
], "Session operation").string("name", "Optional session name for create").string("sessionId", "Session ID (required for destroy/status)").required("action")),
|
|
19
|
+
tool("instrumentation_operation", (t) => t.desc("Manage operations inside an instrumentation session.").enum("action", ["register", "list"], "Operation").string("sessionId", "Session ID").enum("type", queryTypes, "Instrumentation type (action=register)").string("target", "Function name, URL pattern, or script target (action=register)").object("config", {}, "Operation-specific config (action=register)").required("action", "sessionId")),
|
|
20
|
+
tool("instrumentation_artifact", (t) => t.desc("Manage artifacts captured by instrumentation operations.").enum("action", ["record", "query"], "Artifact operation").string("sessionId", "Session ID").string("operationId", "Operation ID (action=record)").object("data", {}, "Captured artifact payload (action=record)").enum("type", queryTypes, "Optional artifact type filter (action=query)").number("limit", "Max artifacts to return (action=query, default: 50)", { default: 50 }).required("action", "sessionId")),
|
|
21
|
+
tool("instrumentation_hook_preset", (t) => t.desc("Apply hook presets inside an instrumentation session.").string("sessionId", "Session ID").string("preset", "Single preset id to inject").array("presets", { type: "string" }, "Multiple preset ids to inject in one call").boolean("captureStack", "Whether injected presets should capture stack traces", { default: false }).boolean("logToConsole", "Whether injected presets should log to console", { default: true }).enum("method", ["evaluate", "evaluateOnNewDocument"], "Injection method forwarded to hook_preset", { default: "evaluate" }).prop("customTemplate", {
|
|
22
|
+
type: "object",
|
|
23
|
+
additionalProperties: true,
|
|
24
|
+
description: "Optional inline custom preset definition"
|
|
25
|
+
}).prop("customTemplates", {
|
|
26
|
+
type: "array",
|
|
27
|
+
items: {
|
|
28
|
+
type: "object",
|
|
29
|
+
additionalProperties: true
|
|
30
|
+
},
|
|
31
|
+
description: "Optional inline custom preset definitions"
|
|
32
|
+
}).requiredOpenWorld("sessionId")),
|
|
33
|
+
tool("instrumentation_network_replay", (t) => t.desc("Replay a captured network request inside an instrumentation session.").string("sessionId", "Session ID").string("requestId", "Captured request ID returned by network_get_requests").object("headerPatch", { additionalProperties: { type: "string" } }, "Optional request header overrides").string("bodyPatch", "Optional raw request body override").string("methodOverride", "Optional HTTP method override").string("urlOverride", "Optional destination URL override").object("authorization", networkAuthorizationSchema, "Optional request-scoped authorization for private-network or insecure-HTTP replay.").string("authorizationCapability", "Optional base64url-encoded request-scoped authorization capability.").number("timeoutMs", "Optional replay timeout in milliseconds").boolean("dryRun", "Preview the replay without sending the request", { default: true }).requiredOpenWorld("sessionId", "requestId"))
|
|
34
|
+
];
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region src/server/domains/instrumentation/manifest.ts
|
|
37
|
+
const DOMAIN = "instrumentation";
|
|
38
|
+
const DEP_KEY = "instrumentationHandlers";
|
|
39
|
+
const registrations = defineMethodRegistrations({
|
|
40
|
+
domain: DOMAIN,
|
|
41
|
+
depKey: DEP_KEY,
|
|
42
|
+
lookup: toolLookup(instrumentationTools),
|
|
43
|
+
entries: [
|
|
44
|
+
{
|
|
45
|
+
tool: "instrumentation_session",
|
|
46
|
+
method: "handleSessionDispatch"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
tool: "instrumentation_operation",
|
|
50
|
+
method: "handleOperationDispatch"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
tool: "instrumentation_artifact",
|
|
54
|
+
method: "handleArtifactDispatch"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
tool: "instrumentation_hook_preset",
|
|
58
|
+
method: "handleHookPreset"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
tool: "instrumentation_network_replay",
|
|
62
|
+
method: "handleNetworkReplay"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
});
|
|
66
|
+
async function ensure(ctx) {
|
|
67
|
+
const { ReverseEvidenceGraph } = await import("./ReverseEvidenceGraph-C02-gXOh.mjs").then((n) => n.t);
|
|
68
|
+
const { InstrumentationSessionManager } = await import("./InstrumentationSession-DLH0vd-z.mjs");
|
|
69
|
+
const { EvidenceGraphBridge } = await import("./EvidenceGraphBridge-318Oi0Lf.mjs");
|
|
70
|
+
const { InstrumentationHandlers } = await import("./handlers-BtYq60bM2.mjs");
|
|
71
|
+
const hookPresetHandlers = ctx.handlerDeps.hookPresetHandlers;
|
|
72
|
+
const advancedHandlers = ctx.handlerDeps.advancedHandlers;
|
|
73
|
+
let graph = ctx.getDomainInstance("evidenceGraph");
|
|
74
|
+
if (!graph) {
|
|
75
|
+
graph = new ReverseEvidenceGraph();
|
|
76
|
+
ctx.setDomainInstance("evidenceGraph", graph);
|
|
77
|
+
}
|
|
78
|
+
let sessionManager = ctx.getDomainInstance("instrumentationSessionManager");
|
|
79
|
+
if (!sessionManager) {
|
|
80
|
+
sessionManager = new InstrumentationSessionManager();
|
|
81
|
+
ctx.setDomainInstance("instrumentationSessionManager", sessionManager);
|
|
82
|
+
}
|
|
83
|
+
let bridge = ctx.getDomainInstance("evidenceGraphBridge");
|
|
84
|
+
if (!bridge) {
|
|
85
|
+
bridge = new EvidenceGraphBridge(graph);
|
|
86
|
+
ctx.setDomainInstance("evidenceGraphBridge", bridge);
|
|
87
|
+
}
|
|
88
|
+
sessionManager.setEvidenceBridge(bridge);
|
|
89
|
+
if (!ctx.instrumentationHandlers) ctx.instrumentationHandlers = new InstrumentationHandlers(sessionManager, {
|
|
90
|
+
hookPresetHandlers,
|
|
91
|
+
advancedHandlers
|
|
92
|
+
});
|
|
93
|
+
return ctx.instrumentationHandlers;
|
|
94
|
+
}
|
|
95
|
+
const manifest = {
|
|
96
|
+
kind: "domain-manifest",
|
|
97
|
+
version: 1,
|
|
98
|
+
domain: DOMAIN,
|
|
99
|
+
depKey: DEP_KEY,
|
|
100
|
+
profiles: ["full"],
|
|
101
|
+
ensure,
|
|
102
|
+
workflowRule: {
|
|
103
|
+
patterns: [/(hook|intercept|trace|instrument).*(session|unified|manage|all)/i, /(session|统一|会话).*(hook|拦截|追踪|仪器化|instrument)/i],
|
|
104
|
+
priority: 95,
|
|
105
|
+
tools: [
|
|
106
|
+
"instrumentation_session",
|
|
107
|
+
"instrumentation_operation",
|
|
108
|
+
"instrumentation_artifact",
|
|
109
|
+
"instrumentation_hook_preset",
|
|
110
|
+
"instrumentation_network_replay"
|
|
111
|
+
],
|
|
112
|
+
hint: "Instrumentation session: create session → attach hook presets / network replay → record artifacts → query artifacts → destroy when done"
|
|
113
|
+
},
|
|
114
|
+
registrations
|
|
115
|
+
};
|
|
116
|
+
//#endregion
|
|
117
|
+
export { manifest as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as toolLookup } from "./registry-
|
|
2
|
-
import {
|
|
3
|
-
import { t as tool } from "./tool-builder-
|
|
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/adb-bridge/definitions.ts
|
|
5
5
|
const adbBridgeTools = [
|
|
6
6
|
tool("adb_apk_analyze", (t) => t.desc("Analyze an installed APK — package name, version, permissions, activities, se...").string("serial", "Required. Android device serial or emulator id.").string("packageName", "Required. Android package name, for example com.example.app.").requiredOpenWorld("serial", "packageName")),
|
|
@@ -11,27 +11,27 @@ const adbBridgeTools = [
|
|
|
11
11
|
//#region src/server/domains/adb-bridge/manifest.ts
|
|
12
12
|
const DOMAIN = "adb-bridge";
|
|
13
13
|
const DEP_KEY = "adbBridgeHandlers";
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
14
|
+
const registrations = defineMethodRegistrations({
|
|
15
|
+
domain: DOMAIN,
|
|
16
|
+
depKey: DEP_KEY,
|
|
17
|
+
lookup: toolLookup(adbBridgeTools),
|
|
18
|
+
entries: [
|
|
19
|
+
{
|
|
20
|
+
tool: "adb_apk_analyze",
|
|
21
|
+
method: "handleAnalyzeApk"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
tool: "adb_webview_list",
|
|
25
|
+
method: "handleWebViewList"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
tool: "adb_webview_attach",
|
|
29
|
+
method: "handleWebViewAttach"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
});
|
|
33
33
|
async function ensure(ctx) {
|
|
34
|
-
const { ADBBridgeHandlers } = await import("./handlers-
|
|
34
|
+
const { ADBBridgeHandlers } = await import("./handlers-Dl5a7JS4.mjs");
|
|
35
35
|
const existingHandlers = ctx.getDomainInstance(DEP_KEY);
|
|
36
36
|
if (existingHandlers) return existingHandlers;
|
|
37
37
|
const handlers = new ADBBridgeHandlers();
|
|
@@ -1,13 +1,42 @@
|
|
|
1
|
-
import { n as toolLookup, t as ensureBrowserCore } from "./registry-
|
|
2
|
-
import {
|
|
3
|
-
import { t as workflowToolDefinitions } from "./definitions-
|
|
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 workflowToolDefinitions } from "./definitions-Cea8Lgl7.mjs";
|
|
4
4
|
//#region src/server/domains/workflow/manifest.ts
|
|
5
5
|
const DOMAIN = "workflow";
|
|
6
6
|
const DEP_KEY = "workflowHandlers";
|
|
7
|
-
const
|
|
8
|
-
|
|
7
|
+
const registrations = defineMethodRegistrations({
|
|
8
|
+
domain: DOMAIN,
|
|
9
|
+
depKey: DEP_KEY,
|
|
10
|
+
lookup: toolLookup(workflowToolDefinitions),
|
|
11
|
+
entries: [
|
|
12
|
+
{
|
|
13
|
+
tool: "page_script_register",
|
|
14
|
+
method: "handlePageScriptRegister"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
tool: "page_script_run",
|
|
18
|
+
method: "handlePageScriptRun"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
tool: "api_probe_batch",
|
|
22
|
+
method: "handleApiProbeBatch"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
tool: "js_bundle_search",
|
|
26
|
+
method: "handleJsBundleSearch"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
tool: "list_extension_workflows",
|
|
30
|
+
method: "handleListExtensionWorkflows"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
tool: "run_extension_workflow",
|
|
34
|
+
method: "handleRunExtensionWorkflow"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
});
|
|
9
38
|
async function ensure(ctx) {
|
|
10
|
-
const { WorkflowHandlers } = await import("./workflow-
|
|
39
|
+
const { WorkflowHandlers } = await import("./workflow-BpuKEtvn.mjs");
|
|
11
40
|
await ensureBrowserCore(ctx);
|
|
12
41
|
const browserHandlers = ctx.handlerDeps.browserHandlers;
|
|
13
42
|
const advancedHandlers = ctx.handlerDeps.advancedHandlers;
|
|
@@ -31,38 +60,7 @@ const manifest = {
|
|
|
31
60
|
tools: ["run_extension_workflow", "list_extension_workflows"],
|
|
32
61
|
hint: "Extension workflow: list available workflows -> run the best matching workflow"
|
|
33
62
|
},
|
|
34
|
-
registrations
|
|
35
|
-
{
|
|
36
|
-
tool: t("page_script_register"),
|
|
37
|
-
domain: DOMAIN,
|
|
38
|
-
bind: b((h, a) => h.handlePageScriptRegister(a))
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
tool: t("page_script_run"),
|
|
42
|
-
domain: DOMAIN,
|
|
43
|
-
bind: b((h, a) => h.handlePageScriptRun(a))
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
tool: t("api_probe_batch"),
|
|
47
|
-
domain: DOMAIN,
|
|
48
|
-
bind: b((h, a) => h.handleApiProbeBatch(a))
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
tool: t("js_bundle_search"),
|
|
52
|
-
domain: DOMAIN,
|
|
53
|
-
bind: b((h, a) => h.handleJsBundleSearch(a))
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
tool: t("list_extension_workflows"),
|
|
57
|
-
domain: DOMAIN,
|
|
58
|
-
bind: b((h) => h.handleListExtensionWorkflows())
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
tool: t("run_extension_workflow"),
|
|
62
|
-
domain: DOMAIN,
|
|
63
|
-
bind: b((h, a) => h.handleRunExtensionWorkflow(a))
|
|
64
|
-
}
|
|
65
|
-
]
|
|
63
|
+
registrations
|
|
66
64
|
};
|
|
67
65
|
//#endregion
|
|
68
66
|
export { manifest as default };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
|
|
2
|
+
import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
|
|
3
|
+
import { t as PROXY_TOOLS } from "./definitions-j9KdHVNR.mjs";
|
|
4
|
+
//#region src/server/domains/proxy/manifest.ts
|
|
5
|
+
const DOMAIN = "proxy";
|
|
6
|
+
const DEP_KEY = "proxyHandlers";
|
|
7
|
+
const registrations = defineMethodRegistrations({
|
|
8
|
+
domain: DOMAIN,
|
|
9
|
+
depKey: DEP_KEY,
|
|
10
|
+
lookup: toolLookup(PROXY_TOOLS),
|
|
11
|
+
entries: [
|
|
12
|
+
{
|
|
13
|
+
tool: "proxy_start",
|
|
14
|
+
method: "handleProxyStart"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
tool: "proxy_stop",
|
|
18
|
+
method: "handleProxyStop"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
tool: "proxy_status",
|
|
22
|
+
method: "handleProxyStatus"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
tool: "proxy_export_ca",
|
|
26
|
+
method: "handleProxyExportCa"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
tool: "proxy_add_rule",
|
|
30
|
+
method: "handleProxyAddRule"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
tool: "proxy_get_requests",
|
|
34
|
+
method: "handleProxyGetRequests"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
tool: "proxy_clear_logs",
|
|
38
|
+
method: "handleProxyClearLogs"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
tool: "proxy_setup_adb_device",
|
|
42
|
+
method: "handleProxySetupAdbDevice"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
async function ensure(ctx) {
|
|
47
|
+
const { ProxyHandlers } = await import("./proxy-r8YN6nP1.mjs");
|
|
48
|
+
if (!ctx.proxyHandlers) ctx.proxyHandlers = new ProxyHandlers();
|
|
49
|
+
return ctx.proxyHandlers;
|
|
50
|
+
}
|
|
51
|
+
const manifest = {
|
|
52
|
+
kind: "domain-manifest",
|
|
53
|
+
version: 1,
|
|
54
|
+
domain: DOMAIN,
|
|
55
|
+
depKey: DEP_KEY,
|
|
56
|
+
profiles: ["full"],
|
|
57
|
+
ensure,
|
|
58
|
+
registrations
|
|
59
|
+
};
|
|
60
|
+
//#endregion
|
|
61
|
+
export { manifest as default };
|
|
@@ -0,0 +1,132 @@
|
|
|
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
|
+
//#region src/server/domains/trace/definitions.tools.ts
|
|
5
|
+
const TRACE_TOOLS = [
|
|
6
|
+
tool("trace_recording", (t) => t.desc("Start or stop trace recording into a SQLite database.").enum("action", ["start", "stop"], "Recording action").array("cdpDomains", { type: "string" }, "CDP domains to record (default: Debugger, Runtime, Network, Page)").boolean("recordMemoryDeltas", "Record memory write deltas", { default: true }).boolean("recordResponseBodies", "Persist response bodies when available.", { default: true }).boolean("streamResponseChunks", "Capture response chunks when the browser supports it.", { default: true }).number("networkBodyMaxBytes", "Maximum response body bytes to persist per request", {
|
|
7
|
+
default: 10485760,
|
|
8
|
+
minimum: 1024,
|
|
9
|
+
maximum: 104857600
|
|
10
|
+
}).number("networkInlineBodyBytes", "Bodies up to this size are stored inline in SQLite; larger ones go to artifacts", {
|
|
11
|
+
default: 262144,
|
|
12
|
+
minimum: 1024,
|
|
13
|
+
maximum: 10485760
|
|
14
|
+
}).required("action").idempotent()),
|
|
15
|
+
tool("start_trace_recording", (t) => t.desc("Start trace recording into a SQLite database.").array("cdpDomains", { type: "string" }, "CDP domains to record (default: Debugger, Runtime, Network, Page)").boolean("recordMemoryDeltas", "Record memory write deltas", { default: true }).boolean("recordResponseBodies", "Persist response bodies when available.", { default: true }).boolean("streamResponseChunks", "Capture response chunks when the browser supports it.", { default: true }).number("networkBodyMaxBytes", "Maximum response body bytes to persist per request", {
|
|
16
|
+
default: 10485760,
|
|
17
|
+
minimum: 1024,
|
|
18
|
+
maximum: 104857600
|
|
19
|
+
}).number("networkInlineBodyBytes", "Bodies up to this size are stored inline in SQLite; larger ones go to artifacts", {
|
|
20
|
+
default: 262144,
|
|
21
|
+
minimum: 1024,
|
|
22
|
+
maximum: 10485760
|
|
23
|
+
}).idempotent()),
|
|
24
|
+
tool("stop_trace_recording", (t) => t.desc("Stop trace recording and return the final session summary.").idempotent()),
|
|
25
|
+
tool("query_trace_sql", (t) => t.desc("Execute a read-only SQL query against a trace database.").string("sql", "SQL query to execute (SELECT only — write operations are rejected)").string("dbPath", "Path to trace DB file. Uses the active recording if omitted.").required("sql").query()),
|
|
26
|
+
tool("seek_to_timestamp", (t) => t.desc("Reconstruct trace state at a specific timestamp.").number("timestamp", "Target timestamp in milliseconds").string("dbPath", "Path to trace DB file. Uses the active recording if omitted.").number("windowMs", "Time window around timestamp to include in ms", { default: 100 }).enum("timeDomain", ["wall", "monotonic"], "Interpret timestamp using wall or monotonic time", { default: "wall" }).required("timestamp").query()),
|
|
27
|
+
tool("trace_get_network_flow", (t) => t.desc("Get a recorded request-scoped network flow from a trace.").string("requestId", "Network requestId to retrieve from the trace").string("dbPath", "Path to trace DB file. Uses the active recording if omitted.").boolean("includeBody", "Include persisted response body metadata/content when available", { default: true }).boolean("includeChunks", "Include recorded response chunk timing data", { default: true }).boolean("includeEvents", "Include related network events from the trace", { default: true }).number("chunkLimit", "Maximum number of chunks to return", {
|
|
28
|
+
default: 200,
|
|
29
|
+
minimum: 1,
|
|
30
|
+
maximum: 5e3
|
|
31
|
+
}).number("maxBodyBytes", "Maximum response body bytes to inline before summarizing", {
|
|
32
|
+
default: 1e5,
|
|
33
|
+
minimum: 1024,
|
|
34
|
+
maximum: 52428800
|
|
35
|
+
}).boolean("returnSummary", "Return body summary even when body is within maxBodyBytes", { default: false }).required("requestId").query()),
|
|
36
|
+
tool("diff_heap_snapshots", (t) => t.desc("Compare two heap snapshots from a trace.").number("snapshotId1", "First snapshot ID (earlier)").number("snapshotId2", "Second snapshot ID (later)").string("dbPath", "Path to trace DB file. Uses the active recording if omitted.").required("snapshotId1", "snapshotId2").query()),
|
|
37
|
+
tool("export_trace", (t) => t.desc("Export a trace database to Chrome Trace Event JSON.").string("dbPath", "Path to trace DB file. Uses the active recording if omitted.").string("outputPath", "Output JSON file path. Auto-generated if omitted.").idempotent()),
|
|
38
|
+
tool("summarize_trace", (t) => t.desc("Generate a compact summary of a trace database.").enum("detail", [
|
|
39
|
+
"compact",
|
|
40
|
+
"balanced",
|
|
41
|
+
"full"
|
|
42
|
+
], "Summary detail level", { default: "balanced" }).string("dbPath", "Path to trace DB file. Uses the active recording if omitted.").query())
|
|
43
|
+
];
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/server/domains/trace/manifest.ts
|
|
46
|
+
const DOMAIN = "trace";
|
|
47
|
+
const DEP_KEY = "traceHandlers";
|
|
48
|
+
const registrations = defineMethodRegistrations({
|
|
49
|
+
domain: DOMAIN,
|
|
50
|
+
depKey: DEP_KEY,
|
|
51
|
+
lookup: toolLookup(TRACE_TOOLS),
|
|
52
|
+
entries: [
|
|
53
|
+
{
|
|
54
|
+
tool: "trace_recording",
|
|
55
|
+
method: "handleTraceRecording"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
tool: "start_trace_recording",
|
|
59
|
+
method: "handleStartTraceRecording"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
tool: "stop_trace_recording",
|
|
63
|
+
method: "handleStopTraceRecording"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
tool: "query_trace_sql",
|
|
67
|
+
method: "handleQueryTraceSql"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
tool: "seek_to_timestamp",
|
|
71
|
+
method: "handleSeekToTimestamp"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
tool: "trace_get_network_flow",
|
|
75
|
+
method: "handleGetTraceNetworkFlow"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
tool: "diff_heap_snapshots",
|
|
79
|
+
method: "handleDiffHeapSnapshots"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
tool: "export_trace",
|
|
83
|
+
method: "handleExportTrace"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
tool: "summarize_trace",
|
|
87
|
+
method: "handleSummarizeTrace"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
});
|
|
91
|
+
async function ensure(ctx) {
|
|
92
|
+
const { TraceRecorder } = await import("./TraceRecorder-B41Z5XBj.mjs");
|
|
93
|
+
const { TraceToolHandlers } = await import("./handlers-HujRKC3b.mjs");
|
|
94
|
+
if (!ctx.traceRecorder || !ctx.traceHandlers) {
|
|
95
|
+
if (!ctx.traceRecorder) ctx.traceRecorder = new TraceRecorder();
|
|
96
|
+
if (!ctx.traceHandlers) ctx.traceHandlers = new TraceToolHandlers(ctx.traceRecorder, ctx);
|
|
97
|
+
}
|
|
98
|
+
return ctx.traceHandlers;
|
|
99
|
+
}
|
|
100
|
+
const manifest = {
|
|
101
|
+
kind: "domain-manifest",
|
|
102
|
+
version: 1,
|
|
103
|
+
domain: DOMAIN,
|
|
104
|
+
depKey: DEP_KEY,
|
|
105
|
+
profiles: ["full"],
|
|
106
|
+
ensure,
|
|
107
|
+
prerequisites: {},
|
|
108
|
+
workflowRule: {
|
|
109
|
+
patterns: [
|
|
110
|
+
/trace/i,
|
|
111
|
+
/time.?travel/i,
|
|
112
|
+
/replay/i,
|
|
113
|
+
/recorded?\s+events?/i
|
|
114
|
+
],
|
|
115
|
+
priority: 70,
|
|
116
|
+
tools: [
|
|
117
|
+
"trace_recording",
|
|
118
|
+
"start_trace_recording",
|
|
119
|
+
"stop_trace_recording",
|
|
120
|
+
"query_trace_sql",
|
|
121
|
+
"seek_to_timestamp",
|
|
122
|
+
"trace_get_network_flow",
|
|
123
|
+
"diff_heap_snapshots",
|
|
124
|
+
"export_trace",
|
|
125
|
+
"summarize_trace"
|
|
126
|
+
],
|
|
127
|
+
hint: "Start recording → perform actions → stop recording → summarize/query/seek/diff/export"
|
|
128
|
+
},
|
|
129
|
+
registrations
|
|
130
|
+
};
|
|
131
|
+
//#endregion
|
|
132
|
+
export { manifest as default };
|
|
@@ -0,0 +1,50 @@
|
|
|
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 encodingTools } from "./definitions-DPRpZQ96.mjs";
|
|
4
|
+
//#region src/server/domains/encoding/manifest.ts
|
|
5
|
+
const DOMAIN = "encoding";
|
|
6
|
+
const DEP_KEY = "encodingHandlers";
|
|
7
|
+
const registrations = defineMethodRegistrations({
|
|
8
|
+
domain: DOMAIN,
|
|
9
|
+
depKey: DEP_KEY,
|
|
10
|
+
lookup: toolLookup(encodingTools),
|
|
11
|
+
entries: [
|
|
12
|
+
{
|
|
13
|
+
tool: "binary_detect_format",
|
|
14
|
+
method: "handleBinaryDetectFormat"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
tool: "binary_decode",
|
|
18
|
+
method: "handleBinaryDecode"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
tool: "binary_encode",
|
|
22
|
+
method: "handleBinaryEncode"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
tool: "binary_entropy_analysis",
|
|
26
|
+
method: "handleBinaryEntropyAnalysis"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
tool: "protobuf_decode_raw",
|
|
30
|
+
method: "handleProtobufDecodeRaw"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
});
|
|
34
|
+
async function ensure(ctx) {
|
|
35
|
+
const { EncodingToolHandlers } = await import("./encoding-DJeqHmpd.mjs");
|
|
36
|
+
await ensureBrowserCore(ctx);
|
|
37
|
+
if (!ctx.encodingHandlers) ctx.encodingHandlers = new EncodingToolHandlers(ctx.collector, async (requestId) => ctx.consoleMonitor?.getResponseBody(requestId) ?? null);
|
|
38
|
+
return ctx.encodingHandlers;
|
|
39
|
+
}
|
|
40
|
+
const manifest = {
|
|
41
|
+
kind: "domain-manifest",
|
|
42
|
+
version: 1,
|
|
43
|
+
domain: DOMAIN,
|
|
44
|
+
depKey: DEP_KEY,
|
|
45
|
+
profiles: ["workflow", "full"],
|
|
46
|
+
ensure,
|
|
47
|
+
registrations
|
|
48
|
+
};
|
|
49
|
+
//#endregion
|
|
50
|
+
export { manifest as default };
|