@moltzap/client 2026.519.0 → 2026.519.2

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 (66) hide show
  1. package/dist/index.d.ts +2 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +4 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/notification/__tests__/filter-equivalence.test.d.ts +2 -0
  6. package/dist/notification/__tests__/filter-equivalence.test.d.ts.map +1 -0
  7. package/dist/notification/__tests__/filter-equivalence.test.js +123 -0
  8. package/dist/notification/__tests__/filter-equivalence.test.js.map +1 -0
  9. package/dist/notification/__tests__/snapshot-semantics.test.d.ts +2 -0
  10. package/dist/notification/__tests__/snapshot-semantics.test.d.ts.map +1 -0
  11. package/dist/notification/__tests__/snapshot-semantics.test.js +261 -0
  12. package/dist/notification/__tests__/snapshot-semantics.test.js.map +1 -0
  13. package/dist/notification/__tests__/snapshot-semantics.types-check.d.ts +3 -0
  14. package/dist/notification/__tests__/snapshot-semantics.types-check.d.ts.map +1 -0
  15. package/dist/notification/__tests__/snapshot-semantics.types-check.js +62 -0
  16. package/dist/notification/__tests__/snapshot-semantics.types-check.js.map +1 -0
  17. package/dist/notification/errors.d.ts +27 -0
  18. package/dist/notification/errors.d.ts.map +1 -0
  19. package/dist/notification/errors.js +24 -0
  20. package/dist/notification/errors.js.map +1 -0
  21. package/dist/notification/stream.d.ts +84 -0
  22. package/dist/notification/stream.d.ts.map +1 -0
  23. package/dist/notification/stream.js +106 -0
  24. package/dist/notification/stream.js.map +1 -0
  25. package/dist/runtime/errors.d.ts +0 -13
  26. package/dist/runtime/errors.d.ts.map +1 -1
  27. package/dist/runtime/errors.js +0 -10
  28. package/dist/runtime/errors.js.map +1 -1
  29. package/dist/runtime/index.d.ts +3 -4
  30. package/dist/runtime/index.d.ts.map +1 -1
  31. package/dist/runtime/index.js +3 -3
  32. package/dist/runtime/service-teardown.d.ts +5 -0
  33. package/dist/runtime/service-teardown.d.ts.map +1 -0
  34. package/dist/runtime/service-teardown.js +36 -0
  35. package/dist/runtime/service-teardown.js.map +1 -0
  36. package/dist/runtime/service-teardown.test.d.ts +2 -0
  37. package/dist/runtime/service-teardown.test.d.ts.map +1 -0
  38. package/dist/runtime/service-teardown.test.js +80 -0
  39. package/dist/runtime/service-teardown.test.js.map +1 -0
  40. package/dist/runtime/subscribers.d.ts +74 -136
  41. package/dist/runtime/subscribers.d.ts.map +1 -1
  42. package/dist/runtime/subscribers.js +187 -93
  43. package/dist/runtime/subscribers.js.map +1 -1
  44. package/dist/service.d.ts +10 -0
  45. package/dist/service.d.ts.map +1 -1
  46. package/dist/service.js +45 -12
  47. package/dist/service.js.map +1 -1
  48. package/dist/test-utils/conformance-adapter.d.ts +6 -16
  49. package/dist/test-utils/conformance-adapter.d.ts.map +1 -1
  50. package/dist/test-utils/conformance-adapter.js +100 -59
  51. package/dist/test-utils/conformance-adapter.js.map +1 -1
  52. package/dist/ws-client-test-support.d.ts +13 -10
  53. package/dist/ws-client-test-support.d.ts.map +1 -1
  54. package/dist/ws-client-test-support.js +44 -11
  55. package/dist/ws-client-test-support.js.map +1 -1
  56. package/dist/ws-client.d.ts +91 -104
  57. package/dist/ws-client.d.ts.map +1 -1
  58. package/dist/ws-client.js +78 -244
  59. package/dist/ws-client.js.map +1 -1
  60. package/dist/ws-client.test.js +33 -36
  61. package/dist/ws-client.test.js.map +1 -1
  62. package/package.json +3 -3
  63. package/dist/runtime/subscribers.test.d.ts +0 -2
  64. package/dist/runtime/subscribers.test.d.ts.map +0 -1
  65. package/dist/runtime/subscribers.test.js +0 -193
  66. package/dist/runtime/subscribers.test.js.map +0 -1
