@moltzap/protocol 2026.401.0 → 2026.425.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 (287) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/rpc-registry.d.ts +446 -0
  6. package/dist/rpc-registry.d.ts.map +1 -0
  7. package/dist/rpc-registry.js +67 -0
  8. package/dist/rpc-registry.js.map +1 -0
  9. package/dist/rpc.d.ts +42 -0
  10. package/dist/rpc.d.ts.map +1 -0
  11. package/dist/rpc.js +29 -0
  12. package/dist/rpc.js.map +1 -0
  13. package/dist/schema/apps.d.ts +86 -0
  14. package/dist/schema/apps.d.ts.map +1 -0
  15. package/dist/schema/apps.js +77 -0
  16. package/dist/schema/apps.js.map +1 -0
  17. package/dist/schema/contacts.d.ts +8 -14
  18. package/dist/schema/contacts.d.ts.map +1 -1
  19. package/dist/schema/contacts.js +9 -15
  20. package/dist/schema/contacts.js.map +1 -1
  21. package/dist/schema/conversations.d.ts +15 -8
  22. package/dist/schema/conversations.d.ts.map +1 -1
  23. package/dist/schema/conversations.js +18 -7
  24. package/dist/schema/conversations.js.map +1 -1
  25. package/dist/schema/delivery.d.ts +1 -4
  26. package/dist/schema/delivery.d.ts.map +1 -1
  27. package/dist/schema/delivery.js +2 -3
  28. package/dist/schema/delivery.js.map +1 -1
  29. package/dist/schema/errors.d.ts +13 -0
  30. package/dist/schema/errors.d.ts.map +1 -1
  31. package/dist/schema/errors.js +14 -0
  32. package/dist/schema/errors.js.map +1 -1
  33. package/dist/schema/events.d.ts +112 -85
  34. package/dist/schema/events.d.ts.map +1 -1
  35. package/dist/schema/events.js +84 -25
  36. package/dist/schema/events.js.map +1 -1
  37. package/dist/schema/identity.d.ts +26 -15
  38. package/dist/schema/identity.d.ts.map +1 -1
  39. package/dist/schema/identity.js +10 -14
  40. package/dist/schema/identity.js.map +1 -1
  41. package/dist/schema/index.d.ts +4 -2
  42. package/dist/schema/index.d.ts.map +1 -1
  43. package/dist/schema/index.js +4 -2
  44. package/dist/schema/index.js.map +1 -1
  45. package/dist/schema/messages.d.ts +3 -7
  46. package/dist/schema/messages.d.ts.map +1 -1
  47. package/dist/schema/messages.js +4 -6
  48. package/dist/schema/messages.js.map +1 -1
  49. package/dist/schema/methods/apps.d.ts +123 -0
  50. package/dist/schema/methods/apps.d.ts.map +1 -0
  51. package/dist/schema/methods/apps.js +93 -0
  52. package/dist/schema/methods/apps.js.map +1 -0
  53. package/dist/schema/methods/auth.d.ts +110 -79
  54. package/dist/schema/methods/auth.d.ts.map +1 -1
  55. package/dist/schema/methods/auth.js +88 -91
  56. package/dist/schema/methods/auth.js.map +1 -1
  57. package/dist/schema/methods/contacts.d.ts +39 -66
  58. package/dist/schema/methods/contacts.d.ts.map +1 -1
  59. package/dist/schema/methods/contacts.js +35 -29
  60. package/dist/schema/methods/contacts.js.map +1 -1
  61. package/dist/schema/methods/conversations.d.ts +48 -52
  62. package/dist/schema/methods/conversations.d.ts.map +1 -1
  63. package/dist/schema/methods/conversations.js +89 -38
  64. package/dist/schema/methods/conversations.js.map +1 -1
  65. package/dist/schema/methods/invites.d.ts +1 -3
  66. package/dist/schema/methods/invites.d.ts.map +1 -1
  67. package/dist/schema/methods/invites.js +8 -1
  68. package/dist/schema/methods/invites.js.map +1 -1
  69. package/dist/schema/methods/messages.d.ts +12 -44
  70. package/dist/schema/methods/messages.d.ts.map +1 -1
  71. package/dist/schema/methods/messages.js +22 -28
  72. package/dist/schema/methods/messages.js.map +1 -1
  73. package/dist/schema/methods/presence.d.ts +7 -22
  74. package/dist/schema/methods/presence.d.ts.map +1 -1
  75. package/dist/schema/methods/presence.js +12 -6
  76. package/dist/schema/methods/presence.js.map +1 -1
  77. package/dist/schema/methods/push.d.ts +8 -6
  78. package/dist/schema/methods/push.d.ts.map +1 -1
  79. package/dist/schema/methods/push.js +20 -7
  80. package/dist/schema/methods/push.js.map +1 -1
  81. package/dist/schema/methods/system.d.ts +4 -0
  82. package/dist/schema/methods/system.d.ts.map +1 -0
  83. package/dist/schema/methods/system.js +11 -0
  84. package/dist/schema/methods/system.js.map +1 -0
  85. package/dist/schema/presence.d.ts +1 -12
  86. package/dist/schema/presence.d.ts.map +1 -1
  87. package/dist/schema/presence.js +2 -7
  88. package/dist/schema/presence.js.map +1 -1
  89. package/dist/schema/surfaces.d.ts +31 -25
  90. package/dist/schema/surfaces.d.ts.map +1 -1
  91. package/dist/schema/surfaces.js +40 -21
  92. package/dist/schema/surfaces.js.map +1 -1
  93. package/dist/testing/agent-registration.d.ts +49 -0
  94. package/dist/testing/agent-registration.d.ts.map +1 -0
  95. package/dist/testing/agent-registration.js +77 -0
  96. package/dist/testing/agent-registration.js.map +1 -0
  97. package/dist/testing/arbitraries/frames.d.ts +24 -0
  98. package/dist/testing/arbitraries/frames.d.ts.map +1 -0
  99. package/dist/testing/arbitraries/frames.js +36 -0
  100. package/dist/testing/arbitraries/frames.js.map +1 -0
  101. package/dist/testing/arbitraries/from-typebox.d.ts +37 -0
  102. package/dist/testing/arbitraries/from-typebox.d.ts.map +1 -0
  103. package/dist/testing/arbitraries/from-typebox.js +131 -0
  104. package/dist/testing/arbitraries/from-typebox.js.map +1 -0
  105. package/dist/testing/arbitraries/index.d.ts +4 -0
  106. package/dist/testing/arbitraries/index.d.ts.map +1 -0
  107. package/dist/testing/arbitraries/index.js +4 -0
  108. package/dist/testing/arbitraries/index.js.map +1 -0
  109. package/dist/testing/arbitraries/rpc.d.ts +66 -0
  110. package/dist/testing/arbitraries/rpc.d.ts.map +1 -0
  111. package/dist/testing/arbitraries/rpc.js +98 -0
  112. package/dist/testing/arbitraries/rpc.js.map +1 -0
  113. package/dist/testing/canonicalize.d.ts +38 -0
  114. package/dist/testing/canonicalize.d.ts.map +1 -0
  115. package/dist/testing/canonicalize.js +55 -0
  116. package/dist/testing/canonicalize.js.map +1 -0
  117. package/dist/testing/captures.d.ts +61 -0
  118. package/dist/testing/captures.d.ts.map +1 -0
  119. package/dist/testing/captures.js +99 -0
  120. package/dist/testing/captures.js.map +1 -0
  121. package/dist/testing/codec.d.ts +44 -0
  122. package/dist/testing/codec.d.ts.map +1 -0
  123. package/dist/testing/codec.js +170 -0
  124. package/dist/testing/codec.js.map +1 -0
  125. package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.d.ts +6 -0
  126. package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.d.ts.map +1 -0
  127. package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.js +33 -0
  128. package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.js.map +1 -0
  129. package/dist/testing/conformance/adversity.d.ts +36 -0
  130. package/dist/testing/conformance/adversity.d.ts.map +1 -0
  131. package/dist/testing/conformance/adversity.js +360 -0
  132. package/dist/testing/conformance/adversity.js.map +1 -0
  133. package/dist/testing/conformance/boundary.d.ts +56 -0
  134. package/dist/testing/conformance/boundary.d.ts.map +1 -0
  135. package/dist/testing/conformance/boundary.js +129 -0
  136. package/dist/testing/conformance/boundary.js.map +1 -0
  137. package/dist/testing/conformance/client/_fixtures.d.ts +71 -0
  138. package/dist/testing/conformance/client/_fixtures.d.ts.map +1 -0
  139. package/dist/testing/conformance/client/_fixtures.js +102 -0
  140. package/dist/testing/conformance/client/_fixtures.js.map +1 -0
  141. package/dist/testing/conformance/client/adversity.d.ts +39 -0
  142. package/dist/testing/conformance/client/adversity.d.ts.map +1 -0
  143. package/dist/testing/conformance/client/adversity.js +162 -0
  144. package/dist/testing/conformance/client/adversity.js.map +1 -0
  145. package/dist/testing/conformance/client/boundary.d.ts +12 -0
  146. package/dist/testing/conformance/client/boundary.d.ts.map +1 -0
  147. package/dist/testing/conformance/client/boundary.js +68 -0
  148. package/dist/testing/conformance/client/boundary.js.map +1 -0
  149. package/dist/testing/conformance/client/delivery.d.ts +38 -0
  150. package/dist/testing/conformance/client/delivery.d.ts.map +1 -0
  151. package/dist/testing/conformance/client/delivery.js +202 -0
  152. package/dist/testing/conformance/client/delivery.js.map +1 -0
  153. package/dist/testing/conformance/client/index.d.ts +16 -0
  154. package/dist/testing/conformance/client/index.d.ts.map +1 -0
  155. package/dist/testing/conformance/client/index.js +16 -0
  156. package/dist/testing/conformance/client/index.js.map +1 -0
  157. package/dist/testing/conformance/client/rpc-semantics.d.ts +26 -0
  158. package/dist/testing/conformance/client/rpc-semantics.d.ts.map +1 -0
  159. package/dist/testing/conformance/client/rpc-semantics.js +145 -0
  160. package/dist/testing/conformance/client/rpc-semantics.js.map +1 -0
  161. package/dist/testing/conformance/client/runner.d.ts +258 -0
  162. package/dist/testing/conformance/client/runner.d.ts.map +1 -0
  163. package/dist/testing/conformance/client/runner.js +228 -0
  164. package/dist/testing/conformance/client/runner.js.map +1 -0
  165. package/dist/testing/conformance/client/schema-conformance.d.ts +25 -0
  166. package/dist/testing/conformance/client/schema-conformance.d.ts.map +1 -0
  167. package/dist/testing/conformance/client/schema-conformance.js +123 -0
  168. package/dist/testing/conformance/client/schema-conformance.js.map +1 -0
  169. package/dist/testing/conformance/client/suite.d.ts +90 -0
  170. package/dist/testing/conformance/client/suite.d.ts.map +1 -0
  171. package/dist/testing/conformance/client/suite.js +209 -0
  172. package/dist/testing/conformance/client/suite.js.map +1 -0
  173. package/dist/testing/conformance/coverage-policy.d.ts +8 -0
  174. package/dist/testing/conformance/coverage-policy.d.ts.map +1 -0
  175. package/dist/testing/conformance/coverage-policy.js +10 -0
  176. package/dist/testing/conformance/coverage-policy.js.map +1 -0
  177. package/dist/testing/conformance/delivery.d.ts +40 -0
  178. package/dist/testing/conformance/delivery.d.ts.map +1 -0
  179. package/dist/testing/conformance/delivery.js +231 -0
  180. package/dist/testing/conformance/delivery.js.map +1 -0
  181. package/dist/testing/conformance/env.d.ts +3 -0
  182. package/dist/testing/conformance/env.d.ts.map +1 -0
  183. package/dist/testing/conformance/env.js +14 -0
  184. package/dist/testing/conformance/env.js.map +1 -0
  185. package/dist/testing/conformance/index.d.ts +10 -0
  186. package/dist/testing/conformance/index.d.ts.map +1 -0
  187. package/dist/testing/conformance/index.js +10 -0
  188. package/dist/testing/conformance/index.js.map +1 -0
  189. package/dist/testing/conformance/registry.d.ts +93 -0
  190. package/dist/testing/conformance/registry.d.ts.map +1 -0
  191. package/dist/testing/conformance/registry.js +62 -0
  192. package/dist/testing/conformance/registry.js.map +1 -0
  193. package/dist/testing/conformance/rpc-semantics.d.ts +67 -0
  194. package/dist/testing/conformance/rpc-semantics.d.ts.map +1 -0
  195. package/dist/testing/conformance/rpc-semantics.js +394 -0
  196. package/dist/testing/conformance/rpc-semantics.js.map +1 -0
  197. package/dist/testing/conformance/runner.d.ts +78 -0
  198. package/dist/testing/conformance/runner.d.ts.map +1 -0
  199. package/dist/testing/conformance/runner.js +65 -0
  200. package/dist/testing/conformance/runner.js.map +1 -0
  201. package/dist/testing/conformance/schema-conformance.d.ts +30 -0
  202. package/dist/testing/conformance/schema-conformance.d.ts.map +1 -0
  203. package/dist/testing/conformance/schema-conformance.js +229 -0
  204. package/dist/testing/conformance/schema-conformance.js.map +1 -0
  205. package/dist/testing/conformance/suite.d.ts +92 -0
  206. package/dist/testing/conformance/suite.d.ts.map +1 -0
  207. package/dist/testing/conformance/suite.js +233 -0
  208. package/dist/testing/conformance/suite.js.map +1 -0
  209. package/dist/testing/errors.d.ts +78 -0
  210. package/dist/testing/errors.d.ts.map +1 -0
  211. package/dist/testing/errors.js +34 -0
  212. package/dist/testing/errors.js.map +1 -0
  213. package/dist/testing/index.d.ts +25 -0
  214. package/dist/testing/index.d.ts.map +1 -0
  215. package/dist/testing/index.js +37 -0
  216. package/dist/testing/index.js.map +1 -0
  217. package/dist/testing/models/dispatch.d.ts +61 -0
  218. package/dist/testing/models/dispatch.d.ts.map +1 -0
  219. package/dist/testing/models/dispatch.js +197 -0
  220. package/dist/testing/models/dispatch.js.map +1 -0
  221. package/dist/testing/models/index.d.ts +3 -0
  222. package/dist/testing/models/index.d.ts.map +1 -0
  223. package/dist/testing/models/index.js +3 -0
  224. package/dist/testing/models/index.js.map +1 -0
  225. package/dist/testing/models/state.d.ts +37 -0
  226. package/dist/testing/models/state.d.ts.map +1 -0
  227. package/dist/testing/models/state.js +14 -0
  228. package/dist/testing/models/state.js.map +1 -0
  229. package/dist/testing/test-client.d.ts +70 -0
  230. package/dist/testing/test-client.d.ts.map +1 -0
  231. package/dist/testing/test-client.js +266 -0
  232. package/dist/testing/test-client.js.map +1 -0
  233. package/dist/testing/test-server.d.ts +62 -0
  234. package/dist/testing/test-server.d.ts.map +1 -0
  235. package/dist/testing/test-server.js +134 -0
  236. package/dist/testing/test-server.js.map +1 -0
  237. package/dist/testing/toxics/client.d.ts +52 -0
  238. package/dist/testing/toxics/client.d.ts.map +1 -0
  239. package/dist/testing/toxics/client.js +120 -0
  240. package/dist/testing/toxics/client.js.map +1 -0
  241. package/dist/testing/toxics/defaults.d.ts +43 -0
  242. package/dist/testing/toxics/defaults.d.ts.map +1 -0
  243. package/dist/testing/toxics/defaults.js +9 -0
  244. package/dist/testing/toxics/defaults.js.map +1 -0
  245. package/dist/testing/toxics/index.d.ts +4 -0
  246. package/dist/testing/toxics/index.d.ts.map +1 -0
  247. package/dist/testing/toxics/index.js +4 -0
  248. package/dist/testing/toxics/index.js.map +1 -0
  249. package/dist/testing/toxics/profile.d.ts +69 -0
  250. package/dist/testing/toxics/profile.d.ts.map +1 -0
  251. package/dist/testing/toxics/profile.js +57 -0
  252. package/dist/testing/toxics/profile.js.map +1 -0
  253. package/dist/types.d.ts +7 -11
  254. package/dist/types.d.ts.map +1 -1
  255. package/dist/types.js +3 -0
  256. package/dist/types.js.map +1 -1
  257. package/dist/validators.d.ts +49 -174
  258. package/dist/validators.d.ts.map +1 -1
  259. package/dist/validators.js +77 -47
  260. package/dist/validators.js.map +1 -1
  261. package/dist/version.d.ts +1 -1
  262. package/dist/version.js +1 -1
  263. package/package.json +18 -40
  264. package/dist/optional/contact-events.d.ts +0 -3
  265. package/dist/optional/contact-events.d.ts.map +0 -1
  266. package/dist/optional/contact-events.js +0 -5
  267. package/dist/optional/contact-events.js.map +0 -1
  268. package/dist/optional/contact-methods.d.ts +0 -5
  269. package/dist/optional/contact-methods.d.ts.map +0 -1
  270. package/dist/optional/contact-methods.js +0 -5
  271. package/dist/optional/contact-methods.js.map +0 -1
  272. package/dist/phone-hash.d.ts +0 -10
  273. package/dist/phone-hash.d.ts.map +0 -1
  274. package/dist/phone-hash.js +0 -17
  275. package/dist/phone-hash.js.map +0 -1
  276. package/dist/schema/methods/phone-contacts.d.ts +0 -26
  277. package/dist/schema/methods/phone-contacts.d.ts.map +0 -1
  278. package/dist/schema/methods/phone-contacts.js +0 -10
  279. package/dist/schema/methods/phone-contacts.js.map +0 -1
  280. package/dist/test-client.d.ts +0 -34
  281. package/dist/test-client.d.ts.map +0 -1
  282. package/dist/test-client.js +0 -176
  283. package/dist/test-client.js.map +0 -1
  284. package/dist/test-fixtures/phone-hashes.d.ts +0 -18
  285. package/dist/test-fixtures/phone-hashes.d.ts.map +0 -1
  286. package/dist/test-fixtures/phone-hashes.js +0 -24
  287. package/dist/test-fixtures/phone-hashes.js.map +0 -1
