@xdarkicex/openclaw-memory-libravdb 1.9.10-beta.12 → 1.9.10-beta.13
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 -0
- package/dist/index.js +16 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/dist/context-engine.js
CHANGED
|
@@ -1602,8 +1602,19 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
|
|
|
1602
1602
|
: {}),
|
|
1603
1603
|
};
|
|
1604
1604
|
}
|
|
1605
|
+
const continuityCache = new Map(); // sessionKey -> raw context block
|
|
1606
|
+
function updateContinuityCache(sessionKey, messages) {
|
|
1607
|
+
const lastTurns = messages.filter(m => m.role === 'user' || m.role === 'assistant').slice(-2);
|
|
1608
|
+
if (lastTurns.length > 0) {
|
|
1609
|
+
continuityCache.set(sessionKey, lastTurns.map(m => `${m.role}: ${m.content}`).join('\n'));
|
|
1610
|
+
}
|
|
1611
|
+
}
|
|
1605
1612
|
async function injectContinuityContext(params) {
|
|
1606
1613
|
try {
|
|
1614
|
+
const cached = continuityCache.get(params.sessionKey);
|
|
1615
|
+
if (cached) {
|
|
1616
|
+
return `<continuity_context>\nRecent conversation:\n${cached}\n</continuity_context>`;
|
|
1617
|
+
}
|
|
1607
1618
|
// Use a natural-language query that semantically matches the
|
|
1608
1619
|
// pointer record text ("Previous session continuity — ...").
|
|
1609
1620
|
// Fetch enough results so the exact ID match isn't crowded out
|
|
@@ -1941,6 +1952,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
|
|
|
1941
1952
|
client,
|
|
1942
1953
|
userId,
|
|
1943
1954
|
sessionId,
|
|
1955
|
+
sessionKey: args.sessionKey ?? sessionId,
|
|
1944
1956
|
logger,
|
|
1945
1957
|
tokenBudget: args.tokenBudget,
|
|
1946
1958
|
systemPromptAddition: assembled.systemPromptAddition,
|
|
@@ -2102,6 +2114,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
|
|
|
2102
2114
|
isHeartbeat: args.isHeartbeat,
|
|
2103
2115
|
cursor,
|
|
2104
2116
|
});
|
|
2117
|
+
updateContinuityCache(args.sessionKey ?? sessionId, ingestMessages);
|
|
2105
2118
|
// Reconcile manifest with daemon-confirmed cursor.
|
|
2106
2119
|
// The daemon returns a cursor even when it ingests zero messages
|
|
2107
2120
|
// (e.g. gap detected, all messages deduped). Trust its
|
package/dist/index.js
CHANGED
|
@@ -36837,8 +36837,22 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
|
|
|
36837
36837
|
...typeof cfg.continuityPriorContextTokens === "number" ? { continuityPriorContextTokens: cfg.continuityPriorContextTokens } : {}
|
|
36838
36838
|
};
|
|
36839
36839
|
}
|
|
36840
|
+
const continuityCache = /* @__PURE__ */ new Map();
|
|
36841
|
+
function updateContinuityCache(sessionKey, messages) {
|
|
36842
|
+
const lastTurns = messages.filter((m) => m.role === "user" || m.role === "assistant").slice(-2);
|
|
36843
|
+
if (lastTurns.length > 0) {
|
|
36844
|
+
continuityCache.set(sessionKey, lastTurns.map((m) => `${m.role}: ${m.content}`).join("\n"));
|
|
36845
|
+
}
|
|
36846
|
+
}
|
|
36840
36847
|
async function injectContinuityContext(params) {
|
|
36841
36848
|
try {
|
|
36849
|
+
const cached = continuityCache.get(params.sessionKey);
|
|
36850
|
+
if (cached) {
|
|
36851
|
+
return `<continuity_context>
|
|
36852
|
+
Recent conversation:
|
|
36853
|
+
${cached}
|
|
36854
|
+
</continuity_context>`;
|
|
36855
|
+
}
|
|
36842
36856
|
const continuityHits = await params.client.searchTextCollections({
|
|
36843
36857
|
collections: [resolveUserCollection(params.userId)],
|
|
36844
36858
|
text: "previous session context continuity",
|
|
@@ -37162,6 +37176,7 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
|
|
|
37162
37176
|
client,
|
|
37163
37177
|
userId,
|
|
37164
37178
|
sessionId,
|
|
37179
|
+
sessionKey: args.sessionKey ?? sessionId,
|
|
37165
37180
|
logger,
|
|
37166
37181
|
tokenBudget: args.tokenBudget,
|
|
37167
37182
|
systemPromptAddition: assembled.systemPromptAddition
|
|
@@ -37321,6 +37336,7 @@ function buildContextEngineFactory(runtime, cfg, logger = console) {
|
|
|
37321
37336
|
isHeartbeat: args.isHeartbeat,
|
|
37322
37337
|
cursor
|
|
37323
37338
|
});
|
|
37339
|
+
updateContinuityCache(args.sessionKey ?? sessionId, ingestMessages);
|
|
37324
37340
|
const daemonCursor = extractCursorFromResult(result);
|
|
37325
37341
|
if (daemonCursor) {
|
|
37326
37342
|
if (!daemonCursor.manifestTailHash) {
|
package/openclaw.plugin.json
CHANGED