@moltzap/client 2026.425.2 → 2026.430.1

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 (41) hide show
  1. package/dist/auth.d.ts +26 -0
  2. package/dist/auth.d.ts.map +1 -0
  3. package/dist/auth.js +37 -0
  4. package/dist/auth.js.map +1 -0
  5. package/dist/auth.test.d.ts +2 -0
  6. package/dist/auth.test.d.ts.map +1 -0
  7. package/dist/auth.test.js +84 -0
  8. package/dist/auth.test.js.map +1 -0
  9. package/dist/channel-core.d.ts +64 -4
  10. package/dist/channel-core.d.ts.map +1 -1
  11. package/dist/channel-core.js +306 -17
  12. package/dist/channel-core.js.map +1 -1
  13. package/dist/channel-core.test.js +387 -2
  14. package/dist/channel-core.test.js.map +1 -1
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/service.d.ts +5 -2
  20. package/dist/service.d.ts.map +1 -1
  21. package/dist/service.js +79 -3
  22. package/dist/service.js.map +1 -1
  23. package/dist/service.test.js +41 -0
  24. package/dist/service.test.js.map +1 -1
  25. package/dist/test/index.d.ts +7 -17
  26. package/dist/test/index.d.ts.map +1 -1
  27. package/dist/test/index.js +6 -26
  28. package/dist/test/index.js.map +1 -1
  29. package/dist/test-utils/channel-service-fixture.d.ts +1 -0
  30. package/dist/test-utils/channel-service-fixture.d.ts.map +1 -1
  31. package/dist/test-utils/channel-service-fixture.js +8 -2
  32. package/dist/test-utils/channel-service-fixture.js.map +1 -1
  33. package/dist/test-utils/fake-service.d.ts +3 -1
  34. package/dist/test-utils/fake-service.d.ts.map +1 -1
  35. package/dist/test-utils/fake-service.js +2 -2
  36. package/dist/test-utils/fake-service.js.map +1 -1
  37. package/dist/ws-client.d.ts +5 -2
  38. package/dist/ws-client.d.ts.map +1 -1
  39. package/dist/ws-client.js +8 -7
  40. package/dist/ws-client.js.map +1 -1
  41. package/package.json +3 -3
@@ -1,12 +1,38 @@
1
1
  /**
2
2
  * Shared message-enrichment helper for MoltZap channel adapters.
3
3
  */
4
- import { Cause, Effect, Fiber, Queue } from "effect";
4
+ import { Cause, Chunk, Duration, Effect, Fiber, Queue } from "effect";
5
5
  const noopLogger = {
6
6
  info: () => { },
7
7
  warn: () => { },
8
8
  error: () => { },
9
9
  };
