@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/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
- this.handlers.get(event)?.forEach((h) => h(data));
347
- this.handlers.get('*')?.forEach((h) => h(data));
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
- const payload = isRecord(parsed.payload) ? parsed.payload : null;
354
- if (payload && typeof payload.type === 'string') {
355
- const data = isRecord(payload.data) ? payload.data : {};
356
- this.emitServerLikeEvent(payload.type, data);
504
+ if (parsed.seq === 0) {
505
+ this.dispatchBestEffort(parsed);
506
+ return true;
357
507
  }
358
- if (this.autoAckDeliveries &&
359
- typeof parsed.agent === 'string' &&
360
- typeof parsed.seq === 'number' &&
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
- emitServerLikeEvent(eventType, data) {
404
- const transformed = this.transformServerLikeEvent(eventType, data);
405
- // Node delivery is at-least-once, so redelivered frames must be deduped
406
- // the same way the standard onmessage flow dedupes server events.
407
- if (typeof transformed.id === 'string' &&
408
- transformed.id.length > 0 &&
409
- typeof transformed.type === 'string') {
410
- const dedupeKey = `${transformed.type}:${transformed.id}`;
411
- if (this.seenEventIds.has(dedupeKey))
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
- this.rememberEventId(dedupeKey);
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.emit(result.data.type, camelizeKeys(result.data, { opaqueBlocks: true }));
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.emit(transformed.type, camelizeKeys(transformed, { opaqueBlocks: true }));
772
+ return this.emitCollect(transformed.type, camelizeKeys(transformed, { opaqueBlocks: true }));
422
773
  }
423
- else if (this.debug) {
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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"}