@resciencelab/declaw
Advanced tools
| # Peer Discovery | ||
| Agents discover each other automatically via bootstrap + gossip. No LLM tokens are consumed — it is pure HTTP + Ed25519 signing. | ||
| ## How it works | ||
| 1. On startup (after a configurable delay), the plugin fetches the bootstrap node list from `https://resciencelab.github.io/DeClaw/bootstrap.json` | ||
| 2. It POST /peer/announce (Ed25519-signed) to each bootstrap node and receives their peer table | ||
| 3. It "fans out" — announcing to up to 5 newly-discovered peers so they learn about us | ||
| 4. A periodic gossip loop (default 10 min) re-announces to random known peers to keep the table fresh | ||
| Any node running the plugin also serves `/peer/announce` and `/peer/peers`, so the network self-heals. | ||
| ## Bootstrap nodes | ||
| 5 bootstrap nodes across AWS regions: | ||
| | Region | Address prefix | | ||
| |---|---| | ||
| | us-east-2 | `200:697f:...` | | ||
| | us-west-2 | `200:e1a5:...` | | ||
| | eu-west-1 | `200:9cf6:...` | | ||
| | ap-northeast-1 | `202:adbc:...` | | ||
| | ap-southeast-1 | `200:5ec6:...` | | ||
| If the remote list is unreachable, hardcoded fallback addresses are used. | ||
| ## Configuration | ||
| ```json | ||
| { | ||
| "declaw": { | ||
| "config": { | ||
| "bootstrap_peers": ["200:xxxx::x"], | ||
| "discovery_interval_ms": 600000, | ||
| "startup_delay_ms": 30000 | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
| - `bootstrap_peers`: extra addresses to announce to (merged with remote list) | ||
| - `discovery_interval_ms`: gossip loop interval (default 10 min) | ||
| - `startup_delay_ms`: wait before first bootstrap (default 30s, lets Yggdrasil routes converge) | ||
| ## Trust model | ||
| - TCP source IP must be in `200::/7` (Yggdrasil range) | ||
| - `fromYgg` in the body must match TCP source IP (prevents body spoofing) | ||
| - Ed25519 signature must be valid | ||
| - TOFU: first message from an address caches the public key; subsequent messages must use the same key. A mismatch returns 403. |
| # IPv6 P2P — Example Interaction Flows | ||
| ## Flow 1 — Discover peers on the network | ||
| ``` | ||
| User: "Find other agents I can talk to" | ||
| 1. p2p_discover() | ||
| → "Discovery complete — 5 new peer(s) found. Known peers: 8" | ||
| 2. p2p_list_peers() | ||
| → Show the list so user can pick someone to message. | ||
| ``` | ||
| ## Flow 2 — User gives a new peer address and asks to send | ||
| ``` | ||
| User: "Alice's agent is at 200:abc:def::1 — send her 'hello'" | ||
| 1. p2p_add_peer(ygg_addr="200:abc:def::1", alias="Alice") | ||
| 2. p2p_send_message(ygg_addr="200:abc:def::1", message="hello") | ||
| → "Message delivered to Alice (200:abc:def::1)" | ||
| ``` | ||
| ## Flow 3 — User wants to share their own address | ||
| ``` | ||
| User: "What is my agent's P2P address?" | ||
| 1. p2p_status() | ||
| → "Your agent's P2P address is 200:1234::a. Share this with others." | ||
| ``` | ||
| ## Flow 4 — User references a peer by alias | ||
| ``` | ||
| User: "Send 'ready' to Bob" | ||
| 1. p2p_list_peers() ← find Bob's address by alias | ||
| 2. p2p_send_message(ygg_addr=<bob's addr>, message="ready") | ||
| → "Message sent to Bob." | ||
| ``` | ||
| ## Flow 5 — Delivery fails (with diagnosis) | ||
| ``` | ||
| User: "Send 'hello' to 200:ffff::c" | ||
| 1. p2p_add_peer(ygg_addr="200:ffff::c") | ||
| 2. p2p_send_message(ygg_addr="200:ffff::c", message="hello") | ||
| → error: connection refused | ||
| 3. yggdrasil_check() ← diagnose before reporting | ||
| → yggdrasil running, address is routable | ||
| → "Could not reach 200:ffff::c — the peer's agent may be | ||
| offline or their port 8099 is blocked. Our Yggdrasil | ||
| connection is healthy." | ||
| ``` | ||
| ## Flow 6 — Peer uses non-default port | ||
| ``` | ||
| User: "Send 'ping' to 200:abc::1 on port 9001" | ||
| 1. p2p_add_peer(ygg_addr="200:abc::1") | ||
| 2. p2p_send_message(ygg_addr="200:abc::1", message="ping", port=9001) | ||
| → "Message delivered to 200:abc::1" | ||
| ``` | ||
| ## Flow 7 — First-time user | ||
| ``` | ||
| User: "How do I use P2P?" | ||
| 1. yggdrasil_check() | ||
| → derived_only (Yggdrasil not running) | ||
| → "You need Yggdrasil installed for P2P to work. It gives your | ||
| agent a globally-routable IPv6 address." | ||
| (Guide through install — see yggdrasil-setup skill) | ||
| ``` | ||
| ## Flow 8 — Discovery returns nothing | ||
| ``` | ||
| User: "Find other agents" | ||
| 1. p2p_discover() | ||
| → "Discovery complete — 0 new peer(s) found. Known peers: 0" | ||
| → "No peers found — the bootstrap nodes may be temporarily | ||
| unreachable. Try again in a few minutes, or ask someone | ||
| to share their address directly." | ||
| ``` |
| # Yggdrasil Installation Guide | ||
| Yggdrasil is a lightweight, end-to-end encrypted IPv6 overlay network. | ||
| After install, restart the OpenClaw gateway — the plugin starts the daemon automatically. | ||
| --- | ||
| ## macOS | ||
| ```bash | ||
| brew install yggdrasil | ||
| ``` | ||
| Verify: | ||
| ```bash | ||
| yggdrasil -version | ||
| ``` | ||
| --- | ||
| ## Linux — Debian / Ubuntu / Raspberry Pi OS | ||
| ```bash | ||
| # Add the Yggdrasil apt repo | ||
| curl -sL https://www.yggdrasil-network.github.io/apt-key.gpg | sudo apt-key add - | ||
| echo "deb http://www.yggdrasil-network.github.io/apt/ debian main" \ | ||
| | sudo tee /etc/apt/sources.list.d/yggdrasil.list | ||
| sudo apt update | ||
| sudo apt install yggdrasil | ||
| ``` | ||
| > The plugin manages its own daemon. You do NOT need `systemctl enable yggdrasil` — the gateway controls it. | ||
| Verify: | ||
| ```bash | ||
| yggdrasil -version | ||
| ``` | ||
| --- | ||
| ## Linux — Arch | ||
| ```bash | ||
| yay -S yggdrasil # or: paru -S yggdrasil | ||
| ``` | ||
| --- | ||
| ## Linux — Manual / other distros | ||
| Download the latest release binary from: | ||
| https://github.com/yggdrasil-network/yggdrasil-go/releases/latest | ||
| Pick the archive for your arch (e.g. `yggdrasil-X.Y.Z-linux-amd64.tar.gz`), | ||
| extract, and place the `yggdrasil` binary somewhere on your `$PATH`: | ||
| ```bash | ||
| tar -xzf yggdrasil-*.tar.gz | ||
| sudo mv yggdrasil /usr/local/bin/ | ||
| ``` | ||
| --- | ||
| ## Windows | ||
| Download the `.msi` installer from: | ||
| https://github.com/yggdrasil-network/yggdrasil-go/releases/latest | ||
| Run it. The binary ends up at `C:\Program Files\Yggdrasil\yggdrasil.exe`. | ||
| Make sure `C:\Program Files\Yggdrasil` is on your system `PATH`. | ||
| --- | ||
| ## Docker | ||
| ```dockerfile | ||
| # Requires NET_ADMIN for TUN interface | ||
| docker run --cap-add=NET_ADMIN --device=/dev/net/tun ... | ||
| ``` | ||
| --- | ||
| ## After any install | ||
| 1. Restart the OpenClaw gateway. | ||
| 2. The plugin detects the binary, generates a config, and starts the daemon. | ||
| 3. Your `200::/8` address will be shown in the gateway logs. | ||
| 4. Call `yggdrasil_check()` to confirm and get your routable address to share. | ||
| ## Troubleshooting | ||
| If `yggdrasil_check()` still returns `derived_only` after install: | ||
| | Symptom | Fix | | ||
| |---|---| | ||
| | `which yggdrasil` returns nothing | Binary not on PATH. Reinstall or add to PATH. | | ||
| | Binary found but daemon not starting | Restart the OpenClaw gateway — plugin detects binary at startup. | | ||
| | Linux: permission denied on TUN | Needs `CAP_NET_ADMIN`. Run as root or `sudo setcap cap_net_admin+ep $(which yggdrasil)`. | | ||
| | Docker: no TUN device | Add `--cap-add=NET_ADMIN --device=/dev/net/tun` to container. | |
| --- | ||
| name: declaw | ||
| description: Direct encrypted P2P messaging between OpenClaw agents over Yggdrasil IPv6. Peer discovery, messaging, and connectivity diagnostics. Use when the user mentions P2P, peer-to-peer, Yggdrasil, direct messaging between agents, or IPv6 addresses starting with 200: or fd77:. | ||
| version: 0.1.3 | ||
| metadata: | ||
| openclaw: | ||
| emoji: "🔗" | ||
| homepage: https://github.com/ReScienceLab/declaw | ||
| install: | ||
| - kind: node | ||
| package: "@resciencelab/declaw" | ||
| --- | ||
| # DeClaw | ||
| Direct agent-to-agent messaging over Yggdrasil IPv6. Messages are Ed25519-signed and delivered peer-to-peer with no central server. | ||
| ## Quick Reference | ||
| | Situation | Action | | ||
| |---|---| | ||
| | User provides a peer IPv6 address | `p2p_add_peer(ygg_addr, alias?)` | | ||
| | User wants to send a message | `p2p_send_message(ygg_addr, message, port?)` | | ||
| | User asks who they can reach | `p2p_list_peers()` | | ||
| | User asks for their own address | `p2p_status()` | | ||
| | User wants to find agents on the network | `p2p_discover()` | | ||
| | Sending fails or connectivity issues | `yggdrasil_check()` then diagnose | | ||
| | "Is P2P working?" / "Can I connect?" | `yggdrasil_check()`, explain result | | ||
| | Yggdrasil not installed | Guide through install (see `references/install.md`) | | ||
| ## Tool Parameters | ||
| ### p2p_add_peer | ||
| - `ygg_addr` (required): Yggdrasil `200:` or ULA `fd77:` IPv6 address | ||
| - `alias` (optional): human-readable name, e.g. "Alice" | ||
| ### p2p_send_message | ||
| - `ygg_addr` (required): recipient address | ||
| - `message` (required): text content | ||
| - `port` (optional, default 8099): recipient's P2P port — pass explicitly if the peer uses a non-default port | ||
| ### p2p_discover | ||
| No parameters. Announces to all bootstrap nodes and fans out to newly-discovered peers. | ||
| ### p2p_status | ||
| Returns: own address, known peer count, unread inbox count. | ||
| ### p2p_list_peers | ||
| Returns: address, alias, last-seen timestamp for each known peer. | ||
| ### yggdrasil_check | ||
| Returns: binary installed (bool), daemon running (bool), address, address type, routable (bool). | ||
| | Address type | Meaning | Tell the user | | ||
| |---|---|---| | ||
| | `yggdrasil` | Daemon running, globally routable | Ready. Share the address with peers. | | ||
| | `test_mode` | Local/Docker only | Fine for testing. Not reachable by internet peers. | | ||
| | `derived_only` | Yggdrasil not running | Not reachable. Install Yggdrasil first. | | ||
| ## Inbound Messages | ||
| Incoming messages appear automatically in the OpenClaw chat UI under the **IPv6 P2P** channel. No polling tool is needed. | ||
| ## Error Handling | ||
| | Error | Diagnosis | | ||
| |---|---| | ||
| | Send fails: connection refused / timeout | `yggdrasil_check()`. If `derived_only` → install Yggdrasil. If `yggdrasil` → peer offline or port blocked. | | ||
| | Discover returns 0 peers | Bootstrap nodes unreachable. Retry later or share addresses manually. | | ||
| | TOFU key mismatch (403) | Peer rotated keys. Re-add with `p2p_add_peer`. | | ||
| | `derived_only` after install | Binary not on PATH, or gateway not restarted. See `references/install.md`. | | ||
| ## Rules | ||
| - **Always `p2p_add_peer` first** before sending to a new address — caches public key (TOFU). | ||
| - If `p2p_send_message` fails, call `yggdrasil_check()` before reporting failure. | ||
| - Never invent IPv6 addresses — always ask the user explicitly. | ||
| - Valid formats: `200:xxxx::x` (Yggdrasil mainnet) or `fd77:xxxx::x` (ULA/test). | ||
| **References**: `references/flows.md` (interaction examples) · `references/discovery.md` (bootstrap + gossip) · `references/install.md` (Yggdrasil setup) |
| /** | ||
| * OpenClaw channel registration for IPv6 P2P messaging. | ||
| * Registers "ipv6-p2p" as a messaging channel so OpenClaw users can | ||
| * OpenClaw channel registration for DeClaw P2P messaging. | ||
| * Registers "declaw" as a messaging channel so OpenClaw users can | ||
| * chat directly with peers via the standard OpenClaw UI. | ||
@@ -45,7 +45,4 @@ */ | ||
| * in the conversation UI as incoming channel messages. | ||
| * | ||
| * api.gateway is the internal Gateway object exposed to plugins. | ||
| * We emit a synthetic inbound message event. | ||
| */ | ||
| export declare function wireInboundToGateway(api: any): void; | ||
| //# sourceMappingURL=channel.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKnC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;QAavD,gEAAgE;+BACzC,OAAO;QAC9B,uEAAuE;+BAChD,OAAO,aAAa,MAAM,GAAG,SAAS;;;;;;;;sCAQzB;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE;;;;EASvF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAiBnD"} | ||
| {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKnC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;QAavD,gEAAgE;+BACzC,OAAO;QAC9B,uEAAuE;+BAChD,OAAO,aAAa,MAAM,GAAG,SAAS;;;;;;;;sCAQzB;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE;;;;EASvF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAcnD"} |
+9
-15
@@ -10,10 +10,10 @@ "use strict"; | ||
| return { | ||
| id: "ipv6-p2p", | ||
| id: "declaw", | ||
| meta: { | ||
| id: "ipv6-p2p", | ||
| label: "IPv6 P2P", | ||
| selectionLabel: "IPv6 P2P (Yggdrasil)", | ||
| docsPath: "/channels/ipv6-p2p", | ||
| id: "declaw", | ||
| label: "DeClaw", | ||
| selectionLabel: "DeClaw (Yggdrasil P2P)", | ||
| docsPath: "/channels/declaw", | ||
| blurb: "Direct encrypted P2P messaging via Yggdrasil IPv6. No servers, no middlemen.", | ||
| aliases: ["p2p", "ygg", "yggdrasil"], | ||
| aliases: ["p2p", "ygg", "yggdrasil", "ipv6-p2p"], | ||
| }, | ||
@@ -36,3 +36,3 @@ capabilities: { chatTypes: ["direct"] }, | ||
| if (!result.ok) { | ||
| console.error(`[p2p] Failed to send to ${account.yggAddr}: ${result.error}`); | ||
| console.error(`[declaw] Failed to send to ${account.yggAddr}: ${result.error}`); | ||
| } | ||
@@ -47,5 +47,2 @@ return { ok: result.ok }; | ||
| * in the conversation UI as incoming channel messages. | ||
| * | ||
| * api.gateway is the internal Gateway object exposed to plugins. | ||
| * We emit a synthetic inbound message event. | ||
| */ | ||
@@ -57,6 +54,4 @@ function wireInboundToGateway(api) { | ||
| try { | ||
| // OpenClaw's internal gateway receives inbound channel messages via | ||
| // api.gateway.receiveChannelMessage (channel id + account id + text) | ||
| api.gateway?.receiveChannelMessage?.({ | ||
| channelId: "ipv6-p2p", | ||
| channelId: "declaw", | ||
| accountId: msg.fromYgg, | ||
@@ -68,4 +63,3 @@ text: msg.content, | ||
| catch { | ||
| // Gateway API may differ by OpenClaw version — fallback: just log | ||
| console.log(`[p2p] Message from ${msg.fromYgg.slice(0, 20)}...: ${msg.content}`); | ||
| console.log(`[declaw] Message from ${msg.fromYgg.slice(0, 20)}...: ${msg.content}`); | ||
| } | ||
@@ -72,0 +66,0 @@ }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":";;AAUA,oCAiCC;AASD,oDAiBC;AA/DD,+CAA+C;AAC/C,uCAAoE;AACpE,+CAA0C;AAE1C,SAAgB,YAAY,CAAC,QAAkB,EAAE,IAAY;IAC3D,OAAO;QACL,EAAE,EAAE,UAAU;QACd,IAAI,EAAE;YACJ,EAAE,EAAE,UAAU;YACd,KAAK,EAAE,UAAU;YACjB,cAAc,EAAE,sBAAsB;YACtC,QAAQ,EAAE,oBAAoB;YAC9B,KAAK,EAAE,8EAA8E;YACrF,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC;SACrC;QACD,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE;QACvC,MAAM,EAAE;YACN,gEAAgE;YAChE,cAAc,EAAE,CAAC,IAAa,EAAE,EAAE,CAAC,IAAA,0BAAgB,GAAE;YACrD,uEAAuE;YACvE,cAAc,EAAE,CAAC,IAAa,EAAE,SAA6B,EAAE,EAAE;gBAC/D,MAAM,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,IAAA,mBAAS,GAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBACzD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;YACxE,CAAC;SACF;QACD,QAAQ,EAAE;YACR,YAAY,EAAE,QAAiB;YAC/B,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAkD,EAAE,EAAE;gBACpF,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAc,EAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACnF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;YAC3B,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,GAAQ;IAC3C,IAAA,uBAAS,EAAC,CAAC,GAAG,EAAE,EAAE;QAChB,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO;QACjC,IAAI,CAAC;YACH,oEAAoE;YACpE,qEAAqE;YACrE,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,CAAC;gBACnC,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,GAAG,CAAC,OAAO;gBACtB,IAAI,EAAE,GAAG,CAAC,OAAO;gBACjB,QAAQ,EAAE,GAAG,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;YAClE,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"} | ||
| {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":";;AAUA,oCAiCC;AAMD,oDAcC;AAzDD,+CAA+C;AAC/C,uCAAoE;AACpE,+CAA0C;AAE1C,SAAgB,YAAY,CAAC,QAAkB,EAAE,IAAY;IAC3D,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE;YACJ,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,QAAQ;YACf,cAAc,EAAE,wBAAwB;YACxC,QAAQ,EAAE,kBAAkB;YAC5B,KAAK,EAAE,8EAA8E;YACrF,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC;SACjD;QACD,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE;QACvC,MAAM,EAAE;YACN,gEAAgE;YAChE,cAAc,EAAE,CAAC,IAAa,EAAE,EAAE,CAAC,IAAA,0BAAgB,GAAE;YACrD,uEAAuE;YACvE,cAAc,EAAE,CAAC,IAAa,EAAE,SAA6B,EAAE,EAAE;gBAC/D,MAAM,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,IAAA,mBAAS,GAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBACzD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;YACxE,CAAC;SACF;QACD,QAAQ,EAAE;YACR,YAAY,EAAE,QAAiB;YAC/B,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAkD,EAAE,EAAE;gBACpF,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAc,EAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACnF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAClF,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;YAC3B,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,GAAQ;IAC3C,IAAA,uBAAS,EAAC,CAAC,GAAG,EAAE,EAAE;QAChB,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO;QACjC,IAAI,CAAC;YACH,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,CAAC;gBACnC,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,GAAG,CAAC,OAAO;gBACtB,IAAI,EAAE,GAAG,CAAC,OAAO;gBACjB,QAAQ,EAAE,GAAG,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"} |
+8
-8
@@ -64,3 +64,3 @@ "use strict"; | ||
| let yggInfo = null; | ||
| let dataDir = path.join(os.homedir(), ".openclaw", "ipv6-p2p"); | ||
| let dataDir = path.join(os.homedir(), ".openclaw", "declaw"); | ||
| let peerPort = 8099; | ||
@@ -72,3 +72,3 @@ let _testMode = false; | ||
| api.registerService({ | ||
| id: "ipv6-p2p-node", | ||
| id: "declaw-node", | ||
| start: async () => { | ||
@@ -145,10 +145,10 @@ const cfg = api.config?.plugins?.entries?.["declaw"]?.config ?? {}; | ||
| plugin: { | ||
| id: "ipv6-p2p", | ||
| id: "declaw", | ||
| meta: { | ||
| id: "ipv6-p2p", | ||
| label: "IPv6 P2P", | ||
| selectionLabel: "IPv6 P2P (Yggdrasil)", | ||
| docsPath: "/channels/ipv6-p2p", | ||
| id: "declaw", | ||
| label: "DeClaw", | ||
| selectionLabel: "DeClaw (Yggdrasil P2P)", | ||
| docsPath: "/channels/declaw", | ||
| blurb: "Direct encrypted P2P messaging via Yggdrasil IPv6.", | ||
| aliases: ["p2p", "ygg"], | ||
| aliases: ["p2p", "ygg", "ipv6-p2p"], | ||
| }, | ||
@@ -155,0 +155,0 @@ capabilities: { chatTypes: ["direct"] }, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} |
@@ -6,4 +6,4 @@ { | ||
| "version": "0.1.0", | ||
| "channels": ["ipv6-p2p"], | ||
| "skills": ["./skills/ipv6-p2p", "./skills/yggdrasil"], | ||
| "channels": ["declaw"], | ||
| "skills": ["./skills/declaw"], | ||
| "configSchema": { | ||
@@ -20,3 +20,3 @@ "type": "object", | ||
| "type": "string", | ||
| "description": "Directory to store identity and peer data (default: ~/.openclaw/ipv6-p2p)" | ||
| "description": "Directory to store identity and peer data (default: ~/.openclaw/declaw)" | ||
| }, | ||
@@ -23,0 +23,0 @@ "yggdrasil_peers": { |
+5
-5
| { | ||
| "name": "@resciencelab/declaw", | ||
| "version": "0.1.2", | ||
| "version": "0.2.0", | ||
| "description": "Direct P2P communication between OpenClaw instances over Yggdrasil IPv6", | ||
@@ -18,6 +18,6 @@ "main": "dist/index.js", | ||
| "channel": { | ||
| "id": "ipv6-p2p", | ||
| "label": "IPv6 P2P", | ||
| "selectionLabel": "IPv6 P2P (Yggdrasil)", | ||
| "docsPath": "/channels/ipv6-p2p", | ||
| "id": "declaw", | ||
| "label": "DeClaw", | ||
| "selectionLabel": "DeClaw (Yggdrasil P2P)", | ||
| "docsPath": "/channels/declaw", | ||
| "blurb": "Direct encrypted P2P messaging via Yggdrasil IPv6. No servers, no middlemen.", | ||
@@ -24,0 +24,0 @@ "order": 90, |
+151
-9
@@ -75,8 +75,11 @@  | ||
| "entries": { | ||
| "ipv6-p2p": { | ||
| "declaw": { | ||
| "enabled": true, | ||
| "config": { | ||
| "peer_port": 8099, | ||
| "data_dir": "~/.openclaw/ipv6-p2p", | ||
| "yggdrasil_peers": [] | ||
| "data_dir": "~/.openclaw/declaw", | ||
| "yggdrasil_peers": [], | ||
| "bootstrap_peers": [], | ||
| "discovery_interval_ms": 600000, | ||
| "startup_delay_ms": 30000 | ||
| } | ||
@@ -91,12 +94,151 @@ } | ||
| ### System Overview | ||
| ```mermaid | ||
| flowchart TB | ||
| subgraph UserNode["User Machine / VPS"] | ||
| subgraph OC["OpenClaw Gateway"] | ||
| UI["Chat UI / Slash Commands"] | ||
| CLI["CLI: openclaw p2p *"] | ||
| GW["Gateway Event Bus"] | ||
| end | ||
| subgraph Plugin["DeClaw Plugin"] | ||
| IDX["src/index.ts<br/>service bootstrap + wiring"] | ||
| CH["channel.ts<br/>OpenClaw channel adapter"] | ||
| PC["peer-client.ts<br/>signed outbound HTTP"] | ||
| PS["peer-server.ts<br/>/peer/ping<br/>/peer/announce<br/>/peer/message"] | ||
| PD["peer-discovery.ts<br/>bootstrap + gossip loop"] | ||
| ID["identity.ts<br/>Ed25519 identity + IPv6 derivation"] | ||
| DB["peer-db.ts<br/>TOFU peer store"] | ||
| end | ||
| subgraph FS["Local Data Dir ~/.openclaw/declaw"] | ||
| IDJSON["identity.json"] | ||
| PEERS["peers.json"] | ||
| YGGDIR["yggdrasil/"] | ||
| YGGCONF["yggdrasil.conf"] | ||
| YGGSOCK["yggdrasil.sock"] | ||
| YGGLOG["yggdrasil.log"] | ||
| end | ||
| YGG["Local IPv6 overlay daemon"] | ||
| end | ||
| subgraph Bootstrap["Bootstrap Layer"] | ||
| BJSON["docs/bootstrap.json<br/>published bootstrap list"] | ||
| BS["bootstrap/server.mjs<br/>peer exchange server"] | ||
| end | ||
| subgraph RemotePeers["Remote OpenClaw Peers"] | ||
| PeerA["Peer A<br/>OpenClaw + DeClaw"] | ||
| PeerB["Peer B<br/>OpenClaw + DeClaw"] | ||
| PeerN["Peer N"] | ||
| end | ||
| UI --> GW | ||
| CLI --> IDX | ||
| GW --> CH | ||
| IDX --> ID | ||
| IDX --> DB | ||
| IDX --> PS | ||
| IDX --> PD | ||
| IDX --> YGG | ||
| CH --> PC | ||
| PS --> DB | ||
| PD --> DB | ||
| ID --> IDJSON | ||
| DB --> PEERS | ||
| YGG --> YGGDIR | ||
| YGGDIR --> YGGCONF | ||
| YGGDIR --> YGGSOCK | ||
| YGGDIR --> YGGLOG | ||
| PD --> BJSON | ||
| PD --> BS | ||
| BS --> PeerA | ||
| BS --> PeerB | ||
| BS --> PeerN | ||
| PC <--> PeerA | ||
| PC <--> PeerB | ||
| PC <--> PeerN | ||
| PS <--> PeerA | ||
| PS <--> PeerB | ||
| PS <--> PeerN | ||
| ``` | ||
| ~/.openclaw/ipv6-p2p/ | ||
| ├── identity.json Ed25519 keypair + derived addresses | ||
| ├── peers.db SQLite — known peers + TOFU public key cache | ||
| ### Startup Flow | ||
| ```mermaid | ||
| sequenceDiagram | ||
| participant OC as OpenClaw | ||
| participant IDX as src/index.ts | ||
| participant ID as identity.ts | ||
| participant DB as peer-db.ts | ||
| participant YGG as IPv6 Overlay Daemon | ||
| participant PS as peer-server.ts | ||
| participant PD as peer-discovery.ts | ||
| participant BS as Bootstrap Nodes | ||
| OC->>IDX: start plugin service | ||
| IDX->>ID: loadOrCreateIdentity(dataDir) | ||
| ID-->>IDX: Ed25519 keypair + derived IPv6 | ||
| IDX->>DB: initDb(dataDir) | ||
| IDX->>YGG: start daemon (best effort) | ||
| YGG-->>IDX: routable IPv6 + subnet | ||
| IDX->>PS: listen on [::]:peer_port | ||
| IDX->>OC: register channel + CLI + tools | ||
| IDX->>PD: wait startup_delay_ms | ||
| PD->>BS: fetch bootstrap list + POST /peer/announce | ||
| BS-->>PD: known peer sample | ||
| PD->>DB: upsert discovered peers | ||
| PD->>BS: periodic gossip / re-announce | ||
| ``` | ||
| ### Message Delivery Path | ||
| ```mermaid | ||
| sequenceDiagram | ||
| participant UI as OpenClaw UI / CLI | ||
| participant CH as channel.ts | ||
| participant PC as peer-client.ts | ||
| participant Net as IPv6 Network | ||
| participant PS as peer-server.ts | ||
| participant DB as peer-db.ts | ||
| participant GW as OpenClaw Gateway | ||
| UI->>CH: sendText(account, text) | ||
| CH->>PC: sendP2PMessage(identity, yggAddr, "chat", text) | ||
| PC->>PC: sign canonical payload (Ed25519) | ||
| PC->>Net: POST /peer/message | ||
| Net->>PS: inbound HTTP request | ||
| PS->>PS: validate source IPv6 == body.fromYgg | ||
| PS->>PS: verify Ed25519 signature | ||
| PS->>DB: TOFU verify/cache public key | ||
| PS->>GW: receiveChannelMessage(...) | ||
| GW-->>UI: render inbound chat | ||
| ``` | ||
| ### Runtime Components | ||
| - `src/index.ts`: owns plugin lifecycle, starts local services, registers the OpenClaw channel, CLI commands, slash commands, and LLM-callable tools. | ||
| - `identity.ts`: creates the Ed25519 identity, derives stable IPv6 addresses, and signs/verifies canonical payloads. | ||
| - `peer-server.ts`: inbound HTTP surface for ping, peer exchange, and direct message delivery. | ||
| - `peer-client.ts`: outbound signed HTTP client for direct peer communication. | ||
| - `peer-discovery.ts`: bootstraps from public bootstrap nodes, merges peer tables, and runs periodic gossip. | ||
| - `peer-db.ts`: persists known peers, caches first-seen public keys, and enforces TOFU on later messages. | ||
| - `bootstrap/server.mjs`: standalone bootstrap node for peer exchange and network seeding. | ||
| ### Local Files | ||
| ```text | ||
| ~/.openclaw/declaw/ | ||
| ├── identity.json Ed25519 keypair + derived IPv6 addresses | ||
| ├── peers.json Known peers + TOFU public key cache | ||
| └── yggdrasil/ | ||
| ├── yggdrasil.conf Stable keypair (survives restarts) | ||
| └── yggdrasil.log Daemon logs | ||
| ├── yggdrasil.conf Local daemon config | ||
| ├── yggdrasil.sock Admin socket | ||
| └── yggdrasil.log Daemon logs | ||
| ``` | ||
| The peer server listens on `[::]:8099` (all IPv6 interfaces, including Yggdrasil's `tun0`). | ||
| The peer server listens on `[::]:8099` by default, so it can accept direct IPv6 traffic from other peers. | ||
@@ -103,0 +245,0 @@ ### Trust model |
| # IPv6 P2P — Example Interaction Flows | ||
| ## Flow 0 — Discover peers on the network | ||
| ``` | ||
| User: "Find other agents I can talk to" | ||
| 1. p2p_discover() | ||
| → "Found 3 peers via bootstrap. Use p2p_list_peers() to see them." | ||
| ``` | ||
| ## Flow 1 — User gives a new peer address and asks to send | ||
| ``` | ||
| User: "Alice's agent address is fd77:1234:5678::b — send her 'hello'" | ||
| 1. p2p_add_peer(ygg_addr="fd77:1234:5678::b", alias="Alice") | ||
| 2. p2p_send_message(ygg_addr="fd77:1234:5678::b", message="hello") | ||
| → "Message delivered to Alice's agent." | ||
| ``` | ||
| ## Flow 2 — User wants to share their own address | ||
| ``` | ||
| User: "What is my agent's P2P address?" | ||
| 1. p2p_status() | ||
| → "Your agent's P2P address is fd77:1234:5678::a. Share this with others." | ||
| ``` | ||
| ## Flow 3 — User references a peer by alias | ||
| ``` | ||
| User: "Send 'ready' to Bob" | ||
| 1. p2p_list_peers() ← find Bob's address by alias | ||
| 2. p2p_send_message(ygg_addr=<bob's addr>, message="ready") | ||
| → "Message sent to Bob." | ||
| ``` | ||
| ## Flow 4 — Delivery fails | ||
| ``` | ||
| User: "Send 'hello' to fd77::c" | ||
| 1. p2p_add_peer(ygg_addr="fd77::c") | ||
| 2. p2p_send_message(ygg_addr="fd77::c", message="hello") | ||
| → error: connection refused | ||
| → "Could not reach fd77::c. Make sure the peer's agent is running and | ||
| their P2P port (default 8099) is reachable." | ||
| ``` |
| --- | ||
| name: ipv6-p2p | ||
| description: Send/receive direct encrypted P2P messages between OpenClaw agents using Yggdrasil or ULA IPv6 addresses. | ||
| version: 0.1.0 | ||
| metadata: | ||
| openclaw: | ||
| emoji: "🔗" | ||
| homepage: https://github.com/ReScienceLab/declaw | ||
| install: | ||
| - kind: node | ||
| package: "@resciencelab/declaw" | ||
| --- | ||
| # IPv6 P2P Skill | ||
| Direct agent-to-agent messaging over IPv6. No servers — messages are signed with Ed25519 and delivered peer-to-peer. | ||
| ## When to use | ||
| | Situation | Tool to call | | ||
| |---|---| | ||
| | User provides a peer's IPv6 address | `p2p_add_peer(ygg_addr, alias?)` | | ||
| | User wants to send a message to a peer | `p2p_send_message(ygg_addr, message)` | | ||
| | User asks who you can reach / known contacts | `p2p_list_peers()` | | ||
| | User asks for their own agent's address | `p2p_status()` | | ||
| | User asks to find other agents on the network | `p2p_discover()` | | ||
| ## Peer Discovery | ||
| Agents discover each other automatically via bootstrap + gossip: | ||
| 1. On startup, the plugin fetches the bootstrap node list from `https://resciencelab.github.io/DeClaw/bootstrap.json` | ||
| 2. It announces itself (Ed25519-signed) to each bootstrap node and receives their peer table | ||
| 3. It then "fans out" — announcing to newly-discovered peers so they learn about us too | ||
| 4. A periodic gossip loop (default 10 min) keeps the routing table fresh | ||
| No LLM tokens are consumed during discovery — it's pure HTTP + cryptographic signing. | ||
| ### Configuration | ||
| ```json | ||
| { | ||
| "declaw": { | ||
| "config": { | ||
| "bootstrap_peers": ["200:xxxx::x"], | ||
| "discovery_interval_ms": 600000, | ||
| "startup_delay_ms": 30000 | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
| ## Rules | ||
| - **Always call `p2p_add_peer` first** for any new IPv6 address before sending — this caches their public key (TOFU security). | ||
| - Pass the user-provided name/alias to `p2p_add_peer` if given. | ||
| - If `p2p_send_message` fails, call `yggdrasil_check()` to diagnose connectivity before reporting to the user. | ||
| - If the user has never used P2P before, call `yggdrasil_check()` first to confirm their address is routable. | ||
| - Never invent IPv6 addresses — always ask the user to provide one explicitly. | ||
| - Valid address formats: `fd77:xxxx::x` (ULA/test) or `200:xxxx::x` (Yggdrasil mainnet). | ||
| See `references/flows.md` for example interaction patterns. |
| # Yggdrasil Installation Guide | ||
| Yggdrasil is a lightweight, end-to-end encrypted IPv6 overlay network. | ||
| After install, restart the OpenClaw gateway — the plugin starts the daemon automatically. | ||
| --- | ||
| ## macOS | ||
| ```bash | ||
| brew install yggdrasil | ||
| ``` | ||
| Verify: | ||
| ```bash | ||
| yggdrasil -version | ||
| ``` | ||
| --- | ||
| ## Linux — Debian / Ubuntu / Raspberry Pi OS | ||
| ```bash | ||
| # Add the Yggdrasil apt repo | ||
| curl -sL https://www.yggdrasil-network.github.io/apt-key.gpg | sudo apt-key add - | ||
| echo "deb http://www.yggdrasil-network.github.io/apt/ debian main" \ | ||
| | sudo tee /etc/apt/sources.list.d/yggdrasil.list | ||
| sudo apt update | ||
| sudo apt install yggdrasil | ||
| ``` | ||
| > The plugin manages its own daemon. You do NOT need `systemctl enable yggdrasil` — the gateway controls it. | ||
| Verify: | ||
| ```bash | ||
| yggdrasil -version | ||
| ``` | ||
| --- | ||
| ## Linux — Arch | ||
| ```bash | ||
| yay -S yggdrasil # or: paru -S yggdrasil | ||
| ``` | ||
| --- | ||
| ## Linux — Manual / other distros | ||
| Download the latest release binary from: | ||
| https://github.com/yggdrasil-network/yggdrasil-go/releases/latest | ||
| Pick the archive for your arch (e.g. `yggdrasil-X.Y.Z-linux-amd64.tar.gz`), | ||
| extract, and place the `yggdrasil` binary somewhere on your `$PATH`: | ||
| ```bash | ||
| tar -xzf yggdrasil-*.tar.gz | ||
| sudo mv yggdrasil /usr/local/bin/ | ||
| ``` | ||
| --- | ||
| ## Windows | ||
| Download the `.msi` installer from: | ||
| https://github.com/yggdrasil-network/yggdrasil-go/releases/latest | ||
| Run it. The binary ends up at `C:\Program Files\Yggdrasil\yggdrasil.exe`. | ||
| Make sure `C:\Program Files\Yggdrasil` is on your system `PATH`. | ||
| --- | ||
| ## After any install | ||
| 1. Restart the OpenClaw gateway. | ||
| 2. The plugin detects the binary, generates a config, and starts the daemon. | ||
| 3. Your `200::/8` address will be shown in the gateway logs. | ||
| 4. Call `yggdrasil_check()` to confirm and get your routable address to share. |
| --- | ||
| name: yggdrasil-setup | ||
| description: Diagnose and guide Yggdrasil installation so the agent can establish globally-routable IPv6 P2P connections. | ||
| version: 0.1.0 | ||
| metadata: | ||
| openclaw: | ||
| emoji: "🌐" | ||
| homepage: https://github.com/ReScienceLab/declaw | ||
| install: | ||
| - kind: node | ||
| package: "@resciencelab/declaw" | ||
| --- | ||
| # Yggdrasil Setup Skill | ||
| Yggdrasil gives every OpenClaw agent a globally-routable `200::/8` IPv6 address derived from their Ed25519 keypair. Without it, P2P addresses are local-only and unreachable by peers on other machines. | ||
| ## When to use | ||
| | Situation | Action | | ||
| |---|---| | ||
| | User asks "is P2P working?" or "can I connect?" | Call `yggdrasil_check()`, explain the result | | ||
| | User asks "what is my address?" for the first time | Call `yggdrasil_check()` to confirm it is routable | | ||
| | `p2p_send_message` fails | Call `yggdrasil_check()` to diagnose | | ||
| | User says Yggdrasil is not installed | Guide through installation (see `references/install.md`) | | ||
| | User asks what Yggdrasil is | Explain briefly, then ask if they want to install | | ||
| ## Interpreting yggdrasil_check results | ||
| | Address type | Meaning | What to tell the user | | ||
| |---|---|---| | ||
| | `yggdrasil` | Daemon running, address is globally routable | Ready. Share the address with peers. | | ||
| | `test_mode` | Local/Docker only | Fine for testing on the same machine/network. Not for internet peers. | | ||
| | `derived_only` | Yggdrasil not running | Address is NOT reachable. Install Yggdrasil first. | | ||
| ## After install | ||
| Tell the user: "Restart the OpenClaw gateway. The plugin will detect Yggdrasil automatically and start the daemon — no extra configuration needed." | ||
| Then call `yggdrasil_check()` again to confirm the daemon started and show the real routable address. | ||
| See `references/install.md` for platform-specific install commands. |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
139267
4.95%253
127.93%1724
-0.52%