package/dist/ws-client.js CHANGED
@@ -1,10 +1,11 @@
1
+ /* eslint-disable jsdoc/text-escaping -- JSDoc references to generic types use natural angle-bracket form (TS source style) inside backtick code spans; matches filter-equivalence.test.ts precedent. */
1
2
  import * as Socket from "@effect/platform/Socket";
2
3
  import * as NodeSocket from "@effect/platform-node/NodeSocket";
3
- import { Data, Deferred, Duration, Either, Effect, Exit, Fiber, HashMap, ManagedRuntime, Option, Queue, Ref, Schedule, Scope, } from "effect";
4
- import { PROTOCOL_VERSION, Connect, encodeErrorResponse, makeJsonRpcClient, makeJsonRpcServer, NotConnectedError, RpcTimeoutError, } from "@moltzap/protocol";
5
- import { DuplicateServerRpcHandlerError } from "./runtime/errors.js";
4
+ import { Data, Deferred, Duration, Either, Effect, Exit, Fiber, ManagedRuntime, Option, Queue, Ref, Schedule, Scope, Stream, } from "effect";
5
+ import { PROTOCOL_VERSION, Connect, encodeErrorResponse, makeTaskMasterConnection, NotConnectedError, RpcTimeoutError, } from "@moltzap/protocol";
6
6
  import { decodeFrames } from "./runtime/frame.js";
7
7
  import { makeSubscriberRegistry, } from "./runtime/subscribers.js";
8
+ import { subscribe as subscribeStream, subscribeAll as subscribeAllStream, } from "./notification/stream.js";
8
9
  import { extractCloseInfo } from "./runtime/close-info.js";
9
10
  /**
10
11
  * Default per-RPC timeout. Exported so tests driving `TestClock` can match
@@ -16,7 +17,6 @@ const BASE_RECONNECT_DELAY_MS = 1000;
16
17
  const MAX_RECONNECT_DELAY_MS = 30_000;
17
18
  const RECONNECT_BACKOFF_FACTOR = 2;
18
19
  const NORMAL_CLOSE_CODE = 1000;
19
- const EVENT_WAIT_TIMEOUT_MS = 5000;
20
20
  const WEB_SOCKET_OPEN_TIMEOUT_SECONDS = 10;
21
21
  const MALFORMED_FRAME_PREVIEW_CHARS = 200;
22
22
  /**
@@ -25,12 +25,6 @@ const MALFORMED_FRAME_PREVIEW_CHARS = 200;
25
25
  */
26
26
  const MALFORMED_LOG_EVERY = 50;
27
27
  export const shouldLogMalformedFrame = (count) => count === 1 || count % MALFORMED_LOG_EVERY === 0;
