@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
|
@@ -1,11 +1,12 @@
|
|
|
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/binary-instrument/definitions.ts
|
|
5
5
|
const binaryInstrumentTools = [
|
|
6
|
-
tool("
|
|
6
|
+
tool("binary_instrument_capabilities", (t) => t.desc("Report binary instrumentation backend availability.").query()),
|
|
7
|
+
tool("frida_attach", (t) => t.desc("Attach Frida to a local target and open a session.").string("target", "Process name, PID, or binary path to attach to").required("target")),
|
|
7
8
|
tool("frida_enumerate_modules", (t) => t.desc("Enumerate modules for an attached Frida session.").string("sessionId", "Session id returned by frida_attach").required("sessionId").query()),
|
|
8
|
-
tool("ghidra_analyze", (t) => t.desc("
|
|
9
|
+
tool("ghidra_analyze", (t) => t.desc("Analyze a binary and return metadata.").string("binaryPath", "Path to the binary file").number("timeout", "Optional timeout in milliseconds for headless analysis").required("binaryPath")),
|
|
9
10
|
tool("generate_hooks", (t) => t.desc("Generate a Frida interceptor script for a list of symbols.").array("symbols", { type: "string" }, "Symbol names to hook").object("options", {
|
|
10
11
|
includeArgs: {
|
|
11
12
|
type: "boolean",
|
|
@@ -16,16 +17,16 @@ const binaryInstrumentTools = [
|
|
|
16
17
|
description: "Emit return-address logging on function entry"
|
|
17
18
|
}
|
|
18
19
|
}, "Optional Frida hook generation flags").required("symbols")),
|
|
19
|
-
tool("unidbg_emulate", (t) => t.desc("
|
|
20
|
+
tool("unidbg_emulate", (t) => t.desc("Emulate a native function with Unidbg when available.").string("binaryPath", "Path to the binary file").string("functionName", "Function name to emulate").array("args", { type: "string" }, "Optional string arguments forwarded to emulation").required("binaryPath", "functionName")),
|
|
20
21
|
tool("frida_run_script", (t) => t.desc("Execute a Frida JavaScript snippet inside an attached Frida session.").string("sessionId", "Session id returned by frida_attach").string("script", "Frida JavaScript to execute").required("sessionId", "script")),
|
|
21
22
|
tool("frida_detach", (t) => t.desc("Detach from a Frida session and clean up resources.").string("sessionId", "Session id returned by frida_attach").required("sessionId")),
|
|
22
23
|
tool("frida_list_sessions", (t) => t.desc("List all active Frida sessions.").query()),
|
|
23
|
-
tool("frida_generate_script", (t) => t.desc("Generate a Frida
|
|
24
|
-
tool("get_available_plugins", (t) => t.desc("List
|
|
24
|
+
tool("frida_generate_script", (t) => t.desc("Generate a Frida hook script from a template.").string("target", "Target binary or module name").string("template", "Hook template type: trace, intercept, replace, log").string("functionName", "Function name to generate hook for").required("target", "template")),
|
|
25
|
+
tool("get_available_plugins", (t) => t.desc("List installed binary analysis plugins.").query()),
|
|
25
26
|
tool("ghidra_decompile", (t) => t.desc("Decompile a specific function using Ghidra headless analysis.").string("binaryPath", "Path to the binary file").string("functionName", "Function name to decompile").required("binaryPath", "functionName")),
|
|
26
27
|
tool("ida_decompile", (t) => t.desc("Decompile a function using IDA Pro via plugin bridge.").string("binaryPath", "Path to the binary file").string("functionName", "Function name to decompile").required("binaryPath", "functionName")),
|
|
27
28
|
tool("jadx_decompile", (t) => t.desc("Decompile an APK class or method using JADX via plugin bridge.").string("apkPath", "Path to the APK file").string("className", "Fully qualified class name").string("methodName", "Method name to decompile").required("apkPath", "className")),
|
|
28
|
-
tool("unidbg_launch", (t) => t.desc("Launch
|
|
29
|
+
tool("unidbg_launch", (t) => t.desc("Launch a shared library in Unidbg.").string("soPath", "Path to the .so library file").string("arch", "Architecture: arm or arm64").required("soPath")),
|
|
29
30
|
tool("unidbg_call", (t) => t.desc("Call a JNI function in a running Unidbg emulator session.").string("sessionId", "Session id from unidbg_launch").string("functionName", "JNI function name to call").required("sessionId", "functionName")),
|
|
30
31
|
tool("unidbg_trace", (t) => t.desc("Get an execution trace from an Unidbg session (full/basic/instruction modes).").string("sessionId", "Session id from unidbg_launch").required("sessionId")),
|
|
31
32
|
tool("export_hook_script", (t) => t.desc("Export generated hook templates as a complete, runnable Frida script.").string("hookTemplates", "JSON array of hook template objects")),
|
|
@@ -36,122 +37,111 @@ const binaryInstrumentTools = [
|
|
|
36
37
|
//#region src/server/domains/binary-instrument/manifest.ts
|
|
37
38
|
const DOMAIN = "binary-instrument";
|
|
38
39
|
const DEP_KEY = "binaryInstrumentHandlers";
|
|
39
|
-
const
|
|
40
|
-
const bind = (invoke) => bindByDepKey(DEP_KEY, invoke);
|
|
41
|
-
async function ensure(ctx) {
|
|
42
|
-
const { BinaryInstrumentHandlers } = await import("./handlers-Cgyg6c0U.mjs");
|
|
43
|
-
const { GhidraAnalyzer, HookGenerator } = await import("./binary-instrument-CXfpx6fT.mjs").then((n) => n.t);
|
|
44
|
-
let handlers = ctx.getDomainInstance(DEP_KEY);
|
|
45
|
-
if (!handlers) {
|
|
46
|
-
handlers = new BinaryInstrumentHandlers(ctx, new GhidraAnalyzer(), new HookGenerator());
|
|
47
|
-
ctx.setDomainInstance(DEP_KEY, handlers);
|
|
48
|
-
}
|
|
49
|
-
return handlers;
|
|
50
|
-
}
|
|
51
|
-
const manifest = {
|
|
52
|
-
kind: "domain-manifest",
|
|
53
|
-
version: 1,
|
|
40
|
+
const registrations = defineMethodRegistrations({
|
|
54
41
|
domain: DOMAIN,
|
|
55
42
|
depKey: DEP_KEY,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
43
|
+
lookup: toolLookup(binaryInstrumentTools),
|
|
44
|
+
entries: [
|
|
45
|
+
{
|
|
46
|
+
tool: "binary_instrument_capabilities",
|
|
47
|
+
method: "handleBinaryInstrumentCapabilities"
|
|
48
|
+
},
|
|
59
49
|
{
|
|
60
|
-
tool:
|
|
61
|
-
|
|
62
|
-
bind: bind((handlers, args) => handlers.handleFridaAttach(args))
|
|
50
|
+
tool: "frida_attach",
|
|
51
|
+
method: "handleFridaAttach"
|
|
63
52
|
},
|
|
64
53
|
{
|
|
65
|
-
tool:
|
|
66
|
-
|
|
67
|
-
bind: bind((handlers, args) => handlers.handleFridaEnumerateModules(args))
|
|
54
|
+
tool: "frida_enumerate_modules",
|
|
55
|
+
method: "handleFridaEnumerateModules"
|
|
68
56
|
},
|
|
69
57
|
{
|
|
70
|
-
tool:
|
|
71
|
-
|
|
72
|
-
bind: bind((handlers, args) => handlers.handleGhidraAnalyze(args))
|
|
58
|
+
tool: "ghidra_analyze",
|
|
59
|
+
method: "handleGhidraAnalyze"
|
|
73
60
|
},
|
|
74
61
|
{
|
|
75
|
-
tool:
|
|
76
|
-
|
|
77
|
-
bind: bind((handlers, args) => handlers.handleGenerateHooks(args))
|
|
62
|
+
tool: "generate_hooks",
|
|
63
|
+
method: "handleGenerateHooks"
|
|
78
64
|
},
|
|
79
65
|
{
|
|
80
|
-
tool:
|
|
81
|
-
|
|
82
|
-
bind: bind((handlers, args) => handlers.handleUnidbgEmulate(args))
|
|
66
|
+
tool: "unidbg_emulate",
|
|
67
|
+
method: "handleUnidbgEmulate"
|
|
83
68
|
},
|
|
84
69
|
{
|
|
85
|
-
tool:
|
|
86
|
-
|
|
87
|
-
bind: bind((handlers, args) => handlers.handleFridaRunScript(args))
|
|
70
|
+
tool: "frida_run_script",
|
|
71
|
+
method: "handleFridaRunScript"
|
|
88
72
|
},
|
|
89
73
|
{
|
|
90
|
-
tool:
|
|
91
|
-
|
|
92
|
-
bind: bind((handlers, args) => handlers.handleFridaDetach(args))
|
|
74
|
+
tool: "frida_detach",
|
|
75
|
+
method: "handleFridaDetach"
|
|
93
76
|
},
|
|
94
77
|
{
|
|
95
|
-
tool:
|
|
96
|
-
|
|
97
|
-
bind: bind((handlers, args) => handlers.handleFridaListSessions(args))
|
|
78
|
+
tool: "frida_list_sessions",
|
|
79
|
+
method: "handleFridaListSessions"
|
|
98
80
|
},
|
|
99
81
|
{
|
|
100
|
-
tool:
|
|
101
|
-
|
|
102
|
-
bind: bind((handlers, args) => handlers.handleFridaGenerateScript(args))
|
|
82
|
+
tool: "frida_generate_script",
|
|
83
|
+
method: "handleFridaGenerateScript"
|
|
103
84
|
},
|
|
104
85
|
{
|
|
105
|
-
tool:
|
|
106
|
-
|
|
107
|
-
bind: bind((handlers, args) => handlers.handleGetAvailablePlugins(args))
|
|
86
|
+
tool: "get_available_plugins",
|
|
87
|
+
method: "handleGetAvailablePlugins"
|
|
108
88
|
},
|
|
109
89
|
{
|
|
110
|
-
tool:
|
|
111
|
-
|
|
112
|
-
bind: bind((handlers, args) => handlers.handleGhidraDecompile(args))
|
|
90
|
+
tool: "ghidra_decompile",
|
|
91
|
+
method: "handleGhidraDecompile"
|
|
113
92
|
},
|
|
114
93
|
{
|
|
115
|
-
tool:
|
|
116
|
-
|
|
117
|
-
bind: bind((handlers, args) => handlers.handleIdaDecompile(args))
|
|
94
|
+
tool: "ida_decompile",
|
|
95
|
+
method: "handleIdaDecompile"
|
|
118
96
|
},
|
|
119
97
|
{
|
|
120
|
-
tool:
|
|
121
|
-
|
|
122
|
-
bind: bind((handlers, args) => handlers.handleJadxDecompile(args))
|
|
98
|
+
tool: "jadx_decompile",
|
|
99
|
+
method: "handleJadxDecompile"
|
|
123
100
|
},
|
|
124
101
|
{
|
|
125
|
-
tool:
|
|
126
|
-
|
|
127
|
-
bind: bind((handlers, args) => handlers.handleUnidbgLaunch(args))
|
|
102
|
+
tool: "unidbg_launch",
|
|
103
|
+
method: "handleUnidbgLaunch"
|
|
128
104
|
},
|
|
129
105
|
{
|
|
130
|
-
tool:
|
|
131
|
-
|
|
132
|
-
bind: bind((handlers, args) => handlers.handleUnidbgCall(args))
|
|
106
|
+
tool: "unidbg_call",
|
|
107
|
+
method: "handleUnidbgCall"
|
|
133
108
|
},
|
|
134
109
|
{
|
|
135
|
-
tool:
|
|
136
|
-
|
|
137
|
-
bind: bind((handlers, args) => handlers.handleUnidbgTrace(args))
|
|
110
|
+
tool: "unidbg_trace",
|
|
111
|
+
method: "handleUnidbgTrace"
|
|
138
112
|
},
|
|
139
113
|
{
|
|
140
|
-
tool:
|
|
141
|
-
|
|
142
|
-
bind: bind((handlers, args) => handlers.handleExportHookScript(args))
|
|
114
|
+
tool: "export_hook_script",
|
|
115
|
+
method: "handleExportHookScript"
|
|
143
116
|
},
|
|
144
117
|
{
|
|
145
|
-
tool:
|
|
146
|
-
|
|
147
|
-
bind: bind((handlers, args) => handlers.handleFridaEnumerateFunctions(args))
|
|
118
|
+
tool: "frida_enumerate_functions",
|
|
119
|
+
method: "handleFridaEnumerateFunctions"
|
|
148
120
|
},
|
|
149
121
|
{
|
|
150
|
-
tool:
|
|
151
|
-
|
|
152
|
-
bind: bind((handlers, args) => handlers.handleFridaFindSymbols(args))
|
|
122
|
+
tool: "frida_find_symbols",
|
|
123
|
+
method: "handleFridaFindSymbols"
|
|
153
124
|
}
|
|
154
|
-
]
|
|
125
|
+
]
|
|
126
|
+
});
|
|
127
|
+
async function ensure(ctx) {
|
|
128
|
+
const { BinaryInstrumentHandlers } = await import("./handlers-CRyRWj2b.mjs");
|
|
129
|
+
const { GhidraAnalyzer, HookGenerator } = await import("./binary-instrument--V3MAhJ4.mjs").then((n) => n.t);
|
|
130
|
+
let handlers = ctx.getDomainInstance(DEP_KEY);
|
|
131
|
+
if (!handlers) {
|
|
132
|
+
handlers = new BinaryInstrumentHandlers(ctx, new GhidraAnalyzer(), new HookGenerator());
|
|
133
|
+
ctx.setDomainInstance(DEP_KEY, handlers);
|
|
134
|
+
}
|
|
135
|
+
return handlers;
|
|
136
|
+
}
|
|
137
|
+
const manifest = {
|
|
138
|
+
kind: "domain-manifest",
|
|
139
|
+
version: 1,
|
|
140
|
+
domain: DOMAIN,
|
|
141
|
+
depKey: DEP_KEY,
|
|
142
|
+
profiles: ["full"],
|
|
143
|
+
ensure,
|
|
144
|
+
registrations,
|
|
155
145
|
workflowRule: {
|
|
156
146
|
patterns: [/\b(frida|ghidra|ida|unidbg|jadx|binary|disassemb|decompil|dump\s?so)\b/i, /(binary|native|so|dll|elf|apk).*(analyze|hook|instrument|decompile)/i],
|
|
157
147
|
priority: 88,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as logger } from "./logger-Dh_xb7_2.mjs";
|
|
2
|
-
import { t as createProgressDebouncer } from "./EventBus-
|
|
3
|
-
import { n as toolLookup, t as ensureBrowserCore } from "./registry-
|
|
4
|
-
import { t as coreTools } from "./definitions-
|
|
2
|
+
import { t as createProgressDebouncer } from "./EventBus-DFKvADm3.mjs";
|
|
3
|
+
import { n as toolLookup, t as ensureBrowserCore } from "./registry-Bl8ZQW61.mjs";
|
|
4
|
+
import { t as coreTools } from "./definitions-CDOg_b-l.mjs";
|
|
5
5
|
//#region src/modules/deobfuscator/LLMDeobfuscator.ts
|
|
6
6
|
/** Maximum code snippet size sent to the LLM (chars) to avoid token overflow */
|
|
7
7
|
const MAX_CODE_SNIPPET = 2e3;
|
|
@@ -117,9 +117,9 @@ function bindWithProgress(invoke) {
|
|
|
117
117
|
return (deps) => {
|
|
118
118
|
const handler = deps[DEP_KEY];
|
|
119
119
|
return (args) => {
|
|
120
|
-
const
|
|
120
|
+
const meta = args._meta;
|
|
121
121
|
let onProgress;
|
|
122
|
-
if (
|
|
122
|
+
if (meta?.progressToken !== void 0 && globalContext) onProgress = createProgressDebouncer(globalContext.eventBus, meta.progressToken);
|
|
123
123
|
return invoke(handler, {
|
|
124
124
|
...args,
|
|
125
125
|
onProgress
|
|
@@ -129,8 +129,8 @@ function bindWithProgress(invoke) {
|
|
|
129
129
|
}
|
|
130
130
|
const b = bindWithProgress;
|
|
131
131
|
async function ensure(ctx) {
|
|
132
|
-
const { Deobfuscator, AdvancedDeobfuscator, ObfuscationDetector, CodeAnalyzer, CryptoDetector, HookManager } = await import("./modules-
|
|
133
|
-
const { CoreAnalysisHandlers } = await import("./analysis-
|
|
132
|
+
const { Deobfuscator, AdvancedDeobfuscator, ObfuscationDetector, CodeAnalyzer, CryptoDetector, HookManager } = await import("./modules-tZozf0LQ.mjs").then((n) => n.t);
|
|
133
|
+
const { CoreAnalysisHandlers } = await import("./analysis-BHeJW2Nb.mjs");
|
|
134
134
|
globalContext = ctx;
|
|
135
135
|
await ensureBrowserCore(ctx);
|
|
136
136
|
if (!ctx.deobfuscator || !ctx.advancedDeobfuscator || !ctx.obfuscationDetector || !ctx.analyzer || !ctx.cryptoDetector || !ctx.hookManager || !ctx.coreAnalysisHandlers) {
|
|
@@ -287,6 +287,26 @@ const manifest = {
|
|
|
287
287
|
})
|
|
288
288
|
}] };
|
|
289
289
|
})
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
tool: t("js_deobfuscate_jsvmp"),
|
|
293
|
+
domain: DOMAIN,
|
|
294
|
+
bind: b((h, a) => h.handleJsDeobfuscateJsvmp(a))
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
tool: t("js_deobfuscate_pipeline"),
|
|
298
|
+
domain: DOMAIN,
|
|
299
|
+
bind: b((h, a) => h.handleJsDeobfuscatePipeline(a))
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
tool: t("js_analyze_vm"),
|
|
303
|
+
domain: DOMAIN,
|
|
304
|
+
bind: b((h, a) => h.handleJsAnalyzeVm(a))
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
tool: t("js_solve_constraints"),
|
|
308
|
+
domain: DOMAIN,
|
|
309
|
+
bind: b((h, a) => h.handleJsSolveConstraints(a))
|
|
290
310
|
}
|
|
291
311
|
]
|
|
292
312
|
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
|
|
2
|
+
import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
|
|
3
|
+
import { t as antidebugTools } from "./definitions-DUE5gmdn.mjs";
|
|
4
|
+
//#region src/server/domains/antidebug/manifest.ts
|
|
5
|
+
const DOMAIN = "antidebug";
|
|
6
|
+
const DEP_KEY = "antidebugHandlers";
|
|
7
|
+
const registrations = defineMethodRegistrations({
|
|
8
|
+
domain: DOMAIN,
|
|
9
|
+
depKey: DEP_KEY,
|
|
10
|
+
lookup: toolLookup(antidebugTools),
|
|
11
|
+
entries: [{
|
|
12
|
+
tool: "antidebug_bypass",
|
|
13
|
+
method: "handleAntidebugBypass"
|
|
14
|
+
}, {
|
|
15
|
+
tool: "antidebug_detect_protections",
|
|
16
|
+
method: "handleAntiDebugDetectProtections"
|
|
17
|
+
}]
|
|
18
|
+
});
|
|
19
|
+
async function ensure(ctx) {
|
|
20
|
+
const { CodeCollector } = await import("./modules-tZozf0LQ.mjs").then((n) => n.t);
|
|
21
|
+
const { AntiDebugToolHandlers } = await import("./antidebug-BRKeyt27.mjs");
|
|
22
|
+
if (!ctx.collector) {
|
|
23
|
+
ctx.collector = new CodeCollector(ctx.config.puppeteer);
|
|
24
|
+
ctx.registerCaches();
|
|
25
|
+
}
|
|
26
|
+
if (!ctx.antidebugHandlers) ctx.antidebugHandlers = new AntiDebugToolHandlers(ctx.collector);
|
|
27
|
+
return ctx.antidebugHandlers;
|
|
28
|
+
}
|
|
29
|
+
const manifest = {
|
|
30
|
+
kind: "domain-manifest",
|
|
31
|
+
version: 1,
|
|
32
|
+
domain: DOMAIN,
|
|
33
|
+
depKey: DEP_KEY,
|
|
34
|
+
profiles: ["full"],
|
|
35
|
+
ensure,
|
|
36
|
+
registrations
|
|
37
|
+
};
|
|
38
|
+
//#endregion
|
|
39
|
+
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/syscall-hook/definitions.ts
|
|
5
5
|
const BACKEND_OPTIONS = [
|
|
6
6
|
"etw",
|
|
@@ -12,7 +12,7 @@ const SYSCALL_EVENT_SCHEMA = {
|
|
|
12
12
|
properties: {
|
|
13
13
|
timestamp: {
|
|
14
14
|
type: "number",
|
|
15
|
-
description: "
|
|
15
|
+
description: "Relative elapsed time in milliseconds since bpftrace start"
|
|
16
16
|
},
|
|
17
17
|
pid: {
|
|
18
18
|
type: "number",
|
|
@@ -44,7 +44,7 @@ const SYSCALL_EVENT_SCHEMA = {
|
|
|
44
44
|
]
|
|
45
45
|
};
|
|
46
46
|
const syscallHookToolDefinitions = [
|
|
47
|
-
tool("syscall_start_monitor", (t) => t.desc("Start syscall monitoring using ETW, strace, or dtrace.").enum("backend", BACKEND_OPTIONS, "Syscall capture backend").number("pid", "Optional PID to scope monitoring to a single process").required("backend")),
|
|
47
|
+
tool("syscall_start_monitor", (t) => t.desc("Start syscall monitoring using ETW, strace, or dtrace.").enum("backend", BACKEND_OPTIONS, "Syscall capture backend").number("pid", "Optional PID to scope monitoring to a single process").boolean("simulate", "Use synthetic events instead of a real system tracer", { default: false }).required("backend")),
|
|
48
48
|
tool("syscall_stop_monitor", (t) => t.desc("Stop syscall monitoring.").idempotent()),
|
|
49
49
|
tool("syscall_capture_events", (t) => t.desc("Capture syscall events from the active or last monitoring session.").prop("filter", {
|
|
50
50
|
type: "object",
|
|
@@ -63,61 +63,68 @@ const syscallHookToolDefinitions = [
|
|
|
63
63
|
}).query()),
|
|
64
64
|
tool("syscall_correlate_js", (t) => t.desc("Correlate captured syscalls with likely JavaScript functions.").array("syscallEvents", SYSCALL_EVENT_SCHEMA, "Syscall events to correlate").required("syscallEvents").query()),
|
|
65
65
|
tool("syscall_filter", (t) => t.desc("Filter captured syscall events by syscall name.").array("names", { type: "string" }, "Syscall names to keep").query()),
|
|
66
|
-
tool("syscall_get_stats", (t) => t.desc("Get syscall monitoring statistics.").query())
|
|
66
|
+
tool("syscall_get_stats", (t) => t.desc("Get syscall monitoring statistics.").query()),
|
|
67
|
+
tool("syscall_ebpf_trace", (t) => t.desc("Trace syscalls via Linux eBPF/bpftrace. Requires root or CAP_BPF.").number("pid", "Process ID to trace. 0 = trace all.", { default: 0 }).array("syscalls", { type: "string" }, "Specific syscall names to trace (empty = all)").number("durationSec", "Trace duration in seconds", {
|
|
68
|
+
default: 10,
|
|
69
|
+
minimum: 1,
|
|
70
|
+
maximum: 300
|
|
71
|
+
}).boolean("simulate", "Use synthetic events when bpftrace is unavailable", { default: false }).query())
|
|
67
72
|
];
|
|
68
73
|
//#endregion
|
|
69
74
|
//#region src/server/domains/syscall-hook/manifest.ts
|
|
70
75
|
const DOMAIN = "syscall-hook";
|
|
71
76
|
const DEP_KEY = "syscallHookHandlers";
|
|
72
|
-
const
|
|
73
|
-
const bindTool = (invoke) => bindByDepKey(DEP_KEY, invoke);
|
|
74
|
-
async function ensure(ctx) {
|
|
75
|
-
const { SyscallHookHandlers } = await import("./handlers-C67ktuRN.mjs");
|
|
76
|
-
const existing = ctx.getDomainInstance(DEP_KEY);
|
|
77
|
-
if (existing) return existing;
|
|
78
|
-
const handlers = new SyscallHookHandlers(void 0, void 0, ctx.eventBus);
|
|
79
|
-
ctx.setDomainInstance(DEP_KEY, handlers);
|
|
80
|
-
return handlers;
|
|
81
|
-
}
|
|
82
|
-
const manifest = {
|
|
83
|
-
kind: "domain-manifest",
|
|
84
|
-
version: 1,
|
|
77
|
+
const registrations = defineMethodRegistrations({
|
|
85
78
|
domain: DOMAIN,
|
|
86
79
|
depKey: DEP_KEY,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
registrations: [
|
|
80
|
+
lookup: toolLookup(syscallHookToolDefinitions),
|
|
81
|
+
entries: [
|
|
90
82
|
{
|
|
91
|
-
tool:
|
|
92
|
-
|
|
93
|
-
bind: bindTool((handlers, args) => handlers.handleSyscallStartMonitor(args))
|
|
83
|
+
tool: "syscall_start_monitor",
|
|
84
|
+
method: "handleSyscallStartMonitor"
|
|
94
85
|
},
|
|
95
86
|
{
|
|
96
|
-
tool:
|
|
97
|
-
|
|
98
|
-
bind: bindTool((handlers) => handlers.handleSyscallStopMonitor())
|
|
87
|
+
tool: "syscall_stop_monitor",
|
|
88
|
+
method: "handleSyscallStopMonitor"
|
|
99
89
|
},
|
|
100
90
|
{
|
|
101
|
-
tool:
|
|
102
|
-
|
|
103
|
-
bind: bindTool((handlers, args) => handlers.handleSyscallCaptureEvents(args))
|
|
91
|
+
tool: "syscall_capture_events",
|
|
92
|
+
method: "handleSyscallCaptureEvents"
|
|
104
93
|
},
|
|
105
94
|
{
|
|
106
|
-
tool:
|
|
107
|
-
|
|
108
|
-
bind: bindTool((handlers, args) => handlers.handleSyscallCorrelateJs(args))
|
|
95
|
+
tool: "syscall_correlate_js",
|
|
96
|
+
method: "handleSyscallCorrelateJs"
|
|
109
97
|
},
|
|
110
98
|
{
|
|
111
|
-
tool:
|
|
112
|
-
|
|
113
|
-
bind: bindTool((handlers, args) => handlers.handleSyscallFilter(args))
|
|
99
|
+
tool: "syscall_filter",
|
|
100
|
+
method: "handleSyscallFilter"
|
|
114
101
|
},
|
|
115
102
|
{
|
|
116
|
-
tool:
|
|
117
|
-
|
|
118
|
-
|
|
103
|
+
tool: "syscall_get_stats",
|
|
104
|
+
method: "handleSyscallGetStats"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
tool: "syscall_ebpf_trace",
|
|
108
|
+
method: "handleSyscallEbpfTrace"
|
|
119
109
|
}
|
|
120
|
-
]
|
|
110
|
+
]
|
|
111
|
+
});
|
|
112
|
+
async function ensure(ctx) {
|
|
113
|
+
const { SyscallHookHandlers } = await import("./handlers-4jmR0nMs.mjs");
|
|
114
|
+
const existing = ctx.getDomainInstance(DEP_KEY);
|
|
115
|
+
if (existing) return existing;
|
|
116
|
+
const handlers = new SyscallHookHandlers(void 0, void 0, ctx.eventBus);
|
|
117
|
+
ctx.setDomainInstance(DEP_KEY, handlers);
|
|
118
|
+
return handlers;
|
|
119
|
+
}
|
|
120
|
+
const manifest = {
|
|
121
|
+
kind: "domain-manifest",
|
|
122
|
+
version: 1,
|
|
123
|
+
domain: DOMAIN,
|
|
124
|
+
depKey: DEP_KEY,
|
|
125
|
+
profiles: ["full"],
|
|
126
|
+
ensure,
|
|
127
|
+
registrations,
|
|
121
128
|
workflowRule: {
|
|
122
129
|
patterns: [/\b(syscall|etw|strace|dtrace|kernel|system\s?call)\b/i, /(syscall|kernel).*(trace|monitor|capture|filter)/i],
|
|
123
130
|
priority: 78,
|
|
@@ -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
|
import { resolve } from "node:path";
|
|
5
5
|
//#region src/server/domains/evidence/definitions.ts
|
|
6
6
|
const evidenceTools = [
|
|
@@ -16,12 +16,29 @@ const evidenceTools = [
|
|
|
16
16
|
//#region src/server/domains/evidence/manifest.ts
|
|
17
17
|
const DOMAIN = "evidence";
|
|
18
18
|
const DEP_KEY = "evidenceHandlers";
|
|
19
|
-
const
|
|
20
|
-
|
|
19
|
+
const registrations = defineMethodRegistrations({
|
|
20
|
+
domain: DOMAIN,
|
|
21
|
+
depKey: DEP_KEY,
|
|
22
|
+
lookup: toolLookup(evidenceTools),
|
|
23
|
+
entries: [
|
|
24
|
+
{
|
|
25
|
+
tool: "evidence_query",
|
|
26
|
+
method: "handleQueryDispatch"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
tool: "evidence_export",
|
|
30
|
+
method: "handleExportDispatch"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
tool: "evidence_chain",
|
|
34
|
+
method: "handleChain"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
});
|
|
21
38
|
async function ensure(ctx) {
|
|
22
|
-
const { ReverseEvidenceGraph } = await import("./ReverseEvidenceGraph-
|
|
23
|
-
const { EvidenceGraphBridge } = await import("./EvidenceGraphBridge-
|
|
24
|
-
const { EvidenceHandlers } = await import("./handlers-
|
|
39
|
+
const { ReverseEvidenceGraph } = await import("./ReverseEvidenceGraph-C02-gXOh.mjs").then((n) => n.t);
|
|
40
|
+
const { EvidenceGraphBridge } = await import("./EvidenceGraphBridge-318Oi0Lf.mjs");
|
|
41
|
+
const { EvidenceHandlers } = await import("./handlers-Bndn6QvE.mjs");
|
|
25
42
|
let graph = ctx.getDomainInstance("evidenceGraph");
|
|
26
43
|
if (!graph) {
|
|
27
44
|
graph = new ReverseEvidenceGraph();
|
|
@@ -57,23 +74,7 @@ const manifest = {
|
|
|
57
74
|
tools: ["evidence_query", "evidence_export"],
|
|
58
75
|
hint: "Evidence graph: query by URL/function/scriptId → get provenance chain → export as JSON or Markdown report"
|
|
59
76
|
},
|
|
60
|
-
registrations
|
|
61
|
-
{
|
|
62
|
-
tool: t("evidence_query"),
|
|
63
|
-
domain: DOMAIN,
|
|
64
|
-
bind: b(async (h, a) => h.handleQueryDispatch(a))
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
tool: t("evidence_export"),
|
|
68
|
-
domain: DOMAIN,
|
|
69
|
-
bind: b(async (h, a) => h.handleExportDispatch(a))
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
tool: t("evidence_chain"),
|
|
73
|
-
domain: DOMAIN,
|
|
74
|
-
bind: b(async (h, a) => h.handleChain(a))
|
|
75
|
-
}
|
|
76
|
-
]
|
|
77
|
+
registrations
|
|
77
78
|
};
|
|
78
79
|
//#endregion
|
|
79
80
|
export { manifest as default };
|