keri-ts 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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} +41 -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
@@ -1,11 +1,15 @@
1
- import { TopicsRecord } from "../core/records.js";
2
- import { Roles } from "../core/roles.js";
3
- import { createMailboxer } from "../db/mailboxing.js";
1
+ import { TopicsRecord } from "../../core/records.js";
2
+ import { Roles } from "../../core/roles.js";
3
+ import { createMailboxer } from "../../db/mailbox/mailboxing.js";
4
4
  /**
5
5
  * Derive mailbox open options from one existing habery.
6
6
  *
7
7
  * This is the supported bridge from core habery state to the additive
8
8
  * provider-side mailbox store lifecycle.
9
+ *
10
+ * @param hby Borrowed local identities and accepted-state stores.
11
+ * @param options Explicit store options overriding the Habery-derived name/path/temp/read-only settings.
12
+ * @returns Derived open settings.
9
13
  */
10
14
  export function mailboxerOptionsForHabery(hby, options = {}) {
11
15
  return {
@@ -25,6 +29,10 @@ export function mailboxerOptionsForHabery(hby, options = {}) {
25
29
  * Ownership rule:
26
30
  * - this helper only derives open settings from habery state
27
31
  * - the caller that opens the mailboxer owns its lifecycle
32
+ *
33
+ * @param hby Borrowed local identities and accepted-state stores.
34
+ * @param options Explicit store options overriding the Habery-derived name/path/temp/read-only settings.
35
+ * @returns Provider sidecar whose acquisition/lifetime belongs to the caller scope.
28
36
  */
29
37
  export function* openMailboxerForHabery(hby, options = {}) {
30
38
  return yield* createMailboxer(mailboxerOptionsForHabery(hby, options));
@@ -34,6 +42,10 @@ export function* openMailboxerForHabery(hby, options = {}) {
34
42
  *
35
43
  * Topic buckets are normalized as `pre/topic`, with `topic` already carrying
36
44
  * the leading slash when it is a protocol mailbox topic like `/challenge`.
45
+ *
46
+ * @param pre AID whose mailbox or accepted state is addressed.
47
+ * @param topic Protocol mailbox topic; leading slash is normalized where required.
48
+ * @returns Storage key joining the AID and one slash-prefixed topic.
37
49
  */
38
50
  export function mailboxTopicKey(pre, topic) {
39
51
  return topic.startsWith("/") ? `${pre}${topic}` : `${pre}/${topic}`;
@@ -43,6 +55,12 @@ export function mailboxTopicKey(pre, topic) {
43
55
  *
44
56
  * Cursor records store the last seen ordinal, while mailbox queries ask for
45
57
  * the next ordinal wanted.
58
+ *
59
+ * @param hby Borrowed local identities and accepted-state stores.
60
+ * @param pre AID whose mailbox or accepted state is addressed.
61
+ * @param witness Remote endpoint AID used in the durable cursor key.
62
+ * @param topics Topics requested by the poller.
63
+ * @returns Next-wanted ordinal map, derived from last-consumed rows plus one.
46
64
  */
47
65
  export function mailboxQueryTopics(hby, pre, witness, topics) {
48
66
  const record = mailboxRemoteCursorRecord(hby, pre, witness);
@@ -62,6 +80,12 @@ export function mailboxQueryTopics(hby, pre, witness, topics) {
62
80
  *
63
81
  * These cursors live in `Baser.tops` because they describe the consumer's
64
82
  * remote poll progress, not the provider's stored inbox contents.
83
+ *
84
+ * @param hby Borrowed local identities and accepted-state stores.
85
+ * @param pre AID whose mailbox or accepted state is addressed.
86
+ * @param witness Remote endpoint AID.
87
+ * @param topic Protocol mailbox topic; leading slash is normalized where required.
88
+ * @param idx Last successfully consumed provider ordinal.
65
89
  */
66
90
  export function updateMailboxRemoteCursor(hby, pre, witness, topic, idx) {
67
91
  const record = mailboxRemoteCursorRecord(hby, pre, witness);
@@ -69,66 +93,43 @@ export function updateMailboxRemoteCursor(hby, pre, witness, topic, idx) {
69
93
  hby.db.tops.pin([pre, witness], record);
70
94
  }
71
95
  /**
72
- * Return the remote mailbox or witness endpoints a local habitat should poll.
96
+ * Enumerate authorized mailbox providers and the subject's current KEL witnesses.
73
97
  *
74
- * KERIpy parity rule:
75
- * - mailbox role endpoints take precedence when authorized
76
- * - otherwise poll every eligible witness mailbox endpoint
77
- * - SSE uses HTTP(S) only; a TCP-only mailbox keeps role precedence while awaiting HTTP
98
+ * Both sets are polled, as in KERIpy MailboxDirector. A provider in both roles
99
+ * shares one history and cursor, so it gets one worker. Locally controlled AIDs
100
+ * remain eligible for HTTP polling; provider storage is never scanned directly.
101
+ * Missing HTTP(S) locations produce no poll target until a location is available.
78
102
  *
79
- * The result is intentionally already flattened to one preferred URL per
80
- * endpoint identifier so runtime pollers can stay focused on mailbox protocol
81
- * work instead of URL selection policy.
103
+ * @param hab Mailbox subject habitat supplying accepted roles and current witnesses.
104
+ * @returns One HTTPS-preferred HTTP target per provider AID, with stable worker keys.
82
105
  */
83
- export function mailboxPollEndpoints(hby, hab) {
84
- const ends = hab.endsFor(hab.pre);
85
- const isHttp = (endpoint) => ["https:", "http:"].includes(new URL(endpoint.url).protocol);
86
- const mailbox = flattenRoleUrls(ends[Roles.mailbox])
87
- .filter((endpoint) => !hby.db.prefixes.has(endpoint.eid));
88
- // Keep mailbox precedence before filtering transport; TCP delivery is a different caller policy.
89
- if (mailbox.length > 0) {
90
- return mailbox.filter(isHttp).map((endpoint) => ({
91
- key: `${Roles.mailbox}:${endpoint.eid}:${endpoint.url}`,
92
- eid: endpoint.eid,
93
- url: endpoint.url,
94
- }));
106
+ export function mailboxPollEndpoints(hab) {
107
+ const eids = new Set();
108
+ for (const [keys, end] of hab.db.ends.getTopItemIter([hab.pre, Roles.mailbox], { topive: true })) {
109
+ if (end.allowed && keys[2])
110
+ eids.add(keys[2]);
95
111
  }
96
- // Query replies are stored at the witness that answered; these mailboxes are not interchangeable.
97
- return flattenRoleUrls(ends[Roles.witness])
98
- .filter((endpoint) => !hby.db.prefixes.has(endpoint.eid) && isHttp(endpoint))
99
- .sort((left, right) => left.eid.localeCompare(right.eid))
100
- .map((endpoint) => ({
101
- key: `${Roles.witness}:${endpoint.eid}:${endpoint.url}`,
102
- eid: endpoint.eid,
103
- url: endpoint.url,
104
- }));
105
- }
106
- /**
107
- * Return the currently authorized mailbox endpoints for one remote recipient.
108
- *
109
- * `Poster` treats this as the mailbox-first broadcast target set.
110
- */
111
- export function mailboxDeliveryEndpoints(hab, recipient) {
112
- return flattenRoleUrls(hab.endsFor(recipient)[Roles.mailbox]);
113
- }
114
- /**
115
- * Return the direct controller and agent endpoints for one remote recipient.
116
- *
117
- * These are fallback transport targets only when no mailbox endpoints are
118
- * configured or when the caller explicitly forces direct delivery.
119
- */
120
- export function directDeliveryEndpoints(hab, recipient) {
121
- const ends = hab.endsFor(recipient);
122
- return [
123
- ...flattenRoleUrls(ends[Roles.controller]),
124
- ...flattenRoleUrls(ends[Roles.agent]),
125
- ];
112
+ for (const eid of hab.kever?.wits ?? [])
113
+ eids.add(eid);
114
+ const endpoints = [];
115
+ for (const eid of eids) {
116
+ const urls = hab.fetchUrls(eid);
117
+ const url = urls.https ?? urls.http;
118
+ if (url)
119
+ endpoints.push({ key: `${eid}:${url}`, eid, url });
120
+ }
121
+ return endpoints;
126
122
  }
127
123
  /**
128
124
  * Read one endpoint's currently stored URLs directly from shared DB state.
129
125
  *
130
126
  * This stays DB-oriented on purpose so CLI, server, and forwarding code can
131
127
  * inspect authoritative location state without carrying a second cache.
128
+ *
129
+ * @param hby Borrowed local identities and accepted-state stores.
130
+ * @param eid Endpoint AID whose accepted location replies are loaded.
131
+ * @param scheme Optional scheme filter; omission returns all recorded schemes.
132
+ * @returns Scheme-to-URL map from accepted location state.
132
133
  */
133
134
  export function fetchEndpointUrls(hby, eid, scheme = "") {
134
135
  const urls = {};
@@ -144,7 +145,12 @@ export function fetchEndpointUrls(hby, eid, scheme = "") {
144
145
  }
145
146
  return urls;
146
147
  }
147
- /** Normalize one optional hosted-prefix filter into a membership set. */
148
+ /**
149
+ * Normalize one optional hosted-prefix filter into a membership set.
150
+ *
151
+ * @param eids Optional allowed hosted AID iterable; omission leaves filtering disabled.
152
+ * @returns Membership set or null when no filter was supplied.
153
+ */
148
154
  function hostedPrefixFilter(eids) {
149
155
  if (!eids) {
150
156
  return null;
@@ -163,6 +169,12 @@ function hostedPrefixFilter(eids) {
163
169
  * - optionally append a resource suffix like `/mailboxes`
164
170
  * - when more than one local endpoint matches, the caller must treat that as
165
171
  * ambiguous instead of guessing
172
+ *
173
+ * @param hby Borrowed local identities and accepted-state stores.
174
+ * @param pathname Incoming URL pathname to compare against accepted endpoint base paths.
175
+ * @param resourceSuffix Protocol resource suffix sought beneath the hosted base path.
176
+ * @param eids Optional explicit hosted-AID filter; do not infer host eligibility from all local identities.
177
+ * @returns Matching hosted endpoint projection; ambiguity follows this helper's documented selection policy.
166
178
  */
167
179
  export function hostedEndpointMatches(hby, pathname, resourceSuffix = "", eids) {
168
180
  const target = normalizePath(pathname);
@@ -189,6 +201,12 @@ export function hostedEndpointMatches(hby, pathname, resourceSuffix = "", eids)
189
201
  *
190
202
  * Callers that need ambiguity details should use `hostedEndpointPathMatches()`
191
203
  * directly.
204
+ *
205
+ * @param hby Borrowed local identities and accepted-state stores.
206
+ * @param pathname Incoming URL pathname to compare against accepted endpoint base paths.
207
+ * @param resourceSuffix Protocol resource suffix sought beneath the hosted base path.
208
+ * @param eids Optional explicit hosted-AID filter; do not infer host eligibility from all local identities.
209
+ * @returns Matching hosted endpoint projection; ambiguity follows this helper's documented selection policy.
192
210
  */
193
211
  export function hostedEndpointForPath(hby, pathname, resourceSuffix = "", eids) {
194
212
  const matches = hostedEndpointMatches(hby, pathname, resourceSuffix, eids);
@@ -203,6 +221,11 @@ export function hostedEndpointForPath(hby, pathname, resourceSuffix = "", eids)
203
221
  * - non-root endpoints match their exact base path or any subpath beneath it
204
222
  * - callers should prefer the longest matching base path and treat ties as
205
223
  * ambiguous instead of guessing
224
+ *
225
+ * @param hby Borrowed local identities and accepted-state stores.
226
+ * @param pathname Incoming URL pathname to compare against accepted endpoint base paths.
227
+ * @param eids Optional explicit hosted-AID filter; do not infer host eligibility from all local identities.
228
+ * @returns Matching hosted endpoint projection; ambiguity follows this helper's documented selection policy.
206
229
  */
207
230
  export function hostedEndpointPathMatches(hby, pathname, eids) {
208
231
  const target = normalizePath(pathname);
@@ -235,6 +258,12 @@ export function hostedEndpointPathMatches(hby, pathname, eids) {
235
258
  * hit?" Keeping it here means `protocol-handler.ts` can reason in terms of
236
259
  * explicit route matches while `server.ts` stays out of endpoint-selection
237
260
  * policy entirely.
261
+ *
262
+ * @param hby Borrowed local identities and accepted-state stores.
263
+ * @param pathname Incoming URL pathname to compare against accepted endpoint base paths.
264
+ * @param resourceSuffix Protocol resource suffix sought beneath the hosted base path.
265
+ * @param eids Optional explicit hosted-AID filter; do not infer host eligibility from all local identities.
266
+ * @returns Matching hosted endpoint projection; ambiguity follows this helper's documented selection policy.
238
267
  */
239
268
  export function resolveHostedEndpointPath(hby, pathname, resourceSuffix = "", eids) {
240
269
  const matches = hostedEndpointPathMatches(hby, pathname, eids)
@@ -261,6 +290,9 @@ export function resolveHostedEndpointPath(hby, pathname, resourceSuffix = "", ei
261
290
  *
262
291
  * This converts stored end-role location shape into the transport-ready tuples
263
292
  * used by forwarding and polling logic.
293
+ *
294
+ * @param roleUrls Accepted endpoint-AID to scheme/URL map for one role, possibly absent.
295
+ * @returns All endpoint/preferred-URL pairs.
264
296
  */
265
297
  export function flattenRoleUrls(roleUrls) {
266
298
  if (!roleUrls) {
@@ -275,30 +307,26 @@ export function flattenRoleUrls(roleUrls) {
275
307
  }
276
308
  return flattened;
277
309
  }
278
- /**
279
- * Return the deterministic first preferred endpoint from one role map.
280
- *
281
- * Forwarding fallback chooses one witness deterministically; mailbox polling
282
- * enumerates its eligible witnesses separately.
283
- */
284
- export function firstSortedEndpoint(roleUrls) {
285
- const flattened = flattenRoleUrls(roleUrls).sort((left, right) => left.eid.localeCompare(right.eid));
286
- return flattened[0] ?? null;
287
- }
288
310
  /**
289
311
  * Return the preferred URL for one endpoint location set.
290
312
  *
291
313
  * HTTPS wins when present because mailbox and admin URLs are externally
292
314
  * advertised endpoints.
315
+ *
316
+ * @param urls Accepted scheme-to-URL map for one endpoint.
317
+ * @returns HTTPS, then HTTP, then TCP; null when no supported location is recorded.
293
318
  */
294
319
  export function preferredUrl(urls) {
295
- return urls.https ?? urls.http ?? Object.values(urls)[0] ?? null;
320
+ return urls.https ?? urls.http ?? urls.tcp ?? null;
296
321
  }
297
322
  /**
298
323
  * Extract the normalized base path from one endpoint URL.
299
324
  *
300
325
  * Mailbox and OOBI hosts serve routes relative to this base path, not only
301
326
  * from `/`.
327
+ *
328
+ * @param url Advertised endpoint URL; its pathname defines hosted routing.
329
+ * @returns Normalized base pathname.
302
330
  */
303
331
  export function endpointBasePath(url) {
304
332
  try {
@@ -308,13 +336,25 @@ export function endpointBasePath(url) {
308
336
  return "/";
309
337
  }
310
338
  }
339
+ /**
340
+ * Join an endpoint base path with a protocol resource suffix.
341
+ *
342
+ * @param basePath Hosted endpoint base pathname.
343
+ * @param suffix Resource suffix to append; empty keeps the normalized base.
344
+ * @returns Normalized combined pathname.
345
+ */
311
346
  function joinBasePath(basePath, suffix) {
312
347
  if (suffix.length === 0) {
313
348
  return normalizePath(basePath);
314
349
  }
315
350
  return normalizePath(`${normalizePath(basePath) === "/" ? "" : normalizePath(basePath)}${suffix}`);
316
351
  }
317
- /** Normalize hosted endpoint paths into the comparison form used everywhere. */
352
+ /**
353
+ * Normalize hosted endpoint paths into the comparison form used everywhere.
354
+ *
355
+ * @param pathname Path to normalize for hosted-route comparison.
356
+ * @returns Comparison pathname with the existing leading/trailing slash normalization.
357
+ */
318
358
  function normalizePath(pathname) {
319
359
  const trimmed = pathname.trim();
320
360
  if (trimmed.length === 0 || trimmed === "/") {
@@ -328,6 +368,10 @@ function normalizePath(pathname) {
328
368
  *
329
369
  * Root-hosted endpoints match every absolute path; non-root endpoints match
330
370
  * only their exact base path or descendants beneath it.
371
+ *
372
+ * @param basePath Normalized hosted endpoint base.
373
+ * @param pathname Incoming request path.
374
+ * @returns Slash-prefixed relative path, or null when outside the base.
331
375
  */
332
376
  function relativeHostedPath(basePath, pathname) {
333
377
  if (basePath === "/") {
@@ -341,7 +385,14 @@ function relativeHostedPath(basePath, pathname) {
341
385
  }
342
386
  return normalizePath(pathname.slice(basePath.length));
343
387
  }
344
- /** Load or create the durable remote mailbox cursor record for one endpoint. */
388
+ /**
389
+ * Load or create the durable remote mailbox cursor record for one endpoint.
390
+ *
391
+ * @param hby Borrowed local identities and accepted-state stores.
392
+ * @param pre AID whose mailbox or accepted state is addressed.
393
+ * @param witness Remote endpoint AID used with pre as the cursor key.
394
+ * @returns Existing cursor record or a new empty record; the caller persists updates.
395
+ */
345
396
  function mailboxRemoteCursorRecord(hby, pre, witness) {
346
397
  return hby.db.tops.get([pre, witness]) ?? new TopicsRecord({ topics: {} });
347
398
  }
@@ -0,0 +1,54 @@
1
+ /** Map application routes to mailbox topics: queries use slash form; /fwd modifiers use bare form. */
2
+ import { CREDENTIAL_MAILBOX_TOPIC, DELEGATE_MAILBOX_TOPIC, OOBI_MAILBOX_TOPIC, } from "../../core/mailbox/mailbox-topics.js";
3
+ /**
4
+ * Derive the default mailbox topic from the first non-empty route segment.
5
+ *
6
+ * @param route Exchange route whose first nonempty segment chooses the mailbox topic.
7
+ * @returns Derived topic under the existing route mapping.
8
+ */
9
+ function defaultTopicForRoute(route) {
10
+ if (route.startsWith("/delegate")) {
11
+ return DELEGATE_MAILBOX_TOPIC;
12
+ }
13
+ if (route === "/oobis") {
14
+ return OOBI_MAILBOX_TOPIC;
15
+ }
16
+ if (route.startsWith("/ipex/")) {
17
+ return CREDENTIAL_MAILBOX_TOPIC;
18
+ }
19
+ const trimmed = route.replace(/^\/+/, "");
20
+ return trimmed.split("/")[0] ?? "";
21
+ }
22
+ /**
23
+ * KERIpy pollers query protocol mailbox topics with a leading slash.
24
+ *
25
+ * @param topic Protocol mailbox topic; leading slash is normalized where required.
26
+ * @returns Slash-prefixed query topic.
27
+ */
28
+ function pollMailboxTopic(topic) {
29
+ if (topic.length === 0 || topic.startsWith("/")) {
30
+ return topic;
31
+ }
32
+ return `/${topic}`;
33
+ }
34
+ /**
35
+ * KERIpy `/fwd` modifiers use the bare topic name, e.g. `multisig`.
36
+ *
37
+ * @param topic Protocol mailbox topic; leading slash is normalized where required.
38
+ * @returns Bare /fwd modifier topic.
39
+ */
40
+ export function transportMailboxTopic(topic) {
41
+ return topic.replace(/^\/+/, "");
42
+ }
43
+ /**
44
+ * Public helper for deriving mailbox topic defaults from one EXN route.
45
+ *
46
+ * This stays exported because CLI and runtime call sites both need one shared
47
+ * answer for "which mailbox topic should this route land in by default?"
48
+ *
49
+ * @param route Exchange route whose first nonempty segment chooses the mailbox topic.
50
+ * @returns Derived topic under the existing route mapping.
51
+ */
52
+ export function mailboxTopicForRoute(route) {
53
+ return pollMailboxTopic(defaultTopicForRoute(route));
54
+ }
@@ -0,0 +1,173 @@
1
+ import { TransIdxSigGroup } from "../../core/dispatch.js";
2
+ import { ValidationError } from "../../core/errors.js";
3
+ import { Kever } from "../../core/kel/kever.js";
4
+ import { dgKey } from "../../db/core/keys.js";
5
+ /** True when the selected habitat is a local group habitat. */
6
+ export function isLocalGroupHab(hby, hab) {
7
+ return !!hab.pre && !!hby.db.getHab(hab.pre)?.mid;
8
+ }
9
+ /** Return the local member habitat for a persisted group identifier. */
10
+ export function localGroupMember(hby, groupPre) {
11
+ const record = hby.db.getHab(groupPre);
12
+ const member = record?.mid ? hby.habs.get(record.mid) : null;
13
+ if (!member) {
14
+ throw new ValidationError(`Group ${groupPre} is missing local member metadata.`);
15
+ }
16
+ return member;
17
+ }
18
+ /** Find the member's latest accepted single-key contribution to the supplied group keys. */
19
+ export function latestGroupContribution(db, member, verfers) {
20
+ const state = db.getKever(member);
21
+ if (!state)
22
+ return null;
23
+ const pubs = verfers.map(verfer => verfer.qb64);
24
+ for (const [, sn, said] of db.kels.getOnItemBackIter(member, state.sn)) {
25
+ if (db.kels.getLast(member, sn) !== said)
26
+ continue;
27
+ const event = db.getEvtSerder(member, said);
28
+ if (!event)
29
+ throw new ValidationError(`Missing accepted member event ${member}:${said}.`);
30
+ if (!event.estive)
31
+ continue;
32
+ const keys = event.verfers ?? [];
33
+ if (keys.length !== 1)
34
+ throw new ValidationError(`Group signing requires single-key member events for ${member}.`);
35
+ const index = pubs.indexOf(keys[0].qb64);
36
+ if (index >= 0)
37
+ return { event, index, verfer: keys[0] };
38
+ }
39
+ return null;
40
+ }
41
+ /**
42
+ * Verify an accepted coordinator against its historical establishment threshold.
43
+ * index is the initial election; a frozen operation rechecks indices without
44
+ * replacing its earlier choice when more valid signatures arrive.
45
+ */
46
+ export function groupWitnesserSelection(db, group, { sn, said }) {
47
+ if (!Number.isSafeInteger(sn) || sn < 0 || db.kels.getLast(group, sn) !== said)
48
+ return null;
49
+ const event = db.getEvtSerder(group, said);
50
+ if (!event || event.pre !== group || event.sn !== sn || event.said !== said)
51
+ return null;
52
+ for (const [, ordinal, digest] of db.kels.getOnItemBackIter(group, sn)) {
53
+ if (db.kels.getLast(group, ordinal) !== digest)
54
+ continue;
55
+ const establishment = db.getEvtSerder(group, digest);
56
+ if (!establishment)
57
+ throw new ValidationError(`Missing accepted group event ${group}:${digest}.`);
58
+ if (!establishment.estive)
59
+ continue;
60
+ const { indices } = Kever.verifyIndexedSignatures(event.raw, db.sigs.get(dgKey(group, said)), establishment.verfers);
61
+ if (!indices.length || !establishment.tholder?.satisfy(indices))
62
+ return null;
63
+ return { establishment, index: Math.min(...indices), indices };
64
+ }
65
+ return null;
66
+ }
67
+ /** Return current group signing member AIDs in signing-index order. */
68
+ export function groupSigningMembers(hby, groupPre) {
69
+ const stored = hby.ks.getSmids(groupPre).map((tuple) => tuple[0].qb64);
70
+ if (stored.length > 0) {
71
+ return stored;
72
+ }
73
+ const record = hby.db.getHab(groupPre);
74
+ return record?.smids ?? [];
75
+ }
76
+ /** Return the first locally available habitat from `members`, if any. */
77
+ export function findLocalGroupMember(hby, members) {
78
+ for (const member of members) {
79
+ const hab = hby.habs.get(member);
80
+ if (hab) {
81
+ return hab;
82
+ }
83
+ }
84
+ return null;
85
+ }
86
+ /** Return unique non-empty member AIDs while preserving first-seen order. */
87
+ export function uniqueMembers(members) {
88
+ return [...new Set(members.filter((member) => member.length > 0))];
89
+ }
90
+ /** Match a group signing key to one member's accepted establishment history, including retired keys. */
91
+ export function groupMemberHasKey(db, member, key) {
92
+ for (const [, said] of db.getKelItemIter(member)) {
93
+ const event = db.getEvtSerder(member, said);
94
+ if (event?.estive && event.verfers[0]?.qb64 === key)
95
+ return true;
96
+ }
97
+ return false;
98
+ }
99
+ /**
100
+ * Select only a cryptographically valid local partial at an accepted group establishment.
101
+ * The shared esigs table can hold unverified escrow candidates, so a matching
102
+ * index or an authenticated parent wrapper alone is not recorded child approval.
103
+ */
104
+ export function localIpexContribution(db, member, embedded, proofs) {
105
+ for (const proof of proofs) {
106
+ if (proof.pre !== embedded.pre || proof.sn > BigInt(Number.MAX_SAFE_INTEGER))
107
+ continue;
108
+ const said = db.kels.getLast(proof.pre, Number(proof.sn));
109
+ const event = said === proof.said ? db.getEvtSerder(proof.pre, said) : null;
110
+ if (!event?.estive)
111
+ continue;
112
+ const verified = Kever.verifyIndexedSignatures(embedded.raw, proof.sigers, event.verfers);
113
+ for (const siger of verified.sigers) {
114
+ if (groupMemberHasKey(db, member, event.verfers[siger.index].qb64)) {
115
+ return new TransIdxSigGroup(proof.prefixer, event.sner, proof.diger, [siger]);
116
+ }
117
+ }
118
+ }
119
+ return null;
120
+ }
121
+ /**
122
+ * Derive the members of `group`'s latest accepted establishment event from
123
+ * local KELs, as KERIpy `GroupHab.acceptedMembers`.
124
+ *
125
+ * Each signing key is attributed to the candidate whose latest contributing
126
+ * establishment event supplied it, and each next-key digest to the candidate
127
+ * whose establishment event committed to it. Returns null when the event is
128
+ * missing or any key cannot be attributed to exactly one candidate.
129
+ */
130
+ export function acceptedGroupMembers(db, group, candidates) {
131
+ const kever = db.getKever(group);
132
+ const event = kever ? db.getEvtSerder(group, kever.lastEst.d) : null;
133
+ if (!event)
134
+ return null;
135
+ const keys = (event.verfers ?? []).map(verfer => verfer.qb64);
136
+ const digs = (event.ndigers ?? []).map(diger => diger.qb64);
137
+ const signing = new Map(), rotating = new Map();
138
+ const attribute = (found, index, aid) => (found.get(index) ?? aid) === aid && !!found.set(index, aid);
139
+ for (const aid of candidates) {
140
+ const state = aid === group ? null : db.getKever(aid);
141
+ if (!state)
142
+ continue;
143
+ let signed = false;
144
+ for (const [, sn, said] of db.kels.getOnItemBackIter(aid, state.lastEst.s)) {
145
+ if (db.kels.getLast(aid, sn) !== said)
146
+ continue;
147
+ const member = db.getEvtSerder(aid, said);
148
+ if (!member?.estive)
149
+ continue;
150
+ // KERIpy fetchLatestContribTo: only the latest contributing establishment counts.
151
+ const index = signed
152
+ ? -1
153
+ : (member.verfers ?? []).map(verfer => keys.indexOf(verfer.qb64)).find(i => i >= 0) ?? -1;
154
+ if (index >= 0) {
155
+ signed = true;
156
+ if (!attribute(signing, index, aid))
157
+ return null;
158
+ }
159
+ for (const diger of member.ndigers ?? []) {
160
+ const next = digs.indexOf(diger.qb64);
161
+ if (next >= 0 && !attribute(rotating, next, aid))
162
+ return null;
163
+ }
164
+ }
165
+ }
166
+ if (signing.size !== keys.length || rotating.size !== digs.length)
167
+ return null;
168
+ return {
169
+ event,
170
+ smids: keys.map((_, index) => signing.get(index)),
171
+ rmids: digs.map((_, index) => rotating.get(index)),
172
+ };
173
+ }