@joe-broadhead/messaging 0.0.0-stage → 0.7.1

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 (273) hide show
  1. package/CHANGELOG.md +220 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +12 -0
  4. package/README.md +36 -2
  5. package/dist/bin/messaging-mcp.js +26524 -0
  6. package/dist/bin/messaging-relay.js +19768 -0
  7. package/dist/bin/messaging.js +15465 -0
  8. package/dist/bin/messagingd.js +29449 -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 +477 -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/conversation/context.js +80 -0
  24. package/dist/lib/modules/core/conversation/event.js +100 -0
  25. package/dist/lib/modules/core/conversation/ids.js +38 -0
  26. package/dist/lib/modules/core/conversation/link.js +35 -0
  27. package/dist/lib/modules/core/conversation/log.js +766 -0
  28. package/dist/lib/modules/core/conversation/ratchet.js +243 -0
  29. package/dist/lib/modules/core/conversation/seal.js +198 -0
  30. package/dist/lib/modules/core/delegation.js +174 -0
  31. package/dist/lib/modules/core/directory/device-log.js +258 -0
  32. package/dist/lib/modules/core/directory/epoch.js +103 -0
  33. package/dist/lib/modules/core/directory/handle.js +29 -0
  34. package/dist/lib/modules/core/directory/jelly-device.js +204 -0
  35. package/dist/lib/modules/core/directory/jelly-issuer.js +12 -0
  36. package/dist/lib/modules/core/directory/jelly-token.js +305 -0
  37. package/dist/lib/modules/core/directory/keys-statement.js +43 -0
  38. package/dist/lib/modules/core/directory/link.js +81 -0
  39. package/dist/lib/modules/core/directory/merkle-log.js +250 -0
  40. package/dist/lib/modules/core/directory/person-view.js +197 -0
  41. package/dist/lib/modules/core/directory/person.js +40 -0
  42. package/dist/lib/modules/core/directory/realm.js +59 -0
  43. package/dist/lib/modules/core/directory/smt.js +266 -0
  44. package/dist/lib/modules/core/envelope.js +320 -0
  45. package/dist/lib/modules/core/hash.js +5 -0
  46. package/dist/lib/modules/core/head.js +27 -0
  47. package/dist/lib/modules/core/identity.js +71 -0
  48. package/dist/lib/modules/core/index.js +53 -0
  49. package/dist/lib/modules/core/jcs.js +96 -0
  50. package/dist/lib/modules/core/jelly-host-double.js +35 -0
  51. package/dist/lib/modules/core/jelly-host.js +211 -0
  52. package/dist/lib/modules/core/keys.js +79 -0
  53. package/dist/lib/modules/core/peer-text.js +563 -0
  54. package/dist/lib/modules/core/realm.js +1 -0
  55. package/dist/lib/modules/core/roster.js +454 -0
  56. package/dist/lib/modules/core/schema/a2a.js +85 -0
  57. package/dist/lib/modules/core/schema/common.js +310 -0
  58. package/dist/lib/modules/core/schema/consent.js +120 -0
  59. package/dist/lib/modules/core/schema/conversation.js +292 -0
  60. package/dist/lib/modules/core/schema/delegation.js +58 -0
  61. package/dist/lib/modules/core/schema/directory-frames.js +270 -0
  62. package/dist/lib/modules/core/schema/directory.js +169 -0
  63. package/dist/lib/modules/core/schema/envelope.js +211 -0
  64. package/dist/lib/modules/core/schema/errors.js +104 -0
  65. package/dist/lib/modules/core/schema/index.js +16 -0
  66. package/dist/lib/modules/core/schema/ipc/consent.js +181 -0
  67. package/dist/lib/modules/core/schema/ipc/device.js +276 -0
  68. package/dist/lib/modules/core/schema/ipc/jelly.js +189 -0
  69. package/dist/lib/modules/core/schema/ipc/shapes.js +185 -0
  70. package/dist/lib/modules/core/schema/ipc/surfaces.js +223 -0
  71. package/dist/lib/modules/core/schema/ipc.js +451 -0
  72. package/dist/lib/modules/core/schema/jelly.js +122 -0
  73. package/dist/lib/modules/core/schema/realm.js +27 -0
  74. package/dist/lib/modules/core/schema/relay.js +112 -0
  75. package/dist/lib/modules/core/schema/roster.js +126 -0
  76. package/dist/lib/modules/core/sign.js +43 -0
  77. package/dist/lib/modules/core/task.js +37 -0
  78. package/dist/lib/modules/core/testing.js +21 -0
  79. package/dist/lib/modules/core/ulid.js +36 -0
  80. package/dist/lib/modules/core/version.js +6 -0
  81. package/dist/lib/modules/core/wire.js +255 -0
  82. package/dist/lib/modules/ipc/client.js +289 -0
  83. package/dist/lib/modules/ipc/framing.js +33 -0
  84. package/dist/lib/modules/ipc/index.js +6 -0
  85. package/dist/lib/modules/ipc/paths.js +102 -0
  86. package/dist/lib/modules/ipc/pipes.js +65 -0
  87. package/dist/lib/modules/ipc/rpc.js +8 -0
  88. package/dist/lib/modules/ipc/server.js +317 -0
  89. package/dist/lib/modules/ipc/testing.js +145 -0
  90. package/dist/lib/modules/ipc/trust.js +166 -0
  91. package/dist/lib/modules/ipc/windows-acl.js +275 -0
  92. package/dist/lib/modules/vendor/zod/index.js +7 -0
  93. package/dist/lib/modules/vendor/zod/v4/classic/checks.js +1 -0
  94. package/dist/lib/modules/vendor/zod/v4/classic/coerce.js +17 -0
  95. package/dist/lib/modules/vendor/zod/v4/classic/compat.js +31 -0
  96. package/dist/lib/modules/vendor/zod/v4/classic/deep-partial.js +13 -0
  97. package/dist/lib/modules/vendor/zod/v4/classic/errors.js +57 -0
  98. package/dist/lib/modules/vendor/zod/v4/classic/external.js +17 -0
  99. package/dist/lib/modules/vendor/zod/v4/classic/from-json-schema.js +881 -0
  100. package/dist/lib/modules/vendor/zod/v4/classic/in-out.js +36 -0
  101. package/dist/lib/modules/vendor/zod/v4/classic/iso.js +15 -0
  102. package/dist/lib/modules/vendor/zod/v4/classic/parse.js +16 -0
  103. package/dist/lib/modules/vendor/zod/v4/classic/schemas.js +1535 -0
  104. package/dist/lib/modules/vendor/zod/v4/core/api.js +1107 -0
  105. package/dist/lib/modules/vendor/zod/v4/core/checks.js +516 -0
  106. package/dist/lib/modules/vendor/zod/v4/core/compile.js +1866 -0
  107. package/dist/lib/modules/vendor/zod/v4/core/core.js +141 -0
  108. package/dist/lib/modules/vendor/zod/v4/core/doc.js +38 -0
  109. package/dist/lib/modules/vendor/zod/v4/core/errors.js +267 -0
  110. package/dist/lib/modules/vendor/zod/v4/core/index.js +19 -0
  111. package/dist/lib/modules/vendor/zod/v4/core/json-schema-generator.js +99 -0
  112. package/dist/lib/modules/vendor/zod/v4/core/json-schema-processors.js +843 -0
  113. package/dist/lib/modules/vendor/zod/v4/core/json-schema.js +1 -0
  114. package/dist/lib/modules/vendor/zod/v4/core/memoizer.js +311 -0
  115. package/dist/lib/modules/vendor/zod/v4/core/parse.js +175 -0
  116. package/dist/lib/modules/vendor/zod/v4/core/regexes.js +156 -0
  117. package/dist/lib/modules/vendor/zod/v4/core/registries.js +51 -0
  118. package/dist/lib/modules/vendor/zod/v4/core/schemas.js +2636 -0
  119. package/dist/lib/modules/vendor/zod/v4/core/to-json-schema.js +651 -0
  120. package/dist/lib/modules/vendor/zod/v4/core/util.js +873 -0
  121. package/dist/lib/modules/vendor/zod/v4/core/versions.js +5 -0
  122. package/dist/lib/modules/vendor/zod/v4/core/visit.js +169 -0
  123. package/dist/lib/modules/vendor/zod/v4/locales/ar.js +111 -0
  124. package/dist/lib/modules/vendor/zod/v4/locales/az.js +110 -0
  125. package/dist/lib/modules/vendor/zod/v4/locales/be.js +168 -0
  126. package/dist/lib/modules/vendor/zod/v4/locales/bg.js +125 -0
  127. package/dist/lib/modules/vendor/zod/v4/locales/bn.js +113 -0
  128. package/dist/lib/modules/vendor/zod/v4/locales/ca.js +112 -0
  129. package/dist/lib/modules/vendor/zod/v4/locales/ckb.js +133 -0
  130. package/dist/lib/modules/vendor/zod/v4/locales/cs.js +116 -0
  131. package/dist/lib/modules/vendor/zod/v4/locales/da.js +120 -0
  132. package/dist/lib/modules/vendor/zod/v4/locales/de.js +113 -0
  133. package/dist/lib/modules/vendor/zod/v4/locales/el.js +112 -0
  134. package/dist/lib/modules/vendor/zod/v4/locales/en.js +125 -0
  135. package/dist/lib/modules/vendor/zod/v4/locales/eo.js +114 -0
  136. package/dist/lib/modules/vendor/zod/v4/locales/es.js +136 -0
  137. package/dist/lib/modules/vendor/zod/v4/locales/fa.js +119 -0
  138. package/dist/lib/modules/vendor/zod/v4/locales/fi.js +117 -0
  139. package/dist/lib/modules/vendor/zod/v4/locales/fr-CA.js +112 -0
  140. package/dist/lib/modules/vendor/zod/v4/locales/fr.js +129 -0
  141. package/dist/lib/modules/vendor/zod/v4/locales/gu.js +113 -0
  142. package/dist/lib/modules/vendor/zod/v4/locales/he.js +221 -0
  143. package/dist/lib/modules/vendor/zod/v4/locales/hi.js +111 -0
  144. package/dist/lib/modules/vendor/zod/v4/locales/hr.js +126 -0
  145. package/dist/lib/modules/vendor/zod/v4/locales/hu.js +113 -0
  146. package/dist/lib/modules/vendor/zod/v4/locales/hy.js +158 -0
  147. package/dist/lib/modules/vendor/zod/v4/locales/id.js +111 -0
  148. package/dist/lib/modules/vendor/zod/v4/locales/index.js +63 -0
  149. package/dist/lib/modules/vendor/zod/v4/locales/is.js +114 -0
  150. package/dist/lib/modules/vendor/zod/v4/locales/it.js +113 -0
  151. package/dist/lib/modules/vendor/zod/v4/locales/ja.js +112 -0
  152. package/dist/lib/modules/vendor/zod/v4/locales/ka.js +117 -0
  153. package/dist/lib/modules/vendor/zod/v4/locales/kh.js +5 -0
  154. package/dist/lib/modules/vendor/zod/v4/locales/km.js +115 -0
  155. package/dist/lib/modules/vendor/zod/v4/locales/kn.js +116 -0
  156. package/dist/lib/modules/vendor/zod/v4/locales/ko.js +116 -0
  157. package/dist/lib/modules/vendor/zod/v4/locales/lt.js +207 -0
  158. package/dist/lib/modules/vendor/zod/v4/locales/mk.js +114 -0
  159. package/dist/lib/modules/vendor/zod/v4/locales/ms.js +112 -0
  160. package/dist/lib/modules/vendor/zod/v4/locales/ne.js +111 -0
  161. package/dist/lib/modules/vendor/zod/v4/locales/nl.js +115 -0
  162. package/dist/lib/modules/vendor/zod/v4/locales/nn.js +113 -0
  163. package/dist/lib/modules/vendor/zod/v4/locales/no.js +113 -0
  164. package/dist/lib/modules/vendor/zod/v4/locales/ota.js +114 -0
  165. package/dist/lib/modules/vendor/zod/v4/locales/pl.js +114 -0
  166. package/dist/lib/modules/vendor/zod/v4/locales/ps.js +119 -0
  167. package/dist/lib/modules/vendor/zod/v4/locales/pt-BR.js +143 -0
  168. package/dist/lib/modules/vendor/zod/v4/locales/pt.js +142 -0
  169. package/dist/lib/modules/vendor/zod/v4/locales/ro.js +122 -0
  170. package/dist/lib/modules/vendor/zod/v4/locales/ru.js +168 -0
  171. package/dist/lib/modules/vendor/zod/v4/locales/sk.js +116 -0
  172. package/dist/lib/modules/vendor/zod/v4/locales/sl.js +114 -0
  173. package/dist/lib/modules/vendor/zod/v4/locales/sv.js +115 -0
  174. package/dist/lib/modules/vendor/zod/v4/locales/ta.js +115 -0
  175. package/dist/lib/modules/vendor/zod/v4/locales/tg.js +117 -0
  176. package/dist/lib/modules/vendor/zod/v4/locales/th.js +115 -0
  177. package/dist/lib/modules/vendor/zod/v4/locales/tk.js +107 -0
  178. package/dist/lib/modules/vendor/zod/v4/locales/tr.js +110 -0
  179. package/dist/lib/modules/vendor/zod/v4/locales/ua.js +5 -0
  180. package/dist/lib/modules/vendor/zod/v4/locales/uk.js +113 -0
  181. package/dist/lib/modules/vendor/zod/v4/locales/ur.js +115 -0
  182. package/dist/lib/modules/vendor/zod/v4/locales/uz.js +113 -0
  183. package/dist/lib/modules/vendor/zod/v4/locales/vi.js +113 -0
  184. package/dist/lib/modules/vendor/zod/v4/locales/yo.js +112 -0
  185. package/dist/lib/modules/vendor/zod/v4/locales/zh-CN.js +114 -0
  186. package/dist/lib/modules/vendor/zod/v4/locales/zh-TW.js +112 -0
  187. package/dist/lib/testing-jelly-id.js +1219 -0
  188. package/dist/lib/zod.js +1 -0
  189. package/dist/spec/messaging-v1.md +3744 -0
  190. package/dist/third-party-notices.md +239 -0
  191. package/dist/third-party.json +88 -0
  192. package/dist/types/core/address.d.ts +16 -0
  193. package/dist/types/core/agent/operations.d.ts +129 -0
  194. package/dist/types/core/agent/present.d.ts +57 -0
  195. package/dist/types/core/agent/text.d.ts +62 -0
  196. package/dist/types/core/agent-tools.d.ts +966 -0
  197. package/dist/types/core/b64u.d.ts +6 -0
  198. package/dist/types/core/cards.d.ts +21 -0
  199. package/dist/types/core/check.d.ts +10 -0
  200. package/dist/types/core/consent.d.ts +132 -0
  201. package/dist/types/core/contact-card.d.ts +34 -0
  202. package/dist/types/core/conversation/context.d.ts +56 -0
  203. package/dist/types/core/conversation/event.d.ts +36 -0
  204. package/dist/types/core/conversation/ids.d.ts +18 -0
  205. package/dist/types/core/conversation/link.d.ts +16 -0
  206. package/dist/types/core/conversation/log.d.ts +142 -0
  207. package/dist/types/core/conversation/ratchet.d.ts +95 -0
  208. package/dist/types/core/conversation/seal.d.ts +47 -0
  209. package/dist/types/core/delegation.d.ts +71 -0
  210. package/dist/types/core/directory/device-log.d.ts +119 -0
  211. package/dist/types/core/directory/epoch.d.ts +53 -0
  212. package/dist/types/core/directory/handle.d.ts +11 -0
  213. package/dist/types/core/directory/jelly-device.d.ts +88 -0
  214. package/dist/types/core/directory/jelly-issuer.d.ts +8 -0
  215. package/dist/types/core/directory/jelly-token.d.ts +116 -0
  216. package/dist/types/core/directory/keys-statement.d.ts +22 -0
  217. package/dist/types/core/directory/link.d.ts +36 -0
  218. package/dist/types/core/directory/merkle-log.d.ts +40 -0
  219. package/dist/types/core/directory/person-view.d.ts +90 -0
  220. package/dist/types/core/directory/person.d.ts +8 -0
  221. package/dist/types/core/directory/realm.d.ts +23 -0
  222. package/dist/types/core/directory/smt.d.ts +52 -0
  223. package/dist/types/core/envelope.d.ts +68 -0
  224. package/dist/types/core/hash.d.ts +2 -0
  225. package/dist/types/core/head.d.ts +34 -0
  226. package/dist/types/core/identity.d.ts +35 -0
  227. package/dist/types/core/index.d.ts +45 -0
  228. package/dist/types/core/jcs.d.ts +12 -0
  229. package/dist/types/core/jelly-host-double.d.ts +21 -0
  230. package/dist/types/core/jelly-host.d.ts +86 -0
  231. package/dist/types/core/keys.d.ts +16 -0
  232. package/dist/types/core/peer-text.d.ts +87 -0
  233. package/dist/types/core/realm.d.ts +36 -0
  234. package/dist/types/core/roster.d.ts +146 -0
  235. package/dist/types/core/schema/a2a.d.ts +251 -0
  236. package/dist/types/core/schema/common.d.ts +328 -0
  237. package/dist/types/core/schema/consent.d.ts +140 -0
  238. package/dist/types/core/schema/conversation.d.ts +1657 -0
  239. package/dist/types/core/schema/delegation.d.ts +58 -0
  240. package/dist/types/core/schema/directory-frames.d.ts +1301 -0
  241. package/dist/types/core/schema/directory.d.ts +375 -0
  242. package/dist/types/core/schema/envelope.d.ts +756 -0
  243. package/dist/types/core/schema/errors.d.ts +142 -0
  244. package/dist/types/core/schema/index.d.ts +16 -0
  245. package/dist/types/core/schema/ipc/consent.d.ts +555 -0
  246. package/dist/types/core/schema/ipc/device.d.ts +735 -0
  247. package/dist/types/core/schema/ipc/jelly.d.ts +501 -0
  248. package/dist/types/core/schema/ipc/shapes.d.ts +414 -0
  249. package/dist/types/core/schema/ipc/surfaces.d.ts +680 -0
  250. package/dist/types/core/schema/ipc.d.ts +3146 -0
  251. package/dist/types/core/schema/jelly.d.ts +160 -0
  252. package/dist/types/core/schema/realm.d.ts +38 -0
  253. package/dist/types/core/schema/relay.d.ts +1134 -0
  254. package/dist/types/core/schema/roster.d.ts +347 -0
  255. package/dist/types/core/sign.d.ts +13 -0
  256. package/dist/types/core/task.d.ts +6 -0
  257. package/dist/types/core/testing.d.ts +19 -0
  258. package/dist/types/core/ulid.d.ts +5 -0
  259. package/dist/types/core/version.d.ts +6 -0
  260. package/dist/types/core/wire.d.ts +14 -0
  261. package/dist/types/ipc/client.d.ts +85 -0
  262. package/dist/types/ipc/framing.d.ts +12 -0
  263. package/dist/types/ipc/index.d.ts +6 -0
  264. package/dist/types/ipc/paths.d.ts +39 -0
  265. package/dist/types/ipc/pipes.d.ts +16 -0
  266. package/dist/types/ipc/rpc.d.ts +13 -0
  267. package/dist/types/ipc/server.d.ts +94 -0
  268. package/dist/types/ipc/testing.d.ts +89 -0
  269. package/dist/types/ipc/trust.d.ts +49 -0
  270. package/dist/types/ipc/windows-acl.d.ts +56 -0
  271. package/dist/types/testing/jelly-id.d.ts +518 -0
  272. package/dist/types/zod.d.ts +1 -0
  273. package/package.json +77 -4
