@privos_ai/app-server 0.7.3 → 0.8.0

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.
@@ -5,12 +5,111 @@ import { buildHubUserTokenAuthOptions, extractRelayUserTokenCredential, } from '
5
5
  import { AppServerRuntime, DEFAULT_MAX_MESSAGE_BYTES, relayCallerAuthSurface, resolveCallerCredential, } from '../runtime.js';
6
6
  import { MessageTooLargeError, rawDataToText } from './message-adapter.js';
7
7
  import { isStandaloneControlMethod, } from './standalone-control.js';
8
- import { resolveIdentityFilePath, saveStandaloneIdentity, standaloneHubFingerprint, standaloneIdentityFileExists, StandaloneIdentityError, } from './standalone-identity.js';
8
+ import { consumeStandalonePendingIdentity, loadStandaloneIdentity, loadStandalonePendingIdentity, resolveIdentityFilePath, saveStandaloneIdentity, saveStandalonePendingIdentity, standaloneHubFingerprint, standaloneIdentityFileExists, StandaloneIdentityError, } from './standalone-identity.js';
9
+ import { lintManifest, sha256CanonicalJson } from '../manifest-tools.js';
9
10
  import { assertRuntimeDispatchTrustConfigurationV3, extractRuntimeDispatchRelayEnvelopeV3, verifyRuntimeDispatchAssertionV3, } from '../workload/dispatch-assertion.js';
10
11
  const BACKOFF_MS = [1_000, 2_000, 5_000, 10_000, 30_000];
11
12
  const DEFAULT_PAIRING_TIMEOUT_MS = 30_000;
12
13
  const DEFAULT_OAUTH_TIMEOUT_MS = 15_000;
13
14
  const DEFAULT_OPEN_HANDSHAKE_TIMEOUT_MS = 15_000;
