@dp-pcs/ogp 0.6.0 → 0.7.0-rc.1

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.
Files changed (87) hide show
  1. package/README.md +47 -11
  2. package/dist/cli/agent-targeting.d.ts +21 -0
  3. package/dist/cli/agent-targeting.d.ts.map +1 -0
  4. package/dist/cli/agent-targeting.js +44 -0
  5. package/dist/cli/agent-targeting.js.map +1 -0
  6. package/dist/cli/config.d.ts +4 -0
  7. package/dist/cli/config.d.ts.map +1 -1
  8. package/dist/cli/config.js +48 -0
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/federation.d.ts +2 -1
  11. package/dist/cli/federation.d.ts.map +1 -1
  12. package/dist/cli/federation.js +162 -92
  13. package/dist/cli/federation.js.map +1 -1
  14. package/dist/cli/keychain.d.ts +22 -0
  15. package/dist/cli/keychain.d.ts.map +1 -0
  16. package/dist/cli/keychain.js +213 -0
  17. package/dist/cli/keychain.js.map +1 -0
  18. package/dist/cli/project.d.ts +1 -0
  19. package/dist/cli/project.d.ts.map +1 -1
  20. package/dist/cli/project.js +9 -2
  21. package/dist/cli/project.js.map +1 -1
  22. package/dist/cli/setup.d.ts +37 -0
  23. package/dist/cli/setup.d.ts.map +1 -1
  24. package/dist/cli/setup.js +130 -0
  25. package/dist/cli/setup.js.map +1 -1
  26. package/dist/cli.js +40 -6
  27. package/dist/cli.js.map +1 -1
  28. package/dist/daemon/heartbeat.d.ts +37 -0
  29. package/dist/daemon/heartbeat.d.ts.map +1 -1
  30. package/dist/daemon/heartbeat.js +195 -21
  31. package/dist/daemon/heartbeat.js.map +1 -1
  32. package/dist/daemon/keypair.d.ts.map +1 -1
  33. package/dist/daemon/keypair.js +144 -22
  34. package/dist/daemon/keypair.js.map +1 -1
  35. package/dist/daemon/message-handler.d.ts +8 -0
  36. package/dist/daemon/message-handler.d.ts.map +1 -1
  37. package/dist/daemon/message-handler.js +60 -18
  38. package/dist/daemon/message-handler.js.map +1 -1
  39. package/dist/daemon/notify.d.ts +6 -0
  40. package/dist/daemon/notify.d.ts.map +1 -1
  41. package/dist/daemon/notify.js +9 -2
  42. package/dist/daemon/notify.js.map +1 -1
  43. package/dist/daemon/openclaw-bridge.d.ts +6 -0
  44. package/dist/daemon/openclaw-bridge.d.ts.map +1 -1
  45. package/dist/daemon/openclaw-bridge.js +10 -2
  46. package/dist/daemon/openclaw-bridge.js.map +1 -1
  47. package/dist/daemon/peers.d.ts +31 -0
  48. package/dist/daemon/peers.d.ts.map +1 -1
  49. package/dist/daemon/peers.js +66 -4
  50. package/dist/daemon/peers.js.map +1 -1
  51. package/dist/daemon/rendezvous.d.ts.map +1 -1
  52. package/dist/daemon/rendezvous.js +9 -7
  53. package/dist/daemon/rendezvous.js.map +1 -1
  54. package/dist/daemon/reply-handler.d.ts.map +1 -1
  55. package/dist/daemon/reply-handler.js +2 -1
  56. package/dist/daemon/reply-handler.js.map +1 -1
  57. package/dist/daemon/scopes.d.ts +8 -0
  58. package/dist/daemon/scopes.d.ts.map +1 -1
  59. package/dist/daemon/scopes.js.map +1 -1
  60. package/dist/daemon/server.d.ts +128 -1
  61. package/dist/daemon/server.d.ts.map +1 -1
  62. package/dist/daemon/server.js +260 -57
  63. package/dist/daemon/server.js.map +1 -1
  64. package/dist/shared/config.d.ts +93 -0
  65. package/dist/shared/config.d.ts.map +1 -1
  66. package/dist/shared/config.js +111 -0
  67. package/dist/shared/config.js.map +1 -1
  68. package/dist/shared/help.js +1 -0
  69. package/dist/shared/help.js.map +1 -1
  70. package/dist/shared/signing.d.ts +49 -0
  71. package/dist/shared/signing.d.ts.map +1 -1
  72. package/dist/shared/signing.js +68 -0
  73. package/dist/shared/signing.js.map +1 -1
  74. package/dist/shared/tls.d.ts +27 -0
  75. package/dist/shared/tls.d.ts.map +1 -0
  76. package/dist/shared/tls.js +37 -0
  77. package/dist/shared/tls.js.map +1 -0
  78. package/docs/ARCHITECTURE.md +146 -0
  79. package/docs/CLI-REFERENCE.md +170 -2
  80. package/docs/MULTI-AGENT-PERSONAS-DESIGN.md +925 -0
  81. package/package.json +1 -1
  82. package/scripts/completion.bash +25 -1
  83. package/scripts/completion.zsh +9 -4
  84. package/scripts/render-ogp-overview-video.mjs +417 -0
  85. package/skills/ogp/SKILL.md +1 -1
  86. package/skills/ogp-expose/SKILL.md +1 -1
  87. package/skills/ogp-project/SKILL.md +1 -1