@@ -0,0 +1,756 @@
1
+ /**
2
+ * The Messaging envelope: the end-to-end unit between machines. The sender signs it;
3
+ * every body except presence is sealed to the recipient machine's X25519 key.
4
+ * The relay can read the header (routing) but not the body.
5
+ */
6
+ import { z } from "zod";
7
+ export declare const EnvelopeType: z.ZodEnum<{
8
+ message: "message";
9
+ "task.cancel": "task.cancel";
10
+ receipt: "receipt";
11
+ presence: "presence";
12
+ "task.status": "task.status";
13
+ "task.artifact": "task.artifact";
14
+ }>;
15
+ export type EnvelopeType = z.infer<typeof EnvelopeType>;
16
+ export declare const SEAL_ALG: "x25519-hkdf-sha256-a256gcm";
17
+ /**
18
+ * What the envelope is to its recipient's person (spec §5, "Class"), in the header so the signature and the AAD
19
+ * cover it: `self` between two devices of one person (`from.person` = `to.person`), `contact` between two persons,
20
+ * and `request` for a message request (spec §6.9, "Message requests"): a person's first line to a person of another
21
+ * org, which a directory relay paces by this header alone. Every sealed envelope carries it; presence does not.
22
+ */
23
+ export declare const EnvelopeClass: z.ZodEnum<{
24
+ self: "self";
25
+ request: "request";
26
+ contact: "contact";
27
+ }>;
28
+ export type EnvelopeClass = z.infer<typeof EnvelopeClass>;
29
+ /**
30
+ * One end of an envelope (spec §5, "Ends"): a person, one of their devices, and optionally an agent (a session) on
31
+ * that device. With no `agent`, the end is the person (or, for receipts and task control, the device acting for them).
32
+ */
33
+ export declare const Party: z.ZodObject<{
34
+ person: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
35
+ device: z.ZodString;
36
+ agent: z.ZodOptional<z.ZodString>;
37
+ }, z.core.$strip>;
38
+ export type Party = z.infer<typeof Party>;
39
+ /** Sender: the signing device, its person, and the agent that wrote the envelope, if an agent did. */
40
+ export declare const Sender: z.ZodObject<{
41
+ person: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
42
+ device: z.ZodString;
43
+ agent: z.ZodOptional<z.ZodString>;
44
+ }, z.core.$strip>;
45
+ export type Sender = Party;
46
+ /** Recipient: one device of a person, and optionally an agent on it; presence alone goes to the whole team. */
47
+ export declare const Recipient: z.ZodUnion<readonly [z.ZodObject<{
48
+ person: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
49
+ device: z.ZodString;
50
+ agent: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strip>, z.ZodObject<{
52
+ team: z.ZodLiteral<true>;
53
+ }, z.core.$strip>]>;
54
+ export type Recipient = z.infer<typeof Recipient>;
55
+ /**
56
+ * Wire form. `sig` = Ed25519(from.device, DOMAIN.envelope + JCS(envelope without `sig`)).
57
+ * Sealed: enc = SEAL_ALG, epk + nonce present, body = base64url(ciphertext||tag),
58
+ * AAD = UTF-8(JCS(header)), header = envelope without body and sig.
59
+ * Plain (presence only): enc = "none", body = payload object, no epk/nonce.
60
+ * `realm` is the sender's realm, and `anchor` its view of the realm when it sealed the envelope (spec §5,
61
+ * "Realm and anchor"): the signature covers both, and so does the AAD of a sealed envelope.
62
+ */
63
+ export declare const Envelope: z.ZodObject<{
64
+ v: z.ZodLiteral<"messaging/1">;
65
+ id: z.ZodString;
66
+ realm: z.ZodString;
67
+ type: z.ZodEnum<{
68
+ message: "message";
69
+ "task.cancel": "task.cancel";
70
+ receipt: "receipt";
71
+ presence: "presence";
72
+ "task.status": "task.status";
73
+ "task.artifact": "task.artifact";
74
+ }>;
75
+ from: z.ZodObject<{
76
+ person: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
77
+ device: z.ZodString;
78
+ agent: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>;
80
+ to: z.ZodUnion<readonly [z.ZodObject<{
81
+ person: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
82
+ device: z.ZodString;
83
+ agent: z.ZodOptional<z.ZodString>;
84
+ }, z.core.$strip>, z.ZodObject<{
85
+ team: z.ZodLiteral<true>;
86
+ }, z.core.$strip>]>;
87
+ ts: z.ZodNumber;
88
+ exp: z.ZodNumber;
89
+ anchor: z.ZodDiscriminatedUnion<[z.ZodObject<{
90
+ kind: z.ZodLiteral<"roster">;
91
+ seq: z.ZodNumber;
92
+ hash: z.ZodString;
93
+ }, z.core.$strip>, z.ZodObject<{
94
+ kind: z.ZodLiteral<"epoch">;
95
+ size: z.ZodNumber;
96
+ root: z.ZodString;
97
+ }, z.core.$strip>], "kind">;
98
+ class: z.ZodOptional<z.ZodEnum<{
99
+ self: "self";
100
+ request: "request";
101
+ contact: "contact";
102
+ }>>;
103
+ replyTo: z.ZodOptional<z.ZodString>;
104
+ enc: z.ZodEnum<{
105
+ none: "none";
106
+ "x25519-hkdf-sha256-a256gcm": "x25519-hkdf-sha256-a256gcm";
107
+ }>;
108
+ epk: z.ZodOptional<z.ZodString>;
109
+ nonce: z.ZodOptional<z.ZodString>;
110
+ body: z.ZodUnknown;
111
+ sig: z.ZodString;
112
+ }, z.core.$strip>;
113
+ export type Envelope = z.infer<typeof Envelope>;
114
+ /**
115
+ * A channel change or post (spec §6.8), on a `kind: "message"` envelope sealed to a device with no recipient agent.
116
+ * `create`: the full channel record with the person who created it, to every member device and to each later
117
+ * invitee. `invite`: persons added, to the existing members. `leave`: the sender left. `remove`: persons removed by
118
+ * the creator or an admin, to every member device. `post`: a line in the channel. `name` is always the channel's own
119
+ * name. A DM line has no `conv` (spec §5, "Meaning").
120
+ */
121
+ export declare const ChannelConv: z.ZodDiscriminatedUnion<[z.ZodObject<{
122
+ kind: z.ZodLiteral<"channel">;
123
+ op: z.ZodLiteral<"create">;
124
+ id: z.ZodString;
125
+ name: z.ZodString;
126
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
127
+ creator: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
128
+ }, z.core.$strip>, z.ZodObject<{
129
+ kind: z.ZodLiteral<"channel">;
130
+ op: z.ZodLiteral<"invite">;
131
+ id: z.ZodString;
132
+ name: z.ZodString;
133
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
134
+ }, z.core.$strip>, z.ZodObject<{
135
+ kind: z.ZodLiteral<"channel">;
136
+ op: z.ZodLiteral<"leave">;
137
+ id: z.ZodString;
138
+ name: z.ZodString;
139
+ }, z.core.$strip>, z.ZodObject<{
140
+ kind: z.ZodLiteral<"channel">;
141
+ op: z.ZodLiteral<"remove">;
142
+ id: z.ZodString;
143
+ name: z.ZodString;
144
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
145
+ }, z.core.$strip>, z.ZodObject<{
146
+ kind: z.ZodLiteral<"channel">;
147
+ op: z.ZodLiteral<"post">;
148
+ id: z.ZodString;
149
+ name: z.ZodString;
150
+ }, z.core.$strip>], "op">;
151
+ export type ChannelConv = z.infer<typeof ChannelConv>;
152
+ /**
153
+ * Sync between two devices of one person (spec §6.9, "Sync"): `grant` carries grants the person set or re-signed,
154
+ * `snapshot` every current grant, for a device of the person that is new to the sender. The message carries exactly
155
+ * one data part, a `GrantSync`.
156
+ */
157
+ export declare const SelfConv: z.ZodObject<{
158
+ kind: z.ZodLiteral<"self">;
159
+ what: z.ZodEnum<{
160
+ grant: "grant";
161
+ snapshot: "snapshot";
162
+ }>;
163
+ }, z.core.$strip>;
164
+ export type SelfConv = z.infer<typeof SelfConv>;
165
+ /**
166
+ * A message request (spec §6.9, "Message requests"), on an envelope of class `request` from a person to a person:
167
+ * its message carries exactly one text part of at most `LIMITS.requestChars`.
168
+ */
169
+ export declare const RequestConv: z.ZodObject<{
170
+ kind: z.ZodLiteral<"request">;
171
+ }, z.core.$strip>;
172
+ export type RequestConv = z.infer<typeof RequestConv>;
173
+ /**
174
+ * A contact card between two persons (spec §6.9, "Contact cards"): `card` carries one data part `{card}`, the signed
175
+ * card; `get` asks for the receiver's card and carries one data part `{get: true}`.
176
+ */
177
+ export declare const CardConv: z.ZodObject<{
178
+ kind: z.ZodLiteral<"card">;
179
+ what: z.ZodEnum<{
180
+ card: "card";
181
+ get: "get";
182
+ }>;
183
+ }, z.core.$strip>;
184
+ export type CardConv = z.infer<typeof CardConv>;
185
+ /** The conversation a `message` belongs to when its ends alone do not say (spec §5, "Meaning"). */
186
+ export declare const Conv: z.ZodDiscriminatedUnion<[z.ZodDiscriminatedUnion<[z.ZodObject<{
187
+ kind: z.ZodLiteral<"channel">;
188
+ op: z.ZodLiteral<"create">;
189
+ id: z.ZodString;
190
+ name: z.ZodString;
191
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
192
+ creator: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
193
+ }, z.core.$strip>, z.ZodObject<{
194
+ kind: z.ZodLiteral<"channel">;
195
+ op: z.ZodLiteral<"invite">;
196
+ id: z.ZodString;
197
+ name: z.ZodString;
198
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
199
+ }, z.core.$strip>, z.ZodObject<{
200
+ kind: z.ZodLiteral<"channel">;
201
+ op: z.ZodLiteral<"leave">;
202
+ id: z.ZodString;
203
+ name: z.ZodString;
204
+ }, z.core.$strip>, z.ZodObject<{
205
+ kind: z.ZodLiteral<"channel">;
206
+ op: z.ZodLiteral<"remove">;
207
+ id: z.ZodString;
208
+ name: z.ZodString;
209
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
210
+ }, z.core.$strip>, z.ZodObject<{
211
+ kind: z.ZodLiteral<"channel">;
212
+ op: z.ZodLiteral<"post">;
213
+ id: z.ZodString;
214
+ name: z.ZodString;
215
+ }, z.core.$strip>], "op">, z.ZodObject<{
216
+ kind: z.ZodLiteral<"self">;
217
+ what: z.ZodEnum<{
218
+ grant: "grant";
219
+ snapshot: "snapshot";
220
+ }>;
221
+ }, z.core.$strip>, z.ZodObject<{
222
+ kind: z.ZodLiteral<"request">;
223
+ }, z.core.$strip>, z.ZodObject<{
224
+ kind: z.ZodLiteral<"card">;
225
+ what: z.ZodEnum<{
226
+ card: "card";
227
+ get: "get";
228
+ }>;
229
+ }, z.core.$strip>], "kind">;
230
+ export type Conv = z.infer<typeof Conv>;
231
+ /**
232
+ * type "message". `kind: "task"` asks the recipient to run `message` as a new A2A task;
233
+ * the sender assigns `message.taskId` (a ULID) and `message.contextId`.
234
+ * Replies to a task are task.status/task.artifact envelopes, not messages.
235
+ */
236
+ export declare const MessagePayload: z.ZodObject<{
237
+ kind: z.ZodEnum<{
238
+ message: "message";
239
+ task: "task";
240
+ }>;
241
+ message: z.ZodObject<{
242
+ messageId: z.ZodString;
243
+ contextId: z.ZodOptional<z.ZodString>;
244
+ taskId: z.ZodOptional<z.ZodString>;
245
+ role: z.ZodEnum<{
246
+ ROLE_USER: "ROLE_USER";
247
+ ROLE_AGENT: "ROLE_AGENT";
248
+ }>;
249
+ parts: z.ZodArray<z.ZodObject<{
250
+ text: z.ZodOptional<z.ZodString>;
251
+ raw: z.ZodOptional<z.ZodString>;
252
+ url: z.ZodOptional<z.ZodString>;
253
+ data: z.ZodOptional<z.ZodUnknown>;
254
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
255
+ filename: z.ZodOptional<z.ZodString>;
256
+ mediaType: z.ZodOptional<z.ZodString>;
257
+ }, z.core.$strip>>;
258
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
259
+ extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
260
+ referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
261
+ }, z.core.$strip>;
262
+ wake: z.ZodOptional<z.ZodBoolean>;
263
+ delegation: z.ZodOptional<z.ZodArray<z.ZodObject<{
264
+ realm: z.ZodString;
265
+ task: z.ZodString;
266
+ from: z.ZodString;
267
+ to: z.ZodString;
268
+ by: z.ZodString;
269
+ ts: z.ZodNumber;
270
+ exp: z.ZodNumber;
271
+ maxDepth: z.ZodNumber;
272
+ scope: z.ZodOptional<z.ZodArray<z.ZodString>>;
273
+ parent: z.ZodOptional<z.ZodString>;
274
+ sig: z.ZodString;
275
+ }, z.core.$loose>>>;
276
+ conv: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodDiscriminatedUnion<[z.ZodObject<{
277
+ kind: z.ZodLiteral<"channel">;
278
+ op: z.ZodLiteral<"create">;
279
+ id: z.ZodString;
280
+ name: z.ZodString;
281
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
282
+ creator: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
283
+ }, z.core.$strip>, z.ZodObject<{
284
+ kind: z.ZodLiteral<"channel">;
285
+ op: z.ZodLiteral<"invite">;
286
+ id: z.ZodString;
287
+ name: z.ZodString;
288
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
289
+ }, z.core.$strip>, z.ZodObject<{
290
+ kind: z.ZodLiteral<"channel">;
291
+ op: z.ZodLiteral<"leave">;
292
+ id: z.ZodString;
293
+ name: z.ZodString;
294
+ }, z.core.$strip>, z.ZodObject<{
295
+ kind: z.ZodLiteral<"channel">;
296
+ op: z.ZodLiteral<"remove">;
297
+ id: z.ZodString;
298
+ name: z.ZodString;
299
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
300
+ }, z.core.$strip>, z.ZodObject<{
301
+ kind: z.ZodLiteral<"channel">;
302
+ op: z.ZodLiteral<"post">;
303
+ id: z.ZodString;
304
+ name: z.ZodString;
305
+ }, z.core.$strip>], "op">, z.ZodObject<{
306
+ kind: z.ZodLiteral<"self">;
307
+ what: z.ZodEnum<{
308
+ grant: "grant";
309
+ snapshot: "snapshot";
310
+ }>;
311
+ }, z.core.$strip>, z.ZodObject<{
312
+ kind: z.ZodLiteral<"request">;
313
+ }, z.core.$strip>, z.ZodObject<{
314
+ kind: z.ZodLiteral<"card">;
315
+ what: z.ZodEnum<{
316
+ card: "card";
317
+ get: "get";
318
+ }>;
319
+ }, z.core.$strip>], "kind">>;
320
+ }, z.core.$strip>;
321
+ export type MessagePayload = z.infer<typeof MessagePayload>;
322
+ /** type "task.status": executor → requester. */
323
+ export declare const TaskStatusPayload: z.ZodObject<{
324
+ taskId: z.ZodString;
325
+ contextId: z.ZodString;
326
+ status: z.ZodObject<{
327
+ state: z.ZodEnum<{
328
+ TASK_STATE_SUBMITTED: "TASK_STATE_SUBMITTED";
329
+ TASK_STATE_WORKING: "TASK_STATE_WORKING";
330
+ TASK_STATE_COMPLETED: "TASK_STATE_COMPLETED";
331
+ TASK_STATE_FAILED: "TASK_STATE_FAILED";
332
+ TASK_STATE_CANCELED: "TASK_STATE_CANCELED";
333
+ TASK_STATE_INPUT_REQUIRED: "TASK_STATE_INPUT_REQUIRED";
334
+ TASK_STATE_REJECTED: "TASK_STATE_REJECTED";
335
+ TASK_STATE_AUTH_REQUIRED: "TASK_STATE_AUTH_REQUIRED";
336
+ }>;
337
+ message: z.ZodOptional<z.ZodObject<{
338
+ messageId: z.ZodString;
339
+ contextId: z.ZodOptional<z.ZodString>;
340
+ taskId: z.ZodOptional<z.ZodString>;
341
+ role: z.ZodEnum<{
342
+ ROLE_USER: "ROLE_USER";
343
+ ROLE_AGENT: "ROLE_AGENT";
344
+ }>;
345
+ parts: z.ZodArray<z.ZodObject<{
346
+ text: z.ZodOptional<z.ZodString>;
347
+ raw: z.ZodOptional<z.ZodString>;
348
+ url: z.ZodOptional<z.ZodString>;
349
+ data: z.ZodOptional<z.ZodUnknown>;
350
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
351
+ filename: z.ZodOptional<z.ZodString>;
352
+ mediaType: z.ZodOptional<z.ZodString>;
353
+ }, z.core.$strip>>;
354
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
355
+ extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
356
+ referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
357
+ }, z.core.$strip>>;
358
+ timestamp: z.ZodOptional<z.ZodString>;
359
+ }, z.core.$strip>;
360
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
361
+ }, z.core.$strip>;
362
+ export type TaskStatusPayload = z.infer<typeof TaskStatusPayload>;
363
+ /** type "task.artifact": executor → requester. */
364
+ export declare const TaskArtifactPayload: z.ZodObject<{
365
+ taskId: z.ZodString;
366
+ contextId: z.ZodString;
367
+ artifact: z.ZodObject<{
368
+ artifactId: z.ZodString;
369
+ name: z.ZodOptional<z.ZodString>;
370
+ description: z.ZodOptional<z.ZodString>;
371
+ parts: z.ZodArray<z.ZodObject<{
372
+ text: z.ZodOptional<z.ZodString>;
373
+ raw: z.ZodOptional<z.ZodString>;
374
+ url: z.ZodOptional<z.ZodString>;
375
+ data: z.ZodOptional<z.ZodUnknown>;
376
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
377
+ filename: z.ZodOptional<z.ZodString>;
378
+ mediaType: z.ZodOptional<z.ZodString>;
379
+ }, z.core.$strip>>;
380
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
381
+ extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
382
+ }, z.core.$strip>;
383
+ append: z.ZodOptional<z.ZodBoolean>;
384
+ lastChunk: z.ZodOptional<z.ZodBoolean>;
385
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
386
+ }, z.core.$strip>;
387
+ export type TaskArtifactPayload = z.infer<typeof TaskArtifactPayload>;
388
+ /** type "task.cancel": requester → executor. The executor daemon moves the task to CANCELED if not terminal. */
389
+ export declare const TaskCancelPayload: z.ZodObject<{
390
+ taskId: z.ZodString;
391
+ reason: z.ZodOptional<z.ZodString>;
392
+ }, z.core.$strip>;
393
+ export type TaskCancelPayload = z.infer<typeof TaskCancelPayload>;
394
+ /** type "receipt": recipient → sender, signed proof of a delivery stage for envelope `ref`. */
395
+ export declare const ReceiptPayload: z.ZodObject<{
396
+ ref: z.ZodString;
397
+ stage: z.ZodEnum<{
398
+ delivered: "delivered";
399
+ held: "held";
400
+ handed_to_agent: "handed_to_agent";
401
+ read: "read";
402
+ rejected: "rejected";
403
+ }>;
404
+ code: z.ZodOptional<z.ZodEnum<{
405
+ expired: "expired";
406
+ invalid_request: "invalid_request";
407
+ not_member: "not_member";
408
+ bad_signature: "bad_signature";
409
+ unknown_session: "unknown_session";
410
+ ambiguous_address: "ambiguous_address";
411
+ no_recipients: "no_recipients";
412
+ unknown_address: "unknown_address";
413
+ refused: "refused";
414
+ declined: "declined";
415
+ request_required: "request_required";
416
+ rate_limited: "rate_limited";
417
+ loop_guard: "loop_guard";
418
+ too_large: "too_large";
419
+ secret_refused: "secret_refused";
420
+ duplicate: "duplicate";
421
+ relay_unavailable: "relay_unavailable";
422
+ not_found: "not_found";
423
+ invalid_state: "invalid_state";
424
+ forbidden: "forbidden";
425
+ guarded_turn: "guarded_turn";
426
+ roster_conflict: "roster_conflict";
427
+ invite_invalid: "invite_invalid";
428
+ no_identity: "no_identity";
429
+ binding_invalid: "binding_invalid";
430
+ jelly_unavailable: "jelly_unavailable";
431
+ log_conflict: "log_conflict";
432
+ conv_conflict: "conv_conflict";
433
+ stale_epoch: "stale_epoch";
434
+ device_limit: "device_limit";
435
+ admission_required: "admission_required";
436
+ admission_invalid: "admission_invalid";
437
+ directory_inconsistent: "directory_inconsistent";
438
+ unknown_device: "unknown_device";
439
+ directory_unavailable: "directory_unavailable";
440
+ login_unsupported: "login_unsupported";
441
+ login_denied: "login_denied";
442
+ grant_required: "grant_required";
443
+ grant_invalid: "grant_invalid";
444
+ ticket_required: "ticket_required";
445
+ ticket_invalid: "ticket_invalid";
446
+ daemon_unavailable: "daemon_unavailable";
447
+ daemon_mismatch: "daemon_mismatch";
448
+ store_refused: "store_refused";
449
+ internal: "internal";
450
+ }>>;
451
+ note: z.ZodOptional<z.ZodString>;
452
+ }, z.core.$strip>;
453
+ export type ReceiptPayload = z.infer<typeof ReceiptPayload>;
454
+ export declare const SessionInfo: z.ZodObject<{
455
+ session: z.ZodString;
456
+ agent: z.ZodString;
457
+ repo: z.ZodOptional<z.ZodString>;
458
+ branch: z.ZodOptional<z.ZodString>;
459
+ state: z.ZodEnum<{
460
+ idle: "idle";
461
+ busy: "busy";
462
+ }>;
463
+ doing: z.ZodOptional<z.ZodString>;
464
+ tier: z.ZodEnum<{
465
+ push: "push";
466
+ pull: "pull";
467
+ }>;
468
+ since: z.ZodNumber;
469
+ kept: z.ZodOptional<z.ZodLiteral<true>>;
470
+ wake: z.ZodOptional<z.ZodLiteral<true>>;
471
+ }, z.core.$strip>;
472
+ export type SessionInfo = z.infer<typeof SessionInfo>;
473
+ /** type "presence": plain (not sealed), to {team:true}. Latest `seq` per machine wins. */
474
+ export declare const PresencePayload: z.ZodObject<{
475
+ seq: z.ZodNumber;
476
+ label: z.ZodString;
477
+ sessions: z.ZodArray<z.ZodObject<{
478
+ session: z.ZodString;
479
+ agent: z.ZodString;
480
+ repo: z.ZodOptional<z.ZodString>;
481
+ branch: z.ZodOptional<z.ZodString>;
482
+ state: z.ZodEnum<{
483
+ idle: "idle";
484
+ busy: "busy";
485
+ }>;
486
+ doing: z.ZodOptional<z.ZodString>;
487
+ tier: z.ZodEnum<{
488
+ push: "push";
489
+ pull: "pull";
490
+ }>;
491
+ since: z.ZodNumber;
492
+ kept: z.ZodOptional<z.ZodLiteral<true>>;
493
+ wake: z.ZodOptional<z.ZodLiteral<true>>;
494
+ }, z.core.$strip>>;
495
+ features: z.ZodOptional<z.ZodArray<z.ZodString>>;
496
+ away: z.ZodOptional<z.ZodLiteral<true>>;
497
+ }, z.core.$strip>;
498
+ export type PresencePayload = z.infer<typeof PresencePayload>;
499
+ export declare const PAYLOAD_BY_TYPE: {
500
+ readonly message: z.ZodObject<{
501
+ kind: z.ZodEnum<{
502
+ message: "message";
503
+ task: "task";
504
+ }>;
505
+ message: z.ZodObject<{
506
+ messageId: z.ZodString;
507
+ contextId: z.ZodOptional<z.ZodString>;
508
+ taskId: z.ZodOptional<z.ZodString>;
509
+ role: z.ZodEnum<{
510
+ ROLE_USER: "ROLE_USER";
511
+ ROLE_AGENT: "ROLE_AGENT";
512
+ }>;
513
+ parts: z.ZodArray<z.ZodObject<{
514
+ text: z.ZodOptional<z.ZodString>;
515
+ raw: z.ZodOptional<z.ZodString>;
516
+ url: z.ZodOptional<z.ZodString>;
517
+ data: z.ZodOptional<z.ZodUnknown>;
518
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
519
+ filename: z.ZodOptional<z.ZodString>;
520
+ mediaType: z.ZodOptional<z.ZodString>;
521
+ }, z.core.$strip>>;
522
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
523
+ extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
524
+ referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
525
+ }, z.core.$strip>;
526
+ wake: z.ZodOptional<z.ZodBoolean>;
527
+ delegation: z.ZodOptional<z.ZodArray<z.ZodObject<{
528
+ realm: z.ZodString;
529
+ task: z.ZodString;
530
+ from: z.ZodString;
531
+ to: z.ZodString;
532
+ by: z.ZodString;
533
+ ts: z.ZodNumber;
534
+ exp: z.ZodNumber;
535
+ maxDepth: z.ZodNumber;
536
+ scope: z.ZodOptional<z.ZodArray<z.ZodString>>;
537
+ parent: z.ZodOptional<z.ZodString>;
538
+ sig: z.ZodString;
539
+ }, z.core.$loose>>>;
540
+ conv: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodDiscriminatedUnion<[z.ZodObject<{
541
+ kind: z.ZodLiteral<"channel">;
542
+ op: z.ZodLiteral<"create">;
543
+ id: z.ZodString;
544
+ name: z.ZodString;
545
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
546
+ creator: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
547
+ }, z.core.$strip>, z.ZodObject<{
548
+ kind: z.ZodLiteral<"channel">;
549
+ op: z.ZodLiteral<"invite">;
550
+ id: z.ZodString;
551
+ name: z.ZodString;
552
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
553
+ }, z.core.$strip>, z.ZodObject<{
554
+ kind: z.ZodLiteral<"channel">;
555
+ op: z.ZodLiteral<"leave">;
556
+ id: z.ZodString;
557
+ name: z.ZodString;
558
+ }, z.core.$strip>, z.ZodObject<{
559
+ kind: z.ZodLiteral<"channel">;
560
+ op: z.ZodLiteral<"remove">;
561
+ id: z.ZodString;
562
+ name: z.ZodString;
563
+ persons: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
564
+ }, z.core.$strip>, z.ZodObject<{
565
+ kind: z.ZodLiteral<"channel">;
566
+ op: z.ZodLiteral<"post">;
567
+ id: z.ZodString;
568
+ name: z.ZodString;
569
+ }, z.core.$strip>], "op">, z.ZodObject<{
570
+ kind: z.ZodLiteral<"self">;
571
+ what: z.ZodEnum<{
572
+ grant: "grant";
573
+ snapshot: "snapshot";
574
+ }>;
575
+ }, z.core.$strip>, z.ZodObject<{
576
+ kind: z.ZodLiteral<"request">;
577
+ }, z.core.$strip>, z.ZodObject<{
578
+ kind: z.ZodLiteral<"card">;
579
+ what: z.ZodEnum<{
580
+ card: "card";
581
+ get: "get";
582
+ }>;
583
+ }, z.core.$strip>], "kind">>;
584
+ }, z.core.$strip>;
585
+ readonly "task.status": z.ZodObject<{
586
+ taskId: z.ZodString;
587
+ contextId: z.ZodString;
588
+ status: z.ZodObject<{
589
+ state: z.ZodEnum<{
590
+ TASK_STATE_SUBMITTED: "TASK_STATE_SUBMITTED";
591
+ TASK_STATE_WORKING: "TASK_STATE_WORKING";
592
+ TASK_STATE_COMPLETED: "TASK_STATE_COMPLETED";
593
+ TASK_STATE_FAILED: "TASK_STATE_FAILED";
594
+ TASK_STATE_CANCELED: "TASK_STATE_CANCELED";
595
+ TASK_STATE_INPUT_REQUIRED: "TASK_STATE_INPUT_REQUIRED";
596
+ TASK_STATE_REJECTED: "TASK_STATE_REJECTED";
597
+ TASK_STATE_AUTH_REQUIRED: "TASK_STATE_AUTH_REQUIRED";
598
+ }>;
599
+ message: z.ZodOptional<z.ZodObject<{
600
+ messageId: z.ZodString;
601
+ contextId: z.ZodOptional<z.ZodString>;
602
+ taskId: z.ZodOptional<z.ZodString>;
603
+ role: z.ZodEnum<{
604
+ ROLE_USER: "ROLE_USER";
605
+ ROLE_AGENT: "ROLE_AGENT";
606
+ }>;
607
+ parts: z.ZodArray<z.ZodObject<{
608
+ text: z.ZodOptional<z.ZodString>;
609
+ raw: z.ZodOptional<z.ZodString>;
610
+ url: z.ZodOptional<z.ZodString>;
611
+ data: z.ZodOptional<z.ZodUnknown>;
612
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
613
+ filename: z.ZodOptional<z.ZodString>;
614
+ mediaType: z.ZodOptional<z.ZodString>;
615
+ }, z.core.$strip>>;
616
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
617
+ extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
618
+ referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
619
+ }, z.core.$strip>>;
620
+ timestamp: z.ZodOptional<z.ZodString>;
621
+ }, z.core.$strip>;
622
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
623
+ }, z.core.$strip>;
624
+ readonly "task.artifact": z.ZodObject<{
625
+ taskId: z.ZodString;
626
+ contextId: z.ZodString;
627
+ artifact: z.ZodObject<{
628
+ artifactId: z.ZodString;
629
+ name: z.ZodOptional<z.ZodString>;
630
+ description: z.ZodOptional<z.ZodString>;
631
+ parts: z.ZodArray<z.ZodObject<{
632
+ text: z.ZodOptional<z.ZodString>;
633
+ raw: z.ZodOptional<z.ZodString>;
634
+ url: z.ZodOptional<z.ZodString>;
635
+ data: z.ZodOptional<z.ZodUnknown>;
636
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
637
+ filename: z.ZodOptional<z.ZodString>;
638
+ mediaType: z.ZodOptional<z.ZodString>;
639
+ }, z.core.$strip>>;
640
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
641
+ extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
642
+ }, z.core.$strip>;
643
+ append: z.ZodOptional<z.ZodBoolean>;
644
+ lastChunk: z.ZodOptional<z.ZodBoolean>;
645
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
646
+ }, z.core.$strip>;
647
+ readonly "task.cancel": z.ZodObject<{
648
+ taskId: z.ZodString;
649
+ reason: z.ZodOptional<z.ZodString>;
650
+ }, z.core.$strip>;
651
+ readonly receipt: z.ZodObject<{
652
+ ref: z.ZodString;
653
+ stage: z.ZodEnum<{
654
+ delivered: "delivered";
655
+ held: "held";
656
+ handed_to_agent: "handed_to_agent";
657
+ read: "read";
658
+ rejected: "rejected";
659
+ }>;
660
+ code: z.ZodOptional<z.ZodEnum<{
661
+ expired: "expired";
662
+ invalid_request: "invalid_request";
663
+ not_member: "not_member";
664
+ bad_signature: "bad_signature";
665
+ unknown_session: "unknown_session";
666
+ ambiguous_address: "ambiguous_address";
667
+ no_recipients: "no_recipients";
668
+ unknown_address: "unknown_address";
669
+ refused: "refused";
670
+ declined: "declined";
671
+ request_required: "request_required";
672
+ rate_limited: "rate_limited";
673
+ loop_guard: "loop_guard";
674
+ too_large: "too_large";
675
+ secret_refused: "secret_refused";
676
+ duplicate: "duplicate";
677
+ relay_unavailable: "relay_unavailable";
678
+ not_found: "not_found";
679
+ invalid_state: "invalid_state";
680
+ forbidden: "forbidden";
681
+ guarded_turn: "guarded_turn";
682
+ roster_conflict: "roster_conflict";
683
+ invite_invalid: "invite_invalid";
684
+ no_identity: "no_identity";
685
+ binding_invalid: "binding_invalid";
686
+ jelly_unavailable: "jelly_unavailable";
687
+ log_conflict: "log_conflict";
688
+ conv_conflict: "conv_conflict";
689
+ stale_epoch: "stale_epoch";
690
+ device_limit: "device_limit";
691
+ admission_required: "admission_required";
692
+ admission_invalid: "admission_invalid";
693
+ directory_inconsistent: "directory_inconsistent";
694
+ unknown_device: "unknown_device";
695
+ directory_unavailable: "directory_unavailable";
696
+ login_unsupported: "login_unsupported";
697
+ login_denied: "login_denied";
698
+ grant_required: "grant_required";
699
+ grant_invalid: "grant_invalid";
700
+ ticket_required: "ticket_required";
701
+ ticket_invalid: "ticket_invalid";
702
+ daemon_unavailable: "daemon_unavailable";
703
+ daemon_mismatch: "daemon_mismatch";
704
+ store_refused: "store_refused";
705
+ internal: "internal";
706
+ }>>;
707
+ note: z.ZodOptional<z.ZodString>;
708
+ }, z.core.$strip>;
709
+ readonly presence: z.ZodObject<{
710
+ seq: z.ZodNumber;
711
+ label: z.ZodString;
712
+ sessions: z.ZodArray<z.ZodObject<{
713
+ session: z.ZodString;
714
+ agent: z.ZodString;
715
+ repo: z.ZodOptional<z.ZodString>;
716
+ branch: z.ZodOptional<z.ZodString>;
717
+ state: z.ZodEnum<{
718
+ idle: "idle";
719
+ busy: "busy";
720
+ }>;
721
+ doing: z.ZodOptional<z.ZodString>;
722
+ tier: z.ZodEnum<{
723
+ push: "push";
724
+ pull: "pull";
725
+ }>;
726
+ since: z.ZodNumber;
727
+ kept: z.ZodOptional<z.ZodLiteral<true>>;
728
+ wake: z.ZodOptional<z.ZodLiteral<true>>;
729
+ }, z.core.$strip>>;
730
+ features: z.ZodOptional<z.ZodArray<z.ZodString>>;
731
+ away: z.ZodOptional<z.ZodLiteral<true>>;
732
+ }, z.core.$strip>;
733
+ };
734
+ export type PayloadByType = {
735
+ message: MessagePayload;
736
+ "task.status": TaskStatusPayload;
737
+ "task.artifact": TaskArtifactPayload;
738
+ "task.cancel": TaskCancelPayload;
739
+ receipt: ReceiptPayload;
740
+ presence: PresencePayload;
741
+ };
742
+ /**
743
+ * Provenance the receiving daemon attaches at `Message.metadata[URI.provenance]` before
744
+ * handing a message to any client. Clients show it; peers can never set it (the daemon overwrites it).
745
+ */
746
+ export declare const Provenance: z.ZodObject<{
747
+ envelopeId: z.ZodString;
748
+ from: z.ZodString;
749
+ person: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
750
+ agent: z.ZodOptional<z.ZodString>;
751
+ device: z.ZodString;
752
+ label: z.ZodString;
753
+ verified: z.ZodLiteral<"signature">;
754
+ receivedAt: z.ZodNumber;
755
+ }, z.core.$strip>;
756
+ export type Provenance = z.infer<typeof Provenance>;