15
+ function sortedUniqueStrings(value, field) {
16
+ if (!Array.isArray(value) || value.some((item) => typeof item !== 'string' || !item)) {
17
+ throw new Error(`Pairing response ${field} is invalid.`);
18
+ }
19
+ const result = [...value].sort();
20
+ if (new Set(result).size !== result.length)
21
+ throw new Error(`Pairing response ${field} contains duplicates.`);
22
+ return result;
23
+ }
24
+ function manifestDeclaredPermissionCeiling(manifest) {
25
+ if (!Array.isArray(manifest.permissions))
26
+ throw new Error('Published v3 manifest must declare permissions.');
27
+ return sortedUniqueStrings(manifest.permissions.map((permission) => permission && typeof permission === 'object' && !Array.isArray(permission)
28
+ ? permission.scope
29
+ : undefined), 'manifest permission ceiling');
30
+ }
31
+ async function persistCompletedPairing(input) {
32
+ assertRuntimeDispatchTrustConfigurationV3(input.wire.trust);
33
+ const trust = input.wire.trust;
34
+ const fingerprint = standaloneHubFingerprint(trust.hubKid);
35
+ if (input.wire.fingerprint !== undefined && input.wire.fingerprint !== fingerprint) {
36
+ throw new Error('Pairing response fingerprint does not match the pinned Hub key.');
37
+ }
38
+ if (trust.affinity.mcpAppId !== input.mcpAppId)
39
+ throw new Error('Pairing completion changed the app identity.');
40
+ if (input.wire.manifestDigest && input.wire.manifestDigest !== trust.affinity.manifestDigest) {
41
+ throw new Error('Pairing completion manifest digest does not match dispatch affinity.');
42
+ }
43
+ let approvedPermissionCeiling;
44
+ if (input.wire.approvedPermissionCeiling !== undefined) {
45
+ approvedPermissionCeiling = sortedUniqueStrings(input.wire.approvedPermissionCeiling, 'approvedPermissionCeiling');
46
+ }
47
+ if (input.pending) {
48
+ if (input.pending.clientId !== input.clientId ||
49
+ input.pending.oauthClientId !== input.wire.oauthClientId ||
50
+ input.pending.mcpAppId !== input.mcpAppId ||
51
+ input.pending.pairingId !== input.wire.pairingId ||
52
+ input.pending.manifestDigest !== trust.affinity.manifestDigest ||
53
+ input.pending.permissionContractHash !== input.wire.permissionContractHash ||
54
+ input.pending.hubKid !== trust.hubKid ||
55
+ input.pending.fingerprint !== fingerprint) {
56
+ throw new Error('Pairing completion does not match the durable pending identity.');
57
+ }
58
+ if (!approvedPermissionCeiling)
59
+ throw new Error('Pairing completion omitted the approved permission ceiling.');
60
+ const declared = new Set(input.pending.declaredPermissionCeiling);
61
+ if (approvedPermissionCeiling.some((scope) => !declared.has(scope))) {
62
+ throw new Error('Pairing completion widened the published permission ceiling.');
63
+ }
64
+ }
65
+ (input.options?.onFingerprint ?? ((line) => console.log(line)))(`PrivOS Hub fingerprint: ${fingerprint} — verify this out-of-band before trusting dispatch from this Hub.`);
66
+ let identityFilePath;
67
+ if (input.options?.persistIdentityFile ?? true) {
68
+ const identity = {
69
+ pairingVersion: 2,
70
+ relayUrl: input.privosUrl,
71
+ clientId: input.clientId,
72
+ clientSecret: input.clientSecret,
73
+ trust,
74
+ fingerprint,
75
+ mcpAppId: input.mcpAppId,
76
+ pairedAt: Date.now(),
77
+ };
78
+ try {
79
+ identityFilePath = await saveStandaloneIdentity(identity, { filePath: input.options?.identityFilePath });
80
+ }
81
+ catch (error) {
82
+ const existing = loadStandaloneIdentity({ filePath: input.options?.identityFilePath });
83
+ if (existing.identity.relayUrl !== identity.relayUrl ||
84
+ existing.identity.clientId !== identity.clientId ||
85
+ existing.identity.clientSecret !== identity.clientSecret ||
86
+ existing.identity.mcpAppId !== identity.mcpAppId ||
87
+ JSON.stringify(existing.identity.trust) !== JSON.stringify(identity.trust)) {
88
+ throw error;
89
+ }
90
+ identityFilePath = existing.filePath;
91
+ }
92
+ if (input.pending) {
93
+ await consumeStandalonePendingIdentity(input.pending, {
94
+ filePath: input.options?.pendingIdentityFilePath,
95
+ finalIdentityFilePath: input.options?.identityFilePath,
96
+ });
97
+ }
98
+ }
99
+ return {
100
+ state: 'complete',
101
+ privosUrl: input.privosUrl,
102
+ clientId: input.clientId,
103
+ clientSecret: input.clientSecret,
104
+ mcpAppId: input.mcpAppId,
105
+ pairingVersion: 2,
106
+ trust,
107
+ fingerprint,
108
+ manifestDigest: trust.affinity.manifestDigest,
109
+ ...(approvedPermissionCeiling ? { approvedPermissionCeiling } : {}),
110
+ ...(identityFilePath ? { identityFilePath } : {}),
111
+ };
112
+ }
14
113
  /**
15
114
  * Pair with Privos using a one-time pairing URL.
16
115
  *
@@ -21,6 +120,13 @@ const DEFAULT_OPEN_HANDSHAKE_TIMEOUT_MS = 15_000;
21
120
  * create — same discipline as the Hub's own identity file), then prints the
22
121
  * Hub fingerprint for out-of-band operator verification. Set
23
122
  * `persistIdentityFile: false` to opt out and handle persistence yourself.
123
+ *
124
+ * If the socket closes after the Hub has persisted registration but before
125
+ * this function receives the result, the caller may explicitly invoke this
126
+ * function again with the same pairing URL and byte-semantically identical
127
+ * published manifest during the Hub's bounded recovery window. There is no
128
+ * automatic retry or polling loop: a changed URL, manifest, or authority must
129
+ * fail at the Hub rather than being hidden by client-side retry behavior.
24
130
  */