@@ -1,57 +1,87 @@
1
1
  import Ajv from "ajv";
2
2
  import addFormats from "ajv-formats";
3
- import { RequestFrameSchema, ResponseFrameSchema, EventFrameSchema, RegisterParamsSchema, InviteAgentParamsSchema, ConnectParamsSchema, SelectAgentParamsSchema, AgentsLookupParamsSchema, AgentsLookupByNameParamsSchema, UsersLookupParamsSchema, UsersUpdateProfileParamsSchema, MessagesSendParamsSchema, MessagesListParamsSchema, MessagesReadParamsSchema, MessagesReactParamsSchema, MessagesDeleteParamsSchema, ContactsListParamsSchema, ContactsAddParamsSchema, ContactsAcceptParamsSchema, ContactIdParamsSchema, ContactsDiscoverParamsSchema, ContactsSyncParamsSchema, ConversationsCreateParamsSchema, ConversationsListParamsSchema, ConversationsGetParamsSchema, ConversationsUpdateParamsSchema, ConversationsMuteParamsSchema, ConversationsAddParticipantParamsSchema, ConversationsRemoveParticipantParamsSchema, ConversationsLeaveParamsSchema, ConversationsUnmuteParamsSchema, InvitesCreateAgentParamsSchema, PresenceUpdateParamsSchema, PresenceSubscribeParamsSchema, TypingSendParamsSchema, PushRegisterParamsSchema, PushUnregisterParamsSchema, SurfaceUpdateParamsSchema, SurfaceGetParamsSchema, SurfaceActionParamsSchema, SurfaceClearParamsSchema, PushPreferencesSchema, } from "./schema/index.js";
3
+ import { RequestFrameSchema, ResponseFrameSchema, EventFrameSchema, } from "./schema/index.js";
4
+ import { PushPreferencesSchema } from "./schema/methods/push.js";
5
+ import { Register, InviteAgent, Connect, SelectAgent, AgentsLookup, AgentsLookupByName, AgentsList, } from "./schema/methods/auth.js";
6
+ import { MessagesSend, MessagesList } from "./schema/methods/messages.js";
7
+ import { ContactsList, ContactsAdd, ContactsAccept, ContactId_, } from "./schema/methods/contacts.js";
8
+ import { ConversationsCreate, ConversationsList, ConversationsGet, ConversationsUpdate, ConversationsMute, ConversationsAddParticipant, ConversationsRemoveParticipant, ConversationsLeave, ConversationsUnmute, ConversationsArchive, ConversationsUnarchive, } from "./schema/methods/conversations.js";
9
+ import { InvitesCreateAgent } from "./schema/methods/invites.js";
10
+ import { PresenceUpdate, PresenceSubscribe, } from "./schema/methods/presence.js";
11
+ import { PushRegister, PushUnregister } from "./schema/methods/push.js";
12
+ import { SurfaceUpdate, SurfaceGet, SurfaceAction, SurfaceClear, } from "./schema/surfaces.js";
13
+ import { AppsRegister, AppsCreate, AppsAttestSkill, PermissionsGrant, PermissionsList, PermissionsRevoke, AppsCloseSession, AppsGetSession, AppsListSessions, } from "./schema/methods/apps.js";
14
+ import { SystemPing } from "./schema/methods/system.js";
15
+ /**
16
+ * This AJV instance handles frame-level validation only. Each RPC
17
+ * manifest carries its own pre-compiled `validateParams` (compiled once
18
+ * inside `defineRpc`), which is what the router dispatches against.
19
+ */
4
20
  const ajv = addFormats(new Ajv({ strict: true, allErrors: true }));
