keri-ts 1.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. package/README.md +23 -0
  2. package/esm/keri/npm/src/acdc/chaining.js +213 -0
  3. package/esm/keri/npm/src/acdc/dhking.js +716 -0
  4. package/esm/keri/npm/src/acdc/messaging.js +2 -0
  5. package/esm/keri/npm/src/acdc/observing.js +40 -7
  6. package/esm/keri/npm/src/acdc/regbasing.js +13 -2
  7. package/esm/keri/npm/src/acdc/regengine.js +71 -23
  8. package/esm/keri/npm/src/acdc/regeventing.js +163 -44
  9. package/esm/keri/npm/src/acdc/registering.js +93 -14
  10. package/esm/keri/npm/src/acdc/relating.js +59 -0
  11. package/esm/keri/npm/src/acdc/salting.js +720 -0
  12. package/esm/keri/npm/src/acdc/scheming.js +94 -39
  13. package/esm/keri/npm/src/acdc/unblinding.js +1042 -0
  14. package/esm/keri/npm/src/app/{authenticating.js → bootstrap/authenticating.js} +39 -18
  15. package/esm/keri/npm/src/app/bootstrap/bootstrapping.js +109 -0
  16. package/esm/keri/npm/src/app/{oobi-replies.js → bootstrap/oobi-replies.js} +8 -6
  17. package/esm/keri/npm/src/app/{oobiery.js → bootstrap/oobiery.js} +161 -75
  18. package/esm/keri/npm/src/app/credentials/credential-importing.js +201 -0
  19. package/esm/keri/npm/src/app/credentials/credential-proposals.js +120 -0
  20. package/esm/keri/npm/src/app/credentials/credential-revoking.js +165 -0
  21. package/esm/keri/npm/src/app/credentials/credential-workflows.js +365 -0
  22. package/esm/keri/npm/src/app/credentials/tel-publishing.js +27 -0
  23. package/esm/keri/npm/src/app/{verifying.js → credentials/verifying.js} +50 -6
  24. package/esm/keri/npm/src/app/delivery/forwarding.js +600 -0
  25. package/esm/keri/npm/src/app/delivery/introducing.js +68 -0
  26. package/esm/keri/npm/src/app/{reply-streams.js → delivery/reply-streams.js} +52 -7
  27. package/esm/keri/npm/src/app/delivery/respondant.js +159 -0
  28. package/esm/keri/npm/src/app/{stored-replies.js → delivery/stored-replies.js} +4 -4
  29. package/esm/keri/npm/src/app/exchanges/essr.js +111 -0
  30. package/esm/keri/npm/src/app/exchanges/exchange-messaging.js +66 -0
  31. package/esm/keri/npm/src/app/exchanges/exchanging.js +1354 -0
  32. package/esm/keri/npm/src/app/{configing.js → identity/configing.js} +4 -4
  33. package/esm/keri/npm/src/app/{delegating.js → identity/delegating.js} +99 -29
  34. package/esm/keri/npm/src/app/{endpoint-roleing.js → identity/endpoint-roleing.js} +36 -36
  35. package/esm/keri/npm/src/app/{habbing.js → identity/habbing.js} +232 -150
  36. package/esm/keri/npm/src/app/{keeping.js → identity/keeping.js} +60 -56
  37. package/esm/keri/npm/src/app/{organizing.js → identity/organizing.js} +47 -21
  38. package/esm/keri/npm/src/app/ipex/ipex-building.js +162 -0
  39. package/esm/keri/npm/src/app/{ipex-credentialing.js → ipex/ipex-credentialing.js} +142 -31
  40. package/esm/keri/npm/src/app/ipex/ipex-graph.js +243 -0
  41. package/esm/keri/npm/src/app/ipex/ipex-grouping.js +664 -0
  42. package/esm/keri/npm/src/app/{ipex-node-authentication.js → ipex/ipex-node-authentication.js} +83 -6
  43. package/esm/keri/npm/src/app/ipex/ipex-v2.js +692 -0
  44. package/esm/keri/npm/src/app/{ipexing.js → ipex/ipexing.js} +58 -1
  45. package/esm/keri/npm/src/app/mailbox/forward-handler.js +228 -0
  46. package/esm/keri/npm/src/app/{mailbox-director.js → mailbox/mailbox-director.js} +120 -15
  47. package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +305 -0
  48. package/esm/keri/npm/src/app/mailbox/mailbox-sse.js +254 -0
  49. package/esm/keri/npm/src/app/{mailboxing.js → mailbox/mailboxing.js} +118 -67
  50. package/esm/keri/npm/src/app/mailbox/topic-routing.js +54 -0
  51. package/esm/keri/npm/src/app/multisig/group-members.js +173 -0
  52. package/esm/keri/npm/src/app/{grouping.js → multisig/grouping.js} +384 -70
  53. package/esm/keri/npm/src/app/multisig/multisig-messaging.js +164 -0
  54. package/esm/keri/npm/src/app/multisig/multisig-workflows.js +821 -0
  55. package/esm/keri/npm/src/app/{notifying.js → notifications/notifying.js} +8 -14
  56. package/esm/keri/npm/src/app/{signaling.js → notifications/signaling.js} +1 -1
  57. package/esm/keri/npm/src/app/{parsering.js → protocol/parsering.js} +86 -18
  58. package/esm/keri/npm/src/app/protocol/protocol-processing.js +245 -0
  59. package/esm/keri/npm/src/app/protocol/reactor.js +55 -0
  60. package/esm/keri/npm/src/app/{query-replies.js → queries/query-replies.js} +57 -6
  61. package/esm/keri/npm/src/app/queries/querying.js +306 -0
  62. package/esm/keri/npm/src/app/queries/witness-inquisitor.js +415 -0
  63. package/esm/keri/npm/src/app/{abortable.js → runtime/abortable.js} +43 -4
  64. package/esm/keri/npm/src/app/runtime/agent-runtime.js +633 -0
  65. package/esm/keri/npm/src/app/runtime/cue-runtime.js +61 -0
  66. package/esm/keri/npm/src/app/runtime/runtime-clock.js +6 -0
  67. package/esm/keri/npm/src/app/{byte-source.js → transport/byte-source.js} +36 -6
  68. package/esm/keri/npm/src/app/transport/cesr-egress.js +317 -0
  69. package/esm/keri/npm/src/app/{cesr-http.js → transport/cesr-http.js} +20 -55
  70. package/esm/keri/npm/src/app/transport/http-client.js +172 -0
  71. package/esm/keri/npm/src/app/transport/http-messenger.js +52 -0
  72. package/esm/keri/npm/src/app/transport/http-stream-messenger.js +60 -0
  73. package/esm/keri/npm/src/app/transport/httping.js +57 -0
  74. package/esm/keri/npm/src/app/transport/message-source.js +77 -0
  75. package/esm/keri/npm/src/app/transport/messengering.js +68 -0
  76. package/esm/keri/npm/src/app/{socket-source.js → transport/socket-source.js} +39 -2
  77. package/esm/keri/npm/src/app/transport/tcp-egress.js +377 -0
  78. package/esm/keri/npm/src/app/transport/tcp-messenger.js +162 -0
  79. package/esm/keri/npm/src/app/transport/tcp-stream-messenger.js +40 -0
  80. package/esm/keri/npm/src/app/transport/transport-error.js +14 -0
  81. package/esm/keri/npm/src/app/witness/http-endpoints.js +185 -0
  82. package/esm/keri/npm/src/app/witness/ingress.js +148 -0
  83. package/esm/keri/npm/src/app/witness/receipt-client.js +248 -0
  84. package/esm/keri/npm/src/app/witness/receipt-messages.js +29 -0
  85. package/esm/keri/npm/src/app/witness/receipting.js +323 -0
  86. package/esm/keri/npm/src/app/witness/registration.js +50 -0
  87. package/esm/keri/npm/src/cli/common/bootstrap.js +12 -0
  88. package/esm/keri/npm/src/{app/cli → cli}/common/context.js +47 -6
  89. package/esm/keri/npm/src/{app/cli → cli}/common/existing.js +9 -11
  90. package/esm/keri/npm/src/cli/common/parsing.js +279 -0
  91. package/esm/keri/npm/src/cli/common/passcode.js +66 -0
  92. package/esm/keri/npm/src/cli/common/tel-completion.js +24 -0
  93. package/esm/keri/npm/src/{app/cli → cli}/common/witness-auth.js +2 -2
  94. package/esm/keri/npm/src/cli/credentials/ipex.js +702 -0
  95. package/esm/keri/npm/src/cli/credentials/vc.js +399 -0
  96. package/esm/keri/npm/src/{app/cli → cli/endpoints}/did.js +63 -36
  97. package/esm/keri/npm/src/{app/cli → cli/endpoints}/ends.js +33 -28
  98. package/esm/keri/npm/src/{app/cli → cli/endpoints}/loc.js +16 -11
  99. package/esm/keri/npm/src/cli/endpoints/oobi-clean.js +134 -0
  100. package/esm/keri/npm/src/{app/cli → cli/endpoints}/oobi.js +35 -32
  101. package/esm/keri/npm/src/{app/cli → cli/identity}/aid.js +8 -7
  102. package/esm/keri/npm/src/{app/cli → cli/identity}/challenge.js +60 -49
  103. package/esm/keri/npm/src/{app/cli → cli/identity}/delegate.js +61 -26
  104. package/esm/keri/npm/src/{app/cli → cli/identity}/export.js +9 -8
  105. package/esm/keri/npm/src/cli/identity/incept.js +181 -0
  106. package/esm/keri/npm/src/cli/identity/init.js +153 -0
  107. package/esm/keri/npm/src/cli/identity/interact.js +84 -0
  108. package/esm/keri/npm/src/{app/cli → cli/identity}/list.js +7 -6
  109. package/esm/keri/npm/src/{app/cli → cli/identity}/rotate.js +60 -57
  110. package/esm/keri/npm/src/cli/index.js +38 -0
  111. package/esm/keri/npm/src/{app/cli → cli/messaging}/exchange.js +24 -22
  112. package/esm/keri/npm/src/{app/cli → cli/messaging}/multisig.js +165 -156
  113. package/esm/keri/npm/src/{app/cli → cli/messaging}/notifications.js +26 -22
  114. package/esm/keri/npm/src/{app/cli → cli}/output.js +1 -1
  115. package/esm/keri/npm/src/{app/cli → cli/tools}/annotate.js +10 -4
  116. package/esm/keri/npm/src/{app/cli → cli/tools}/benchmark.js +15 -4
  117. package/esm/keri/npm/src/{app/cli → cli/tools}/db-dump.js +11 -10
  118. package/esm/keri/npm/src/{app/cli → cli/tools}/saidify.js +3 -2
  119. package/esm/keri/npm/src/{app/cli → cli/tools}/sign.js +16 -10
  120. package/esm/keri/npm/src/{app/cli → cli/tools}/verify.js +10 -10
  121. package/esm/keri/npm/src/core/attachment-countering.js +31 -1
  122. package/esm/keri/npm/src/core/{exchange-proofing.js → exchange/exchange-proofing.js} +32 -2
  123. package/esm/keri/npm/src/core/{protocol-exchanging.js → exchange/protocol-exchanging.js} +26 -4
  124. package/esm/keri/npm/src/core/genus-framing.js +44 -0
  125. package/esm/keri/npm/src/core/{eventing.js → kel/eventing.js} +57 -25
  126. package/esm/keri/npm/src/core/{kever-decisions.js → kel/kever-decisions.js} +24 -12
  127. package/esm/keri/npm/src/core/{kever.js → kel/kever.js} +4 -4
  128. package/esm/keri/npm/src/core/logger.js +3 -3
  129. package/esm/keri/npm/src/core/{kram-policy.js → mailbox/kram-policy.js} +14 -4
  130. package/esm/keri/npm/src/core/{kram-pruning.js → mailbox/kram-pruning.js} +3 -3
  131. package/esm/keri/npm/src/core/{kram-signatures.js → mailbox/kram-signatures.js} +1 -1
  132. package/esm/keri/npm/src/core/{kram-staging.js → mailbox/kram-staging.js} +6 -6
  133. package/esm/keri/npm/src/core/{kram-time.js → mailbox/kram-time.js} +4 -3
  134. package/esm/keri/npm/src/core/{kraming.js → mailbox/kraming.js} +2 -2
  135. package/esm/keri/npm/src/core/protocol-eventing.js +1 -1
  136. package/esm/keri/npm/src/core/protocol-serialization.js +9 -34
  137. package/esm/keri/npm/src/core/routing.js +52 -17
  138. package/esm/keri/npm/src/db/baser-defaults.js +11 -0
  139. package/esm/keri/npm/src/db/basing.js +89 -232
  140. package/esm/keri/npm/src/db/core/lmdber.js +102 -63
  141. package/esm/keri/npm/src/db/escrowing.js +73 -49
  142. package/esm/keri/npm/src/db/exchange/exchange-nests.js +54 -0
  143. package/esm/keri/npm/src/db/exchange/exchange-records.js +7 -0
  144. package/esm/keri/npm/src/db/index.js +5 -4
  145. package/esm/keri/npm/src/db/keeping.js +122 -3
  146. package/esm/keri/npm/src/db/{kram-factors.js → mailbox/kram-factors.js} +1 -1
  147. package/esm/keri/npm/src/db/{mailboxing.js → mailbox/mailboxing.js} +3 -3
  148. package/esm/keri/npm/src/db/reger.js +38 -29
  149. package/esm/keri/npm/src/db/{kel-replay.js → replay/kel-replay.js} +11 -4
  150. package/esm/keri/npm/src/db/{tel-replay.js → replay/tel-replay.js} +34 -0
  151. package/esm/keri/npm/src/db/{witness-replay.js → replay/witness-replay.js} +2 -2
  152. package/esm/keri/npm/src/db/subing.js +2 -3
  153. package/esm/keri/npm/src/did/webs/artifacts.js +15 -18
  154. package/esm/keri/npm/src/did/webs/designated-aliases.js +5 -7
  155. package/esm/keri/npm/src/did/webs/resolving.js +73 -56
  156. package/esm/keri/npm/src/library/index.js +1 -1
  157. package/esm/keri/npm/src/npm/cli.js +1 -1
  158. package/esm/keri/npm/src/npm/index.js +1 -1
  159. package/esm/keri/npm/src/runtime/index.js +79 -47
  160. package/esm/keri/npm/src/vdr/backer-state.js +55 -0
  161. package/esm/keri/npm/src/vdr/credential-tsn-record.js +59 -0
  162. package/esm/keri/npm/src/vdr/credentialing.js +84 -82
  163. package/esm/keri/npm/src/vdr/eventing.js +592 -204
  164. package/esm/keri/npm/src/vdr/registry-tsn-record.js +55 -0
  165. package/esm/keri/npm/src/vdr/revoking.js +90 -0
  166. package/esm/keri/npm/src/vdr/tel-anchor.js +29 -0
  167. package/esm/keri/npm/src/vdr/tel-publication.js +178 -0
  168. package/esm/keri/npm/src/{app/version.js → version.js} +2 -2
  169. package/package.json +5 -3
  170. package/types/_dnt.polyfills.d.ts +6 -0
  171. package/types/_dnt.polyfills.d.ts.map +1 -1
  172. package/types/acdc/chaining.d.ts +35 -0
  173. package/types/acdc/chaining.d.ts.map +1 -0
  174. package/types/acdc/dhking.d.ts +136 -0
  175. package/types/acdc/dhking.d.ts.map +1 -0
  176. package/types/acdc/messaging.d.ts.map +1 -1
  177. package/types/acdc/observing.d.ts +18 -7
  178. package/types/acdc/observing.d.ts.map +1 -1
  179. package/types/acdc/regbasing.d.ts +3 -1
  180. package/types/acdc/regbasing.d.ts.map +1 -1
  181. package/types/acdc/regengine.d.ts +9 -4
  182. package/types/acdc/regengine.d.ts.map +1 -1
  183. package/types/acdc/regeventing.d.ts +24 -7
  184. package/types/acdc/regeventing.d.ts.map +1 -1
  185. package/types/acdc/registering.d.ts +22 -6
  186. package/types/acdc/registering.d.ts.map +1 -1
  187. package/types/acdc/registraring.d.ts +1 -1
  188. package/types/acdc/registraring.d.ts.map +1 -1
  189. package/types/acdc/relating.d.ts +21 -0
  190. package/types/acdc/relating.d.ts.map +1 -0
  191. package/types/acdc/salting.d.ts +241 -0
  192. package/types/acdc/salting.d.ts.map +1 -0
  193. package/types/acdc/scheming.d.ts +1 -1
  194. package/types/acdc/scheming.d.ts.map +1 -1
  195. package/types/acdc/unblinding.d.ts +150 -0
  196. package/types/acdc/unblinding.d.ts.map +1 -0
  197. package/types/app/bootstrap/authenticating.d.ts +54 -0
  198. package/types/app/bootstrap/authenticating.d.ts.map +1 -0
  199. package/types/app/bootstrap/bootstrapping.d.ts +45 -0
  200. package/types/app/bootstrap/bootstrapping.d.ts.map +1 -0
  201. package/types/app/{oobi-replies.d.ts → bootstrap/oobi-replies.d.ts} +1 -1
  202. package/types/app/bootstrap/oobi-replies.d.ts.map +1 -0
  203. package/types/app/{oobiery.d.ts → bootstrap/oobiery.d.ts} +98 -25
  204. package/types/app/bootstrap/oobiery.d.ts.map +1 -0
  205. package/types/app/credentials/credential-importing.d.ts +29 -0
  206. package/types/app/credentials/credential-importing.d.ts.map +1 -0
  207. package/types/app/credentials/credential-proposals.d.ts +27 -0
  208. package/types/app/credentials/credential-proposals.d.ts.map +1 -0
  209. package/types/app/credentials/credential-revoking.d.ts +44 -0
  210. package/types/app/credentials/credential-revoking.d.ts.map +1 -0
  211. package/types/app/credentials/credential-workflows.d.ts +149 -0
  212. package/types/app/credentials/credential-workflows.d.ts.map +1 -0
  213. package/types/app/{schema-resolving.d.ts → credentials/schema-resolving.d.ts} +2 -2
  214. package/types/app/credentials/schema-resolving.d.ts.map +1 -0
  215. package/types/app/credentials/tel-publishing.d.ts +16 -0
  216. package/types/app/credentials/tel-publishing.d.ts.map +1 -0
  217. package/types/app/{verifying.d.ts → credentials/verifying.d.ts} +19 -7
  218. package/types/app/credentials/verifying.d.ts.map +1 -0
  219. package/types/app/delivery/forwarding.d.ts +227 -0
  220. package/types/app/delivery/forwarding.d.ts.map +1 -0
  221. package/types/app/delivery/introducing.d.ts +21 -0
  222. package/types/app/delivery/introducing.d.ts.map +1 -0
  223. package/types/app/delivery/reply-streams.d.ts +49 -0
  224. package/types/app/delivery/reply-streams.d.ts.map +1 -0
  225. package/types/app/delivery/respondant.d.ts +52 -0
  226. package/types/app/delivery/respondant.d.ts.map +1 -0
  227. package/types/app/{stored-replies.d.ts → delivery/stored-replies.d.ts} +1 -1
  228. package/types/app/delivery/stored-replies.d.ts.map +1 -0
  229. package/types/app/exchanges/essr.d.ts +53 -0
  230. package/types/app/exchanges/essr.d.ts.map +1 -0
  231. package/types/app/exchanges/exchange-messaging.d.ts +73 -0
  232. package/types/app/exchanges/exchange-messaging.d.ts.map +1 -0
  233. package/types/app/exchanges/exchanging.d.ts +379 -0
  234. package/types/app/exchanges/exchanging.d.ts.map +1 -0
  235. package/types/app/{challenging.d.ts → identity/challenging.d.ts} +3 -3
  236. package/types/app/identity/challenging.d.ts.map +1 -0
  237. package/types/app/{configing.d.ts → identity/configing.d.ts} +1 -1
  238. package/types/app/identity/configing.d.ts.map +1 -0
  239. package/types/app/{delegating.d.ts → identity/delegating.d.ts} +52 -15
  240. package/types/app/identity/delegating.d.ts.map +1 -0
  241. package/types/app/{endpoint-roleing.d.ts → identity/endpoint-roleing.d.ts} +24 -13
  242. package/types/app/identity/endpoint-roleing.d.ts.map +1 -0
  243. package/types/app/{habbing.d.ts → identity/habbing.d.ts} +73 -32
  244. package/types/app/identity/habbing.d.ts.map +1 -0
  245. package/types/app/{keeping.d.ts → identity/keeping.d.ts} +19 -5
  246. package/types/app/identity/keeping.d.ts.map +1 -0
  247. package/types/app/{organizing.d.ts → identity/organizing.d.ts} +19 -4
  248. package/types/app/identity/organizing.d.ts.map +1 -0
  249. package/types/app/ipex/ipex-building.d.ts +30 -0
  250. package/types/app/ipex/ipex-building.d.ts.map +1 -0
  251. package/types/app/{ipex-credentialing.d.ts → ipex/ipex-credentialing.d.ts} +33 -6
  252. package/types/app/ipex/ipex-credentialing.d.ts.map +1 -0
  253. package/types/app/ipex/ipex-graph.d.ts +28 -0
  254. package/types/app/ipex/ipex-graph.d.ts.map +1 -0
  255. package/types/app/ipex/ipex-grouping.d.ts +112 -0
  256. package/types/app/ipex/ipex-grouping.d.ts.map +1 -0
  257. package/types/app/{ipex-node-authentication.d.ts → ipex/ipex-node-authentication.d.ts} +10 -5
  258. package/types/app/ipex/ipex-node-authentication.d.ts.map +1 -0
  259. package/types/app/ipex/ipex-v2.d.ts +71 -0
  260. package/types/app/ipex/ipex-v2.d.ts.map +1 -0
  261. package/types/app/{ipexing.d.ts → ipex/ipexing.d.ts} +21 -6
  262. package/types/app/ipex/ipexing.d.ts.map +1 -0
  263. package/types/app/mailbox/forward-handler.d.ts +68 -0
  264. package/types/app/mailbox/forward-handler.d.ts.map +1 -0
  265. package/types/app/mailbox/mailbox-director.d.ts +252 -0
  266. package/types/app/mailbox/mailbox-director.d.ts.map +1 -0
  267. package/types/app/mailbox/mailbox-poller.d.ts +149 -0
  268. package/types/app/mailbox/mailbox-poller.d.ts.map +1 -0
  269. package/types/app/mailbox/mailbox-sse.d.ts +63 -0
  270. package/types/app/mailbox/mailbox-sse.d.ts.map +1 -0
  271. package/types/app/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +92 -40
  272. package/types/app/mailbox/mailboxing.d.ts.map +1 -0
  273. package/types/app/mailbox/topic-routing.d.ts +18 -0
  274. package/types/app/mailbox/topic-routing.d.ts.map +1 -0
  275. package/types/app/multisig/group-members.d.ts +60 -0
  276. package/types/app/multisig/group-members.d.ts.map +1 -0
  277. package/types/app/{grouping.d.ts → multisig/grouping.d.ts} +142 -19
  278. package/types/app/multisig/grouping.d.ts.map +1 -0
  279. package/types/app/multisig/multisig-messaging.d.ts +97 -0
  280. package/types/app/multisig/multisig-messaging.d.ts.map +1 -0
  281. package/types/app/multisig/multisig-workflows.d.ts +85 -0
  282. package/types/app/multisig/multisig-workflows.d.ts.map +1 -0
  283. package/types/app/{notifying.d.ts → notifications/notifying.d.ts} +4 -5
  284. package/types/app/notifications/notifying.d.ts.map +1 -0
  285. package/types/app/notifications/signaling.d.ts.map +1 -0
  286. package/types/app/{parsering.d.ts → protocol/parsering.d.ts} +40 -11
  287. package/types/app/protocol/parsering.d.ts.map +1 -0
  288. package/types/app/{protocol-host-policy.d.ts → protocol/protocol-host-policy.d.ts} +1 -10
  289. package/types/app/protocol/protocol-host-policy.d.ts.map +1 -0
  290. package/types/app/protocol/protocol-processing.d.ts +140 -0
  291. package/types/app/protocol/protocol-processing.d.ts.map +1 -0
  292. package/types/app/protocol/reactor.d.ts +43 -0
  293. package/types/app/protocol/reactor.d.ts.map +1 -0
  294. package/types/app/queries/query-replies.d.ts +78 -0
  295. package/types/app/queries/query-replies.d.ts.map +1 -0
  296. package/types/app/queries/querying.d.ts +155 -0
  297. package/types/app/queries/querying.d.ts.map +1 -0
  298. package/types/app/queries/witness-inquisitor.d.ts +150 -0
  299. package/types/app/queries/witness-inquisitor.d.ts.map +1 -0
  300. package/types/app/runtime/abortable.d.ts +39 -0
  301. package/types/app/runtime/abortable.d.ts.map +1 -0
  302. package/types/app/runtime/agent-runtime.d.ts +348 -0
  303. package/types/app/runtime/agent-runtime.d.ts.map +1 -0
  304. package/types/app/runtime/cue-runtime.d.ts +33 -0
  305. package/types/app/runtime/cue-runtime.d.ts.map +1 -0
  306. package/types/app/runtime/runtime-clock.d.ts +28 -0
  307. package/types/app/runtime/runtime-clock.d.ts.map +1 -0
  308. package/types/app/runtime/runtime-turn.d.ts.map +1 -0
  309. package/types/app/transport/byte-source.d.ts +41 -0
  310. package/types/app/transport/byte-source.d.ts.map +1 -0
  311. package/types/app/transport/cesr-egress.d.ts +117 -0
  312. package/types/app/transport/cesr-egress.d.ts.map +1 -0
  313. package/types/app/{cesr-http.d.ts → transport/cesr-http.d.ts} +4 -27
  314. package/types/app/transport/cesr-http.d.ts.map +1 -0
  315. package/types/app/transport/http-client.d.ts +99 -0
  316. package/types/app/transport/http-client.d.ts.map +1 -0
  317. package/types/app/transport/http-messenger.d.ts +37 -0
  318. package/types/app/transport/http-messenger.d.ts.map +1 -0
  319. package/types/app/transport/http-stream-messenger.d.ts +30 -0
  320. package/types/app/transport/http-stream-messenger.d.ts.map +1 -0
  321. package/types/app/transport/httping.d.ts +19 -0
  322. package/types/app/transport/httping.d.ts.map +1 -0
  323. package/types/app/transport/message-source.d.ts +22 -0
  324. package/types/app/transport/message-source.d.ts.map +1 -0
  325. package/types/app/transport/messengering.d.ts +41 -0
  326. package/types/app/transport/messengering.d.ts.map +1 -0
  327. package/types/app/{socket-source.d.ts → transport/socket-source.d.ts} +8 -0
  328. package/types/app/transport/socket-source.d.ts.map +1 -0
  329. package/types/app/transport/tcp-egress.d.ts +118 -0
  330. package/types/app/transport/tcp-egress.d.ts.map +1 -0
  331. package/types/app/transport/tcp-messenger.d.ts +69 -0
  332. package/types/app/transport/tcp-messenger.d.ts.map +1 -0
  333. package/types/app/transport/tcp-stream-messenger.d.ts +25 -0
  334. package/types/app/transport/tcp-stream-messenger.d.ts.map +1 -0
  335. package/types/app/transport/transport-error.d.ts +12 -0
  336. package/types/app/transport/transport-error.d.ts.map +1 -0
  337. package/types/app/witness/http-endpoints.d.ts +77 -0
  338. package/types/app/witness/http-endpoints.d.ts.map +1 -0
  339. package/types/app/witness/ingress.d.ts +65 -0
  340. package/types/app/witness/ingress.d.ts.map +1 -0
  341. package/types/app/witness/receipt-client.d.ts +82 -0
  342. package/types/app/witness/receipt-client.d.ts.map +1 -0
  343. package/types/app/witness/receipt-messages.d.ts +21 -0
  344. package/types/app/witness/receipt-messages.d.ts.map +1 -0
  345. package/types/app/witness/receipting.d.ts +117 -0
  346. package/types/app/witness/receipting.d.ts.map +1 -0
  347. package/types/app/witness/registration.d.ts +27 -0
  348. package/types/app/witness/registration.d.ts.map +1 -0
  349. package/types/cli/common/bootstrap.d.ts +5 -0
  350. package/types/cli/common/bootstrap.d.ts.map +1 -0
  351. package/types/{app/cli → cli}/common/context.d.ts +10 -5
  352. package/types/cli/common/context.d.ts.map +1 -0
  353. package/types/{app/cli → cli}/common/existing.d.ts +2 -4
  354. package/types/cli/common/existing.d.ts.map +1 -0
  355. package/types/{app/cli → cli}/common/parsing.d.ts +26 -15
  356. package/types/cli/common/parsing.d.ts.map +1 -0
  357. package/types/cli/common/passcode.d.ts +9 -0
  358. package/types/cli/common/passcode.d.ts.map +1 -0
  359. package/types/cli/common/rendering.d.ts.map +1 -0
  360. package/types/cli/common/tel-completion.d.ts +8 -0
  361. package/types/cli/common/tel-completion.d.ts.map +1 -0
  362. package/types/{app/cli → cli}/common/witness-auth.d.ts +1 -1
  363. package/types/cli/common/witness-auth.d.ts.map +1 -0
  364. package/types/cli/credentials/ipex.d.ts +110 -0
  365. package/types/cli/credentials/ipex.d.ts.map +1 -0
  366. package/types/cli/credentials/vc.d.ts +42 -0
  367. package/types/cli/credentials/vc.d.ts.map +1 -0
  368. package/types/{app/cli → cli/endpoints}/did.d.ts +5 -1
  369. package/types/cli/endpoints/did.d.ts.map +1 -0
  370. package/types/{app/cli → cli/endpoints}/ends.d.ts +9 -1
  371. package/types/cli/endpoints/ends.d.ts.map +1 -0
  372. package/types/cli/endpoints/loc.d.ts.map +1 -0
  373. package/types/cli/endpoints/oobi-clean.d.ts +8 -0
  374. package/types/cli/endpoints/oobi-clean.d.ts.map +1 -0
  375. package/types/{app/cli → cli/endpoints}/oobi.d.ts +2 -0
  376. package/types/cli/endpoints/oobi.d.ts.map +1 -0
  377. package/types/cli/identity/aid.d.ts.map +1 -0
  378. package/types/{app/cli → cli/identity}/challenge.d.ts +5 -1
  379. package/types/cli/identity/challenge.d.ts.map +1 -0
  380. package/types/cli/identity/delegate.d.ts.map +1 -0
  381. package/types/cli/identity/export.d.ts.map +1 -0
  382. package/types/{app/cli → cli/identity}/incept.d.ts +2 -0
  383. package/types/cli/identity/incept.d.ts.map +1 -0
  384. package/types/{app/cli → cli/identity}/init.d.ts +2 -0
  385. package/types/cli/identity/init.d.ts.map +1 -0
  386. package/types/{app/cli → cli/identity}/interact.d.ts +2 -0
  387. package/types/cli/identity/interact.d.ts.map +1 -0
  388. package/types/cli/identity/list.d.ts.map +1 -0
  389. package/types/{app/cli → cli/identity}/rotate.d.ts +9 -2
  390. package/types/cli/identity/rotate.d.ts.map +1 -0
  391. package/types/cli/index.d.ts +39 -0
  392. package/types/cli/index.d.ts.map +1 -0
  393. package/types/{app/cli → cli/messaging}/exchange.d.ts +3 -1
  394. package/types/cli/messaging/exchange.d.ts.map +1 -0
  395. package/types/cli/messaging/multisig.d.ts +29 -0
  396. package/types/cli/messaging/multisig.d.ts.map +1 -0
  397. package/types/cli/messaging/notifications.d.ts.map +1 -0
  398. package/types/cli/output.d.ts.map +1 -0
  399. package/types/cli/tools/annotate-color.d.ts.map +1 -0
  400. package/types/cli/tools/annotate.d.ts.map +1 -0
  401. package/types/cli/tools/benchmark.d.ts.map +1 -0
  402. package/types/cli/tools/db-dump.d.ts.map +1 -0
  403. package/types/cli/tools/saidify.d.ts.map +1 -0
  404. package/types/{app/cli → cli/tools}/sign.d.ts +2 -0
  405. package/types/cli/tools/sign.d.ts.map +1 -0
  406. package/types/cli/tools/verify.d.ts.map +1 -0
  407. package/types/core/attachment-countering.d.ts +10 -1
  408. package/types/core/attachment-countering.d.ts.map +1 -1
  409. package/types/core/cues.d.ts +78 -21
  410. package/types/core/cues.d.ts.map +1 -1
  411. package/types/core/{exchange-proofing.d.ts → exchange/exchange-proofing.d.ts} +9 -2
  412. package/types/core/exchange/exchange-proofing.d.ts.map +1 -0
  413. package/types/core/{protocol-exchanging.d.ts → exchange/protocol-exchanging.d.ts} +10 -2
  414. package/types/core/exchange/protocol-exchanging.d.ts.map +1 -0
  415. package/types/core/genus-framing.d.ts +12 -0
  416. package/types/core/genus-framing.d.ts.map +1 -0
  417. package/types/core/{eventing.d.ts → kel/eventing.d.ts} +22 -10
  418. package/types/core/kel/eventing.d.ts.map +1 -0
  419. package/types/core/{kever-decisions.d.ts → kel/kever-decisions.d.ts} +21 -8
  420. package/types/core/kel/kever-decisions.d.ts.map +1 -0
  421. package/types/core/{kever.d.ts → kel/kever.d.ts} +2 -2
  422. package/types/core/kel/kever.d.ts.map +1 -0
  423. package/types/core/kel/witnesses.d.ts.map +1 -0
  424. package/types/core/logger.d.ts +1 -1
  425. package/types/core/logger.d.ts.map +1 -1
  426. package/types/core/{kram-auth.d.ts → mailbox/kram-auth.d.ts} +2 -2
  427. package/types/core/mailbox/kram-auth.d.ts.map +1 -0
  428. package/types/core/{kram-policy.d.ts → mailbox/kram-policy.d.ts} +2 -2
  429. package/types/core/mailbox/kram-policy.d.ts.map +1 -0
  430. package/types/core/{kram-pruning.d.ts → mailbox/kram-pruning.d.ts} +1 -1
  431. package/types/core/mailbox/kram-pruning.d.ts.map +1 -0
  432. package/types/core/{kram-signatures.d.ts → mailbox/kram-signatures.d.ts} +3 -3
  433. package/types/core/mailbox/kram-signatures.d.ts.map +1 -0
  434. package/types/core/{kram-staging.d.ts → mailbox/kram-staging.d.ts} +2 -2
  435. package/types/core/mailbox/kram-staging.d.ts.map +1 -0
  436. package/types/core/{kram-time.d.ts → mailbox/kram-time.d.ts} +2 -2
  437. package/types/core/mailbox/kram-time.d.ts.map +1 -0
  438. package/types/core/{kraming.d.ts → mailbox/kraming.d.ts} +5 -5
  439. package/types/core/mailbox/kraming.d.ts.map +1 -0
  440. package/types/core/mailbox/mailbox-topics.d.ts.map +1 -0
  441. package/types/core/protocol-eventing.d.ts.map +1 -1
  442. package/types/core/protocol-serialization.d.ts +1 -1
  443. package/types/core/protocol-serialization.d.ts.map +1 -1
  444. package/types/core/records.d.ts +1 -1
  445. package/types/core/records.d.ts.map +1 -1
  446. package/types/core/routing.d.ts +24 -4
  447. package/types/core/routing.d.ts.map +1 -1
  448. package/types/db/baser-defaults.d.ts +5 -0
  449. package/types/db/baser-defaults.d.ts.map +1 -0
  450. package/types/db/basing.d.ts +32 -44
  451. package/types/db/basing.d.ts.map +1 -1
  452. package/types/db/core/lmdber.d.ts +18 -13
  453. package/types/db/core/lmdber.d.ts.map +1 -1
  454. package/types/db/escrowing.d.ts +3 -1
  455. package/types/db/escrowing.d.ts.map +1 -1
  456. package/types/db/exchange/exchange-nests.d.ts +12 -0
  457. package/types/db/exchange/exchange-nests.d.ts.map +1 -0
  458. package/types/db/exchange/exchange-records.d.ts +38 -0
  459. package/types/db/exchange/exchange-records.d.ts.map +1 -0
  460. package/types/db/index.d.ts +5 -4
  461. package/types/db/index.d.ts.map +1 -1
  462. package/types/db/keeping.d.ts +19 -1
  463. package/types/db/keeping.d.ts.map +1 -1
  464. package/types/db/{kram-factors.d.ts → mailbox/kram-factors.d.ts} +2 -2
  465. package/types/db/mailbox/kram-factors.d.ts.map +1 -0
  466. package/types/db/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +2 -2
  467. package/types/db/mailbox/mailboxing.d.ts.map +1 -0
  468. package/types/db/reger.d.ts +7 -6
  469. package/types/db/reger.d.ts.map +1 -1
  470. package/types/db/{kel-replay.d.ts → replay/kel-replay.d.ts} +1 -2
  471. package/types/db/replay/kel-replay.d.ts.map +1 -0
  472. package/types/db/{tel-replay.d.ts → replay/tel-replay.d.ts} +11 -1
  473. package/types/db/replay/tel-replay.d.ts.map +1 -0
  474. package/types/db/{witness-replay.d.ts → replay/witness-replay.d.ts} +1 -1
  475. package/types/db/replay/witness-replay.d.ts.map +1 -0
  476. package/types/db/subing.d.ts.map +1 -1
  477. package/types/did/keri/resolving.d.ts +1 -1
  478. package/types/did/keri/resolving.d.ts.map +1 -1
  479. package/types/did/webs/artifacts.d.ts +5 -5
  480. package/types/did/webs/artifacts.d.ts.map +1 -1
  481. package/types/did/webs/designated-aliases.d.ts +1 -2
  482. package/types/did/webs/designated-aliases.d.ts.map +1 -1
  483. package/types/did/webs/documenting.d.ts +1 -1
  484. package/types/did/webs/documenting.d.ts.map +1 -1
  485. package/types/did/webs/resolving.d.ts +13 -9
  486. package/types/did/webs/resolving.d.ts.map +1 -1
  487. package/types/library/index.d.ts +1 -1
  488. package/types/library/index.d.ts.map +1 -1
  489. package/types/npm/cli.d.ts +1 -1
  490. package/types/npm/cli.d.ts.map +1 -1
  491. package/types/npm/index.d.ts +1 -1
  492. package/types/npm/index.d.ts.map +1 -1
  493. package/types/runtime/index.d.ts +86 -51
  494. package/types/runtime/index.d.ts.map +1 -1
  495. package/types/vdr/backer-state.d.ts +22 -0
  496. package/types/vdr/backer-state.d.ts.map +1 -0
  497. package/types/vdr/credential-tsn-record.d.ts +13 -0
  498. package/types/vdr/credential-tsn-record.d.ts.map +1 -0
  499. package/types/vdr/credentialing.d.ts +16 -17
  500. package/types/vdr/credentialing.d.ts.map +1 -1
  501. package/types/vdr/eventing.d.ts +60 -18
  502. package/types/vdr/eventing.d.ts.map +1 -1
  503. package/types/vdr/registry-tsn-record.d.ts +6 -0
  504. package/types/vdr/registry-tsn-record.d.ts.map +1 -0
  505. package/types/vdr/revoking.d.ts +18 -0
  506. package/types/vdr/revoking.d.ts.map +1 -0
  507. package/types/vdr/tel-anchor.d.ts +10 -0
  508. package/types/vdr/tel-anchor.d.ts.map +1 -0
  509. package/types/vdr/tel-publication.d.ts +49 -0
  510. package/types/vdr/tel-publication.d.ts.map +1 -0
  511. package/types/vdr/tsn-query.d.ts +1 -1
  512. package/types/vdr/tsn-query.d.ts.map +1 -1
  513. package/types/{app/version.d.ts → version.d.ts} +2 -2
  514. package/types/version.d.ts.map +1 -0
  515. package/esm/keri/npm/src/app/agent-runtime.js +0 -544
  516. package/esm/keri/npm/src/app/cesr-egress.js +0 -294
  517. package/esm/keri/npm/src/app/cli/common/displaying.js +0 -43
  518. package/esm/keri/npm/src/app/cli/common/parsing.js +0 -215
  519. package/esm/keri/npm/src/app/cli/incept.js +0 -185
  520. package/esm/keri/npm/src/app/cli/index.js +0 -36
  521. package/esm/keri/npm/src/app/cli/init.js +0 -149
  522. package/esm/keri/npm/src/app/cli/interact.js +0 -72
  523. package/esm/keri/npm/src/app/cli/ipex.js +0 -519
  524. package/esm/keri/npm/src/app/cli/query.js +0 -142
  525. package/esm/keri/npm/src/app/cli/vc.js +0 -283
  526. package/esm/keri/npm/src/app/cli/verifier.js +0 -92
  527. package/esm/keri/npm/src/app/credential-workflows.js +0 -409
  528. package/esm/keri/npm/src/app/cue-runtime.js +0 -38
  529. package/esm/keri/npm/src/app/essr.js +0 -170
  530. package/esm/keri/npm/src/app/exchanging.js +0 -1001
  531. package/esm/keri/npm/src/app/forwarding.js +0 -936
  532. package/esm/keri/npm/src/app/group-members.js +0 -37
  533. package/esm/keri/npm/src/app/httping.js +0 -162
  534. package/esm/keri/npm/src/app/ipex-graph.js +0 -407
  535. package/esm/keri/npm/src/app/ipex-grouping.js +0 -276
  536. package/esm/keri/npm/src/app/ipex-v2.js +0 -438
  537. package/esm/keri/npm/src/app/mailbox-sse.js +0 -240
  538. package/esm/keri/npm/src/app/multisig-workflows.js +0 -457
  539. package/esm/keri/npm/src/app/querying.js +0 -775
  540. package/esm/keri/npm/src/app/reactor.js +0 -394
  541. package/esm/keri/npm/src/app/respondant.js +0 -358
  542. package/esm/keri/npm/src/app/runtime-services.js +0 -22
  543. package/esm/keri/npm/src/app/tcp-conversation.js +0 -85
  544. package/esm/keri/npm/src/app/tcp-egress.js +0 -251
  545. package/esm/keri/npm/src/app/verifier-agent.js +0 -443
  546. package/esm/keri/npm/src/app/witnessing.js +0 -914
  547. package/esm/keri/npm/src/core/index.js +0 -23
  548. package/esm/keri/npm/src/db/exchange-nests.js +0 -80
  549. package/esm/keri/npm/src/db/exchange-records.js +0 -7
  550. package/esm/keri/npm/src/db/payload-archive.js +0 -402
  551. package/esm/keri/npm/src/db/payload-store.js +0 -406
  552. package/esm/keri/npm/src/db/payload-view.js +0 -23
  553. package/esm/keri/npm/src/db/verifier-cueing.js +0 -132
  554. package/esm/keri/npm/src/vdr/credential-tsn.js +0 -230
  555. package/esm/keri/npm/src/vdr/registry-tsn.js +0 -217
  556. package/types/app/abortable.d.ts +0 -13
  557. package/types/app/abortable.d.ts.map +0 -1
  558. package/types/app/agent-runtime.d.ts +0 -221
  559. package/types/app/agent-runtime.d.ts.map +0 -1
  560. package/types/app/authenticating.d.ts +0 -36
  561. package/types/app/authenticating.d.ts.map +0 -1
  562. package/types/app/byte-source.d.ts +0 -16
  563. package/types/app/byte-source.d.ts.map +0 -1
  564. package/types/app/cesr-egress.d.ts +0 -45
  565. package/types/app/cesr-egress.d.ts.map +0 -1
  566. package/types/app/cesr-http.d.ts.map +0 -1
  567. package/types/app/challenging.d.ts.map +0 -1
  568. package/types/app/cli/aid.d.ts.map +0 -1
  569. package/types/app/cli/annotate-color.d.ts.map +0 -1
  570. package/types/app/cli/annotate.d.ts.map +0 -1
  571. package/types/app/cli/benchmark.d.ts.map +0 -1
  572. package/types/app/cli/challenge.d.ts.map +0 -1
  573. package/types/app/cli/common/context.d.ts.map +0 -1
  574. package/types/app/cli/common/displaying.d.ts +0 -12
  575. package/types/app/cli/common/displaying.d.ts.map +0 -1
  576. package/types/app/cli/common/existing.d.ts.map +0 -1
  577. package/types/app/cli/common/parsing.d.ts.map +0 -1
  578. package/types/app/cli/common/rendering.d.ts.map +0 -1
  579. package/types/app/cli/common/witness-auth.d.ts.map +0 -1
  580. package/types/app/cli/db-dump.d.ts.map +0 -1
  581. package/types/app/cli/delegate.d.ts.map +0 -1
  582. package/types/app/cli/did.d.ts.map +0 -1
  583. package/types/app/cli/ends.d.ts.map +0 -1
  584. package/types/app/cli/exchange.d.ts.map +0 -1
  585. package/types/app/cli/export.d.ts.map +0 -1
  586. package/types/app/cli/incept.d.ts.map +0 -1
  587. package/types/app/cli/index.d.ts +0 -37
  588. package/types/app/cli/index.d.ts.map +0 -1
  589. package/types/app/cli/init.d.ts.map +0 -1
  590. package/types/app/cli/interact.d.ts.map +0 -1
  591. package/types/app/cli/ipex.d.ts +0 -20
  592. package/types/app/cli/ipex.d.ts.map +0 -1
  593. package/types/app/cli/list.d.ts.map +0 -1
  594. package/types/app/cli/loc.d.ts.map +0 -1
  595. package/types/app/cli/multisig.d.ts +0 -12
  596. package/types/app/cli/multisig.d.ts.map +0 -1
  597. package/types/app/cli/notifications.d.ts.map +0 -1
  598. package/types/app/cli/oobi.d.ts.map +0 -1
  599. package/types/app/cli/output.d.ts.map +0 -1
  600. package/types/app/cli/query.d.ts +0 -12
  601. package/types/app/cli/query.d.ts.map +0 -1
  602. package/types/app/cli/rotate.d.ts.map +0 -1
  603. package/types/app/cli/saidify.d.ts.map +0 -1
  604. package/types/app/cli/sign.d.ts.map +0 -1
  605. package/types/app/cli/vc.d.ts +0 -20
  606. package/types/app/cli/vc.d.ts.map +0 -1
  607. package/types/app/cli/verifier.d.ts +0 -3
  608. package/types/app/cli/verifier.d.ts.map +0 -1
  609. package/types/app/cli/verify.d.ts.map +0 -1
  610. package/types/app/configing.d.ts.map +0 -1
  611. package/types/app/credential-workflows.d.ts +0 -113
  612. package/types/app/credential-workflows.d.ts.map +0 -1
  613. package/types/app/cue-runtime.d.ts +0 -12
  614. package/types/app/cue-runtime.d.ts.map +0 -1
  615. package/types/app/delegating.d.ts.map +0 -1
  616. package/types/app/endpoint-roleing.d.ts.map +0 -1
  617. package/types/app/essr.d.ts +0 -58
  618. package/types/app/essr.d.ts.map +0 -1
  619. package/types/app/exchanging.d.ts +0 -233
  620. package/types/app/exchanging.d.ts.map +0 -1
  621. package/types/app/forwarding.d.ts +0 -352
  622. package/types/app/forwarding.d.ts.map +0 -1
  623. package/types/app/group-members.d.ts +0 -12
  624. package/types/app/group-members.d.ts.map +0 -1
  625. package/types/app/grouping.d.ts.map +0 -1
  626. package/types/app/habbing.d.ts.map +0 -1
  627. package/types/app/httping.d.ts +0 -49
  628. package/types/app/httping.d.ts.map +0 -1
  629. package/types/app/ipex-credentialing.d.ts.map +0 -1
  630. package/types/app/ipex-graph.d.ts +0 -49
  631. package/types/app/ipex-graph.d.ts.map +0 -1
  632. package/types/app/ipex-grouping.d.ts +0 -43
  633. package/types/app/ipex-grouping.d.ts.map +0 -1
  634. package/types/app/ipex-node-authentication.d.ts.map +0 -1
  635. package/types/app/ipex-v2.d.ts +0 -46
  636. package/types/app/ipex-v2.d.ts.map +0 -1
  637. package/types/app/ipexing.d.ts.map +0 -1
  638. package/types/app/keeping.d.ts.map +0 -1
  639. package/types/app/mailbox-director.d.ts +0 -140
  640. package/types/app/mailbox-director.d.ts.map +0 -1
  641. package/types/app/mailbox-sse.d.ts +0 -32
  642. package/types/app/mailbox-sse.d.ts.map +0 -1
  643. package/types/app/mailboxing.d.ts.map +0 -1
  644. package/types/app/multisig-workflows.d.ts +0 -47
  645. package/types/app/multisig-workflows.d.ts.map +0 -1
  646. package/types/app/notifying.d.ts.map +0 -1
  647. package/types/app/oobi-replies.d.ts.map +0 -1
  648. package/types/app/oobiery.d.ts.map +0 -1
  649. package/types/app/organizing.d.ts.map +0 -1
  650. package/types/app/parsering.d.ts.map +0 -1
  651. package/types/app/protocol-host-policy.d.ts.map +0 -1
  652. package/types/app/query-replies.d.ts +0 -40
  653. package/types/app/query-replies.d.ts.map +0 -1
  654. package/types/app/querying.d.ts +0 -221
  655. package/types/app/querying.d.ts.map +0 -1
  656. package/types/app/reactor.d.ts +0 -138
  657. package/types/app/reactor.d.ts.map +0 -1
  658. package/types/app/reply-streams.d.ts +0 -20
  659. package/types/app/reply-streams.d.ts.map +0 -1
  660. package/types/app/respondant.d.ts +0 -63
  661. package/types/app/respondant.d.ts.map +0 -1
  662. package/types/app/runtime-services.d.ts +0 -26
  663. package/types/app/runtime-services.d.ts.map +0 -1
  664. package/types/app/runtime-turn.d.ts.map +0 -1
  665. package/types/app/schema-resolving.d.ts.map +0 -1
  666. package/types/app/signaling.d.ts.map +0 -1
  667. package/types/app/socket-source.d.ts.map +0 -1
  668. package/types/app/stored-replies.d.ts.map +0 -1
  669. package/types/app/tcp-conversation.d.ts +0 -27
  670. package/types/app/tcp-conversation.d.ts.map +0 -1
  671. package/types/app/tcp-egress.d.ts +0 -49
  672. package/types/app/tcp-egress.d.ts.map +0 -1
  673. package/types/app/verifier-agent.d.ts +0 -92
  674. package/types/app/verifier-agent.d.ts.map +0 -1
  675. package/types/app/verifying.d.ts.map +0 -1
  676. package/types/app/version.d.ts.map +0 -1
  677. package/types/app/witnessing.d.ts +0 -223
  678. package/types/app/witnessing.d.ts.map +0 -1
  679. package/types/core/eventing.d.ts.map +0 -1
  680. package/types/core/exchange-proofing.d.ts.map +0 -1
  681. package/types/core/index.d.ts +0 -24
  682. package/types/core/index.d.ts.map +0 -1
  683. package/types/core/kever-decisions.d.ts.map +0 -1
  684. package/types/core/kever.d.ts.map +0 -1
  685. package/types/core/kram-auth.d.ts.map +0 -1
  686. package/types/core/kram-policy.d.ts.map +0 -1
  687. package/types/core/kram-pruning.d.ts.map +0 -1
  688. package/types/core/kram-signatures.d.ts.map +0 -1
  689. package/types/core/kram-staging.d.ts.map +0 -1
  690. package/types/core/kram-time.d.ts.map +0 -1
  691. package/types/core/kraming.d.ts.map +0 -1
  692. package/types/core/mailbox-topics.d.ts.map +0 -1
  693. package/types/core/protocol-exchanging.d.ts.map +0 -1
  694. package/types/core/witnesses.d.ts.map +0 -1
  695. package/types/db/exchange-nests.d.ts +0 -15
  696. package/types/db/exchange-nests.d.ts.map +0 -1
  697. package/types/db/exchange-records.d.ts +0 -33
  698. package/types/db/exchange-records.d.ts.map +0 -1
  699. package/types/db/kel-replay.d.ts.map +0 -1
  700. package/types/db/kram-factors.d.ts.map +0 -1
  701. package/types/db/mailboxing.d.ts.map +0 -1
  702. package/types/db/payload-archive.d.ts +0 -70
  703. package/types/db/payload-archive.d.ts.map +0 -1
  704. package/types/db/payload-store.d.ts +0 -40
  705. package/types/db/payload-store.d.ts.map +0 -1
  706. package/types/db/payload-view.d.ts +0 -4
  707. package/types/db/payload-view.d.ts.map +0 -1
  708. package/types/db/tel-replay.d.ts.map +0 -1
  709. package/types/db/verifier-cueing.d.ts +0 -46
  710. package/types/db/verifier-cueing.d.ts.map +0 -1
  711. package/types/db/witness-replay.d.ts.map +0 -1
  712. package/types/vdr/credential-tsn.d.ts +0 -23
  713. package/types/vdr/credential-tsn.d.ts.map +0 -1
  714. package/types/vdr/registry-tsn.d.ts +0 -28
  715. package/types/vdr/registry-tsn.d.ts.map +0 -1
  716. /package/esm/keri/npm/src/app/{schema-resolving.js → credentials/schema-resolving.js} +0 -0
  717. /package/esm/keri/npm/src/app/{challenging.js → identity/challenging.js} +0 -0
  718. /package/esm/keri/npm/src/app/{protocol-host-policy.js → protocol/protocol-host-policy.js} +0 -0
  719. /package/esm/keri/npm/src/app/{runtime-turn.js → runtime/runtime-turn.js} +0 -0
  720. /package/esm/keri/npm/src/{app/cli → cli}/common/rendering.js +0 -0
  721. /package/esm/keri/npm/src/{app/cli → cli/tools}/annotate-color.js +0 -0
  722. /package/esm/keri/npm/src/core/{witnesses.js → kel/witnesses.js} +0 -0
  723. /package/esm/keri/npm/src/core/{kram-auth.js → mailbox/kram-auth.js} +0 -0
  724. /package/esm/keri/npm/src/core/{mailbox-topics.js → mailbox/mailbox-topics.js} +0 -0
  725. /package/types/app/{signaling.d.ts → notifications/signaling.d.ts} +0 -0
  726. /package/types/app/{runtime-turn.d.ts → runtime/runtime-turn.d.ts} +0 -0
  727. /package/types/{app/cli → cli}/common/rendering.d.ts +0 -0
  728. /package/types/{app/cli → cli/endpoints}/loc.d.ts +0 -0
  729. /package/types/{app/cli → cli/identity}/aid.d.ts +0 -0
  730. /package/types/{app/cli → cli/identity}/delegate.d.ts +0 -0
  731. /package/types/{app/cli → cli/identity}/export.d.ts +0 -0
  732. /package/types/{app/cli → cli/identity}/list.d.ts +0 -0
  733. /package/types/{app/cli → cli/messaging}/notifications.d.ts +0 -0
  734. /package/types/{app/cli → cli}/output.d.ts +0 -0
  735. /package/types/{app/cli → cli/tools}/annotate-color.d.ts +0 -0
  736. /package/types/{app/cli → cli/tools}/annotate.d.ts +0 -0
  737. /package/types/{app/cli → cli/tools}/benchmark.d.ts +0 -0
  738. /package/types/{app/cli → cli/tools}/db-dump.d.ts +0 -0
  739. /package/types/{app/cli → cli/tools}/saidify.d.ts +0 -0
  740. /package/types/{app/cli → cli/tools}/verify.d.ts +0 -0
  741. /package/types/core/{witnesses.d.ts → kel/witnesses.d.ts} +0 -0
  742. /package/types/core/{mailbox-topics.d.ts → mailbox/mailbox-topics.d.ts} +0 -0