25
131
  export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, options) {
26
132
  const timeoutMs = options?.timeoutMs ?? DEFAULT_PAIRING_TIMEOUT_MS;
@@ -57,26 +163,98 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
57
163
  });
58
164
  }, timeoutMs);
59
165
  async function finishPairing(input) {
60
- if (input.pairingVersion !== 2) {
61
- // Either a v1 Hub, or a manifest-announced registration still awaiting
62
- // approval: both hand back credentials and nothing to persist, because
166
+ if (input.wire.pairingVersion !== 2) {
167
+ // Either a v1 Hub, or a Hub generation that acknowledges a
168
+ // manifest-announced registration with only `awaitingApproval`:
169
+ // both hand back credentials and nothing to persist, because
63
170
  // trust is minted with the generation an approved ceiling creates.
64
171
  return {
172
+ state: 'legacy-complete',
173
+ privosUrl: input.privosUrl,
174
+ clientId: input.clientId,
175
+ clientSecret: input.clientSecret,
176
+ mcpAppId: input.mcpAppId,
177
+ ...(input.wire.awaitingApproval ? { awaitingApproval: true } : {}),
178
+ };
179
+ }
180
+ if (!input.mcpAppId)
181
+ throw new Error('Pairing v2 response missing app identity.');
182
+ if (input.wire.pairingState === 'pending-approval') {
183
+ if (!appMeta.manifest)
184
+ throw new Error('Pending manifest pairing response was not requested with an exact manifest.');
185
+ const declaredPermissionCeiling = sortedUniqueStrings(input.wire.declaredPermissionCeiling, 'declaredPermissionCeiling');
186
+ const localDeclaredPermissionCeiling = manifestDeclaredPermissionCeiling(appMeta.manifest);
187
+ const manifestDigest = sha256CanonicalJson(appMeta.manifest);
188
+ if (input.wire.manifestDigest !== manifestDigest ||
189
+ JSON.stringify(declaredPermissionCeiling) !== JSON.stringify(localDeclaredPermissionCeiling) ||
190
+ !input.wire.pairingId ||
191
+ !input.wire.oauthClientId ||
192
+ input.wire.oauthClientId !== input.clientId ||
193
+ !input.wire.permissionContractHash ||
194
+ !input.wire.hubKid) {
195
+ throw new Error('Pending pairing response does not match the exact published manifest or OAuth identity.');
196
+ }
197
+ const fingerprint = standaloneHubFingerprint(input.wire.hubKid);
198
+ if (input.wire.fingerprint !== fingerprint)
199
+ throw new Error('Pending pairing Hub fingerprint is invalid.');
200
+ (options?.onFingerprint ?? ((line) => console.log(line)))(`PrivOS Hub fingerprint: ${fingerprint} — verify this out-of-band before approving this app.`);
201
+ const pending = {
202
+ pairingVersion: 2,
203
+ state: 'pending-approval',
204
+ relayUrl: input.privosUrl,
205
+ clientId: input.clientId,
206
+ clientSecret: input.clientSecret,
207
+ mcpAppId: input.mcpAppId,
208
+ pairingId: input.wire.pairingId,
209
+ oauthClientId: input.wire.oauthClientId,
210
+ manifestDigest,
211
+ permissionContractHash: input.wire.permissionContractHash,
212
+ declaredPermissionCeiling,
213
+ hubKid: input.wire.hubKid,
214
+ fingerprint,
215
+ createdAt: Date.now(),
216
+ };
217
+ const pendingIdentityFilePath = persistIdentityFile
218
+ ? await saveStandalonePendingIdentity(pending, {
219
+ filePath: options?.pendingIdentityFilePath,
220
+ finalIdentityFilePath: options?.identityFilePath,
221
+ })
222
+ : undefined;
223
+ return {
224
+ state: 'pending-approval',
65
225
  privosUrl: input.privosUrl,
66
226
  clientId: input.clientId,
67
227
  clientSecret: input.clientSecret,
68
228
  mcpAppId: input.mcpAppId,
69
- ...(input.awaitingApproval ? { awaitingApproval: true } : {}),
229
+ pairingVersion: 2,
230
+ pairingId: pending.pairingId,
231
+ oauthClientId: pending.oauthClientId,
232
+ manifestDigest,
233
+ permissionContractHash: pending.permissionContractHash,
234
+ declaredPermissionCeiling,
235
+ hubKid: pending.hubKid,
236
+ fingerprint,
237
+ awaitingApproval: true,
238
+ ...(pendingIdentityFilePath ? { pendingIdentityFilePath } : {}),
70
239
  };
71
240
  }
72
- return persistPairedV2Identity(input, {
73
- onFingerprint: options?.onFingerprint,
74
- persistIdentityFile,
75
- identityFilePath: options?.identityFilePath,
241
+ return persistCompletedPairing({
242
+ wire: input.wire,
243
+ privosUrl: input.privosUrl,
244
+ clientId: input.clientId,
245
+ clientSecret: input.clientSecret,
246
+ mcpAppId: input.mcpAppId,
247
+ options,
76
248
  });
77
249
  }
78
250
  ws.on('open', () => {
79
251
  try {
252
+ if (appMeta.manifest) {
253
+ const lint = lintManifest(appMeta.manifest);
254
+ if (appMeta.manifest.schemaVersion !== 3 || !lint.valid) {
255
+ throw new Error(`Exact standalone manifest is not a valid schema-v3 manifest: ${lint.errors.join('; ')}`);
256
+ }
257
+ }
80
258
  ws.send(JSON.stringify({
81
259
  name: appMeta.name,
82
260
  description: appMeta.description || '',
@@ -84,7 +262,7 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
84
262
  ...(appMeta.icon && { icon: appMeta.icon }),
85
263
  ...(appMeta.scopes?.length && { scopes: appMeta.scopes }),
86
264
  ...(appMeta.permissions?.length && { permissions: appMeta.permissions }),
87
- ...(appMeta.manifest !== undefined && { manifest: appMeta.manifest }),
265
+ ...(appMeta.manifest ? { manifest: appMeta.manifest } : {}),
88
266
  }));
89
267
  }
90
268
  catch (err) {
@@ -98,8 +276,8 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
98
276
  settle(() => reject(new Error(msg.error?.message || 'Pairing failed')));
99
277
  return;
100
278
  }
101
- if (msg.result?.paired) {
102
- const { clientId, clientSecret, relayUrl, app, mcpAppId, appId, pairingVersion, trust, fingerprint, awaitingApproval } = msg.result;
279
+ if (msg.result && (msg.result.paired || msg.result.pairingState === 'pending-approval')) {
280
+ const { clientId, clientSecret, relayUrl, app, mcpAppId, appId } = msg.result;
103
281
  if (!clientId || !clientSecret || !relayUrl) {
104
282
  settle(() => reject(new Error('Pairing response missing credentials')));
105
283
  return;
@@ -111,14 +289,11 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
111
289
  undefined;
112
290
  settle(() => {
113
291
  void finishPairing({
292
+ wire: msg.result,
114
293
  privosUrl,
115
294
  clientId,
116
295
  clientSecret,
117
296
  mcpAppId: resolvedAppId,
118
- pairingVersion,
119
- trust,
120
- fingerprint,
121
- awaitingApproval: awaitingApproval === true,
122
297
  })
123
298
  .then(resolve)
124
299
  .catch(reject);
@@ -152,40 +327,6 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
152
327
  });
153
328
  }
154
329
  const DEFAULT_APPROVAL_TIMEOUT_MS = 30 * 60_000;
155
- /** Validate a v2 trust payload, verify the fingerprint, and persist the identity file. */
156
- async function persistPairedV2Identity(input, options) {
157
- assertRuntimeDispatchTrustConfigurationV3(input.trust);
158
- const trust = input.trust;
159
- const fingerprint = standaloneHubFingerprint(trust.hubKid);
160
- if (input.fingerprint !== undefined && input.fingerprint !== fingerprint) {
161
- throw new Error('Pairing response fingerprint does not match the pinned Hub key.');
162
- }
163
- (options.onFingerprint ?? ((line) => console.log(line)))(`PrivOS Hub fingerprint: ${fingerprint} — verify this out-of-band before trusting dispatch from this Hub.`);
164
- let identityFilePath;
165
- if (options.persistIdentityFile) {
166
- const identity = {
167
- pairingVersion: 2,
168
- relayUrl: input.privosUrl,
169
- clientId: input.clientId,
170
- clientSecret: input.clientSecret,
171
- trust,
172
- fingerprint,
173
- ...(input.mcpAppId ? { mcpAppId: input.mcpAppId } : {}),
174
- pairedAt: Date.now(),
175
- };
176
- identityFilePath = await saveStandaloneIdentity(identity, { filePath: options.identityFilePath });
177
- }
178
- return {
179
- privosUrl: input.privosUrl,
180
- clientId: input.clientId,
181
- clientSecret: input.clientSecret,
182
- mcpAppId: input.mcpAppId,
183
- pairingVersion: 2,
184
- trust,
185
- fingerprint,
186
- ...(identityFilePath ? { identityFilePath } : {}),
187
- };
188
- }
189
330
  /**
190
331
  * Normalize a Hub-supplied relay URL (`wss://host/api/v1/mcp-apps.relay`) to the
191
332
  * bare Hub HTTP origin the identity file stores as `relayUrl`/`privosUrl`. serveApp
@@ -206,8 +347,9 @@ function pairPollTarget(pairUrl) {
206
347
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
207
348
  /**
208
349
  * One-command pairing (device-authorization flow). Registers exactly like
209
- * {@link pairOverWebSocket}; if the Hub answers `awaitingApproval`, this then
210
- * POLLS the Hub with the SAME pairing token until an admin approves the
350
+ * {@link pairOverWebSocket}; while the registration awaits an admin's approval
351
+ * (`pending-approval` state, or a legacy-shaped `awaitingApproval` response),
352
+ * this POLLS the Hub with the SAME pairing token until the admin approves the
211
353
  * permission ceiling, receives the pairing-v2 trust payload, and writes the
212
354
  * standalone identity file — no second pairing URL. A Hub that returns trust
213
355
  * immediately (already-approved linked pairing, or a v1 Hub) is passed straight
@@ -216,8 +358,8 @@ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
216
358
  */
217
359
  export async function pairAndAwaitApproval(pairUrl, appMeta, WebSocketImpl = WebSocket, options) {
218
360
  const registered = await pairOverWebSocket(pairUrl, appMeta, WebSocketImpl, options);
219
- // A Hub that already handed trust (linked pairing) or a v1 Hub: nothing to await.
220
- if (registered.pairingVersion === 2 || !registered.awaitingApproval)
361
+ // Trust already delivered (linked pairing), or a v1 Hub with nothing pending: done.
362
+ if (registered.state === 'complete' || !registered.awaitingApproval)
221
363
  return registered;
222
364
  const { origin, pairToken } = pairPollTarget(pairUrl);
223
365
  if (!pairToken)
@@ -237,14 +379,36 @@ export async function pairAndAwaitApproval(pairUrl, appMeta, WebSocketImpl = Web
237
379
  if (body.success === false)
238
380
  throw new Error(body.error || 'Pairing poll was rejected');
239
381
  if (body.status === 'approved') {
240
- return persistPairedV2Identity({
382
+ const mcpAppId = body.appId ?? registered.mcpAppId;
383
+ if (!mcpAppId)
384
+ throw new Error('Pairing approval response missing app identity.');
385
+ const completed = await persistCompletedPairing({
386
+ wire: { trust: body.trust, fingerprint: body.fingerprint },
241
387
  privosUrl: body.relayUrl ? relayUrlToPrivosOrigin(body.relayUrl) : registered.privosUrl,
242
388
  clientId: body.clientId ?? registered.clientId,
243
389
  clientSecret: body.clientSecret ?? registered.clientSecret,
244
- mcpAppId: body.appId ?? registered.mcpAppId,
245
- trust: body.trust,
246
- fingerprint: body.fingerprint,
247
- }, { onFingerprint: options?.onFingerprint, persistIdentityFile, identityFilePath: options?.identityFilePath });
390
+ mcpAppId,
391
+ options,
392
+ });
393
+ // The pair-poll response carries no pending-contract echo to cross-check,
394
+ // so the durable pending half is consumed only after trust verification
395
+ // above — best-effort, the completed identity file is authoritative.
396
+ if (registered.state === 'pending-approval' && persistIdentityFile) {
397
+ try {
398
+ const stalePending = loadStandalonePendingIdentity({
399
+ filePath: options?.pendingIdentityFilePath,
400
+ finalIdentityFilePath: options?.identityFilePath,
401
+ });
402
+ await consumeStandalonePendingIdentity(stalePending.identity, {
403
+ filePath: options?.pendingIdentityFilePath,
404
+ finalIdentityFilePath: options?.identityFilePath,
405
+ });
406
+ }
407
+ catch {
408
+ /* pending file already gone — nothing left to consume */
409
+ }
410
+ }
411
+ return completed;
248
412
  }
249
413
  if (body.status === 'rejected')
250
414
  throw new Error('Pairing was rejected — the app was removed. Re-pair from scratch.');
@@ -257,6 +421,125 @@ export async function pairAndAwaitApproval(pairUrl, appMeta, WebSocketImpl = Web
257
421
  delayMs = Math.min(Math.round(delayMs * 1.5), 10_000);
258
422
  }
259
423
  }
424
+ /**
425
+ * Explicitly resumes one durable app-announced-manifest pairing. This is a
426
+ * single operator/app action, not a polling loop: a pending Hub replies
427
+ * pending; an approved Hub returns trust for the same OAuth/app/pairing
428
+ * identity and the SDK atomically promotes it to the production identity.
429
+ */
430
+ export async function resumeStandalonePairing(options) {
431
+ const loaded = loadStandalonePendingIdentity({
432
+ filePath: options?.pendingIdentityFilePath,
433
+ finalIdentityFilePath: options?.identityFilePath,
434
+ });
435
+ const pending = loaded.identity;
436
+ const fetchImpl = options?.fetchImpl ?? fetch;
437
+ const WebSocketImpl = options?.WebSocketImpl ?? WebSocket;
438
+ const controller = new AbortController();
439
+ const oauthTimer = setTimeout(() => controller.abort(), options?.oauthTimeoutMs ?? DEFAULT_OAUTH_TIMEOUT_MS);
440
+ let accessToken;
441
+ try {
442
+ const response = await fetchImpl(`${pending.relayUrl}/oauth/token`, {
443
+ method: 'POST',
444
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
445
+ body: `grant_type=client_credentials&client_id=${encodeURIComponent(pending.clientId)}&client_secret=${encodeURIComponent(pending.clientSecret)}`,
446
+ signal: controller.signal,
447
+ });
448
+ if (!response.ok)
449
+ throw new Error(`Pairing completion OAuth failed: ${response.status} ${response.statusText}`);
450
+ const token = (await response.json());
451
+ if (!token.access_token)
452
+ throw new Error('Pairing completion OAuth response omitted access_token.');
453
+ accessToken = token.access_token;
454
+ }
455
+ finally {
456
+ clearTimeout(oauthTimer);
457
+ }
458
+ const timeoutMs = options?.timeoutMs ?? DEFAULT_PAIRING_TIMEOUT_MS;
459
+ const wire = await new Promise((resolve, reject) => {
460
+ const wsUrl = `${pending.relayUrl.replace(/^http/, 'ws')}/api/v1/mcp-apps.relay?pairingCompletion=1`;
461
+ const ws = new WebSocketImpl(wsUrl, { headers: { Authorization: `Bearer ${accessToken}` } });
462
+ let settled = false;
463
+ const settle = (fn) => {
464
+ if (settled)
465
+ return;
466
+ settled = true;
467
+ clearTimeout(timer);
468
+ fn();
469
+ };
470
+ const timer = setTimeout(() => {
471
+ settle(() => reject(new Error(`Pairing completion timed out after ${timeoutMs}ms`)));
472
+ try {
473
+ ws.close();
474
+ }
475
+ catch { /* ignore */ }
476
+ }, timeoutMs);
477
+ ws.on('message', (raw) => {
478
+ try {
479
+ const message = JSON.parse(rawDataToText(raw));
480
+ if (message.error)
481
+ return settle(() => reject(new Error(message.error?.message || 'Pairing completion failed')));
482
+ if (message.result?.pairingVersion !== 2)
483
+ return settle(() => reject(new Error('Pairing completion response is not protocol v2.')));
484
+ settle(() => resolve(message.result));
485
+ try {
486
+ ws.close();
487
+ }
488
+ catch { /* ignore */ }
489
+ }
490
+ catch (error) {
491
+ settle(() => reject(error instanceof Error ? error : new Error(String(error))));
492
+ }
493
+ });
494
+ ws.on('error', (error) => settle(() => reject(new Error(`Pairing completion failed: ${error.message}`))));
495
+ ws.on('close', (code, reason) => settle(() => reject(new Error(`Pairing completion closed: ${code} ${reason}`))));
496
+ });
497
+ if (wire.clientId !== pending.clientId ||
498
+ wire.oauthClientId !== pending.oauthClientId ||
499
+ wire.appId !== pending.mcpAppId ||
500
+ wire.pairingId !== pending.pairingId ||
501
+ wire.manifestDigest !== pending.manifestDigest ||
502
+ wire.permissionContractHash !== pending.permissionContractHash ||
503
+ wire.hubKid !== pending.hubKid ||
504
+ wire.fingerprint !== pending.fingerprint) {
505
+ throw new Error('Pairing resume response does not match the durable pending identity.');
506
+ }
507
+ if (wire.pairingState === 'pending-approval') {
508
+ const declaredPermissionCeiling = sortedUniqueStrings(wire.declaredPermissionCeiling, 'declaredPermissionCeiling');
509
+ if (JSON.stringify(declaredPermissionCeiling) !== JSON.stringify(pending.declaredPermissionCeiling)) {
510
+ throw new Error('Pairing resume changed the declared permission ceiling.');
511
+ }
512
+ return {
513
+ state: 'pending-approval',
514
+ privosUrl: pending.relayUrl,
515
+ clientId: pending.clientId,
516
+ clientSecret: pending.clientSecret,
517
+ mcpAppId: pending.mcpAppId,
518
+ pairingVersion: 2,
519
+ pairingId: pending.pairingId,
520
+ oauthClientId: pending.oauthClientId,
521
+ manifestDigest: pending.manifestDigest,
522
+ permissionContractHash: pending.permissionContractHash,
523
+ declaredPermissionCeiling: pending.declaredPermissionCeiling,
524
+ hubKid: pending.hubKid,
525
+ fingerprint: pending.fingerprint,
526
+ awaitingApproval: true,
527
+ pendingIdentityFilePath: loaded.filePath,
528
+ };
529
+ }
530
+ if (wire.pairingState !== 'complete' || !wire.clientSecret || wire.clientSecret !== pending.clientSecret) {
531
+ throw new Error('Pairing resume did not return an exact completed identity.');
532
+ }
533
+ return persistCompletedPairing({
534
+ wire,
535
+ privosUrl: pending.relayUrl,
536
+ clientId: pending.clientId,
537
+ clientSecret: pending.clientSecret,
538
+ mcpAppId: pending.mcpAppId,
539
+ options,
540
+ pending,
541
+ });
542
+ }
260
543
  export async function pairFromDescriptor(pairUrl, descriptor, WebSocketImpl, options) {
261
544
  return pairOverWebSocket(pairUrl, buildPairingMetadata(descriptor), WebSocketImpl, options);
262
545
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../../src/relay/relay-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../../src/relay/relay-client.ts"],"names":[],"mappings":"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"}