@jonathangu/openclawbrain 0.3.0

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 (113) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +412 -0
  3. package/bin/openclawbrain.js +15 -0
  4. package/docs/END_STATE.md +244 -0
  5. package/docs/EVIDENCE.md +128 -0
  6. package/docs/RELEASE_CONTRACT.md +91 -0
  7. package/docs/agent-tools.md +106 -0
  8. package/docs/architecture.md +224 -0
  9. package/docs/configuration.md +178 -0
  10. package/docs/evidence/2026-03-16/3188b50c4ed30f07dea111e35ce52aabefaced63/brain-teach-session-bound/status.json +87 -0
  11. package/docs/evidence/2026-03-16/3188b50c4ed30f07dea111e35ce52aabefaced63/brain-teach-session-bound/summary.md +16 -0
  12. package/docs/evidence/2026-03-16/3188b50c4ed30f07dea111e35ce52aabefaced63/brain-teach-session-bound/trace.json +273 -0
  13. package/docs/evidence/2026-03-16/3188b50c4ed30f07dea111e35ce52aabefaced63/brain-teach-session-bound/validation-report.json +652 -0
  14. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/channels-status.txt +31 -0
  15. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/config-snapshot.json +66 -0
  16. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/doctor.json +14 -0
  17. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/gateway-probe.txt +34 -0
  18. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/gateway-status.txt +41 -0
  19. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/logs.txt +428 -0
  20. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/status-all.txt +60 -0
  21. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/status.json +223 -0
  22. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/summary.md +13 -0
  23. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/trace.json +4 -0
  24. package/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031/validation-report.json +334 -0
  25. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/channels-status.txt +25 -0
  26. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/config-snapshot.json +91 -0
  27. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/doctor.json +14 -0
  28. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/gateway-probe.txt +36 -0
  29. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/gateway-status.txt +44 -0
  30. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/logs.txt +428 -0
  31. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/short-static-classification/preflight-doctor.json +10 -0
  32. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/short-static-classification/preflight-sdk-probe.json +11 -0
  33. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/short-static-classification/preflight-setup-only.json +12 -0
  34. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/short-static-classification/summary.md +30 -0
  35. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/short-static-classification/validation-report.json +72 -0
  36. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/status-all.txt +63 -0
  37. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/status.json +200 -0
  38. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/summary.md +13 -0
  39. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/trace.json +4 -0
  40. package/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/validation-report.json +311 -0
  41. package/docs/evidence/README.md +16 -0
  42. package/docs/fts5.md +161 -0
  43. package/docs/tui.md +506 -0
  44. package/index.ts +1372 -0
  45. package/openclaw.plugin.json +136 -0
  46. package/package.json +66 -0
  47. package/src/assembler.ts +804 -0
  48. package/src/brain-cli.ts +316 -0
  49. package/src/brain-core/decay.ts +35 -0
  50. package/src/brain-core/episode.ts +82 -0
  51. package/src/brain-core/graph.ts +321 -0
  52. package/src/brain-core/health.ts +116 -0
  53. package/src/brain-core/mutator.ts +281 -0
  54. package/src/brain-core/pack.ts +117 -0
  55. package/src/brain-core/policy.ts +153 -0
  56. package/src/brain-core/replay.ts +1 -0
  57. package/src/brain-core/teacher.ts +105 -0
  58. package/src/brain-core/trace.ts +40 -0
  59. package/src/brain-core/traverse.ts +230 -0
  60. package/src/brain-core/types.ts +405 -0
  61. package/src/brain-core/update.ts +123 -0
  62. package/src/brain-harvest/human.ts +46 -0
  63. package/src/brain-harvest/scanner.ts +98 -0
  64. package/src/brain-harvest/self.ts +147 -0
  65. package/src/brain-runtime/assembler-extension.ts +230 -0
  66. package/src/brain-runtime/evidence-detectors.ts +68 -0
  67. package/src/brain-runtime/graph-io.ts +72 -0
  68. package/src/brain-runtime/harvester-extension.ts +98 -0
  69. package/src/brain-runtime/service.ts +659 -0
  70. package/src/brain-runtime/tools.ts +109 -0
  71. package/src/brain-runtime/worker-state.ts +106 -0
  72. package/src/brain-runtime/worker-supervisor.ts +169 -0
  73. package/src/brain-store/embedding.ts +179 -0
  74. package/src/brain-store/init.ts +347 -0
  75. package/src/brain-store/migrations.ts +188 -0
  76. package/src/brain-store/store.ts +816 -0
  77. package/src/brain-worker/child-runner.ts +321 -0
  78. package/src/brain-worker/jobs.ts +12 -0
  79. package/src/brain-worker/mutation-job.ts +5 -0
  80. package/src/brain-worker/promotion-job.ts +5 -0
  81. package/src/brain-worker/protocol.ts +79 -0
  82. package/src/brain-worker/teacher-job.ts +5 -0
  83. package/src/brain-worker/update-job.ts +5 -0
  84. package/src/brain-worker/worker.ts +422 -0
  85. package/src/compaction.ts +1332 -0
  86. package/src/db/config.ts +265 -0
  87. package/src/db/connection.ts +72 -0
  88. package/src/db/features.ts +42 -0
  89. package/src/db/migration.ts +561 -0
  90. package/src/engine.ts +1995 -0
  91. package/src/expansion-auth.ts +351 -0
  92. package/src/expansion-policy.ts +303 -0
  93. package/src/expansion.ts +383 -0
  94. package/src/integrity.ts +600 -0
  95. package/src/large-files.ts +527 -0
  96. package/src/openclaw-bridge.ts +22 -0
  97. package/src/retrieval.ts +357 -0
  98. package/src/store/conversation-store.ts +748 -0
  99. package/src/store/fts5-sanitize.ts +29 -0
  100. package/src/store/full-text-fallback.ts +74 -0
  101. package/src/store/index.ts +29 -0
  102. package/src/store/summary-store.ts +918 -0
  103. package/src/summarize.ts +847 -0
  104. package/src/tools/common.ts +53 -0
  105. package/src/tools/lcm-conversation-scope.ts +76 -0
  106. package/src/tools/lcm-describe-tool.ts +234 -0
  107. package/src/tools/lcm-expand-query-tool.ts +594 -0
  108. package/src/tools/lcm-expand-tool.delegation.ts +556 -0
  109. package/src/tools/lcm-expand-tool.ts +448 -0
  110. package/src/tools/lcm-expansion-recursion-guard.ts +286 -0
  111. package/src/tools/lcm-grep-tool.ts +200 -0
  112. package/src/transcript-repair.ts +301 -0
  113. package/src/types.ts +149 -0
