@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,12 @@
1
+ {
2
+ "command": "node",
3
+ "args": [
4
+ "scripts/validate-openclaw-install.mjs",
5
+ "--sterile-lane",
6
+ "--setup-only"
7
+ ],
8
+ "status": 0,
9
+ "stdout": "│\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├───────────────────────────────────────────────────────╯\nLinked plugin path: ~/openclawbrain\nRestart the gateway to load plugins.\n{\n \"validationRoot\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight\",\n \"validationHome\": \"/Users/cormorantai\",\n \"validationStateDir\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight\",\n \"fixtureWorkspace\": \"/Users/cormorantai/.openclaw/workspace-ocbphase1\",\n \"configPath\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json\",\n \"artifactDir\": \"/Users/cormorantai/openclawbrain/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440\",\n \"gitSha\": \"7f8dbcb27e741abdeefd5656c210639d0acdd440\",\n \"diagnostics\": {\n \"status\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"status\",\n \"--json\",\n \"--timeout\",\n \"10000\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 0,\n \"signal\": null,\n \"ok\": true,\n \"stdout\": \"{\\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-short-static/preflight/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-short-static/preflight/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/openclawbrain/node_modules/openclaw\\\",\\n \\\"installKind\\\": \\\"package\\\",\\n \\\"packageManager\\\": \\\"pnpm\\\",\\n \\\"deps\\\": {\\n \\\"manager\\\": \\\"pnpm\\\",\\n \\\"status\\\": \\\"unknown\\\",\\n \\\"lockfilePath\\\": \\\"/Users/cormorantai/openclawbrain/node_modules/openclaw/pnpm-lock.yaml\\\",\\n \\\"markerPath\\\": \\\"/Users/cormorantai/openclawbrain/node_modules/openclaw/node_modules/.modules.yaml\\\",\\n \\\"reason\\\": \\\"lockfile missing\\\"\\n },\\n \\\"registry\\\": {\\n \\\"latestVersion\\\": \\\"2026.3.13\\\"\\n }\\n },\\n \\\"updateChannel\\\": \\\"stable\\\",\\n \\\"updateChannelSource\\\": \\\"default\\\",\\n \\\"memory\\\": {\\n \\\"agentId\\\": \\\"main\\\",\\n \\\"backend\\\": \\\"builtin\\\",\\n \\\"files\\\": 0,\\n \\\"chunks\\\": 0,\\n \\\"dirty\\\": true,\\n \\\"workspaceDir\\\": \\\"/Users/cormorantai/.openclaw/workspace\\\",\\n \\\"dbPath\\\": \\\"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/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/openclawbrain/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 }\\n },\\n \\\"memoryPlugin\\\": {\\n \\\"enabled\\\": true,\\n \\\"slot\\\": \\\"memory-core\\\"\\n },\\n \\\"gateway\\\": {\\n \\\"mode\\\": \\\"local\\\",\\n \\\"url\\\": \\\"ws://127.0.0.1:18789\\\",\\n \\\"urlSource\\\": \\\"local loopback\\\",\\n \\\"misconfigured\\\": false,\\n \\\"reachable\\\": false,\\n \\\"connectLatencyMs\\\": null,\\n \\\"self\\\": null,\\n \\\"error\\\": \\\"connect failed: unauthorized: gateway token missing (provide gateway auth token)\\\"\\n },\\n \\\"gatewayService\\\": {\\n \\\"label\\\": \\\"LaunchAgent\\\",\\n \\\"installed\\\": false,\\n \\\"loadedText\\\": \\\"not loaded\\\",\\n \\\"runtimeShort\\\": \\\"unknown\\\"\\n },\\n \\\"nodeService\\\": {\\n \\\"label\\\": \\\"LaunchAgent\\\",\\n \\\"installed\\\": 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\\\",\\n \\\"bootstrapPending\\\": true,\\n \\\"sessionsPath\\\": \\\"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/agents/main/sessions/sessions.json\\\",\\n \\\"sessionsCount\\\": 0,\\n \\\"lastUpdatedAt\\\": null,\\n \\\"lastActiveAgeMs\\\": null\\n }\\n ],\\n \\\"totalSessions\\\": 0,\\n \\\"bootstrapPendingCount\\\": 1\\n },\\n \\\"securityAudit\\\": {\\n \\\"ts\\\": 1773636068494,\\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\\\"\\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}\\n\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nConfig invalid\\nFile: ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nProblem:\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\\nRun: openclaw doctor --fix\\nInvalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\",\n \"error\": null,\n \"parsed\": {\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-short-static/preflight/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-short-static/preflight/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/openclawbrain/node_modules/openclaw\",\n \"installKind\": \"package\",\n \"packageManager\": \"pnpm\",\n \"deps\": {\n \"manager\": \"pnpm\",\n \"status\": \"unknown\",\n \"lockfilePath\": \"/Users/cormorantai/openclawbrain/node_modules/openclaw/pnpm-lock.yaml\",\n \"markerPath\": \"/Users/cormorantai/openclawbrain/node_modules/openclaw/node_modules/.modules.yaml\",\n \"reason\": \"lockfile missing\"\n },\n \"registry\": {\n \"latestVersion\": \"2026.3.13\"\n }\n },\n \"updateChannel\": \"stable\",\n \"updateChannelSource\": \"default\",\n \"memory\": {\n \"agentId\": \"main\",\n \"backend\": \"builtin\",\n \"files\": 0,\n \"chunks\": 0,\n \"dirty\": true,\n \"workspaceDir\": \"/Users/cormorantai/.openclaw/workspace\",\n \"dbPath\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/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/openclawbrain/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 }\n },\n \"memoryPlugin\": {\n \"enabled\": true,\n \"slot\": \"memory-core\"\n },\n \"gateway\": {\n \"mode\": \"local\",\n \"url\": \"ws://127.0.0.1:18789\",\n \"urlSource\": \"local loopback\",\n \"misconfigured\": false,\n \"reachable\": false,\n \"connectLatencyMs\": null,\n \"self\": null,\n \"error\": \"connect failed: unauthorized: gateway token missing (provide gateway auth token)\"\n },\n \"gatewayService\": {\n \"label\": \"LaunchAgent\",\n \"installed\": false,\n \"loadedText\": \"not loaded\",\n \"runtimeShort\": \"unknown\"\n },\n \"nodeService\": {\n \"label\": \"LaunchAgent\",\n \"installed\": 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\",\n \"bootstrapPending\": true,\n \"sessionsPath\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/agents/main/sessions/sessions.json\",\n \"sessionsCount\": 0,\n \"lastUpdatedAt\": null,\n \"lastActiveAgeMs\": null\n }\n ],\n \"totalSessions\": 0,\n \"bootstrapPendingCount\": 1\n },\n \"securityAudit\": {\n \"ts\": 1773636068494,\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\"\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 }\n },\n \"statusAll\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"status\",\n \"--all\",\n \"--timeout\",\n \"10000\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 0,\n \"signal\": null,\n \"ok\": true,\n \"stdout\": \"OpenClaw status --all\\n\\nOverview\\n┌─────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────┐\\n│ Item │ Value │\\n├─────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────┤\\n│ Version │ 2026.2.17 │\\n│ OS │ macos 26.3 (arm64) │\\n│ Node │ 22.22.0 │\\n│ Config │ ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json │\\n│ Dashboard │ http://127.0.0.1:18789/ │\\n│ Tailscale │ off · Running · cormorantais-mac-mini.tail499c70.ts.net │\\n│ Channel │ stable (default) │\\n│ Update │ pnpm · npm update 2026.3.13 │\\n│ Gateway │ local · ws://127.0.0.1:18789 (local loopback) · unreachable (connect failed: unauthorized: │\\n│ │ gateway token missing (provide gateway auth token)) │\\n│ Security │ Run: openclaw security audit --deep │\\n│ Gateway self │ unknown │\\n│ Gateway service │ LaunchAgent not installed │\\n│ Node service │ LaunchAgent not installed │\\n│ Agents │ 1 total · 1 bootstrapping · 0 active · 0 sessions │\\n└─────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────┘\\n\\nChannels\\n┌──────────┬─────────┬────────┬───────────────────────────────────────────────────────────────────────────────────────┐\\n│ Channel │ Enabled │ State │ Detail │\\n├──────────┼─────────┼────────┼───────────────────────────────────────────────────────────────────────────────────────┤\\n└──────────┴─────────┴────────┴───────────────────────────────────────────────────────────────────────────────────────┘\\n\\nAgents\\n┌────────────┬───────────┬──────────┬──────────┬──────────────────────────────────────────────────────────────────────┐\\n│ Agent │ Bootstrap │ Sessions │ Active │ Store │\\n├────────────┼───────────┼──────────┼──────────┼──────────────────────────────────────────────────────────────────────┤\\n│ main │ PENDING │ 0 │ unknown │ ~/.openclaw-ocbphase1-short-static/preflight/agents/main/sessions/ │\\n│ │ │ │ │ sessions.json │\\n└────────────┴───────────┴──────────┴──────────┴──────────────────────────────────────────────────────────────────────┘\\n\\nDiagnosis (read-only)\\n\\nGateway connection details:\\n Gateway target: ws://127.0.0.1:18789\\n Source: local loopback\\n Config: /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\n Bind: loopback\\n\\n! Config: /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n✓ Restart sentinel: none\\n! Port 18789\\n Port 18789 is already in use.\\n - pid 40240 cormorantai: openclaw-gateway (127.0.0.1:18789)\\n - Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.\\n✓ Tailscale: off · Running · cormorantais-mac-mini.tail499c70.ts.net\\n ips: 100.73.247.26, fd7a:115c:a1e0::e932:f71a\\n✓ Skills: 8 eligible · 0 missing · /Users/cormorantai/.openclaw/workspace\\n! Channel issues skipped (gateway unreachable)\\n\\nGateway health:\\n connect failed: unauthorized: gateway token missing (provide gateway auth token)\\n\\nPasteable debug report. Auth tokens redacted.\\nTroubleshooting: https://docs.openclaw.ai/troubleshooting\\n\\n\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nConfig invalid\\nFile: ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nProblem:\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\\nRun: openclaw doctor --fix\\nInvalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\",\n \"error\": null\n },\n \"gatewayProbe\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"gateway\",\n \"probe\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 1,\n \"signal\": null,\n \"ok\": false,\n \"stdout\": \"│\\n◇ Config ───────────────────────────────────────────────────╮\\n│ │\\n│ Config invalid; doctor will run with best-effort config. │\\n│ │\\n├────────────────────────────────────────────────────────────╯\\n│\\n◇ Doctor changes ──────────────────────────────╮\\n│ │\\n│ Telegram configured, enabled automatically. │\\n│ │\\n├───────────────────────────────────────────────╯\\n│\\n◇ Unknown config keys ───────────╮\\n│ │\\n│ - plugins.slots.contextEngine │\\n│ │\\n├─────────────────────────────────╯\\n│\\n◇ Doctor ──────────────────────────────────────────────╮\\n│ │\\n│ Run \\\"openclaw doctor --fix\\\" to apply these changes. │\\n│ Run \\\"openclaw doctor --fix\\\" to remove these keys. │\\n│ │\\n├───────────────────────────────────────────────────────╯\\nGateway Status\\nReachable: no\\nProbe budget: 3000ms\\n\\nDiscovery (this machine)\\nFound 4 gateway(s) via Bonjour (local.)\\n\\nTargets\\nLocal loopback ws://127.0.0.1:18789\\n Connect: failed - connect failed: unauthorized: gateway token missing (provide gateway auth token)\\n\\n\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nConfig invalid\\nFile: ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nProblem:\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\\nRun: openclaw doctor --fix\\n\",\n \"error\": null\n },\n \"gatewayStatus\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"gateway\",\n \"status\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 0,\n \"signal\": null,\n \"ok\": true,\n \"stdout\": \"│\\n◇ Config ───────────────────────────────────────────────────╮\\n│ │\\n│ Config invalid; doctor will run with best-effort config. │\\n│ │\\n├────────────────────────────────────────────────────────────╯\\n│\\n◇ Doctor changes ──────────────────────────────╮\\n│ │\\n│ Telegram configured, enabled automatically. │\\n│ │\\n├───────────────────────────────────────────────╯\\n│\\n◇ Unknown config keys ───────────╮\\n│ │\\n│ - plugins.slots.contextEngine │\\n│ │\\n├─────────────────────────────────╯\\n│\\n◇ Doctor ──────────────────────────────────────────────╮\\n│ │\\n│ Run \\\"openclaw doctor --fix\\\" to apply these changes. │\\n│ Run \\\"openclaw doctor --fix\\\" to remove these keys. │\\n│ │\\n├───────────────────────────────────────────────────────╯\\nService: LaunchAgent (not loaded)\\nFile logs: /tmp/openclaw/openclaw-2026-03-15.log\\n\\nConfig (cli): ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json (invalid)\\nConfig (service): ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json (invalid)\\n\\nGateway: bind=loopback (127.0.0.1), port=18789 (env/config)\\nProbe target: ws://127.0.0.1:18789\\nDashboard: http://127.0.0.1:18789/\\nProbe note: Loopback-only gateway; only local clients can connect.\\n\\nRuntime: unknown (Bad request.\\nCould not find service \\\"ai.openclaw.gateway\\\" in domain for user gui: 501)\\n\\nListening: 127.0.0.1:18789\\n\\n\\nTroubles: run openclaw status\\nTroubleshooting: https://docs.openclaw.ai/troubleshooting\\n\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nConfig invalid\\nFile: ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nProblem:\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\\nRun: openclaw doctor --fix\\nService config looks out of date or non-standard.\\nService config issue: Gateway service PATH is not set; the daemon should use a minimal PATH.\\nRecommendation: run \\\"openclaw doctor\\\" (or \\\"openclaw doctor --repair\\\").\\nConfig issue: plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nService config issue: plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nRPC probe: failed\\nRPC target: ws://127.0.0.1:18789\\n gateway url override requires explicit credentials\\n Fix: pass --token or --password (or gatewayToken in tools).\\n Config: /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nService unit not found.\\nService not installed. Run: openclaw gateway install\\nFile logs: /tmp/openclaw/openclaw-2026-03-15.log\\nPort 18789 is already in use.\\n- pid 40240 cormorantai: openclaw-gateway (127.0.0.1:18789)\\n- Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.\\nOther gateway-like services detected (best effort):\\n- com.openclawbrain.daemon.activation.0ec88212fa7d (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.0ec88212fa7d.plist)\\n- com.openclawbrain.daemon.activation.546e84bf06ac (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.546e84bf06ac.plist)\\n- com.openclawbrain.daemon.activation.b3eeb450ca08 (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.b3eeb450ca08.plist)\\nCleanup hint: launchctl bootout gui/$UID/ai.openclaw.gateway\\nCleanup hint: rm ~/Library/LaunchAgents/ai.openclaw.gateway.plist\\nRecommendation: run a single gateway per machine for most setups. One gateway supports multiple agents (see docs: /gateway#multiple-gateways-same-host).\\nIf you need multiple gateways (e.g., a rescue bot on the same host), isolate ports + config/state (see docs: /gateway#multiple-gateways-same-host).\\n\",\n \"error\": null\n },\n \"doctor\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"doctor\",\n \"--non-interactive\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 0,\n \"signal\": null,\n \"ok\": true,\n \"stdout\": \"▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\\n██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██\\n██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██\\n██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██\\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\\n 🦞 OPENCLAW 🦞 \\n \\n┌ OpenClaw doctor\\n│\\n◇ Config ───────────────────────────────────────────────────╮\\n│ │\\n│ Config invalid; doctor will run with best-effort config. │\\n│ │\\n├────────────────────────────────────────────────────────────╯\\n│\\n◇ Doctor changes ──────────────────────────────╮\\n│ │\\n│ Telegram configured, enabled automatically. │\\n│ │\\n├───────────────────────────────────────────────╯\\n│\\n◇ Unknown config keys ───────────╮\\n│ │\\n│ - plugins.slots.contextEngine │\\n│ │\\n├─────────────────────────────────╯\\n│\\n◇ Doctor ──────────────────────────────────────────────╮\\n│ │\\n│ Run \\\"openclaw doctor --fix\\\" to apply these changes. │\\n│ Run \\\"openclaw doctor --fix\\\" to remove these keys. │\\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│ - CRITICAL: Session store dir missing │\\n│ (~/.openclaw-ocbphase1-short-static/preflight/agents/main/sessions). │\\n│ - CRITICAL: OAuth dir missing │\\n│ (~/.openclaw-ocbphase1-short-static/preflight/credentials). │\\n│ - Multiple state directories detected. This can split session history. │\\n│ - ~/.openclaw │\\n│ Active state dir: ~/.openclaw-ocbphase1-short-static/preflight │\\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: 8 │\\n│ Missing requirements: 42 │\\n│ Blocked by allowlist: 0 │\\n│ │\\n├────────────────────────────╯\\n│\\n◇ Plugins ─────────╮\\n│ │\\n│ Loaded: 4 │\\n│ Disabled: 32 │\\n│ Errors: 1 │\\n│ - openclawbrain │\\n│ │\\n├───────────────────╯\\n│\\n◇ Plugin diagnostics ───────────────────────────────────────────────╮\\n│ │\\n│ - ERROR openclawbrain: plugin failed during register: TypeError: │\\n│ api.registerContextEngine is not a function │\\n│ (/Users/cormorantai/openclawbrain/index.ts) │\\n│ │\\n├────────────────────────────────────────────────────────────────────╯\\n│\\n◇ Shell completion ────────────────────────────────────────────────────╮\\n│ │\\n│ Shell completion is configured in your zsh profile but the cache is │\\n│ missing. │\\n│ Regenerating cache... │\\n│ │\\n├───────────────────────────────────────────────────────────────────────╯\\n│\\n◇ Shell completion ───────────────────────────────────────────────────────────╮\\n│ │\\n│ Completion cache regenerated at │\\n│ /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/completions/ │\\n│ openclaw.zsh │\\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:19130 │\\n│ Source: local loopback │\\n│ Config: │\\n│ /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.jso │\\n│ n │\\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\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nInvalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nInvalid config:\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\",\n \"error\": null\n },\n \"channelsStatus\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"channels\",\n \"status\",\n \"--probe\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 1,\n \"signal\": null,\n \"ok\": false,\n \"stdout\": \"│\\n◇ Config ───────────────────────────────────────────────────╮\\n│ │\\n│ Config invalid; doctor will run with best-effort config. │\\n│ │\\n├────────────────────────────────────────────────────────────╯\\n│\\n◇ Doctor changes ──────────────────────────────╮\\n│ │\\n│ Telegram configured, enabled automatically. │\\n│ │\\n├───────────────────────────────────────────────╯\\n│\\n◇ Unknown config keys ───────────╮\\n│ │\\n│ - plugins.slots.contextEngine │\\n│ │\\n├─────────────────────────────────╯\\n│\\n◇ Doctor ──────────────────────────────────────────────╮\\n│ │\\n│ Run \\\"openclaw doctor --fix\\\" to apply these changes. │\\n│ Run \\\"openclaw doctor --fix\\\" to remove these keys. │\\n│ │\\n├───────────────────────────────────────────────────────╯\\n\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nConfig invalid\\nFile: ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nProblem:\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\\nRun: openclaw doctor --fix\\n\",\n \"error\": null\n }\n },\n \"trace\": null,\n \"setup\": {\n \"linkedPlugin\": \"/Users/cormorantai/openclawbrain\",\n \"lcmDbPath\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/lcm.db\",\n \"brainRoot\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclawbrain\",\n \"contextEngineSlot\": \"openclawbrain\",\n \"validationMode\": \"sterile-lane\",\n \"validationLaneName\": \"ocbphase1\",\n \"validationGatewayPort\": 19130,\n \"validationModel\": \"ollama/qwen2.5:7b-instruct\",\n \"workerMode\": \"child\",\n \"embeddingProvider\": \"ollama\",\n \"embeddingModel\": \"bge-large:latest\",\n \"agentTimeoutMs\": 120000\n },\n \"init\": null,\n \"doctor\": null,\n \"status\": null,\n \"runtime\": null,\n \"agent\": {},\n \"assertions\": {},\n \"skipped\": [\n {\n \"phase\": \"init-and-agent-checks\",\n \"reason\": \"--setup-only was requested.\"\n }\n ]\n}\n",
10
+ "stderr": "[plugins] [lcm] OpenClaw runtime.modelAuth is unavailable; using legacy auth-profiles fallback. Stock lossless-claw 0.2.7 expects OpenClaw plugin runtime support from PR #41090 (https://github.com/openclaw/openclaw/pull/41090). OpenClaw 2026.3.8 and 2026.3.8-beta.1 do not include merge commit 4790e40; the first OpenClaw release after 2026.3.8 is required for stock lossless-claw 0.2.7 without this fallback patch.\n[plugins] [brain] Teacher disabled: No model configured for LCM summarization.\n[plugins] openclawbrain failed during register from /Users/cormorantai/openclawbrain/index.ts: TypeError: api.registerContextEngine is not a function\n",
11
+ "error": null
12
+ }
@@ -0,0 +1,30 @@
1
+ # Short-static host-path classification summary
2
+
3
+ - commit: `7f8dbcb27e741abdeefd5656c210639d0acdd440`
4
+ - workspace: `/Users/cormorantai/.openclaw/workspace-ocbphase1`
5
+ - validation root: `/Users/cormorantai/.openclaw-ocbphase1-short-static`
6
+ - model: `ollama/qwen2.5:7b-instruct`
7
+ - embedding: `ollama/bge-large:latest`
8
+ - classification bucket: **upstream host-agent/profile interaction**
9
+ - blocked by stale host seam: true
10
+ - same local session key across different --to values: false
11
+ - same local session id across different --to values: false
12
+
13
+ ## Host preflight
14
+ - preflight root: `/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight`
15
+ - preflight config: `/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json`
16
+ - setup-only exit: 0
17
+ - doctor exit: 0
18
+ - sdk probe exit: 0
19
+
20
+ ## Why this bucket
21
+ - OpenClaw config schema no longer accepts `plugins.slots.contextEngine` in the sterile host lane.
22
+ - The current OpenClaw plugin API no longer exposes `registerContextEngine`, so the host harness seam used by this repo is stale.
23
+ - That means the current raw host validation lane cannot honestly reach the short-static semantic question yet; the host/plugin integration boundary moved underneath the Phase 1 harness.
24
+ - Freeze this as upstream host-agent/profile interaction for now, then adapt the plugin + config seam before claiming host-path short-static behavior is classified.
25
+
26
+ ## Scenario matrix
27
+ - Skipped turn-level host probes because the host/plugin seam is stale before the agent path becomes meaningful.
28
+
29
+ ## Honest release implication
30
+ - Do not treat the current raw host lane as a valid short-static proof surface. First adapt the plugin/config seam to the current OpenClaw host, then rerun turn-level classification on top of that repaired boundary.
@@ -0,0 +1,72 @@
1
+ {
2
+ "ok": true,
3
+ "gitSha": "7f8dbcb27e741abdeefd5656c210639d0acdd440",
4
+ "artifactDir": "/Users/cormorantai/openclawbrain/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440/short-static-classification",
5
+ "workspace": "/Users/cormorantai/.openclaw/workspace-ocbphase1",
6
+ "validationRoot": "/Users/cormorantai/.openclaw-ocbphase1-short-static",
7
+ "model": "ollama/qwen2.5:7b-instruct",
8
+ "embeddingProvider": "ollama",
9
+ "embeddingModel": "bge-large:latest",
10
+ "preflight": {
11
+ "validationRoot": "/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight",
12
+ "configPath": "/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json",
13
+ "blockedByStaleHostSeam": true,
14
+ "reasons": [
15
+ "OpenClaw config schema no longer accepts `plugins.slots.contextEngine` in the sterile host lane.",
16
+ "The current OpenClaw plugin API no longer exposes `registerContextEngine`, so the host harness seam used by this repo is stale."
17
+ ],
18
+ "setupOnly": {
19
+ "command": "node",
20
+ "args": [
21
+ "scripts/validate-openclaw-install.mjs",
22
+ "--sterile-lane",
23
+ "--setup-only"
24
+ ],
25
+ "status": 0,
26
+ "stdout": "│\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├───────────────────────────────────────────────────────╯\nLinked plugin path: ~/openclawbrain\nRestart the gateway to load plugins.\n{\n \"validationRoot\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight\",\n \"validationHome\": \"/Users/cormorantai\",\n \"validationStateDir\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight\",\n \"fixtureWorkspace\": \"/Users/cormorantai/.openclaw/workspace-ocbphase1\",\n \"configPath\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json\",\n \"artifactDir\": \"/Users/cormorantai/openclawbrain/docs/evidence/2026-03-16/7f8dbcb27e741abdeefd5656c210639d0acdd440\",\n \"gitSha\": \"7f8dbcb27e741abdeefd5656c210639d0acdd440\",\n \"diagnostics\": {\n \"status\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"status\",\n \"--json\",\n \"--timeout\",\n \"10000\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 0,\n \"signal\": null,\n \"ok\": true,\n \"stdout\": \"{\\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-short-static/preflight/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-short-static/preflight/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/openclawbrain/node_modules/openclaw\\\",\\n \\\"installKind\\\": \\\"package\\\",\\n \\\"packageManager\\\": \\\"pnpm\\\",\\n \\\"deps\\\": {\\n \\\"manager\\\": \\\"pnpm\\\",\\n \\\"status\\\": \\\"unknown\\\",\\n \\\"lockfilePath\\\": \\\"/Users/cormorantai/openclawbrain/node_modules/openclaw/pnpm-lock.yaml\\\",\\n \\\"markerPath\\\": \\\"/Users/cormorantai/openclawbrain/node_modules/openclaw/node_modules/.modules.yaml\\\",\\n \\\"reason\\\": \\\"lockfile missing\\\"\\n },\\n \\\"registry\\\": {\\n \\\"latestVersion\\\": \\\"2026.3.13\\\"\\n }\\n },\\n \\\"updateChannel\\\": \\\"stable\\\",\\n \\\"updateChannelSource\\\": \\\"default\\\",\\n \\\"memory\\\": {\\n \\\"agentId\\\": \\\"main\\\",\\n \\\"backend\\\": \\\"builtin\\\",\\n \\\"files\\\": 0,\\n \\\"chunks\\\": 0,\\n \\\"dirty\\\": true,\\n \\\"workspaceDir\\\": \\\"/Users/cormorantai/.openclaw/workspace\\\",\\n \\\"dbPath\\\": \\\"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/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/openclawbrain/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 }\\n },\\n \\\"memoryPlugin\\\": {\\n \\\"enabled\\\": true,\\n \\\"slot\\\": \\\"memory-core\\\"\\n },\\n \\\"gateway\\\": {\\n \\\"mode\\\": \\\"local\\\",\\n \\\"url\\\": \\\"ws://127.0.0.1:18789\\\",\\n \\\"urlSource\\\": \\\"local loopback\\\",\\n \\\"misconfigured\\\": false,\\n \\\"reachable\\\": false,\\n \\\"connectLatencyMs\\\": null,\\n \\\"self\\\": null,\\n \\\"error\\\": \\\"connect failed: unauthorized: gateway token missing (provide gateway auth token)\\\"\\n },\\n \\\"gatewayService\\\": {\\n \\\"label\\\": \\\"LaunchAgent\\\",\\n \\\"installed\\\": false,\\n \\\"loadedText\\\": \\\"not loaded\\\",\\n \\\"runtimeShort\\\": \\\"unknown\\\"\\n },\\n \\\"nodeService\\\": {\\n \\\"label\\\": \\\"LaunchAgent\\\",\\n \\\"installed\\\": 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\\\",\\n \\\"bootstrapPending\\\": true,\\n \\\"sessionsPath\\\": \\\"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/agents/main/sessions/sessions.json\\\",\\n \\\"sessionsCount\\\": 0,\\n \\\"lastUpdatedAt\\\": null,\\n \\\"lastActiveAgeMs\\\": null\\n }\\n ],\\n \\\"totalSessions\\\": 0,\\n \\\"bootstrapPendingCount\\\": 1\\n },\\n \\\"securityAudit\\\": {\\n \\\"ts\\\": 1773636068494,\\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\\\"\\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}\\n\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nConfig invalid\\nFile: ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nProblem:\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\\nRun: openclaw doctor --fix\\nInvalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\",\n \"error\": null,\n \"parsed\": {\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-short-static/preflight/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-short-static/preflight/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/openclawbrain/node_modules/openclaw\",\n \"installKind\": \"package\",\n \"packageManager\": \"pnpm\",\n \"deps\": {\n \"manager\": \"pnpm\",\n \"status\": \"unknown\",\n \"lockfilePath\": \"/Users/cormorantai/openclawbrain/node_modules/openclaw/pnpm-lock.yaml\",\n \"markerPath\": \"/Users/cormorantai/openclawbrain/node_modules/openclaw/node_modules/.modules.yaml\",\n \"reason\": \"lockfile missing\"\n },\n \"registry\": {\n \"latestVersion\": \"2026.3.13\"\n }\n },\n \"updateChannel\": \"stable\",\n \"updateChannelSource\": \"default\",\n \"memory\": {\n \"agentId\": \"main\",\n \"backend\": \"builtin\",\n \"files\": 0,\n \"chunks\": 0,\n \"dirty\": true,\n \"workspaceDir\": \"/Users/cormorantai/.openclaw/workspace\",\n \"dbPath\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/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/openclawbrain/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 }\n },\n \"memoryPlugin\": {\n \"enabled\": true,\n \"slot\": \"memory-core\"\n },\n \"gateway\": {\n \"mode\": \"local\",\n \"url\": \"ws://127.0.0.1:18789\",\n \"urlSource\": \"local loopback\",\n \"misconfigured\": false,\n \"reachable\": false,\n \"connectLatencyMs\": null,\n \"self\": null,\n \"error\": \"connect failed: unauthorized: gateway token missing (provide gateway auth token)\"\n },\n \"gatewayService\": {\n \"label\": \"LaunchAgent\",\n \"installed\": false,\n \"loadedText\": \"not loaded\",\n \"runtimeShort\": \"unknown\"\n },\n \"nodeService\": {\n \"label\": \"LaunchAgent\",\n \"installed\": 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\",\n \"bootstrapPending\": true,\n \"sessionsPath\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/agents/main/sessions/sessions.json\",\n \"sessionsCount\": 0,\n \"lastUpdatedAt\": null,\n \"lastActiveAgeMs\": null\n }\n ],\n \"totalSessions\": 0,\n \"bootstrapPendingCount\": 1\n },\n \"securityAudit\": {\n \"ts\": 1773636068494,\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\"\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 }\n },\n \"statusAll\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"status\",\n \"--all\",\n \"--timeout\",\n \"10000\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 0,\n \"signal\": null,\n \"ok\": true,\n \"stdout\": \"OpenClaw status --all\\n\\nOverview\\n┌─────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────┐\\n│ Item │ Value │\\n├─────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────┤\\n│ Version │ 2026.2.17 │\\n│ OS │ macos 26.3 (arm64) │\\n│ Node │ 22.22.0 │\\n│ Config │ ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json │\\n│ Dashboard │ http://127.0.0.1:18789/ │\\n│ Tailscale │ off · Running · cormorantais-mac-mini.tail499c70.ts.net │\\n│ Channel │ stable (default) │\\n│ Update │ pnpm · npm update 2026.3.13 │\\n│ Gateway │ local · ws://127.0.0.1:18789 (local loopback) · unreachable (connect failed: unauthorized: │\\n│ │ gateway token missing (provide gateway auth token)) │\\n│ Security │ Run: openclaw security audit --deep │\\n│ Gateway self │ unknown │\\n│ Gateway service │ LaunchAgent not installed │\\n│ Node service │ LaunchAgent not installed │\\n│ Agents │ 1 total · 1 bootstrapping · 0 active · 0 sessions │\\n└─────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────┘\\n\\nChannels\\n┌──────────┬─────────┬────────┬───────────────────────────────────────────────────────────────────────────────────────┐\\n│ Channel │ Enabled │ State │ Detail │\\n├──────────┼─────────┼────────┼───────────────────────────────────────────────────────────────────────────────────────┤\\n└──────────┴─────────┴────────┴───────────────────────────────────────────────────────────────────────────────────────┘\\n\\nAgents\\n┌────────────┬───────────┬──────────┬──────────┬──────────────────────────────────────────────────────────────────────┐\\n│ Agent │ Bootstrap │ Sessions │ Active │ Store │\\n├────────────┼───────────┼──────────┼──────────┼──────────────────────────────────────────────────────────────────────┤\\n│ main │ PENDING │ 0 │ unknown │ ~/.openclaw-ocbphase1-short-static/preflight/agents/main/sessions/ │\\n│ │ │ │ │ sessions.json │\\n└────────────┴───────────┴──────────┴──────────┴──────────────────────────────────────────────────────────────────────┘\\n\\nDiagnosis (read-only)\\n\\nGateway connection details:\\n Gateway target: ws://127.0.0.1:18789\\n Source: local loopback\\n Config: /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\n Bind: loopback\\n\\n! Config: /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n✓ Restart sentinel: none\\n! Port 18789\\n Port 18789 is already in use.\\n - pid 40240 cormorantai: openclaw-gateway (127.0.0.1:18789)\\n - Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.\\n✓ Tailscale: off · Running · cormorantais-mac-mini.tail499c70.ts.net\\n ips: 100.73.247.26, fd7a:115c:a1e0::e932:f71a\\n✓ Skills: 8 eligible · 0 missing · /Users/cormorantai/.openclaw/workspace\\n! Channel issues skipped (gateway unreachable)\\n\\nGateway health:\\n connect failed: unauthorized: gateway token missing (provide gateway auth token)\\n\\nPasteable debug report. Auth tokens redacted.\\nTroubleshooting: https://docs.openclaw.ai/troubleshooting\\n\\n\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nConfig invalid\\nFile: ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nProblem:\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\\nRun: openclaw doctor --fix\\nInvalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\",\n \"error\": null\n },\n \"gatewayProbe\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"gateway\",\n \"probe\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 1,\n \"signal\": null,\n \"ok\": false,\n \"stdout\": \"│\\n◇ Config ───────────────────────────────────────────────────╮\\n│ │\\n│ Config invalid; doctor will run with best-effort config. │\\n│ │\\n├────────────────────────────────────────────────────────────╯\\n│\\n◇ Doctor changes ──────────────────────────────╮\\n│ │\\n│ Telegram configured, enabled automatically. │\\n│ │\\n├───────────────────────────────────────────────╯\\n│\\n◇ Unknown config keys ───────────╮\\n│ │\\n│ - plugins.slots.contextEngine │\\n│ │\\n├─────────────────────────────────╯\\n│\\n◇ Doctor ──────────────────────────────────────────────╮\\n│ │\\n│ Run \\\"openclaw doctor --fix\\\" to apply these changes. │\\n│ Run \\\"openclaw doctor --fix\\\" to remove these keys. │\\n│ │\\n├───────────────────────────────────────────────────────╯\\nGateway Status\\nReachable: no\\nProbe budget: 3000ms\\n\\nDiscovery (this machine)\\nFound 4 gateway(s) via Bonjour (local.)\\n\\nTargets\\nLocal loopback ws://127.0.0.1:18789\\n Connect: failed - connect failed: unauthorized: gateway token missing (provide gateway auth token)\\n\\n\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nConfig invalid\\nFile: ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nProblem:\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\\nRun: openclaw doctor --fix\\n\",\n \"error\": null\n },\n \"gatewayStatus\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"gateway\",\n \"status\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 0,\n \"signal\": null,\n \"ok\": true,\n \"stdout\": \"│\\n◇ Config ───────────────────────────────────────────────────╮\\n│ │\\n│ Config invalid; doctor will run with best-effort config. │\\n│ │\\n├────────────────────────────────────────────────────────────╯\\n│\\n◇ Doctor changes ──────────────────────────────╮\\n│ │\\n│ Telegram configured, enabled automatically. │\\n│ │\\n├───────────────────────────────────────────────╯\\n│\\n◇ Unknown config keys ───────────╮\\n│ │\\n│ - plugins.slots.contextEngine │\\n│ │\\n├─────────────────────────────────╯\\n│\\n◇ Doctor ──────────────────────────────────────────────╮\\n│ │\\n│ Run \\\"openclaw doctor --fix\\\" to apply these changes. │\\n│ Run \\\"openclaw doctor --fix\\\" to remove these keys. │\\n│ │\\n├───────────────────────────────────────────────────────╯\\nService: LaunchAgent (not loaded)\\nFile logs: /tmp/openclaw/openclaw-2026-03-15.log\\n\\nConfig (cli): ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json (invalid)\\nConfig (service): ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json (invalid)\\n\\nGateway: bind=loopback (127.0.0.1), port=18789 (env/config)\\nProbe target: ws://127.0.0.1:18789\\nDashboard: http://127.0.0.1:18789/\\nProbe note: Loopback-only gateway; only local clients can connect.\\n\\nRuntime: unknown (Bad request.\\nCould not find service \\\"ai.openclaw.gateway\\\" in domain for user gui: 501)\\n\\nListening: 127.0.0.1:18789\\n\\n\\nTroubles: run openclaw status\\nTroubleshooting: https://docs.openclaw.ai/troubleshooting\\n\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nConfig invalid\\nFile: ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nProblem:\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\\nRun: openclaw doctor --fix\\nService config looks out of date or non-standard.\\nService config issue: Gateway service PATH is not set; the daemon should use a minimal PATH.\\nRecommendation: run \\\"openclaw doctor\\\" (or \\\"openclaw doctor --repair\\\").\\nConfig issue: plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nService config issue: plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nRPC probe: failed\\nRPC target: ws://127.0.0.1:18789\\n gateway url override requires explicit credentials\\n Fix: pass --token or --password (or gatewayToken in tools).\\n Config: /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nService unit not found.\\nService not installed. Run: openclaw gateway install\\nFile logs: /tmp/openclaw/openclaw-2026-03-15.log\\nPort 18789 is already in use.\\n- pid 40240 cormorantai: openclaw-gateway (127.0.0.1:18789)\\n- Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.\\nOther gateway-like services detected (best effort):\\n- com.openclawbrain.daemon.activation.0ec88212fa7d (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.0ec88212fa7d.plist)\\n- com.openclawbrain.daemon.activation.546e84bf06ac (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.546e84bf06ac.plist)\\n- com.openclawbrain.daemon.activation.b3eeb450ca08 (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.b3eeb450ca08.plist)\\nCleanup hint: launchctl bootout gui/$UID/ai.openclaw.gateway\\nCleanup hint: rm ~/Library/LaunchAgents/ai.openclaw.gateway.plist\\nRecommendation: run a single gateway per machine for most setups. One gateway supports multiple agents (see docs: /gateway#multiple-gateways-same-host).\\nIf you need multiple gateways (e.g., a rescue bot on the same host), isolate ports + config/state (see docs: /gateway#multiple-gateways-same-host).\\n\",\n \"error\": null\n },\n \"doctor\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"doctor\",\n \"--non-interactive\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 0,\n \"signal\": null,\n \"ok\": true,\n \"stdout\": \"▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\\n██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██\\n██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██\\n██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██\\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\\n 🦞 OPENCLAW 🦞 \\n \\n┌ OpenClaw doctor\\n│\\n◇ Config ───────────────────────────────────────────────────╮\\n│ │\\n│ Config invalid; doctor will run with best-effort config. │\\n│ │\\n├────────────────────────────────────────────────────────────╯\\n│\\n◇ Doctor changes ──────────────────────────────╮\\n│ │\\n│ Telegram configured, enabled automatically. │\\n│ │\\n├───────────────────────────────────────────────╯\\n│\\n◇ Unknown config keys ───────────╮\\n│ │\\n│ - plugins.slots.contextEngine │\\n│ │\\n├─────────────────────────────────╯\\n│\\n◇ Doctor ──────────────────────────────────────────────╮\\n│ │\\n│ Run \\\"openclaw doctor --fix\\\" to apply these changes. │\\n│ Run \\\"openclaw doctor --fix\\\" to remove these keys. │\\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│ - CRITICAL: Session store dir missing │\\n│ (~/.openclaw-ocbphase1-short-static/preflight/agents/main/sessions). │\\n│ - CRITICAL: OAuth dir missing │\\n│ (~/.openclaw-ocbphase1-short-static/preflight/credentials). │\\n│ - Multiple state directories detected. This can split session history. │\\n│ - ~/.openclaw │\\n│ Active state dir: ~/.openclaw-ocbphase1-short-static/preflight │\\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: 8 │\\n│ Missing requirements: 42 │\\n│ Blocked by allowlist: 0 │\\n│ │\\n├────────────────────────────╯\\n│\\n◇ Plugins ─────────╮\\n│ │\\n│ Loaded: 4 │\\n│ Disabled: 32 │\\n│ Errors: 1 │\\n│ - openclawbrain │\\n│ │\\n├───────────────────╯\\n│\\n◇ Plugin diagnostics ───────────────────────────────────────────────╮\\n│ │\\n│ - ERROR openclawbrain: plugin failed during register: TypeError: │\\n│ api.registerContextEngine is not a function │\\n│ (/Users/cormorantai/openclawbrain/index.ts) │\\n│ │\\n├────────────────────────────────────────────────────────────────────╯\\n│\\n◇ Shell completion ────────────────────────────────────────────────────╮\\n│ │\\n│ Shell completion is configured in your zsh profile but the cache is │\\n│ missing. │\\n│ Regenerating cache... │\\n│ │\\n├───────────────────────────────────────────────────────────────────────╯\\n│\\n◇ Shell completion ───────────────────────────────────────────────────────────╮\\n│ │\\n│ Completion cache regenerated at │\\n│ /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/completions/ │\\n│ openclaw.zsh │\\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:19130 │\\n│ Source: local loopback │\\n│ Config: │\\n│ /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.jso │\\n│ n │\\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\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nInvalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nInvalid config:\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\",\n \"error\": null\n },\n \"channelsStatus\": {\n \"command\": \"openclaw\",\n \"args\": [\n \"channels\",\n \"status\",\n \"--probe\"\n ],\n \"cwd\": \"/Users/cormorantai/openclawbrain\",\n \"exitCode\": 1,\n \"signal\": null,\n \"ok\": false,\n \"stdout\": \"│\\n◇ Config ───────────────────────────────────────────────────╮\\n│ │\\n│ Config invalid; doctor will run with best-effort config. │\\n│ │\\n├────────────────────────────────────────────────────────────╯\\n│\\n◇ Doctor changes ──────────────────────────────╮\\n│ │\\n│ Telegram configured, enabled automatically. │\\n│ │\\n├───────────────────────────────────────────────╯\\n│\\n◇ Unknown config keys ───────────╮\\n│ │\\n│ - plugins.slots.contextEngine │\\n│ │\\n├─────────────────────────────────╯\\n│\\n◇ Doctor ──────────────────────────────────────────────╮\\n│ │\\n│ Run \\\"openclaw doctor --fix\\\" to apply these changes. │\\n│ Run \\\"openclaw doctor --fix\\\" to remove these keys. │\\n│ │\\n├───────────────────────────────────────────────────────╯\\n\",\n \"stderr\": \"Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\\\n- plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\nConfig invalid\\nFile: ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json\\nProblem:\\n - plugins.slots: Unrecognized key: \\\"contextEngine\\\"\\n\\nRun: openclaw doctor --fix\\n\",\n \"error\": null\n }\n },\n \"trace\": null,\n \"setup\": {\n \"linkedPlugin\": \"/Users/cormorantai/openclawbrain\",\n \"lcmDbPath\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/lcm.db\",\n \"brainRoot\": \"/Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclawbrain\",\n \"contextEngineSlot\": \"openclawbrain\",\n \"validationMode\": \"sterile-lane\",\n \"validationLaneName\": \"ocbphase1\",\n \"validationGatewayPort\": 19130,\n \"validationModel\": \"ollama/qwen2.5:7b-instruct\",\n \"workerMode\": \"child\",\n \"embeddingProvider\": \"ollama\",\n \"embeddingModel\": \"bge-large:latest\",\n \"agentTimeoutMs\": 120000\n },\n \"init\": null,\n \"doctor\": null,\n \"status\": null,\n \"runtime\": null,\n \"agent\": {},\n \"assertions\": {},\n \"skipped\": [\n {\n \"phase\": \"init-and-agent-checks\",\n \"reason\": \"--setup-only was requested.\"\n }\n ]\n}\n",
27
+ "stderr": "[plugins] [lcm] OpenClaw runtime.modelAuth is unavailable; using legacy auth-profiles fallback. Stock lossless-claw 0.2.7 expects OpenClaw plugin runtime support from PR #41090 (https://github.com/openclaw/openclaw/pull/41090). OpenClaw 2026.3.8 and 2026.3.8-beta.1 do not include merge commit 4790e40; the first OpenClaw release after 2026.3.8 is required for stock lossless-claw 0.2.7 without this fallback patch.\n[plugins] [brain] Teacher disabled: No model configured for LCM summarization.\n[plugins] openclawbrain failed during register from /Users/cormorantai/openclawbrain/index.ts: TypeError: api.registerContextEngine is not a function\n",
28
+ "error": null
29
+ },
30
+ "doctor": {
31
+ "command": "openclaw",
32
+ "args": [
33
+ "doctor"
34
+ ],
35
+ "status": 0,
36
+ "stdout": "▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\n██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██\n██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██\n██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n 🦞 OPENCLAW 🦞 \n \n┌ OpenClaw doctor\n│\n◇ Config ───────────────────────────────────────────────────╮\n│ │\n│ Config invalid; doctor will run with best-effort config. │\n│ │\n├────────────────────────────────────────────────────────────╯\n│\n◇ Doctor changes ──────────────────────────────╮\n│ │\n│ Telegram configured, enabled automatically. │\n│ │\n├───────────────────────────────────────────────╯\n│\n◇ Unknown config keys ───────────╮\n│ │\n│ - plugins.slots.contextEngine │\n│ │\n├─────────────────────────────────╯\n│\n◇ Doctor ──────────────────────────────────────────────╮\n│ │\n│ Run \"openclaw doctor --fix\" to apply these changes. │\n│ Run \"openclaw doctor --fix\" to remove these keys. │\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│ - CRITICAL: Session store dir missing │\n│ (~/.openclaw-ocbphase1-short-static/preflight/agents/main/sessions). │\n│ - CRITICAL: OAuth dir missing │\n│ (~/.openclaw-ocbphase1-short-static/preflight/credentials). │\n│ - Multiple state directories detected. This can split session history. │\n│ - ~/.openclaw │\n│ Active state dir: ~/.openclaw-ocbphase1-short-static/preflight │\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: 8 │\n│ Missing requirements: 42 │\n│ Blocked by allowlist: 0 │\n│ │\n├────────────────────────────╯\n│\n◇ Plugins ─────────╮\n│ │\n│ Loaded: 4 │\n│ Disabled: 32 │\n│ Errors: 1 │\n│ - openclawbrain │\n│ │\n├───────────────────╯\n│\n◇ Plugin diagnostics ───────────────────────────────────────────────╮\n│ │\n│ - ERROR openclawbrain: plugin failed during register: TypeError: │\n│ api.registerContextEngine is not a function │\n│ (/Users/cormorantai/openclawbrain/index.ts) │\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:19130 │\n│ Source: local loopback │\n│ Config: │\n│ /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.jso │\n│ n │\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",
37
+ "stderr": "Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\n- plugins.slots: Unrecognized key: \"contextEngine\"\nInvalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\n- plugins.slots: Unrecognized key: \"contextEngine\"\nInvalid config:\n- plugins.slots: Unrecognized key: \"contextEngine\"\n",
38
+ "error": null
39
+ },
40
+ "sdkProbe": {
41
+ "command": "node",
42
+ "args": [
43
+ "-e",
44
+ "const sdk = require(\"openclaw/plugin-sdk\"); console.log(JSON.stringify({ hasRegisterContextEngine: typeof sdk.registerContextEngine === \"function\", keys: Object.keys(sdk).sort().filter((key) => key.toLowerCase().includes(\"context\") || key.toLowerCase().includes(\"memory\")).slice(0, 50) }));"
45
+ ],
46
+ "status": 0,
47
+ "stdout": "{\"hasRegisterContextEngine\":false,\"keys\":[\"buildPendingHistoryContextFromMap\",\"buildSlackThreadingToolContext\",\"createReplyPrefixContext\",\"toLocationContext\"]}\n",
48
+ "stderr": "Invalid config at /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json:\\n- plugins.slots: Unrecognized key: \"contextEngine\"\n",
49
+ "error": null
50
+ }
51
+ },
52
+ "classification": {
53
+ "bucket": "upstream host-agent/profile interaction",
54
+ "blockedByStaleHostSeam": true,
55
+ "preflightReasons": [
56
+ "OpenClaw config schema no longer accepts `plugins.slots.contextEngine` in the sterile host lane.",
57
+ "The current OpenClaw plugin API no longer exposes `registerContextEngine`, so the host harness seam used by this repo is stale."
58
+ ],
59
+ "sameSessionKeyAcrossDifferentTo": false,
60
+ "sameSessionIdAcrossDifferentTo": false,
61
+ "firstTurnShortMode": null,
62
+ "secondTurnAfterShortMode": null,
63
+ "secondTurnAfterRoutedMode": null,
64
+ "rationale": [
65
+ "OpenClaw config schema no longer accepts `plugins.slots.contextEngine` in the sterile host lane.",
66
+ "The current OpenClaw plugin API no longer exposes `registerContextEngine`, so the host harness seam used by this repo is stale.",
67
+ "That means the current raw host validation lane cannot honestly reach the short-static semantic question yet; the host/plugin integration boundary moved underneath the Phase 1 harness.",
68
+ "Freeze this as upstream host-agent/profile interaction for now, then adapt the plugin + config seam before claiming host-path short-static behavior is classified."
69
+ ]
70
+ },
71
+ "scenarios": []
72
+ }
@@ -0,0 +1,63 @@
1
+ OpenClaw status --all
2
+
3
+ Overview
4
+ ┌─────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────┐
5
+ │ Item │ Value │
6
+ ├─────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────┤
7
+ │ Version │ 2026.2.17 │
8
+ │ OS │ macos 26.3 (arm64) │
9
+ │ Node │ 22.22.0 │
10
+ │ Config │ ~/.openclaw-ocbphase1-short-static/preflight/openclaw.json │
11
+ │ Dashboard │ http://127.0.0.1:18789/ │
12
+ │ Tailscale │ off · Running · cormorantais-mac-mini.tail499c70.ts.net │
13
+ │ Channel │ stable (default) │
14
+ │ Update │ pnpm · npm update 2026.3.13 │
15
+ │ Gateway │ local · ws://127.0.0.1:18789 (local loopback) · unreachable (connect failed: unauthorized: │
16
+ │ │ gateway token missing (provide gateway auth token)) │
17
+ │ Security │ Run: openclaw security audit --deep │
18
+ │ Gateway self │ unknown │
19
+ │ Gateway service │ LaunchAgent not installed │
20
+ │ Node service │ LaunchAgent not installed │
21
+ │ Agents │ 1 total · 1 bootstrapping · 0 active · 0 sessions │
22
+ └─────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────┘
23
+
24
+ Channels
25
+ ┌──────────┬─────────┬────────┬───────────────────────────────────────────────────────────────────────────────────────┐
26
+ │ Channel │ Enabled │ State │ Detail │
27
+ ├──────────┼─────────┼────────┼───────────────────────────────────────────────────────────────────────────────────────┤
28
+ └──────────┴─────────┴────────┴───────────────────────────────────────────────────────────────────────────────────────┘
29
+
30
+ Agents
31
+ ┌────────────┬───────────┬──────────┬──────────┬──────────────────────────────────────────────────────────────────────┐
32
+ │ Agent │ Bootstrap │ Sessions │ Active │ Store │
33
+ ├────────────┼───────────┼──────────┼──────────┼──────────────────────────────────────────────────────────────────────┤
34
+ │ main │ PENDING │ 0 │ unknown │ ~/.openclaw-ocbphase1-short-static/preflight/agents/main/sessions/ │
35
+ │ │ │ │ │ sessions.json │
36
+ └────────────┴───────────┴──────────┴──────────┴──────────────────────────────────────────────────────────────────────┘
37
+
38
+ Diagnosis (read-only)
39
+
40
+ Gateway connection details:
41
+ Gateway target: ws://127.0.0.1:18789
42
+ Source: local loopback
43
+ Config: /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json
44
+ Bind: loopback
45
+
46
+ ! Config: /Users/cormorantai/.openclaw-ocbphase1-short-static/preflight/openclaw.json
47
+ - plugins.slots: Unrecognized key: "contextEngine"
48
+ ✓ Restart sentinel: none
49
+ ! Port 18789
50
+ Port 18789 is already in use.
51
+ - pid 40240 cormorantai: openclaw-gateway (127.0.0.1:18789)
52
+ - Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.
53
+ ✓ Tailscale: off · Running · cormorantais-mac-mini.tail499c70.ts.net
54
+ ips: 100.73.247.26, fd7a:115c:a1e0::e932:f71a
55
+ ✓ Skills: 8 eligible · 0 missing · /Users/cormorantai/.openclaw/workspace
56
+ ! Channel issues skipped (gateway unreachable)
57
+
58
+ Gateway health:
59
+ connect failed: unauthorized: gateway token missing (provide gateway auth token)
60
+
61
+ Pasteable debug report. Auth tokens redacted.
62
+ Troubleshooting: https://docs.openclaw.ai/troubleshooting
63
+