import type { ArchitectureDocument } from "@/lib/types"; export const OPENCLAW_RUNTIME_ROOT = process.env.OPENCLAW_RUNTIME_ROOT || "/home/bear/.openclaw"; export const OPENCLAW_AGENTS_DIR = process.env.AGENTS_DIR || "/home/bear/.openclaw/agents"; export const OPENCLAW_CONFIG_PATH = process.env.OPENCLAW_CONFIG || "/home/bear/.openclaw/openclaw.json"; export const ZEROCLAW_PRIMARY_DIR = process.env.ZEROCLAW_PRIMARY_DIR || "/app/zeroclaw/grizzley"; export const ZEROCLAW_CONTROL_DIR = process.env.ZEROCLAW_CONTROL_DIR || "/app/zeroclaw/ice"; export const ARCHITECTURE_DOCUMENT: ArchitectureDocument = { generatedAt: new Date().toISOString(), title: "Claw Fleet Architecture", overview: [ "OpenClaw is the ubuntu-local orchestration layer and Telegram HQ entrypoint.", "ZeroClaw provides host-scoped remote administration on grizzley and ice.", "Task assignment is shared across both families in a single board.", ], topologyDiagram: String.raw` Telegram / Forum Topics | +----------------+----------------+ | | v v OpenClaw gateway ZeroClaw control ubuntu :18789 ice zeroclaw-admin local swarm topic router / paired gateway | | +------------+--------------------+ | v shared taskboard UI | +-----------+-----------+ | | v v OpenClaw agents ZeroClaw runtimes ubuntu-local swarm grizzley / ice `, sections: [ { id: "openclaw", title: "OpenClaw", summary: "Primary orchestration family on ubuntu. Owns local swarm execution, HQ Telegram bindings, and ubuntu-host workflows.", runtime: [ { label: "Host", value: "ubuntu (192.168.50.61)" }, { label: "Service", value: "openclaw.service" }, { label: "Runtime", value: "/srv/state/openclaw/current" }, { label: "Config", value: "/home/bear/.openclaw/openclaw.json" }, ], channels: [ { label: "Telegram DM", value: "allowlist: tg:5512934365" }, { label: "Forum Group", value: "Homelab HQ (-1003809447066)" }, { label: "Gateway", value: "LAN bind :18789 with token auth" }, ], configuredAgents: [ "main", "ubuntu", "docs", "gitea-admin", "planner", "builder", "reviewer", ], diagram: String.raw` OpenClaw HQ topics topic 2 -> ubuntu topic 3 -> docs topic 4 -> gitea-admin topics 5-9 -> main, then delegate to host-scoped ZeroClaw paths main |- ubuntu |- docs |- gitea-admin |- planner |- builder \- reviewer `, notes: [ "Remote host personas were removed from OpenClaw.", "OpenClaw remains gateway-only on ubuntu.", ], }, { id: "zeroclaw", title: "ZeroClaw", summary: "Host-scoped runtime family for remote administration. Grizzley is the primary active gateway. Ice is the control-plane runtime and topic router.", runtime: [ { label: "Primary", value: "/srv/state/zeroclaw/current on grizzley" }, { label: "Control", value: "/home/bear/.zeroclaw-admin on ice" }, { label: "Primary Service", value: "zeroclaw.service" }, { label: "Control Service", value: "zeroclaw-admin.service" }, ], channels: [ { label: "Grizzley Gateway", value: "HTTP gateway :3000, pairing required" }, { label: "Ice Telegram", value: "Homelab-Ice (-1003728617160)" }, { label: "Remote Routing", value: "paired status/webhook to grizzley and pve" }, ], configuredAgents: ["grizzley-zeroclaw", "ice-zeroclaw"], diagram: String.raw` Homelab-Ice topics 11 -> local ice operations 12 -> grizzley paired gateway 13 -> pve paired gateway 14 -> truenas blocker message 15 -> panda rollout pending ice zeroclaw-admin -> zeroclaw-remote-gateway.sh status grizzley|pve -> zeroclaw-remote-gateway.sh webhook grizzley|pve "" `, notes: [ "Grizzley is host-scoped and should not proxy other hosts directly.", "Ice still uses host-local secret/encryption state under /home/bear/.zeroclaw-admin.", ], }, ], };