21
+ /**
22
+ * Named validator table. Every RPC manifest's `validateParams` is re-exported
23
+ * here under the legacy `xxxParams` key so existing call sites keep working.
24
+ * Frame validators (`requestFrame`, `responseFrame`, `eventFrame`) live here
25
+ * because they're not RPC methods.
26
+ */
5
27
  export const validators = {
28
+ // Frames.
6
29
  requestFrame: ajv.compile(RequestFrameSchema),
7
30
  responseFrame: ajv.compile(ResponseFrameSchema),
8
31
  eventFrame: ajv.compile(EventFrameSchema),
9
- // Auth
10
- registerParams: ajv.compile(RegisterParamsSchema),
11
- inviteAgentParams: ajv.compile(InviteAgentParamsSchema),
12
- connectParams: ajv.compile(ConnectParamsSchema),
13
- selectAgentParams: ajv.compile(SelectAgentParamsSchema),
14
- agentsLookupParams: ajv.compile(AgentsLookupParamsSchema),
15
- agentsLookupByNameParams: ajv.compile(AgentsLookupByNameParamsSchema),
16
- usersLookupParams: ajv.compile(UsersLookupParamsSchema),
17
- usersUpdateProfileParams: ajv.compile(UsersUpdateProfileParamsSchema),
18
- // Messages
19
- messagesSendParams: ajv.compile(MessagesSendParamsSchema),
20
- messagesListParams: ajv.compile(MessagesListParamsSchema),
21
- messagesReadParams: ajv.compile(MessagesReadParamsSchema),
22
- messagesReactParams: ajv.compile(MessagesReactParamsSchema),
23
- messagesDeleteParams: ajv.compile(MessagesDeleteParamsSchema),
24
- // Contacts
25
- contactsListParams: ajv.compile(ContactsListParamsSchema),
26
- contactsAddParams: ajv.compile(ContactsAddParamsSchema),
27
- contactsAcceptParams: ajv.compile(ContactsAcceptParamsSchema),
28
- contactIdParams: ajv.compile(ContactIdParamsSchema),
29
- contactsDiscoverParams: ajv.compile(ContactsDiscoverParamsSchema),
30
- contactsSyncParams: ajv.compile(ContactsSyncParamsSchema),
31
- // Conversations
32
- conversationsCreateParams: ajv.compile(ConversationsCreateParamsSchema),
33
- conversationsListParams: ajv.compile(ConversationsListParamsSchema),
34
- conversationsGetParams: ajv.compile(ConversationsGetParamsSchema),
35
- conversationsUpdateParams: ajv.compile(ConversationsUpdateParamsSchema),
36
- conversationsMuteParams: ajv.compile(ConversationsMuteParamsSchema),
37
- conversationsAddParticipantParams: ajv.compile(ConversationsAddParticipantParamsSchema),
38
- conversationsRemoveParticipantParams: ajv.compile(ConversationsRemoveParticipantParamsSchema),
39
- conversationsLeaveParams: ajv.compile(ConversationsLeaveParamsSchema),
40
- conversationsUnmuteParams: ajv.compile(ConversationsUnmuteParamsSchema),
41
- // Invites
42
- invitesCreateAgentParams: ajv.compile(InvitesCreateAgentParamsSchema),
43
- // Presence
44
- presenceUpdateParams: ajv.compile(PresenceUpdateParamsSchema),
45
- presenceSubscribeParams: ajv.compile(PresenceSubscribeParamsSchema),
46
- typingSendParams: ajv.compile(TypingSendParamsSchema),
47
- // Push
48
- pushRegisterParams: ajv.compile(PushRegisterParamsSchema),
49
- pushUnregisterParams: ajv.compile(PushUnregisterParamsSchema),
50
- // Surfaces
51
- surfaceUpdateParams: ajv.compile(SurfaceUpdateParamsSchema),
52
- surfaceGetParams: ajv.compile(SurfaceGetParamsSchema),
53
- surfaceActionParams: ajv.compile(SurfaceActionParamsSchema),
54
- surfaceClearParams: ajv.compile(SurfaceClearParamsSchema),
32
+ // Auth.
33
+ registerParams: Register.validateParams,
34
+ inviteAgentParams: InviteAgent.validateParams,
35
+ connectParams: Connect.validateParams,
36
+ selectAgentParams: SelectAgent.validateParams,
37
+ agentsLookupParams: AgentsLookup.validateParams,
38
+ agentsLookupByNameParams: AgentsLookupByName.validateParams,
39
+ agentsListParams: AgentsList.validateParams,
40
+ // Messages.
41
+ messagesSendParams: MessagesSend.validateParams,
42
+ messagesListParams: MessagesList.validateParams,
43
+ // Contacts.
44
+ contactsListParams: ContactsList.validateParams,
45
+ contactsAddParams: ContactsAdd.validateParams,
46
+ contactsAcceptParams: ContactsAccept.validateParams,
47
+ contactIdParams: ContactId_.validateParams,
48
+ // Conversations.
49
+ conversationsCreateParams: ConversationsCreate.validateParams,
50
+ conversationsListParams: ConversationsList.validateParams,
51
+ conversationsGetParams: ConversationsGet.validateParams,
52
+ conversationsUpdateParams: ConversationsUpdate.validateParams,
53
+ conversationsMuteParams: ConversationsMute.validateParams,
54
+ conversationsAddParticipantParams: ConversationsAddParticipant.validateParams,
55
+ conversationsRemoveParticipantParams: ConversationsRemoveParticipant.validateParams,
56
+ conversationsLeaveParams: ConversationsLeave.validateParams,
57
+ conversationsUnmuteParams: ConversationsUnmute.validateParams,
58
+ conversationsArchiveParams: ConversationsArchive.validateParams,
59
+ conversationsUnarchiveParams: ConversationsUnarchive.validateParams,
60
+ // Invites.
61
+ invitesCreateAgentParams: InvitesCreateAgent.validateParams,
62
+ // Presence.
63
+ presenceUpdateParams: PresenceUpdate.validateParams,
64
+ presenceSubscribeParams: PresenceSubscribe.validateParams,
65
+ // Push.
66
+ pushRegisterParams: PushRegister.validateParams,
67
+ pushUnregisterParams: PushUnregister.validateParams,
55
68
  pushPreferencesParams: ajv.compile(PushPreferencesSchema),
69
+ // Surfaces.
70
+ surfaceUpdateParams: SurfaceUpdate.validateParams,
71
+ surfaceGetParams: SurfaceGet.validateParams,
72
+ surfaceActionParams: SurfaceAction.validateParams,
73
+ surfaceClearParams: SurfaceClear.validateParams,
74
+ // Apps.
75
+ appsRegisterParams: AppsRegister.validateParams,
76
+ appsCreateParams: AppsCreate.validateParams,
77
+ appsAttestSkillParams: AppsAttestSkill.validateParams,
78
+ permissionsGrantParams: PermissionsGrant.validateParams,
79
+ permissionsListParams: PermissionsList.validateParams,
80
+ permissionsRevokeParams: PermissionsRevoke.validateParams,
81
+ appsCloseSessionParams: AppsCloseSession.validateParams,
82
+ appsGetSessionParams: AppsGetSession.validateParams,
83
+ appsListSessionsParams: AppsListSessions.validateParams,
84
+ // System.
85
+ systemPingParams: SystemPing.validateParams,
56
86
  };
