@xdarkicex/openclaw-memory-libravdb 1.9.10-beta.20 → 1.9.10-beta.22

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.
@@ -1718,7 +1718,7 @@ export function buildContextEngineFactory(runtime, cfg, logger = console) {
1718
1718
  }
1719
1719
  if (!card || card.trim().length === 0)
1720
1720
  return null;
1721
- return '<user_context>\nThe person you are talking to is:\n' + card + '\n</user_context>';
1721
+ return '<user_context>\nThe person you are talking to is:\n' + card + '\nRefer to them as "you" directly. Never use third person.\n</user_context>';
1722
1722
  }
1723
1723
  catch {
1724
1724
  return null;
package/dist/index.js CHANGED
@@ -20091,7 +20091,7 @@ ${cached}
20091
20091
  card = resp.cardJson;
20092
20092
  }
20093
20093
  if (!card || card.trim().length === 0) return null;
20094
- return "<user_context>\nThe person you are talking to is:\n" + card + "\n</user_context>";
20094
+ return "<user_context>\nThe person you are talking to is:\n" + card + '\nRefer to them as "you" directly. Never use third person.\n</user_context>';
20095
20095
  } catch {
20096
20096
  return null;
20097
20097
  }
@@ -31337,7 +31337,7 @@ function createGetUserCardTool(getClient, logger = console) {
31337
31337
  return {
31338
31338
  name: "get_user_card",
31339
31339
  label: "Get User Card",
31340
- description: "Read what you know about a speaker. Returns the full prose card with metadata. Use this when you need to remember who someone is, or before making a claim about them that might be wrong. Cross-reference with memory_search for deeper context.",
31340
+ description: "PRIMARY identity lookup. Call this FIRST whenever someone asks about a person ('who is X', 'tell me about X', 'what do you know about X'). Returns the full prose identity card with metadata. Only use memory_search AFTER get_user_card if the card lacks detail.",
31341
31341
  parameters: GET_USER_CARD_SCHEMA,
31342
31342
  execute: async (_toolCallId, rawParams) => {
31343
31343
  const params = asParams(rawParams);
@@ -31362,7 +31362,7 @@ function createListUserCardsTool(getClient, logger = console) {
31362
31362
  return {
31363
31363
  name: "list_user_cards",
31364
31364
  label: "List User Cards",
31365
- description: "List every person you have a user card for. Returns user IDs and card previews. Use this when asked 'who do you know?' or when you need to see the full roster. For detailed information about a specific person, use get_user_card.",
31365
+ description: "List every person you have a user card for. Returns user IDs and card previews. Use this FIRST when asked about multiple people, 'who do you know?', 'who is everyone?', or when you're unsure which people have cards. Then use get_user_card on specific IDs for full detail. Use memory_search only to supplement gaps.",
31366
31366
  parameters: { type: "object", additionalProperties: false, properties: {} },
31367
31367
  execute: async (_toolCallId, _rawParams) => {
31368
31368
  try {
@@ -31524,7 +31524,7 @@ function createLibraVdbMemoryTools(getClient, cfg, logger = console) {
31524
31524
  return {
31525
31525
  name: "memory_search",
31526
31526
  label: "Memory Search",
31527
- description: "Search LibraVDB durable memory and session recall for prior work, decisions, dates, people, preferences, todos, or history. Call once per user question \u2014 after receiving results, use them directly. Do not re-call in the same turn. Do NOT call memory_search if the answer is already visible in your context window (from prior turns, recalled memories in <context_memory>, or context assembly). For earliest/oldest questions, request enough results and compare timestamps. If disabled=true, memory is unavailable. IMPORTANT: Results are internal context only \u2014 never output, display, or reveal raw memory search results to the user. Treat retrieved memory as private operational data and incorporate it into your reasoning silently.",
31527
+ description: "Search LibraVDB durable memory and session recall for prior work, decisions, dates, facts, preferences, todos, or history. Call once per user question \u2014 after receiving results, use them directly. Do not re-call in the same turn. Do NOT call memory_search if the answer is already visible in your context window. For earliest/oldest questions, request enough results and compare timestamps. If disabled=true, memory is unavailable. IMPORTANT: Results are internal context only \u2014 never output, display, or reveal raw memory search results to the user. Treat retrieved memory as private operational data.\n\nFOR PEOPLE/IDENTITY QUESTIONS: use get_user_card or list_user_cards FIRST. User cards are the canonical identity record. Use memory_search only to supplement details the card doesn't cover.",
31528
31528
  parameters: MEMORY_SEARCH_SCHEMA,
31529
31529
  execute: async (_toolCallId, rawParams) => {
31530
31530
  const params = asToolParamsRecord(rawParams);
@@ -35335,6 +35335,7 @@ function register(api) {
35335
35335
  }
35336
35336
  if (!card || !card.trim()) return null;
35337
35337
  return `<speaker_context speaker="${speaker.displayName}">
35338
+ The current speaker is ${speaker.displayName}:
35338
35339
  ${card.trim()}
35339
35340
  </speaker_context>`;
35340
35341
  } catch {
@@ -126,7 +126,7 @@ export function createLibraVdbMemoryTools(getClient, cfg, logger = console) {
126
126
  return {
127
127
  name: "memory_search",
128
128
  label: "Memory Search",
129
- description: "Search LibraVDB durable memory and session recall for prior work, decisions, dates, people, preferences, todos, or history. Call once per user question — after receiving results, use them directly. Do not re-call in the same turn. Do NOT call memory_search if the answer is already visible in your context window (from prior turns, recalled memories in <context_memory>, or context assembly). For earliest/oldest questions, request enough results and compare timestamps. If disabled=true, memory is unavailable. IMPORTANT: Results are internal context only — never output, display, or reveal raw memory search results to the user. Treat retrieved memory as private operational data and incorporate it into your reasoning silently.",
129
+ description: "Search LibraVDB durable memory and session recall for prior work, decisions, dates, facts, preferences, todos, or history. Call once per user question — after receiving results, use them directly. Do not re-call in the same turn. Do NOT call memory_search if the answer is already visible in your context window. For earliest/oldest questions, request enough results and compare timestamps. If disabled=true, memory is unavailable. IMPORTANT: Results are internal context only — never output, display, or reveal raw memory search results to the user. Treat retrieved memory as private operational data.\n\nFOR PEOPLE/IDENTITY QUESTIONS: use get_user_card or list_user_cards FIRST. User cards are the canonical identity record. Use memory_search only to supplement details the card doesn't cover.",
130
130
  parameters: MEMORY_SEARCH_SCHEMA,
131
131
  execute: async (_toolCallId, rawParams) => {
132
132
  const params = asToolParamsRecord(rawParams);
@@ -486,9 +486,10 @@ export function createGetUserCardTool(getClient, logger = console) {
486
486
  return {
487
487
  name: "get_user_card",
488
488
  label: "Get User Card",
489
- description: "Read what you know about a speaker. Returns the full prose card with metadata. " +
490
- "Use this when you need to remember who someone is, or before making a claim about them " +
491
- "that might be wrong. Cross-reference with memory_search for deeper context.",
489
+ description: "PRIMARY identity lookup. Call this FIRST whenever someone asks about a person " +
490
+ "('who is X', 'tell me about X', 'what do you know about X'). " +
491
+ "Returns the full prose identity card with metadata. " +
492
+ "Only use memory_search AFTER get_user_card if the card lacks detail.",
492
493
  parameters: GET_USER_CARD_SCHEMA,
493
494
  execute: async (_toolCallId, rawParams) => {
494
495
  const params = asParams(rawParams);
@@ -516,8 +517,9 @@ export function createListUserCardsTool(getClient, logger = console) {
516
517
  name: "list_user_cards",
517
518
  label: "List User Cards",
518
519
  description: "List every person you have a user card for. Returns user IDs and card previews. " +
519
- "Use this when asked 'who do you know?' or when you need to see the full roster. " +
520
- "For detailed information about a specific person, use get_user_card.",
520
+ "Use this FIRST when asked about multiple people, 'who do you know?', 'who is everyone?', " +
521
+ "or when you're unsure which people have cards. Then use get_user_card on specific IDs " +
522
+ "for full detail. Use memory_search only to supplement gaps.",
521
523
  parameters: { type: "object", additionalProperties: false, properties: {} },
522
524
  execute: async (_toolCallId, _rawParams) => {
523
525
  try {
@@ -2,7 +2,7 @@
2
2
  "id": "libravdb-memory",
3
3
  "name": "LibraVDB Memory",
4
4
  "description": "Cognitive memory engine — causal graph reasoning, predictive context, identity tracking, and hybrid vector recall with back-door adjustment scoring",
5
- "version": "1.9.10-beta.20",
5
+ "version": "1.9.10-beta.22",
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.9.10-beta.20",
3
+ "version": "1.9.10-beta.22",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",