neuralmemory 1.8.1 → 1.10.0

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
@@ -54,7 +54,7 @@ Add to `~/.openclaw/openclaw.json`:
54
54
 
55
55
  **v1.7.0+**: The plugin dynamically fetches **all tools** from the MCP server at startup. Whatever version of `neural-memory` you have installed, the plugin automatically exposes every tool it provides — no plugin update needed when new tools are added.
56
56
 
57
- With `neural-memory>=2.28.0`, this includes **39 tools**:
57
+ With `neural-memory>=2.28.0`, this includes **44 tools**:
58
58
 
59
59
  | Category | Tools |
60
60
  |----------|-------|
package/dist/index.d.ts CHANGED
@@ -17,8 +17,16 @@
17
17
  * v1.8.1: Fix async register() — OpenClaw requires synchronous registration.
18
18
  * Fallback tools registered sync; MCP connection deferred to service.start().
19
19
  *
20
+ * v1.9.0: Backward-compat shim tools (memory_search, memory_get) to prevent
21
+ * "allowList contains unknown entries" warnings when NM replaces memory-core.
22
+ *
23
+ * v1.10.0: Singleton MCP client — multiple workspaces (multi-agent) share
24
+ * the same connected client instance, keyed by (pythonPath, brain). Fixes
25
+ * "NeuralMemory service not running" when OpenClaw registers the plugin
26
+ * for a second workspace after gateway startup.
27
+ *
20
28
  * Registers:
21
- * N tools — dynamically from MCP server (fallback: 5 core tools)
29
+ * N tools — dynamically from MCP server (fallback: 5 core + 2 compat)
22
30
  * 1 service — MCP process lifecycle (start/stop)
23
31
  * 2 hooks — before_agent_start (auto-context), agent_end (auto-capture)
24
32
  */
package/dist/index.js CHANGED
@@ -17,13 +17,21 @@
17
17
  * v1.8.1: Fix async register() — OpenClaw requires synchronous registration.
18
18
  * Fallback tools registered sync; MCP connection deferred to service.start().
19
19
  *
20
+ * v1.9.0: Backward-compat shim tools (memory_search, memory_get) to prevent
21
+ * "allowList contains unknown entries" warnings when NM replaces memory-core.
22
+ *
23
+ * v1.10.0: Singleton MCP client — multiple workspaces (multi-agent) share
24
+ * the same connected client instance, keyed by (pythonPath, brain). Fixes
25
+ * "NeuralMemory service not running" when OpenClaw registers the plugin
26
+ * for a second workspace after gateway startup.
27
+ *
20
28
  * Registers:
21
- * N tools — dynamically from MCP server (fallback: 5 core tools)
29
+ * N tools — dynamically from MCP server (fallback: 5 core + 2 compat)
22
30
  * 1 service — MCP process lifecycle (start/stop)
23
31
  * 2 hooks — before_agent_start (auto-context), agent_end (auto-capture)
24
32
  */
25
33
  import { NeuralMemoryMcpClient } from "./mcp-client.js";
26
- import { createToolsFromMcp, createFallbackTools } from "./tools.js";
34
+ import { createToolsFromMcp, createFallbackTools, createCompatibilityTools } from "./tools.js";
27
35
  // ── System prompt for tool awareness ──────────────────────