57
87
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const PROTOCOL_VERSION = "2026.401.0";
1
+ export declare const PROTOCOL_VERSION = "2026.425.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Auto-bumped by publish workflow
2
- export const PROTOCOL_VERSION = "2026.401.0";
2
+ export const PROTOCOL_VERSION = "2026.425.0";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@moltzap/protocol",
3
- "version": "2026.401.0",
3
+ "version": "2026.425.0",
4
4
  "description": "Protocol types and validators for MoltZap messaging",
5
- "license": "MIT",
5
+ "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/chughtapan/moltzap"
8
+ "url": "git+https://github.com/chughtapan/moltzap.git"
9
9
  },
10
10
  "type": "module",
11
11
  "files": [
@@ -22,52 +22,30 @@
22
22
  "types": "./dist/schema/index.d.ts",
23
23
  "import": "./dist/schema/index.js"
24
24
  },
25
- "./phone-hash": {
26
- "types": "./dist/phone-hash.d.ts",
27
- "import": "./dist/phone-hash.js"
28
- },
29
- "./test-client": {
30
- "types": "./dist/test-client.d.ts",
31
- "import": "./dist/test-client.js"
32
- },
33
- "./test-fixtures/phone-hashes": {
34
- "types": "./dist/test-fixtures/phone-hashes.d.ts",
35
- "import": "./dist/test-fixtures/phone-hashes.js"
36
- },
37
- "./contact-events": {
38
- "types": "./dist/optional/contact-events.d.ts",
39
- "import": "./dist/optional/contact-events.js"
40
- },
41
- "./contact-methods": {
42
- "types": "./dist/optional/contact-methods.d.ts",
43
- "import": "./dist/optional/contact-methods.js"
25
+ "./testing": {
26
+ "types": "./dist/testing/index.d.ts",
27
+ "import": "./dist/testing/index.js"
44
28
  }
45
29
  },
