@moltzap/client 2026.503.3 → 2026.504.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 (227) hide show
  1. package/dist/auth.d.ts +10 -1
  2. package/dist/auth.d.ts.map +1 -1
  3. package/dist/auth.js +8 -5
  4. package/dist/auth.js.map +1 -1
  5. package/dist/channel-core.d.ts +1 -4
  6. package/dist/channel-core.d.ts.map +1 -1
  7. package/dist/channel-core.js +0 -9
  8. package/dist/channel-core.js.map +1 -1
  9. package/dist/channel-core.test.js +90 -71
  10. package/dist/channel-core.test.js.map +1 -1
  11. package/dist/cli/commands/agents.d.ts.map +1 -1
  12. package/dist/cli/commands/agents.js +5 -3
  13. package/dist/cli/commands/agents.js.map +1 -1
  14. package/dist/cli/commands/apps.d.ts +9 -27
  15. package/dist/cli/commands/apps.d.ts.map +1 -1
  16. package/dist/cli/commands/apps.js +36 -57
  17. package/dist/cli/commands/apps.js.map +1 -1
  18. package/dist/cli/commands/apps.test.js +63 -75
  19. package/dist/cli/commands/apps.test.js.map +1 -1
  20. package/dist/cli/commands/contacts.d.ts +1 -5
  21. package/dist/cli/commands/contacts.d.ts.map +1 -1
  22. package/dist/cli/commands/contacts.js +14 -27
  23. package/dist/cli/commands/contacts.js.map +1 -1
  24. package/dist/cli/commands/conversations-v2.test.js +34 -29
  25. package/dist/cli/commands/conversations-v2.test.js.map +1 -1
  26. package/dist/cli/commands/conversations.d.ts +7 -3
  27. package/dist/cli/commands/conversations.d.ts.map +1 -1
  28. package/dist/cli/commands/conversations.js +63 -48
  29. package/dist/cli/commands/conversations.js.map +1 -1
  30. package/dist/cli/commands/messages.d.ts +7 -3
  31. package/dist/cli/commands/messages.d.ts.map +1 -1
  32. package/dist/cli/commands/messages.js +13 -15
  33. package/dist/cli/commands/messages.js.map +1 -1
  34. package/dist/cli/commands/messages.test.js +30 -31
  35. package/dist/cli/commands/messages.test.js.map +1 -1
  36. package/dist/cli/commands/ping.d.ts +9 -0
  37. package/dist/cli/commands/ping.d.ts.map +1 -1
  38. package/dist/cli/commands/ping.js +17 -4
  39. package/dist/cli/commands/ping.js.map +1 -1
  40. package/dist/cli/commands/presence.d.ts.map +1 -1
  41. package/dist/cli/commands/presence.js +6 -4
  42. package/dist/cli/commands/presence.js.map +1 -1
  43. package/dist/cli/commands/register.d.ts.map +1 -1
  44. package/dist/cli/commands/register.js +2 -1
  45. package/dist/cli/commands/register.js.map +1 -1
  46. package/dist/cli/commands/send.d.ts.map +1 -1
  47. package/dist/cli/commands/send.js +22 -11
  48. package/dist/cli/commands/send.js.map +1 -1
  49. package/dist/cli/commands/send.test.js +12 -9
  50. package/dist/cli/commands/send.test.js.map +1 -1
  51. package/dist/cli/commands/status.js +2 -2
  52. package/dist/cli/commands/status.js.map +1 -1
  53. package/dist/cli/commands/test-transport.d.ts +10 -0
  54. package/dist/cli/commands/test-transport.d.ts.map +1 -0
  55. package/dist/cli/commands/test-transport.js +29 -0
  56. package/dist/cli/commands/test-transport.js.map +1 -0
  57. package/dist/cli/commands/whoami.d.ts.map +1 -1
  58. package/dist/cli/commands/whoami.js +5 -1
  59. package/dist/cli/commands/whoami.js.map +1 -1
  60. package/dist/cli/config.d.ts +42 -6
  61. package/dist/cli/config.d.ts.map +1 -1
  62. package/dist/cli/config.js +91 -27
  63. package/dist/cli/config.js.map +1 -1
  64. package/dist/cli/http-client.d.ts +11 -1
  65. package/dist/cli/http-client.d.ts.map +1 -1
  66. package/dist/cli/http-client.js +13 -4
  67. package/dist/cli/http-client.js.map +1 -1
  68. package/dist/cli/index.d.ts.map +1 -1
  69. package/dist/cli/index.js +2 -3
  70. package/dist/cli/index.js.map +1 -1
  71. package/dist/cli/profile.d.ts +3 -4
  72. package/dist/cli/profile.d.ts.map +1 -1
  73. package/dist/cli/profile.js +42 -29
  74. package/dist/cli/profile.js.map +1 -1
  75. package/dist/cli/runtime.d.ts.map +1 -1
  76. package/dist/cli/runtime.js +9 -4
  77. package/dist/cli/runtime.js.map +1 -1
  78. package/dist/cli/socket-client.d.ts +29 -4
  79. package/dist/cli/socket-client.d.ts.map +1 -1
  80. package/dist/cli/socket-client.js +52 -21
  81. package/dist/cli/socket-client.js.map +1 -1
  82. package/dist/cli/transport.d.ts +6 -9
  83. package/dist/cli/transport.d.ts.map +1 -1
  84. package/dist/cli/transport.js +47 -37
  85. package/dist/cli/transport.js.map +1 -1
  86. package/dist/cli/transport.test.js +19 -16
  87. package/dist/cli/transport.test.js.map +1 -1
  88. package/dist/index.d.ts +2 -3
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +1 -1
  91. package/dist/index.js.map +1 -1
  92. package/dist/internal/__tests__/app-callback-partition-key.test.d.ts +2 -0
  93. package/dist/internal/__tests__/app-callback-partition-key.test.d.ts.map +1 -0
  94. package/dist/internal/__tests__/app-callback-partition-key.test.js +33 -0
  95. package/dist/internal/__tests__/app-callback-partition-key.test.js.map +1 -0
  96. package/dist/internal/__tests__/app-callback-partition-worker.test.d.ts +2 -0
  97. package/dist/internal/__tests__/app-callback-partition-worker.test.d.ts.map +1 -0
  98. package/dist/internal/__tests__/{s2c-partition-worker.test.js → app-callback-partition-worker.test.js} +6 -8
  99. package/dist/internal/__tests__/app-callback-partition-worker.test.js.map +1 -0
  100. package/dist/internal/__tests__/app-callback-partitioned-dispatcher-real-ws.test.d.ts +2 -0
  101. package/dist/internal/__tests__/app-callback-partitioned-dispatcher-real-ws.test.d.ts.map +1 -0
  102. package/dist/internal/__tests__/{s2c-partitioned-dispatcher-real-ws.test.js → app-callback-partitioned-dispatcher-real-ws.test.js} +69 -93
  103. package/dist/internal/__tests__/app-callback-partitioned-dispatcher-real-ws.test.js.map +1 -0
  104. package/dist/internal/__tests__/app-callback-partitioned-dispatcher.test.d.ts +2 -0
  105. package/dist/internal/__tests__/app-callback-partitioned-dispatcher.test.d.ts.map +1 -0
  106. package/dist/internal/__tests__/{s2c-partitioned-dispatcher.test.js → app-callback-partitioned-dispatcher.test.js} +36 -69
  107. package/dist/internal/__tests__/app-callback-partitioned-dispatcher.test.js.map +1 -0
  108. package/dist/internal/__tests__/app-callback-test-requests.d.ts +58 -0
  109. package/dist/internal/__tests__/app-callback-test-requests.d.ts.map +1 -0
  110. package/dist/internal/__tests__/app-callback-test-requests.js +124 -0
  111. package/dist/internal/__tests__/app-callback-test-requests.js.map +1 -0
  112. package/dist/internal/{s2c-dispatcher-errors.d.ts → app-callback-dispatcher-errors.d.ts} +5 -21
  113. package/dist/internal/app-callback-dispatcher-errors.d.ts.map +1 -0
  114. package/dist/internal/{s2c-dispatcher-errors.js → app-callback-dispatcher-errors.js} +3 -13
  115. package/dist/internal/app-callback-dispatcher-errors.js.map +1 -0
  116. package/dist/internal/app-callback-partition-key.d.ts +68 -0
  117. package/dist/internal/app-callback-partition-key.d.ts.map +1 -0
  118. package/dist/internal/app-callback-partition-key.js +90 -0
  119. package/dist/internal/app-callback-partition-key.js.map +1 -0
  120. package/dist/internal/{s2c-partition-worker.d.ts → app-callback-partition-worker.d.ts} +5 -5
  121. package/dist/internal/app-callback-partition-worker.d.ts.map +1 -0
  122. package/dist/internal/{s2c-partition-worker.js → app-callback-partition-worker.js} +5 -5
  123. package/dist/internal/app-callback-partition-worker.js.map +1 -0
  124. package/dist/internal/{s2c-partitioned-dispatcher.d.ts → app-callback-partitioned-dispatcher.d.ts} +9 -10
  125. package/dist/internal/app-callback-partitioned-dispatcher.d.ts.map +1 -0
  126. package/dist/internal/{s2c-partitioned-dispatcher.js → app-callback-partitioned-dispatcher.js} +13 -21
  127. package/dist/internal/app-callback-partitioned-dispatcher.js.map +1 -0
  128. package/dist/runtime/close-info.d.ts +15 -16
  129. package/dist/runtime/close-info.d.ts.map +1 -1
  130. package/dist/runtime/close-info.js +12 -8
  131. package/dist/runtime/close-info.js.map +1 -1
  132. package/dist/runtime/errors.d.ts +2 -28
  133. package/dist/runtime/errors.d.ts.map +1 -1
  134. package/dist/runtime/errors.js +0 -9
  135. package/dist/runtime/errors.js.map +1 -1
  136. package/dist/runtime/errors.test.js +4 -3
  137. package/dist/runtime/errors.test.js.map +1 -1
  138. package/dist/runtime/frame.d.ts +17 -18
  139. package/dist/runtime/frame.d.ts.map +1 -1
  140. package/dist/runtime/frame.js +86 -31
  141. package/dist/runtime/frame.js.map +1 -1
  142. package/dist/runtime/frame.test.js +15 -11
  143. package/dist/runtime/frame.test.js.map +1 -1
  144. package/dist/runtime/index.d.ts +1 -1
  145. package/dist/runtime/index.d.ts.map +1 -1
  146. package/dist/runtime/index.js +1 -1
  147. package/dist/runtime/index.js.map +1 -1
  148. package/dist/runtime/local-service-commands.d.ts +7 -0
  149. package/dist/runtime/local-service-commands.d.ts.map +1 -0
  150. package/dist/runtime/local-service-commands.js +6 -0
  151. package/dist/runtime/local-service-commands.js.map +1 -0
  152. package/dist/runtime/runtime.test.js +3 -3
  153. package/dist/runtime/runtime.test.js.map +1 -1
  154. package/dist/runtime/subscribers.d.ts +37 -33
  155. package/dist/runtime/subscribers.d.ts.map +1 -1
  156. package/dist/runtime/subscribers.js +22 -21
  157. package/dist/runtime/subscribers.js.map +1 -1
  158. package/dist/runtime/subscribers.test.js +50 -31
  159. package/dist/runtime/subscribers.test.js.map +1 -1
  160. package/dist/service.d.ts +24 -39
  161. package/dist/service.d.ts.map +1 -1
  162. package/dist/service.js +190 -171
  163. package/dist/service.js.map +1 -1
  164. package/dist/service.test.js +117 -175
  165. package/dist/service.test.js.map +1 -1
  166. package/dist/test/index.d.ts +9 -1
  167. package/dist/test/index.d.ts.map +1 -1
  168. package/dist/test/index.js +14 -3
  169. package/dist/test/index.js.map +1 -1
  170. package/dist/test-utils/channel-service-fixture.d.ts +1 -2
  171. package/dist/test-utils/channel-service-fixture.d.ts.map +1 -1
  172. package/dist/test-utils/channel-service-fixture.js +28 -20
  173. package/dist/test-utils/channel-service-fixture.js.map +1 -1
  174. package/dist/test-utils/conformance-adapter.d.ts +2 -2
  175. package/dist/test-utils/conformance-adapter.d.ts.map +1 -1
  176. package/dist/test-utils/conformance-adapter.js +78 -54
  177. package/dist/test-utils/conformance-adapter.js.map +1 -1
  178. package/dist/test-utils/fake-service.d.ts +14 -39
  179. package/dist/test-utils/fake-service.d.ts.map +1 -1
  180. package/dist/test-utils/fake-service.js +33 -39
  181. package/dist/test-utils/fake-service.js.map +1 -1
  182. package/dist/test-utils/ids.d.ts +9 -0
  183. package/dist/test-utils/ids.d.ts.map +1 -0
  184. package/dist/test-utils/ids.js +52 -0
  185. package/dist/test-utils/ids.js.map +1 -0
  186. package/dist/test-utils/index.d.ts +10 -2
  187. package/dist/test-utils/index.d.ts.map +1 -1
  188. package/dist/test-utils/index.js +25 -9
  189. package/dist/test-utils/index.js.map +1 -1
  190. package/dist/ws-client.d.ts +59 -64
  191. package/dist/ws-client.d.ts.map +1 -1
  192. package/dist/ws-client.js +228 -175
  193. package/dist/ws-client.js.map +1 -1
  194. package/dist/ws-client.test.js +190 -176
  195. package/dist/ws-client.test.js.map +1 -1
  196. package/package.json +3 -3
  197. package/dist/cli/commands/permissions.d.ts +0 -66
  198. package/dist/cli/commands/permissions.d.ts.map +0 -1
  199. package/dist/cli/commands/permissions.js +0 -101
  200. package/dist/cli/commands/permissions.js.map +0 -1
  201. package/dist/cli/commands/permissions.test.d.ts +0 -2
  202. package/dist/cli/commands/permissions.test.d.ts.map +0 -1
  203. package/dist/cli/commands/permissions.test.js +0 -126
  204. package/dist/cli/commands/permissions.test.js.map +0 -1
  205. package/dist/internal/__tests__/s2c-partition-key.test.d.ts +0 -2
  206. package/dist/internal/__tests__/s2c-partition-key.test.d.ts.map +0 -1
  207. package/dist/internal/__tests__/s2c-partition-key.test.js +0 -230
  208. package/dist/internal/__tests__/s2c-partition-key.test.js.map +0 -1
  209. package/dist/internal/__tests__/s2c-partition-worker.test.d.ts +0 -2
  210. package/dist/internal/__tests__/s2c-partition-worker.test.d.ts.map +0 -1
  211. package/dist/internal/__tests__/s2c-partition-worker.test.js.map +0 -1
  212. package/dist/internal/__tests__/s2c-partitioned-dispatcher-real-ws.test.d.ts +0 -2
  213. package/dist/internal/__tests__/s2c-partitioned-dispatcher-real-ws.test.d.ts.map +0 -1
  214. package/dist/internal/__tests__/s2c-partitioned-dispatcher-real-ws.test.js.map +0 -1
  215. package/dist/internal/__tests__/s2c-partitioned-dispatcher.test.d.ts +0 -2
  216. package/dist/internal/__tests__/s2c-partitioned-dispatcher.test.d.ts.map +0 -1
  217. package/dist/internal/__tests__/s2c-partitioned-dispatcher.test.js.map +0 -1
  218. package/dist/internal/s2c-dispatcher-errors.d.ts.map +0 -1
  219. package/dist/internal/s2c-dispatcher-errors.js.map +0 -1
  220. package/dist/internal/s2c-partition-key.d.ts +0 -71
  221. package/dist/internal/s2c-partition-key.d.ts.map +0 -1
  222. package/dist/internal/s2c-partition-key.js +0 -140
  223. package/dist/internal/s2c-partition-key.js.map +0 -1
  224. package/dist/internal/s2c-partition-worker.d.ts.map +0 -1
  225. package/dist/internal/s2c-partition-worker.js.map +0 -1
  226. package/dist/internal/s2c-partitioned-dispatcher.d.ts.map +0 -1
  227. package/dist/internal/s2c-partitioned-dispatcher.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Unit tests for the partitioned s2c dispatcher.