28
- /**
29
- * Cap on the per-client notification buffer. Any frame that has no live
30
- * `waitForNotification` awaiter lands here until someone drains it. Excess
31
- * frames are evicted FIFO so a slow consumer can't leak memory.
32
- */
33
- const MAX_EVENT_BUFFER = 1000;
34
28
  /**
35
29
  * Capacity of the per-connection task-callback executor queue. Sized at
36
30
  * 8192 to preserve the pre-cutover burst envelope (256 partitions × 32
@@ -48,25 +42,6 @@ const UTF8_DECODER = new TextDecoder("utf-8");
48
42
  const makeNotConnectedError = () => new NotConnectedError({ message: MSG_NOT_CONNECTED });
49
43
  class ReconnectAttemptFailedError extends Data.TaggedError("ReconnectAttemptFailedError") {
50
44
  }
51
- /**
52
- * Notifications are pre-validated by the wire decoder
53
- * (`decodeNotification` in `@moltzap/protocol`) — fail-close on unknown
54
- * methods or bad params. Buffer + waiters hold the validated shape
55
- * directly; no separate Raw|Unknown lift remains.
56
- */
57
- function acceptTypedNotification(definition, notification) {
58
- return notification.definition === definition;
59
- }
60
- /** Drop `waiter` from its notification-definition bucket, pruning an empty bucket. */
61
- function removeWaiter(m, definition, waiter) {
62
- const bucket = HashMap.get(m, definition);
63
- if (bucket._tag === "None")
64
- return m;
65
- const filtered = bucket.value.filter((w) => w !== waiter);
66
- return filtered.length === 0
67
- ? HashMap.remove(m, definition)
68
- : HashMap.set(m, definition, filtered);
69
- }
70
45
  /**
71
46
  * WebSocket lifecycle: open → network/connect → active. On disconnect,
72
47
  * exponential backoff (1s base, 30s cap, jittered) retries the handshake via
@@ -78,32 +53,31 @@ function removeWaiter(m, definition, waiter) {
78
53
  * `@effect/platform-node/NodeSocket.layerWebSocketConstructor`. The Node
79
54
  * `WebSocketConstructor` layer is provided internally via `ManagedRuntime`
80
55
  * so callers' `connect()` / `sendRpc()` Effects have no extra requirement.
56
+ *
57
+ * Notification consumption (spec #596 / Spec B): use `subscribe(def, refinement?)`
58
+ * for typed payload Streams; `subscribeAll(refinement?)` for the broad-union
59
+ * escape hatch. Both return `Stream.Stream` of `DecodedNotification` with a `NotConnectedError` error channel.
60
+ * Consume via `Stream.runForEach` (long-lived) or `Stream.runHead` + `Effect.timeoutFail`
61
+ * (one-shot).
81
62
  */
