keri-ts 1.0.0 → 2.0.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 (742) hide show
  1. package/README.md +23 -0
  2. package/esm/keri/npm/src/acdc/chaining.js +213 -0
  3. package/esm/keri/npm/src/acdc/dhking.js +716 -0
  4. package/esm/keri/npm/src/acdc/messaging.js +2 -0
  5. package/esm/keri/npm/src/acdc/observing.js +40 -7
  6. package/esm/keri/npm/src/acdc/regbasing.js +13 -2
  7. package/esm/keri/npm/src/acdc/regengine.js +71 -23
  8. package/esm/keri/npm/src/acdc/regeventing.js +163 -44
  9. package/esm/keri/npm/src/acdc/registering.js +93 -14
  10. package/esm/keri/npm/src/acdc/relating.js +59 -0
  11. package/esm/keri/npm/src/acdc/salting.js +720 -0
  12. package/esm/keri/npm/src/acdc/scheming.js +94 -39
  13. package/esm/keri/npm/src/acdc/unblinding.js +1042 -0
  14. package/esm/keri/npm/src/app/{authenticating.js → bootstrap/authenticating.js} +39 -18
  15. package/esm/keri/npm/src/app/bootstrap/bootstrapping.js +109 -0
  16. package/esm/keri/npm/src/app/{oobi-replies.js → bootstrap/oobi-replies.js} +8 -6
  17. package/esm/keri/npm/src/app/{oobiery.js → bootstrap/oobiery.js} +161 -75
  18. package/esm/keri/npm/src/app/credentials/credential-importing.js +201 -0
  19. package/esm/keri/npm/src/app/credentials/credential-proposals.js +120 -0
  20. package/esm/keri/npm/src/app/credentials/credential-revoking.js +165 -0
  21. package/esm/keri/npm/src/app/credentials/credential-workflows.js +365 -0
  22. package/esm/keri/npm/src/app/credentials/tel-publishing.js +27 -0
  23. package/esm/keri/npm/src/app/{verifying.js → credentials/verifying.js} +50 -6
  24. package/esm/keri/npm/src/app/delivery/forwarding.js +600 -0
  25. package/esm/keri/npm/src/app/delivery/introducing.js +68 -0
  26. package/esm/keri/npm/src/app/{reply-streams.js → delivery/reply-streams.js} +52 -7
  27. package/esm/keri/npm/src/app/delivery/respondant.js +159 -0
  28. package/esm/keri/npm/src/app/{stored-replies.js → delivery/stored-replies.js} +4 -4
  29. package/esm/keri/npm/src/app/exchanges/essr.js +111 -0
  30. package/esm/keri/npm/src/app/exchanges/exchange-messaging.js +66 -0
  31. package/esm/keri/npm/src/app/exchanges/exchanging.js +1354 -0
  32. package/esm/keri/npm/src/app/{configing.js → identity/configing.js} +4 -4
  33. package/esm/keri/npm/src/app/{delegating.js → identity/delegating.js} +99 -29
  34. package/esm/keri/npm/src/app/{endpoint-roleing.js → identity/endpoint-roleing.js} +36 -36
  35. package/esm/keri/npm/src/app/{habbing.js → identity/habbing.js} +232 -150
  36. package/esm/keri/npm/src/app/{keeping.js → identity/keeping.js} +60 -56
  37. package/esm/keri/npm/src/app/{organizing.js → identity/organizing.js} +47 -21
  38. package/esm/keri/npm/src/app/ipex/ipex-building.js +162 -0
  39. package/esm/keri/npm/src/app/{ipex-credentialing.js → ipex/ipex-credentialing.js} +142 -31
  40. package/esm/keri/npm/src/app/ipex/ipex-graph.js +243 -0
  41. package/esm/keri/npm/src/app/ipex/ipex-grouping.js +664 -0
  42. package/esm/keri/npm/src/app/{ipex-node-authentication.js → ipex/ipex-node-authentication.js} +83 -6
  43. package/esm/keri/npm/src/app/ipex/ipex-v2.js +692 -0
  44. package/esm/keri/npm/src/app/{ipexing.js → ipex/ipexing.js} +58 -1
  45. package/esm/keri/npm/src/app/mailbox/forward-handler.js +228 -0
  46. package/esm/keri/npm/src/app/{mailbox-director.js → mailbox/mailbox-director.js} +120 -15
  47. package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +305 -0
  48. package/esm/keri/npm/src/app/mailbox/mailbox-sse.js +254 -0
  49. package/esm/keri/npm/src/app/{mailboxing.js → mailbox/mailboxing.js} +118 -67
  50. package/esm/keri/npm/src/app/mailbox/topic-routing.js +54 -0
  51. package/esm/keri/npm/src/app/multisig/group-members.js +173 -0
  52. package/esm/keri/npm/src/app/{grouping.js → multisig/grouping.js} +384 -70
  53. package/esm/keri/npm/src/app/multisig/multisig-messaging.js +164 -0
  54. package/esm/keri/npm/src/app/multisig/multisig-workflows.js +821 -0
  55. package/esm/keri/npm/src/app/{notifying.js → notifications/notifying.js} +8 -14
  56. package/esm/keri/npm/src/app/{signaling.js → notifications/signaling.js} +1 -1
  57. package/esm/keri/npm/src/app/{parsering.js → protocol/parsering.js} +86 -18
  58. package/esm/keri/npm/src/app/protocol/protocol-processing.js +245 -0
  59. package/esm/keri/npm/src/app/protocol/reactor.js +55 -0
  60. package/esm/keri/npm/src/app/{query-replies.js → queries/query-replies.js} +57 -6
  61. package/esm/keri/npm/src/app/queries/querying.js +306 -0
  62. package/esm/keri/npm/src/app/queries/witness-inquisitor.js +415 -0
  63. package/esm/keri/npm/src/app/{abortable.js → runtime/abortable.js} +43 -4
  64. package/esm/keri/npm/src/app/runtime/agent-runtime.js +633 -0
  65. package/esm/keri/npm/src/app/runtime/cue-runtime.js +61 -0
  66. package/esm/keri/npm/src/app/runtime/runtime-clock.js +6 -0
  67. package/esm/keri/npm/src/app/{byte-source.js → transport/byte-source.js} +36 -6
  68. package/esm/keri/npm/src/app/transport/cesr-egress.js +317 -0
  69. package/esm/keri/npm/src/app/{cesr-http.js → transport/cesr-http.js} +20 -55
  70. package/esm/keri/npm/src/app/transport/http-client.js +172 -0
  71. package/esm/keri/npm/src/app/transport/http-messenger.js +52 -0
  72. package/esm/keri/npm/src/app/transport/http-stream-messenger.js +60 -0
  73. package/esm/keri/npm/src/app/transport/httping.js +57 -0
  74. package/esm/keri/npm/src/app/transport/message-source.js +77 -0
  75. package/esm/keri/npm/src/app/transport/messengering.js +68 -0
  76. package/esm/keri/npm/src/app/{socket-source.js → transport/socket-source.js} +39 -2
  77. package/esm/keri/npm/src/app/transport/tcp-egress.js +377 -0
  78. package/esm/keri/npm/src/app/transport/tcp-messenger.js +162 -0
  79. package/esm/keri/npm/src/app/transport/tcp-stream-messenger.js +40 -0
  80. package/esm/keri/npm/src/app/transport/transport-error.js +14 -0
  81. package/esm/keri/npm/src/app/witness/http-endpoints.js +185 -0
  82. package/esm/keri/npm/src/app/witness/ingress.js +148 -0
  83. package/esm/keri/npm/src/app/witness/receipt-client.js +248 -0
  84. package/esm/keri/npm/src/app/witness/receipt-messages.js +29 -0
  85. package/esm/keri/npm/src/app/witness/receipting.js +323 -0
  86. package/esm/keri/npm/src/app/witness/registration.js +50 -0
  87. package/esm/keri/npm/src/cli/common/bootstrap.js +12 -0
  88. package/esm/keri/npm/src/{app/cli → cli}/common/context.js +47 -6
  89. package/esm/keri/npm/src/{app/cli → cli}/common/existing.js +9 -11
  90. package/esm/keri/npm/src/cli/common/parsing.js +279 -0
  91. package/esm/keri/npm/src/cli/common/passcode.js +66 -0
  92. package/esm/keri/npm/src/cli/common/tel-completion.js +24 -0
  93. package/esm/keri/npm/src/{app/cli → cli}/common/witness-auth.js +2 -2
  94. package/esm/keri/npm/src/cli/credentials/ipex.js +702 -0
  95. package/esm/keri/npm/src/cli/credentials/vc.js +399 -0
  96. package/esm/keri/npm/src/{app/cli → cli/endpoints}/did.js +63 -36
  97. package/esm/keri/npm/src/{app/cli → cli/endpoints}/ends.js +33 -28
  98. package/esm/keri/npm/src/{app/cli → cli/endpoints}/loc.js +16 -11
  99. package/esm/keri/npm/src/cli/endpoints/oobi-clean.js +134 -0
  100. package/esm/keri/npm/src/{app/cli → cli/endpoints}/oobi.js +35 -32
  101. package/esm/keri/npm/src/{app/cli → cli/identity}/aid.js +8 -7
  102. package/esm/keri/npm/src/{app/cli → cli/identity}/challenge.js +60 -49
  103. package/esm/keri/npm/src/{app/cli → cli/identity}/delegate.js +61 -26
  104. package/esm/keri/npm/src/{app/cli → cli/identity}/export.js +9 -8
  105. package/esm/keri/npm/src/cli/identity/incept.js +181 -0
  106. package/esm/keri/npm/src/cli/identity/init.js +153 -0
  107. package/esm/keri/npm/src/cli/identity/interact.js +84 -0
  108. package/esm/keri/npm/src/{app/cli → cli/identity}/list.js +7 -6
  109. package/esm/keri/npm/src/{app/cli → cli/identity}/rotate.js +60 -57
  110. package/esm/keri/npm/src/cli/index.js +38 -0
  111. package/esm/keri/npm/src/{app/cli → cli/messaging}/exchange.js +24 -22
  112. package/esm/keri/npm/src/{app/cli → cli/messaging}/multisig.js +165 -156
  113. package/esm/keri/npm/src/{app/cli → cli/messaging}/notifications.js +26 -22
  114. package/esm/keri/npm/src/{app/cli → cli}/output.js +1 -1
  115. package/esm/keri/npm/src/{app/cli → cli/tools}/annotate.js +10 -4
  116. package/esm/keri/npm/src/{app/cli → cli/tools}/benchmark.js +15 -4
  117. package/esm/keri/npm/src/{app/cli → cli/tools}/db-dump.js +11 -10
  118. package/esm/keri/npm/src/{app/cli → cli/tools}/saidify.js +3 -2
  119. package/esm/keri/npm/src/{app/cli → cli/tools}/sign.js +16 -10
  120. package/esm/keri/npm/src/{app/cli → cli/tools}/verify.js +10 -10
  121. package/esm/keri/npm/src/core/attachment-countering.js +31 -1
  122. package/esm/keri/npm/src/core/{exchange-proofing.js → exchange/exchange-proofing.js} +32 -2
  123. package/esm/keri/npm/src/core/{protocol-exchanging.js → exchange/protocol-exchanging.js} +26 -4
  124. package/esm/keri/npm/src/core/genus-framing.js +44 -0
  125. package/esm/keri/npm/src/core/{eventing.js → kel/eventing.js} +57 -25
  126. package/esm/keri/npm/src/core/{kever-decisions.js → kel/kever-decisions.js} +24 -12
  127. package/esm/keri/npm/src/core/{kever.js → kel/kever.js} +4 -4
  128. package/esm/keri/npm/src/core/logger.js +3 -3
  129. package/esm/keri/npm/src/core/{kram-policy.js → mailbox/kram-policy.js} +14 -4
  130. package/esm/keri/npm/src/core/{kram-pruning.js → mailbox/kram-pruning.js} +3 -3
  131. package/esm/keri/npm/src/core/{kram-signatures.js → mailbox/kram-signatures.js} +1 -1
  132. package/esm/keri/npm/src/core/{kram-staging.js → mailbox/kram-staging.js} +6 -6
  133. package/esm/keri/npm/src/core/{kram-time.js → mailbox/kram-time.js} +4 -3
  134. package/esm/keri/npm/src/core/{kraming.js → mailbox/kraming.js} +2 -2
  135. package/esm/keri/npm/src/core/protocol-eventing.js +1 -1
  136. package/esm/keri/npm/src/core/protocol-serialization.js +9 -34
  137. package/esm/keri/npm/src/core/routing.js +52 -17
  138. package/esm/keri/npm/src/db/baser-defaults.js +11 -0
  139. package/esm/keri/npm/src/db/basing.js +89 -232
  140. package/esm/keri/npm/src/db/core/lmdber.js +102 -63
  141. package/esm/keri/npm/src/db/escrowing.js +73 -49
  142. package/esm/keri/npm/src/db/exchange/exchange-nests.js +54 -0
  143. package/esm/keri/npm/src/db/exchange/exchange-records.js +7 -0
  144. package/esm/keri/npm/src/db/index.js +5 -4
  145. package/esm/keri/npm/src/db/keeping.js +122 -3
  146. package/esm/keri/npm/src/db/{kram-factors.js → mailbox/kram-factors.js} +1 -1
  147. package/esm/keri/npm/src/db/{mailboxing.js → mailbox/mailboxing.js} +3 -3
  148. package/esm/keri/npm/src/db/reger.js +38 -29
  149. package/esm/keri/npm/src/db/{kel-replay.js → replay/kel-replay.js} +11 -4
  150. package/esm/keri/npm/src/db/{tel-replay.js → replay/tel-replay.js} +34 -0
  151. package/esm/keri/npm/src/db/{witness-replay.js → replay/witness-replay.js} +2 -2
  152. package/esm/keri/npm/src/db/subing.js +2 -3
  153. package/esm/keri/npm/src/did/webs/artifacts.js +15 -18
  154. package/esm/keri/npm/src/did/webs/designated-aliases.js +5 -7
  155. package/esm/keri/npm/src/did/webs/resolving.js +73 -56
  156. package/esm/keri/npm/src/library/index.js +1 -1
  157. package/esm/keri/npm/src/npm/cli.js +1 -1
  158. package/esm/keri/npm/src/npm/index.js +1 -1
  159. package/esm/keri/npm/src/runtime/index.js +79 -47
  160. package/esm/keri/npm/src/vdr/backer-state.js +55 -0
  161. package/esm/keri/npm/src/vdr/credential-tsn-record.js +59 -0
  162. package/esm/keri/npm/src/vdr/credentialing.js +84 -82
  163. package/esm/keri/npm/src/vdr/eventing.js +592 -204
  164. package/esm/keri/npm/src/vdr/registry-tsn-record.js +55 -0
  165. package/esm/keri/npm/src/vdr/revoking.js +90 -0
  166. package/esm/keri/npm/src/vdr/tel-anchor.js +29 -0
  167. package/esm/keri/npm/src/vdr/tel-publication.js +178 -0
  168. package/esm/keri/npm/src/{app/version.js → version.js} +2 -2
  169. package/package.json +5 -3
  170. package/types/_dnt.polyfills.d.ts +6 -0
  171. package/types/_dnt.polyfills.d.ts.map +1 -1
  172. package/types/acdc/chaining.d.ts +35 -0
  173. package/types/acdc/chaining.d.ts.map +1 -0
  174. package/types/acdc/dhking.d.ts +136 -0
  175. package/types/acdc/dhking.d.ts.map +1 -0
  176. package/types/acdc/messaging.d.ts.map +1 -1
  177. package/types/acdc/observing.d.ts +18 -7
  178. package/types/acdc/observing.d.ts.map +1 -1
  179. package/types/acdc/regbasing.d.ts +3 -1
  180. package/types/acdc/regbasing.d.ts.map +1 -1
  181. package/types/acdc/regengine.d.ts +9 -4
  182. package/types/acdc/regengine.d.ts.map +1 -1
  183. package/types/acdc/regeventing.d.ts +24 -7
  184. package/types/acdc/regeventing.d.ts.map +1 -1
  185. package/types/acdc/registering.d.ts +22 -6
  186. package/types/acdc/registering.d.ts.map +1 -1
  187. package/types/acdc/registraring.d.ts +1 -1
  188. package/types/acdc/registraring.d.ts.map +1 -1
  189. package/types/acdc/relating.d.ts +21 -0
  190. package/types/acdc/relating.d.ts.map +1 -0
  191. package/types/acdc/salting.d.ts +241 -0
  192. package/types/acdc/salting.d.ts.map +1 -0
  193. package/types/acdc/scheming.d.ts +1 -1
  194. package/types/acdc/scheming.d.ts.map +1 -1
  195. package/types/acdc/unblinding.d.ts +150 -0
  196. package/types/acdc/unblinding.d.ts.map +1 -0
  197. package/types/app/bootstrap/authenticating.d.ts +54 -0
  198. package/types/app/bootstrap/authenticating.d.ts.map +1 -0
  199. package/types/app/bootstrap/bootstrapping.d.ts +45 -0
  200. package/types/app/bootstrap/bootstrapping.d.ts.map +1 -0
  201. package/types/app/{oobi-replies.d.ts → bootstrap/oobi-replies.d.ts} +1 -1
  202. package/types/app/bootstrap/oobi-replies.d.ts.map +1 -0
  203. package/types/app/{oobiery.d.ts → bootstrap/oobiery.d.ts} +98 -25
  204. package/types/app/bootstrap/oobiery.d.ts.map +1 -0
  205. package/types/app/credentials/credential-importing.d.ts +29 -0
  206. package/types/app/credentials/credential-importing.d.ts.map +1 -0
  207. package/types/app/credentials/credential-proposals.d.ts +27 -0
  208. package/types/app/credentials/credential-proposals.d.ts.map +1 -0
  209. package/types/app/credentials/credential-revoking.d.ts +44 -0
  210. package/types/app/credentials/credential-revoking.d.ts.map +1 -0
  211. package/types/app/credentials/credential-workflows.d.ts +149 -0
  212. package/types/app/credentials/credential-workflows.d.ts.map +1 -0
  213. package/types/app/{schema-resolving.d.ts → credentials/schema-resolving.d.ts} +2 -2
  214. package/types/app/credentials/schema-resolving.d.ts.map +1 -0
  215. package/types/app/credentials/tel-publishing.d.ts +16 -0
  216. package/types/app/credentials/tel-publishing.d.ts.map +1 -0
  217. package/types/app/{verifying.d.ts → credentials/verifying.d.ts} +19 -7
  218. package/types/app/credentials/verifying.d.ts.map +1 -0
  219. package/types/app/delivery/forwarding.d.ts +227 -0
  220. package/types/app/delivery/forwarding.d.ts.map +1 -0
  221. package/types/app/delivery/introducing.d.ts +21 -0
  222. package/types/app/delivery/introducing.d.ts.map +1 -0
  223. package/types/app/delivery/reply-streams.d.ts +49 -0
  224. package/types/app/delivery/reply-streams.d.ts.map +1 -0
  225. package/types/app/delivery/respondant.d.ts +52 -0
  226. package/types/app/delivery/respondant.d.ts.map +1 -0
  227. package/types/app/{stored-replies.d.ts → delivery/stored-replies.d.ts} +1 -1
  228. package/types/app/delivery/stored-replies.d.ts.map +1 -0
  229. package/types/app/exchanges/essr.d.ts +53 -0
  230. package/types/app/exchanges/essr.d.ts.map +1 -0
  231. package/types/app/exchanges/exchange-messaging.d.ts +73 -0
  232. package/types/app/exchanges/exchange-messaging.d.ts.map +1 -0
  233. package/types/app/exchanges/exchanging.d.ts +379 -0
  234. package/types/app/exchanges/exchanging.d.ts.map +1 -0
  235. package/types/app/{challenging.d.ts → identity/challenging.d.ts} +3 -3
  236. package/types/app/identity/challenging.d.ts.map +1 -0
  237. package/types/app/{configing.d.ts → identity/configing.d.ts} +1 -1
  238. package/types/app/identity/configing.d.ts.map +1 -0
  239. package/types/app/{delegating.d.ts → identity/delegating.d.ts} +52 -15
  240. package/types/app/identity/delegating.d.ts.map +1 -0
  241. package/types/app/{endpoint-roleing.d.ts → identity/endpoint-roleing.d.ts} +24 -13
  242. package/types/app/identity/endpoint-roleing.d.ts.map +1 -0
  243. package/types/app/{habbing.d.ts → identity/habbing.d.ts} +73 -32
  244. package/types/app/identity/habbing.d.ts.map +1 -0
  245. package/types/app/{keeping.d.ts → identity/keeping.d.ts} +19 -5
  246. package/types/app/identity/keeping.d.ts.map +1 -0
  247. package/types/app/{organizing.d.ts → identity/organizing.d.ts} +19 -4
  248. package/types/app/identity/organizing.d.ts.map +1 -0
  249. package/types/app/ipex/ipex-building.d.ts +30 -0
  250. package/types/app/ipex/ipex-building.d.ts.map +1 -0
  251. package/types/app/{ipex-credentialing.d.ts → ipex/ipex-credentialing.d.ts} +33 -6
  252. package/types/app/ipex/ipex-credentialing.d.ts.map +1 -0
  253. package/types/app/ipex/ipex-graph.d.ts +28 -0
  254. package/types/app/ipex/ipex-graph.d.ts.map +1 -0
  255. package/types/app/ipex/ipex-grouping.d.ts +112 -0
  256. package/types/app/ipex/ipex-grouping.d.ts.map +1 -0
  257. package/types/app/{ipex-node-authentication.d.ts → ipex/ipex-node-authentication.d.ts} +10 -5
  258. package/types/app/ipex/ipex-node-authentication.d.ts.map +1 -0
  259. package/types/app/ipex/ipex-v2.d.ts +71 -0
  260. package/types/app/ipex/ipex-v2.d.ts.map +1 -0
  261. package/types/app/{ipexing.d.ts → ipex/ipexing.d.ts} +21 -6
  262. package/types/app/ipex/ipexing.d.ts.map +1 -0
  263. package/types/app/mailbox/forward-handler.d.ts +68 -0
  264. package/types/app/mailbox/forward-handler.d.ts.map +1 -0
  265. package/types/app/mailbox/mailbox-director.d.ts +252 -0
  266. package/types/app/mailbox/mailbox-director.d.ts.map +1 -0
  267. package/types/app/mailbox/mailbox-poller.d.ts +149 -0
  268. package/types/app/mailbox/mailbox-poller.d.ts.map +1 -0
  269. package/types/app/mailbox/mailbox-sse.d.ts +63 -0
  270. package/types/app/mailbox/mailbox-sse.d.ts.map +1 -0
  271. package/types/app/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +92 -40
  272. package/types/app/mailbox/mailboxing.d.ts.map +1 -0
  273. package/types/app/mailbox/topic-routing.d.ts +18 -0
  274. package/types/app/mailbox/topic-routing.d.ts.map +1 -0
  275. package/types/app/multisig/group-members.d.ts +60 -0
  276. package/types/app/multisig/group-members.d.ts.map +1 -0
  277. package/types/app/{grouping.d.ts → multisig/grouping.d.ts} +142 -19
  278. package/types/app/multisig/grouping.d.ts.map +1 -0
  279. package/types/app/multisig/multisig-messaging.d.ts +97 -0
  280. package/types/app/multisig/multisig-messaging.d.ts.map +1 -0
  281. package/types/app/multisig/multisig-workflows.d.ts +85 -0
  282. package/types/app/multisig/multisig-workflows.d.ts.map +1 -0
  283. package/types/app/{notifying.d.ts → notifications/notifying.d.ts} +4 -5
  284. package/types/app/notifications/notifying.d.ts.map +1 -0
  285. package/types/app/notifications/signaling.d.ts.map +1 -0
  286. package/types/app/{parsering.d.ts → protocol/parsering.d.ts} +40 -11
  287. package/types/app/protocol/parsering.d.ts.map +1 -0
  288. package/types/app/{protocol-host-policy.d.ts → protocol/protocol-host-policy.d.ts} +1 -10
  289. package/types/app/protocol/protocol-host-policy.d.ts.map +1 -0
  290. package/types/app/protocol/protocol-processing.d.ts +140 -0
  291. package/types/app/protocol/protocol-processing.d.ts.map +1 -0
  292. package/types/app/protocol/reactor.d.ts +43 -0
  293. package/types/app/protocol/reactor.d.ts.map +1 -0
  294. package/types/app/queries/query-replies.d.ts +78 -0
  295. package/types/app/queries/query-replies.d.ts.map +1 -0
  296. package/types/app/queries/querying.d.ts +155 -0
  297. package/types/app/queries/querying.d.ts.map +1 -0
  298. package/types/app/queries/witness-inquisitor.d.ts +150 -0
  299. package/types/app/queries/witness-inquisitor.d.ts.map +1 -0
  300. package/types/app/runtime/abortable.d.ts +39 -0
  301. package/types/app/runtime/abortable.d.ts.map +1 -0
  302. package/types/app/runtime/agent-runtime.d.ts +348 -0
  303. package/types/app/runtime/agent-runtime.d.ts.map +1 -0
  304. package/types/app/runtime/cue-runtime.d.ts +33 -0
  305. package/types/app/runtime/cue-runtime.d.ts.map +1 -0
  306. package/types/app/runtime/runtime-clock.d.ts +28 -0
  307. package/types/app/runtime/runtime-clock.d.ts.map +1 -0
  308. package/types/app/runtime/runtime-turn.d.ts.map +1 -0
  309. package/types/app/transport/byte-source.d.ts +41 -0
  310. package/types/app/transport/byte-source.d.ts.map +1 -0
  311. package/types/app/transport/cesr-egress.d.ts +117 -0
  312. package/types/app/transport/cesr-egress.d.ts.map +1 -0
  313. package/types/app/{cesr-http.d.ts → transport/cesr-http.d.ts} +4 -27
  314. package/types/app/transport/cesr-http.d.ts.map +1 -0
  315. package/types/app/transport/http-client.d.ts +99 -0
  316. package/types/app/transport/http-client.d.ts.map +1 -0
  317. package/types/app/transport/http-messenger.d.ts +37 -0
  318. package/types/app/transport/http-messenger.d.ts.map +1 -0
  319. package/types/app/transport/http-stream-messenger.d.ts +30 -0
  320. package/types/app/transport/http-stream-messenger.d.ts.map +1 -0
  321. package/types/app/transport/httping.d.ts +19 -0
  322. package/types/app/transport/httping.d.ts.map +1 -0
  323. package/types/app/transport/message-source.d.ts +22 -0
  324. package/types/app/transport/message-source.d.ts.map +1 -0
  325. package/types/app/transport/messengering.d.ts +41 -0
  326. package/types/app/transport/messengering.d.ts.map +1 -0
  327. package/types/app/{socket-source.d.ts → transport/socket-source.d.ts} +8 -0
  328. package/types/app/transport/socket-source.d.ts.map +1 -0
  329. package/types/app/transport/tcp-egress.d.ts +118 -0
  330. package/types/app/transport/tcp-egress.d.ts.map +1 -0
  331. package/types/app/transport/tcp-messenger.d.ts +69 -0
  332. package/types/app/transport/tcp-messenger.d.ts.map +1 -0
  333. package/types/app/transport/tcp-stream-messenger.d.ts +25 -0
  334. package/types/app/transport/tcp-stream-messenger.d.ts.map +1 -0
  335. package/types/app/transport/transport-error.d.ts +12 -0
  336. package/types/app/transport/transport-error.d.ts.map +1 -0
  337. package/types/app/witness/http-endpoints.d.ts +77 -0
  338. package/types/app/witness/http-endpoints.d.ts.map +1 -0
  339. package/types/app/witness/ingress.d.ts +65 -0
  340. package/types/app/witness/ingress.d.ts.map +1 -0
  341. package/types/app/witness/receipt-client.d.ts +82 -0
  342. package/types/app/witness/receipt-client.d.ts.map +1 -0
  343. package/types/app/witness/receipt-messages.d.ts +21 -0
  344. package/types/app/witness/receipt-messages.d.ts.map +1 -0
  345. package/types/app/witness/receipting.d.ts +117 -0
  346. package/types/app/witness/receipting.d.ts.map +1 -0
  347. package/types/app/witness/registration.d.ts +27 -0
  348. package/types/app/witness/registration.d.ts.map +1 -0
  349. package/types/cli/common/bootstrap.d.ts +5 -0
  350. package/types/cli/common/bootstrap.d.ts.map +1 -0
  351. package/types/{app/cli → cli}/common/context.d.ts +10 -5
  352. package/types/cli/common/context.d.ts.map +1 -0
  353. package/types/{app/cli → cli}/common/existing.d.ts +2 -4
  354. package/types/cli/common/existing.d.ts.map +1 -0
  355. package/types/{app/cli → cli}/common/parsing.d.ts +26 -15
  356. package/types/cli/common/parsing.d.ts.map +1 -0
  357. package/types/cli/common/passcode.d.ts +9 -0
  358. package/types/cli/common/passcode.d.ts.map +1 -0
  359. package/types/cli/common/rendering.d.ts.map +1 -0
  360. package/types/cli/common/tel-completion.d.ts +8 -0
  361. package/types/cli/common/tel-completion.d.ts.map +1 -0
  362. package/types/{app/cli → cli}/common/witness-auth.d.ts +1 -1
  363. package/types/cli/common/witness-auth.d.ts.map +1 -0
  364. package/types/cli/credentials/ipex.d.ts +110 -0
  365. package/types/cli/credentials/ipex.d.ts.map +1 -0
  366. package/types/cli/credentials/vc.d.ts +42 -0
  367. package/types/cli/credentials/vc.d.ts.map +1 -0
  368. package/types/{app/cli → cli/endpoints}/did.d.ts +5 -1
  369. package/types/cli/endpoints/did.d.ts.map +1 -0
  370. package/types/{app/cli → cli/endpoints}/ends.d.ts +9 -1
  371. package/types/cli/endpoints/ends.d.ts.map +1 -0
  372. package/types/cli/endpoints/loc.d.ts.map +1 -0
  373. package/types/cli/endpoints/oobi-clean.d.ts +8 -0
  374. package/types/cli/endpoints/oobi-clean.d.ts.map +1 -0
  375. package/types/{app/cli → cli/endpoints}/oobi.d.ts +2 -0
  376. package/types/cli/endpoints/oobi.d.ts.map +1 -0
  377. package/types/cli/identity/aid.d.ts.map +1 -0
  378. package/types/{app/cli → cli/identity}/challenge.d.ts +5 -1
  379. package/types/cli/identity/challenge.d.ts.map +1 -0
  380. package/types/cli/identity/delegate.d.ts.map +1 -0
  381. package/types/cli/identity/export.d.ts.map +1 -0
  382. package/types/{app/cli → cli/identity}/incept.d.ts +2 -0
  383. package/types/cli/identity/incept.d.ts.map +1 -0
  384. package/types/{app/cli → cli/identity}/init.d.ts +2 -0
  385. package/types/cli/identity/init.d.ts.map +1 -0
  386. package/types/{app/cli → cli/identity}/interact.d.ts +2 -0
  387. package/types/cli/identity/interact.d.ts.map +1 -0
  388. package/types/cli/identity/list.d.ts.map +1 -0
  389. package/types/{app/cli → cli/identity}/rotate.d.ts +9 -2
  390. package/types/cli/identity/rotate.d.ts.map +1 -0
  391. package/types/cli/index.d.ts +39 -0
  392. package/types/cli/index.d.ts.map +1 -0
  393. package/types/{app/cli → cli/messaging}/exchange.d.ts +3 -1
  394. package/types/cli/messaging/exchange.d.ts.map +1 -0
  395. package/types/cli/messaging/multisig.d.ts +29 -0
  396. package/types/cli/messaging/multisig.d.ts.map +1 -0
  397. package/types/cli/messaging/notifications.d.ts.map +1 -0
  398. package/types/cli/output.d.ts.map +1 -0
  399. package/types/cli/tools/annotate-color.d.ts.map +1 -0
  400. package/types/cli/tools/annotate.d.ts.map +1 -0
  401. package/types/cli/tools/benchmark.d.ts.map +1 -0
  402. package/types/cli/tools/db-dump.d.ts.map +1 -0
  403. package/types/cli/tools/saidify.d.ts.map +1 -0
  404. package/types/{app/cli → cli/tools}/sign.d.ts +2 -0
  405. package/types/cli/tools/sign.d.ts.map +1 -0
  406. package/types/cli/tools/verify.d.ts.map +1 -0
  407. package/types/core/attachment-countering.d.ts +10 -1
  408. package/types/core/attachment-countering.d.ts.map +1 -1
  409. package/types/core/cues.d.ts +78 -21
  410. package/types/core/cues.d.ts.map +1 -1
  411. package/types/core/{exchange-proofing.d.ts → exchange/exchange-proofing.d.ts} +9 -2
  412. package/types/core/exchange/exchange-proofing.d.ts.map +1 -0
  413. package/types/core/{protocol-exchanging.d.ts → exchange/protocol-exchanging.d.ts} +10 -2
  414. package/types/core/exchange/protocol-exchanging.d.ts.map +1 -0
  415. package/types/core/genus-framing.d.ts +12 -0
  416. package/types/core/genus-framing.d.ts.map +1 -0
  417. package/types/core/{eventing.d.ts → kel/eventing.d.ts} +22 -10
  418. package/types/core/kel/eventing.d.ts.map +1 -0
  419. package/types/core/{kever-decisions.d.ts → kel/kever-decisions.d.ts} +21 -8
  420. package/types/core/kel/kever-decisions.d.ts.map +1 -0
  421. package/types/core/{kever.d.ts → kel/kever.d.ts} +2 -2
  422. package/types/core/kel/kever.d.ts.map +1 -0
  423. package/types/core/kel/witnesses.d.ts.map +1 -0
  424. package/types/core/logger.d.ts +1 -1
  425. package/types/core/logger.d.ts.map +1 -1
  426. package/types/core/{kram-auth.d.ts → mailbox/kram-auth.d.ts} +2 -2
  427. package/types/core/mailbox/kram-auth.d.ts.map +1 -0
  428. package/types/core/{kram-policy.d.ts → mailbox/kram-policy.d.ts} +2 -2
  429. package/types/core/mailbox/kram-policy.d.ts.map +1 -0
  430. package/types/core/{kram-pruning.d.ts → mailbox/kram-pruning.d.ts} +1 -1
  431. package/types/core/mailbox/kram-pruning.d.ts.map +1 -0
  432. package/types/core/{kram-signatures.d.ts → mailbox/kram-signatures.d.ts} +3 -3
  433. package/types/core/mailbox/kram-signatures.d.ts.map +1 -0
  434. package/types/core/{kram-staging.d.ts → mailbox/kram-staging.d.ts} +2 -2
  435. package/types/core/mailbox/kram-staging.d.ts.map +1 -0
  436. package/types/core/{kram-time.d.ts → mailbox/kram-time.d.ts} +2 -2
  437. package/types/core/mailbox/kram-time.d.ts.map +1 -0
  438. package/types/core/{kraming.d.ts → mailbox/kraming.d.ts} +5 -5
  439. package/types/core/mailbox/kraming.d.ts.map +1 -0
  440. package/types/core/mailbox/mailbox-topics.d.ts.map +1 -0
  441. package/types/core/protocol-eventing.d.ts.map +1 -1
  442. package/types/core/protocol-serialization.d.ts +1 -1
  443. package/types/core/protocol-serialization.d.ts.map +1 -1
  444. package/types/core/records.d.ts +1 -1
  445. package/types/core/records.d.ts.map +1 -1
  446. package/types/core/routing.d.ts +24 -4
  447. package/types/core/routing.d.ts.map +1 -1
  448. package/types/db/baser-defaults.d.ts +5 -0
  449. package/types/db/baser-defaults.d.ts.map +1 -0
  450. package/types/db/basing.d.ts +32 -44
  451. package/types/db/basing.d.ts.map +1 -1
  452. package/types/db/core/lmdber.d.ts +18 -13
  453. package/types/db/core/lmdber.d.ts.map +1 -1
  454. package/types/db/escrowing.d.ts +3 -1
  455. package/types/db/escrowing.d.ts.map +1 -1
  456. package/types/db/exchange/exchange-nests.d.ts +12 -0
  457. package/types/db/exchange/exchange-nests.d.ts.map +1 -0
  458. package/types/db/exchange/exchange-records.d.ts +38 -0
  459. package/types/db/exchange/exchange-records.d.ts.map +1 -0
  460. package/types/db/index.d.ts +5 -4
  461. package/types/db/index.d.ts.map +1 -1
  462. package/types/db/keeping.d.ts +19 -1
  463. package/types/db/keeping.d.ts.map +1 -1
  464. package/types/db/{kram-factors.d.ts → mailbox/kram-factors.d.ts} +2 -2
  465. package/types/db/mailbox/kram-factors.d.ts.map +1 -0
  466. package/types/db/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +2 -2
  467. package/types/db/mailbox/mailboxing.d.ts.map +1 -0
  468. package/types/db/reger.d.ts +7 -6
  469. package/types/db/reger.d.ts.map +1 -1
  470. package/types/db/{kel-replay.d.ts → replay/kel-replay.d.ts} +1 -2
  471. package/types/db/replay/kel-replay.d.ts.map +1 -0
  472. package/types/db/{tel-replay.d.ts → replay/tel-replay.d.ts} +11 -1
  473. package/types/db/replay/tel-replay.d.ts.map +1 -0
  474. package/types/db/{witness-replay.d.ts → replay/witness-replay.d.ts} +1 -1
  475. package/types/db/replay/witness-replay.d.ts.map +1 -0
  476. package/types/db/subing.d.ts.map +1 -1
  477. package/types/did/keri/resolving.d.ts +1 -1
  478. package/types/did/keri/resolving.d.ts.map +1 -1
  479. package/types/did/webs/artifacts.d.ts +5 -5
  480. package/types/did/webs/artifacts.d.ts.map +1 -1
  481. package/types/did/webs/designated-aliases.d.ts +1 -2
  482. package/types/did/webs/designated-aliases.d.ts.map +1 -1
  483. package/types/did/webs/documenting.d.ts +1 -1
  484. package/types/did/webs/documenting.d.ts.map +1 -1
  485. package/types/did/webs/resolving.d.ts +13 -9
  486. package/types/did/webs/resolving.d.ts.map +1 -1
  487. package/types/library/index.d.ts +1 -1
  488. package/types/library/index.d.ts.map +1 -1
  489. package/types/npm/cli.d.ts +1 -1
  490. package/types/npm/cli.d.ts.map +1 -1
  491. package/types/npm/index.d.ts +1 -1
  492. package/types/npm/index.d.ts.map +1 -1
  493. package/types/runtime/index.d.ts +86 -51
  494. package/types/runtime/index.d.ts.map +1 -1
  495. package/types/vdr/backer-state.d.ts +22 -0
  496. package/types/vdr/backer-state.d.ts.map +1 -0
  497. package/types/vdr/credential-tsn-record.d.ts +13 -0
  498. package/types/vdr/credential-tsn-record.d.ts.map +1 -0
  499. package/types/vdr/credentialing.d.ts +16 -17
  500. package/types/vdr/credentialing.d.ts.map +1 -1
  501. package/types/vdr/eventing.d.ts +60 -18
  502. package/types/vdr/eventing.d.ts.map +1 -1
  503. package/types/vdr/registry-tsn-record.d.ts +6 -0
  504. package/types/vdr/registry-tsn-record.d.ts.map +1 -0
  505. package/types/vdr/revoking.d.ts +18 -0
  506. package/types/vdr/revoking.d.ts.map +1 -0
  507. package/types/vdr/tel-anchor.d.ts +10 -0
  508. package/types/vdr/tel-anchor.d.ts.map +1 -0
  509. package/types/vdr/tel-publication.d.ts +49 -0
  510. package/types/vdr/tel-publication.d.ts.map +1 -0
  511. package/types/vdr/tsn-query.d.ts +1 -1
  512. package/types/vdr/tsn-query.d.ts.map +1 -1
  513. package/types/{app/version.d.ts → version.d.ts} +2 -2
  514. package/types/version.d.ts.map +1 -0
  515. package/esm/keri/npm/src/app/agent-runtime.js +0 -544
  516. package/esm/keri/npm/src/app/cesr-egress.js +0 -294
  517. package/esm/keri/npm/src/app/cli/common/displaying.js +0 -43
  518. package/esm/keri/npm/src/app/cli/common/parsing.js +0 -215
  519. package/esm/keri/npm/src/app/cli/incept.js +0 -185
  520. package/esm/keri/npm/src/app/cli/index.js +0 -36
  521. package/esm/keri/npm/src/app/cli/init.js +0 -149
  522. package/esm/keri/npm/src/app/cli/interact.js +0 -72
  523. package/esm/keri/npm/src/app/cli/ipex.js +0 -519
  524. package/esm/keri/npm/src/app/cli/query.js +0 -142
  525. package/esm/keri/npm/src/app/cli/vc.js +0 -283
  526. package/esm/keri/npm/src/app/cli/verifier.js +0 -92
  527. package/esm/keri/npm/src/app/credential-workflows.js +0 -409
  528. package/esm/keri/npm/src/app/cue-runtime.js +0 -38
  529. package/esm/keri/npm/src/app/essr.js +0 -170
  530. package/esm/keri/npm/src/app/exchanging.js +0 -1001
  531. package/esm/keri/npm/src/app/forwarding.js +0 -936
  532. package/esm/keri/npm/src/app/group-members.js +0 -37
  533. package/esm/keri/npm/src/app/httping.js +0 -162
  534. package/esm/keri/npm/src/app/ipex-graph.js +0 -407
  535. package/esm/keri/npm/src/app/ipex-grouping.js +0 -276
  536. package/esm/keri/npm/src/app/ipex-v2.js +0 -438
  537. package/esm/keri/npm/src/app/mailbox-sse.js +0 -240
  538. package/esm/keri/npm/src/app/multisig-workflows.js +0 -457
  539. package/esm/keri/npm/src/app/querying.js +0 -775
  540. package/esm/keri/npm/src/app/reactor.js +0 -394
  541. package/esm/keri/npm/src/app/respondant.js +0 -358
  542. package/esm/keri/npm/src/app/runtime-services.js +0 -22
  543. package/esm/keri/npm/src/app/tcp-conversation.js +0 -85
  544. package/esm/keri/npm/src/app/tcp-egress.js +0 -251
  545. package/esm/keri/npm/src/app/verifier-agent.js +0 -443
  546. package/esm/keri/npm/src/app/witnessing.js +0 -914
  547. package/esm/keri/npm/src/core/index.js +0 -23
  548. package/esm/keri/npm/src/db/exchange-nests.js +0 -80
  549. package/esm/keri/npm/src/db/exchange-records.js +0 -7
  550. package/esm/keri/npm/src/db/payload-archive.js +0 -402
  551. package/esm/keri/npm/src/db/payload-store.js +0 -406
  552. package/esm/keri/npm/src/db/payload-view.js +0 -23
  553. package/esm/keri/npm/src/db/verifier-cueing.js +0 -132
  554. package/esm/keri/npm/src/vdr/credential-tsn.js +0 -230
  555. package/esm/keri/npm/src/vdr/registry-tsn.js +0 -217
  556. package/types/app/abortable.d.ts +0 -13
  557. package/types/app/abortable.d.ts.map +0 -1
  558. package/types/app/agent-runtime.d.ts +0 -221
  559. package/types/app/agent-runtime.d.ts.map +0 -1
  560. package/types/app/authenticating.d.ts +0 -36
  561. package/types/app/authenticating.d.ts.map +0 -1
  562. package/types/app/byte-source.d.ts +0 -16
  563. package/types/app/byte-source.d.ts.map +0 -1
  564. package/types/app/cesr-egress.d.ts +0 -45
  565. package/types/app/cesr-egress.d.ts.map +0 -1
  566. package/types/app/cesr-http.d.ts.map +0 -1
  567. package/types/app/challenging.d.ts.map +0 -1
  568. package/types/app/cli/aid.d.ts.map +0 -1
  569. package/types/app/cli/annotate-color.d.ts.map +0 -1
  570. package/types/app/cli/annotate.d.ts.map +0 -1
  571. package/types/app/cli/benchmark.d.ts.map +0 -1
  572. package/types/app/cli/challenge.d.ts.map +0 -1
  573. package/types/app/cli/common/context.d.ts.map +0 -1
  574. package/types/app/cli/common/displaying.d.ts +0 -12
  575. package/types/app/cli/common/displaying.d.ts.map +0 -1
  576. package/types/app/cli/common/existing.d.ts.map +0 -1
  577. package/types/app/cli/common/parsing.d.ts.map +0 -1
  578. package/types/app/cli/common/rendering.d.ts.map +0 -1
  579. package/types/app/cli/common/witness-auth.d.ts.map +0 -1
  580. package/types/app/cli/db-dump.d.ts.map +0 -1
  581. package/types/app/cli/delegate.d.ts.map +0 -1
  582. package/types/app/cli/did.d.ts.map +0 -1
  583. package/types/app/cli/ends.d.ts.map +0 -1
  584. package/types/app/cli/exchange.d.ts.map +0 -1
  585. package/types/app/cli/export.d.ts.map +0 -1
  586. package/types/app/cli/incept.d.ts.map +0 -1
  587. package/types/app/cli/index.d.ts +0 -37
  588. package/types/app/cli/index.d.ts.map +0 -1
  589. package/types/app/cli/init.d.ts.map +0 -1
  590. package/types/app/cli/interact.d.ts.map +0 -1
  591. package/types/app/cli/ipex.d.ts +0 -20
  592. package/types/app/cli/ipex.d.ts.map +0 -1
  593. package/types/app/cli/list.d.ts.map +0 -1
  594. package/types/app/cli/loc.d.ts.map +0 -1
  595. package/types/app/cli/multisig.d.ts +0 -12
  596. package/types/app/cli/multisig.d.ts.map +0 -1
  597. package/types/app/cli/notifications.d.ts.map +0 -1
  598. package/types/app/cli/oobi.d.ts.map +0 -1
  599. package/types/app/cli/output.d.ts.map +0 -1
  600. package/types/app/cli/query.d.ts +0 -12
  601. package/types/app/cli/query.d.ts.map +0 -1
  602. package/types/app/cli/rotate.d.ts.map +0 -1
  603. package/types/app/cli/saidify.d.ts.map +0 -1
  604. package/types/app/cli/sign.d.ts.map +0 -1
  605. package/types/app/cli/vc.d.ts +0 -20
  606. package/types/app/cli/vc.d.ts.map +0 -1
  607. package/types/app/cli/verifier.d.ts +0 -3
  608. package/types/app/cli/verifier.d.ts.map +0 -1
  609. package/types/app/cli/verify.d.ts.map +0 -1
  610. package/types/app/configing.d.ts.map +0 -1
  611. package/types/app/credential-workflows.d.ts +0 -113
  612. package/types/app/credential-workflows.d.ts.map +0 -1
  613. package/types/app/cue-runtime.d.ts +0 -12
  614. package/types/app/cue-runtime.d.ts.map +0 -1
  615. package/types/app/delegating.d.ts.map +0 -1
  616. package/types/app/endpoint-roleing.d.ts.map +0 -1
  617. package/types/app/essr.d.ts +0 -58
  618. package/types/app/essr.d.ts.map +0 -1
  619. package/types/app/exchanging.d.ts +0 -233
  620. package/types/app/exchanging.d.ts.map +0 -1
  621. package/types/app/forwarding.d.ts +0 -352
  622. package/types/app/forwarding.d.ts.map +0 -1
  623. package/types/app/group-members.d.ts +0 -12
  624. package/types/app/group-members.d.ts.map +0 -1
  625. package/types/app/grouping.d.ts.map +0 -1
  626. package/types/app/habbing.d.ts.map +0 -1
  627. package/types/app/httping.d.ts +0 -49
  628. package/types/app/httping.d.ts.map +0 -1
  629. package/types/app/ipex-credentialing.d.ts.map +0 -1
  630. package/types/app/ipex-graph.d.ts +0 -49
  631. package/types/app/ipex-graph.d.ts.map +0 -1
  632. package/types/app/ipex-grouping.d.ts +0 -43
  633. package/types/app/ipex-grouping.d.ts.map +0 -1
  634. package/types/app/ipex-node-authentication.d.ts.map +0 -1
  635. package/types/app/ipex-v2.d.ts +0 -46
  636. package/types/app/ipex-v2.d.ts.map +0 -1
  637. package/types/app/ipexing.d.ts.map +0 -1
  638. package/types/app/keeping.d.ts.map +0 -1
  639. package/types/app/mailbox-director.d.ts +0 -140
  640. package/types/app/mailbox-director.d.ts.map +0 -1
  641. package/types/app/mailbox-sse.d.ts +0 -32
  642. package/types/app/mailbox-sse.d.ts.map +0 -1
  643. package/types/app/mailboxing.d.ts.map +0 -1
  644. package/types/app/multisig-workflows.d.ts +0 -47
  645. package/types/app/multisig-workflows.d.ts.map +0 -1
  646. package/types/app/notifying.d.ts.map +0 -1
  647. package/types/app/oobi-replies.d.ts.map +0 -1
  648. package/types/app/oobiery.d.ts.map +0 -1
  649. package/types/app/organizing.d.ts.map +0 -1
  650. package/types/app/parsering.d.ts.map +0 -1
  651. package/types/app/protocol-host-policy.d.ts.map +0 -1
  652. package/types/app/query-replies.d.ts +0 -40
  653. package/types/app/query-replies.d.ts.map +0 -1
  654. package/types/app/querying.d.ts +0 -221
  655. package/types/app/querying.d.ts.map +0 -1
  656. package/types/app/reactor.d.ts +0 -138
  657. package/types/app/reactor.d.ts.map +0 -1
  658. package/types/app/reply-streams.d.ts +0 -20
  659. package/types/app/reply-streams.d.ts.map +0 -1
  660. package/types/app/respondant.d.ts +0 -63
  661. package/types/app/respondant.d.ts.map +0 -1
  662. package/types/app/runtime-services.d.ts +0 -26
  663. package/types/app/runtime-services.d.ts.map +0 -1
  664. package/types/app/runtime-turn.d.ts.map +0 -1
  665. package/types/app/schema-resolving.d.ts.map +0 -1
  666. package/types/app/signaling.d.ts.map +0 -1
  667. package/types/app/socket-source.d.ts.map +0 -1
  668. package/types/app/stored-replies.d.ts.map +0 -1
  669. package/types/app/tcp-conversation.d.ts +0 -27
  670. package/types/app/tcp-conversation.d.ts.map +0 -1
  671. package/types/app/tcp-egress.d.ts +0 -49
  672. package/types/app/tcp-egress.d.ts.map +0 -1
  673. package/types/app/verifier-agent.d.ts +0 -92
  674. package/types/app/verifier-agent.d.ts.map +0 -1
  675. package/types/app/verifying.d.ts.map +0 -1
  676. package/types/app/version.d.ts.map +0 -1
  677. package/types/app/witnessing.d.ts +0 -223
  678. package/types/app/witnessing.d.ts.map +0 -1
  679. package/types/core/eventing.d.ts.map +0 -1
  680. package/types/core/exchange-proofing.d.ts.map +0 -1
  681. package/types/core/index.d.ts +0 -24
  682. package/types/core/index.d.ts.map +0 -1
  683. package/types/core/kever-decisions.d.ts.map +0 -1
  684. package/types/core/kever.d.ts.map +0 -1
  685. package/types/core/kram-auth.d.ts.map +0 -1
  686. package/types/core/kram-policy.d.ts.map +0 -1
  687. package/types/core/kram-pruning.d.ts.map +0 -1
  688. package/types/core/kram-signatures.d.ts.map +0 -1
  689. package/types/core/kram-staging.d.ts.map +0 -1
  690. package/types/core/kram-time.d.ts.map +0 -1
  691. package/types/core/kraming.d.ts.map +0 -1
  692. package/types/core/mailbox-topics.d.ts.map +0 -1
  693. package/types/core/protocol-exchanging.d.ts.map +0 -1
  694. package/types/core/witnesses.d.ts.map +0 -1
  695. package/types/db/exchange-nests.d.ts +0 -15
  696. package/types/db/exchange-nests.d.ts.map +0 -1
  697. package/types/db/exchange-records.d.ts +0 -33
  698. package/types/db/exchange-records.d.ts.map +0 -1
  699. package/types/db/kel-replay.d.ts.map +0 -1
  700. package/types/db/kram-factors.d.ts.map +0 -1
  701. package/types/db/mailboxing.d.ts.map +0 -1
  702. package/types/db/payload-archive.d.ts +0 -70
  703. package/types/db/payload-archive.d.ts.map +0 -1
  704. package/types/db/payload-store.d.ts +0 -40
  705. package/types/db/payload-store.d.ts.map +0 -1
  706. package/types/db/payload-view.d.ts +0 -4
  707. package/types/db/payload-view.d.ts.map +0 -1
  708. package/types/db/tel-replay.d.ts.map +0 -1
  709. package/types/db/verifier-cueing.d.ts +0 -46
  710. package/types/db/verifier-cueing.d.ts.map +0 -1
  711. package/types/db/witness-replay.d.ts.map +0 -1
  712. package/types/vdr/credential-tsn.d.ts +0 -23
  713. package/types/vdr/credential-tsn.d.ts.map +0 -1
  714. package/types/vdr/registry-tsn.d.ts +0 -28
  715. package/types/vdr/registry-tsn.d.ts.map +0 -1
  716. /package/esm/keri/npm/src/app/{schema-resolving.js → credentials/schema-resolving.js} +0 -0
  717. /package/esm/keri/npm/src/app/{challenging.js → identity/challenging.js} +0 -0
  718. /package/esm/keri/npm/src/app/{protocol-host-policy.js → protocol/protocol-host-policy.js} +0 -0
  719. /package/esm/keri/npm/src/app/{runtime-turn.js → runtime/runtime-turn.js} +0 -0
  720. /package/esm/keri/npm/src/{app/cli → cli}/common/rendering.js +0 -0
  721. /package/esm/keri/npm/src/{app/cli → cli/tools}/annotate-color.js +0 -0
  722. /package/esm/keri/npm/src/core/{witnesses.js → kel/witnesses.js} +0 -0
  723. /package/esm/keri/npm/src/core/{kram-auth.js → mailbox/kram-auth.js} +0 -0
  724. /package/esm/keri/npm/src/core/{mailbox-topics.js → mailbox/mailbox-topics.js} +0 -0
  725. /package/types/app/{signaling.d.ts → notifications/signaling.d.ts} +0 -0
  726. /package/types/app/{runtime-turn.d.ts → runtime/runtime-turn.d.ts} +0 -0
  727. /package/types/{app/cli → cli}/common/rendering.d.ts +0 -0
  728. /package/types/{app/cli → cli/endpoints}/loc.d.ts +0 -0
  729. /package/types/{app/cli → cli/identity}/aid.d.ts +0 -0
  730. /package/types/{app/cli → cli/identity}/delegate.d.ts +0 -0
  731. /package/types/{app/cli → cli/identity}/export.d.ts +0 -0
  732. /package/types/{app/cli → cli/identity}/list.d.ts +0 -0
  733. /package/types/{app/cli → cli/messaging}/notifications.d.ts +0 -0
  734. /package/types/{app/cli → cli}/output.d.ts +0 -0
  735. /package/types/{app/cli → cli/tools}/annotate-color.d.ts +0 -0
  736. /package/types/{app/cli → cli/tools}/annotate.d.ts +0 -0
  737. /package/types/{app/cli → cli/tools}/benchmark.d.ts +0 -0
  738. /package/types/{app/cli → cli/tools}/db-dump.d.ts +0 -0
  739. /package/types/{app/cli → cli/tools}/saidify.d.ts +0 -0
  740. /package/types/{app/cli → cli/tools}/verify.d.ts +0 -0
  741. /package/types/core/{witnesses.d.ts → kel/witnesses.d.ts} +0 -0
  742. /package/types/core/{mailbox-topics.d.ts → mailbox/mailbox-topics.d.ts} +0 -0
