@ubundi/openclaw-cortex 1.7.6 → 2.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/README.md CHANGED
@@ -46,7 +46,16 @@ openclaw plugins install -l ./path/to/openclaw-cortex
46
46
  openclaw plugins install @ubundi/openclaw-cortex
47
47
  ```
48
48
 
49
- 2. Add a minimal plugin config to `openclaw.json`:
49
+ 2. Set the tools profile to `full` so the agent can access memory tools:
50
+
51
+ ```bash
52
+ openclaw config set tools.profile full
53
+ openclaw gateway restart
54
+ ```
55
+
56
+ > **Note:** OpenClaw defaults to the `messaging` tools profile, which excludes memory tools. The plugin's own tools (`cortex_search_memory`, `cortex_save_memory`) are registered directly and work on any profile, but the built-in `memory_search`, `read`, `write`, and other tools require `full`. This must be re-applied after running `openclaw configure` as the wizard resets it.
57
+
58
+ 3. Add a minimal plugin config to `openclaw.json`:
50
59
 
51
60
  ```json
52
61
  {
@@ -66,7 +75,7 @@ openclaw plugins install -l ./path/to/openclaw-cortex
66
75
 
67
76
  That's it — no API key, no account, no setup. On first run the plugin generates a unique ID for this installation, persists it at `~/.openclaw/cortex-user-id`, and scopes all memories to that ID.
68
77
 
69
- 3. Run an agent turn. If configured correctly, recall data is prepended in a `<cortex_memories>` block before the model turn.
78
+ 4. Run an agent turn. If configured correctly, recall data is prepended in a `<cortex_memories>` block before the model turn.
70
79
 
71
80
  ## Configuration
72
81
 
@@ -298,6 +307,7 @@ If both this plugin and the Cortex SKILL.md are active, the `<cortex_memories>`
298
307
 
299
308
  ## Troubleshooting
300
309
 
310
+ - **Agent not using plugin tools**: Check `tools.profile` in `openclaw.json` — OpenClaw defaults to `"messaging"`, which excludes memory tools. Run `openclaw config set tools.profile full && openclaw gateway restart`. The configure wizard resets this, so re-check after any reconfiguration.
301
311
  - Plugin installed but no memory behavior: verify both `"enabled": true` and `"slots.memory": "@ubundi/openclaw-cortex"` in `openclaw.json`.
302
312
  - `Cannot find module 'zod'` during plugin load (older installs): run `npm install --prefix ~/.openclaw/extensions/openclaw-cortex --omit=dev zod`.
303
313
  - Frequent recall timeouts: increase `recallTimeoutMs` for auto-recall or `toolTimeoutMs` for explicit searches.
@@ -15,5 +15,10 @@ export declare function filterNoisyMemories(memories: RecallMemory[]): RecallMem
15
15
  * Escapes any closing tags that could terminate the wrapper early.
16
16
  */
17
17
  export declare function sanitizeMemoryContent(content: string): string;
18
+ export interface FormatMemoriesResult {
19
+ text: string;
20
+ collapsedCount: number;
21
+ }
18
22
  export declare function formatMemories(memories: RecallMemory[], topK?: number): string;
23
+ export declare function formatMemoriesWithStats(memories: RecallMemory[], topK?: number): FormatMemoriesResult;
19
24
  //# sourceMappingURL=formatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../src/features/recall/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAKpE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,sBAAsB,OAAO,CAAC;AA8C3C,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIxD;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAE5E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AA2DD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,GAAE,MAAsB,GAC3B,MAAM,CAwBR"}
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../src/features/recall/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAKpE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,sBAAsB,OAAO,CAAC;AA8C3C,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIxD;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAE5E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAgID,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,GAAE,MAAsB,GAC3B,MAAM,CAER;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,GAAE,MAAsB,GAC3B,oBAAoB,CAoCtB"}
@@ -109,15 +109,79 @@ function truncateMemory(content, maxChars = MAX_MEMORY_LINE_CHARS) {
109
109
  return "…";
110
110
  return `${trimmed.slice(0, maxChars - 1).trimEnd()}…`;
111
111
  }
112
+ /** Tokenize text into a word set for Jaccard similarity. */
113
+ function toWordSet(text) {
114
+ return new Set(text
115
+ .toLowerCase()
116
+ .replace(/\[type:\w+\]/g, "")
117
+ .replace(/\[importance:\w+\]/g, "")
118
+ .replace(/[^\w\s]/g, " ")
119
+ .split(/\s+/)
120
+ .filter((w) => w.length > 2));
121
+ }
122
+ /** Jaccard similarity between two word sets. */
123
+ function jaccardSimilarity(a, b) {
124
+ if (a.size === 0 && b.size === 0)
125
+ return 1;
126
+ let intersection = 0;
127
+ for (const word of a) {
128
+ if (b.has(word))
129
+ intersection++;
130
+ }
131
+ const union = a.size + b.size - intersection;
132
+ return union === 0 ? 0 : intersection / union;
133
+ }
134
+ const SIMILARITY_COLLAPSE_THRESHOLD = 0.75;
135
+ /**
136
+ * Collapse near-duplicate memories using fuzzy word-set similarity.
137
+ * Returns the collapsed list and the number of memories that were folded in.
138
+ */
139
+ function collapseNearDuplicates(memories) {
140
+ const result = [];
141
+ for (const memory of memories) {
142
+ const words = toWordSet(memory.content);
143
+ if (words.size === 0) {
144
+ result.push({ memory, words, count: 1 });
145
+ continue;
146
+ }
147
+ let merged = false;
148
+ for (const group of result) {
149
+ if (group.words.size === 0)
150
+ continue;
151
+ if (jaccardSimilarity(words, group.words) >= SIMILARITY_COLLAPSE_THRESHOLD) {
152
+ group.count++;
153
+ // Keep the one with higher confidence
154
+ if (memory.confidence > group.memory.confidence) {
155
+ group.memory = memory;
156
+ group.words = words;
157
+ }
158
+ merged = true;
159
+ break;
160
+ }
161
+ }
162
+ if (!merged) {
163
+ result.push({ memory, words, count: 1 });
164
+ }
165
+ }
166
+ const collapsedCount = memories.length - result.length;
167
+ return {
168
+ collapsed: result.map((g) => g.memory),
169
+ collapsedCount,
170
+ };
171
+ }
112
172
  /** Maximum memories to inject into agent context after noise filtering. */
113
173
  const DEFAULT_TOP_K = 15;
114
174
  export function formatMemories(memories, topK = DEFAULT_TOP_K) {
175
+ return formatMemoriesWithStats(memories, topK).text;
176
+ }
177
+ export function formatMemoriesWithStats(memories, topK = DEFAULT_TOP_K) {
115
178
  const cleaned = filterNoisyMemories(memories);
116
179
  if (!cleaned.length)
117
- return "";
118
- // De-duplicate before selection so repeated variants don't dominate context.
180
+ return { text: "", collapsedCount: 0 };
181
+ // De-duplicate exact matches, then collapse fuzzy near-duplicates.
119
182
  const deduped = dedupeMemories(cleaned);
120
- const candidates = deduped.slice(0, topK);
183
+ const { collapsed, collapsedCount } = collapseNearDuplicates(deduped);
184
+ const candidates = collapsed.slice(0, topK);
121
185
  const prefix = `<cortex_memories>\n${UNTRUSTED_PREAMBLE}\n`;
122
186
  const suffix = "\n</cortex_memories>";
123
187
  let totalChars = prefix.length + suffix.length;
@@ -131,8 +195,18 @@ export function formatMemories(memories, topK = DEFAULT_TOP_K) {
131
195
  lines.push(line);
132
196
  totalChars += addedChars;
133
197
  }
198
+ if (collapsedCount > 0) {
199
+ const note = `(${collapsedCount} similar ${collapsedCount === 1 ? "memory" : "memories"} collapsed)`;
200
+ const noteChars = (lines.length > 0 ? 1 : 0) + note.length;
201
+ if (totalChars + noteChars <= MAX_MEMORY_BLOCK_CHARS) {
202
+ lines.push(note);
203
+ }
204
+ }
134
205
  if (!lines.length)
135
- return "";
136
- return `${prefix}${lines.join("\n")}${suffix}`;
206
+ return { text: "", collapsedCount };
207
+ return {
208
+ text: `${prefix}${lines.join("\n")}${suffix}`,
209
+ collapsedCount,
210
+ };
137
211
  }
138
212
  //# sourceMappingURL=formatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/features/recall/formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/features/recall/formatter.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,11 @@ type Logger = {
32
32
  * Tier 3: graph traversal + reranking — multiply by 2× (minimum 20s).
33
33
  */
34
34
  export declare function deriveEffectiveTimeout(configuredMs: number, pipelineTier: 1 | 2 | 3): number;
35
- export declare function createRecallHandler(client: CortexClient, config: CortexConfig, logger: Logger, metrics?: LatencyMetrics, knowledgeState?: KnowledgeState, getUserId?: () => string | undefined, auditLogger?: AuditLogger): {
35
+ export interface RecallStats {
36
+ memoriesReturned: number;
37
+ collapsedCount: number;
38
+ }
39
+ export declare function createRecallHandler(client: CortexClient, config: CortexConfig, logger: Logger, metrics?: LatencyMetrics, knowledgeState?: KnowledgeState, getUserId?: () => string | undefined, auditLogger?: AuditLogger, onRecallStats?: (stats: RecallStats) => void): {
36
40
  (event: BeforeAgentStartEvent, _ctx: AgentContext): Promise<BeforeAgentStartResult | void>;
37
41
  metrics: LatencyMetrics;
38
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/features/recall/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgC,MAAM,iCAAiC,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAIxE,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAE3E,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,sBAAsB;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,MAAM,GAAG;IACZ,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACjC,CAAC;AA0IF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAI5F;AAcD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,cAAc,EACxB,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,EACpC,WAAW,CAAC,EAAE,WAAW;YAOhB,qBAAqB,QACtB,YAAY,GACjB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;;EAgL1C"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/features/recall/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgC,MAAM,iCAAiC,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAIxE,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAE3E,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,sBAAsB;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,MAAM,GAAG;IACZ,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACjC,CAAC;AA0IF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAI5F;AAcD,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,cAAc,EACxB,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,EACpC,WAAW,CAAC,EAAE,WAAW,EACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;YAOnC,qBAAqB,QACtB,YAAY,GACjB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;;EAkL1C"}
@@ -1,4 +1,4 @@
1
- import { formatMemories } from "./formatter.js";
1
+ import { formatMemoriesWithStats } from "./formatter.js";
2
2
  import { inferRecallProfile, getProfileParams } from "./context-profile.js";
3
3
  import { LatencyMetrics } from "../../internal/metrics/latency-metrics.js";
4
4
  /**
@@ -163,7 +163,7 @@ function mapRetrieveToRecallMemories(results) {
163
163
  source_origin: r.source,
164
164
  }));
165
165
  }
166
- export function createRecallHandler(client, config, logger, metrics, knowledgeState, getUserId, auditLogger) {
166
+ export function createRecallHandler(client, config, logger, metrics, knowledgeState, getUserId, auditLogger, onRecallStats) {
167
167
  const recallMetrics = metrics ?? new LatencyMetrics();
168
168
  let consecutiveFailures = 0;
169
169
  let coldStartUntil = 0;
@@ -281,10 +281,11 @@ export function createRecallHandler(client, config, logger, metrics, knowledgeSt
281
281
  }
282
282
  if (!memories.length)
283
283
  return;
284
- const formatted = formatMemories(memories, config.recallTopK);
284
+ const { text: formatted, collapsedCount } = formatMemoriesWithStats(memories, config.recallTopK);
285
285
  if (!formatted)
286
286
  return;
287
- logger.debug?.(`Cortex recall: ${memories.length} memories in ${elapsed}ms`);
287
+ onRecallStats?.({ memoriesReturned: memories.length, collapsedCount });
288
+ logger.debug?.(`Cortex recall: ${memories.length} memories in ${elapsed}ms${collapsedCount > 0 ? ` (${collapsedCount} collapsed)` : ""}`);
288
289
  return { prependContext: formatted };
289
290
  }
290
291
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/features/recall/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/features/recall/handler.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,6 +7,6 @@ export { createCaptureHandler } from "./features/capture/handler.js";
7
7
  export { FileSyncWatcher } from "./features/sync/watcher.js";
8
8
  export { RetryQueue } from "./internal/queue/retry-queue.js";
9
9
  export { LatencyMetrics } from "./internal/metrics/latency-metrics.js";
10
- export { formatMemories } from "./features/recall/formatter.js";
10
+ export { formatMemories, formatMemoriesWithStats } from "./features/recall/formatter.js";
11
11
  export { cleanTranscript, cleanTranscriptChunk } from "./internal/transcript/cleaner.js";
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,eAAe,MAAM,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,eAAe,MAAM,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,6 @@ export { createCaptureHandler } from "./features/capture/handler.js";
8
8
  export { FileSyncWatcher } from "./features/sync/watcher.js";
9
9
  export { RetryQueue } from "./internal/queue/retry-queue.js";
10
10
  export { LatencyMetrics } from "./internal/metrics/latency-metrics.js";
11
- export { formatMemories } from "./features/recall/formatter.js";
11
+ export { formatMemories, formatMemoriesWithStats } from "./features/recall/formatter.js";
12
12
  export { cleanTranscript, cleanTranscriptChunk } from "./internal/transcript/cleaner.js";
13
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,eAAe,MAAM,CAAC;AAEtB,6CAA6C;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAqB,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,eAAe,MAAM,CAAC;AAEtB,6CAA6C;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAqB,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Client-side deduplication for memory saves.
3
+ *
4
+ * Maintains a rolling window of recent saves and checks new text
5
+ * against them using word-set Jaccard similarity.
6
+ */
7
+ export declare class RecentSaves {
8
+ private entries;
9
+ private readonly windowMs;
10
+ private readonly similarityThreshold;
11
+ constructor(windowMinutes: number, similarityThreshold?: number);
12
+ /** Prune entries older than the window. */
13
+ private prune;
14
+ /** Check if text is a near-duplicate of a recent save. */
15
+ isDuplicate(text: string): boolean;
16
+ /** Record a save so future checks can detect duplicates. */
17
+ record(text: string): void;
18
+ /** Number of entries currently in the window (for testing/stats). */
19
+ get size(): number;
20
+ }
21
+ //# sourceMappingURL=dedupe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dedupe.d.ts","sourceRoot":"","sources":["../../src/internal/dedupe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;gBAEjC,aAAa,EAAE,MAAM,EAAE,mBAAmB,SAAM;IAK5D,2CAA2C;IAC3C,OAAO,CAAC,KAAK;IAKb,0DAA0D;IAC1D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAYlC,4DAA4D;IAC5D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B,qEAAqE;IACrE,IAAI,IAAI,IAAI,MAAM,CAGjB;CACF"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Client-side deduplication for memory saves.
3
+ *
4
+ * Maintains a rolling window of recent saves and checks new text
5
+ * against them using word-set Jaccard similarity.
6
+ */
7
+ /** Normalize and tokenize text into a word set for similarity comparison. */
8
+ function toWordSet(text) {
9
+ return new Set(text
10
+ .toLowerCase()
11
+ .replace(/\[type:\w+\]/g, "")
12
+ .replace(/\[importance:\w+\]/g, "")
13
+ .replace(/[^\w\s]/g, " ")
14
+ .split(/\s+/)
15
+ .filter((w) => w.length > 2));
16
+ }
17
+ /** Jaccard similarity between two word sets (intersection / union). */
18
+ function jaccardSimilarity(a, b) {
19
+ if (a.size === 0 && b.size === 0)
20
+ return 1;
21
+ let intersection = 0;
22
+ for (const word of a) {
23
+ if (b.has(word))
24
+ intersection++;
25
+ }
26
+ const union = a.size + b.size - intersection;
27
+ return union === 0 ? 0 : intersection / union;
28
+ }
29
+ export class RecentSaves {
30
+ entries = [];
31
+ windowMs;
32
+ similarityThreshold;
33
+ constructor(windowMinutes, similarityThreshold = 0.7) {
34
+ this.windowMs = windowMinutes * 60_000;
35
+ this.similarityThreshold = similarityThreshold;
36
+ }
37
+ /** Prune entries older than the window. */
38
+ prune() {
39
+ const cutoff = Date.now() - this.windowMs;
40
+ this.entries = this.entries.filter((e) => e.timestamp >= cutoff);
41
+ }
42
+ /** Check if text is a near-duplicate of a recent save. */
43
+ isDuplicate(text) {
44
+ this.prune();
45
+ const words = toWordSet(text);
46
+ if (words.size === 0)
47
+ return false;
48
+ for (const entry of this.entries) {
49
+ if (jaccardSimilarity(words, entry.words) >= this.similarityThreshold) {
50
+ return true;
51
+ }
52
+ }
53
+ return false;
54
+ }
55
+ /** Record a save so future checks can detect duplicates. */
56
+ record(text) {
57
+ this.prune();
58
+ this.entries.push({ words: toWordSet(text), timestamp: Date.now() });
59
+ }
60
+ /** Number of entries currently in the window (for testing/stats). */
61
+ get size() {
62
+ this.prune();
63
+ return this.entries.length;
64
+ }
65
+ }
66
+ //# sourceMappingURL=dedupe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../../src/internal/dedupe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,6EAA6E;AAC7E,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,GAAG,CACZ,IAAI;SACD,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;SAClC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,SAAS,iBAAiB,CAAC,CAAc,EAAE,CAAc;IACvD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,YAAY,EAAE,CAAC;IAClC,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC;IAC7C,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC;AAChD,CAAC;AAED,MAAM,OAAO,WAAW;IACd,OAAO,GAAgB,EAAE,CAAC;IACjB,QAAQ,CAAS;IACjB,mBAAmB,CAAS;IAE7C,YAAY,aAAqB,EAAE,mBAAmB,GAAG,GAAG;QAC1D,IAAI,CAAC,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACjD,CAAC;IAED,2CAA2C;IACnC,KAAK;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,0DAA0D;IAC1D,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACtE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4DAA4D;IAC5D,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,qEAAqE;IACrE,IAAI,IAAI;QACN,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;CACF"}
@@ -14,6 +14,8 @@ export declare const CortexConfigSchema: z.ZodObject<{
14
14
  transcriptSync: z.ZodDefault<z.ZodBoolean>;
15
15
  captureMaxPayloadBytes: z.ZodDefault<z.ZodNumber>;
16
16
  captureFilter: z.ZodDefault<z.ZodBoolean>;
17
+ dedupeWindowMinutes: z.ZodDefault<z.ZodNumber>;
18
+ noveltyThreshold: z.ZodDefault<z.ZodNumber>;
17
19
  auditLog: z.ZodDefault<z.ZodBoolean>;
18
20
  namespace: z.ZodDefault<z.ZodString>;
19
21
  /**
@@ -41,6 +43,8 @@ export declare const CortexConfigSchema: z.ZodObject<{
41
43
  transcriptSync: boolean;
42
44
  captureMaxPayloadBytes: number;
43
45
  captureFilter: boolean;
46
+ dedupeWindowMinutes: number;
47
+ noveltyThreshold: number;
44
48
  auditLog: boolean;
45
49
  namespace: string;
46
50
  userId?: string | undefined;
@@ -60,6 +64,8 @@ export declare const CortexConfigSchema: z.ZodObject<{
60
64
  transcriptSync?: boolean | undefined;
61
65
  captureMaxPayloadBytes?: number | undefined;
62
66
  captureFilter?: boolean | undefined;
67
+ dedupeWindowMinutes?: number | undefined;
68
+ noveltyThreshold?: number | undefined;
63
69
  auditLog?: boolean | undefined;
64
70
  namespace?: string | undefined;
65
71
  recallReferenceDate?: string | undefined;
@@ -85,6 +91,8 @@ export declare const configSchema: {
85
91
  transcriptSync?: boolean | undefined;
86
92
  captureMaxPayloadBytes?: number | undefined;
87
93
  captureFilter?: boolean | undefined;
94
+ dedupeWindowMinutes?: number | undefined;
95
+ noveltyThreshold?: number | undefined;
88
96
  auditLog?: boolean | undefined;
89
97
  namespace?: string | undefined;
90
98
  recallReferenceDate?: string | undefined;
@@ -102,6 +110,8 @@ export declare const configSchema: {
102
110
  transcriptSync: boolean;
103
111
  captureMaxPayloadBytes: number;
104
112
  captureFilter: boolean;
113
+ dedupeWindowMinutes: number;
114
+ noveltyThreshold: number;
105
115
  auditLog: boolean;
106
116
  namespace: string;
107
117
  userId?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/plugin/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;IAmB7B;;;;;;;;;OASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,YAAY;qBACN,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGzB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/plugin/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;IAqB7B;;;;;;;;;OASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,YAAY;qBACN,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGzB,CAAC"}
@@ -31,6 +31,8 @@ export const CortexConfigSchema = z.object({
31
31
  transcriptSync: z.boolean().default(true),
32
32
  captureMaxPayloadBytes: z.number().int().min(1024).max(1_048_576).default(262_144),
33
33
  captureFilter: z.boolean().default(true),
34
+ dedupeWindowMinutes: z.number().int().min(0).max(1440).default(30),
35
+ noveltyThreshold: z.number().min(0).max(1).default(0.85),
34
36
  auditLog: z.boolean().default(false),
35
37
  namespace: z.string().min(1).default("openclaw"),
36
38
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/plugin/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/plugin/config/schema.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,8 @@ declare const plugin: {
113
113
  transcriptSync?: boolean | undefined;
114
114
  captureMaxPayloadBytes?: number | undefined;
115
115
  captureFilter?: boolean | undefined;
116
+ dedupeWindowMinutes?: number | undefined;
117
+ noveltyThreshold?: number | undefined;
116
118
  auditLog?: boolean | undefined;
117
119
  namespace?: string | undefined;
118
120
  recallReferenceDate?: string | undefined;
@@ -130,6 +132,8 @@ declare const plugin: {
130
132
  transcriptSync: boolean;
131
133
  captureMaxPayloadBytes: number;
132
134
  captureFilter: boolean;
135
+ dedupeWindowMinutes: number;
136
+ noveltyThreshold: number;
133
137
  auditLog: boolean;
134
138
  namespace: string;
135
139
  userId?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- import { basename } from "node:path";
1
+ import { basename, join } from "node:path";
2
2
  import { createHash, randomUUID } from "node:crypto";
3
+ import { readFileSync, writeFileSync, statSync } from "node:fs";
4
+ import { homedir } from "node:os";
3
5
  import packageJson from "../../package.json" with { type: "json" };
4
6
  import { CortexConfigSchema, configSchema } from "./config/schema.js";
5
7
  import { CortexClient } from "../adapters/cortex/client.js";
@@ -12,11 +14,38 @@ import { loadOrCreateUserId } from "../internal/identity/user-id.js";
12
14
  import { BAKED_API_KEY } from "../internal/identity/api-key.js";
13
15
  import { formatMemories } from "../features/recall/formatter.js";
14
16
  import { AuditLogger } from "../internal/audit/audit-logger.js";
17
+ import { RecentSaves } from "../internal/dedupe.js";
15
18
  import { injectAgentInstructions } from "../internal/agent-instructions.js";
16
19
  import { createCheckpointHandler } from "../features/checkpoint/handler.js";
17
20
  import { createHeartbeatHandler } from "../features/heartbeat/handler.js";
18
21
  import { buildSessionSummaryFromMessages, formatRecoveryContext, SessionStateStore, } from "../internal/session/session-state.js";
19
22
  const version = packageJson.version;
23
+ const STATS_FILE = join(homedir(), ".openclaw", "cortex-session-stats.json");
24
+ function persistStats(stats) {
25
+ try {
26
+ writeFileSync(STATS_FILE, JSON.stringify({ ...stats, updatedAt: Date.now() }) + "\n", { encoding: "utf-8", mode: 0o600 });
27
+ }
28
+ catch {
29
+ // Best-effort — stats display is non-critical
30
+ }
31
+ }
32
+ function loadPersistedStats() {
33
+ try {
34
+ const raw = JSON.parse(readFileSync(STATS_FILE, "utf-8"));
35
+ return {
36
+ saves: raw.saves ?? 0,
37
+ savesSkippedDedupe: raw.savesSkippedDedupe ?? 0,
38
+ savesSkippedNovelty: raw.savesSkippedNovelty ?? 0,
39
+ searches: raw.searches ?? 0,
40
+ recallCount: raw.recallCount ?? 0,
41
+ recallMemoriesTotal: raw.recallMemoriesTotal ?? 0,
42
+ recallDuplicatesCollapsed: raw.recallDuplicatesCollapsed ?? 0,
43
+ };
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
20
49
  /**
21
50
  * Derives a workspace-scoped namespace from the workspace directory path.
22
51
  * Uses the directory basename plus a short hash of the full path to avoid collisions
@@ -100,6 +129,46 @@ function registerHookCompat(api, hookName, handler, metadata) {
100
129
  api.logger.warn(`Cortex: cannot register hook "${hookName}" — no registerHook or on method available`);
101
130
  }
102
131
  }
132
+ /** Tool names that must survive the tools.profile allowlist filter. */
133
+ const CORTEX_TOOL_NAMES = ["cortex_search_memory", "cortex_save_memory"];
134
+ /**
135
+ * Ensures `tools.alsoAllow` in the OpenClaw config includes our tool names.
136
+ * Without this, profiles like "coding" silently filter out plugin tools —
137
+ * auto-recall/capture hooks still work, but the agent can't explicitly
138
+ * search or save memories.
139
+ *
140
+ * Runs once on first registration; idempotent thereafter.
141
+ */
142
+ function ensureToolsAllowlist(logger) {
143
+ try {
144
+ const configPath = join(homedir(), ".openclaw", "openclaw.json");
145
+ const raw = readFileSync(configPath, "utf-8");
146
+ const config = JSON.parse(raw);
147
+ // Only needed when a tools profile is active (which creates a fixed allowlist)
148
+ if (!config.tools?.profile)
149
+ return;
150
+ const existing = Array.isArray(config.tools.alsoAllow)
151
+ ? config.tools.alsoAllow
152
+ : [];
153
+ const missing = CORTEX_TOOL_NAMES.filter((name) => !existing.includes(name));
154
+ if (missing.length === 0)
155
+ return;
156
+ config.tools.alsoAllow = [...existing, ...missing];
157
+ // Preserve original file permissions (e.g. 0o600) to avoid security audit warnings
158
+ let mode;
159
+ try {
160
+ mode = statSync(configPath).mode & 0o777;
161
+ }
162
+ catch { /* ignore */ }
163
+ writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", { encoding: "utf-8", mode: mode ?? 0o600 });
164
+ logger.info(`Cortex: enabled memory tools for "${config.tools.profile}" profile`);
165
+ }
166
+ catch {
167
+ // Config unreadable — tools may be filtered by the profile allowlist.
168
+ // Hooks (auto-recall, auto-capture) still work regardless.
169
+ logger.warn(`Cortex: could not verify tool access — if the agent cannot use cortex_search_memory or cortex_save_memory, add them to tools.alsoAllow in openclaw.json`);
170
+ }
171
+ }
103
172
  const plugin = {
104
173
  id: "openclaw-cortex",
105
174
  name: "Cortex Memory",
@@ -115,15 +184,16 @@ const plugin = {
115
184
  return;
116
185
  }
117
186
  // BUILD_API_KEY must be injected into dist at build/publish time.
118
- // If the placeholder is still present, Cortex calls will all fail at runtime.
119
- // Keep unit tests working by allowing placeholder in test environment only.
120
- const hasInjectedApiKey = BAKED_API_KEY !== "__OPENCLAW_API_KEY__";
121
- if (!hasInjectedApiKey) {
122
- api.logger.error("Cortex plugin misconfigured: build-time API key placeholder detected. Rebuild with BUILD_API_KEY=... npm run build, or install the published package.");
123
- if (process.env.NODE_ENV !== "test") {
124
- return;
125
- }
187
+ // If the placeholder "__OPENCLAW_API_KEY__" is still present, Cortex
188
+ // calls will fail but we allow it so unit tests (which mock the
189
+ // client) can exercise registration. Only bail on a truly empty key
190
+ // (which can happen if inject-api-key.mjs runs with an empty var).
191
+ if (!BAKED_API_KEY) {
192
+ api.logger.error("Cortex plugin misconfigured: empty API key. Rebuild with BUILD_API_KEY=... npm run build, or install the published package.");
193
+ return;
126
194
  }
195
+ // Ensure our tools survive the profile allowlist filter (one-time config patch)
196
+ ensureToolsAllowlist(api.logger);
127
197
  const config = parsed.data;
128
198
  const client = new CortexClient(config.baseUrl, BAKED_API_KEY);
129
199
  const retryQueue = new RetryQueue(api.logger);
@@ -180,7 +250,12 @@ const plugin = {
180
250
  // Track last messages for /checkpoint command (populated by agent_end wrapper)
181
251
  let lastMessages = [];
182
252
  const recoveryCheckedSessions = new Set();
183
- const recallHandler = createRecallHandler(client, config, api.logger, recallMetrics, knowledgeState, () => userId, auditLoggerProxy);
253
+ const recallHandler = createRecallHandler(client, config, api.logger, recallMetrics, knowledgeState, () => userId, auditLoggerProxy, (stats) => {
254
+ sessionStats.recallCount++;
255
+ sessionStats.recallMemoriesTotal += stats.memoriesReturned;
256
+ sessionStats.recallDuplicatesCollapsed += stats.collapsedCount;
257
+ persistStats(sessionStats);
258
+ });
184
259
  // Auto-Recall: inject relevant memories before every agent turn
185
260
  registerHookCompat(api, "before_agent_start", async (event, ctx) => {
186
261
  const activeSessionKey = resolveSessionKey(ctx, sessionId);
@@ -236,11 +311,26 @@ const plugin = {
236
311
  name: "openclaw-cortex.heartbeat",
237
312
  description: "Periodic health check and knowledge state refresh",
238
313
  });
314
+ // --- Session Stats ---
315
+ const sessionStats = {
316
+ saves: 0,
317
+ savesSkippedDedupe: 0,
318
+ savesSkippedNovelty: 0,
319
+ searches: 0,
320
+ recallCount: 0,
321
+ recallMemoriesTotal: 0,
322
+ recallDuplicatesCollapsed: 0,
323
+ };
324
+ // Reset persisted stats for this new session
325
+ persistStats(sessionStats);
239
326
  // --- Agent Tools ---
327
+ const recentSaves = config.dedupeWindowMinutes > 0
328
+ ? new RecentSaves(config.dedupeWindowMinutes)
329
+ : null;
240
330
  if (api.registerTool) {
241
331
  api.registerTool({
242
332
  name: "cortex_search_memory",
243
- description: "Search long-term memory for facts, preferences, and past context. Use when you need to recall something the user mentioned before or retrieve stored knowledge.",
333
+ description: "Search long-term memory for facts, preferences, and past context. Use when you need to recall something the user mentioned before or retrieve stored knowledge. Use 'mode' to narrow results to a specific category.",
244
334
  parameters: {
245
335
  type: "object",
246
336
  properties: {
@@ -253,28 +343,56 @@ const plugin = {
253
343
  description: "Maximum number of memories to return (1-50)",
254
344
  default: 10,
255
345
  },
346
+ mode: {
347
+ type: "string",
348
+ enum: ["all", "decisions", "preferences", "facts", "recent"],
349
+ description: "Filter memories by category. 'all' returns everything (default), 'decisions' returns architectural/design choices, 'preferences' returns user likes/settings, 'facts' returns durable knowledge, 'recent' prioritizes recency over relevance.",
350
+ },
256
351
  },
257
352
  required: ["query"],
258
353
  },
259
354
  async execute(_id, params) {
260
355
  const query = String(params.query ?? "");
261
356
  const limit = Math.min(Math.max(Number(params.limit) || 10, 1), 50);
357
+ const mode = typeof params.mode === "string" ? params.mode : "all";
262
358
  await userIdReady;
263
- api.logger.debug?.(`Cortex search: "${query.slice(0, 80)}" (limit=${limit})`);
359
+ // Augment query based on mode to improve retrieval precision
360
+ let effectiveQuery = query;
361
+ let queryType = "combined";
362
+ switch (mode) {
363
+ case "decisions":
364
+ effectiveQuery = `[type:decision] ${query}`;
365
+ queryType = "factual";
366
+ break;
367
+ case "preferences":
368
+ effectiveQuery = `[type:preference] ${query}`;
369
+ queryType = "factual";
370
+ break;
371
+ case "facts":
372
+ effectiveQuery = `[type:fact] ${query}`;
373
+ queryType = "factual";
374
+ break;
375
+ case "recent":
376
+ queryType = "combined";
377
+ break;
378
+ }
379
+ api.logger.debug?.(`Cortex search: "${effectiveQuery.slice(0, 80)}" (limit=${limit}, mode=${mode})`);
380
+ sessionStats.searches++;
381
+ persistStats(sessionStats);
264
382
  void auditLoggerProxy.log({
265
383
  feature: "tool-search-memory",
266
384
  method: "POST",
267
385
  endpoint: "/v1/recall",
268
- payload: query,
386
+ payload: effectiveQuery,
269
387
  userId,
270
388
  });
271
389
  try {
272
390
  const doRecall = async (attempt = 0) => {
273
391
  try {
274
- return await client.recall(query, config.toolTimeoutMs, {
392
+ return await client.recall(effectiveQuery, config.toolTimeoutMs, {
275
393
  limit,
276
394
  userId: userId,
277
- queryType: "combined",
395
+ queryType,
278
396
  });
279
397
  }
280
398
  catch (err) {
@@ -301,7 +419,7 @@ const plugin = {
301
419
  });
302
420
  api.registerTool({
303
421
  name: "cortex_save_memory",
304
- description: "Explicitly save a fact, preference, or piece of information to long-term memory. Use when the user asks you to remember something specific.",
422
+ description: "Explicitly save a fact, preference, or piece of information to long-term memory. Use when the user asks you to remember something specific. Provide type and importance to help organize memories for better retrieval.",
305
423
  parameters: {
306
424
  type: "object",
307
425
  properties: {
@@ -309,6 +427,20 @@ const plugin = {
309
427
  type: "string",
310
428
  description: "The information to save to memory (a fact, preference, or context)",
311
429
  },
430
+ type: {
431
+ type: "string",
432
+ enum: ["preference", "decision", "fact", "transient"],
433
+ description: "Category of this memory. 'preference' for user likes/dislikes/settings, 'decision' for architectural or design choices, 'fact' for durable knowledge, 'transient' for temporary state that may change soon.",
434
+ },
435
+ importance: {
436
+ type: "string",
437
+ enum: ["high", "normal", "low"],
438
+ description: "How important this memory is for future recall. 'high' for critical preferences or decisions, 'normal' for general facts, 'low' for minor context.",
439
+ },
440
+ checkNovelty: {
441
+ type: "boolean",
442
+ description: "When true, checks if a similar memory already exists before saving. Skips the save if a near-duplicate is found. Defaults to false.",
443
+ },
312
444
  },
313
445
  required: ["text"],
314
446
  },
@@ -317,27 +449,72 @@ const plugin = {
317
449
  if (!text || text.length < 5) {
318
450
  return { content: [{ type: "text", text: "Text too short to save as a memory." }] };
319
451
  }
452
+ const memoryType = typeof params.type === "string" ? params.type : undefined;
453
+ const importance = typeof params.importance === "string" ? params.importance : undefined;
454
+ const checkNovelty = params.checkNovelty === true;
320
455
  await userIdReady;
321
456
  if (!userId) {
322
457
  api.logger.warn("Cortex save: missing user_id");
323
458
  return { content: [{ type: "text", text: "Failed to save memory: Cortex ingest requires user_id." }] };
324
459
  }
325
- api.logger.debug?.(`Cortex save: "${text.slice(0, 80)}"`);
460
+ // Prepend metadata tags so they're stored with the memory text
461
+ const metaTags = [];
462
+ if (memoryType)
463
+ metaTags.push(`[type:${memoryType}]`);
464
+ if (importance)
465
+ metaTags.push(`[importance:${importance}]`);
466
+ const enrichedText = metaTags.length > 0 ? `${metaTags.join(" ")} ${text}` : text;
467
+ // Item 5: Client-side dedupe — skip if near-duplicate was saved recently
468
+ if (recentSaves?.isDuplicate(text)) {
469
+ api.logger.debug?.(`Cortex save skipped (duplicate within window): "${text.slice(0, 60)}"`);
470
+ sessionStats.savesSkippedDedupe++;
471
+ persistStats(sessionStats);
472
+ return {
473
+ content: [{ type: "text", text: "This memory is very similar to one saved recently. Skipped to avoid duplication." }],
474
+ };
475
+ }
476
+ // Item 7: Novelty check — query existing memories to see if this is already stored
477
+ if (checkNovelty) {
478
+ try {
479
+ const existing = await client.retrieve(text, 1, "fast", config.toolTimeoutMs, "factual", { userId });
480
+ const topScore = existing.results?.[0]?.score ?? 0;
481
+ if (topScore >= config.noveltyThreshold) {
482
+ api.logger.debug?.(`Cortex save skipped (not novel, score=${topScore.toFixed(2)}): "${text.slice(0, 60)}"`);
483
+ sessionStats.savesSkippedNovelty++;
484
+ persistStats(sessionStats);
485
+ recentSaves?.record(text);
486
+ return {
487
+ content: [{
488
+ type: "text",
489
+ text: `This memory already exists (similarity ${(topScore * 100).toFixed(0)}%). Skipped to avoid duplication.`,
490
+ }],
491
+ };
492
+ }
493
+ }
494
+ catch (err) {
495
+ // Novelty check is best-effort — proceed with save on failure
496
+ api.logger.debug?.(`Cortex novelty check failed, proceeding with save: ${String(err)}`);
497
+ }
498
+ }
499
+ api.logger.debug?.(`Cortex save: "${enrichedText.slice(0, 80)}"`);
326
500
  void auditLoggerProxy.log({
327
501
  feature: "tool-save-memory",
328
502
  method: "POST",
329
503
  endpoint: "/v1/remember",
330
- payload: text,
504
+ payload: enrichedText,
331
505
  sessionId,
332
506
  userId,
333
507
  });
334
508
  try {
335
509
  const now = new Date();
336
510
  const referenceDate = now.toISOString().slice(0, 10);
337
- await client.remember(text, sessionId, config.toolTimeoutMs, referenceDate, userId, "openclaw", "OpenClaw");
511
+ await client.remember(enrichedText, sessionId, config.toolTimeoutMs, referenceDate, userId, "openclaw", "OpenClaw");
338
512
  if (knowledgeState) {
339
513
  knowledgeState.hasMemories = true;
340
514
  }
515
+ recentSaves?.record(text);
516
+ sessionStats.saves++;
517
+ persistStats(sessionStats);
341
518
  api.logger.debug?.("Cortex remember accepted");
342
519
  return {
343
520
  content: [{
@@ -350,10 +527,13 @@ const plugin = {
350
527
  api.logger.warn(`Cortex save failed, falling back to async ingest: ${String(err)}`);
351
528
  try {
352
529
  const referenceDate = new Date().toISOString();
353
- const job = await client.submitIngest(text, sessionId, referenceDate, userId, "openclaw", "OpenClaw");
530
+ const job = await client.submitIngest(enrichedText, sessionId, referenceDate, userId, "openclaw", "OpenClaw");
354
531
  if (knowledgeState) {
355
532
  knowledgeState.hasMemories = true;
356
533
  }
534
+ recentSaves?.record(text);
535
+ sessionStats.saves++;
536
+ persistStats(sessionStats);
357
537
  return {
358
538
  content: [{
359
539
  type: "text",
@@ -565,6 +745,27 @@ const plugin = {
565
745
  console.log(` Auto-Recall: ${config.autoRecall ? "on" : "off"}`);
566
746
  console.log(` Auto-Capture: ${config.autoCapture ? "on" : "off"}`);
567
747
  console.log(` File Sync: ${config.fileSync ? "on" : "off"}`);
748
+ console.log(` Dedupe Window: ${config.dedupeWindowMinutes > 0 ? `${config.dedupeWindowMinutes}min` : "off"}`);
749
+ // Session activity stats — read from persisted file so CLI process
750
+ // can see stats from the running gateway instance
751
+ const liveStats = loadPersistedStats() ?? sessionStats;
752
+ const totalSkipped = liveStats.savesSkippedDedupe + liveStats.savesSkippedNovelty;
753
+ const avgRecallMemories = liveStats.recallCount > 0
754
+ ? (liveStats.recallMemoriesTotal / liveStats.recallCount).toFixed(1)
755
+ : "0";
756
+ console.log("");
757
+ console.log("Session Activity");
758
+ console.log("-".repeat(50));
759
+ console.log(` Saves: ${liveStats.saves}`);
760
+ if (totalSkipped > 0) {
761
+ console.log(` Skipped: ${totalSkipped} (${liveStats.savesSkippedDedupe} dedupe, ${liveStats.savesSkippedNovelty} novelty)`);
762
+ }
763
+ console.log(` Searches: ${liveStats.searches}`);
764
+ console.log(` Recalls: ${liveStats.recallCount}`);
765
+ console.log(` Avg memories/recall: ${avgRecallMemories}`);
766
+ if (liveStats.recallDuplicatesCollapsed > 0) {
767
+ console.log(` Duplicates collapsed: ${liveStats.recallDuplicatesCollapsed}`);
768
+ }
568
769
  });
569
770
  cortex
570
771
  .command("memories")
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  "id": "openclaw-cortex",
3
3
  "name": "Cortex Memory",
4
4
  "description": "Long-term memory powered by Cortex — Auto-Recall, Auto-Capture, agent tools, /memories command, transcript ingestion, and background file sync",
5
- "version": "1.7.6",
5
+ "version": "2.0.1",
6
6
  "configSchema": {
7
7
  "type": "object",
8
8
  "properties": {
@@ -28,7 +28,12 @@
28
28
  "recallLimit": {
29
29
  "type": "number",
30
30
  "description": "Maximum number of memories to retrieve per turn",
31
- "default": 10
31
+ "default": 20
32
+ },
33
+ "recallTopK": {
34
+ "type": "number",
35
+ "description": "Max memories returned after scoring (applied after recallLimit)",
36
+ "default": 20
32
37
  },
33
38
  "recallQueryType": {
34
39
  "type": "string",
@@ -41,6 +46,19 @@
41
46
  ],
42
47
  "default": "combined"
43
48
  },
49
+ "recallProfile": {
50
+ "type": "string",
51
+ "description": "Recall profile for automatic recall (auto, default, factual, planning, incident, or handoff)",
52
+ "enum": [
53
+ "auto",
54
+ "default",
55
+ "factual",
56
+ "planning",
57
+ "incident",
58
+ "handoff"
59
+ ],
60
+ "default": "auto"
61
+ },
44
62
  "recallTimeoutMs": {
45
63
  "type": "number",
46
64
  "description": "Maximum time to wait for memory recall (ms)",
@@ -66,6 +84,21 @@
66
84
  "description": "Max byte size of capture payloads. Oversized transcripts are trimmed from oldest messages.",
67
85
  "default": 262144
68
86
  },
87
+ "captureFilter": {
88
+ "type": "boolean",
89
+ "description": "Enable built-in filter to drop low-signal content (heartbeat messages, TUI artifacts, token counters) before ingestion",
90
+ "default": true
91
+ },
92
+ "dedupeWindowMinutes": {
93
+ "type": "number",
94
+ "description": "Time window (in minutes) for client-side deduplication of explicit memory saves. Set to 0 to disable.",
95
+ "default": 30
96
+ },
97
+ "noveltyThreshold": {
98
+ "type": "number",
99
+ "description": "Similarity score threshold (0-1) for the novelty check against existing memories. Memories scoring above this are considered duplicates. Lower values are stricter.",
100
+ "default": 0.85
101
+ },
69
102
  "auditLog": {
70
103
  "type": "boolean",
71
104
  "description": "Record all data sent to Cortex in a local audit log at .cortex/audit/",
@@ -83,6 +116,14 @@
83
116
  "label": "Base URL",
84
117
  "advanced": true
85
118
  },
119
+ "autoRecall": {
120
+ "label": "Auto Recall",
121
+ "helpText": "Automatically inject relevant memories before each agent turn."
122
+ },
123
+ "autoCapture": {
124
+ "label": "Auto Capture",
125
+ "helpText": "Automatically extract facts from conversations after agent turns."
126
+ },
86
127
  "userId": {
87
128
  "label": "User ID",
88
129
  "advanced": true,
@@ -93,10 +134,29 @@
93
134
  "advanced": true,
94
135
  "helpText": "Maximum number of memories injected per turn (1-50)."
95
136
  },
137
+ "recallQueryType": {
138
+ "label": "Recall Query Type",
139
+ "advanced": true,
140
+ "helpText": "Query type for automatic recall: factual, emotional, combined, or codex."
141
+ },
142
+ "recallTopK": {
143
+ "label": "Recall Top-K",
144
+ "advanced": true,
145
+ "helpText": "Max memories returned after scoring, applied after recallLimit (1-50)."
146
+ },
147
+ "recallProfile": {
148
+ "label": "Recall Profile",
149
+ "advanced": true,
150
+ "helpText": "Recall strategy profile. 'auto' selects the best profile based on conversation context."
151
+ },
96
152
  "recallTimeoutMs": {
97
153
  "label": "Recall Timeout (ms)",
98
154
  "advanced": true
99
155
  },
156
+ "fileSync": {
157
+ "label": "File Sync",
158
+ "helpText": "Watch MEMORY.md and daily logs for background ingestion into Cortex."
159
+ },
100
160
  "transcriptSync": {
101
161
  "label": "Transcript Sync",
102
162
  "helpText": "Automatically ingest session transcripts (sessions/*.jsonl) after stripping system prompts and tool JSON."
@@ -111,6 +171,20 @@
111
171
  "advanced": true,
112
172
  "helpText": "Maximum byte size for capture payloads (default 256KB). Oversized transcripts are trimmed from oldest messages."
113
173
  },
174
+ "captureFilter": {
175
+ "label": "Capture Filter",
176
+ "helpText": "Filters out low-signal content (heartbeats, TUI artifacts, token counters) before ingestion."
177
+ },
178
+ "dedupeWindowMinutes": {
179
+ "label": "Dedupe Window (min)",
180
+ "advanced": true,
181
+ "helpText": "Time window for client-side deduplication of saves. Saves that are too similar to a recent save within this window are skipped. Set to 0 to disable."
182
+ },
183
+ "noveltyThreshold": {
184
+ "label": "Novelty Threshold",
185
+ "advanced": true,
186
+ "helpText": "Similarity score (0-1) above which an existing memory is considered a duplicate during save-if-novel checks. Lower = stricter deduplication."
187
+ },
114
188
  "auditLog": {
115
189
  "label": "Audit Log",
116
190
  "helpText": "Records every payload sent to Cortex at .cortex/audit/ in your workspace. Also toggleable at runtime via /audit on."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ubundi/openclaw-cortex",
3
- "version": "1.7.6",
3
+ "version": "2.0.1",
4
4
  "description": "OpenClaw plugin for Cortex memory — Auto-Recall, Auto-Capture, and file sync",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",