10
+ const DEFAULT_DISPATCH_ADMISSION_TIMEOUT_MS = 900_000;
11
+ const DEFAULT_DISPATCH_LEASE_TIMEOUT_MS = 90_000;
12
+ class DispatchLeaseExpired extends Error {
13
+ messageId;
14
+ conversationId;
15
+ timeoutMs;
16
+ constructor(messageId, conversationId, timeoutMs) {
17
+ super(`dispatch lease expired after ${timeoutMs}ms`);
18
+ this.messageId = messageId;
19
+ this.conversationId = conversationId;
20
+ this.timeoutMs = timeoutMs;
21
+ this.name = "DispatchLeaseExpired";
22
+ }
23
+ }
24
+ function errorSummary(err) {
25
+ if (err instanceof Error) {
26
+ return {
27
+ errorName: err.name,
28
+ errorMessage: err.message,
29
+ errorStack: err.stack,
30
+ };
31
+ }
32
+ return {
33
+ errorValue: String(err),
34
+ };
35
+ }
10
36
  function extractTextContent(parts) {
11
37
  return parts
12
38
  .filter((p) => p.type === "text")
@@ -24,8 +50,12 @@ function extractTextContent(parts) {
24
50
  export class MoltZapChannelCore {
25
51
  service;
26
52
  logger;
53
+ dispatchAdmissionTimeoutMs;
27
54
  connected = false;
28
55
  inboundHandler = null;
56
+ activeDispatchLeaseId;
57
+ logicalClocks = new Map();
58
+ parkedByConversation = new Map();
29
59
  /** Inbound messages enqueue synchronously; a single forked consumer fiber
30
60
  * serialises delivery so handlers execute one-at-a-time in arrival order. */
31
61
  inboundQueue = Effect.runSync(Queue.unbounded());
@@ -36,14 +66,26 @@ export class MoltZapChannelCore {
36
66
  constructor(opts) {
37
67
  this.service = opts.service;
38
68
  this.logger = opts.logger ?? noopLogger;
69
+ this.dispatchAdmissionTimeoutMs =
70
+ opts.dispatchAdmissionTimeoutMs ?? DEFAULT_DISPATCH_ADMISSION_TIMEOUT_MS;
39
71
  this.service.on("message", (message) => {
40
- Queue.unsafeOffer(this.inboundQueue, message);
72
+ Queue.unsafeOffer(this.inboundQueue, {
73
+ message,
74
+ attempt: 0,
75
+ receivedAtMs: Date.now(),
76
+ clock: this.observeMessage(message),
77
+ });
41
78
  });
42
79
  // Both typed failures (Effect.fail) and defects (sync throws inside the
43
80
  // handler's Effect) are caught — Cause.squash collapses either into a
44
81
  // single value for the logger so the consumer fiber survives a misbehaving
45
82
  // handler in either mode.
46
- const consumer = Effect.forever(Queue.take(this.inboundQueue).pipe(Effect.flatMap((message) => this.dispatchInboundEffect(message).pipe(Effect.catchAllCause((cause) => Effect.sync(() => this.logger.error({ messageId: message.id, err: Cause.squash(cause) }, "MoltZapChannelCore: inbound handler failed")))))));
83
+ const consumer = Effect.forever(Queue.take(this.inboundQueue).pipe(Effect.flatMap((work) => this.dispatchInboundWork(work).pipe(Effect.catchAllCause((cause) => Effect.sync(() => this.logger.error({
84
+ messageId: work.message.id,
85
+ conversationId: work.message.conversationId,
86
+ causePretty: Cause.pretty(cause),
87
+ ...errorSummary(Cause.squash(cause)),
88
+ }, "MoltZapChannelCore: inbound handler failed")))))));
47
89
  this.consumerFiber = Effect.runFork(consumer);
48
90
  this.service.on("disconnect", () => {
49
91
  this.connected = false;
@@ -99,24 +141,267 @@ export class MoltZapChannelCore {
99
141
  isConnected() {
100
142
  return this.connected;
101
143
  }
102
- sendReply(conversationId, text) {
103
- return this.service.send(conversationId, text);
144
+ sendReply(conversationId, text, opts) {
145
+ return this.service.send(conversationId, text, {
146
+ dispatchLeaseId: opts?.dispatchLeaseId ?? this.activeDispatchLeaseId,
147
+ });
148
+ }
149
+ observeMessage(message) {
150
+ const current = this.logicalClocks.get(message.conversationId) ?? {
151
+ epoch: 0,
152
+ vector: {},
153
+ };
154
+ const vector = {
155
+ ...current.vector,
156
+ [message.senderId]: (current.vector[message.senderId] ?? 0) + 1,
157
+ };
158
+ const next = { epoch: current.epoch + 1, vector };
159
+ this.logicalClocks.set(message.conversationId, next);
160
+ return {
161
+ domainId: message.conversationId,
162
+ epoch: next.epoch,
163
+ vector,
164
+ };
165
+ }
166
+ takeDispatchCandidate(incoming) {
167
+ const conversationId = incoming.message.conversationId;
168
+ const parked = this.parkedByConversation.get(conversationId);
169
+ if (!parked || parked.length === 0)
170
+ return incoming;
171
+ parked.push(incoming);
172
+ const next = parked.shift();
173
+ if (parked.length === 0) {
174
+ this.parkedByConversation.delete(conversationId);
175
+ }
176
+ else {
177
+ this.parkedByConversation.set(conversationId, parked);
178
+ }
179
+ return next;
180
+ }
181
+ parkDispatchWork(work) {
182
+ const conversationId = work.message.conversationId;
183
+ const parked = this.parkedByConversation.get(conversationId) ?? [];
184
+ parked.unshift({
185
+ ...work,
186
+ attempt: work.attempt + 1,
187
+ });
188
+ this.parkedByConversation.set(conversationId, parked);
189
+ }
190
+ dispatchAdmission(work) {
191
+ if (!this.service.authorizeDispatch) {
192
+ return Effect.succeed({ _tag: "grant" });
193
+ }
194
+ return Effect.suspend(() => this.service.authorizeDispatch({
195
+ message: work.message,
196
+ conversationId: work.message.conversationId,
197
+ senderAgentId: work.message.senderId,
198
+ attempt: work.attempt,
199
+ receivedAt: new Date(work.receivedAtMs).toISOString(),
200
+ clock: work.clock,
201
+ pending: this.pendingDispatchSnapshot(work),
202
+ })).pipe(Effect.tap((decision) => Effect.sync(() => {
203
+ if (decision._tag === "grant") {
204
+ this.logger.info({
205
+ messageId: work.message.id,
206
+ conversationId: work.message.conversationId,
207
+ attempt: work.attempt,
208
+ leaseId: decision.leaseId,
209
+ leaseTimeoutMs: decision.leaseTimeoutMs,
210
+ dispatchMessageId: decision.dispatchMessageId,
211
+ }, "MoltZapChannelCore: dispatch admission granted");
212
+ }
213
+ })), Effect.timeoutFail({
214
+ duration: Duration.millis(this.dispatchAdmissionTimeoutMs),
215
+ onTimeout: () => new Error(`dispatch admission timed out after ${this.dispatchAdmissionTimeoutMs}ms`),
216
+ }), Effect.catchAll((err) => Effect.sync(() => {
217
+ this.logger.warn({
218
+ messageId: work.message.id,
219
+ conversationId: work.message.conversationId,
220
+ attempt: work.attempt,
221
+ err,
222
+ }, "MoltZapChannelCore: dispatch admission failed closed");
223
+ return {
224
+ _tag: "deny",
225
+ reason: "dispatch admission unavailable",
226
+ };
227
+ })));
228
+ }
229
+ dispatchInboundWork(work) {
230
+ return Effect.gen(this, function* () {
231
+ const current = this.takeDispatchCandidate(work);
232
+ const decision = yield* this.dispatchAdmission(current);
233
+ if (decision._tag === "grant") {
234
+ const messages = this.service.authorizeDispatch
235
+ ? yield* this.takeCoalescedConversationMessages(current, decision.dispatchMessageId)
236
+ : [current.message];
237
+ if (messages.length === 0) {
238
+ yield* Effect.sync(() => this.logger.warn({
239
+ messageId: current.message.id,
240
+ conversationId: current.message.conversationId,
241
+ attempt: current.attempt,
242
+ dispatchMessageId: decision.dispatchMessageId,
243
+ }, "MoltZapChannelCore: dispatch admission target unavailable"));
244
+ return;
245
+ }
246
+ const primaryMessage = messages[0];
247
+ yield* Effect.sync(() => this.logger.info({
248
+ messageId: primaryMessage.id,
249
+ admittedMessageId: current.message.id,
250
+ conversationId: current.message.conversationId,
251
+ attempt: current.attempt,
252
+ leaseId: decision.leaseId,
253
+ coalescedMessageCount: messages.length,
254
+ }, "MoltZapChannelCore: inbound dispatch starting"));
255
+ const dispatch = Effect.acquireUseRelease(Effect.sync(() => {
256
+ const previous = this.activeDispatchLeaseId;
257
+ this.activeDispatchLeaseId = decision.leaseId;
258
+ return previous;
259
+ }), () => this.dispatchInboundEffect(messages), (previous) => Effect.sync(() => {
260
+ this.activeDispatchLeaseId = previous;
261
+ }));
262
+ const timeoutMs = decision.leaseId
263
+ ? (decision.leaseTimeoutMs ?? DEFAULT_DISPATCH_LEASE_TIMEOUT_MS)
264
+ : undefined;
265
+ let dispatchTimedOut = false;
266
+ if (timeoutMs === undefined) {
267
+ yield* dispatch;
268
+ }
269
+ else {
270
+ yield* dispatch.pipe(Effect.timeoutFail({
271
+ duration: Duration.millis(timeoutMs),
272
+ onTimeout: () => new DispatchLeaseExpired(primaryMessage.id, primaryMessage.conversationId, timeoutMs),
273
+ }), Effect.catchAll((err) => {
274
+ if (err instanceof DispatchLeaseExpired) {
275
+ return Effect.sync(() => {
276
+ dispatchTimedOut = true;
277
+ this.logger.warn({
278
+ messageId: err.messageId,
279
+ conversationId: err.conversationId,
280
+ attempt: current.attempt,
281
+ leaseId: decision.leaseId,
282
+ timeoutMs: err.timeoutMs,
283
+ }, "MoltZapChannelCore: inbound dispatch lease expired");
284
+ });
285
+ }
286
+ return Effect.fail(err);
287
+ }));
288
+ }
289
+ if (!dispatchTimedOut) {
290
+ yield* Effect.sync(() => this.logger.info({
291
+ messageId: primaryMessage.id,
292
+ admittedMessageId: current.message.id,
293
+ conversationId: current.message.conversationId,
294
+ attempt: current.attempt,
295
+ leaseId: decision.leaseId,
296
+ }, "MoltZapChannelCore: inbound dispatch completed"));
297
+ }
298
+ return;
299
+ }
300
+ if (decision._tag === "deny") {
301
+ yield* Effect.sync(() => this.logger.info({
302
+ messageId: current.message.id,
303
+ conversationId: current.message.conversationId,
304
+ attempt: current.attempt,
305
+ reason: decision.reason,
306
+ }, "MoltZapChannelCore: inbound dispatch denied"));
307
+ return;
308
+ }
309
+ yield* Effect.sync(() => this.logger.info({
310
+ messageId: current.message.id,
311
+ conversationId: current.message.conversationId,
312
+ attempt: current.attempt,
313
+ reason: decision.reason,
314
+ }, "MoltZapChannelCore: inbound dispatch held"));
315
+ this.parkDispatchWork(current);
316
+ });
317
+ }
318
+ pendingDispatchSnapshot(active) {
319
+ const queued = Chunk.toReadonlyArray(Effect.runSync(Queue.takeAll(this.inboundQueue)));
320
+ for (const work of queued) {
321
+ Queue.unsafeOffer(this.inboundQueue, work);
322
+ }
323
+ const parked = [...this.parkedByConversation.values()].flat();
324
+ return [active, ...parked, ...queued].map((work) => ({
325
+ messageId: work.message.id,
326
+ conversationId: work.message.conversationId,
327
+ senderAgentId: work.message.senderId,
328
+ createdAt: work.message.createdAt,
329
+ receivedAt: new Date(work.receivedAtMs).toISOString(),
330
+ clock: work.clock,
331
+ parts: work.message.parts,
332
+ }));
333
+ }
334
+ takeCoalescedConversationMessages(work, dispatchMessageId) {
335
+ return Effect.sync(() => {
336
+ const queued = Chunk.toReadonlyArray(Effect.runSync(Queue.takeAll(this.inboundQueue)));
337
+ const parked = this.parkedByConversation.get(work.message.conversationId);
338
+ const sameConversation = [work.message];
339
+ const remaining = [];
340
+ if (parked) {
341
+ sameConversation.push(...parked.map((parkedWork) => parkedWork.message));
342
+ this.parkedByConversation.delete(work.message.conversationId);
343
+ }
344
+ for (const queuedWork of queued) {
345
+ if (queuedWork.message.conversationId === work.message.conversationId) {
346
+ sameConversation.push(queuedWork.message);
347
+ }
348
+ else {
349
+ remaining.push(queuedWork);
350
+ }
351
+ }
352
+ const startIndex = dispatchMessageId === undefined
353
+ ? 0
354
+ : sameConversation.findIndex((message) => message.id === dispatchMessageId);
355
+ for (const remainingWork of remaining) {
356
+ Queue.unsafeOffer(this.inboundQueue, remainingWork);
357
+ }
358
+ if (startIndex < 0)
359
+ return [];
360
+ return sameConversation.slice(startIndex);
361
+ });
104
362
  }
105
363
  /**
106
364
  * Stateless enrichment helper. Falls back to `sender.id` if
107
365
  * `resolveAgentName` throws (e.g. service not yet connected).
108
366
  */
109
- static enrichMessage(service, message) {
367
+ static enrichMessage(service, messageOrMessages) {
110
368
  return Effect.gen(function* () {
369
+ const messages = Array.isArray(messageOrMessages)
370
+ ? [...messageOrMessages]
371
+ : [messageOrMessages];
372
+ const message = messages[0];
111
373
  const convMeta = service.getConversation(message.conversationId);
112
- const cachedName = service.getAgentName(message.senderId);
113
- // `resolveAgentName` has `never` in the error channel — it catches its
114
- // own transport failures and falls back to `senderId` internally, so
115
- // no explicit `catchAll` is needed here.
116
- const senderName = cachedName !== undefined
117
- ? cachedName
118
- : yield* service.resolveAgentName(message.senderId);
119
- const text = extractTextContent(message.parts);
374
+ const senderNameFor = (agentId) => {
375
+ const cachedName = service.getAgentName(agentId);
376
+ // `resolveAgentName` has `never` in the error channel — it catches its
377
+ // own transport failures and falls back to `senderId` internally, so
378
+ // no explicit `catchAll` is needed here.
379
+ return cachedName !== undefined
380
+ ? Effect.succeed(cachedName)
381
+ : service.resolveAgentName(agentId);
382
+ };
383
+ const senderName = yield* senderNameFor(message.senderId);
384
+ const coalesced = [];
385
+ for (const [index, m] of messages.entries()) {
386
+ const name = index === 0 ? senderName : yield* senderNameFor(m.senderId);
387
+ coalesced.push({
388
+ id: m.id,
389
+ sender: {
390
+ id: m.senderId,
391
+ name,
392
+ },
393
+ text: extractTextContent(m.parts),
394
+ createdAt: m.createdAt,
395
+ ...(m.replyToId ? { replyToId: m.replyToId } : {}),
396
+ });
397
+ }
398
+ const text = coalesced.length === 1
399
+ ? coalesced[0].text
400
+ : coalesced
401
+ .map((m, index) => index === 0
402
+ ? m.text
403
+ : `[queued message from ${m.sender.name} at ${m.createdAt}]\n${m.text}`)
404
+ .join("\n\n");
120
405
  const isFromMe = service.ownAgentId !== undefined &&
121
406
  message.senderId === service.ownAgentId;
122
407
  const conversationMeta = convMeta
@@ -153,6 +438,7 @@ export class MoltZapChannelCore {
153
438
  replyToId: message.replyToId,
154
439
  conversationMeta,
155
440
  contextBlocks,
441
+ ...(coalesced.length > 1 ? { coalescedMessages: coalesced } : {}),
156
442
  },
157
443
  commitContext: hasContext
158
444
  ? () => {
@@ -163,15 +449,18 @@ export class MoltZapChannelCore {
163
449
  };
164
450
  });
165
451
  }
166
- dispatchInboundEffect(message) {
452
+ dispatchInboundEffect(messages) {
167
453
  return Effect.gen(this, function* () {
168
454
  if (!this.inboundHandler)
169
455
  return;
170
- const { enriched, commitContext } = yield* MoltZapChannelCore.enrichMessage(this.service, message);
456
+ const { enriched, commitContext } = yield* MoltZapChannelCore.enrichMessage(this.service, messages);
457
+ const leased = this.activeDispatchLeaseId !== undefined
458
+ ? { ...enriched, dispatchLeaseId: this.activeDispatchLeaseId }
459
+ : enriched;
171
460
  // The handler is user code returning an Effect — yield it directly so
172
461
  // its typed error channel propagates to the consumer fiber, which logs
173
462
  // and continues. We await it inline to preserve arrival-order delivery.
174
- yield* this.inboundHandler(enriched);
463
+ yield* this.inboundHandler(leased);
175
464
  if (commitContext)
176
465
  commitContext();
177
466
  });
@@ -1 +1 @@
1
- {"version":3,"file":"channel-core.js","sourceRoot":"","sources":["../src/channel-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel-core.js","sourceRoot":"","sources":["../src/channel-core.ts"],"names":[],"mappings":"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"}