sealbridge 0.4.2 → 0.5.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.
Files changed (115) hide show
  1. package/README.ja.md +4 -2
  2. package/README.md +6 -2
  3. package/dist/cli/dist/accept.d.ts +2 -1
  4. package/dist/cli/dist/accept.js +18 -7
  5. package/dist/cli/dist/accept.js.map +1 -1
  6. package/dist/cli/dist/index.js +46 -13
  7. package/dist/cli/dist/index.js.map +1 -1
  8. package/dist/cli/dist/invite-links.d.ts +14 -0
  9. package/dist/cli/dist/invite-links.js +263 -0
  10. package/dist/cli/dist/invite-links.js.map +1 -0
  11. package/dist/cli/dist/invite-output.d.ts +1 -1
  12. package/dist/cli/dist/invite-output.js +3 -2
  13. package/dist/cli/dist/invite-output.js.map +1 -1
  14. package/dist/cli/dist/network.js +16 -23
  15. package/dist/cli/dist/network.js.map +1 -1
  16. package/dist/cli/dist/receipt.d.ts +12 -2
  17. package/dist/cli/dist/receipt.js +6 -5
  18. package/dist/cli/dist/receipt.js.map +1 -1
  19. package/dist/cli/dist/sdk.d.ts +6 -4
  20. package/dist/cli/dist/sdk.js +3 -2
  21. package/dist/cli/dist/sdk.js.map +1 -1
  22. package/dist/examples/two-owner-demo/dist/run-demo.js +3 -1
  23. package/dist/examples/two-owner-demo/dist/run-demo.js.map +1 -1
  24. package/dist/package.json +1 -1
  25. package/dist/packages/core/dist/context-grant.d.ts +13 -0
  26. package/dist/packages/core/dist/context-grant.js +65 -0
  27. package/dist/packages/core/dist/context-grant.js.map +1 -0
  28. package/dist/packages/core/dist/delegation.d.ts +17 -0
  29. package/dist/packages/core/dist/delegation.js +126 -0
  30. package/dist/packages/core/dist/delegation.js.map +1 -0
  31. package/dist/packages/core/dist/edge.d.ts +2 -0
  32. package/dist/packages/core/dist/edge.js +2 -0
  33. package/dist/packages/core/dist/edge.js.map +1 -1
  34. package/dist/packages/core/dist/index.d.ts +4 -0
  35. package/dist/packages/core/dist/index.js +4 -0
  36. package/dist/packages/core/dist/index.js.map +1 -1
  37. package/dist/packages/core/dist/invite-link.d.ts +72 -0
  38. package/dist/packages/core/dist/invite-link.js +225 -0
  39. package/dist/packages/core/dist/invite-link.js.map +1 -0
  40. package/dist/packages/core/dist/invite-sas.d.ts +7 -0
  41. package/dist/packages/core/dist/invite-sas.js +15 -0
  42. package/dist/packages/core/dist/invite-sas.js.map +1 -0
  43. package/dist/packages/core/dist/relay-auth.d.ts +1 -1
  44. package/dist/packages/core/dist/relay-auth.js +1 -1
  45. package/dist/packages/core/dist/relay-auth.js.map +1 -1
  46. package/dist/packages/core/dist/schema.d.ts +1 -1
  47. package/dist/packages/core/dist/schema.js +4 -0
  48. package/dist/packages/core/dist/schema.js.map +1 -1
  49. package/dist/packages/core/dist/types.d.ts +52 -0
  50. package/dist/packages/ledger/dist/index.d.ts +70 -2
  51. package/dist/packages/ledger/dist/index.js +404 -26
  52. package/dist/packages/ledger/dist/index.js.map +1 -1
  53. package/dist/packages/relay/dist/fetch.js +4 -0
  54. package/dist/packages/relay/dist/fetch.js.map +1 -1
  55. package/dist/packages/relay/dist/invites.d.ts +42 -0
  56. package/dist/packages/relay/dist/invites.js +347 -0
  57. package/dist/packages/relay/dist/invites.js.map +1 -0
  58. package/dist/packages/relay/dist/worker.d.ts +3 -0
  59. package/dist/packages/relay/dist/worker.js +21 -0
  60. package/dist/packages/relay/dist/worker.js.map +1 -1
  61. package/dist/packages/runtime/dist/a2a.js +1 -1
  62. package/dist/packages/runtime/dist/adapter.d.ts +1 -0
  63. package/dist/packages/runtime/dist/approval-providers.d.ts +4 -0
  64. package/dist/packages/runtime/dist/approval-providers.js +3 -0
  65. package/dist/packages/runtime/dist/approval-providers.js.map +1 -1
  66. package/dist/packages/runtime/dist/connection-persistence.d.ts +1 -1
  67. package/dist/packages/runtime/dist/context-grant-audit.d.ts +8 -0
  68. package/dist/packages/runtime/dist/context-grant-audit.js +41 -0
  69. package/dist/packages/runtime/dist/context-grant-audit.js.map +1 -0
  70. package/dist/packages/runtime/dist/delegation.d.ts +37 -0
  71. package/dist/packages/runtime/dist/delegation.js +125 -0
  72. package/dist/packages/runtime/dist/delegation.js.map +1 -0
  73. package/dist/packages/runtime/dist/gateway.d.ts +1 -0
  74. package/dist/packages/runtime/dist/gateway.js.map +1 -1
  75. package/dist/packages/runtime/dist/index.d.ts +2 -0
  76. package/dist/packages/runtime/dist/index.js +2 -0
  77. package/dist/packages/runtime/dist/index.js.map +1 -1
  78. package/dist/packages/runtime/dist/mcp-server.js +22 -8
  79. package/dist/packages/runtime/dist/mcp-server.js.map +1 -1
  80. package/dist/packages/runtime/dist/mcp-tool-catalog.js +44 -5
  81. package/dist/packages/runtime/dist/mcp-tool-catalog.js.map +1 -1
  82. package/dist/packages/runtime/dist/session-audit.d.ts +6 -1
  83. package/dist/packages/runtime/dist/session-audit.js +35 -4
  84. package/dist/packages/runtime/dist/session-audit.js.map +1 -1
  85. package/dist/packages/runtime/dist/session.d.ts +21 -1
  86. package/dist/packages/runtime/dist/session.js +427 -62
  87. package/dist/packages/runtime/dist/session.js.map +1 -1
  88. package/dist/packages/runtime/dist/task-journal.d.ts +10 -1
  89. package/dist/packages/runtime/dist/task-journal.js +26 -1
  90. package/dist/packages/runtime/dist/task-journal.js.map +1 -1
  91. package/dist/packages/runtime/dist/verifier.d.ts +5 -2
  92. package/dist/packages/runtime/dist/verifier.js +14 -4
  93. package/dist/packages/runtime/dist/verifier.js.map +1 -1
  94. package/dist/spec/audit-entry.schema.json +25 -1
  95. package/dist/spec/audit-evidence.schema.json +179 -0
  96. package/dist/spec/audit-file-record.schema.json +177 -0
  97. package/dist/spec/audit-interruption.schema.json +110 -0
  98. package/dist/spec/context-grant-audit-payload.schema.json +24 -0
  99. package/dist/spec/context-grant.schema.json +146 -0
  100. package/dist/spec/delegation-attachment.schema.json +167 -0
  101. package/dist/spec/delegation-link.schema.json +141 -0
  102. package/dist/spec/examples/context-pooling/approval_redelegation/sample-delegation-attachment.json +413 -0
  103. package/dist/spec/examples/context-pooling/hand_over/sample-context-grant.json +18 -0
  104. package/dist/spec/examples/context-pooling/hand_over/sample-task-manifest.0.2.0.json +94 -0
  105. package/dist/spec/examples/context-pooling/sample-context-grant-audit-payload.json +4 -0
  106. package/dist/spec/examples/context-pooling/view_only/sample-context-grant.json +18 -0
  107. package/dist/spec/examples/context-pooling/view_only/sample-task-manifest.0.2.0.json +94 -0
  108. package/dist/spec/examples/sample-audit-evidence.json +138 -0
  109. package/dist/spec/examples/sample-audit-file-record.json +31 -0
  110. package/dist/spec/examples/sample-audit-interruption.json +29 -0
  111. package/dist/spec/task-manifest.0.2.0.schema.json +87 -1
  112. package/docs/context-grants.md +221 -0
  113. package/docs/sdk.ja.md +4 -0
  114. package/docs/sdk.md +4 -0
  115. package/package.json +3 -2
