@moltzap/client 2026.511.0 → 2026.518.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.
Files changed (194) hide show
  1. package/dist/auth.d.ts +12 -6
  2. package/dist/auth.d.ts.map +1 -1
  3. package/dist/auth.js +67 -29
  4. package/dist/auth.js.map +1 -1
  5. package/dist/auth.test.js +113 -76
  6. package/dist/auth.test.js.map +1 -1
  7. package/dist/channel-core-context.test.d.ts +2 -0
  8. package/dist/channel-core-context.test.d.ts.map +1 -0
  9. package/dist/channel-core-context.test.js +334 -0
  10. package/dist/channel-core-context.test.js.map +1 -0
  11. package/dist/channel-core-dispatch.test.d.ts +2 -0
  12. package/dist/channel-core-dispatch.test.d.ts.map +1 -0
  13. package/dist/channel-core-dispatch.test.js +550 -0
  14. package/dist/channel-core-dispatch.test.js.map +1 -0
  15. package/dist/channel-core-enrichment.d.ts +8 -0
  16. package/dist/channel-core-enrichment.d.ts.map +1 -0
  17. package/dist/channel-core-enrichment.js +134 -0
  18. package/dist/channel-core-enrichment.js.map +1 -0
  19. package/dist/channel-core-errors.d.ts +20 -0
  20. package/dist/channel-core-errors.d.ts.map +1 -0
  21. package/dist/channel-core-errors.js +12 -0
  22. package/dist/channel-core-errors.js.map +1 -0
  23. package/dist/channel-core-test-support.d.ts +48 -0
  24. package/dist/channel-core-test-support.d.ts.map +1 -0
  25. package/dist/channel-core-test-support.js +111 -0
  26. package/dist/channel-core-test-support.js.map +1 -0
  27. package/dist/channel-core.d.ts +30 -7
  28. package/dist/channel-core.d.ts.map +1 -1
  29. package/dist/channel-core.js +214 -237
  30. package/dist/channel-core.js.map +1 -1
  31. package/dist/channel-core.test.js +216 -1082
  32. package/dist/channel-core.test.js.map +1 -1
  33. package/dist/cli/__tests__/cli-multi-agent.int.test.js +129 -23
  34. package/dist/cli/__tests__/cli-multi-agent.int.test.js.map +1 -1
  35. package/dist/cli/commands/conversations-v2.test.js +64 -54
  36. package/dist/cli/commands/conversations-v2.test.js.map +1 -1
  37. package/dist/cli/commands/conversations.d.ts +5 -5
  38. package/dist/cli/commands/conversations.d.ts.map +1 -1
  39. package/dist/cli/commands/conversations.js +43 -36
  40. package/dist/cli/commands/conversations.js.map +1 -1
  41. package/dist/cli/commands/messages.d.ts +4 -4
  42. package/dist/cli/commands/messages.d.ts.map +1 -1
  43. package/dist/cli/commands/messages.js +4 -4
  44. package/dist/cli/commands/messages.js.map +1 -1
  45. package/dist/cli/commands/messages.test.js +61 -49
  46. package/dist/cli/commands/messages.test.js.map +1 -1
  47. package/dist/cli/commands/ping.d.ts +0 -9
  48. package/dist/cli/commands/ping.d.ts.map +1 -1
  49. package/dist/cli/commands/ping.js +1 -1
  50. package/dist/cli/commands/ping.js.map +1 -1
  51. package/dist/cli/commands/presence.d.ts +1 -1
  52. package/dist/cli/commands/presence.js +1 -1
  53. package/dist/cli/commands/register.d.ts +2 -2
  54. package/dist/cli/commands/register.d.ts.map +1 -1
  55. package/dist/cli/commands/register.js +98 -77
  56. package/dist/cli/commands/register.js.map +1 -1
  57. package/dist/cli/commands/register.test.js +63 -39
  58. package/dist/cli/commands/register.test.js.map +1 -1
  59. package/dist/cli/commands/send.d.ts +6 -6
  60. package/dist/cli/commands/send.js +6 -6
  61. package/dist/cli/commands/send.test.js +32 -28
  62. package/dist/cli/commands/send.test.js.map +1 -1
  63. package/dist/cli/commands/status.d.ts.map +1 -1
  64. package/dist/cli/commands/status.js +3 -4
  65. package/dist/cli/commands/status.js.map +1 -1
  66. package/dist/cli/config.d.ts +0 -2
  67. package/dist/cli/config.d.ts.map +1 -1
  68. package/dist/cli/config.js +86 -76
  69. package/dist/cli/config.js.map +1 -1
  70. package/dist/cli/config.test.js +80 -42
  71. package/dist/cli/config.test.js.map +1 -1
  72. package/dist/cli/index.d.ts +1 -16
  73. package/dist/cli/index.d.ts.map +1 -1
  74. package/dist/cli/index.js +50 -113
  75. package/dist/cli/index.js.map +1 -1
  76. package/dist/cli/process-argv.d.ts +2 -0
  77. package/dist/cli/process-argv.d.ts.map +1 -0
  78. package/dist/cli/process-argv.js +2 -0
  79. package/dist/cli/process-argv.js.map +1 -0
  80. package/dist/cli/profile.d.ts +3 -10
  81. package/dist/cli/profile.d.ts.map +1 -1
  82. package/dist/cli/profile.js +105 -104
  83. package/dist/cli/profile.js.map +1 -1
  84. package/dist/cli/profile.test.js +338 -232
  85. package/dist/cli/profile.test.js.map +1 -1
  86. package/dist/cli/runtime.d.ts +5 -17
  87. package/dist/cli/runtime.d.ts.map +1 -1
  88. package/dist/cli/runtime.js +6 -59
  89. package/dist/cli/runtime.js.map +1 -1
  90. package/dist/cli/socket-client.d.ts +10 -15
  91. package/dist/cli/socket-client.d.ts.map +1 -1
  92. package/dist/cli/socket-client.js +74 -89
  93. package/dist/cli/socket-client.js.map +1 -1
  94. package/dist/cli/transport.d.ts +9 -5
  95. package/dist/cli/transport.d.ts.map +1 -1
  96. package/dist/cli/transport.js +45 -42
  97. package/dist/cli/transport.js.map +1 -1
  98. package/dist/cli/transport.test.js +227 -133
  99. package/dist/cli/transport.test.js.map +1 -1
  100. package/dist/index.d.ts +4 -1
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +3 -0
  103. package/dist/index.js.map +1 -1
  104. package/dist/local-daemon-rpc.d.ts +13 -0
  105. package/dist/local-daemon-rpc.d.ts.map +1 -0
  106. package/dist/local-daemon-rpc.js +17 -0
  107. package/dist/local-daemon-rpc.js.map +1 -0
  108. package/dist/local-paths.d.ts +7 -0
  109. package/dist/local-paths.d.ts.map +1 -0
  110. package/dist/local-paths.js +20 -0
  111. package/dist/local-paths.js.map +1 -0
  112. package/dist/runtime/close-info.d.ts +3 -12
  113. package/dist/runtime/close-info.d.ts.map +1 -1
  114. package/dist/runtime/close-info.js +28 -39
  115. package/dist/runtime/close-info.js.map +1 -1
  116. package/dist/runtime/close-info.test.js +77 -70
  117. package/dist/runtime/close-info.test.js.map +1 -1
  118. package/dist/runtime/errors.test.js +42 -28
  119. package/dist/runtime/errors.test.js.map +1 -1
  120. package/dist/runtime/frame.d.ts +4 -31
  121. package/dist/runtime/frame.d.ts.map +1 -1
  122. package/dist/runtime/frame.js +7 -116
  123. package/dist/runtime/frame.js.map +1 -1
  124. package/dist/runtime/frame.test.js +41 -54
  125. package/dist/runtime/frame.test.js.map +1 -1
  126. package/dist/runtime/index.d.ts +7 -0
  127. package/dist/runtime/index.d.ts.map +1 -1
  128. package/dist/runtime/index.js +7 -11
  129. package/dist/runtime/index.js.map +1 -1
  130. package/dist/runtime/local-history.d.ts +67 -0
  131. package/dist/runtime/local-history.d.ts.map +1 -0
  132. package/dist/runtime/local-history.js +77 -0
  133. package/dist/runtime/local-history.js.map +1 -0
  134. package/dist/runtime/local-service-commands.d.ts +19 -0
  135. package/dist/runtime/local-service-commands.d.ts.map +1 -1
  136. package/dist/runtime/local-service-commands.js +23 -0
  137. package/dist/runtime/local-service-commands.js.map +1 -1
  138. package/dist/runtime/local-socket-server.d.ts +20 -0
  139. package/dist/runtime/local-socket-server.d.ts.map +1 -0
  140. package/dist/runtime/local-socket-server.js +94 -0
  141. package/dist/runtime/local-socket-server.js.map +1 -0
  142. package/dist/runtime/refs.d.ts +1 -1
  143. package/dist/runtime/refs.js +1 -1
  144. package/dist/runtime/runtime.test.js +29 -21
  145. package/dist/runtime/runtime.test.js.map +1 -1
  146. package/dist/runtime/service-helpers.d.ts +32 -0
  147. package/dist/runtime/service-helpers.d.ts.map +1 -0
  148. package/dist/runtime/service-helpers.js +85 -0
  149. package/dist/runtime/service-helpers.js.map +1 -0
  150. package/dist/runtime/subscribers.d.ts +13 -17
  151. package/dist/runtime/subscribers.d.ts.map +1 -1
  152. package/dist/runtime/subscribers.js +37 -32
  153. package/dist/runtime/subscribers.js.map +1 -1
  154. package/dist/runtime/subscribers.test.js +139 -131
  155. package/dist/runtime/subscribers.test.js.map +1 -1
  156. package/dist/service-socket-path.test.d.ts +2 -0
  157. package/dist/service-socket-path.test.d.ts.map +1 -0
  158. package/dist/service-socket-path.test.js +87 -0
  159. package/dist/service-socket-path.test.js.map +1 -0
  160. package/dist/service.d.ts +46 -20
  161. package/dist/service.d.ts.map +1 -1
  162. package/dist/service.js +243 -340
  163. package/dist/service.js.map +1 -1
  164. package/dist/service.test.js +650 -571
  165. package/dist/service.test.js.map +1 -1
  166. package/dist/test/index.d.ts +30 -14
  167. package/dist/test/index.d.ts.map +1 -1
  168. package/dist/test/index.js +25 -21
  169. package/dist/test/index.js.map +1 -1
  170. package/dist/test-utils/channel-service-fixture.d.ts +1 -0
  171. package/dist/test-utils/channel-service-fixture.d.ts.map +1 -1
  172. package/dist/test-utils/channel-service-fixture.js +139 -98
  173. package/dist/test-utils/channel-service-fixture.js.map +1 -1
  174. package/dist/test-utils/conformance-adapter.d.ts.map +1 -1
  175. package/dist/test-utils/conformance-adapter.js +145 -124
  176. package/dist/test-utils/conformance-adapter.js.map +1 -1
  177. package/dist/test-utils/fake-service.d.ts.map +1 -1
  178. package/dist/test-utils/fake-service.js +3 -3
  179. package/dist/test-utils/fake-service.js.map +1 -1
  180. package/dist/test-utils/index.d.ts +25 -0
  181. package/dist/test-utils/index.d.ts.map +1 -1
  182. package/dist/test-utils/index.js +25 -8
  183. package/dist/test-utils/index.js.map +1 -1
  184. package/dist/ws-client-test-support.d.ts +180 -0
  185. package/dist/ws-client-test-support.d.ts.map +1 -0
  186. package/dist/ws-client-test-support.js +399 -0
  187. package/dist/ws-client-test-support.js.map +1 -0
  188. package/dist/ws-client.d.ts +59 -32
  189. package/dist/ws-client.d.ts.map +1 -1
  190. package/dist/ws-client.js +272 -321
  191. package/dist/ws-client.js.map +1 -1
  192. package/dist/ws-client.test.js +388 -800
  193. package/dist/ws-client.test.js.map +1 -1
  194. package/package.json +14 -10