2
+ * Unit tests for the partitioned appCallback dispatcher.
3
3
  *
4
4
  * Spec: moltzap#356 §8 (test plan, file 3).
5
5
  *
@@ -9,25 +9,9 @@
9
9
  */
10
10
  import { describe, it, expect } from "vitest";
11
11
  import { Deferred, Effect, Exit, Ref, Scope } from "effect";
12
- import { DEFAULT_PARTITIONED_DISPATCHER_CONFIG, makePartitionedDispatcher, } from "../s2c-partitioned-dispatcher.js";
13
- const SESSION_A = "11111111-1111-4111-8111-111111111111";
14
- const CONV_X = "conv-X";
15
- const CONV_Y = "conv-Y";
16
- const reqBeforeDispatch = (id, sessionId = SESSION_A, conv = CONV_X) => ({
17
- id,
18
- method: "apps/onBeforeDispatch",
19
- params: { sessionId, conversationId: conv },
20
- });
21
- const reqBeforeMessageDelivery = (id, sessionId = SESSION_A, conv = CONV_X) => ({
22
- id,
23
- method: "apps/onBeforeMessageDelivery",
24
- params: { sessionId, conversationId: conv },
25
- });
26
- const reqLifecycle = (id, method = "apps/onJoin", sessionId = SESSION_A) => ({
27
- id,
28
- method,
29
- params: { sessionId },
30
- });
12
+ import { DEFAULT_PARTITIONED_DISPATCHER_CONFIG, makePartitionedDispatcher, } from "../app-callback-partitioned-dispatcher.js";
13
+ import { AppsOnBeforeDispatch, AppsOnBeforeMessageDelivery, } from "@moltzap/protocol";
14
+ import { beforeDispatch, beforeMessageDelivery, conversationIdForIndex, CONV_X, CONV_Y, CONV_Z, onJoin, SESSION_A, } from "./app-callback-test-requests.js";
31
15
  /** Drive a body under a fresh CloseableScope; close on exit. */
