@synapcores/openclaw-memory 0.4.0 → 0.5.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/README.md +28 -23
- package/dist/config.d.ts +0 -17
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -40
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +307 -86
- package/dist/index.js.map +1 -1
- package/openclaw.plugin.json +2 -26
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
A long-term memory plugin for [OpenClaw](https://github.com/openclaw/openclaw) that uses **SynapCores AIDB** as the storage backend. Drop-in alternative to `@openclaw/memory-lancedb` with the same auto-recall / auto-capture lifecycle, plus four SynapCores-only extensions: SQL-filtered semantic recall, graph-relation walks, AutoML relevance scoring, and a model-training helper.
|
|
4
4
|
|
|
5
|
-
> **0.
|
|
5
|
+
> **0.5.0 shipping note:** the core memory ops (`memory_store` / `memory_recall` / `memory_forget`) ride the engine-side `MEMORY_STORE` / `MEMORY_RECALL` / `MEMORY_FORGET` primitives via `@synapcores/sdk@^0.6.0`'s `client.memory` surface. The plugin's public API (tools, CLI, extensions, types) is unchanged.
|
|
6
6
|
>
|
|
7
7
|
> - **Requires SynapCores gateway `v1.8.5-ce` or newer** (the version that ships the `MEMORY_*` SQL functions).
|
|
8
|
-
> - **
|
|
8
|
+
> - **Fully engine-native embeddings — zero external-LLM dependency.** The `memory_store` / `memory_recall` hot path embeds server-side inside the engine's `MEMORY_STORE` / `MEMORY_RECALL` primitives; the relevance extensions (`predictRelevance` / `trainRelevanceModel`) and the `autoLinkSimilar` graph-node embedding call the gateway's native `client.embed()`. All embeddings come from the SynapCores gateway (embedding dimension is the gateway model's, e.g. 384 for `all-minilm`). OpenAI has been removed entirely — no OpenAI key, no `openai` dependency.
|
|
9
9
|
> - **Migration from 0.3.x: the engine-managed table is `_memory_<namespace>`, a different storage backend from the v0.3.x vector collection. Existing v0.3.x memories WILL NOT appear after upgrade — re-capture them.** See "Upgrading from 0.3.x" below.
|
|
10
10
|
> - **`collection` config field becomes the engine `namespace`.** It must now match `^[A-Za-z_][A-Za-z0-9_]*$`. The default `openclaw_memories` continues to work; other custom values with hyphens or other non-identifier characters need updating.
|
|
11
|
-
> - **`recallFiltered` WHERE clauses
|
|
11
|
+
> - **`recallFiltered` WHERE clauses are applied client-side.** The engine cannot apply a `WHERE` to the table-valued `MEMORY_RECALL(?, ?, ?)` result-set (it drops every row), so the plugin fetches an oversampled, unfiltered recall and evaluates the predicate in JS. Legacy column shorthands (`category`, `importance`, `createdAt`, `text`) and the JSON-extract form (`metadata->>'…'`) are both understood directly — no rewriting required.
|
|
12
12
|
|
|
13
13
|
## Upgrading from 0.3.x
|
|
14
14
|
|
|
15
|
-
`@synapcores/openclaw-memory@0.
|
|
15
|
+
`@synapcores/openclaw-memory@0.5.0` is a **hard cut** from 0.3.x: the storage backend changed (at 0.4.0), so old memories will not migrate automatically. Steps:
|
|
16
16
|
|
|
17
17
|
1. Upgrade the SynapCores gateway to `v1.8.5-ce` or newer.
|
|
18
|
-
2. `npm install @synapcores/openclaw-memory@0.
|
|
18
|
+
2. `npm install @synapcores/openclaw-memory@0.5.0`.
|
|
19
19
|
3. If your `collection` config value contains hyphens or other non-identifier characters, rename it to match `^[A-Za-z_][A-Za-z0-9_]*$` before restarting.
|
|
20
20
|
4. (Optional) export any high-value memories from the v0.3.x vector collection (the legacy `openclaw_memories` collection in your gateway) and re-store them via `memory_store` so they land in the new `_memory_<namespace>` table.
|
|
21
21
|
5. (Optional) drop the old vector collection from the gateway once you're sure the export is done.
|
|
22
22
|
|
|
23
|
-
If your `recallFiltered` callers use plain column names (`category`, `importance`, `createdAt`, `text`), they continue to work
|
|
23
|
+
If your `recallFiltered` callers use plain column names (`category`, `importance`, `createdAt`, `text`), they continue to work — the client-side filter understands those column names directly. Callers filtering on arbitrary metadata keys use the JSON-extract form (`metadata->>'…'`).
|
|
24
24
|
|
|
25
25
|
## Why use this over `@openclaw/memory-lancedb`?
|
|
26
26
|
|
|
@@ -82,10 +82,6 @@ typically `~/.openclaw/openclaw.json`). Three things matter: the
|
|
|
82
82
|
"memory-synapcores": {
|
|
83
83
|
"enabled": true,
|
|
84
84
|
"config": {
|
|
85
|
-
"embedding": {
|
|
86
|
-
"apiKey": "${OPENAI_API_KEY}",
|
|
87
|
-
"model": "text-embedding-3-small"
|
|
88
|
-
},
|
|
89
85
|
"synapcores": {
|
|
90
86
|
"host": "localhost",
|
|
91
87
|
"port": 8080,
|
|
@@ -110,7 +106,7 @@ typically `~/.openclaw/openclaw.json`). Three things matter: the
|
|
|
110
106
|
> **disabled**.
|
|
111
107
|
|
|
112
108
|
Then `openclaw config validate`. Environment-variable interpolation
|
|
113
|
-
(`${
|
|
109
|
+
(`${SYNAPCORES_API_KEY}`) is supported in any string field
|
|
114
110
|
so you don't have to commit secrets. (Store keys **clean** — a trailing newline
|
|
115
111
|
in `apiKey` will break auth.)
|
|
116
112
|
|
|
@@ -118,8 +114,6 @@ in `apiKey` will break auth.)
|
|
|
118
114
|
|
|
119
115
|
| Field | Required | Default | Notes |
|
|
120
116
|
| --- | --- | --- | --- |
|
|
121
|
-
| `embedding.apiKey` | yes | — | OpenAI API key for the embedding model. |
|
|
122
|
-
| `embedding.model` | no | `text-embedding-3-small` | Either `text-embedding-3-small` (1536 dims) or `text-embedding-3-large` (3072 dims). |
|
|
123
117
|
| `synapcores.apiKey` | yes | — | SynapCores API key (`ak_prod_…` or `aidb_…`). |
|
|
124
118
|
| `synapcores.host` | no | `localhost` | SynapCores gateway hostname. |
|
|
125
119
|
| `synapcores.port` | no | `8080` | SynapCores gateway port. |
|
|
@@ -128,7 +122,7 @@ in `apiKey` will break auth.)
|
|
|
128
122
|
| `graph` | no | `openclaw_memory_graph` | SynapCores graph name (used for `SIMILAR_TO` edges and `recallRelated` walks). |
|
|
129
123
|
| `autoCapture` | no | `true` | Auto-store memorable utterances after each agent turn. |
|
|
130
124
|
| `autoRecall` | no | `true` | Auto-inject relevant memories before each agent turn. |
|
|
131
|
-
| `autoLinkSimilar` | no | `true` | On capture, insert each Memory as a graph node carrying the embedding so `recallRelated` returns useful neighborhoods out of the box. Adds ~30-
|
|
125
|
+
| `autoLinkSimilar` | no | `true` | On capture, insert each Memory as a graph node carrying the embedding so `recallRelated` returns useful neighborhoods out of the box. Adds ~30-50ms per capture; disable if you never call `recallRelated`. |
|
|
132
126
|
| `workspace` | no | — | Optional workspace suffix on the AutoML relevance model name so multiple installations sharing one gateway can train independent models. |
|
|
133
127
|
|
|
134
128
|
## What you get
|
|
@@ -149,7 +143,7 @@ Once registered, the plugin:
|
|
|
149
143
|
| --- | --- |
|
|
150
144
|
| `memory_recall` | Vector-search the memory store. Params: `{ query: string, limit?: number }` (default 5). |
|
|
151
145
|
| `memory_store` | Persist a new memory. Params: `{ text, importance?, category? }`. De-dupes against >0.95 cosine similarity. |
|
|
152
|
-
| `memory_forget` | Delete a memory by `memoryId` (
|
|
146
|
+
| `memory_forget` | Delete a memory by `memoryId` (engine-assigned id, e.g. `mem_…`) or by `query` (auto-deletes if exactly one candidate at >0.9 similarity, otherwise returns candidates). |
|
|
153
147
|
|
|
154
148
|
### Extensions (programmatic, SynapCores-only)
|
|
155
149
|
|
|
@@ -166,8 +160,10 @@ interface MemorySynapCoresExtensions {
|
|
|
166
160
|
|
|
167
161
|
/** Walk SIMILAR_TO / MENTIONS / RELATES_TO edges from a memory. */
|
|
168
162
|
recallRelated(memoryId: string, opts?: {
|
|
169
|
-
hops?: number;
|
|
170
|
-
edgeKinds?: string[];
|
|
163
|
+
hops?: number; // default 1 (capped at 4)
|
|
164
|
+
edgeKinds?: string[]; // default: ["SIMILAR_TO"]
|
|
165
|
+
similarityThreshold?: number; // default 0.5 (synthetic SIMILAR_TO edges only)
|
|
166
|
+
limit?: number; // default 20
|
|
171
167
|
}): Promise<RelatedMemoryResult[]>;
|
|
172
168
|
|
|
173
169
|
/** Score candidates with an AutoML model (with heuristic fallback). */
|
|
@@ -192,7 +188,16 @@ const results = await plugin.extensions.recallFiltered({
|
|
|
192
188
|
});
|
|
193
189
|
```
|
|
194
190
|
|
|
195
|
-
|
|
191
|
+
Because the engine cannot apply a `WHERE` to the table-valued `MEMORY_RECALL(?, ?, ?)` result-set, the plugin runs an oversampled unfiltered recall and evaluates the `where` predicate **client-side in JS**. A malformed clause surfaces as a descriptive `recallFiltered: …` error thrown by the plugin (not an engine error).
|
|
192
|
+
|
|
193
|
+
Supported `where` surface (parsed by the plugin's predicate compiler):
|
|
194
|
+
|
|
195
|
+
- **Fields:** `category`, `importance`, `createdAt`, `text` / `content`, `id`, `similarity` / `score`, and JSON-extract `metadata->>'key'` for any other metadata field.
|
|
196
|
+
- **Comparison operators:** `=` / `==`, `!=` / `<>`, `>`, `>=`, `<`, `<=`, `LIKE` (SQL `%` / `_` wildcards), and `IN (…)`.
|
|
197
|
+
- **Boolean combinators:** `AND`, `OR`, `NOT`, and parentheses.
|
|
198
|
+
- **Literals:** single-quoted strings, numbers, `TRUE` / `FALSE` / `NULL`.
|
|
199
|
+
|
|
200
|
+
An empty clause or `1=1` passes all rows. Anything outside this surface (subqueries, functions, joins) throws rather than silently returning wrong rows.
|
|
196
201
|
|
|
197
202
|
#### `recallRelated` — graph neighborhood walk
|
|
198
203
|
|
|
@@ -220,8 +225,8 @@ ranked.sort((a, b) => b.relevance - a.relevance);
|
|
|
220
225
|
When a model named `openclaw_memory_relevance[_<workspace>]` exists, candidates are scored by it. Otherwise the plugin falls back to:
|
|
221
226
|
|
|
222
227
|
```
|
|
223
|
-
relevance = 0.6 * cosine_similarity(query, memory)
|
|
224
|
-
+ 0.25 * exp(-age_days / 14)
|
|
228
|
+
relevance = 0.6 * (cosine_similarity(query, memory) + 1) / 2 # cosine mapped [-1,1] -> [0,1]
|
|
229
|
+
+ 0.25 * exp(-age_days / 14) # ~14-day recency decay
|
|
225
230
|
+ 0.15 * memory.importance
|
|
226
231
|
```
|
|
227
232
|
|
|
@@ -239,14 +244,14 @@ await plugin.extensions.trainRelevanceModel(feedback);
|
|
|
239
244
|
|
|
240
245
|
Requires at least 10 samples; throws otherwise. Train periodically (cron / on-demand) — the next `predictRelevance` call will detect the model and switch out of heuristic mode.
|
|
241
246
|
|
|
242
|
-
Under the hood,
|
|
247
|
+
Under the hood, the plugin stages feedback rows in a SQL table (`openclaw_memory_relevance_training[_<workspace>]`) on the gateway, then calls `/v1/automl/train` with `target: 'score'` and `task: 'regression'`. The table is preserved across calls so feedback accumulates between sessions; clear it manually with `DROP TABLE` (via `client.executeQuery`) if you want a clean restart. Memory hydration is via `MEMORY_RECALL(?, ?, ?) WHERE id = ?` against the engine's namespace; rows whose memories have been deleted are skipped.
|
|
243
248
|
|
|
244
|
-
## Roadmap
|
|
249
|
+
## Roadmap
|
|
245
250
|
|
|
246
251
|
- **Entity extraction on capture** — parse `@mention` tokens and known-contact names out of incoming text and create `Person` / `Project` graph nodes with `MENTIONS` edges back to the memory.
|
|
247
252
|
- **Tag inference** — auto-classify memories into a configurable tag vocabulary on capture (small classifier or LLM call) so `recallFiltered` queries can use tags out of the box.
|
|
248
253
|
- **`synapcores-import-lancedb` migration script** — read an existing `~/.openclaw/memory/lancedb` store, re-embed if needed, and bulk-load into a SynapCores collection. Ships as a `bin` entry on the package.
|
|
249
|
-
- **Drop the `_getHttpClient` graph-node
|
|
254
|
+
- **Drop the `_getHttpClient` graph-node / graph-match workarounds** once the SDK restores a native graph API: `client.graph.nodes.create` needs to post `{labels: [label]}` (not `{label}`) to match the gateway's `/v1/graph/nodes` handler, and `recallRelated` currently posts Cypher to `/v1/graph/match` directly because `@synapcores/sdk@^0.6.0` no longer exposes `client.graph.cypher`.
|
|
250
255
|
|
|
251
256
|
## Upstream
|
|
252
257
|
|
package/dist/config.d.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
export type MemoryConfig = {
|
|
2
|
-
embedding: {
|
|
3
|
-
provider: "openai";
|
|
4
|
-
model?: string;
|
|
5
|
-
apiKey: string;
|
|
6
|
-
};
|
|
7
2
|
synapcores: {
|
|
8
3
|
host: string;
|
|
9
4
|
port: number;
|
|
@@ -33,21 +28,9 @@ export type MemoryConfig = {
|
|
|
33
28
|
};
|
|
34
29
|
export declare const MEMORY_CATEGORIES: readonly ["preference", "fact", "decision", "entity", "other"];
|
|
35
30
|
export type MemoryCategory = (typeof MEMORY_CATEGORIES)[number];
|
|
36
|
-
export declare function vectorDimsForModel(model: string): number;
|
|
37
31
|
export declare const memoryConfigSchema: {
|
|
38
32
|
parse(value: unknown): MemoryConfig;
|
|
39
33
|
uiHints: {
|
|
40
|
-
"embedding.apiKey": {
|
|
41
|
-
label: string;
|
|
42
|
-
sensitive: boolean;
|
|
43
|
-
placeholder: string;
|
|
44
|
-
help: string;
|
|
45
|
-
};
|
|
46
|
-
"embedding.model": {
|
|
47
|
-
label: string;
|
|
48
|
-
placeholder: string;
|
|
49
|
-
help: string;
|
|
50
|
-
};
|
|
51
34
|
"synapcores.host": {
|
|
52
35
|
label: string;
|
|
53
36
|
placeholder: string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,gEAAiE,CAAC;AAChG,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAmChE,eAAO,MAAM,kBAAkB;iBAChB,OAAO,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGpC,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
export const MEMORY_CATEGORIES = ["preference", "fact", "decision", "entity", "other"];
|
|
2
|
-
const DEFAULT_MODEL = "text-embedding-3-small";
|
|
3
2
|
const DEFAULT_HOST = "localhost";
|
|
4
3
|
const DEFAULT_PORT = 8080;
|
|
5
4
|
const DEFAULT_COLLECTION = "openclaw_memories";
|
|
6
5
|
const DEFAULT_GRAPH = "openclaw_memory_graph";
|
|
7
|
-
const EMBEDDING_DIMENSIONS = {
|
|
8
|
-
"text-embedding-3-small": 1536,
|
|
9
|
-
"text-embedding-3-large": 3072,
|
|
10
|
-
};
|
|
11
6
|
function assertAllowedKeys(value, allowed, label) {
|
|
12
7
|
const unknown = Object.keys(value).filter((key) => !allowed.includes(key));
|
|
13
8
|
if (unknown.length === 0) {
|
|
@@ -15,13 +10,6 @@ function assertAllowedKeys(value, allowed, label) {
|
|
|
15
10
|
}
|
|
16
11
|
throw new Error(`${label} has unknown keys: ${unknown.join(", ")}`);
|
|
17
12
|
}
|
|
18
|
-
export function vectorDimsForModel(model) {
|
|
19
|
-
const dims = EMBEDDING_DIMENSIONS[model];
|
|
20
|
-
if (!dims) {
|
|
21
|
-
throw new Error(`Unsupported embedding model: ${model}`);
|
|
22
|
-
}
|
|
23
|
-
return dims;
|
|
24
|
-
}
|
|
25
13
|
function resolveEnvVars(value) {
|
|
26
14
|
return value.replace(/\$\{([^}]+)\}/g, (_, envVar) => {
|
|
27
15
|
const envValue = process.env[envVar];
|
|
@@ -31,11 +19,6 @@ function resolveEnvVars(value) {
|
|
|
31
19
|
return envValue;
|
|
32
20
|
});
|
|
33
21
|
}
|
|
34
|
-
function resolveEmbeddingModel(embedding) {
|
|
35
|
-
const model = typeof embedding.model === "string" ? embedding.model : DEFAULT_MODEL;
|
|
36
|
-
vectorDimsForModel(model);
|
|
37
|
-
return model;
|
|
38
|
-
}
|
|
39
22
|
function parsePort(value) {
|
|
40
23
|
if (value === undefined) {
|
|
41
24
|
return DEFAULT_PORT;
|
|
@@ -52,7 +35,6 @@ export const memoryConfigSchema = {
|
|
|
52
35
|
}
|
|
53
36
|
const cfg = value;
|
|
54
37
|
assertAllowedKeys(cfg, [
|
|
55
|
-
"embedding",
|
|
56
38
|
"synapcores",
|
|
57
39
|
"collection",
|
|
58
40
|
"graph",
|
|
@@ -61,12 +43,6 @@ export const memoryConfigSchema = {
|
|
|
61
43
|
"autoLinkSimilar",
|
|
62
44
|
"workspace",
|
|
63
45
|
], "memory config");
|
|
64
|
-
const embedding = cfg.embedding;
|
|
65
|
-
if (!embedding || typeof embedding.apiKey !== "string") {
|
|
66
|
-
throw new Error("embedding.apiKey is required");
|
|
67
|
-
}
|
|
68
|
-
assertAllowedKeys(embedding, ["apiKey", "model"], "embedding config");
|
|
69
|
-
const model = resolveEmbeddingModel(embedding);
|
|
70
46
|
const synapcores = cfg.synapcores;
|
|
71
47
|
if (!synapcores || typeof synapcores.apiKey !== "string") {
|
|
72
48
|
throw new Error("synapcores.apiKey is required");
|
|
@@ -78,11 +54,6 @@ export const memoryConfigSchema = {
|
|
|
78
54
|
const port = parsePort(synapcores.port);
|
|
79
55
|
const useHttps = synapcores.useHttps === true;
|
|
80
56
|
return {
|
|
81
|
-
embedding: {
|
|
82
|
-
provider: "openai",
|
|
83
|
-
model,
|
|
84
|
-
apiKey: resolveEnvVars(embedding.apiKey),
|
|
85
|
-
},
|
|
86
57
|
synapcores: {
|
|
87
58
|
host,
|
|
88
59
|
port,
|
|
@@ -98,17 +69,6 @@ export const memoryConfigSchema = {
|
|
|
98
69
|
};
|
|
99
70
|
},
|
|
100
71
|
uiHints: {
|
|
101
|
-
"embedding.apiKey": {
|
|
102
|
-
label: "OpenAI API Key",
|
|
103
|
-
sensitive: true,
|
|
104
|
-
placeholder: "sk-proj-...",
|
|
105
|
-
help: "API key for OpenAI embeddings (or use ${OPENAI_API_KEY})",
|
|
106
|
-
},
|
|
107
|
-
"embedding.model": {
|
|
108
|
-
label: "Embedding Model",
|
|
109
|
-
placeholder: DEFAULT_MODEL,
|
|
110
|
-
help: "OpenAI embedding model to use",
|
|
111
|
-
},
|
|
112
72
|
"synapcores.host": {
|
|
113
73
|
label: "SynapCores Host",
|
|
114
74
|
placeholder: DEFAULT_HOST,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Long-term memory with vector search for AI conversations.
|
|
5
5
|
* Uses SynapCores AIDB for storage via the engine-side
|
|
6
|
-
* `MEMORY_STORE` / `MEMORY_RECALL` / `MEMORY_FORGET` primitives and
|
|
7
|
-
*
|
|
8
|
-
* client-side embedding (cosine feature in `predictRelevance`,
|
|
9
|
-
* graph-node embedding when `autoLinkSimilar` is on).
|
|
6
|
+
* `MEMORY_STORE` / `MEMORY_RECALL` / `MEMORY_FORGET` primitives, and the
|
|
7
|
+
* engine-native `client.embed()` for the relevance-extension features that
|
|
8
|
+
* need a client-side embedding (cosine feature in `predictRelevance`,
|
|
9
|
+
* graph-node embedding when `autoLinkSimilar` is on). No external
|
|
10
|
+
* embedding provider is required.
|
|
10
11
|
*
|
|
11
12
|
* Provides seamless auto-recall and auto-capture via lifecycle hooks,
|
|
12
13
|
* plus four SynapCores-only extensions (SQL-filtered recall, graph-relation
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;AAMrB;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,WAAW,CAAC;IACnB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAg4BF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAuGD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;OASG;IACH,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAE9E;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAEhG;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,WAAW,EAAE,GACxB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAEpC;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrG;AA6zBD,QAAA,MAAM,WAAW;;;;;;yIAAkC,CAAC;AAEpD,eAAe,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Long-term memory with vector search for AI conversations.
|
|
5
5
|
* Uses SynapCores AIDB for storage via the engine-side
|
|
6
|
-
* `MEMORY_STORE` / `MEMORY_RECALL` / `MEMORY_FORGET` primitives and
|
|
7
|
-
*
|
|
8
|
-
* client-side embedding (cosine feature in `predictRelevance`,
|
|
9
|
-
* graph-node embedding when `autoLinkSimilar` is on).
|
|
6
|
+
* `MEMORY_STORE` / `MEMORY_RECALL` / `MEMORY_FORGET` primitives, and the
|
|
7
|
+
* engine-native `client.embed()` for the relevance-extension features that
|
|
8
|
+
* need a client-side embedding (cosine feature in `predictRelevance`,
|
|
9
|
+
* graph-node embedding when `autoLinkSimilar` is on). No external
|
|
10
|
+
* embedding provider is required.
|
|
10
11
|
*
|
|
11
12
|
* Provides seamless auto-recall and auto-capture via lifecycle hooks,
|
|
12
13
|
* plus four SynapCores-only extensions (SQL-filtered recall, graph-relation
|
|
@@ -18,11 +19,10 @@
|
|
|
18
19
|
* `client.memory` surface. Requires SynapCores gateway v1.8.5-ce+.
|
|
19
20
|
*/
|
|
20
21
|
import { Type } from "typebox";
|
|
21
|
-
import OpenAI from "openai";
|
|
22
22
|
import { stringEnum } from "openclaw/plugin-sdk/core";
|
|
23
23
|
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
|
24
24
|
import { SynapCores } from "@synapcores/sdk";
|
|
25
|
-
import { MEMORY_CATEGORIES, memoryConfigSchema,
|
|
25
|
+
import { MEMORY_CATEGORIES, memoryConfigSchema, } from "./config.js";
|
|
26
26
|
// ============================================================================
|
|
27
27
|
// Constants
|
|
28
28
|
// ============================================================================
|
|
@@ -198,25 +198,35 @@ class MemoryDB {
|
|
|
198
198
|
.filter((r) => r.score >= minScore);
|
|
199
199
|
}
|
|
200
200
|
/**
|
|
201
|
-
* SQL-filtered recall
|
|
202
|
-
*
|
|
203
|
-
* filter runs engine-side over the recall result-set.
|
|
201
|
+
* SQL-filtered recall: a semantic vector search paired with a `WHERE`
|
|
202
|
+
* predicate over category / importance / createdAt / text / `metadata->>'…'`.
|
|
204
203
|
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
204
|
+
* ENGINE BUG (SynapCores gateway, confirmed v1.6.5.2-ce … v1.9.x-ce):
|
|
205
|
+
* applying ANY `WHERE` to the table-valued `MEMORY_RECALL(?, ?, ?)`
|
|
206
|
+
* function drops every row and returns an empty column set — even a bare
|
|
207
|
+
* `WHERE metadata->>'category' = 'preference'`. The engine cannot filter a
|
|
208
|
+
* table-valued-function result-set in the same SELECT. See the repro in the
|
|
209
|
+
* revalidation report; this needs an engine-side fix (planner should push
|
|
210
|
+
* the predicate as a post-filter over the TVF output, or materialize the
|
|
211
|
+
* TVF before applying WHERE).
|
|
212
|
+
*
|
|
213
|
+
* WORKAROUND (this method): fetch an oversampled, UNFILTERED
|
|
214
|
+
* `SELECT … FROM MEMORY_RECALL(?, ?, ?)` and apply the WHERE predicate
|
|
215
|
+
* CLIENT-SIDE in JS (see {@link compileWherePredicate}). The predicate
|
|
216
|
+
* evaluates against the recall row's category / importance / createdAt /
|
|
217
|
+
* text / id / similarity and its parsed `metadata` blob, so the documented
|
|
218
|
+
* filtering surface works despite the engine gap. Once the engine bug is
|
|
219
|
+
* fixed this can revert to a single WHERE-bearing SQL statement.
|
|
220
|
+
*
|
|
221
|
+
* Legacy shorthand (`category`, `importance`, `createdAt`, `text`) and the
|
|
222
|
+
* portable `metadata->>'…'` JSON-extract form are both accepted.
|
|
212
223
|
*/
|
|
213
224
|
async searchFiltered(semantic, where, limit = 5) {
|
|
214
225
|
await this.ensureReady();
|
|
215
|
-
// Oversample so the post-filter still has enough rows to return.
|
|
226
|
+
// Oversample so the client-side post-filter still has enough rows to return.
|
|
216
227
|
const oversample = clampTopK(Math.max(limit * 5, 25));
|
|
217
|
-
const rewritten = rewriteLegacyWhere(where);
|
|
218
228
|
const sql = "SELECT id, content, similarity, metadata, created_at " +
|
|
219
|
-
`FROM MEMORY_RECALL($1, $2, $3)
|
|
229
|
+
`FROM MEMORY_RECALL($1, $2, $3) LIMIT ${oversample}`;
|
|
220
230
|
let result;
|
|
221
231
|
try {
|
|
222
232
|
result = await this.client.executeQuery({
|
|
@@ -231,7 +241,9 @@ class MemoryDB {
|
|
|
231
241
|
}
|
|
232
242
|
throw err;
|
|
233
243
|
}
|
|
234
|
-
|
|
244
|
+
const predicate = compileWherePredicate(where);
|
|
245
|
+
const filtered = mapRecallRowsRich(result).filter((r) => predicate({ entry: r.result.entry, score: r.result.score, metadata: r.metadata }));
|
|
246
|
+
return filtered.slice(0, Number(limit)).map((r) => r.result);
|
|
235
247
|
}
|
|
236
248
|
async delete(id) {
|
|
237
249
|
await this.ensureReady();
|
|
@@ -355,6 +367,15 @@ function recordToResult(record) {
|
|
|
355
367
|
* pass-through).
|
|
356
368
|
*/
|
|
357
369
|
function mapRecallRows(result) {
|
|
370
|
+
return mapRecallRowsRich(result).map((r) => r.result);
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Like {@link mapRecallRows}, but also surfaces the parsed `metadata` blob
|
|
374
|
+
* alongside each result. Used by `searchFiltered` so the WHERE clause can be
|
|
375
|
+
* evaluated client-side against the full metadata object (see
|
|
376
|
+
* {@link compileWherePredicate} and the ENGINE-BUG note on `searchFiltered`).
|
|
377
|
+
*/
|
|
378
|
+
function mapRecallRowsRich(result) {
|
|
358
379
|
const cols = (result.columns ?? []).map((c) => typeof c === "string" ? c : (c?.name ?? ""));
|
|
359
380
|
const colIndex = (name) => cols.findIndex((c) => c === name);
|
|
360
381
|
const idIdx = colIndex("id");
|
|
@@ -376,19 +397,22 @@ function mapRecallRows(result) {
|
|
|
376
397
|
const id = idIdx >= 0 ? String(row[idIdx] ?? "") : "";
|
|
377
398
|
const content = contentIdx >= 0 ? String(row[contentIdx] ?? "") : "";
|
|
378
399
|
out.push({
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
400
|
+
result: {
|
|
401
|
+
entry: {
|
|
402
|
+
id,
|
|
403
|
+
text: content,
|
|
404
|
+
vector: [],
|
|
405
|
+
importance: typeof importance === "number" ? importance : 0,
|
|
406
|
+
category: (typeof category === "string"
|
|
407
|
+
? category
|
|
408
|
+
: "other"),
|
|
409
|
+
createdAt: typeof metadataField(meta, "createdAt") === "number"
|
|
410
|
+
? metadataField(meta, "createdAt")
|
|
411
|
+
: createdAtMs,
|
|
412
|
+
},
|
|
413
|
+
score: clamp01(similarity),
|
|
390
414
|
},
|
|
391
|
-
|
|
415
|
+
metadata: meta,
|
|
392
416
|
});
|
|
393
417
|
}
|
|
394
418
|
return out;
|
|
@@ -448,59 +472,253 @@ function isMissingNamespaceError(err) {
|
|
|
448
472
|
msg.includes("namespace not found"));
|
|
449
473
|
}
|
|
450
474
|
/**
|
|
451
|
-
*
|
|
452
|
-
*
|
|
453
|
-
*
|
|
454
|
-
*
|
|
475
|
+
* Compile a SQL-ish `WHERE` fragment into a JS predicate over a
|
|
476
|
+
* {@link WhereRecord}. This exists because the engine cannot apply a `WHERE`
|
|
477
|
+
* to the table-valued `MEMORY_RECALL(...)` output (see the ENGINE BUG note on
|
|
478
|
+
* `searchFiltered`), so `searchFiltered` fetches unfiltered rows and filters
|
|
479
|
+
* them here.
|
|
455
480
|
*
|
|
456
|
-
*
|
|
457
|
-
* category
|
|
458
|
-
*
|
|
459
|
-
*
|
|
460
|
-
*
|
|
481
|
+
* Supported surface (the plugin's documented filtering contract):
|
|
482
|
+
* - Fields: `category`, `importance`, `createdAt`, `text`/`content`, `id`,
|
|
483
|
+
* `similarity`/`score`, and JSON-extract `metadata->>'key'`.
|
|
484
|
+
* - Comparison ops: `=`/`==`, `!=`/`<>`, `>`, `>=`, `<`, `<=`, `LIKE`
|
|
485
|
+
* (SQL `%`/`_` wildcards), `IN (...)`.
|
|
486
|
+
* - Boolean combinators: `AND`, `OR`, `NOT`, and parentheses.
|
|
487
|
+
* - Literals: single-quoted strings, numbers, `TRUE`/`FALSE`/`NULL`.
|
|
461
488
|
*
|
|
462
|
-
*
|
|
463
|
-
*
|
|
489
|
+
* A trivial always-true clause (empty or `1=1`) short-circuits to pass-all.
|
|
490
|
+
* Unsupported syntax throws a descriptive error rather than silently
|
|
491
|
+
* returning wrong rows.
|
|
464
492
|
*/
|
|
465
|
-
function
|
|
466
|
-
const
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
[/(?<![.'"\w])createdAt(?![\w])/g, "CAST(metadata->>'createdAt' AS INTEGER)"],
|
|
470
|
-
[/(?<![.'"\w])text(?![\w])/g, "content"],
|
|
471
|
-
];
|
|
472
|
-
let out = where;
|
|
473
|
-
for (const [re, repl] of rules) {
|
|
474
|
-
out = out.replace(re, repl);
|
|
493
|
+
function compileWherePredicate(where) {
|
|
494
|
+
const src = (where ?? "").trim();
|
|
495
|
+
if (src === "" || src === "1=1" || src === "1 = 1" || src.toLowerCase() === "true") {
|
|
496
|
+
return () => true;
|
|
475
497
|
}
|
|
476
|
-
|
|
498
|
+
const tokens = [];
|
|
499
|
+
const re = /\s+|metadata\s*->>\s*'([^']*)'|'((?:[^']|'')*)'|(>=|<=|!=|<>|==|=|>|<)|(\()|(\))|,|([A-Za-z_][A-Za-z0-9_]*)|(-?\d+(?:\.\d+)?)/g;
|
|
500
|
+
let m;
|
|
501
|
+
let lastIndex = 0;
|
|
502
|
+
while ((m = re.exec(src)) !== null) {
|
|
503
|
+
if (m.index !== lastIndex) {
|
|
504
|
+
throw new Error(`recallFiltered: unsupported token near "${src.slice(lastIndex, m.index + 1)}"`);
|
|
505
|
+
}
|
|
506
|
+
lastIndex = re.lastIndex;
|
|
507
|
+
const raw = m[0];
|
|
508
|
+
if (/^\s+$/.test(raw))
|
|
509
|
+
continue;
|
|
510
|
+
if (m[1] !== undefined)
|
|
511
|
+
tokens.push({ t: "field", v: `metadata:${m[1]}` });
|
|
512
|
+
else if (m[2] !== undefined)
|
|
513
|
+
tokens.push({ t: "str", v: m[2].replace(/''/g, "'") });
|
|
514
|
+
else if (m[3] !== undefined)
|
|
515
|
+
tokens.push({ t: "op", v: m[3] });
|
|
516
|
+
else if (m[4] !== undefined)
|
|
517
|
+
tokens.push({ t: "lparen", v: "(" });
|
|
518
|
+
else if (m[5] !== undefined)
|
|
519
|
+
tokens.push({ t: "rparen", v: ")" });
|
|
520
|
+
else if (raw === ",")
|
|
521
|
+
tokens.push({ t: "comma", v: "," });
|
|
522
|
+
else if (m[6] !== undefined) {
|
|
523
|
+
const kw = m[6].toUpperCase();
|
|
524
|
+
if (["AND", "OR", "NOT", "LIKE", "IN", "TRUE", "FALSE", "NULL"].includes(kw)) {
|
|
525
|
+
tokens.push({ t: "kw", v: kw });
|
|
526
|
+
}
|
|
527
|
+
else {
|
|
528
|
+
tokens.push({ t: "field", v: m[6] });
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
else if (m[7] !== undefined)
|
|
532
|
+
tokens.push({ t: "num", v: m[7] });
|
|
533
|
+
}
|
|
534
|
+
if (lastIndex !== src.length) {
|
|
535
|
+
throw new Error(`recallFiltered: unsupported token near "${src.slice(lastIndex)}"`);
|
|
536
|
+
}
|
|
537
|
+
// Recursive-descent parser -> predicate closure.
|
|
538
|
+
let pos = 0;
|
|
539
|
+
const peek = () => tokens[pos];
|
|
540
|
+
const next = () => tokens[pos++];
|
|
541
|
+
const fieldValue = (name, rec) => {
|
|
542
|
+
if (name.startsWith("metadata:")) {
|
|
543
|
+
const key = name.slice("metadata:".length);
|
|
544
|
+
return rec.metadata ? rec.metadata[key] : undefined;
|
|
545
|
+
}
|
|
546
|
+
switch (name.toLowerCase()) {
|
|
547
|
+
case "category": return rec.entry.category;
|
|
548
|
+
case "importance": return rec.entry.importance;
|
|
549
|
+
case "createdat": return rec.entry.createdAt;
|
|
550
|
+
case "text":
|
|
551
|
+
case "content": return rec.entry.text;
|
|
552
|
+
case "id": return rec.entry.id;
|
|
553
|
+
case "similarity":
|
|
554
|
+
case "score": return rec.score;
|
|
555
|
+
default:
|
|
556
|
+
return rec.metadata ? rec.metadata[name] : undefined;
|
|
557
|
+
}
|
|
558
|
+
};
|
|
559
|
+
const asNumber = (v) => {
|
|
560
|
+
if (typeof v === "number")
|
|
561
|
+
return Number.isFinite(v) ? v : null;
|
|
562
|
+
if (typeof v === "string" && v.trim() !== "") {
|
|
563
|
+
const n = Number(v);
|
|
564
|
+
return Number.isFinite(n) ? n : null;
|
|
565
|
+
}
|
|
566
|
+
return null;
|
|
567
|
+
};
|
|
568
|
+
const likeToRegExp = (pattern) => {
|
|
569
|
+
let out = "";
|
|
570
|
+
for (const ch of pattern) {
|
|
571
|
+
if (ch === "%")
|
|
572
|
+
out += ".*";
|
|
573
|
+
else if (ch === "_")
|
|
574
|
+
out += ".";
|
|
575
|
+
else
|
|
576
|
+
out += ch.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
577
|
+
}
|
|
578
|
+
return new RegExp(`^${out}$`, "i");
|
|
579
|
+
};
|
|
580
|
+
const compareOp = (op, left, right) => {
|
|
581
|
+
const ln = asNumber(left);
|
|
582
|
+
const rn = asNumber(right);
|
|
583
|
+
const bothNum = ln !== null && rn !== null;
|
|
584
|
+
switch (op) {
|
|
585
|
+
case "=":
|
|
586
|
+
case "==":
|
|
587
|
+
return bothNum ? ln === rn : String(left) === String(right);
|
|
588
|
+
case "!=":
|
|
589
|
+
case "<>":
|
|
590
|
+
return bothNum ? ln !== rn : String(left) !== String(right);
|
|
591
|
+
case ">": return bothNum ? ln > rn : String(left) > String(right);
|
|
592
|
+
case ">=": return bothNum ? ln >= rn : String(left) >= String(right);
|
|
593
|
+
case "<": return bothNum ? ln < rn : String(left) < String(right);
|
|
594
|
+
case "<=": return bothNum ? ln <= rn : String(left) <= String(right);
|
|
595
|
+
default:
|
|
596
|
+
throw new Error(`recallFiltered: unsupported operator "${op}"`);
|
|
597
|
+
}
|
|
598
|
+
};
|
|
599
|
+
// literal value parse (for RHS of a comparison / IN list)
|
|
600
|
+
const parseLiteral = () => {
|
|
601
|
+
const tk = next();
|
|
602
|
+
if (!tk)
|
|
603
|
+
throw new Error("recallFiltered: unexpected end of WHERE clause");
|
|
604
|
+
if (tk.t === "str")
|
|
605
|
+
return tk.v;
|
|
606
|
+
if (tk.t === "num")
|
|
607
|
+
return Number(tk.v);
|
|
608
|
+
if (tk.t === "kw" && tk.v === "TRUE")
|
|
609
|
+
return true;
|
|
610
|
+
if (tk.t === "kw" && tk.v === "FALSE")
|
|
611
|
+
return false;
|
|
612
|
+
if (tk.t === "kw" && tk.v === "NULL")
|
|
613
|
+
return null;
|
|
614
|
+
throw new Error(`recallFiltered: expected a literal, got "${tk.v}"`);
|
|
615
|
+
};
|
|
616
|
+
const parseComparison = () => {
|
|
617
|
+
const tk = next();
|
|
618
|
+
if (!tk || tk.t !== "field") {
|
|
619
|
+
throw new Error(`recallFiltered: expected a field name, got "${tk?.v ?? "<end>"}"`);
|
|
620
|
+
}
|
|
621
|
+
const fieldName = tk.v;
|
|
622
|
+
const opTok = peek();
|
|
623
|
+
// IN (...)
|
|
624
|
+
if (opTok && opTok.t === "kw" && opTok.v === "IN") {
|
|
625
|
+
next();
|
|
626
|
+
const lp = next();
|
|
627
|
+
if (!lp || lp.t !== "lparen")
|
|
628
|
+
throw new Error("recallFiltered: expected '(' after IN");
|
|
629
|
+
const values = [];
|
|
630
|
+
for (;;) {
|
|
631
|
+
values.push(parseLiteral());
|
|
632
|
+
const sep = next();
|
|
633
|
+
if (sep && sep.t === "comma")
|
|
634
|
+
continue;
|
|
635
|
+
if (sep && sep.t === "rparen")
|
|
636
|
+
break;
|
|
637
|
+
throw new Error("recallFiltered: malformed IN (...) list");
|
|
638
|
+
}
|
|
639
|
+
return (rec) => {
|
|
640
|
+
const lv = fieldValue(fieldName, rec);
|
|
641
|
+
return values.some((v) => compareOp("=", lv, v));
|
|
642
|
+
};
|
|
643
|
+
}
|
|
644
|
+
// LIKE
|
|
645
|
+
if (opTok && opTok.t === "kw" && opTok.v === "LIKE") {
|
|
646
|
+
next();
|
|
647
|
+
const lit = parseLiteral();
|
|
648
|
+
const rx = likeToRegExp(String(lit));
|
|
649
|
+
return (rec) => rx.test(String(fieldValue(fieldName, rec) ?? ""));
|
|
650
|
+
}
|
|
651
|
+
// comparison operator
|
|
652
|
+
if (!opTok || opTok.t !== "op") {
|
|
653
|
+
throw new Error(`recallFiltered: expected an operator after "${fieldName}", got "${opTok?.v ?? "<end>"}"`);
|
|
654
|
+
}
|
|
655
|
+
next();
|
|
656
|
+
const rhs = parseLiteral();
|
|
657
|
+
return (rec) => compareOp(opTok.v, fieldValue(fieldName, rec), rhs);
|
|
658
|
+
};
|
|
659
|
+
const parsePrimary = () => {
|
|
660
|
+
const tk = peek();
|
|
661
|
+
if (tk && tk.t === "lparen") {
|
|
662
|
+
next();
|
|
663
|
+
const inner = parseOr();
|
|
664
|
+
const rp = next();
|
|
665
|
+
if (!rp || rp.t !== "rparen")
|
|
666
|
+
throw new Error("recallFiltered: missing ')'");
|
|
667
|
+
return inner;
|
|
668
|
+
}
|
|
669
|
+
if (tk && tk.t === "kw" && tk.v === "NOT") {
|
|
670
|
+
next();
|
|
671
|
+
const inner = parsePrimary();
|
|
672
|
+
return (rec) => !inner(rec);
|
|
673
|
+
}
|
|
674
|
+
return parseComparison();
|
|
675
|
+
};
|
|
676
|
+
const parseAnd = () => {
|
|
677
|
+
let left = parsePrimary();
|
|
678
|
+
while (peek() && peek().t === "kw" && peek().v === "AND") {
|
|
679
|
+
next();
|
|
680
|
+
const right = parsePrimary();
|
|
681
|
+
const l = left;
|
|
682
|
+
left = (rec) => l(rec) && right(rec);
|
|
683
|
+
}
|
|
684
|
+
return left;
|
|
685
|
+
};
|
|
686
|
+
function parseOr() {
|
|
687
|
+
let left = parseAnd();
|
|
688
|
+
while (peek() && peek().t === "kw" && peek().v === "OR") {
|
|
689
|
+
next();
|
|
690
|
+
const right = parseAnd();
|
|
691
|
+
const l = left;
|
|
692
|
+
left = (rec) => l(rec) || right(rec);
|
|
693
|
+
}
|
|
694
|
+
return left;
|
|
695
|
+
}
|
|
696
|
+
const predicate = parseOr();
|
|
697
|
+
if (pos !== tokens.length) {
|
|
698
|
+
throw new Error(`recallFiltered: unexpected trailing tokens in WHERE clause near "${peek()?.v ?? ""}"`);
|
|
699
|
+
}
|
|
700
|
+
return predicate;
|
|
477
701
|
}
|
|
478
702
|
// ============================================================================
|
|
479
|
-
//
|
|
703
|
+
// Embeddings (engine-native)
|
|
480
704
|
// ============================================================================
|
|
481
705
|
//
|
|
482
|
-
//
|
|
483
|
-
// (`
|
|
706
|
+
// OpenAI has been fully removed. Client-side embeddings are now produced by
|
|
707
|
+
// the SynapCores engine via `client.embed()` (native `EMBED()`), the same
|
|
708
|
+
// embedding space the engine uses for the core memory ops
|
|
709
|
+
// (`MEMORY_STORE` / `MEMORY_RECALL`). Used by:
|
|
484
710
|
// - `predictRelevance` / `trainRelevanceModel`: client-side cosine
|
|
485
711
|
// between query and candidate text.
|
|
486
712
|
// - `autoLinkSimilar` capture: writing an `embedding` property onto the
|
|
487
713
|
// Memory graph node so `recallRelated`'s synthetic SIMILAR_TO edge
|
|
488
714
|
// resolves at MATCH time.
|
|
489
|
-
// Callers that never use the relevance extensions and disable
|
|
490
|
-
// `autoLinkSimilar` will not hit the OpenAI client.
|
|
491
715
|
class Embeddings {
|
|
492
|
-
model;
|
|
493
716
|
client;
|
|
494
|
-
constructor(
|
|
495
|
-
this.
|
|
496
|
-
this.client = new OpenAI({ apiKey });
|
|
717
|
+
constructor(client) {
|
|
718
|
+
this.client = client;
|
|
497
719
|
}
|
|
498
720
|
async embed(text) {
|
|
499
|
-
|
|
500
|
-
model: this.model,
|
|
501
|
-
input: text,
|
|
502
|
-
});
|
|
503
|
-
return response.data[0].embedding;
|
|
721
|
+
return (await this.client.embed(text));
|
|
504
722
|
}
|
|
505
723
|
}
|
|
506
724
|
// ============================================================================
|
|
@@ -648,17 +866,19 @@ const DEFAULT_RECALL_RELATED_LIMIT = 20;
|
|
|
648
866
|
/**
|
|
649
867
|
* `linkSimilarMemories` — capture-time graph wiring.
|
|
650
868
|
*
|
|
651
|
-
* Inserts the Memory as a graph node carrying the
|
|
652
|
-
* the property name `embedding` — the field the gateway's brute-force
|
|
869
|
+
* Inserts the Memory as a graph node carrying the engine-native embedding
|
|
870
|
+
* under the property name `embedding` — the field the gateway's brute-force
|
|
653
871
|
* vector index is wired against (see
|
|
654
872
|
* `aidb_gateway::routes::graph::attach_default_vector_index`). Once a
|
|
655
873
|
* Memory node exists, `recallRelated` can MATCH `[:SIMILAR_TO > T]`
|
|
656
874
|
* against it and get neighbors back without any pre-stored edges.
|
|
657
875
|
*
|
|
658
|
-
*
|
|
659
|
-
*
|
|
660
|
-
*
|
|
661
|
-
*
|
|
876
|
+
* NOTE: the engine no longer exposes the vector it used internally for
|
|
877
|
+
* `MEMORY_STORE`, so this helper re-embeds the text via `client.embed()`.
|
|
878
|
+
* Because the node-property vector now comes from the engine's own
|
|
879
|
+
* embedding space (previously it was a separate OpenAI space), it is
|
|
880
|
+
* consistent with the vectors the engine produces for the core memory
|
|
881
|
+
* ops — a consistency improvement over the prior OpenAI-based path.
|
|
662
882
|
*
|
|
663
883
|
* Failures here are non-fatal — the capture itself still succeeded in the
|
|
664
884
|
* memory subsystem; we just log and move on so the rest of recall keeps
|
|
@@ -910,8 +1130,8 @@ function createExtensions(db, embeddings, client, _graphName, workspace) {
|
|
|
910
1130
|
// a soft warning to the caller via the throw message); training
|
|
911
1131
|
// proceeds with the remainder.
|
|
912
1132
|
// Hydrate feedback rows. Embed each query text once; pair with
|
|
913
|
-
// the stored Memory's content (re-embedded via
|
|
914
|
-
// cosine feature.
|
|
1133
|
+
// the stored Memory's content (re-embedded via engine-native
|
|
1134
|
+
// `client.embed()`) to get the cosine feature.
|
|
915
1135
|
const hydrated = [];
|
|
916
1136
|
let missing = 0;
|
|
917
1137
|
for (const fb of feedback) {
|
|
@@ -1035,10 +1255,6 @@ const memoryPlugin = {
|
|
|
1035
1255
|
configSchema: memoryConfigSchema,
|
|
1036
1256
|
register(api) {
|
|
1037
1257
|
const cfg = memoryConfigSchema.parse(api.pluginConfig);
|
|
1038
|
-
// Validate `vectorDimsForModel` runs without throwing; the dimension
|
|
1039
|
-
// value itself isn't used in v0.4.0 because the engine owns embedding
|
|
1040
|
-
// for the core memory ops.
|
|
1041
|
-
vectorDimsForModel(cfg.embedding.model ?? "text-embedding-3-small");
|
|
1042
1258
|
const namespace = cfg.collection ?? DEFAULT_COLLECTION;
|
|
1043
1259
|
// The new MemoryClient enforces namespace ^[A-Za-z_][A-Za-z0-9_]*$. Fail
|
|
1044
1260
|
// loud and early if the OpenClaw config's `collection` value would be
|
|
@@ -1054,7 +1270,7 @@ const memoryPlugin = {
|
|
|
1054
1270
|
apiKey: cfg.synapcores.apiKey,
|
|
1055
1271
|
});
|
|
1056
1272
|
const db = new MemoryDB(client, namespace);
|
|
1057
|
-
const embeddings = new Embeddings(
|
|
1273
|
+
const embeddings = new Embeddings(client);
|
|
1058
1274
|
const extensions = createExtensions(db, embeddings, client, cfg.graph, cfg.workspace);
|
|
1059
1275
|
const autoLinkSimilar = cfg.autoLinkSimilar !== false;
|
|
1060
1276
|
api.logger.info(`memory-synapcores: plugin registered (host: ${cfg.synapcores.host}:${cfg.synapcores.port}, namespace: ${namespace}, autoLinkSimilar: ${autoLinkSimilar}, lazy init)`);
|
|
@@ -1130,8 +1346,9 @@ const memoryPlugin = {
|
|
|
1130
1346
|
category,
|
|
1131
1347
|
});
|
|
1132
1348
|
// linkSimilarMemories inserts a Memory graph node carrying an
|
|
1133
|
-
//
|
|
1134
|
-
// to MATCH against. Failures are
|
|
1349
|
+
// engine-native embedded representation (via `client.embed()`) so
|
|
1350
|
+
// recallRelated has something to MATCH against. Failures are
|
|
1351
|
+
// non-fatal (logged in-helper).
|
|
1135
1352
|
if (autoLinkSimilar) {
|
|
1136
1353
|
try {
|
|
1137
1354
|
const embedVec = await embeddings.embed(text);
|
|
@@ -1243,9 +1460,13 @@ const memoryPlugin = {
|
|
|
1243
1460
|
// ========================================================================
|
|
1244
1461
|
// Lifecycle Hooks
|
|
1245
1462
|
// ========================================================================
|
|
1246
|
-
// Auto-recall: inject relevant memories
|
|
1463
|
+
// Auto-recall: inject relevant memories into the prompt build.
|
|
1464
|
+
// Uses the current `before_prompt_build` hook (the phase OpenClaw's own
|
|
1465
|
+
// Active Memory plugin uses for recall injection). The event still carries
|
|
1466
|
+
// `prompt`, and the result type (PluginHookBeforePromptBuildResult) still
|
|
1467
|
+
// exposes `prependContext` — so per-turn recall injection is preserved.
|
|
1247
1468
|
if (cfg.autoRecall) {
|
|
1248
|
-
api.on("
|
|
1469
|
+
api.on("before_prompt_build", async (event) => {
|
|
1249
1470
|
if (!event.prompt || event.prompt.length < 5) {
|
|
1250
1471
|
return;
|
|
1251
1472
|
}
|
|
@@ -1354,7 +1575,7 @@ const memoryPlugin = {
|
|
|
1354
1575
|
// bricking the host — memory ops still lazily retry on first use.
|
|
1355
1576
|
try {
|
|
1356
1577
|
await preflightGateway(client);
|
|
1357
|
-
api.logger.info(`memory-synapcores: initialized (host: ${cfg.synapcores.host}:${cfg.synapcores.port}, namespace: ${namespace},
|
|
1578
|
+
api.logger.info(`memory-synapcores: initialized (host: ${cfg.synapcores.host}:${cfg.synapcores.port}, namespace: ${namespace}, embeddings: engine-native)`);
|
|
1358
1579
|
}
|
|
1359
1580
|
catch (err) {
|
|
1360
1581
|
api.logger.warn(`memory-synapcores: ${String(err?.message ?? err)}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "memory-synapcores",
|
|
3
|
+
"name": "Memory (SynapCores)",
|
|
3
4
|
"kind": "memory",
|
|
4
5
|
"commandAliases": [{ "name": "ltm" }],
|
|
5
6
|
"activation": {
|
|
@@ -10,17 +11,6 @@
|
|
|
10
11
|
"tools": ["memory_store", "memory_recall", "memory_forget"]
|
|
11
12
|
},
|
|
12
13
|
"uiHints": {
|
|
13
|
-
"embedding.apiKey": {
|
|
14
|
-
"label": "OpenAI API Key",
|
|
15
|
-
"sensitive": true,
|
|
16
|
-
"placeholder": "sk-proj-...",
|
|
17
|
-
"help": "API key for OpenAI embeddings (or use ${OPENAI_API_KEY})"
|
|
18
|
-
},
|
|
19
|
-
"embedding.model": {
|
|
20
|
-
"label": "Embedding Model",
|
|
21
|
-
"placeholder": "text-embedding-3-small",
|
|
22
|
-
"help": "OpenAI embedding model to use"
|
|
23
|
-
},
|
|
24
14
|
"synapcores.host": {
|
|
25
15
|
"label": "SynapCores Host",
|
|
26
16
|
"placeholder": "localhost",
|
|
@@ -77,20 +67,6 @@
|
|
|
77
67
|
"type": "object",
|
|
78
68
|
"additionalProperties": false,
|
|
79
69
|
"properties": {
|
|
80
|
-
"embedding": {
|
|
81
|
-
"type": "object",
|
|
82
|
-
"additionalProperties": false,
|
|
83
|
-
"properties": {
|
|
84
|
-
"apiKey": {
|
|
85
|
-
"type": "string"
|
|
86
|
-
},
|
|
87
|
-
"model": {
|
|
88
|
-
"type": "string",
|
|
89
|
-
"enum": ["text-embedding-3-small", "text-embedding-3-large"]
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"required": ["apiKey"]
|
|
93
|
-
},
|
|
94
70
|
"synapcores": {
|
|
95
71
|
"type": "object",
|
|
96
72
|
"additionalProperties": false,
|
|
@@ -131,6 +107,6 @@
|
|
|
131
107
|
"type": "string"
|
|
132
108
|
}
|
|
133
109
|
},
|
|
134
|
-
"required": ["
|
|
110
|
+
"required": ["synapcores"]
|
|
135
111
|
}
|
|
136
112
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synapcores/openclaw-memory",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "OpenClaw long-term memory plugin backed by SynapCores AIDB engine-side MEMORY_STORE/RECALL/FORGET primitives + SQL filtering, graph relations, AutoML relevance",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -53,8 +53,7 @@
|
|
|
53
53
|
"node": ">=18.0.0"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@synapcores/sdk": "^0.
|
|
57
|
-
"openai": "^6.17.0",
|
|
56
|
+
"@synapcores/sdk": "^0.6.0",
|
|
58
57
|
"typebox": "^1.1.38"
|
|
59
58
|
},
|
|
60
59
|
"peerDependencies": {
|
|
@@ -75,9 +74,10 @@
|
|
|
75
74
|
"./dist/index.js"
|
|
76
75
|
],
|
|
77
76
|
"install": {
|
|
77
|
+
"clawhubSpec": "@synapcores/openclaw-memory",
|
|
78
78
|
"npmSpec": "@synapcores/openclaw-memory",
|
|
79
79
|
"defaultChoice": "npm",
|
|
80
|
-
"minHostVersion": ">=2026.
|
|
80
|
+
"minHostVersion": ">=2026.5.12",
|
|
81
81
|
"minSynapCoresEngineVersion": "v1.8.5-ce"
|
|
82
82
|
},
|
|
83
83
|
"build": {
|