@@ -6,25 +6,37 @@
6
6
  * own group key-event counseling; local group habitat state still lives under
7
7
  * `Habery.makeGroupHab(...)`, `Baser.habs`, and the keeper member stores.
8
8
  */
9
- import { collectPayload, concatBytes, Counter, nestedPayload, parse, parseBytes, parsePather, Prefixer, Saider, Serder, SerderKERI, Vrsn_1_0, Vrsn_2_0, } from "cesr-ts";
9
+ import { collectPayload, concatBytes, Counter, nestedPayload, parse, parseBytes, parsePather, Prefixer, Saider, Serder, SerderACDC, SerderKERI, Vrsn_1_0, Vrsn_2_0, } from "cesr-ts";
10
10
  import { call, ensure } from "effection";
11
- import { Kevery } from "../core/eventing.js";
12
- import { exchange, nestedMultisigIlks } from "../core/protocol-exchanging.js";
13
- import { BasicReplyRouteHandler, Revery, Router } from "../core/routing.js";
14
- import { abortable, rethrowCleanupFailure } from "./abortable.js";
15
- import { Exchanger } from "./exchanging.js";
16
- import { dispatchEnvelope, envelopeFromFrame } from "./parsering.js";
11
+ import { validateRip, validateUpdate } from "../../acdc/regeventing.js";
12
+ import { ValidationError } from "../../core/errors.js";
13
+ import { exchange, isIpexVerb, isV2RegistryRoute, multisigChildField, nestedIpexRoute, nestedMultisigIlks, } from "../../core/exchange/protocol-exchanging.js";
14
+ import { Kevery } from "../../core/kel/eventing.js";
15
+ import { BasicReplyRouteHandler, Revery, Router } from "../../core/routing.js";
16
+ import { Exchanger } from "../exchanges/exchanging.js";
17
+ import { IpexV2Handler } from "../ipex/ipex-v2.js";
18
+ import { dispatchEnvelope, envelopeFromFrame } from "../protocol/parsering.js";
19
+ import { abortable, rethrowCleanupFailure } from "../runtime/abortable.js";
20
+ import { groupSigningMembers, localIpexContribution } from "./group-members.js";
21
+ import { multisigEmbeddedSection, multisigPayloadSaid } from "./multisig-messaging.js";
17
22
  /** KERIpy multisig route constants. */
