@relaycast/sdk 12.9.0 → 12.10.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/dist/agent.d.ts +44 -25
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +25 -6
- package/dist/agent.js.map +1 -1
- package/dist/communicate/relay.d.ts.map +1 -1
- package/dist/communicate/relay.js +8 -12
- package/dist/communicate/relay.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/relay.d.ts +4 -1
- package/dist/relay.d.ts.map +1 -1
- package/dist/relay.js +5 -0
- package/dist/relay.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/ws.d.ts +183 -0
- package/dist/ws.d.ts.map +1 -1
- package/dist/ws.js +385 -32
- package/dist/ws.js.map +1 -1
- package/package.json +2 -2
package/dist/ws.js
CHANGED
|
@@ -24,14 +24,107 @@ export function withInternalWsOrigin(options, origin) {
|
|
|
24
24
|
});
|
|
25
25
|
return copy;
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* A contiguous success watermark over a connection's `seq` stream, for the
|
|
29
|
+
* cumulative `up_to_seq` form that older engines require. The first seq that
|
|
30
|
+
* arrives anchors it just below; a success extends it only while every lower
|
|
31
|
+
* seq since the anchor succeeded, so a cumulative `up_to_seq` is never
|
|
32
|
+
* claimed across a failed (unpersisted / unconsumed) row. Out-of-order
|
|
33
|
+
* successes are held and folded in once the gap closes. The anchor is not a
|
|
34
|
+
* server cursor (this transport has no cursor handshake), so rows below the
|
|
35
|
+
* first seq seen are outside what it can vouch for; that is why an engine
|
|
36
|
+
* that accepts the per-delivery form is sent that form instead.
|
|
37
|
+
*/
|
|
38
|
+
class SeqWatermark {
|
|
39
|
+
high = null;
|
|
40
|
+
held = new Set();
|
|
41
|
+
/** A seq arrived (whatever becomes of it): anchors the watermark on the first one. */
|
|
42
|
+
arrive(seq) {
|
|
43
|
+
if (this.high === null)
|
|
44
|
+
this.high = seq - 1;
|
|
45
|
+
}
|
|
46
|
+
/** Record a success; the new contiguous watermark when it moved, else `null` (a lower seq is still open). */
|
|
47
|
+
record(seq) {
|
|
48
|
+
this.arrive(seq);
|
|
49
|
+
if (seq <= this.high)
|
|
50
|
+
return null;
|
|
51
|
+
this.held.add(seq);
|
|
52
|
+
if (seq !== this.high + 1)
|
|
53
|
+
return null;
|
|
54
|
+
while (this.held.has(this.high + 1)) {
|
|
55
|
+
this.high += 1;
|
|
56
|
+
this.held.delete(this.high);
|
|
57
|
+
}
|
|
58
|
+
return this.high;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Steps run one after another in push order. An idle queue starts a step
|
|
63
|
+
* synchronously (so handlers see a delivery at once); a step that fails is
|
|
64
|
+
* reported and never stalls the next one.
|
|
65
|
+
*/
|
|
66
|
+
class SerialQueue {
|
|
67
|
+
chain = Promise.resolve();
|
|
68
|
+
pending = 0;
|
|
69
|
+
push(step, onError) {
|
|
70
|
+
const run = () => {
|
|
71
|
+
try {
|
|
72
|
+
return step();
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
return Promise.reject(err);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const next = this.pending === 0 ? run() : this.chain.then(run);
|
|
79
|
+
this.pending += 1;
|
|
80
|
+
this.chain = next.catch(onError).finally(() => {
|
|
81
|
+
this.pending -= 1;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
27
85
|
export class WsClient {
|
|
28
86
|
token;
|
|
29
87
|
baseUrl;
|
|
30
88
|
path;
|
|
31
89
|
nodeRegistration;
|
|
32
90
|
autoAckDeliveries;
|
|
91
|
+
autoAcceptDeliveries;
|
|
92
|
+
acceptDelivery;
|
|
93
|
+
ackMode;
|
|
94
|
+
/**
|
|
95
|
+
* Intake of `deliver` frames (persist, `delivery.accepted`) in arrival
|
|
96
|
+
* order; it never waits for handlers, so a slow handler holds neither later
|
|
97
|
+
* acceptances nor other agents.
|
|
98
|
+
*/
|
|
99
|
+
deliverIntake = new SerialQueue();
|
|
100
|
+
/**
|
|
101
|
+
* Handler dispatch and `delivery.ack`, ordered per agent: an agent's
|
|
102
|
+
* handlers see its deliveries in `seq` order, and a hung handler holds only
|
|
103
|
+
* that agent's later handlers and acks (its rows stay unacked server-side).
|
|
104
|
+
* Kept across reconnects: a replayed frame queues behind the earlier run of
|
|
105
|
+
* the same agent and shares its outcome through `inFlightEvents`.
|
|
106
|
+
* Best-effort `seq: 0` frames never enter it (see `dispatchBestEffort`).
|
|
107
|
+
*/
|
|
108
|
+
dispatchQueues = new Map();
|
|
109
|
+
/**
|
|
110
|
+
* Contiguous watermarks for `delivery.accepted` and `delivery.ack`, one per
|
|
111
|
+
* agent (the engine numbers `seq` per agent row) and per connection.
|
|
112
|
+
*/
|
|
113
|
+
acceptWatermarks = new Map();
|
|
114
|
+
ackWatermarks = new Map();
|
|
115
|
+
/**
|
|
116
|
+
* Bumped on every socket open. A `deliver` frame is fenced to the generation
|
|
117
|
+
* it arrived on: once the socket reconnected, the server replays everything
|
|
118
|
+
* that connection left unacked, so a confirmation from the old generation
|
|
119
|
+
* is dropped rather than applied to the new connection's watermarks.
|
|
120
|
+
*/
|
|
121
|
+
connectionGeneration = 0;
|
|
33
122
|
nodeMode;
|
|
34
123
|
lastNodeRegistration = null;
|
|
124
|
+
/** The in-flight `node.register` request id, until its reply names the engine's capabilities. */
|
|
125
|
+
pendingRegistrationId = null;
|
|
126
|
+
/** Inbound frame types the engine announced in its `node.register` reply (this connection). */
|
|
127
|
+
engineCapabilities = new Set();
|
|
35
128
|
ws = null;
|
|
36
129
|
connecting = false;
|
|
37
130
|
handlers = new Map();
|
|
@@ -67,12 +160,21 @@ export class WsClient {
|
|
|
67
160
|
lastEventAt = null;
|
|
68
161
|
/** Recently dispatched event ids (insertion-ordered for LRU eviction) for replay dedupe. */
|
|
69
162
|
seenEventIds = new Set();
|
|
163
|
+
/** Delivered events whose handlers are still running, by dedupe key. */
|
|
164
|
+
inFlightEvents = new Map();
|
|
70
165
|
constructor(options) {
|
|
71
166
|
const origin = readInternalWsOrigin(options) ?? SDK_ORIGIN;
|
|
72
167
|
this.token = options.token;
|
|
73
168
|
this.path = options.path ?? '/v1/ws';
|
|
74
169
|
this.nodeRegistration = options.nodeRegistration;
|
|
75
170
|
this.autoAckDeliveries = options.autoAckDeliveries ?? false;
|
|
171
|
+
this.acceptDelivery = options.acceptDelivery;
|
|
172
|
+
this.ackMode = options.ackMode ?? 'after-handlers';
|
|
173
|
+
// Acceptance claims durable storage: only with a hook that provides it.
|
|
174
|
+
this.autoAcceptDeliveries = options.autoAcceptDeliveries === true && typeof options.acceptDelivery === 'function';
|
|
175
|
+
if (options.autoAcceptDeliveries === true && !this.autoAcceptDeliveries && options.debug) {
|
|
176
|
+
console.warn('[relaycast] autoAcceptDeliveries needs an acceptDelivery persistence hook; no delivery.accepted will be sent');
|
|
177
|
+
}
|
|
76
178
|
this.nodeMode = this.path === '/v1/node/ws' || !!options.nodeRegistration;
|
|
77
179
|
this.debug = options.debug ?? false;
|
|
78
180
|
this.maxReconnectAttempts = Number.isFinite(options.maxReconnectAttempts)
|
|
@@ -246,11 +348,20 @@ export class WsClient {
|
|
|
246
348
|
this.isOpen = true;
|
|
247
349
|
this.reconnectAttempt = 0;
|
|
248
350
|
this.permanentlyDisconnected = false;
|
|
351
|
+
// A new connection replays from the server's cursor: watermarks restart,
|
|
352
|
+
// and deliveries still in flight from the previous one may not confirm.
|
|
353
|
+
this.connectionGeneration += 1;
|
|
354
|
+
this.acceptWatermarks.clear();
|
|
355
|
+
this.ackWatermarks.clear();
|
|
249
356
|
if (this.nodeRegistration) {
|
|
250
357
|
const registration = await this.nodeRegistration();
|
|
251
358
|
if (this.ws !== ws || this.closed)
|
|
252
359
|
return;
|
|
253
360
|
this.lastNodeRegistration = registration;
|
|
361
|
+
// A new connection may reach a different engine: forget what the last
|
|
362
|
+
// one announced until this registration's reply says.
|
|
363
|
+
this.engineCapabilities = new Set();
|
|
364
|
+
this.pendingRegistrationId = typeof registration.id === 'string' ? registration.id : null;
|
|
254
365
|
this.sendJson(registration);
|
|
255
366
|
}
|
|
256
367
|
this.startPing();
|
|
@@ -342,36 +453,70 @@ export class WsClient {
|
|
|
342
453
|
get connected() {
|
|
343
454
|
return this.isOpen;
|
|
344
455
|
}
|
|
456
|
+
/**
|
|
457
|
+
* Dispatch synchronously; nothing waits for the handlers. A promise a
|
|
458
|
+
* handler returns is observed only to log its rejection (the workspace
|
|
459
|
+
* stream has no ack for it to hold back), never left unhandled.
|
|
460
|
+
*/
|
|
345
461
|
emit(event, data) {
|
|
346
|
-
|
|
347
|
-
|
|
462
|
+
const run = (handler) => {
|
|
463
|
+
const result = handler(data);
|
|
464
|
+
if (result && typeof result.then === 'function') {
|
|
465
|
+
// `Promise.resolve` adopts any thenable (a query builder has no `catch`).
|
|
466
|
+
Promise.resolve(result).catch((err) => this.warn('event handler failed', { event, error: err }));
|
|
467
|
+
}
|
|
468
|
+
};
|
|
469
|
+
this.handlers.get(event)?.forEach(run);
|
|
470
|
+
this.handlers.get('*')?.forEach(run);
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Dispatch synchronously like {@link emit}, and resolve once every handler
|
|
474
|
+
* returned and every promise it returned settled; if any threw or
|
|
475
|
+
* rejected it rejects, but only once the others have settled too, so a
|
|
476
|
+
* failed delivery is not reported (and its agent's next delivery not
|
|
477
|
+
* started, nor a re-delivered copy re-run) while a sibling handler is
|
|
478
|
+
* still working on it. This is what a `delivery.ack` waits for.
|
|
479
|
+
*/
|
|
480
|
+
emitCollect(event, data) {
|
|
481
|
+
const results = [];
|
|
482
|
+
const run = (handler) => {
|
|
483
|
+
try {
|
|
484
|
+
const result = handler(data);
|
|
485
|
+
if (result && typeof result.then === 'function')
|
|
486
|
+
results.push(result);
|
|
487
|
+
}
|
|
488
|
+
catch (err) {
|
|
489
|
+
results.push(Promise.reject(err));
|
|
490
|
+
}
|
|
491
|
+
};
|
|
492
|
+
this.handlers.get(event)?.forEach(run);
|
|
493
|
+
this.handlers.get('*')?.forEach(run);
|
|
494
|
+
return Promise.allSettled(results).then((settled) => {
|
|
495
|
+
const failed = settled.find((entry) => entry.status === 'rejected');
|
|
496
|
+
if (failed)
|
|
497
|
+
throw failed.reason;
|
|
498
|
+
});
|
|
348
499
|
}
|
|
349
500
|
handleNodeMessage(parsed) {
|
|
350
501
|
if (!isRecord(parsed) || typeof parsed.type !== 'string')
|
|
351
502
|
return false;
|
|
352
503
|
if (parsed.type === 'deliver') {
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
this.emitServerLikeEvent(payload.type, data);
|
|
504
|
+
if (parsed.seq === 0) {
|
|
505
|
+
this.dispatchBestEffort(parsed);
|
|
506
|
+
return true;
|
|
357
507
|
}
|
|
358
|
-
if (
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
Number.isFinite(parsed.seq)) {
|
|
362
|
-
this.sendJson({
|
|
363
|
-
v: 1,
|
|
364
|
-
type: 'delivery.ack',
|
|
365
|
-
agent: parsed.agent,
|
|
366
|
-
up_to_seq: parsed.seq,
|
|
367
|
-
});
|
|
508
|
+
if (typeof parsed.seq === 'number' && Number.isFinite(parsed.seq) && typeof parsed.agent === 'string') {
|
|
509
|
+
this.watermarkFor(this.acceptWatermarks, parsed.agent).arrive(parsed.seq);
|
|
510
|
+
this.watermarkFor(this.ackWatermarks, parsed.agent).arrive(parsed.seq);
|
|
368
511
|
}
|
|
512
|
+
this.queueDeliver(parsed);
|
|
369
513
|
return true;
|
|
370
514
|
}
|
|
371
515
|
if (parsed.type === 'context.update') {
|
|
372
516
|
const eventType = typeof parsed.event === 'string' ? parsed.event : null;
|
|
373
517
|
if (eventType) {
|
|
374
|
-
this.emitServerLikeEvent(eventType, isRecord(parsed.data) ? parsed.data : {})
|
|
518
|
+
this.emitServerLikeEvent(eventType, isRecord(parsed.data) ? parsed.data : {})
|
|
519
|
+
.catch((err) => this.warn('context handler failed', err));
|
|
375
520
|
}
|
|
376
521
|
return true;
|
|
377
522
|
}
|
|
@@ -383,9 +528,16 @@ export class WsClient {
|
|
|
383
528
|
handler_agent_id: typeof parsed.agent_id === 'string' ? parsed.agent_id : '',
|
|
384
529
|
handler_agent_name: typeof parsed.agent_name === 'string' ? parsed.agent_name : undefined,
|
|
385
530
|
input: isRecord(parsed.input) ? parsed.input : {},
|
|
386
|
-
});
|
|
531
|
+
}).catch((err) => this.warn('action handler failed', err));
|
|
387
532
|
return true;
|
|
388
533
|
}
|
|
534
|
+
if (this.pendingRegistrationId !== null && parsed.id === this.pendingRegistrationId) {
|
|
535
|
+
this.pendingRegistrationId = null;
|
|
536
|
+
const capabilities = parsed.type === 'reply' && parsed.ok === true && isRecord(parsed.data)
|
|
537
|
+
? parsed.data.capabilities
|
|
538
|
+
: undefined;
|
|
539
|
+
this.engineCapabilities = new Set(Array.isArray(capabilities) ? capabilities.filter((value) => typeof value === 'string') : []);
|
|
540
|
+
}
|
|
389
541
|
const pending = this.pendingPresence;
|
|
390
542
|
if (pending && parsed.id === pending.id) {
|
|
391
543
|
this.pendingPresence = null;
|
|
@@ -400,29 +552,229 @@ export class WsClient {
|
|
|
400
552
|
// direct node client. They are intentionally not surfaced as app events.
|
|
401
553
|
return parsed.type === 'reply' || parsed.type === 'error' || parsed.type === 'pong' || parsed.type === 'resync_ack';
|
|
402
554
|
}
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
555
|
+
warn(message, detail) {
|
|
556
|
+
console.warn(`[relaycast] ${message}`, detail);
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Hand a best-effort `deliver` frame (`seq: 0`) to its handlers at once.
|
|
560
|
+
* The engine sends ephemeral events (e.g. `action.completed`,
|
|
561
|
+
* `agent.exited`) this way with a synthetic `delivery_id` and no durable
|
|
562
|
+
* row: durable rows always carry `seq >= 1`. There is nothing to persist,
|
|
563
|
+
* accept or ack, and nothing to order against, so the frame skips intake,
|
|
564
|
+
* the persistence hook, both confirmations and the seq watermarks, and
|
|
565
|
+
* bypasses the agent's dispatch queue: a message handler awaiting, say,
|
|
566
|
+
* `on.actionCompleted` would otherwise wait on an event queued behind
|
|
567
|
+
* itself. Dedupe and recipient scoping still apply; a handler failure is
|
|
568
|
+
* logged, never retried (the engine does not re-deliver these).
|
|
569
|
+
*/
|
|
570
|
+
dispatchBestEffort(parsed) {
|
|
571
|
+
const agent = typeof parsed.agent === 'string' ? parsed.agent : null;
|
|
572
|
+
const deliveryId = typeof parsed.delivery_id === 'string' ? parsed.delivery_id : null;
|
|
573
|
+
let completed;
|
|
574
|
+
try {
|
|
575
|
+
completed = this.dispatchDeliver(parsed, agent);
|
|
576
|
+
}
|
|
577
|
+
catch (err) {
|
|
578
|
+
completed = Promise.reject(err);
|
|
579
|
+
}
|
|
580
|
+
completed.catch((err) => this.warn('best-effort delivery handler failed', { deliveryId, seq: 0, error: err }));
|
|
581
|
+
}
|
|
582
|
+
/**
|
|
583
|
+
* Queue a durable `deliver` frame's intake behind the ones before it.
|
|
584
|
+
* Best-effort frames (`seq: 0`) never reach here: they are dispatched at
|
|
585
|
+
* once by {@link dispatchBestEffort}, outside intake and the agent's
|
|
586
|
+
* dispatch queue.
|
|
587
|
+
*/
|
|
588
|
+
queueDeliver(parsed) {
|
|
589
|
+
// Fenced at arrival: a frame still queued when the socket reconnects
|
|
590
|
+
// belongs to the old connection even though it runs after the reopen.
|
|
591
|
+
const generation = this.connectionGeneration;
|
|
592
|
+
const seq = typeof parsed.seq === 'number' && Number.isFinite(parsed.seq) ? parsed.seq : null;
|
|
593
|
+
const deliveryId = typeof parsed.delivery_id === 'string' ? parsed.delivery_id : null;
|
|
594
|
+
this.deliverIntake.push(() => this.processDeliver(parsed, generation), (err) => this.warn('delivery intake failed; delivery left on the server for re-delivery', { deliveryId, seq, error: err }));
|
|
595
|
+
}
|
|
596
|
+
/**
|
|
597
|
+
* Intake of one delivery: persist (when accepting) -> `delivery.accepted`
|
|
598
|
+
* (only to an engine that listed it) -> hand it to its agent's dispatch
|
|
599
|
+
* queue. The hook runs whatever the engine's capabilities: it is the
|
|
600
|
+
* client's own durability, and skipping it against an older engine would
|
|
601
|
+
* hand an unstored frame to the handlers. A failed hook leaves the row on
|
|
602
|
+
* the server for re-delivery: neither accept, dispatch nor ack. Only
|
|
603
|
+
* durable frames (`seq >= 1`) come through here; a best-effort `seq: 0`
|
|
604
|
+
* frame bypasses intake and the dispatch queue entirely (see
|
|
605
|
+
* {@link dispatchBestEffort}), so it can never wait behind a handler.
|
|
606
|
+
*/
|
|
607
|
+
async processDeliver(parsed, generation) {
|
|
608
|
+
const seq = typeof parsed.seq === 'number' && Number.isFinite(parsed.seq) ? parsed.seq : null;
|
|
609
|
+
const agent = typeof parsed.agent === 'string' ? parsed.agent : null;
|
|
610
|
+
const deliveryId = typeof parsed.delivery_id === 'string' ? parsed.delivery_id : null;
|
|
611
|
+
const hook = this.acceptDelivery;
|
|
612
|
+
if (this.autoAcceptDeliveries && hook !== undefined && agent !== null && seq !== null && deliveryId !== null) {
|
|
613
|
+
const delivery = {
|
|
614
|
+
deliveryId,
|
|
615
|
+
agent,
|
|
616
|
+
agentId: typeof parsed.agent_id === 'string' ? parsed.agent_id : null,
|
|
617
|
+
messageId: typeof parsed.msg_id === 'string' ? parsed.msg_id : null,
|
|
618
|
+
seq,
|
|
619
|
+
mode: typeof parsed.mode === 'string' ? parsed.mode : null,
|
|
620
|
+
payload: isRecord(parsed.payload) ? parsed.payload : null,
|
|
621
|
+
};
|
|
622
|
+
try {
|
|
623
|
+
await hook(delivery);
|
|
624
|
+
}
|
|
625
|
+
catch (err) {
|
|
626
|
+
// Nothing is stored: neither accept, dispatch nor ack. The server
|
|
627
|
+
// keeps the row and re-delivers it on reconnect.
|
|
628
|
+
this.warn('acceptDelivery failed; delivery left on the server for re-delivery', { deliveryId, seq, error: err });
|
|
412
629
|
return;
|
|
413
|
-
|
|
630
|
+
}
|
|
631
|
+
// Only the wire frame is gated on the capability: an older engine would
|
|
632
|
+
// reject it (`invalid_message`), while the row above is stored either way.
|
|
633
|
+
if (this.engineCapabilities.has('delivery.accepted')) {
|
|
634
|
+
this.sendConfirmation('delivery.accepted', this.acceptWatermarks, generation, agent, deliveryId, seq);
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
let queue = this.dispatchQueues.get(agent ?? '');
|
|
638
|
+
if (queue === undefined) {
|
|
639
|
+
queue = new SerialQueue();
|
|
640
|
+
this.dispatchQueues.set(agent ?? '', queue);
|
|
641
|
+
}
|
|
642
|
+
queue.push(() => this.consumeDeliver(parsed, generation, agent, seq, deliveryId), (err) => this.warn('delivery processing failed; delivery left unconsumed for re-delivery', { deliveryId, seq, error: err }));
|
|
643
|
+
}
|
|
644
|
+
/**
|
|
645
|
+
* Handlers -> `delivery.ack` once they all completed. A handler failure
|
|
646
|
+
* leaves the row unacked on the server for re-delivery.
|
|
647
|
+
*/
|
|
648
|
+
async consumeDeliver(parsed, generation, agent, seq, deliveryId) {
|
|
649
|
+
const completed = this.dispatchDeliver(parsed, agent);
|
|
650
|
+
if (!this.autoAckDeliveries || agent === null || seq === null) {
|
|
651
|
+
completed.catch((err) => this.warn('delivery handler failed', { deliveryId, seq, error: err }));
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
if (this.ackMode === 'on-receipt') {
|
|
655
|
+
// Legacy: consumed means dispatched, whatever the handlers do.
|
|
656
|
+
if (generation === this.connectionGeneration)
|
|
657
|
+
this.sendJson({ v: 1, type: 'delivery.ack', agent, up_to_seq: seq });
|
|
658
|
+
completed.catch((err) => this.warn('delivery handler failed after on-receipt ack', { deliveryId, seq, error: err }));
|
|
659
|
+
return;
|
|
660
|
+
}
|
|
661
|
+
try {
|
|
662
|
+
await completed;
|
|
663
|
+
}
|
|
664
|
+
catch (err) {
|
|
665
|
+
this.warn('delivery handler failed; delivery left unconsumed for re-delivery', { deliveryId, seq, error: err });
|
|
666
|
+
return;
|
|
414
667
|
}
|
|
668
|
+
this.sendConfirmation('delivery.ack', this.ackWatermarks, generation, agent, deliveryId, seq);
|
|
669
|
+
}
|
|
670
|
+
/** Hand a `deliver` frame's event to handlers; resolves once they all completed. */
|
|
671
|
+
dispatchDeliver(parsed, recipient) {
|
|
672
|
+
const payload = isRecord(parsed.payload) ? parsed.payload : null;
|
|
673
|
+
if (!payload || typeof payload.type !== 'string')
|
|
674
|
+
return Promise.resolve();
|
|
675
|
+
const data = isRecord(payload.data) ? payload.data : {};
|
|
676
|
+
return this.emitServerLikeEvent(payload.type, data, recipient);
|
|
677
|
+
}
|
|
678
|
+
watermarkFor(watermarks, agent) {
|
|
679
|
+
let watermark = watermarks.get(agent);
|
|
680
|
+
if (watermark === undefined) {
|
|
681
|
+
watermark = new SeqWatermark();
|
|
682
|
+
watermarks.set(agent, watermark);
|
|
683
|
+
}
|
|
684
|
+
return watermark;
|
|
685
|
+
}
|
|
686
|
+
/**
|
|
687
|
+
* Report one success on the wire. Per delivery (`delivery_id`) whenever the
|
|
688
|
+
* engine accepts that form (`delivery.accepted` is sent only to an engine
|
|
689
|
+
* that listed it; `delivery.ack` by id needs `delivery.ack.delivery_id`):
|
|
690
|
+
* it settles exactly the row this client handled. A cumulative `up_to_seq`
|
|
691
|
+
* would also settle every lower unsettled row on the engine, and this
|
|
692
|
+
* transport cannot vouch for rows below the first seq it saw on a
|
|
693
|
+
* connection: a live frame can reach a fresh socket before the reconnect
|
|
694
|
+
* replay of older unacked rows, which a cumulative ack would then bury
|
|
695
|
+
* unhandled. An older engine accepts only the cumulative form, so for it
|
|
696
|
+
* the success goes into the connection's contiguous watermark and is sent
|
|
697
|
+
* as `up_to_seq` only while every lower seq seen here succeeded; otherwise
|
|
698
|
+
* it is withheld and the row is replayed on the next connection and deduped
|
|
699
|
+
* there. A success from a previous connection is dropped: that connection's
|
|
700
|
+
* unacked rows are replayed on this one, and confirming a stale row here
|
|
701
|
+
* (even by `delivery_id`) could race this connection's own dispatch of it.
|
|
702
|
+
*/
|
|
703
|
+
sendConfirmation(type, watermarks, generation, agent, deliveryId, seq) {
|
|
704
|
+
if (generation !== this.connectionGeneration) {
|
|
705
|
+
this.warn(`${type} dropped: delivery belongs to a previous connection and is replayed on this one`, { deliveryId, seq });
|
|
706
|
+
return;
|
|
707
|
+
}
|
|
708
|
+
const byId = type === 'delivery.accepted' || this.engineCapabilities.has('delivery.ack.delivery_id');
|
|
709
|
+
if (byId && deliveryId !== null) {
|
|
710
|
+
this.sendJson({ v: 1, type, agent, delivery_id: deliveryId });
|
|
711
|
+
return;
|
|
712
|
+
}
|
|
713
|
+
const upTo = this.watermarkFor(watermarks, agent).record(seq);
|
|
714
|
+
if (upTo !== null) {
|
|
715
|
+
this.sendJson({ v: 1, type, agent, up_to_seq: upTo });
|
|
716
|
+
}
|
|
717
|
+
else {
|
|
718
|
+
this.warn(`${type} withheld: the engine accepts only the cumulative form and a lower seq on this connection is unconsumed; the row stays unacked until the gap below it closes or it is replayed`, { deliveryId, seq });
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
/**
|
|
722
|
+
* Hand a delivered event to handlers; resolves once they all completed.
|
|
723
|
+
* Node delivery is at-least-once, so redelivered frames are deduped the
|
|
724
|
+
* same way the standard onmessage flow dedupes server events, but only a
|
|
725
|
+
* frame whose handlers succeeded counts as seen: the key is recorded up
|
|
726
|
+
* front (a duplicate arriving while the handlers run shares that run's
|
|
727
|
+
* outcome instead of starting another) and forgotten again if they fail,
|
|
728
|
+
* so the server's re-delivery of an unconsumed frame reruns them before
|
|
729
|
+
* anything is acknowledged. The key is scoped to the `recipient` agent: one
|
|
730
|
+
* message delivered to two agents hosted on this client is two deliveries,
|
|
731
|
+
* each with its own handler run and ack.
|
|
732
|
+
*/
|
|
733
|
+
emitServerLikeEvent(eventType, data, recipient = null) {
|
|
734
|
+
const transformed = this.transformServerLikeEvent(eventType, data);
|
|
735
|
+
const dedupeKey = typeof transformed.id === 'string' && transformed.id.length > 0 && typeof transformed.type === 'string'
|
|
736
|
+
? `${recipient === null ? '' : `${recipient}:`}${transformed.type}:${transformed.id}`
|
|
737
|
+
: null;
|
|
738
|
+
if (dedupeKey === null)
|
|
739
|
+
return this.emitTransformedEvent(transformed);
|
|
740
|
+
const inFlight = this.inFlightEvents.get(dedupeKey);
|
|
741
|
+
if (inFlight !== undefined) {
|
|
742
|
+
// Settled by the run in progress; rerun only if that run failed (it
|
|
743
|
+
// forgets the key first, so the rerun below records it afresh).
|
|
744
|
+
return inFlight.then(undefined, () => this.emitServerLikeEvent(eventType, data, recipient));
|
|
745
|
+
}
|
|
746
|
+
if (this.seenEventIds.has(dedupeKey))
|
|
747
|
+
return Promise.resolve();
|
|
748
|
+
this.rememberEventId(dedupeKey);
|
|
749
|
+
let completed;
|
|
750
|
+
try {
|
|
751
|
+
completed = this.emitTransformedEvent(transformed);
|
|
752
|
+
}
|
|
753
|
+
catch (err) {
|
|
754
|
+
completed = Promise.reject(err);
|
|
755
|
+
}
|
|
756
|
+
const tracked = completed.then(() => {
|
|
757
|
+
this.inFlightEvents.delete(dedupeKey);
|
|
758
|
+
}, (err) => {
|
|
759
|
+
this.inFlightEvents.delete(dedupeKey);
|
|
760
|
+
this.seenEventIds.delete(dedupeKey);
|
|
761
|
+
throw err;
|
|
762
|
+
});
|
|
763
|
+
this.inFlightEvents.set(dedupeKey, tracked);
|
|
764
|
+
return tracked;
|
|
765
|
+
}
|
|
766
|
+
emitTransformedEvent(transformed) {
|
|
415
767
|
const result = ServerEventSchema.safeParse(transformed);
|
|
416
768
|
if (result.success) {
|
|
417
|
-
this.
|
|
418
|
-
return;
|
|
769
|
+
return this.emitCollect(result.data.type, camelizeKeys(result.data, { opaqueBlocks: true }));
|
|
419
770
|
}
|
|
420
771
|
if (typeof transformed.type === 'string') {
|
|
421
|
-
this.
|
|
772
|
+
return this.emitCollect(transformed.type, camelizeKeys(transformed, { opaqueBlocks: true }));
|
|
422
773
|
}
|
|
423
|
-
|
|
774
|
+
if (this.debug) {
|
|
424
775
|
console.warn('[relaycast] Dropped node event: missing or invalid "type" field', transformed);
|
|
425
776
|
}
|
|
777
|
+
return Promise.resolve();
|
|
426
778
|
}
|
|
427
779
|
/** Normalize a direct-node delivery into the public workspace event shape. */
|
|
428
780
|
transformServerLikeEvent(eventType, data) {
|
|
@@ -501,6 +853,7 @@ export class WsClient {
|
|
|
501
853
|
: {}),
|
|
502
854
|
...((message.injection_mode ?? data.injection_mode) ? { injection_mode: message.injection_mode ?? data.injection_mode } : {}),
|
|
503
855
|
...(attachments.length ? { attachments } : {}),
|
|
856
|
+
...(typeof message.reply_to_message_id === 'string' ? { reply_to_message_id: message.reply_to_message_id } : {}),
|
|
504
857
|
},
|
|
505
858
|
};
|
|
506
859
|
}
|
package/dist/ws.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"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"}
|