@basicmemory/openclaw-basic-memory 0.1.0-alpha.2 → 0.1.0-alpha.8
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 +11 -11
- package/config.ts +24 -0
- package/index.ts +24 -0
- package/openclaw.plugin.json +12 -0
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -55,6 +55,17 @@ If `uv` is not installed, the `bm` CLI setup is skipped gracefully during instal
|
|
|
55
55
|
bash ~/.openclaw/extensions/openclaw-basic-memory/scripts/setup-bm.sh
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
### Basic Memory Cloud
|
|
59
|
+
|
|
60
|
+
Everything works locally — cloud adds cross-device, team, and production capabilities:
|
|
61
|
+
|
|
62
|
+
- **Your agent's memory travels with you** — same knowledge graph on laptop, desktop, and hosted environments
|
|
63
|
+
- **Team knowledge sharing** — org workspaces let multiple agents and team members build on a shared knowledge base
|
|
64
|
+
- **Durable memory for production agents** — persistent memory that survives CI teardowns and container restarts
|
|
65
|
+
- **Multi-agent coordination** — multiple agents can read and write to the same graph
|
|
66
|
+
|
|
67
|
+
Cloud extends local-first — still plain markdown, still yours. Start with a [7-day free trial](https://basicmemory.com) and use code `BMCLAW` for 20% off for 3 months. See [BASIC_MEMORY.md](./BASIC_MEMORY.md) for cloud setup.
|
|
68
|
+
|
|
58
69
|
### Development (local directory)
|
|
59
70
|
|
|
60
71
|
For plugin development, clone and link locally:
|
|
@@ -287,17 +298,6 @@ After each agent turn (when `autoCapture: true`), the plugin:
|
|
|
287
298
|
2. Appends them as timestamped entries to a daily conversation note (`conversations-YYYY-MM-DD`)
|
|
288
299
|
3. Skips very short exchanges (< `captureMinChars` chars each, default 10)
|
|
289
300
|
|
|
290
|
-
### Basic Memory Cloud
|
|
291
|
-
|
|
292
|
-
Everything works locally — cloud adds cross-device, team, and production capabilities:
|
|
293
|
-
|
|
294
|
-
- **Your agent's memory travels with you** — same knowledge graph on laptop, desktop, and hosted environments
|
|
295
|
-
- **Team knowledge sharing** — org workspaces let multiple agents and team members build on a shared knowledge base
|
|
296
|
-
- **Durable memory for production agents** — persistent memory that survives CI teardowns and container restarts
|
|
297
|
-
- **Multi-agent coordination** — multiple agents can read and write to the same graph
|
|
298
|
-
|
|
299
|
-
Cloud extends local-first — still plain markdown, still yours. Start with a [7-day free trial](https://basicmemory.com) and use code `BMCLAW` for 20% off for 3 months. See [BASIC_MEMORY.md](./BASIC_MEMORY.md) for setup, or visit [basicmemory.com](https://basicmemory.com) for more info.
|
|
300
|
-
|
|
301
301
|
## Agent Tools
|
|
302
302
|
|
|
303
303
|
All content tools accept an optional `project` parameter to operate on a different project than the default (cross-project operations).
|
package/config.ts
CHANGED
|
@@ -6,6 +6,11 @@ export type CloudConfig = {
|
|
|
6
6
|
api_key: string
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
export type DashboardConfig = {
|
|
10
|
+
enabled: boolean
|
|
11
|
+
port: number
|
|
12
|
+
}
|
|
13
|
+
|
|
9
14
|
export type BasicMemoryConfig = {
|
|
10
15
|
project: string
|
|
11
16
|
bmPath: string
|
|
@@ -18,6 +23,7 @@ export type BasicMemoryConfig = {
|
|
|
18
23
|
recallPrompt: string
|
|
19
24
|
debug: boolean
|
|
20
25
|
cloud?: CloudConfig
|
|
26
|
+
dashboard: DashboardConfig
|
|
21
27
|
}
|
|
22
28
|
|
|
23
29
|
const ALLOWED_KEYS = [
|
|
@@ -37,6 +43,7 @@ const ALLOWED_KEYS = [
|
|
|
37
43
|
"recall_prompt",
|
|
38
44
|
"debug",
|
|
39
45
|
"cloud",
|
|
46
|
+
"dashboard",
|
|
40
47
|
]
|
|
41
48
|
|
|
42
49
|
function assertAllowedKeys(
|
|
@@ -106,6 +113,22 @@ export function parseConfig(raw: unknown): BasicMemoryConfig {
|
|
|
106
113
|
}
|
|
107
114
|
}
|
|
108
115
|
|
|
116
|
+
let dashboard: DashboardConfig = { enabled: false, port: 3838 }
|
|
117
|
+
if (
|
|
118
|
+
cfg.dashboard &&
|
|
119
|
+
typeof cfg.dashboard === "object" &&
|
|
120
|
+
!Array.isArray(cfg.dashboard)
|
|
121
|
+
) {
|
|
122
|
+
const d = cfg.dashboard as Record<string, unknown>
|
|
123
|
+
dashboard = {
|
|
124
|
+
enabled: typeof d.enabled === "boolean" ? d.enabled : false,
|
|
125
|
+
port:
|
|
126
|
+
typeof d.port === "number" && d.port > 0 && d.port < 65536
|
|
127
|
+
? d.port
|
|
128
|
+
: 3838,
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
109
132
|
return {
|
|
110
133
|
project:
|
|
111
134
|
typeof cfg.project === "string" && cfg.project.length > 0
|
|
@@ -144,6 +167,7 @@ export function parseConfig(raw: unknown): BasicMemoryConfig {
|
|
|
144
167
|
: "Check for active tasks and recent activity. Summarize anything relevant to the current session.",
|
|
145
168
|
debug: typeof cfg.debug === "boolean" ? cfg.debug : false,
|
|
146
169
|
cloud,
|
|
170
|
+
dashboard,
|
|
147
171
|
}
|
|
148
172
|
}
|
|
149
173
|
|
package/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Server } from "node:http"
|
|
1
2
|
import type { OpenClawPluginApi } from "openclaw/plugin-sdk"
|
|
2
3
|
import { BmClient } from "./bm-client.ts"
|
|
3
4
|
import { registerCli } from "./commands/cli.ts"
|
|
@@ -8,6 +9,7 @@ import {
|
|
|
8
9
|
parseConfig,
|
|
9
10
|
resolveProjectPath,
|
|
10
11
|
} from "./config.ts"
|
|
12
|
+
import { createDashboardServer } from "./dashboard/server.ts"
|
|
11
13
|
import { buildCaptureHandler } from "./hooks/capture.ts"
|
|
12
14
|
import { buildRecallHandler } from "./hooks/recall.ts"
|
|
13
15
|
import { initLogger, log } from "./logger.ts"
|
|
@@ -80,6 +82,8 @@ export default {
|
|
|
80
82
|
registerCli(api, client, cfg)
|
|
81
83
|
|
|
82
84
|
// --- Service lifecycle ---
|
|
85
|
+
let dashboardServer: Server | undefined
|
|
86
|
+
|
|
83
87
|
api.registerService({
|
|
84
88
|
id: "openclaw-basic-memory",
|
|
85
89
|
start: async (ctx: { config?: unknown; workspaceDir?: string }) => {
|
|
@@ -108,10 +112,30 @@ export default {
|
|
|
108
112
|
|
|
109
113
|
setWorkspaceDir(workspace)
|
|
110
114
|
|
|
115
|
+
// Start dashboard if enabled
|
|
116
|
+
if (cfg.dashboard.enabled) {
|
|
117
|
+
dashboardServer = createDashboardServer({
|
|
118
|
+
port: cfg.dashboard.port,
|
|
119
|
+
client,
|
|
120
|
+
})
|
|
121
|
+
dashboardServer.listen(cfg.dashboard.port, () => {
|
|
122
|
+
log.info(
|
|
123
|
+
`dashboard running at http://localhost:${cfg.dashboard.port}`,
|
|
124
|
+
)
|
|
125
|
+
})
|
|
126
|
+
}
|
|
127
|
+
|
|
111
128
|
log.info("connected — BM MCP stdio session running")
|
|
112
129
|
},
|
|
113
130
|
stop: async () => {
|
|
114
131
|
log.info("stopping BM MCP session...")
|
|
132
|
+
if (dashboardServer) {
|
|
133
|
+
await new Promise<void>((resolve) =>
|
|
134
|
+
dashboardServer?.close(() => resolve()),
|
|
135
|
+
)
|
|
136
|
+
dashboardServer = undefined
|
|
137
|
+
log.info("dashboard stopped")
|
|
138
|
+
}
|
|
115
139
|
await client.stop()
|
|
116
140
|
log.info("stopped")
|
|
117
141
|
},
|
package/openclaw.plugin.json
CHANGED
|
@@ -56,6 +56,11 @@
|
|
|
56
56
|
"label": "Cloud Backend",
|
|
57
57
|
"help": "Optional cloud backend config (url + api_key). If present, uses cloud instead of local BM.",
|
|
58
58
|
"advanced": true
|
|
59
|
+
},
|
|
60
|
+
"dashboard": {
|
|
61
|
+
"label": "Dashboard",
|
|
62
|
+
"help": "Web dashboard for visualizing the knowledge graph (enabled, port)",
|
|
63
|
+
"advanced": true
|
|
59
64
|
}
|
|
60
65
|
},
|
|
61
66
|
"configSchema": {
|
|
@@ -76,6 +81,13 @@
|
|
|
76
81
|
"url": { "type": "string" },
|
|
77
82
|
"api_key": { "type": "string" }
|
|
78
83
|
}
|
|
84
|
+
},
|
|
85
|
+
"dashboard": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"properties": {
|
|
88
|
+
"enabled": { "type": "boolean" },
|
|
89
|
+
"port": { "type": "number", "minimum": 1, "maximum": 65535 }
|
|
90
|
+
}
|
|
79
91
|
}
|
|
80
92
|
},
|
|
81
93
|
"required": []
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@basicmemory/openclaw-basic-memory",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Basic Memory plugin for OpenClaw — local-first knowledge graph for agent memory",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/basicmachines-co/openclaw-basic-memory"
|
|
10
|
+
},
|
|
7
11
|
"files": [
|
|
8
12
|
"index.ts",
|
|
9
13
|
"bm-client.ts",
|