18
23
  export const MULTISIG_ICP_ROUTE = "/multisig/icp";
19
24
  export const MULTISIG_ROT_ROUTE = "/multisig/rot";
20
25
  export const MULTISIG_IXN_ROUTE = "/multisig/ixn";
26
+ export const MULTISIG_RIP_ROUTE = "/multisig/rip";
27
+ export const MULTISIG_BUP_ROUTE = "/multisig/bup";
21
28
  export const MULTISIG_VCP_ROUTE = "/multisig/vcp";
22
29
  export const MULTISIG_ISS_ROUTE = "/multisig/iss";
23
30
  export const MULTISIG_REV_ROUTE = "/multisig/rev";
24
31
  export const MULTISIG_EXN_ROUTE = "/multisig/exn";
25
32
  export const MULTISIG_RPY_ROUTE = "/multisig/rpy";
33
+ /** Local v2 coordination profile routes, as in KERIpy core; not upstream KERI or #1740 routes. */
34
+ export const MULTISIG_QRY_ROUTE = "/multisig/qry";
35
+ export const MULTISIG_IPEX_PROOF_ROUTE = "/multisig/ipex-proof";
26
36
  /** Ordered route list used for handler registration. */
27
37
  export const MULTISIG_ROUTES = [
38
+ MULTISIG_RIP_ROUTE,
39
+ MULTISIG_BUP_ROUTE,
28
40
  MULTISIG_ICP_ROUTE,
29
41
  MULTISIG_ROT_ROUTE,
30
42
  MULTISIG_IXN_ROUTE,
@@ -33,7 +45,103 @@ export const MULTISIG_ROUTES = [
33
45
  MULTISIG_REV_ROUTE,
34
46
  MULTISIG_EXN_ROUTE,
35
47
  MULTISIG_RPY_ROUTE,
48
+ MULTISIG_QRY_ROUTE,
49
+ MULTISIG_IPEX_PROOF_ROUTE,
36
50
  ];
51
+ /** Children whose verification needs caller-owned processors; the Multiplexor indexes and notifies only. */
52
+ const UNREPLAYED_ROUTES = [MULTISIG_QRY_ROUTE, MULTISIG_IPEX_PROOF_ROUTE];
53
+ /** Build an unsigned legacy VDR wrapper with its required named children. */
54
+ export function prepareMultisigVdrExn(sender, proposal, options = {}) {
55
+ return exchange(proposal.route, proposal.attrs, { ...options, sender, embeds: proposal.embeds });
56
+ }
57
+ /** Validate public TEL linkage before proposing or signing an anchor; no state is inferred from b. */
58
+ export function registryProposalEvent(tel, gid, store) {
59
+ const checked = tel.ilk === "rip" ? validateRip(tel, gid) : validateUpdate(tel, tel.regid ?? "");
60
+ if (checked.kind !== "valid" || tel.pvrsn.major !== 2 || tel.pvrsn.minor !== 0) {
61
+ return null;
62
+ }
63
+ if (tel.ilk === "rip") {
64
+ return checked.event;
65
+ }
66
+ const rip = store?.seqEvent(checked.event.regid, 0);
67
+ const inception = rip && validateRip(rip, gid);
68
+ const head = store?.headEvent(checked.event.regid);
69
+ if (!rip || !head || !inception || inception.kind !== "valid" || rip.pvrsn.major !== 2 || rip.pvrsn.minor !== 0) {
70
+ return null;
71
+ }
72
+ const headSn = BigInt(`0x${head.sad.n}`);
73
+ const sn = checked.event.sn;
74
+ if (sn > headSn + 1n || sn > BigInt(Number.MAX_SAFE_INTEGER)) {
75
+ return null;
76
+ }
77
+ const accepted = store.seqEvent(rip.said, Number(sn));
78
+ if (accepted) {
79
+ return sameBytes(accepted.raw, tel.raw) ? checked.event : null;
80
+ }
81
+ return sn === headSn + 1n && checked.event.prior === head.said ? checked.event : null;
82
+ }
83
+ /** Exact authenticated consent may share an anchor index with unrelated v2 TEL proposals. */
84
+ export function sameRegistryProposal(left, right) {
85
+ const a = left.sad?.a;
86
+ const b = right.sad?.a;
87
+ return isV2RegistryRoute(left.route ?? "") && left.route === right.route && isRecord(a) && isRecord(b)
88
+ && ["gid", "tel", "anc"].every(field => a[field] === b[field]);
89
+ }
90
+ /** Validate both child commitments and every supplied source coordinate without writing evidence. */
91
+ export function acdcV2RegistryProposal(wrapper, nests, store) {
92
+ const payload = wrapper.sad?.a;
93
+ const route = wrapper.route ?? "";
94
+ if (!isV2RegistryRoute(route) || !isRecord(payload) || typeof payload.gid !== "string" || nests.length !== 2
95
+ || wrapper.pvrsn.major !== 2 || wrapper.pvrsn.minor !== 0) {
96
+ return null;
97
+ }
98
+ const [tel, anchor] = nests.map(child => child.body);
99
+ if (!(tel instanceof SerderACDC) || !(anchor instanceof SerderKERI) || route !== `/multisig/${tel.ilk}`
100
+ || nests.some(child => child.nests?.length) || tel.said !== payload.tel || anchor.said !== payload.anc
101
+ || anchor.pvrsn.major !== 2 || anchor.pvrsn.minor !== 0 || !anchor.verify()
102
+ || anchor.pre !== payload.gid || !["ixn", "rot", "drt"].includes(anchor.ilk ?? "")) {
103
+ return null;
104
+ }
105
+ const event = registryProposalEvent(tel, payload.gid, store);
106
+ if (!event || !anchor.seals.some(seal => isRecord(seal) && seal.i === event.regid
107
+ && seal.s === tel.sad.n && seal.d === tel.said)) {
108
+ return null;
109
+ }
110
+ const evidence = envelopeFromFrame(nests[0]);
111
+ if (evidence.sscs.some(seal => seal.s.num !== BigInt(anchor.sn) || seal.d.qb64 !== anchor.said)
112
+ || evidence.ssts.some(seal => seal.i.qb64 !== payload.gid
113
+ || seal.s.num !== BigInt(anchor.sn) || seal.d.qb64 !== anchor.said)) {
114
+ return null;
115
+ }
116
+ return { tel, anchor };
117
+ }
118
+ /** Compare retained event bytes without normalizing their signed representation. */
119
+ function sameBytes(left, right) {
120
+ return left.length === right.length && left.every((value, index) => value === right[index]);
121
+ }
122
+ /** Commit one exact ACDC v2 registry/anchor pair using the ordinary nested-wire serializer. */
123
+ export function* prepareAcdcV2RegistryExn(sender, tel, anchor, store, options = {}) {
124
+ const children = [tel, anchor].map(wire => parseBytes(concatBytes(Counter.makeGVC(Vrsn_2_0), wire)));
125
+ if (children.some(frames => frames.length !== 1)) {
126
+ throw new Error("ACDC v2 registry proposal requires one TEL and one KEL event.");
127
+ }
128
+ const nests = children.map(frames => frames[0]);
129
+ if (!(nests[1].body instanceof SerderKERI))
130
+ throw new Error("ACDC v2 registry anchor must be KERI.");
131
+ const wrapper = exchange(`/multisig/${nests[0].body.ilk}`, {
132
+ gid: nests[1].body.pre,
133
+ tel: nests[0].body.said,
134
+ anc: nests[1].body.said,
135
+ }, {
136
+ ...options,
137
+ sender,
138
+ version: Vrsn_2_0,
139
+ })[0];
140
+ if (!acdcV2RegistryProposal(wrapper, nests, store))
141
+ throw new Error("Invalid ACDC v2 registry proposal.");
142
+ const parts = yield* abortable(signal => Promise.all(nests.map(child => collectPayload(nestedPayload(child, Vrsn_2_0), signal))));
143
+ return [wrapper, concatBytes(...parts)];
144
+ }
37
145
  /** Coordinate one proposed group inception event. */
38
146
  export function* multisigInceptExn(member, smids, rmids, icp, delegator, options = {}) {
39
147
  return yield* prepareMultisigEventExn(member.pre, {
@@ -68,42 +176,27 @@ export function* multisigInteractExn(group, member, aids, ixn, options = {}) {
68
176
  }
69
177
  /** Coordinate one proposed multisig credential-registry inception. */
70
178
  export function multisigRegistryInceptExn(group, member, usage, vcp, anc, options = {}) {
71
- return exchange(MULTISIG_VCP_ROUTE, {
72
- gid: groupPrefix(group),
73
- usage,
74
- }, {
75
- ...exchangeOptions(member, options),
76
- embeds: {
77
- vcp: rawMessage(vcp),
78
- anc: rawMessage(anc),
79
- },
80
- });
179
+ return prepareMultisigVdrExn(member.pre, {
180
+ route: MULTISIG_VCP_ROUTE,
181
+ attrs: { gid: groupPrefix(group), usage },
182
+ embeds: { vcp: rawMessage(vcp), anc: rawMessage(anc) },
183
+ }, exchangeOptions(member, options));
81
184
  }
82
185
  /** Coordinate one proposed multisig credential issuance. */
83
186
  export function multisigIssueExn(group, member, acdc, iss, anc, options = {}) {
84
- return exchange(MULTISIG_ISS_ROUTE, {
85
- gid: groupPrefix(group),
86
- }, {
87
- ...exchangeOptions(member, options),
88
- embeds: {
89
- acdc: rawMessage(acdc),
90
- iss: rawMessage(iss),
91
- anc: rawMessage(anc),
92
- },
93
- });
187
+ return prepareMultisigVdrExn(member.pre, {
188
+ route: MULTISIG_ISS_ROUTE,
189
+ attrs: { gid: groupPrefix(group) },
190
+ embeds: { acdc: rawMessage(acdc), iss: rawMessage(iss), anc: rawMessage(anc) },
191
+ }, exchangeOptions(member, options));
94
192
  }
95
193
  /** Coordinate one proposed multisig credential revocation. */
96
194
  export function multisigRevokeExn(group, member, said, rev, anc, options = {}) {
97
- return exchange(MULTISIG_REV_ROUTE, {
98
- gid: groupPrefix(group),
99
- said,
100
- }, {
101
- ...exchangeOptions(member, options),
102
- embeds: {
103
- rev: rawMessage(rev),
104
- anc: rawMessage(anc),
105
- },
106
- });
195
+ return prepareMultisigVdrExn(member.pre, {
196
+ route: MULTISIG_REV_ROUTE,
197
+ attrs: { gid: groupPrefix(group), said },
198
+ embeds: { rev: rawMessage(rev), anc: rawMessage(anc) },
199
+ }, exchangeOptions(member, options));
107
200
  }
108
201
  /** Coordinate one proposed multisig reply event. */
109
202
  export function* multisigRpyExn(group, member, rpy, options = {}) {
@@ -114,6 +207,25 @@ export function* multisigRpyExn(group, member, rpy, options = {}) {
114
207
  },
115
208
  }, rawMessage(rpy), options);
116
209
  }
210
+ /**
211
+ * Propose one exact signed v2 query authored by the group to its members.
212
+ *
213
+ * KERIpy `multisigQueryExn`: local v2 coordination profile route `/multisig/qry`
214
+ * whose `a` is `{gid, qry}` and whose single nested substream is the query stream.
215
+ */
216
+ export function* multisigQueryExn(group, member, qry, options = {}) {
217
+ return yield* prepareMultisigEventExn(member.pre, { route: MULTISIG_QRY_ROUTE, attrs: { gid: groupPrefix(group) } }, rawMessage(qry), { ...options, pvrsn: Vrsn_2_0 });
218
+ }
219
+ /**
220
+ * Share one exact v2 IPEX Grant stream, with its proofs, with group members.
221
+ *
222
+ * KERIpy `multisigIpexProofExn`: local v2 coordination profile route
223
+ * `/multisig/ipex-proof` whose `a` is `{gid, grant}` and whose single nested
224
+ * substream is the complete Grant stream, authored by or addressed to the group.
225
+ */
226
+ export function* multisigIpexProofExn(group, member, grant, options = {}) {
227
+ return yield* prepareMultisigEventExn(member.pre, { route: MULTISIG_IPEX_PROOF_ROUTE, attrs: { gid: groupPrefix(group) } }, rawMessage(grant), { ...options, pvrsn: Vrsn_2_0 });
228
+ }
117
229
  /** Wrap one business EXN, such as `/ipex/grant`, for group approval. */
118
230
  export function multisigExn(group, member, exn, options = {}) {
119
231
  return exchange(MULTISIG_EXN_ROUTE, {
@@ -137,12 +249,39 @@ export function multisigExnBody(sender, proposal, child, options = {}) {
137
249
  if (!child.said || !nestedMultisigIlks(route)?.includes(child.ilk ?? "")) {
138
250
  throw new Error("Multisig proposal requires a supported route and child kind.");
139
251
  }
140
- const field = route.slice(route.lastIndexOf("/") + 1);
252
+ if (route === MULTISIG_EXN_ROUTE && !v2IpexChild(child, attrs.gid)) {
253
+ throw new Error("Multisig IPEX requires a v2 child authored by the selected group.");
254
+ }
255
+ const coordination = v2CoordinationChild(route, child, "gid" in attrs ? attrs.gid : undefined);
256
+ if (coordination)
257
+ throw new Error(coordination);
258
+ const field = multisigChildField(route);
141
259
  const payload = route === MULTISIG_ICP_ROUTE
142
260
  ? { gid: requireString(child.pre, "group inception prefix"), ...attrs, [field]: child.said }
143
261
  : { ...attrs, [field]: child.said };
144
262
  return exchange(route, payload, { ...options, sender, pvrsn })[0];
145
263
  }
264
+ /** V2 IPEX proposals carry one exact group-authored child on a supported conversation route. */
265
+ function v2IpexChild(child, group) {
266
+ return child.pvrsn.major === 2 && child.pvrsn.minor === 0 && child.pre === group
267
+ && ["xip", "exn"].includes(child.ilk ?? "") && child.route?.startsWith("/ipex/") === true
268
+ && isIpexVerb(child.route.slice(6));
269
+ }
270
+ /**
271
+ * KERIpy core checks for the two local coordination routes: a group-authored v2
272
+ * query, or a v2 Grant authored by or addressed to the group. Returns a reason.
273
+ */
274
+ function v2CoordinationChild(route, child, group) {
275
+ const v2 = child.pvrsn.major === 2 && child.pvrsn.minor === 0;
276
+ if (route === MULTISIG_QRY_ROUTE && (!v2 || child.ilk !== "qry" || child.pre !== group)) {
277
+ return "Multisig query requires a v2 query authored by the selected group.";
278
+ }
279
+ if (route === MULTISIG_IPEX_PROOF_ROUTE
280
+ && (!v2 || child.route !== "/ipex/grant" || (child.pre !== group && child.sad?.ri !== group))) {
281
+ return "Multisig IPEX proof requires a v2 Grant for the selected group.";
282
+ }
283
+ return null;
284
+ }
146
285
  /** Signed replay hint for a legacy child whose attachments use a different genus. */
147
286
  export function multisigChildGenusAttrs(child, genus) {
148
287
  return !child.gvrsn && (genus.major !== child.pvrsn.major || genus.minor !== child.pvrsn.minor)
@@ -151,7 +290,12 @@ export function multisigChildGenusAttrs(child, genus) {
151
290
  }
152
291
  /**
153
292
  * Prepare finite child input, construct the parent and serialize its nested evidence.
154
- * The v1 pathed path retains its established encoding; v2 delegates parsing to parseBytes
293
+ * KEL (icp/rot/ixn) and reply proposals default to KERIpy's form for both v1 and v2
294
+ * groups: a v1 wrapper with a named `e` embed and pathed child attachments in the
295
+ * child's own genus. The group's version is the child KEL/reply version; the wrapper
296
+ * is only the coordination envelope. Other routes default to v2 nested wrappers, and
297
+ * an explicit `version`/`pvrsn` selects either form. The v1 pathed path retains
298
+ * its established encoding; v2 delegates parsing to parseBytes
155
299
  * once and borrows the resulting child only until nestedPayload has been fully consumed.
156
300
  * Parsed child evidence consists of ordinary values; serialization observes cancellation.
157
301
  * Sending v2 requires enclosing these bytes and the parent's signatures together.
@@ -160,7 +304,10 @@ export function* prepareMultisigEventExn(sender, proposal, wire, options = {}) {
160
304
  // Keep the route selection stable through parser suspension; attribute values remain immutable borrows.
161
305
  const captured = { ...proposal };
162
306
  const { route, attrs } = captured;
163
- const version = options.pvrsn ?? options.version ?? Vrsn_1_0;
307
+ // KERIpy `kli multisig incept|interact|rotate` and `ends add` send these routes as v1
308
+ // `e`-embed wrappers whatever the group KEL version, and `kli multisig join` reads only `e`.
309
+ const keripyEmbedRoute = KERIPY_EMBED_PROPOSAL_ROUTES.includes(route);
310
+ const version = options.pvrsn ?? options.version ?? (keripyEmbedRoute ? Vrsn_1_0 : Vrsn_2_0);
164
311
  const field = route.slice(route.lastIndexOf("/") + 1);
165
312
  if (version.major === 1) {
166
313
  const child = new SerderKERI({ raw: wire });
@@ -178,13 +325,25 @@ export function* prepareMultisigEventExn(sender, proposal, wire, options = {}) {
178
325
  const input = selector.length ? concatBytes(selector, wire) : wire;
179
326
  const frames = parseBytes(input);
180
327
  const child = frames[0];
181
- if (frames.length !== 1 || !(child.body instanceof SerderKERI) || child.nests?.length) {
328
+ if (frames.length !== 1 || !(child.body instanceof SerderKERI)
329
+ || (child.nests?.length && !nestedChildAllowed(route, child.body))) {
182
330
  throw new Error("Multisig proposal requires one supported direct child.");
183
331
  }
184
332
  const serder = multisigExnBody(sender, captured, child.body, options);
185
333
  return [serder, await collectPayload(nestedPayload(child, Vrsn_2_0), signal)];
186
334
  });
187
335
  }
336
+ /** Coordination and IPEX children may carry their own nests; KEL and reply children may not. */
337
+ function nestedChildAllowed(route, child) {
338
+ return UNREPLAYED_ROUTES.includes(route) || (route === MULTISIG_EXN_ROUTE && nestedIpexRoute(child.route ?? ""));
339
+ }
340
+ /** Proposal routes KERIpy authors as v1 `e`-embed wrappers for both v1 and v2 groups. */
341
+ const KERIPY_EMBED_PROPOSAL_ROUTES = [
342
+ MULTISIG_ICP_ROUTE,
343
+ MULTISIG_ROT_ROUTE,
344
+ MULTISIG_IXN_ROUTE,
345
+ MULTISIG_RPY_ROUTE,
346
+ ];
188
347
  /** Route handler that forwards accepted multisig EXNs to the `Multiplexor`. */
189
348
  export class MultisigNotificationHandler {
190
349
  /** Bind one registered route to its shared approval coordinator. */
@@ -204,22 +363,42 @@ export class MultisigNotificationHandler {
204
363
  this.resource = resource;
205
364
  this.mux = mux;
206
365
  }
207
- /** Only the four frozen-reference v2 routes have child consumers. */
366
+ /** Only supported nested multisig routes have child consumers. */
208
367
  get acceptsNests() {
209
368
  return nestedMultisigIlks(this.resource) !== null;
210
369
  }
211
- /** Authenticate the signed child relationship before exchange evidence is published. */
370
+ /**
371
+ * Authenticate the signed child relationship before exchange evidence is published.
372
+ * A child handler registered with `Multiplexor.addChildHandler` for this route and
373
+ * the nested child's route owns verification instead.
374
+ */
212
375
  verify(args) {
376
+ const delegate = this.mux.childHandlerFor(args.serder, args.nests);
377
+ if (delegate)
378
+ return delegate.verify ? delegate.verify(args) : false;
213
379
  return args.serder.route === this.resource && this.mux.verify(args.serder, args.nests);
214
380
  }
215
381
  /** Borrow persisted children until approval replay and coordination indexing finish. */
216
382
  *handle(args) {
383
+ const delegate = this.mux.childHandlerFor(args.serder, args.nests);
384
+ if (delegate) {
385
+ const handled = delegate.handle(args);
386
+ if (handled)
387
+ yield* handled;
388
+ return;
389
+ }
217
390
  yield* this.mux.add(args.serder, args.nests);
218
391
  }
219
392
  }
220
393
  /** Register the KERIpy multisig route family with one exchanger. */
221
394
  export function loadMultisigHandlers(hby, exchanger, options = {}) {
222
- const mux = options.mux ?? new Multiplexor(hby, { notifier: options.notifier ?? null });
395
+ const mux = options.mux
396
+ ?? new Multiplexor(hby, {
397
+ notifier: options.notifier ?? null,
398
+ exchanger,
399
+ registry: options.registry ?? undefined,
400
+ messageKevery: options.messageKevery,
401
+ });
223
402
  for (const route of MULTISIG_ROUTES) {
224
403
  exchanger.addHandler(new MultisigNotificationHandler(route, mux));
225
404
  }
@@ -233,7 +412,7 @@ export function loadMultisigHandlers(hby, exchanger, options = {}) {
233
412
  */
234
413
  export class Multiplexor {
235
414
  /** Reuse durable group membership and separate child processors without sharing parent proof state. */
236
- constructor(hby, { notifier } = {}) {
415
+ constructor(hby, { notifier, exchanger, registry, messageKevery } = {}) {
237
416
  Object.defineProperty(this, "hby", {
238
417
  enumerable: true,
239
418
  configurable: true,
@@ -265,15 +444,89 @@ export class Multiplexor {
265
444
  writable: true,
266
445
  value: void 0
267
446
  });
447
+ Object.defineProperty(this, "exchanger", {
448
+ enumerable: true,
449
+ configurable: true,
450
+ writable: true,
451
+ value: void 0
452
+ });
453
+ Object.defineProperty(this, "registry", {
454
+ enumerable: true,
455
+ configurable: true,
456
+ writable: true,
457
+ value: void 0
458
+ });
459
+ Object.defineProperty(this, "messageKevery", {
460
+ enumerable: true,
461
+ configurable: true,
462
+ writable: true,
463
+ value: void 0
464
+ });
465
+ /** Owners sharing one registered wrapper route, keyed by wrapper and nested child route. */
466
+ Object.defineProperty(this, "childHandlers", {
467
+ enumerable: true,
468
+ configurable: true,
469
+ writable: true,
470
+ value: new Map()
471
+ });
268
472
  this.hby = hby;
269
473
  this.notifier = notifier ?? null;
474
+ this.exchanger = exchanger;
475
+ this.registry = registry;
270
476
  const router = new Router();
271
477
  this.rvy = new Revery(hby.db, { rtr: router });
272
478
  new BasicReplyRouteHandler(this.rvy).registerReplyRoutes(router);
273
479
  this.kvy = new Kevery(hby.db, { lax: false, local: false, rvy: this.rvy });
480
+ this.messageKevery = messageKevery ?? this.kvy;
481
+ if (this.messageKevery.db !== hby.db) {
482
+ throw new TypeError("Multisig message intake must share the group evidence store.");
483
+ }
274
484
  this.kvy.registerReplyRoutes(router);
275
485
  this.replay = new Exchanger(hby);
276
486
  }
487
+ /**
488
+ * Delegate one wrapper route's v2 children with route `child` to `handler`.
489
+ *
490
+ * KERIpy `Multiplexor.addChildHandler`: several owners share one registered
491
+ * `/multisig/*` Exchanger route without replacing `Exchanger.routes` entries.
492
+ * The delegate's `verify` and `handle` own all validation, indexing and
493
+ * notification for those children; the Multiplexor performs none of them.
494
+ * Registering a key twice is refused.
495
+ */
496
+ addChildHandler(route, child, handler) {
497
+ const key = childHandlerKey(route, child);
498
+ if (this.childHandlers.has(key)) {
499
+ throw new ValidationError(`child handler for ${route} ${child} already registered`);
500
+ }
501
+ this.childHandlers.set(key, handler);
502
+ }
503
+ /**
504
+ * Release a finite owner's delegation. A TypeScript runtime can outlive one
505
+ * command phase, unlike KERIpy's per-process CLI owners; the shared route stays.
506
+ */
507
+ removeChildHandler(route, child, handler) {
508
+ const key = childHandlerKey(route, child);
509
+ if (this.childHandlers.get(key) === handler)
510
+ this.childHandlers.delete(key);
511
+ }
512
+ /** Return the delegate for this v2 wrapper's single child route, if any. */
513
+ childHandlerFor(serder, nests = []) {
514
+ if (!this.childHandlers.size || serder.pvrsn.major !== 2 || nests.length !== 1)
515
+ return null;
516
+ const child = nests[0].body;
517
+ const route = child instanceof SerderKERI ? child.route : undefined;
518
+ return route ? this.childHandlers.get(childHandlerKey(serder.route ?? "", route)) ?? null : null;
519
+ }
520
+ /** V2 child replay borrows the caller's configured IPEX, registry, reply and KRAM owners. */
521
+ v2IpexOwners(child) {
522
+ const kvy = this.messageKevery, rvy = kvy.rvy, exc = this.exchanger;
523
+ const handler = exc?.handlerFor(child);
524
+ return !!this.registry && this.registry.db === this.hby.db && exc?.hby === this.hby
525
+ && rvy?.db === this.hby.db && kvy.kramer?.db === this.hby.db
526
+ && exc.cues === kvy.cues && rvy.cues === kvy.cues
527
+ && handler instanceof IpexV2Handler && handler.hby === this.hby
528
+ && handler.registry === this.registry.store;
529
+ }
277
530
  /** Index an authenticated proposal; child acceptance still requires local approval and its own proofs. */
278
531
  *add(serder, nests = []) {
279
532
  const inspection = this.inspect(serder, nests);
@@ -285,11 +538,40 @@ export class Multiplexor {
285
538
  };
286
539
  }
287
540
  const { said, embeddedSaid, route, sender } = inspection;
288
- const existing = this.hby.db.meids.get([embeddedSaid]);
541
+ const v2Ipex = serder.pvrsn.major === 2 && route === MULTISIG_EXN_ROUTE;
542
+ if (v2Ipex) {
543
+ if (!this.exchanger?.verifyAccepted(said, route)) {
544
+ return { kind: "reject", said, reason: "V2 IPEX approval requires an authenticated wrapper." };
545
+ }
546
+ // The authenticated local wrapper carries this member's actual verified child contribution.
547
+ if (this.isLocalHab(sender))
548
+ yield* this.processApproved(nests);
549
+ }
550
+ const { existing, submitters } = this.hby.db.env.transactionSync(() => {
551
+ const indexed = this.hby.db.meids.get([embeddedSaid]);
552
+ const existing = isV2RegistryRoute(route) || v2Ipex
553
+ ? indexed.filter(diger => {
554
+ const retained = this.hby.db.exns.get([diger.qb64]);
555
+ return retained && (v2Ipex
556
+ ? retained.pvrsn.major === 2 && retained.route === route
557
+ && isRecord(retained.sad?.a) && isRecord(serder.sad?.a)
558
+ && retained.sad.a.gid === serder.sad.a.gid && retained.sad.a.exn === embeddedSaid
559
+ : sameRegistryProposal(retained, serder))
560
+ && this.exchanger?.verifyAccepted(diger.qb64, route);
561
+ })
562
+ : indexed;
563
+ const submitters = isV2RegistryRoute(route) || v2Ipex
564
+ ? existing.map(diger => new Prefixer({ qb64: this.hby.db.exns.get([diger.qb64]).pre }))
565
+ : this.hby.db.maids.get([embeddedSaid]);
566
+ // Approval is the authenticated wrapper, not completion of its asynchronous child replay.
567
+ this.hby.db.meids.add([embeddedSaid], new Saider({ qb64: said }));
568
+ this.hby.db.maids.add([embeddedSaid], new Prefixer({ qb64: sender }));
569
+ return { existing, submitters };
570
+ });
289
571
  const firstSubmission = existing.length === 0;
290
- const submitters = this.hby.db.maids.get([embeddedSaid]);
572
+ const unreplayed = UNREPLAYED_ROUTES.includes(route);
291
573
  if (!this.isLocalHab(sender)) {
292
- if (submitters.some((submitter) => this.isLocalHab(submitter.qb64))) {
574
+ if (!unreplayed && submitters.some((submitter) => this.isLocalHab(submitter.qb64))) {
293
575
  // The parent is durable, but approval never lends its signatures to the child.
294
576
  if (serder.pvrsn.major === 1)
295
577
  yield* this.processLegacyApproved(serder);
@@ -301,13 +583,11 @@ export class Multiplexor {
301
583
  this.notifier?.add(firstSubmission ? { r: route, d: said } : { r: route, d: said, e: embeddedSaid });
302
584
  }
303
585
  }
304
- else if (submitters.some((submitter) => !this.isLocalHab(submitter.qb64))) {
586
+ else if (!unreplayed && submitters.some((submitter) => !this.isLocalHab(submitter.qb64))) {
305
587
  // Remote evidence can precede approval. Replay one durable wrapper at a time after reopen.
306
588
  for (const prior of existing)
307
589
  yield* call(() => this.replayApproved(prior.qb64));
308
590
  }
309
- this.hby.db.meids.add([embeddedSaid], new Saider({ qb64: said }));
310
- this.hby.db.maids.add([embeddedSaid], new Prefixer({ qb64: sender }));
311
591
  const duplicate = existing.some((saider) => saider.qb64 === said);
312
592
  return {
313
593
  kind: duplicate ? "duplicate" : "accept",
@@ -324,12 +604,17 @@ export class Multiplexor {
324
604
  /** Process only the approved direct child; arbitrary descendants remain guarded. */
325
605
  *processApproved(nests) {
326
606
  for (const child of nests) {
327
- yield* dispatchEnvelope(envelopeFromFrame(child, true), this.rvy, this.kvy);
607
+ const v2Ipex = child.body instanceof SerderKERI && child.body.pvrsn.major === 2
608
+ && child.body.route?.startsWith("/ipex/");
609
+ if (v2Ipex && !this.v2IpexOwners(child.body)) {
610
+ throw new Error("V2 IPEX replay owners are unavailable.");
611
+ }
612
+ yield* dispatchEnvelope(envelopeFromFrame(child, true), v2Ipex ? this.messageKevery.rvy : this.rvy, v2Ipex ? this.messageKevery : this.kvy, this.exchanger, undefined, undefined, undefined, this.messageKevery, this.registry);
328
613
  }
329
614
  }
330
615
  /** Replay v1 children with their own stored proofs and signed attachment genus, as KERIpy does. */
331
616
  *processLegacyApproved(wrapper) {
332
- const embeds = embeddedSection(wrapper.ked);
617
+ const embeds = multisigEmbeddedSection(wrapper.ked);
333
618
  for (const label of Object.keys(embeds ?? {})) {
334
619
  const sad = embeds?.[label];
335
620
  if (!isRecord(sad)) {
@@ -338,7 +623,7 @@ export class Multiplexor {
338
623
  const event = new Serder({ sad });
339
624
  const { attachment, genus } = multisigChildEvidence(this.hby, wrapper, label, event);
340
625
  for (const frame of parseBytes(concatBytes(Counter.makeGVC(genus), event.raw, attachment))) {
341
- yield* dispatchEnvelope(envelopeFromFrame(frame, true), this.rvy, this.kvy);
626
+ yield* dispatchEnvelope(envelopeFromFrame(frame, true), this.rvy, this.kvy, this.exchanger, undefined, undefined, undefined, this.messageKevery, this.registry);
342
627
  }
343
628
  }
344
629
  }
@@ -408,17 +693,25 @@ export class Multiplexor {
408
693
  }
409
694
  const sender = serder.pre ?? "";
410
695
  const route = serder.route ?? "";
411
- const payload = payloadSection(ked);
412
696
  let embeddedSaid;
413
697
  if (serder.pvrsn.major === 1) {
414
- const embed = embeddedSection(ked);
415
- if (!embed || typeof embed.d !== "string" || !embed.d || nests.length) {
698
+ const commitment = multisigPayloadSaid(serder);
699
+ if (!commitment || nests.length) {
416
700
  return { ok: false, said, reason: "Missing multisig embedded SAID or unexpected v1 nesting." };
417
701
  }
418
702
  if (childGenusHint(ked.a) === null) {
419
703
  return { ok: false, said, reason: "Invalid multisig child attachment genus." };
420
704
  }
421
- embeddedSaid = embed.d;
705
+ embeddedSaid = commitment;
706
+ }
707
+ else if (isV2RegistryRoute(route)) {
708
+ const children = acdcV2RegistryProposal(serder, nests, this.registry?.store ?? null);
709
+ if (!children)
710
+ return { ok: false, said, reason: "Invalid ACDC v2 registry/anchor proposal." };
711
+ if (!groupSigningMembers(this.hby, children.anchor.pre).includes(sender)) {
712
+ return { ok: false, said, reason: "Registry proposal sender is not a current group signing member." };
713
+ }
714
+ embeddedSaid = children.anchor.said;
422
715
  }
423
716
  else {
424
717
  const allowed = nestedMultisigIlks(route);
@@ -426,9 +719,10 @@ export class Multiplexor {
426
719
  return { ok: false, said, reason: "Unsupported nested multisig route or child count." };
427
720
  }
428
721
  const child = nests[0];
429
- const signed = payload[route.slice(route.lastIndexOf("/") + 1)];
722
+ const signed = multisigPayloadSaid(serder);
430
723
  if (typeof signed !== "string" || !child.body.said || !allowed.includes(child.body.ilk ?? "")
431
- || !(child.body instanceof SerderKERI) || child.nests?.length) {
724
+ || !(child.body instanceof SerderKERI)
725
+ || (route !== MULTISIG_EXN_ROUTE && !UNREPLAYED_ROUTES.includes(route) && child.nests?.length)) {
432
726
  return { ok: false, said, reason: "Invalid multisig child kind, descendants, or signed SAID." };
433
727
  }
434
728
  try {
@@ -439,6 +733,30 @@ export class Multiplexor {
439
733
  catch {
440
734
  return { ok: false, said, reason: "Invalid multisig child commitment." };
441
735
  }
736
+ if (route === MULTISIG_EXN_ROUTE) {
737
+ const attrs = serder.sad?.a;
738
+ if (serder.ilk !== "exn" || serder.pvrsn.minor !== 0
739
+ || !isRecord(attrs) || Object.keys(attrs).sort().join(",") !== "exn,gid"
740
+ || (child.nests?.length && !nestedIpexRoute(child.body.route ?? ""))
741
+ || !v2IpexChild(child.body, attrs.gid) || !this.v2IpexOwners(child.body)
742
+ || !groupSigningMembers(this.hby, child.body.pre).includes(sender)) {
743
+ return { ok: false, said, reason: "Invalid v2 IPEX group, member, route or replay owners." };
744
+ }
745
+ if (this.isLocalHab(sender)
746
+ && !localIpexContribution(this.hby.db, sender, child.body, envelopeFromFrame(child).tsgs)) {
747
+ return { ok: false, said, reason: "Local IPEX approval has no verified member contribution." };
748
+ }
749
+ }
750
+ if (UNREPLAYED_ROUTES.includes(route)) {
751
+ const attrs = isRecord(serder.sad?.a) ? serder.sad.a : {};
752
+ const coordination = v2CoordinationChild(route, child.body, attrs.gid);
753
+ if (coordination)
754
+ return { ok: false, said, reason: coordination };
755
+ if (typeof attrs.gid !== "string" || !this.isLocalHab(attrs.gid)
756
+ || !groupSigningMembers(this.hby, attrs.gid).includes(sender)) {
757
+ return { ok: false, said, reason: "Proposal sender is not a group signing member." };
758
+ }
759
+ }
442
760
  embeddedSaid = signed;
443
761
  }
444
762
  const request = multisigMembership(route, ked.a);
@@ -489,13 +807,13 @@ export class Multiplexor {
489
807
  }
490
808
  /** Extract the embedded business EXN SAD from a `/multisig/exn` wrapper. */
491
809
  export function embeddedBusinessExnSAD(serder) {
492
- const embed = serder.ked ? embeddedSection(serder.ked) : null;
810
+ const embed = serder.ked ? multisigEmbeddedSection(serder.ked) : null;
493
811
  const exn = embed && isRecord(embed["exn"]) ? embed["exn"] : null;
494
812
  return exn ? { ...exn } : null;
495
813
  }
496
814
  /** Read one stored v1 child at the wire boundary, without authenticating its independent proof. */
497
815
  export function multisigChild(hby, wrapper, label) {
498
- const sad = embeddedSection(wrapper.ked ?? {})?.[label];
816
+ const sad = multisigEmbeddedSection(wrapper.ked ?? {})?.[label];
499
817
  if (!isRecord(sad)) {
500
818
  return null;
501
819
  }
@@ -503,7 +821,7 @@ export function multisigChild(hby, wrapper, label) {
503
821
  return { event, ...multisigChildEvidence(hby, wrapper, label, event) };
504
822
  }
505
823
  /** Resolve the stored proof and signed genus independently of the child protocol. */
506
- function multisigChildEvidence(hby, wrapper, label, child) {
824
+ export function multisigChildEvidence(hby, wrapper, label, child) {
507
825
  const attachment = multisigPathedAttachment(hby, wrapper.said, label);
508
826
  const hint = attachment.length ? childGenusHint(wrapper.ked?.a) : undefined;
509
827
  return { attachment, genus: child.gvrsn ?? hint ?? child.pvrsn };
@@ -555,13 +873,6 @@ function exchangeOptions(member, options) {
555
873
  kind: options.kind,
556
874
  };
557
875
  }
558
- function embeddedSection(ked) {
559
- if (isRecord(ked.e) && typeof ked.e.d === "string") {
560
- return ked.e;
561
- }
562
- const attrs = payloadSection(ked);
563
- return isRecord(attrs.e) && typeof attrs.e.d === "string" ? attrs.e : null;
564
- }
565
876
  /** Decode the signed legacy child-genus hint before it can select attachment parsing. */
566
877
  function childGenusHint(attrs) {
567
878
  if (!isRecord(attrs) || attrs.cgvrsn === undefined)
@@ -599,6 +910,9 @@ function memberPrefixes(smids, rmids) {
599
910
  const strings = (value) => Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
600
911
  return [...strings(smids), ...strings(rmids)];
601
912
  }
913
+ function childHandlerKey(route, child) {
914
+ return `${route}\u0000${child}`;
915
+ }
602
916
  function groupPrefix(group) {
603
917
  return typeof group === "string" ? group : group.pre;
604
918
  }