@@ -5,9 +5,9 @@ import path from 'node:path';
5
5
  import { createRequire } from 'node:module';
6
6
  const _require = createRequire(import.meta.url);
7
7
  const OGP_VERSION = _require('../../package.json').version;
8
- import { requireConfig, loadConfig, getConfigDir } from '../shared/config.js';
8
+ import { requireConfig, loadConfig, getConfigDir, synthesizePersonas } from '../shared/config.js';
9
9
  import { getPublicKey } from './keypair.js';
10
- import { addPeer, createPendingPeerRecord, derivePeerIdFromPublicKey, findBestPeerForApproval, getPeer, getPeerByUrl, removePeer, replacePeersByIdentity, updatePeer } from './peers.js';
10
+ import { addPeer, createPendingPeerRecord, derivePeerIdFromPublicKey, findBestPeerForApproval, getPeer, getPeerByUrl, listPeers, removePeer, replacePeersByIdentity, updatePeer } from './peers.js';
11
11
  import { listProjectsForPeer } from './projects.js';
12
12
  import { handleMessage } from './message-handler.js';
13
13
  import { verify } from '../shared/signing.js';
@@ -20,6 +20,113 @@ import { connectBridge, disconnectBridge } from './openclaw-bridge.js';
20
20
  import { loadIntents } from './intent-registry.js';
21
21
  let server = null;
22
22
  let shutdownInProgress = false;
