@kalera/munin-openclaw 1.1.4 → 1.1.5
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/.turbo/turbo-build.log +1 -1
- package/README.md +15 -11
- package/SKILL.md +7 -0
- package/dist/index.js +6 -6
- package/openclaw.plugin.json +2 -2
- package/package.json +3 -3
- package/postinstall.js +1 -1
- package/src/index.ts +6 -6
package/.turbo/turbo-build.log
CHANGED
package/README.md
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
# Munin
|
|
1
|
+
# Munin Plugin for OpenClaw
|
|
2
2
|
|
|
3
3
|
## Install
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
|
|
6
|
+
openclaw plugins install @kalera/munin-openclaw
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Configure
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
MUNIN_BASE_URL=http://localhost:4000 \
|
|
13
|
-
MUNIN_PROJECT=default \
|
|
14
|
-
munin-openclaw capabilities
|
|
15
|
-
```
|
|
11
|
+
Set your Munin API Key and Context Core ID:
|
|
16
12
|
|
|
17
13
|
```bash
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
munin-openclaw search '{"query":"munin"}'
|
|
14
|
+
openclaw config set plugins.entries.munin-openclaw.config.apiKey "YOUR_API_KEY_HERE"
|
|
15
|
+
openclaw config set plugins.entries.munin-openclaw.config.projectId "YOUR_CONTEXT_CORE_ID"
|
|
21
16
|
```
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
This plugin natively registers 3 tools inside the OpenClaw agent:
|
|
21
|
+
- `munin_store_memory`
|
|
22
|
+
- `munin_retrieve_memory`
|
|
23
|
+
- `munin_search_memories`
|
|
24
|
+
|
|
25
|
+
The agent will automatically use them to persist and retrieve long-term context.
|
package/SKILL.md
CHANGED
|
@@ -11,6 +11,13 @@ metadata:
|
|
|
11
11
|
|
|
12
12
|
# 🐦 Munin: Reliable Memory for Your OpenClaw Agent
|
|
13
13
|
|
|
14
|
+
<CRITICAL-INSTRUCTION>
|
|
15
|
+
**HOW TO USE THIS SKILL**:
|
|
16
|
+
The `munin_store_memory`, `munin_retrieve_memory`, and `munin_search_memories` actions are registered as native tools (MCP).
|
|
17
|
+
You MUST call them using your standard tool-calling interface (e.g. `callTool("munin_search_memories", {...})`).
|
|
18
|
+
**DO NOT under any circumstances try to run them as shell commands or bash scripts.**
|
|
19
|
+
</CRITICAL-INSTRUCTION>
|
|
20
|
+
|
|
14
21
|
Your agent forgets everything the moment you close the tab. You've seen the "pro" solutions—Mem0, Zep, LangMem—and you've seen their **$20/month** price tags.
|
|
15
22
|
|
|
16
23
|
We think that's insane.
|
package/dist/index.js
CHANGED
|
@@ -3,14 +3,14 @@ import { Type } from "@sinclair/typebox";
|
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
export default {
|
|
5
5
|
id: "munin-openclaw",
|
|
6
|
-
name: "Munin
|
|
6
|
+
name: "Munin",
|
|
7
7
|
description: "Persistent memory tools for OpenClaw agents.",
|
|
8
8
|
kind: "memory",
|
|
9
9
|
configSchema: z.object({
|
|
10
10
|
baseUrl: z
|
|
11
11
|
.string()
|
|
12
12
|
.default("https://munin.kalera.dev")
|
|
13
|
-
.describe("The base URL for your Munin
|
|
13
|
+
.describe("The base URL for your Munin server."),
|
|
14
14
|
apiKey: z.string().optional().describe("Your API key for Munin."),
|
|
15
15
|
projectId: z.string().optional().describe("Your Context Core ID (e.g. proj_xxx)."),
|
|
16
16
|
}),
|
|
@@ -21,14 +21,14 @@ export default {
|
|
|
21
21
|
const apiKey = api.pluginConfig?.apiKey || process.env.MUNIN_API_KEY;
|
|
22
22
|
const projectId = api.pluginConfig?.projectId || process.env.MUNIN_PROJECT;
|
|
23
23
|
if (!apiKey || !projectId) {
|
|
24
|
-
api.logger.warn("Munin apiKey or projectId is missing.
|
|
24
|
+
api.logger.warn("Munin apiKey or projectId is missing. Munin tools will not be registered.");
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
const client = new MuninClient({ baseUrl, apiKey });
|
|
28
28
|
api.registerTool({
|
|
29
29
|
name: "munin_store_memory",
|
|
30
30
|
label: "Store Munin Memory",
|
|
31
|
-
description: "Store a new memory or update an existing one in
|
|
31
|
+
description: "Store a new memory or update an existing one in Munin.",
|
|
32
32
|
parameters: Type.Object({
|
|
33
33
|
key: Type.String({ description: "Unique identifier for the memory." }),
|
|
34
34
|
content: Type.String({ description: "The content of the memory." }),
|
|
@@ -51,7 +51,7 @@ export default {
|
|
|
51
51
|
api.registerTool({
|
|
52
52
|
name: "munin_retrieve_memory",
|
|
53
53
|
label: "Retrieve Munin Memory",
|
|
54
|
-
description: "Retrieve a memory by its key from
|
|
54
|
+
description: "Retrieve a memory by its key from Munin.",
|
|
55
55
|
parameters: Type.Object({
|
|
56
56
|
key: Type.String({
|
|
57
57
|
description: "The unique identifier of the memory.",
|
|
@@ -74,7 +74,7 @@ export default {
|
|
|
74
74
|
api.registerTool({
|
|
75
75
|
name: "munin_search_memories",
|
|
76
76
|
label: "Search Munin Memories",
|
|
77
|
-
description: "Search for memories by key, title, or content in
|
|
77
|
+
description: "Search for memories by key, title, or content in Munin.",
|
|
78
78
|
parameters: Type.Object({
|
|
79
79
|
query: Type.String({ description: "The search term." }),
|
|
80
80
|
}),
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "munin-openclaw",
|
|
3
|
-
"name": "Munin
|
|
3
|
+
"name": "Munin",
|
|
4
4
|
"description": "Persistent memory and Context Core for OpenClaw agents.",
|
|
5
5
|
"kind": "memory",
|
|
6
6
|
"configSchema": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"baseUrl": {
|
|
11
11
|
"type": "string",
|
|
12
12
|
"default": "https://munin.kalera.dev",
|
|
13
|
-
"description": "The base URL for your Munin
|
|
13
|
+
"description": "The base URL for your Munin server."
|
|
14
14
|
},
|
|
15
15
|
"apiKey": {
|
|
16
16
|
"type": "string",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kalera/munin-openclaw",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"openclaw": {
|
|
6
6
|
"extensions": [
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@sinclair/typebox": "^0.34.49",
|
|
18
18
|
"zod": "^4.3.6",
|
|
19
|
-
"@kalera/munin-sdk": "1.0.
|
|
20
|
-
"@kalera/munin-runtime": "1.0.
|
|
19
|
+
"@kalera/munin-sdk": "1.0.1",
|
|
20
|
+
"@kalera/munin-runtime": "1.0.1"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"openclaw": "^2026.3.28",
|
package/postinstall.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
console.log('\n\x1b[36m=================================================================\x1b[0m');
|
|
2
|
-
console.log('\x1b[36m\x1b[1m🐦 Munin
|
|
2
|
+
console.log('\x1b[36m\x1b[1m🐦 Munin successfully installed for OpenClaw!\x1b[0m');
|
|
3
3
|
console.log('\x1b[36m=================================================================\x1b[0m\n');
|
|
4
4
|
console.log('To activate your Munin Memory plugin, set your API key by running:\n');
|
|
5
5
|
console.log('\x1b[33m openclaw config set plugins.entries.munin-openclaw.config.apiKey "YOUR_API_KEY_HERE"\x1b[0m');
|
package/src/index.ts
CHANGED
|
@@ -4,14 +4,14 @@ import { z } from "zod";
|
|
|
4
4
|
|
|
5
5
|
export default {
|
|
6
6
|
id: "munin-openclaw",
|
|
7
|
-
name: "Munin
|
|
7
|
+
name: "Munin",
|
|
8
8
|
description: "Persistent memory tools for OpenClaw agents.",
|
|
9
9
|
kind: "memory",
|
|
10
10
|
configSchema: z.object({
|
|
11
11
|
baseUrl: z
|
|
12
12
|
.string()
|
|
13
13
|
.default("https://munin.kalera.dev")
|
|
14
|
-
.describe("The base URL for your Munin
|
|
14
|
+
.describe("The base URL for your Munin server."),
|
|
15
15
|
apiKey: z.string().optional().describe("Your API key for Munin."),
|
|
16
16
|
projectId: z.string().optional().describe("Your Context Core ID (e.g. proj_xxx)."),
|
|
17
17
|
}) as any,
|
|
@@ -27,7 +27,7 @@ export default {
|
|
|
27
27
|
|
|
28
28
|
if (!apiKey || !projectId) {
|
|
29
29
|
api.logger.warn(
|
|
30
|
-
"Munin apiKey or projectId is missing.
|
|
30
|
+
"Munin apiKey or projectId is missing. Munin tools will not be registered.",
|
|
31
31
|
);
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
@@ -37,7 +37,7 @@ export default {
|
|
|
37
37
|
api.registerTool({
|
|
38
38
|
name: "munin_store_memory",
|
|
39
39
|
label: "Store Munin Memory",
|
|
40
|
-
description: "Store a new memory or update an existing one in
|
|
40
|
+
description: "Store a new memory or update an existing one in Munin.",
|
|
41
41
|
parameters: Type.Object({
|
|
42
42
|
key: Type.String({ description: "Unique identifier for the memory." }),
|
|
43
43
|
content: Type.String({ description: "The content of the memory." }),
|
|
@@ -65,7 +65,7 @@ export default {
|
|
|
65
65
|
api.registerTool({
|
|
66
66
|
name: "munin_retrieve_memory",
|
|
67
67
|
label: "Retrieve Munin Memory",
|
|
68
|
-
description: "Retrieve a memory by its key from
|
|
68
|
+
description: "Retrieve a memory by its key from Munin.",
|
|
69
69
|
parameters: Type.Object({
|
|
70
70
|
key: Type.String({
|
|
71
71
|
description: "The unique identifier of the memory.",
|
|
@@ -89,7 +89,7 @@ export default {
|
|
|
89
89
|
api.registerTool({
|
|
90
90
|
name: "munin_search_memories",
|
|
91
91
|
label: "Search Munin Memories",
|
|
92
|
-
description: "Search for memories by key, title, or content in
|
|
92
|
+
description: "Search for memories by key, title, or content in Munin.",
|
|
93
93
|
parameters: Type.Object({
|
|
94
94
|
query: Type.String({ description: "The search term." }),
|
|
95
95
|
}),
|