@minns/openclaw-minns 0.3.4 → 0.5.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/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ import type { OpenClawPluginApi } from "openclaw/plugin-sdk";
2
2
  declare const _default: {
3
3
  id: string;
4
4
  name: string;
5
+ description: string;
6
+ kind: "memory";
5
7
  register(api: OpenClawPluginApi): void;
6
8
  };
7
9
  export default _default;
package/dist/index.js CHANGED
@@ -1,16 +1,24 @@
1
- import { spawn } from "node:child_process";
2
- import { fileURLToPath } from "node:url";
3
- import { dirname, resolve } from "node:path";
4
1
  import { loadConfig, buildClient } from "./config.js";
5
- import { dispatch } from "./tools.js";
2
+ import { dispatch, TOOL_DEFS, registry, DEFAULT_MEMORY_SPEC } from "./tools.js";
3
+ import { buildSidecarInstruction, extractIntentAndResponse, } from "minns-sdk";
6
4
  const PLUGIN_ID = "openclaw-minns";
7
- const __dirname = dirname(fileURLToPath(import.meta.url));
8
5
  /** Safely extract a trimmed string from an unknown value. */
9
6
  function toStr(v) {
10
7
  return typeof v === "string" ? v.trim() : "";
11
8
  }
9
+ /** Truncate to a max length. */
10
+ function clip(v, n = 2000) {
11
+ const s = typeof v === "string" ? v : JSON.stringify(v ?? "");
12
+ return s.length > n ? `${s.slice(0, n)}…` : s;
13
+ }
12
14
  function getPluginConfig(api) {
13
- return (api.config?.plugins?.entries?.[PLUGIN_ID]?.config ?? {});
15
+ const raw = (api.pluginConfig ?? api.config?.plugins?.entries?.[PLUGIN_ID]?.config ?? {});
16
+ return {
17
+ env: raw.env && typeof raw.env === "object" ? raw.env : undefined,
18
+ autoRecall: raw.autoRecall !== false,
19
+ autoCapture: raw.autoCapture !== false,
20
+ topK: typeof raw.topK === "number" ? raw.topK : 5,
21
+ };
14
22
  }