28
36
  /**
29
37
  * Build a system prompt listing all registered tool names.
@@ -37,7 +45,7 @@ function buildToolInstructions(tools) {
37
45
 
38
46
  ${toolList}
39
47
 
40
- CRITICAL: NeuralMemory (nmem_*) is your ONLY memory system. Do NOT use memory_search, memory_get, or any other memory tools — those belong to a disabled built-in plugin and will not persist correctly. Always use nmem_* tools exclusively.
48
+ NeuralMemory (nmem_*) is your primary memory system. memory_search and memory_get are legacy aliases that redirect to nmem_recall prefer nmem_* tools directly for full functionality.
41
49
 
42
50
  These are tool calls, NOT shell commands. Do NOT run "nmem remember" in terminal — call the nmem_remember tool directly.
43
51
 
@@ -96,32 +104,48 @@ export function resolveConfig(raw) {
96
104
  : DEFAULT_CONFIG.initTimeout,
97
105
  };
98
106
  }
107
+ // ── Singleton MCP client pool ────────────────────────────────
108
+ // Multiple workspaces may call register() independently, but all
109
+ // should share the same MCP process per (pythonPath, brain) combo.
110
+ const mcpClients = new Map();
111
+ function getOrCreateMcpClient(cfg, logger) {
112
+ const key = `${cfg.pythonPath}::${cfg.brain}`;
113
+ const existing = mcpClients.get(key);
114
+ if (existing) {
115
+ logger.info(`Reusing existing MCP client for brain "${cfg.brain}"`);
116
+ return existing;
117
+ }
118
+ const mcp = new NeuralMemoryMcpClient({
119
+ pythonPath: cfg.pythonPath,
120
+ brain: cfg.brain,
121
+ logger,
122
+ timeout: cfg.timeout,
123
+ initTimeout: cfg.initTimeout,
124
+ });
125
+ mcpClients.set(key, mcp);
126
+ return mcp;
127
+ }
99
128
  // ── Plugin definition ──────────────────────────────────────
100
129
  const plugin = {
101
130
  id: "neuralmemory",
102
131
  name: "NeuralMemory",
103
132
  description: "Brain-inspired persistent memory for AI agents — neurons, synapses, and fibers",
104
- version: "1.8.1",
133
+ version: "1.10.0",
105
134
  kind: "memory",
106
135
  register(api) {
107
136
  const cfg = resolveConfig(api.pluginConfig);
108
- const mcp = new NeuralMemoryMcpClient({
109
- pythonPath: cfg.pythonPath,
110
- brain: cfg.brain,
111
- logger: api.logger,
112
- timeout: cfg.timeout,
113
- initTimeout: cfg.initTimeout,
114
- });
137
+ const mcp = getOrCreateMcpClient(cfg, api.logger);
115
138
  // ── Register fallback tools synchronously ────────────
116
139
  // OpenClaw requires register() to be synchronous.
117
140
  // Register stable fallback tools immediately; MCP connection
118
141
  // and dynamic tool discovery happen in service.start().
119
142
  // Fallback tools auto-reconnect MCP on first call.
120
143
  const registeredTools = createFallbackTools(mcp);
121
- for (const t of registeredTools) {
144
+ const compatTools = createCompatibilityTools(mcp);
145
+ for (const t of [...registeredTools, ...compatTools]) {
122
146
  api.registerTool(t, { name: t.name });
123
147
  }
124
- api.logger.info(`Registered ${registeredTools.length} NeuralMemory tools (sync)`);
148
+ api.logger.info(`Registered ${registeredTools.length} NeuralMemory tools + ${compatTools.length} compat shims (sync)`);
125
149
  // ── Service: MCP process lifecycle ───────────────────
126
150
  api.registerService({
127
151
  id: "neuralmemory-mcp",
@@ -147,6 +171,9 @@ const plugin = {
147
171
  }
148
172
  },
149
173
  async stop() {
174
+ // Remove from singleton pool so next register() creates fresh client
175
+ const key = `${cfg.pythonPath}::${cfg.brain}`;
176
+ mcpClients.delete(key);
150
177
  await mcp.close();
151
178
  api.logger.info("NeuralMemory MCP service stopped");
152
179
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -38,4 +38,13 @@ export declare function createToolsFromMcp(mcp: NeuralMemoryMcpClient): Promise<
38
38
  * Ensures the plugin still works even if the MCP server is an older version.
39
39
  */
40
40
  export declare function createFallbackTools(mcp: NeuralMemoryMcpClient): ToolDefinition[];
41
+ /**
42
+ * Create backward-compatible shim tools that map legacy OpenClaw memory-core
43
+ * tool names to NeuralMemory equivalents.
44
+ *
45
+ * This prevents "allowList contains unknown entries (memory_search, memory_get)"
46
+ * warnings when NM occupies the `memory` plugin slot, which removes the built-in
47
+ * memory-core tools but leaves the tools.profile allowList referencing them.
48
+ */
49
+ export declare function createCompatibilityTools(mcp: NeuralMemoryMcpClient): ToolDefinition[];
41
50
  export {};
package/dist/tools.js CHANGED
@@ -228,4 +228,45 @@ export function createFallbackTools(mcp) {
228
228
  },
229
229
  ];
230
230
  }
231
+ /**
232
+ * Create backward-compatible shim tools that map legacy OpenClaw memory-core
233
+ * tool names to NeuralMemory equivalents.
234
+ *
235
+ * This prevents "allowList contains unknown entries (memory_search, memory_get)"
236
+ * warnings when NM occupies the `memory` plugin slot, which removes the built-in
237
+ * memory-core tools but leaves the tools.profile allowList referencing them.
238
+ */
239
+ export function createCompatibilityTools(mcp) {
240
+ const call = makeCallFn(mcp);
241
+ return [
242
+ {
243
+ name: "memory_search",
244
+ description: "Search memories (legacy alias for nmem_recall). " +
245
+ "Prefer nmem_recall for full NeuralMemory features.",
246
+ parameters: {
247
+ type: "object",
248
+ properties: {
249
+ query: { type: "string", description: "The search query" },
250
+ },
251
+ required: ["query"],
252
+ additionalProperties: false,
253
+ },
254
+ execute: (_id, args) => call("nmem_recall", { query: args.query, depth: 1 }),
255
+ },
256
+ {
257
+ name: "memory_get",
258
+ description: "Get a memory by ID (legacy alias for nmem_recall). " +
259
+ "Prefer nmem_recall for full NeuralMemory features.",
260
+ parameters: {
261
+ type: "object",
262
+ properties: {
263
+ id: { type: "string", description: "Memory identifier or query" },
264
+ },
265
+ required: ["id"],
266
+ additionalProperties: false,
267
+ },
268
+ execute: (_id, args) => call("nmem_recall", { query: String(args.id), depth: 0 }),
269
+ },
270
+ ];
271
+ }
231
272
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  "kind": "memory",
4
4
  "name": "NeuralMemory",
