@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
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Pure partition-key extractor for the partitioned appCallback dispatcher.
3
+ *
4
+ * Spec: moltzap#356.
5
+ *
6
+ * `decodeFrames` is the wire boundary. It matches the JSON-RPC method to an
7
+ * app-callback descriptor, validates params against that descriptor, and
8
+ * projects the routing tuple. This module only receives that typed decoded
9
+ * request and turns the tuple into an opaque branded `PartitionKey`.
10
+ *
11
+ * There is no malformed-input branch here: malformed app-callback frames are
12
+ * rejected before a request can enter the dispatcher.
13
+ */
14
+ import { Brand } from "effect";
15
+ import { type AnyAppCallbackRpcDefinition, type DecodedRpcRequest, type JsonRpcStringId } from "@moltzap/protocol";
16
+ /**
17
+ * Branded partition-key string. Constructed only by `extractPartitionKey`.
18
+ * Format is opaque to consumers; equality is value equality.
19
+ */
20
+ export type PartitionKey = string & Brand.Brand<"PartitionKey">;
21
+ export declare const PartitionKey: Brand.Brand.Constructor<PartitionKey>;
22
+ declare const PartitionKeyInvariantError_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: "PartitionKeyInvariantError";
24
+ } & Readonly<A>;
25
+ export declare class PartitionKeyInvariantError extends PartitionKeyInvariantError_base<{
26
+ readonly key: PartitionKey;
27
+ readonly message: string;
28
+ }> {
29
+ }
30
+ /**
31
+ * Sentinel placeholder for appCallback methods that carry no `conversationId`
32
+ * (lifecycle: `apps/onJoin`, `apps/onClose`, `apps/onSessionActive`).
33
+ * All lifecycle calls for the same `(sessionId, method)` share one
34
+ * partition; cross-method lifecycle ordering is preserved by the server,
35
+ * not the client.
36
+ */
37
+ export declare const LIFECYCLE_CONVERSATION_SENTINEL: "*lifecycle*";
38
+ export interface AppCallbackPartitionRoute {
39
+ readonly sessionId: string;
40
+ readonly conversationId: string;
41
+ }
42
+ /**
43
+ * Shape the dispatcher receives after the wire decoder has matched an
44
+ * app-callback descriptor and validated params against that descriptor.
45
+ */
46
+ export type PartitionableRequest = DecodedRpcRequest<AnyAppCallbackRpcDefinition> & {
47
+ readonly id: JsonRpcStringId;
48
+ readonly partition: AppCallbackPartitionRoute;
49
+ };
50
+ /**
51
+ * Project a partition key from a typed appCallback request. The wire decoder
52
+ * has already validated method membership and params shape, so this function
53
+ * has no malformed-input branch.
54
+ */
55
+ export declare function extractPartitionKey(request: PartitionableRequest): PartitionKey;
56
+ /**
57
+ * Inverse projection for tests + observability. Pure deconstruction of a
58
+ * `PartitionKey` back into its three components. Returning a structured
59
+ * record (rather than a tuple) lets callers discriminate on
60
+ * `conversationId === LIFECYCLE_CONVERSATION_SENTINEL`.
61
+ */
62
+ export declare function describePartitionKey(key: PartitionKey): {
63
+ readonly sessionId: string;
64
+ readonly conversationId: string;
65
+ readonly definition: AnyAppCallbackRpcDefinition;
66
+ };
67
+ export {};
68
+ //# sourceMappingURL=app-callback-partition-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-partition-key.d.ts","sourceRoot":"","sources":["../../src/internal/app-callback-partition-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,KAAK,EAAQ,MAAM,QAAQ,CAAC;AAErC,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAChE,eAAO,MAAM,YAAY,uCAAgC,CAAC;;;;AAE1D,qBAAa,0BAA2B,SAAQ,gCAE9C;IACA,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,EAAG,aAAsB,CAAC;AAwBtE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAC9B,iBAAiB,CAAC,2BAA2B,CAAC,GAAG;IAC/C,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;CAC/C,CAAC;AAEJ;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,YAAY,CAId;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,GAAG;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;CAClD,CA6BA"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Pure partition-key extractor for the partitioned appCallback dispatcher.
3
+ *
4
+ * Spec: moltzap#356.
5
+ *
6
+ * `decodeFrames` is the wire boundary. It matches the JSON-RPC method to an
7
+ * app-callback descriptor, validates params against that descriptor, and
8
+ * projects the routing tuple. This module only receives that typed decoded
9
+ * request and turns the tuple into an opaque branded `PartitionKey`.
10
+ *
11
+ * There is no malformed-input branch here: malformed app-callback frames are
12
+ * rejected before a request can enter the dispatcher.
13
+ */
14
+ import { Brand, Data } from "effect";
15
+ import {} from "@moltzap/protocol";
16
+ export const PartitionKey = Brand.nominal();
17
+ export class PartitionKeyInvariantError extends Data.TaggedError("PartitionKeyInvariantError") {
18
+ }
19
+ /**
20
+ * Sentinel placeholder for appCallback methods that carry no `conversationId`
21
+ * (lifecycle: `apps/onJoin`, `apps/onClose`, `apps/onSessionActive`).
22
+ * All lifecycle calls for the same `(sessionId, method)` share one
23
+ * partition; cross-method lifecycle ordering is preserved by the server,
24
+ * not the client.
25
+ */
26
+ export const LIFECYCLE_CONVERSATION_SENTINEL = "*lifecycle*";
27
+ /**
28
+ * Field separator inside a `PartitionKey`. ASCII vertical bar; not legal
29
+ * in a UUID and not legal in any of our `appId` values, so the encoded
30
+ * key parses unambiguously.
31
+ */
32
+ const KEY_SEP = "|";
33
+ const definitionSegments = new WeakMap();
34
+ const definitionsBySegment = new Map();
35
+ let nextDefinitionSegment = 0;
36
+ const segmentForDefinition = (definition) => {
37
+ const existing = definitionSegments.get(definition);
38
+ if (existing !== undefined)
39
+ return existing;
40
+ const segment = `rpc${nextDefinitionSegment}`;
41
+ nextDefinitionSegment += 1;
42
+ definitionSegments.set(definition, segment);
43
+ definitionsBySegment.set(segment, definition);
44
+ return segment;
45
+ };
46
+ /**
47
+ * Project a partition key from a typed appCallback request. The wire decoder
48
+ * has already validated method membership and params shape, so this function
49
+ * has no malformed-input branch.
50
+ */
51
+ export function extractPartitionKey(request) {
52
+ return PartitionKey(`${request.partition.sessionId}${KEY_SEP}${request.partition.conversationId}${KEY_SEP}${segmentForDefinition(request.definition)}`);
53
+ }
54
+ /**
55
+ * Inverse projection for tests + observability. Pure deconstruction of a
56
+ * `PartitionKey` back into its three components. Returning a structured
57
+ * record (rather than a tuple) lets callers discriminate on
58
+ * `conversationId === LIFECYCLE_CONVERSATION_SENTINEL`.
59
+ */
60
+ export function describePartitionKey(key) {
61
+ // Method is the only field that can contain a slash; sessionId is a
62
+ // UUID and conversationId is a UUID or the lifecycle sentinel. Split
63
+ // on the first two `KEY_SEP` occurrences only so a hypothetical
64
+ // future method name with `KEY_SEP` (impossible today; ASCII `|`)
65
+ // would still round-trip cleanly.
66
+ const first = key.indexOf(KEY_SEP);
67
+ const second = first === -1 ? -1 : key.indexOf(KEY_SEP, first + 1);
68
+ if (first === -1 || second === -1) {
69
+ // `extractPartitionKey` is the only constructor; an unparsable key
70
+ // means a caller bypassed branding. This is a programmer error,
71
+ // not a runtime user-input failure — fail loudly.
72
+ throw new PartitionKeyInvariantError({
73
+ key,
74
+ message: `describePartitionKey: malformed PartitionKey: ${key}`,
75
+ });
76
+ }
77
+ const definition = definitionsBySegment.get(key.slice(second + 1));
78
+ if (definition === undefined) {
79
+ throw new PartitionKeyInvariantError({
80
+ key,
81
+ message: `describePartitionKey: unknown descriptor segment: ${key}`,
82
+ });
83
+ }
84
+ return {
85
+ sessionId: key.slice(0, first),
86
+ conversationId: key.slice(first + 1, second),
87
+ definition,
88
+ };
89
+ }
90
+ //# sourceMappingURL=app-callback-partition-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-partition-key.js","sourceRoot":"","sources":["../../src/internal/app-callback-partition-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAIN,MAAM,mBAAmB,CAAC;AAO3B,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,EAAgB,CAAC;AAE1D,MAAM,OAAO,0BAA2B,SAAQ,IAAI,CAAC,WAAW,CAC9D,4BAA4B,CAI5B;CAAG;AAEL;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,aAAsB,CAAC;AAEtE;;;;GAIG;AACH,MAAM,OAAO,GAAG,GAAG,CAAC;AACpB,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAuC,CAAC;AAC9E,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAuC,CAAC;AAC5E,IAAI,qBAAqB,GAAG,CAAC,CAAC;AAE9B,MAAM,oBAAoB,GAAG,CAC3B,UAAuC,EAC/B,EAAE;IACV,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAC9C,qBAAqB,IAAI,CAAC,CAAC;IAC3B,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAiBF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA6B;IAE7B,OAAO,YAAY,CACjB,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CACnI,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAiB;IAKpD,oEAAoE;IACpE,qEAAqE;IACrE,gEAAgE;IAChE,kEAAkE;IAClE,kCAAkC;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACnE,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClC,mEAAmE;QACnE,gEAAgE;QAChE,kDAAkD;QAClD,MAAM,IAAI,0BAA0B,CAAC;YACnC,GAAG;YACH,OAAO,EAAE,iDAAiD,GAAG,EAAE;SAChE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,0BAA0B,CAAC;YACnC,GAAG;YACH,OAAO,EAAE,qDAAqD,GAAG,EAAE;SACpE,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QAC9B,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;QAC5C,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Spec: moltzap#356.
6
6
  *