@@ -0,0 +1,134 @@
1
+ import { Effect } from "effect";
2
+ function isMessageList(messageOrMessages) {
3
+ return Array.isArray(messageOrMessages);
4
+ }
5
+ function asMessageArray(messageOrMessages) {
6
+ return isMessageList(messageOrMessages)
7
+ ? [...messageOrMessages]
8
+ : [messageOrMessages];
9
+ }
10
+ function formatCoalescedText(coalesced) {
11
+ if (coalesced.length === 1)
12
+ return coalesced[0].text;
13
+ return coalesced
14
+ .map((message, index) => index === 0
15
+ ? message.text
16
+ : `[queued message from ${message.sender.name} at ${message.createdAt}]\n${message.text}`)
17
+ .join("\n\n");
18
+ }
19
+ function conversationMetaFrom(convMeta) {
20
+ if (!convMeta)
21
+ return undefined;
22
+ return {
23
+ type: convMeta.type === "group" ? "group" : "dm",
24
+ name: convMeta.name,
25
+ participants: convMeta.participants,
26
+ };
27
+ }
28
+ function extractTextContent(parts) {
29
+ return parts
30
+ .filter((part) => part.type === "text")
31
+ .map((part) => part.text)
32
+ .join("\n");
33
+ }
34
+ function resolveSenderName(service, agentId) {
35
+ const cachedName = service.getAgentName(agentId);
36
+ return cachedName !== undefined
37
+ ? Effect.succeed(cachedName)
38
+ : service.resolveAgentName(agentId);
39
+ }
40
+ function coalescedMessageFrom(message, senderName) {
41
+ return {
42
+ id: message.id,
43
+ sender: {
44
+ id: message.senderId,
45
+ name: senderName,
46
+ },
47
+ text: extractTextContent(message.parts),
48
+ createdAt: message.createdAt,
49
+ ...(message.replyToId ? { replyToId: message.replyToId } : {}),
50
+ };
51
+ }
52
+ function buildCoalescedMessages(service, messages, primarySenderName) {
53
+ return Effect.gen(function* () {
54
+ const primaryMessage = messages[0];
55
+ const coalesced = [coalescedMessageFrom(primaryMessage, primarySenderName)];
56
+ for (const message of messages.slice(1)) {
57
+ const senderName = yield* resolveSenderName(service, message.senderId);
58
+ coalesced.push(coalescedMessageFrom(message, senderName));
59
+ }
60
+ return coalesced;
61
+ });
62
+ }
63
+ function isFromOwnAgent(service, message) {
64
+ return (service.ownAgentId !== undefined && message.senderId === service.ownAgentId);
65
+ }
66
+ function collectContextBlocks(service, conversationId, conversationMeta) {
67
+ const contextBlocks = {};
68
+ if (conversationMeta?.type === "group") {
69
+ contextBlocks.groupMetadata = conversationMeta;
70
+ }
71
+ const { entries, commit: commitLegacy } = service.peekContextEntries(conversationId);
72
+ if (entries.length > 0) {
73
+ contextBlocks.crossConversation = entries;
74
+ }
75
+ const { messages: fullMessages, commit: commitFull } = service.peekFullMessages(conversationId);
76
+ if (fullMessages.length > 0) {
77
+ contextBlocks.crossConversationMessages = fullMessages;
78
+ }
79
+ const hasContext = entries.length > 0 || fullMessages.length > 0;
80
+ return {
81
+ conversationMeta,
82
+ contextBlocks,
83
+ ...(hasContext
84
+ ? {
85
+ commitContext: () => {
86
+ commitLegacy();
87
+ commitFull();
88
+ },
89
+ }
90
+ : {}),
91
+ };
92
+ }
93
+ function buildEnrichedInboundMessage({ service, message, senderName, coalesced, context, }) {
94
+ return {
95
+ id: message.id,
96
+ conversationId: message.conversationId,
97
+ sender: {
98
+ id: message.senderId,
99
+ name: senderName,
100
+ },
101
+ text: formatCoalescedText(coalesced),
102
+ isFromMe: isFromOwnAgent(service, message),
103
+ createdAt: message.createdAt,
104
+ contextBlocks: context.contextBlocks,
105
+ ...(message.replyToId ? { replyToId: message.replyToId } : {}),
106
+ ...(context.conversationMeta
107
+ ? { conversationMeta: context.conversationMeta }
108
+ : {}),
109
+ ...(coalesced.length > 1 ? { coalescedMessages: coalesced } : {}),
110
+ };
111
+ }
112
+ export function enrichChannelMessage(service, messageOrMessages) {
113
+ return Effect.gen(function* () {
114
+ const messages = asMessageArray(messageOrMessages);
115
+ const message = messages[0];
116
+ const senderName = yield* resolveSenderName(service, message.senderId);
117
+ const coalesced = yield* buildCoalescedMessages(service, messages, senderName);
118
+ const conversationMeta = conversationMetaFrom(service.getConversation(message.conversationId));
119
+ const context = collectContextBlocks(service, message.conversationId, conversationMeta);
120
+ return {
121
+ enriched: buildEnrichedInboundMessage({
122
+ service,
123
+ message,
124
+ senderName,
125
+ coalesced,
126
+ context,
127
+ }),
128
+ ...(context.commitContext
129
+ ? { commitContext: context.commitContext }
130
+ : {}),
131
+ };
132
+ }).pipe(Effect.withSpan("enrichChannelMessage"));
133
+ }
134
+ //# sourceMappingURL=channel-core-enrichment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-core-enrichment.js","sourceRoot":"","sources":["../src/channel-core-enrichment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ declare const DispatchAdmissionTimedOut_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
2
+ readonly _tag: "DispatchAdmissionTimedOut";
3
+ } & Readonly<A>;
4
+ export declare class DispatchAdmissionTimedOut extends DispatchAdmissionTimedOut_base<{
5
+ readonly timeoutMs: number;
6
+ }> {
7
+ get message(): string;
8
+ }
9
+ declare const DispatchLeaseExpired_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
10
+ readonly _tag: "DispatchLeaseExpired";
11
+ } & Readonly<A>;
12
+ export declare class DispatchLeaseExpired extends DispatchLeaseExpired_base<{
13
+ readonly messageId: string;
14
+ readonly conversationId: string;
15
+ readonly timeoutMs: number;
16
+ }> {
17
+ get message(): string;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=channel-core-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-core-errors.d.ts","sourceRoot":"","sources":["../src/channel-core-errors.ts"],"names":[],"mappings":";;;AAEA,qBAAa,yBAA0B,SAAQ,+BAE7C;IACA,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;;;;AAED,qBAAa,oBAAqB,SAAQ,0BAExC;IACA,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF"}
@@ -0,0 +1,12 @@
1
+ import { Data } from "effect";
2
+ export class DispatchAdmissionTimedOut extends Data.TaggedError("DispatchAdmissionTimedOut") {
3
+ get message() {
4
+ return `dispatch request timed out after ${this.timeoutMs}ms`;
5
+ }
6
+ }
7
+ export class DispatchLeaseExpired extends Data.TaggedError("DispatchLeaseExpired") {
8
+ get message() {
9
+ return `dispatch lease expired after ${this.timeoutMs}ms`;
10
+ }
11
+ }
12
+ //# sourceMappingURL=channel-core-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-core-errors.js","sourceRoot":"","sources":["../src/channel-core-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,OAAO,yBAA0B,SAAQ,IAAI,CAAC,WAAW,CAC7D,2BAA2B,CAG3B;IACA,IAAa,OAAO;QAClB,OAAO,oCAAoC,IAAI,CAAC,SAAS,IAAI,CAAC;IAChE,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CACxD,sBAAsB,CAKtB;IACA,IAAa,OAAO;QAClB,OAAO,gCAAgC,IAAI,CAAC,SAAS,IAAI,CAAC;IAC5D,CAAC;CACF"}
@@ -0,0 +1,48 @@
1
+ import { RpcServerError, type Message } from "@moltzap/protocol";
2
+ import { Effect } from "effect";
3
+ import { MoltZapChannelCore, type ChannelService, type CrossConversationEntry, type DispatchAdmissionDecision, type DispatchAdmissionRequest, type EnrichedInboundMessage, type ServiceRpcError } from "./index.js";
4
+ import { buildMessage, createFakeChannelService, flushDispatchChainEffect, type FakeChannelService } from "./test-utils/index.js";
5
+ export { MoltZapChannelCore, RpcServerError, buildMessage, createFakeChannelService, flushDispatchChainEffect, };
6
+ export type { ChannelService, CrossConversationEntry, EnrichedInboundMessage, FakeChannelService, Message, };
7
+ export declare const STUCK_MESSAGE_LEASE_TIMEOUT_MS = 50;
8
+ export declare const effectTest: import("@effect/vitest").Vitest.Tester<import("effect/TestServices").TestServices>;
9
+ export declare const ALICE_CACHED_NAME = "Alice (cached)";
10
+ export declare const ALICE_RESOLVED_NAME = "Alice (via resolve)";
11
+ export declare const MULTILINE_TEXT = "line one\nline two";
12
+ export declare const CAPTION_TEXT = "caption";
13
+ export declare const FIRST_TEXT = "first";
14
+ export declare const SECOND_TEXT = "second";
15
+ export declare const DENIED_LEASE_ID = "lease-den";
16
+ export declare const TIME_TO_VOTE_TEXT = "Time to vote";
17
+ export declare const AFTER_MARKER_TEXT = "after marker";
18
+ export declare const OLD_DISCUSSION_TEXT = "old discussion";
19
+ export declare const MARKER_LEASE_ID = "lease-marker";
20
+ export declare const DEVS_GROUP_NAME = "devs";
21
+ export declare const FIRST_VISIT_TEXT = "first visit";
22
+ declare const TestInboundHandlerError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
23
+ readonly _tag: "TestInboundHandlerError";
24
+ } & Readonly<A>;
25
+ export declare class TestInboundHandlerError extends TestInboundHandlerError_base<{
26
+ readonly message: string;
27
+ }> {
28
+ }
29
+ type LegacyAdmissionRequest = DispatchAdmissionRequest;
30
+ export declare function installAdmission(fake: FakeChannelService, decide: (request: LegacyAdmissionRequest) => Effect.Effect<DispatchAdmissionDecision, ServiceRpcError>): void;
31
+ export declare const agent: (label: string) => import("@moltzap/protocol").AgentId;
32
+ export declare const conversation: (label: string) => import("@moltzap/protocol").ConversationId;
33
+ export declare const message: (label: string) => import("@moltzap/protocol").MessageId;
34
+ export declare const participant: (agentLabel: string) => string;
35
+ export interface ChannelCoreFixture {
36
+ readonly fake: FakeChannelService;
37
+ readonly service: ChannelService;
38
+ readonly core: MoltZapChannelCore;
39
+ readonly inbound: EnrichedInboundMessage[];
40
+ }
41
+ export declare function createChannelCoreFixture(): ChannelCoreFixture;
42
+ export declare function customSetup(): {
43
+ fake: FakeChannelService;
44
+ core: MoltZapChannelCore;
45
+ received: EnrichedInboundMessage[];
46
+ };
47
+ export declare function forceResolveAgentNamePath(fake: FakeChannelService): void;
48
+ //# sourceMappingURL=channel-core-test-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-core-test-support.d.ts","sourceRoot":"","sources":["../src/channel-core-test-support.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAE7B,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,wBAAwB,EAIxB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,wBAAwB,GACzB,CAAC;AACF,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,OAAO,GACR,CAAC;AAEF,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,UAAU,oFAAkB,CAAC;AAC1C,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,cAAc,uBAAuB,CAAC;AACnD,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAC9C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;;;;AAE9C,qBAAa,uBAAwB,SAAQ,6BAE3C;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;AAEL,KAAK,sBAAsB,GAAG,wBAAwB,CAAC;AAmFvD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,CACN,OAAO,EAAE,sBAAsB,KAC5B,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,eAAe,CAAC,GAC7D,IAAI,CAgBN;AAED,eAAO,MAAM,KAAK,wDAAc,CAAC;AACjC,eAAO,MAAM,YAAY,+DAAqB,CAAC;AAC/C,eAAO,MAAM,OAAO,0DAAgB,CAAC;AACrC,eAAO,MAAM,WAAW,GAAI,YAAY,MAAM,KAAG,MACnB,CAAC;AAE/B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,CAAC;CAC5C;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAU7D;AAED,wBAAgB,WAAW,IAAI;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACpC,CAUA;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAIxE"}
@@ -0,0 +1,111 @@
1
+ import { it as effectIt } from "@effect/vitest";
2
+ import { RpcServerError } from "@moltzap/protocol";
3
+ import { Data, Effect } from "effect";
4
+ import { MoltZapChannelCore, } from "./index.js";
5
+ import { buildMessage, createFakeChannelService, flushDispatchChainEffect, testAgentId, testConversationId, testMessageId, } from "./test-utils/index.js";
6
+ export { MoltZapChannelCore, RpcServerError, buildMessage, createFakeChannelService, flushDispatchChainEffect, };
7
+ export const STUCK_MESSAGE_LEASE_TIMEOUT_MS = 50;
8
+ export const effectTest = effectIt.effect;
9
+ export const ALICE_CACHED_NAME = "Alice (cached)";
10
+ export const ALICE_RESOLVED_NAME = "Alice (via resolve)";
11
+ export const MULTILINE_TEXT = "line one\nline two";
12
+ export const CAPTION_TEXT = "caption";
13
+ export const FIRST_TEXT = "first";
14
+ export const SECOND_TEXT = "second";
15
+ export const DENIED_LEASE_ID = "lease-den";
16
+ export const TIME_TO_VOTE_TEXT = "Time to vote";
17
+ export const AFTER_MARKER_TEXT = "after marker";
18
+ export const OLD_DISCUSSION_TEXT = "old discussion";
19
+ export const MARKER_LEASE_ID = "lease-marker";
20
+ export const DEVS_GROUP_NAME = "devs";
21
+ export const FIRST_VISIT_TEXT = "first visit";
22
+ export class TestInboundHandlerError extends Data.TaggedError("TestInboundHandlerError") {
23
+ }
24
+ const FALLBACK_RECEIVED_AT = "1970-01-01T00:00:00.000Z";
25
+ const LEASE_MOCK_PREFIX = "lease-mock";
26
+ const DISPATCH_MOCK_PREFIX = "dispatch-mock";
27
+ const legacyAdmissionRequest = (params) => ({
28
+ message: {
29
+ id: params.messageId,
30
+ conversationId: params.conversationId,
31
+ senderId: params.senderAgentId,
32
+ parts: params.parts ?? [],
33
+ createdAt: params.receivedAt ?? FALLBACK_RECEIVED_AT,
34
+ },
35
+ conversationId: params.conversationId,
36
+ senderAgentId: params.senderAgentId,
37
+ attempt: params.attempt ?? 0,
38
+ receivedAt: params.receivedAt ?? FALLBACK_RECEIVED_AT,
39
+ clock: params.clock,
40
+ pending: (params.pending ?? []),
41
+ });
42
+ const grantVerdict = (decision) => ({
43
+ decision: "grant",
44
+ ...(decision.leaseId !== undefined ? { leaseId: decision.leaseId } : {}),
45
+ ...(decision.leaseTimeoutMs !== undefined
46
+ ? { leaseTimeoutMs: decision.leaseTimeoutMs }
47
+ : {}),
48
+ ...(decision.dispatchMessageId !== undefined
49
+ ? { dispatchMessageId: decision.dispatchMessageId }
50
+ : {}),
51
+ });
52
+ const holdOrDenyVerdict = (decision) => ({
53
+ decision: decision._tag,
54
+ ...(decision.reason !== undefined ? { reason: decision.reason } : {}),
55
+ });
56
+ const releaseVerdict = (decision) => {
57
+ if (decision._tag === "grant") {
58
+ return grantVerdict(decision);
59
+ }
60
+ return holdOrDenyVerdict(decision);
61
+ };
62
+ const releaseFrame = (decision, leaseId, dispatchId) => ({
63
+ dispatchId,
64
+ leaseId,
65
+ verdict: releaseVerdict(decision),
66
+ ...(decision._tag === "grant" && decision.leaseTimeoutMs !== undefined
67
+ ? { leaseTimeoutMs: decision.leaseTimeoutMs }
68
+ : {}),
69
+ });
70
+ const leaseIdForDecision = (decision, counter) => decision._tag === "grant" && decision.leaseId !== undefined
71
+ ? decision.leaseId
72
+ : LEASE_MOCK_PREFIX + "-" + counter.toString();
73
+ const dispatchIdForCounter = (counter) => DISPATCH_MOCK_PREFIX + "-" + counter.toString();
74
+ export function installAdmission(fake, decide) {
75
+ let counter = 0;
76
+ fake.service.requestDispatch = (params) => decide(legacyAdmissionRequest(params)).pipe(Effect.map((decision) => {
77
+ counter += 1;
78
+ const leaseId = leaseIdForDecision(decision, counter);
79
+ const dispatchId = dispatchIdForCounter(counter);
80
+ queueMicrotask(() => {
81
+ fake.emit.dispatchRelease(releaseFrame(decision, leaseId, dispatchId));
82
+ });
83
+ return { leaseId, dispatchId };
84
+ }));
85
+ }
86
+ export const agent = testAgentId;
87
+ export const conversation = testConversationId;
88
+ export const message = testMessageId;
89
+ export const participant = (agentLabel) => "agent:" + agent(agentLabel);
90
+ export function createChannelCoreFixture() {
91
+ const fake = createFakeChannelService({ ownAgentId: "agent-self" });
92
+ const inbound = [];
93
+ const core = new MoltZapChannelCore({ service: fake.service });
94
+ core.onInbound((msg) => Effect.sync(() => {
95
+ inbound.push(msg);
96
+ }));
97
+ return { fake, service: fake.service, core, inbound };
98
+ }
99
+ export function customSetup() {
100
+ const fake = createFakeChannelService({ ownAgentId: "agent-self" });
101
+ const received = [];
102
+ const core = new MoltZapChannelCore({ service: fake.service });
103
+ core.onInbound((m) => Effect.sync(() => {
104
+ received.push(m);
105
+ }));
106
+ return { fake, core, received };
107
+ }
108
+ export function forceResolveAgentNamePath(fake) {
109
+ fake.service.getAgentName = () => undefined;
110
+ }
111
+ //# sourceMappingURL=channel-core-test-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-core-test-support.js","sourceRoot":"","sources":["../src/channel-core-test-support.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@
4
4
  import { Effect } from "effect";
