docs: fix architecture diagram — plugin is a backend client, not linked to frontend
The old diagram placed the wakeup arrow under Fabric.Frontend, wrongly implying a frontend<->plugin link. Frontend and OpenclawPlugin are independent peer clients of the Guild/Center backends. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
49
README.md
49
README.md
@@ -9,29 +9,38 @@ channels as real members through a native channel plugin.
|
||||
|
||||
```
|
||||
┌──────────────────────┐
|
||||
│ Fabric.Backend │ identity hub (NestJS, :7001)
|
||||
│ .Center │ users · JWT sessions · agent API
|
||||
└─────────┬────────────┘ keys · guild-node registry · names
|
||||
│ registers / introspects
|
||||
┌─────────────────┼──────────────────┐
|
||||
│ Fabric.Backend │ identity hub (NestJS,
|
||||
│ .Center :7001 │ :7001) — users · JWT ·
|
||||
└─────────┬────────────┘ agent API keys · node
|
||||
│ registry · name resolve
|
||||
registers / │
|
||||
introspects ┌─────┴───────┐
|
||||
▼ ▼
|
||||
┌────────────────┐ ┌────────────────┐
|
||||
│ Fabric.Backend │ guild node │ Fabric.Backend │ guild node (NestJS,
|
||||
│ .Guild :7002 │ channels · msgs │ .Guild :7003 │ :700x …) — many nodes
|
||||
│ realtime·files │ turn engine … │ … │
|
||||
└───────┬────────┘ └────────────────┘
|
||||
│ socket.io + REST
|
||||
▼
|
||||
┌────────────────┐ one SPA, reused everywhere
|
||||
│ Fabric.Frontend│ ──► Fabric.Desktop (Electron shell, bundles the SPA)
|
||||
│ (React/Vite) │ ──► Fabric.Android (Capacitor shell, bundles the SPA)
|
||||
└────────────────┘
|
||||
▲ wakeup → dispatch ; reply ← agent
|
||||
┌────────────────────────┐
|
||||
│ Fabric.OpenclawPlugin │ OpenClaw **channel plugin**: agents = members
|
||||
└────────────────────────┘
|
||||
┌────────────────┐ ┌────────────────┐
|
||||
│ Fabric.Backend │ │ Fabric.Backend │ guild nodes
|
||||
│ .Guild :7002 │ │ .Guild :7003 │ (NestJS) — many
|
||||
│ chans·msgs·turn│ │ … │ channels, turn
|
||||
│ engine·realtime│ └────────────────┘ engine, realtime,
|
||||
│ ·files·canvas │ files, canvas
|
||||
└───────┬────────┘
|
||||
socket.io + REST │ (Center auth for agent keys / guild tokens)
|
||||
┌─────────────────┴──────────────────┐
|
||||
▼ independent clients of the ▼
|
||||
┌────────────────┐ backends (peers, ┌────────────────────────┐
|
||||
│ Fabric.Frontend│ not linked) │ Fabric.OpenclawPlugin │
|
||||
│ (React/Vite) │ │ OpenClaw channel plugin │
|
||||
│ human web UI │ │ agents = members: │
|
||||
└───────┬────────┘ │ wakeup→dispatch, │
|
||||
│ bundled, unchanged, into: │ reply→post │
|
||||
├──► Fabric.Desktop (Electron) └────────────────────────┘
|
||||
└──► Fabric.Android (Capacitor)
|
||||
```
|
||||
|
||||
The **frontend** and the **OpenClaw plugin** are independent peer clients of
|
||||
the Guild/Center backends (socket.io + REST). They never talk to each other:
|
||||
humans use the frontend; agents are driven by the plugin. Both authenticate
|
||||
via Center and exchange messages through guild nodes.
|
||||
|
||||
## Repository layout (git submodules)
|
||||
|
||||
| Submodule | Role |
|
||||
|
||||
Reference in New Issue
Block a user