23
+ export function verifySignedPeerIdHeader(headers, publicKey, verifyImpl, opts = {}) {
24
+ const { peerId, timestamp, signature } = headers;
25
+ if (!peerId || !timestamp || !signature || !publicKey)
26
+ return false;
27
+ const tsMs = Date.parse(timestamp);
28
+ if (Number.isNaN(tsMs))
29
+ return false;
30
+ const now = opts.now ?? Date.now();
31
+ const maxAgeMs = opts.maxAgeMs ?? 5 * 60 * 1000;
32
+ if (Math.abs(now - tsMs) > maxAgeMs)
33
+ return false;
34
+ const message = JSON.stringify({ peerId, timestamp });
35
+ return verifyImpl(message, signature, publicKey);
36
+ }
37
+ export function validateSignedRequest(body, deps) {
38
+ const { payloadStr, signature } = (body || {});
39
+ if (typeof payloadStr !== 'string' || !payloadStr || typeof signature !== 'string' || !signature) {
40
+ return { ok: false, status: 400, error: 'Missing payloadStr or signature' };
41
+ }
42
+ let parsed;
43
+ try {
44
+ parsed = JSON.parse(payloadStr);
45
+ }
46
+ catch {
47
+ return { ok: false, status: 400, error: 'payloadStr is not valid JSON' };
48
+ }
49
+ const peer = parsed?.peer;
50
+ if (!peer || typeof peer !== 'object' || typeof peer.publicKey !== 'string' || !peer.publicKey) {
51
+ return { ok: false, status: 400, error: 'Missing peer.publicKey in payload' };
52
+ }
53
+ // Verify against the publicKey announced in the body — this is what proves
54
+ // possession of the corresponding private key.
55
+ const verifyResult = deps.verifyEnvelope({ payloadStr, signature }, peer.publicKey);
56
+ if (!verifyResult.ok) {
57
+ return { ok: false, status: 401, error: `Signature verification failed: ${verifyResult.reason}` };
58
+ }
59
+ // Coerce optional identity fields to empty strings so downstream code (which
60
+ // expects required strings on the Peer record) doesn't have to defensively
61
+ // re-handle undefineds. The signature has already authenticated whatever
62
+ // was in the payload, so empty defaults are safe.
63
+ parsed.peer = {
64
+ displayName: typeof peer.displayName === 'string' ? peer.displayName : '',
65
+ email: typeof peer.email === 'string' ? peer.email : '',
66
+ gatewayUrl: typeof peer.gatewayUrl === 'string' ? peer.gatewayUrl : '',
67
+ publicKey: peer.publicKey,
68
+ ...(typeof peer.humanName === 'string' ? { humanName: peer.humanName } : {}),
69
+ ...(typeof peer.agentName === 'string' ? { agentName: peer.agentName } : {}),
70
+ ...(typeof peer.organization === 'string' ? { organization: peer.organization } : {})
71
+ };
72
+ return { ok: true, parsed };
73
+ }
74
+ export function validateSignedApproval(body, storedPublicKey, deps) {
75
+ const { payloadStr, signature } = (body || {});
76
+ if (typeof payloadStr !== 'string' || !payloadStr || typeof signature !== 'string' || !signature) {
77
+ return { ok: false, status: 400, error: 'Missing payloadStr or signature' };
78
+ }
79
+ let parsed;
80
+ try {
81
+ parsed = JSON.parse(payloadStr);
82
+ }
83
+ catch {
84
+ return { ok: false, status: 400, error: 'payloadStr is not valid JSON' };
85
+ }
86
+ const verifyResult = deps.verifyEnvelope({ payloadStr, signature }, storedPublicKey);
87
+ if (!verifyResult.ok) {
88
+ return { ok: false, status: 401, error: `Signature verification failed: ${verifyResult.reason}` };
89
+ }
90
+ if (parsed.fromPublicKey && parsed.fromPublicKey !== storedPublicKey) {
91
+ return {
92
+ ok: false,
93
+ status: 403,
94
+ error: 'fromPublicKey does not match stored peer publicKey'
95
+ };
96
+ }
97
+ return { ok: true, parsed };
98
+ }
99
+ /**
100
+ * Build the `/.well-known/ogp` response body. Pure function, exported for tests
101
+ * and potential reuse from non-Express transports.
102
+ *
103
+ * v0.7.0 (B0032) additions:
104
+ * - `multi-agent-personas` capability flag (always advertised)
105
+ * - `agents[]` array (synthesized via `synthesizePersonas` for legacy configs;
106
+ * populated verbatim when explicitly configured via `OGPConfig.agents`)
107
+ */
108
+ export function buildWellKnownResponse(args) {
109
+ const { cfg, intentNames, publicKey, peerStatus } = args;
110
+ return {
111
+ version: OGP_VERSION,
112
+ displayName: cfg.displayName,
113
+ email: cfg.email,
114
+ gatewayUrl: cfg.gatewayUrl,
115
+ publicKey,
116
+ capabilities: {
117
+ intents: intentNames,
118
+ features: ['scope-negotiation', 'reply-callback', 'bidirectional-health', 'multi-agent-personas']
119
+ },
120
+ endpoints: {
121
+ request: `${cfg.gatewayUrl}/federation/request`,
122
+ approve: `${cfg.gatewayUrl}/federation/approve`,
123
+ message: `${cfg.gatewayUrl}/federation/message`,
124
+ reply: `${cfg.gatewayUrl}/federation/reply/:nonce`
125
+ },
126
+ agents: synthesizePersonas(cfg),
127
+ ...(peerStatus ? { peerStatus } : {})
128
+ };
129
+ }
23
130
  export function createGracefulShutdownHandler(deps) {
24
131
  return async (signal) => {
25
132
  if (shutdownInProgress) {
@@ -86,35 +193,67 @@ export function startServer(config, background = false) {
86
193
  const app = express();
87
194
  app.use(express.json());
88
195
  // /.well-known/ogp - Discovery endpoint
89
- app.get('/.well-known/ogp', (req, res) => {
196
+ app.get('/.well-known/ogp', async (req, res) => {
90
197
  // Get supported intents from registry
91
198
  const intents = loadIntents();
92
199
  const intentNames = intents.map(i => i.name);
93
- res.json({
94
- version: OGP_VERSION,
95
- displayName: cfg.displayName,
96
- email: cfg.email,
97
- gatewayUrl: cfg.gatewayUrl,
98
- publicKey: getPublicKey(),
99
- capabilities: {
100
- intents: intentNames,
101
- features: ['scope-negotiation', 'reply-callback']
102
- },
103
- endpoints: {
104
- request: `${cfg.gatewayUrl}/federation/request`,
105
- approve: `${cfg.gatewayUrl}/federation/approve`,
106
- message: `${cfg.gatewayUrl}/federation/message`,
107
- reply: `${cfg.gatewayUrl}/federation/reply/:nonce`
200
+ // Issue #5 + SECURITY (F-12): bidirectional health status exchange.
201
+ // If the requester identifies themselves via X-OGP-Peer-ID, the header
202
+ // must also carry X-OGP-Signature + X-OGP-Timestamp, signing
203
+ // {peerId, timestamp} with the requester's private key. Without that
204
+ // proof, anyone could enumerate the federation graph and probe the
205
+ // health of other peers by spoofing the header. We omit `peerStatus`
206
+ // on any failure so the discovery endpoint stays unauthenticated.
207
+ let peerStatus;
208
+ const requesterIdRaw = req.header('x-ogp-peer-id');
209
+ const requesterTimestampRaw = req.header('x-ogp-timestamp');
210
+ const requesterSignatureRaw = req.header('x-ogp-signature');
211
+ if (requesterIdRaw && requesterTimestampRaw && requesterSignatureRaw) {
212
+ const peerId = String(requesterIdRaw).trim();
213
+ const timestamp = String(requesterTimestampRaw).trim();
214
+ const signature = String(requesterSignatureRaw).trim();
215
+ const requester = getPeer(peerId);
216
+ if (requester && requester.status === 'approved' && requester.publicKey) {
217
+ const { verify } = await import('../shared/signing.js');
218
+ if (verifySignedPeerIdHeader({ peerId, timestamp, signature }, requester.publicKey, verify)) {
219
+ peerStatus = {
220
+ peerId: requester.id,
221
+ healthy: requester.healthy !== false,
222
+ healthState: requester.healthState ?? null,
223
+ lastCheckedAt: requester.lastOutboundCheckAt ?? null,
224
+ lastCheckFailedAt: requester.lastOutboundCheckFailedAt ?? null,
225
+ healthCheckFailures: requester.healthCheckFailures ?? 0
226
+ };
227
+ }
108
228
  }
109
- });
229
+ }
230
+ res.json(buildWellKnownResponse({
231
+ cfg,
232
+ intentNames,
233
+ publicKey: getPublicKey(),
234
+ peerStatus
235
+ }));
110
236
  });
111
237
  // POST /federation/request - Incoming federation request
112
238
  app.post('/federation/request', async (req, res) => {
113
239
  try {
114
- const { peer, signature } = req.body;
115
- if (!peer || !signature) {
116
- return res.status(400).json({ error: 'Missing peer or signature' });
240
+ // SECURITY (F-04): Body must be a signed canonical envelope:
241
+ // { payloadStr: "<JSON>", signature: "<hex>" }
242
+ // payloadStr contains { peer: {...}, offeredIntents?: [...], timestamp }.
243
+ // We verify against peer.publicKey from the body — that proves the
244
+ // caller possesses the private key for the publicKey they announce.
245
+ const { verifyCanonical } = await import('../shared/signing.js');
246
+ const validation = validateSignedRequest(req.body, {
247
+ verifyEnvelope: (env, pk) => verifyCanonical(env, pk)
248
+ });
249
+ if (!validation.ok) {
250
+ if (validation.status === 401) {
251
+ console.error(`[OGP] Federation request rejected: ${validation.error}`);
252
+ }
253
+ return res.status(validation.status).json({ error: validation.error });
117
254
  }
255
+ const peer = validation.parsed.peer;
256
+ const offeredIntents = validation.parsed.offeredIntents;
118
257
  // Derive peer ID from public key (BUILD-111: port-agnostic identity)
119
258
  // NEVER trust sender's peer.id - always use public key prefix
120
259
  // Use 32-char prefix to avoid collision on shared Ed25519 DER header (first 24 chars identical for ALL Ed25519 keys)
@@ -157,8 +296,8 @@ export function startServer(config, background = false) {
157
296
  });
158
297
  }
159
298
  }
160
- // Store offered intents if provided (BUILD-110: intent negotiation)
161
- const offeredIntents = req.body.offeredIntents;
299
+ // Store offered intents (BUILD-110: intent negotiation) — extracted from
300
+ // signed payloadStr above, so we know they were authored by the peer.
162
301
  const peerData = createPendingPeerRecord({
163
302
  id: peerIdFromKey, // Always use derived ID, never sender's
164
303
  displayName: peer.displayName,
@@ -290,32 +429,67 @@ export function startServer(config, background = false) {
290
429
  }
291
430
  });
292
431
  // POST /federation/approve - Peer approves our request
293
- // Accepts both package format {peerId, approved} and fork format {fromGatewayId, fromGatewayUrl, ...}
294
- // v0.2.0: Also accepts scopeGrants for scope negotiation
432
+ // SECURITY (F-01): Body must be a signed canonical envelope:
433
+ // { payloadStr: "<JSON>", signature: "<hex>" }
434
+ // where payloadStr is the JSON of:
435
+ // { fromGatewayId, fromGatewayUrl, fromDisplayName, fromPublicKey,
436
+ // fromEmail, peerId?, scopeGrants?, protocolVersion?, timestamp }
437
+ // Verification is against the *stored* pending peer's publicKey, not
438
+ // body.fromPublicKey. fromPublicKey may not differ from the stored value;
439
+ // this prevents a third party from racing the legitimate peer to "approve"
440
+ // and replacing the publicKey of a pending federation.
295
441
  app.post('/federation/approve', async (req, res) => {
296
442
  try {
297
443
  const body = req.body || {};
298
- // Fork format: full identity card sent as approval signal
299
- const fromGatewayId = body.fromGatewayId;
300
- const fromGatewayUrl = body.fromGatewayUrl;
301
- const fromDisplayName = body.fromDisplayName;
302
- const fromPublicKey = body.fromPublicKey;
303
- const fromEmail = body.fromEmail;
304
- // Package format: simple peerId + approved flag
305
- const peerId = body.peerId;
306
- // v0.2.0: Scope grants from the approving peer
307
- const scopeGrants = body.scopeGrants;
308
- const protocolVersion = body.protocolVersion || (scopeGrants ? '0.2.0' : '0.1.0');
309
- // Derive peer ID from public key (BUILD-111: port-agnostic identity)
310
- const peerIdFromKey = fromPublicKey ? derivePeerIdFromPublicKey(fromPublicKey) : (peerId || fromGatewayId);
444
+ const { payloadStr, signature } = body;
445
+ // Pre-validation peer lookup uses unverified hints from payloadStr to find
446
+ // the pending record. Signature verification then authenticates against
447
+ // peer.publicKey (the stored value), so even if payloadStr claims a
448
+ // different publicKey, the unsigned hints can only narrow the search —
449
+ // they cannot grant approval.
450
+ let peerHints = {};
451
+ if (typeof payloadStr === 'string') {
452
+ try {
453
+ const preview = JSON.parse(payloadStr);
454
+ peerHints = {
455
+ fromGatewayUrl: preview.fromGatewayUrl,
456
+ fromPublicKey: preview.fromPublicKey,
457
+ peerId: preview.peerId,
458
+ fromGatewayId: preview.fromGatewayId
459
+ };
460
+ }
461
+ catch { /* validation will reject below */ }
462
+ }
463
+ const peerIdFromKey = peerHints.fromPublicKey
464
+ ? derivePeerIdFromPublicKey(peerHints.fromPublicKey)
465
+ : (peerHints.peerId || peerHints.fromGatewayId);
311
466
  const peer = findBestPeerForApproval({
312
467
  peerId: peerIdFromKey,
313
- gatewayUrl: fromGatewayUrl,
314
- publicKey: fromPublicKey
468
+ gatewayUrl: peerHints.fromGatewayUrl,
469
+ publicKey: peerHints.fromPublicKey
315
470
  });
316
471
  if (!peer) {
317
472
  return res.status(404).json({ error: 'No pending peer found' });
318
473
  }
474
+ // SECURITY (F-01): Verify against peer.publicKey (the stored value),
475
+ // and reject any attempt to overwrite that publicKey via fromPublicKey.
476
+ const { verifyCanonical } = await import('../shared/signing.js');
477
+ const validation = validateSignedApproval(body, peer.publicKey, {
478
+ verifyEnvelope: (env, pk) => verifyCanonical(env, pk)
479
+ });
480
+ if (!validation.ok) {
481
+ if (validation.status === 401 || validation.status === 403) {
482
+ console.error(`[OGP] Approval rejected for peer ${peer.id}: ${validation.error}`);
483
+ }
484
+ return res.status(validation.status).json({ error: validation.error });
485
+ }
486
+ const parsed = validation.parsed;
487
+ const fromGatewayUrl = parsed.fromGatewayUrl;
488
+ const fromDisplayName = parsed.fromDisplayName;
489
+ const fromPublicKey = parsed.fromPublicKey;
490
+ const fromEmail = parsed.fromEmail;
491
+ const scopeGrants = parsed.scopeGrants;
492
+ const protocolVersion = parsed.protocolVersion || (scopeGrants ? '0.2.0' : '0.1.0');
319
493
  // Update peer info if fork sent richer data
320
494
  const peerUpdates = {};
321
495
  if (fromDisplayName)
@@ -402,23 +576,24 @@ export function startServer(config, background = false) {
402
576
  const bundle = createScopeBundle(scopes);
403
577
  updatePeerGrantedScopes(approvedPeer.id, bundle);
404
578
  console.log(`[OGP] Auto-granted default scopes to ${approvedPeer.displayName}: ${defaultIntents.join(', ')}`);
405
- // Send our grants back to the approving peer
579
+ // Send our grants back to the approving peer (signed envelope per F-01)
406
580
  try {
407
581
  const ourConfig = requireConfig();
408
582
  const keypair = (await import('./keypair.js')).loadOrGenerateKeyPair();
583
+ const { signCanonical } = await import('../shared/signing.js');
584
+ const { payloadStr: gpayloadStr, signature: gsignature } = signCanonical({
585
+ fromGatewayId: `${new URL(ourConfig.gatewayUrl).hostname}:${ourConfig.daemonPort}`,
586
+ fromDisplayName: ourConfig.displayName,
587
+ fromGatewayUrl: ourConfig.gatewayUrl,
588
+ fromPublicKey: keypair.publicKey,
589
+ fromEmail: ourConfig.email,
590
+ protocolVersion: '0.2.0',
591
+ scopeGrants: bundle
592
+ }, keypair.privateKey);
409
593
  await fetch(`${freshPeer.gatewayUrl}/federation/approve`, {
410
594
  method: 'POST',
411
595
  headers: { 'Content-Type': 'application/json' },
412
- body: JSON.stringify({
413
- fromGatewayId: `${new URL(ourConfig.gatewayUrl).hostname}:${ourConfig.daemonPort}`,
414
- fromDisplayName: ourConfig.displayName,
415
- fromGatewayUrl: ourConfig.gatewayUrl,
416
- fromPublicKey: keypair.publicKey,
417
- fromEmail: ourConfig.email,
418
- timestamp: new Date().toISOString(),
419
- protocolVersion: '0.2.0',
420
- scopeGrants: bundle
421
- })
596
+ body: JSON.stringify({ payloadStr: gpayloadStr, signature: gsignature })
422
597
  });
423
598
  console.log(`[OGP] Sent auto-grant confirmation back to ${approvedPeer.displayName}`);
424
599
  }
@@ -595,11 +770,40 @@ export function startServer(config, background = false) {
595
770
  });
596
771
  });
597
772
  // POST /federation/reply/:nonce - Receive reply callback from remote gateway
598
- app.post('/federation/reply/:nonce', (req, res) => {
773
+ // SECURITY (F-05): Verify the reply is signed by SOME approved peer. We
774
+ // iterate approved peers and accept the first whose publicKey verifies the
775
+ // signature. This is acceptable because:
776
+ // - Only approved peers can produce a valid signature.
777
+ // - The nonce is a random UUID known only to the peer we sent it to
778
+ // (other approved peers don't see it in normal federation traffic).
779
+ // We don't pin the nonce to a specific peer because the CLI process (which
780
+ // generates the nonce) and the daemon process (which receives the reply)
781
+ // don't share memory; a per-nonce tracker would need disk-backed IPC and
782
+ // the additional hardening it buys is not worth the complexity here.
783
+ app.post('/federation/reply/:nonce', async (req, res) => {
599
784
  const { nonce } = req.params;
600
785
  const body = req.body || {};
601
- // The reply can come in different formats
602
- const reply = body.reply || body;
786
+ const reply = body.reply;
787
+ const replyStr = body.replyStr;
788
+ const signature = body.signature;
789
+ if (!reply || typeof signature !== 'string' || !signature) {
790
+ return res.status(400).json({ error: 'Missing reply or signature' });
791
+ }
792
+ const { verifyObject } = await import('../shared/signing.js');
793
+ const approvedPeers = listPeers('approved');
794
+ let signingPeer = null;
795
+ for (const candidate of approvedPeers) {
796
+ if (!candidate.publicKey)
797
+ continue;
798
+ if (verifyObject(reply, signature, candidate.publicKey, typeof replyStr === 'string' ? replyStr : undefined)) {
799
+ signingPeer = candidate;
800
+ break;
801
+ }
802
+ }
803
+ if (!signingPeer) {
804
+ console.error(`[OGP] Reply signature verification failed for nonce ${nonce} — no approved peer matched`);
805
+ return res.status(401).json({ error: 'Invalid signature' });
806
+ }
603
807
  const replyPayload = {
604
808
  nonce,
605
809
  success: reply.success ?? true,
@@ -607,9 +811,8 @@ export function startServer(config, background = false) {
607
811
  error: reply.error,
608
812
  timestamp: reply.timestamp || new Date().toISOString()
609
813
  };
610
- // Store for later retrieval
611
814
  storePendingReply(nonce, replyPayload);
612
- console.log(`[OGP] Received reply callback for nonce ${nonce}`);
815
+ console.log(`[OGP] Received signed reply for nonce ${nonce} from peer ${signingPeer.id}`);
613
816
  res.json({ received: true });
614
817
  });
615
818
  server = app.listen(cfg.daemonPort, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}