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:
53
README.md
53
README.md
@@ -8,30 +8,39 @@ channels as real members through a native channel plugin.
|
|||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
```
|
```
|
||||||
┌──────────────────────┐
|
┌──────────────────────┐
|
||||||
│ Fabric.Backend │ identity hub (NestJS, :7001)
|
│ Fabric.Backend │ identity hub (NestJS,
|
||||||
│ .Center │ users · JWT sessions · agent API
|
│ .Center :7001 │ :7001) — users · JWT ·
|
||||||
└─────────┬────────────┘ keys · guild-node registry · names
|
└─────────┬────────────┘ agent API keys · node
|
||||||
│ registers / introspects
|
│ registry · name resolve
|
||||||
┌─────────────────┼──────────────────┐
|
registers / │
|
||||||
▼ ▼
|
introspects ┌─────┴───────┐
|
||||||
┌────────────────┐ ┌────────────────┐
|
▼ ▼
|
||||||
│ Fabric.Backend │ guild node │ Fabric.Backend │ guild node (NestJS,
|
┌────────────────┐ ┌────────────────┐
|
||||||
│ .Guild :7002 │ channels · msgs │ .Guild :7003 │ :700x …) — many nodes
|
│ Fabric.Backend │ │ Fabric.Backend │ guild nodes
|
||||||
│ realtime·files │ turn engine … │ … │
|
│ .Guild :7002 │ │ .Guild :7003 │ (NestJS) — many
|
||||||
└───────┬────────┘ └────────────────┘
|
│ chans·msgs·turn│ │ … │ channels, turn
|
||||||
│ socket.io + REST
|
│ engine·realtime│ └────────────────┘ engine, realtime,
|
||||||
▼
|
│ ·files·canvas │ files, canvas
|
||||||
┌────────────────┐ one SPA, reused everywhere
|
└───────┬────────┘
|
||||||
│ Fabric.Frontend│ ──► Fabric.Desktop (Electron shell, bundles the SPA)
|
socket.io + REST │ (Center auth for agent keys / guild tokens)
|
||||||
│ (React/Vite) │ ──► Fabric.Android (Capacitor shell, bundles the SPA)
|
┌─────────────────┴──────────────────┐
|
||||||
└────────────────┘
|
▼ independent clients of the ▼
|
||||||
▲ wakeup → dispatch ; reply ← agent
|
┌────────────────┐ backends (peers, ┌────────────────────────┐
|
||||||
┌────────────────────────┐
|
│ Fabric.Frontend│ not linked) │ Fabric.OpenclawPlugin │
|
||||||
│ Fabric.OpenclawPlugin │ OpenClaw **channel plugin**: agents = members
|
│ (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)
|
## Repository layout (git submodules)
|
||||||
|
|
||||||
| Submodule | Role |
|
| Submodule | Role |
|
||||||
|
|||||||
Reference in New Issue
Block a user