@creeperhost/modlens-mcp 1.6.27 → 1.6.29
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 +11 -5
- package/dist/cli.js +1 -1
- package/dist/generated/sqlite/internal/class.js +5 -5
- package/dist/generated/sqlite/internal/class.js.map +1 -1
- package/dist/generated/sqlite/internal/prismaNamespace.d.ts +1 -0
- package/dist/generated/sqlite/internal/prismaNamespace.d.ts.map +1 -1
- package/dist/generated/sqlite/internal/prismaNamespace.js +1 -0
- package/dist/generated/sqlite/internal/prismaNamespace.js.map +1 -1
- package/dist/generated/sqlite/internal/prismaNamespaceBrowser.d.ts +1 -0
- package/dist/generated/sqlite/internal/prismaNamespaceBrowser.d.ts.map +1 -1
- package/dist/generated/sqlite/internal/prismaNamespaceBrowser.js +1 -0
- package/dist/generated/sqlite/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/generated/sqlite/models/Mod.d.ts +45 -1
- package/dist/generated/sqlite/models/Mod.d.ts.map +1 -1
- package/dist/hosted-mod-license.d.ts.map +1 -1
- package/dist/hosted-mod-license.js +23 -7
- package/dist/hosted-mod-license.js.map +1 -1
- package/dist/hosted-oauth.d.ts +3 -0
- package/dist/hosted-oauth.d.ts.map +1 -1
- package/dist/hosted-oauth.js +75 -27
- package/dist/hosted-oauth.js.map +1 -1
- package/dist/hosted-policy.d.ts.map +1 -1
- package/dist/hosted-policy.js +3 -1
- package/dist/hosted-policy.js.map +1 -1
- package/dist/hosted-tool-catalog.js +1 -1
- package/dist/hosted-tool-catalog.js.map +1 -1
- package/dist/mappings.d.ts +22 -0
- package/dist/mappings.d.ts.map +1 -1
- package/dist/mappings.js +173 -3
- package/dist/mappings.js.map +1 -1
- package/dist/mod-reference.d.ts +24 -0
- package/dist/mod-reference.d.ts.map +1 -0
- package/dist/mod-reference.js +199 -0
- package/dist/mod-reference.js.map +1 -0
- package/dist/repositories/mod.d.ts +3 -0
- package/dist/repositories/mod.d.ts.map +1 -1
- package/dist/repositories/mod.js +19 -2
- package/dist/repositories/mod.js.map +1 -1
- package/dist/runtime/modlens-agent.jar +0 -0
- package/dist/server.js +44 -7
- package/dist/server.js.map +1 -1
- package/dist/sqlite-schema.d.ts.map +1 -1
- package/dist/sqlite-schema.js +7 -0
- package/dist/sqlite-schema.js.map +1 -1
- package/dist/tools/diagnostics.d.ts.map +1 -1
- package/dist/tools/diagnostics.js +76 -0
- package/dist/tools/diagnostics.js.map +1 -1
- package/dist/tools/ingest.d.ts.map +1 -1
- package/dist/tools/ingest.js +3 -0
- package/dist/tools/ingest.js.map +1 -1
- package/dist/tools/mixin-scan.d.ts +1 -0
- package/dist/tools/mixin-scan.d.ts.map +1 -1
- package/package.json +1 -1
- package/prisma/backends/schema.sqlite.prisma +2 -0
- package/prisma/backends/template.db +0 -0
- package/prisma/schema.prisma +2 -0
- package/scripts/test-hosted-oauth.mjs +52 -8
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/** Resolve a ModLens mod reference to one verified JAR. */
|
|
2
|
+
import AdmZip from "adm-zip";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
4
|
+
import { fileSha1 } from "./security.js";
|
|
5
|
+
import { inspectJarLoaders, parseJar } from "./processor.js";
|
|
6
|
+
import { getMod, getModsBatch, providerVersions, searchMods } from "./modpacks-ch.js";
|
|
7
|
+
import { downloadModVersion } from "./mod-artifacts.js";
|
|
8
|
+
import { findModById, findModBySha1, findModsByExactModId, updateMod } from "./repositories/mod.js";
|
|
9
|
+
import { ingestMod } from "./tools/ingest.js";
|
|
10
|
+
/** Safe, actionable identity failures that may be returned to hosted callers. */
|
|
11
|
+
export class ModReferenceError extends Error {
|
|
12
|
+
}
|
|
13
|
+
const pending = new Map();
|
|
14
|
+
const ingestPending = new Map();
|
|
15
|
+
const normalized = (value) => value.toLowerCase().replace(/[^a-z0-9]+/g, "");
|
|
16
|
+
const isNumeric = (value) => /^\d+$/.test(value);
|
|
17
|
+
function classInJar(jarPath, className) {
|
|
18
|
+
if (!className)
|
|
19
|
+
return true;
|
|
20
|
+
const path = `${className.replace(/\.class$/, "").replace(/\./g, "/")}.class`;
|
|
21
|
+
try {
|
|
22
|
+
return new AdmZip(jarPath).getEntry(path) !== null;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function matchesHints(mod, ref) {
|
|
29
|
+
return (!ref.mcVersion || mod.mcVersion === ref.mcVersion)
|
|
30
|
+
&& (!ref.modVersion || mod.version === ref.modVersion)
|
|
31
|
+
&& (!ref.loader || mod.loader.toLowerCase() === ref.loader.toLowerCase());
|
|
32
|
+
}
|
|
33
|
+
async function ensureSha1(mod) {
|
|
34
|
+
const sha1 = await fileSha1(mod.jarPath);
|
|
35
|
+
if (mod.sha1?.toLowerCase() !== sha1)
|
|
36
|
+
await updateMod(mod.id, { sha1 });
|
|
37
|
+
return sha1;
|
|
38
|
+
}
|
|
39
|
+
function ambiguous(label, versions) {
|
|
40
|
+
const candidates = versions.slice(0, 8).map(v => `${v.name} [${v.sha1 || v.id}]`).join(", ");
|
|
41
|
+
throw new ModReferenceError(`Ambiguous mod ${label}; provide the JAR SHA-1. Candidates: ${candidates}`);
|
|
42
|
+
}
|
|
43
|
+
async function stageRemoteVersion(projectId, version, ref) {
|
|
44
|
+
if (!/^[a-f0-9]{40}$/i.test(version.sha1 ?? ""))
|
|
45
|
+
throw new ModReferenceError(`modpacks.ch has no SHA-1 for ${version.name}`);
|
|
46
|
+
if (ref.modVersion && version.version !== ref.modVersion)
|
|
47
|
+
throw new ModReferenceError("SHA-1 file does not match the requested mod version");
|
|
48
|
+
if (ref.mcVersion && version.targets?.some(target => target.type === "game")
|
|
49
|
+
&& !version.targets.some(target => target.type === "game" && target.version === ref.mcVersion)) {
|
|
50
|
+
throw new ModReferenceError("SHA-1 file does not match the requested Minecraft version");
|
|
51
|
+
}
|
|
52
|
+
const jarPath = await downloadModVersion(projectId, version);
|
|
53
|
+
if (await fileSha1(jarPath) !== version.sha1.toLowerCase())
|
|
54
|
+
throw new ModReferenceError(`SHA-1 mismatch for ${version.name}`);
|
|
55
|
+
if (ref.sha1 && version.sha1.toLowerCase() !== ref.sha1.toLowerCase())
|
|
56
|
+
throw new ModReferenceError("Resolved JAR SHA-1 differs from the requested hash");
|
|
57
|
+
const manifest = await parseJar(jarPath);
|
|
58
|
+
if (ref.loader && !(await inspectJarLoaders(jarPath)).includes(ref.loader.toLowerCase())) {
|
|
59
|
+
throw new ModReferenceError("SHA-1 file does not match the requested loader");
|
|
60
|
+
}
|
|
61
|
+
if (typeof ref.modId === "string" && manifest.modId.toLowerCase() !== ref.modId.toLowerCase()) {
|
|
62
|
+
throw new ModReferenceError(`JAR declares mod ID ${manifest.modId}, not ${ref.modId}`);
|
|
63
|
+
}
|
|
64
|
+
if (!classInJar(jarPath, ref.className))
|
|
65
|
+
throw new ModReferenceError(`Class ${ref.className} is absent from the resolved JAR`);
|
|
66
|
+
return { jarPath, version: version.version };
|
|
67
|
+
}
|
|
68
|
+
async function findRemote(ref) {
|
|
69
|
+
const id = ref.modId;
|
|
70
|
+
if (typeof id !== "string")
|
|
71
|
+
throw new ModReferenceError(`Mod not found: ${String(id ?? ref.dbId ?? "")}`);
|
|
72
|
+
if (ref.sha1) {
|
|
73
|
+
const project = await getMod(ref.sha1);
|
|
74
|
+
if (!project)
|
|
75
|
+
throw new ModReferenceError(`JAR SHA-1 ${ref.sha1} was not found on modpacks.ch`);
|
|
76
|
+
const versions = await providerVersions("mod", project.id);
|
|
77
|
+
const match = versions.find(v => v.sha1?.toLowerCase() === ref.sha1.toLowerCase());
|
|
78
|
+
if (!match)
|
|
79
|
+
throw new ModReferenceError(`modpacks.ch did not identify a file matching SHA-1 ${ref.sha1}`);
|
|
80
|
+
return stageRemoteVersion(project.id, match, ref);
|
|
81
|
+
}
|
|
82
|
+
const found = await searchMods(id, 20);
|
|
83
|
+
const projects = await getModsBatch(found?.mods ?? []);
|
|
84
|
+
const wanted = normalized(id);
|
|
85
|
+
const exact = projects.filter(project => [project.slug, project.name, String(project.id)]
|
|
86
|
+
.some(value => value && normalized(value) === wanted));
|
|
87
|
+
if (exact.length !== 1) {
|
|
88
|
+
if (!exact.length)
|
|
89
|
+
throw new ModReferenceError(`Mod ${id} was not found on modpacks.ch; provide a JAR SHA-1`);
|
|
90
|
+
ambiguous(id, exact.map(project => ({ id: project.id, name: project.name })));
|
|
91
|
+
}
|
|
92
|
+
const project = exact[0];
|
|
93
|
+
const versions = (await providerVersions("mod", project.id, { mcVersion: ref.mcVersion, loader: ref.loader }))
|
|
94
|
+
.filter(v => /^[a-f0-9]{40}$/i.test(v.sha1 ?? "") && (!ref.modVersion || v.version === ref.modVersion));
|
|
95
|
+
if (versions.length === 1)
|
|
96
|
+
return stageRemoteVersion(project.id, versions[0], ref);
|
|
97
|
+
if (ref.className && versions.length > 1 && versions.length <= 8) {
|
|
98
|
+
const matches = [];
|
|
99
|
+
for (const version of versions) {
|
|
100
|
+
try {
|
|
101
|
+
matches.push(await stageRemoteVersion(project.id, version, ref));
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
if (!/absent from the resolved JAR/.test(String(error)))
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (matches.length === 1)
|
|
109
|
+
return matches[0];
|
|
110
|
+
}
|
|
111
|
+
if (!versions.length)
|
|
112
|
+
throw new ModReferenceError(`No compatible JAR for ${id} was found on modpacks.ch`);
|
|
113
|
+
ambiguous(id, versions);
|
|
114
|
+
}
|
|
115
|
+
async function stageUnshared(ref) {
|
|
116
|
+
if (ref.sha1 && !/^[a-f0-9]{40}$/i.test(ref.sha1))
|
|
117
|
+
throw new ModReferenceError("sha1 must be a 40-character hexadecimal JAR SHA-1");
|
|
118
|
+
const id = ref.dbId ?? ref.modId;
|
|
119
|
+
if (id === undefined || id === "")
|
|
120
|
+
throw new ModReferenceError("modId or dbId is required");
|
|
121
|
+
const numberId = typeof id === "number" ? id : isNumeric(id) ? Number(id) : undefined;
|
|
122
|
+
if (numberId !== undefined) {
|
|
123
|
+
const mod = await findModById(numberId);
|
|
124
|
+
if (!mod)
|
|
125
|
+
throw new ModReferenceError(`Mod #${numberId} not found`);
|
|
126
|
+
if (typeof ref.modId === "string" && !isNumeric(ref.modId) && mod.modId.toLowerCase() !== ref.modId.toLowerCase()) {
|
|
127
|
+
throw new ModReferenceError(`Selected JAR declares mod ID ${mod.modId}, not ${ref.modId}`);
|
|
128
|
+
}
|
|
129
|
+
if (!existsSync(mod.jarPath) || !matchesHints(mod, ref) || !classInJar(mod.jarPath, ref.className)) {
|
|
130
|
+
throw new ModReferenceError("Selected JAR is unavailable or does not match the requested version, loader, or class");
|
|
131
|
+
}
|
|
132
|
+
if (ref.sha1 && await ensureSha1(mod) !== ref.sha1.toLowerCase())
|
|
133
|
+
throw new ModReferenceError("SHA-1 does not match the selected database mod");
|
|
134
|
+
return { jarPath: mod.jarPath, mod, version: mod.version };
|
|
135
|
+
}
|
|
136
|
+
const name = String(id);
|
|
137
|
+
let local = (await findModsByExactModId(name)).filter(mod => matchesHints(mod, ref) && existsSync(mod.jarPath));
|
|
138
|
+
if (ref.sha1) {
|
|
139
|
+
const indexed = await findModBySha1(ref.sha1.toLowerCase());
|
|
140
|
+
if (indexed && indexed.modId.toLowerCase() !== name.toLowerCase())
|
|
141
|
+
throw new ModReferenceError(`SHA-1 belongs to ${indexed.modId}, not ${name}`);
|
|
142
|
+
if (indexed && matchesHints(indexed, ref) && existsSync(indexed.jarPath)
|
|
143
|
+
&& await ensureSha1(indexed) === ref.sha1.toLowerCase())
|
|
144
|
+
local = [indexed];
|
|
145
|
+
else
|
|
146
|
+
local = (await Promise.all(local.map(async (mod) => await ensureSha1(mod) === ref.sha1.toLowerCase() ? mod : null)))
|
|
147
|
+
.filter((mod) => mod !== null);
|
|
148
|
+
}
|
|
149
|
+
local = local.filter(mod => existsSync(mod.jarPath) && classInJar(mod.jarPath, ref.className));
|
|
150
|
+
if (local.length === 1)
|
|
151
|
+
return { jarPath: local[0].jarPath, mod: local[0], version: local[0].version };
|
|
152
|
+
if (local.length > 1)
|
|
153
|
+
ambiguous(name, local.map(mod => ({ id: mod.id, name: `${mod.modId} ${mod.version}`, sha1: mod.sha1 ?? undefined })));
|
|
154
|
+
return findRemote({ ...ref, modId: name });
|
|
155
|
+
}
|
|
156
|
+
/** Stage only: callers may inspect a hosted license before ingestion. */
|
|
157
|
+
export async function stageModReference(ref) {
|
|
158
|
+
const key = JSON.stringify([ref.dbId, ref.modId, ref.sha1?.toLowerCase(), ref.mcVersion, ref.modVersion, ref.loader, ref.className]);
|
|
159
|
+
const existing = pending.get(key);
|
|
160
|
+
if (existing)
|
|
161
|
+
return existing;
|
|
162
|
+
const task = stageUnshared(ref);
|
|
163
|
+
pending.set(key, task);
|
|
164
|
+
try {
|
|
165
|
+
return await task;
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
pending.delete(key);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
export async function ingestStagedMod(staged) {
|
|
172
|
+
if (staged.mod)
|
|
173
|
+
return staged.mod;
|
|
174
|
+
const existingTask = ingestPending.get(staged.jarPath);
|
|
175
|
+
if (existingTask)
|
|
176
|
+
return existingTask;
|
|
177
|
+
const task = (async () => {
|
|
178
|
+
const result = await ingestMod(staged.jarPath, true);
|
|
179
|
+
if ("mod" in result && result.mod)
|
|
180
|
+
return result.mod;
|
|
181
|
+
if ("existingDbId" in result) {
|
|
182
|
+
const existing = await findModById(result.existingDbId);
|
|
183
|
+
if (existing && await fileSha1(existing.jarPath) === await fileSha1(staged.jarPath))
|
|
184
|
+
return existing;
|
|
185
|
+
}
|
|
186
|
+
throw new ModReferenceError(`Resolved JAR could not be indexed: ${"message" in result ? result.message : result.status}`);
|
|
187
|
+
})();
|
|
188
|
+
ingestPending.set(staged.jarPath, task);
|
|
189
|
+
try {
|
|
190
|
+
return await task;
|
|
191
|
+
}
|
|
192
|
+
finally {
|
|
193
|
+
ingestPending.delete(staged.jarPath);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
export async function resolveModReference(ref) {
|
|
197
|
+
return ingestStagedMod(await stageModReference(ref));
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=mod-reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod-reference.js","sourceRoot":"","sources":["../src/mod-reference.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,9 @@ export declare function mcVersionWhere(mcVersion: string): Promise<Prisma.ModWhe
|
|
|
56
56
|
export declare function findModById(id: number): Promise<Mod | null>;
|
|
57
57
|
export declare function findModByJarPath(jarPath: string): Promise<Mod | null>;
|
|
58
58
|
export declare function findModByModId(modId: string): Promise<Mod | null>;
|
|
59
|
+
/** Exact mod ID candidates; LIKE supplies ASCII case folding on SQLite. */
|
|
60
|
+
export declare function findModsByExactModId(modId: string): Promise<Mod[]>;
|
|
61
|
+
export declare function findModBySha1(sha1: string): Promise<Mod | null>;
|
|
59
62
|
export declare function findModByModIdLike(modId: string): Promise<Mod | null>;
|
|
60
63
|
/** Resolve mod by string or number. Numeric strings try findById first. */
|
|
61
64
|
export declare function resolveModRef(ref: string | number): Promise<Mod | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/repositories/mod.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAQlD,qEAAqE;AACrE,MAAM,MAAM,MAAM,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IACjF,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,WAAW,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAChE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;CACpF,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,SAAS,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAChE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;CAC/E,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IACnD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;CAChD,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAIrF;AAID,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAGjE;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAG3E;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAGvE;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAG3E;AAED,2EAA2E;AAC3E,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/repositories/mod.ts"],"names":[],"mappings":"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"}
|
package/dist/repositories/mod.js
CHANGED
|
@@ -32,6 +32,16 @@ export async function findModByModId(modId) {
|
|
|
32
32
|
const db = await getDb();
|
|
33
33
|
return db.mod.findFirst({ where: { modId } });
|
|
34
34
|
}
|
|
35
|
+
/** Exact mod ID candidates; LIKE supplies ASCII case folding on SQLite. */
|
|
36
|
+
export async function findModsByExactModId(modId) {
|
|
37
|
+
const db = await getDb();
|
|
38
|
+
const rows = await db.mod.findMany({ where: { modId: { contains: modId, ...caseInsensitive() } } });
|
|
39
|
+
return rows.filter(row => row.modId.toLowerCase() === modId.toLowerCase());
|
|
40
|
+
}
|
|
41
|
+
export async function findModBySha1(sha1) {
|
|
42
|
+
const db = await getDb();
|
|
43
|
+
return db.mod.findFirst({ where: { sha1 } });
|
|
44
|
+
}
|
|
35
45
|
export async function findModByModIdLike(modId) {
|
|
36
46
|
const db = await getDb();
|
|
37
47
|
return db.mod.findFirst({ where: { modId: { contains: modId } } });
|
|
@@ -48,7 +58,10 @@ export async function resolveModRef(ref) {
|
|
|
48
58
|
if (byId)
|
|
49
59
|
return byId;
|
|
50
60
|
}
|
|
51
|
-
|
|
61
|
+
const matches = await findModsByExactModId(ref);
|
|
62
|
+
if (matches.length > 1)
|
|
63
|
+
throw new Error(`Multiple releases of ${ref} are indexed; specify a SHA-1 or database ID.`);
|
|
64
|
+
return matches[0] ?? null;
|
|
52
65
|
}
|
|
53
66
|
/** Slim resolveModRef — returns only id, modId, displayName, version, jarPath. */
|
|
54
67
|
export async function resolveModRefSlim(ref) {
|
|
@@ -65,7 +78,11 @@ export async function resolveModRefSlim(ref) {
|
|
|
65
78
|
if (byId)
|
|
66
79
|
return byId;
|
|
67
80
|
}
|
|
68
|
-
|
|
81
|
+
const matches = await db.mod.findMany({ where: { modId: { contains: String(ref), ...caseInsensitive() } }, select: sel });
|
|
82
|
+
const exact = matches.filter(row => row.modId.toLowerCase() === String(ref).toLowerCase());
|
|
83
|
+
if (exact.length > 1)
|
|
84
|
+
throw new Error(`Multiple releases of ${ref} are indexed; specify a SHA-1 or database ID.`);
|
|
85
|
+
return exact[0] ?? null;
|
|
69
86
|
}
|
|
70
87
|
export async function findModByDupKey(modId, version, mcVersion, loader) {
|
|
71
88
|
const db = await getDb();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/repositories/mod.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/repositories/mod.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/dist/server.js
CHANGED
|
@@ -47,6 +47,7 @@ import { hostedToolMetadata } from "./hosted-tool-catalog.js";
|
|
|
47
47
|
import { HostedOAuth, HostedOAuthError } from "./hosted-oauth.js";
|
|
48
48
|
import { isRfc1918Peer } from "./private-network.js";
|
|
49
49
|
import { reviewHostedMod, localModPlan } from "./hosted-mod-license.js";
|
|
50
|
+
import { resolveModReference } from "./mod-reference.js";
|
|
50
51
|
// Load .env — try ~/.modlens/.env first (npx/installed users), then local .env (git-clone users)
|
|
51
52
|
import { readFileSync, existsSync } from "fs";
|
|
52
53
|
import { join, dirname } from "path";
|
|
@@ -173,8 +174,33 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
173
174
|
});
|
|
174
175
|
const limits = principal === undefined ? undefined : hostedLimits();
|
|
175
176
|
function registerTool(name, description, schema, handler) {
|
|
177
|
+
const runReader = async (args, extra) => {
|
|
178
|
+
const action = String(args.action ?? args.report ?? "");
|
|
179
|
+
const readers = new Set(["mod", "mod_bytecode", "mod_mixins", "mod_jar", "mod_data", "mod_tags", "gradle", "reports", "pack_tools", "mc_data"]);
|
|
180
|
+
const scoped = name === "mod" ? ["get", "dependencies", "decompile", "decompile_status", "decompile_class",
|
|
181
|
+
"source", "search_source", "search_indexed", "search_semantic", "graph_query", "graph_report",
|
|
182
|
+
"graph_status", "embed_status", "get_paths", "index_fts", "index_semantic"].includes(action)
|
|
183
|
+
: name === "mod_bytecode" ? !["diff", "diff_detailed", "cache_diff", "cross_refs"].includes(action)
|
|
184
|
+
: name === "mod_mixins" ? ["targets", "resolve", "at_entries", "aw_entries"].includes(action)
|
|
185
|
+
: name === "mod_data" ? ["list", "get"].includes(action)
|
|
186
|
+
: name === "mod_tags" ? ["index", "mod_list"].includes(action)
|
|
187
|
+
: name === "gradle" ? action === "get_files"
|
|
188
|
+
: name === "pack_tools" ? action === "sidedness"
|
|
189
|
+
: name === "mc_data" ? action === "entity_attributes"
|
|
190
|
+
: name === "reports" ? action === "mod_overview" : true;
|
|
191
|
+
if (readers.has(name) && scoped && (args.modId !== undefined || args.dbId !== undefined)) {
|
|
192
|
+
const mod = await resolveModReference({ modId: args.modId,
|
|
193
|
+
dbId: args.dbId, sha1: args.sha1,
|
|
194
|
+
mcVersion: args.mcVersion, modVersion: args.modVersion,
|
|
195
|
+
loader: args.loader,
|
|
196
|
+
className: ["decompile_class", "bytecode", "class_members"].includes(action)
|
|
197
|
+
? args.className : undefined });
|
|
198
|
+
args = { ...args, modId: mod.id, dbId: mod.id };
|
|
199
|
+
}
|
|
200
|
+
return handler(args, extra);
|
|
201
|
+
};
|
|
176
202
|
if (!limits || principal === undefined) {
|
|
177
|
-
server.tool(name, description, schema,
|
|
203
|
+
server.tool(name, description, schema, safe(runReader));
|
|
178
204
|
return;
|
|
179
205
|
}
|
|
180
206
|
const actions = hostedActions(name, allowMinecraftSource);
|
|
@@ -198,7 +224,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
198
224
|
const publicDescription = `${metadata.description} Hosted actions: ${actions.filter(Boolean).join(", ") || "analysis"}. Responses and cumulative usage are bounded; use focused queries and source ranges.`;
|
|
199
225
|
server.registerTool(name, { title: metadata.title, description: publicDescription,
|
|
200
226
|
inputSchema: publicSchema, annotations: metadata.annotations }, (async (args, extra) => runHostedTool(name, args, principal, limits, hostedBudget, async (bounded) => {
|
|
201
|
-
const result = await
|
|
227
|
+
const result = await runReader(bounded, extra);
|
|
202
228
|
if (name === "mc_source" && (!result.isError || ["search_indexed", "search_code"].includes(String(bounded.action)))) {
|
|
203
229
|
for (const version of [bounded.version, bounded.mcVersion, bounded.versionA, bounded.versionB]) {
|
|
204
230
|
scheduleHostedMinecraftVersionIndex(version);
|
|
@@ -214,6 +240,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
214
240
|
"Provide modId/dbId or projectKey+environmentId+className. Local plans must run on the user's computer; never claim a plan has executed.", {
|
|
215
241
|
action: z.enum(["check", "local_plan"]),
|
|
216
242
|
modId: z.union([z.string(), z.number()]).optional(), dbId: z.number().int().positive().optional(),
|
|
243
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1 (40 hexadecimal characters)"),
|
|
217
244
|
projectKey: z.string().optional(), environmentId: z.string().optional(), className: z.string().optional(),
|
|
218
245
|
operation: z.enum(["source", "bytecode"]).optional(),
|
|
219
246
|
startLine: z.number().int().positive().optional(), maxLines: z.number().int().positive().max(10000).optional(),
|
|
@@ -247,7 +274,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
247
274
|
return out(result);
|
|
248
275
|
}));
|
|
249
276
|
// ── 1. mod ────────────────────────────────────────────────────────────────────
|
|
250
|
-
registerTool("mod", "Mod database, decompile, and source browser. action=ingest|list|get|search|stats|dependencies|dep_graph|version_conflicts|source_urls|decompile|decompile_status|decompile_class|source|search_source|reindex|batch_ingest|batch_decompile|refresh_metadata|index_fts|search_indexed|index_semantic|search_semantic|get_paths|delete|graph_build|graph_status|graph_query|graph_report|graph_enrich_next|graph_enrich_submit|graph_download|graph_export|graph_submit|embed_export|embed_download|embed_download_all|embed_status|embed_submit. index_fts/search_indexed: BM25-ranked FTS over source code. index_semantic/search_semantic: vector search (requires Ollama). refresh_metadata: re-parse all mods with degraded metadata (filename/@Mod annotation) and upgrade if a higher-quality manifest is found. graph_enrich_next: get next un-enriched chunk for chat enrichment. graph_enrich_submit: submit enriched nodes/edges (chunkIndex, nodes, edges). graph_download: download pre-built graph from registry (targetType=mod|vanilla|modloader with targetId/targetVersion). graph_export: export a mod's local graph as a shareable gzipped bundle. graph_submit: validate an exported bundle and open a draft GitHub registry PR (bundlePath required). embed_export/embed_download/embed_status: targetType-aware embeddings actions for mod/vanilla/modloader. embed_download: downloads registry embeddings; protects local embeddings by default (use force=true to overwrite). embed_download_all: download embeddings for all mods. embed_submit: validate an exported bundle and open a draft GitHub registry PR (bundlePath required). Auto-behaviors: decompile_status auto-queues embedding (MODLENS_AUTO_EMBED) and graph build (MODLENS_AUTO_GRAPH). Pass autoEmbed/autoGraph to override per-call.", {
|
|
277
|
+
registerTool("mod", "Mod database, decompile, and source browser. Mod readers accept optional sha1 for an exact JAR and can resolve an unambiguous missing mod through modpacks.ch. action=ingest|list|get|search|stats|dependencies|dep_graph|version_conflicts|source_urls|decompile|decompile_status|decompile_class|source|search_source|reindex|batch_ingest|batch_decompile|refresh_metadata|index_fts|search_indexed|index_semantic|search_semantic|get_paths|delete|graph_build|graph_status|graph_query|graph_report|graph_enrich_next|graph_enrich_submit|graph_download|graph_export|graph_submit|embed_export|embed_download|embed_download_all|embed_status|embed_submit. index_fts/search_indexed: BM25-ranked FTS over source code. index_semantic/search_semantic: vector search (requires Ollama). refresh_metadata: re-parse all mods with degraded metadata (filename/@Mod annotation) and upgrade if a higher-quality manifest is found. graph_enrich_next: get next un-enriched chunk for chat enrichment. graph_enrich_submit: submit enriched nodes/edges (chunkIndex, nodes, edges). graph_download: download pre-built graph from registry (targetType=mod|vanilla|modloader with targetId/targetVersion). graph_export: export a mod's local graph as a shareable gzipped bundle. graph_submit: validate an exported bundle and open a draft GitHub registry PR (bundlePath required). embed_export/embed_download/embed_status: targetType-aware embeddings actions for mod/vanilla/modloader. embed_download: downloads registry embeddings; protects local embeddings by default (use force=true to overwrite). embed_download_all: download embeddings for all mods. embed_submit: validate an exported bundle and open a draft GitHub registry PR (bundlePath required). Auto-behaviors: decompile_status auto-queues embedding (MODLENS_AUTO_EMBED) and graph build (MODLENS_AUTO_GRAPH). Pass autoEmbed/autoGraph to override per-call.", {
|
|
251
278
|
action: z.enum([
|
|
252
279
|
"ingest", "list", "get", "search", "stats", "dependencies", "dep_graph",
|
|
253
280
|
"version_conflicts", "source_urls", "decompile", "decompile_status",
|
|
@@ -260,6 +287,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
260
287
|
jarPath: z.string().optional(),
|
|
261
288
|
modId: z.union([z.string(), z.number()]).optional().describe("mod ID or DB id"),
|
|
262
289
|
dbId: z.number().optional().describe("DB id"),
|
|
290
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1"),
|
|
263
291
|
query: z.string().optional(),
|
|
264
292
|
path: z.string().optional(),
|
|
265
293
|
startLine: z.number().int().positive().optional().describe("First source line, 1-based"),
|
|
@@ -469,7 +497,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
469
497
|
return out(result);
|
|
470
498
|
}));
|
|
471
499
|
// ── 2. mod_bytecode ───────────────────────────────────────────────────────────
|
|
472
|
-
registerTool("mod_bytecode", "Mod JAR bytecode and class analysis
|
|
500
|
+
registerTool("mod_bytecode", "Mod JAR bytecode and class analysis. A modId may resolve a missing exact JAR through modpacks.ch; sha1 identifies a specific file. For vanilla Minecraft classes use mc_source instead. action=search_class|class_members|bytecode|find_refs|cross_refs|inheritance|diff|diff_detailed|cache_diff|find_implementors|scan_registrations|annotated_by|event_listeners|optional_integrations|network_payloads|config_schema. Most actions require dbId or modId. cross_refs/find_implementors/annotated_by/event_listeners can omit modId to search all mods. diff/diff_detailed/cache_diff require dbIdA+dbIdB. diff_detailed gives AST-level method/field changes with breaking-change flags (add semantic=true for cosine similarity, requires mod index_semantic). cache_diff forces a (re)compute and writes to DB. Set env AUTO_CACHE_MOD_DIFFS=1 to auto-cache all diff_detailed calls.", {
|
|
473
501
|
action: z.enum(["search_class", "class_members", "bytecode", "find_refs", "cross_refs", "inheritance", "diff", "diff_detailed", "cache_diff", "find_implementors", "scan_registrations", "annotated_by", "event_listeners", "optional_integrations", "network_payloads", "config_schema"]),
|
|
474
502
|
dbId: z.number().optional().describe("DB id"),
|
|
475
503
|
dbIdA: z.number().optional().describe("older DB id"),
|
|
@@ -480,6 +508,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
480
508
|
annotation: z.string().optional().describe("slash/dot annotation class"),
|
|
481
509
|
event: z.string().optional().describe("slash/dot event class"),
|
|
482
510
|
modId: z.union([z.string(), z.number()]).optional().describe("Mod ID string (e.g. 'polylib') or numeric DB id. Resolved via DB lookup."),
|
|
511
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1"),
|
|
483
512
|
transitive: z.boolean().optional(),
|
|
484
513
|
mcVersion: z.string().optional(),
|
|
485
514
|
loader: z.string().optional(),
|
|
@@ -549,6 +578,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
549
578
|
action: z.enum(["targets", "resolve", "conflicts", "targets_in_package", "at_conflicts", "at_entries", "aw_entries"]),
|
|
550
579
|
modId: z.union([z.string(), z.number()]).optional().describe("mod ID or DB id"),
|
|
551
580
|
dbId: z.number().optional().describe("DB id"),
|
|
581
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1"),
|
|
552
582
|
targetClass: z.string().optional().describe("slash/dot class name"),
|
|
553
583
|
packagePrefix: z.string().optional().describe("slash/dot package prefix"),
|
|
554
584
|
mcVersion: z.string().optional(),
|
|
@@ -904,9 +934,9 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
904
934
|
return out(result);
|
|
905
935
|
}));
|
|
906
936
|
// ── 7. mappings ───────────────────────────────────────────────────────────────
|
|
907
|
-
registerTool("mappings", "Minecraft name mappings and Parchment parameter docs. action=find translates one symbol between namespaces; action=remap rewrites a mod JAR and requires inputJar/outputJar/toMapping; action=parchment|list_parchment|parchment_summary reads Parchment docs.", {
|
|
937
|
+
registerTool("mappings", "Minecraft name mappings and Parchment parameter docs. action=find translates one symbol between namespaces, including exact-version Forge SRG members (for example Mob.m_20183_() or f_77313_) to Mojmap; ambiguous names return found=false. action=remap rewrites a mod JAR and requires inputJar/outputJar/toMapping; action=parchment|list_parchment|parchment_summary reads Parchment docs.", {
|
|
908
938
|
action: z.enum(["find", "remap", "parchment", "list_parchment", "parchment_summary"]),
|
|
909
|
-
symbol: z.string().optional().describe("Symbol to translate; use with action=find, not action=remap"),
|
|
939
|
+
symbol: z.string().optional().describe("Symbol to translate; use with action=find, not action=remap. SRG members accept Owner.m_123_(), Owner.f_123_, or bare m_123_ / f_123_. Supply owner and descriptor when available."),
|
|
910
940
|
version: z.string().optional(),
|
|
911
941
|
sourceNs: z.enum(["official", "intermediary", "yarn", "mojmap", "srg", "mcp"]).optional().describe("Source namespace for action=find. Allowed: official, intermediary, yarn, mojmap, srg, mcp"),
|
|
912
942
|
targetNs: z.enum(["official", "intermediary", "yarn", "mojmap", "srg", "mcp"]).optional().describe("Target namespace for action=find. Allowed: official, intermediary, yarn, mojmap, srg, mcp"),
|
|
@@ -1120,6 +1150,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
1120
1150
|
id: z.string().optional(),
|
|
1121
1151
|
entity: z.string().optional().describe("entity id e.g. 'player'"),
|
|
1122
1152
|
modId: z.union([z.string(), z.number()]).optional().describe("mod ID or DB id"),
|
|
1153
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1 for entity_attributes modId"),
|
|
1123
1154
|
limit: z.number().optional().describe("Max results (lang)"),
|
|
1124
1155
|
}, safe(async ({ action, version, registry, tagId, namespace, entry, type, outputItem, recipeId, item, category, path, filter, block, modelPath, resolveParents, biomeId, id, entity, modId, limit }) => {
|
|
1125
1156
|
let result;
|
|
@@ -1242,6 +1273,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
1242
1273
|
registerTool("mod_jar", "Mod JAR file access and registry discovery (lang, sounds, atlases, configs, manifests). action=list_files|get_file|lang|sounds|atlas|registry_entries|manifest|list_configs|get_config.", {
|
|
1243
1274
|
action: z.enum(["list_files", "get_file", "lang", "sounds", "atlas", "registry_entries", "manifest", "list_configs", "get_config"]),
|
|
1244
1275
|
modId: z.union([z.string(), z.number()]).describe("mod ID or DB id"),
|
|
1276
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1"),
|
|
1245
1277
|
prefix: z.string().optional(),
|
|
1246
1278
|
path: z.string().optional().describe("internal JAR path"),
|
|
1247
1279
|
filter: z.string().optional(),
|
|
@@ -1287,6 +1319,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
1287
1319
|
action: z.enum(["list", "get", "diff", "trace_item"]).describe("list/get: JAR data operations; diff: compare two mod versions; trace_item: recipe chain"),
|
|
1288
1320
|
type: z.enum(["recipe", "loot_table", "advancement", "blockstate", "model", "biome", "structure", "data_tag", "particle", "damage_type", "enchantment", "configured_feature", "placed_feature", "structure_set", "noise", "density_function", "processor_list", "template_pool", "dimension_type", "dimension", "trim_material", "trim_pattern", "painting_variant", "wolf_variant", "cat_variant", "chat_type"]).describe("Data type to query"),
|
|
1289
1321
|
modId: z.union([z.string(), z.number()]).optional().describe("mod ID or DB id"),
|
|
1322
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1"),
|
|
1290
1323
|
dbIdA: z.number().optional().describe("older DB id"),
|
|
1291
1324
|
dbIdB: z.number().optional().describe("newer DB id"),
|
|
1292
1325
|
itemId: z.string().optional().describe("resource id e.g. 'mekanism:steel_ingot'"),
|
|
@@ -1334,6 +1367,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
1334
1367
|
registerTool("mod_tags", "Cross-mod data-pack tag indexing — index, browse, expand, find contributors, and detect replace:true conflicts. action=index|index_all|namespaces|contributors|expand|mod_list|find_conflicts|search.", {
|
|
1335
1368
|
action: z.enum(["index", "index_all", "namespaces", "contributors", "expand", "mod_list", "find_conflicts", "search"]),
|
|
1336
1369
|
modId: z.union([z.string(), z.number()]).optional().describe("Mod ID string or DB id (index, mod_list)"),
|
|
1370
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1"),
|
|
1337
1371
|
tagPath: z.string().optional().describe("Tag path to look up contributors or expand (contributors, expand), e.g. 'c:ores/iron', '#forge:storage_blocks'"),
|
|
1338
1372
|
registry: z.string().optional().describe("block|item|entity_type|fluid|..."),
|
|
1339
1373
|
query: z.string().optional(),
|
|
@@ -1402,6 +1436,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
1402
1436
|
registerTool("gradle", "Gradle build file analysis — extract deps/plugins, search across mods, compare dependency versions. action=get_files|search|compare_deps.", {
|
|
1403
1437
|
action: z.enum(["get_files", "search", "compare_deps"]),
|
|
1404
1438
|
modId: z.union([z.string(), z.number()]).optional().describe("Mod ID string or DB id (get_files)"),
|
|
1439
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1"),
|
|
1405
1440
|
query: z.string().optional(),
|
|
1406
1441
|
modIdFilter: z.string().optional().describe("modId substring filter"),
|
|
1407
1442
|
groupFilter: z.string().optional().describe("group:artifact substring"),
|
|
@@ -1432,6 +1467,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
1432
1467
|
report: z.enum(["mixin_conflicts", "tag_conflicts", "version_conflicts", "mod_overview", "gradle_deps", "pack_compat", "dep_graph", "sidedness", "mod_complexity", "pack_changelog"]),
|
|
1433
1468
|
savePath: z.string().optional().describe("Absolute path to save the .md file, e.g. 'C:/reports/mixin_conflicts.md'"),
|
|
1434
1469
|
modId: z.union([z.string(), z.number()]).optional(),
|
|
1470
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1"),
|
|
1435
1471
|
loader: z.string().optional(),
|
|
1436
1472
|
mcVersion: z.string().optional(),
|
|
1437
1473
|
registry: z.string().optional(),
|
|
@@ -1459,6 +1495,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
1459
1495
|
"action=health: one-shot modpack health overview \u2014 mod count, loader breakdown, missing deps, mixin hotspots, tag conflicts, platform link stats (mcVersion, loader).", {
|
|
1460
1496
|
action: z.enum(["asset_conflicts", "vanilla_overrides", "sidedness", "pack_sidedness", "complexity", "pack_changelog", "data_conflicts", "pack_graph", "config_diff", "health"]),
|
|
1461
1497
|
modId: z.union([z.string(), z.number()]).optional(),
|
|
1498
|
+
sha1: z.string().optional().describe("Exact JAR SHA-1"),
|
|
1462
1499
|
assetType: z.enum(["textures", "models", "sounds", "blockstates", "shaders", "all"]).optional().describe("Asset sub-folder filter (asset_conflicts)"),
|
|
1463
1500
|
dataType: z.enum(["recipe", "loot_tables", "advancements", "tags", "structures", "all"]).optional().describe("Data sub-folder filter (data_conflicts)"),
|
|
1464
1501
|
overrideType: z.enum(["data", "assets", "all"]).optional().describe("Override type filter (vanilla_overrides)"),
|
|
@@ -1528,7 +1565,7 @@ function createMcpServer(principal, allowMinecraftSource = false) {
|
|
|
1528
1565
|
return out(result);
|
|
1529
1566
|
}));
|
|
1530
1567
|
// ── 22. analyze_crash_log ────────────────────────────────────────────────────
|
|
1531
|
-
registerTool("analyze_crash_log", "Parse a NeoForge/Forge/Fabric crash log and return suspect mods ranked by stack-frame hits against the indexed class DB.", {
|
|
1568
|
+
registerTool("analyze_crash_log", "Parse a NeoForge/Forge/Fabric crash log and return suspect mods ranked by stack-frame hits against the indexed class DB. Verified Forge SRG member translations appear in crashFacts.mappedMembers and mapped frame names; these names do not establish cause.", {
|
|
1532
1569
|
logText: z.string().describe("full crash log text"),
|
|
1533
1570
|
}, safe(async ({ logText }) => {
|
|
1534
1571
|
const result = await analyzeCrashLog(logText);
|