@joe-broadhead/messaging 0.0.0-stage → 0.7.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 (257) hide show
  1. package/CHANGELOG.md +175 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +12 -0
  4. package/README.md +36 -2
  5. package/dist/bin/messaging-mcp.js +25887 -0
  6. package/dist/bin/messaging-relay.js +19014 -0
  7. package/dist/bin/messaging.js +14732 -0
  8. package/dist/bin/messagingd.js +28682 -0
  9. package/dist/lib/core-testing.js +1 -0
  10. package/dist/lib/core.js +1 -0
  11. package/dist/lib/ipc-testing.js +1 -0
  12. package/dist/lib/ipc.js +1 -0
  13. package/dist/lib/modules/core/address.js +42 -0
  14. package/dist/lib/modules/core/agent/operations.js +595 -0
  15. package/dist/lib/modules/core/agent/present.js +244 -0
  16. package/dist/lib/modules/core/agent/text.js +79 -0
  17. package/dist/lib/modules/core/agent-tools.js +458 -0
  18. package/dist/lib/modules/core/b64u.js +20 -0
  19. package/dist/lib/modules/core/cards.js +55 -0
  20. package/dist/lib/modules/core/check.js +20 -0
  21. package/dist/lib/modules/core/consent.js +199 -0
  22. package/dist/lib/modules/core/contact-card.js +74 -0
  23. package/dist/lib/modules/core/delegation.js +174 -0
  24. package/dist/lib/modules/core/directory/device-log.js +258 -0
  25. package/dist/lib/modules/core/directory/epoch.js +103 -0
  26. package/dist/lib/modules/core/directory/handle.js +29 -0
  27. package/dist/lib/modules/core/directory/jelly-device.js +204 -0
  28. package/dist/lib/modules/core/directory/jelly-issuer.js +12 -0
  29. package/dist/lib/modules/core/directory/jelly-token.js +305 -0
  30. package/dist/lib/modules/core/directory/keys-statement.js +43 -0
  31. package/dist/lib/modules/core/directory/link.js +81 -0
  32. package/dist/lib/modules/core/directory/merkle-log.js +250 -0
  33. package/dist/lib/modules/core/directory/person-view.js +197 -0
  34. package/dist/lib/modules/core/directory/person.js +40 -0
  35. package/dist/lib/modules/core/directory/realm.js +59 -0
  36. package/dist/lib/modules/core/directory/smt.js +266 -0
  37. package/dist/lib/modules/core/envelope.js +320 -0
  38. package/dist/lib/modules/core/hash.js +5 -0
  39. package/dist/lib/modules/core/head.js +27 -0
  40. package/dist/lib/modules/core/identity.js +71 -0
  41. package/dist/lib/modules/core/index.js +44 -0
  42. package/dist/lib/modules/core/jcs.js +96 -0
  43. package/dist/lib/modules/core/jelly-host-double.js +35 -0
  44. package/dist/lib/modules/core/jelly-host.js +211 -0
  45. package/dist/lib/modules/core/keys.js +79 -0
  46. package/dist/lib/modules/core/peer-text.js +563 -0
  47. package/dist/lib/modules/core/realm.js +1 -0
  48. package/dist/lib/modules/core/roster.js +454 -0
  49. package/dist/lib/modules/core/schema/a2a.js +85 -0
  50. package/dist/lib/modules/core/schema/common.js +254 -0
  51. package/dist/lib/modules/core/schema/consent.js +120 -0
  52. package/dist/lib/modules/core/schema/delegation.js +58 -0
  53. package/dist/lib/modules/core/schema/directory-frames.js +270 -0
  54. package/dist/lib/modules/core/schema/directory.js +169 -0
  55. package/dist/lib/modules/core/schema/envelope.js +211 -0
  56. package/dist/lib/modules/core/schema/errors.js +65 -0
  57. package/dist/lib/modules/core/schema/index.js +15 -0
  58. package/dist/lib/modules/core/schema/ipc/consent.js +181 -0
  59. package/dist/lib/modules/core/schema/ipc/device.js +276 -0
  60. package/dist/lib/modules/core/schema/ipc/jelly.js +189 -0
  61. package/dist/lib/modules/core/schema/ipc/shapes.js +185 -0
  62. package/dist/lib/modules/core/schema/ipc/surfaces.js +223 -0
  63. package/dist/lib/modules/core/schema/ipc.js +451 -0
  64. package/dist/lib/modules/core/schema/jelly.js +122 -0
  65. package/dist/lib/modules/core/schema/realm.js +27 -0
  66. package/dist/lib/modules/core/schema/relay.js +112 -0
  67. package/dist/lib/modules/core/schema/roster.js +126 -0
  68. package/dist/lib/modules/core/sign.js +43 -0
  69. package/dist/lib/modules/core/task.js +37 -0
  70. package/dist/lib/modules/core/testing.js +20 -0
  71. package/dist/lib/modules/core/ulid.js +36 -0
  72. package/dist/lib/modules/core/version.js +6 -0
  73. package/dist/lib/modules/core/wire.js +255 -0
  74. package/dist/lib/modules/ipc/client.js +289 -0
  75. package/dist/lib/modules/ipc/framing.js +33 -0
  76. package/dist/lib/modules/ipc/index.js +6 -0
  77. package/dist/lib/modules/ipc/paths.js +102 -0
  78. package/dist/lib/modules/ipc/pipes.js +65 -0
  79. package/dist/lib/modules/ipc/rpc.js +8 -0
  80. package/dist/lib/modules/ipc/server.js +317 -0
  81. package/dist/lib/modules/ipc/testing.js +145 -0
  82. package/dist/lib/modules/ipc/trust.js +166 -0
  83. package/dist/lib/modules/ipc/windows-acl.js +275 -0
  84. package/dist/lib/modules/vendor/zod/index.js +7 -0
  85. package/dist/lib/modules/vendor/zod/v4/classic/checks.js +1 -0
  86. package/dist/lib/modules/vendor/zod/v4/classic/coerce.js +17 -0
  87. package/dist/lib/modules/vendor/zod/v4/classic/compat.js +31 -0
  88. package/dist/lib/modules/vendor/zod/v4/classic/deep-partial.js +13 -0
  89. package/dist/lib/modules/vendor/zod/v4/classic/errors.js +57 -0
  90. package/dist/lib/modules/vendor/zod/v4/classic/external.js +17 -0
  91. package/dist/lib/modules/vendor/zod/v4/classic/from-json-schema.js +881 -0
  92. package/dist/lib/modules/vendor/zod/v4/classic/in-out.js +36 -0
  93. package/dist/lib/modules/vendor/zod/v4/classic/iso.js +15 -0
  94. package/dist/lib/modules/vendor/zod/v4/classic/parse.js +16 -0
  95. package/dist/lib/modules/vendor/zod/v4/classic/schemas.js +1535 -0
  96. package/dist/lib/modules/vendor/zod/v4/core/api.js +1107 -0
  97. package/dist/lib/modules/vendor/zod/v4/core/checks.js +516 -0
  98. package/dist/lib/modules/vendor/zod/v4/core/compile.js +1866 -0
  99. package/dist/lib/modules/vendor/zod/v4/core/core.js +141 -0
  100. package/dist/lib/modules/vendor/zod/v4/core/doc.js +38 -0
  101. package/dist/lib/modules/vendor/zod/v4/core/errors.js +267 -0
  102. package/dist/lib/modules/vendor/zod/v4/core/index.js +19 -0
  103. package/dist/lib/modules/vendor/zod/v4/core/json-schema-generator.js +99 -0
  104. package/dist/lib/modules/vendor/zod/v4/core/json-schema-processors.js +843 -0
  105. package/dist/lib/modules/vendor/zod/v4/core/json-schema.js +1 -0
  106. package/dist/lib/modules/vendor/zod/v4/core/memoizer.js +311 -0
  107. package/dist/lib/modules/vendor/zod/v4/core/parse.js +175 -0
  108. package/dist/lib/modules/vendor/zod/v4/core/regexes.js +156 -0
  109. package/dist/lib/modules/vendor/zod/v4/core/registries.js +51 -0
  110. package/dist/lib/modules/vendor/zod/v4/core/schemas.js +2636 -0
  111. package/dist/lib/modules/vendor/zod/v4/core/to-json-schema.js +651 -0
  112. package/dist/lib/modules/vendor/zod/v4/core/util.js +873 -0
  113. package/dist/lib/modules/vendor/zod/v4/core/versions.js +5 -0
  114. package/dist/lib/modules/vendor/zod/v4/core/visit.js +169 -0
  115. package/dist/lib/modules/vendor/zod/v4/locales/ar.js +111 -0
  116. package/dist/lib/modules/vendor/zod/v4/locales/az.js +110 -0
  117. package/dist/lib/modules/vendor/zod/v4/locales/be.js +168 -0
  118. package/dist/lib/modules/vendor/zod/v4/locales/bg.js +125 -0
  119. package/dist/lib/modules/vendor/zod/v4/locales/bn.js +113 -0
  120. package/dist/lib/modules/vendor/zod/v4/locales/ca.js +112 -0
  121. package/dist/lib/modules/vendor/zod/v4/locales/ckb.js +133 -0
  122. package/dist/lib/modules/vendor/zod/v4/locales/cs.js +116 -0
  123. package/dist/lib/modules/vendor/zod/v4/locales/da.js +120 -0
  124. package/dist/lib/modules/vendor/zod/v4/locales/de.js +113 -0
  125. package/dist/lib/modules/vendor/zod/v4/locales/el.js +112 -0
  126. package/dist/lib/modules/vendor/zod/v4/locales/en.js +125 -0
  127. package/dist/lib/modules/vendor/zod/v4/locales/eo.js +114 -0
  128. package/dist/lib/modules/vendor/zod/v4/locales/es.js +136 -0
  129. package/dist/lib/modules/vendor/zod/v4/locales/fa.js +119 -0
  130. package/dist/lib/modules/vendor/zod/v4/locales/fi.js +117 -0
  131. package/dist/lib/modules/vendor/zod/v4/locales/fr-CA.js +112 -0
  132. package/dist/lib/modules/vendor/zod/v4/locales/fr.js +129 -0
  133. package/dist/lib/modules/vendor/zod/v4/locales/gu.js +113 -0
  134. package/dist/lib/modules/vendor/zod/v4/locales/he.js +221 -0
  135. package/dist/lib/modules/vendor/zod/v4/locales/hi.js +111 -0
  136. package/dist/lib/modules/vendor/zod/v4/locales/hr.js +126 -0
  137. package/dist/lib/modules/vendor/zod/v4/locales/hu.js +113 -0
  138. package/dist/lib/modules/vendor/zod/v4/locales/hy.js +158 -0
  139. package/dist/lib/modules/vendor/zod/v4/locales/id.js +111 -0
  140. package/dist/lib/modules/vendor/zod/v4/locales/index.js +63 -0
  141. package/dist/lib/modules/vendor/zod/v4/locales/is.js +114 -0
  142. package/dist/lib/modules/vendor/zod/v4/locales/it.js +113 -0
  143. package/dist/lib/modules/vendor/zod/v4/locales/ja.js +112 -0
  144. package/dist/lib/modules/vendor/zod/v4/locales/ka.js +117 -0
  145. package/dist/lib/modules/vendor/zod/v4/locales/kh.js +5 -0
  146. package/dist/lib/modules/vendor/zod/v4/locales/km.js +115 -0
  147. package/dist/lib/modules/vendor/zod/v4/locales/kn.js +116 -0
  148. package/dist/lib/modules/vendor/zod/v4/locales/ko.js +116 -0
  149. package/dist/lib/modules/vendor/zod/v4/locales/lt.js +207 -0
  150. package/dist/lib/modules/vendor/zod/v4/locales/mk.js +114 -0
  151. package/dist/lib/modules/vendor/zod/v4/locales/ms.js +112 -0
  152. package/dist/lib/modules/vendor/zod/v4/locales/ne.js +111 -0
  153. package/dist/lib/modules/vendor/zod/v4/locales/nl.js +115 -0
  154. package/dist/lib/modules/vendor/zod/v4/locales/nn.js +113 -0
  155. package/dist/lib/modules/vendor/zod/v4/locales/no.js +113 -0
  156. package/dist/lib/modules/vendor/zod/v4/locales/ota.js +114 -0
  157. package/dist/lib/modules/vendor/zod/v4/locales/pl.js +114 -0
  158. package/dist/lib/modules/vendor/zod/v4/locales/ps.js +119 -0
  159. package/dist/lib/modules/vendor/zod/v4/locales/pt-BR.js +143 -0
  160. package/dist/lib/modules/vendor/zod/v4/locales/pt.js +142 -0
  161. package/dist/lib/modules/vendor/zod/v4/locales/ro.js +122 -0
  162. package/dist/lib/modules/vendor/zod/v4/locales/ru.js +168 -0
  163. package/dist/lib/modules/vendor/zod/v4/locales/sk.js +116 -0
  164. package/dist/lib/modules/vendor/zod/v4/locales/sl.js +114 -0
  165. package/dist/lib/modules/vendor/zod/v4/locales/sv.js +115 -0
  166. package/dist/lib/modules/vendor/zod/v4/locales/ta.js +115 -0
  167. package/dist/lib/modules/vendor/zod/v4/locales/tg.js +117 -0
  168. package/dist/lib/modules/vendor/zod/v4/locales/th.js +115 -0
  169. package/dist/lib/modules/vendor/zod/v4/locales/tk.js +107 -0
  170. package/dist/lib/modules/vendor/zod/v4/locales/tr.js +110 -0
  171. package/dist/lib/modules/vendor/zod/v4/locales/ua.js +5 -0
  172. package/dist/lib/modules/vendor/zod/v4/locales/uk.js +113 -0
  173. package/dist/lib/modules/vendor/zod/v4/locales/ur.js +115 -0
  174. package/dist/lib/modules/vendor/zod/v4/locales/uz.js +113 -0
  175. package/dist/lib/modules/vendor/zod/v4/locales/vi.js +113 -0
  176. package/dist/lib/modules/vendor/zod/v4/locales/yo.js +112 -0
  177. package/dist/lib/modules/vendor/zod/v4/locales/zh-CN.js +114 -0
  178. package/dist/lib/modules/vendor/zod/v4/locales/zh-TW.js +112 -0
  179. package/dist/lib/testing-jelly-id.js +1219 -0
  180. package/dist/lib/zod.js +1 -0
  181. package/dist/spec/messaging-v1.md +3426 -0
  182. package/dist/third-party-notices.md +239 -0
  183. package/dist/third-party.json +88 -0
  184. package/dist/types/core/address.d.ts +16 -0
  185. package/dist/types/core/agent/operations.d.ts +129 -0
  186. package/dist/types/core/agent/present.d.ts +57 -0
  187. package/dist/types/core/agent/text.d.ts +62 -0
  188. package/dist/types/core/agent-tools.d.ts +948 -0
  189. package/dist/types/core/b64u.d.ts +6 -0
  190. package/dist/types/core/cards.d.ts +21 -0
  191. package/dist/types/core/check.d.ts +10 -0
  192. package/dist/types/core/consent.d.ts +132 -0
  193. package/dist/types/core/contact-card.d.ts +34 -0
  194. package/dist/types/core/delegation.d.ts +71 -0
  195. package/dist/types/core/directory/device-log.d.ts +119 -0
  196. package/dist/types/core/directory/epoch.d.ts +53 -0
  197. package/dist/types/core/directory/handle.d.ts +11 -0
  198. package/dist/types/core/directory/jelly-device.d.ts +88 -0
  199. package/dist/types/core/directory/jelly-issuer.d.ts +8 -0
  200. package/dist/types/core/directory/jelly-token.d.ts +116 -0
  201. package/dist/types/core/directory/keys-statement.d.ts +22 -0
  202. package/dist/types/core/directory/link.d.ts +36 -0
  203. package/dist/types/core/directory/merkle-log.d.ts +40 -0
  204. package/dist/types/core/directory/person-view.d.ts +90 -0
  205. package/dist/types/core/directory/person.d.ts +8 -0
  206. package/dist/types/core/directory/realm.d.ts +23 -0
  207. package/dist/types/core/directory/smt.d.ts +52 -0
  208. package/dist/types/core/envelope.d.ts +68 -0
  209. package/dist/types/core/hash.d.ts +2 -0
  210. package/dist/types/core/head.d.ts +34 -0
  211. package/dist/types/core/identity.d.ts +35 -0
  212. package/dist/types/core/index.d.ts +38 -0
  213. package/dist/types/core/jcs.d.ts +12 -0
  214. package/dist/types/core/jelly-host-double.d.ts +21 -0
  215. package/dist/types/core/jelly-host.d.ts +86 -0
  216. package/dist/types/core/keys.d.ts +16 -0
  217. package/dist/types/core/peer-text.d.ts +87 -0
  218. package/dist/types/core/realm.d.ts +36 -0
  219. package/dist/types/core/roster.d.ts +146 -0
  220. package/dist/types/core/schema/a2a.d.ts +251 -0
  221. package/dist/types/core/schema/common.d.ts +272 -0
  222. package/dist/types/core/schema/consent.d.ts +140 -0
  223. package/dist/types/core/schema/delegation.d.ts +58 -0
  224. package/dist/types/core/schema/directory-frames.d.ts +1301 -0
  225. package/dist/types/core/schema/directory.d.ts +375 -0
  226. package/dist/types/core/schema/envelope.d.ts +750 -0
  227. package/dist/types/core/schema/errors.d.ts +104 -0
  228. package/dist/types/core/schema/index.d.ts +15 -0
  229. package/dist/types/core/schema/ipc/consent.d.ts +555 -0
  230. package/dist/types/core/schema/ipc/device.d.ts +729 -0
  231. package/dist/types/core/schema/ipc/jelly.d.ts +501 -0
  232. package/dist/types/core/schema/ipc/shapes.d.ts +411 -0
  233. package/dist/types/core/schema/ipc/surfaces.d.ts +674 -0
  234. package/dist/types/core/schema/ipc.d.ts +3131 -0
  235. package/dist/types/core/schema/jelly.d.ts +160 -0
  236. package/dist/types/core/schema/realm.d.ts +38 -0
  237. package/dist/types/core/schema/relay.d.ts +1122 -0
  238. package/dist/types/core/schema/roster.d.ts +347 -0
  239. package/dist/types/core/sign.d.ts +13 -0
  240. package/dist/types/core/task.d.ts +6 -0
  241. package/dist/types/core/testing.d.ts +18 -0
  242. package/dist/types/core/ulid.d.ts +5 -0
  243. package/dist/types/core/version.d.ts +6 -0
  244. package/dist/types/core/wire.d.ts +14 -0
  245. package/dist/types/ipc/client.d.ts +85 -0
  246. package/dist/types/ipc/framing.d.ts +12 -0
  247. package/dist/types/ipc/index.d.ts +6 -0
  248. package/dist/types/ipc/paths.d.ts +39 -0
  249. package/dist/types/ipc/pipes.d.ts +16 -0
  250. package/dist/types/ipc/rpc.d.ts +13 -0
  251. package/dist/types/ipc/server.d.ts +94 -0
  252. package/dist/types/ipc/testing.d.ts +89 -0
  253. package/dist/types/ipc/trust.d.ts +49 -0
  254. package/dist/types/ipc/windows-acl.d.ts +56 -0
  255. package/dist/types/testing/jelly-id.d.ts +518 -0
  256. package/dist/types/zod.d.ts +1 -0
  257. package/package.json +77 -4
