memorylake-openclaw 0.0.15-beta.2 → 1.0.1

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/docs/openclaw.mdx CHANGED
@@ -54,7 +54,7 @@ The agent gets eight tools it can call during conversations:
54
54
  | `memory_forget` | Delete a memory by ID |
55
55
  | `document_search` | Search project documents for relevant paragraphs, tables, and figures |
56
56
  | `advanced_web_search` | Optional web search tool backed by the unified search API with plugin-level domain and locale constraints |
57
- | `open_data_search` | Optional search across open datasets — academic, clinical, drug, financial, economic, and more — routed to the appropriate proprietary data source based on the `dataset` field |
57
+ | `open_data_search` | Search across open datasets — academic, clinical, drug, financial, economic, and more — routed to the appropriate proprietary data source based on the `dataset` field |
58
58
 
59
59
  <Note>`open_data_search` requires the project to have at least one open data industry configured in MemoryLake. The `dataset` parameter is required and validated against the project's subscribed datasets at call time. The agent is automatically informed of available datasets via context injection at the start of each session. Supported datasets: `research/academic`, `clinical/trials`, `drug/database`, `financial/markets`, `company/fundamentals`, `economic/data`, `patents/ip`.</Note>
60
60
 
@@ -86,7 +86,7 @@ openclaw memorylake stats
86
86
  | `webSearchCountry` | `string` | — | Optional ISO country code for localizing `advanced_web_search` |
87
87
  | `webSearchTimezone` | `string` | — | Optional IANA timezone for localizing `advanced_web_search` |
88
88
 
89
- <Note>`advanced_web_search` and `open_data_search` are registered as optional OpenClaw tools, so they must be explicitly allowed before an agent can call them.</Note>
89
+ <Note>`advanced_web_search` is registered as an optional OpenClaw tool, so it must be explicitly allowed before an agent can call it.</Note>
90
90
 
91
91
  ## Key Features
92
92
 
@@ -98,7 +98,7 @@ openclaw memorylake stats
98
98
 
99
99
  ## Conclusion
100
100
 
101
- The `memorylake-openclaw` plugin gives OpenClaw agents persistent memory with minimal setup. Your agents can remember user preferences, facts, and context across sessions automatically — and optionally search across a wide range of open datasets when deeper external knowledge is needed.
101
+ The `memorylake-openclaw` plugin gives OpenClaw agents persistent memory with minimal setup. Your agents can remember user preferences, facts, and context across sessions automatically — and search across a wide range of open datasets when deeper external knowledge is needed.
102
102
 
103
103
  {/*<CardGroup cols={2}>
104
104
  <Card title="MemoryLake" icon="brain" href="https://app.memorylake.ai">
package/index.ts CHANGED
@@ -366,10 +366,12 @@ class PlatformProvider implements MemoryLakeProvider {
366
366
  if (options.threshold != null) body.threshold = options.threshold;
367
367
  if (options.rerank != null) body.rerank = options.rerank;
368
368
 
369
+
369
370
  const resp = await this.http
370
371
  .post(`${this.basePath}/search`, { json: body })
371
372
  .json<ApiResponse>();
372
373
  if (!resp.success) throw new Error(resp.message ?? "search failed");
374
+
373
375
  return normalizeSearchResults(resp.data);
374
376
  }
375
377
 
@@ -481,8 +483,7 @@ class PlatformProvider implements MemoryLakeProvider {
481
483
  };
482
484
  const resp = await this.http
483
485
  .get(this.conflictsPath, {
484
- searchParams,
485
- headers: { "X-User-ID": userId },
486
+ searchParams
486
487
  })
487
488
  .json<ApiResponse<ConflictListResponse>>();
488
489
  if (!resp.success) throw new Error(resp.message ?? "list conflicts failed");
@@ -568,11 +569,12 @@ function buildDocumentContext(
568
569
 
569
570
  for (const result of results) {
570
571
  const source = result.document_name ?? result.source_document?.file_name ?? "unknown";
572
+ const docId = result.document_id ?? "unknown";
571
573
  const highlight = result.highlight;
572
574
 
573
575
  if (result.type === "table") {
574
576
  const title = result.title || "Untitled Table";
575
- parts.push(`### Table: ${title} (from ${source})`);
577
+ parts.push(`### Table: ${title} (from ${source}, doc_id: ${docId})`);
576
578
  if (result.footnote) parts.push(`Note: ${result.footnote}`);
577
579
 
578
580
  for (const innerTable of highlight?.inner_tables ?? []) {
@@ -586,14 +588,14 @@ function buildDocumentContext(
586
588
  if (chunk.text) parts.push(chunk.text.slice(0, maxChunkLength));
587
589
  }
588
590
  } else if (result.type === "paragraph") {
589
- parts.push(`### Paragraph (from ${source}):`);
591
+ parts.push(`### Paragraph (from ${source}, doc_id: ${docId}):`);
590
592
  for (const chunk of highlight?.chunks ?? []) {
591
593
  if (chunk.text) parts.push(chunk.text.slice(0, maxChunkLength));
592
594
  }
593
595
  } else if (result.type === "figure") {
594
596
  const figure = highlight?.figure;
595
597
  if (figure) {
596
- parts.push(`### Figure (from ${source}):`);
598
+ parts.push(`### Figure (from ${source}, doc_id: ${docId}):`);
597
599
  if (figure.caption) parts.push(`Caption: ${figure.caption}`);
598
600
  const text = figure.text || figure.summary_text || "";
599
601
  if (text) parts.push(text);
@@ -1505,7 +1507,6 @@ const memoryPlugin = {
1505
1507
  }
1506
1508
  },
1507
1509
  }),
1508
- { optional: true },
1509
1510
  );
1510
1511
 
1511
1512
  // ========================================================================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorylake-openclaw",
3
- "version": "0.0.15-beta.2",
3
+ "version": "1.0.1",
4
4
  "type": "module",
5
5
  "description": "MemoryLake memory backend for OpenClaw",
6
6
  "license": "MIT",