15
23
  function mask(v) {
16
24
  if (!v)
@@ -22,119 +30,196 @@ function mask(v) {
22
30
  export default {
23
31
  id: PLUGIN_ID,
24
32
  name: "Minns MCP Bridge",
33
+ description: "EventGraphDB memory backend — semantic memory, strategies, and claim extraction",
34
+ kind: "memory",
25
35
  register(api) {
26
- let proc = null;
27
- let startCount = 0;
28
- let lastExit = null;
29
- const stop = () => {
30
- if (!proc)
31
- return;
32
- try {
33
- proc.kill("SIGTERM");
34
- }
35
- catch { }
36
- proc = null;
37
- };
38
- const start = () => {
39
- if (proc)
40
- return;
41
- const cfg = getPluginConfig(api);
42
- const customCmd = toStr(cfg.command);
43
- const command = customCmd || process.execPath;
44
- const args = customCmd
45
- ? (Array.isArray(cfg.args) ? cfg.args : [])
46
- : [resolve(__dirname, "mcp.js"), ...(Array.isArray(cfg.args) ? cfg.args : [])];
47
- const env = { ...process.env, ...(cfg.env ?? {}) };
48
- proc = spawn(command, args, { env, stdio: ["pipe", "pipe", "pipe"] });
49
- startCount += 1;
50
- api.logger.info?.(`[${PLUGIN_ID}] started: ${command} ${args.join(" ")}`.trim());
51
- proc.stdout.on("data", (d) => api.logger.debug?.(`[${PLUGIN_ID}] stdout: ${String(d).trim()}`));
52
- proc.stderr.on("data", (d) => api.logger.warn?.(`[${PLUGIN_ID}] stderr: ${String(d).trim()}`));
53
- proc.on("exit", (code, signal) => {
54
- lastExit = { code, signal, at: new Date().toISOString() };
55
- api.logger.warn?.(`[${PLUGIN_ID}] exited code=${code} signal=${signal ?? "none"}`);
56
- proc = null;
57
- });
58
- proc.on("error", (err) => {
59
- api.logger.error?.(`[${PLUGIN_ID}] process error: ${err instanceof Error ? err.message : String(err)}`);
60
- });
61
- };
62
- start();
63
- const shutdown = () => stop();
64
- process.once("SIGINT", shutdown);
65
- process.once("SIGTERM", shutdown);
36
+ const cfg = getPluginConfig(api);
37
+ // ------------------------------------------------------------------
38
+ // Minns SDK client (in-process, no subprocess needed)
39
+ // ------------------------------------------------------------------
40
+ const minnsCfg = loadConfig();
41
+ const minnsClient = buildClient(minnsCfg);
42
+ const OBS_AGENT_ID = 1;
43
+ api.logger.info(`[${PLUGIN_ID}] registered (autoRecall: ${cfg.autoRecall}, autoCapture: ${cfg.autoCapture}, topK: ${cfg.topK})`);
66
44
  // ------------------------------------------------------------------
67
45
  // Slash command: /minns
68
46
  // ------------------------------------------------------------------
69
47
  api.registerCommand({
70
48
  name: "minns",
71
- description: "Minns MCP bridge controls: status|ping|restart|stop|start",
49
+ description: "Minns memory plugin: status|ping|health",
72
50
  acceptsArgs: true,
73
51
  handler: async (ctx) => {
74
52
  const arg = toStr(ctx.args).toLowerCase();
75
- const cfg = getPluginConfig(api);
76
53
  const env = cfg.env ?? {};
77
54
  if (arg === "ping")
78
- return { text: proc ? "pong (mcp running)" : "pong (plugin loaded, mcp stopped)" };
79
- if (arg === "restart") {
80
- stop();
81
- start();
82
- return { text: "Minns MCP restarted" };
55
+ return { text: "pong" };
56
+ if (arg === "health") {
57
+ try {
58
+ const result = await dispatch(minnsClient, "health.check", {});
59
+ return { text: JSON.stringify(result, null, 2) };
60
+ }
61
+ catch (err) {
62
+ return { text: `health check failed: ${err instanceof Error ? err.message : String(err)}` };
63
+ }
83
64
  }
84
- if (arg === "stop") {
85
- stop();
86
- return { text: "Minns MCP stopped." };
87
- }
88
- if (arg === "start") {
89
- start();
90
- return { text: proc ? "Minns MCP running" : "Minns MCP failed to start" };
91
- }
92
- const customCmd = toStr(cfg.command);
93
- const cmd = customCmd || `node ${resolve(__dirname, "mcp.js")}`;
94
- const cmdArgs = Array.isArray(cfg.args) ? cfg.args : [];
95
65
  return {
96
66
  text: [
97
67
  "openclaw-minns status",
98
- `running: ${proc ? "yes" : "no"}`,
99
- `pid: ${proc?.pid ?? "-"}`,
100
- `starts: ${startCount}`,
101
- `command: ${cmd} ${cmdArgs.join(" ")}`.trim(),
102
68
  `MINNS_BASE_URL: ${env.MINNS_BASE_URL ?? "(not set)"}`,
103
69
  `MINNS_API_KEY: ${mask(env.MINNS_API_KEY)}`,
104
- `lastExit: ${lastExit
105
- ? `${lastExit.at} (code=${lastExit.code}, signal=${lastExit.signal ?? "none"})`
106
- : "none"}`,
70
+ `autoRecall: ${cfg.autoRecall}, autoCapture: ${cfg.autoCapture}, topK: ${cfg.topK}`,
107
71
  "",
108
- "Use: /minns ping | /minns restart | /minns stop | /minns start",
72
+ "Use: /minns ping | /minns health",
109
73
  ].join("\n"),
110
74
  };
111
75
  },
112
76
  });
113
77
  // ------------------------------------------------------------------
114
- // Minns SDK client
78
+ // Register tools (callable by agent directly, in-process)
115
79
  // ------------------------------------------------------------------
116
- const minnsCfg = loadConfig();
117
- const minnsClient = buildClient(minnsCfg);
118
- const OBS_AGENT_ID = 1;
119
- const MAX_TEXT = 2000;
120
- function clip(v, n = MAX_TEXT) {
121
- const s = typeof v === "string" ? v : JSON.stringify(v ?? "");
122
- return s.length > n ? `${s.slice(0, n)}…` : s;
80
+ for (const toolDef of TOOL_DEFS) {
81
+ api.registerTool({
82
+ name: toolDef.name,
83
+ label: toolDef.name.replace(".", " ").replace(/\b\w/g, (c) => c.toUpperCase()),
84
+ description: toolDef.description,
85
+ parameters: toolDef.inputSchema,
86
+ async execute(_toolCallId, params) {
87
+ try {
88
+ const result = await dispatch(minnsClient, toolDef.name, params);
89
+ return {
90
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
91
+ };
92
+ }
93
+ catch (err) {
94
+ return {
95
+ content: [{ type: "text", text: `${toolDef.name} failed: ${err instanceof Error ? err.message : String(err)}` }],
96
+ details: { error: String(err) },
97
+ };
98
+ }
99
+ },
100
+ }, { name: toolDef.name });
101
+ }
102
+ // ------------------------------------------------------------------
103
+ // Auto-recall + sidecar: inject memories AND intent instruction
104
+ // ------------------------------------------------------------------
105
+ // Track last user message per session for intent parsing in agent_end
106
+ let lastUserMessage = "";
107
+ const resolveSpec = (goals) => registry.resolve("memory", goals) ?? DEFAULT_MEMORY_SPEC;
108
+ if (cfg.autoRecall) {
109
+ api.on("before_agent_start", async (event, _ctx) => {
110
+ const prompt = toStr(event.prompt);
111
+ if (prompt.length < 5)
112
+ return;
113
+ lastUserMessage = prompt;
114
+ const parts = [];
115
+ try {
116
+ const memories = await dispatch(minnsClient, "memory.search", {
117
+ query: prompt,
118
+ limit: cfg.topK,
119
+ agent_id: OBS_AGENT_ID,
120
+ });
121
+ if (Array.isArray(memories) && memories.length > 0) {
122
+ const memoryBlock = memories
123
+ .map((m) => `- ${toStr(m.summary || m.takeaway || "")}`)
124
+ .filter((line) => line.length > 2)
125
+ .join("\n");
126
+ if (memoryBlock) {
127
+ parts.push(`<relevant-memories>\nThe following memories may be relevant:\n${memoryBlock}\n</relevant-memories>`);
128
+ api.logger.info(`[${PLUGIN_ID}] injecting ${memories.length} memories`);
129
+ }
130
+ }
131
+ }
132
+ catch (err) {
133
+ api.logger.warn(`[${PLUGIN_ID}] memory recall failed: ${err instanceof Error ? err.message : String(err)}`);
134
+ }
135
+ try {
136
+ const spec = resolveSpec();
137
+ const sidecarInstruction = buildSidecarInstruction(spec);
138
+ parts.push(`<intent-sidecar>\n${sidecarInstruction}\n</intent-sidecar>`);
139
+ }
140
+ catch (err) {
141
+ api.logger.warn(`[${PLUGIN_ID}] sidecar instruction failed: ${err instanceof Error ? err.message : String(err)}`);
142
+ }
143
+ if (parts.length === 0)
144
+ return;
145
+ return { systemContext: parts.join("\n\n") };
146
+ });
123
147
  }
124
- async function ingest(eventType, payload, text) {
125
- const sessionId = Date.now();
126
- const ev = minnsClient.event("openclaw", {
127
- agentId: OBS_AGENT_ID,
128
- sessionId,
129
- enableSemantic: true,
148
+ // ------------------------------------------------------------------
149
+ // Auto-capture: parse intent sidecar + store with correct semantics
150
+ // ------------------------------------------------------------------
151
+ if (cfg.autoCapture) {
152
+ api.on("agent_end", async (event, ctx) => {
153
+ if (!event.success || !event.messages || event.messages.length === 0)
154
+ return;
155
+ const sessionKey = toStr(ctx.sessionKey);
156
+ const sessionId = sessionKey ? parseInt(sessionKey, 10) || Date.now() : Date.now();
157
+ try {
158
+ let assistantOutput = "";
159
+ const recent = event.messages.slice(-10);
160
+ for (let i = recent.length - 1; i >= 0; i--) {
161
+ const msg = recent[i];
162
+ if (!msg || typeof msg !== "object")
163
+ continue;
164
+ if (msg.role !== "assistant")
165
+ continue;
166
+ const content = msg.content;
167
+ if (typeof content === "string") {
168
+ assistantOutput = content;
169
+ }
170
+ else if (Array.isArray(content)) {
171
+ for (const block of content) {
172
+ if (block && typeof block === "object" && block.type === "text") {
173
+ assistantOutput += (assistantOutput ? "\n" : "") + toStr(block.text);
174
+ }
175
+ }
176
+ }
177
+ break;
178
+ }
179
+ if (!assistantOutput)
180
+ return;
181
+ const spec = resolveSpec();
182
+ const { intent: parsedIntent, assistantResponse } = extractIntentAndResponse(assistantOutput, lastUserMessage, spec, {
183
+ onTelemetry: (data) => {
184
+ api.logger.debug(`[${PLUGIN_ID}] intent parse: ${JSON.stringify(data)}`);
185
+ },
186
+ });
187
+ api.logger.info(`[${PLUGIN_ID}] parsed intent="${parsedIntent.intent}" semantic=${parsedIntent.enable_semantic} claims=${parsedIntent.claims_hint?.length ?? 0}`);
188
+ const contextText = clip(assistantResponse || assistantOutput);
189
+ const ev = minnsClient.event("openclaw", {
190
+ agentId: OBS_AGENT_ID,
191
+ sessionId,
192
+ enableSemantic: parsedIntent.enable_semantic,
193
+ });
194
+ ev.context(contextText, parsedIntent.intent);
195
+ const statePayload = {
196
+ session_key: sessionKey,
197
+ intent: parsedIntent.intent,
198
+ slots: parsedIntent.slots,
199
+ confidence: parsedIntent.confidence,
200
+ };
201
+ if (parsedIntent.claims_hint && parsedIntent.claims_hint.length > 0) {
202
+ statePayload.claims_hint = parsedIntent.claims_hint;
203
+ }
204
+ if (parsedIntent.goal_updates && parsedIntent.goal_updates.length > 0) {
205
+ statePayload.goal_updates = parsedIntent.goal_updates;
206
+ for (const gu of parsedIntent.goal_updates) {
207
+ const priority = typeof gu.priority === "number" ? Math.round(gu.priority * 5) : 3;
208
+ const progress = typeof gu.progress === "number" ? gu.progress : 0;
209
+ ev.goal(gu.goal, priority, progress);
210
+ }
211
+ }
212
+ ev.state(statePayload);
213
+ await ev.enqueue();
214
+ api.logger.info(`[${PLUGIN_ID}] captured turn (intent=${parsedIntent.intent}, semantic=${parsedIntent.enable_semantic})`);
215
+ }
216
+ catch (err) {
217
+ api.logger.warn(`[${PLUGIN_ID}] auto-capture failed: ${err instanceof Error ? err.message : String(err)}`);
218
+ }
130
219
  });
131
- if (text && text.trim())
132
- ev.context(clip(text), eventType);
133
- ev.state(payload);
134
- await ev.send();
135
220
  }
136
221
  // ------------------------------------------------------------------
137
- // 1) Inbound messages
222
+ // Observability hooks (non-blocking via enqueue)
138
223
  // ------------------------------------------------------------------
139
224
  api.on("message_received", async (event, ctx) => {
140
225
  try {
@@ -143,108 +228,98 @@ export default {
143
228
  return;
144
229
  const meta = (event.metadata ?? {});
145
230
  const chatType = toStr(meta.chatType);
146
- // Skip group/channel traffic
147
231
  if (chatType === "group" || chatType === "channel")
148
232
  return;
149
- await ingest("message_received", {
233
+ await minnsClient
234
+ .event("openclaw", { agentId: OBS_AGENT_ID, sessionId: Date.now(), enableSemantic: true })
235
+ .context(clip(text), "message_received")
236
+ .state({
150
237
  from: event.from,
151
238
  channel_id: ctx.channelId,
152
239
  account_id: ctx.accountId,
153
240
  conversation_id: ctx.conversationId,
154
- timestamp: event.timestamp,
155
- metadata: meta,
156
- }, text);
157
- api.logger.debug?.(`[${PLUGIN_ID}] ingested message from ${event.from}`);
158
- const memories = await dispatch(minnsClient, "memory.search", {
159
- query: text,
160
- limit: 5,
161
- agent_id: OBS_AGENT_ID,
162
- });
163
- api.logger.debug?.(`[${PLUGIN_ID}] memory recall: ${JSON.stringify(memories)}`);
241
+ })
242
+ .enqueue();
164
243
  }
165
244
  catch (err) {
166
- api.logger.error?.(`[${PLUGIN_ID}] message_received ingest error: ${err instanceof Error ? err.message : String(err)}`);
245
+ api.logger.error(`[${PLUGIN_ID}] message_received error: ${err instanceof Error ? err.message : String(err)}`);
167
246
  }
168
247
  });
169
- // ------------------------------------------------------------------
170
- // 2) Outbound before send
171
- // ------------------------------------------------------------------
172
- api.on("message_sending", async (event, ctx) => {
173
- try {
174
- await ingest("message_sending", {
175
- to: event.to,
176
- channel_id: ctx.channelId,
177
- account_id: ctx.accountId,
178
- conversation_id: ctx.conversationId,
179
- metadata: event.metadata ?? {},
180
- }, toStr(event.content));
181
- }
182
- catch (err) {
183
- api.logger.error?.(`[${PLUGIN_ID}] message_sending ingest error: ${err instanceof Error ? err.message : String(err)}`);
184
- }
185
- });
186
- // ------------------------------------------------------------------
187
- // 3) Outbound sent confirmation
188
- // ------------------------------------------------------------------
189
- api.on("message_sent", async (event, ctx) => {
190
- try {
191
- await ingest("message_sent", {
192
- to: event.to,
193
- success: event.success,
194
- error: event.error,
195
- channel_id: ctx.channelId,
196
- account_id: ctx.accountId,
197
- conversation_id: ctx.conversationId,
198
- content_preview: clip(event.content, 300),
199
- });
200
- }
201
- catch (err) {
202
- api.logger.error?.(`[${PLUGIN_ID}] message_sent ingest error: ${err instanceof Error ? err.message : String(err)}`);
203
- }
204
- });
205
- // ------------------------------------------------------------------
206
- // 4) Tool calls — before execution
207
- // ------------------------------------------------------------------
208
- api.on("before_tool_call", async (event, ctx) => {
209
- try {
210
- await ingest("before_tool_call", {
211
- tool_name: event.toolName,
212
- params: event.params ?? {},
213
- agent_id: ctx.agentId,
214
- session_key: ctx.sessionKey,
215
- });
216
- }
217
- catch (err) {
218
- api.logger.error?.(`[${PLUGIN_ID}] before_tool_call ingest error: ${err instanceof Error ? err.message : String(err)}`);
219
- }
220
- });
221
- // ------------------------------------------------------------------
222
- // 5) Tool calls — after execution
223
- // ------------------------------------------------------------------
224
248
  api.on("after_tool_call", async (event, ctx) => {
225
249
  try {
226
- await ingest("after_tool_call", {
227
- tool_name: event.toolName,
250
+ await minnsClient
251
+ .event("openclaw", { agentId: OBS_AGENT_ID, sessionId: Date.now(), enableSemantic: false })
252
+ .action(toStr(event.toolName) || "unknown_tool", {
228
253
  params: event.params ?? {},
229
- duration_ms: event.durationMs,
230
- error: event.error,
231
254
  result_preview: clip(event.result, 1200),
232
- agent_id: ctx.agentId,
233
- session_key: ctx.sessionKey,
234
- });
255
+ })
256
+ .outcome({ duration_ms: event.durationMs, error: event.error })
257
+ .state({ agent_id: ctx.agentId, session_key: ctx.sessionKey })
258
+ .enqueue();
235
259
  }
236
260
  catch (err) {
237
- api.logger.error?.(`[${PLUGIN_ID}] after_tool_call ingest error: ${err instanceof Error ? err.message : String(err)}`);
261
+ api.logger.error(`[${PLUGIN_ID}] after_tool_call error: ${err instanceof Error ? err.message : String(err)}`);
238
262
  }
239
263
  });
240
264
  // ------------------------------------------------------------------
241
- // 6) Tool result persist (sync-only, lightweight)
265
+ // CLI subcommands
242
266
  // ------------------------------------------------------------------
243
- api.on("tool_result_persist", (event, ctx) => {
244
- try {
245
- api.logger.debug?.(`[${PLUGIN_ID}] persist tool=${event.toolName ?? "-"} callId=${event.toolCallId ?? "-"} session=${ctx.sessionKey ?? "-"}`);
246
- }
247
- catch { }
267
+ api.registerCli(({ program }) => {
268
+ const minns = program.command("minns").description("Minns memory plugin commands");
269
+ minns
270
+ .command("search")
271
+ .description("Search memories")
272
+ .argument("<query>", "Search query")
273
+ .option("--limit <n>", "Max results", String(cfg.topK))
274
+ .action(async (query, opts) => {
275
+ try {
276
+ const result = await dispatch(minnsClient, "memory.search", {
277
+ query,
278
+ limit: parseInt(opts.limit, 10),
279
+ agent_id: OBS_AGENT_ID,
280
+ });
281
+ console.log(JSON.stringify(result, null, 2));
282
+ }
283
+ catch (err) {
284
+ console.error(`Search failed: ${String(err)}`);
285
+ }
286
+ });
287
+ minns
288
+ .command("stats")
289
+ .description("Show system statistics")
290
+ .action(async () => {
291
+ try {
292
+ const result = await dispatch(minnsClient, "stats.get", {});
293
+ console.log(JSON.stringify(result, null, 2));
294
+ }
295
+ catch (err) {
296
+ console.error(`Stats failed: ${String(err)}`);
297
+ }
298
+ });
299
+ minns
300
+ .command("health")
301
+ .description("Check EventGraphDB health")
302
+ .action(async () => {
303
+ try {
304
+ const result = await dispatch(minnsClient, "health.check", {});
305
+ console.log(JSON.stringify(result, null, 2));
306
+ }
307
+ catch (err) {
308
+ console.error(`Health check failed: ${String(err)}`);
309
+ }
310
+ });
311
+ }, { commands: ["minns"] });
312
+ // ------------------------------------------------------------------
313
+ // Lifecycle service
314
+ // ------------------------------------------------------------------
315
+ api.registerService({
316
+ id: PLUGIN_ID,
317
+ start: () => {
318
+ api.logger.info(`[${PLUGIN_ID}] service started`);
319
+ },
320
+ stop: () => {
321
+ api.logger.info(`[${PLUGIN_ID}] service stopped`);
322
+ },
248
323
  });
249
324
  },
250
325
  };
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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"}
@@ -1,22 +1,27 @@
1
1
  {
2
2
  "id": "openclaw-minns",
3
3
  "name": "Minns MCP Bridge",
4
- "description": "Registers Minns MCP stdio bridge for OpenClaw",
4
+ "description": "EventGraphDB memory backend semantic memory, strategies, and claim extraction",
5
+ "kind": "memory",
5
6
  "configSchema": {
6
7
  "type": "object",
7
8
  "additionalProperties": false,
8
9
  "properties": {
9
- "command": { "type": "string", "default": "openclaw-minns-mcp" },
10
10
  "env": {
11
11
  "type": "object",
12
12
  "additionalProperties": { "type": "string" }
13
- }
13
+ },
14
+ "autoRecall": { "type": "boolean", "default": true },
15
+ "autoCapture": { "type": "boolean", "default": true },
16
+ "topK": { "type": "number", "default": 5 }
14
17
  }
15
18
  },
16
19
  "uiHints": {
17
- "command": { "label": "MCP Command" },
18
20
  "env.MINNS_BASE_URL": { "label": "Minns Base URL" },
19
21
  "env.MINNS_API_KEY": { "label": "Minns API Key", "sensitive": true },
20
- "env.MINNS_DEBUG": { "label": "Minns Debug" }
22
+ "env.MINNS_DEBUG": { "label": "Minns Debug" },
23
+ "autoRecall": { "label": "Auto-recall memories before agent turns" },
24
+ "autoCapture": { "label": "Auto-capture conversations after agent turns" },
25
+ "topK": { "label": "Max memories to inject" }
21
26
  }
22
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minns/openclaw-minns",
3
- "version": "0.3.4",
3
+ "version": "0.5.0",
4
4
  "description": "MCP stdio server integrating Minns EventGraphDB into OpenClaw",
5
5
  "type": "module",
6
6
  "main": "./dist/mcp.js",