@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
|
@@ -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/4ccd71a22418b9170128b8d948f5a95801a10380/config-snapshot.json
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"gitSha": "4ccd71a22418b9170128b8d948f5a95801a10380",
|
|
3
|
+
"artifactDir": "/Users/cormorantai/openclawbrain/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380",
|
|
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:43:15.788Z"
|
|
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:43:15.781Z"
|
|
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\": 12\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
|
+
}
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
## openclaw status --all
|
|
2
|
+
|
|
3
|
+
[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
|
|
4
|
+
[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
|
|
5
|
+
OpenClaw status --all
|
|
6
|
+
|
|
7
|
+
Overview
|
|
8
|
+
┌─────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
9
|
+
│ Item │ Value │
|
|
10
|
+
├─────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
|
|
11
|
+
│ Version │ 2026.3.13 │
|
|
12
|
+
│ OS │ macos 26.3 (arm64) │
|
|
13
|
+
│ Node │ 22.22.0 │
|
|
14
|
+
│ Config │ $OPENCLAW_HOME/openclaw.json │
|
|
15
|
+
│ Dashboard │ http://127.0.0.1:19031/ │
|
|
16
|
+
│ Tailscale │ off · Running · cormorantais-mac-mini.tail499c70.ts.net │
|
|
17
|
+
│ Channel │ dev (main) │
|
|
18
|
+
│ Git │ main · @ 66e02b29 │
|
|
19
|
+
│ Update │ git main · ↔ origin/main · behind 618 · npm latest 2026.3.13 · deps ok │
|
|
20
|
+
│ Gateway │ local · ws://127.0.0.1:19031 (local loopback) · unreachable (connect failed: connect ECONNREFUSED │
|
|
21
|
+
│ │ 127.0.0.1:19031) │
|
|
22
|
+
│ Security │ Run: openclaw security audit --deep │
|
|
23
|
+
│ Gateway self │ unknown │
|
|
24
|
+
│ Gateway service │ LaunchAgent not installed │
|
|
25
|
+
│ Node service │ LaunchAgent not installed │
|
|
26
|
+
│ Agents │ 1 total · 0 bootstrapping · 1 active · 1 sessions │
|
|
27
|
+
└─────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
28
|
+
|
|
29
|
+
Channels
|
|
30
|
+
┌──────────┬─────────┬────────┬────────────────────────────────────────────────────────────────────────────────────────┐
|
|
31
|
+
│ Channel │ Enabled │ State │ Detail │
|
|
32
|
+
├──────────┼─────────┼────────┼────────────────────────────────────────────────────────────────────────────────────────┤
|
|
33
|
+
└──────────┴─────────┴────────┴────────────────────────────────────────────────────────────────────────────────────────┘
|
|
34
|
+
|
|
35
|
+
Agents
|
|
36
|
+
┌────────────┬────────────────┬──────────┬──────────┬──────────────────────────────────────────────────────────────────┐
|
|
37
|
+
│ Agent │ Bootstrap file │ Sessions │ Active │ Store │
|
|
38
|
+
├────────────┼────────────────┼──────────┼──────────┼──────────────────────────────────────────────────────────────────┤
|
|
39
|
+
│ main │ ABSENT │ 1 │ 1m ago │ $OPENCLAW_HOME/agents/main/sessions/sessions.json │
|
|
40
|
+
└────────────┴────────────────┴──────────┴──────────┴──────────────────────────────────────────────────────────────────┘
|
|
41
|
+
|
|
42
|
+
Diagnosis (read-only)
|
|
43
|
+
|
|
44
|
+
Gateway connection details:
|
|
45
|
+
Gateway target: ws://127.0.0.1:19031
|
|
46
|
+
Source: local loopback
|
|
47
|
+
Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
|
|
48
|
+
Bind: loopback
|
|
49
|
+
|
|
50
|
+
✓ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
|
|
51
|
+
✓ Restart sentinel: none
|
|
52
|
+
✓ Port 19031
|
|
53
|
+
✓ Tailscale: off · Running · cormorantais-mac-mini.tail499c70.ts.net
|
|
54
|
+
ips: 100.73.247.26, fd7a:115c:a1e0::e932:f71a
|
|
55
|
+
✓ Skills: 9 eligible · 0 missing · /Users/cormorantai/.openclaw-ocbphase1/workspace-fixture
|
|
56
|
+
! Channel issues skipped (gateway unreachable)
|
|
57
|
+
|
|
58
|
+
Gateway health:
|
|
59
|
+
connect failed: connect ECONNREFUSED 127.0.0.1:19031
|
|
60
|
+
|
|
61
|
+
Pasteable debug report. Auth tokens redacted.
|
|
62
|
+
Troubleshooting: https://docs.openclaw.ai/troubleshooting
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
[stderr]
|
|
67
|
+
[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.
|
|
68
|
+
[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.
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
## openclaw gateway probe
|
|
73
|
+
|
|
74
|
+
[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
|
|
75
|
+
│
|
|
76
|
+
◇ Doctor changes ──────────────────────────────╮
|
|
77
|
+
│ │
|
|
78
|
+
│ Telegram configured, enabled automatically. │
|
|
79
|
+
│ │
|
|
80
|
+
├───────────────────────────────────────────────╯
|
|
81
|
+
│
|
|
82
|
+
◇ Doctor ──────────────────────────────────────────────╮
|
|
83
|
+
│ │
|
|
84
|
+
│ Run "openclaw doctor --fix" to apply these changes. │
|
|
85
|
+
│ │
|
|
86
|
+
├───────────────────────────────────────────────────────╯
|
|
87
|
+
Gateway Status
|
|
88
|
+
Reachable: no
|
|
89
|
+
Probe budget: 3000ms
|
|
90
|
+
|
|
91
|
+
Discovery (this machine)
|
|
92
|
+
Found 4 gateway(s) via Bonjour (local.)
|
|
93
|
+
|
|
94
|
+
Targets
|
|
95
|
+
Local loopback ws://127.0.0.1:19031
|
|
96
|
+
Connect: failed - connect failed: connect ECONNREFUSED 127.0.0.1:19031
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
[stderr]
|
|
101
|
+
[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.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
## openclaw gateway status
|
|
106
|
+
|
|
107
|
+
[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
|
|
108
|
+
│
|
|
109
|
+
◇ Doctor changes ──────────────────────────────╮
|
|
110
|
+
│ │
|
|
111
|
+
│ Telegram configured, enabled automatically. │
|
|
112
|
+
│ │
|
|
113
|
+
├───────────────────────────────────────────────╯
|
|
114
|
+
│
|
|
115
|
+
◇ Doctor ──────────────────────────────────────────────╮
|
|
116
|
+
│ │
|
|
117
|
+
│ Run "openclaw doctor --fix" to apply these changes. │
|
|
118
|
+
│ │
|
|
119
|
+
├───────────────────────────────────────────────────────╯
|
|
120
|
+
Service: LaunchAgent (not loaded)
|
|
121
|
+
File logs: /tmp/openclaw/openclaw-2026-03-16.log
|
|
122
|
+
|
|
123
|
+
Config (cli): $OPENCLAW_HOME/openclaw.json
|
|
124
|
+
Config (service): $OPENCLAW_HOME/openclaw.json
|
|
125
|
+
|
|
126
|
+
Gateway: bind=loopback (127.0.0.1), port=19031 (env/config)
|
|
127
|
+
Probe target: ws://127.0.0.1:19031
|
|
128
|
+
Dashboard: http://127.0.0.1:19031/
|
|
129
|
+
Probe note: Loopback-only gateway; only local clients can connect.
|
|
130
|
+
|
|
131
|
+
Runtime: unknown (Bad request.
|
|
132
|
+
Could not find service "ai.openclaw.gateway" in domain for user gui: 501)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
Troubles: run openclaw status
|
|
137
|
+
Troubleshooting: https://docs.openclaw.ai/troubleshooting
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
[stderr]
|
|
141
|
+
[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.
|
|
142
|
+
Service config looks out of date or non-standard.
|
|
143
|
+
Service config issue: Gateway service PATH is not set; the daemon should use a minimal PATH.
|
|
144
|
+
Recommendation: run "openclaw doctor" (or "openclaw doctor --repair").
|
|
145
|
+
RPC probe: failed
|
|
146
|
+
RPC target: ws://127.0.0.1:19031
|
|
147
|
+
gateway url override requires explicit credentials
|
|
148
|
+
Fix: pass --token or --password (or gatewayToken in tools).
|
|
149
|
+
Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
|
|
150
|
+
Service unit not found.
|
|
151
|
+
Service not installed. Run: openclaw gateway install
|
|
152
|
+
File logs: /tmp/openclaw/openclaw-2026-03-16.log
|
|
153
|
+
Other gateway-like services detected (best effort):
|
|
154
|
+
- com.openclawbrain.daemon.activation.0ec88212fa7d (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.0ec88212fa7d.plist)
|
|
155
|
+
- com.openclawbrain.daemon.activation.546e84bf06ac (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.546e84bf06ac.plist)
|
|
156
|
+
- com.openclawbrain.daemon.activation.b3eeb450ca08 (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.b3eeb450ca08.plist)
|
|
157
|
+
Cleanup hint: launchctl bootout gui/$UID/ai.openclaw.gateway
|
|
158
|
+
Cleanup hint: rm ~/Library/LaunchAgents/ai.openclaw.gateway.plist
|
|
159
|
+
Recommendation: run a single gateway per machine for most setups. One gateway supports multiple agents (see docs: /gateway#multiple-gateways-same-host).
|
|
160
|
+
If you need multiple gateways (e.g., a rescue bot on the same host), isolate ports + config/state (see docs: /gateway#multiple-gateways-same-host).
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
## openclaw doctor --non-interactive
|
|
165
|
+
|
|
166
|
+
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
167
|
+
██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██
|
|
168
|
+
██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██
|
|
169
|
+
██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██
|
|
170
|
+
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
|
171
|
+
🦞 OPENCLAW 🦞
|
|
172
|
+
|
|
173
|
+
┌ OpenClaw doctor
|
|
174
|
+
[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
|
|
175
|
+
│
|
|
176
|
+
◇ Install ─────────────────────────────────────────────────────────╮
|
|
177
|
+
│ │
|
|
178
|
+
│ - package-lock.json present in a pnpm workspace. If you ran npm │
|
|
179
|
+
│ install, remove it and reinstall with pnpm. │
|
|
180
|
+
│ │
|
|
181
|
+
├───────────────────────────────────────────────────────────────────╯
|
|
182
|
+
│
|
|
183
|
+
◇ Doctor changes ──────────────────────────────╮
|
|
184
|
+
│ │
|
|
185
|
+
│ Telegram configured, enabled automatically. │
|
|
186
|
+
│ │
|
|
187
|
+
├───────────────────────────────────────────────╯
|
|
188
|
+
│
|
|
189
|
+
◇ Doctor ──────────────────────────────────────────────╮
|
|
190
|
+
│ │
|
|
191
|
+
│ Run "openclaw doctor --fix" to apply these changes. │
|
|
192
|
+
│ │
|
|
193
|
+
├───────────────────────────────────────────────────────╯
|
|
194
|
+
│
|
|
195
|
+
◇ Gateway auth ──────────────────────────────────────────────────╮
|
|
196
|
+
│ │
|
|
197
|
+
│ Gateway auth is off or missing a token. Token auth is now the │
|
|
198
|
+
│ recommended default (including loopback). │
|
|
199
|
+
│ │
|
|
200
|
+
├─────────────────────────────────────────────────────────────────╯
|
|
201
|
+
│
|
|
202
|
+
◇ State integrity ────────────────────────────────────────────────────────╮
|
|
203
|
+
│ │
|
|
204
|
+
│ - OAuth dir not present ($OPENCLAW_HOME/credentials). Skipping create │
|
|
205
|
+
│ because no WhatsApp/pairing channel config is active. │
|
|
206
|
+
│ - Multiple state directories detected. This can split session history. │
|
|
207
|
+
│ - /Users/cormorantai/.openclaw │
|
|
208
|
+
│ Active state dir: $OPENCLAW_HOME │
|
|
209
|
+
│ │
|
|
210
|
+
├──────────────────────────────────────────────────────────────────────────╯
|
|
211
|
+
│
|
|
212
|
+
◇ Other gateway-like services detected ───────────────────────────────────────╮
|
|
213
|
+
│ │
|
|
214
|
+
│ - com.openclawbrain.daemon.activation.0ec88212fa7d (user, plist: │
|
|
215
|
+
│ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │
|
|
216
|
+
│ ion.0ec88212fa7d.plist) │
|
|
217
|
+
│ - com.openclawbrain.daemon.activation.546e84bf06ac (user, plist: │
|
|
218
|
+
│ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │
|
|
219
|
+
│ ion.546e84bf06ac.plist) │
|
|
220
|
+
│ - com.openclawbrain.daemon.activation.b3eeb450ca08 (user, plist: │
|
|
221
|
+
│ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │
|
|
222
|
+
│ ion.b3eeb450ca08.plist) │
|
|
223
|
+
│ │
|
|
224
|
+
├──────────────────────────────────────────────────────────────────────────────╯
|
|
225
|
+
│
|
|
226
|
+
◇ Cleanup hints ─────────────────────────────────────────╮
|
|
227
|
+
│ │
|
|
228
|
+
│ - launchctl bootout gui/$UID/ai.openclaw.gateway │
|
|
229
|
+
│ - rm ~/Library/LaunchAgents/ai.openclaw.gateway.plist │
|
|
230
|
+
│ │
|
|
231
|
+
├─────────────────────────────────────────────────────────╯
|
|
232
|
+
│
|
|
233
|
+
◇ Gateway recommendation ───────────────────────────────────────────────╮
|
|
234
|
+
│ │
|
|
235
|
+
│ Recommendation: run a single gateway per machine for most setups. │
|
|
236
|
+
│ One gateway supports multiple agents. │
|
|
237
|
+
│ If you need multiple gateways (e.g., a rescue bot on the same host), │
|
|
238
|
+
│ isolate ports + config/state (see docs: │
|
|
239
|
+
│ /gateway#multiple-gateways-same-host). │
|
|
240
|
+
│ │
|
|
241
|
+
├────────────────────────────────────────────────────────────────────────╯
|
|
242
|
+
│
|
|
243
|
+
◇ Security ─────────────────────────────────╮
|
|
244
|
+
│ │
|
|
245
|
+
│ - No channel security warnings detected. │
|
|
246
|
+
│ - Run: openclaw security audit --deep │
|
|
247
|
+
│ │
|
|
248
|
+
├────────────────────────────────────────────╯
|
|
249
|
+
│
|
|
250
|
+
◇ Skills status ────────────╮
|
|
251
|
+
│ │
|
|
252
|
+
│ Eligible: 9 │
|
|
253
|
+
│ Missing requirements: 43 │
|
|
254
|
+
│ Blocked by allowlist: 0 │
|
|
255
|
+
│ │
|
|
256
|
+
├────────────────────────────╯
|
|
257
|
+
│
|
|
258
|
+
◇ Plugins ──────╮
|
|
259
|
+
│ │
|
|
260
|
+
│ Loaded: 8 │
|
|
261
|
+
│ Disabled: 34 │
|
|
262
|
+
│ Errors: 0 │
|
|
263
|
+
│ │
|
|
264
|
+
├────────────────╯
|
|
265
|
+
│
|
|
266
|
+
◇ Gateway ──────────────╮
|
|
267
|
+
│ │
|
|
268
|
+
│ Gateway not running. │
|
|
269
|
+
│ │
|
|
270
|
+
├────────────────────────╯
|
|
271
|
+
│
|
|
272
|
+
◇ Gateway connection ───────────────────────────────────────────╮
|
|
273
|
+
│ │
|
|
274
|
+
│ Gateway target: ws://127.0.0.1:19031 │
|
|
275
|
+
│ Source: local loopback │
|
|
276
|
+
│ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json │
|
|
277
|
+
│ Bind: loopback │
|
|
278
|
+
│ │
|
|
279
|
+
├────────────────────────────────────────────────────────────────╯
|
|
280
|
+
│
|
|
281
|
+
◇ Gateway ────────────────────────╮
|
|
282
|
+
│ │
|
|
283
|
+
│ Gateway service not installed. │
|
|
284
|
+
│ │
|
|
285
|
+
├──────────────────────────────────╯
|
|
286
|
+
Run "openclaw doctor --fix" to apply changes.
|
|
287
|
+
│
|
|
288
|
+
└ Doctor complete.
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
[stderr]
|
|
293
|
+
[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.
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
## openclaw channels status --probe
|
|
298
|
+
|
|
299
|
+
[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
|
|
300
|
+
│
|
|
301
|
+
◇ Doctor changes ──────────────────────────────╮
|
|
302
|
+
│ │
|
|
303
|
+
│ Telegram configured, enabled automatically. │
|
|
304
|
+
│ │
|
|
305
|
+
├───────────────────────────────────────────────╯
|
|
306
|
+
│
|
|
307
|
+
◇ Doctor ──────────────────────────────────────────────╮
|
|
308
|
+
│ │
|
|
309
|
+
│ Run "openclaw doctor --fix" to apply these changes. │
|
|
310
|
+
│ │
|
|
311
|
+
├───────────────────────────────────────────────────────╯
|
|
312
|
+
Checking channel status (probe)…
|
|
313
|
+
Gateway not reachable; showing config-only status.
|
|
314
|
+
Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
|
|
315
|
+
Mode: local
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
Tip: https://docs.openclaw.ai/cli#status adds gateway health probes to status output (requires a reachable gateway).
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
[stderr]
|
|
322
|
+
[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.
|
|
323
|
+
Gateway not reachable: Error: gateway closed (1006 abnormal closure (no close frame)): no close reason
|
|
324
|
+
Gateway target: ws://127.0.0.1:19031
|
|
325
|
+
Source: local loopback
|
|
326
|
+
Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
|
|
327
|
+
Bind: loopback
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
## file:/Users/cormorantai/.openclaw-ocbphase1/logs/config-audit.jsonl
|
|
332
|
+
|
|
333
|
+
{"ts":"2026-03-16T04:04:15.354Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":68382,"ppid":68381,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":false,"previousHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","nextHash":"91f275980114a67741b7f7e76c22409dada3581a5c8b0d901465ee80897e5d3e","previousBytes":null,"nextBytes":693,"changedPathCount":null,"hasMetaBefore":false,"hasMetaAfter":true,"gatewayModeBefore":null,"gatewayModeAfter":null,"suspicious":[],"result":"rename"}
|
|
334
|
+
{"ts":"2026-03-16T04:05:42.764Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":68908,"ppid":68907,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"21f78c45f162e963520a409452bec17e90ecf01601f27cee9a9c80ac60fbf559","nextHash":"755ca625612a011a5343ba5340d2d861956ed45ab6405c64bb7ce8d0ff7bbb0b","previousBytes":983,"nextBytes":1042,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
335
|
+
{"ts":"2026-03-16T04:24:19.356Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":75699,"ppid":75698,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"755ca625612a011a5343ba5340d2d861956ed45ab6405c64bb7ce8d0ff7bbb0b","nextHash":"b84565773eb916660b513c133b04e179654e5db8162c8005ae2033564a9983f1","previousBytes":1042,"nextBytes":1042,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
336
|
+
{"ts":"2026-03-16T08:50:19.843Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":46503,"ppid":46502,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"5f67da851cc11886db6edfad4dea3a7e98328ded0336b228995b7c53d6275f69","nextHash":"8e2fea8982b2c60a699277c064b8905e69b25d649a8b46d427f5e8b710edf837","previousBytes":1737,"nextBytes":1737,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
337
|
+
{"ts":"2026-03-16T08:55:33.959Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":48474,"ppid":48473,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"4e6005203d622e121c9f603884affb7d26f21e67309e691df6e12f11209ecbf9","nextHash":"5fc30857e6d339aa3a1ea454559ec50427df93660c9a415546e96ae1f0175c0c","previousBytes":1693,"nextBytes":1693,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
338
|
+
{"ts":"2026-03-16T11:33:31.029Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":90752,"ppid":90751,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"5fc30857e6d339aa3a1ea454559ec50427df93660c9a415546e96ae1f0175c0c","nextHash":"14083e3ec990ab864f7f9182a3b7a23df5a9cca5976dfe70b52d25aa461396c4","previousBytes":1693,"nextBytes":1693,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
339
|
+
{"ts":"2026-03-16T11:45:54.906Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":94719,"ppid":94718,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"14083e3ec990ab864f7f9182a3b7a23df5a9cca5976dfe70b52d25aa461396c4","nextHash":"6be073d7a792a059818194b828a76fd92210d2d15fd7900aebe5c809545d572f","previousBytes":1693,"nextBytes":1693,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
340
|
+
{"ts":"2026-03-16T11:49:07.300Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":95707,"ppid":95706,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"56b2a60a67d23a24efcea84bd9f14160e21674749bd9bad526ebbac76bdfc66a","nextHash":"d000ea8b43aa3de7a87970304fd47a9c1ef5c39e788d9327f63a59dfdf87cb4e","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
341
|
+
{"ts":"2026-03-16T15:23:45.483Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":51626,"ppid":51625,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"d000ea8b43aa3de7a87970304fd47a9c1ef5c39e788d9327f63a59dfdf87cb4e","nextHash":"c1e9c0f88699ec6f83b25e55bd97dc7d01de08c4e32c6a381e8a3aad5c301ca1","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
342
|
+
{"ts":"2026-03-16T15:34:41.982Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":54749,"ppid":54748,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"c1e9c0f88699ec6f83b25e55bd97dc7d01de08c4e32c6a381e8a3aad5c301ca1","nextHash":"8a1bc60fee2dbea652a63c64054345a1d2fd6f0b166b7cc85e69800b5301998d","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
343
|
+
{"ts":"2026-03-16T15:36:35.162Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":55336,"ppid":55335,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"8a1bc60fee2dbea652a63c64054345a1d2fd6f0b166b7cc85e69800b5301998d","nextHash":"9374c216e4bc0a9e4c848ebde081c17c7473fd789b27f88ed7c88e3f88eed90a","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
344
|
+
{"ts":"2026-03-16T15:37:54.836Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":55995,"ppid":55994,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"9374c216e4bc0a9e4c848ebde081c17c7473fd789b27f88ed7c88e3f88eed90a","nextHash":"0cb3c14bdc3b214c4efa543532c311f0f9888ee3c63144f6ca3f35ca6daf6abe","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
345
|
+
{"ts":"2026-03-16T15:40:39.301Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":56839,"ppid":56837,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"0cb3c14bdc3b214c4efa543532c311f0f9888ee3c63144f6ca3f35ca6daf6abe","nextHash":"0583afea64b291e67d6a111f11c75914660d8660c6a28ad556f954415401522a","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
346
|
+
{"ts":"2026-03-16T15:43:15.788Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":57902,"ppid":57901,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"0583afea64b291e67d6a111f11c75914660d8660c6a28ad556f954415401522a","nextHash":"ea336bd83d2ec2c7062326bb27353f86e371eb075a3fa5dea37b0f7614b4944e","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
## file:/Users/cormorantai/.openclaw-ocbphase1/validation-records/validation-assemble.jsonl
|
|
351
|
+
|
|
352
|
+
{"at":1773635202790,"sessionId":"475abd74-ed4f-4334-a896-8ffd7d81eec7","conversationId":1,"queryText":"open PLAYBOOK.md","mode":"skip_short_static_lookup","footer":"[brain] bypassed: short static lookup.","traceId":null,"episodeId":null,"tokenBudget":262144}
|
|
353
|
+
{"at":1773635212771,"sessionId":"475abd74-ed4f-4334-a896-8ffd7d81eec7","conversationId":1,"queryText":"How do I open a pull request again?","mode":"use_brain","footer":"Brain · 1 seeds · start bn_40502fac-df0 · 4 hops · 4 fired · 0 veto · 391 chars","traceId":"bt_c79a93d6","episodeId":"be_5a29c9cf-99b","tokenBudget":262144}
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
## file:/Users/cormorantai/.openclaw-ocbphase1/validation-records/validation-assemble.jsonl
|
|
358
|
+
|
|
359
|
+
{"at":1773635202790,"sessionId":"475abd74-ed4f-4334-a896-8ffd7d81eec7","conversationId":1,"queryText":"open PLAYBOOK.md","mode":"skip_short_static_lookup","footer":"[brain] bypassed: short static lookup.","traceId":null,"episodeId":null,"tokenBudget":262144}
|
|
360
|
+
{"at":1773635212771,"sessionId":"475abd74-ed4f-4334-a896-8ffd7d81eec7","conversationId":1,"queryText":"How do I open a pull request again?","mode":"use_brain","footer":"Brain · 1 seeds · start bn_40502fac-df0 · 4 hops · 4 fired · 0 veto · 391 chars","traceId":"bt_c79a93d6","episodeId":"be_5a29c9cf-99b","tokenBudget":262144}
|
|
361
|
+
|
|
362
|
+
|