7
7
  * Lifecycle is anchored in a per-worker `Scope.CloseableScope` provided
8
- * by the dispatcher (`s2c-partitioned-dispatcher.ts`'s
8
+ * by the dispatcher (`app-callback-partitioned-dispatcher.ts`'s
9
9
  * `getOrCreatePartitionWorker` calls `Scope.fork(dispatcherScope, …)`
10
10
  * for each new worker and hands the child scope in via the config).
11
11
  * Closing the worker's scope shuts the queue, runs registered
@@ -41,14 +41,14 @@
41
41
  * landing in between.
42
42
  */
43
43
  import { Effect, Fiber, MutableRef, Scope } from "effect";
44
- import { PartitionQueueFullError } from "./s2c-dispatcher-errors.js";
45
- import type { PartitionKey, PartitionableRequest } from "./s2c-partition-key.js";
44
+ import { PartitionQueueFullError } from "./app-callback-dispatcher-errors.js";
45
+ import type { PartitionKey, PartitionableRequest } from "./app-callback-partition-key.js";
46
46
  import type { WsClientLogger } from "../ws-client.js";
47
47
  /**
48
48
  * The handler the worker drains its queue against. Mirrors the existing
49
49
  * `dispatchInboundServerRequest` signature in `ws-client.ts:912-965` —
50
50
  * the dispatcher passes an already-bound function so the worker has no
51
- * direct knowledge of the registered s2c handler registry.
51
+ * direct knowledge of the registered appCallback handler registry.
52
52
  *
53
53
  * Defects inside `handle` are caught and logged by the worker; they
54
54
  * never escape into the per-connection scope's failure channel.
@@ -157,4 +157,4 @@ export interface PartitionWorkerConfig {
157
157
  * `Scope.extend`.
158
158
  */
159
159
  export declare function makePartitionWorker(config: PartitionWorkerConfig): Effect.Effect<PartitionWorker, never>;
160
- //# sourceMappingURL=s2c-partition-worker.d.ts.map
160
+ //# sourceMappingURL=app-callback-partition-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-partition-worker.d.ts","sourceRoot":"","sources":["../../src/internal/app-callback-partition-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,OAAO,EAAS,MAAM,EAAE,KAAK,EAAE,UAAU,EAAS,KAAK,EAAU,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,oBAAoB,KAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAEhC;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,CACd,OAAO,EAAE,oBAAoB,KAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IAClD;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACrD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC;CACtC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,qBAAqB,GAC5B,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAmIvC"}
@@ -5,7 +5,7 @@
5
5
  * Spec: moltzap#356.
6
6
  *
7
7
  * Lifecycle is anchored in a per-worker `Scope.CloseableScope` provided
8
- * by the dispatcher (`s2c-partitioned-dispatcher.ts`'s
8
+ * by the dispatcher (`app-callback-partitioned-dispatcher.ts`'s
9
9
  * `getOrCreatePartitionWorker` calls `Scope.fork(dispatcherScope, …)`
10
10
  * for each new worker and hands the child scope in via the config).
11
11
  * Closing the worker's scope shuts the queue, runs registered
@@ -41,7 +41,7 @@
41
41
  * landing in between.
42
42
  */
43
43
  import { Cause, Effect, Fiber, MutableRef, Queue, Scope, Stream } from "effect";
44
- import { PartitionQueueFullError } from "./s2c-dispatcher-errors.js";
44
+ import { PartitionQueueFullError } from "./app-callback-dispatcher-errors.js";
45
45
  /**
46
46
  * Build one worker. Allocates a bounded queue, forks a draining fiber
47
47
  * via `Stream.fromQueue` + `Stream.runForEach`, and registers the
@@ -69,7 +69,7 @@ export function makePartitionWorker(config) {
69
69
  const drainEffect = Stream.fromQueue(queue).pipe(Stream.runForEach((request) => Effect.gen(function* () {
70
70
  MutableRef.set(idleSince, { _tag: "Busy" });
71
71
  yield* config.handle(request).pipe(Effect.catchAllCause((cause) => Effect.sync(() => {
72
- config.logger?.warn(`s2c partition worker handler defected (key=${config.key})`, Cause.pretty(cause));
72
+ config.logger?.warn(`appCallback partition worker handler defected (key=${config.key})`, Cause.pretty(cause));
73
73
  })));
74
74
  const remaining = yield* Queue.size(queue).pipe(Effect.catchAllCause(() => Effect.succeed(0)));
75
75
  if (remaining === 0) {
@@ -79,7 +79,7 @@ export function makePartitionWorker(config) {
79
79
  });
80
80
  }
81
81
  })), Effect.catchAllCause((cause) => Effect.sync(() => {
82
- config.logger?.warn(`s2c partition worker fiber exited (key=${config.key})`, Cause.pretty(cause));
82
+ config.logger?.warn(`appCallback partition worker fiber exited (key=${config.key})`, Cause.pretty(cause));
83
83
  })), Effect.asVoid);
84
84
  const fiber = yield* Effect.forkScoped(drainEffect);
85
85
  // Shut the queue when the worker scope closes. `Effect.forkScoped`
@@ -138,4 +138,4 @@ export function makePartitionWorker(config) {
138
138
  };
139
139
  }), config.scope);
140
140
  }
141
- //# sourceMappingURL=s2c-partition-worker.js.map
141
+ //# sourceMappingURL=app-callback-partition-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-partition-worker.js","sourceRoot":"","sources":["../../src/internal/app-callback-partition-worker.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Partitioned s2c dispatcher.
2
+ * Partitioned appCallback dispatcher.
3
3
  *
4
4
  * Spec: moltzap#356.
5
5
  *
6
- * Replaces the single `Stream.runForEach(handler)` over `s2cInboundQueue`
6
+ * Replaces the single `Stream.runForEach(handler)` over `appCallbackInboundQueue`
7
7
  * (`packages/client/src/ws-client.ts:658-687@f0df363`) with a
8
8
  * partition-router that owns a `Ref<HashMap<PartitionKey,
9
9
  * PartitionWorker>>`. For each inbound request:
@@ -37,8 +37,8 @@
37
37
  * The dispatcher Scope is held in `ConnState`; teardown from
38
38
  * `close()` / `disconnectSync()` is
39
39
  * `runtime.runFork(Scope.close(dispatcherScope, Exit.void))`, mirroring
40
- * today's `runFork(Queue.shutdown(s2cInboundQueue))` +
41
- * `runFork(Fiber.interrupt(s2cDispatcherFiber))` pair.
40
+ * today's `runFork(Queue.shutdown(appCallbackInboundQueue))` +
41
+ * `runFork(Fiber.interrupt(appCallbackDispatcherFiber))` pair.
42
42
  *
43
43
  * Why off-Scope from the socket: `close()` is invoked via `runSync` at
44
44
  * `packages/openclaw-channel/src/__tests__/reconnection.integration.test.ts:14`;
@@ -57,9 +57,9 @@
57
57
  * worker without leaking finalizers onto the dispatcher scope.
58
58
  */
59
59
  import { Effect, Scope } from "effect";
60
- import { type OfferRejected } from "./s2c-dispatcher-errors.js";
61
- import { type PartitionKey, type PartitionableRequest } from "./s2c-partition-key.js";
62
- import { type PartitionHandler } from "./s2c-partition-worker.js";
60
+ import { type OfferRejected } from "./app-callback-dispatcher-errors.js";
61
+ import { type PartitionKey, type PartitionableRequest } from "./app-callback-partition-key.js";
62
+ import { type PartitionHandler } from "./app-callback-partition-worker.js";
63
63
  import type { WsClientLogger } from "../ws-client.js";
64
64
  /**
65
65
  * Tunable knobs. Defaults named in the design doc; downstream picks
@@ -99,7 +99,6 @@ export interface DispatcherStats {
99
99
  readonly activePartitions: number;
100
100
  readonly totalOffered: number;
101
101
  readonly totalRejected: {
102
- readonly malformed: number;
103
102
  readonly partitionLimit: number;
104
103
  readonly partitionQueueFull: number;
105
104
  };
@@ -148,7 +147,7 @@ export interface PartitionedDispatcher {
148
147
  /**
149
148
  * Construction params. `handle` is the per-request work — passed in so
150
149
  * the dispatcher has no direct dependency on the handler-registry
151
- * `Ref<HashMap<string, ServerRpcHandler>>` (`s2cHandlersRef`); the
150
+ * `Ref<HashMap<string, ServerRpcHandler>>` (`appCallbackHandlersRef`); the
152
151
  * caller (`ws-client.ts`) closes over the registry and supplies a
153
152
  * pre-bound function. This preserves the wire-edge schema-decoding
154
153
  * boundary already established in `dispatchInboundServerRequest`.
@@ -178,4 +177,4 @@ export interface MakePartitionedDispatcherParams {
178
177
  * explicitly via `Scope.extend`.
179
178
  */
180
179
  export declare function makePartitionedDispatcher(params: MakePartitionedDispatcherParams): Effect.Effect<PartitionedDispatcher, never>;
181
- //# sourceMappingURL=s2c-partitioned-dispatcher.d.ts.map
180
+ //# sourceMappingURL=app-callback-partitioned-dispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-partitioned-dispatcher.d.ts","sourceRoot":"","sources":["../../src/internal/app-callback-partitioned-dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,OAAO,EAGL,MAAM,EAQN,KAAK,EACN,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED,4EAA4E;AAC5E,eAAO,MAAM,qCAAqC,EAAE,2BAMjD,CAAC;AAEJ;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;QACjC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;QAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,CACd,OAAO,EAAE,oBAAoB,KAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC/C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAoCD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,+BAA+B,GACtC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAgH7C"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Partitioned s2c dispatcher.
2
+ * Partitioned appCallback dispatcher.
3
3
  *
4
4
  * Spec: moltzap#356.
5
5
  *
6
- * Replaces the single `Stream.runForEach(handler)` over `s2cInboundQueue`
6
+ * Replaces the single `Stream.runForEach(handler)` over `appCallbackInboundQueue`
7
7
  * (`packages/client/src/ws-client.ts:658-687@f0df363`) with a
8
8
  * partition-router that owns a `Ref<HashMap<PartitionKey,
9
9
  * PartitionWorker>>`. For each inbound request:
@@ -37,8 +37,8 @@
37
37
  * The dispatcher Scope is held in `ConnState`; teardown from
38
38
  * `close()` / `disconnectSync()` is
39
39
  * `runtime.runFork(Scope.close(dispatcherScope, Exit.void))`, mirroring
40
- * today's `runFork(Queue.shutdown(s2cInboundQueue))` +
41
- * `runFork(Fiber.interrupt(s2cDispatcherFiber))` pair.
40
+ * today's `runFork(Queue.shutdown(appCallbackInboundQueue))` +
41
+ * `runFork(Fiber.interrupt(appCallbackDispatcherFiber))` pair.
42
42
  *
43
43
  * Why off-Scope from the socket: `close()` is invoked via `runSync` at
44
44
  * `packages/openclaw-channel/src/__tests__/reconnection.integration.test.ts:14`;
@@ -56,10 +56,10 @@
56
56
  * every worker; closing one worker's child scope retires only that
57
57
  * worker without leaking finalizers onto the dispatcher scope.
58
58
  */
59
- import { Cause, Duration, Effect, Either, ExecutionStrategy, Exit, HashMap, MutableRef, Option, Ref, Schedule, Scope, } from "effect";
60
- import { PartitionLimitError, } from "./s2c-dispatcher-errors.js";
61
- import { extractPartitionKey, } from "./s2c-partition-key.js";
62
- import { makePartitionWorker, } from "./s2c-partition-worker.js";
59
+ import { Cause, Duration, Effect, ExecutionStrategy, Exit, HashMap, MutableRef, Option, Ref, Schedule, Scope, } from "effect";
60
+ import { PartitionLimitError, } from "./app-callback-dispatcher-errors.js";
61
+ import { extractPartitionKey, } from "./app-callback-partition-key.js";
62
+ import { makePartitionWorker, } from "./app-callback-partition-worker.js";
63
63
  /** Defaults. Documented as the named knob values for the implementation. */
64
64
  export const DEFAULT_PARTITIONED_DISPATCHER_CONFIG = {
65
65
  maxPartitions: 256,
@@ -87,7 +87,6 @@ export function makePartitionedDispatcher(params) {
87
87
  const partitionsRef = yield* Ref.make(HashMap.empty());
88
88
  const counters = {
89
89
  totalOffered: yield* Ref.make(0),
90
- malformed: yield* Ref.make(0),
91
90
  partitionLimit: yield* Ref.make(0),
92
91
  partitionQueueFull: yield* Ref.make(0),
93
92
  };
@@ -104,21 +103,16 @@ export function makePartitionedDispatcher(params) {
104
103
  // Idle-reaper fiber. One fiber per dispatcher (NOT per partition);
105
104
  // walks the map every `idleReaperIntervalMs` and finalizes
106
105
  // partitions whose `idleSince._tag === "Idle"` exceeds the TTL.
107
- const reaperEffect = reapIdlePartitions(internal).pipe(Effect.repeat(Schedule.spaced(Duration.millis(config.idleReaperIntervalMs))), Effect.asVoid, Effect.catchAllCause((cause) => Effect.sync(() => params.logger?.warn("s2c idle reaper exited", Cause.pretty(cause)))));
106
+ const reaperEffect = reapIdlePartitions(internal).pipe(Effect.repeat(Schedule.spaced(Duration.millis(config.idleReaperIntervalMs))), Effect.asVoid, Effect.catchAllCause((cause) => Effect.sync(() => params.logger?.warn("appCallback idle reaper exited", Cause.pretty(cause)))));
108
107
  yield* Scope.extend(Effect.forkScoped(reaperEffect), dispatcherScope);
109
108
  const offer = (request) => Effect.gen(function* () {
110
109
  yield* Ref.update(counters.totalOffered, (n) => n + 1);
111
- const keyResult = extractPartitionKey(request);
112
- if (Either.isLeft(keyResult)) {
113
- yield* Ref.update(counters.malformed, (n) => n + 1);
114
- return yield* Effect.fail(keyResult.left);
115
- }
116
- const key = keyResult.right;
110
+ const key = extractPartitionKey(request);
117
111
  const worker = yield* getOrCreatePartitionWorker({
118
112
  key,
119
113
  requestId: request.id,
120
114
  state: internal,
121
- }).pipe(Effect.tapError((err) => err._tag === "PartitionLimitError"
115
+ }).pipe(Effect.tapError((err) => err instanceof PartitionLimitError
122
116
  ? Ref.update(counters.partitionLimit, (n) => n + 1)
123
117
  : Effect.void));
124
118
  yield* worker
@@ -134,14 +128,12 @@ export function makePartitionedDispatcher(params) {
134
128
  partitions.push({ key, queueSize, idle });
135
129
  }
136
130
  const totalOffered = yield* Ref.get(counters.totalOffered);
137
- const malformed = yield* Ref.get(counters.malformed);
138
131
  const partitionLimit = yield* Ref.get(counters.partitionLimit);
139
132
  const partitionQueueFull = yield* Ref.get(counters.partitionQueueFull);
140
133
  return {
141
134
  activePartitions: HashMap.size(map),
142
135
  totalOffered,
143
136
  totalRejected: {
144
- malformed,
145
137
  partitionLimit,
146
138
  partitionQueueFull,
147
139
  },
@@ -218,7 +210,7 @@ function getOrCreatePartitionWorker(params) {
218
210
  // Discard the redundant worker. Closing its scope cascades to
219
211
  // queue.shutdown + the drain fiber's interrupt, releasing every
220
212
  // resource we just allocated.
221
- state.logger?.warn(`s2c partition allocation lost race (key=${key}); discarding redundant worker`);
213
+ state.logger?.warn(`appCallback partition allocation lost race (key=${key}); discarding redundant worker`);
222
214
  yield* Scope.close(workerScope, Exit.void).pipe(Effect.catchAllCause(() => Effect.void));
223
215
  }
224
216
  return inserted.winner;
@@ -287,4 +279,4 @@ function reapIdlePartitions(state) {
287
279
  }
288
280
  });
289
281
  }
290
- //# sourceMappingURL=s2c-partitioned-dispatcher.js.map
282
+ //# sourceMappingURL=app-callback-partitioned-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-callback-partitioned-dispatcher.js","sourceRoot":"","sources":["../../src/internal/app-callback-partitioned-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  * a `CloseInfo`. The defaults below are the resolution of OQ-5 (A). No
17
17
  * typed error surface on this module.
18
18
  */
19
- import { Cause, Exit } from "effect";
19
+ import { Cause, Data, Exit } from "effect";
20
20
  import * as Socket from "@effect/platform/Socket";
21
21
  /**
22
22
  * WebSocket close metadata surfaced to `MoltZapWsClientOptions.onDisconnect`
@@ -39,26 +39,25 @@ export interface CloseInfo {
39
39
  * any `SocketError` variant @effect/platform adds in the future. The
40
40
  * implementation's pattern-match ends in `default: return absurd(kind)`.
41
41
  */
42
- export type CloseKind = {
42
+ export type CloseKind = Data.TaggedEnum<{
43
43
  /** Graceful `SocketCloseError` — upstream code + reason round-tripped. */
44
- readonly _tag: "Clean";
45
- readonly code: number;
46
- readonly reason: string;
47
- } | {
44
+ Clean: {
45
+ readonly code: number;
46
+ readonly reason: string;
47
+ };
48
48
  /** `Exit.Success` with no close frame observed — socket ended cleanly. */
49
- readonly _tag: "EndOfStream";
50
- } | {
49
+ EndOfStream: {};
51
50
  /** `SocketGenericError` with reason "Open" / "OpenTimeout". */
52
- readonly _tag: "HandshakeFailure";
53
- readonly underlying: "Open" | "OpenTimeout";
54
- } | {
51
+ HandshakeFailure: {
52
+ readonly underlying: "Open" | "OpenTimeout";
53
+ };
55
54
  /** `SocketGenericError` with reason "Read" / "Write" — transport broke. */
56
- readonly _tag: "TransportFailure";
57
- readonly underlying: "Read" | "Write";
58
- } | {
55
+ TransportFailure: {
56
+ readonly underlying: "Read" | "Write";
57
+ };
59
58
  /** Cause did not match any known `SocketError` shape. */
60
- readonly _tag: "Unknown";
61
- };
59
+ Unknown: {};
60
+ }>;
62
61
  /**
63
62
  * OQ-5 resolution defaults. Exported so the implementation, tests, and
64
63
  * the conformance-adapter's V7 proof share one source of truth.
@@ -1 +1 @@
1
- {"version":3,"file":"close-info.d.ts","sourceRoot":"","sources":["../../src/runtime/close-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GACjB;IACE,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IACE,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B,GACD;IACE,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;CAC7C,GACD;IACE,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;CACvC,GACD;IACE,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEN;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAGpC,CAAC;AACF,eAAO,MAAM,sBAAsB,EAAE,SAGpC,CAAC;AAOF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GACrC,SAAS,CA6BX;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,GACxC,SAAS,CAiBX"}
1
+ {"version":3,"file":"close-info.d.ts","sourceRoot":"","sources":["../../src/runtime/close-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,0EAA0E;IAC1E,KAAK,EAAE;QACL,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,0EAA0E;IAC1E,WAAW,EAAE,EAAE,CAAC;IAChB,+DAA+D;IAC/D,gBAAgB,EAAE;QAChB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;KAC7C,CAAC;IACF,2EAA2E;IAC3E,gBAAgB,EAAE;QAChB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;KACvC,CAAC;IACF,yDAAyD;IACzD,OAAO,EAAE,EAAE,CAAC;CACb,CAAC,CAAC;AAIH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAGpC,CAAC;AACF,eAAO,MAAM,sBAAsB,EAAE,SAGpC,CAAC;AAOF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GACrC,SAAS,CAgCX;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,GACxC,SAAS,CAiBX"}
@@ -16,8 +16,9 @@
16
16
  * a `CloseInfo`. The defaults below are the resolution of OQ-5 (A). No
17
17
  * typed error surface on this module.
18
18
  */
19
- import { Cause, Exit } from "effect";
19
+ import { Cause, Data, Exit } from "effect";
20
20
  import * as Socket from "@effect/platform/Socket";
21
+ const CloseKind = Data.taggedEnum();
21
22
  /**
22
23
  * OQ-5 resolution defaults. Exported so the implementation, tests, and
23
24
  * the conformance-adapter's V7 proof share one source of truth.
@@ -54,11 +55,10 @@ export function classifyCloseCause(cause) {
54
55
  // match. `Chunk` is iterable, so a `for…of` walk is sufficient.
55
56
  for (const failure of Cause.failures(cause)) {
56
57
  if (Socket.SocketCloseError.is(failure)) {
57
- return {
58
- _tag: "Clean",
58
+ return CloseKind.Clean({
59
59
  code: failure.code,
60
60
  reason: failure.closeReason ?? "",
61
- };
61
+ });
62
62
  }
63
63
  if (Socket.isSocketError(failure)) {
64
64
  // SocketGenericError — branch on the four documented reasons and
@@ -67,16 +67,20 @@ export function classifyCloseCause(cause) {
67
67
  switch (generic.reason) {
68
68
  case "Open":
69
69
  case "OpenTimeout":
70
- return { _tag: "HandshakeFailure", underlying: generic.reason };
70
+ return CloseKind.HandshakeFailure({
71
+ underlying: generic.reason,
72
+ });
71
73
  case "Read":
72
74
  case "Write":
73
- return { _tag: "TransportFailure", underlying: generic.reason };
75
+ return CloseKind.TransportFailure({
76
+ underlying: generic.reason,
77
+ });
74
78
  default:
75
- return { _tag: "Unknown" };
79
+ return CloseKind.Unknown();
76
80
  }
77
81
  }
78
82
  }
79
- return { _tag: "Unknown" };
83
+ return CloseKind.Unknown();
80
84
  }
81
85
  /**
82
86
  * Project an `Exit` onto `CloseInfo`. Composition of `classifyCloseCause`
@@ -1 +1 @@
1
- {"version":3,"file":"close-info.js","sourceRoot":"","sources":["../../src/runtime/close-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAkDlD;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAc;IAC/C,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,QAAQ;CACjB,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAc;IAC/C,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,sEAAsE;AACtE,SAAS,MAAM,CAAC,CAAQ;IACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAsC;IAEtC,mEAAmE;IACnE,mEAAmE;IACnE,gEAAgE;IAChE,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;aAClC,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,iEAAiE;YACjE,oDAAoD;YACpD,MAAM,OAAO,GAAG,OAAoC,CAAC;YACrD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,MAAM,CAAC;gBACZ,KAAK,aAAa;oBAChB,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBAClE,KAAK,MAAM,CAAC;gBACZ,KAAK,OAAO;oBACV,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBAClE;oBACE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAyC;IAEzC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAClD,KAAK,aAAa;YAChB,OAAO,sBAAsB,CAAC;QAChC,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,sBAAsB,CAAC;QAChC;YACE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"close-info.js","sourceRoot":"","sources":["../../src/runtime/close-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AA4ClD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAa,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAc;IAC/C,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,QAAQ;CACjB,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAc;IAC/C,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,sEAAsE;AACtE,SAAS,MAAM,CAAC,CAAQ;IACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAsC;IAEtC,mEAAmE;IACnE,mEAAmE;IACnE,gEAAgE;IAChE,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC,KAAK,CAAC;gBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,iEAAiE;YACjE,oDAAoD;YACpD,MAAM,OAAO,GAAG,OAAoC,CAAC;YACrD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,MAAM,CAAC;gBACZ,KAAK,aAAa;oBAChB,OAAO,SAAS,CAAC,gBAAgB,CAAC;wBAChC,UAAU,EAAE,OAAO,CAAC,MAAM;qBAC3B,CAAC,CAAC;gBACL,KAAK,MAAM,CAAC;gBACZ,KAAK,OAAO;oBACV,OAAO,SAAS,CAAC,gBAAgB,CAAC;wBAChC,UAAU,EAAE,OAAO,CAAC,MAAM;qBAC3B,CAAC,CAAC;gBACL;oBACE,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAyC;IAEzC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAClD,KAAK,aAAa;YAChB,OAAO,sBAAsB,CAAC;QAChC,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,sBAAsB,CAAC;QAChC;YACE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}
@@ -1,30 +1,4 @@
1
- declare const NotConnectedError_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: "NotConnectedError";
3
- } & Readonly<A>;
4
- /** The socket is not in the OPEN state when an RPC was attempted. */
5
- export declare class NotConnectedError extends NotConnectedError_base<{
6
- readonly message: string;
7
- }> {
8
- }
9
- declare const RpcTimeoutError_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: "RpcTimeoutError";
11
- } & Readonly<A>;
12
- /** The RPC exceeded the per-call timeout without a response frame. */
13
- export declare class RpcTimeoutError extends RpcTimeoutError_base<{
14
- readonly method: string;
15
- readonly timeoutMs: number;
16
- }> {
17
- }
18
- declare const RpcServerError_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
- readonly _tag: "RpcServerError";
20
- } & Readonly<A>;
21
- /** The server returned an `error` response frame. */
22
- export declare class RpcServerError extends RpcServerError_base<{
23
- readonly code: number;
24
- readonly message: string;
25
- readonly data?: unknown;
26
- }> {
27
- }
1
+ import type { AppCallbackRpcMethodName } from "@moltzap/protocol";
28
2
  declare const MalformedFrameError_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 & {
29
3
  readonly _tag: "MalformedFrameError";
30
4
  } & Readonly<A>;
@@ -52,7 +26,7 @@ declare const DuplicateServerRpcHandlerError_base: new <A extends Record<string,
52
26
  * forces the duplicate registration to surface at the call site.
53
27
  */
54
28
  export declare class DuplicateServerRpcHandlerError extends DuplicateServerRpcHandlerError_base<{
55
- readonly method: string;
29
+ readonly method: AppCallbackRpcMethodName;
56
30
  }> {
57
31
  get message(): string;
58
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":";;;AAEA,qEAAqE;AACrE,qBAAa,iBAAkB,SAAQ,uBAAsC;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;;;;AAEL,sEAAsE;AACtE,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;CAAG;;;;AAEL,qDAAqD;AACrD,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;;;;AAEL,iFAAiF;AACjF,qBAAa,mBAAoB,SAAQ,yBAEvC;IACA,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;;;;AAEL,+CAA+C;AAC/C,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;;;;AAED;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,oCAElD;IACA,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;;;;AAElE,iFAAiF;AACjF,qBAAa,mBAAoB,SAAQ,yBAEvC;IACA,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;;;;AAEL,+CAA+C;AAC/C,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;;;;AAED;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,oCAElD;IACA,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;CAC3C,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF"}
@@ -1,13 +1,4 @@
1
1
  import { Data } from "effect";
2
- /** The socket is not in the OPEN state when an RPC was attempted. */
3
- export class NotConnectedError extends Data.TaggedError("NotConnectedError") {
4
- }
5
- /** The RPC exceeded the per-call timeout without a response frame. */
6
- export class RpcTimeoutError extends Data.TaggedError("RpcTimeoutError") {
7
- }
8
- /** The server returned an `error` response frame. */
9
- export class RpcServerError extends Data.TaggedError("RpcServerError") {
10
- }
11
2
  /** Inbound frame failed to parse as JSON or did not match the expected shape. */
12
3
  export class MalformedFrameError extends Data.TaggedError("MalformedFrameError") {
13
4
  }