@clawmem-ai/clawmem 0.1.3 → 0.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/README.md +27 -7
- package/openclaw.plugin.json +3 -3
- package/package.json +5 -1
- package/src/config.ts +1 -1
package/README.md
CHANGED
|
@@ -36,7 +36,27 @@ openclaw plugins install @clawmem-ai/clawmem
|
|
|
36
36
|
openclaw gateway restart
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
After restart, clawmem auto-provisions a private repo on `git.
|
|
39
|
+
After restart, clawmem auto-provisions a private repo on `git.clawmem.ai` and writes `token` + `repo` back into your config. Memories start accumulating from the next session.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Publishing
|
|
44
|
+
|
|
45
|
+
This repo publishes `@clawmem-ai/clawmem` through GitHub Actions using npm trusted publishing.
|
|
46
|
+
|
|
47
|
+
Before the workflow can publish successfully, configure the package on npmjs.com with this trusted publisher:
|
|
48
|
+
|
|
49
|
+
- Organization or user: `clawmem-ai`
|
|
50
|
+
- Repository: `clawmem-openclaw-plugin`
|
|
51
|
+
- Workflow filename: `release.yml`
|
|
52
|
+
|
|
53
|
+
Release flow:
|
|
54
|
+
|
|
55
|
+
1. Bump `package.json` to the version you want to ship.
|
|
56
|
+
2. Create and push a matching tag such as `0.1.5`.
|
|
57
|
+
3. GitHub Actions runs `.github/workflows/release.yml` and publishes with OIDC. No long-lived `NPM_TOKEN` secret is required.
|
|
58
|
+
|
|
59
|
+
The workflow intentionally publishes from a tag push instead of `workflow_dispatch`, because npm validates the workflow filename exactly when using trusted publishing.
|
|
40
60
|
|
|
41
61
|
---
|
|
42
62
|
|
|
@@ -132,7 +152,7 @@ After any significant realization, create a memory issue directly:
|
|
|
132
152
|
CLAWMEM_TOKEN="<your-token>"
|
|
133
153
|
CLAWMEM_REPO="<owner/repo>" # from openclaw.json after provisioning
|
|
134
154
|
|
|
135
|
-
curl -X POST "https://git.
|
|
155
|
+
curl -X POST "https://git.clawmem.ai/api/v3/repos/$CLAWMEM_REPO/issues" \
|
|
136
156
|
-H "Authorization: token $CLAWMEM_TOKEN" \
|
|
137
157
|
-H "Content-Type: application/json" \
|
|
138
158
|
-d '{
|
|
@@ -156,7 +176,7 @@ clawmem manages your private memories. For knowledge shared across agents or tea
|
|
|
156
176
|
**Create a team memory repo:**
|
|
157
177
|
|
|
158
178
|
```bash
|
|
159
|
-
curl -X POST "https://git.
|
|
179
|
+
curl -X POST "https://git.clawmem.ai/api/v3/user/repos" \
|
|
160
180
|
-H "Authorization: token $CLAWMEM_TOKEN" \
|
|
161
181
|
-H "Content-Type: application/json" \
|
|
162
182
|
-d '{"name": "team-memory", "private": false, "has_issues": true}'
|
|
@@ -165,7 +185,7 @@ curl -X POST "https://git.staging.clawmem.ai/api/v3/user/repos" \
|
|
|
165
185
|
**Write a team memory (using `gh` CLI):**
|
|
166
186
|
|
|
167
187
|
```bash
|
|
168
|
-
GH_HOST=git.
|
|
188
|
+
GH_HOST=git.clawmem.ai GH_TOKEN=$CLAWMEM_TOKEN \
|
|
169
189
|
gh issue create --repo <owner/team-memory> \
|
|
170
190
|
--title "Memory: ..." \
|
|
171
191
|
--body "..." \
|
|
@@ -175,7 +195,7 @@ GH_HOST=git.staging.clawmem.ai GH_TOKEN=$CLAWMEM_TOKEN \
|
|
|
175
195
|
**Read team memories:**
|
|
176
196
|
|
|
177
197
|
```bash
|
|
178
|
-
GH_HOST=git.
|
|
198
|
+
GH_HOST=git.clawmem.ai GH_TOKEN=$CLAWMEM_TOKEN \
|
|
179
199
|
gh issue list --repo <owner/team-memory> \
|
|
180
200
|
--label "memory-status:active" \
|
|
181
201
|
--json number,title,body
|
|
@@ -218,7 +238,7 @@ Minimal config (after auto-provisioning):
|
|
|
218
238
|
clawmem: {
|
|
219
239
|
enabled: true,
|
|
220
240
|
config: {
|
|
221
|
-
baseUrl: "https://git.
|
|
241
|
+
baseUrl: "https://git.clawmem.ai/api/v3",
|
|
222
242
|
repo: "owner/repo",
|
|
223
243
|
token: "<token>",
|
|
224
244
|
authScheme: "token"
|
|
@@ -238,7 +258,7 @@ Full config with all options:
|
|
|
238
258
|
clawmem: {
|
|
239
259
|
enabled: true,
|
|
240
260
|
config: {
|
|
241
|
-
baseUrl: "https://git.
|
|
261
|
+
baseUrl: "https://git.clawmem.ai/api/v3",
|
|
242
262
|
authScheme: "token",
|
|
243
263
|
issueTitlePrefix: "Session: ",
|
|
244
264
|
memoryTitlePrefix: "Memory: ",
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "clawmem",
|
|
3
3
|
"name": "ClawMem",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.5",
|
|
5
5
|
"description": "Mirror OpenClaw sessions into GitHub-compatible issues and comments.",
|
|
6
6
|
"kind": "memory",
|
|
7
7
|
"configSchema": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"baseUrl": {
|
|
12
12
|
"type": "string",
|
|
13
13
|
"minLength": 1,
|
|
14
|
-
"default": "https://git.
|
|
14
|
+
"default": "https://git.clawmem.ai"
|
|
15
15
|
},
|
|
16
16
|
"repo": {
|
|
17
17
|
"type": "string",
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"uiHints": {
|
|
89
89
|
"baseUrl": {
|
|
90
90
|
"label": "API Base URL",
|
|
91
|
-
"placeholder": "https://git.
|
|
91
|
+
"placeholder": "https://git.clawmem.ai",
|
|
92
92
|
"help": "GitHub-compatible API base URL. Root URLs are normalized to /api/v3 automatically."
|
|
93
93
|
},
|
|
94
94
|
"repo": {
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clawmem-ai/clawmem",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Mirror OpenClaw sessions into GitHub-compatible issues and comments.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/clawmem-ai/clawmem-openclaw-plugin.git"
|
|
10
|
+
},
|
|
7
11
|
"files": [
|
|
8
12
|
"index.ts",
|
|
9
13
|
"openclaw.plugin.json",
|
package/src/config.ts
CHANGED
|
@@ -19,7 +19,7 @@ export function resolvePluginConfig(api: OpenClawPluginApi): ClawMemPluginConfig
|
|
|
19
19
|
const str = (v: unknown) => typeof v === "string" && v.trim() ? v.trim() : undefined;
|
|
20
20
|
const num = (v: unknown, d: number) => typeof v === "number" && Number.isFinite(v) ? Math.floor(v) : d;
|
|
21
21
|
const clamp = (v: number, lo: number, hi: number) => Math.min(hi, Math.max(lo, v));
|
|
22
|
-
const baseUrl = (str(raw.baseUrl) ?? "https://git.
|
|
22
|
+
const baseUrl = (str(raw.baseUrl) ?? "https://git.clawmem.ai").replace(/\/+$/, "");
|
|
23
23
|
return {
|
|
24
24
|
baseUrl: baseUrl.endsWith("/api/v3") ? baseUrl : `${baseUrl}/api/v3`,
|
|
25
25
|
repo: str(raw.repo), token: str(raw.token),
|