@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 +1 @@
1
- {"version":3,"file":"conformance-adapter.js","sourceRoot":"","sources":["../../src/test-utils/conformance-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conformance-adapter.js","sourceRoot":"","sources":["../../src/test-utils/conformance-adapter.ts"],"names":[],"mappings":"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"}
@@ -4,24 +4,18 @@
4
4
  *
5
5
  * Strategy: extend the real `MoltZapService`, keeping all stateful logic
6
6
  * intact, and override only `sendRpc` so every RPC is answered from a
7
- * canned-response map. The typed `setResponse` helper indexes by
8
- * `RpcMethodName` so a typo in the wire name is a compile error — unknown
9
- * methods fail *at compile time*, not at runtime.
7
+ * canned-response map. `setResponse` indexes by protocol descriptor so a
8
+ * typo in the wire name cannot compile.
10
9
  *
11
10
  * Motivation: the `sendToAgent` contract drift bug (A7) happened because a
12
11
  * hand-maintained mock drifted from the real wire shape. Typed method names
13
12
  * surface renames and additions to the RPC surface as compile errors across
14
13
  * every test that uses the fake.
15
14
  *
16
- * Two APIs:
17
- * (1) `setResponse(method, result)` — strict. `method` must be a
18
- * `RpcMethodName`; `result` must match `RpcMap[M]["result"]`.
19
- * (2) `responses` — the underlying `Map<string, unknown>`. Permissive,
20
- * preserved so existing callers that set unstyped shapes
21
- * (e.g. `{}` for a method whose real result has required fields)
22
- * keep working. Prefer `setResponse` in new code.
15
+ * Canned responses are validated through the descriptor's result schema before
16
+ * they are returned, matching the real transport boundary.
23
17
  */
24
- import type { EventFrame, Message, RpcMap, RpcMethodName } from "@moltzap/protocol";
18
+ import type { DecodedNotification, AnyNotificationDefinition, NotificationFrame, Message, ParamsOf, ResultOf, RpcDefinition, TSchema } from "@moltzap/protocol";
25
19
  import { Effect } from "effect";
26
20
  import { MoltZapService, type ServiceRpcError } from "../service.js";
27
21
  import type { RpcCallOptions } from "../ws-client.js";
@@ -31,50 +25,31 @@ export interface RecordedCall {
31
25
  params: unknown;
32
26
  opts?: RpcCallOptions;
33
27
  }
34
- /**
35
- * Strict canned-response registry shape. Methods must be known protocol
36
- * names; results must match their declared schema. Use via `setResponse` —
37
- * spelled out as a type so downstream consumers can compose their own
38
- * factories.
39
- */
40
- export type CannedResponses = Partial<{
41
- [M in RpcMethodName]: RpcMap[M]["result"] | ((params: RpcMap[M]["params"]) => RpcMap[M]["result"]);
42
- }>;
43
28
  export declare class FakeMoltZapService extends MoltZapService {
44
29
  calls: RecordedCall[];
45
- /**
46
- * Permissive response map. Prefer {@link setResponse} for typed
47
- * registration. Keep this as `Map<string, unknown>` so tests that pass
48
- * partial or loosely-shaped canned values — and tests that assert on
49
- * unknown-method rejection — keep working.
50
- */
51
- responses: Map<string, unknown>;
30
+ private readonly responses;
52
31
  constructor(opts?: {
53
32
  serverUrl?: string;
54
33
  agentKey?: string;
55
34
  });
56
35
  /**
57
- * Register a canned response, typed against the real RPC map. Unknown
58
- * method names are a compile error (`RpcMethodName` is a union literal),
59
- * and values must match `RpcMap[M]["result"]` — a schema change in the
60
- * protocol flows through to every test that sets a response for that
61
- * method.
36
+ * Register a canned response, typed against the real RPC descriptor.
62
37
  */
63
- setResponse<M extends RpcMethodName>(method: M, result: RpcMap[M]["result"] | ((params: RpcMap[M]["params"]) => RpcMap[M]["result"])): void;
38
+ setResponse<D extends RpcDefinition<string, TSchema, TSchema>>(definition: D, result: ResultOf<D>): void;
64
39
  /**
65
- * Remove a previously-registered response. Typed against `RpcMethodName`
66
- * so `deleteResponse("agents/lookpByName")` (typo) is a compile error.
40
+ * Remove a previously-registered response.
67
41
  */
68
- deleteResponse(method: RpcMethodName): void;
69
- sendRpc(method: string, params?: unknown, opts?: RpcCallOptions): Effect.Effect<unknown, ServiceRpcError>;
42
+ deleteResponse<D extends RpcDefinition<string, TSchema, TSchema>>(definition: D): void;
43
+ sendRpc<D extends RpcDefinition<string, TSchema, TSchema>>(definition: D, params: ParamsOf<D>, opts?: RpcCallOptions): Effect.Effect<ResultOf<D>, ServiceRpcError>;
70
44
  /**
71
45
  * Insert a message into the service's internal buffer without going
72
46
  * through the WebSocket path — used to stage state for context-building
73
47
  * tests.
74
48
  */
75
49
  addMessage(convId: string, msg: Message): void;
76
- /** Deliver a protocol event through the real service event handler. */
77
- emitEvent(event: EventFrame): void;
50
+ /** Deliver a protocol notification through the real service handler. */
51
+ emitEvent(event: NotificationFrame): void;
52
+ emitNotification(notification: DecodedNotification<AnyNotificationDefinition>): void;
78
53
  /** Pin an agent name in the internal cache without an RPC round-trip. */
79
54
  setAgentNameDirect(id: string, name: string): void;
80
55
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fake-service.d.ts","sourceRoot":"","sources":["../../src/test-utils/fake-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,MAAM,EACN,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAwB,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC;KACnC,CAAC,IAAI,aAAa,GACf,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GACnB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC3D,CAAC,CAAC;AAEH,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,KAAK,EAAE,YAAY,EAAE,CAAM;IAC3B;;;;;OAKG;IACH,SAAS,uBAA8B;gBAGrC,IAAI,GAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd;IAQR;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,aAAa,EACjC,MAAM,EAAE,CAAC,EACT,MAAM,EACF,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GACnB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GACzD,IAAI;IAIP;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAIlC,OAAO,CACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC;IAuB1C;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAY9C,uEAAuE;IACvE,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOlC,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMlD;;;;OAIG;IACH,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,mBAAmB,GAK9B;CACF"}
1
+ {"version":3,"file":"fake-service.d.ts","sourceRoot":"","sources":["../../src/test-utils/fake-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,OAAO,EACR,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,MAAM,EAAwB,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,KAAK,EAAE,YAAY,EAAE,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGtB;gBAGF,IAAI,GAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd;IAQR;;OAEG;IACH,WAAW,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAC3D,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAClB,IAAI;IAIP;;OAEG;IACH,cAAc,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAC9D,UAAU,EAAE,CAAC,GACZ,IAAI;IAIE,OAAO,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAChE,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EACnB,IAAI,CAAC,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC;IAkC9C;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAY9C,wEAAwE;IACxE,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAgBzC,gBAAgB,CACd,YAAY,EAAE,mBAAmB,CAAC,yBAAyB,CAAC,GAC3D,IAAI;IAIP,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQlD;;;;OAIG;IACH,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,mBAAmB,GAK9B;CACF"}
@@ -4,34 +4,23 @@
4
4
  *
5
5
  * Strategy: extend the real `MoltZapService`, keeping all stateful logic
6
6
  * intact, and override only `sendRpc` so every RPC is answered from a
7
- * canned-response map. The typed `setResponse` helper indexes by
8
- * `RpcMethodName` so a typo in the wire name is a compile error — unknown
9
- * methods fail *at compile time*, not at runtime.
7
+ * canned-response map. `setResponse` indexes by protocol descriptor so a
8
+ * typo in the wire name cannot compile.
10
9
  *
11
10
  * Motivation: the `sendToAgent` contract drift bug (A7) happened because a
12
11
  * hand-maintained mock drifted from the real wire shape. Typed method names
13
12
  * surface renames and additions to the RPC surface as compile errors across
14
13
  * every test that uses the fake.
15
14
  *
16
- * Two APIs:
17
- * (1) `setResponse(method, result)` — strict. `method` must be a
18
- * `RpcMethodName`; `result` must match `RpcMap[M]["result"]`.
19
- * (2) `responses` — the underlying `Map<string, unknown>`. Permissive,
20
- * preserved so existing callers that set unstyped shapes
21
- * (e.g. `{}` for a method whose real result has required fields)
22
- * keep working. Prefer `setResponse` in new code.
15
+ * Canned responses are validated through the descriptor's result schema before
16
+ * they are returned, matching the real transport boundary.
23
17
  */
18
+ import { decodeRpcResult, decodeNotification, ErrorCodes, notificationGroup, RpcServerError, } from "@moltzap/protocol";
24
19
  import { Effect, HashMap, Option, Ref } from "effect";
25
20
  import { MoltZapService } from "../service.js";
26
- import { RpcServerError } from "../runtime/errors.js";
21
+ import { testAgentId } from "./ids.js";
27
22
  export class FakeMoltZapService extends MoltZapService {
28
23
  calls = [];
29
- /**
30
- * Permissive response map. Prefer {@link setResponse} for typed
31
- * registration. Keep this as `Map<string, unknown>` so tests that pass
32
- * partial or loosely-shaped canned values — and tests that assert on
33
- * unknown-method rejection — keep working.
34
- */
35
24
  responses = new Map();
36
25
  constructor(opts = {}) {
37
26
  super({
@@ -40,34 +29,31 @@ export class FakeMoltZapService extends MoltZapService {
40
29
  });
41
30
  }
42
31
  /**
43
- * Register a canned response, typed against the real RPC map. Unknown
44
- * method names are a compile error (`RpcMethodName` is a union literal),
45
- * and values must match `RpcMap[M]["result"]` — a schema change in the
46
- * protocol flows through to every test that sets a response for that
47
- * method.
32
+ * Register a canned response, typed against the real RPC descriptor.
48
33
  */
49
- setResponse(method, result) {
50
- this.responses.set(method, result);
34
+ setResponse(definition, result) {
35
+ this.responses.set(definition.name, () => Effect.succeed(result));
51
36
  }
52
37
  /**
53
- * Remove a previously-registered response. Typed against `RpcMethodName`
54
- * so `deleteResponse("agents/lookpByName")` (typo) is a compile error.
38
+ * Remove a previously-registered response.
55
39
  */
56
- deleteResponse(method) {
57
- this.responses.delete(method);
40
+ deleteResponse(definition) {
41
+ this.responses.delete(definition.name);
58
42
  }
59
- sendRpc(method, params, opts) {
43
+ sendRpc(definition, params, opts) {
60
44
  return Effect.suspend(() => {
45
+ const method = definition.name;
61
46
  this.calls.push(opts === undefined ? { method, params } : { method, params, opts });
62
- if (this.responses.has(method)) {
63
- const entry = this.responses.get(method);
64
- if (typeof entry === "function") {
65
- return Effect.sync(() => entry(params));
66
- }
67
- return Effect.succeed(entry);
47
+ const responder = this.responses.get(method);
48
+ if (responder !== undefined) {
49
+ return responder(params).pipe(Effect.flatMap((result) => decodeRpcResult(definition, result).pipe(Effect.mapError(() => new RpcServerError({
50
+ code: ErrorCodes.InternalError,
51
+ message: `FakeMoltZapService: invalid result for ${method}`,
52
+ data: result,
53
+ })))));
68
54
  }
69
55
  return Effect.fail(new RpcServerError({
70
- code: -32601,
56
+ code: ErrorCodes.MethodNotFound,
71
57
  message: `FakeMoltZapService: no canned response for ${method}`,
72
58
  }));
73
59
  });
@@ -84,13 +70,21 @@ export class FakeMoltZapService extends MoltZapService {
84
70
  return HashMap.set(m, convId, [...existing, msg]);
85
71
  }));
86
72
  }
87
- /** Deliver a protocol event through the real service event handler. */
73
+ /** Deliver a protocol notification through the real service handler. */
88
74
  emitEvent(event) {
89
- Reflect.get(this, "handleEvent").call(this, event);
75
+ const notification = Effect.runSync(decodeNotification(notificationGroup, event).pipe(Effect.mapError(() => new RpcServerError({
76
+ code: ErrorCodes.InvalidParams,
77
+ message: `FakeMoltZapService: invalid notification ${event.method}`,
78
+ data: event.params,
79
+ }))));
80
+ this.emitNotification(notification);
81
+ }
82
+ emitNotification(notification) {
83
+ this.handleNotification(notification);
90
84
  }
91
85
  /** Pin an agent name in the internal cache without an RPC round-trip. */
92
86
  setAgentNameDirect(id, name) {
93
- Effect.runSync(Ref.update(this.parentAgentNamesRef, (m) => HashMap.set(m, id, name)));
87
+ Effect.runSync(Ref.update(this.parentAgentNamesRef, (m) => HashMap.set(m, testAgentId(id), name)));
94
88
  }
95
89
  /**
96
90
  * Typed views of the parent class's private Refs, exposed only to this
@@ -1 +1 @@
1
- {"version":3,"file":"fake-service.js","sourceRoot":"","sources":["../../src/test-utils/fake-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fake-service.js","sourceRoot":"","sources":["../../src/test-utils/fake-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { AgentId as AgentIdSchema, ConversationId as ConversationIdSchema, MessageId as MessageIdSchema, type Static } from "@moltzap/protocol";
2
+ type AgentId = Static<typeof AgentIdSchema>;
3
+ type ConversationId = Static<typeof ConversationIdSchema>;
4
+ type MessageId = Static<typeof MessageIdSchema>;
5
+ export declare const testAgentId: (label: string) => AgentId;
6
+ export declare const testConversationId: (label: string) => ConversationId;
7
+ export declare const testMessageId: (label: string) => MessageId;
8
+ export {};
9
+ //# sourceMappingURL=ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/test-utils/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,cAAc,IAAI,oBAAoB,EACtC,SAAS,IAAI,eAAe,EAI5B,KAAK,MAAM,EACZ,MAAM,mBAAmB,CAAC;AAE3B,KAAK,OAAO,GAAG,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAC5C,KAAK,cAAc,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAC1D,KAAK,SAAS,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAoDhD,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,OACV,CAAC;AAEnC,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,cACH,CAAC;AAEjD,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,SACR,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { AgentId as AgentIdSchema, ConversationId as ConversationIdSchema, MessageId as MessageIdSchema, agentId, conversationId, messageId, } from "@moltzap/protocol";
2
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
3
+ const HEX_ALPHABET = "0123456789abcdef";
4
+ const HEX_WORD = "00000000";
5
+ const UUID_GROUP = "0000";
6
+ const FNV_OFFSET_BASIS = Number("0x811c9dc5");
7
+ const FNV_PRIME = Number("0x01000193");
8
+ const HEX_RADIX = HEX_ALPHABET.length;
9
+ const HEX_WORD_WIDTH = HEX_WORD.length;
10
+ const UUID_FIRST_END = HEX_WORD.length;
11
+ const UUID_SECOND_END = UUID_FIRST_END + UUID_GROUP.length;
12
+ const UUID_VERSION_TAIL_START = UUID_SECOND_END + "0".length;
13
+ const UUID_VERSION_END = UUID_SECOND_END + UUID_GROUP.length;
14
+ const UUID_VARIANT_TAIL_START = UUID_VERSION_END + "0".length;
15
+ const UUID_VARIANT_END = UUID_VERSION_END + UUID_GROUP.length;
16
+ const UUID_TAIL_END = HEX_WORD.length * UUID_GROUP.length;
17
+ function hex32(input) {
18
+ let h1 = FNV_OFFSET_BASIS;
19
+ let h2 = FNV_PRIME;
20
+ for (let i = 0; i < input.length; i++) {
21
+ const c = input.charCodeAt(i);
22
+ h1 ^= c;
23
+ h1 = Math.imul(h1, FNV_PRIME);
24
+ h2 ^= c + i;
25
+ h2 = Math.imul(h2, FNV_OFFSET_BASIS);
26
+ }
27
+ const parts = [
28
+ h1,
29
+ h2,
30
+ Math.imul(h1 ^ h2, FNV_PRIME),
31
+ Math.imul(h1 + h2, FNV_OFFSET_BASIS),
32
+ ];
33
+ return parts
34
+ .map((p) => (p >>> 0).toString(HEX_RADIX).padStart(HEX_WORD_WIDTH, "0"))
35
+ .join("");
36
+ }
37
+ function uuidFor(namespace, label) {
38
+ if (UUID_RE.test(label))
39
+ return label;
40
+ const h = hex32(`${namespace}:${label}`);
41
+ return [
42
+ h.slice(0, UUID_FIRST_END),
43
+ h.slice(UUID_FIRST_END, UUID_SECOND_END),
44
+ `4${h.slice(UUID_VERSION_TAIL_START, UUID_VERSION_END)}`,
45
+ `8${h.slice(UUID_VARIANT_TAIL_START, UUID_VARIANT_END)}`,
46
+ h.slice(UUID_VARIANT_END, UUID_TAIL_END),
47
+ ].join("-");
48
+ }
49
+ export const testAgentId = (label) => agentId(uuidFor("agent", label));
50
+ export const testConversationId = (label) => conversationId(uuidFor("conversation", label));
51
+ export const testMessageId = (label) => messageId(uuidFor("message", label));
52
+ //# sourceMappingURL=ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/test-utils/ids.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,15 @@
1
1
  export { createFakeChannelService, type ChannelServiceEmit, type ChannelServiceState, type CreateFakeChannelServiceOptions, type FakeChannelService, } from "./channel-service-fixture.js";
2
- export { FakeMoltZapService, type CannedResponses, type RecordedCall, } from "./fake-service.js";
2
+ export { FakeMoltZapService, type RecordedCall } from "./fake-service.js";
3
3
  export { createMoltZapRealClientFactory, type RealClientFactoryOptions, } from "./conformance-adapter.js";
4
4
  import type { Message } from "@moltzap/protocol";
5
- export declare function buildMessage(overrides?: Partial<Message>): Message;
5
+ export { testAgentId, testConversationId, testMessageId } from "./ids.js";
6
+ type MessageFixtureOverrides = Omit<Partial<Message>, "id" | "conversationId" | "senderId" | "replyToId" | "taggedEntities"> & {
7
+ readonly id?: string;
8
+ readonly conversationId?: string;
9
+ readonly senderId?: string;
10
+ readonly replyToId?: string;
11
+ readonly taggedEntities?: ReadonlyArray<string>;
12
+ };
13
+ export declare function buildMessage(overrides?: MessageFixtureOverrides): Message;
6
14
  export declare function flushDispatchChain(): Promise<void>;
7
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,8BAA8B,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,wBAAgB,YAAY,CAAC,SAAS,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,OAAO,CAStE;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAIxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EACL,8BAA8B,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAU1E,KAAK,uBAAuB,GAAG,IAAI,CACjC,OAAO,CAAC,OAAO,CAAC,EAChB,IAAI,GAAG,gBAAgB,GAAG,UAAU,GAAG,WAAW,GAAG,gBAAgB,CACtE,GAAG;IACF,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;AAEF,wBAAgB,YAAY,CAAC,SAAS,GAAE,uBAA4B,GAAG,OAAO,CAe7E;AAED,wBAAgB,kBAAkB,kBAWjC"}
@@ -1,19 +1,35 @@
1
1
  export { createFakeChannelService, } from "./channel-service-fixture.js";
2
- export { FakeMoltZapService, } from "./fake-service.js";
2
+ export { FakeMoltZapService } from "./fake-service.js";
3
3
  export { createMoltZapRealClientFactory, } from "./conformance-adapter.js";
4
+ import { Data, Effect } from "effect";
5
+ import { testAgentId, testConversationId, testMessageId } from "./ids.js";
6
+ export { testAgentId, testConversationId, testMessageId } from "./ids.js";
7
+ const FLUSH_DISPATCH_TURNS = 20;
8
+ class FlushDispatchChainError extends Data.TaggedError("FlushDispatchChainError") {
9
+ }
4
10
  export function buildMessage(overrides = {}) {
11
+ const { id, conversationId, senderId, replyToId, taggedEntities, ...rest } = overrides;
5
12
  return {
6
- id: "msg-1",
7
- conversationId: "conv-1",
8
- senderId: "agent-alice",
13
+ id: testMessageId(id ?? "msg-1"),
14
+ conversationId: testConversationId(conversationId ?? "conv-1"),
15
+ senderId: testAgentId(senderId ?? "agent-alice"),
9
16
  parts: [{ type: "text", text: "hello" }],
10
17
  createdAt: "2026-04-10T12:00:00.000Z",
11
- ...overrides,
18
+ ...(replyToId !== undefined ? { replyToId: testMessageId(replyToId) } : {}),
19
+ ...(taggedEntities !== undefined
20
+ ? { taggedEntities: taggedEntities.map(testAgentId) }
21
+ : {}),
22
+ ...rest,
12
23
  };
13
24
  }
14
- export async function flushDispatchChain() {
15
- for (let i = 0; i < 20; i++) {
16
- await Promise.resolve();
17
- }
25
+ export function flushDispatchChain() {
26
+ return Effect.runPromise(Effect.gen(function* () {
27
+ for (let i = 0; i < FLUSH_DISPATCH_TURNS; i++) {
28
+ yield* Effect.tryPromise({
29
+ try: () => Promise.resolve(),
30
+ catch: (cause) => new FlushDispatchChainError({ cause }),
31
+ });
32
+ }
33
+ }));
18
34
  }
19
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAKzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,kBAAkB,GAGnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,8BAA8B,GAE/B,MAAM,0BAA0B,CAAC;AAIlC,MAAM,UAAU,YAAY,CAAC,YAA8B,EAAE;IAC3D,OAAO;QACL,EAAE,EAAE,OAAO;QACX,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACxC,SAAS,EAAE,0BAA0B;QACrC,GAAG,SAAS;KACF,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAKzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAqB,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EACL,8BAA8B,GAE/B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE1E,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,MAAM,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CACpD,yBAAyB,CAGzB;CAAG;AAaL,MAAM,UAAU,YAAY,CAAC,YAAqC,EAAE;IAClE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GACxE,SAAS,CAAC;IACZ,OAAO;QACL,EAAE,EAAE,aAAa,CAAC,EAAE,IAAI,OAAO,CAAC;QAChC,cAAc,EAAE,kBAAkB,CAAC,cAAc,IAAI,QAAQ,CAAC;QAC9D,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,aAAa,CAAC;QAChD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACxC,SAAS,EAAE,0BAA0B;QACrC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,cAAc,KAAK,SAAS;YAC9B,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACrD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,UAAU,CACtB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBACvB,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC5B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,uBAAuB,CAAC,EAAE,KAAK,EAAE,CAAC;aACzD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}