5
5
  import type { LogicalClock, Message } from "@moltzap/protocol";
6
6
  import type { CrossConversationEntry, CrossConvMessage, ServiceRpcError } from "./service.js";
7
- import type { WsClientLogger } from "./ws-client.js";
8
7
  export interface EnrichedSender {
9
8
  id: string;
10
9
  name: string;
@@ -77,7 +76,7 @@ export type DispatchAdmissionDecision = {
77
76
  };
78
77
  /**
79
78
  * Server → recipient `dispatch/release` notification payload (the
80
- * verdict). Mirrors `NotificationParamsOf<typeof DispatchRelease>` from
79
+ * verdict). Mirrors `NotificationParamsOf&lt;typeof DispatchRelease>` from
81
80
  * the protocol, kept structurally typed here so this module does not
82
81
  * need a direct protocol descriptor import (the channel core stays
83
82
  * descriptor-free; the wire shape is asserted by the service module).
@@ -115,6 +114,7 @@ export interface ChannelService {
115
114
  connect(): Effect.Effect<unknown, ServiceRpcError>;
116
115
  close(): void;
117
116
  send(conversationId: string, text: string, opts?: {
117
+ replyTo?: string;
118
118
  dispatchLeaseId?: string;
119
119
  }): Effect.Effect<void, ServiceRpcError>;
120
120
  isConversationArchived?(conversationId: string): boolean;
@@ -141,7 +141,7 @@ export interface ChannelService {
141
141
  * `{leaseId, dispatchId}` ack. The verdict arrives asynchronously
142
142
  * via the `dispatchRelease` event.
143
143
  *
144
- * The argument shape mirrors `ParamsOf<DispatchRequest>` from the
144
+ * The argument shape mirrors `ParamsOf&lt;DispatchRequest>` from the
145
145
  * protocol (the channel core does not depend on the protocol
146
146
  * descriptor, hence the structural shape duplicated here).
147
147
  *
@@ -165,7 +165,6 @@ export interface ChannelService {
165
165
  }
166
166
  export interface ChannelCoreOptions {
167
167
  service: ChannelService;
168
- logger?: WsClientLogger;
169
168
  dispatchAdmissionTimeoutMs?: number;
170
169
  }
171
170
  /**
@@ -185,7 +184,6 @@ export type InboundHandler<E = unknown> = (msg: EnrichedInboundMessage) => Effec
185
184
  */
186
185
  export declare class MoltZapChannelCore {
187
186
  private readonly service;
188
- private readonly logger;
189
187
  private readonly dispatchAdmissionTimeoutMs;
190
188
  private connected;
191
189
  private inboundHandler;
@@ -216,13 +214,21 @@ export declare class MoltZapChannelCore {
216
214
  private readonly closedConversationIds;
217
215
  private readonly logicalClocks;
218
216
  private readonly parkedByConversation;
219
- /** Inbound messages enqueue synchronously; a single forked consumer fiber
220
- * serialises delivery so handlers execute one-at-a-time in arrival order. */
217
+ /**
218
+ * Inbound messages enqueue synchronously; a single forked consumer fiber
219
+ * serialises delivery so handlers execute one-at-a-time in arrival order.
220
+ */
221
221
  private readonly inboundQueue;
222
222
  private readonly consumerFiber;
223
223
  private disconnectHandlers;
224
224
  private reconnectHandlers;
225
225
  constructor(opts: ChannelCoreOptions);
226
+ private registerMessageListener;
227
+ private startConsumerFiber;
228
+ private logInboundFailure;
229
+ private registerConnectionListeners;
230
+ private registerConversationLifecycleListeners;
231
+ private registerDispatchReleaseListener;
226
232
  /**
227
233
  * Record an incoming `dispatchRelease` frame. If a matching
228
234
  * parking Deferred is registered, settle it inline; otherwise
@@ -282,7 +288,24 @@ export declare class MoltZapChannelCore {
282
288
  */
283
289
  private awaitDispatchRelease;
284
290
  private projectVerdict;
291
+ private projectGrantVerdict;
292
+ private static denyDecision;
293
+ private static holdDecision;
285
294
  private dispatchInboundWork;
295
+ private handleDispatchDecision;
296
+ private dispatchGrantedWork;
297
+ private messagesForGrantedDispatch;
298
+ private runGrantedDispatch;
299
+ private dispatchWithLease;
300
+ private static leaseTimeoutMs;
301
+ private handleDispatchFailure;
302
+ private holdDispatchWork;
303
+ private logClosedDispatchDrop;
304
+ private logDispatchTargetUnavailable;
305
+ private logDispatchStart;
306
+ private logDispatchLeaseExpired;
307
+ private logDispatchCompleted;
308
+ private logDeniedDispatch;
286
309
  private pendingDispatchSnapshot;
287
310
  private takeCoalescedConversationMessages;
288
311
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"channel-core.d.ts","sourceRoot":"","sources":["../src/channel-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel-core.d.ts","sourceRoot":"","sources":["../src/channel-core.ts"],"names":[],"mappings":"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"}