@@ -0,0 +1,347 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { createHash, timingSafeEqual } from 'node:crypto';
3
+ import { verifyRelayAuthToken, unpackInviteLinkCiphertext, INVITE_LINK_MAX_TTL_MS } from '../../core/dist/edge.js';
4
+ const headers = { 'cache-control': 'no-store', 'referrer-policy': 'no-referrer', 'content-type': 'application/json' };
5
+ const json = (value, status = 200) => Response.json(value, { status, headers });
6
+ export const inviteUnavailable = () => json({ error: 'INVITE_LINK_UNAVAILABLE' }, 404);
7
+ const hash = (value) => createHash('sha256').update(value).digest('hex');
8
+ function bytes(value, length) {
9
+ if (typeof value !== 'string' || !/^[A-Za-z0-9_-]+$/.test(value) || value.length > Math.ceil(length * 4 / 3))
10
+ throw new Error('INVALID_INVITE_LINK_REQUEST');
11
+ const result = Buffer.from(value, 'base64url');
12
+ if (result.length !== length || result.toString('base64url') !== value)
13
+ throw new Error('INVALID_INVITE_LINK_REQUEST');
14
+ return result;
15
+ }
16
+ export function inviteOwner(request) {
17
+ const token = request.headers.get('authorization')?.replace(/^Bearer /, '') ?? '';
18
+ let did, timestamp;
19
+ try {
20
+ if (token.length > 16384)
21
+ throw new Error();
22
+ const p = JSON.parse(Buffer.from(token, 'base64url').toString()).payload;
23
+ did = p.recipientDid;
24
+ timestamp = p.timestamp;
25
+ }
26
+ catch {
27
+ throw new Error('RELAY_UNAUTHORIZED');
28
+ }
29
+ const result = verifyRelayAuthToken(token, did, { expectedOrigin: new URL(request.url).origin, requireOrigin: true });
30
+ if (!result.valid || result.action !== 'invite-manage')
31
+ throw new Error('RELAY_UNAUTHORIZED');
32
+ return { did, nonce: result.nonce, until: Date.parse(timestamp) + 300001 };
33
+ }
34
+ export async function inviteBody(request) {
35
+ if (Number(request.headers.get('content-length')) > 24000)
36
+ throw new Error('INVALID_INVITE_LINK_REQUEST');
37
+ const reader = request.body?.getReader();
38
+ if (!reader)
39
+ throw new Error('INVALID_INVITE_LINK_REQUEST');
40
+ const chunks = [];
41
+ let size = 0;
42
+ try {
43
+ for (;;) {
44
+ const { value, done } = await reader.read();
45
+ if (done)
46
+ break;
47
+ size += value.length;
48
+ if (size > 24000) {
49
+ await reader.cancel();
50
+ throw new Error('INVALID_INVITE_LINK_REQUEST');
51
+ }
52
+ chunks.push(value);
53
+ }
54
+ const data = JSON.parse(Buffer.concat(chunks).toString());
55
+ if (!data || typeof data !== 'object' || Array.isArray(data))
56
+ throw new Error();
57
+ return data;
58
+ }
59
+ catch {
60
+ throw new Error('INVALID_INVITE_LINK_REQUEST');
61
+ }
62
+ finally {
63
+ reader.releaseLock();
64
+ }
65
+ }
66
+ function ciphertextBody(body) {
67
+ if (Object.keys(body).length !== 5)
68
+ throw new Error('INVALID_INVITE_LINK_REQUEST');
69
+ const { tagHash, ...encrypted } = body;
70
+ bytes(tagHash, 32);
71
+ unpackInviteLinkCiphertext(encrypted);
72
+ const expires = Date.parse(encrypted.expiresAt), now = Date.now();
73
+ if (expires <= now || expires - now > INVITE_LINK_MAX_TTL_MS)
74
+ throw new Error('INVALID_INVITE_LINK_EXPIRY');
75
+ return encrypted;
76
+ }
77
+ function childRequest(request, path, method, body) {
78
+ const url = new URL(request.url);
79
+ url.pathname = path;
80
+ const forwardedHeaders = new Headers(request.headers);
81
+ forwardedHeaders.delete('content-length');
82
+ return new Request(url, { method, headers: forwardedHeaders, ...(body === undefined ? {} : { body: JSON.stringify(body) }) });
83
+ }
84
+ /** One serialized instance per invite id, owner DID, or hashed claimant IP. */
85
+ export class InviteDurableObject {
86
+ state;
87
+ env;
88
+ turn = Promise.resolve();
89
+ constructor(state, env = {}) {
90
+ this.state = state;
91
+ this.env = env;
92
+ }
93
+ enqueue(work) {
94
+ const next = this.turn.then(work);
95
+ // Keep only completion in the queue, never a response containing ciphertext.
96
+ this.turn = next.then(() => undefined, () => undefined);
97
+ return next;
98
+ }
99
+ async alarm() {
100
+ await this.enqueue(async () => {
101
+ await this.cleanup();
102
+ const rate = await this.state.storage.get('claim-rate');
103
+ if (rate)
104
+ await this.saveClaimRate(rate);
105
+ });
106
+ }
107
+ async saveClaimRate(rate) {
108
+ const now = Date.now();
109
+ rate.claims = rate.claims.filter(t => t > now - 3600000);
110
+ rate.failures = rate.failures.filter(t => t > now - 3600000);
111
+ await this.state.storage.put('claim-rate', rate);
112
+ const oldest = Math.min(...rate.claims, ...rate.failures);
113
+ if (Number.isFinite(oldest))
114
+ await this.state.storage.setAlarm?.(oldest + 3600000);
115
+ else
116
+ await this.state.storage.deleteAlarm?.();
117
+ }
118
+ async limitedClaim(request) {
119
+ const now = Date.now();
120
+ const rate = await this.state.storage.get('claim-rate') ?? { claims: [], failures: [] };
121
+ const windows = [
122
+ { times: rate.claims, limit: 10, ms: 60000 },
123
+ { times: rate.claims, limit: 60, ms: 3600000 },
124
+ { times: rate.failures, limit: 10, ms: 3600000 },
125
+ ];
126
+ let retry = 0;
127
+ for (const { times, limit, ms } of windows) {
128
+ const fresh = times.filter(t => t > now - ms);
129
+ if (fresh.length >= limit)
130
+ retry = Math.max(retry, Math.ceil((fresh[0] + ms - now) / 1000));
131
+ }
132
+ if (retry)
133
+ return Response.json({ error: 'RATE_LIMITED' }, { status: 429, headers: { ...headers, 'retry-after': String(retry) } });
134
+ // Reserve before forwarding. An interrupted response still counts as an attempt.
135
+ rate.claims.push(now);
136
+ await this.saveClaimRate(rate);
137
+ const url = new URL(request.url);
138
+ url.pathname = '/v1/invites/claim';
139
+ const response = await routeInvite(new Request(url, request), this.env.INVITES);
140
+ if (response.status === 404) {
141
+ rate.failures.push(now);
142
+ await this.saveClaimRate(rate);
143
+ }
144
+ return response;
145
+ }
146
+ async cleanup() {
147
+ const r = await this.state.storage.get('invite');
148
+ if (!r)
149
+ return;
150
+ const now = Date.now();
151
+ let changed = false;
152
+ if (r.status === 'unused' && Date.parse(r.expiresAt) <= now) {
153
+ r.status = 'expired';
154
+ changed = true;
155
+ }
156
+ if (r.status !== 'unused' && (r.status !== 'claimed' || now >= r.retryUntil || now >= Date.parse(r.expiresAt))) {
157
+ changed ||= r.encrypted !== undefined;
158
+ delete r.encrypted;
159
+ delete r.tagHash;
160
+ delete r.claimNonceHash;
161
+ delete r.retryUntil;
162
+ }
163
+ if (changed)
164
+ await this.state.storage.put('invite', r);
165
+ if (r.encrypted)
166
+ await this.state.storage.setAlarm?.(r.status === 'claimed' ? Math.min(r.retryUntil, Date.parse(r.expiresAt)) : Date.parse(r.expiresAt));
167
+ else
168
+ await this.state.storage.deleteAlarm?.();
169
+ return r;
170
+ }
171
+ fetch(request) { return this.enqueue(() => this.handle(request)); }
172
+ async handle(request) {
173
+ const path = new URL(request.url).pathname.replace(/^\/v1/, '');
174
+ const claim = request.method === 'POST' && path === '/invites/claim';
175
+ try {
176
+ // Only the edge/local router can reach this internal coordinator route.
177
+ if (request.method === 'POST' && path === '/invite-claims')
178
+ return await this.limitedClaim(request);
179
+ if (claim) {
180
+ const body = await inviteBody(request);
181
+ bytes(body.id, 16);
182
+ const tag = bytes(body.tag, 32);
183
+ bytes(body.claimNonce, 32);
184
+ if (Object.keys(body).length !== 3)
185
+ return inviteUnavailable();
186
+ const r = await this.cleanup();
187
+ if (!r || r.id !== body.id || !r.encrypted || Date.parse(r.expiresAt) <= Date.now() || !r.tagHash)
188
+ return inviteUnavailable();
189
+ const valid = timingSafeEqual(createHash('sha256').update(tag).digest(), bytes(r.tagHash, 32));
190
+ if (!valid) {
191
+ if (r.status === 'unused') {
192
+ r.wrongTags++;
193
+ if (r.wrongTags >= 3) {
194
+ r.status = 'locked_out';
195
+ delete r.encrypted;
196
+ delete r.tagHash;
197
+ }
198
+ await this.state.storage.put('invite', r);
199
+ await this.cleanup();
200
+ }
201
+ return inviteUnavailable();
202
+ }
203
+ const nonceHash = hash(body.claimNonce);
204
+ if (r.status === 'claimed')
205
+ return r.claimNonceHash === nonceHash && Date.now() < r.retryUntil ? json(r.encrypted) : inviteUnavailable();
206
+ if (r.status !== 'unused')
207
+ return inviteUnavailable();
208
+ r.status = 'claimed';
209
+ r.claimedAt = new Date().toISOString();
210
+ r.retryUntil = Date.now() + 120000;
211
+ r.claimNonceHash = nonceHash;
212
+ await this.state.storage.put('invite', r);
213
+ await this.cleanup();
214
+ return json(r.encrypted);
215
+ }
216
+ const auth = inviteOwner(request);
217
+ if (request.method === 'POST' && path === '/invites') {
218
+ const body = await inviteBody(request), encrypted = ciphertextBody(body);
219
+ const existing = await this.state.storage.get('invite');
220
+ if (existing)
221
+ return json({ error: 'INVITE_LINK_EXISTS' }, 409);
222
+ await this.state.storage.put('invite', { ownerDid: auth.did, id: encrypted.id, expiresAt: encrypted.expiresAt,
223
+ status: 'unused', tagHash: body.tagHash, encrypted, wrongTags: 0 });
224
+ await this.cleanup();
225
+ return json({ id: encrypted.id, expiresAt: encrypted.expiresAt }, 201);
226
+ }
227
+ if (request.method === 'POST' && path === '/invite-admissions') {
228
+ const body = await inviteBody(request), encrypted = ciphertextBody(body);
229
+ const owner = await this.state.storage.get('owner') ?? { creates: [], links: [], nonces: [] };
230
+ const now = Date.now();
231
+ owner.creates = owner.creates.filter(t => t > now - 86400000);
232
+ owner.nonces = owner.nonces.filter(n => n.until >= now);
233
+ if (owner.nonces.some(n => n.hash === hash(auth.nonce)))
234
+ throw new Error('RELAY_UNAUTHORIZED');
235
+ owner.nonces.push({ hash: hash(auth.nonce), until: auth.until });
236
+ // Durable reservation precedes child writes. Failed/uncertain writes consume a create slot.
237
+ const unused = [];
238
+ for (const link of owner.links.filter(l => Date.parse(l.expiresAt) > now)) {
239
+ const res = await this.env.INVITES.get(this.env.INVITES.idFromName('invite:' + link.id)).fetch(childRequest(request, '/v1/invites/' + link.id + '/status', 'GET'));
240
+ if (!res.ok || (await res.json()).status === 'unused')
241
+ unused.push(link);
242
+ }
243
+ owner.links = unused;
244
+ if (owner.creates.length >= 50 || unused.length >= 20)
245
+ return Response.json({ error: 'RATE_LIMITED' }, { status: 429, headers: { ...headers, 'retry-after': '86400' } });
246
+ owner.creates.push(now);
247
+ owner.links.push({ id: encrypted.id, expiresAt: encrypted.expiresAt });
248
+ await this.state.storage.put('owner', owner);
249
+ return this.env.INVITES.get(this.env.INVITES.idFromName('invite:' + encrypted.id)).fetch(childRequest(request, '/v1/invites', 'POST', body));
250
+ }
251
+ const match = /^\/invites\/([A-Za-z0-9_-]{22})(\/status)?$/.exec(path);
252
+ if (!match)
253
+ return json({ error: 'NOT_FOUND' }, 404);
254
+ const r = await this.cleanup();
255
+ if (!r || r.id !== match[1] || r.ownerDid !== auth.did)
256
+ return inviteUnavailable();
257
+ if (request.method === 'GET' && match[2])
258
+ return json({ id: r.id, status: r.status, expiresAt: r.expiresAt, ...(r.claimedAt ? { claimedAt: r.claimedAt } : {}) });
259
+ if (request.method === 'DELETE' && !match[2]) {
260
+ const used = (await this.state.storage.get('cancel-nonces') ?? []).filter(n => n.until >= Date.now());
261
+ if (used.some(n => n.hash === hash(auth.nonce)))
262
+ throw new Error('RELAY_UNAUTHORIZED');
263
+ await this.state.storage.put('cancel-nonces', [...used, { hash: hash(auth.nonce), until: auth.until }]);
264
+ r.status = 'cancelled';
265
+ delete r.encrypted;
266
+ delete r.tagHash;
267
+ delete r.claimNonceHash;
268
+ delete r.retryUntil;
269
+ await this.state.storage.put('invite', r);
270
+ await this.cleanup();
271
+ return json({ cancelled: true });
272
+ }
273
+ return json({ error: 'NOT_FOUND' }, 404);
274
+ }
275
+ catch (error) {
276
+ if (claim)
277
+ return inviteUnavailable();
278
+ const unauthorized = error instanceof Error && error.message === 'RELAY_UNAUTHORIZED';
279
+ return json({ error: unauthorized ? 'RELAY_UNAUTHORIZED' : 'INVALID_INVITE_LINK_REQUEST' }, unauthorized ? 401 : 400);
280
+ }
281
+ }
282
+ }
283
+ /** Coordinates the exact rolling IP limits across edge isolates and object restarts. */
284
+ export function routeInviteClaim(request, namespace, ip) {
285
+ const url = new URL(request.url);
286
+ url.pathname = '/v1/invite-claims';
287
+ return namespace.get(namespace.idFromName('claim-ip:' + hash(ip))).fetch(new Request(url, request));
288
+ }
289
+ /** Shared router for edge and local relay. Names never contain K, tag or token. */
290
+ export async function routeInvite(request, namespace) {
291
+ const url = new URL(request.url), path = url.pathname.replace(/^\/v1/, '');
292
+ if (request.method === 'GET' && path === '/capabilities')
293
+ return json({ inviteLinks: 1 });
294
+ try {
295
+ if (request.method === 'POST' && path === '/invites') {
296
+ const owner = inviteOwner(request);
297
+ const body = await inviteBody(request);
298
+ ciphertextBody(body);
299
+ return namespace.get(namespace.idFromName('owner:' + owner.did)).fetch(childRequest(request, '/v1/invite-admissions', 'POST', body));
300
+ }
301
+ if (request.method === 'POST' && path === '/invites/claim') {
302
+ const body = await inviteBody(request);
303
+ bytes(body.id, 16);
304
+ return namespace.get(namespace.idFromName('invite:' + body.id)).fetch(childRequest(request, '/v1/invites/claim', 'POST', body));
305
+ }
306
+ const match = /^\/invites\/([A-Za-z0-9_-]{22})(?:\/status)?$/.exec(path);
307
+ if (match) {
308
+ inviteOwner(request);
309
+ bytes(match[1], 16);
310
+ return namespace.get(namespace.idFromName('invite:' + match[1])).fetch(request);
311
+ }
312
+ return request.method === 'POST' && path === '/invites/claim' ? inviteUnavailable() : json({ error: 'NOT_FOUND' }, 404);
313
+ }
314
+ catch (error) {
315
+ if (path === '/invites/claim')
316
+ return inviteUnavailable();
317
+ return json({ error: error instanceof Error && error.message === 'RELAY_UNAUTHORIZED' ? 'RELAY_UNAUTHORIZED' : 'INVALID_INVITE_LINK_REQUEST' }, error instanceof Error && error.message === 'RELAY_UNAUTHORIZED' ? 401 : 400);
318
+ }
319
+ }
320
+ export function createMemoryInviteHandler() {
321
+ const objects = new Map();
322
+ const namespace = {
323
+ idFromName: name => name,
324
+ get(id) {
325
+ const name = String(id);
326
+ let object = objects.get(name);
327
+ if (!object) {
328
+ const values = new Map();
329
+ let alarm;
330
+ object = new InviteDurableObject({ storage: { get: async (key) => structuredClone(values.get(key)),
331
+ put: async (key, value) => { values.set(key, structuredClone(value)); },
332
+ setAlarm: async (at) => {
333
+ clearTimeout(alarm);
334
+ alarm = setTimeout(() => { void object.alarm().catch(() => { }); }, Math.max(1, Number(at) - Date.now()));
335
+ alarm.unref();
336
+ },
337
+ deleteAlarm: async () => { clearTimeout(alarm); alarm = undefined; }, } }, { INVITES: namespace });
338
+ objects.set(name, object);
339
+ }
340
+ return object;
341
+ },
342
+ };
343
+ return request => request.method === 'POST' && new URL(request.url).pathname === '/v1/invites/claim'
344
+ ? routeInviteClaim(request, namespace, request.headers.get('cf-connecting-ip') ?? 'local')
345
+ : routeInvite(request, namespace);
346
+ }
347
+ //# sourceMappingURL=invites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invites.js","sourceRoot":"","sources":["../src/invites.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import type { InviteNamespace } from './invites.js';
2
+ export { InviteDurableObject } from './invites.js';
1
3
  interface DurableStorage {
2
4
  get<T>(key: string): Promise<T | undefined>;
3
5
  put(key: string, value: unknown): Promise<void>;
@@ -72,6 +74,7 @@ interface RelayNamespace {
72
74
  }
73
75
  export interface RelayEdgeEnv {
74
76
  RELAY?: RelayNamespace;
77
+ INVITES?: InviteNamespace;
75
78
  RATE_LIMITER?: {
76
79
  limit(options: {
77
80
  key: string;
@@ -1,4 +1,6 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
+ import { routeInvite, routeInviteClaim } from './invites.js';
3
+ export { InviteDurableObject } from './invites.js';
2
4
  import { resolveDid, generateKeyPair } from '../../core/dist/edge.js';
3
5
  import { beginDurableLongPoll, canonicalRelayPath, createRelayFetchHandler, DEFAULT_MAX_ENVELOPE_BYTES, inboxRecipientFromRequest, InMemoryRelay, relayErrorResponse, relayHttpHeaders, relayLimitsFromEnv, } from './fetch.js';
4
6
  import { relayWakeFromEnv } from './notifications.js';
@@ -418,6 +420,25 @@ export async function handleRelayEdge(request, env) {
418
420
  const path = canonicalRelayPath(url.pathname);
419
421
  if (request.method === 'GET' && path === '/health')
420
422
  return Response.json({ status: 'ok' }, { headers: relayHttpHeaders('json') });
423
+ if (request.method === 'GET' && url.pathname === '/v1/capabilities')
424
+ return Response.json(env?.RELAY && !env.INVITES ? {} : { inviteLinks: 1 }, { headers: relayHttpHeaders('json') });
425
+ if (url.pathname.startsWith('/v1/invites')) {
426
+ const claim = request.method === 'POST' && url.pathname === '/v1/invites/claim';
427
+ if (claim && env?.RATE_LIMITER) {
428
+ try {
429
+ if (!(await env.RATE_LIMITER.limit({ key: clientIp(request) + ':invite-claim' })).success)
430
+ return tooMany(60);
431
+ }
432
+ catch {
433
+ return Response.json({ error: 'RATE_LIMITER_UNAVAILABLE' }, { status: 503, headers: relayHttpHeaders('json') });
434
+ }
435
+ }
436
+ if (env?.RELAY && !env.INVITES)
437
+ return Response.json({ error: 'INVITE_LINK_UNAVAILABLE' }, { status: 503, headers: relayHttpHeaders('json') });
438
+ return env?.INVITES
439
+ ? claim ? routeInviteClaim(request, env.INVITES, clientIp(request)) : routeInvite(request, env.INVITES)
440
+ : localHandler(request);
441
+ }
421
442
  const bucket = rateBucket(request.method, path);
422
443
  if (bucket) {
423
444
  const limited = await applyRateLimit(request, env, bucket);
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export function agentCard(name, url) {
7
7
  name,
8
8
  description: 'Sealbridge owner gateway',
9
9
  supportedInterfaces: [{ url, protocolBinding: 'JSONRPC', protocolVersion: A2A_PROTOCOL_VERSION }],
10
- version: '0.4.2',
10
+ version: '0.5.0',
11
11
  capabilities: { streaming: false },
12
12
  defaultInputModes: ['application/json'],
13
13
  defaultOutputModes: ['application/json'],
@@ -28,6 +28,7 @@ export interface ProtocolEnvelope<T> {
28
28
  payload: T;
29
29
  }
30
30
  export interface AgentTaskContext {
31
+ redelegate?: (request: import('./session.js').ChildDelegationRequest) => Promise<import('./session.js').SessionResult>;
31
32
  taskId: string;
32
33
  manifest: TaskManifest;
33
34
  input: Json;
@@ -42,6 +42,7 @@ export interface ApprovalRequest {
42
42
  deadline?: string;
43
43
  }
44
44
  export interface ApprovalProvider {
45
+ readonly ownerDecision?: true;
45
46
  readonly kind?: 'human' | 'policy';
46
47
  approve(request: ApprovalRequest): Promise<ApprovalReceipt>;
47
48
  }
@@ -53,6 +54,7 @@ export declare class InteractiveCliApprovalProvider implements ApprovalProvider
53
54
  formatRequest?: (request: ApprovalRequest) => string;
54
55
  };
55
56
  readonly kind: "human";
57
+ readonly ownerDecision: true;
56
58
  constructor(owner: KeyPair, options?: {
57
59
  input?: Readable;
58
60
  output?: Writable;
@@ -94,6 +96,7 @@ export declare function assertApprovalWebhookUrl(value: string): void;
94
96
  export declare class WebhookApprovalProvider implements ApprovalProvider {
95
97
  readonly owner: KeyPair;
96
98
  readonly options: WebhookApprovalProviderOptions;
99
+ get ownerDecision(): true | undefined;
97
100
  constructor(owner: KeyPair, options: WebhookApprovalProviderOptions);
98
101
  approve(r: ApprovalRequest): Promise<ApprovalReceipt>;
99
102
  /** Sign with the owner key only when the webhook explicitly approves. */
@@ -108,6 +111,7 @@ export declare class McpFormApprovalProvider implements ApprovalProvider {
108
111
  timeoutMs?: number;
109
112
  now?: () => number;
110
113
  };
114
+ readonly ownerDecision: true;
111
115
  private queue;
112
116
  constructor(owner: KeyPair, options: {
113
117
  available: () => boolean;
@@ -98,6 +98,7 @@ export class InteractiveCliApprovalProvider {
98
98
  owner;
99
99
  options;
100
100
  kind = 'human';
101
+ ownerDecision = true;
101
102
  constructor(owner, options = {}) {
102
103
  this.owner = owner;
103
104
  this.options = options;
@@ -197,6 +198,7 @@ function approvalReason(request) {
197
198
  export class WebhookApprovalProvider {
198
199
  owner;
199
200
  options;
201
+ get ownerDecision() { return this.options.response === 'owner-decision' ? true : undefined; }
200
202
  constructor(owner, options) {
201
203
  this.owner = owner;
202
204
  this.options = options;
@@ -273,6 +275,7 @@ export class WebhookApprovalProvider {
273
275
  export class McpFormApprovalProvider {
274
276
  owner;
275
277
  options;
278
+ ownerDecision = true;
276
279
  queue = Promise.resolve();
277
280
  constructor(owner, options) {
278
281
  this.owner = owner;