@xdarkicex/openclaw-memory-libravdb 1.8.11 → 1.8.12
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 +13 -13
- package/dist/index.js +9 -18
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/dist/context-engine.js
CHANGED
|
@@ -279,9 +279,13 @@ function hasToolProtocolBeforeSinceLastUser(sourceMessages, sourceIndex) {
|
|
|
279
279
|
}
|
|
280
280
|
// Live tool protocol must come back from daemon replay in source order.
|
|
281
281
|
// Out-of-order or already-consumed fragments are unsafe to restore or demote.
|
|
282
|
-
function
|
|
282
|
+
function findLiveToolSourceInCurrentTurn(message, normalizedContent, sourceMessages, preferredStartIndex) {
|
|
283
283
|
if (!sourceMessages)
|
|
284
284
|
return -1;
|
|
285
|
+
// Daemon flattens structured toolCall blocks into [tool:name] text, which
|
|
286
|
+
// no longer triggers hasKernelToolCallBlock. Allow assistant messages through
|
|
287
|
+
// so flattened tool calls reach source-message validation. Plain assistant
|
|
288
|
+
// text responses are filtered out by subsequent source-message checks.
|
|
285
289
|
if (!isToolResultRole(message.role) && message.role !== "assistant" && !hasKernelToolCallBlock(message.content)) {
|
|
286
290
|
return -1;
|
|
287
291
|
}
|
|
@@ -325,7 +329,7 @@ function isHistoricalToolDerivedAssistantReply(message, normalizedContent, sourc
|
|
|
325
329
|
return false;
|
|
326
330
|
return hasToolProtocolBeforeSinceLastUser(sourceMessages, sourceIndex);
|
|
327
331
|
}
|
|
328
|
-
function
|
|
332
|
+
function consumeLiveToolAtCursor(message, normalizedContent, sourceMessages, preferredStartIndex) {
|
|
329
333
|
if (!sourceMessages)
|
|
330
334
|
return undefined;
|
|
331
335
|
if (!isToolResultRole(message.role) && message.role !== "assistant" && !hasKernelToolCallBlock(message.content)) {
|
|
@@ -337,7 +341,7 @@ function findLiveToolProtocolSourceMessage(message, normalizedContent, sourceMes
|
|
|
337
341
|
const searchStartIndex = preferredStartIndex === undefined
|
|
338
342
|
? lastUserIndex + 1
|
|
339
343
|
: Math.max(lastUserIndex + 1, preferredStartIndex);
|
|
340
|
-
const sourceIndex =
|
|
344
|
+
const sourceIndex = findLiveToolSourceInCurrentTurn(message, normalizedContent, sourceMessages, searchStartIndex);
|
|
341
345
|
if (sourceIndex !== searchStartIndex)
|
|
342
346
|
return undefined;
|
|
343
347
|
const sourceMessage = sourceMessages[sourceIndex];
|
|
@@ -810,13 +814,9 @@ function demoteDaemonAuthoredContextBlocks(text) {
|
|
|
810
814
|
].join("\n");
|
|
811
815
|
});
|
|
812
816
|
}
|
|
813
|
-
function sanitizeProviderReplayMessage(message, sourceMessages
|
|
817
|
+
function sanitizeProviderReplayMessage(message, sourceMessages) {
|
|
814
818
|
const content = normalizeKernelContent(message.content);
|
|
815
|
-
|
|
816
|
-
if (liveToolProtocolSource) {
|
|
817
|
-
return preserveLiveToolProtocolMessage(liveToolProtocolSource.message);
|
|
818
|
-
}
|
|
819
|
-
if (findCurrentTurnToolProtocolSourceIndex(message, content, sourceMessages) >= 0) {
|
|
819
|
+
if (findLiveToolSourceInCurrentTurn(message, content, sourceMessages) >= 0) {
|
|
820
820
|
return null;
|
|
821
821
|
}
|
|
822
822
|
if (isToolResultRole(message.role) || hasKernelToolCallBlock(message.content)) {
|
|
@@ -847,12 +847,12 @@ function sanitizeProviderReplayMessages(result, sourceMessages) {
|
|
|
847
847
|
let liveSourceCursor = sourceMessages ? findLastUserMessageIndex(sourceMessages) + 1 : undefined;
|
|
848
848
|
const messages = result.messages.flatMap((message) => {
|
|
849
849
|
const content = normalizeKernelContent(message.content);
|
|
850
|
-
const liveToolProtocolSource =
|
|
850
|
+
const liveToolProtocolSource = consumeLiveToolAtCursor(message, content, sourceMessages, liveSourceCursor);
|
|
851
851
|
if (liveToolProtocolSource) {
|
|
852
852
|
liveSourceCursor = liveToolProtocolSource.index + 1;
|
|
853
853
|
return [preserveLiveToolProtocolMessage(liveToolProtocolSource.message)];
|
|
854
854
|
}
|
|
855
|
-
const sanitized = sanitizeProviderReplayMessage(message, sourceMessages
|
|
855
|
+
const sanitized = sanitizeProviderReplayMessage(message, sourceMessages);
|
|
856
856
|
if (!sanitized)
|
|
857
857
|
return [];
|
|
858
858
|
return [sanitized];
|
|
@@ -1247,12 +1247,12 @@ export function normalizeAssembleResult(result, sourceMessages) {
|
|
|
1247
1247
|
else {
|
|
1248
1248
|
isRealTranscript = message.role === "user" || message.role === "assistant";
|
|
1249
1249
|
}
|
|
1250
|
-
const liveToolProtocolSource =
|
|
1250
|
+
const liveToolProtocolSource = consumeLiveToolAtCursor(message, content, sourceMessages, liveSourceCursor);
|
|
1251
1251
|
if (liveToolProtocolSource) {
|
|
1252
1252
|
messages.push(preserveLiveToolProtocolMessage(liveToolProtocolSource.message));
|
|
1253
1253
|
liveSourceCursor = liveToolProtocolSource.index + 1;
|
|
1254
1254
|
}
|
|
1255
|
-
else if (
|
|
1255
|
+
else if (findLiveToolSourceInCurrentTurn(message, content, sourceMessages) >= 0) {
|
|
1256
1256
|
continue;
|
|
1257
1257
|
}
|
|
1258
1258
|
else if (isRealTranscript && !historicalToolSource && isProviderReplayRole(message.role)) {
|
package/dist/index.js
CHANGED
|
@@ -35721,7 +35721,7 @@ function hasToolProtocolBeforeSinceLastUser(sourceMessages, sourceIndex) {
|
|
|
35721
35721
|
}
|
|
35722
35722
|
return false;
|
|
35723
35723
|
}
|
|
35724
|
-
function
|
|
35724
|
+
function findLiveToolSourceInCurrentTurn(message, normalizedContent, sourceMessages, preferredStartIndex) {
|
|
35725
35725
|
if (!sourceMessages) return -1;
|
|
35726
35726
|
if (!isToolResultRole(message.role) && message.role !== "assistant" && !hasKernelToolCallBlock(message.content)) {
|
|
35727
35727
|
return -1;
|
|
@@ -35761,7 +35761,7 @@ function isHistoricalToolDerivedAssistantReply(message, normalizedContent, sourc
|
|
|
35761
35761
|
if (sourceIndex < 0) return false;
|
|
35762
35762
|
return hasToolProtocolBeforeSinceLastUser(sourceMessages, sourceIndex);
|
|
35763
35763
|
}
|
|
35764
|
-
function
|
|
35764
|
+
function consumeLiveToolAtCursor(message, normalizedContent, sourceMessages, preferredStartIndex) {
|
|
35765
35765
|
if (!sourceMessages) return void 0;
|
|
35766
35766
|
if (!isToolResultRole(message.role) && message.role !== "assistant" && !hasKernelToolCallBlock(message.content)) {
|
|
35767
35767
|
return void 0;
|
|
@@ -35769,7 +35769,7 @@ function findLiveToolProtocolSourceMessage(message, normalizedContent, sourceMes
|
|
|
35769
35769
|
const lastUserIndex = findLastUserMessageIndex(sourceMessages);
|
|
35770
35770
|
if (lastUserIndex < 0) return void 0;
|
|
35771
35771
|
const searchStartIndex = preferredStartIndex === void 0 ? lastUserIndex + 1 : Math.max(lastUserIndex + 1, preferredStartIndex);
|
|
35772
|
-
const sourceIndex =
|
|
35772
|
+
const sourceIndex = findLiveToolSourceInCurrentTurn(
|
|
35773
35773
|
message,
|
|
35774
35774
|
normalizedContent,
|
|
35775
35775
|
sourceMessages,
|
|
@@ -36171,18 +36171,9 @@ function demoteDaemonAuthoredContextBlocks(text) {
|
|
|
36171
36171
|
].join("\n");
|
|
36172
36172
|
});
|
|
36173
36173
|
}
|
|
36174
|
-
function sanitizeProviderReplayMessage(message, sourceMessages
|
|
36174
|
+
function sanitizeProviderReplayMessage(message, sourceMessages) {
|
|
36175
36175
|
const content = normalizeKernelContent(message.content);
|
|
36176
|
-
|
|
36177
|
-
message,
|
|
36178
|
-
content,
|
|
36179
|
-
sourceMessages,
|
|
36180
|
-
preferredStartIndex
|
|
36181
|
-
);
|
|
36182
|
-
if (liveToolProtocolSource) {
|
|
36183
|
-
return preserveLiveToolProtocolMessage(liveToolProtocolSource.message);
|
|
36184
|
-
}
|
|
36185
|
-
if (findCurrentTurnToolProtocolSourceIndex(message, content, sourceMessages) >= 0) {
|
|
36176
|
+
if (findLiveToolSourceInCurrentTurn(message, content, sourceMessages) >= 0) {
|
|
36186
36177
|
return null;
|
|
36187
36178
|
}
|
|
36188
36179
|
if (isToolResultRole(message.role) || hasKernelToolCallBlock(message.content)) {
|
|
@@ -36210,7 +36201,7 @@ function sanitizeProviderReplayMessages(result, sourceMessages) {
|
|
|
36210
36201
|
let liveSourceCursor = sourceMessages ? findLastUserMessageIndex(sourceMessages) + 1 : void 0;
|
|
36211
36202
|
const messages = result.messages.flatMap((message) => {
|
|
36212
36203
|
const content = normalizeKernelContent(message.content);
|
|
36213
|
-
const liveToolProtocolSource =
|
|
36204
|
+
const liveToolProtocolSource = consumeLiveToolAtCursor(
|
|
36214
36205
|
message,
|
|
36215
36206
|
content,
|
|
36216
36207
|
sourceMessages,
|
|
@@ -36220,7 +36211,7 @@ function sanitizeProviderReplayMessages(result, sourceMessages) {
|
|
|
36220
36211
|
liveSourceCursor = liveToolProtocolSource.index + 1;
|
|
36221
36212
|
return [preserveLiveToolProtocolMessage(liveToolProtocolSource.message)];
|
|
36222
36213
|
}
|
|
36223
|
-
const sanitized = sanitizeProviderReplayMessage(message, sourceMessages
|
|
36214
|
+
const sanitized = sanitizeProviderReplayMessage(message, sourceMessages);
|
|
36224
36215
|
if (!sanitized) return [];
|
|
36225
36216
|
return [sanitized];
|
|
36226
36217
|
});
|
|
@@ -36528,7 +36519,7 @@ function normalizeAssembleResult(result, sourceMessages) {
|
|
|
36528
36519
|
} else {
|
|
36529
36520
|
isRealTranscript = message.role === "user" || message.role === "assistant";
|
|
36530
36521
|
}
|
|
36531
|
-
const liveToolProtocolSource =
|
|
36522
|
+
const liveToolProtocolSource = consumeLiveToolAtCursor(
|
|
36532
36523
|
message,
|
|
36533
36524
|
content,
|
|
36534
36525
|
sourceMessages,
|
|
@@ -36537,7 +36528,7 @@ function normalizeAssembleResult(result, sourceMessages) {
|
|
|
36537
36528
|
if (liveToolProtocolSource) {
|
|
36538
36529
|
messages.push(preserveLiveToolProtocolMessage(liveToolProtocolSource.message));
|
|
36539
36530
|
liveSourceCursor = liveToolProtocolSource.index + 1;
|
|
36540
|
-
} else if (
|
|
36531
|
+
} else if (findLiveToolSourceInCurrentTurn(message, content, sourceMessages) >= 0) {
|
|
36541
36532
|
continue;
|
|
36542
36533
|
} else if (isRealTranscript && !historicalToolSource && isProviderReplayRole(message.role)) {
|
|
36543
36534
|
if (isHistoricalToolDerivedAssistantReply(message, content, sourceMessages)) {
|
package/openclaw.plugin.json
CHANGED