@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.
Files changed (56) hide show
  1. package/README.md +140 -290
  2. package/docs/END_STATE.md +106 -94
  3. package/docs/EVIDENCE.md +71 -23
  4. package/docs/RELEASE_CONTRACT.md +46 -32
  5. package/docs/agent-tools.md +65 -34
  6. package/docs/architecture.md +128 -142
  7. package/docs/configuration.md +62 -25
  8. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/channels-status.txt +20 -0
  9. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/config-snapshot.json +94 -0
  10. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/doctor.json +14 -0
  11. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/gateway-probe.txt +24 -0
  12. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/gateway-status.txt +31 -0
  13. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/init-capture.json +15 -0
  14. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/logs.txt +357 -0
  15. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/status-all.txt +61 -0
  16. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/status.json +275 -0
  17. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/summary.md +18 -0
  18. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/trace.json +222 -0
  19. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/validation-report.json +1515 -0
  20. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/workspace-inventory.json +4 -0
  21. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/channels-status.txt +20 -0
  22. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/config-snapshot.json +94 -0
  23. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/doctor.json +14 -0
  24. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/gateway-probe.txt +24 -0
  25. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/gateway-status.txt +31 -0
  26. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/init-capture.json +15 -0
  27. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/logs.txt +362 -0
  28. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/status-all.txt +61 -0
  29. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/status.json +275 -0
  30. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/summary.md +21 -0
  31. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/trace.json +222 -0
  32. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/validation-report.json +4400 -0
  33. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/workspace-inventory.json +4 -0
  34. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/channels-status.txt +31 -0
  35. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/config-snapshot.json +94 -0
  36. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/doctor.json +14 -0
  37. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/gateway-probe.txt +34 -0
  38. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/gateway-status.txt +41 -0
  39. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/logs.txt +441 -0
  40. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/status-all.txt +60 -0
  41. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/status.json +276 -0
  42. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/summary.md +13 -0
  43. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/trace.json +4 -0
  44. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/validation-report.json +387 -0
  45. package/docs/tui.md +11 -4
  46. package/index.ts +194 -1
  47. package/package.json +1 -1
  48. package/src/brain-cli.ts +12 -1
  49. package/src/brain-harvest/scanner.ts +286 -16
  50. package/src/brain-harvest/self.ts +134 -6
  51. package/src/brain-runtime/evidence-detectors.ts +3 -1
  52. package/src/brain-runtime/harvester-extension.ts +3 -0
  53. package/src/brain-runtime/service.ts +2 -0
  54. package/src/brain-store/embedding.ts +29 -8
  55. package/src/brain-worker/worker.ts +40 -0
  56. package/src/engine.ts +1 -0
@@ -2,20 +2,29 @@
2
2
 
3
3
  This guide covers the practical operator setup for **OpenClawBrain v2**.
4
4
 
5
- For repo truth, read:
5
+ If you want the repo's exact truth contract first, read:
6
6
  - `README.md`
7
7
  - `docs/RELEASE_CONTRACT.md`
8
- - `docs/END_STATE.md`
8
+ - `docs/EVIDENCE.md`
9
9
 
10
- ## Quick start
10
+ ## Happy-path operator flow
11
11
 
12
- Install the plugin with OpenClaw's plugin installer:
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
- If you're running from a local OpenClaw checkout:
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
- `openclaw plugins install` handles plugin registration, enabling, and compatible slot selection automatically.
39
+ The plugin installer is the supported install boundary.
31
40
 
32
- ## Context engine slot
41
+ ## Important host-seam truth
33
42
 
34
- If you must set it manually, point the context engine slot at `openclawbrain`:
43
+ On current OpenClaw hosts, **do not manually write** `plugins.slots.contextEngine` for OpenClawBrain.
35
44
 
36
- ```json
37
- {
38
- "plugins": {
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
- This defaults to `http://127.0.0.1:11434/v1`.
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, provide `OPENCLAWBRAIN_EMBEDDING_API_KEY`.
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 explicit auth for remote embedding endpoints |
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
- node scripts/validate-brain-runtime-behavior.ts
180
+ pnpm exec tsx scripts/validate-brain-runtime-behavior.ts
163
181
  ```
164
182
 
165
- Disposable host-surface harness:
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).
@@ -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
+ }