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
@@ -0,0 +1,600 @@
1
+ /** Queued signed-message publication. Poster owns transport attempts and their concrete outcomes. */
2
+ import { attachmentPayload, collectPayload, concatBytes, Diger, framePayload, MtrDex, parseBytes, Vrsn_2_0, } from "cesr-ts";
3
+ import { call, resource } from "effection";
4
+ import { Deck } from "../../core/deck.js";
5
+ import { ValidationError } from "../../core/errors.js";
6
+ import { exchange } from "../../core/exchange/protocol-exchanging.js";
7
+ import { Roles } from "../../core/roles.js";
8
+ import { mailboxTopicKey, preferredUrl } from "../mailbox/mailboxing.js";
9
+ import { transportMailboxTopic } from "../mailbox/topic-routing.js";
10
+ import { abortable } from "../runtime/abortable.js";
11
+ import { runtimeTurn } from "../runtime/runtime-turn.js";
12
+ import { CesrHttpRefusal } from "../transport/cesr-egress.js";
13
+ import { messengerFrom, streamMessengerFrom } from "../transport/messengering.js";
14
+ import { TCPMessenger } from "../transport/tcp-messenger.js";
15
+ import { TransportError } from "../transport/transport-error.js";
16
+ import { introduce } from "./introducing.js";
17
+ /**
18
+ * Preserve resolved endpoint schemes and signed bytes for concrete transport construction.
19
+ *
20
+ * @param endpoint Selected endpoint AID and concrete URL.
21
+ * @param message Prepared bytes borrowed until transport cleanup completes.
22
+ * @returns A TCP or HTTP target according to the endpoint URL scheme.
23
+ */
24
+ function remoteCesrTarget(endpoint, message) {
25
+ const base = { url: endpoint.url, urls: endpoint.urls, destination: endpoint.eid, message };
26
+ return new URL(endpoint.url).protocol === "tcp:" ? { ...base, kind: "tcp" } : { ...base, kind: "http" };
27
+ }
28
+ /**
29
+ * Deliver queued signed messages using KERIpy's ordinary Poster role traversal.
30
+ *
31
+ * Send to every controller and agent endpoint, then one mailbox (or provider-local
32
+ * storage). Only recipients without those roles use one witness. Transport
33
+ * completion and opt-in outcomes do not prove remote protocol acceptance. Finite
34
+ * stream admissions use the first present role through the same execution owner.
35
+ */
36
+ export class Poster {
37
+ /**
38
+ * Bind actual collaborators; Poster owns queue/I/O lifetimes and borrows their stores.
39
+ *
40
+ * @param hby Borrowed local habitat collection and accepted-state database.
41
+ * @param mbx Borrowed provider mailbox store, or null when local storage is unavailable.
42
+ * @param protocol Borrowed same-database processor for TCP replies; null permits send-only work.
43
+ * @param http Borrowed HTTP implementation selected by composition.
44
+ * @param clock Borrowed clock for transport deadlines; times are milliseconds.
45
+ * @throws RangeError if protocol state belongs to a different database.
46
+ */
47
+ constructor(hby, mbx, protocol, http, clock) {
48
+ /** Borrowed habitat collection and backing accepted protocol state. */
49
+ Object.defineProperty(this, "hby", {
50
+ enumerable: true,
51
+ configurable: true,
52
+ writable: true,
53
+ value: void 0
54
+ });
55
+ /** Borrowed mailbox store (mbx); null means this host provides no local mailbox. */
56
+ Object.defineProperty(this, "mbx", {
57
+ enumerable: true,
58
+ configurable: true,
59
+ writable: true,
60
+ value: void 0
61
+ });
62
+ /** Borrowed HTTP client selected explicitly by composition. */
63
+ Object.defineProperty(this, "http", {
64
+ enumerable: true,
65
+ configurable: true,
66
+ writable: true,
67
+ value: void 0
68
+ });
69
+ /** Borrowed clock for this owner's actual network deadlines. */
70
+ Object.defineProperty(this, "clock", {
71
+ enumerable: true,
72
+ configurable: true,
73
+ writable: true,
74
+ value: void 0
75
+ });
76
+ /** Runnable signed messages in admission order; the delivery worker is the sole consumer. */
77
+ Object.defineProperty(this, "evts", {
78
+ enumerable: true,
79
+ configurable: true,
80
+ writable: true,
81
+ value: new Deck()
82
+ });
83
+ /** Opt-in terminal outcomes, matched by concrete admitted event identity. */
84
+ Object.defineProperty(this, "cues", {
85
+ enumerable: true,
86
+ configurable: true,
87
+ writable: true,
88
+ value: new Deck()
89
+ });
90
+ /** Events whose callers requested one terminal observation. */
91
+ Object.defineProperty(this, "notifications", {
92
+ enumerable: true,
93
+ configurable: true,
94
+ writable: true,
95
+ value: new Set()
96
+ });
97
+ /** Enforce one active completion observer per event. */
98
+ Object.defineProperty(this, "waiters", {
99
+ enumerable: true,
100
+ configurable: true,
101
+ writable: true,
102
+ value: new Set()
103
+ });
104
+ /** Prevent overlapping drains of the runnable queue. */
105
+ Object.defineProperty(this, "processing", {
106
+ enumerable: true,
107
+ configurable: true,
108
+ writable: true,
109
+ value: false
110
+ });
111
+ /** Terminal admission state; closing a Poster cannot be reversed. */
112
+ Object.defineProperty(this, "closed", {
113
+ enumerable: true,
114
+ configurable: true,
115
+ writable: true,
116
+ value: false
117
+ });
118
+ /** Cancels the current delivery pass before store teardown. */
119
+ Object.defineProperty(this, "active", {
120
+ enumerable: true,
121
+ configurable: true,
122
+ writable: true,
123
+ value: void 0
124
+ });
125
+ /** Resolves after active delivery and its owned cleanup have joined. */
126
+ Object.defineProperty(this, "joined", {
127
+ enumerable: true,
128
+ configurable: true,
129
+ writable: true,
130
+ value: void 0
131
+ });
132
+ /** Borrowed same-socket protocol receiver; null explicitly selects send-only capability. */
133
+ Object.defineProperty(this, "protocol", {
134
+ enumerable: true,
135
+ configurable: true,
136
+ writable: true,
137
+ value: void 0
138
+ });
139
+ if (protocol && protocol.kvy.db !== hby.db)
140
+ throw new RangeError("Poster protocol must use the same database");
141
+ this.hby = hby;
142
+ this.mbx = mbx;
143
+ this.http = http;
144
+ this.clock = clock;
145
+ this.protocol = protocol;
146
+ }
147
+ /**
148
+ * Admit signed source bytes; callers must observe an outcome before reporting transmission.
149
+ *
150
+ * @param evt Concrete source-message record; completion/failure lookup uses object identity, not message SAID.
151
+ * @param options Set notify to retain one terminal outcome for this admission; default false.
152
+ * @returns A fresh admitted record with copied msg bytes; admission is not transmission.
153
+ * @throws Closed owner or unsupported reply capability rejects before queue publication.
154
+ */
155
+ send(evt, { notify = false } = {}) {
156
+ return this.admit(evt, "msg", notify);
157
+ }
158
+ /**
159
+ * Admit a complete finite stream using KERIpy StreamPoster's first-present-role selection.
160
+ * All messages share one selected direct-endpoint set or one relay for the attempt.
161
+ *
162
+ * @param stream Signed source messages in production order; no iterator survives admission.
163
+ * @param options Set notify to request the same concrete-event completion contract as send.
164
+ * @returns Copied queued stream identity; admission does not establish delivery.
165
+ */
166
+ sendStream({ msgs, ...evt }, { notify = false } = {}) {
167
+ return this.admit({ ...evt, msg: concatBytes(...msgs) }, "stream", notify);
168
+ }
169
+ /**
170
+ * Copy one source and atomically publish its concrete operation.
171
+ * @param evt Resolved producer record; source bytes remain caller-owned until copied.
172
+ * @param kin Real ordinary or finite-stream operation, not a user routing preference.
173
+ * @param notify Whether this admission needs one terminal observation.
174
+ * @returns New identity owned by the runnable queue.
175
+ */
176
+ admit(evt, kin, notify) {
177
+ this.ensureOpen();
178
+ if (evt.replies && !this.protocol)
179
+ throw new Error("TCP reply delivery requires a protocol processor");
180
+ const admitted = { ...evt, kin, msg: evt.msg.slice() };
181
+ if (notify)
182
+ this.notifications.add(admitted);
183
+ this.evts.push(admitted);
184
+ return admitted;
185
+ }
186
+ /**
187
+ * Construct all source records before atomically publishing a complete cue or reply pair.
188
+ *
189
+ * @param evts Finite iterable for one cue/pair; every record is checked and copied before atomic queue publication.
190
+ * @throws Any construction/capability failure leaves the runnable queue unchanged.
191
+ */
192
+ sendAll(evts) {
193
+ this.ensureOpen();
194
+ const pending = [];
195
+ for (const evt of evts) {
196
+ if (evt.replies && !this.protocol)
197
+ throw new Error("TCP reply delivery requires a protocol processor");
198
+ pending.push({ ...evt, kin: "msg", msg: evt.msg.slice() });
199
+ }
200
+ // Publish only after every event has passed capability checks and byte copying.
201
+ this.evts.extend(pending);
202
+ }
203
+ /**
204
+ * Wait for one admission without owning its delivery.
205
+ * The delivery worker must run independently. Cancellation removes the observer and
206
+ * its notification; it does not withdraw queued work or abort the attempt.
207
+ *
208
+ * @param evt Exact record returned by send with notify enabled.
209
+ * @returns This admission's sent or failed outcome, consuming its notification.
210
+ * @throws Missing notification, duplicate waiter or closure before an outcome is available.
211
+ */
212
+ *wait(evt) {
213
+ if (!this.notifications.has(evt) && ![...this.cues].some((cue) => cue.evt === evt)) {
214
+ throw new Error("Event was not admitted with completion notification");
215
+ }
216
+ if (this.waiters.has(evt))
217
+ throw new Error("Event already has a completion waiter");
218
+ this.waiters.add(evt);
219
+ try {
220
+ while (true) {
221
+ const outcome = this.takeOutcome(evt);
222
+ if (outcome)
223
+ return outcome;
224
+ this.ensureOpen();
225
+ yield* runtimeTurn();
226
+ }
227
+ }
228
+ finally {
229
+ this.notifications.delete(evt);
230
+ this.waiters.delete(evt);
231
+ const abandoned = this.takeOutcome(evt);
232
+ if (abandoned)
233
+ this.publishOutcome(abandoned);
234
+ }
235
+ }
236
+ /**
237
+ * Consume only this event's outcome while preserving other observers' queue order.
238
+ *
239
+ * @param evt Concrete source-message record; completion/failure lookup uses object identity, not message SAID.
240
+ * @returns Matching outcome, or undefined; other outcome order is preserved.
241
+ */
242
+ takeOutcome(evt) {
243
+ let found;
244
+ const count = this.cues.length;
245
+ for (let index = 0; index < count; index++) {
246
+ const cue = this.cues.pull();
247
+ if (cue.evt === evt)
248
+ found = cue;
249
+ else
250
+ this.cues.push(cue);
251
+ }
252
+ return found;
253
+ }
254
+ /** Run queued delivery independently of query response intake and producer lifetimes. */
255
+ *deliverDo() {
256
+ while (!this.closed) {
257
+ yield* this.process();
258
+ yield* runtimeTurn();
259
+ }
260
+ }
261
+ /** Runnable and active work determine convergence; consumable observations do not. */
262
+ get hasPending() {
263
+ return this.processing || !this.evts.empty;
264
+ }
265
+ /** Reject new production before a closed output owner can consume its source. */
266
+ ensureOpen() {
267
+ if (this.closed)
268
+ throw new Error("Poster is closed");
269
+ }
270
+ /** Abort/join active I/O, report unconsumed failures, then release process-local work. */
271
+ *close() {
272
+ // Stop admission first, then abort/join before forgetting process-local work.
273
+ this.closed = true;
274
+ this.active?.abort();
275
+ if (this.joined)
276
+ yield* call(() => this.joined);
277
+ this.evts.clear();
278
+ this.notifications.clear();
279
+ while (!this.cues.empty)
280
+ this.publishOutcome(this.cues.pull());
281
+ }
282
+ /** Deliver the current FIFO contents; recognized refusals publish failure and allow later work. */
283
+ process() {
284
+ // deno-lint-ignore no-this-alias -- The operation owns this finite output pass.
285
+ const self = this;
286
+ return call(function* () {
287
+ if (self.processing || self.closed)
288
+ return;
289
+ self.processing = true;
290
+ const active = self.active = new AbortController();
291
+ let complete;
292
+ self.joined = new Promise((resolve) => complete = resolve);
293
+ yield* resource(function* (provide) {
294
+ try {
295
+ yield* provide();
296
+ }
297
+ finally {
298
+ self.processing = false;
299
+ self.active = undefined;
300
+ self.joined = undefined;
301
+ complete();
302
+ }
303
+ });
304
+ // Snapshot a finite pass; producers may append work for the next worker turn.
305
+ const count = self.evts.length;
306
+ for (let remaining = count; remaining > 0 && !self.closed; remaining--) {
307
+ const evt = self.evts.peekHead();
308
+ if (!evt)
309
+ break;
310
+ active.signal.throwIfAborted();
311
+ const deliveries = [];
312
+ let outcome;
313
+ try {
314
+ outcome = yield* self.deliverEvent(evt, deliveries, active.signal);
315
+ }
316
+ catch (error) {
317
+ // Remove runnable work and expose its outcome before propagating an unexpected fault.
318
+ self.evts.pull();
319
+ self.publishOutcome({ kin: "failed", evt, deliveries, error });
320
+ throw error;
321
+ }
322
+ self.evts.pull();
323
+ self.publishOutcome(outcome);
324
+ }
325
+ });
326
+ }
327
+ /**
328
+ * Publish an opted-in terminal outcome or report an unobserved failure once.
329
+ * This owner retains no recovery history. Cancellation and close return abandoned
330
+ * observations here after removing their notification, so failed work stays visible.
331
+ *
332
+ * @param outcome Completed attempt, including source identity, original cause and partial delivery.
333
+ */
334
+ publishOutcome(outcome) {
335
+ if (this.notifications.delete(outcome.evt)) {
336
+ this.cues.push(outcome);
337
+ }
338
+ else if (outcome.kin === "failed") {
339
+ // Report routing context and the original error, never the signed source bytes.
340
+ const { src, dest, topic } = outcome.evt;
341
+ console.error("CESR delivery failed", { src, dest, topic, deliveries: outcome.deliveries }, outcome.error);
342
+ }
343
+ }
344
+ /**
345
+ * Resolve and execute one event using sequential current endpoints.
346
+ * Observed HTTP refusal and TransportError permit remaining targets to run.
347
+ * Unexpected construction/parser/storage/cleanup errors propagate so process can
348
+ * publish or report the failed outcome before exposing the error.
349
+ *
350
+ * @param evt Concrete source-message record; completion/failure lookup uses object identity, not message SAID.
351
+ * @param deliveries Mutable accumulator of successfully delivered target URLs, retained even if a later target throws.
352
+ * @param signal Active Poster pass cancellation; forwarded into each messenger attempt.
353
+ * @returns Sent if every target completes; otherwise a failure with partial successes.
354
+ */
355
+ *deliverEvent(evt, deliveries, signal) {
356
+ const hab = this.hby.habs.get(evt.src);
357
+ if (!hab)
358
+ throw new Error(`Unknown local sender ${evt.src}`);
359
+ const routes = this.findBytesRoutes(hab, evt.dest, evt.topic, evt.kin);
360
+ if (!routes.length) {
361
+ return {
362
+ kin: "failed",
363
+ evt,
364
+ deliveries,
365
+ error: new ValidationError(`No end roles for ${evt.dest} to send raw CESR payload.`),
366
+ };
367
+ }
368
+ // A refused target does not prevent later targets from receiving this event.
369
+ const failed = [];
370
+ try {
371
+ for (const route of routes) {
372
+ for (const endpoint of route.targets) {
373
+ if (!endpoint.url) {
374
+ failed.push(new ValidationError(`No supported endpoint URL for ${endpoint.eid}.`));
375
+ continue;
376
+ }
377
+ const target = yield* this.prepareBytesTarget(hab, route, {
378
+ eid: endpoint.eid,
379
+ url: endpoint.url,
380
+ urls: endpoint.urls,
381
+ }, evt);
382
+ try {
383
+ if (target.kind !== "stored") {
384
+ const refusal = yield* this.sendPreparedTarget(target, evt, signal);
385
+ if (refusal) {
386
+ failed.push(refusal);
387
+ continue;
388
+ }
389
+ }
390
+ }
391
+ catch (error) {
392
+ if (!(error instanceof TransportError))
393
+ throw error;
394
+ failed.push(error);
395
+ continue;
396
+ }
397
+ deliveries.push(endpoint.url);
398
+ }
399
+ }
400
+ }
401
+ catch (error) {
402
+ if (failed.length) {
403
+ throw new AggregateError([...failed, error], `CESR delivery interrupted for ${evt.dest}`, { cause: error });
404
+ }
405
+ throw error;
406
+ }
407
+ if (failed.length) {
408
+ const error = failed.length === 1
409
+ ? failed[0]
410
+ : new AggregateError(failed, `CESR delivery failed for ${evt.dest}`);
411
+ return { kin: "failed", evt, deliveries, error };
412
+ }
413
+ return { kin: "sent", evt, deliveries };
414
+ }
415
+ /** Execute one prepared target, adapting completed HTTP refusal to this owner's fanout outcome. */
416
+ *sendPreparedTarget(target, evt, signal) {
417
+ if (target.kind === "tcp" && evt.replies) {
418
+ // Explicit duplex work retains its receive owner; send-only factories need none.
419
+ yield* new TCPMessenger(target.url, this.clock, this.protocol).send(target.message, {
420
+ signal,
421
+ replies: true,
422
+ });
423
+ return;
424
+ }
425
+ if (evt.kin === "stream") {
426
+ const response = yield* streamMessengerFrom(target.destination, target.urls, target.message, this.http, this.clock).send({ signal });
427
+ if (response && !response.ok) {
428
+ return new CesrHttpRefusal(`CESR delivery to ${target.url} failed with HTTP ${response.status}: ${new TextDecoder().decode(response.body)}`, response.status);
429
+ }
430
+ return;
431
+ }
432
+ const outcome = yield* messengerFrom(target.destination, target.urls, this.http, this.clock).send(target.message, { signal });
433
+ if (outcome && outcome.kind === "refuse")
434
+ return outcome.error;
435
+ }
436
+ /**
437
+ * Snapshot ordinary Poster's current role traversal without network execution.
438
+ *
439
+ * Controller and agent roles each retain all endpoints. An indirect role picks
440
+ * one random provider, unless an explicitly composed store owns an eligible local
441
+ * AID. Empty location maps retain role selection and become execution failures.
442
+ *
443
+ * @param hab Local signing habitat borrowing accepted role/location state.
444
+ * @param recipient Resolved final recipient AID.
445
+ * @param topic Recipient mailbox topic; indirect routes require a nonempty topic.
446
+ * @param kin Ordinary messages traverse all primary roles; streams retain the first present role.
447
+ * @returns Ordered role groups; no eligible role returns an empty array.
448
+ */
449
+ findBytesRoutes(hab, recipient, topic, kin = "msg") {
450
+ const ends = hab.endsFor(recipient);
451
+ const roles = [Roles.controller, Roles.agent, Roles.mailbox].filter((role) => Object.keys(ends[role] ?? {}).length);
452
+ if (!roles.length && Object.keys(ends[Roles.witness] ?? {}).length)
453
+ roles.push(Roles.witness);
454
+ if (kin === "stream")
455
+ roles.splice(1);
456
+ return roles.map((role) => {
457
+ const candidates = Object.entries(ends[role]);
458
+ if (role === Roles.controller || role === Roles.agent) {
459
+ return {
460
+ kind: "direct",
461
+ targets: candidates.map(([eid, urls]) => ({ eid, url: preferredUrl(urls), urls })),
462
+ };
463
+ }
464
+ if (!topic)
465
+ throw new ValidationError(`Forwarded delivery requires an explicit topic for ${recipient}.`);
466
+ // A provider store may belong to another local AID, not just the sender.
467
+ const local = this.mbx && candidates.find(([eid]) => this.hby.db.prefixes.has(eid));
468
+ if (local)
469
+ return { kind: "forward", targets: [{ eid: local[0], url: `local-mailbox:${local[0]}`, urls: {} }] };
470
+ const [eid, urls] = candidates[Math.floor(Math.random() * candidates.length)];
471
+ return {
472
+ kind: "forward",
473
+ targets: [{ eid, url: preferredUrl(urls), urls }],
474
+ };
475
+ });
476
+ }
477
+ /**
478
+ * Prepare a target using the supplied wire and selected endpoint.
479
+ *
480
+ * @param hab Local habitat used to construct/sign this output; stores remain borrowed.
481
+ * @param route Selected direct or forwarded endpoint group.
482
+ * @param endpoint One selected endpoint AID and URL from the route.
483
+ * @param evt Original signed source and concrete ordinary/stream operation.
484
+ * @returns A prepared remote target, or stored after authorized local mailbox publication.
485
+ */
486
+ *prepareBytesTarget(hab, route, endpoint, evt) {
487
+ if (route.kind !== "direct") {
488
+ return yield* this.prepareForwardedTarget(hab, evt.dest, evt.topic, evt, endpoint);
489
+ }
490
+ return remoteCesrTarget(endpoint, evt.msg);
491
+ }
492
+ /**
493
+ * Prepare complete signed wire and its introduction before opening transport.
494
+ *
495
+ * @param hab Local habitat used to construct/sign this output; stores remain borrowed.
496
+ * @param recipient Final recipient AID, distinct from the intermediary endpoint.
497
+ * @param topic Recipient mailbox topic used by the forwarding envelope.
498
+ * @param evt Original signed source and operation; outer envelopes may be rebuilt.
499
+ * @param endpoint Mailbox/witness endpoint selected for this attempt.
500
+ * @returns Stored for a local endpoint, or signed forwarding wire with its introduction.
501
+ */
502
+ *prepareForwardedTarget(hab, recipient, topic, evt, endpoint) {
503
+ if (this.mbx && this.hby.db.prefixes.has(endpoint.eid)) {
504
+ const stored = this.mbx.storeMsg(mailboxTopicKey(recipient, topic), mailboxReplyPayload(hab, recipient, topic, evt.msg));
505
+ if (!stored)
506
+ throw new Error("Mailbox publication did not complete");
507
+ return { kind: "stored" };
508
+ }
509
+ const msgs = [];
510
+ if (evt.kin === "stream") {
511
+ // Prepare every frame before opening the one selected relay attempt.
512
+ for (const frame of parseBytes(evt.msg)) {
513
+ msgs.push(yield* abortable((signal) => collectPayload(framePayload(frame), signal)));
514
+ }
515
+ }
516
+ else {
517
+ msgs.push(evt.msg);
518
+ }
519
+ const forwarded = [];
520
+ for (const message of msgs)
521
+ forwarded.push(yield* buildForwardedDelivery(hab, { recipient, topic, message }));
522
+ const intro = introduce(hab, endpoint.eid);
523
+ let message = concatBytes(intro, ...forwarded);
524
+ if (evt.kin === "stream") {
525
+ const frames = parseBytes(message);
526
+ if (frames.some(frame => (frame.gvrsn?.major ?? 1) >= 2)) {
527
+ // A v2 peer's default cannot interpret unqualified v1 introduction counters.
528
+ // Declare each prepared frame's actual genus without changing signed bodies.
529
+ // Entirely legacy streams retain their v1-peer-compatible unqualified wire.
530
+ const qualified = [];
531
+ for (const frame of frames) {
532
+ qualified.push(yield* abortable(signal => collectPayload(framePayload(frame), signal)));
533
+ }
534
+ message = concatBytes(...qualified);
535
+ }
536
+ }
537
+ return remoteCesrTarget(endpoint, message);
538
+ }
539
+ }
540
+ /**
541
+ * Build a signed legacy embed or v2 nested `/fwd` envelope for one complete message.
542
+ * The v2 envelope serves every v2 member and any v2 child; v1 members keep the legacy embed.
543
+ *
544
+ * The caller is responsible for any surrounding introduction or end-role
545
+ * material that should travel with the forwarded request.
546
+ *
547
+ * @param hab Local signing habitat; its state/store lifetime remains with the caller.
548
+ * @param args Final recipient, mailbox topic and exactly one complete signed source message.
549
+ * @returns Signed /fwd wire; v2 binds one nested child body, legacy uses pathed embeds.
550
+ */
551
+ function* buildForwardedDelivery(hab, args) {
552
+ const frames = parseBytes(args.message);
553
+ if (frames.length !== 1)
554
+ throw new ValidationError("Forwarding requires one complete CESR message.");
555
+ const child = frames[0];
556
+ // A v2 member's stream is v2 after its introduction, so even a v1 child (such as a
557
+ // KERIpy-form `e`-embed group proposal) travels nested with its own genus selector,
558
+ // like KERIpy `StreamPoster.createForward`. Only v1 members keep the legacy embed.
559
+ if (hab.kelVersion.major >= 2 || child.body.pvrsn.major >= 2 || (child.gvrsn?.major ?? 1) >= 2) {
560
+ const [serder] = exchange("/fwd", {
561
+ evt: new Diger({ code: MtrDex.Blake3_256, raw: Diger.digest(child.body.raw, MtrDex.Blake3_256) }).qb64,
562
+ }, {
563
+ sender: hab.pre,
564
+ modifiers: { pre: args.recipient, topic: transportMailboxTopic(args.topic) },
565
+ pvrsn: Vrsn_2_0,
566
+ });
567
+ // Capture the signer before the codec reader yields; child proofs remain independent.
568
+ const [outer] = parseBytes(hab.endorse(serder, { pipelined: false, gvrsn: Vrsn_2_0, genusify: true }));
569
+ return yield* abortable((signal) => collectPayload(framePayload({ ...outer, nests: [child] }), signal));
570
+ }
571
+ const message = concatBytes(child.body.raw, yield* abortable((signal) => collectPayload(attachmentPayload(child), signal)));
572
+ const [serder, attachments] = exchange("/fwd", {}, {
573
+ sender: hab.pre,
574
+ modifiers: { pre: args.recipient, topic: transportMailboxTopic(args.topic) },
575
+ embeds: { evt: message },
576
+ });
577
+ const endorsed = hab.endorse(serder, { pipelined: false });
578
+ return concatBytes(endorsed, attachments);
579
+ }
580
+ /**
581
+ * Include the sender's latest KEL before locally stored `/reply` payloads.
582
+ *
583
+ * KERIpy's `Revery` escrows transferable replies whose signer establishment
584
+ * event is unknown. Python KLI does not route that escrow's follow-up query cue
585
+ * during the bounded `kli query` command, so a local mailbox host must provide
586
+ * the verification context with the reply itself for rotated `/ksn` replies.
587
+ *
588
+ * @param hab Local signing habitat; its state/store lifetime remains with the caller.
589
+ * @param recipient Final mailbox recipient AID.
590
+ * @param topic Protocol mailbox topic; leading slash is normalized where required.
591
+ * @param message Original complete signed payload.
592
+ * @returns Provider-stored wire selected by the existing reply/replay topic policy.
593
+ */
594
+ function mailboxReplyPayload(hab, recipient, topic, message) {
595
+ if (topic !== "/reply" && topic !== "reply") {
596
+ return message;
597
+ }
598
+ const introduction = introduce(hab, recipient);
599
+ return introduction.length === 0 ? message : concatBytes(introduction, message);
600
+ }
@@ -0,0 +1,68 @@
1
+ /** Select public KEL and endpoint evidence needed to introduce a sender to a remote peer. */
2
+ import { concatBytes } from "cesr-ts";
3
+ import { dgKey } from "../../db/core/keys.js";
4
+ /**
5
+ * Borrow a Hab/store for lazy introduction output, preserving target KEL, oldest
6
+ * delegator first, then endpoint/location replies. Capture begins on iteration.
7
+ * No source is opened when a witness/receipt already makes introduction unnecessary.
8
+ * V2 proof/key copies and the large-history transport caller remain separately qualified.
9
+ *
10
+ * @param hab Local signing habitat; its state/store lifetime remains with the caller.
11
+ * @param remote Remote endpoint AID whose receipt history determines whether introduction is needed.
12
+ * @returns Reopenable introduction iterable.
13
+ */
14
+ export function introductionMessages(hab, remote) {
15
+ const endpoints = hab.replyEndRoleMessages(hab.pre);
16
+ return {
17
+ /**
18
+ * Reopen introduction messages when a caller consumes them.
19
+ *
20
+ * @returns A fresh local replay iterator over the captured introduction selection.
21
+ */
22
+ *[Symbol.iterator]() {
23
+ const kever = hab.kever;
24
+ if (!kever || kever.wits.includes(remote))
25
+ return;
26
+ const latestSaid = kever.serder.said;
27
+ if (!latestSaid || remoteAlreadyReceiptedLatestEvent(hab, remote, latestSaid))
28
+ return;
29
+ const captured = hab.db.replay(hab.pre);
30
+ if (captured)
31
+ yield* captured;
32
+ yield* endpoints;
33
+ },
34
+ };
35
+ }
36
+ /**
37
+ * Collect the introduction required by the existing finite query/forwarding path.
38
+ *
39
+ * @param hab Local signing habitat; its state/store lifetime remains with the caller.
40
+ * @param remote Remote endpoint AID whose receipt history determines whether introduction is needed.
41
+ * @returns Collected introduction bytes, possibly empty.
42
+ */
43
+ export function introduce(hab, remote) {
44
+ return concatBytes(...introductionMessages(hab, remote));
45
+ }
46
+ /**
47
+ * Check known receipts before adding a redundant introduction.
48
+ *
49
+ * @param hab Local signing habitat; its state/store lifetime remains with the caller.
50
+ * @param remote Remote attester AID to seek in receipt evidence.
51
+ * @param said Latest event SAID used for the receipt lookup.
52
+ * @returns Whether stored receipt evidence names the remote attester.
53
+ */
54
+ function remoteAlreadyReceiptedLatestEvent(hab, remote, said) {
55
+ const keys = [
56
+ dgKey(hab.pre, said),
57
+ dgKey(remote, said),
58
+ ];
59
+ for (const key of keys) {
60
+ if (hab.db.vrcs.get(key).some(([prefixer]) => prefixer.qb64 === remote)) {
61
+ return true;
62
+ }
63
+ if (hab.db.rcts.get(key).some(([prefixer]) => prefixer.qb64.startsWith(remote))) {
64
+ return true;
65
+ }
66
+ }
67
+ return false;
68
+ }