@@ -0,0 +1,702 @@
1
+ import * as dntShim from "../../_dnt.shims.js";
2
+ import { concatBytes, Counter, parse, SerderKERI } from "cesr-ts";
3
+ import { action, spawn } from "effection";
4
+ import { Organizer } from "../../app/identity/organizing.js";
5
+ import { credentialSaidFromGrant, ipexCredentialAdmit, ipexCredentialGrant, processCredentialPresentationArtifacts, storedGrantArtifacts, validateAdmitGrant, } from "../../app/ipex/ipex-credentialing.js";
6
+ import { approveMultisigIpex, approveStoredMultisigIpexWrappers, findPendingMultisigIpex, groupIpexPartial, publishInitialGroupIpex, requireStoredExchange, sendCompletedGroupIpex, sendCredentialStream, storedExchangeMessage, storedMultisigIpexBody, } from "../../app/ipex/ipex-grouping.js";
7
+ import { IPEX_ADMIT_ROUTE, IPEX_AGREE_ROUTE, IPEX_APPLY_ROUTE, IPEX_GRANT_ROUTE, IPEX_OFFER_ROUTE, IPEX_SPURN_ROUTE, validateIpexReply, } from "../../app/ipex/ipexing.js";
8
+ import { isLocalGroupHab, localGroupMember } from "../../app/multisig/group-members.js";
9
+ import { MULTISIG_EXN_ROUTE } from "../../app/multisig/grouping.js";
10
+ import { abortable } from "../../app/runtime/abortable.js";
11
+ import { runAgentRuntime, settleMailboxPollBatch } from "../../app/runtime/agent-runtime.js";
12
+ import { chunkBytes, collectBytes, fileBytes } from "../../app/transport/byte-source.js";
13
+ import { parseGvrsn } from "../../core/attachment-countering.js";
14
+ import { ValidationError } from "../../core/errors.js";
15
+ import { exchange } from "../../core/exchange/protocol-exchanging.js";
16
+ import { CREDENTIAL_MAILBOX_TOPIC } from "../../core/mailbox/mailbox-topics.js";
17
+ import { withAgentRuntime } from "../common/context.js";
18
+ import { parseBooleanOption, parseNumberOption, parseStringOption } from "../common/parsing.js";
19
+ /**
20
+ * Implement `tufa ipex apply` by sending a schema/attribute request EXN.
21
+ *
22
+ * @param args Parsed command flags and positionals; required identifiers and policy values are validated before effects.
23
+ */
24
+ export function* ipexApplyCommand(args) {
25
+ const ipexArgs = ipexBaseArgs(args);
26
+ const timeout = nonNegativeNumber(args.approvalTimeoutSeconds, 60, "approval timeout seconds");
27
+ const schema = parseStringOption(args.schema, "schema");
28
+ requireNonEmpty(schema, "Schema");
29
+ const attrs = parseJsonArg(parseStringOption(args.attrs, "attrs")) ?? {};
30
+ return yield* withIpexRuntime(ipexArgs, function* ({ hby, runtime }) {
31
+ const hab = requireHab(hby, ipexArgs.alias);
32
+ const recipient = new Organizer(hby.db, hby.signator).resolveRecipient(requireString(ipexArgs.recipient, "Recipient"));
33
+ const prepared = exchange(IPEX_APPLY_ROUTE, {
34
+ m: ipexArgs.message ?? "",
35
+ s: schema,
36
+ a: attrs,
37
+ i: recipient,
38
+ }, { sender: hab.pre, recipient });
39
+ return yield* sendConversation(hby, runtime, hab, recipient, prepared, timeout);
40
+ });
41
+ }
42
+ /**
43
+ * Implement `tufa ipex offer` with one embedded ACDC stream reference.
44
+ *
45
+ * @param args Parsed command flags and positionals; required identifiers and policy values are validated before effects.
46
+ */
47
+ export function* ipexOfferCommand(args) {
48
+ const ipexArgs = ipexBaseArgs(args);
49
+ const timeout = nonNegativeNumber(args.approvalTimeoutSeconds, 60, "approval timeout seconds");
50
+ const acdcFile = parseStringOption(args.acdc, "acdc");
51
+ requireNonEmpty(acdcFile, "ACDC file");
52
+ const apply = parseStringOption(args.apply, "apply");
53
+ return yield* withIpexRuntime(ipexArgs, function* ({ hby, runtime }) {
54
+ const hab = requireHab(hby, ipexArgs.alias);
55
+ const recipient = new Organizer(hby.db, hby.signator).resolveRecipient(requireString(ipexArgs.recipient, "Recipient"));
56
+ if (apply)
57
+ requireConversationPrior(hby, hab, recipient, apply, "offer");
58
+ const prepared = exchange(IPEX_OFFER_ROUTE, { m: ipexArgs.message ?? "" }, {
59
+ sender: hab.pre,
60
+ recipient,
61
+ dig: apply,
62
+ embeds: { acdc: dntShim.Deno.readFileSync(acdcFile) },
63
+ });
64
+ return yield* sendConversation(hby, runtime, hab, recipient, prepared, timeout);
65
+ });
66
+ }
67
+ /** Implement `tufa ipex agree` as a response to an accepted offer EXN. */
68
+ export function* ipexAgreeCommand(args) {
69
+ return yield* sendPriorResponse(args, IPEX_AGREE_ROUTE, "offer");
70
+ }
71
+ /**
72
+ * Send an initial IPEX rejection using the donor's stream-delivery operation.
73
+ * @param args Command values identifying recipient, prior exchange and optional message.
74
+ */
75
+ export function* ipexSpurnCommand(args) {
76
+ const ipexArgs = ipexBaseArgs(args);
77
+ const timeout = nonNegativeNumber(args.approvalTimeoutSeconds, 60, "approval timeout seconds");
78
+ const prior = requireString(parseStringOption(args.prior, "prior"), "Prior message");
79
+ return yield* withIpexRuntime(ipexArgs, function* ({ hby, runtime }) {
80
+ const hab = requireHab(hby, ipexArgs.alias);
81
+ const dest = new Organizer(hby.db, hby.signator).resolveRecipient(requireString(ipexArgs.recipient, "Recipient"));
82
+ requireConversationPrior(hby, hab, dest, prior, "spurn");
83
+ const prepared = exchange(IPEX_SPURN_ROUTE, { m: ipexArgs.message ?? "" }, {
84
+ sender: hab.pre,
85
+ recipient: dest,
86
+ dig: prior,
87
+ });
88
+ return yield* sendConversation(hby, runtime, hab, dest, prepared, timeout);
89
+ });
90
+ }
91
+ /**
92
+ * Implement `tufa ipex grant` and optional grant artifact export/delivery.
93
+ *
94
+ * @param args Parsed command flags and positionals; required identifiers and policy values are validated before effects.
95
+ */
96
+ export function* ipexGrantCommand(args) {
97
+ const ipexArgs = {
98
+ ...ipexBaseArgs(args),
99
+ said: parseStringOption(args.said, "said"),
100
+ agree: parseStringOption(args.agree, "agree"),
101
+ approvalTimeoutSeconds: nonNegativeNumber(args.approvalTimeoutSeconds, 120, "approval timeout seconds"),
102
+ };
103
+ requireNonEmpty(ipexArgs.said, "Credential SAID");
104
+ return yield* withIpexRuntime(ipexArgs, function* ({ hby, runtime, reger }) {
105
+ const hab = requireHab(hby, ipexArgs.alias);
106
+ const selectedRecipient = requireString(ipexArgs.recipient, "Recipient");
107
+ // Offline export accepts the supplied AID; network delivery resolves contacts/endpoints.
108
+ let recipient;
109
+ if (ipexArgs.out) {
110
+ recipient = resolveAid(hby, selectedRecipient);
111
+ }
112
+ else {
113
+ recipient = new Organizer(hby.db, hby.signator).resolveRecipient(selectedRecipient);
114
+ }
115
+ if (ipexArgs.agree)
116
+ requireConversationPrior(hby, hab, recipient, ipexArgs.agree, "grant");
117
+ const group = isLocalGroupHab(hby, hab);
118
+ const grant = ipexCredentialGrant({
119
+ hby,
120
+ hab,
121
+ reger,
122
+ recipient,
123
+ credentialSaid: ipexArgs.said,
124
+ message: ipexArgs.message ?? "",
125
+ options: {
126
+ agree: ipexArgs.agree ? hby.db.exns.get([ipexArgs.agree]) : null,
127
+ gvrsn: ipexArgs.gvrsn,
128
+ },
129
+ sign: !group,
130
+ });
131
+ const genus = grant.grant.gvrsn ?? ipexArgs.gvrsn ?? grant.grant.pvrsn;
132
+ const wire = group ? groupIpexPartial(hby, hab, grant.grant, grant.attachments, genus) : grant.wire;
133
+ const signer = group ? localGroupMember(hby, hab.pre) : hab;
134
+ const host = yield* spawn(() => runAgentRuntime(runtime, { hab: signer, pollMailbox: group }));
135
+ try {
136
+ yield* runtime.reactor.processBytes(concatBytes(Counter.makeGVC(genus), wire), { local: true });
137
+ yield* runtime.protocol.processEscrowsOnce();
138
+ if (!group) {
139
+ if (!runtime.exc.complete(grant.grant.said))
140
+ throw new ValidationError("Local IPEX grant was not accepted.");
141
+ const deliveries = [];
142
+ if (!ipexArgs.out) {
143
+ deliveries.push(...yield* sendCredentialStream(runtime.postman, hab, recipient, [...grant.support, wire]));
144
+ }
145
+ if (ipexArgs.out)
146
+ dntShim.Deno.writeFileSync(ipexArgs.out, concatBytes(...grant.support, wire));
147
+ return { grant: grant.grant, credential: ipexArgs.said, support: grant.support.length, deliveries };
148
+ }
149
+ const publication = yield* publishInitialGroupIpex(hby, runtime.protocol, runtime.postman, hab, wire, genus);
150
+ const complete = yield* waitForGroupIpexApproval(hby, runtime.protocol, grant.grant.said, ipexArgs.approvalTimeoutSeconds, reger);
151
+ const deliveries = [...publication.deliveries];
152
+ if (!complete) {
153
+ return {
154
+ grant: grant.grant,
155
+ credential: ipexArgs.said,
156
+ support: grant.support.length,
157
+ deliveries,
158
+ group: { ...publication, complete: false, lead: null },
159
+ };
160
+ }
161
+ const completedGrant = requireStoredExchange(hby, grant.grant.said);
162
+ const completedWire = storedExchangeMessage(hby, completedGrant, genus);
163
+ const lead = runtime.exc.lead(hab, completedGrant.said);
164
+ if (ipexArgs.out)
165
+ dntShim.Deno.writeFileSync(ipexArgs.out, concatBytes(...grant.support, completedWire));
166
+ else if (lead) {
167
+ deliveries.push(...yield* sendCredentialStream(runtime.postman, signer, recipient, [...grant.support, completedWire]));
168
+ }
169
+ return {
170
+ grant: completedGrant,
171
+ credential: ipexArgs.said,
172
+ support: grant.support.length,
173
+ deliveries,
174
+ group: { ...publication, complete: true, lead },
175
+ };
176
+ }
177
+ finally {
178
+ yield* host.halt();
179
+ }
180
+ });
181
+ }
182
+ /**
183
+ * Implement `tufa ipex admit` and holder-side grant artifact processing.
184
+ *
185
+ * @param args Parsed command flags and positionals; required identifiers and policy values are validated before effects.
186
+ */
187
+ export function* ipexAdmitCommand(args) {
188
+ const ipexArgs = {
189
+ ...ipexBaseArgs(args),
190
+ said: parseStringOption(args.said, "said"),
191
+ grantFile: parseStringOption(args.grantFile, "grantFile"),
192
+ noWait: parseBooleanOption(args.noWait, "noWait"),
193
+ timeout: nonNegativeNumber(args.timeout, 60, "credential timeout seconds"),
194
+ approvalTimeoutSeconds: nonNegativeNumber(args.approvalTimeoutSeconds, 60, "approval timeout seconds"),
195
+ };
196
+ if (!ipexArgs.said && !ipexArgs.grantFile)
197
+ throw new ValidationError("Grant SAID or grant file is required.");
198
+ return yield* withIpexRuntime(ipexArgs, function* ({ hby, runtime, reger }) {
199
+ const hab = requireHab(hby, ipexArgs.alias);
200
+ // Validate the entire file before admitting any prefix or starting host work.
201
+ const selected = yield* loadGrant(hby, ipexArgs);
202
+ const group = isLocalGroupHab(hby, hab);
203
+ const signer = group ? localGroupMember(hby, hab.pre) : hab;
204
+ const host = yield* spawn(() => runAgentRuntime(runtime, { hab: signer, pollMailbox: group }));
205
+ try {
206
+ if (selected.wire)
207
+ yield* runtime.reactor.processBytes(selected.wire);
208
+ const grant = requireStoredExchange(hby, selected.grant.said);
209
+ const recipient = grantSender(grant);
210
+ requireConversationPrior(hby, hab, recipient, grant.said, "admit");
211
+ const credential = validateAdmitGrant(grant, hab.pre, reger, false);
212
+ if (!ipexArgs.noWait
213
+ && !(yield* settleGrantCredential(hby, runtime.protocol, reger, grant, hab.pre, ipexArgs.gvrsn, ipexArgs.timeout))) {
214
+ return { admit: null, grant, credential, saved: false, deliveries: [] };
215
+ }
216
+ const saved = !!reger.saved.get([credential]);
217
+ const prepared = ipexCredentialAdmit({
218
+ hab,
219
+ reger,
220
+ grant,
221
+ message: ipexArgs.message ?? "",
222
+ options: { requireSaved: !ipexArgs.noWait, gvrsn: ipexArgs.gvrsn },
223
+ sign: !group,
224
+ });
225
+ const genus = prepared.admit.gvrsn ?? ipexArgs.gvrsn ?? prepared.admit.pvrsn;
226
+ const wire = group ? groupIpexPartial(hby, hab, prepared.admit, prepared.attachments, genus) : prepared.wire;
227
+ yield* runtime.reactor.processBytes(concatBytes(Counter.makeGVC(genus), wire), { local: true });
228
+ yield* runtime.protocol.processEscrowsOnce();
229
+ const deliveries = [];
230
+ if (!group) {
231
+ if (!runtime.exc.complete(prepared.admit.said)) {
232
+ throw new ValidationError("Local IPEX admit was not accepted.");
233
+ }
234
+ if (ipexArgs.out)
235
+ dntShim.Deno.writeFileSync(ipexArgs.out, wire);
236
+ else
237
+ deliveries.push(...yield* sendCredentialStream(runtime.postman, signer, recipient, [wire]));
238
+ return { admit: prepared.admit, grant, credential, saved, deliveries };
239
+ }
240
+ const publication = yield* publishInitialGroupIpex(hby, runtime.protocol, runtime.postman, hab, wire, genus);
241
+ deliveries.push(...publication.deliveries);
242
+ const complete = yield* waitForGroupIpexApproval(hby, runtime.protocol, prepared.admit.said, ipexArgs.approvalTimeoutSeconds, reger);
243
+ const lead = complete ? runtime.exc.lead(hab, prepared.admit.said) : null;
244
+ if (complete) {
245
+ const completedWire = storedExchangeMessage(hby, requireStoredExchange(hby, prepared.admit.said), genus);
246
+ if (ipexArgs.out)
247
+ dntShim.Deno.writeFileSync(ipexArgs.out, completedWire);
248
+ else if (lead) {
249
+ deliveries.push(...yield* sendCredentialStream(runtime.postman, signer, recipient, [completedWire]));
250
+ }
251
+ }
252
+ return { admit: prepared.admit, grant, credential, saved, deliveries, group: { ...publication, complete, lead } };
253
+ }
254
+ finally {
255
+ yield* host.halt();
256
+ }
257
+ });
258
+ }
259
+ /** Implement `tufa ipex list` by printing locally accepted IPEX EXNs. */
260
+ export function* ipexListCommand(args) {
261
+ const ipexArgs = ipexBaseArgs(args);
262
+ yield* withIpexRuntime(ipexArgs, function* ({ hby }) {
263
+ for (const [, exn] of hby.db.exns.getTopItemIter()) {
264
+ const route = exn.route ?? "";
265
+ if (!route.startsWith("/ipex/")) {
266
+ continue;
267
+ }
268
+ console.log(JSON.stringify({
269
+ said: exn.said,
270
+ route,
271
+ sender: exn.ked?.i,
272
+ prior: exn.ked?.p,
273
+ }));
274
+ }
275
+ });
276
+ }
277
+ /** Observe settled mailbox input and stored grant replay until new IPEX state or an elapsed deadline. */
278
+ export function* ipexPollCommand(args) {
279
+ const ipexArgs = ipexBaseArgs(args);
280
+ const timeoutMs = nonNegativeNumber(args.timeout, 40, "poll timeout seconds") * 1000;
281
+ return yield* withIpexRuntime(ipexArgs, function* ({ hby, runtime, reger }) {
282
+ const hab = ipexArgs.alias ? requireHab(hby, ipexArgs.alias) : undefined;
283
+ const beforeExns = new Set([...hby.db.exns.getTopItemIter()]
284
+ .map(([, exn]) => exn.said)
285
+ .filter((said) => typeof said === "string"));
286
+ const beforeSaved = savedCredentials(reger);
287
+ let batchesSeen = 0;
288
+ let messagesSeen = 0;
289
+ const signer = hab && isLocalGroupHab(hby, hab) ? localGroupMember(hby, hab.pre) : hab;
290
+ const deadline = Date.now() + timeoutMs;
291
+ let receiving = 0;
292
+ const host = yield* spawn(() => runAgentRuntime(runtime, { hab: signer, pollMailbox: false }));
293
+ try {
294
+ const mailbox = yield* spawn(function* () {
295
+ yield* runtime.mailboxPoller.pollDo(function* (batch) {
296
+ receiving++;
297
+ try {
298
+ yield* settleMailboxPollBatch(runtime, batch);
299
+ batchesSeen++;
300
+ messagesSeen += batch.messages.length;
301
+ }
302
+ finally {
303
+ receiving--;
304
+ }
305
+ });
306
+ });
307
+ try {
308
+ while (true) {
309
+ yield* processStoredCredentialGrants(hby, runtime, reger, ipexArgs.gvrsn);
310
+ // State may become visible before the rest of a delivered batch settles.
311
+ if (receiving === 0
312
+ && (newIpexMessages(hby, beforeExns).length > 0 || newSavedCredentials(reger, beforeSaved).length > 0)) {
313
+ break;
314
+ }
315
+ if (Date.now() >= deadline)
316
+ break;
317
+ yield* sleep(Math.min(250, deadline - Date.now()));
318
+ }
319
+ }
320
+ finally {
321
+ yield* mailbox.halt();
322
+ }
323
+ }
324
+ finally {
325
+ yield* host.halt();
326
+ }
327
+ return {
328
+ batches: batchesSeen,
329
+ messages: messagesSeen,
330
+ ipex: newIpexMessages(hby, beforeExns),
331
+ saved: newSavedCredentials(reger, beforeSaved),
332
+ };
333
+ });
334
+ }
335
+ /**
336
+ * Implement multisig IPEX approval over a pending `/multisig/exn` wrapper.
337
+ *
338
+ * @param args Parsed command flags and positionals; required identifiers and policy values are validated before effects.
339
+ */
340
+ export function* ipexJoinCommand(args) {
341
+ const ipexArgs = {
342
+ ...ipexBaseArgs(args),
343
+ said: parseStringOption(args.said, "said"),
344
+ auto: parseBooleanOption(args.auto, "auto"),
345
+ approvalTimeoutSeconds: nonNegativeNumber(args.approvalTimeoutSeconds, 60, "approval timeout seconds"),
346
+ };
347
+ return yield* withIpexRuntime(ipexArgs, ({ hby, runtime, reger }) => joinIpexProposal(hby, runtime, reger, ipexArgs));
348
+ }
349
+ /** Borrow existing protocol owners for one selected proposal; review never signs. */
350
+ export function* joinIpexProposal(hby, runtime, reger, ipexArgs) {
351
+ const pollHab = ipexArgs.alias ? requireHab(hby, ipexArgs.alias) : undefined;
352
+ const exn = ipexArgs.said ? hby.db.exns.get([ipexArgs.said]) : yield* nextPendingMultisigIpex(hby, runtime, {
353
+ hab: pollHab,
354
+ timeoutMs: ipexArgs.approvalTimeoutSeconds * 1000,
355
+ });
356
+ if (!exn) {
357
+ throw new ValidationError(ipexArgs.said
358
+ ? `IPEX message ${ipexArgs.said} not found.`
359
+ : "No pending multisig IPEX proposal was available to join.");
360
+ }
361
+ if (exn.route?.startsWith("/ipex/")) {
362
+ return { exn };
363
+ }
364
+ if (exn.route !== MULTISIG_EXN_ROUTE) {
365
+ throw new ValidationError(`EXN ${ipexArgs.said} is not an IPEX or multisig IPEX message.`);
366
+ }
367
+ const embedded = storedMultisigIpexBody(hby.db, exn);
368
+ if (!embedded?.route?.startsWith("/ipex/")) {
369
+ throw new ValidationError(`Multisig EXN ${ipexArgs.said} does not wrap an IPEX message.`);
370
+ }
371
+ const group = embedded.pre;
372
+ if (!group || !hby.habs.has(group)) {
373
+ throw new ValidationError(`Multisig IPEX sender ${group ?? "<missing>"} is not a local group AID.`);
374
+ }
375
+ if (!ipexArgs.auto) {
376
+ return { exn, group: { embedded, accepted: null, approved: null, lead: null, messages: [], deliveries: [] } };
377
+ }
378
+ const host = yield* spawn(() => runAgentRuntime(runtime, { hab: localGroupMember(hby, group) }));
379
+ let credentialSaved;
380
+ try {
381
+ if (embedded.pvrsn.major === 1 && embedded.route === IPEX_ADMIT_ROUTE) {
382
+ if (!reger)
383
+ throw new ValidationError("VDR runtime did not open Reger.");
384
+ const prior = embedded.ked?.p;
385
+ const grant = typeof prior === "string" && prior.length > 0 ? hby.db.exns.get([prior]) : null;
386
+ credentialSaved = !!grant && (yield* settleGrantCredential(hby, runtime.protocol, reger, grant, group, ipexArgs.gvrsn, ipexArgs.approvalTimeoutSeconds));
387
+ if (!credentialSaved) {
388
+ return {
389
+ exn,
390
+ group: {
391
+ embedded,
392
+ accepted: runtime.exc.complete(embedded.said),
393
+ approved: false,
394
+ lead: null,
395
+ credentialSaved,
396
+ messages: [],
397
+ deliveries: [],
398
+ },
399
+ };
400
+ }
401
+ }
402
+ // Collect independent stored child proofs before deciding completion or
403
+ // electing delivery, without losing the original approved wrapper identity.
404
+ yield* approveStoredMultisigIpexWrappers(hby, runtime.protocol, embedded.said, reger);
405
+ const approval = yield* approveMultisigIpex(hby, runtime.protocol, runtime.postman, reger, exn, {
406
+ publish: true,
407
+ gvrsn: ipexArgs.gvrsn,
408
+ });
409
+ return {
410
+ exn,
411
+ group: {
412
+ embedded,
413
+ accepted: approval.accepted,
414
+ approved: approval.approved !== null,
415
+ lead: runtime.exc.lead(hby.habs.get(group), embedded.said),
416
+ credentialSaved,
417
+ messages: approval.messages,
418
+ deliveries: approval.deliveries,
419
+ },
420
+ };
421
+ }
422
+ finally {
423
+ yield* host.halt();
424
+ }
425
+ }
426
+ /**
427
+ * Send a prior-correlated IPEX response through the command's single host.
428
+ * Validate the accepted predecessor before signing, then return group/transport
429
+ * facts after joining workers. The outer resource owner closes stores afterward.
430
+ *
431
+ * @param args Parsed IPEX command flags, including recipient and prior-message SAID.
432
+ * @param route Response exchange route to construct.
433
+ * @param priorLabel Argument key naming the required prior message.
434
+ */
435
+ function* sendPriorResponse(args, route, priorLabel) {
436
+ const ipexArgs = ipexBaseArgs(args);
437
+ const timeout = nonNegativeNumber(args.approvalTimeoutSeconds, 60, "approval timeout seconds");
438
+ const prior = parseStringOption(args[priorLabel], priorLabel);
439
+ requireNonEmpty(prior, priorLabel);
440
+ return yield* withIpexRuntime(ipexArgs, function* ({ hby, runtime }) {
441
+ const hab = requireHab(hby, ipexArgs.alias);
442
+ const recipient = new Organizer(hby.db, hby.signator).resolveRecipient(requireString(ipexArgs.recipient, "Recipient"));
443
+ requireConversationPrior(hby, hab, recipient, prior, "agree");
444
+ const prepared = exchange(route, { m: ipexArgs.message ?? "" }, { sender: hab.pre, recipient, dig: prior });
445
+ return yield* sendConversation(hby, runtime, hab, recipient, prepared, timeout);
446
+ });
447
+ }
448
+ /** Validate an accepted predecessor and its known parties before any local signing. */
449
+ function requireConversationPrior(hby, hab, recipient, said, verb) {
450
+ const prior = hby.db.exns.get([said]);
451
+ if (!prior)
452
+ throw new ValidationError("Prior IPEX exchange is not accepted.");
453
+ validateIpexReply(prior, verb, hab.pre, recipient);
454
+ if (hby.db.erpy.get([said])) {
455
+ throw new ValidationError("Prior IPEX exchange already has an accepted response; resume the existing exchange.");
456
+ }
457
+ }
458
+ /**
459
+ * Run one command host through local intake, member approval and concrete delivery.
460
+ * Local conversation state survives transport failure. Group publication and business
461
+ * acceptance are separate facts; only an accepted child's elected member sends it
462
+ * externally. The caller's resource scope closes stores after this host joins.
463
+ */
464
+ function* sendConversation(hby, runtime, hab, recipient, [exn, attachments], timeout) {
465
+ const group = isLocalGroupHab(hby, hab);
466
+ const genus = exn.gvrsn ?? exn.pvrsn;
467
+ const wire = group
468
+ ? groupIpexPartial(hby, hab, exn, attachments, genus)
469
+ : concatBytes(hab.endorse(exn, { pipelined: false, gvrsn: genus }), attachments);
470
+ const signer = group ? localGroupMember(hby, hab.pre) : hab;
471
+ const host = yield* spawn(() => runAgentRuntime(runtime, { hab: signer, pollMailbox: group }));
472
+ try {
473
+ yield* runtime.reactor.processBytes(concatBytes(Counter.makeGVC(genus), wire), { local: true });
474
+ yield* runtime.protocol.processEscrowsOnce();
475
+ if (!group) {
476
+ if (!runtime.exc.complete(exn.said))
477
+ throw new ValidationError("Local IPEX exchange was not accepted.");
478
+ let deliveries;
479
+ if (exn.route === IPEX_SPURN_ROUTE) {
480
+ deliveries = yield* sendCredentialStream(runtime.postman, hab, recipient, [wire]);
481
+ }
482
+ else {
483
+ const evt = runtime.postman.send({ src: hab.pre, dest: recipient, topic: CREDENTIAL_MAILBOX_TOPIC, msg: wire }, { notify: true });
484
+ const outcome = yield* runtime.postman.wait(evt);
485
+ if (outcome.kin === "failed")
486
+ throw outcome.error;
487
+ deliveries = outcome.deliveries;
488
+ }
489
+ return { exn, deliveries };
490
+ }
491
+ const publication = yield* publishInitialGroupIpex(hby, runtime.protocol, runtime.postman, hab, wire, genus);
492
+ const complete = yield* waitForGroupIpexApproval(hby, runtime.protocol, exn.said, timeout, null);
493
+ const lead = complete ? runtime.exc.lead(hab, exn.said) : null;
494
+ const deliveries = [...publication.deliveries];
495
+ if (lead)
496
+ deliveries.push(...yield* sendCompletedGroupIpex(hby, runtime.postman, null, hab, exn, genus));
497
+ return { exn, deliveries, group: { ...publication, complete, lead } };
498
+ }
499
+ finally {
500
+ yield* host.halt();
501
+ }
502
+ }
503
+ function ipexBaseArgs(args) {
504
+ return {
505
+ name: parseStringOption(args.name, "name"),
506
+ base: parseStringOption(args.base, "base"),
507
+ headDirPath: parseStringOption(args.headDirPath, "headDirPath"),
508
+ passcode: parseStringOption(args.passcode, "passcode"),
509
+ compat: parseBooleanOption(args.compat, "compat"),
510
+ alias: parseStringOption(args.alias, "alias"),
511
+ recipient: parseStringOption(args.recipient, "recipient"),
512
+ message: parseStringOption(args.message, "message"),
513
+ out: parseStringOption(args.out, "out"),
514
+ gvrsn: parseGvrsn(args.gvrsn),
515
+ };
516
+ }
517
+ function* withIpexRuntime(args, use) {
518
+ requireNonEmpty(args.name, "Name");
519
+ return yield* withAgentRuntime(args, {
520
+ compat: args.compat ?? false,
521
+ }, function* ({ hby, runtime }) {
522
+ const rgy = runtime.vdr;
523
+ if (!rgy)
524
+ throw new ValidationError("Legacy credential registry is unavailable in this runtime.");
525
+ const reger = rgy.reger;
526
+ return yield* use({ hby, runtime, reger });
527
+ });
528
+ }
529
+ function requireHab(hby, alias) {
530
+ requireNonEmpty(alias, "Alias");
531
+ const hab = hby.habByName(alias);
532
+ if (!hab?.pre) {
533
+ throw new ValidationError(`No local AID found for alias ${alias}.`);
534
+ }
535
+ return hab;
536
+ }
537
+ function resolveAid(hby, value) {
538
+ return hby.habByName(value)?.pre ?? value;
539
+ }
540
+ function requireString(value, label) {
541
+ requireNonEmpty(value, label);
542
+ return value;
543
+ }
544
+ function nonNegativeNumber(value, fallback, label) {
545
+ const parsed = parseNumberOption(value, label) ?? fallback;
546
+ if (parsed < 0 || !Number.isFinite(parsed * 1000)) {
547
+ throw new ValidationError(`${label} must be a finite nonnegative number.`);
548
+ }
549
+ return parsed;
550
+ }
551
+ function requireNonEmpty(value, label) {
552
+ if (!value) {
553
+ throw new ValidationError(`${label} is required and cannot be empty.`);
554
+ }
555
+ }
556
+ function newIpexMessages(hby, before) {
557
+ const messages = [];
558
+ for (const [, exn] of hby.db.exns.getTopItemIter()) {
559
+ const said = exn.said;
560
+ const route = exn.route ?? "";
561
+ if (!said || before.has(said) || !route.startsWith("/ipex/")) {
562
+ continue;
563
+ }
564
+ messages.push(exn);
565
+ }
566
+ return messages;
567
+ }
568
+ function savedCredentials(reger) {
569
+ return new Set([...reger.saved.getTopItemIter()].map(([keys]) => keys[0]).filter((key) => !!key));
570
+ }
571
+ function newSavedCredentials(reger, before) {
572
+ return [...savedCredentials(reger)].filter((said) => !before.has(said));
573
+ }
574
+ /** Settle accepted grant artifacts before the poll command reports newly saved credentials. */
575
+ function* processStoredCredentialGrants(hby, runtime, reger, gvrsn) {
576
+ for (const [, grant] of hby.db.exns.getTopItemIter()) {
577
+ if (grant.route !== IPEX_GRANT_ROUTE) {
578
+ continue;
579
+ }
580
+ const credentialSaid = credentialSaidFromGrant(grant);
581
+ if (!credentialSaid || reger.saved.get([credentialSaid])) {
582
+ continue;
583
+ }
584
+ yield* processCredentialPresentationArtifacts(runtime.protocol, storedGrantArtifacts(hby, grant, gvrsn));
585
+ }
586
+ }
587
+ function parseJsonArg(value) {
588
+ if (!value) {
589
+ return undefined;
590
+ }
591
+ const text = value.startsWith("@") ? dntShim.Deno.readTextFileSync(value.slice(1)) : value;
592
+ const parsed = JSON.parse(text);
593
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
594
+ throw new ValidationError("attrs must be a JSON object.");
595
+ }
596
+ return parsed;
597
+ }
598
+ /** Scan a file through valid EOF before choosing a grant, or use its persisted exchange record. */
599
+ function* loadGrant(hby, args) {
600
+ if (args.grantFile) {
601
+ const path = args.grantFile;
602
+ return yield* abortable(async (signal) => {
603
+ let grant;
604
+ const wire = await collectBytes(fileBytes(path, { signal }));
605
+ const frames = parse(chunkBytes(wire, { signal }));
606
+ try {
607
+ while (true) {
608
+ signal.throwIfAborted();
609
+ const result = await frames.next();
610
+ signal.throwIfAborted();
611
+ if (result.done)
612
+ break;
613
+ const frame = result.value;
614
+ if (!grant && frame.body instanceof SerderKERI && frame.body.route === IPEX_GRANT_ROUTE)
615
+ grant = frame.body;
616
+ }
617
+ }
618
+ finally {
619
+ await frames.return();
620
+ }
621
+ if (grant)
622
+ return { grant, wire };
623
+ throw new ValidationError(`Grant file ${path} does not contain an IPEX grant.`);
624
+ });
625
+ }
626
+ requireNonEmpty(args.said, "Grant SAID");
627
+ const grant = hby.db.exns.get([args.said]);
628
+ if (!grant || grant.route !== IPEX_GRANT_ROUTE) {
629
+ throw new ValidationError(`Grant ${args.said} not found.`);
630
+ }
631
+ return { grant };
632
+ }
633
+ function grantSender(grant) {
634
+ const sender = grant.ked?.i;
635
+ if (typeof sender !== "string" || sender.length === 0) {
636
+ throw new ValidationError("Grant is missing sender AID.");
637
+ }
638
+ return sender;
639
+ }
640
+ /**
641
+ * Import this grant's authenticated artifacts once, then observe ordinary wallet
642
+ * escrow progress. The caller runs the host and selects the elapsed wait; no
643
+ * admit signature is produced here. Missing evidence remains pending on expiry.
644
+ */
645
+ function* settleGrantCredential(hby, protocol, reger, grant, recipient, genus, timeout) {
646
+ const said = validateAdmitGrant(grant, recipient, reger, false);
647
+ if (reger.saved.get([said]))
648
+ return true;
649
+ const deadline = Date.now() + timeout * 1000;
650
+ yield* processCredentialPresentationArtifacts(protocol, storedGrantArtifacts(hby, grant, genus));
651
+ while (!reger.saved.get([said])) {
652
+ if (Date.now() >= deadline)
653
+ return false;
654
+ yield* sleep(Math.min(250, deadline - Date.now()));
655
+ }
656
+ return true;
657
+ }
658
+ /**
659
+ * Observe one child's approvals under an elapsed deadline. The command's existing
660
+ * host owns delivery, mailbox input and escrow work throughout this wait; this
661
+ * observer neither starts workers nor changes the original event identity.
662
+ */
663
+ function* waitForGroupIpexApproval(hby, protocol, embeddedSaid, timeout, reger) {
664
+ const deadline = Date.now() + timeout * 1000;
665
+ while (!protocol.exc.complete(embeddedSaid)) {
666
+ yield* approveStoredMultisigIpexWrappers(hby, protocol, embeddedSaid, reger);
667
+ if (protocol.exc.complete(embeddedSaid))
668
+ return true;
669
+ if (Date.now() >= deadline)
670
+ return false;
671
+ yield* sleep(Math.min(250, deadline - Date.now()));
672
+ }
673
+ return true;
674
+ }
675
+ /** Observe stored proposals while the host progresses input, then join before approval. */
676
+ function* nextPendingMultisigIpex(hby, runtime, { hab, timeoutMs }) {
677
+ const found = findPendingMultisigIpex(hby.db);
678
+ if (found || timeoutMs === 0)
679
+ return found;
680
+ const signer = hab && isLocalGroupHab(hby, hab) ? localGroupMember(hby, hab.pre) : hab;
681
+ const deadline = Date.now() + timeoutMs;
682
+ const host = yield* spawn(() => runAgentRuntime(runtime, { hab: signer }));
683
+ try {
684
+ while (true) {
685
+ const pending = findPendingMultisigIpex(hby.db);
686
+ if (pending)
687
+ return pending;
688
+ if (Date.now() >= deadline)
689
+ return null;
690
+ yield* sleep(Math.min(250, deadline - Date.now()));
691
+ }
692
+ }
693
+ finally {
694
+ yield* host.halt();
695
+ }
696
+ }
697
+ function* sleep(ms) {
698
+ yield* action((resolve) => {
699
+ const timeout = setTimeout(resolve, ms);
700
+ return () => clearTimeout(timeout);
701
+ });
702
+ }