32
16
  function withScope(body) {
33
17
  return Effect.gen(function* () {
@@ -52,9 +36,9 @@ describe("makePartitionedDispatcher — routing", () => {
52
36
  }),
53
37
  scope,
54
38
  });
55
- yield* dispatcher.offer(reqBeforeDispatch("rpc-1"));
56
- yield* dispatcher.offer(reqBeforeDispatch("rpc-2"));
57
- yield* dispatcher.offer(reqBeforeDispatch("rpc-3"));
39
+ yield* dispatcher.offer(beforeDispatch("rpc-1"));
40
+ yield* dispatcher.offer(beforeDispatch("rpc-2"));
41
+ yield* dispatcher.offer(beforeDispatch("rpc-3"));
58
42
  yield* Deferred.await(allDone);
59
43
  return yield* Ref.get(order);
60
44
  })));
@@ -80,8 +64,8 @@ describe("makePartitionedDispatcher — routing", () => {
80
64
  handle,
81
65
  scope,
82
66
  });
83
- yield* dispatcher.offer(reqBeforeDispatch("rpc-A-park", SESSION_A, CONV_X));
84
- yield* dispatcher.offer(reqBeforeDispatch("rpc-B-go", SESSION_A, CONV_Y));
67
+ yield* dispatcher.offer(beforeDispatch("rpc-A-park", SESSION_A, CONV_X));
68
+ yield* dispatcher.offer(beforeDispatch("rpc-B-go", SESSION_A, CONV_Y));
85
69
  // bDone fires only if rpc-B ran without being blocked by
