@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 +7 -1
- package/dist/context-engine.js +24 -18
- package/dist/index.js +31 -19
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
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,
|
|
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) {
|
package/dist/context-engine.js
CHANGED
|
@@ -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=${
|
|
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
|
|
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=${
|
|
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
|
|
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=${
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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=${
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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=${
|
|
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,
|
|
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=${
|
|
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
|
|
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=${
|
|
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
|
|
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=${
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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=${
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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=${
|
|
34452
|
+
`LibraVDB afterTurn failed sessionId=${sessionId}: ${error instanceof Error ? error.message : String(error)}`
|
|
34441
34453
|
);
|
|
34442
34454
|
throw error;
|
|
34443
34455
|
}
|
package/openclaw.plugin.json
CHANGED