@@ -0,0 +1,1301 @@
1
+ /**
2
+ * Directory frames (spec §7, "Directory frames"; design §3.2): the frames a hosted relay, one that runs the
3
+ * key directory, speaks on the same WebSocket as the relay binding. They follow the frame rules of §7: one
4
+ * JSON object per text frame, discriminated by `t`; requests carry `req`, replies echo it, and a refusal is
5
+ * the relay binding's `nack {id: req, code, message}` (with `retryAfterMs` for `rate_limited`).
6
+ *
7
+ * Connection, hosted:
8
+ * relay → challenge {proto, relay, nonce} (unchanged)
9
+ * client → [pre-auth, optional] dir.bind {req, entry} first binding of this device → dir.ok {req, person, seq, sth}
10
+ * client → [pre-auth, optional] dir.sth, dir.heads, dir.device what a device about to bind reads; heads only, no log
11
+ * client → [pre-auth, optional] dir.lookup {.., proof} a device reads its own person's log (its key proven)
12
+ * client → hello {realm, person, device, ts, sig} sig = Ed25519(device, DOMAIN.relayAuth + JCS(hostedRelayAuthPayload))
13
+ * relay → welcome {sth} or close 4001 (`unknown_device`) when the device is not current
14
+ *
15
+ * After welcome, besides send / deliver / presence / recv.ack / ping of §7:
16
+ * dir.append {req, entry} → dir.ok {req, seq, sth}
17
+ * dir.keys {req, stmt} → dir.ok {req, sth}
18
+ * dir.sth {req, size?, from?, epoch?} → dir.sthIs {req, sth, head, consistency?, epoch?, rotation?}
19
+ * dir.lookup {req, persons, size?} → dir.persons {req, sth, head, persons}
20
+ * dir.heads {req, persons, size?} → dir.headsAre {req, sth, head, persons}
21
+ * dir.resolve {req, handle | email} → dir.resolved {req, persons}
22
+ * dir.search {req, query, limit} → dir.resolved {req, persons}
23
+ * dir.watch {req, persons} → dir.ok {req}; then dir.changed {persons, sth} pushes
24
+ * presence.watch {req, persons} → dir.ok {req}
25
+ * dir.erase {req, entries, token} → dir.ok {req}
26
+ * wake.arm {req, url, ticket, agents, awaiting} → dir.ok {req} a Jelly host's device, before it sleeps (§7, "Wake tickets")
27
+ * wake.disarm {req} → dir.ok {req}
28
+ * relay → dir.unbound {entry, sth} this device's own unbind, just before close 4003
29
+ *
30
+ * The directory's own structures (HostedPersonId, LogEntry, KeysStatement, STH, PersonView, ...) are in
31
+ * `schema/directory.ts` and `schema/common.ts`, with their verifiers in `packages/core/src/directory/` (spec §15).
32
+ * The frames take a hosted person (`HostedPersonId`) only.
33
+ */
34
+ import { z } from "zod";
35
+ import { HostedPersonId, RELAY_PROTOCOL } from "./common.js";
36
+ import { RealmId } from "./realm.js";
37
+ import { DeviceId } from "./directory.js";
38
+ /** A hosted handle (design §6.1): the normalised local part of a verified email. */
39
+ export declare const Handle: z.ZodString;
40
+ /** An exact email address, lower-cased (design §6.1): the domain is ASCII, as Jelly ID's verified emails are. */
41
+ export declare const Email: z.ZodString;
42
+ /** An org (design §2.3): `domain:<d>` until Jelly contract v1.2, then the organisation id. Absent for an individual. */
43
+ export declare const OrgId: z.ZodString;
44
+ /** The value a device signs (with `DOMAIN.relayAuth`) in the hosted `hello` frame. */
45
+ export declare function hostedRelayAuthPayload(args: {
46
+ relay: string;
47
+ realm: RealmId;
48
+ person: HostedPersonId;
49
+ device: DeviceId;
50
+ nonce: string;
51
+ ts: number;
52
+ }): {
53
+ proto: typeof RELAY_PROTOCOL;
54
+ relay: string;
55
+ realm: RealmId;
56
+ person: HostedPersonId;
57
+ device: DeviceId;
58
+ nonce: string;
59
+ ts: number;
60
+ };
61
+ /** The value a device signs (with `DOMAIN.dirRead`) in a `dir.lookup` before `hello`: its key, on this connection. */
62
+ export declare function dirReadPayload(args: {
63
+ relay: string;
64
+ realm: RealmId;
65
+ device: DeviceId;
66
+ nonce: string;
67
+ }): {
68
+ proto: typeof RELAY_PROTOCOL;
69
+ relay: string;
70
+ realm: RealmId;
71
+ device: DeviceId;
72
+ nonce: string;
73
+ };
74
+ /** A device's proof before `hello` (`dirReadPayload`): `sig` by `device` over this connection's challenge. */
75
+ export declare const DirReadProof: z.ZodObject<{
76
+ device: z.ZodString;
77
+ sig: z.ZodString;
78
+ }, z.core.$strict>;
79
+ export type DirReadProof = z.infer<typeof DirReadProof>;
80
+ /** Pre-auth: the first binding of this device, a `bind` entry with a `jelly` authority (design §2.2). */
81
+ export declare const DirBindFrame: z.ZodObject<{
82
+ t: z.ZodLiteral<"dir.bind">;
83
+ req: z.ZodString;
84
+ entry: z.ZodObject<{
85
+ v: z.ZodLiteral<"messaging/1">;
86
+ realm: z.ZodString;
87
+ person: z.ZodString;
88
+ seq: z.ZodNumber;
89
+ prev: z.ZodNullable<z.ZodString>;
90
+ ts: z.ZodNumber;
91
+ op: z.ZodEnum<{
92
+ bind: "bind";
93
+ attest: "attest";
94
+ unbind: "unbind";
95
+ }>;
96
+ device: z.ZodString;
97
+ label: z.ZodOptional<z.ZodString>;
98
+ kind: z.ZodOptional<z.ZodEnum<{
99
+ "jelly-host": "jelly-host";
100
+ laptop: "laptop";
101
+ server: "server";
102
+ other: "other";
103
+ }>>;
104
+ reason: z.ZodOptional<z.ZodEnum<{
105
+ self: "self";
106
+ removed: "removed";
107
+ lost: "lost";
108
+ replaced: "replaced";
109
+ account_deleted: "account_deleted";
110
+ }>>;
111
+ authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
112
+ kind: z.ZodLiteral<"jelly">;
113
+ token: z.ZodString;
114
+ }, z.core.$strict>, z.ZodObject<{
115
+ kind: z.ZodLiteral<"device">;
116
+ approver: z.ZodString;
117
+ link: z.ZodObject<{
118
+ v: z.ZodLiteral<"messaging/1">;
119
+ realm: z.ZodString;
120
+ device: z.ZodString;
121
+ enc: z.ZodString;
122
+ label: z.ZodString;
123
+ kind: z.ZodEnum<{
124
+ "jelly-host": "jelly-host";
125
+ laptop: "laptop";
126
+ server: "server";
127
+ other: "other";
128
+ }>;
129
+ nonce: z.ZodString;
130
+ ts: z.ZodNumber;
131
+ sig: z.ZodString;
132
+ }, z.core.$strict>;
133
+ }, z.core.$strict>, z.ZodObject<{
134
+ kind: z.ZodLiteral<"service">;
135
+ }, z.core.$strict>, z.ZodObject<{
136
+ kind: z.ZodLiteral<"self">;
137
+ }, z.core.$strict>], "kind">;
138
+ by: z.ZodString;
139
+ sig: z.ZodString;
140
+ }, z.core.$strict>;
141
+ }, z.core.$strip>;
142
+ /** The hosted `hello`: authenticates a device of a person in a directory realm. A roster relay refuses it. */
143
+ export declare const HostedHelloFrame: z.ZodObject<{
144
+ t: z.ZodLiteral<"hello">;
145
+ realm: z.ZodString;
146
+ person: z.ZodString;
147
+ device: z.ZodString;
148
+ ts: z.ZodNumber;
149
+ sig: z.ZodString;
150
+ }, z.core.$strip>;
151
+ /** An `attest`, an `unbind`, or the `bind` of a QR approval (design §2.1, §2.5), appended to the sender's person's log. */
152
+ export declare const DirAppendFrame: z.ZodObject<{
153
+ t: z.ZodLiteral<"dir.append">;
154
+ req: z.ZodString;
155
+ entry: z.ZodObject<{
156
+ v: z.ZodLiteral<"messaging/1">;
157
+ realm: z.ZodString;
158
+ person: z.ZodString;
159
+ seq: z.ZodNumber;
160
+ prev: z.ZodNullable<z.ZodString>;
161
+ ts: z.ZodNumber;
162
+ op: z.ZodEnum<{
163
+ bind: "bind";
164
+ attest: "attest";
165
+ unbind: "unbind";
166
+ }>;
167
+ device: z.ZodString;
168
+ label: z.ZodOptional<z.ZodString>;
169
+ kind: z.ZodOptional<z.ZodEnum<{
170
+ "jelly-host": "jelly-host";
171
+ laptop: "laptop";
172
+ server: "server";
173
+ other: "other";
174
+ }>>;
175
+ reason: z.ZodOptional<z.ZodEnum<{
176
+ self: "self";
177
+ removed: "removed";
178
+ lost: "lost";
179
+ replaced: "replaced";
180
+ account_deleted: "account_deleted";
181
+ }>>;
182
+ authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
183
+ kind: z.ZodLiteral<"jelly">;
184
+ token: z.ZodString;
185
+ }, z.core.$strict>, z.ZodObject<{
186
+ kind: z.ZodLiteral<"device">;
187
+ approver: z.ZodString;
188
+ link: z.ZodObject<{
189
+ v: z.ZodLiteral<"messaging/1">;
190
+ realm: z.ZodString;
191
+ device: z.ZodString;
192
+ enc: z.ZodString;
193
+ label: z.ZodString;
194
+ kind: z.ZodEnum<{
195
+ "jelly-host": "jelly-host";
196
+ laptop: "laptop";
197
+ server: "server";
198
+ other: "other";
199
+ }>;
200
+ nonce: z.ZodString;
201
+ ts: z.ZodNumber;
202
+ sig: z.ZodString;
203
+ }, z.core.$strict>;
204
+ }, z.core.$strict>, z.ZodObject<{
205
+ kind: z.ZodLiteral<"service">;
206
+ }, z.core.$strict>, z.ZodObject<{
207
+ kind: z.ZodLiteral<"self">;
208
+ }, z.core.$strict>], "kind">;
209
+ by: z.ZodString;
210
+ sig: z.ZodString;
211
+ }, z.core.$strict>;
212
+ }, z.core.$strip>;
213
+ /** The sending device's own latest encryption-key statement (design §2.6). */
214
+ export declare const DirKeysFrame: z.ZodObject<{
215
+ t: z.ZodLiteral<"dir.keys">;
216
+ req: z.ZodString;
217
+ stmt: z.ZodObject<{
218
+ v: z.ZodLiteral<"messaging/1">;
219
+ realm: z.ZodString;
220
+ person: z.ZodString;
221
+ device: z.ZodString;
222
+ enc: z.ZodString;
223
+ seq: z.ZodNumber;
224
+ ts: z.ZodNumber;
225
+ sig: z.ZodString;
226
+ }, z.core.$strict>;
227
+ }, z.core.$strip>;
228
+ /**
229
+ * The latest STH, or the STH at `size`. `from`: also a consistency proof from that size. `epoch`: also that
230
+ * epoch-log leaf with its inclusion proof (an entry's first epoch, design §2.2 step 7).
231
+ */
232
+ export declare const DirSthFrame: z.ZodObject<{
233
+ t: z.ZodLiteral<"dir.sth">;
234
+ req: z.ZodString;
235
+ size: z.ZodOptional<z.ZodNumber>;
236
+ from: z.ZodOptional<z.ZodNumber>;
237
+ epoch: z.ZodOptional<z.ZodNumber>;
238
+ }, z.core.$strip>;
239
+ /**
240
+ * Persons' views at the directory's latest STH, which is at least `size`. `knownSeq`: send only the log after it.
241
+ * Before `hello`, only with `proof` (a device's key on this connection), and only for persons whose log names that
242
+ * device, current or not: a device reads its own person's log; anyone else reads heads (`dir.heads`).
243
+ */
244
+ export declare const DirLookupFrame: z.ZodObject<{
245
+ t: z.ZodLiteral<"dir.lookup">;
246
+ req: z.ZodString;
247
+ persons: z.ZodArray<z.ZodObject<{
248
+ person: z.ZodString;
249
+ knownSeq: z.ZodOptional<z.ZodNumber>;
250
+ }, z.core.$strip>>;
251
+ size: z.ZodOptional<z.ZodNumber>;
252
+ proof: z.ZodOptional<z.ZodObject<{
253
+ device: z.ZodString;
254
+ sig: z.ZodString;
255
+ }, z.core.$strict>>;
256
+ }, z.core.$strip>;
257
+ /** Persons' heads (`PersonHead`) at the STH of `size`, or the latest; before or after `hello`. */
258
+ export declare const DirHeadsFrame: z.ZodObject<{
259
+ t: z.ZodLiteral<"dir.heads">;
260
+ req: z.ZodString;
261
+ persons: z.ZodArray<z.ZodString>;
262
+ size: z.ZodOptional<z.ZodNumber>;
263
+ }, z.core.$strip>;
264
+ /**
265
+ * Before `hello` only: the person whose log binds `device` as a current device, as `dir.headsAre` with that one head at
266
+ * the latest STH, or none. A device approved by link learns its person this way (design §2.5), then reads that
267
+ * person's log with `dir.lookup` and its proof.
268
+ */
269
+ export declare const DirDeviceFrame: z.ZodObject<{
270
+ t: z.ZodLiteral<"dir.device">;
271
+ req: z.ZodString;
272
+ device: z.ZodString;
273
+ }, z.core.$strip>;
274
+ /** By handle (same org only) or by exact email: exactly one of the two. */
275
+ export declare const DirResolveFrame: z.ZodObject<{
276
+ t: z.ZodLiteral<"dir.resolve">;
277
+ req: z.ZodString;
278
+ handle: z.ZodOptional<z.ZodString>;
279
+ email: z.ZodOptional<z.ZodString>;
280
+ }, z.core.$strip>;
281
+ /** A same-org prefix search on handle, name and email local part. */
282
+ export declare const DirSearchFrame: z.ZodObject<{
283
+ t: z.ZodLiteral<"dir.search">;
284
+ req: z.ZodString;
285
+ query: z.ZodString;
286
+ limit: z.ZodNumber;
287
+ }, z.core.$strip>;
288
+ /** Sets the persons this connection watches for log and key changes; it replaces the previous set, and `[]` clears it. */
289
+ export declare const DirWatchFrame: z.ZodObject<{
290
+ t: z.ZodLiteral<"dir.watch">;
291
+ req: z.ZodString;
292
+ persons: z.ZodArray<z.ZodString>;
293
+ }, z.core.$strip>;
294
+ /** Sets the persons whose presence this connection watches (design §8.2); it replaces the previous set. */
295
+ export declare const PresenceWatchFrame: z.ZodObject<{
296
+ t: z.ZodLiteral<"presence.watch">;
297
+ req: z.ZodString;
298
+ persons: z.ZodArray<z.ZodString>;
299
+ }, z.core.$strip>;
300
+ /** The person erases their account from Messaging (design §3.7): an `unbind` of every current device, and a fresh `cnf` token for this device. */
301
+ export declare const DirEraseFrame: z.ZodObject<{
302
+ t: z.ZodLiteral<"dir.erase">;
303
+ req: z.ZodString;
304
+ entries: z.ZodArray<z.ZodObject<{
305
+ v: z.ZodLiteral<"messaging/1">;
306
+ realm: z.ZodString;
307
+ person: z.ZodString;
308
+ seq: z.ZodNumber;
309
+ prev: z.ZodNullable<z.ZodString>;
310
+ ts: z.ZodNumber;
311
+ op: z.ZodEnum<{
312
+ bind: "bind";
313
+ attest: "attest";
314
+ unbind: "unbind";
315
+ }>;
316
+ device: z.ZodString;
317
+ label: z.ZodOptional<z.ZodString>;
318
+ kind: z.ZodOptional<z.ZodEnum<{
319
+ "jelly-host": "jelly-host";
320
+ laptop: "laptop";
321
+ server: "server";
322
+ other: "other";
323
+ }>>;
324
+ reason: z.ZodOptional<z.ZodEnum<{
325
+ self: "self";
326
+ removed: "removed";
327
+ lost: "lost";
328
+ replaced: "replaced";
329
+ account_deleted: "account_deleted";
330
+ }>>;
331
+ authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
332
+ kind: z.ZodLiteral<"jelly">;
333
+ token: z.ZodString;
334
+ }, z.core.$strict>, z.ZodObject<{
335
+ kind: z.ZodLiteral<"device">;
336
+ approver: z.ZodString;
337
+ link: z.ZodObject<{
338
+ v: z.ZodLiteral<"messaging/1">;
339
+ realm: z.ZodString;
340
+ device: z.ZodString;
341
+ enc: z.ZodString;
342
+ label: z.ZodString;
343
+ kind: z.ZodEnum<{
344
+ "jelly-host": "jelly-host";
345
+ laptop: "laptop";
346
+ server: "server";
347
+ other: "other";
348
+ }>;
349
+ nonce: z.ZodString;
350
+ ts: z.ZodNumber;
351
+ sig: z.ZodString;
352
+ }, z.core.$strict>;
353
+ }, z.core.$strict>, z.ZodObject<{
354
+ kind: z.ZodLiteral<"service">;
355
+ }, z.core.$strict>, z.ZodObject<{
356
+ kind: z.ZodLiteral<"self">;
357
+ }, z.core.$strict>], "kind">;
358
+ by: z.ZodString;
359
+ sig: z.ZodString;
360
+ }, z.core.$strict>>;
361
+ token: z.ZodString;
362
+ }, z.core.$strip>;
363
+ /** Most agents a wake ticket's filter names, and most awaited task requests (spec §7, "Wake tickets"). */
364
+ export declare const WAKE_AGENTS = 64;
365
+ export declare const WAKE_AWAITING = 500;
366
+ /** Most bytes of a wake ticket, and its longest life: Jelly's `jelly-wake+jwt` lives at most seven days. */
367
+ export declare const WAKE_TICKET_BYTES = 4096;
368
+ export declare const WAKE_TICKET_MAX_S: number;
369
+ /** A wake URL: `https://<issuer host>/hosts/<hst>/wake` (or `http://` to a loopback issuer, for tests). */
370
+ export declare const WakeUrl: z.ZodString;
371
+ /**
372
+ * A Jelly host's device arms a wake ticket before the host sleeps (spec §7, "Wake tickets"). `url` is Jelly ID's wake
373
+ * endpoint for this device's host; `ticket` the host's single-use `jelly-wake+jwt`, which the relay never verifies
374
+ * (Jelly ID does) and reads only for its `exp`; `agents` the local sessions whose own person's mail may wake the host;
375
+ * `awaiting` the request envelope ids of the tasks those agents wait on, whose updates (`replyTo`) may wake it. A new
376
+ * arm replaces the device's previous one.
377
+ */
378
+ export declare const WakeArmFrame: z.ZodObject<{
379
+ t: z.ZodLiteral<"wake.arm">;
380
+ req: z.ZodString;
381
+ url: z.ZodString;
382
+ ticket: z.ZodString;
383
+ agents: z.ZodArray<z.ZodString>;
384
+ awaiting: z.ZodArray<z.ZodString>;
385
+ }, z.core.$strip>;
386
+ export type WakeArmFrame = z.infer<typeof WakeArmFrame>;
387
+ /** The relay forgets this device's wake ticket. */
388
+ export declare const WakeDisarmFrame: z.ZodObject<{
389
+ t: z.ZodLiteral<"wake.disarm">;
390
+ req: z.ZodString;
391
+ }, z.core.$strip>;
392
+ /** Every frame of a directory client that the relay binding (§7) does not already define. */
393
+ export declare const DirectoryClientFrame: z.ZodDiscriminatedUnion<[z.ZodObject<{
394
+ t: z.ZodLiteral<"dir.bind">;
395
+ req: z.ZodString;
396
+ entry: z.ZodObject<{
397
+ v: z.ZodLiteral<"messaging/1">;
398
+ realm: z.ZodString;
399
+ person: z.ZodString;
400
+ seq: z.ZodNumber;
401
+ prev: z.ZodNullable<z.ZodString>;
402
+ ts: z.ZodNumber;
403
+ op: z.ZodEnum<{
404
+ bind: "bind";
405
+ attest: "attest";
406
+ unbind: "unbind";
407
+ }>;
408
+ device: z.ZodString;
409
+ label: z.ZodOptional<z.ZodString>;
410
+ kind: z.ZodOptional<z.ZodEnum<{
411
+ "jelly-host": "jelly-host";
412
+ laptop: "laptop";
413
+ server: "server";
414
+ other: "other";
415
+ }>>;
416
+ reason: z.ZodOptional<z.ZodEnum<{
417
+ self: "self";
418
+ removed: "removed";
419
+ lost: "lost";
420
+ replaced: "replaced";
421
+ account_deleted: "account_deleted";
422
+ }>>;
423
+ authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
424
+ kind: z.ZodLiteral<"jelly">;
425
+ token: z.ZodString;
426
+ }, z.core.$strict>, z.ZodObject<{
427
+ kind: z.ZodLiteral<"device">;
428
+ approver: z.ZodString;
429
+ link: z.ZodObject<{
430
+ v: z.ZodLiteral<"messaging/1">;
431
+ realm: z.ZodString;
432
+ device: z.ZodString;
433
+ enc: z.ZodString;
434
+ label: z.ZodString;
435
+ kind: z.ZodEnum<{
436
+ "jelly-host": "jelly-host";
437
+ laptop: "laptop";
438
+ server: "server";
439
+ other: "other";
440
+ }>;
441
+ nonce: z.ZodString;
442
+ ts: z.ZodNumber;
443
+ sig: z.ZodString;
444
+ }, z.core.$strict>;
445
+ }, z.core.$strict>, z.ZodObject<{
446
+ kind: z.ZodLiteral<"service">;
447
+ }, z.core.$strict>, z.ZodObject<{
448
+ kind: z.ZodLiteral<"self">;
449
+ }, z.core.$strict>], "kind">;
450
+ by: z.ZodString;
451
+ sig: z.ZodString;
452
+ }, z.core.$strict>;
453
+ }, z.core.$strip>, z.ZodObject<{
454
+ t: z.ZodLiteral<"hello">;
455
+ realm: z.ZodString;
456
+ person: z.ZodString;
457
+ device: z.ZodString;
458
+ ts: z.ZodNumber;
459
+ sig: z.ZodString;
460
+ }, z.core.$strip>, z.ZodObject<{
461
+ t: z.ZodLiteral<"dir.append">;
462
+ req: z.ZodString;
463
+ entry: z.ZodObject<{
464
+ v: z.ZodLiteral<"messaging/1">;
465
+ realm: z.ZodString;
466
+ person: z.ZodString;
467
+ seq: z.ZodNumber;
468
+ prev: z.ZodNullable<z.ZodString>;
469
+ ts: z.ZodNumber;
470
+ op: z.ZodEnum<{
471
+ bind: "bind";
472
+ attest: "attest";
473
+ unbind: "unbind";
474
+ }>;
475
+ device: z.ZodString;
476
+ label: z.ZodOptional<z.ZodString>;
477
+ kind: z.ZodOptional<z.ZodEnum<{
478
+ "jelly-host": "jelly-host";
479
+ laptop: "laptop";
480
+ server: "server";
481
+ other: "other";
482
+ }>>;
483
+ reason: z.ZodOptional<z.ZodEnum<{
484
+ self: "self";
485
+ removed: "removed";
486
+ lost: "lost";
487
+ replaced: "replaced";
488
+ account_deleted: "account_deleted";
489
+ }>>;
490
+ authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
491
+ kind: z.ZodLiteral<"jelly">;
492
+ token: z.ZodString;
493
+ }, z.core.$strict>, z.ZodObject<{
494
+ kind: z.ZodLiteral<"device">;
495
+ approver: z.ZodString;
496
+ link: z.ZodObject<{
497
+ v: z.ZodLiteral<"messaging/1">;
498
+ realm: z.ZodString;
499
+ device: z.ZodString;
500
+ enc: z.ZodString;
501
+ label: z.ZodString;
502
+ kind: z.ZodEnum<{
503
+ "jelly-host": "jelly-host";
504
+ laptop: "laptop";
505
+ server: "server";
506
+ other: "other";
507
+ }>;
508
+ nonce: z.ZodString;
509
+ ts: z.ZodNumber;
510
+ sig: z.ZodString;
511
+ }, z.core.$strict>;
512
+ }, z.core.$strict>, z.ZodObject<{
513
+ kind: z.ZodLiteral<"service">;
514
+ }, z.core.$strict>, z.ZodObject<{
515
+ kind: z.ZodLiteral<"self">;
516
+ }, z.core.$strict>], "kind">;
517
+ by: z.ZodString;
518
+ sig: z.ZodString;
519
+ }, z.core.$strict>;
520
+ }, z.core.$strip>, z.ZodObject<{
521
+ t: z.ZodLiteral<"dir.keys">;
522
+ req: z.ZodString;
523
+ stmt: z.ZodObject<{
524
+ v: z.ZodLiteral<"messaging/1">;
525
+ realm: z.ZodString;
526
+ person: z.ZodString;
527
+ device: z.ZodString;
528
+ enc: z.ZodString;
529
+ seq: z.ZodNumber;
530
+ ts: z.ZodNumber;
531
+ sig: z.ZodString;
532
+ }, z.core.$strict>;
533
+ }, z.core.$strip>, z.ZodObject<{
534
+ t: z.ZodLiteral<"dir.sth">;
535
+ req: z.ZodString;
536
+ size: z.ZodOptional<z.ZodNumber>;
537
+ from: z.ZodOptional<z.ZodNumber>;
538
+ epoch: z.ZodOptional<z.ZodNumber>;
539
+ }, z.core.$strip>, z.ZodObject<{
540
+ t: z.ZodLiteral<"dir.lookup">;
541
+ req: z.ZodString;
542
+ persons: z.ZodArray<z.ZodObject<{
543
+ person: z.ZodString;
544
+ knownSeq: z.ZodOptional<z.ZodNumber>;
545
+ }, z.core.$strip>>;
546
+ size: z.ZodOptional<z.ZodNumber>;
547
+ proof: z.ZodOptional<z.ZodObject<{
548
+ device: z.ZodString;
549
+ sig: z.ZodString;
550
+ }, z.core.$strict>>;
551
+ }, z.core.$strip>, z.ZodObject<{
552
+ t: z.ZodLiteral<"dir.device">;
553
+ req: z.ZodString;
554
+ device: z.ZodString;
555
+ }, z.core.$strip>, z.ZodObject<{
556
+ t: z.ZodLiteral<"dir.heads">;
557
+ req: z.ZodString;
558
+ persons: z.ZodArray<z.ZodString>;
559
+ size: z.ZodOptional<z.ZodNumber>;
560
+ }, z.core.$strip>, z.ZodObject<{
561
+ t: z.ZodLiteral<"dir.resolve">;
562
+ req: z.ZodString;
563
+ handle: z.ZodOptional<z.ZodString>;
564
+ email: z.ZodOptional<z.ZodString>;
565
+ }, z.core.$strip>, z.ZodObject<{
566
+ t: z.ZodLiteral<"dir.search">;
567
+ req: z.ZodString;
568
+ query: z.ZodString;
569
+ limit: z.ZodNumber;
570
+ }, z.core.$strip>, z.ZodObject<{
571
+ t: z.ZodLiteral<"dir.watch">;
572
+ req: z.ZodString;
573
+ persons: z.ZodArray<z.ZodString>;
574
+ }, z.core.$strip>, z.ZodObject<{
575
+ t: z.ZodLiteral<"presence.watch">;
576
+ req: z.ZodString;
577
+ persons: z.ZodArray<z.ZodString>;
578
+ }, z.core.$strip>, z.ZodObject<{
579
+ t: z.ZodLiteral<"dir.erase">;
580
+ req: z.ZodString;
581
+ entries: z.ZodArray<z.ZodObject<{
582
+ v: z.ZodLiteral<"messaging/1">;
583
+ realm: z.ZodString;
584
+ person: z.ZodString;
585
+ seq: z.ZodNumber;
586
+ prev: z.ZodNullable<z.ZodString>;
587
+ ts: z.ZodNumber;
588
+ op: z.ZodEnum<{
589
+ bind: "bind";
590
+ attest: "attest";
591
+ unbind: "unbind";
592
+ }>;
593
+ device: z.ZodString;
594
+ label: z.ZodOptional<z.ZodString>;
595
+ kind: z.ZodOptional<z.ZodEnum<{
596
+ "jelly-host": "jelly-host";
597
+ laptop: "laptop";
598
+ server: "server";
599
+ other: "other";
600
+ }>>;
601
+ reason: z.ZodOptional<z.ZodEnum<{
602
+ self: "self";
603
+ removed: "removed";
604
+ lost: "lost";
605
+ replaced: "replaced";
606
+ account_deleted: "account_deleted";
607
+ }>>;
608
+ authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
609
+ kind: z.ZodLiteral<"jelly">;
610
+ token: z.ZodString;
611
+ }, z.core.$strict>, z.ZodObject<{
612
+ kind: z.ZodLiteral<"device">;
613
+ approver: z.ZodString;
614
+ link: z.ZodObject<{
615
+ v: z.ZodLiteral<"messaging/1">;
616
+ realm: z.ZodString;
617
+ device: z.ZodString;
618
+ enc: z.ZodString;
619
+ label: z.ZodString;
620
+ kind: z.ZodEnum<{
621
+ "jelly-host": "jelly-host";
622
+ laptop: "laptop";
623
+ server: "server";
624
+ other: "other";
625
+ }>;
626
+ nonce: z.ZodString;
627
+ ts: z.ZodNumber;
628
+ sig: z.ZodString;
629
+ }, z.core.$strict>;
630
+ }, z.core.$strict>, z.ZodObject<{
631
+ kind: z.ZodLiteral<"service">;
632
+ }, z.core.$strict>, z.ZodObject<{
633
+ kind: z.ZodLiteral<"self">;
634
+ }, z.core.$strict>], "kind">;
635
+ by: z.ZodString;
636
+ sig: z.ZodString;
637
+ }, z.core.$strict>>;
638
+ token: z.ZodString;
639
+ }, z.core.$strip>, z.ZodObject<{
640
+ t: z.ZodLiteral<"wake.arm">;
641
+ req: z.ZodString;
642
+ url: z.ZodString;
643
+ ticket: z.ZodString;
644
+ agents: z.ZodArray<z.ZodString>;
645
+ awaiting: z.ZodArray<z.ZodString>;
646
+ }, z.core.$strip>, z.ZodObject<{
647
+ t: z.ZodLiteral<"wake.disarm">;
648
+ req: z.ZodString;
649
+ }, z.core.$strip>], "t">;
650
+ export type DirectoryClientFrame = z.infer<typeof DirectoryClientFrame>;
651
+ /** The answer to a hosted `hello`: the directory's latest STH. */
652
+ export declare const HostedWelcomeFrame: z.ZodObject<{
653
+ t: z.ZodLiteral<"welcome">;
654
+ sth: z.ZodObject<{
655
+ v: z.ZodLiteral<"messaging/1">;
656
+ realm: z.ZodString;
657
+ size: z.ZodNumber;
658
+ root: z.ZodString;
659
+ ts: z.ZodNumber;
660
+ sig: z.ZodString;
661
+ }, z.core.$strict>;
662
+ }, z.core.$strip>;
663
+ /**
664
+ * Success. `dir.bind` gets `person`, `seq` and `sth`; `dir.append` gets `seq` and `sth`; `dir.keys` gets `sth`;
665
+ * `dir.watch`, `presence.watch` and `dir.erase` get none of them.
666
+ */
667
+ export declare const DirOkFrame: z.ZodObject<{
668
+ t: z.ZodLiteral<"dir.ok">;
669
+ req: z.ZodString;
670
+ person: z.ZodOptional<z.ZodString>;
671
+ seq: z.ZodOptional<z.ZodNumber>;
672
+ sth: z.ZodOptional<z.ZodObject<{
673
+ v: z.ZodLiteral<"messaging/1">;
674
+ realm: z.ZodString;
675
+ size: z.ZodNumber;
676
+ root: z.ZodString;
677
+ ts: z.ZodNumber;
678
+ sig: z.ZodString;
679
+ }, z.core.$strict>>;
680
+ }, z.core.$strip>;
681
+ /**
682
+ * An STH; `head` is its last epoch-log leaf (index `size − 1`, whose `mapRoot` lookups at this STH prove
683
+ * against) with its inclusion proof. `consistency` answers `from`, `epoch` answers `epoch`, and `rotation`
684
+ * comes with any STH signed by a new epoch key (design §3.8).
685
+ */
686
+ export declare const DirSthIsFrame: z.ZodObject<{
687
+ t: z.ZodLiteral<"dir.sthIs">;
688
+ req: z.ZodString;
689
+ sth: z.ZodObject<{
690
+ v: z.ZodLiteral<"messaging/1">;
691
+ realm: z.ZodString;
692
+ size: z.ZodNumber;
693
+ root: z.ZodString;
694
+ ts: z.ZodNumber;
695
+ sig: z.ZodString;
696
+ }, z.core.$strict>;
697
+ head: z.ZodObject<{
698
+ index: z.ZodNumber;
699
+ leaf: z.ZodObject<{
700
+ epoch: z.ZodNumber;
701
+ ts: z.ZodNumber;
702
+ mapRoot: z.ZodString;
703
+ prevMapRoot: z.ZodString;
704
+ }, z.core.$strict>;
705
+ inclusion: z.ZodArray<z.ZodString>;
706
+ }, z.core.$strict>;
707
+ consistency: z.ZodOptional<z.ZodArray<z.ZodString>>;
708
+ epoch: z.ZodOptional<z.ZodObject<{
709
+ index: z.ZodNumber;
710
+ leaf: z.ZodObject<{
711
+ epoch: z.ZodNumber;
712
+ ts: z.ZodNumber;
713
+ mapRoot: z.ZodString;
714
+ prevMapRoot: z.ZodString;
715
+ }, z.core.$strict>;
716
+ inclusion: z.ZodArray<z.ZodString>;
717
+ }, z.core.$strict>>;
718
+ rotation: z.ZodOptional<z.ZodObject<{
719
+ v: z.ZodLiteral<"messaging/1">;
720
+ realm: z.ZodString;
721
+ old: z.ZodString;
722
+ new: z.ZodString;
723
+ fromSize: z.ZodNumber;
724
+ sigOld: z.ZodString;
725
+ sigNew: z.ZodString;
726
+ }, z.core.$strict>>;
727
+ }, z.core.$strip>;
728
+ /** One view per person asked, at `sth`. Fewer when the frame would pass `LIMITS.frameBytes`: ask again for the rest. */
729
+ export declare const DirPersonsFrame: z.ZodObject<{
730
+ t: z.ZodLiteral<"dir.persons">;
731
+ req: z.ZodString;
732
+ sth: z.ZodObject<{
733
+ v: z.ZodLiteral<"messaging/1">;
734
+ realm: z.ZodString;
735
+ size: z.ZodNumber;
736
+ root: z.ZodString;
737
+ ts: z.ZodNumber;
738
+ sig: z.ZodString;
739
+ }, z.core.$strict>;
740
+ head: z.ZodObject<{
741
+ index: z.ZodNumber;
742
+ leaf: z.ZodObject<{
743
+ epoch: z.ZodNumber;
744
+ ts: z.ZodNumber;
745
+ mapRoot: z.ZodString;
746
+ prevMapRoot: z.ZodString;
747
+ }, z.core.$strict>;
748
+ inclusion: z.ZodArray<z.ZodString>;
749
+ }, z.core.$strict>;
750
+ persons: z.ZodArray<z.ZodObject<{
751
+ person: z.ZodString;
752
+ log: z.ZodArray<z.ZodObject<{
753
+ v: z.ZodLiteral<"messaging/1">;
754
+ realm: z.ZodString;
755
+ person: z.ZodString;
756
+ seq: z.ZodNumber;
757
+ prev: z.ZodNullable<z.ZodString>;
758
+ ts: z.ZodNumber;
759
+ op: z.ZodEnum<{
760
+ bind: "bind";
761
+ attest: "attest";
762
+ unbind: "unbind";
763
+ }>;
764
+ device: z.ZodString;
765
+ label: z.ZodOptional<z.ZodString>;
766
+ kind: z.ZodOptional<z.ZodEnum<{
767
+ "jelly-host": "jelly-host";
768
+ laptop: "laptop";
769
+ server: "server";
770
+ other: "other";
771
+ }>>;
772
+ reason: z.ZodOptional<z.ZodEnum<{
773
+ self: "self";
774
+ removed: "removed";
775
+ lost: "lost";
776
+ replaced: "replaced";
777
+ account_deleted: "account_deleted";
778
+ }>>;
779
+ authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
780
+ kind: z.ZodLiteral<"jelly">;
781
+ token: z.ZodString;
782
+ }, z.core.$strict>, z.ZodObject<{
783
+ kind: z.ZodLiteral<"device">;
784
+ approver: z.ZodString;
785
+ link: z.ZodObject<{
786
+ v: z.ZodLiteral<"messaging/1">;
787
+ realm: z.ZodString;
788
+ device: z.ZodString;
789
+ enc: z.ZodString;
790
+ label: z.ZodString;
791
+ kind: z.ZodEnum<{
792
+ "jelly-host": "jelly-host";
793
+ laptop: "laptop";
794
+ server: "server";
795
+ other: "other";
796
+ }>;
797
+ nonce: z.ZodString;
798
+ ts: z.ZodNumber;
799
+ sig: z.ZodString;
800
+ }, z.core.$strict>;
801
+ }, z.core.$strict>, z.ZodObject<{
802
+ kind: z.ZodLiteral<"service">;
803
+ }, z.core.$strict>, z.ZodObject<{
804
+ kind: z.ZodLiteral<"self">;
805
+ }, z.core.$strict>], "kind">;
806
+ by: z.ZodString;
807
+ sig: z.ZodString;
808
+ }, z.core.$strict>>;
809
+ keys: z.ZodArray<z.ZodObject<{
810
+ v: z.ZodLiteral<"messaging/1">;
811
+ realm: z.ZodString;
812
+ person: z.ZodString;
813
+ device: z.ZodString;
814
+ enc: z.ZodString;
815
+ seq: z.ZodNumber;
816
+ ts: z.ZodNumber;
817
+ sig: z.ZodString;
818
+ }, z.core.$strict>>;
819
+ mapProof: z.ZodObject<{
820
+ bitmap: z.ZodString;
821
+ siblings: z.ZodArray<z.ZodString>;
822
+ }, z.core.$strict>;
823
+ epochs: z.ZodOptional<z.ZodArray<z.ZodObject<{
824
+ seq: z.ZodNumber;
825
+ epoch: z.ZodObject<{
826
+ index: z.ZodNumber;
827
+ leaf: z.ZodObject<{
828
+ epoch: z.ZodNumber;
829
+ ts: z.ZodNumber;
830
+ mapRoot: z.ZodString;
831
+ prevMapRoot: z.ZodString;
832
+ }, z.core.$strict>;
833
+ inclusion: z.ZodArray<z.ZodString>;
834
+ }, z.core.$strict>;
835
+ value: z.ZodObject<{
836
+ log: z.ZodObject<{
837
+ seq: z.ZodNumber;
838
+ hash: z.ZodString;
839
+ }, z.core.$strict>;
840
+ keys: z.ZodArray<z.ZodString>;
841
+ }, z.core.$strict>;
842
+ mapProof: z.ZodObject<{
843
+ bitmap: z.ZodString;
844
+ siblings: z.ZodArray<z.ZodString>;
845
+ }, z.core.$strict>;
846
+ }, z.core.$strict>>>;
847
+ tombstone: z.ZodOptional<z.ZodLiteral<true>>;
848
+ }, z.core.$strict>>;
849
+ }, z.core.$strip>;
850
+ /** One head per person asked, at `sth`; `head` as in `dir.persons`. */
851
+ export declare const DirHeadsAreFrame: z.ZodObject<{
852
+ t: z.ZodLiteral<"dir.headsAre">;
853
+ req: z.ZodString;
854
+ sth: z.ZodObject<{
855
+ v: z.ZodLiteral<"messaging/1">;
856
+ realm: z.ZodString;
857
+ size: z.ZodNumber;
858
+ root: z.ZodString;
859
+ ts: z.ZodNumber;
860
+ sig: z.ZodString;
861
+ }, z.core.$strict>;
862
+ head: z.ZodObject<{
863
+ index: z.ZodNumber;
864
+ leaf: z.ZodObject<{
865
+ epoch: z.ZodNumber;
866
+ ts: z.ZodNumber;
867
+ mapRoot: z.ZodString;
868
+ prevMapRoot: z.ZodString;
869
+ }, z.core.$strict>;
870
+ inclusion: z.ZodArray<z.ZodString>;
871
+ }, z.core.$strict>;
872
+ persons: z.ZodArray<z.ZodObject<{
873
+ person: z.ZodString;
874
+ mapProof: z.ZodObject<{
875
+ bitmap: z.ZodString;
876
+ siblings: z.ZodArray<z.ZodString>;
877
+ }, z.core.$strict>;
878
+ value: z.ZodOptional<z.ZodObject<{
879
+ log: z.ZodObject<{
880
+ seq: z.ZodNumber;
881
+ hash: z.ZodString;
882
+ }, z.core.$strict>;
883
+ keys: z.ZodArray<z.ZodString>;
884
+ }, z.core.$strict>>;
885
+ tombstone: z.ZodOptional<z.ZodLiteral<true>>;
886
+ }, z.core.$strict>>;
887
+ }, z.core.$strip>;
888
+ /** A person a handle, an email or a search matched, as the directory reads them from the person's latest verified token. */
889
+ export declare const ResolvedPerson: z.ZodObject<{
890
+ person: z.ZodString;
891
+ handle: z.ZodString;
892
+ name: z.ZodOptional<z.ZodString>;
893
+ email: z.ZodOptional<z.ZodString>;
894
+ org: z.ZodOptional<z.ZodString>;
895
+ }, z.core.$strip>;
896
+ export type ResolvedPerson = z.infer<typeof ResolvedPerson>;
897
+ /** An unknown email and an undiscoverable one get the same empty answer. */
898
+ export declare const DirResolvedFrame: z.ZodObject<{
899
+ t: z.ZodLiteral<"dir.resolved">;
900
+ req: z.ZodString;
901
+ persons: z.ZodArray<z.ZodObject<{
902
+ person: z.ZodString;
903
+ handle: z.ZodString;
904
+ name: z.ZodOptional<z.ZodString>;
905
+ email: z.ZodOptional<z.ZodString>;
906
+ org: z.ZodOptional<z.ZodString>;
907
+ }, z.core.$strip>>;
908
+ }, z.core.$strip>;
909
+ /** A push: the logs or keys of these watched persons changed as of `sth`. */
910
+ export declare const DirChangedFrame: z.ZodObject<{
911
+ t: z.ZodLiteral<"dir.changed">;
912
+ persons: z.ZodArray<z.ZodString>;
913
+ sth: z.ZodObject<{
914
+ v: z.ZodLiteral<"messaging/1">;
915
+ realm: z.ZodString;
916
+ size: z.ZodNumber;
917
+ root: z.ZodString;
918
+ ts: z.ZodNumber;
919
+ sig: z.ZodString;
920
+ }, z.core.$strict>;
921
+ }, z.core.$strip>;
922
+ /** A push to a device just removed: its own signed `unbind` entry, before the relay closes with 4003. */
923
+ export declare const DirUnboundFrame: z.ZodObject<{
924
+ t: z.ZodLiteral<"dir.unbound">;
925
+ entry: z.ZodObject<{
926
+ v: z.ZodLiteral<"messaging/1">;
927
+ realm: z.ZodString;
928
+ person: z.ZodString;
929
+ seq: z.ZodNumber;
930
+ prev: z.ZodNullable<z.ZodString>;
931
+ ts: z.ZodNumber;
932
+ op: z.ZodEnum<{
933
+ bind: "bind";
934
+ attest: "attest";
935
+ unbind: "unbind";
936
+ }>;
937
+ device: z.ZodString;
938
+ label: z.ZodOptional<z.ZodString>;
939
+ kind: z.ZodOptional<z.ZodEnum<{
940
+ "jelly-host": "jelly-host";
941
+ laptop: "laptop";
942
+ server: "server";
943
+ other: "other";
944
+ }>>;
945
+ reason: z.ZodOptional<z.ZodEnum<{
946
+ self: "self";
947
+ removed: "removed";
948
+ lost: "lost";
949
+ replaced: "replaced";
950
+ account_deleted: "account_deleted";
951
+ }>>;
952
+ authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
953
+ kind: z.ZodLiteral<"jelly">;
954
+ token: z.ZodString;
955
+ }, z.core.$strict>, z.ZodObject<{
956
+ kind: z.ZodLiteral<"device">;
957
+ approver: z.ZodString;
958
+ link: z.ZodObject<{
959
+ v: z.ZodLiteral<"messaging/1">;
960
+ realm: z.ZodString;
961
+ device: z.ZodString;
962
+ enc: z.ZodString;
963
+ label: z.ZodString;
964
+ kind: z.ZodEnum<{
965
+ "jelly-host": "jelly-host";
966
+ laptop: "laptop";
967
+ server: "server";
968
+ other: "other";
969
+ }>;
970
+ nonce: z.ZodString;
971
+ ts: z.ZodNumber;
972
+ sig: z.ZodString;
973
+ }, z.core.$strict>;
974
+ }, z.core.$strict>, z.ZodObject<{
975
+ kind: z.ZodLiteral<"service">;
976
+ }, z.core.$strict>, z.ZodObject<{
977
+ kind: z.ZodLiteral<"self">;
978
+ }, z.core.$strict>], "kind">;
979
+ by: z.ZodString;
980
+ sig: z.ZodString;
981
+ }, z.core.$strict>;
982
+ sth: z.ZodObject<{
983
+ v: z.ZodLiteral<"messaging/1">;
984
+ realm: z.ZodString;
985
+ size: z.ZodNumber;
986
+ root: z.ZodString;
987
+ ts: z.ZodNumber;
988
+ sig: z.ZodString;
989
+ }, z.core.$strict>;
990
+ }, z.core.$strip>;
991
+ /** Every frame a directory relay sends that the relay binding (§7) does not already define. */
992
+ export declare const DirectoryRelayFrame: z.ZodDiscriminatedUnion<[z.ZodObject<{
993
+ t: z.ZodLiteral<"welcome">;
994
+ sth: z.ZodObject<{
995
+ v: z.ZodLiteral<"messaging/1">;
996
+ realm: z.ZodString;
997
+ size: z.ZodNumber;
998
+ root: z.ZodString;
999
+ ts: z.ZodNumber;
1000
+ sig: z.ZodString;
1001
+ }, z.core.$strict>;
1002
+ }, z.core.$strip>, z.ZodObject<{
1003
+ t: z.ZodLiteral<"dir.ok">;
1004
+ req: z.ZodString;
1005
+ person: z.ZodOptional<z.ZodString>;
1006
+ seq: z.ZodOptional<z.ZodNumber>;
1007
+ sth: z.ZodOptional<z.ZodObject<{
1008
+ v: z.ZodLiteral<"messaging/1">;
1009
+ realm: z.ZodString;
1010
+ size: z.ZodNumber;
1011
+ root: z.ZodString;
1012
+ ts: z.ZodNumber;
1013
+ sig: z.ZodString;
1014
+ }, z.core.$strict>>;
1015
+ }, z.core.$strip>, z.ZodObject<{
1016
+ t: z.ZodLiteral<"dir.sthIs">;
1017
+ req: z.ZodString;
1018
+ sth: z.ZodObject<{
1019
+ v: z.ZodLiteral<"messaging/1">;
1020
+ realm: z.ZodString;
1021
+ size: z.ZodNumber;
1022
+ root: z.ZodString;
1023
+ ts: z.ZodNumber;
1024
+ sig: z.ZodString;
1025
+ }, z.core.$strict>;
1026
+ head: z.ZodObject<{
1027
+ index: z.ZodNumber;
1028
+ leaf: z.ZodObject<{
1029
+ epoch: z.ZodNumber;
1030
+ ts: z.ZodNumber;
1031
+ mapRoot: z.ZodString;
1032
+ prevMapRoot: z.ZodString;
1033
+ }, z.core.$strict>;
1034
+ inclusion: z.ZodArray<z.ZodString>;
1035
+ }, z.core.$strict>;
1036
+ consistency: z.ZodOptional<z.ZodArray<z.ZodString>>;
1037
+ epoch: z.ZodOptional<z.ZodObject<{
1038
+ index: z.ZodNumber;
1039
+ leaf: z.ZodObject<{
1040
+ epoch: z.ZodNumber;
1041
+ ts: z.ZodNumber;
1042
+ mapRoot: z.ZodString;
1043
+ prevMapRoot: z.ZodString;
1044
+ }, z.core.$strict>;
1045
+ inclusion: z.ZodArray<z.ZodString>;
1046
+ }, z.core.$strict>>;
1047
+ rotation: z.ZodOptional<z.ZodObject<{
1048
+ v: z.ZodLiteral<"messaging/1">;
1049
+ realm: z.ZodString;
1050
+ old: z.ZodString;
1051
+ new: z.ZodString;
1052
+ fromSize: z.ZodNumber;
1053
+ sigOld: z.ZodString;
1054
+ sigNew: z.ZodString;
1055
+ }, z.core.$strict>>;
1056
+ }, z.core.$strip>, z.ZodObject<{
1057
+ t: z.ZodLiteral<"dir.persons">;
1058
+ req: z.ZodString;
1059
+ sth: z.ZodObject<{
1060
+ v: z.ZodLiteral<"messaging/1">;
1061
+ realm: z.ZodString;
1062
+ size: z.ZodNumber;
1063
+ root: z.ZodString;
1064
+ ts: z.ZodNumber;
1065
+ sig: z.ZodString;
1066
+ }, z.core.$strict>;
1067
+ head: z.ZodObject<{
1068
+ index: z.ZodNumber;
1069
+ leaf: z.ZodObject<{
1070
+ epoch: z.ZodNumber;
1071
+ ts: z.ZodNumber;
1072
+ mapRoot: z.ZodString;
1073
+ prevMapRoot: z.ZodString;
1074
+ }, z.core.$strict>;
1075
+ inclusion: z.ZodArray<z.ZodString>;
1076
+ }, z.core.$strict>;
1077
+ persons: z.ZodArray<z.ZodObject<{
1078
+ person: z.ZodString;
1079
+ log: z.ZodArray<z.ZodObject<{
1080
+ v: z.ZodLiteral<"messaging/1">;
1081
+ realm: z.ZodString;
1082
+ person: z.ZodString;
1083
+ seq: z.ZodNumber;
1084
+ prev: z.ZodNullable<z.ZodString>;
1085
+ ts: z.ZodNumber;
1086
+ op: z.ZodEnum<{
1087
+ bind: "bind";
1088
+ attest: "attest";
1089
+ unbind: "unbind";
1090
+ }>;
1091
+ device: z.ZodString;
1092
+ label: z.ZodOptional<z.ZodString>;
1093
+ kind: z.ZodOptional<z.ZodEnum<{
1094
+ "jelly-host": "jelly-host";
1095
+ laptop: "laptop";
1096
+ server: "server";
1097
+ other: "other";
1098
+ }>>;
1099
+ reason: z.ZodOptional<z.ZodEnum<{
1100
+ self: "self";
1101
+ removed: "removed";
1102
+ lost: "lost";
1103
+ replaced: "replaced";
1104
+ account_deleted: "account_deleted";
1105
+ }>>;
1106
+ authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
1107
+ kind: z.ZodLiteral<"jelly">;
1108
+ token: z.ZodString;
1109
+ }, z.core.$strict>, z.ZodObject<{
1110
+ kind: z.ZodLiteral<"device">;
1111
+ approver: z.ZodString;
1112
+ link: z.ZodObject<{
1113
+ v: z.ZodLiteral<"messaging/1">;
1114
+ realm: z.ZodString;
1115
+ device: z.ZodString;
1116
+ enc: z.ZodString;
1117
+ label: z.ZodString;
1118
+ kind: z.ZodEnum<{
1119
+ "jelly-host": "jelly-host";
1120
+ laptop: "laptop";
1121
+ server: "server";
1122
+ other: "other";
1123
+ }>;
1124
+ nonce: z.ZodString;
1125
+ ts: z.ZodNumber;
1126
+ sig: z.ZodString;
1127
+ }, z.core.$strict>;
1128
+ }, z.core.$strict>, z.ZodObject<{
1129
+ kind: z.ZodLiteral<"service">;
1130
+ }, z.core.$strict>, z.ZodObject<{
1131
+ kind: z.ZodLiteral<"self">;
1132
+ }, z.core.$strict>], "kind">;
1133
+ by: z.ZodString;
1134
+ sig: z.ZodString;
1135
+ }, z.core.$strict>>;
1136
+ keys: z.ZodArray<z.ZodObject<{
1137
+ v: z.ZodLiteral<"messaging/1">;
1138
+ realm: z.ZodString;
1139
+ person: z.ZodString;
1140
+ device: z.ZodString;
1141
+ enc: z.ZodString;
1142
+ seq: z.ZodNumber;
1143
+ ts: z.ZodNumber;
1144
+ sig: z.ZodString;
1145
+ }, z.core.$strict>>;
1146
+ mapProof: z.ZodObject<{
1147
+ bitmap: z.ZodString;
1148
+ siblings: z.ZodArray<z.ZodString>;
1149
+ }, z.core.$strict>;
1150
+ epochs: z.ZodOptional<z.ZodArray<z.ZodObject<{
1151
+ seq: z.ZodNumber;
1152
+ epoch: z.ZodObject<{
1153
+ index: z.ZodNumber;
1154
+ leaf: z.ZodObject<{
1155
+ epoch: z.ZodNumber;
1156
+ ts: z.ZodNumber;
1157
+ mapRoot: z.ZodString;
1158
+ prevMapRoot: z.ZodString;
1159
+ }, z.core.$strict>;
1160
+ inclusion: z.ZodArray<z.ZodString>;
1161
+ }, z.core.$strict>;
1162
+ value: z.ZodObject<{
1163
+ log: z.ZodObject<{
1164
+ seq: z.ZodNumber;
1165
+ hash: z.ZodString;
1166
+ }, z.core.$strict>;
1167
+ keys: z.ZodArray<z.ZodString>;
1168
+ }, z.core.$strict>;
1169
+ mapProof: z.ZodObject<{
1170
+ bitmap: z.ZodString;
1171
+ siblings: z.ZodArray<z.ZodString>;
1172
+ }, z.core.$strict>;
1173
+ }, z.core.$strict>>>;
1174
+ tombstone: z.ZodOptional<z.ZodLiteral<true>>;
1175
+ }, z.core.$strict>>;
1176
+ }, z.core.$strip>, z.ZodObject<{
1177
+ t: z.ZodLiteral<"dir.headsAre">;
1178
+ req: z.ZodString;
1179
+ sth: z.ZodObject<{
1180
+ v: z.ZodLiteral<"messaging/1">;
1181
+ realm: z.ZodString;
1182
+ size: z.ZodNumber;
1183
+ root: z.ZodString;
1184
+ ts: z.ZodNumber;
1185
+ sig: z.ZodString;
1186
+ }, z.core.$strict>;
1187
+ head: z.ZodObject<{
1188
+ index: z.ZodNumber;
1189
+ leaf: z.ZodObject<{
1190
+ epoch: z.ZodNumber;
1191
+ ts: z.ZodNumber;
1192
+ mapRoot: z.ZodString;
1193
+ prevMapRoot: z.ZodString;
1194
+ }, z.core.$strict>;
1195
+ inclusion: z.ZodArray<z.ZodString>;
1196
+ }, z.core.$strict>;
1197
+ persons: z.ZodArray<z.ZodObject<{
1198
+ person: z.ZodString;
1199
+ mapProof: z.ZodObject<{
1200
+ bitmap: z.ZodString;
1201
+ siblings: z.ZodArray<z.ZodString>;
1202
+ }, z.core.$strict>;
1203
+ value: z.ZodOptional<z.ZodObject<{
1204
+ log: z.ZodObject<{
1205
+ seq: z.ZodNumber;
1206
+ hash: z.ZodString;
1207
+ }, z.core.$strict>;
1208
+ keys: z.ZodArray<z.ZodString>;
1209
+ }, z.core.$strict>>;
1210
+ tombstone: z.ZodOptional<z.ZodLiteral<true>>;
1211
+ }, z.core.$strict>>;
1212
+ }, z.core.$strip>, z.ZodObject<{
1213
+ t: z.ZodLiteral<"dir.resolved">;
1214
+ req: z.ZodString;
1215
+ persons: z.ZodArray<z.ZodObject<{
1216
+ person: z.ZodString;
1217
+ handle: z.ZodString;
1218
+ name: z.ZodOptional<z.ZodString>;
1219
+ email: z.ZodOptional<z.ZodString>;
1220
+ org: z.ZodOptional<z.ZodString>;
1221
+ }, z.core.$strip>>;
1222
+ }, z.core.$strip>, z.ZodObject<{
1223
+ t: z.ZodLiteral<"dir.changed">;
1224
+ persons: z.ZodArray<z.ZodString>;
1225
+ sth: z.ZodObject<{
1226
+ v: z.ZodLiteral<"messaging/1">;
1227
+ realm: z.ZodString;
1228
+ size: z.ZodNumber;
1229
+ root: z.ZodString;
1230
+ ts: z.ZodNumber;
1231
+ sig: z.ZodString;
1232
+ }, z.core.$strict>;
1233
+ }, z.core.$strip>, z.ZodObject<{
1234
+ t: z.ZodLiteral<"dir.unbound">;
1235
+ entry: z.ZodObject<{
1236
+ v: z.ZodLiteral<"messaging/1">;
1237
+ realm: z.ZodString;
1238
+ person: z.ZodString;
1239
+ seq: z.ZodNumber;
1240
+ prev: z.ZodNullable<z.ZodString>;
1241
+ ts: z.ZodNumber;
1242
+ op: z.ZodEnum<{
1243
+ bind: "bind";
1244
+ attest: "attest";
1245
+ unbind: "unbind";
1246
+ }>;
1247
+ device: z.ZodString;
1248
+ label: z.ZodOptional<z.ZodString>;
1249
+ kind: z.ZodOptional<z.ZodEnum<{
1250
+ "jelly-host": "jelly-host";
1251
+ laptop: "laptop";
1252
+ server: "server";
1253
+ other: "other";
1254
+ }>>;
1255
+ reason: z.ZodOptional<z.ZodEnum<{
1256
+ self: "self";
1257
+ removed: "removed";
1258
+ lost: "lost";
1259
+ replaced: "replaced";
1260
+ account_deleted: "account_deleted";
1261
+ }>>;
1262
+ authority: z.ZodDiscriminatedUnion<[z.ZodObject<{
1263
+ kind: z.ZodLiteral<"jelly">;
1264
+ token: z.ZodString;
1265
+ }, z.core.$strict>, z.ZodObject<{
1266
+ kind: z.ZodLiteral<"device">;
1267
+ approver: z.ZodString;
1268
+ link: z.ZodObject<{
1269
+ v: z.ZodLiteral<"messaging/1">;
1270
+ realm: z.ZodString;
1271
+ device: z.ZodString;
1272
+ enc: z.ZodString;
1273
+ label: z.ZodString;
1274
+ kind: z.ZodEnum<{
1275
+ "jelly-host": "jelly-host";
1276
+ laptop: "laptop";
1277
+ server: "server";
1278
+ other: "other";
1279
+ }>;
1280
+ nonce: z.ZodString;
1281
+ ts: z.ZodNumber;
1282
+ sig: z.ZodString;
1283
+ }, z.core.$strict>;
1284
+ }, z.core.$strict>, z.ZodObject<{
1285
+ kind: z.ZodLiteral<"service">;
1286
+ }, z.core.$strict>, z.ZodObject<{
1287
+ kind: z.ZodLiteral<"self">;
1288
+ }, z.core.$strict>], "kind">;
1289
+ by: z.ZodString;
1290
+ sig: z.ZodString;
1291
+ }, z.core.$strict>;
1292
+ sth: z.ZodObject<{
1293
+ v: z.ZodLiteral<"messaging/1">;
1294
+ realm: z.ZodString;
1295
+ size: z.ZodNumber;
1296
+ root: z.ZodString;
1297
+ ts: z.ZodNumber;
1298
+ sig: z.ZodString;
1299
+ }, z.core.$strict>;
1300
+ }, z.core.$strip>], "t">;
1301
+ export type DirectoryRelayFrame = z.infer<typeof DirectoryRelayFrame>;