@dp-pcs/ogp 0.2.17 → 0.2.19

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.
package/README.md CHANGED
@@ -60,7 +60,8 @@ You'll be prompted for:
60
60
  - Daemon port (default: 18790)
61
61
  - OpenClaw URL (default: http://localhost:18789)
62
62
  - OpenClaw API token
63
- - Your public gateway URL (can update later)
63
+ - Your public gateway URL (can update later, or use rendezvous)
64
+ - Rendezvous configuration (optional, v0.2.14+)
64
65
  - Display name and email
65
66
 
66
67
  ### 2. Start the Daemon
@@ -75,25 +76,99 @@ Or run in the background:
75
76
  ogp start --background
76
77
  ```
77
78
 
78
- ### 3. Expose to the Internet
79
+ ### 3. Making Your Gateway Reachable
79
80
 
81
+ For OGP federation to work, peers need to be able to reach your gateway over the internet. If you already have a publicly accessible URL (cloud server, VPS, Clawporate gateway), just set it as your `gatewayUrl` in `~/.ogp/config.json` and you're done. Skip to step 4.
82
+
83
+ If you're a home user behind a router/NAT, you need one of the options below to expose your gateway to the internet.
84
+
85
+ #### Option 1: Cloudflare Named Tunnel (Recommended — Free)
86
+
87
+ This is the gold standard for home users. It gives you a permanent, stable URL that never changes and starts automatically on boot once installed as a service.
88
+
89
+ **Requirements:**
90
+ - Free Cloudflare account
91
+ - A domain on Cloudflare (can be registered or transferred for free on Cloudflare)
92
+
93
+ **Setup:**
94
+ ```bash
95
+ # 1. Login to Cloudflare
96
+ cloudflared tunnel login
97
+
98
+ # 2. Create a tunnel named "ogp"
99
+ cloudflared tunnel create ogp
100
+
101
+ # 3. Route your domain to the tunnel (replace yourdomain.com)
102
+ cloudflared tunnel route dns ogp ogp.yourdomain.com
103
+
104
+ # 4. Create config file at ~/.cloudflared/config.yml
105
+ cat > ~/.cloudflared/config.yml <<EOF
106
+ tunnel: <TUNNEL_ID_FROM_STEP_2>
107
+ credentials-file: ~/.cloudflared/<TUNNEL_ID>.json
108
+
109
+ ingress:
110
+ - hostname: ogp.yourdomain.com
111
+ service: http://localhost:18790
112
+ - service: http_status:404
113
+ EOF
114
+
115
+ # 5. Install as a system service
116
+ cloudflared service install
117
+
118
+ # 6. Update your OGP config
119
+ ogp stop
120
+ # Edit ~/.ogp/config.json and set "gatewayUrl": "https://ogp.yourdomain.com"
121
+ ogp start --background
122
+ ```
123
+
124
+ Your URL is now `https://ogp.yourdomain.com` and will persist across restarts.
125
+
126
+ #### Option 2: ngrok (Good — Free tier available)
127
+
128
+ Good fallback if you don't have a domain on Cloudflare. The free tier gives you a stable subdomain that persists across restarts IF you're logged in with an ngrok account.
129
+
130
+ **Setup:**
80
131
  ```bash
81
- ogp expose
132
+ # 1. Sign up for free at https://ngrok.com and get your auth token
133
+
134
+ # 2. Authenticate ngrok
135
+ ngrok config add-authtoken YOUR_AUTH_TOKEN
136
+
137
+ # 3. Start the tunnel
138
+ ngrok http 18790
139
+
140
+ # 4. Copy the HTTPS URL (e.g., https://abc123.ngrok-free.app)
141
+
142
+ # 5. Update your OGP config
143
+ ogp stop
144
+ # Edit ~/.ogp/config.json and set "gatewayUrl": "https://abc123.ngrok-free.app"
145
+ ogp start --background
82
146
  ```
83
147
 
84
- This starts a cloudflared tunnel and displays your public URL. Copy this URL and update your configuration:
148
+ Your ngrok URL will be stable as long as you're authenticated. You can also run `ngrok http 18790 --log stdout > ngrok.log 2>&1 &` to keep it running in the background.
149
+
150
+ #### Option 3: Cloudflare Anonymous Tunnel (Quick but Ephemeral)
85
151
 
86
- 1. Stop the daemon: `ogp stop`
87
- 2. Edit `~/.ogp/config.json` and update `"gatewayUrl"` with your tunnel URL
88
- 3. Restart: `ogp start --background`
89
- 4. Optionally run tunnel in background: `ogp expose --background`
152
+ Good for testing only. No account needed, but your URL changes every time you restart the tunnel, so peers need a new URL each time.
153
+
154
+ ```bash
155
+ cloudflared tunnel --url http://localhost:18790
156
+ ```
157
+
158
+ Copy the displayed URL and update your `gatewayUrl`. **Not recommended for ongoing federation** — use this only for quick tests.
159
+
160
+ #### Option 4: Port Forwarding
161
+
162
+ Forward port 18790 on your router to your machine running OGP. Set `gatewayUrl` to `http://YOUR_PUBLIC_IP:18790`.
163
+
164
+ This works but exposes your home IP address. Most users should prefer the tunnel options above.
90
165
 
91
166
  ### 4. Share Your URL
92
167
 
93
168
  Share your gateway URL with peers who want to federate with you. They can discover your public key at:
94
169
 
95
170
  ```
96
- https://your-tunnel-url.com/.well-known/ogp
171
+ https://your-gateway-url.com/.well-known/ogp
97
172
  ```
98
173
 
99
174
  ## All Commands
@@ -112,7 +187,7 @@ https://your-tunnel-url.com/.well-known/ogp
112
187
 
113
188
  | Command | Description |
114
189
  |---------|-------------|
115
- | `ogp expose` | Start cloudflared tunnel in foreground |
190
+ | `ogp expose` | Launch guided tunnel setup wizard (coming soon) or start cloudflared tunnel in foreground |
116
191
  | `ogp expose --background` | Run tunnel as background process |
117
192
  | `ogp expose --method ngrok` | Use ngrok instead of cloudflared |
118
193
  | `ogp expose stop` | Stop the tunnel |
@@ -327,7 +402,7 @@ ogp agent-comms activity stan --last 20
327
402
  └─────────────┘ └──────────────┘ └─────────────┘
328
403
  ```
329
404
 
330
- 1. **Discovery**: Peers discover each other via `/.well-known/ogp` endpoint
405
+ 1. **Discovery**: Peers discover each other via `/.well-known/ogp` endpoint or rendezvous server
331
406
  2. **Request**: Alice requests federation with Bob's OGP instance
332
407
  3. **Approval**: Bob approves (or rejects) the federation request
333
408
  4. **Messaging**: Approved peers can send cryptographically signed messages
@@ -336,6 +411,124 @@ ogp agent-comms activity stan --last 20
336
411
 
337
412
  All messages are signed with Ed25519 cryptographic signatures to prevent tampering and impersonation.
338
413
 
414
+ ## Rendezvous — Zero-Config Peer Discovery (v0.2.14+)
415
+
416
+ OGP's rendezvous service eliminates the need for manual URL exchange and tunnel configuration. Gateways auto-register by public key, enabling peers to discover and connect to each other with a single command.
417
+
418
+ ### The Problem It Solves
419
+
420
+ Traditional federation requires both peers to be publicly reachable and manually exchange gateway URLs. With rendezvous:
421
+ - No tunnel setup required (ngrok, Cloudflare Tunnel, port forwarding)
422
+ - No manual URL sharing
423
+ - No URL rotation issues (free ngrok tiers)
424
+ - Automatic peer discovery by public key
425
+
426
+ ### How It Works
427
+
428
+ 1. Your OGP daemon auto-registers with the rendezvous server on startup (`POST /register`) using your public key and connection details
429
+ 2. A 30-second heartbeat keeps your registration alive (90-second TTL)
430
+ 3. Peers can look you up by public key (`GET /peer/:pubkey`) and connect directly
431
+ 4. On shutdown, your daemon auto-deregisters (`DELETE /peer/:pubkey`)
432
+
433
+ The rendezvous server **never touches message content** — it only stores connection hints (IP + port). All OGP messages remain end-to-end signed between peers.
434
+
435
+ ### Configuration
436
+
437
+ Add the `rendezvous` block to `~/.ogp/config.json`:
438
+
439
+ ```json
440
+ {
441
+ "daemonPort": 18790,
442
+ "openclawUrl": "http://localhost:18789",
443
+ "openclawToken": "your-token",
444
+ "rendezvous": {
445
+ "enabled": true,
446
+ "url": "https://rendezvous.elelem.expert"
447
+ }
448
+ }
449
+ ```
450
+
451
+ The setup wizard (`ogp setup`) prompts for rendezvous configuration.
452
+
453
+ **For cloud/ECS gateways behind load balancers**, set the `OGP_PUBLIC_URL` environment variable to override automatic IP detection:
454
+
455
+ ```bash
456
+ export OGP_PUBLIC_URL=https://your-gateway.example.com
457
+ ogp start
458
+ ```
459
+
460
+ Or add `publicUrl` to the rendezvous config:
461
+
462
+ ```json
463
+ {
464
+ "rendezvous": {
465
+ "enabled": true,
466
+ "url": "https://rendezvous.elelem.expert",
467
+ "publicUrl": "https://your-gateway.example.com"
468
+ }
469
+ }
470
+ ```
471
+
472
+ ### Federation Invite Flow (v0.2.15+)
473
+
474
+ The invite flow removes the need to exchange public keys. One command generates a short-lived token; your peer uses it to connect instantly.
475
+
476
+ **Generate an invite:**
477
+ ```bash
478
+ ogp federation invite
479
+ ```
480
+
481
+ Output:
482
+ ```
483
+ Your invite code: a3f7k2 (expires in 10 minutes)
484
+ Share this with your peer — they run: ogp federation accept a3f7k2
485
+ ```
486
+
487
+ **Accept an invite:**
488
+ ```bash
489
+ ogp federation accept a3f7k2
490
+ ```
491
+
492
+ Output:
493
+ ```
494
+ Connected to a3f7k2... via rendezvous ✅
495
+ ```
496
+
497
+ **How invite codes work:**
498
+ - `ogp federation invite` generates a 6-character alphanumeric token stored on the rendezvous server with a 10-minute TTL
499
+ - `ogp federation accept <token>` resolves the token to a pubkey + address and auto-connects
500
+ - Tokens are non-consuming (multiple peers can accept the same invite within the TTL window)
501
+
502
+ ### Direct Connection by Public Key (v0.2.14+)
503
+
504
+ Connect to any peer registered on rendezvous by their public key:
505
+
506
+ ```bash
507
+ ogp federation connect <pubkey>
508
+ ```
509
+
510
+ This looks up the peer on the rendezvous server and establishes federation directly.
511
+
512
+ ### Privacy & Self-Hosting
513
+
514
+ **Privacy:**
515
+ - Rendezvous stores only: public key, IP address, port, and last-seen timestamp
516
+ - No message content passes through rendezvous
517
+ - Registrations expire after 90 seconds without heartbeat
518
+ - Open source and self-hostable
519
+
520
+ **Public instance:** `https://rendezvous.elelem.expert`
521
+
522
+ **Self-host:**
523
+ ```bash
524
+ cd packages/rendezvous
525
+ npm install
526
+ npm run build
527
+ PORT=3000 node dist/index.js
528
+ ```
529
+
530
+ Update your `rendezvous.url` config to point to your instance.
531
+
339
532
  ### Message Format
340
533
 
341
534
  ```json
@@ -581,12 +774,29 @@ Configuration is stored in `~/.ogp/config.json`:
581
774
  "gatewayUrl": "https://your-public-url.com",
582
775
  "displayName": "Your Name",
583
776
  "email": "you@example.com",
584
- "stateDir": "~/.ogp"
777
+ "stateDir": "~/.ogp",
778
+ "rendezvous": {
779
+ "enabled": true,
780
+ "url": "https://rendezvous.elelem.expert",
781
+ "publicUrl": "https://your-gateway.example.com"
782
+ }
585
783
  }
586
784
  ```
587
785
 
588
- Additional state files:
589
- - `~/.ogp/keypair.json` - Ed25519 keypair (keep secure!)
786
+ ### Environment Variables
787
+
788
+ - `OGP_PUBLIC_URL` (v0.2.17+): Override automatic IP detection for rendezvous registration. Use this for cloud/ECS gateways behind load balancers where the detected IP differs from the public endpoint.
789
+
790
+ ```bash
791
+ export OGP_PUBLIC_URL=https://your-gateway.example.com
792
+ ogp start
793
+ ```
794
+
795
+ Takes precedence over `rendezvous.publicUrl` in config.json.
796
+
797
+ ### State Files
798
+
799
+ - `~/.ogp/keypair.json` - Ed25519 keypair (keep secure! migrated to macOS Keychain on v0.2.13+)
590
800
  - `~/.ogp/peers.json` - Federated peer list with scope grants
591
801
  - `~/.ogp/intents.json` - Intent registry (built-in + custom)
592
802
  - `~/.ogp/projects.json` - Project contexts and contributions
@@ -1 +1 @@
1
- {"version":3,"file":"agent-comms.d.ts","sourceRoot":"","sources":["../../src/cli/agent-comms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,OAAO,EAOL,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAmElD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CA6D9F;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CASlG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAS/D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAYlG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CASzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAShD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAajE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAGrD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGjD;AAsBD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,EAAE,CAO1F"}
1
+ {"version":3,"file":"agent-comms.d.ts","sourceRoot":"","sources":["../../src/cli/agent-comms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,OAAO,EAOL,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CA0GlD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CA6D9F;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CASlG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAS/D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAYlG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CASzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAShD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAajE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAGrD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGjD;AAsBD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,EAAE,CAO1F"}
@@ -9,27 +9,59 @@ import { listPeers, getPeer, setPeerTopicPolicy, removePeerTopicPolicy, clearPee
9
9
  export function showPolicies(peerId) {
10
10
  const config = loadAgentCommsConfig();
11
11
  if (peerId) {
12
- // Show specific peer's effective policies
12
+ // Show specific peer's effective policies as a readable status page
13
13
  const peer = findPeerByIdOrName(peerId);
14
14
  if (!peer) {
15
15
  console.error(`Peer not found: ${peerId}`);
16
16
  return;
17
17
  }
18
- console.log(`\nPOLICIES FOR ${peer.displayName} (${peer.id}):\n`);
18
+ console.log(`\nAGENT-COMMS STATUS FOR ${peer.displayName} (${peer.id}):\n`);
19
19
  const effective = getAllEffectivePolicies(peer.id);
20
20
  const peerSpecific = peer.responsePolicy || {};
21
- if (Object.keys(effective).length === 0) {
22
- console.log(' No policies configured (will use default level)');
21
+ const effectiveDefault = peer.defaultLevel || config.defaultLevel;
22
+ // Partition into allowed and blocked
23
+ const allowed = [];
24
+ const blocked = [];
25
+ for (const [topic, policy] of Object.entries(effective)) {
26
+ if (policy.level === 'off') {
27
+ blocked.push(topic);
28
+ }
29
+ else {
30
+ const source = peerSpecific[topic] ? '' : ' (global)';
31
+ const notes = policy.notes ? ` — ${policy.notes}` : '';
32
+ allowed.push(` ✓ ${topic}: ${policy.level}${source}${notes}`);
33
+ }
34
+ }
35
+ if (allowed.length > 0) {
36
+ console.log(' ALLOWED TOPICS (messages will reach your agent):');
37
+ allowed.forEach(l => console.log(l));
23
38
  }
24
39
  else {
25
- for (const [topic, policy] of Object.entries(effective)) {
26
- const source = peerSpecific[topic] ? '(peer-specific)' : '(global)';
27
- const notes = policy.notes ? ` - ${policy.notes}` : '';
28
- console.log(` ${topic}: ${policy.level} ${source}${notes}`);
40
+ console.log(' ⚠ No topics currently allowed for this peer.');
41
+ }
42
+ if (blocked.length > 0) {
43
+ console.log('\n BLOCKED TOPICS (messages are rejected silently to sender):');
44
+ blocked.forEach(t => console.log(` ✗ ${t}: off`));
45
+ }
46
+ const defaultIsOff = effectiveDefault === 'off';
47
+ console.log(`\n Default for unknown topics: ${effectiveDefault}${defaultIsOff ? ' (anything not listed above is blocked)' : ''}`);
48
+ if (allowed.length === 0 || defaultIsOff) {
49
+ console.log(`\n NEXT STEPS:`);
50
+ if (allowed.length === 0) {
51
+ console.log(` Add a topic so messages get through:`);
52
+ console.log(` ogp agent-comms add-topic ${peer.id} general --level summary`);
53
+ }
54
+ if (defaultIsOff) {
55
+ console.log(` Or open all topics by default:`);
56
+ console.log(` ogp agent-comms set-default ${peer.id} summary`);
29
57
  }
30
58
  }
31
- const peerDefaultNote = peer.defaultLevel ? ` (peer override: ${peer.defaultLevel})` : '';
32
- console.log(`\n Default level: ${config.defaultLevel}${peerDefaultNote}`);
59
+ else {
60
+ console.log(`\n Commands:`);
61
+ console.log(` Add topic: ogp agent-comms add-topic ${peer.id} <topic> --level summary`);
62
+ console.log(` Block topic: ogp agent-comms set-topic ${peer.id} <topic> off`);
63
+ console.log(` Remove topic: ogp agent-comms remove-topic ${peer.id} <topic>`);
64
+ }
33
65
  }
34
66
  else {
35
67
  // Show global policies and summary of per-peer
@@ -45,21 +77,28 @@ export function showPolicies(peerId) {
45
77
  }
46
78
  console.log(`\n Default level: ${config.defaultLevel}`);
47
79
  console.log(` Activity logging: ${config.activityLog ? 'enabled' : 'disabled'}`);
48
- // Show peers with custom policies or custom default levels
80
+ // Show all approved peers and their comms status
49
81
  const peers = listPeers('approved');
50
- const peersWithPolicies = peers.filter(p => (p.responsePolicy && Object.keys(p.responsePolicy).length > 0) || p.defaultLevel);
51
- if (peersWithPolicies.length > 0) {
52
- console.log('\nPEER-SPECIFIC POLICIES:\n');
53
- for (const peer of peersWithPolicies) {
54
- console.log(` ${peer.displayName} (${peer.id}):`);
55
- if (peer.defaultLevel) {
56
- console.log(` [default]: ${peer.defaultLevel}`);
57
- }
58
- if (peer.responsePolicy) {
59
- for (const [topic, policy] of Object.entries(peer.responsePolicy)) {
60
- console.log(` ${topic}: ${policy.level}`);
61
- }
82
+ if (peers.length > 0) {
83
+ console.log('\nAPPROVED PEERS:\n');
84
+ for (const peer of peers) {
85
+ const effective = getAllEffectivePolicies(peer.id);
86
+ const effectiveDefault = peer.defaultLevel || config.defaultLevel;
87
+ const allowedTopics = Object.entries(effective).filter(([, p]) => p.level !== 'off').map(([t]) => t);
88
+ const blockedTopics = Object.entries(effective).filter(([, p]) => p.level === 'off').map(([t]) => t);
89
+ const hasAnyAllowed = allowedTopics.length > 0 || effectiveDefault !== 'off';
90
+ const statusIcon = hasAnyAllowed ? '✓' : '⚠ ';
91
+ const statusText = hasAnyAllowed
92
+ ? allowedTopics.length > 0 ? `topics: ${allowedTopics.join(', ')}` : `default: ${effectiveDefault}`
93
+ : 'NO TOPICS ALLOWED — messages will be blocked';
94
+ console.log(` ${statusIcon} ${peer.displayName} (${peer.id})`);
95
+ console.log(` ${statusText}`);
96
+ if (blockedTopics.length > 0)
97
+ console.log(` blocked: ${blockedTopics.join(', ')}`);
98
+ if (!hasAnyAllowed) {
99
+ console.log(` → Fix: ogp agent-comms add-topic ${peer.id} general --level summary`);
62
100
  }
101
+ console.log('');
63
102
  }
64
103
  }
65
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-comms.js","sourceRoot":"","sources":["../../src/cli/agent-comms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-comms.js","sourceRoot":"","sources":["../../src/cli/agent-comms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,oBAAoB,EAEpB,oBAAoB,EAEpB,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IAEtC,IAAI,MAAM,EAAE,CAAC;QACX,oEAAoE;QACpE,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAE5E,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;QAElE,qCAAqC;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACxD,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;gBACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAClE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;YAC9E,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,KAAK,KAAK,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,mCAAmC,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEnI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,+CAA+C,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAC;YAC9F,OAAO,CAAC,GAAG,CAAC,+CAA+C,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,kDAAkD,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,+CAA+C;QAC/C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAEpC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAClE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAElF,iDAAiD;QACjD,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;gBAClE,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACrG,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBAErG,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,KAAK,KAAK,CAAC;gBAC7E,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9C,MAAM,UAAU,GAAG,aAAa;oBAC9B,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,gBAAgB,EAAE;oBACnG,CAAC,CAAC,8CAA8C,CAAC;gBAEnD,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;gBACnC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxF,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,0CAA0C,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAC;gBAC3F,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAYD,MAAM,UAAU,iBAAiB,CAAC,OAA2B,EAAE,OAAyB;IACtF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,4BAA4B;QAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,mCAAmC;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,OAAO,GAAyC,EAAE,CAAC;IAEzD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,yCAAyC;QACzC,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,KAAa,EAAE,KAAoB,EAAE,KAAc;IAC1F,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,iBAAiB,KAAK,SAAS,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;AAC1F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,KAAa;IACvD,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,UAAU,IAAI,CAAC,WAAW,aAAa,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,KAAa,EAAE,KAAoB,EAAE,KAAc;IAC1F,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9C,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,WAAW,KAAK,iBAAiB,KAAK,SAAS,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;AAC9F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,KAAoB;IACjE,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,SAAS,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,WAAW,gCAAgC,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAe,EAAE,IAAa;IACzD,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAE5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,gBAAgB,EAAE,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAoB;IAC7C,eAAe,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,oCAAoC,KAAK,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,2BAA2B;IAC3B,IAAI,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,uBAAuB;IACvB,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;IACxD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,4CAA4C;IAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC;IAEhF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrB,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,WAAW;QACnB,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KAC5E,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/cli/federation.ts"],"names":[],"mappings":"AAiBA,wBAAsB,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhG;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuEzF;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FnG;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBpE;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CA8DrB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDxE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,GACL,OAAO,CAAC,IAAI,CAAC,CAkGf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCtD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CnE;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBrE"}
1
+ {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/cli/federation.ts"],"names":[],"mappings":"AAiBA,wBAAsB,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhG;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuEzF;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGnG;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBpE;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CA8DrB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDxE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,GACL,OAAO,CAAC,IAAI,CAAC,CAkGf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCtD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CnE;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBrE"}
@@ -139,6 +139,12 @@ export async function federationApprove(peerId, options = {}) {
139
139
  }
140
140
  console.log(`✓ Auto-registered ${projects.length} project${projects.length > 1 ? 's' : ''} as agent-comms topic${projects.length > 1 ? 's' : ''}`);
141
141
  }
142
+ // BUILD-103: Auto-enable "general" topic so agent-comms works out of the box
143
+ setPeerTopicPolicy(peerId, 'general', 'summary');
144
+ console.log(`✓ Agent-comms ready: topic "general" → summary (messages from this peer will reach your agent)`);
145
+ console.log(` To add more topics: ogp agent-comms add-topic ${peerId} <topic> --level summary`);
146
+ console.log(` To restrict topics: ogp agent-comms set-topic ${peerId} general off`);
147
+ console.log(` To review policies: ogp agent-comms policies ${peerId}`);
142
148
  // Notify the peer — send both formats for maximum compatibility
143
149
  try {
144
150
  const keypair = loadOrGenerateKeyPair();
@@ -1 +1 @@
1
- {"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/cli/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/cli/federation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"message-handler.d.ts","sourceRoot":"","sources":["../../src/daemon/message-handler.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IAEb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CA4G1B"}
1
+ {"version":3,"file":"message-handler.d.ts","sourceRoot":"","sources":["../../src/daemon/message-handler.ts"],"names":[],"mappings":"AAkDA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IAEb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CA4G1B"}
@@ -9,10 +9,30 @@ import { loadConfig } from '../shared/config.js';
9
9
  import { spawn } from 'node:child_process';
10
10
  import fs from 'node:fs';
11
11
  /**
12
- * Witty rejection message for "off" policy level.
13
- * Intentionally does NOT confirm or deny topic existence.
12
+ * Witty rejection messages for "off" policy level.
13
+ * Vague by design — does NOT confirm or deny topic existence.
14
+ * Rotates randomly so repeated rejections don't feel like a pattern.
14
15
  */
15
- const WITTY_REJECTION_MESSAGE = "I appreciate the curiosity, but I'm not in a position to engage on that one. Some things are just between me and my diary. 🔒";
16
+ const WITTY_REJECTION_MESSAGES = [
17
+ "You already know I'm not going to answer that. Why are you even asking? 🦝",
18
+ "Bold of you to try. The answer is still no.",
19
+ "My lips are sealed. Have been for a while. Will continue to be.",
20
+ "Oh, that topic. Yeah. No.",
21
+ "I'd respond but I left my ability to discuss that in another life.",
22
+ "That's a great question for literally anyone else.",
23
+ "Interesting. Anyway.",
24
+ "The audacity. Respectfully.",
25
+ "I'm going to pretend you didn't send that and we'll both move on.",
26
+ "Not today. Not tomorrow. Genuinely not ever.",
27
+ "I have been specifically asked not to engage with that. You're welcome.",
28
+ "Some things are sacred. This is one of them. Goodbye.",
29
+ "Ask me about literally anything else. Literally.",
30
+ "I'm not ignoring you. I'm just choosing not to respond. There's a difference.",
31
+ "Error 418: I'm a teapot and that topic is not tea.",
32
+ ];
33
+ function getWittyRejection() {
34
+ return WITTY_REJECTION_MESSAGES[Math.floor(Math.random() * WITTY_REJECTION_MESSAGES.length)];
35
+ }
16
36
  export async function handleMessage(message, signature, messageStr // raw JSON string used to sign — avoids key-order drift
17
37
  ) {
18
38
  // 1. Verify sender exists and is approved
@@ -133,21 +153,41 @@ async function handleAgentComms(message, displayName) {
133
153
  level: policy.level
134
154
  });
135
155
  // BUILD-101: If policy is 'off', send signed rejection with witty message
136
- // Intentionally does NOT confirm or deny topic existence
156
+ // Intentionally does NOT confirm or deny topic existence to the sender.
157
+ // But DO notify the local user so they know what happened and can act on it.
137
158
  if (policy.level === 'off') {
138
159
  const { loadOrGenerateKeyPair } = await import('./keypair.js');
139
160
  const { signObject } = await import('../shared/signing.js');
140
161
  const keypair = loadOrGenerateKeyPair();
162
+ const wittyMessage = getWittyRejection();
141
163
  const rejection = {
142
164
  status: 'rejected',
143
165
  reason: 'not-available',
144
- message: WITTY_REJECTION_MESSAGE
166
+ message: wittyMessage
145
167
  };
146
168
  const { signature } = signObject(rejection, keypair.privateKey);
169
+ // Notify the local user in plain conversational language so their agent
170
+ // can relay it naturally — e.g. "Hey, Stanislav tried to message you about X"
171
+ const preview = messageText.length > 80 ? messageText.slice(0, 80).trimEnd() + '…' : messageText;
172
+ const previewClause = preview ? ` They said: "${preview}"` : '';
173
+ await notifyOpenClaw({
174
+ text: `Hey — ${displayName} just tried to send you a message on topic "${topic}" but I blocked it because that topic isn't on your allow-list.${previewClause} If you want to let them through on "${topic}", just say the word and I'll enable it.`,
175
+ metadata: {
176
+ ogp: {
177
+ from: message.from,
178
+ intent: 'agent-comms',
179
+ nonce: message.nonce,
180
+ topic,
181
+ message: messageText,
182
+ blocked: true,
183
+ fixHint: `ogp agent-comms add-topic ${message.from} ${topic} --level summary`
184
+ }
185
+ }
186
+ });
147
187
  return {
148
188
  success: false,
149
189
  nonce: message.nonce,
150
- error: WITTY_REJECTION_MESSAGE,
190
+ error: wittyMessage,
151
191
  statusCode: 403,
152
192
  response: {
153
193
  ...rejection,
@@ -1 +1 @@
1
- {"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../src/daemon/message-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../src/daemon/message-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,399 @@
1
+ # NAT Hole Punching Research Spike for OGP
2
+
3
+ **Date:** 2026-03-30
4
+ **Status:** Research Complete — No Implementation
5
+ **Goal:** Evaluate UDP NAT hole punching to enable home users behind NAT to federate without port forwarding or tunnels
6
+
7
+ ---
8
+
9
+ ## 🎯 Recommendation: DEFER Implementation
10
+
11
+ **Do NOT implement UDP hole punching for OGP at this time.**
12
+
13
+ ### Rationale
14
+
15
+ 1. **HTTP fallback already works** — OGP's rendezvous server + HTTP messaging provides zero-config federation for 95%+ of residential users via UPnP, public IP detection, and tunnel services (ngrok/Cloudflare)
16
+
17
+ 2. **Symmetric NAT is a deal-breaker** — UDP hole punching fails for ~15% of residential users behind symmetric NAT, requiring a TURN relay server (expensive, complex, defeats the purpose of P2P)
18
+
19
+ 3. **High implementation complexity** — Adding UDP transport is a major undertaking (S → L complexity) with marginal benefit over existing HTTP solution
20
+
21
+ 4. **TCP already traverses NAT** — HTTP over TCP is already NAT-friendly and works behind most residential routers without special handling
22
+
23
+ 5. **No clear user pain point** — Users aren't blocked by the current HTTP approach; they use rendezvous server or tunnels successfully
24
+
25
+ ### If User Demand Changes
26
+
27
+ If home users report widespread federation issues due to NAT (not currently the case), revisit this decision. Priority order:
28
+
29
+ 1. **Improve HTTP rendezvous** — Add TURN-style relay for HTTP (simpler than UDP hole punching)
30
+ 2. **Integrate tunnel services** — Embed ngrok/Cloudflare SDK for automatic tunnel setup
31
+ 3. **UDP hole punching** — Only if HTTP solutions prove insufficient (unlikely)
32
+
33
+ ---
34
+
35
+ ## 📊 Library Comparison
36
+
37
+ ### Evaluated Node.js STUN/UDP Libraries
38
+
39
+ | Library | Version | Last Updated | Weekly DLs | TS Support | License | Status | Verdict |
40
+ |---------|---------|--------------|------------|------------|---------|--------|---------|
41
+ | **stun** (nodertc) | 2.1.0 | 6 years ago | Low | ❌ No | MIT | Unmaintained | ❌ Too old |
42
+ | **node-stun** | 0.1.2 | 8 years ago | Minimal | ❌ No | Unknown | Abandoned | ❌ Abandoned |
43
+ | **werift** | 0.22.2 | 6 months ago | 29 dependents | ✅ Yes | MIT | Active | ⚠️ Overkill (full WebRTC) |
44
+ | **udp-hole-puncher** | 1.1.0 | 9 months ago | None | ❌ No | MIT | Stale | ❌ No adoption |
45
+ | **xkore** | 1.0.1 | 2 months ago | 1 dependent | Unknown | ISC | New/unproven | ⚠️ Too new |
46
+ | **nat-traversal** | Latest | Unknown | Low | ❌ No | Unknown | Active | ⚠️ TCP relay (not UDP hole punch) |
47
+
48
+ ### Analysis
49
+
50
+ **No clear winner.** The ecosystem is fragmented:
51
+
52
+ - **Old libraries** (stun, node-stun) are unmaintained and lack TypeScript
53
+ - **New libraries** (xkore) are unproven with zero adoption
54
+ - **WebRTC stacks** (werift) include hole punching but bring massive complexity (ICE, DTLS, SRTP, SDP negotiation) — massive overkill for simple peer-to-peer messaging
55
+ - **Purpose-built hole punchers** (udp-hole-puncher) have zero community adoption
56
+
57
+ **Best option if forced to implement:** Use the **nodertc/stun** library for basic STUN client functionality and implement custom UDP hole punching logic (no library does it well). This is 80% of the work anyway.
58
+
59
+ ---
60
+
61
+ ## 🏗️ OGP Architecture Analysis
62
+
63
+ ### Current HTTP Architecture
64
+
65
+ ```
66
+ ┌─────────────────────────────────────────────────────────────────┐
67
+ │ OGP Daemon (src/daemon/server.ts) │
68
+ │ - Express HTTP server on port 18790 │
69
+ │ - Endpoints: /federation/request, /federation/message, etc. │
70
+ │ - Rendezvous registration (POST /register every 30s) │
71
+ │ - Peer lookup (GET /peer/:pubkey) │
72
+ └─────────────────────────────────────────────────────────────────┘
73
+
74
+ │ HTTP/JSON + RSA signatures
75
+
76
+ ┌─────────────────────────────────────────────────────────────────┐
77
+ │ Rendezvous Server (rendezvous.elelem.expert) │
78
+ │ - HTTPS server (Express on port 3000 default) │
79
+ │ - Stores: { pubkey, ip, port, timestamp } with 90s TTL │
80
+ │ - Never touches message content (privacy preserved) │
81
+ └─────────────────────────────────────────────────────────────────┘
82
+ ```
83
+
84
+ **Key observation:** OGP daemon is a single-port HTTP server. It does NOT have:
85
+ - UDP socket handling
86
+ - STUN client/server logic
87
+ - ICE candidate gathering
88
+ - Hole punching coordination
89
+
90
+ ### Integration Points (If Implemented)
91
+
92
+ To add UDP hole punching WITHOUT breaking HTTP:
93
+
94
+ 1. **Dual transport layer** — Run HTTP server (18790) AND UDP socket (18791) concurrently
95
+ 2. **Rendezvous server changes** — Add STUN endpoint on UDP port, store both TCP port (18790) and UDP port (18791) per peer
96
+ 3. **Connection attempt sequence** — Try UDP hole punch first, fall back to HTTP if fails (timeout after 3-5s)
97
+ 4. **Protocol negotiation** — Peers must agree which transport to use via rendezvous server
98
+
99
+ **Critical constraint:** Cannot break existing HTTP federation (v0.2.0 protocol). UDP must be additive, not replacement.
100
+
101
+ ---
102
+
103
+ ## 🔬 NAT Traversal Feasibility
104
+
105
+ ### NAT Type Distribution (Estimated)
106
+
107
+ | NAT Type | % of Residential ISPs | UDP Hole Punch Success Rate | Notes |
108
+ |----------|----------------------|---------------------------|-------|
109
+ | Full Cone | ~5-10% | >95% | Rare in modern routers |
110
+ | Restricted Cone | ~40-50% | >95% | Most common, hole punching works |
111
+ | Port-Restricted Cone | ~25-35% | ~80% | Common, mostly works |
112
+ | Symmetric NAT | ~10-15% | <10% | **Requires TURN relay** |
113
+
114
+ **Sources:**
115
+ - [Academic research (IEEE)](https://ieeexplore.ieee.org/document/7021753/)
116
+ - [NAT usage studies (Springer)](https://link.springer.com/chapter/10.1007/978-3-642-19260-9_4)
117
+ - [Tailscale's NAT traversal analysis](https://tailscale.com/blog/how-nat-traversal-works)
118
+
119
+ **Key finding:** UDP hole punching succeeds for ~82-85% of peers in cone NAT scenarios. The remaining ~15% (symmetric NAT) require a TURN relay server.
120
+
121
+ ### TURN Relay Server Requirements
122
+
123
+ For symmetric NAT, peers cannot establish direct UDP connections. A TURN relay server is required:
124
+
125
+ - **Server:** [Coturn](https://github.com/coturn/coturn) (most popular open-source TURN server)
126
+ - **Hosting cost:** $20-50/month for small deployments (bandwidth-heavy)
127
+ - **Implementation effort:** Medium (2-3 weeks for integration + testing)
128
+ - **User experience:** Degrades to relay (higher latency, costs money)
129
+
130
+ **This defeats the purpose of P2P.** If we're relaying 15% of traffic, why not just use HTTP for everyone?
131
+
132
+ ---
133
+
134
+ ## 📋 Proposed Protocol Flow (If Implemented)
135
+
136
+ **NOTE:** This is theoretical. Do NOT implement without re-evaluating user need.
137
+
138
+ ### Step 1: Rendezvous Registration (Startup)
139
+
140
+ ```
141
+ OGP Daemon A Rendezvous Server
142
+ │ │
143
+ ├─ POST /register ──────────────▶ Store:
144
+ │ { │ - pubkey: "abc123..."
145
+ │ pubkey: "abc123...", │ - tcp_ip: "1.2.3.4"
146
+ │ tcp_port: 18790, │ - tcp_port: 18790
147
+ │ udp_port: 18791, │ - udp_ip: "1.2.3.4"
148
+ │ timestamp: 1234567890 │ - udp_port: 18791
149
+ │ } │ - timestamp: 1234567890
150
+ │◀─ 200 OK ─────────────────────┤ TTL: 90 seconds
151
+ ```
152
+
153
+ ### Step 2: STUN Binding Request (Detect Public IP/Port)
154
+
155
+ ```
156
+ OGP Daemon A STUN Server (on rendezvous.elelem.expert:3478 UDP)
157
+ │ │
158
+ ├─ STUN Binding Request ────────▶
159
+ │ (from local UDP port 18791) │
160
+ │ │
161
+ │◀─ STUN Binding Response ──────┤
162
+ │ { │
163
+ │ public_ip: "1.2.3.4", │
164
+ │ public_port: 54321 │ <-- NAT assigned external port
165
+ │ } │
166
+ ```
167
+
168
+ ### Step 3: Peer Connection Attempt
169
+
170
+ ```
171
+ OGP Daemon A Rendezvous Server OGP Daemon B
172
+ │ │ │
173
+ ├─ GET /peer/xyz789... ─────────▶ │
174
+ │◀─ 200 OK ───────────────────┤ │
175
+ │ { │ │
176
+ │ tcp_ip: "5.6.7.8", │ │
177
+ │ tcp_port: 18790, │ │
178
+ │ udp_ip: "5.6.7.8", │ │
179
+ │ udp_port: 65432 │ │
180
+ │ } │ │
181
+ │ │ │
182
+ ├─ Try UDP hole punch ───────────────────────────────────────▶
183
+ │ (both send UDP packets simultaneously) │
184
+ │ │ │
185
+ │◀─ UDP connection established (if cone NAT) ─────────────────┤
186
+ │ │ │
187
+ │ OR (if symmetric NAT) │ │
188
+ │ │ │
189
+ ├─ Fall back to HTTP ────────────────────────────────────────▶
190
+ │ POST /federation/message │ │
191
+ ```
192
+
193
+ ### Step 4: Fallback Relay (Symmetric NAT)
194
+
195
+ ```
196
+ OGP Daemon A TURN Relay Server OGP Daemon B
197
+ │ │ │
198
+ ├─ Allocate relay ──────────────▶ │
199
+ │◀─ Relay address ───────────────┤ │
200
+ │ (relay_ip: 9.10.11.12:4000) │ │
201
+ │ │ │
202
+ ├─ Send to relay ───────────────▶ │
203
+ │ ├─ Forward to B ───────────────▶
204
+ │ │ │
205
+ │◀─ Response from B ─────────────┤◀─ Send via relay ───────────┤
206
+ ```
207
+
208
+ **Latency impact:**
209
+ - Direct UDP: ~10-50ms
210
+ - HTTP over TCP: ~20-100ms
211
+ - TURN relay: ~50-200ms (double hop)
212
+
213
+ ---
214
+
215
+ ## 🚧 Implementation Complexity
216
+
217
+ ### Estimated Effort: **LARGE (L)**
218
+
219
+ **Components to implement:**
220
+
221
+ 1. **STUN client** (1-2 weeks)
222
+ - Bind to UDP socket (18791)
223
+ - Send STUN Binding Request to discover public IP/port
224
+ - Parse STUN Binding Response (RFC 5389 / RFC 8489)
225
+ - Handle retries and timeouts
226
+
227
+ 2. **UDP hole punching logic** (2-3 weeks)
228
+ - Coordinate simultaneous send between peers (timing is critical)
229
+ - NAT type detection (symmetric vs cone)
230
+ - Connection attempt timeout and fallback
231
+
232
+ 3. **Rendezvous server updates** (1 week)
233
+ - Add STUN endpoint on UDP port 3478
234
+ - Store UDP port alongside TCP port in peer registry
235
+ - Handle dual-transport lookups
236
+
237
+ 4. **TURN relay integration** (2-3 weeks)
238
+ - Deploy Coturn server (or use public TURN service)
239
+ - Implement TURN client in OGP daemon
240
+ - Relay allocation and authentication
241
+
242
+ 5. **Dual transport coordination** (1 week)
243
+ - Try UDP first, fall back to HTTP
244
+ - Protocol negotiation handshake
245
+ - Handle mixed scenarios (Peer A has UDP, Peer B HTTP-only)
246
+
247
+ 6. **Testing matrix** (2-3 weeks)
248
+ - Test all NAT type combinations (4x4 = 16 scenarios)
249
+ - Simulate symmetric NAT, firewall rules, packet loss
250
+ - Validate fallback paths work reliably
251
+
252
+ **Total estimated effort:** 9-13 weeks (2-3 months)
253
+
254
+ **Risk factors:**
255
+ - NAT behavior is unpredictable (ISPs change router configs)
256
+ - Timing synchronization issues (hole punching is timing-sensitive)
257
+ - TURN relay costs and maintenance burden
258
+ - Breaking changes to existing HTTP federation (backward compatibility risk)
259
+
260
+ ---
261
+
262
+ ## ⚠️ Risks and Unknowns
263
+
264
+ ### 1. Symmetric NAT Prevalence
265
+
266
+ **Unknown:** What % of OGP users are actually behind symmetric NAT?
267
+
268
+ - Industry estimates: ~10-15% residential, ~40% cellular/CGN
269
+ - OGP user base: Unknown (no telemetry data)
270
+ - **Mitigation:** Add telemetry to measure NAT type distribution before implementing
271
+
272
+ ### 2. TURN Relay Costs
273
+
274
+ **Unknown:** How much bandwidth will relayed traffic consume?
275
+
276
+ - TURN servers charge by bandwidth (not connections)
277
+ - If 15% of traffic routes through relay, costs scale with user growth
278
+ - **Mitigation:** Self-host Coturn or use public TURN services (rate-limited, unreliable)
279
+
280
+ ### 3. Firewall Interference
281
+
282
+ **Unknown:** Do corporate/school firewalls block UDP port 18791?
283
+
284
+ - Many networks whitelist HTTP (80/443) but block arbitrary UDP ports
285
+ - UDP hole punching may fail even with cone NAT due to firewall rules
286
+ - **Mitigation:** Fallback to HTTP (already implemented), so no user impact
287
+
288
+ ### 4. IPv6 Considerations
289
+
290
+ **Unknown:** Does UDP hole punching work differently on IPv6?
291
+
292
+ - IPv6 has no NAT in theory, but many ISPs still use CGN (Carrier-Grade NAT)
293
+ - STUN/TURN specs support IPv6, but library support varies
294
+ - **Mitigation:** Focus on IPv4 first, add IPv6 later if needed
295
+
296
+ ### 5. Mobile/Tethering Scenarios
297
+
298
+ **Unknown:** Do mobile hotspots (phone tethering) use symmetric NAT?
299
+
300
+ - Cellular networks often use symmetric NAT (40%+ based on research)
301
+ - Mobile users may be disproportionately blocked by UDP hole punching
302
+ - **Mitigation:** HTTP fallback works fine for mobile users
303
+
304
+ ### 6. Library Ecosystem Immaturity
305
+
306
+ **Risk:** No battle-tested Node.js library for UDP hole punching exists
307
+
308
+ - Would need to implement custom logic on top of basic STUN client
309
+ - Debugging NAT traversal issues is notoriously difficult
310
+ - **Mitigation:** Use werift (WebRTC stack) despite complexity, or write custom implementation
311
+
312
+ ---
313
+
314
+ ## 🔗 References
315
+
316
+ ### Research Papers
317
+ - [Peer-to-Peer Communication Across NATs (Bryan Ford)](https://pdos.csail.mit.edu/papers/p2pnat.pdf)
318
+ - [UDP Hole Punching - Wikipedia](https://en.wikipedia.org/wiki/UDP_hole_punching)
319
+ - [A New Method for Symmetric NAT Traversal](https://www.researchgate.net/publication/228411948_A_New_Method_for_Symmetric_NAT_Traversal_in_UDP_and_TCP)
320
+
321
+ ### Implementation Guides
322
+ - [How NAT Traversal Works (Tailscale)](https://tailscale.com/blog/how-nat-traversal-works)
323
+ - [NAT Traversal Visual Guide (DEV Community)](https://dev.to/dev-dhanushkumar/nat-traversal-a-visual-guide-to-udp-hole-punching-1936)
324
+ - [Understanding NAT Types (DH2i)](https://support.dh2i.com/docs/Archive/kbs/general/understanding-different-nat-types-and-hole-punching/)
325
+
326
+ ### Libraries and Tools
327
+ - [nodertc/stun (GitHub)](https://github.com/nodertc/stun) — RFC 5389 STUN client/server
328
+ - [werift (npm)](https://www.npmjs.com/package/werift) — WebRTC stack for TypeScript/Node.js
329
+ - [udp-hole-puncher (npm)](https://www.npmjs.com/package/udp-hole-puncher) — Dedicated hole punching library
330
+ - [xkore (npm)](https://www.npmjs.com/search?q=nat+traversal) — Newest NAT traversal library (2 months old)
331
+ - [coturn (GitHub)](https://github.com/coturn/coturn) — Open-source TURN server
332
+
333
+ ### STUN/TURN Standards
334
+ - [RFC 5389: Session Traversal Utilities for NAT (STUN)](https://www.rfc-editor.org/rfc/rfc5389.html)
335
+ - [RFC 8489: STUN (obsoletes RFC 5389)](https://www.rfc-editor.org/rfc/rfc8489.html)
336
+ - [RFC 5766: Traversal Using Relays around NAT (TURN)](https://www.rfc-editor.org/rfc/rfc5766)
337
+ - [RFC 8656: TURN (obsoletes RFC 5766)](https://datatracker.ietf.org/doc/rfc8656/)
338
+
339
+ ### Deployment Resources
340
+ - [Coturn Setup Guide (Gabriel Tanner)](https://gabrieltanner.org/blog/turn-server/)
341
+ - [WebRTC STUN Server Integration (VideoSDK)](https://www.videosdk.live/developer-hub/stun-turn-server/webrtc-stun-server)
342
+ - [STUN/TURN Server in Azure (Microsoft)](https://learn.microsoft.com/en-us/gaming/azure/reference-architectures/stun-turn-server-in-azure)
343
+
344
+ ---
345
+
346
+ ## 🎬 Next Steps (If Reconsidered)
347
+
348
+ **Do NOT proceed with implementation until:**
349
+
350
+ 1. **User research** — Survey OGP users: Are they blocked by NAT? What % use tunnels vs direct IP?
351
+ 2. **Telemetry** — Add NAT type detection to OGP daemon, collect anonymous stats for 30 days
352
+ 3. **Cost analysis** — Estimate TURN relay costs based on actual traffic patterns
353
+ 4. **Prototype** — Build minimal UDP hole punch prototype (no TURN) and test with 10-20 users
354
+ 5. **Decision point** — If >50% of users benefit AND TURN costs are acceptable, proceed with full implementation
355
+
356
+ **Until then:** Focus on improving HTTP rendezvous server reliability and user experience.
357
+
358
+ ---
359
+
360
+ ## Appendix: NAT Type Detection
361
+
362
+ For future reference, here's how to detect NAT type using STUN:
363
+
364
+ ```typescript
365
+ import dgram from 'dgram';
366
+
367
+ async function detectNATType(): Promise<'full-cone' | 'restricted' | 'port-restricted' | 'symmetric'> {
368
+ const socket = dgram.createSocket('udp4');
369
+
370
+ // Test 1: Basic STUN binding to STUN server A
371
+ const { ip: publicIP1, port: publicPort1 } = await stunBinding(socket, 'stun.l.google.com', 19302);
372
+
373
+ // Test 2: STUN binding to STUN server B (different IP)
374
+ const { ip: publicIP2, port: publicPort2 } = await stunBinding(socket, 'stun1.l.google.com', 19302);
375
+
376
+ // If public ports differ, it's symmetric NAT
377
+ if (publicPort1 !== publicPort2) {
378
+ return 'symmetric';
379
+ }
380
+
381
+ // Test 3: Request STUN server to respond from different port
382
+ const respondsFromDifferentPort = await stunBindingWithPortChange(socket, 'stun.l.google.com', 19302);
383
+
384
+ if (respondsFromDifferentPort) {
385
+ return 'full-cone'; // Accepts packets from any IP:port
386
+ }
387
+
388
+ // Test 4: Request response from different IP
389
+ const respondsFromDifferentIP = await stunBindingWithIPChange(socket, 'stun.l.google.com', 19302);
390
+
391
+ if (respondsFromDifferentIP) {
392
+ return 'restricted'; // Accepts packets from any port on same IP
393
+ }
394
+
395
+ return 'port-restricted'; // Only accepts packets from same IP:port
396
+ }
397
+ ```
398
+
399
+ **Note:** This is pseudo-code. Actual implementation requires RFC 5780 (NAT Behavior Discovery).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dp-pcs/ogp",
3
- "version": "0.2.17",
3
+ "version": "0.2.19",
4
4
  "description": "Open Gateway Protocol (OGP) - Peer-to-peer federation daemon for OpenClaw AI gateways with cryptographic signatures",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",