@jonathangu/openclawbrain 0.3.0 → 0.3.1
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 +140 -290
- package/docs/END_STATE.md +106 -94
- package/docs/EVIDENCE.md +71 -23
- package/docs/RELEASE_CONTRACT.md +46 -32
- package/docs/agent-tools.md +65 -34
- package/docs/architecture.md +128 -142
- package/docs/configuration.md +62 -25
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/channels-status.txt +20 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/config-snapshot.json +94 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/doctor.json +14 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/gateway-probe.txt +24 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/gateway-status.txt +31 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/init-capture.json +15 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/logs.txt +357 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/status-all.txt +61 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/status.json +275 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/summary.md +18 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/trace.json +222 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/validation-report.json +1515 -0
- package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/workspace-inventory.json +4 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/channels-status.txt +20 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/config-snapshot.json +94 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/doctor.json +14 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/gateway-probe.txt +24 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/gateway-status.txt +31 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/init-capture.json +15 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/logs.txt +362 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/status-all.txt +61 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/status.json +275 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/summary.md +21 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/trace.json +222 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/validation-report.json +4400 -0
- package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/workspace-inventory.json +4 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/channels-status.txt +31 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/config-snapshot.json +94 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/doctor.json +14 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/gateway-probe.txt +34 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/gateway-status.txt +41 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/logs.txt +441 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/status-all.txt +60 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/status.json +276 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/summary.md +13 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/trace.json +4 -0
- package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/validation-report.json +387 -0
- package/docs/tui.md +11 -4
- package/index.ts +194 -1
- package/package.json +1 -1
- package/src/brain-cli.ts +12 -1
- package/src/brain-harvest/scanner.ts +286 -16
- package/src/brain-harvest/self.ts +134 -6
- package/src/brain-runtime/evidence-detectors.ts +3 -1
- package/src/brain-runtime/harvester-extension.ts +3 -0
- package/src/brain-runtime/service.ts +2 -0
- package/src/brain-store/embedding.ts +29 -8
- package/src/brain-worker/worker.ts +40 -0
- package/src/engine.ts +1 -0
package/docs/configuration.md
CHANGED
|
@@ -2,20 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
This guide covers the practical operator setup for **OpenClawBrain v2**.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
If you want the repo's exact truth contract first, read:
|
|
6
6
|
- `README.md`
|
|
7
7
|
- `docs/RELEASE_CONTRACT.md`
|
|
8
|
-
- `docs/
|
|
8
|
+
- `docs/EVIDENCE.md`
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Happy-path operator flow
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
1. install the plugin with the OpenClaw plugin installer
|
|
13
|
+
2. configure embeddings and choose a `brainRoot`
|
|
14
|
+
3. prefer `brainWorkerMode=child`
|
|
15
|
+
4. run `openclawbrain init <workspace>`
|
|
16
|
+
5. check `openclawbrain status`
|
|
17
|
+
6. run the validation harnesses appropriate to the claim you want to make
|
|
18
|
+
|
|
19
|
+
## Install
|
|
20
|
+
|
|
21
|
+
Published package:
|
|
13
22
|
|
|
14
23
|
```bash
|
|
15
24
|
openclaw plugins install @jonathangu/openclawbrain
|
|
16
25
|
```
|
|
17
26
|
|
|
18
|
-
|
|
27
|
+
From a local OpenClaw checkout:
|
|
19
28
|
|
|
20
29
|
```bash
|
|
21
30
|
pnpm openclaw plugins install @jonathangu/openclawbrain
|
|
@@ -27,21 +36,15 @@ For local development, link your working copy:
|
|
|
27
36
|
openclaw plugins install --link /path/to/openclawbrain
|
|
28
37
|
```
|
|
29
38
|
|
|
30
|
-
|
|
39
|
+
The plugin installer is the supported install boundary.
|
|
31
40
|
|
|
32
|
-
##
|
|
41
|
+
## Important host-seam truth
|
|
33
42
|
|
|
34
|
-
|
|
43
|
+
On current OpenClaw hosts, **do not manually write** `plugins.slots.contextEngine` for OpenClawBrain.
|
|
35
44
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"slots": {
|
|
40
|
-
"contextEngine": "openclawbrain"
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
+
That older seam is not the stable install story anymore. OpenClawBrain now uses a hook-based compatibility bridge on hosts where `api.registerContextEngine` is gone.
|
|
46
|
+
|
|
47
|
+
If you are debugging an older host build, treat any manual slot override as version-specific surgery rather than normal operator setup.
|
|
45
48
|
|
|
46
49
|
## Recommended starting configuration
|
|
47
50
|
|
|
@@ -74,7 +77,7 @@ Why these defaults:
|
|
|
74
77
|
|
|
75
78
|
## Initialization
|
|
76
79
|
|
|
77
|
-
The transcript layer works immediately after install. Learned retrieval needs an explicit init:
|
|
80
|
+
The transcript-memory layer works immediately after install. Learned retrieval needs an explicit init pass:
|
|
78
81
|
|
|
79
82
|
```bash
|
|
80
83
|
openclawbrain init /path/to/workspace
|
|
@@ -84,7 +87,7 @@ That creates the initial graph, writes `state.db`, snapshots pack `v000001`, and
|
|
|
84
87
|
|
|
85
88
|
## Embeddings
|
|
86
89
|
|
|
87
|
-
OpenClawBrain currently targets tested OpenAI-compatible embeddings APIs.
|
|
90
|
+
OpenClawBrain currently targets tested OpenAI-compatible `/v1/embeddings` APIs.
|
|
88
91
|
|
|
89
92
|
### Local Ollama
|
|
90
93
|
|
|
@@ -103,7 +106,11 @@ OpenClawBrain currently targets tested OpenAI-compatible embeddings APIs.
|
|
|
103
106
|
}
|
|
104
107
|
```
|
|
105
108
|
|
|
106
|
-
|
|
109
|
+
Default base URL:
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
http://127.0.0.1:11434/v1
|
|
113
|
+
```
|
|
107
114
|
|
|
108
115
|
### Remote OpenAI-compatible endpoint
|
|
109
116
|
|
|
@@ -123,7 +130,7 @@ This defaults to `http://127.0.0.1:11434/v1`.
|
|
|
123
130
|
}
|
|
124
131
|
```
|
|
125
132
|
|
|
126
|
-
If the endpoint requires auth,
|
|
133
|
+
If the remote endpoint requires auth, set `OPENCLAWBRAIN_EMBEDDING_API_KEY`.
|
|
127
134
|
|
|
128
135
|
## Important environment variables
|
|
129
136
|
|
|
@@ -137,8 +144,19 @@ If the endpoint requires auth, provide `OPENCLAWBRAIN_EMBEDDING_API_KEY`.
|
|
|
137
144
|
| `OPENCLAWBRAIN_EMBEDDING_PROVIDER` | Embedding provider (`openai`, `openai-resp`, `ollama`) |
|
|
138
145
|
| `OPENCLAWBRAIN_EMBEDDING_MODEL` | Embedding model used for init/retrieval/teach |
|
|
139
146
|
| `OPENCLAWBRAIN_EMBEDDING_BASE_URL` | Optional embeddings API base URL |
|
|
140
|
-
| `OPENCLAWBRAIN_EMBEDDING_API_KEY` | Optional
|
|
147
|
+
| `OPENCLAWBRAIN_EMBEDDING_API_KEY` | Optional auth for remote embedding endpoints |
|
|
141
148
|
| `OPENCLAWBRAIN_SHADOW_MODE` | Record routing without injecting learned context |
|
|
149
|
+
| `OPENCLAWBRAIN_WORKER_MODE` | Worker mode; prefer `child` for the real operator boundary |
|
|
150
|
+
|
|
151
|
+
## Child-worker boundary
|
|
152
|
+
|
|
153
|
+
`brainWorkerMode=child` is the recommended serving boundary.
|
|
154
|
+
|
|
155
|
+
Why:
|
|
156
|
+
- serving reads immutable promoted packs
|
|
157
|
+
- the learner runs in a separate supervised child process
|
|
158
|
+
- status/doctor surfaces can report PID, heartbeat, restart, and exit truth clearly
|
|
159
|
+
- `in_process` remains useful for development or debugging, but it should not be treated as the production operator boundary
|
|
142
160
|
|
|
143
161
|
## Operator commands
|
|
144
162
|
|
|
@@ -156,13 +174,17 @@ openclawbrain doctor
|
|
|
156
174
|
|
|
157
175
|
## Validation commands
|
|
158
176
|
|
|
159
|
-
Deterministic runtime proof harness
|
|
177
|
+
### Deterministic runtime proof harness
|
|
160
178
|
|
|
161
179
|
```bash
|
|
162
|
-
|
|
180
|
+
pnpm exec tsx scripts/validate-brain-runtime-behavior.ts
|
|
163
181
|
```
|
|
164
182
|
|
|
165
|
-
|
|
183
|
+
Use this when you want a real signal on:
|
|
184
|
+
- immediate post-teach retrieval
|
|
185
|
+
- serve-from-last-promoted-pack after worker failure
|
|
186
|
+
|
|
187
|
+
### Disposable host-surface harness
|
|
166
188
|
|
|
167
189
|
```bash
|
|
168
190
|
node scripts/validate-openclaw-install.mjs --setup-only
|
|
@@ -173,6 +195,21 @@ OPENCLAWBRAIN_VALIDATION_MODEL=ollama/qwen2.5:7b-instruct \
|
|
|
173
195
|
node scripts/validate-openclaw-install.mjs
|
|
174
196
|
```
|
|
175
197
|
|
|
198
|
+
Current honest status:
|
|
199
|
+
- sterile preflight/config seam repairs are real
|
|
200
|
+
- deterministic runtime proof is real
|
|
201
|
+
- the full sterile host harness is still not frozen end to end because it currently stalls during `openclawbrain init`
|
|
202
|
+
|
|
203
|
+
So treat the host harness as active proof work, not a closed release gate.
|
|
204
|
+
|
|
205
|
+
## Fallback behavior
|
|
206
|
+
|
|
207
|
+
- if the brain has not been initialized, OpenClawBrain serves transcript-memory context only
|
|
208
|
+
- if embeddings are not configured, learned retrieval and `brain_teach` stay disabled
|
|
209
|
+
- local loopback embedding endpoints do not require a bearer token by default
|
|
210
|
+
- if the worker is unavailable, serving still uses the last promoted pack
|
|
211
|
+
- `openclawbrain status` and `openclawbrain doctor` expose embedding and worker truth so operator state stays visible
|
|
212
|
+
|
|
176
213
|
## Session reset note
|
|
177
214
|
|
|
178
215
|
OpenClawBrain preserves history through compaction, but it does not override OpenClaw's core session reset policy. If sessions reset sooner than you want, increase OpenClaw's `session.reset.idleMinutes`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
|
|
2
|
+
│
|
|
3
|
+
◇ Doctor changes ──────────────────────────────╮
|
|
4
|
+
│ │
|
|
5
|
+
│ Telegram configured, enabled automatically. │
|
|
6
|
+
│ │
|
|
7
|
+
├───────────────────────────────────────────────╯
|
|
8
|
+
│
|
|
9
|
+
◇ Doctor ──────────────────────────────────────────────╮
|
|
10
|
+
│ │
|
|
11
|
+
│ Run "openclaw doctor --fix" to apply these changes. │
|
|
12
|
+
│ │
|
|
13
|
+
├───────────────────────────────────────────────────────╯
|
|
14
|
+
Checking channel status (probe)…
|
|
15
|
+
Gateway not reachable; showing config-only status.
|
|
16
|
+
Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
|
|
17
|
+
Mode: local
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
Tip: https://docs.openclaw.ai/cli#status adds gateway health probes to status output (requires a reachable gateway).
|
package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/config-snapshot.json
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"gitSha": "1fc8ee6fd7892e3deb27d111434df948bca2a66b",
|
|
3
|
+
"artifactDir": "/Users/cormorantai/openclawbrain/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b",
|
|
4
|
+
"validationMode": "sterile-lane",
|
|
5
|
+
"validationLaneName": "ocbphase1",
|
|
6
|
+
"validationRoot": "/Users/cormorantai/.openclaw-ocbphase1",
|
|
7
|
+
"validationHome": "/Users/cormorantai",
|
|
8
|
+
"validationStateDir": "/Users/cormorantai/.openclaw-ocbphase1",
|
|
9
|
+
"fixtureWorkspace": "/Users/cormorantai/.openclaw-ocbphase1/workspace-fixture",
|
|
10
|
+
"configPath": "/Users/cormorantai/.openclaw-ocbphase1/openclaw.json",
|
|
11
|
+
"lcmDbPath": "/Users/cormorantai/.openclaw-ocbphase1/lcm.db",
|
|
12
|
+
"brainRoot": "/Users/cormorantai/.openclaw-ocbphase1/openclawbrain",
|
|
13
|
+
"validationRecordFile": "/Users/cormorantai/.openclaw-ocbphase1/validation-records/validation-assemble.jsonl",
|
|
14
|
+
"validationGatewayPort": 19031,
|
|
15
|
+
"config": {
|
|
16
|
+
"meta": {
|
|
17
|
+
"lastTouchedVersion": "2026.3.13",
|
|
18
|
+
"lastTouchedAt": "2026-03-16T15:23:45.483Z"
|
|
19
|
+
},
|
|
20
|
+
"models": {
|
|
21
|
+
"providers": {
|
|
22
|
+
"ollama": {
|
|
23
|
+
"baseUrl": "http://127.0.0.1:11434",
|
|
24
|
+
"apiKey": "ollama-local",
|
|
25
|
+
"api": "ollama",
|
|
26
|
+
"models": [
|
|
27
|
+
{
|
|
28
|
+
"id": "qwen2.5:7b-instruct",
|
|
29
|
+
"name": "qwen2.5:7b-instruct",
|
|
30
|
+
"reasoning": false,
|
|
31
|
+
"input": [
|
|
32
|
+
"text"
|
|
33
|
+
],
|
|
34
|
+
"cost": {
|
|
35
|
+
"input": 0,
|
|
36
|
+
"output": 0,
|
|
37
|
+
"cacheRead": 0,
|
|
38
|
+
"cacheWrite": 0
|
|
39
|
+
},
|
|
40
|
+
"contextWindow": 262144,
|
|
41
|
+
"maxTokens": 16384
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"agents": {
|
|
48
|
+
"defaults": {
|
|
49
|
+
"model": {
|
|
50
|
+
"primary": "ollama/qwen2.5:7b-instruct"
|
|
51
|
+
},
|
|
52
|
+
"workspace": "/Users/cormorantai/.openclaw-ocbphase1/workspace-fixture",
|
|
53
|
+
"compaction": {
|
|
54
|
+
"mode": "safeguard"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"commands": {
|
|
59
|
+
"native": "auto",
|
|
60
|
+
"nativeSkills": "auto",
|
|
61
|
+
"restart": true,
|
|
62
|
+
"ownerDisplay": "raw"
|
|
63
|
+
},
|
|
64
|
+
"gateway": {
|
|
65
|
+
"port": 19031,
|
|
66
|
+
"mode": "local"
|
|
67
|
+
},
|
|
68
|
+
"plugins": {
|
|
69
|
+
"load": {
|
|
70
|
+
"paths": [
|
|
71
|
+
"/Users/cormorantai/openclawbrain"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"slots": {},
|
|
75
|
+
"entries": {
|
|
76
|
+
"openclawbrain": {
|
|
77
|
+
"enabled": true,
|
|
78
|
+
"config": {
|
|
79
|
+
"enabled": true
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"installs": {
|
|
84
|
+
"openclawbrain": {
|
|
85
|
+
"source": "path",
|
|
86
|
+
"sourcePath": "/Users/cormorantai/openclawbrain",
|
|
87
|
+
"installPath": "/Users/cormorantai/openclawbrain",
|
|
88
|
+
"version": "0.3.0",
|
|
89
|
+
"installedAt": "2026-03-16T15:23:45.475Z"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "openclaw",
|
|
3
|
+
"args": [
|
|
4
|
+
"doctor",
|
|
5
|
+
"--non-interactive"
|
|
6
|
+
],
|
|
7
|
+
"cwd": "/Users/cormorantai/openclawbrain",
|
|
8
|
+
"exitCode": 0,
|
|
9
|
+
"signal": null,
|
|
10
|
+
"ok": true,
|
|
11
|
+
"stdout": "▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\n██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██\n██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██\n██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n 🦞 OPENCLAW 🦞 \n \n┌ OpenClaw doctor\n[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)\n│\n◇ Install ─────────────────────────────────────────────────────────╮\n│ │\n│ - package-lock.json present in a pnpm workspace. If you ran npm │\n│ install, remove it and reinstall with pnpm. │\n│ │\n├───────────────────────────────────────────────────────────────────╯\n│\n◇ Doctor changes ──────────────────────────────╮\n│ │\n│ Telegram configured, enabled automatically. │\n│ │\n├───────────────────────────────────────────────╯\n│\n◇ Doctor ──────────────────────────────────────────────╮\n│ │\n│ Run \"openclaw doctor --fix\" to apply these changes. │\n│ │\n├───────────────────────────────────────────────────────╯\n│\n◇ Gateway auth ──────────────────────────────────────────────────╮\n│ │\n│ Gateway auth is off or missing a token. Token auth is now the │\n│ recommended default (including loopback). │\n│ │\n├─────────────────────────────────────────────────────────────────╯\n│\n◇ State integrity ────────────────────────────────────────────────────────╮\n│ │\n│ - OAuth dir not present ($OPENCLAW_HOME/credentials). Skipping create │\n│ because no WhatsApp/pairing channel config is active. │\n│ - Multiple state directories detected. This can split session history. │\n│ - /Users/cormorantai/.openclaw │\n│ Active state dir: $OPENCLAW_HOME │\n│ │\n├──────────────────────────────────────────────────────────────────────────╯\n│\n◇ Other gateway-like services detected ───────────────────────────────────────╮\n│ │\n│ - com.openclawbrain.daemon.activation.0ec88212fa7d (user, plist: │\n│ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │\n│ ion.0ec88212fa7d.plist) │\n│ - com.openclawbrain.daemon.activation.546e84bf06ac (user, plist: │\n│ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │\n│ ion.546e84bf06ac.plist) │\n│ - com.openclawbrain.daemon.activation.b3eeb450ca08 (user, plist: │\n│ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │\n│ ion.b3eeb450ca08.plist) │\n│ │\n├──────────────────────────────────────────────────────────────────────────────╯\n│\n◇ Cleanup hints ─────────────────────────────────────────╮\n│ │\n│ - launchctl bootout gui/$UID/ai.openclaw.gateway │\n│ - rm ~/Library/LaunchAgents/ai.openclaw.gateway.plist │\n│ │\n├─────────────────────────────────────────────────────────╯\n│\n◇ Gateway recommendation ───────────────────────────────────────────────╮\n│ │\n│ Recommendation: run a single gateway per machine for most setups. │\n│ One gateway supports multiple agents. │\n│ If you need multiple gateways (e.g., a rescue bot on the same host), │\n│ isolate ports + config/state (see docs: │\n│ /gateway#multiple-gateways-same-host). │\n│ │\n├────────────────────────────────────────────────────────────────────────╯\n│\n◇ Security ─────────────────────────────────╮\n│ │\n│ - No channel security warnings detected. │\n│ - Run: openclaw security audit --deep │\n│ │\n├────────────────────────────────────────────╯\n│\n◇ Skills status ────────────╮\n│ │\n│ Eligible: 9 │\n│ Missing requirements: 43 │\n│ Blocked by allowlist: 0 │\n│ │\n├────────────────────────────╯\n│\n◇ Plugins ──────╮\n│ │\n│ Loaded: 8 │\n│ Disabled: 34 │\n│ Errors: 0 │\n│ │\n├────────────────╯\n│\n◇ Gateway ──────────────╮\n│ │\n│ Gateway not running. │\n│ │\n├────────────────────────╯\n│\n◇ Gateway connection ───────────────────────────────────────────╮\n│ │\n│ Gateway target: ws://127.0.0.1:19031 │\n│ Source: local loopback │\n│ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json │\n│ Bind: loopback │\n│ │\n├────────────────────────────────────────────────────────────────╯\n│\n◇ Gateway ────────────────────────╮\n│ │\n│ Gateway service not installed. │\n│ │\n├──────────────────────────────────╯\nRun \"openclaw doctor --fix\" to apply changes.\n│\n└ Doctor complete.\n\n",
|
|
12
|
+
"stderr": "[plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclawbrain (/Users/cormorantai/openclawbrain/index.ts). Set plugins.allow to explicit trusted ids.\n",
|
|
13
|
+
"error": null
|
|
14
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
|
|
2
|
+
│
|
|
3
|
+
◇ Doctor changes ──────────────────────────────╮
|
|
4
|
+
│ │
|
|
5
|
+
│ Telegram configured, enabled automatically. │
|
|
6
|
+
│ │
|
|
7
|
+
├───────────────────────────────────────────────╯
|
|
8
|
+
│
|
|
9
|
+
◇ Doctor ──────────────────────────────────────────────╮
|
|
10
|
+
│ │
|
|
11
|
+
│ Run "openclaw doctor --fix" to apply these changes. │
|
|
12
|
+
│ │
|
|
13
|
+
├───────────────────────────────────────────────────────╯
|
|
14
|
+
Gateway Status
|
|
15
|
+
Reachable: no
|
|
16
|
+
Probe budget: 3000ms
|
|
17
|
+
|
|
18
|
+
Discovery (this machine)
|
|
19
|
+
Found 4 gateway(s) via Bonjour (local.)
|
|
20
|
+
|
|
21
|
+
Targets
|
|
22
|
+
Local loopback ws://127.0.0.1:19031
|
|
23
|
+
Connect: failed - connect failed: connect ECONNREFUSED 127.0.0.1:19031
|
|
24
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
|
|
2
|
+
│
|
|
3
|
+
◇ Doctor changes ──────────────────────────────╮
|
|
4
|
+
│ │
|
|
5
|
+
│ Telegram configured, enabled automatically. │
|
|
6
|
+
│ │
|
|
7
|
+
├───────────────────────────────────────────────╯
|
|
8
|
+
│
|
|
9
|
+
◇ Doctor ──────────────────────────────────────────────╮
|
|
10
|
+
│ │
|
|
11
|
+
│ Run "openclaw doctor --fix" to apply these changes. │
|
|
12
|
+
│ │
|
|
13
|
+
├───────────────────────────────────────────────────────╯
|
|
14
|
+
Service: LaunchAgent (not loaded)
|
|
15
|
+
File logs: /tmp/openclaw/openclaw-2026-03-16.log
|
|
16
|
+
|
|
17
|
+
Config (cli): $OPENCLAW_HOME/openclaw.json
|
|
18
|
+
Config (service): $OPENCLAW_HOME/openclaw.json
|
|
19
|
+
|
|
20
|
+
Gateway: bind=loopback (127.0.0.1), port=19031 (env/config)
|
|
21
|
+
Probe target: ws://127.0.0.1:19031
|
|
22
|
+
Dashboard: http://127.0.0.1:19031/
|
|
23
|
+
Probe note: Loopback-only gateway; only local clients can connect.
|
|
24
|
+
|
|
25
|
+
Runtime: unknown (Bad request.
|
|
26
|
+
Could not find service "ai.openclaw.gateway" in domain for user gui: 501)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
Troubles: run openclaw status
|
|
31
|
+
Troubleshooting: https://docs.openclaw.ai/troubleshooting
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "node",
|
|
3
|
+
"args": [
|
|
4
|
+
"bin/openclawbrain.js",
|
|
5
|
+
"init",
|
|
6
|
+
"/Users/cormorantai/.openclaw-ocbphase1/workspace-fixture"
|
|
7
|
+
],
|
|
8
|
+
"cwd": "/Users/cormorantai/openclawbrain",
|
|
9
|
+
"exitCode": 0,
|
|
10
|
+
"signal": null,
|
|
11
|
+
"ok": true,
|
|
12
|
+
"stdout": "{\n \"command\": \"init\",\n \"workspaceRoot\": \"/Users/cormorantai/.openclaw-ocbphase1/workspace-fixture\",\n \"summary\": \"Brain initialized: 3 nodes (3 chunk), 4 edges\",\n \"packVersion\": 6\n}\n",
|
|
13
|
+
"stderr": "[brain] Discovering sources...\n[brain] Found 2 sources\n[brain] Created 3 chunks\n[brain] Computing embeddings...\n[brain] Embedded 3/3 nodes\n[brain] Created 4 edges (2 sibling, 2 semantic)\n[brain] Brain initialized: 3 nodes (3 chunk), 4 edges\n",
|
|
14
|
+
"error": null
|
|
15
|
+
}
|