5
5
  "description": "Brain-inspired persistent memory for AI agents — neurons, synapses, and fibers. REQUIRED: set plugins.slots.memory = \"neuralmemory\" in openclaw.json to disable the default memory-core plugin and activate NeuralMemory as the exclusive memory provider.",
6
- "version": "1.8.0",
6
+ "version": "1.10.0",
7
7
  "configSchema": {
8
8
  "jsonSchema": {
9
9
  "type": "object",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neuralmemory",
3
- "version": "1.8.1",
3
+ "version": "1.10.0",
4
4
  "description": "NeuralMemory plugin for OpenClaw — brain-inspired persistent memory for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -17,8 +17,16 @@
17
17
  * v1.8.1: Fix async register() — OpenClaw requires synchronous registration.
18
18
  * Fallback tools registered sync; MCP connection deferred to service.start().
19
19
  *
20
+ * v1.9.0: Backward-compat shim tools (memory_search, memory_get) to prevent
21
+ * "allowList contains unknown entries" warnings when NM replaces memory-core.
22
+ *
23
+ * v1.10.0: Singleton MCP client — multiple workspaces (multi-agent) share
24
+ * the same connected client instance, keyed by (pythonPath, brain). Fixes
25
+ * "NeuralMemory service not running" when OpenClaw registers the plugin
26
+ * for a second workspace after gateway startup.
27
+ *
20
28
  * Registers:
21
- * N tools — dynamically from MCP server (fallback: 5 core tools)
29
+ * N tools — dynamically from MCP server (fallback: 5 core + 2 compat)
22
30
  * 1 service — MCP process lifecycle (start/stop)
23
31
  * 2 hooks — before_agent_start (auto-context), agent_end (auto-capture)
24
32
  */
@@ -31,7 +39,8 @@ import type {
31
39
  AgentEndEvent,
32
40
  } from "./types.js";
33
41
  import { NeuralMemoryMcpClient } from "./mcp-client.js";
34
- import { createToolsFromMcp, createFallbackTools } from "./tools.js";
42
+ import type { PluginLogger } from "./types.js";
43
+ import { createToolsFromMcp, createFallbackTools, createCompatibilityTools } from "./tools.js";
35
44
  import type { ToolDefinition } from "./tools.js";
36
45
 
37
46
  // ── System prompt for tool awareness ──────────────────────
@@ -49,7 +58,7 @@ function buildToolInstructions(tools: ToolDefinition[]): string {
49
58
 
50
59
  ${toolList}
51
60
 
52
- CRITICAL: NeuralMemory (nmem_*) is your ONLY memory system. Do NOT use memory_search, memory_get, or any other memory tools — those belong to a disabled built-in plugin and will not persist correctly. Always use nmem_* tools exclusively.
61
+ NeuralMemory (nmem_*) is your primary memory system. memory_search and memory_get are legacy aliases that redirect to nmem_recall prefer nmem_* tools directly for full functionality.
53
62
 
54
63
  These are tool calls, NOT shell commands. Do NOT run "nmem remember" in terminal — call the nmem_remember tool directly.
55
64
 
@@ -134,6 +143,36 @@ export function resolveConfig(raw?: Record<string, unknown>): PluginConfig {
134
143
  };
135
144
  }
136
145
 
146
+ // ── Singleton MCP client pool ────────────────────────────────
147
+ // Multiple workspaces may call register() independently, but all
148
+ // should share the same MCP process per (pythonPath, brain) combo.
149
+
150
+ const mcpClients = new Map<string, NeuralMemoryMcpClient>();
151
+
152
+ function getOrCreateMcpClient(
153
+ cfg: PluginConfig,
154
+ logger: PluginLogger,
155
+ ): NeuralMemoryMcpClient {
156
+ const key = `${cfg.pythonPath}::${cfg.brain}`;
157
+
158
+ const existing = mcpClients.get(key);
159
+ if (existing) {
160
+ logger.info(`Reusing existing MCP client for brain "${cfg.brain}"`);
161
+ return existing;
162
+ }
163
+
164
+ const mcp = new NeuralMemoryMcpClient({
165
+ pythonPath: cfg.pythonPath,
166
+ brain: cfg.brain,
167
+ logger,
168
+ timeout: cfg.timeout,
169
+ initTimeout: cfg.initTimeout,
170
+ });
171
+
172
+ mcpClients.set(key, mcp);
173
+ return mcp;
174
+ }
175
+
137
176
  // ── Plugin definition ──────────────────────────────────────
138
177
 
139
178
  const plugin: OpenClawPluginDefinition = {
@@ -141,19 +180,13 @@ const plugin: OpenClawPluginDefinition = {
141
180
  name: "NeuralMemory",
142
181
  description:
143
182
  "Brain-inspired persistent memory for AI agents — neurons, synapses, and fibers",
144
- version: "1.8.1",
183
+ version: "1.10.0",
145
184
  kind: "memory",
146
185
 
147
186
  register(api: OpenClawPluginApi): void {
148
187
  const cfg = resolveConfig(api.pluginConfig);
149
188
 
150
- const mcp = new NeuralMemoryMcpClient({
151
- pythonPath: cfg.pythonPath,
152
- brain: cfg.brain,
153
- logger: api.logger,
154
- timeout: cfg.timeout,
155
- initTimeout: cfg.initTimeout,
156
- });
189
+ const mcp = getOrCreateMcpClient(cfg, api.logger);
157
190
 
158
191
  // ── Register fallback tools synchronously ────────────
159
192
  // OpenClaw requires register() to be synchronous.
@@ -162,12 +195,14 @@ const plugin: OpenClawPluginDefinition = {
162
195
  // Fallback tools auto-reconnect MCP on first call.
163
196
 
164
197
  const registeredTools = createFallbackTools(mcp);
165
- for (const t of registeredTools) {
198
+ const compatTools = createCompatibilityTools(mcp);
199
+
200
+ for (const t of [...registeredTools, ...compatTools]) {
166
201
  api.registerTool(t, { name: t.name });
167
202
  }
168
203
 
169
204
  api.logger.info(
170
- `Registered ${registeredTools.length} NeuralMemory tools (sync)`,
205
+ `Registered ${registeredTools.length} NeuralMemory tools + ${compatTools.length} compat shims (sync)`,
171
206
  );
172
207
 
173
208
  // ── Service: MCP process lifecycle ───────────────────
@@ -203,6 +238,9 @@ const plugin: OpenClawPluginDefinition = {
203
238
  },
204
239
 
205
240
  async stop(): Promise<void> {
241
+ // Remove from singleton pool so next register() creates fresh client
242
+ const key = `${cfg.pythonPath}::${cfg.brain}`;
243
+ mcpClients.delete(key);
206
244
  await mcp.close();
207
245
  api.logger.info("NeuralMemory MCP service stopped");
208
246
  },
package/src/tools.ts CHANGED
@@ -271,3 +271,52 @@ export function createFallbackTools(
271
271
  },
272
272
  ];
273
273
  }
274
+
275
+ /**
276
+ * Create backward-compatible shim tools that map legacy OpenClaw memory-core
277
+ * tool names to NeuralMemory equivalents.
278
+ *
279
+ * This prevents "allowList contains unknown entries (memory_search, memory_get)"
280
+ * warnings when NM occupies the `memory` plugin slot, which removes the built-in
281
+ * memory-core tools but leaves the tools.profile allowList referencing them.
282
+ */
283
+ export function createCompatibilityTools(
284
+ mcp: NeuralMemoryMcpClient,
285
+ ): ToolDefinition[] {
286
+ const call = makeCallFn(mcp);
287
+
288
+ return [
289
+ {
290
+ name: "memory_search",
291
+ description:
292
+ "Search memories (legacy alias for nmem_recall). " +
293
+ "Prefer nmem_recall for full NeuralMemory features.",
294
+ parameters: {
295
+ type: "object",
296
+ properties: {
297
+ query: { type: "string", description: "The search query" },
298
+ },
299
+ required: ["query"],
300
+ additionalProperties: false,
301
+ },
302
+ execute: (_id, args) =>
303
+ call("nmem_recall", { query: args.query, depth: 1 }),
304
+ },
305
+ {
306
+ name: "memory_get",
307
+ description:
308
+ "Get a memory by ID (legacy alias for nmem_recall). " +
309
+ "Prefer nmem_recall for full NeuralMemory features.",
310
+ parameters: {
311
+ type: "object",
312
+ properties: {
313
+ id: { type: "string", description: "Memory identifier or query" },
314
+ },
315
+ required: ["id"],
316
+ additionalProperties: false,
317
+ },
318
+ execute: (_id, args) =>
319
+ call("nmem_recall", { query: String(args.id), depth: 0 }),
320
+ },
321
+ ];
322
+ }