@xdarkicex/openclaw-memory-libravdb 1.9.2 → 1.9.3
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/context-engine.js +35 -2
- package/dist/index.js +27 -5
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/dist/context-engine.js
CHANGED
|
@@ -1426,6 +1426,26 @@ export function normalizeAssembleResult(result, sourceMessages) {
|
|
|
1426
1426
|
const systemPromptWasReduced = rawSystemPromptAddition.length > systemPromptAddition.length;
|
|
1427
1427
|
const messages = [];
|
|
1428
1428
|
const extractedMemoryItems = [];
|
|
1429
|
+
let lastProviderReplayKey;
|
|
1430
|
+
let lastSourceIndex;
|
|
1431
|
+
const pushProviderReplayMessage = (message, sourceIndex) => {
|
|
1432
|
+
const key = `${message.role}\0${message.content}`;
|
|
1433
|
+
if (key === lastProviderReplayKey) {
|
|
1434
|
+
if (lastSourceIndex !== undefined &&
|
|
1435
|
+
sourceIndex !== undefined &&
|
|
1436
|
+
lastSourceIndex >= 0 &&
|
|
1437
|
+
sourceIndex >= 0 &&
|
|
1438
|
+
lastSourceIndex !== sourceIndex) {
|
|
1439
|
+
// Fall through — push the message.
|
|
1440
|
+
}
|
|
1441
|
+
else {
|
|
1442
|
+
return;
|
|
1443
|
+
}
|
|
1444
|
+
}
|
|
1445
|
+
messages.push(message);
|
|
1446
|
+
lastProviderReplayKey = key;
|
|
1447
|
+
lastSourceIndex = sourceIndex;
|
|
1448
|
+
};
|
|
1429
1449
|
const pushMemoryItem = (args) => {
|
|
1430
1450
|
if (args.content.trim().length === 0)
|
|
1431
1451
|
return;
|
|
@@ -1435,6 +1455,7 @@ export function normalizeAssembleResult(result, sourceMessages) {
|
|
|
1435
1455
|
if (Array.isArray(result.messages)) {
|
|
1436
1456
|
const lastUserIndex = sourceMessages ? findLastUserMessageIndex(sourceMessages) : -1;
|
|
1437
1457
|
let liveSourceCursor = sourceMessages ? lastUserIndex + 1 : undefined;
|
|
1458
|
+
let providerReplaySourceCursor = sourceMessages ? 0 : undefined;
|
|
1438
1459
|
for (const message of result.messages) {
|
|
1439
1460
|
const content = normalizeKernelContent(message.content);
|
|
1440
1461
|
const historicalToolSource = getHistoricalToolSource(message.role, message.content, content);
|
|
@@ -1447,6 +1468,10 @@ export function normalizeAssembleResult(result, sourceMessages) {
|
|
|
1447
1468
|
}
|
|
1448
1469
|
const liveToolProtocolSource = consumeLiveToolAtCursor(message, content, sourceMessages, liveSourceCursor, lastUserIndex >= 0 ? lastUserIndex : undefined);
|
|
1449
1470
|
if (liveToolProtocolSource) {
|
|
1471
|
+
// Live tool protocol messages are cursor-guarded by
|
|
1472
|
+
// consumeLiveToolAtCursor — consecutive toolResults with the
|
|
1473
|
+
// same content but different toolCallId linkage must not be
|
|
1474
|
+
// collapsed. Push directly, bypassing provider-replay dedup.
|
|
1450
1475
|
messages.push(preserveLiveToolProtocolMessage(liveToolProtocolSource.message));
|
|
1451
1476
|
liveSourceCursor = liveToolProtocolSource.index + 1;
|
|
1452
1477
|
}
|
|
@@ -1478,11 +1503,19 @@ export function normalizeAssembleResult(result, sourceMessages) {
|
|
|
1478
1503
|
}
|
|
1479
1504
|
continue;
|
|
1480
1505
|
}
|
|
1481
|
-
|
|
1506
|
+
const providerReplaySourceIndex = sourceMessages
|
|
1507
|
+
? findMatchingSourceMessageIndex(message, content, sourceMessages, providerReplaySourceCursor)
|
|
1508
|
+
: undefined;
|
|
1509
|
+
pushProviderReplayMessage({
|
|
1482
1510
|
role: message.role,
|
|
1483
1511
|
content: sanitizedContent,
|
|
1484
1512
|
...(typeof message.id === "string" ? { id: message.id } : {}),
|
|
1485
|
-
});
|
|
1513
|
+
}, providerReplaySourceIndex);
|
|
1514
|
+
if (providerReplaySourceCursor !== undefined &&
|
|
1515
|
+
providerReplaySourceIndex !== undefined &&
|
|
1516
|
+
providerReplaySourceIndex >= 0) {
|
|
1517
|
+
providerReplaySourceCursor = providerReplaySourceIndex + 1;
|
|
1518
|
+
}
|
|
1486
1519
|
}
|
|
1487
1520
|
else {
|
|
1488
1521
|
// Daemon memory items may not be in sourceMessages — only advance
|
package/dist/index.js
CHANGED
|
@@ -36673,6 +36673,20 @@ function normalizeAssembleResult(result, sourceMessages) {
|
|
|
36673
36673
|
const systemPromptWasReduced = rawSystemPromptAddition.length > systemPromptAddition.length;
|
|
36674
36674
|
const messages = [];
|
|
36675
36675
|
const extractedMemoryItems = [];
|
|
36676
|
+
let lastProviderReplayKey;
|
|
36677
|
+
let lastSourceIndex;
|
|
36678
|
+
const pushProviderReplayMessage = (message, sourceIndex) => {
|
|
36679
|
+
const key = `${message.role}\0${message.content}`;
|
|
36680
|
+
if (key === lastProviderReplayKey) {
|
|
36681
|
+
if (lastSourceIndex !== void 0 && sourceIndex !== void 0 && lastSourceIndex >= 0 && sourceIndex >= 0 && lastSourceIndex !== sourceIndex) {
|
|
36682
|
+
} else {
|
|
36683
|
+
return;
|
|
36684
|
+
}
|
|
36685
|
+
}
|
|
36686
|
+
messages.push(message);
|
|
36687
|
+
lastProviderReplayKey = key;
|
|
36688
|
+
lastSourceIndex = sourceIndex;
|
|
36689
|
+
};
|
|
36676
36690
|
const pushMemoryItem = (args) => {
|
|
36677
36691
|
if (args.content.trim().length === 0) return;
|
|
36678
36692
|
const roleAttr = args.role ? ` role="${escapeMemoryFactText(args.role)}"` : "";
|
|
@@ -36683,6 +36697,7 @@ function normalizeAssembleResult(result, sourceMessages) {
|
|
|
36683
36697
|
if (Array.isArray(result.messages)) {
|
|
36684
36698
|
const lastUserIndex = sourceMessages ? findLastUserMessageIndex(sourceMessages) : -1;
|
|
36685
36699
|
let liveSourceCursor = sourceMessages ? lastUserIndex + 1 : void 0;
|
|
36700
|
+
let providerReplaySourceCursor = sourceMessages ? 0 : void 0;
|
|
36686
36701
|
for (const message of result.messages) {
|
|
36687
36702
|
const content = normalizeKernelContent(message.content);
|
|
36688
36703
|
const historicalToolSource = getHistoricalToolSource(message.role, message.content, content);
|
|
@@ -36726,11 +36741,18 @@ function normalizeAssembleResult(result, sourceMessages) {
|
|
|
36726
36741
|
}
|
|
36727
36742
|
continue;
|
|
36728
36743
|
}
|
|
36729
|
-
|
|
36730
|
-
|
|
36731
|
-
|
|
36732
|
-
|
|
36733
|
-
|
|
36744
|
+
const providerReplaySourceIndex = sourceMessages ? findMatchingSourceMessageIndex(message, content, sourceMessages, providerReplaySourceCursor) : void 0;
|
|
36745
|
+
pushProviderReplayMessage(
|
|
36746
|
+
{
|
|
36747
|
+
role: message.role,
|
|
36748
|
+
content: sanitizedContent,
|
|
36749
|
+
...typeof message.id === "string" ? { id: message.id } : {}
|
|
36750
|
+
},
|
|
36751
|
+
providerReplaySourceIndex
|
|
36752
|
+
);
|
|
36753
|
+
if (providerReplaySourceCursor !== void 0 && providerReplaySourceIndex !== void 0 && providerReplaySourceIndex >= 0) {
|
|
36754
|
+
providerReplaySourceCursor = providerReplaySourceIndex + 1;
|
|
36755
|
+
}
|
|
36734
36756
|
} else {
|
|
36735
36757
|
if (liveSourceCursor !== void 0 && sourceMessages) {
|
|
36736
36758
|
const idx = findMatchingSourceMessageIndex(message, content, sourceMessages, liveSourceCursor);
|
package/openclaw.plugin.json
CHANGED