86
70
  // rpc-A's parked Deferred.
87
71
  yield* Deferred.await(bDone);
@@ -92,23 +76,6 @@ describe("makePartitionedDispatcher — routing", () => {
92
76
  })));
93
77
  expect(result).toBe("concurrent");
94
78
  });
95
- it("offer with malformed params returns MalformedPartitionKeyError", async () => {
96
- const verdict = await Effect.runPromise(withScope((scope) => Effect.gen(function* () {
97
- const dispatcher = yield* makePartitionedDispatcher({
98
- handle: () => Effect.void,
99
- scope,
100
- });
101
- return yield* Effect.either(dispatcher.offer({
102
- id: "rpc-x",
103
- method: "apps/onBeforeDispatch",
104
- params: { /* sessionId missing */ conversationId: CONV_X },
105
- }));
106
- })));
107
- expect(verdict._tag).toBe("Left");
108
- if (verdict._tag === "Left") {
109
- expect(verdict.left._tag).toBe("MalformedPartitionKeyError");
110
- }
111
- });
112
79
  });
113
80
  describe("makePartitionedDispatcher — soft cap", () => {
114
81
  it("allocates up to maxPartitions partitions", async () => {
@@ -122,7 +89,7 @@ describe("makePartitionedDispatcher — soft cap", () => {
122
89
  // Distinct conversationIds → distinct keys → distinct
123
90
  // partitions, all parked on `release`.
124
91
  for (let i = 0; i < 4; i++) {
125
- yield* dispatcher.offer(reqBeforeDispatch(`rpc-${i}`, SESSION_A, `conv-${i}`));
92
+ yield* dispatcher.offer(beforeDispatch(`rpc-${i}`, SESSION_A, conversationIdForIndex(i)));
126
93
  }
127
94
  const stats = yield* dispatcher.stats;
128
95
  yield* Deferred.succeed(release, undefined);
@@ -138,10 +105,10 @@ describe("makePartitionedDispatcher — soft cap", () => {
138
105
  scope,
139
106
  config: { maxPartitions: 2 },
140
107
  });
141
- yield* dispatcher.offer(reqBeforeDispatch("rpc-1", SESSION_A, "conv-A"));
142
- yield* dispatcher.offer(reqBeforeDispatch("rpc-2", SESSION_A, "conv-B"));
108
+ yield* dispatcher.offer(beforeDispatch("rpc-1", SESSION_A, CONV_X));
109
+ yield* dispatcher.offer(beforeDispatch("rpc-2", SESSION_A, CONV_Y));
143
110
  // Third distinct key → should fail with PartitionLimitError.
144
- const overflow = yield* Effect.either(dispatcher.offer(reqBeforeDispatch("rpc-3", SESSION_A, "conv-C")));
111
+ const overflow = yield* Effect.either(dispatcher.offer(beforeDispatch("rpc-3", SESSION_A, CONV_Z)));
145
112
  yield* Deferred.succeed(release, undefined);
146
113
  return overflow;
147
114
  })));
@@ -160,7 +127,7 @@ describe("makePartitionedDispatcher — backpressure", () => {
160
127
  const bDone = yield* Deferred.make();
161
128
  const dispatcher = yield* makePartitionedDispatcher({
162
129
  handle: (req) => Effect.gen(function* () {
163
- if (req.method === "apps/onBeforeDispatch") {
130
+ if (req.definition.name === AppsOnBeforeDispatch.name) {
164
131
  yield* Deferred.await(releaseA);
165
132
  }
166
133
  else if (req.id === "rpc-B-go") {
@@ -171,22 +138,22 @@ describe("makePartitionedDispatcher — backpressure", () => {
171
138
  config: { partitionQueueCapacity: 1 },
172
139
  });
173
140
  // Start partition A; first offer goes into the handler.
174
- yield* dispatcher.offer(reqBeforeDispatch("rpc-A-1", SESSION_A, CONV_X));
141
+ yield* dispatcher.offer(beforeDispatch("rpc-A-1", SESSION_A, CONV_X));
175
142
  // Wait until the handler has actually taken rpc-A-1 off the
176
143
  // queue (queue size 0). Then fill the queue with rpc-A-2 so
177
144
  // a third offer to A would fail.
178
145
  for (let i = 0; i < 200; i++) {
179
146
  const stats = yield* dispatcher.stats;
180
- const partA = stats.partitions.find((p) => p.key.includes("apps/onBeforeDispatch"));
147
+ const partA = stats.partitions.find((p) => p.key.includes(AppsOnBeforeDispatch.name));
181
148
  if (partA && partA.queueSize === 0)
182
149
  break;
183
150
  yield* Effect.yieldNow();
184
151
  }
185
- yield* dispatcher.offer(reqBeforeDispatch("rpc-A-2", SESSION_A, CONV_X));
152
+ yield* dispatcher.offer(beforeDispatch("rpc-A-2", SESSION_A, CONV_X));
186
153
  // Partition A is now at capacity. A third offer to A would
187
154
  // fail. Meanwhile a different-key offer (partition B) must
188
155
  // still run.
189
- yield* dispatcher.offer(reqBeforeMessageDelivery("rpc-B-go", SESSION_A, CONV_X));
156
+ yield* dispatcher.offer(beforeMessageDelivery("rpc-B-go", SESSION_A, CONV_X));
190
157
  yield* Deferred.await(bDone);
191
158
  yield* Deferred.succeed(releaseA, undefined);
192
159
  return "B-ran";
@@ -203,7 +170,7 @@ describe("makePartitionedDispatcher — backpressure", () => {
203
170
  scope,
204
171
  config: { partitionQueueCapacity: 1 },
205
172
  });
206
- yield* dispatcher.offer(reqBeforeDispatch("rpc-1", SESSION_A, CONV_X));
173
+ yield* dispatcher.offer(beforeDispatch("rpc-1", SESSION_A, CONV_X));
207
174
  // Wait for the handler to take rpc-1 off the queue.
208
175
  for (let i = 0; i < 200; i++) {
209
176
  const stats = yield* dispatcher.stats;
@@ -212,8 +179,8 @@ describe("makePartitionedDispatcher — backpressure", () => {
212
179
  break;
213
180
  yield* Effect.yieldNow();
214
181
  }
215
- yield* dispatcher.offer(reqBeforeDispatch("rpc-2", SESSION_A, CONV_X));
216
- const overflow = yield* Effect.either(dispatcher.offer(reqBeforeDispatch("rpc-3", SESSION_A, CONV_X)));
182
+ yield* dispatcher.offer(beforeDispatch("rpc-2", SESSION_A, CONV_X));
183
+ const overflow = yield* Effect.either(dispatcher.offer(beforeDispatch("rpc-3", SESSION_A, CONV_X)));
217
184
  yield* Deferred.succeed(release, undefined);
218
185
  return overflow;
219
186
  })));
@@ -245,12 +212,12 @@ describe("makePartitionedDispatcher — deadlock fix (D10 reproducer at dispatch
245
212
  const deliveryDone = yield* Deferred.make();
246
213
  const dispatcher = yield* makePartitionedDispatcher({
247
214
  handle: (req) => Effect.gen(function* () {
248
- if (req.method === "apps/onBeforeDispatch") {
215
+ if (req.definition.name === AppsOnBeforeDispatch.name) {
249
216
  // Park.
250
217
  yield* Deferred.await(releaseDispatch);
251
218
  yield* Deferred.succeed(dispatchDone, undefined);
252
219
  }
253
- else if (req.method === "apps/onBeforeMessageDelivery") {
220
+ else if (req.definition.name === AppsOnBeforeMessageDelivery.name) {
254
221
  // The lease-release hook in arena's pattern. Run
255
222
  // to completion and signal the dispatch path to
256
223
  // resume.
@@ -261,9 +228,9 @@ describe("makePartitionedDispatcher — deadlock fix (D10 reproducer at dispatch
261
228
  scope,
262
229
  });
263
230
  // Step 1: park dispatch handler.
264
- yield* dispatcher.offer(reqBeforeDispatch("rpc-dispatch-1", SESSION_A, CONV_X));
231
+ yield* dispatcher.offer(beforeDispatch("rpc-dispatch-1", SESSION_A, CONV_X));
265
232
  // Step 2: send delivery handler for the SAME conversation.
266
- yield* dispatcher.offer(reqBeforeMessageDelivery("rpc-delivery-1", SESSION_A, CONV_X));
233
+ yield* dispatcher.offer(beforeMessageDelivery("rpc-delivery-1", SESSION_A, CONV_X));
267
234
  // Both must complete. With pre-#356 single-fiber
268
235
  // dispatch, this hangs forever (the test's `runPromise`
269
236
  // would never resolve — vitest's `testTimeout` would
@@ -290,7 +257,7 @@ describe("makePartitionedDispatcher — idle reaper", () => {
290
257
  idleReaperIntervalMs: 10,
291
258
  },
292
259
  });
293
- yield* dispatcher.offer(reqBeforeDispatch("rpc-1", SESSION_A, CONV_X));
260
+ yield* dispatcher.offer(beforeDispatch("rpc-1", SESSION_A, CONV_X));
294
261
  // Wait for the handler to finish so the partition becomes
295
262
  // Idle.
296
263
  for (let i = 0; i < 200; i++) {
@@ -332,7 +299,7 @@ describe("makePartitionedDispatcher — idle reaper", () => {
332
299
  idleReaperIntervalMs: 10,
333
300
  },
334
301
  });
335
- yield* dispatcher.offer(reqBeforeDispatch("rpc-busy", SESSION_A, CONV_X));
302
+ yield* dispatcher.offer(beforeDispatch("rpc-busy", SESSION_A, CONV_X));
336
303
  // Bump clock past TTL while handler is still parked. Reaper
337
304
  // sees `idleSince._tag === "Busy"` and skips reclamation.
338
305
  yield* Ref.set(fakeNow, 10_000);
@@ -354,9 +321,9 @@ describe("makePartitionedDispatcher — scope teardown", () => {
354
321
  handle: () => Deferred.await(release),
355
322
  scope,
356
323
  });
357
- yield* dispatcher.offer(reqBeforeDispatch("rpc-1"));
358
- yield* dispatcher.offer(reqBeforeMessageDelivery("rpc-2"));
359
- yield* dispatcher.offer(reqLifecycle("rpc-3", "apps/onJoin"));
324
+ yield* dispatcher.offer(beforeDispatch("rpc-1"));
325
+ yield* dispatcher.offer(beforeMessageDelivery("rpc-2"));
326
+ yield* dispatcher.offer(onJoin("rpc-3"));
360
327
  // Close while every handler is parked. Must not hang.
361
328
  yield* Scope.close(scope, Exit.void);
362
329
  // Release any awaiters (no-op if scope close already
@@ -391,7 +358,7 @@ describe("makePartitionedDispatcher — reaper releases per-worker scopes", () =
391
358
  // the count would still be 2N (the lingering fiber never
392
359
  // gets new items because the map points to a fresh worker)
393
360
  // — so this is not a perfect distinguisher of leaked-vs-not,
394
- // but combined with `s2c-partition-worker.test.ts > "offer
361
+ // but combined with `app-callback-partition-worker.test.ts > "offer
395
362
  // after Scope close fails with PartitionQueueFullError"`,
396
363
  // we cover both the per-worker-scope contract and the
397
364
  // reaper's use of it.
@@ -418,7 +385,7 @@ describe("makePartitionedDispatcher — reaper releases per-worker scopes", () =
418
385
  });
419
386
  // Spawn N partitions across N distinct conv keys.
420
387
  for (let i = 0; i < N; i++) {
421
- yield* dispatcher.offer(reqBeforeDispatch(`rpc-${i}`, SESSION_A, `conv-${i}`));
388
+ yield* dispatcher.offer(beforeDispatch(`rpc-${i}`, SESSION_A, conversationIdForIndex(i)));
422
389
  }
423
390
  // Wait until every worker is Idle (handler returned).
424
391
  for (let attempt = 0; attempt < 200; attempt++) {
@@ -449,7 +416,7 @@ describe("makePartitionedDispatcher — reaper releases per-worker scopes", () =
449
416
  // is processing — not a stale reference returning an
450
417
  // already-shutdown queue).
451
418
  for (let i = 0; i < N; i++) {
452
- yield* dispatcher.offer(reqBeforeDispatch(`rpc-fresh-${i}`, SESSION_A, `conv-fresh-${i}`));
419
+ yield* dispatcher.offer(beforeDispatch(`rpc-fresh-${i}`, SESSION_A, conversationIdForIndex(i + N)));
453
420
  }
454
421
  // Wait for the fresh handlers to all run.
455
422
  for (let attempt = 0; attempt < 200; attempt++) {
@@ -506,7 +473,7 @@ describe("makePartitionedDispatcher — reaper releases per-worker scopes", () =
506
473
  const outcomes = [];
507
474
  for (let i = 0; i < cycles; i++) {
508
475
  yield* Ref.set(fakeNow, 1000 * i);
509
- const result = yield* Effect.either(dispatcher.offer(reqBeforeDispatch(`rpc-cycle-${i}`, SESSION_A, "conv-race")));
476
+ const result = yield* Effect.either(dispatcher.offer(beforeDispatch(`rpc-cycle-${i}`, SESSION_A, CONV_Z)));
510
477
  outcomes.push(result._tag === "Right" ? "ok" : "rejected");
511
478
  // Yield so the reaper has a chance to run between cycles.
512
479
  yield* Effect.yieldNow();
@@ -551,7 +518,7 @@ describe("makePartitionedDispatcher — runSync(close()) contract (regression of
551
518
  handle: () => Effect.void,
552
519
  scope,
553
520
  });
554
- yield* dispatcher.offer(reqBeforeDispatch("rpc-1"));
521
+ yield* dispatcher.offer(beforeDispatch("rpc-1"));
555
522
  // Use Effect.runFork-equivalent via Effect.forkDaemon — a
556
523
  // runSync caller wraps `Scope.close(...)` similarly.
557
524
  const fiber = yield* Effect.forkDaemon(Scope.close(scope, Exit.void));
@@ -568,4 +535,4 @@ describe("makePartitionedDispatcher — defaults", () => {
568
535
  expect(DEFAULT_PARTITIONED_DISPATCHER_CONFIG.idleReaperIntervalMs).toBe(5_000);
569
536
  });
570
537
  });
571
- //# sourceMappingURL=s2c-partitioned-dispatcher.test.js.map
538
+ //# sourceMappingURL=app-callback-partitioned-dispatcher.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-partitioned-dispatcher.test.js","sourceRoot":"","sources":["../../../src/internal/__tests__/app-callback-partitioned-dispatcher.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { AppsOnBeforeDispatch, AppsOnBeforeMessageDelivery, AppsOnClose, AppsOnJoin, AppsOnSessionActive, type Static } from "@moltzap/protocol";
2
+ import { type PartitionableRequest } from "../app-callback-partition-key.js";
3
+ export declare const SESSION_A = "11111111-1111-4111-8111-111111111111";
4
+ export declare const SESSION_B = "22222222-2222-4222-8222-222222222222";
5
+ export declare const CONV_X: string & import("effect/Brand").Brand<"ConversationId">;
6
+ export declare const CONV_Y: string & import("effect/Brand").Brand<"ConversationId">;
7
+ export declare const CONV_Z: string & import("effect/Brand").Brand<"ConversationId">;
8
+ export declare const AGENT_A: string & import("effect/Brand").Brand<"AgentId">;
9
+ export declare const MESSAGE_A: string & import("effect/Brand").Brand<"MessageId">;
10
+ export declare const conversationIdForIndex: (index: number) => string & import("effect/Brand").Brand<"ConversationId">;
11
+ export declare function beforeDispatchParams(sessionId?: string, conv?: string & import("effect/Brand").Brand<"ConversationId">): Static<typeof AppsOnBeforeDispatch.paramsSchema>;
12
+ export declare function beforeDispatch(id: string, sessionId?: string, conv?: string & import("effect/Brand").Brand<"ConversationId">): PartitionableRequest;
13
+ export declare function beforeMessageDeliveryParams(sessionId?: string, conv?: string & import("effect/Brand").Brand<"ConversationId">): Static<typeof AppsOnBeforeMessageDelivery.paramsSchema>;
14
+ export declare function beforeMessageDelivery(id: string, sessionId?: string, conv?: string & import("effect/Brand").Brand<"ConversationId">): PartitionableRequest;
15
+ export declare function onJoinParams(sessionId?: string): Static<typeof AppsOnJoin.paramsSchema>;
16
+ export declare function onJoin(id: string, sessionId?: string): PartitionableRequest;
17
+ export declare function onCloseParams(sessionId?: string): Static<typeof AppsOnClose.paramsSchema>;
18
+ export declare function onClose(id: string, sessionId?: string): PartitionableRequest;
19
+ export declare function onSessionActiveParams(sessionId?: string): Static<typeof AppsOnSessionActive.paramsSchema>;
20
+ export declare function onSessionActive(id: string, sessionId?: string): PartitionableRequest;
21
+ export declare const lifecycleRequests: readonly [{
22
+ readonly definition: import("@moltzap/protocol").RpcDefinition<"apps/onJoin", import("@sinclair/typebox").TObject<{
23
+ sessionId: import("@sinclair/typebox").TString;
24
+ appId: import("@sinclair/typebox").TString;
25
+ conversations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
26
+ agent: import("@sinclair/typebox").TObject<{
27
+ agentId: import("@sinclair/typebox").TString & {
28
+ static: import("@moltzap/protocol").BrandedString<"AgentId">;
29
+ };
30
+ ownerId: import("@sinclair/typebox").TString;
31
+ }>;
32
+ }>, import("@sinclair/typebox").TObject<{}>>;
33
+ readonly request: (id: string, sessionId?: string) => PartitionableRequest;
34
+ }, {
35
+ readonly definition: import("@moltzap/protocol").RpcDefinition<"apps/onClose", import("@sinclair/typebox").TObject<{
36
+ sessionId: import("@sinclair/typebox").TString;
37
+ appId: import("@sinclair/typebox").TString;
38
+ conversations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
39
+ closedBy: import("@sinclair/typebox").TObject<{
40
+ agentId: import("@sinclair/typebox").TString & {
41
+ static: import("@moltzap/protocol").BrandedString<"AgentId">;
42
+ };
43
+ ownerId: import("@sinclair/typebox").TString;
44
+ }>;
45
+ }>, import("@sinclair/typebox").TObject<{}>>;
46
+ readonly request: (id: string, sessionId?: string) => PartitionableRequest;
47
+ }, {
48
+ readonly definition: import("@moltzap/protocol").RpcDefinition<"apps/onSessionActive", import("@sinclair/typebox").TObject<{
49
+ sessionId: import("@sinclair/typebox").TString;
50
+ appId: import("@sinclair/typebox").TString;
51
+ conversations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
52
+ admittedAgentIds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString & {
53
+ static: import("@moltzap/protocol").BrandedString<"AgentId">;
54
+ }>;
55
+ }>, import("@sinclair/typebox").TObject<{}>>;
56
+ readonly request: (id: string, sessionId?: string) => PartitionableRequest;
57
+ }];
58
+ //# sourceMappingURL=app-callback-test-requests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-test-requests.d.ts","sourceRoot":"","sources":["../../../src/internal/__tests__/app-callback-test-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EACpB,2BAA2B,EAC3B,WAAW,EACX,UAAU,EACV,mBAAmB,EAInB,KAAK,MAAM,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAE1C,eAAO,MAAM,SAAS,yCAAyC,CAAC;AAChE,eAAO,MAAM,SAAS,yCAAyC,CAAC;AAChE,eAAO,MAAM,MAAM,yDAAyD,CAAC;AAC7E,eAAO,MAAM,MAAM,yDAAyD,CAAC;AAC7E,eAAO,MAAM,MAAM,yDAAyD,CAAC;AAC7E,eAAO,MAAM,OAAO,kDAAkD,CAAC;AACvE,eAAO,MAAM,SAAS,oDAAoD,CAAC;AAG3E,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,4DAGjD,CAAC;AAEJ,wBAAgB,oBAAoB,CAClC,SAAS,SAAY,EACrB,IAAI,0DAAS,GACZ,MAAM,CAAC,OAAO,oBAAoB,CAAC,YAAY,CAAC,CAalD;AAED,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,SAAS,SAAY,EACrB,IAAI,0DAAS,GACZ,oBAAoB,CAQtB;AAED,wBAAgB,2BAA2B,CACzC,SAAS,SAAY,EACrB,IAAI,0DAAS,GACZ,MAAM,CAAC,OAAO,2BAA2B,CAAC,YAAY,CAAC,CAQzD;AAED,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,MAAM,EACV,SAAS,SAAY,EACrB,IAAI,0DAAS,GACZ,oBAAoB,CAQtB;AAED,wBAAgB,YAAY,CAC1B,SAAS,SAAY,GACpB,MAAM,CAAC,OAAO,UAAU,CAAC,YAAY,CAAC,CAOxC;AAED,wBAAgB,MAAM,CACpB,EAAE,EAAE,MAAM,EACV,SAAS,SAAY,GACpB,oBAAoB,CAUtB;AAED,wBAAgB,aAAa,CAC3B,SAAS,SAAY,GACpB,MAAM,CAAC,OAAO,WAAW,CAAC,YAAY,CAAC,CAOzC;AAED,wBAAgB,OAAO,CACrB,EAAE,EAAE,MAAM,EACV,SAAS,SAAY,GACpB,oBAAoB,CAUtB;AAED,wBAAgB,qBAAqB,CACnC,SAAS,SAAY,GACpB,MAAM,CAAC,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAOjD;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,SAAS,SAAY,GACpB,oBAAoB,CAUtB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;2BAGZ,MAAM;;;;;;;;;;;;;2BAIN,MAAM;;;;;;;;;;2BAIN,MAAM;EAGd,CAAC"}
@@ -0,0 +1,124 @@
1
+ import { agentId, AppsOnBeforeDispatch, AppsOnBeforeMessageDelivery, AppsOnClose, AppsOnJoin, AppsOnSessionActive, conversationId, jsonRpcStringId, messageId, } from "@moltzap/protocol";
2
+ import { LIFECYCLE_CONVERSATION_SENTINEL, } from "../app-callback-partition-key.js";
3
+ export const SESSION_A = "11111111-1111-4111-8111-111111111111";
4
+ export const SESSION_B = "22222222-2222-4222-8222-222222222222";
5
+ export const CONV_X = conversationId("33333333-3333-4333-8333-333333333333");
6
+ export const CONV_Y = conversationId("44444444-4444-4444-8444-444444444444");
7
+ export const CONV_Z = conversationId("77777777-7777-4777-8777-777777777777");
8
+ export const AGENT_A = agentId("55555555-5555-4555-8555-555555555555");
9
+ export const MESSAGE_A = messageId("66666666-6666-4666-8666-666666666666");
10
+ const UUID_SUFFIX_WIDTH = 12;
11
+ export const conversationIdForIndex = (index) => conversationId(`33333333-3333-4333-8333-${index.toString().padStart(UUID_SUFFIX_WIDTH, "0")}`);
12
+ export function beforeDispatchParams(sessionId = SESSION_A, conv = CONV_X) {
13
+ return {
14
+ sessionId,
15
+ appId: "test-app",
16
+ conversationId: conv,
17
+ recipient: { agentId: AGENT_A, ownerId: "owner-a" },
18
+ message: {
19
+ id: MESSAGE_A,
20
+ senderAgentId: AGENT_A,
21
+ parts: [{ type: "text", text: "hello" }],
22
+ },
23
+ attempt: 0,
24
+ };
25
+ }
26
+ export function beforeDispatch(id, sessionId = SESSION_A, conv = CONV_X) {
27
+ const params = beforeDispatchParams(sessionId, conv);
28
+ return {
29
+ id: jsonRpcStringId(id),
30
+ definition: AppsOnBeforeDispatch,
31
+ params,
32
+ partition: { sessionId, conversationId: conv },
33
+ };
34
+ }
35
+ export function beforeMessageDeliveryParams(sessionId = SESSION_A, conv = CONV_X) {
36
+ return {
37
+ sessionId,
38
+ appId: "test-app",
39
+ conversationId: conv,
40
+ sender: { agentId: AGENT_A, ownerId: "owner-a" },
41
+ message: { parts: [{ type: "text", text: "hello" }] },
42
+ };
43
+ }
44
+ export function beforeMessageDelivery(id, sessionId = SESSION_A, conv = CONV_X) {
45
+ const params = beforeMessageDeliveryParams(sessionId, conv);
46
+ return {
47
+ id: jsonRpcStringId(id),
48
+ definition: AppsOnBeforeMessageDelivery,
49
+ params,
50
+ partition: { sessionId, conversationId: conv },
51
+ };
52
+ }
53
+ export function onJoinParams(sessionId = SESSION_A) {
54
+ return {
55
+ sessionId,
56
+ appId: "test-app",
57
+ conversations: { main: CONV_X },
58
+ agent: { agentId: AGENT_A, ownerId: "owner-a" },
59
+ };
60
+ }
61
+ export function onJoin(id, sessionId = SESSION_A) {
62
+ return {
63
+ id: jsonRpcStringId(id),
64
+ definition: AppsOnJoin,
65
+ params: onJoinParams(sessionId),
66
+ partition: {
67
+ sessionId,
68
+ conversationId: LIFECYCLE_CONVERSATION_SENTINEL,
69
+ },
70
+ };
71
+ }
72
+ export function onCloseParams(sessionId = SESSION_A) {
73
+ return {
74
+ sessionId,
75
+ appId: "test-app",
76
+ conversations: { main: CONV_X },
77
+ closedBy: { agentId: AGENT_A, ownerId: "owner-a" },
78
+ };
79
+ }
80
+ export function onClose(id, sessionId = SESSION_A) {
81
+ return {
82
+ id: jsonRpcStringId(id),
83
+ definition: AppsOnClose,
84
+ params: onCloseParams(sessionId),
85
+ partition: {
86
+ sessionId,
87
+ conversationId: LIFECYCLE_CONVERSATION_SENTINEL,
88
+ },
89
+ };
90
+ }
91
+ export function onSessionActiveParams(sessionId = SESSION_A) {
92
+ return {
93
+ sessionId,
94
+ appId: "test-app",
95
+ conversations: { main: CONV_X },
96
+ admittedAgentIds: [AGENT_A],
97
+ };
98
+ }
99
+ export function onSessionActive(id, sessionId = SESSION_A) {
100
+ return {
101
+ id: jsonRpcStringId(id),
102
+ definition: AppsOnSessionActive,
103
+ params: onSessionActiveParams(sessionId),
104
+ partition: {
105
+ sessionId,
106
+ conversationId: LIFECYCLE_CONVERSATION_SENTINEL,
107
+ },
108
+ };
109
+ }
110
+ export const lifecycleRequests = [
111
+ {
112
+ definition: AppsOnJoin,
113
+ request: (id, sessionId = SESSION_A) => onJoin(id, sessionId),
114
+ },
115
+ {
116
+ definition: AppsOnClose,
117
+ request: (id, sessionId = SESSION_A) => onClose(id, sessionId),
118
+ },
119
+ {
120
+ definition: AppsOnSessionActive,
121
+ request: (id, sessionId = SESSION_A) => onSessionActive(id, sessionId),
122
+ },
123
+ ];
124
+ //# sourceMappingURL=app-callback-test-requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-test-requests.js","sourceRoot":"","sources":["../../../src/internal/__tests__/app-callback-test-requests.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,4 @@
1
- declare const MalformedPartitionKeyError_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: "MalformedPartitionKeyError";
3
- } & Readonly<A>;
4
- /**
5
- * The decoded server-request frame did not carry a usable partition key.
6
- * Examples: required `params.sessionId` missing or not a UUID; method
7
- * name absent from the s2c registry.
8
- *
9
- * Failure mode is structural — the request cannot be routed. The reader
10
- * synthesizes a `-32602 Invalid params` error response.
11
- */
12
- export declare class MalformedPartitionKeyError extends MalformedPartitionKeyError_base<{
13
- readonly method: string;
14
- readonly reason: "missing-session-id" | "missing-conversation-id" | "unknown-method" | "params-shape";
15
- readonly requestId: string;
16
- }> {
17
- }
1
+ import type { JsonRpcStringId } from "@moltzap/protocol";
18
2
  declare const PartitionLimitError_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 & {
19
3
  readonly _tag: "PartitionLimitError";
20
4
  } & Readonly<A>;
@@ -32,7 +16,7 @@ export declare class PartitionLimitError extends PartitionLimitError_base<{
32
16
  readonly key: string;
33
17
  readonly activePartitions: number;
34
18
  readonly maxPartitions: number;
35
- readonly requestId: string;
19
+ readonly requestId: JsonRpcStringId;
36
20
  }> {
37
21
  }
38
22
  declare const PartitionQueueFullError_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 & {
@@ -51,7 +35,7 @@ declare const PartitionQueueFullError_base: new <A extends Record<string, any> =
51
35
  export declare class PartitionQueueFullError extends PartitionQueueFullError_base<{
52
36
  readonly key: string;
53
37
  readonly capacity: number;
54
- readonly requestId: string;
38
+ readonly requestId: JsonRpcStringId;
55
39
  }> {
56
40
  }
57
41
  /**
@@ -61,6 +45,6 @@ export declare class PartitionQueueFullError extends PartitionQueueFullError_bas
61
45
  * frame-routing path discriminate on `_tag` to pick the right wire-error
62
46
  * code.
63
47
  */
64
- export type OfferRejected = MalformedPartitionKeyError | PartitionLimitError | PartitionQueueFullError;
48
+ export type OfferRejected = PartitionLimitError | PartitionQueueFullError;
65
49
  export {};
66
- //# sourceMappingURL=s2c-dispatcher-errors.d.ts.map
50
+ //# sourceMappingURL=app-callback-dispatcher-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-dispatcher-errors.d.ts","sourceRoot":"","sources":["../../src/internal/app-callback-dispatcher-errors.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;;;;AAEzD;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,SAAQ,yBAEvC;IACA,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CACrC,CAAC;CAAG;;;;AAEL;;;;;;;;;GASG;AACH,qBAAa,uBAAwB,SAAQ,6BAE3C;IACA,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CACrC,CAAC;CAAG;AAEL;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,uBAAuB,CAAC"}
@@ -1,24 +1,14 @@
1
1
  /**
2
- * Tagged error types for the partitioned s2c dispatcher.
2
+ * Tagged error types for the partitioned appCallback dispatcher.
3
3
  *
4
4
  * Spec: moltzap#356 — partitioned dispatch keyed on
5
5
  * `(sessionId, conversationId, hookKind)`.
6
6
  *
7
7
  * All errors are surfaced on `PartitionedDispatcher.offer`'s typed channel.
8
- * The reader fiber translates each tag into an immediate s2c error response
8
+ * The reader fiber translates each tag into an immediate appCallback error response
9
9
  * so the server's `Deferred.await` resolves deterministically (no hangs).
10
10
  */
11
11
  import { Data } from "effect";
12
- /**
13
- * The decoded server-request frame did not carry a usable partition key.
14
- * Examples: required `params.sessionId` missing or not a UUID; method
15
- * name absent from the s2c registry.
16
- *
17
- * Failure mode is structural — the request cannot be routed. The reader
18
- * synthesizes a `-32602 Invalid params` error response.
19
- */
20
- export class MalformedPartitionKeyError extends Data.TaggedError("MalformedPartitionKeyError") {
21
- }
22
12
  /**
23
13
  * The active-partition count has reached `maxPartitions` (soft cap, default
24
14
  * 256). New partitions cannot be allocated until an existing partition is
@@ -43,4 +33,4 @@ export class PartitionLimitError extends Data.TaggedError("PartitionLimitError")
43
33
  */
44
34
  export class PartitionQueueFullError extends Data.TaggedError("PartitionQueueFullError") {
45
35
  }
46
- //# sourceMappingURL=s2c-dispatcher-errors.js.map
36
+ //# sourceMappingURL=app-callback-dispatcher-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-dispatcher-errors.js","sourceRoot":"","sources":["../../src/internal/app-callback-dispatcher-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B;;;;;;;;;GASG;AACH,MAAM,OAAO,mBAAoB,SAAQ,IAAI,CAAC,WAAW,CACvD,qBAAqB,CAMrB;CAAG;AAEL;;;;;;;;;GASG;AACH,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAC3D,yBAAyB,CAKzB;CAAG"}