@llmnesia/mcp 0.2.10 → 0.2.11
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/{chunk-XRA6OJC5.js → chunk-7ISC4REX.js} +98 -38
- package/dist/{chunk-GLCLSBT6.js → chunk-ZYE6VY6A.js} +1 -1
- package/dist/{cli-2IIJ77ZQ.js → cli-RQMFEW5J.js} +32 -32
- package/dist/cli.js +2 -2
- package/dist/llmnesia.mcpb +0 -0
- package/dist/mcp.js +269 -236
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -3,7 +3,7 @@ import { createRequire as __llmnesiaCreateRequire } from "node:module";
|
|
|
3
3
|
const require = __llmnesiaCreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
VERSION
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZYE6VY6A.js";
|
|
7
7
|
|
|
8
8
|
// src/config.ts
|
|
9
9
|
import { readFileSync } from "fs";
|
|
@@ -403,7 +403,7 @@ var Corpus = class {
|
|
|
403
403
|
return this.enqueueWrite(async () => {
|
|
404
404
|
const canonical = canonicalizeMemory(memory);
|
|
405
405
|
const file = this.paths.memoryFile(canonical.memoryId);
|
|
406
|
-
const existing = await
|
|
406
|
+
const existing = await readMemoryIfExists(file);
|
|
407
407
|
if (existing) {
|
|
408
408
|
if (existing.source !== "agent") {
|
|
409
409
|
return { memoryId: canonical.memoryId, outcome: "refused" };
|
|
@@ -418,44 +418,48 @@ var Corpus = class {
|
|
|
418
418
|
}
|
|
419
419
|
/** Read a memory by memoryId, or null when it has never been written. */
|
|
420
420
|
async getMemory(memoryId) {
|
|
421
|
-
const record = await
|
|
421
|
+
const record = await readMemoryIfExists(this.paths.memoryFile(memoryId));
|
|
422
422
|
return record && record.memoryId === memoryId ? record : null;
|
|
423
423
|
}
|
|
424
424
|
/** Async-iterate every stored memory (used by the index rebuild). */
|
|
425
|
-
async *iterateMemories() {
|
|
425
|
+
async *iterateMemories(options = {}) {
|
|
426
426
|
let files;
|
|
427
427
|
try {
|
|
428
428
|
files = await fs.readdir(this.paths.memoriesDir);
|
|
429
|
-
} catch {
|
|
429
|
+
} catch (error) {
|
|
430
|
+
if (options.strict) throw error;
|
|
430
431
|
return;
|
|
431
432
|
}
|
|
432
433
|
for (const name of files.sort()) {
|
|
433
434
|
if (!name.endsWith(".json")) {
|
|
434
435
|
continue;
|
|
435
436
|
}
|
|
436
|
-
const
|
|
437
|
+
const file = join3(this.paths.memoriesDir, name);
|
|
438
|
+
const record = options.strict ? await readRequiredJson(file, isMemoryRecord) : await readJsonIfExists(file);
|
|
437
439
|
if (record?.memoryId) {
|
|
438
440
|
yield record;
|
|
439
441
|
}
|
|
440
442
|
}
|
|
441
443
|
}
|
|
442
444
|
/** Platform subdirectory names under conversations/. */
|
|
443
|
-
async listPlatforms() {
|
|
445
|
+
async listPlatforms(options = {}) {
|
|
444
446
|
try {
|
|
445
447
|
const entries = await fs.readdir(this.paths.conversationsDir, { withFileTypes: true });
|
|
446
448
|
return entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
447
|
-
} catch {
|
|
449
|
+
} catch (error) {
|
|
450
|
+
if (options.strict) throw error;
|
|
448
451
|
return [];
|
|
449
452
|
}
|
|
450
453
|
}
|
|
451
454
|
/** Async-iterate every stored conversation (used by reindex + stats). */
|
|
452
|
-
async *iterate() {
|
|
453
|
-
for (const platform of await this.listPlatforms()) {
|
|
455
|
+
async *iterate(options = {}) {
|
|
456
|
+
for (const platform of await this.listPlatforms(options)) {
|
|
454
457
|
const dir = this.paths.platformDir(platform);
|
|
455
458
|
let files;
|
|
456
459
|
try {
|
|
457
460
|
files = await fs.readdir(dir);
|
|
458
|
-
} catch {
|
|
461
|
+
} catch (error) {
|
|
462
|
+
if (options.strict) throw error;
|
|
459
463
|
continue;
|
|
460
464
|
}
|
|
461
465
|
const stems = /* @__PURE__ */ new Set();
|
|
@@ -466,7 +470,8 @@ var Corpus = class {
|
|
|
466
470
|
for (const stem of [...stems].sort()) {
|
|
467
471
|
const record = await readBestConversationFiles(
|
|
468
472
|
join3(dir, `${stem}.json.gz`),
|
|
469
|
-
join3(dir, `${stem}.json`)
|
|
473
|
+
join3(dir, `${stem}.json`),
|
|
474
|
+
options.strict
|
|
470
475
|
);
|
|
471
476
|
if (record) {
|
|
472
477
|
yield record;
|
|
@@ -629,6 +634,31 @@ async function readJsonIfExists(file) {
|
|
|
629
634
|
return null;
|
|
630
635
|
}
|
|
631
636
|
}
|
|
637
|
+
function isConversationRecord(value) {
|
|
638
|
+
if (!value || typeof value !== "object") return false;
|
|
639
|
+
const record = value;
|
|
640
|
+
const c = record.conversation;
|
|
641
|
+
return !!c && typeof c.docId === "string" && !!c.docId && typeof c.platform === "string" && typeof c.title === "string" && typeof c.url === "string" && Number.isFinite(c.createdAt) && Array.isArray(record.messages) && record.messages.every((m) => m && typeof m.text === "string" && typeof m.role === "string" && Number.isFinite(m.msgIndex));
|
|
642
|
+
}
|
|
643
|
+
function isMemoryRecord(value) {
|
|
644
|
+
if (!value || typeof value !== "object") return false;
|
|
645
|
+
const m = value;
|
|
646
|
+
return typeof m.memoryId === "string" && !!m.memoryId && typeof m.kind === "string" && typeof m.label === "string" && typeof m.text === "string" && typeof m.source === "string" && typeof m.enabled === "boolean" && typeof m.pinned === "boolean" && Number.isFinite(m.createdAt) && Number.isFinite(m.updatedAt);
|
|
647
|
+
}
|
|
648
|
+
async function readRequiredJson(file, validate, compressed = false) {
|
|
649
|
+
const raw = await fs.readFile(file);
|
|
650
|
+
const value = JSON.parse((compressed ? await gunzip(raw) : raw).toString("utf8"));
|
|
651
|
+
if (!validate(value)) throw new Error(`Invalid canonical record at ${file}`);
|
|
652
|
+
return value;
|
|
653
|
+
}
|
|
654
|
+
async function readMemoryIfExists(file) {
|
|
655
|
+
try {
|
|
656
|
+
return await readRequiredJson(file, isMemoryRecord);
|
|
657
|
+
} catch (error) {
|
|
658
|
+
if (error.code === "ENOENT") return null;
|
|
659
|
+
throw error;
|
|
660
|
+
}
|
|
661
|
+
}
|
|
632
662
|
function serializeConversation(record) {
|
|
633
663
|
return `${JSON.stringify(canonicalizeConversation(record), null, 2)}
|
|
634
664
|
`;
|
|
@@ -644,7 +674,19 @@ async function readCompressedConversationIfExists(file) {
|
|
|
644
674
|
return null;
|
|
645
675
|
}
|
|
646
676
|
}
|
|
647
|
-
async function readBestConversationFiles(compressedFile, legacyFile) {
|
|
677
|
+
async function readBestConversationFiles(compressedFile, legacyFile, strict = false) {
|
|
678
|
+
if (strict) {
|
|
679
|
+
const copies = await Promise.allSettled([
|
|
680
|
+
readRequiredJson(compressedFile, isConversationRecord, true),
|
|
681
|
+
readRequiredJson(legacyFile, isConversationRecord)
|
|
682
|
+
]);
|
|
683
|
+
const valid = copies.flatMap((result) => result.status === "fulfilled" ? [result.value] : []);
|
|
684
|
+
if (valid.length > 0) return pickNewerConversation(valid[0], valid[1] ?? null);
|
|
685
|
+
throw new Error(
|
|
686
|
+
`Cannot rebuild the index: no readable conversation at ${compressedFile} or ${legacyFile}`,
|
|
687
|
+
{ cause: copies.find((result) => result.status === "rejected") }
|
|
688
|
+
);
|
|
689
|
+
}
|
|
648
690
|
const [compressed, legacy] = await Promise.all([
|
|
649
691
|
readCompressedConversationIfExists(compressedFile),
|
|
650
692
|
readPlainConversationIfExists(legacyFile)
|
|
@@ -665,6 +707,8 @@ function readBestConversationFilesSync(compressedFile, legacyFile) {
|
|
|
665
707
|
return pickNewerConversation(compressed, legacy);
|
|
666
708
|
}
|
|
667
709
|
function pickNewerConversation(a, b) {
|
|
710
|
+
if (!isConversationRecord(a)) a = null;
|
|
711
|
+
if (!isConversationRecord(b)) b = null;
|
|
668
712
|
if (!a) return b;
|
|
669
713
|
if (!b) return a;
|
|
670
714
|
const aChanged = a.conversation.corpusChangedAt ?? a.conversation.updatedAt ?? 0;
|
|
@@ -735,7 +779,11 @@ async function upsertIndexedConversation(corpus, record, index) {
|
|
|
735
779
|
if (!saved) {
|
|
736
780
|
throw new Error(`Saved conversation '${result.docId}' could not be read for indexing`);
|
|
737
781
|
}
|
|
738
|
-
index.upsertConversation(saved)
|
|
782
|
+
index.upsertConversation(saved, () => {
|
|
783
|
+
const current = corpus.getFromPlatformSync(record.conversation.platform, result.docId);
|
|
784
|
+
if (!current) throw new Error(`Saved conversation '${result.docId}' could not be read for indexing`);
|
|
785
|
+
return current;
|
|
786
|
+
});
|
|
739
787
|
}
|
|
740
788
|
return result;
|
|
741
789
|
}
|
|
@@ -806,8 +854,9 @@ async function ingestFile(corpus, file, index) {
|
|
|
806
854
|
async function pendingInboxFiles(corpus) {
|
|
807
855
|
try {
|
|
808
856
|
return (await fs2.readdir(corpus.paths.inboxDir, { withFileTypes: true })).filter((e) => e.isFile() && isNdjson(e.name)).map((e) => e.name).sort();
|
|
809
|
-
} catch {
|
|
810
|
-
return [];
|
|
857
|
+
} catch (error) {
|
|
858
|
+
if (error.code === "ENOENT") return [];
|
|
859
|
+
throw error;
|
|
811
860
|
}
|
|
812
861
|
}
|
|
813
862
|
async function drainInbox(corpus, index, options = {}) {
|
|
@@ -1156,8 +1205,9 @@ var SearchIndex = class {
|
|
|
1156
1205
|
FROM temp.snippet_fts WHERE snippet_fts MATCH ?`
|
|
1157
1206
|
)
|
|
1158
1207
|
};
|
|
1159
|
-
this.stmts
|
|
1160
|
-
|
|
1208
|
+
for (const statement of Object.values(this.stmts)) {
|
|
1209
|
+
statement.setReadBigInts(true);
|
|
1210
|
+
}
|
|
1161
1211
|
}
|
|
1162
1212
|
/** True when the stored format version was missing or stale — caller rebuilds. */
|
|
1163
1213
|
needsRebuild() {
|
|
@@ -1218,7 +1268,7 @@ var SearchIndex = class {
|
|
|
1218
1268
|
* because its body is async and cannot be expressed as a sync callback.
|
|
1219
1269
|
*/
|
|
1220
1270
|
transaction(fn) {
|
|
1221
|
-
this.db.exec("BEGIN");
|
|
1271
|
+
this.db.exec("BEGIN IMMEDIATE");
|
|
1222
1272
|
try {
|
|
1223
1273
|
const result = fn();
|
|
1224
1274
|
this.db.exec("COMMIT");
|
|
@@ -1228,8 +1278,8 @@ var SearchIndex = class {
|
|
|
1228
1278
|
throw err;
|
|
1229
1279
|
}
|
|
1230
1280
|
}
|
|
1231
|
-
upsertConversation(record) {
|
|
1232
|
-
this.transaction(() => this.writeRecord(record));
|
|
1281
|
+
upsertConversation(record, readCurrent) {
|
|
1282
|
+
this.transaction(() => this.writeRecord(readCurrent ? readCurrent() : record));
|
|
1233
1283
|
}
|
|
1234
1284
|
upsertMemory(memory) {
|
|
1235
1285
|
this.transaction(() => this.writeMemory(memory));
|
|
@@ -1246,18 +1296,17 @@ var SearchIndex = class {
|
|
|
1246
1296
|
* reads, which the sync {@link transaction} helper cannot hold.
|
|
1247
1297
|
*/
|
|
1248
1298
|
async rebuildFrom(corpus) {
|
|
1249
|
-
this.corpus = corpus;
|
|
1250
|
-
this.db.exec("DELETE FROM messages_fts; DELETE FROM message_rows; DELETE FROM conversations;");
|
|
1251
|
-
this.db.exec("DELETE FROM memories_fts; DELETE FROM memories;");
|
|
1252
1299
|
let conversations = 0;
|
|
1253
1300
|
let memories = 0;
|
|
1254
|
-
this.db.exec("BEGIN");
|
|
1301
|
+
this.db.exec("BEGIN IMMEDIATE");
|
|
1255
1302
|
try {
|
|
1256
|
-
|
|
1303
|
+
this.db.exec("DELETE FROM messages_fts; DELETE FROM message_rows; DELETE FROM conversations;");
|
|
1304
|
+
this.db.exec("DELETE FROM memories_fts; DELETE FROM memories;");
|
|
1305
|
+
for await (const record of corpus.iterate({ strict: true })) {
|
|
1257
1306
|
this.writeRecord(record);
|
|
1258
1307
|
conversations += 1;
|
|
1259
1308
|
}
|
|
1260
|
-
for await (const memory of corpus.iterateMemories()) {
|
|
1309
|
+
for await (const memory of corpus.iterateMemories({ strict: true })) {
|
|
1261
1310
|
this.writeMemory(memory);
|
|
1262
1311
|
memories += 1;
|
|
1263
1312
|
}
|
|
@@ -1266,6 +1315,7 @@ var SearchIndex = class {
|
|
|
1266
1315
|
this.db.exec("ROLLBACK");
|
|
1267
1316
|
throw err;
|
|
1268
1317
|
}
|
|
1318
|
+
this.corpus = corpus;
|
|
1269
1319
|
return { conversations, memories };
|
|
1270
1320
|
}
|
|
1271
1321
|
// Replace a conversation's index rows. Caller supplies the transaction (the
|
|
@@ -1372,7 +1422,6 @@ var SearchIndex = class {
|
|
|
1372
1422
|
clauses.push("json_extract(c.providerWorkspace, '$.workspaceId') = @providerWorkspaceId");
|
|
1373
1423
|
params.providerWorkspaceId = filters.providerWorkspaceId;
|
|
1374
1424
|
}
|
|
1375
|
-
const scanCap = Math.min(2e3, Math.max(200, limit * 40));
|
|
1376
1425
|
const sql = `
|
|
1377
1426
|
SELECT
|
|
1378
1427
|
c.docId, c.platform, c.title, c.url, c.createdAt, c.updatedAt,
|
|
@@ -1385,16 +1434,18 @@ var SearchIndex = class {
|
|
|
1385
1434
|
JOIN conversations c ON c.docId = m.docId
|
|
1386
1435
|
WHERE ${clauses.join(" AND ")}
|
|
1387
1436
|
ORDER BY bm25
|
|
1388
|
-
LIMIT @scanCap
|
|
1389
1437
|
`;
|
|
1390
|
-
const rows = this.db.prepare(sql).all({ ...params, scanCap });
|
|
1391
1438
|
const seen = /* @__PURE__ */ new Set();
|
|
1439
|
+
const rows = [];
|
|
1440
|
+
for (const value of this.db.prepare(sql).iterate(params)) {
|
|
1441
|
+
const row = value;
|
|
1442
|
+
if (seen.has(row.docId)) continue;
|
|
1443
|
+
seen.add(row.docId);
|
|
1444
|
+
rows.push(row);
|
|
1445
|
+
if (rows.length >= limit) break;
|
|
1446
|
+
}
|
|
1392
1447
|
const hits = [];
|
|
1393
1448
|
for (const row of rows) {
|
|
1394
|
-
if (seen.has(row.docId)) {
|
|
1395
|
-
continue;
|
|
1396
|
-
}
|
|
1397
|
-
seen.add(row.docId);
|
|
1398
1449
|
const hit = {
|
|
1399
1450
|
docId: row.docId,
|
|
1400
1451
|
platform: row.platform,
|
|
@@ -1457,16 +1508,25 @@ var SearchIndex = class {
|
|
|
1457
1508
|
return row ? row.value : null;
|
|
1458
1509
|
}
|
|
1459
1510
|
setMeta(key, value) {
|
|
1460
|
-
|
|
1511
|
+
const statement = this.db.prepare(
|
|
1512
|
+
"INSERT INTO index_meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value"
|
|
1513
|
+
);
|
|
1514
|
+
statement.setReadBigInts(true);
|
|
1515
|
+
statement.run(key, value);
|
|
1461
1516
|
}
|
|
1462
1517
|
};
|
|
1463
1518
|
async function openSearchIndex(corpus, options = {}) {
|
|
1464
1519
|
await corpus.init();
|
|
1465
1520
|
const index = new SearchIndex(corpus.paths.indexDbFile, corpus);
|
|
1466
|
-
|
|
1467
|
-
|
|
1521
|
+
try {
|
|
1522
|
+
if (options.autoBuild !== false && (index.needsRebuild() || index.count() === 0 && index.countMemories() === 0)) {
|
|
1523
|
+
await index.rebuildFrom(corpus);
|
|
1524
|
+
}
|
|
1525
|
+
return index;
|
|
1526
|
+
} catch (error) {
|
|
1527
|
+
index.close();
|
|
1528
|
+
throw error;
|
|
1468
1529
|
}
|
|
1469
|
-
return index;
|
|
1470
1530
|
}
|
|
1471
1531
|
async function deleteIndexDb(dbFile) {
|
|
1472
1532
|
for (const suffix of ["", "-wal", "-shm"]) {
|
|
@@ -17,17 +17,17 @@ import {
|
|
|
17
17
|
runtimeBinDir,
|
|
18
18
|
staleIndexFiles,
|
|
19
19
|
uninstallRuntime
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-7ISC4REX.js";
|
|
21
21
|
import {
|
|
22
22
|
VERSION,
|
|
23
23
|
__commonJS,
|
|
24
24
|
__require,
|
|
25
25
|
__toESM
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-ZYE6VY6A.js";
|
|
27
27
|
|
|
28
|
-
//
|
|
28
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/isexe/windows.js
|
|
29
29
|
var require_windows = __commonJS({
|
|
30
|
-
"
|
|
30
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/isexe/windows.js"(exports, module) {
|
|
31
31
|
"use strict";
|
|
32
32
|
module.exports = isexe;
|
|
33
33
|
isexe.sync = sync;
|
|
@@ -66,9 +66,9 @@ var require_windows = __commonJS({
|
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
68
|
|
|
69
|
-
//
|
|
69
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/isexe/mode.js
|
|
70
70
|
var require_mode = __commonJS({
|
|
71
|
-
"
|
|
71
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/isexe/mode.js"(exports, module) {
|
|
72
72
|
"use strict";
|
|
73
73
|
module.exports = isexe;
|
|
74
74
|
isexe.sync = sync;
|
|
@@ -100,9 +100,9 @@ var require_mode = __commonJS({
|
|
|
100
100
|
}
|
|
101
101
|
});
|
|
102
102
|
|
|
103
|
-
//
|
|
103
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/isexe/index.js
|
|
104
104
|
var require_isexe = __commonJS({
|
|
105
|
-
"
|
|
105
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/isexe/index.js"(exports, module) {
|
|
106
106
|
"use strict";
|
|
107
107
|
var fs = __require("fs");
|
|
108
108
|
var core;
|
|
@@ -156,9 +156,9 @@ var require_isexe = __commonJS({
|
|
|
156
156
|
}
|
|
157
157
|
});
|
|
158
158
|
|
|
159
|
-
//
|
|
159
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/which/which.js
|
|
160
160
|
var require_which = __commonJS({
|
|
161
|
-
"
|
|
161
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/which/which.js"(exports, module) {
|
|
162
162
|
"use strict";
|
|
163
163
|
var isWindows2 = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
|
|
164
164
|
var path = __require("path");
|
|
@@ -253,9 +253,9 @@ var require_which = __commonJS({
|
|
|
253
253
|
}
|
|
254
254
|
});
|
|
255
255
|
|
|
256
|
-
//
|
|
256
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/path-key/index.js
|
|
257
257
|
var require_path_key = __commonJS({
|
|
258
|
-
"
|
|
258
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/path-key/index.js"(exports, module) {
|
|
259
259
|
"use strict";
|
|
260
260
|
var pathKey = (options = {}) => {
|
|
261
261
|
const environment = options.env || process.env;
|
|
@@ -270,9 +270,9 @@ var require_path_key = __commonJS({
|
|
|
270
270
|
}
|
|
271
271
|
});
|
|
272
272
|
|
|
273
|
-
//
|
|
273
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/util/resolveCommand.js
|
|
274
274
|
var require_resolveCommand = __commonJS({
|
|
275
|
-
"
|
|
275
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/util/resolveCommand.js"(exports, module) {
|
|
276
276
|
"use strict";
|
|
277
277
|
var path = __require("path");
|
|
278
278
|
var which = require_which();
|
|
@@ -312,9 +312,9 @@ var require_resolveCommand = __commonJS({
|
|
|
312
312
|
}
|
|
313
313
|
});
|
|
314
314
|
|
|
315
|
-
//
|
|
315
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/util/escape.js
|
|
316
316
|
var require_escape = __commonJS({
|
|
317
|
-
"
|
|
317
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/util/escape.js"(exports, module) {
|
|
318
318
|
"use strict";
|
|
319
319
|
var metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g;
|
|
320
320
|
function escapeCommand(arg) {
|
|
@@ -337,17 +337,17 @@ var require_escape = __commonJS({
|
|
|
337
337
|
}
|
|
338
338
|
});
|
|
339
339
|
|
|
340
|
-
//
|
|
340
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/shebang-regex/index.js
|
|
341
341
|
var require_shebang_regex = __commonJS({
|
|
342
|
-
"
|
|
342
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/shebang-regex/index.js"(exports, module) {
|
|
343
343
|
"use strict";
|
|
344
344
|
module.exports = /^#!(.*)/;
|
|
345
345
|
}
|
|
346
346
|
});
|
|
347
347
|
|
|
348
|
-
//
|
|
348
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/shebang-command/index.js
|
|
349
349
|
var require_shebang_command = __commonJS({
|
|
350
|
-
"
|
|
350
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/shebang-command/index.js"(exports, module) {
|
|
351
351
|
"use strict";
|
|
352
352
|
var shebangRegex = require_shebang_regex();
|
|
353
353
|
module.exports = (string = "") => {
|
|
@@ -365,9 +365,9 @@ var require_shebang_command = __commonJS({
|
|
|
365
365
|
}
|
|
366
366
|
});
|
|
367
367
|
|
|
368
|
-
//
|
|
368
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/util/readShebang.js
|
|
369
369
|
var require_readShebang = __commonJS({
|
|
370
|
-
"
|
|
370
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/util/readShebang.js"(exports, module) {
|
|
371
371
|
"use strict";
|
|
372
372
|
var fs = __require("fs");
|
|
373
373
|
var shebangCommand = require_shebang_command();
|
|
@@ -387,9 +387,9 @@ var require_readShebang = __commonJS({
|
|
|
387
387
|
}
|
|
388
388
|
});
|
|
389
389
|
|
|
390
|
-
//
|
|
390
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/parse.js
|
|
391
391
|
var require_parse = __commonJS({
|
|
392
|
-
"
|
|
392
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/parse.js"(exports, module) {
|
|
393
393
|
"use strict";
|
|
394
394
|
var path = __require("path");
|
|
395
395
|
var resolveCommand = require_resolveCommand();
|
|
@@ -449,9 +449,9 @@ var require_parse = __commonJS({
|
|
|
449
449
|
}
|
|
450
450
|
});
|
|
451
451
|
|
|
452
|
-
//
|
|
452
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/enoent.js
|
|
453
453
|
var require_enoent = __commonJS({
|
|
454
|
-
"
|
|
454
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/enoent.js"(exports, module) {
|
|
455
455
|
"use strict";
|
|
456
456
|
var isWin = process.platform === "win32";
|
|
457
457
|
function notFoundError(original, syscall) {
|
|
@@ -499,9 +499,9 @@ var require_enoent = __commonJS({
|
|
|
499
499
|
}
|
|
500
500
|
});
|
|
501
501
|
|
|
502
|
-
//
|
|
502
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/index.js
|
|
503
503
|
var require_cross_spawn = __commonJS({
|
|
504
|
-
"
|
|
504
|
+
"../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/index.js"(exports, module) {
|
|
505
505
|
"use strict";
|
|
506
506
|
var cp = __require("child_process");
|
|
507
507
|
var parse = require_parse();
|
|
@@ -888,13 +888,13 @@ function parseArgs(argv) {
|
|
|
888
888
|
return { command: positionals[0], positionals: positionals.slice(1), options, flags };
|
|
889
889
|
}
|
|
890
890
|
|
|
891
|
-
//
|
|
891
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/chokidar/esm/index.js
|
|
892
892
|
import { stat as statcb } from "fs";
|
|
893
893
|
import { stat as stat4, readdir as readdir2 } from "fs/promises";
|
|
894
894
|
import { EventEmitter } from "events";
|
|
895
895
|
import * as sysPath2 from "path";
|
|
896
896
|
|
|
897
|
-
//
|
|
897
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/readdirp/esm/index.js
|
|
898
898
|
import { stat as stat2, lstat, readdir, realpath } from "fs/promises";
|
|
899
899
|
import { Readable } from "stream";
|
|
900
900
|
import { resolve as presolve, relative as prelative, join as pjoin, sep as psep } from "path";
|
|
@@ -1113,7 +1113,7 @@ function readdirp(root, options = {}) {
|
|
|
1113
1113
|
return new ReaddirpStream(options);
|
|
1114
1114
|
}
|
|
1115
1115
|
|
|
1116
|
-
//
|
|
1116
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/chokidar/esm/handler.js
|
|
1117
1117
|
import { watchFile, unwatchFile, watch as fs_watch } from "fs";
|
|
1118
1118
|
import { open, stat as stat3, lstat as lstat2, realpath as fsrealpath } from "fs/promises";
|
|
1119
1119
|
import * as sysPath from "path";
|
|
@@ -1869,7 +1869,7 @@ var NodeFsHandler = class {
|
|
|
1869
1869
|
}
|
|
1870
1870
|
};
|
|
1871
1871
|
|
|
1872
|
-
//
|
|
1872
|
+
// ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/chokidar/esm/index.js
|
|
1873
1873
|
var SLASH = "/";
|
|
1874
1874
|
var SLASH_SLASH = "//";
|
|
1875
1875
|
var ONE_DOT = ".";
|
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createRequire as __llmnesiaCreateRequire } from "node:module";
|
|
|
3
3
|
const require = __llmnesiaCreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
VERSION
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZYE6VY6A.js";
|
|
7
7
|
|
|
8
8
|
// src/nodeDownload.ts
|
|
9
9
|
var NODE_DOWNLOAD_URLS = {
|
|
@@ -141,7 +141,7 @@ async function bootstrap() {
|
|
|
141
141
|
await guideUnsupportedNodeVersion(process.versions.node);
|
|
142
142
|
return 1;
|
|
143
143
|
}
|
|
144
|
-
const { main } = await import("./cli-
|
|
144
|
+
const { main } = await import("./cli-RQMFEW5J.js");
|
|
145
145
|
return main();
|
|
146
146
|
}
|
|
147
147
|
bootstrap().then((code) => {
|
package/dist/llmnesia.mcpb
CHANGED
|
Binary file
|