@xdarkicex/openclaw-memory-libravdb 1.4.65 → 1.4.67

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/cli.js CHANGED
@@ -6,6 +6,7 @@ import { resolveIdentity } from "./identity.js";
6
6
  import { formatError } from "./format-error.js";
7
7
  import { promoteDreamDiaryFile } from "./dream-promotion.js";
8
8
  import { buildMemoryRuntimeBridge } from "./memory-runtime.js";
9
+ const INDEX_REBUILD_TIMEOUT_MS = 5 * 60 * 1000;
9
10
  export function registerMemoryCli(api, runtime, cfg, logger = console) {
10
11
  if (!api.registerCli) {
11
12
  return;
@@ -244,7 +245,7 @@ function formatDeepStatusTableRows(deep) {
244
245
  }
245
246
  return rows;
246
247
  }
247
- async function runIndex(runtime, _cfg, opts, logger, params = {}) {
248
+ async function runIndex(runtime, cfg, opts, logger, params = {}) {
248
249
  if (!opts?.force) {
249
250
  logger.error("LibraVDB index rebuild requires --force. This re-embeds all stored documents with the current model and may be slow.");
250
251
  process.exitCode = 1;
@@ -260,6 +261,8 @@ async function runIndex(runtime, _cfg, opts, logger, params = {}) {
260
261
  const result = await rpc.call("rebuild_index", {
261
262
  namespace: namespace ?? "",
262
263
  ...(collections?.length ? { collections } : {}),
264
+ }, {
265
+ timeoutMs: resolveIndexRebuildTimeoutMs(cfg),
263
266
  });
264
267
  if (!params.quiet) {
265
268
  console.log(`Collections processed: ${result.collectionsProcessed ?? 0}`);
@@ -281,6 +284,9 @@ async function runIndex(runtime, _cfg, opts, logger, params = {}) {
281
284
  process.exitCode = 1;
282
285
  }
283
286
  }
287
+ function resolveIndexRebuildTimeoutMs(cfg) {
288
+ return Math.max(INDEX_REBUILD_TIMEOUT_MS, cfg.rpcTimeoutMs ?? 0);
289
+ }
284
290
  async function runSearch(runtime, cfg, queryArg, opts, logger) {
285
291
  const query = opts?.query?.trim() || queryArg?.trim();
286
292
  if (!query) {
@@ -605,11 +605,12 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
605
605
  info: { id: "libravdb-memory", name: "LibraVDB Memory", ownsCompaction: true },
606
606
  ownsCompaction: true,
607
607
  async bootstrap(args) {
608
+ const sessionId = requireSessionId(args.sessionId, "bootstrap");
608
609
  const userId = resolveUserId({
609
610
  userIdOverride: args.userId,
610
611
  sessionKey: args.sessionKey,
611
612
  });
612
- logger.info?.(`LibraVDB bootstrap sessionId=${args.sessionId} userId=${userId} ` +
613
+ logger.info?.(`LibraVDB bootstrap sessionId=${sessionId} userId=${userId} ` +
613
614
  `sessionKey=${args.sessionKey ?? "(none)"}`);
614
615
  const kernel = await getKernelOrNull("bootstrap");
615
616
  if (kernel) {
@@ -623,7 +624,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
623
624
  // Proceed even if initialize session fails or doesn't return nonce if secret optional
624
625
  }
625
626
  return await kernel.bootstrapSession({
626
- sessionId: args.sessionId,
627
+ sessionId,
627
628
  sessionKey: args.sessionKey,
628
629
  userId,
629
630
  });
@@ -631,23 +632,25 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
631
632
  const rpc = await runtime.getRpc();
632
633
  return await rpc.call("bootstrap_session_kernel", {
633
634
  ...args,
635
+ sessionId,
634
636
  userId,
635
637
  });
636
638
  },
637
639
  async ingest(args) {
640
+ const sessionId = requireSessionId(args.sessionId, "ingest");
638
641
  const userId = resolveUserId({
639
642
  userIdOverride: args.userId,
640
643
  sessionKey: args.sessionKey,
641
644
  });
642
645
  const message = normalizeKernelMessage(args.message);
643
- logger.info?.(`LibraVDB ingest sessionId=${args.sessionId} userId=${userId} ` +
646
+ logger.info?.(`LibraVDB ingest sessionId=${sessionId} userId=${userId} ` +
644
647
  `role=${message.role} heartbeat=${args.isHeartbeat ?? false} ` +
645
648
  `contentLen=${message.content.length}`);
646
649
  try {
647
650
  const kernel = await getKernelOrNull("ingest");
648
651
  if (kernel) {
649
652
  return await kernel.ingestMessage({
650
- sessionId: args.sessionId,
653
+ sessionId,
651
654
  sessionKey: args.sessionKey,
652
655
  userId,
653
656
  message,
@@ -657,17 +660,19 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
657
660
  const rpc = await runtime.getRpc();
658
661
  return await rpc.call("ingest_message_kernel", {
659
662
  ...args,
663
+ sessionId,
660
664
  userId,
661
665
  message,
662
666
  });
663
667
  }
664
668
  catch (error) {
665
- logger.warn?.(`LibraVDB ingest failed sessionId=${args.sessionId}: ` +
669
+ logger.warn?.(`LibraVDB ingest failed sessionId=${sessionId}: ` +
666
670
  `${error instanceof Error ? error.message : String(error)}`);
667
671
  throw error;
668
672
  }
669
673
  },
670
674
  async assemble(args) {
675
+ const sessionId = requireSessionId(args.sessionId, "assemble");
671
676
  const userId = resolveUserId({
672
677
  userIdOverride: args.userId,
673
678
  sessionKey: args.sessionKey,
@@ -687,14 +692,14 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
687
692
  logPredictiveCompactionAttempt({
688
693
  logger,
689
694
  phase: "assemble",
690
- sessionId: args.sessionId,
695
+ sessionId,
691
696
  currentTokenCount: currentContextTokens,
692
697
  threshold: dynamicCompactThreshold,
693
698
  targetSize: predictiveTargetSize,
694
699
  tokenBudget: args.tokenBudget,
695
700
  });
696
701
  const compactionResult = await runCompaction({
697
- sessionId: args.sessionId,
702
+ sessionId,
698
703
  targetSize: predictiveTargetSize,
699
704
  tokenBudget: args.tokenBudget,
700
705
  force: true,
@@ -703,7 +708,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
703
708
  logPredictiveCompactionOutcome({
704
709
  logger,
705
710
  phase: "assemble",
706
- sessionId: args.sessionId,
711
+ sessionId,
707
712
  currentTokenCount: currentContextTokens,
708
713
  threshold: dynamicCompactThreshold,
709
714
  targetSize: predictiveTargetSize,
@@ -721,7 +726,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
721
726
  if (kernel) {
722
727
  try {
723
728
  const assembled = normalizeAssembleResult(await kernel.assembleContext({
724
- sessionId: args.sessionId,
729
+ sessionId,
725
730
  sessionKey: args.sessionKey,
726
731
  userId,
727
732
  queryText: args.prompt ?? "",
@@ -733,7 +738,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
733
738
  return enforceTokenBudgetInvariant(await augmentWithExactRecall(assembled, {
734
739
  queryText: args.prompt ?? messages[messages.length - 1]?.content ?? "",
735
740
  userId,
736
- sessionId: args.sessionId,
741
+ sessionId,
737
742
  tokenBudget: args.tokenBudget,
738
743
  }), args.tokenBudget);
739
744
  }
@@ -745,7 +750,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
745
750
  const rpc = await runtime.getRpc();
746
751
  try {
747
752
  const resp = await rpc.call("assemble_context_internal", {
748
- sessionId: args.sessionId,
753
+ sessionId,
749
754
  sessionKey: args.sessionKey,
750
755
  userId,
751
756
  messages,
@@ -758,7 +763,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
758
763
  return enforceTokenBudgetInvariant(await augmentWithExactRecall(assembled, {
759
764
  queryText: args.prompt ?? messages[messages.length - 1]?.content ?? "",
760
765
  userId,
761
- sessionId: args.sessionId,
766
+ sessionId,
762
767
  tokenBudget: args.tokenBudget,
763
768
  }), args.tokenBudget);
764
769
  }
@@ -771,6 +776,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
771
776
  return await runCompaction(args);
772
777
  },
773
778
  async afterTurn(args) {
779
+ const sessionId = requireSessionId(args.sessionId, "afterTurn");
774
780
  const userId = resolveUserId({
775
781
  userIdOverride: args.userId,
776
782
  sessionKey: args.sessionKey,
@@ -778,7 +784,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
778
784
  const afterTurnMessages = selectAfterTurnMessages(args.messages, args.prePromptMessageCount, logger);
779
785
  const messages = normalizeKernelMessages(afterTurnMessages);
780
786
  const msgCount = messages.length;
781
- logger.info?.(`LibraVDB afterTurn sessionId=${args.sessionId} userId=${userId} ` +
787
+ logger.info?.(`LibraVDB afterTurn sessionId=${sessionId} userId=${userId} ` +
782
788
  `messageCount=${msgCount} totalMessages=${args.messages.length} ` +
783
789
  `prePromptMessageCount=${args.prePromptMessageCount ?? "unknown"} ` +
784
790
  `heartbeat=${args.isHeartbeat ?? false}`);
@@ -789,14 +795,14 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
789
795
  : undefined);
790
796
  if (kernel) {
791
797
  const result = await kernel.afterTurn({
792
- sessionId: args.sessionId,
798
+ sessionId,
793
799
  sessionKey: args.sessionKey,
794
800
  userId,
795
801
  messages,
796
802
  isHeartbeat: args.isHeartbeat,
797
803
  });
798
804
  await performAfterTurnPredictiveCompaction({
799
- sessionId: args.sessionId,
805
+ sessionId,
800
806
  tokenBudget: args.tokenBudget,
801
807
  currentTokenCount,
802
808
  });
@@ -804,21 +810,21 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
804
810
  }
805
811
  const rpc = await runtime.getRpc();
806
812
  const result = await rpc.call("after_turn_kernel", {
807
- sessionId: args.sessionId,
813
+ sessionId,
808
814
  sessionKey: args.sessionKey,
809
815
  userId,
810
816
  messages,
811
817
  isHeartbeat: args.isHeartbeat,
812
818
  });
813
819
  await performAfterTurnPredictiveCompaction({
814
- sessionId: args.sessionId,
820
+ sessionId,
815
821
  tokenBudget: args.tokenBudget,
816
822
  currentTokenCount,
817
823
  });
818
824
  return result;
819
825
  }
820
826
  catch (error) {
821
- logger.warn?.(`LibraVDB afterTurn failed sessionId=${args.sessionId}: ` +
827
+ logger.warn?.(`LibraVDB afterTurn failed sessionId=${sessionId}: ` +
822
828
  `${error instanceof Error ? error.message : String(error)}`);
823
829
  throw error;
824
830
  }
package/dist/index.js CHANGED
@@ -33185,6 +33185,7 @@ function normalizeNumber(value) {
33185
33185
  }
33186
33186
 
33187
33187
  // src/cli.ts
33188
+ var INDEX_REBUILD_TIMEOUT_MS = 5 * 60 * 1e3;
33188
33189
  function registerMemoryCli(api, runtime, cfg, logger = console) {
33189
33190
  if (!api.registerCli) {
33190
33191
  return;
@@ -33397,7 +33398,7 @@ function formatDeepStatusTableRows(deep) {
33397
33398
  }
33398
33399
  return rows;
33399
33400
  }
33400
- async function runIndex(runtime, _cfg, opts, logger, params = {}) {
33401
+ async function runIndex(runtime, cfg, opts, logger, params = {}) {
33401
33402
  if (!opts?.force) {
33402
33403
  logger.error("LibraVDB index rebuild requires --force. This re-embeds all stored documents with the current model and may be slow.");
33403
33404
  process.exitCode = 1;
@@ -33410,6 +33411,8 @@ async function runIndex(runtime, _cfg, opts, logger, params = {}) {
33410
33411
  const result = await rpc.call("rebuild_index", {
33411
33412
  namespace: namespace ?? "",
33412
33413
  ...collections?.length ? { collections } : {}
33414
+ }, {
33415
+ timeoutMs: resolveIndexRebuildTimeoutMs(cfg)
33413
33416
  });
33414
33417
  if (!params.quiet) {
33415
33418
  console.log(`Collections processed: ${result.collectionsProcessed ?? 0}`);
@@ -33430,6 +33433,9 @@ async function runIndex(runtime, _cfg, opts, logger, params = {}) {
33430
33433
  process.exitCode = 1;
33431
33434
  }
33432
33435
  }
33436
+ function resolveIndexRebuildTimeoutMs(cfg) {
33437
+ return Math.max(INDEX_REBUILD_TIMEOUT_MS, cfg.rpcTimeoutMs ?? 0);
33438
+ }
33433
33439
  async function runSearch(runtime, cfg, queryArg, opts, logger) {
33434
33440
  const query = opts?.query?.trim() || queryArg?.trim();
33435
33441
  if (!query) {
@@ -34217,12 +34223,13 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34217
34223
  info: { id: "libravdb-memory", name: "LibraVDB Memory", ownsCompaction: true },
34218
34224
  ownsCompaction: true,
34219
34225
  async bootstrap(args) {
34226
+ const sessionId = requireSessionId(args.sessionId, "bootstrap");
34220
34227
  const userId = resolveUserId({
34221
34228
  userIdOverride: args.userId,
34222
34229
  sessionKey: args.sessionKey
34223
34230
  });
34224
34231
  logger.info?.(
34225
- `LibraVDB bootstrap sessionId=${args.sessionId} userId=${userId} sessionKey=${args.sessionKey ?? "(none)"}`
34232
+ `LibraVDB bootstrap sessionId=${sessionId} userId=${userId} sessionKey=${args.sessionKey ?? "(none)"}`
34226
34233
  );
34227
34234
  const kernel = await getKernelOrNull("bootstrap");
34228
34235
  if (kernel) {
@@ -34234,7 +34241,7 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34234
34241
  } catch (error) {
34235
34242
  }
34236
34243
  return await kernel.bootstrapSession({
34237
- sessionId: args.sessionId,
34244
+ sessionId,
34238
34245
  sessionKey: args.sessionKey,
34239
34246
  userId
34240
34247
  });
@@ -34242,23 +34249,25 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34242
34249
  const rpc = await runtime.getRpc();
34243
34250
  return await rpc.call("bootstrap_session_kernel", {
34244
34251
  ...args,
34252
+ sessionId,
34245
34253
  userId
34246
34254
  });
34247
34255
  },
34248
34256
  async ingest(args) {
34257
+ const sessionId = requireSessionId(args.sessionId, "ingest");
34249
34258
  const userId = resolveUserId({
34250
34259
  userIdOverride: args.userId,
34251
34260
  sessionKey: args.sessionKey
34252
34261
  });
34253
34262
  const message = normalizeKernelMessage(args.message);
34254
34263
  logger.info?.(
34255
- `LibraVDB ingest sessionId=${args.sessionId} userId=${userId} role=${message.role} heartbeat=${args.isHeartbeat ?? false} contentLen=${message.content.length}`
34264
+ `LibraVDB ingest sessionId=${sessionId} userId=${userId} role=${message.role} heartbeat=${args.isHeartbeat ?? false} contentLen=${message.content.length}`
34256
34265
  );
34257
34266
  try {
34258
34267
  const kernel = await getKernelOrNull("ingest");
34259
34268
  if (kernel) {
34260
34269
  return await kernel.ingestMessage({
34261
- sessionId: args.sessionId,
34270
+ sessionId,
34262
34271
  sessionKey: args.sessionKey,
34263
34272
  userId,
34264
34273
  message,
@@ -34268,17 +34277,19 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34268
34277
  const rpc = await runtime.getRpc();
34269
34278
  return await rpc.call("ingest_message_kernel", {
34270
34279
  ...args,
34280
+ sessionId,
34271
34281
  userId,
34272
34282
  message
34273
34283
  });
34274
34284
  } catch (error) {
34275
34285
  logger.warn?.(
34276
- `LibraVDB ingest failed sessionId=${args.sessionId}: ${error instanceof Error ? error.message : String(error)}`
34286
+ `LibraVDB ingest failed sessionId=${sessionId}: ${error instanceof Error ? error.message : String(error)}`
34277
34287
  );
34278
34288
  throw error;
34279
34289
  }
34280
34290
  },
34281
34291
  async assemble(args) {
34292
+ const sessionId = requireSessionId(args.sessionId, "assemble");
34282
34293
  const userId = resolveUserId({
34283
34294
  userIdOverride: args.userId,
34284
34295
  sessionKey: args.sessionKey
@@ -34298,14 +34309,14 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34298
34309
  logPredictiveCompactionAttempt({
34299
34310
  logger,
34300
34311
  phase: "assemble",
34301
- sessionId: args.sessionId,
34312
+ sessionId,
34302
34313
  currentTokenCount: currentContextTokens,
34303
34314
  threshold: dynamicCompactThreshold,
34304
34315
  targetSize: predictiveTargetSize,
34305
34316
  tokenBudget: args.tokenBudget
34306
34317
  });
34307
34318
  const compactionResult = await runCompaction({
34308
- sessionId: args.sessionId,
34319
+ sessionId,
34309
34320
  targetSize: predictiveTargetSize,
34310
34321
  tokenBudget: args.tokenBudget,
34311
34322
  force: true,
@@ -34314,7 +34325,7 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34314
34325
  logPredictiveCompactionOutcome({
34315
34326
  logger,
34316
34327
  phase: "assemble",
34317
- sessionId: args.sessionId,
34328
+ sessionId,
34318
34329
  currentTokenCount: currentContextTokens,
34319
34330
  threshold: dynamicCompactThreshold,
34320
34331
  targetSize: predictiveTargetSize,
@@ -34333,7 +34344,7 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34333
34344
  if (kernel) {
34334
34345
  try {
34335
34346
  const assembled = normalizeAssembleResult(await kernel.assembleContext({
34336
- sessionId: args.sessionId,
34347
+ sessionId,
34337
34348
  sessionKey: args.sessionKey,
34338
34349
  userId,
34339
34350
  queryText: args.prompt ?? "",
@@ -34346,7 +34357,7 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34346
34357
  await augmentWithExactRecall(assembled, {
34347
34358
  queryText: args.prompt ?? messages[messages.length - 1]?.content ?? "",
34348
34359
  userId,
34349
- sessionId: args.sessionId,
34360
+ sessionId,
34350
34361
  tokenBudget: args.tokenBudget
34351
34362
  }),
34352
34363
  args.tokenBudget
@@ -34361,7 +34372,7 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34361
34372
  const rpc = await runtime.getRpc();
34362
34373
  try {
34363
34374
  const resp = await rpc.call("assemble_context_internal", {
34364
- sessionId: args.sessionId,
34375
+ sessionId,
34365
34376
  sessionKey: args.sessionKey,
34366
34377
  userId,
34367
34378
  messages,
@@ -34375,7 +34386,7 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34375
34386
  await augmentWithExactRecall(assembled, {
34376
34387
  queryText: args.prompt ?? messages[messages.length - 1]?.content ?? "",
34377
34388
  userId,
34378
- sessionId: args.sessionId,
34389
+ sessionId,
34379
34390
  tokenBudget: args.tokenBudget
34380
34391
  }),
34381
34392
  args.tokenBudget
@@ -34391,6 +34402,7 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34391
34402
  return await runCompaction(args);
34392
34403
  },
34393
34404
  async afterTurn(args) {
34405
+ const sessionId = requireSessionId(args.sessionId, "afterTurn");
34394
34406
  const userId = resolveUserId({
34395
34407
  userIdOverride: args.userId,
34396
34408
  sessionKey: args.sessionKey
@@ -34399,7 +34411,7 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34399
34411
  const messages = normalizeKernelMessages(afterTurnMessages);
34400
34412
  const msgCount = messages.length;
34401
34413
  logger.info?.(
34402
- `LibraVDB afterTurn sessionId=${args.sessionId} userId=${userId} messageCount=${msgCount} totalMessages=${args.messages.length} prePromptMessageCount=${args.prePromptMessageCount ?? "unknown"} heartbeat=${args.isHeartbeat ?? false}`
34414
+ `LibraVDB afterTurn sessionId=${sessionId} userId=${userId} messageCount=${msgCount} totalMessages=${args.messages.length} prePromptMessageCount=${args.prePromptMessageCount ?? "unknown"} heartbeat=${args.isHeartbeat ?? false}`
34403
34415
  );
34404
34416
  try {
34405
34417
  const kernel = await getKernelOrNull("afterTurn");
@@ -34408,14 +34420,14 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34408
34420
  );
34409
34421
  if (kernel) {
34410
34422
  const result2 = await kernel.afterTurn({
34411
- sessionId: args.sessionId,
34423
+ sessionId,
34412
34424
  sessionKey: args.sessionKey,
34413
34425
  userId,
34414
34426
  messages,
34415
34427
  isHeartbeat: args.isHeartbeat
34416
34428
  });
34417
34429
  await performAfterTurnPredictiveCompaction({
34418
- sessionId: args.sessionId,
34430
+ sessionId,
34419
34431
  tokenBudget: args.tokenBudget,
34420
34432
  currentTokenCount
34421
34433
  });
@@ -34423,21 +34435,21 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
34423
34435
  }
34424
34436
  const rpc = await runtime.getRpc();
34425
34437
  const result = await rpc.call("after_turn_kernel", {
34426
- sessionId: args.sessionId,
34438
+ sessionId,
34427
34439
  sessionKey: args.sessionKey,
34428
34440
  userId,
34429
34441
  messages,
34430
34442
  isHeartbeat: args.isHeartbeat
34431
34443
  });
34432
34444
  await performAfterTurnPredictiveCompaction({
34433
- sessionId: args.sessionId,
34445
+ sessionId,
34434
34446
  tokenBudget: args.tokenBudget,
34435
34447
  currentTokenCount
34436
34448
  });
34437
34449
  return result;
34438
34450
  } catch (error) {
34439
34451
  logger.warn?.(
34440
- `LibraVDB afterTurn failed sessionId=${args.sessionId}: ${error instanceof Error ? error.message : String(error)}`
34452
+ `LibraVDB afterTurn failed sessionId=${sessionId}: ${error instanceof Error ? error.message : String(error)}`
34441
34453
  );
34442
34454
  throw error;
34443
34455
  }
@@ -2,7 +2,7 @@
2
2
  "id": "libravdb-memory",
3
3
  "name": "LibraVDB Memory",
4
4
  "description": "Persistent vector memory with three-tier hybrid scoring",
5
- "version": "1.4.65",
5
+ "version": "1.4.67",
6
6
  "kind": [
7
7
  "memory",
8
8
  "context-engine"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xdarkicex/openclaw-memory-libravdb",
3
- "version": "1.4.65",
3
+ "version": "1.4.67",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",