@@ -0,0 +1,60 @@
1
+ [plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
2
+ OpenClaw status --all
3
+
4
+ Overview
5
+ ┌─────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
6
+ │ Item │ Value │
7
+ ├─────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
8
+ │ Version │ 2026.3.13 │
9
+ │ OS │ macos 26.3 (arm64) │
10
+ │ Node │ 22.22.0 │
11
+ │ Config │ ~/.openclaw-ocbphase1/openclaw.json │
12
+ │ Dashboard │ http://127.0.0.1:19031/ │
13
+ │ Tailscale │ off · Running · cormorantais-mac-mini.tail499c70.ts.net │
14
+ │ Channel │ dev (main) │
15
+ │ Git │ main · @ 66e02b29 │
16
+ │ Update │ git main · ↔ origin/main · behind 338 · npm latest 2026.3.13 · deps stale │
17
+ │ Gateway │ local · ws://127.0.0.1:19031 (local loopback) · unreachable (connect failed: connect ECONNREFUSED │
18
+ │ │ 127.0.0.1:19031) │
19
+ │ Security │ Run: openclaw security audit --deep │
20
+ │ Gateway self │ unknown │
21
+ │ Gateway service │ LaunchAgent not installed │
22
+ │ Node service │ LaunchAgent not installed │
23
+ │ Agents │ 1 total · 0 bootstrapping · 0 active · 0 sessions │
24
+ └─────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
25
+
26
+ Channels
27
+ ┌──────────┬─────────┬────────┬────────────────────────────────────────────────────────────────────────────────────────┐
28
+ │ Channel │ Enabled │ State │ Detail │
29
+ ├──────────┼─────────┼────────┼────────────────────────────────────────────────────────────────────────────────────────┤
30
+ └──────────┴─────────┴────────┴────────────────────────────────────────────────────────────────────────────────────────┘
31
+
32
+ Agents
33
+ ┌────────────┬────────────────┬──────────┬──────────┬──────────────────────────────────────────────────────────────────┐
34
+ │ Agent │ Bootstrap file │ Sessions │ Active │ Store │
35
+ ├────────────┼────────────────┼──────────┼──────────┼──────────────────────────────────────────────────────────────────┤
36
+ │ main │ ABSENT │ 0 │ unknown │ ~/.openclaw-ocbphase1/agents/main/sessions/sessions.json │
37
+ └────────────┴────────────────┴──────────┴──────────┴──────────────────────────────────────────────────────────────────┘
38
+
39
+ Diagnosis (read-only)
40
+
41
+ Gateway connection details:
42
+ Gateway target: ws://127.0.0.1:19031
43
+ Source: local loopback
44
+ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
45
+ Bind: loopback
46
+
47
+ ✓ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
48
+ ✓ Restart sentinel: none
49
+ ✓ Port 19031
50
+ ✓ Tailscale: off · Running · cormorantais-mac-mini.tail499c70.ts.net
51
+ ips: 100.73.247.26, fd7a:115c:a1e0::e932:f71a
52
+ ✓ Skills: 9 eligible · 0 missing · /Users/cormorantai/.openclaw/workspace-ocbphase1
53
+ ! Channel issues skipped (gateway unreachable)
54
+
55
+ Gateway health:
56
+ connect failed: connect ECONNREFUSED 127.0.0.1:19031
57
+
58
+ Pasteable debug report. Auth tokens redacted.
59
+ Troubleshooting: https://docs.openclaw.ai/troubleshooting
60
+
@@ -0,0 +1,223 @@
1
+ {
2
+ "command": "openclaw",
3
+ "args": [
4
+ "status",
5
+ "--json",
6
+ "--timeout",
7
+ "10000"
8
+ ],
9
+ "cwd": "/Users/cormorantai/openclawbrain",
10
+ "exitCode": 0,
11
+ "signal": null,
12
+ "ok": true,
13
+ "stdout": "[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)\n{\n \"runtimeVersion\": \"2026.3.13\",\n \"heartbeat\": {\n \"defaultAgentId\": \"main\",\n \"agents\": [\n {\n \"agentId\": \"main\",\n \"enabled\": true,\n \"every\": \"30m\",\n \"everyMs\": 1800000\n }\n ]\n },\n \"channelSummary\": [],\n \"queuedSystemEvents\": [],\n \"sessions\": {\n \"paths\": [\n \"/Users/cormorantai/.openclaw-ocbphase1/agents/main/sessions/sessions.json\"\n ],\n \"count\": 0,\n \"defaults\": {\n \"model\": \"claude-opus-4-6\",\n \"contextTokens\": 200000\n },\n \"recent\": [],\n \"byAgent\": [\n {\n \"agentId\": \"main\",\n \"path\": \"/Users/cormorantai/.openclaw-ocbphase1/agents/main/sessions/sessions.json\",\n \"count\": 0,\n \"recent\": []\n }\n ]\n },\n \"os\": {\n \"platform\": \"darwin\",\n \"arch\": \"arm64\",\n \"release\": \"25.3.0\",\n \"label\": \"macos 26.3 (arm64)\"\n },\n \"update\": {\n \"root\": \"/Users/cormorantai/opencormorant\",\n \"installKind\": \"git\",\n \"packageManager\": \"pnpm\",\n \"git\": {\n \"root\": \"/Users/cormorantai/opencormorant\",\n \"sha\": \"66e02b296fa7c18c04dc94fe071d916042a30137\",\n \"tag\": null,\n \"branch\": \"main\",\n \"upstream\": \"origin/main\",\n \"dirty\": false,\n \"ahead\": 0,\n \"behind\": 338,\n \"fetchOk\": true\n },\n \"deps\": {\n \"manager\": \"pnpm\",\n \"status\": \"stale\",\n \"lockfilePath\": \"/Users/cormorantai/opencormorant/pnpm-lock.yaml\",\n \"markerPath\": \"/Users/cormorantai/opencormorant/node_modules/.modules.yaml\",\n \"reason\": \"lockfile newer than install marker\"\n },\n \"registry\": {\n \"latestVersion\": \"2026.3.13\"\n }\n },\n \"updateChannel\": \"dev\",\n \"updateChannelSource\": \"git-branch\",\n \"memory\": {\n \"agentId\": \"main\",\n \"backend\": \"builtin\",\n \"files\": 0,\n \"chunks\": 0,\n \"dirty\": true,\n \"workspaceDir\": \"/Users/cormorantai/.openclaw/workspace-ocbphase1\",\n \"dbPath\": \"/Users/cormorantai/.openclaw-ocbphase1/memory/main.sqlite\",\n \"provider\": \"gemini\",\n \"model\": \"gemini-embedding-001\",\n \"requestedProvider\": \"auto\",\n \"sources\": [\n \"memory\"\n ],\n \"extraPaths\": [],\n \"sourceCounts\": [\n {\n \"source\": \"memory\",\n \"files\": 0,\n \"chunks\": 0\n }\n ],\n \"cache\": {\n \"enabled\": true,\n \"entries\": 0\n },\n \"fts\": {\n \"enabled\": true,\n \"available\": true\n },\n \"vector\": {\n \"enabled\": true,\n \"available\": true,\n \"extensionPath\": \"/Users/cormorantai/opencormorant/node_modules/.pnpm/sqlite-vec@0.1.7-alpha.2/node_modules/sqlite-vec-darwin-arm64/vec0.dylib\"\n },\n \"batch\": {\n \"enabled\": false,\n \"failures\": 0,\n \"limit\": 2,\n \"wait\": true,\n \"concurrency\": 2,\n \"pollIntervalMs\": 2000,\n \"timeoutMs\": 3600000\n },\n \"custom\": {\n \"searchMode\": \"hybrid\",\n \"readonlyRecovery\": {\n \"attempts\": 0,\n \"successes\": 0,\n \"failures\": 0\n }\n }\n },\n \"memoryPlugin\": {\n \"enabled\": true,\n \"slot\": \"memory-core\"\n },\n \"gateway\": {\n \"mode\": \"local\",\n \"url\": \"ws://127.0.0.1:19031\",\n \"urlSource\": \"local loopback\",\n \"misconfigured\": false,\n \"reachable\": false,\n \"connectLatencyMs\": null,\n \"self\": null,\n \"error\": \"connect failed: connect ECONNREFUSED 127.0.0.1:19031\",\n \"authWarning\": null\n },\n \"gatewayService\": {\n \"label\": \"LaunchAgent\",\n \"installed\": false,\n \"managedByOpenClaw\": false,\n \"externallyManaged\": false,\n \"loadedText\": \"not loaded\",\n \"runtimeShort\": \"unknown\"\n },\n \"nodeService\": {\n \"label\": \"LaunchAgent\",\n \"installed\": false,\n \"managedByOpenClaw\": false,\n \"externallyManaged\": false,\n \"loadedText\": \"not loaded\",\n \"runtimeShort\": \"unknown\"\n },\n \"agents\": {\n \"defaultId\": \"main\",\n \"agents\": [\n {\n \"id\": \"main\",\n \"workspaceDir\": \"/Users/cormorantai/.openclaw/workspace-ocbphase1\",\n \"bootstrapPending\": false,\n \"sessionsPath\": \"/Users/cormorantai/.openclaw-ocbphase1/agents/main/sessions/sessions.json\",\n \"sessionsCount\": 0,\n \"lastUpdatedAt\": null,\n \"lastActiveAgeMs\": null\n }\n ],\n \"totalSessions\": 0,\n \"bootstrapPendingCount\": 0\n },\n \"securityAudit\": {\n \"ts\": 1773633946602,\n \"summary\": {\n \"critical\": 2,\n \"warn\": 1,\n \"info\": 1\n },\n \"findings\": [\n {\n \"checkId\": \"summary.attack_surface\",\n \"severity\": \"info\",\n \"title\": \"Attack surface summary\",\n \"detail\": \"groups: open=0, allowlist=0\\ntools.elevated: enabled\\nhooks.webhooks: disabled\\nhooks.internal: disabled\\nbrowser control: enabled\\ntrust model: personal assistant (one trusted operator boundary), not hostile multi-tenant on one shared gateway\"\n },\n {\n \"checkId\": \"gateway.trusted_proxies_missing\",\n \"severity\": \"warn\",\n \"title\": \"Reverse proxy headers are not trusted\",\n \"detail\": \"gateway.bind is loopback and gateway.trustedProxies is empty. If you expose the Control UI through a reverse proxy, configure trusted proxies so local-client checks cannot be spoofed.\",\n \"remediation\": \"Set gateway.trustedProxies to your proxy IPs or keep the Control UI local-only.\"\n },\n {\n \"checkId\": \"gateway.loopback_no_auth\",\n \"severity\": \"critical\",\n \"title\": \"Gateway auth missing on loopback\",\n \"detail\": \"gateway.bind is loopback but no gateway auth secret is configured. If the Control UI is exposed through a reverse proxy, unauthenticated access is possible.\",\n \"remediation\": \"Set gateway.auth (token recommended) or keep the Control UI local-only.\"\n },\n {\n \"checkId\": \"browser.control_no_auth\",\n \"severity\": \"critical\",\n \"title\": \"Browser control has no auth\",\n \"detail\": \"Browser control HTTP routes are enabled but no gateway.auth token/password is configured. Any local process (or SSRF to loopback) can call browser control endpoints.\",\n \"remediation\": \"Set gateway.auth.token (recommended) or gateway.auth.password so browser control HTTP routes require authentication. Restarting the gateway will auto-generate gateway.auth.token when browser control is enabled.\"\n }\n ]\n },\n \"secretDiagnostics\": []\n}\n",
14
+ "stderr": "Config warnings:\\n- plugins.entries.ollama: plugin ollama: plugin id mismatch (manifest uses \"ollama\", entry hints \"ollama-provider\")\n- plugins.entries.sglang: plugin sglang: plugin id mismatch (manifest uses \"sglang\", entry hints \"sglang-provider\")\n- plugins.entries.vllm: plugin vllm: plugin id mismatch (manifest uses \"vllm\", entry hints \"vllm-provider\")\n[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[plugins] [brain] Teacher disabled: No model configured for LCM summarization.\n[plugins] [brain] Embedding model is unset; learned retrieval is disabled until init/configuration is complete\nConfig warnings:\\n- plugins.entries.ollama: plugin ollama: plugin id mismatch (manifest uses \"ollama\", entry hints \"ollama-provider\")\n- plugins.entries.sglang: plugin sglang: plugin id mismatch (manifest uses \"sglang\", entry hints \"sglang-provider\")\n- plugins.entries.vllm: plugin vllm: plugin id mismatch (manifest uses \"vllm\", entry hints \"vllm-provider\")\n",
15
+ "error": null,
16
+ "parsed": {
17
+ "runtimeVersion": "2026.3.13",
18
+ "heartbeat": {
19
+ "defaultAgentId": "main",
20
+ "agents": [
21
+ {
22
+ "agentId": "main",
23
+ "enabled": true,
24
+ "every": "30m",
25
+ "everyMs": 1800000
26
+ }
27
+ ]
28
+ },
29
+ "channelSummary": [],
30
+ "queuedSystemEvents": [],
31
+ "sessions": {
32
+ "paths": [
33
+ "/Users/cormorantai/.openclaw-ocbphase1/agents/main/sessions/sessions.json"
34
+ ],
35
+ "count": 0,
36
+ "defaults": {
37
+ "model": "claude-opus-4-6",
38
+ "contextTokens": 200000
39
+ },
40
+ "recent": [],
41
+ "byAgent": [
42
+ {
43
+ "agentId": "main",
44
+ "path": "/Users/cormorantai/.openclaw-ocbphase1/agents/main/sessions/sessions.json",
45
+ "count": 0,
46
+ "recent": []
47
+ }
48
+ ]
49
+ },
50
+ "os": {
51
+ "platform": "darwin",
52
+ "arch": "arm64",
53
+ "release": "25.3.0",
54
+ "label": "macos 26.3 (arm64)"
55
+ },
56
+ "update": {
57
+ "root": "/Users/cormorantai/opencormorant",
58
+ "installKind": "git",
59
+ "packageManager": "pnpm",
60
+ "git": {
61
+ "root": "/Users/cormorantai/opencormorant",
62
+ "sha": "66e02b296fa7c18c04dc94fe071d916042a30137",
63
+ "tag": null,
64
+ "branch": "main",
65
+ "upstream": "origin/main",
66
+ "dirty": false,
67
+ "ahead": 0,
68
+ "behind": 338,
69
+ "fetchOk": true
70
+ },
71
+ "deps": {
72
+ "manager": "pnpm",
73
+ "status": "stale",
74
+ "lockfilePath": "/Users/cormorantai/opencormorant/pnpm-lock.yaml",
75
+ "markerPath": "/Users/cormorantai/opencormorant/node_modules/.modules.yaml",
76
+ "reason": "lockfile newer than install marker"
77
+ },
78
+ "registry": {
79
+ "latestVersion": "2026.3.13"
80
+ }
81
+ },
82
+ "updateChannel": "dev",
83
+ "updateChannelSource": "git-branch",
84
+ "memory": {
85
+ "agentId": "main",
86
+ "backend": "builtin",
87
+ "files": 0,
88
+ "chunks": 0,
89
+ "dirty": true,
90
+ "workspaceDir": "/Users/cormorantai/.openclaw/workspace-ocbphase1",
91
+ "dbPath": "/Users/cormorantai/.openclaw-ocbphase1/memory/main.sqlite",
92
+ "provider": "gemini",
93
+ "model": "gemini-embedding-001",
94
+ "requestedProvider": "auto",
95
+ "sources": [
96
+ "memory"
97
+ ],
98
+ "extraPaths": [],
99
+ "sourceCounts": [
100
+ {
101
+ "source": "memory",
102
+ "files": 0,
103
+ "chunks": 0
104
+ }
105
+ ],
106
+ "cache": {
107
+ "enabled": true,
108
+ "entries": 0
109
+ },
110
+ "fts": {
111
+ "enabled": true,
112
+ "available": true
113
+ },
114
+ "vector": {
115
+ "enabled": true,
116
+ "available": true,
117
+ "extensionPath": "/Users/cormorantai/opencormorant/node_modules/.pnpm/sqlite-vec@0.1.7-alpha.2/node_modules/sqlite-vec-darwin-arm64/vec0.dylib"
118
+ },
119
+ "batch": {
120
+ "enabled": false,
121
+ "failures": 0,
122
+ "limit": 2,
123
+ "wait": true,
124
+ "concurrency": 2,
125
+ "pollIntervalMs": 2000,
126
+ "timeoutMs": 3600000
127
+ },
128
+ "custom": {
129
+ "searchMode": "hybrid",
130
+ "readonlyRecovery": {
131
+ "attempts": 0,
132
+ "successes": 0,
133
+ "failures": 0
134
+ }
135
+ }
136
+ },
137
+ "memoryPlugin": {
138
+ "enabled": true,
139
+ "slot": "memory-core"
140
+ },
141
+ "gateway": {
142
+ "mode": "local",
143
+ "url": "ws://127.0.0.1:19031",
144
+ "urlSource": "local loopback",
145
+ "misconfigured": false,
146
+ "reachable": false,
147
+ "connectLatencyMs": null,
148
+ "self": null,
149
+ "error": "connect failed: connect ECONNREFUSED 127.0.0.1:19031",
150
+ "authWarning": null
151
+ },
152
+ "gatewayService": {
153
+ "label": "LaunchAgent",
154
+ "installed": false,
155
+ "managedByOpenClaw": false,
156
+ "externallyManaged": false,
157
+ "loadedText": "not loaded",
158
+ "runtimeShort": "unknown"
159
+ },
160
+ "nodeService": {
161
+ "label": "LaunchAgent",
162
+ "installed": false,
163
+ "managedByOpenClaw": false,
164
+ "externallyManaged": false,
165
+ "loadedText": "not loaded",
166
+ "runtimeShort": "unknown"
167
+ },
168
+ "agents": {
169
+ "defaultId": "main",
170
+ "agents": [
171
+ {
172
+ "id": "main",
173
+ "workspaceDir": "/Users/cormorantai/.openclaw/workspace-ocbphase1",
174
+ "bootstrapPending": false,
175
+ "sessionsPath": "/Users/cormorantai/.openclaw-ocbphase1/agents/main/sessions/sessions.json",
176
+ "sessionsCount": 0,
177
+ "lastUpdatedAt": null,
178
+ "lastActiveAgeMs": null
179
+ }
180
+ ],
181
+ "totalSessions": 0,
182
+ "bootstrapPendingCount": 0
183
+ },
184
+ "securityAudit": {
185
+ "ts": 1773633946602,
186
+ "summary": {
187
+ "critical": 2,
188
+ "warn": 1,
189
+ "info": 1
190
+ },
191
+ "findings": [
192
+ {
193
+ "checkId": "summary.attack_surface",
194
+ "severity": "info",
195
+ "title": "Attack surface summary",
196
+ "detail": "groups: open=0, allowlist=0\ntools.elevated: enabled\nhooks.webhooks: disabled\nhooks.internal: disabled\nbrowser control: enabled\ntrust model: personal assistant (one trusted operator boundary), not hostile multi-tenant on one shared gateway"
197
+ },
198
+ {
199
+ "checkId": "gateway.trusted_proxies_missing",
200
+ "severity": "warn",
201
+ "title": "Reverse proxy headers are not trusted",
202
+ "detail": "gateway.bind is loopback and gateway.trustedProxies is empty. If you expose the Control UI through a reverse proxy, configure trusted proxies so local-client checks cannot be spoofed.",
203
+ "remediation": "Set gateway.trustedProxies to your proxy IPs or keep the Control UI local-only."
204
+ },
205
+ {
206
+ "checkId": "gateway.loopback_no_auth",
207
+ "severity": "critical",
208
+ "title": "Gateway auth missing on loopback",
209
+ "detail": "gateway.bind is loopback but no gateway auth secret is configured. If the Control UI is exposed through a reverse proxy, unauthenticated access is possible.",
210
+ "remediation": "Set gateway.auth (token recommended) or keep the Control UI local-only."
211
+ },
212
+ {
213
+ "checkId": "browser.control_no_auth",
214
+ "severity": "critical",
215
+ "title": "Browser control has no auth",
216
+ "detail": "Browser control HTTP routes are enabled but no gateway.auth token/password is configured. Any local process (or SSRF to loopback) can call browser control endpoints.",
217
+ "remediation": "Set gateway.auth.token (recommended) or gateway.auth.password so browser control HTTP routes require authentication. Restarting the gateway will auto-generate gateway.auth.token when browser control is enabled."
218
+ }
219
+ ]
220
+ },
221
+ "secretDiagnostics": []
222
+ }
223
+ }
@@ -0,0 +1,13 @@
1
+ # OpenClawBrain validation summary
2
+
3
+ - commit: `4941429588810da5d6f7ef1509f229f83fa08031`
4
+ - validation mode: sterile-lane
5
+ - config path: `/Users/cormorantai/.openclaw-ocbphase1/openclaw.json`
6
+ - state dir: `/Users/cormorantai/.openclaw-ocbphase1`
7
+ - workspace: `/Users/cormorantai/.openclaw/workspace-ocbphase1`
8
+ - artifact dir: `/Users/cormorantai/openclawbrain/docs/evidence/2026-03-16/4941429588810da5d6f7ef1509f229f83fa08031`
9
+
10
+ ## Assertions
11
+
12
+ ## Skipped
13
+ - init-and-agent-checks: --setup-only was requested.
@@ -0,0 +1,4 @@
1
+ {
2
+ "skipped": true,
3
+ "reason": "No trace snapshot captured."
4
+ }