@creeperhost/modlens-mcp 1.6.16 → 1.6.18
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/dist/db.d.ts.map +1 -1
- package/dist/db.js +3 -2
- package/dist/db.js.map +1 -1
- package/dist/generated/sqlite/internal/class.js +2 -2
- package/dist/generated/sqlite/internal/class.js.map +1 -1
- package/dist/tools/diagnostics.d.ts.map +1 -1
- package/dist/tools/diagnostics.js +42 -0
- package/dist/tools/diagnostics.js.map +1 -1
- package/package.json +4 -3
- package/scripts/build-template-db.mjs +2 -1
- package/scripts/test-package.mjs +209 -0
package/dist/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C;;;;GAIG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C;;;;GAIG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,CAqCnD;AAED,+EAA+E;AAC/E,wBAAgB,EAAE,IAAI,YAAY,CAOjC;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAGhD"}
|
package/dist/db.js
CHANGED
|
@@ -12,8 +12,9 @@ export async function getDb() {
|
|
|
12
12
|
const backend = detectBackend();
|
|
13
13
|
if (backend === "sqlite") {
|
|
14
14
|
const url = process.env.DATABASE_URL ?? "";
|
|
15
|
-
|
|
16
|
-
const
|
|
15
|
+
// Adapter v7 declares SQLite v12 support; test:package covers this pairing with client v6.
|
|
16
|
+
const { PrismaBetterSqlite3 } = await import("@prisma/adapter-better-sqlite3");
|
|
17
|
+
const adapter = new PrismaBetterSqlite3({ url });
|
|
17
18
|
const { PrismaClient: SQLiteClient } = await import("./generated/sqlite/client.js");
|
|
18
19
|
_client = new SQLiteClient({ adapter });
|
|
19
20
|
return _client;
|
package/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,IAAI,OAAO,GAAwB,IAAI,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACvB,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;QAC3C,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACpF,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,CAA4B,CAAC;QACnE,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACxD,6DAA6D;QAC7D,iFAAiF;QACjF,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAChE,2CAA2C;QAC3C,0CAA0C;QAC1C,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACX,wFAAwF,CAC3F,CAAC;QACN,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,IAAI,YAAY,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;KAC1D,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,EAAE;IACd,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,IAAI,YAAY,CAAC;YACvB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SAC1D,CAAC,CAAC;IACP,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC5B,MAAM,OAAO,EAAE,WAAW,EAAE,CAAC;IAC7B,OAAO,GAAG,IAAI,CAAC;AACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,IAAI,OAAO,GAAwB,IAAI,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACvB,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;QAC3C,2FAA2F;QAC3F,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACpF,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,CAA4B,CAAC;QACnE,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACxD,6DAA6D;QAC7D,iFAAiF;QACjF,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAChE,2CAA2C;QAC3C,0CAA0C;QAC1C,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACX,wFAAwF,CAC3F,CAAC;QACN,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,IAAI,YAAY,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;KAC1D,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,EAAE;IACd,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,IAAI,YAAY,CAAC;YACvB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SAC1D,CAAC,CAAC;IACP,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC5B,MAAM,OAAO,EAAE,WAAW,EAAE,CAAC;IAC7B,OAAO,GAAG,IAAI,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../src/generated/sqlite/internal/class.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAIxD,MAAM,MAAM,GAAkC;IAC5C,WAAW,EAAE;QACX,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE;YACV,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,eAAe;SACzB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,gEAAgE;YACzE,YAAY,EAAE,IAAI;SACnB;QACD,QAAQ,EAAE;YACR,
|
|
1
|
+
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../src/generated/sqlite/internal/class.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAIxD,MAAM,MAAM,GAAkC;IAC5C,WAAW,EAAE;QACX,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE;YACV,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,eAAe;SACzB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,gEAAgE;YACzE,YAAY,EAAE,IAAI;SACnB;QACD,QAAQ,EAAE;YACR,YAAY,EAAE,QAAQ;YACtB,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,QAAQ;SACpB;QACD,eAAe,EAAE;YACf;gBACE,YAAY,EAAE,IAAI;gBAClB,OAAO,EAAE,sBAAsB;gBAC/B,QAAQ,EAAE,IAAI;aACf;SACF;QACD,iBAAiB,EAAE,EAAE;QACrB,gBAAgB,EAAE,gFAAgF;QAClG,gBAAgB,EAAE,IAAI;KACvB;IACD,cAAc,EAAE,0BAA0B;IAC1C,eAAe,EAAE,QAAQ;IACzB,eAAe,EAAE,0CAA0C;IAC3D,iBAAiB,EAAE;QACjB,IAAI;KACL;IACD,gBAAgB,EAAE,QAAQ;IAC1B,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,gBAAgB;IAC1B,mBAAmB,EAAE;QACnB,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,YAAY,EAAE,cAAc;gBAC5B,OAAO,EAAE,IAAI;aACd;SACF;KACF;IACD,cAAc,EAAE,wuRAAwuR;IACxvR,kBAAkB,EAAE,kEAAkE;IACtF,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ;IACD,SAAS,EAAE,EAAE;CACd,CAAA;AAED,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,i9WAAi9W,CAAC,CAAA;AACv/W,MAAM,CAAC,UAAU,GAAG,SAAS,CAAA;AAE7B,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACnD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,YAAY,GAAG;IACpB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,qDAAqD,CAAC;IAE3F,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,iEAAiE,CAAC,CAAA;QAChG,OAAO,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;CACF,CAAA;AA8PD,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,CAAuC,CAAA;AAC9E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/tools/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/tools/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0EH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsDtE;AA+ZD,wBAAsB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyD1F"}
|
|
@@ -22,9 +22,11 @@ const SKIP_DEP_IDS = new Set([
|
|
|
22
22
|
]);
|
|
23
23
|
const MAX_SUSPECTS = 10;
|
|
24
24
|
const MAX_POPULATE_ATTEMPTS = 3;
|
|
25
|
+
const OBFUSCATED_WORD_STOPLIST = new Set(["a", "an", "as", "at", "be", "by", "can", "cast", "for", "if", "in", "is", "it", "new", "not", "of", "on", "or", "the", "to"]);
|
|
25
26
|
export async function analyzeCrashLog(logText) {
|
|
26
27
|
const frames = parseFrames(logText);
|
|
27
28
|
const facts = parseCrashFacts(logText);
|
|
29
|
+
await enrichMappedCrashFacts(facts);
|
|
28
30
|
await enrichMappedFrames(frames, facts);
|
|
29
31
|
const rawFrames = frames.map((f) => f.className);
|
|
30
32
|
const uniqueClasses = [...new Set(rawFrames)];
|
|
@@ -161,6 +163,43 @@ function isObfuscatedVanillaFrame(frame) {
|
|
|
161
163
|
return false;
|
|
162
164
|
return !frame.location || /^SourceFile(?::\d+)?$/i.test(frame.location);
|
|
163
165
|
}
|
|
166
|
+
async function enrichMappedCrashFacts(facts) {
|
|
167
|
+
if (!facts.minecraftVersion)
|
|
168
|
+
return;
|
|
169
|
+
const mappedExceptionClasses = [];
|
|
170
|
+
const classCache = new Map();
|
|
171
|
+
const mapText = async (text) => {
|
|
172
|
+
let mappedText = text;
|
|
173
|
+
const names = [...new Set([...text.matchAll(/\b[a-z]{1,4}\b/g)].map((m) => m[0]).filter((name) => !OBFUSCATED_WORD_STOPLIST.has(name.toLowerCase())))];
|
|
174
|
+
for (const name of names) {
|
|
175
|
+
let mapped = classCache.get(name);
|
|
176
|
+
if (mapped === undefined) {
|
|
177
|
+
let result = await translateSymbol(name, "official", "mcp", facts.minecraftVersion);
|
|
178
|
+
let namespace = "mcp";
|
|
179
|
+
if (!result.found) {
|
|
180
|
+
result = await translateSymbol(name, "official", "srg", facts.minecraftVersion);
|
|
181
|
+
namespace = "srg";
|
|
182
|
+
}
|
|
183
|
+
mapped = result.found && result.target && normalizeClassName(result.target).startsWith("net/minecraft/")
|
|
184
|
+
? { mappedClass: normalizeClassName(result.target), namespace }
|
|
185
|
+
: null;
|
|
186
|
+
classCache.set(name, mapped);
|
|
187
|
+
}
|
|
188
|
+
if (!mapped)
|
|
189
|
+
continue;
|
|
190
|
+
if (!mappedExceptionClasses.some((entry) => entry.raw === name))
|
|
191
|
+
mappedExceptionClasses.push({ raw: name, mappedClass: mapped.mappedClass, namespace: mapped.namespace });
|
|
192
|
+
mappedText = mappedText.replace(new RegExp(`\\b${escapeRegExp(name)}\\b`, "g"), simpleClassName(mapped.mappedClass));
|
|
193
|
+
}
|
|
194
|
+
return mappedText;
|
|
195
|
+
};
|
|
196
|
+
if (facts.exception)
|
|
197
|
+
facts.mappedException = await mapText(facts.exception);
|
|
198
|
+
if (facts.causedBy.length > 0)
|
|
199
|
+
facts.mappedCausedBy = await Promise.all(facts.causedBy.map(mapText));
|
|
200
|
+
if (mappedExceptionClasses.length > 0)
|
|
201
|
+
facts.mappedExceptionClasses = mappedExceptionClasses;
|
|
202
|
+
}
|
|
164
203
|
function parseCrashFacts(logText) {
|
|
165
204
|
const facts = { causedBy: [], modLoadingIssues: [], missingDependencies: [], tickContext: {} };
|
|
166
205
|
facts.description = logText.match(/Description:\s*(.+)/)?.[1]?.trim();
|
|
@@ -457,6 +496,9 @@ function modIdFromClass(className) {
|
|
|
457
496
|
function normalizeClassName(value) {
|
|
458
497
|
return value.replace(/\./g, "/");
|
|
459
498
|
}
|
|
499
|
+
function simpleClassName(value) {
|
|
500
|
+
return value.replace(/[\\/]/g, ".").split(".").pop() ?? value;
|
|
501
|
+
}
|
|
460
502
|
function cleanModId(value) {
|
|
461
503
|
return (value ?? "").trim().toLowerCase().replace(/^mods\//, "").replace(/\.jar$/i, "").replace(/[^a-z0-9_.-]+/g, "_").replace(/^_+|_+$/g, "");
|
|
462
504
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/tools/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/tools/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@creeperhost/modlens-mcp",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.18",
|
|
4
4
|
"description": "MCP server for browsing, decompiling, and analyzing Minecraft mod JARs",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"start": "node dist/server.js",
|
|
33
33
|
"setup": "npm run build && node dist/setup.js",
|
|
34
34
|
"test": "vitest run",
|
|
35
|
+
"test:package": "node scripts/test-package.mjs",
|
|
35
36
|
"test:watch": "vitest",
|
|
36
37
|
"db:generate": "prisma generate",
|
|
37
38
|
"db:push": "prisma db push",
|
|
@@ -50,10 +51,10 @@
|
|
|
50
51
|
"dependencies": {
|
|
51
52
|
"@clack/prompts": "^1.4.0",
|
|
52
53
|
"@modelcontextprotocol/sdk": "^1.10.0",
|
|
53
|
-
"@prisma/adapter-better-sqlite3": "
|
|
54
|
+
"@prisma/adapter-better-sqlite3": "7.9.1",
|
|
54
55
|
"@prisma/client": "^6.0.0",
|
|
55
56
|
"adm-zip": "^0.5.16",
|
|
56
|
-
"better-sqlite3": "^11.
|
|
57
|
+
"better-sqlite3": "^12.11.1",
|
|
57
58
|
"prisma": "^6.0.0",
|
|
58
59
|
"smol-toml": "^1.6.1",
|
|
59
60
|
"zod": "^3.23.8"
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* so its schema is always in sync with `prisma/backends/schema.sqlite.prisma`.
|
|
11
11
|
*/
|
|
12
12
|
import { execSync } from "child_process";
|
|
13
|
-
import { existsSync, rmSync } from "fs";
|
|
13
|
+
import { existsSync, rmSync, writeFileSync } from "fs";
|
|
14
14
|
import { join, dirname } from "path";
|
|
15
15
|
import { fileURLToPath } from "url";
|
|
16
16
|
|
|
@@ -19,6 +19,7 @@ const dbFile = join(ROOT, "prisma", "backends", "template.db");
|
|
|
19
19
|
|
|
20
20
|
// Start from a clean slate so the template never carries stale tables/rows.
|
|
21
21
|
if (existsSync(dbFile)) rmSync(dbFile);
|
|
22
|
+
writeFileSync(dbFile, "");
|
|
22
23
|
|
|
23
24
|
// Prisma resolves a relative `file:` URL relative to the schema file's directory
|
|
24
25
|
// (prisma/backends/), so `file:./template.db` lands the db next to the schema.
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
// Exercise the packed CLI as an npx consumer, outside the source checkout.
|
|
2
|
+
// Run after `npm run build`, or pass a tarball / release-artifact directory.
|
|
3
|
+
import assert from "node:assert/strict";
|
|
4
|
+
import { spawn, execFileSync } from "node:child_process";
|
|
5
|
+
import { existsSync, mkdirSync, mkdtempSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
6
|
+
import { createRequire } from "node:module";
|
|
7
|
+
import { tmpdir } from "node:os";
|
|
8
|
+
import { dirname, join, resolve, delimiter } from "node:path";
|
|
9
|
+
import { pathToFileURL } from "node:url";
|
|
10
|
+
|
|
11
|
+
const root = mkdtempSync(join(tmpdir(), "modlens-package-test-"));
|
|
12
|
+
const consumer = join(root, "consumer");
|
|
13
|
+
mkdirSync(consumer);
|
|
14
|
+
writeFileSync(join(consumer, "package.json"), JSON.stringify({ name: "package-smoke-consumer", private: true }));
|
|
15
|
+
writeFileSync(join(root, "npmrc"), "");
|
|
16
|
+
const npm = process.env.npm_execpath ?? (process.platform === "win32"
|
|
17
|
+
? join(dirname(process.execPath), "node_modules/npm/bin/npm-cli.js")
|
|
18
|
+
: realpathSync(join(dirname(process.execPath), "npm")));
|
|
19
|
+
assert.ok(existsSync(npm), "Run this test via npm run test:package");
|
|
20
|
+
const env = Object.fromEntries(Object.entries(process.env).filter(([key]) =>
|
|
21
|
+
!/^(DATABASE_URL|MODLENS_.*|MCP_PORT|DEBUG|NODE_OPTIONS|NODE_PATH|PATH)$/i.test(key)));
|
|
22
|
+
Object.assign(env, {
|
|
23
|
+
PATH: `${dirname(process.execPath)}${delimiter}${process.env.PATH ?? process.env.Path ?? ""}`,
|
|
24
|
+
npm_config_cache: join(root, "cache"),
|
|
25
|
+
npm_config_userconfig: join(root, "npmrc"),
|
|
26
|
+
npm_config_update_notifier: "false",
|
|
27
|
+
npm_config_audit: "false",
|
|
28
|
+
npm_config_fund: "false",
|
|
29
|
+
MODLENS_AUTO_EMBED: "0",
|
|
30
|
+
MODLENS_CACHE_ROOT: join(root, "modlens-cache"),
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
function start(args, home) {
|
|
34
|
+
const child = spawn(process.execPath, [npm, ...args], {
|
|
35
|
+
cwd: consumer, env: { ...env, MODLENS_HOME: home }, stdio: ["pipe", "pipe", "pipe"],
|
|
36
|
+
detached: process.platform !== "win32",
|
|
37
|
+
});
|
|
38
|
+
let output = "";
|
|
39
|
+
child.stdout.on("data", data => { output += data; });
|
|
40
|
+
child.stderr.on("data", data => { output += data; });
|
|
41
|
+
const done = new Promise((resolveDone, reject) => {
|
|
42
|
+
child.on("error", reject);
|
|
43
|
+
child.on("close", (code, signal) => resolveDone({ code, signal }));
|
|
44
|
+
});
|
|
45
|
+
return { child, done, output: () => output };
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async function stop(run) {
|
|
49
|
+
if (run.child.exitCode !== null || run.child.signalCode !== null) return;
|
|
50
|
+
if (process.platform === "win32") {
|
|
51
|
+
// Only terminate the process tree created by this test.
|
|
52
|
+
try { execFileSync("taskkill.exe", ["/pid", String(run.child.pid), "/T", "/F"], { stdio: "ignore" }); } catch {}
|
|
53
|
+
} else {
|
|
54
|
+
try { process.kill(-run.child.pid, "SIGTERM"); } catch (error) {
|
|
55
|
+
if (error.code !== "ESRCH") throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
await deadline(run.done, 10_000, "test process shutdown");
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async function deadline(promise, ms, label) {
|
|
62
|
+
let timer;
|
|
63
|
+
try {
|
|
64
|
+
return await Promise.race([promise, new Promise((_, reject) => {
|
|
65
|
+
timer = setTimeout(() => reject(new Error(`Timed out: ${label}`)), ms);
|
|
66
|
+
})]);
|
|
67
|
+
} finally { clearTimeout(timer); }
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
let passed = false;
|
|
71
|
+
try {
|
|
72
|
+
let tarball;
|
|
73
|
+
if (process.argv[2]) {
|
|
74
|
+
tarball = resolve(process.argv[2]);
|
|
75
|
+
if (statSync(tarball).isDirectory()) {
|
|
76
|
+
const files = readdirSync(tarball).filter(file => file.endsWith(".tgz"));
|
|
77
|
+
assert.equal(files.length, 1, "Expected one package tarball");
|
|
78
|
+
tarball = join(tarball, files[0]);
|
|
79
|
+
}
|
|
80
|
+
} else {
|
|
81
|
+
const pack = JSON.parse(execFileSync(process.execPath, [npm, "pack", "--json", "--pack-destination", root], {
|
|
82
|
+
env, encoding: "utf8", timeout: 60_000,
|
|
83
|
+
}));
|
|
84
|
+
tarball = join(root, pack[0].filename);
|
|
85
|
+
}
|
|
86
|
+
console.log(`Testing ${tarball} on ${process.version} (${process.platform}/${process.arch})`);
|
|
87
|
+
const args = ["exec", "--yes", "--foreground-scripts", "--package", tarball, "--", "modlens-mcp"];
|
|
88
|
+
|
|
89
|
+
const setup = start([...args, "--setup"], join(root, "setup-home"));
|
|
90
|
+
try {
|
|
91
|
+
await deadline(new Promise((resolvePrompt, reject) => {
|
|
92
|
+
const inspect = () => {
|
|
93
|
+
if (setup.output().includes("Choose a setup profile")) resolvePrompt();
|
|
94
|
+
};
|
|
95
|
+
setup.child.stdout.on("data", inspect);
|
|
96
|
+
setup.child.stderr.on("data", inspect);
|
|
97
|
+
setup.done.then(result => reject(new Error(`Setup exited before prompting: ${JSON.stringify(result)}\n${setup.output()}`)), reject);
|
|
98
|
+
}), 180_000, "fresh npx install and setup prompt");
|
|
99
|
+
setup.child.stdin.write("\x03"); // Cancel the wizard before saving configuration.
|
|
100
|
+
assert.equal((await deadline(setup.done, 15_000, "setup cancellation")).code, 0, setup.output());
|
|
101
|
+
console.log("PASS: fresh npx install and interactive setup prompt");
|
|
102
|
+
} catch (error) {
|
|
103
|
+
writeFileSync(join(root, "setup.log"), setup.output());
|
|
104
|
+
throw error;
|
|
105
|
+
} finally { await stop(setup); }
|
|
106
|
+
|
|
107
|
+
const installs = readdirSync(join(root, "cache/_npx"))
|
|
108
|
+
.map(dir => join(root, "cache/_npx", dir, "node_modules/@creeperhost/modlens-mcp"))
|
|
109
|
+
.filter(dir => existsSync(join(dir, "package.json")));
|
|
110
|
+
assert.equal(installs.length, 1);
|
|
111
|
+
const installed = installs[0];
|
|
112
|
+
const require = createRequire(join(installed, "package.json"));
|
|
113
|
+
const adapterRequire = createRequire(require.resolve("@prisma/adapter-better-sqlite3"));
|
|
114
|
+
assert.equal(require.resolve("better-sqlite3"), adapterRequire.resolve("better-sqlite3"), "Prisma must share the v12 driver");
|
|
115
|
+
assert.match(require("better-sqlite3/package.json").version, /^12\./);
|
|
116
|
+
|
|
117
|
+
const dataHome = join(root, "server-home");
|
|
118
|
+
async function checkServer() {
|
|
119
|
+
const run = start(args, dataHome);
|
|
120
|
+
const pending = new Map();
|
|
121
|
+
let buffer = "";
|
|
122
|
+
let id = 0;
|
|
123
|
+
run.child.stdout.on("data", data => {
|
|
124
|
+
buffer += data;
|
|
125
|
+
while (buffer.includes("\n")) {
|
|
126
|
+
const newline = buffer.indexOf("\n");
|
|
127
|
+
const line = buffer.slice(0, newline).trim();
|
|
128
|
+
buffer = buffer.slice(newline + 1);
|
|
129
|
+
if (!line) continue;
|
|
130
|
+
try {
|
|
131
|
+
const message = JSON.parse(line);
|
|
132
|
+
const waiter = pending.get(message.id);
|
|
133
|
+
if (waiter) {
|
|
134
|
+
pending.delete(message.id);
|
|
135
|
+
if (message.error) waiter.reject(new Error(JSON.stringify(message.error)));
|
|
136
|
+
else waiter.resolve(message.result);
|
|
137
|
+
}
|
|
138
|
+
} catch (error) { for (const waiter of pending.values()) waiter.reject(error); }
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
run.done.then(result => {
|
|
142
|
+
for (const waiter of pending.values()) waiter.reject(new Error(`MCP exited: ${JSON.stringify(result)}\n${run.output()}`));
|
|
143
|
+
});
|
|
144
|
+
function send(message) { run.child.stdin.write(JSON.stringify({ jsonrpc: "2.0", ...message }) + "\n"); }
|
|
145
|
+
function request(method, params) {
|
|
146
|
+
return deadline(new Promise((resolveRequest, reject) => {
|
|
147
|
+
const requestId = ++id;
|
|
148
|
+
pending.set(requestId, { resolve: resolveRequest, reject });
|
|
149
|
+
send({ id: requestId, method, params });
|
|
150
|
+
}), 30_000, method);
|
|
151
|
+
}
|
|
152
|
+
try {
|
|
153
|
+
const initialized = await request("initialize", { protocolVersion: "2024-11-05", capabilities: {}, clientInfo: { name: "package-smoke", version: "1.0.0" } });
|
|
154
|
+
assert.ok(initialized.serverInfo);
|
|
155
|
+
send({ method: "notifications/initialized" });
|
|
156
|
+
const list = await request("tools/list", {});
|
|
157
|
+
assert.ok(list.tools.some(tool => tool.name === "mod"));
|
|
158
|
+
const stats = await request("tools/call", { name: "mod", arguments: { action: "stats" } });
|
|
159
|
+
assert.ok(!stats.isError, JSON.stringify(stats));
|
|
160
|
+
assert.equal(JSON.parse(stats.content.find(item => item.type === "text").text).total, 0);
|
|
161
|
+
return run.output();
|
|
162
|
+
} finally { await stop(run); }
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
const first = await checkServer();
|
|
166
|
+
assert.match(first, /First run/);
|
|
167
|
+
const database = join(dataHome, "data/modlens.db");
|
|
168
|
+
assert.ok(statSync(database).size > 0);
|
|
169
|
+
console.log("PASS: first-run SQLite bootstrap, MCP handshake, tools/list, database stats");
|
|
170
|
+
|
|
171
|
+
// Check the actual installed client/adapter with dates, BLOBs, and transactions.
|
|
172
|
+
// Use a child so Windows releases the native .node file before cleanup.
|
|
173
|
+
function checkDatabase(mode) {
|
|
174
|
+
execFileSync(process.execPath, ["--input-type=module", "-e", `
|
|
175
|
+
import assert from 'node:assert/strict';
|
|
176
|
+
const { getDb, disconnect } = await import(process.argv[1]);
|
|
177
|
+
const db = await getDb();
|
|
178
|
+
try {
|
|
179
|
+
const bytes = new Uint8Array([0, 1, 127, 128, 255]);
|
|
180
|
+
if (process.argv[2] === 'create') {
|
|
181
|
+
const doc = await db.docEntry.create({ data: { title: 'Package smoke', url: 'https://example.invalid', embedding: bytes } });
|
|
182
|
+
assert.deepEqual(doc.embedding, bytes);
|
|
183
|
+
assert.ok(doc.createdAt instanceof Date);
|
|
184
|
+
await db.$transaction(async tx => { await tx.docEntry.update({ where: { id: doc.id }, data: { summary: 'committed' } }); });
|
|
185
|
+
await assert.rejects(db.$transaction(async tx => {
|
|
186
|
+
await tx.docEntry.update({ where: { id: doc.id }, data: { summary: 'rolled back' } });
|
|
187
|
+
throw new Error('rollback sentinel');
|
|
188
|
+
}), /rollback sentinel/);
|
|
189
|
+
}
|
|
190
|
+
const saved = await db.docEntry.findFirstOrThrow({ where: { title: 'Package smoke' } });
|
|
191
|
+
assert.equal(saved.summary, 'committed');
|
|
192
|
+
assert.deepEqual(saved.embedding, bytes);
|
|
193
|
+
} finally { await disconnect(); }
|
|
194
|
+
`, pathToFileURL(join(installed, "dist/db.js")).href, mode], {
|
|
195
|
+
cwd: consumer, env: { ...env, DATABASE_URL: `file:${database}` }, timeout: 30_000, stdio: "pipe",
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
checkDatabase("create");
|
|
199
|
+
console.log("PASS: installed Prisma client/adapter CRUD, binary data, dates, commit and rollback");
|
|
200
|
+
|
|
201
|
+
const second = await checkServer();
|
|
202
|
+
assert.doesNotMatch(second, /First run/);
|
|
203
|
+
checkDatabase("read");
|
|
204
|
+
console.log("PASS: second npx run preserves existing database contents");
|
|
205
|
+
passed = true;
|
|
206
|
+
} finally {
|
|
207
|
+
if (passed) rmSync(root, { recursive: true, force: true, maxRetries: 5, retryDelay: 300 });
|
|
208
|
+
else console.error(`Package test artifacts retained at ${root}`);
|
|
209
|
+
}
|