@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.
@@ -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-GLCLSBT6.js";
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 readJsonIfExists(file);
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 readJsonIfExists(this.paths.memoryFile(memoryId));
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 record = await readJsonIfExists(join3(this.paths.memoriesDir, name));
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.selectFtsRows.setReadBigInts(true);
1160
- this.stmts.insertMessageRow.setReadBigInts(true);
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
- for await (const record of corpus.iterate()) {
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
- this.db.prepare("INSERT INTO index_meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(key, value);
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
- if (options.autoBuild !== false && (index.needsRebuild() || index.count() === 0 && index.countMemories() === 0)) {
1467
- await index.rebuildFrom(corpus);
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"]) {
@@ -38,7 +38,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
38
38
  ));
39
39
 
40
40
  // src/version.ts
41
- var VERSION = true ? "0.2.10" : "0.0.0-dev";
41
+ var VERSION = true ? "0.2.11" : "0.0.0-dev";
42
42
 
43
43
  export {
44
44
  __require,
@@ -17,17 +17,17 @@ import {
17
17
  runtimeBinDir,
18
18
  staleIndexFiles,
19
19
  uninstallRuntime
20
- } from "./chunk-XRA6OJC5.js";
20
+ } from "./chunk-7ISC4REX.js";
21
21
  import {
22
22
  VERSION,
23
23
  __commonJS,
24
24
  __require,
25
25
  __toESM
26
- } from "./chunk-GLCLSBT6.js";
26
+ } from "./chunk-ZYE6VY6A.js";
27
27
 
28
- // ../node_modules/isexe/windows.js
28
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/isexe/windows.js
29
29
  var require_windows = __commonJS({
30
- "../node_modules/isexe/windows.js"(exports, module) {
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
- // ../node_modules/isexe/mode.js
69
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/isexe/mode.js
70
70
  var require_mode = __commonJS({
71
- "../node_modules/isexe/mode.js"(exports, module) {
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
- // ../node_modules/isexe/index.js
103
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/isexe/index.js
104
104
  var require_isexe = __commonJS({
105
- "../node_modules/isexe/index.js"(exports, module) {
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
- // ../node_modules/which/which.js
159
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/which/which.js
160
160
  var require_which = __commonJS({
161
- "../node_modules/which/which.js"(exports, module) {
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
- // ../node_modules/path-key/index.js
256
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/path-key/index.js
257
257
  var require_path_key = __commonJS({
258
- "../node_modules/path-key/index.js"(exports, module) {
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
- // ../node_modules/cross-spawn/lib/util/resolveCommand.js
273
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/util/resolveCommand.js
274
274
  var require_resolveCommand = __commonJS({
275
- "../node_modules/cross-spawn/lib/util/resolveCommand.js"(exports, module) {
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
- // ../node_modules/cross-spawn/lib/util/escape.js
315
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/util/escape.js
316
316
  var require_escape = __commonJS({
317
- "../node_modules/cross-spawn/lib/util/escape.js"(exports, module) {
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
- // ../node_modules/shebang-regex/index.js
340
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/shebang-regex/index.js
341
341
  var require_shebang_regex = __commonJS({
342
- "../node_modules/shebang-regex/index.js"(exports, module) {
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
- // ../node_modules/shebang-command/index.js
348
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/shebang-command/index.js
349
349
  var require_shebang_command = __commonJS({
350
- "../node_modules/shebang-command/index.js"(exports, module) {
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
- // ../node_modules/cross-spawn/lib/util/readShebang.js
368
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/util/readShebang.js
369
369
  var require_readShebang = __commonJS({
370
- "../node_modules/cross-spawn/lib/util/readShebang.js"(exports, module) {
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
- // ../node_modules/cross-spawn/lib/parse.js
390
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/parse.js
391
391
  var require_parse = __commonJS({
392
- "../node_modules/cross-spawn/lib/parse.js"(exports, module) {
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
- // ../node_modules/cross-spawn/lib/enoent.js
452
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/lib/enoent.js
453
453
  var require_enoent = __commonJS({
454
- "../node_modules/cross-spawn/lib/enoent.js"(exports, module) {
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
- // ../node_modules/cross-spawn/index.js
502
+ // ../../../../Users/Kdog/Code-Projects/LLMnesia/node_modules/cross-spawn/index.js
503
503
  var require_cross_spawn = __commonJS({
504
- "../node_modules/cross-spawn/index.js"(exports, module) {
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
- // ../node_modules/chokidar/esm/index.js
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
- // ../node_modules/readdirp/esm/index.js
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
- // ../node_modules/chokidar/esm/handler.js
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
- // ../node_modules/chokidar/esm/index.js
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-GLCLSBT6.js";
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-2IIJ77ZQ.js");
144
+ const { main } = await import("./cli-RQMFEW5J.js");
145
145
  return main();
146
146
  }
147
147
  bootstrap().then((code) => {
Binary file