sealbridge 0.1.0 → 0.2.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.
- package/README.ja.md +22 -0
- package/README.md +104 -3
- package/dist/cli/dist/approval-summary.d.ts +2 -0
- package/dist/cli/dist/approval-summary.js +32 -0
- package/dist/cli/dist/approval-summary.js.map +1 -0
- package/dist/cli/dist/error-messages.d.ts +2 -0
- package/dist/cli/dist/error-messages.js +24 -0
- package/dist/cli/dist/error-messages.js.map +1 -0
- package/dist/cli/dist/index.js +2 -1
- package/dist/cli/dist/index.js.map +1 -1
- package/dist/cli/dist/invite-share.js +2 -8
- package/dist/cli/dist/invite-share.js.map +1 -1
- package/dist/cli/dist/network.js +87 -11
- package/dist/cli/dist/network.js.map +1 -1
- package/dist/cli/dist/task-input.d.ts +2 -0
- package/dist/cli/dist/task-input.js +19 -0
- package/dist/cli/dist/task-input.js.map +1 -0
- package/dist/cli/dist/wake-hook.d.ts +3 -0
- package/dist/cli/dist/wake-hook.js +32 -0
- package/dist/cli/dist/wake-hook.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/packages/adapters/dist/command.d.ts +2 -0
- package/dist/packages/adapters/dist/command.js +13 -0
- package/dist/packages/adapters/dist/command.js.map +1 -1
- package/dist/packages/core/dist/capability.js +7 -2
- package/dist/packages/core/dist/capability.js.map +1 -1
- package/dist/packages/core/dist/crypto.js +8 -2
- package/dist/packages/core/dist/crypto.js.map +1 -1
- package/dist/packages/core/dist/discovery.d.ts +5 -0
- package/dist/packages/core/dist/discovery.js +29 -13
- package/dist/packages/core/dist/discovery.js.map +1 -1
- package/dist/packages/core/dist/revocation.d.ts +4 -1
- package/dist/packages/core/dist/revocation.js +29 -5
- package/dist/packages/core/dist/revocation.js.map +1 -1
- package/dist/packages/relay/dist/fetch.d.ts +28 -1
- package/dist/packages/relay/dist/fetch.js +195 -4
- package/dist/packages/relay/dist/fetch.js.map +1 -1
- package/dist/packages/relay/dist/index.d.ts +16 -5
- package/dist/packages/relay/dist/index.js +243 -95
- package/dist/packages/relay/dist/index.js.map +1 -1
- package/dist/packages/relay/dist/journal.d.ts +7 -0
- package/dist/packages/relay/dist/journal.js +33 -4
- package/dist/packages/relay/dist/journal.js.map +1 -1
- package/dist/packages/relay/dist/notifications.d.ts +63 -0
- package/dist/packages/relay/dist/notifications.js +55 -0
- package/dist/packages/relay/dist/notifications.js.map +1 -0
- package/dist/packages/relay/dist/retry.d.ts +4 -1
- package/dist/packages/relay/dist/retry.js +27 -7
- package/dist/packages/relay/dist/retry.js.map +1 -1
- package/dist/packages/relay/dist/worker.d.ts +7 -0
- package/dist/packages/relay/dist/worker.js +57 -8
- package/dist/packages/relay/dist/worker.js.map +1 -1
- package/dist/packages/runtime/dist/a2a.js +1 -1
- package/dist/packages/runtime/dist/approval-providers.d.ts +2 -0
- package/dist/packages/runtime/dist/approval-providers.js +2 -2
- package/dist/packages/runtime/dist/approval-providers.js.map +1 -1
- package/dist/packages/runtime/dist/mcp-server.js +17 -1
- package/dist/packages/runtime/dist/mcp-server.js.map +1 -1
- package/dist/packages/runtime/dist/mcp-tool-catalog.js +16 -0
- package/dist/packages/runtime/dist/mcp-tool-catalog.js.map +1 -1
- package/dist/packages/runtime/dist/session-audit.d.ts +22 -3
- package/dist/packages/runtime/dist/session-audit.js +128 -23
- package/dist/packages/runtime/dist/session-audit.js.map +1 -1
- package/dist/packages/runtime/dist/session-timeouts.d.ts +33 -0
- package/dist/packages/runtime/dist/session-timeouts.js +62 -0
- package/dist/packages/runtime/dist/session-timeouts.js.map +1 -0
- package/dist/packages/runtime/dist/session.d.ts +52 -17
- package/dist/packages/runtime/dist/session.js +466 -94
- package/dist/packages/runtime/dist/session.js.map +1 -1
- package/dist/packages/runtime/dist/task-journal.d.ts +36 -0
- package/dist/packages/runtime/dist/task-journal.js +104 -0
- package/dist/packages/runtime/dist/task-journal.js.map +1 -0
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { verifySignedAgentCard } from '../../core/dist/edge.js';
|
|
|
3
3
|
import { agentRegistryKey } from './fetch.js';
|
|
4
4
|
export function emptyCursor(seenMod, authMod) {
|
|
5
5
|
return {
|
|
6
|
+
operationHead: 0, operationTail: 0, operationSeq: new Map(),
|
|
6
7
|
head: 0,
|
|
7
8
|
tail: 0,
|
|
8
9
|
seqById: new Map(),
|
|
@@ -37,6 +38,7 @@ function registryKey(card) {
|
|
|
37
38
|
}
|
|
38
39
|
function cloneCursor(cursor) {
|
|
39
40
|
return {
|
|
41
|
+
operationHead: cursor.operationHead, operationTail: cursor.operationTail, operationSeq: new Map(cursor.operationSeq),
|
|
40
42
|
head: cursor.head,
|
|
41
43
|
tail: cursor.tail,
|
|
42
44
|
seqById: new Map(cursor.seqById),
|
|
@@ -62,6 +64,24 @@ export function planJournal(cursor, prev, next) {
|
|
|
62
64
|
const seenExpiry = pairMap(next.seenExpiry);
|
|
63
65
|
const authExpiry = pairMap(next.authExpiry);
|
|
64
66
|
const nextIds = new Set();
|
|
67
|
+
const prevOps = new Map(prev.operations ?? []);
|
|
68
|
+
const nextOps = new Map(next.operations ?? []);
|
|
69
|
+
for (const [id, seq] of cursor.operationSeq) {
|
|
70
|
+
if (!nextOps.has(id) || JSON.stringify(prevOps.get(id)) !== JSON.stringify(nextOps.get(id))) {
|
|
71
|
+
deletes.push('operation:' + seq);
|
|
72
|
+
nextCursor.operationSeq.delete(id);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
for (const [id, operation] of nextOps) {
|
|
76
|
+
if (nextCursor.operationSeq.has(id))
|
|
77
|
+
continue;
|
|
78
|
+
const seq = nextCursor.operationTail++;
|
|
79
|
+
nextCursor.operationSeq.set(id, seq);
|
|
80
|
+
puts.push({ key: 'operation:' + seq, value: { id, operation } });
|
|
81
|
+
}
|
|
82
|
+
nextCursor.operationHead = nextCursor.operationTail;
|
|
83
|
+
for (const seq of nextCursor.operationSeq.values())
|
|
84
|
+
nextCursor.operationHead = Math.min(nextCursor.operationHead, seq);
|
|
65
85
|
for (const [, queue] of next.queues) {
|
|
66
86
|
for (const envelope of queue) {
|
|
67
87
|
const id = envelope.payload.envelopeId;
|
|
@@ -167,6 +187,7 @@ export function planJournal(cursor, prev, next) {
|
|
|
167
187
|
deletes,
|
|
168
188
|
meta: {
|
|
169
189
|
v: 2,
|
|
190
|
+
...(nextCursor.operationTail ? { operationHead: nextCursor.operationHead, operationTail: nextCursor.operationTail } : {}),
|
|
170
191
|
head: nextCursor.head,
|
|
171
192
|
tail: nextCursor.tail,
|
|
172
193
|
seenTail: nextCursor.seenTail,
|
|
@@ -214,6 +235,16 @@ async function readLegacy(storage, now) {
|
|
|
214
235
|
}
|
|
215
236
|
async function loadMeta(storage, meta, now, limits) {
|
|
216
237
|
const cursor = emptyCursor(meta.seenMod || limits.seenMod, meta.authMod || limits.authMod);
|
|
238
|
+
cursor.operationHead = meta.operationHead ?? 0;
|
|
239
|
+
cursor.operationTail = meta.operationTail ?? 0;
|
|
240
|
+
const operations = [];
|
|
241
|
+
for (let seq = cursor.operationHead; seq < cursor.operationTail; seq++) {
|
|
242
|
+
const row = await storage.get('operation:' + seq);
|
|
243
|
+
if (!row)
|
|
244
|
+
continue;
|
|
245
|
+
cursor.operationSeq.set(row.id, seq);
|
|
246
|
+
operations.push([row.id, row.operation]);
|
|
247
|
+
}
|
|
217
248
|
cursor.head = meta.head;
|
|
218
249
|
cursor.tail = meta.tail;
|
|
219
250
|
cursor.seenTail = meta.seenTail;
|
|
@@ -228,10 +259,7 @@ async function loadMeta(storage, meta, now, limits) {
|
|
|
228
259
|
cursor.orphanSeqs.push(seq);
|
|
229
260
|
continue;
|
|
230
261
|
}
|
|
231
|
-
|
|
232
|
-
cursor.orphanSeqs.push(seq);
|
|
233
|
-
continue;
|
|
234
|
-
}
|
|
262
|
+
// Restore expired envelopes too: the relay converts them into signed tombstones.
|
|
235
263
|
const id = row.envelope.payload.envelopeId;
|
|
236
264
|
cursor.seqById.set(id, seq);
|
|
237
265
|
const did = row.envelope.payload.recipientDid;
|
|
@@ -282,6 +310,7 @@ async function loadMeta(storage, meta, now, limits) {
|
|
|
282
310
|
return {
|
|
283
311
|
cursor,
|
|
284
312
|
snapshot: {
|
|
313
|
+
operations,
|
|
285
314
|
queues: [...queues],
|
|
286
315
|
seen: cursor.liveSeen,
|
|
287
316
|
authSeen: cursor.liveAuth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../src/journal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../src/journal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Signed } from '@acp/core/edge';
|
|
2
|
+
/** Wake messages deliberately carry no envelope, sender, or task content. */
|
|
3
|
+
export interface RelayWake {
|
|
4
|
+
recipientDid: string;
|
|
5
|
+
taskId: string;
|
|
6
|
+
relay: string;
|
|
7
|
+
}
|
|
8
|
+
export type SignedRelayWake = Signed<RelayWake>;
|
|
9
|
+
export interface RelayDeliveryStatus {
|
|
10
|
+
type: 'RelayDeliveryStatus';
|
|
11
|
+
state: 'pending' | 'expired' | 'unknown';
|
|
12
|
+
envelopeId: string;
|
|
13
|
+
senderDid: string;
|
|
14
|
+
recipientDid: string;
|
|
15
|
+
relay: string;
|
|
16
|
+
taskId?: string;
|
|
17
|
+
expiresAt?: number;
|
|
18
|
+
}
|
|
19
|
+
export type SignedRelayDeliveryStatus = Signed<RelayDeliveryStatus>;
|
|
20
|
+
export interface RelayWakeOptions {
|
|
21
|
+
/** Operator-owned channels. Recipients may select a name, never supply an endpoint. */
|
|
22
|
+
channels: Record<string, (wake: SignedRelayWake, signal: AbortSignal) => Promise<void>>;
|
|
23
|
+
relay: string;
|
|
24
|
+
maxAttempts?: number;
|
|
25
|
+
retryBaseMs?: number;
|
|
26
|
+
timeoutMs?: number;
|
|
27
|
+
}
|
|
28
|
+
/** Transient attempt handle. Only routing metadata is passed to the configured channel. */
|
|
29
|
+
export interface RelayWakeAttempt {
|
|
30
|
+
id: string;
|
|
31
|
+
attempt: number;
|
|
32
|
+
notice: SignedRelayWake;
|
|
33
|
+
deliver: (wake: SignedRelayWake, signal: AbortSignal) => Promise<void>;
|
|
34
|
+
timeoutMs: number;
|
|
35
|
+
}
|
|
36
|
+
export type RelayOperation = {
|
|
37
|
+
kind: 'registration';
|
|
38
|
+
recipientDid: string;
|
|
39
|
+
channel: string;
|
|
40
|
+
expiresAt: number;
|
|
41
|
+
} | {
|
|
42
|
+
kind: 'wake';
|
|
43
|
+
recipientDid: string;
|
|
44
|
+
taskId: string;
|
|
45
|
+
channel: string;
|
|
46
|
+
expiresAt: number;
|
|
47
|
+
attempts: number;
|
|
48
|
+
nextAttempt: number;
|
|
49
|
+
done: boolean;
|
|
50
|
+
} | {
|
|
51
|
+
kind: 'expiry';
|
|
52
|
+
notice: SignedRelayDeliveryStatus;
|
|
53
|
+
expiresAt: number;
|
|
54
|
+
};
|
|
55
|
+
/** Pin the relay identity obtained from the operator; reject stale or extra-content wakes. */
|
|
56
|
+
export declare function verifyRelayWake(wake: SignedRelayWake, relayDid: string, relay: string, now?: number): boolean;
|
|
57
|
+
export declare class RelayEnvelopeExpiredError extends Error {
|
|
58
|
+
readonly notice: SignedRelayDeliveryStatus;
|
|
59
|
+
readonly code = "RELAY_ENVELOPE_EXPIRED";
|
|
60
|
+
constructor(notice: SignedRelayDeliveryStatus);
|
|
61
|
+
}
|
|
62
|
+
/** Fixed operator endpoint; HTTP clients can only select the channel name. */
|
|
63
|
+
export declare function relayWakeFromEnv(env?: Record<string, unknown>): RelayWakeOptions | undefined;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
import { verifySigned } from '../../core/dist/edge.js';
|
|
3
|
+
/** Pin the relay identity obtained from the operator; reject stale or extra-content wakes. */
|
|
4
|
+
export function verifyRelayWake(wake, relayDid, relay, now = Date.now()) {
|
|
5
|
+
try {
|
|
6
|
+
return Object.keys(wake.payload).sort().join() === 'recipientDid,relay,taskId' &&
|
|
7
|
+
typeof wake.payload.recipientDid === 'string' && typeof wake.payload.taskId === 'string' &&
|
|
8
|
+
wake.payload.relay === relay && Math.abs(now - Date.parse(wake.signature.signedAt)) <= 300_000 &&
|
|
9
|
+
verifySigned(wake, relayDid);
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class RelayEnvelopeExpiredError extends Error {
|
|
16
|
+
notice;
|
|
17
|
+
code = 'RELAY_ENVELOPE_EXPIRED';
|
|
18
|
+
constructor(notice) {
|
|
19
|
+
super('RELAY_ENVELOPE_EXPIRED');
|
|
20
|
+
this.notice = notice;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/** Fixed operator endpoint; HTTP clients can only select the channel name. */
|
|
24
|
+
export function relayWakeFromEnv(env) {
|
|
25
|
+
if (!env?.ACP_WAKE_ENDPOINT)
|
|
26
|
+
return undefined;
|
|
27
|
+
if (typeof env.ACP_WAKE_ENDPOINT !== 'string' || typeof env.ACP_WAKE_RELAY !== 'string')
|
|
28
|
+
throw new Error('INVALID_REQUEST');
|
|
29
|
+
const endpoint = new URL(env.ACP_WAKE_ENDPOINT);
|
|
30
|
+
if (endpoint.protocol !== 'https:' || endpoint.username || endpoint.password || endpoint.search || endpoint.hash)
|
|
31
|
+
throw new Error('INVALID_REQUEST');
|
|
32
|
+
const count = (name) => {
|
|
33
|
+
const value = env[name];
|
|
34
|
+
if (value === undefined)
|
|
35
|
+
return;
|
|
36
|
+
const parsed = typeof value === 'string' ? Number(value) : NaN;
|
|
37
|
+
if (!Number.isSafeInteger(parsed) || parsed < 1)
|
|
38
|
+
throw new Error('INVALID_RELAY_LIMIT');
|
|
39
|
+
return parsed;
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
relay: env.ACP_WAKE_RELAY,
|
|
43
|
+
maxAttempts: count('ACP_WAKE_MAX_ATTEMPTS'),
|
|
44
|
+
retryBaseMs: count('ACP_WAKE_RETRY_BASE_MS'),
|
|
45
|
+
timeoutMs: count('ACP_WAKE_TIMEOUT_MS'),
|
|
46
|
+
channels: { default: async (wake, signal) => {
|
|
47
|
+
const response = await fetch(endpoint, { method: 'POST', redirect: 'error', signal,
|
|
48
|
+
headers: { 'content-type': 'application/json' }, body: JSON.stringify(wake) });
|
|
49
|
+
await response.body?.cancel();
|
|
50
|
+
if (!response.ok)
|
|
51
|
+
throw new Error('RELAY_WAKE_FAILED');
|
|
52
|
+
} },
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,10 @@ export declare class RelayTimeoutError extends Error {
|
|
|
3
3
|
constructor();
|
|
4
4
|
}
|
|
5
5
|
export declare function isTransientRelayError(error: unknown): boolean;
|
|
6
|
+
export type RelayConnectionStatus = 'connected' | 'reconnecting' | 'unavailable' | 'stopped';
|
|
7
|
+
/** Never include an HTTP response body or arbitrary transport text in diagnostics. */
|
|
8
|
+
export declare function relayDiagnostic(error: unknown): Error;
|
|
6
9
|
export declare function relayRetryDelay(attempt: number): number;
|
|
7
10
|
export declare function waitForRelayRetry(ms: number, signal?: AbortSignal): Promise<void>;
|
|
8
11
|
/** Bound even injected transports/resolvers that do not honor cancellation. */
|
|
9
|
-
export declare function relayDeadline<T>(work: Promise<T>, ms: number): Promise<T>;
|
|
12
|
+
export declare function relayDeadline<T>(work: Promise<T>, ms: number, signal?: AbortSignal): Promise<T>;
|
|
@@ -4,13 +4,26 @@ export class RelayTimeoutError extends Error {
|
|
|
4
4
|
constructor() { super('RELAY_REQUEST_TIMEOUT'); this.name = 'RelayTimeoutError'; }
|
|
5
5
|
}
|
|
6
6
|
export function isTransientRelayError(error) {
|
|
7
|
-
|
|
7
|
+
const causes = [];
|
|
8
|
+
for (let current = error; current instanceof Error && !causes.includes(current) && causes.length < 16; current = current.cause)
|
|
9
|
+
causes.push(current);
|
|
10
|
+
if (causes.some(e => /^(?:RELAY_(?:REGISTRATION_)?REJECTED:\s*(?:401|403)\b|RELAY_TAMPERING_DETECTED)/.test(e.message)))
|
|
8
11
|
return false;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
/^
|
|
13
|
-
(
|
|
12
|
+
return causes.some(e => e.name === 'TimeoutError' ||
|
|
13
|
+
['ETIMEDOUT', 'ECONNRESET', 'EAI_AGAIN', 'ECONNREFUSED', 'EPIPE', 'ENETUNREACH', 'EHOSTUNREACH']
|
|
14
|
+
.includes(e.code ?? '') ||
|
|
15
|
+
/^(?:SSE_CLOSED|RELAY_IDLE_TIMEOUT)$/.test(e.message) ||
|
|
16
|
+
(e instanceof TypeError && /^(?:fetch failed|terminated)$/.test(e.message)) ||
|
|
17
|
+
/^socket hang up$/i.test(e.message) ||
|
|
18
|
+
/^RELAY_(?:REGISTRATION_)?REJECTED:\s*(429|502|503|504)\b/.test(e.message));
|
|
19
|
+
}
|
|
20
|
+
/** Never include an HTTP response body or arbitrary transport text in diagnostics. */
|
|
21
|
+
export function relayDiagnostic(error) {
|
|
22
|
+
const message = error instanceof Error ? error.message : '';
|
|
23
|
+
const status = /^RELAY_(?:REGISTRATION_)?REJECTED:\s*(\d{3})\b/.exec(message)?.[1];
|
|
24
|
+
const code = /^(?:RELAY_[A-Z_]+|SSE_[A-Z_]+|SSRF_BLOCKED_RELAY_URL)$/.test(message)
|
|
25
|
+
? message : 'RELAY_UNAVAILABLE';
|
|
26
|
+
return Object.assign(new Error(status ? 'RELAY_REJECTED: ' + status : code), { code: 'RELAY_TERMINAL', ...(status ? { status: Number(status) } : {}) });
|
|
14
27
|
}
|
|
15
28
|
export function relayRetryDelay(attempt) {
|
|
16
29
|
return Math.round(Math.min(30_000, 250 * 2 ** Math.min(attempt, 7)) * (0.5 + Math.random() * 0.5));
|
|
@@ -25,15 +38,22 @@ export function waitForRelayRetry(ms, signal) {
|
|
|
25
38
|
});
|
|
26
39
|
}
|
|
27
40
|
/** Bound even injected transports/resolvers that do not honor cancellation. */
|
|
28
|
-
export async function relayDeadline(work, ms) {
|
|
41
|
+
export async function relayDeadline(work, ms, signal) {
|
|
29
42
|
let timer;
|
|
43
|
+
let abort;
|
|
30
44
|
try {
|
|
31
45
|
return await Promise.race([work, new Promise((_, reject) => {
|
|
32
46
|
timer = setTimeout(() => reject(new RelayTimeoutError()), ms);
|
|
47
|
+
abort = () => reject(signal?.reason ?? new Error('SESSION_ABORTED'));
|
|
48
|
+
signal?.addEventListener('abort', abort, { once: true });
|
|
49
|
+
if (signal?.aborted)
|
|
50
|
+
abort();
|
|
33
51
|
})]);
|
|
34
52
|
}
|
|
35
53
|
finally {
|
|
36
54
|
clearTimeout(timer);
|
|
55
|
+
if (abort)
|
|
56
|
+
signal?.removeEventListener('abort', abort);
|
|
37
57
|
}
|
|
38
58
|
}
|
|
39
59
|
//# sourceMappingURL=retry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,GAAG,WAAW,CAAC;IAC5B,gBAAgB,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC,CAAC;CACnF;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ interface DurableStorage {
|
|
|
7
7
|
}
|
|
8
8
|
interface DurableState {
|
|
9
9
|
storage: DurableStorage;
|
|
10
|
+
waitUntil?(promise: Promise<unknown>): void;
|
|
10
11
|
blockConcurrencyWhile<T>(callback: () => Promise<T>): Promise<T>;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
@@ -22,6 +23,9 @@ export declare class RelayDurableObject {
|
|
|
22
23
|
/** Serializes handler mutation, snapshot write, and rollback for every request. */
|
|
23
24
|
private turn;
|
|
24
25
|
private persistedVersion;
|
|
26
|
+
private notifications?;
|
|
27
|
+
private notificationKey;
|
|
28
|
+
private configuredNotificationKey?;
|
|
25
29
|
private committedSnapshot;
|
|
26
30
|
private cursor;
|
|
27
31
|
constructor(state: DurableState, env?: Record<string, unknown>);
|
|
@@ -41,6 +45,9 @@ export declare class RelayDurableObject {
|
|
|
41
45
|
private bestEffortAlarm;
|
|
42
46
|
/** Later SSE pulls persist after the request turn has released this lock. */
|
|
43
47
|
private persist;
|
|
48
|
+
/** Claims and completions are serialized; external notification delivery never holds the inbox turn. */
|
|
49
|
+
private runNotifications;
|
|
50
|
+
private scheduleNotifications;
|
|
44
51
|
alarm(): Promise<void>;
|
|
45
52
|
fetch(request: Request): Promise<Response>;
|
|
46
53
|
/** Positive waitMs on GET /envelopes. Invalid values stay on the normal handler path. */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
-
import { resolveDid } from '../../core/dist/edge.js';
|
|
2
|
+
import { resolveDid, generateKeyPair } from '../../core/dist/edge.js';
|
|
3
3
|
import { beginDurableLongPoll, canonicalRelayPath, createRelayFetchHandler, DEFAULT_MAX_ENVELOPE_BYTES, inboxRecipientFromRequest, InMemoryRelay, relayErrorResponse, relayHttpHeaders, relayLimitsFromEnv, } from './fetch.js';
|
|
4
|
+
import { relayWakeFromEnv } from './notifications.js';
|
|
4
5
|
import { emptyCursor, emptyRelaySnapshot, loadRelayState, planJournal, } from './journal.js';
|
|
5
6
|
/**
|
|
6
7
|
* One inbox or the registry. Storage is granular: a POST writes the new
|
|
@@ -15,17 +16,29 @@ export class RelayDurableObject {
|
|
|
15
16
|
/** Serializes handler mutation, snapshot write, and rollback for every request. */
|
|
16
17
|
turn = Promise.resolve();
|
|
17
18
|
persistedVersion = 0;
|
|
19
|
+
notifications;
|
|
20
|
+
notificationKey;
|
|
21
|
+
configuredNotificationKey;
|
|
18
22
|
committedSnapshot;
|
|
19
23
|
cursor;
|
|
20
24
|
constructor(state, env) {
|
|
21
25
|
this.state = state;
|
|
22
|
-
this.
|
|
23
|
-
|
|
26
|
+
this.configuredNotificationKey = typeof env?.ACP_NOTIFICATION_KEY === 'string'
|
|
27
|
+
? JSON.parse(env.ACP_NOTIFICATION_KEY) : undefined;
|
|
28
|
+
this.relay = new InMemoryRelay({ ...relayLimitsFromEnv(env),
|
|
29
|
+
// Channels are supplied by the embedding operator, never by an HTTP request.
|
|
30
|
+
wake: env?.ACP_WAKE ?? relayWakeFromEnv(env),
|
|
31
|
+
});
|
|
32
|
+
this.handler = createRelayFetchHandler({ relay: this.relay, deferNotifications: true });
|
|
24
33
|
this.cursor = emptyCursor(this.relay.maxSeenEntries, this.relay.maxAuthSeenEntries);
|
|
25
34
|
this.committedSnapshot = emptyRelaySnapshot();
|
|
26
35
|
this.ready = state.blockConcurrencyWhile(() => this.bootstrap());
|
|
27
36
|
}
|
|
28
37
|
async bootstrap() {
|
|
38
|
+
const meta = await this.state.storage.get('meta');
|
|
39
|
+
const key = this.configuredNotificationKey ?? meta?.notificationKey ?? generateKeyPair();
|
|
40
|
+
this.notificationKey = key;
|
|
41
|
+
this.relay.setNotificationKey(key);
|
|
29
42
|
const loaded = await loadRelayState(this.state.storage, Date.now(), {
|
|
30
43
|
seenMod: this.relay.maxSeenEntries,
|
|
31
44
|
authMod: this.relay.maxAuthSeenEntries,
|
|
@@ -33,10 +46,11 @@ export class RelayDurableObject {
|
|
|
33
46
|
this.cursor = loaded.cursor;
|
|
34
47
|
if (loaded.snapshot)
|
|
35
48
|
this.relay.restore(loaded.snapshot);
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
49
|
+
this.committedSnapshot = loaded.snapshot ?? emptyRelaySnapshot();
|
|
50
|
+
this.persistedVersion = -1;
|
|
38
51
|
if (loaded.legacy)
|
|
39
52
|
await this.migrateLegacy(loaded.legacy);
|
|
53
|
+
await this.writeSnapshot();
|
|
40
54
|
}
|
|
41
55
|
/** Rewrite a pre-sharding blob into per-key records once, then drop the blob. */
|
|
42
56
|
async migrateLegacy(legacy) {
|
|
@@ -84,7 +98,7 @@ export class RelayDurableObject {
|
|
|
84
98
|
// orphans; the previous meta still describes the last committed inbox.
|
|
85
99
|
for (const put of plan.puts)
|
|
86
100
|
await this.state.storage.put(put.key, put.value);
|
|
87
|
-
await this.state.storage.put('meta', plan.meta);
|
|
101
|
+
await this.state.storage.put('meta', { ...plan.meta, notificationKey: this.notificationKey });
|
|
88
102
|
this.cursor = plan.cursor;
|
|
89
103
|
this.persistedVersion = version;
|
|
90
104
|
this.committedSnapshot = next;
|
|
@@ -104,7 +118,7 @@ export class RelayDurableObject {
|
|
|
104
118
|
async commitPlan(plan, next, version) {
|
|
105
119
|
for (const put of plan.puts)
|
|
106
120
|
await this.state.storage.put(put.key, put.value);
|
|
107
|
-
await this.state.storage.put('meta', plan.meta);
|
|
121
|
+
await this.state.storage.put('meta', { ...plan.meta, notificationKey: this.notificationKey });
|
|
108
122
|
this.cursor = plan.cursor;
|
|
109
123
|
this.persistedVersion = version;
|
|
110
124
|
this.committedSnapshot = next;
|
|
@@ -133,9 +147,39 @@ export class RelayDurableObject {
|
|
|
133
147
|
persist() {
|
|
134
148
|
return this.enqueue(() => this.writeSnapshot());
|
|
135
149
|
}
|
|
150
|
+
/** Claims and completions are serialized; external notification delivery never holds the inbox turn. */
|
|
151
|
+
runNotifications() {
|
|
152
|
+
if (this.notifications)
|
|
153
|
+
return this.notifications;
|
|
154
|
+
this.notifications = (async () => {
|
|
155
|
+
for (;;) {
|
|
156
|
+
const attempt = await this.enqueue(async () => {
|
|
157
|
+
this.relay.evictExpired();
|
|
158
|
+
const next = this.relay.claimWakeNotification();
|
|
159
|
+
await this.writeSnapshot();
|
|
160
|
+
return next;
|
|
161
|
+
});
|
|
162
|
+
if (!attempt)
|
|
163
|
+
return;
|
|
164
|
+
const delivered = await this.relay.deliverWakeNotification(attempt);
|
|
165
|
+
await this.enqueue(async () => {
|
|
166
|
+
this.relay.completeWakeNotification(attempt, delivered);
|
|
167
|
+
await this.writeSnapshot();
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
})().finally(() => { this.notifications = undefined; });
|
|
171
|
+
return this.notifications;
|
|
172
|
+
}
|
|
173
|
+
scheduleNotifications() {
|
|
174
|
+
const work = this.runNotifications();
|
|
175
|
+
this.state.waitUntil?.(work);
|
|
176
|
+
// A failed storage turn is retried on the next request/alarm, without failing an admitted POST.
|
|
177
|
+
void work.catch(() => { });
|
|
178
|
+
}
|
|
136
179
|
async alarm() {
|
|
137
180
|
await this.ready;
|
|
138
181
|
await this.enqueue(() => this.writeSnapshot());
|
|
182
|
+
await this.runNotifications();
|
|
139
183
|
}
|
|
140
184
|
async fetch(request) {
|
|
141
185
|
await this.ready;
|
|
@@ -230,6 +274,7 @@ export class RelayDurableObject {
|
|
|
230
274
|
(request.method === 'GET' && (path === '/envelopes' || path.startsWith('/inbox/'))) ||
|
|
231
275
|
this.persistedVersion !== this.relay.mutationVersion)
|
|
232
276
|
await this.writeSnapshot();
|
|
277
|
+
this.scheduleNotifications();
|
|
233
278
|
return response;
|
|
234
279
|
}
|
|
235
280
|
}
|
|
@@ -265,6 +310,8 @@ export function clientIp(request) {
|
|
|
265
310
|
return 'unknown';
|
|
266
311
|
}
|
|
267
312
|
function rateBucket(method, path) {
|
|
313
|
+
if (path === '/wake' || path === '/delivery-status')
|
|
314
|
+
return 'notifications';
|
|
268
315
|
if (method === 'POST' && path === '/envelopes')
|
|
269
316
|
return 'post-envelope';
|
|
270
317
|
if (method === 'GET' && (path === '/envelopes' || path.startsWith('/inbox/')))
|
|
@@ -356,6 +403,8 @@ function forward(request, body) {
|
|
|
356
403
|
return new Request(url, { method: request.method, headers: request.headers, body });
|
|
357
404
|
}
|
|
358
405
|
function inboxRoutes(method, path) {
|
|
406
|
+
if (path === '/wake' || path === '/delivery-status')
|
|
407
|
+
return true;
|
|
359
408
|
if (method === 'POST' && path === '/envelopes')
|
|
360
409
|
return true;
|
|
361
410
|
if (method === 'GET' &&
|
|
@@ -382,7 +431,7 @@ export async function handleRelayEdge(request, env) {
|
|
|
382
431
|
return env.RELAY.get(env.RELAY.idFromName('registry')).fetch(forward(request));
|
|
383
432
|
let body;
|
|
384
433
|
let recipient = '';
|
|
385
|
-
if (request.method === 'POST') {
|
|
434
|
+
if (request.method === 'POST' && path === '/envelopes') {
|
|
386
435
|
body = await readBody(request, envInt(env, 'ACP_MAX_ENVELOPE_BYTES', DEFAULT_MAX_ENVELOPE_BYTES));
|
|
387
436
|
let parsed;
|
|
388
437
|
try {
|
|
@@ -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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"}
|