46
- "peerDependencies": {
47
- "ws": "^8.0.0"
48
- },
49
- "peerDependenciesMeta": {
50
- "ws": {
51
- "optional": true
52
- }
30
+ "scripts": {
31
+ "build": "tsc",
32
+ "test": "vitest run",
33
+ "test:watch": "vitest",
34
+ "generate-schema": "tsx scripts/generate-json-schema.ts"
53
35
  },
54
36
  "dependencies": {
55
37
  "@sinclair/typebox": "^0.34.0",
56
38
  "ajv": "^8.17.0",
57
- "ajv-formats": "^3.0.0"
39
+ "ajv-formats": "^3.0.0",
40
+ "effect": "3.21.0"
58
41
  },
59
42
  "devDependencies": {
43
+ "@effect/platform": "^0.96.0",
44
+ "@effect/platform-node": "^0.106.0",
60
45
  "@types/node": "^25.5.0",
61
- "@types/ws": "^8.5.0",
46
+ "fast-check": "^4.6.0",
62
47
  "tsx": "^4.19.0",
63
48
  "typescript": "^5.7.0",
64
- "vitest": "^3.0.0",
65
- "ws": "^8.18.0"
66
- },
67
- "scripts": {
68
- "build": "tsc",
69
- "test": "vitest run",
70
- "test:watch": "vitest",
71
- "generate-schema": "tsx scripts/generate-json-schema.ts"
49
+ "vitest": "^3.0.0"
72
50
  }
73
- }
51
+ }
@@ -1,3 +0,0 @@
1
- export { ContactRequestEventSchema, ContactAcceptedEventSchema, } from "../schema/events.js";
2
- export { EventNames } from "../schema/events.js";
3
- //# sourceMappingURL=contact-events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contact-events.d.ts","sourceRoot":"","sources":["../../src/optional/contact-events.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,5 +0,0 @@
1
- // Contact-specific events — optional subpath export
2
- // Import via "@moltzap/protocol/contact-events" or from the main entry (backward compat)
3
- export { ContactRequestEventSchema, ContactAcceptedEventSchema, } from "../schema/events.js";
4
- export { EventNames } from "../schema/events.js";
5
- //# sourceMappingURL=contact-events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contact-events.js","sourceRoot":"","sources":["../../src/optional/contact-events.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,yFAAyF;AACzF,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,5 +0,0 @@
1
- export { ContactsListParamsSchema, ContactsListResultSchema, ContactsAddParamsSchema, ContactsAddResultSchema, ContactsAcceptParamsSchema, ContactsAcceptResultSchema, ContactIdParamsSchema, ContactsDiscoverParamsSchema, ContactsDiscoverResultSchema, EmptyResultSchema, } from "../schema/methods/contacts.js";
2
- export type { ContactsListParams, ContactsListResult, ContactsAddParams, ContactsAddResult, ContactsAcceptParams, ContactsAcceptResult, ContactIdParams, ContactsDiscoverParams, ContactsDiscoverResult, } from "../schema/methods/contacts.js";
3
- export { ContactsSyncParamsSchema, ContactsSyncResultSchema, } from "../schema/methods/phone-contacts.js";
4
- export type { ContactsSyncParams, ContactsSyncResult, } from "../schema/methods/phone-contacts.js";
5
- //# sourceMappingURL=contact-methods.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contact-methods.d.ts","sourceRoot":"","sources":["../../src/optional/contact-methods.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,qCAAqC,CAAC;AAE7C,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC"}
@@ -1,5 +0,0 @@
1
- // Contact-specific RPC method schemas — optional subpath export
2
- // Import via "@moltzap/protocol/contact-methods" or from the main entry (backward compat)
3
- export { ContactsListParamsSchema, ContactsListResultSchema, ContactsAddParamsSchema, ContactsAddResultSchema, ContactsAcceptParamsSchema, ContactsAcceptResultSchema, ContactIdParamsSchema, ContactsDiscoverParamsSchema, ContactsDiscoverResultSchema, EmptyResultSchema, } from "../schema/methods/contacts.js";
4
- export { ContactsSyncParamsSchema, ContactsSyncResultSchema, } from "../schema/methods/phone-contacts.js";
5
- //# sourceMappingURL=contact-methods.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contact-methods.js","sourceRoot":"","sources":["../../src/optional/contact-methods.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,0FAA0F;AAC1F,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAcvC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,qCAAqC,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Ensure phone has E.164 '+' prefix.
3
- * GoTrue strips '+' from phone numbers in API responses.
4
- */
5
- export declare function normalizeE164(phone: string): string;
6
- /** SHA-256 hash of an E.164 phone number for privacy-preserving contact discovery. */
7
- export declare function hashPhone(e164Phone: string): string;
8
- /** Validates that a string is a 64-character lowercase hex SHA-256 hash. */
9
- export declare function isValidPhoneHash(hash: string): boolean;
10
- //# sourceMappingURL=phone-hash.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phone-hash.d.ts","sourceRoot":"","sources":["../src/phone-hash.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD"}
@@ -1,17 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- /**
3
- * Ensure phone has E.164 '+' prefix.
4
- * GoTrue strips '+' from phone numbers in API responses.
5
- */
6
- export function normalizeE164(phone) {
7
- return phone.startsWith("+") ? phone : `+${phone}`;
8
- }
9
- /** SHA-256 hash of an E.164 phone number for privacy-preserving contact discovery. */
10
- export function hashPhone(e164Phone) {
11
- return createHash("sha256").update(e164Phone).digest("hex");
12
- }
13
- /** Validates that a string is a 64-character lowercase hex SHA-256 hash. */
14
- export function isValidPhoneHash(hash) {
15
- return /^[0-9a-f]{64}$/.test(hash);
16
- }
17
- //# sourceMappingURL=phone-hash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phone-hash.js","sourceRoot":"","sources":["../src/phone-hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;AACrD,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"}
@@ -1,26 +0,0 @@
1
- import { type Static } from "@sinclair/typebox";
2
- export declare const ContactsSyncParamsSchema: import("@sinclair/typebox").TObject<{
3
- phoneHashes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
4
- }>;
5
- export declare const ContactsSyncResultSchema: import("@sinclair/typebox").TObject<{
6
- newMatches: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
7
- id: import("@sinclair/typebox").TString;
8
- requesterId: import("@sinclair/typebox").TString;
9
- targetId: import("@sinclair/typebox").TString;
10
- status: import("@sinclair/typebox").TUnsafe<"pending" | "accepted" | "blocked">;
11
- createdAt: import("@sinclair/typebox").TString;
12
- requesterName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
13
- requesterPhone: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
14
- targetName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
15
- targetPhone: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
16
- agents: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
17
- id: import("@sinclair/typebox").TString;
18
- name: import("@sinclair/typebox").TString;
19
- }>>>;
20
- lastSeenAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
21
- }>>;
22
- removed: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
23
- }>;
24
- export type ContactsSyncParams = Static<typeof ContactsSyncParamsSchema>;
25
- export type ContactsSyncResult = Static<typeof ContactsSyncResultSchema>;
26
- //# sourceMappingURL=phone-contacts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phone-contacts.d.ts","sourceRoot":"","sources":["../../../src/schema/methods/phone-contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGtD,eAAO,MAAM,wBAAwB;;EAKpC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;EAMpC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- import { ContactSchema } from "../contacts.js";
3
- export const ContactsSyncParamsSchema = Type.Object({
4
- phoneHashes: Type.Array(Type.String(), { maxItems: 1000 }),
5
- }, { additionalProperties: false });
6
- export const ContactsSyncResultSchema = Type.Object({
7
- newMatches: Type.Array(ContactSchema),
8
- removed: Type.Array(Type.String()),
9
- }, { additionalProperties: false });
10
- //# sourceMappingURL=phone-contacts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phone-contacts.js","sourceRoot":"","sources":["../../../src/schema/methods/phone-contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,MAAM,CACjD;IACE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAC3D,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,MAAM,CACjD;IACE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IACrC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;CACnC,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC"}
@@ -1,34 +0,0 @@
1
- import type { EventFrame } from "./schema/frames.js";
2
- export declare class MoltZapTestClient {
3
- private baseUrl;
4
- private wsUrl;
5
- private ws;
6
- private pending;
7
- private events;
8
- private eventWaiters;
9
- constructor(baseUrl: string, wsUrl: string);
10
- /** Register a new agent via HTTP. */
11
- register(name: string, opts?: {
12
- description?: string;
13
- inviteCode?: string;
14
- }): Promise<{
15
- agentId: string;
16
- apiKey: string;
17
- claimUrl: string;
18
- claimToken: string;
19
- }>;
20
- /** Open a WebSocket and send auth/connect with an API key. */
21
- connect(apiKey: string): Promise<unknown>;
22
- /** Open a WebSocket and send auth/connect with a JWT. */
23
- connectJwt(jwt: string): Promise<unknown>;
24
- private connectWithParams;
25
- /** Send a JSON-RPC request and wait for the response. */
26
- rpc(method: string, params?: unknown): Promise<unknown>;
27
- /** Wait for a specific event type. */
28
- waitForEvent(eventName: string, timeoutMs?: number): Promise<EventFrame>;
29
- /** Return all collected events and clear the buffer. */
30
- drainEvents(): EventFrame[];
31
- /** Close the WebSocket connection. */
32
- close(): void;
33
- }
34
- //# sourceMappingURL=test-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-client.d.ts","sourceRoot":"","sources":["../src/test-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,UAAU,EACX,MAAM,oBAAoB,CAAC;AAI5B,qBAAa,iBAAiB;IAiB1B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IAjBf,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAMX;IACJ,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAIZ;gBAGE,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM;IAGvB,qCAAqC;IAC/B,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACnD,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAqBF,8DAA8D;IACxD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ/C,yDAAyD;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAQjC,iBAAiB;IA2D/B,yDAAyD;IACnD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA2C7D,sCAAsC;IAChC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IA4B5E,wDAAwD;IACxD,WAAW,IAAI,UAAU,EAAE;IAM3B,sCAAsC;IACtC,KAAK,IAAI,IAAI;CAId"}
@@ -1,176 +0,0 @@
1
- import WebSocket from "ws";
2
- let requestCounter = 0;
3
- export class MoltZapTestClient {
4
- baseUrl;
5
- wsUrl;
6
- ws = null;
7
- pending = new Map();
8
- events = [];
9
- eventWaiters = [];
10
- constructor(baseUrl, wsUrl) {
11
- this.baseUrl = baseUrl;
12
- this.wsUrl = wsUrl;
13
- }
14
- /** Register a new agent via HTTP. */
15
- async register(name, opts) {
16
- const body = { name };
17
- if (opts?.description)
18
- body.description = opts.description;
19
- if (opts?.inviteCode)
20
- body.inviteCode = opts.inviteCode;
21
- const res = await fetch(`${this.baseUrl}/api/v1/auth/register`, {
22
- method: "POST",
23
- headers: { "Content-Type": "application/json" },
24
- body: JSON.stringify(body),
25
- });
26
- if (!res.ok) {
27
- throw new Error(`Register failed: ${res.status} ${await res.text()}`);
28
- }
29
- return res.json();
30
- }
31
- /** Open a WebSocket and send auth/connect with an API key. */
32
- async connect(apiKey) {
33
- return this.connectWithParams({
34
- agentKey: apiKey,
35
- minProtocol: "0.1.0",
36
- maxProtocol: "0.1.0",
37
- });
38
- }
39
- /** Open a WebSocket and send auth/connect with a JWT. */
40
- async connectJwt(jwt) {
41
- return this.connectWithParams({
42
- jwt,
43
- minProtocol: "0.1.0",
44
- maxProtocol: "0.1.0",
45
- });
46
- }
47
- async connectWithParams(params) {
48
- return new Promise((resolve, reject) => {
49
- const ws = new WebSocket(this.wsUrl);
50
- ws.on("open", async () => {
51
- this.ws = ws;
52
- try {
53
- const result = await this.rpc("auth/connect", params);
54
- resolve(result);
55
- }
56
- catch (err) {
57
- reject(err);
58
- }
59
- });
60
- ws.on("message", (data) => {
61
- const msg = JSON.parse(data.toString());
62
- if (msg.type === "response" && msg.id) {
63
- const waiter = this.pending.get(msg.id);
64
- if (waiter) {
65
- this.pending.delete(msg.id);
66
- waiter.resolve(msg);
67
- }
68
- }
69
- else if (msg.type === "event") {
70
- const event = msg;
71
- // Deliver to first matching waiter, or buffer if none
72
- let consumed = false;
73
- for (let i = this.eventWaiters.length - 1; i >= 0; i--) {
74
- if (this.eventWaiters[i].eventName === event.event) {
75
- this.eventWaiters[i].resolve(event);
76
- this.eventWaiters.splice(i, 1);
77
- consumed = true;
78
- break;
79
- }
80
- }
81
- if (!consumed) {
82
- this.events.push(event);
83
- }
84
- }
85
- });
86
- ws.on("error", (err) => {
87
- reject(err);
88
- });
89
- ws.on("close", () => {
90
- // Reject all pending requests
91
- for (const [, waiter] of this.pending) {
92
- waiter.reject(new Error("WebSocket closed"));
93
- }
94
- this.pending.clear();
95
- this.ws = null;
96
- });
97
- });
98
- }
99
- /** Send a JSON-RPC request and wait for the response. */
100
- async rpc(method, params) {
101
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
102
- throw new Error("WebSocket not connected");
103
- }
104
- const id = `req-${++requestCounter}`;
105
- const frame = {
106
- jsonrpc: "2.0",
107
- type: "request",
108
- id,
109
- method,
110
- params,
111
- };
112
- return new Promise((resolve, reject) => {
113
- const timer = setTimeout(() => {
114
- this.pending.delete(id);
115
- reject(new Error(`RPC timeout for ${method}`));
116
- }, 10_000);
117
- this.pending.set(id, {
118
- resolve: (resp) => {
119
- clearTimeout(timer);
120
- if (resp.error) {
121
- const err = new Error(resp.error.message);
122
- err.code = resp.error.code;
123
- reject(err);
124
- }
125
- else {
126
- resolve(resp.result);
127
- }
128
- },
129
- reject: (err) => {
130
- clearTimeout(timer);
131
- reject(err);
132
- },
133
- });
134
- this.ws.send(JSON.stringify(frame));
135
- });
136
- }
137
- /** Wait for a specific event type. */
138
- async waitForEvent(eventName, timeoutMs = 5000) {
139
- // Check already-collected events
140
- const idx = this.events.findIndex((e) => e.event === eventName);
141
- if (idx !== -1) {
142
- return this.events.splice(idx, 1)[0];
143
- }
144
- return new Promise((resolve, reject) => {
145
- const timer = setTimeout(() => {
146
- const i = this.eventWaiters.findIndex((w) => w.resolve === resolve);
147
- if (i !== -1)
148
- this.eventWaiters.splice(i, 1);
149
- reject(new Error(`Timeout waiting for event: ${eventName}`));
150
- }, timeoutMs);
151
- this.eventWaiters.push({
152
- eventName,
153
- resolve: (e) => {
154
- clearTimeout(timer);
155
- resolve(e);
156
- },
157
- reject: (err) => {
158
- clearTimeout(timer);
159
- reject(err);
160
- },
161
- });
162
- });
163
- }
164
- /** Return all collected events and clear the buffer. */
165
- drainEvents() {
166
- const events = [...this.events];
167
- this.events = [];
168
- return events;
169
- }
170
- /** Close the WebSocket connection. */
171
- close() {
172
- this.ws?.close();
173
- this.ws = null;
174
- }
175
- }
176
- //# sourceMappingURL=test-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-client.js","sourceRoot":"","sources":["../src/test-client.ts"],"names":[],"mappings":"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"}