82
63
  export class MoltZapWsClient {
83
64
  options;
84
65
  stateRef;
85
66
  malformedRef;
86
- notificationsBufferRef;
87
- /**
88
- * Waiters keyed by notification descriptor identity. Each bucket is a FIFO
89
- * stack: delivery pops the most recently registered waiter (the tail).
90
- */
91
- notificationWaitersRef;
92
67
  runtime;
93
68
  /**
94
- * Per-subscription notification registry. Spec #222 §5.3 (C4 + the
95
- * `RealClientEventSubscriber.subscribe` filter stub). Constructed
96
- * synchronously alongside the other Refs; `MoltZapWsClient.subscribe`
97
- * delegates to it directly.
69
+ * Per-subscription notification registry. Spec #596 / Spec B: callback-based
70
+ * storage feeds `Stream.async` consumers via `notification/stream.ts`.
98
71
  */
99
72
  subscribers;
100
73
  /**
101
- * Per-method handler registry for server-initiated RPCs. Survives
102
- * reconnects so apps register once and re-attach automatically when the
103
- * socket comes back. Each entry is invoked by the per-connection
104
- * dispatcher fiber when an appCallback request frame arrives.
74
+ * Spec F (#617) immutable TM-callback handler table. Captured from
75
+ * `MoltZapWsClientOptions.appCallbackHandlers` at construction and
76
+ * threaded through every `makeTaskMasterConnection` call (including
77
+ * reconnects). `{}` is the default — a TM that fails-CLOSED on every
78
+ * inbound auth check via the protocol's R2 default.
105
79
  */
106
- appCallbackHandlersRef;
80
+ appCallbackHandlers;
107
81
  closed = false;
108
82
  reconnectFiber = null;
109
83
  _helloOk = null;
@@ -112,41 +86,15 @@ export class MoltZapWsClient {
112
86
  this.runtime = ManagedRuntime.make(NodeSocket.layerWebSocketConstructor);
113
87
  this.stateRef = this.runtime.runSync(Ref.make(Option.none()));
114
88
  this.malformedRef = this.runtime.runSync(Ref.make(0));
115
- this.notificationsBufferRef = this.runtime.runSync(Ref.make([]));
116
- this.notificationWaitersRef = this.runtime.runSync(Ref.make(HashMap.empty()));
117
89
  // Registry construction is `Effect<…, never>`; running it sync here
118
90
  // matches every other Ref initializer in this constructor and
119
91
  // keeps `subscribers` non-nullable inside the class.
120
92
  this.subscribers = this.runtime.runSync(makeSubscriberRegistry());
121
- this.appCallbackHandlersRef = this.runtime.runSync(Ref.make(HashMap.empty()));
122
- }
123
- /**
124
- * Register a handler for a server-initiated RPC method. Survives
125
- * reconnects — the registry lives on the client, not the per-connection
126
- * `ConnState`. Returns `Effect&lt;void>` that fails with
127
- * `DuplicateServerRpcHandlerError` if a handler for `method` is already
128
- * registered (shadowing the existing one would silently swap behaviour
129
- * mid-flight).
130
- *
131
- * The dispatcher fiber forked at `connect()` time picks up handlers via
132
- * `Ref.get` per-frame, so a registration made BEFORE `connect()` is
133
- * visible to the very first inbound appCallback request, and a registration
134
- * made AFTER `connect()` takes effect on the next inbound frame.
135
- */
136
- handleServerRpc(definition, handler) {
137
- return Effect.gen(this, function* () {
138
- const swapped = yield* Ref.modify(this.appCallbackHandlersRef, (m) => {
139
- if (HashMap.has(m, definition))
140
- return [false, m];
141
- return [
142
- true,
143
- HashMap.set(m, definition, handler),
144
- ];
145
- });
146
- if (!swapped) {
147
- return yield* Effect.fail(new DuplicateServerRpcHandlerError({ method: definition.name }));
148
- }
149
- });
93
+ // Spec F (#617): handler table is value-passed at construction; an
94
+ // empty table fails-CLOSED on inbound auth checks via the protocol's
95
+ // R2 default. The reference is held verbatim — no defensive clone —
96
+ // because the protocol's `eraseHandlerTable` only reads keys.
97
+ this.appCallbackHandlers = options.appCallbackHandlers ?? {};
150
98
  }
151
99
  get helloOk() {
152
100
  return this._helloOk;
@@ -181,25 +129,23 @@ export class MoltZapWsClient {
181
129
  const timeoutMs = opts?.timeoutMs ?? RPC_TIMEOUT_MS;
182
130
  return this.sendRpcEffect(definition, params, timeoutMs);
183
131
  }
132
+ subscribe(definition,
133
+ // eslint-disable-next-line agent-code-guard/no-conditional-chaining -- optional refinement is a value-level passthrough to the Stream factory; not a refinement-of-discriminant decision
134
+ refinement) {
135
+ return subscribeStream(this.subscribers, definition, refinement);
136
+ }
184
137
  /**
185
- * Register a per-subscription notification handler. Spec #222 §5.3 + OQ-2
186
- * (A): filter grammar is the three-field `SubscriptionFilter`
187
- * (`emissionTag` / `conversationId` / `notificationNamePrefix`). Returns a
188
- * handle whose `unsubscribe` Effect drops delivery starting with the
189
- * next inbound frame (OQ-3 A snapshot semantics).
138
+ * Broad-union escape hatch (spec #596 Goal #2). Returns a Stream of every
139
+ * inbound notification regardless of definition. Payload narrowing is
140
+ * intentionally lost — callers wanting typed payloads use `subscribe`.
190
141
  *
191
- * Subscription is legal pre-`connect()`; the registry buffers
192
- * registrations and starts dispatching once the reader fiber begins
193
- * producing frames. Fails with `NotConnectedError` only if the client
194
- * has been permanently torn down via `close()`.
142
+ * The only intended in-tree consumer is `MoltZapService.connect`'s
143
+ * service-wide notification fanout.
195
144
  */
196
- subscribe(filter, handler) {
197
- return Effect.suspend(() => {
198
- if (this.closed) {
199
- return Effect.fail(makeNotConnectedError());
200
- }
201
- return this.subscribers.register(filter, handler);
202
- });
145
+ subscribeAll(
146
+ // eslint-disable-next-line agent-code-guard/no-conditional-chaining -- optional refinement is a value-level passthrough to the Stream factory; not a refinement-of-discriminant decision
147
+ refinement) {
148
+ return subscribeAllStream(this.subscribers, refinement);
203
149
  }
204
150
  /**
205
151
  * Close the socket permanently (no reconnection). Writes a clean WebSocket
@@ -220,9 +166,12 @@ export class MoltZapWsClient {
220
166
  yield* Effect.forkDaemon(Fiber.interrupt(f));
221
167
  }
222
168
  yield* this.failAllPending(MSG_NOT_CONNECTED);
223
- yield* this.failAllNotificationWaiters(MSG_NOT_CONNECTED);
224
169
  // Drop every live subscription so handlers stop firing once
225
- // the client is permanently torn down. Idempotent.
170
+ // the client is permanently torn down. The registry invokes each
171
+ // sub's `onClose(new NotConnectedError(...))` callback, which fires
172
+ // `emit.fail` on the corresponding consumer Stream. Subsumes the
173
+ // deleted `failAllNotificationWaiters` semantic (spec #596 §3.2 +
174
+ // §"Stream lifecycle contract" row 5).
226
175
  yield* this.subscribers.closeAll;
227
176
  const state = yield* Ref.getAndSet(this.stateRef, Option.none());
228
177
  if (Option.isSome(state)) {
@@ -247,72 +196,6 @@ export class MoltZapWsClient {
247
196
  this.runtime.dispose();
248
197
  })));
249
198
  }
250
- /**
251
- * Wait for the next inbound notification matching `definition`.
252
- * Consumes a buffered match if present; otherwise awaits the next match
253
- * with a per-call timeout.
254
- */
255
- waitForNotification(definition, timeoutMs = EVENT_WAIT_TIMEOUT_MS) {
256
- return Effect.gen(this, function* () {
257
- const buffered = yield* this.takeBufferedNotification(definition);
258
- if (buffered !== null)
259
- return buffered;
260
- return yield* this.awaitNotification(definition, timeoutMs);
261
- });
262
- }
263
- takeBufferedNotification(definition) {
264
- return Ref.modify(this.notificationsBufferRef, (frames) => {
265
- for (const [idx, frame] of frames.entries()) {
266
- if (!acceptTypedNotification(definition, frame))
267
- continue;
268
- const next = [...frames.slice(0, idx), ...frames.slice(idx + 1)];
269
- return [frame, next];
270
- }
271
- return [null, frames];
272
- });
273
- }
274
- awaitNotification(definition, timeoutMs) {
275
- return Effect.gen(this, function* () {
276
- const deferred = yield* Deferred.make();
277
- const waiter = this.makeNotificationWaiter(definition, deferred);
278
- yield* this.addNotificationWaiter(definition, waiter);
279
- return yield* Deferred.await(deferred).pipe(Effect.timeoutFail({
280
- duration: `${timeoutMs} millis`,
281
- onTimeout: () => new Error(`Timeout waiting for notification: ${definition.name}`),
282
- }), Effect.onExit((exit) => Exit.isFailure(exit)
283
- ? this.removeNotificationWaiter(definition, waiter)
284
- : Effect.void));
285
- });
286
- }
287
- makeNotificationWaiter(definition, deferred) {
288
- return {
289
- definition,
290
- complete: (notification) => acceptTypedNotification(definition, notification)
291
- ? Deferred.succeed(deferred, notification).pipe(Effect.asVoid)
292
- : Effect.void,
293
- fail: (error) => Deferred.fail(deferred, error).pipe(Effect.asVoid),
294
- };
295
- }
296
- addNotificationWaiter(definition, waiter) {
297
- return Ref.update(this.notificationWaitersRef, (m) => {
298
- const existing = HashMap.get(m, definition);
299
- const next = existing._tag === "Some" ? [...existing.value, waiter] : [waiter];
300
- return HashMap.set(m, definition, next);
301
- });
302
- }
303
- removeNotificationWaiter(definition, waiter) {
304
- return Ref.update(this.notificationWaitersRef, (m) => removeWaiter(m, definition, waiter));
305
- }
306
- /**
307
- * Return all buffered notifications and clear the buffer. Synchronous.
308
- * Frames are pre-validation (`params: unknown`) — buffer holds the
309
- * raw shape produced by the wire decoder.
310
- */
311
- drainNotifications() {
312
- const snapshot = this.runtime.runSync(Ref.get(this.notificationsBufferRef));
313
- this.runtime.runSync(Ref.set(this.notificationsBufferRef, []));
314
- return [...snapshot];
315
- }
316
199
  /** Close the socket without marking as permanently closed, triggering reconnection. */
317
200
  disconnect() {
318
201
  return Effect.sync(() => this.disconnectSync());
@@ -352,18 +235,21 @@ export class MoltZapWsClient {
352
235
  const scope = yield* Scope.make();
353
236
  const socket = yield* this.openSocket(url, scope);
354
237
  const write = yield* Scope.extend(socket.writer, scope);
355
- const jsonRpcClient = yield* Scope.extend(makeJsonRpcClient({
238
+ const tmConn = yield* Scope.extend(makeTaskMasterConnection({
239
+ id: "ws-client",
240
+ handlers: this.appCallbackHandlers,
241
+ capabilities: {},
356
242
  write: (raw) => write(raw),
357
243
  idPrefix: "rpc",
358
244
  }), scope);
359
245
  const handshakeSettled = yield* Deferred.make();
360
- const dispatcher = yield* this.startTaskCallbackDispatcher(write);
246
+ const dispatcher = yield* this.startTaskCallbackDispatcher(write, tmConn);
361
247
  const readerFiber = this.runtime.runFork(this.readerEffect(socket, handshakeSettled, dispatcher.dispatcherScope));
362
248
  yield* this.publishConnectionState({
363
249
  write,
364
250
  readerFiber,
365
251
  scope,
366
- jsonRpcClient,
252
+ tmConn,
367
253
  handshakeSettled,
368
254
  taskCallbackQueue: dispatcher.taskCallbackQueue,
369
255
  dispatcherScope: dispatcher.dispatcherScope,
@@ -383,11 +269,11 @@ export class MoltZapWsClient {
383
269
  this.runtime.runFork(Scope.close(scope, Exit.void));
384
270
  }).pipe(Effect.zipRight(Effect.fail(makeNotConnectedError()))))));
385
271
  }
386
- startTaskCallbackDispatcher(write) {
272
+ startTaskCallbackDispatcher(write, tmConn) {
387
273
  return Effect.gen(this, function* () {
388
274
  const dispatcherScope = yield* Scope.make();
389
275
  const taskCallbackQueue = yield* Queue.bounded(TASK_CALLBACK_QUEUE_CAPACITY);
390
- const drainEffect = Effect.forever(Queue.take(taskCallbackQueue).pipe(Effect.flatMap((req) => this.dispatchInboundServerRequest(req, write))));
276
+ const drainEffect = Effect.forever(Queue.take(taskCallbackQueue).pipe(Effect.flatMap((req) => this.dispatchInboundServerRequest(req, write, tmConn))));
391
277
  yield* Effect.forkIn(drainEffect, dispatcherScope);
392
278
  return { dispatcherScope, taskCallbackQueue };
393
279
  });
@@ -431,7 +317,12 @@ export class MoltZapWsClient {
431
317
  if (Option.isNone(state)) {
432
318
  return yield* Effect.fail(makeNotConnectedError());
433
319
  }
434
- return yield* state.value.jsonRpcClient.call(definition, params).pipe(Effect.timeoutFail({
320
+ // `sendRpc` is the public surface; callers pass concrete descriptors
321
+ // narrowed at the call site. The typed-dispatcher's `call` is
322
+ // constrained to `AnyRpcDefinition` (the union of catalog members);
323
+ // the bound carry-through is preserved by widening to the union here.
324
+ const call = state.value.tmConn.call;
325
+ return yield* call(definition, params).pipe(Effect.timeoutFail({
435
326
  duration: `${timeoutMs} millis`,
436
327
  onTimeout: () => new RpcTimeoutError({ method: definition.name, timeoutMs }),
437
328
  }));
@@ -451,42 +342,22 @@ export class MoltZapWsClient {
451
342
  return write(JSON.stringify(reply)).pipe(Effect.catchAll((werr) => Effect.logWarning("task-callback queue-full rejection write failed", werr)));
452
343
  }
453
344
  /**
454
- * Dispatch one inbound appCallback request to the registered handler, encode
455
- * the response, and write it back to the server. Errors are projected
456
- * onto an error response so the server's `Deferred.await` always
457
- * settles deterministically — never hangs on a missing or crashing
458
- * handler.
459
- *
460
- * Cases:
461
- * - Handler registered + Effect succeeds → encode `result`.
462
- * - Handler registered + Effect fails with a registered tagged error →
463
- * encode `error` from the tag.
464
- * - Handler registered + Effect defects (untagged crash) →
465
- * encode generic InternalError, log the cause.
466
- * - No handler registered → encode MethodNotFound error response.
345
+ * Dispatch one inbound appCallback request through the typed Spec F
346
+ * dispatcher and write its wire response back to the server. The
347
+ * dispatcher synthesises the protocol's fail-CLOSED `ForbiddenError
348
+ * -32001` response for any TM-callback slot the client did not bind at
349
+ * construction (Spec F R2). Handler defects collapse to a generic
350
+ * InternalError reply so the server's `Deferred.await` always settles
351
+ * deterministically.
467
352
  */
468
- dispatchInboundServerRequest(request, write) {
469
- return Effect.gen(this, function* () {
470
- const reply = yield* this.buildInboundServerReply(request);
471
- yield* this.writeInboundServerReply(write, reply);
472
- });
473
- }
474
- buildInboundServerReply(request) {
353
+ dispatchInboundServerRequest(request, write, tmConn) {
475
354
  return Effect.gen(this, function* () {
476
- const handlers = yield* Ref.get(this.appCallbackHandlersRef);
477
- const rpcServer = makeJsonRpcServer(this.appCallbackRpcHandlers(handlers));
478
- return yield* rpcServer.handle(request.frame, {
355
+ const reply = yield* tmConn.handle(request.frame, {
479
356
  requestId: request.id,
480
- definition: request.definition,
481
357
  });
358
+ yield* this.writeInboundServerReply(write, reply);
482
359
  });
483
360
  }
484
- appCallbackRpcHandlers(handlers) {
485
- return Array.from(HashMap.entries(handlers), ([definition, appHandler]) => ({
486
- definition,
487
- handle: (params, ctx) => appHandler(params, { ...ctx, definition }),
488
- }));
489
- }
490
361
  writeInboundServerReply(write, reply) {
491
362
  return write(JSON.stringify(reply)).pipe(Effect.catchAll((err) => Effect.logWarning("appCallback response write failed", err)));
492
363
  }
@@ -506,9 +377,7 @@ export class MoltZapWsClient {
506
377
  const state = yield* Ref.get(this.stateRef);
507
378
  if (Option.isNone(state))
508
379
  return;
509
- yield* state.value.jsonRpcClient
510
- .resolve(decoded.frame)
511
- .pipe(Effect.asVoid);
380
+ yield* state.value.tmConn.resolve(decoded.frame).pipe(Effect.asVoid);
512
381
  });
513
382
  }
514
383
  handleDecodedServerRequest(decoded) {
@@ -522,39 +391,15 @@ export class MoltZapWsClient {
522
391
  }
523
392
  });
524
393
  }
525
- takeNotificationWaiter(decoded) {
526
- return Ref.modify(this.notificationWaitersRef, (waitersMap) => {
527
- const bucket = HashMap.get(waitersMap, decoded.definition);
528
- if (bucket._tag === "None" || bucket.value.length === 0) {
529
- return [null, waitersMap];
530
- }
531
- const arr = bucket.value;
532
- const chosen = arr[arr.length - 1];
533
- const rest = arr.slice(0, -1);
534
- const nextMap = rest.length === 0
535
- ? HashMap.remove(waitersMap, decoded.definition)
536
- : HashMap.set(waitersMap, decoded.definition, rest);
537
- return [chosen, nextMap];
538
- });
539
- }
540
- bufferNotification(decoded) {
541
- return Ref.update(this.notificationsBufferRef, (buffer) => {
542
- const appended = [...buffer, decoded];
543
- return appended.length > MAX_EVENT_BUFFER
544
- ? appended.slice(-MAX_EVENT_BUFFER)
545
- : appended;
546
- });
547
- }
394
+ /**
395
+ * Inbound notification routing. Spec #596 / Spec B: dispatch fans out
396
+ * through the registry's stored `onFrame` callbacks into each
397
+ * subscription's `Stream.async` source. The pre-arrival buffer and
398
+ * waiter-pop branches were deleted in Spec B (no top-level waiter, no
399
+ * `notificationsBufferRef`).
400
+ */
548
401
  handleDecodedNotification(decoded) {
549
- return Effect.gen(this, function* () {
550
- yield* this.subscribers.dispatch(decoded);
551
- const delivered = yield* this.takeNotificationWaiter(decoded);
552
- if (delivered !== null) {
553
- yield* delivered.complete(decoded);
554
- return;
555
- }
556
- yield* this.bufferNotification(decoded);
557
- });
402
+ return this.subscribers.dispatch(decoded);
558
403
  }
559
404
  handleDecodedFrame(decoded) {
560
405
  switch (decoded._tag) {
@@ -569,7 +414,7 @@ export class MoltZapWsClient {
569
414
  }
570
415
  /**
571
416
  * Route an inbound frame. Malformed frames are logged + dropped; notification
572
- * frames dispatch to `onNotification` after the shape check.
417
+ * frames fan out through the per-subscription registry (Spec B).
573
418
  */
574
419
  handleIncoming(raw) {
575
420
  return Effect.gen(this, function* () {
@@ -581,26 +426,15 @@ export class MoltZapWsClient {
581
426
  }
582
427
  });
583
428
  }
584
- /** Fail every outstanding notification waiter with `message` and clear the map. */
585
- failAllNotificationWaiters(message) {
586
- return Effect.gen(this, function* () {
587
- const waiters = yield* Ref.getAndSet(this.notificationWaitersRef, HashMap.empty());
588
- for (const [, bucket] of HashMap.entries(waiters)) {
589
- for (const w of bucket) {
590
- yield* w.fail(new Error(message));
591
- }
592
- }
593
- });
594
- }
595
429
  failConnectionPending(state) {
596
- return state.jsonRpcClient.failAllPending(new NotConnectedError({ message: MSG_NOT_CONNECTED }));
430
+ return state.tmConn.failAllPending(new NotConnectedError({ message: MSG_NOT_CONNECTED }));
597
431
  }
598
432
  failAllPending(message) {
599
433
  return Effect.gen(this, function* () {
600
434
  const state = yield* Ref.get(this.stateRef);
601
435
  if (Option.isNone(state))
602
436
  return;
603
- yield* state.value.jsonRpcClient.failAllPending(new NotConnectedError({ message }));
437
+ yield* state.value.tmConn.failAllPending(new NotConnectedError({ message }));
604
438
  });
605
439
  }
606
440
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}