keri-ts 0.11.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 (820) hide show
  1. package/README.md +32 -2
  2. package/esm/keri/npm/src/_dnt.polyfills.js +36 -0
  3. package/esm/keri/npm/src/acdc/chaining.js +213 -0
  4. package/esm/keri/npm/src/acdc/dhking.js +716 -0
  5. package/esm/keri/npm/src/acdc/messaging.js +2 -0
  6. package/esm/keri/npm/src/acdc/observing.js +47 -40
  7. package/esm/keri/npm/src/acdc/regbasing.js +22 -22
  8. package/esm/keri/npm/src/acdc/regengine.js +88 -119
  9. package/esm/keri/npm/src/acdc/regeventing.js +163 -44
  10. package/esm/keri/npm/src/acdc/registering.js +99 -23
  11. package/esm/keri/npm/src/acdc/registraring.js +82 -46
  12. package/esm/keri/npm/src/acdc/relating.js +59 -0
  13. package/esm/keri/npm/src/acdc/salting.js +720 -0
  14. package/esm/keri/npm/src/acdc/scheming.js +103 -105
  15. package/esm/keri/npm/src/acdc/unblinding.js +1042 -0
  16. package/esm/keri/npm/src/app/{authenticating.js → bootstrap/authenticating.js} +40 -39
  17. package/esm/keri/npm/src/app/bootstrap/bootstrapping.js +109 -0
  18. package/esm/keri/npm/src/app/bootstrap/oobi-replies.js +113 -0
  19. package/esm/keri/npm/src/app/{oobiery.js → bootstrap/oobiery.js} +211 -267
  20. package/esm/keri/npm/src/app/credentials/credential-importing.js +201 -0
  21. package/esm/keri/npm/src/app/credentials/credential-proposals.js +120 -0
  22. package/esm/keri/npm/src/app/credentials/credential-revoking.js +165 -0
  23. package/esm/keri/npm/src/app/credentials/credential-workflows.js +365 -0
  24. package/esm/keri/npm/src/app/credentials/tel-publishing.js +27 -0
  25. package/esm/keri/npm/src/app/{verifying.js → credentials/verifying.js} +50 -45
  26. package/esm/keri/npm/src/app/delivery/forwarding.js +600 -0
  27. package/esm/keri/npm/src/app/delivery/introducing.js +68 -0
  28. package/esm/keri/npm/src/app/delivery/reply-streams.js +230 -0
  29. package/esm/keri/npm/src/app/delivery/respondant.js +159 -0
  30. package/esm/keri/npm/src/app/delivery/stored-replies.js +53 -0
  31. package/esm/keri/npm/src/app/exchanges/essr.js +111 -0
  32. package/esm/keri/npm/src/app/exchanges/exchange-messaging.js +66 -0
  33. package/esm/keri/npm/src/app/exchanges/exchanging.js +1354 -0
  34. package/esm/keri/npm/src/app/{challenging.js → identity/challenging.js} +13 -8
  35. package/esm/keri/npm/src/app/{configing.js → identity/configing.js} +4 -4
  36. package/esm/keri/npm/src/app/{delegating.js → identity/delegating.js} +118 -40
  37. package/esm/keri/npm/src/app/{endpoint-roleing.js → identity/endpoint-roleing.js} +43 -39
  38. package/esm/keri/npm/src/app/{habbing.js → identity/habbing.js} +258 -226
  39. package/esm/keri/npm/src/app/{keeping.js → identity/keeping.js} +60 -56
  40. package/esm/keri/npm/src/app/{organizing.js → identity/organizing.js} +47 -21
  41. package/esm/keri/npm/src/app/{ipex-building.js → ipex/ipex-building.js} +53 -55
  42. package/esm/keri/npm/src/app/ipex/ipex-credentialing.js +359 -0
  43. package/esm/keri/npm/src/app/{ipex-graph.js → ipex/ipex-graph.js} +70 -124
  44. package/esm/keri/npm/src/app/ipex/ipex-grouping.js +664 -0
  45. package/esm/keri/npm/src/app/ipex/ipex-node-authentication.js +185 -0
  46. package/esm/keri/npm/src/app/ipex/ipex-v2.js +692 -0
  47. package/esm/keri/npm/src/app/{ipexing.js → ipex/ipexing.js} +59 -10
  48. package/esm/keri/npm/src/app/mailbox/forward-handler.js +228 -0
  49. package/esm/keri/npm/src/app/{mailbox-director.js → mailbox/mailbox-director.js} +146 -139
  50. package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +305 -0
  51. package/esm/keri/npm/src/app/mailbox/mailbox-sse.js +254 -0
  52. package/esm/keri/npm/src/app/{mailboxing.js → mailbox/mailboxing.js} +117 -70
  53. package/esm/keri/npm/src/app/mailbox/topic-routing.js +54 -0
  54. package/esm/keri/npm/src/app/multisig/group-members.js +173 -0
  55. package/esm/keri/npm/src/app/multisig/grouping.js +932 -0
  56. package/esm/keri/npm/src/app/multisig/multisig-messaging.js +164 -0
  57. package/esm/keri/npm/src/app/multisig/multisig-workflows.js +821 -0
  58. package/esm/keri/npm/src/app/{notifying.js → notifications/notifying.js} +23 -50
  59. package/esm/keri/npm/src/app/notifications/signaling.js +177 -0
  60. package/esm/keri/npm/src/app/{parsering.js → protocol/parsering.js} +123 -53
  61. package/esm/keri/npm/src/app/protocol/protocol-processing.js +245 -0
  62. package/esm/keri/npm/src/app/protocol/reactor.js +55 -0
  63. package/esm/keri/npm/src/app/queries/query-replies.js +151 -0
  64. package/esm/keri/npm/src/app/queries/querying.js +306 -0
  65. package/esm/keri/npm/src/app/queries/witness-inquisitor.js +415 -0
  66. package/esm/keri/npm/src/app/runtime/abortable.js +103 -0
  67. package/esm/keri/npm/src/app/runtime/agent-runtime.js +633 -0
  68. package/esm/keri/npm/src/app/runtime/cue-runtime.js +61 -0
  69. package/esm/keri/npm/src/app/runtime/runtime-clock.js +6 -0
  70. package/esm/keri/npm/src/app/{byte-source.js → transport/byte-source.js} +43 -21
  71. package/esm/keri/npm/src/app/transport/cesr-egress.js +317 -0
  72. package/esm/keri/npm/src/app/{cesr-http.js → transport/cesr-http.js} +28 -78
  73. package/esm/keri/npm/src/app/transport/http-client.js +172 -0
  74. package/esm/keri/npm/src/app/transport/http-messenger.js +52 -0
  75. package/esm/keri/npm/src/app/transport/http-stream-messenger.js +60 -0
  76. package/esm/keri/npm/src/app/transport/httping.js +57 -0
  77. package/esm/keri/npm/src/app/transport/message-source.js +77 -0
  78. package/esm/keri/npm/src/app/transport/messengering.js +68 -0
  79. package/esm/keri/npm/src/app/{socket-source.js → transport/socket-source.js} +41 -5
  80. package/esm/keri/npm/src/app/transport/tcp-egress.js +377 -0
  81. package/esm/keri/npm/src/app/transport/tcp-messenger.js +162 -0
  82. package/esm/keri/npm/src/app/transport/tcp-stream-messenger.js +40 -0
  83. package/esm/keri/npm/src/app/transport/transport-error.js +14 -0
  84. package/esm/keri/npm/src/app/witness/http-endpoints.js +185 -0
  85. package/esm/keri/npm/src/app/witness/ingress.js +148 -0
  86. package/esm/keri/npm/src/app/witness/receipt-client.js +248 -0
  87. package/esm/keri/npm/src/app/witness/receipt-messages.js +29 -0
  88. package/esm/keri/npm/src/app/witness/receipting.js +323 -0
  89. package/esm/keri/npm/src/app/witness/registration.js +50 -0
  90. package/esm/keri/npm/src/cli/common/bootstrap.js +12 -0
  91. package/esm/keri/npm/src/{app/cli → cli}/common/context.js +47 -9
  92. package/esm/keri/npm/src/{app/cli → cli}/common/existing.js +9 -29
  93. package/esm/keri/npm/src/cli/common/parsing.js +279 -0
  94. package/esm/keri/npm/src/cli/common/passcode.js +66 -0
  95. package/esm/keri/npm/src/cli/common/tel-completion.js +24 -0
  96. package/esm/keri/npm/src/{app/cli → cli}/common/witness-auth.js +2 -2
  97. package/esm/keri/npm/src/cli/credentials/ipex.js +702 -0
  98. package/esm/keri/npm/src/cli/credentials/vc.js +399 -0
  99. package/esm/keri/npm/src/{app/cli → cli/endpoints}/did.js +71 -53
  100. package/esm/keri/npm/src/{app/cli → cli/endpoints}/ends.js +34 -31
  101. package/esm/keri/npm/src/{app/cli → cli/endpoints}/loc.js +22 -20
  102. package/esm/keri/npm/src/cli/endpoints/oobi-clean.js +134 -0
  103. package/esm/keri/npm/src/{app/cli → cli/endpoints}/oobi.js +37 -36
  104. package/esm/keri/npm/src/{app/cli → cli/identity}/aid.js +8 -7
  105. package/esm/keri/npm/src/cli/identity/challenge.js +181 -0
  106. package/esm/keri/npm/src/{app/cli → cli/identity}/delegate.js +88 -73
  107. package/esm/keri/npm/src/{app/cli → cli/identity}/export.js +9 -8
  108. package/esm/keri/npm/src/cli/identity/incept.js +181 -0
  109. package/esm/keri/npm/src/cli/identity/init.js +153 -0
  110. package/esm/keri/npm/src/cli/identity/interact.js +84 -0
  111. package/esm/keri/npm/src/{app/cli → cli/identity}/list.js +7 -6
  112. package/esm/keri/npm/src/cli/identity/rotate.js +172 -0
  113. package/esm/keri/npm/src/cli/index.js +38 -0
  114. package/esm/keri/npm/src/{app/cli → cli/messaging}/exchange.js +24 -24
  115. package/esm/keri/npm/src/cli/messaging/multisig.js +569 -0
  116. package/esm/keri/npm/src/{app/cli → cli/messaging}/notifications.js +26 -22
  117. package/esm/keri/npm/src/{app/cli → cli}/output.js +1 -1
  118. package/esm/keri/npm/src/cli/tools/annotate.js +25 -0
  119. package/esm/keri/npm/src/{app/cli → cli/tools}/benchmark.js +18 -9
  120. package/esm/keri/npm/src/{app/cli → cli/tools}/db-dump.js +14 -27
  121. package/esm/keri/npm/src/{app/cli → cli/tools}/saidify.js +3 -2
  122. package/esm/keri/npm/src/{app/cli → cli/tools}/sign.js +16 -10
  123. package/esm/keri/npm/src/{app/cli → cli/tools}/verify.js +10 -10
  124. package/esm/keri/npm/src/core/attachment-countering.js +31 -1
  125. package/esm/keri/npm/src/core/deck.js +5 -44
  126. package/esm/keri/npm/src/core/dispatch.js +10 -2
  127. package/esm/keri/npm/src/core/errors.js +5 -10
  128. package/esm/keri/npm/src/core/{exchange-proofing.js → exchange/exchange-proofing.js} +32 -2
  129. package/esm/keri/npm/src/core/{protocol-exchanging.js → exchange/protocol-exchanging.js} +47 -4
  130. package/esm/keri/npm/src/core/genus-framing.js +44 -0
  131. package/esm/keri/npm/src/core/{eventing.js → kel/eventing.js} +209 -390
  132. package/esm/keri/npm/src/core/kel/kever-decisions.js +70 -0
  133. package/esm/keri/npm/src/core/{kever.js → kel/kever.js} +84 -167
  134. package/esm/keri/npm/src/core/logger.js +3 -3
  135. package/esm/keri/npm/src/core/{kram-policy.js → mailbox/kram-policy.js} +14 -4
  136. package/esm/keri/npm/src/core/{kram-pruning.js → mailbox/kram-pruning.js} +5 -15
  137. package/esm/keri/npm/src/core/{kram-signatures.js → mailbox/kram-signatures.js} +1 -1
  138. package/esm/keri/npm/src/core/mailbox/kram-staging.js +149 -0
  139. package/esm/keri/npm/src/core/{kram-time.js → mailbox/kram-time.js} +9 -15
  140. package/esm/keri/npm/src/core/mailbox/kraming.js +78 -0
  141. package/esm/keri/npm/src/core/protocol-eventing.js +6 -1
  142. package/esm/keri/npm/src/core/protocol-serialization.js +9 -34
  143. package/esm/keri/npm/src/core/protocol-vdr-eventing.js +10 -11
  144. package/esm/keri/npm/src/core/records.js +0 -19
  145. package/esm/keri/npm/src/core/routing.js +187 -199
  146. package/esm/keri/npm/src/db/baser-defaults.js +11 -0
  147. package/esm/keri/npm/src/db/basing.js +224 -401
  148. package/esm/keri/npm/src/db/core/keys.js +2 -2
  149. package/esm/keri/npm/src/db/core/lmdber.js +123 -149
  150. package/esm/keri/npm/src/db/core/path-manager.js +2 -4
  151. package/esm/keri/npm/src/db/escrowing.js +82 -200
  152. package/esm/keri/npm/src/db/exchange/exchange-nests.js +54 -0
  153. package/esm/keri/npm/src/db/exchange/exchange-records.js +7 -0
  154. package/esm/keri/npm/src/db/index.js +5 -6
  155. package/esm/keri/npm/src/db/keeping.js +123 -6
  156. package/esm/keri/npm/src/db/{kram-factors.js → mailbox/kram-factors.js} +17 -50
  157. package/esm/keri/npm/src/db/{mailboxing.js → mailbox/mailboxing.js} +5 -8
  158. package/esm/keri/npm/src/db/reger.js +48 -69
  159. package/esm/keri/npm/src/db/{kel-replay.js → replay/kel-replay.js} +12 -24
  160. package/esm/keri/npm/src/db/{tel-replay.js → replay/tel-replay.js} +38 -36
  161. package/esm/keri/npm/src/db/{witness-replay.js → replay/witness-replay.js} +8 -14
  162. package/esm/keri/npm/src/db/subing.js +2 -11
  163. package/esm/keri/npm/src/did/keri/resolving.js +4 -18
  164. package/esm/keri/npm/src/did/webs/artifacts.js +21 -24
  165. package/esm/keri/npm/src/did/webs/designated-aliases.js +18 -48
  166. package/esm/keri/npm/src/did/webs/documenting.js +8 -8
  167. package/esm/keri/npm/src/did/webs/resolving.js +73 -74
  168. package/esm/keri/npm/src/library/index.js +1 -1
  169. package/esm/keri/npm/src/npm/cli.js +1 -1
  170. package/esm/keri/npm/src/npm/index.js +1 -1
  171. package/esm/keri/npm/src/runtime/index.js +105 -74
  172. package/esm/keri/npm/src/vdr/backer-state.js +55 -0
  173. package/esm/keri/npm/src/vdr/credential-tsn-record.js +59 -0
  174. package/esm/keri/npm/src/vdr/credentialing.js +84 -109
  175. package/esm/keri/npm/src/vdr/eventing.js +633 -251
  176. package/esm/keri/npm/src/vdr/registry-tsn-record.js +55 -0
  177. package/esm/keri/npm/src/vdr/revoking.js +90 -0
  178. package/esm/keri/npm/src/vdr/tel-anchor.js +29 -0
  179. package/esm/keri/npm/src/vdr/tel-publication.js +178 -0
  180. package/esm/keri/npm/src/vdr/tsn-query.js +15 -10
  181. package/esm/keri/npm/src/{app/version.js → version.js} +2 -2
  182. package/package.json +7 -21
  183. package/types/_dnt.polyfills.d.ts +55 -0
  184. package/types/_dnt.polyfills.d.ts.map +1 -1
  185. package/types/acdc/chaining.d.ts +35 -0
  186. package/types/acdc/chaining.d.ts.map +1 -0
  187. package/types/acdc/dhking.d.ts +136 -0
  188. package/types/acdc/dhking.d.ts.map +1 -0
  189. package/types/acdc/messaging.d.ts.map +1 -1
  190. package/types/acdc/observing.d.ts +19 -15
  191. package/types/acdc/observing.d.ts.map +1 -1
  192. package/types/acdc/regbasing.d.ts +8 -9
  193. package/types/acdc/regbasing.d.ts.map +1 -1
  194. package/types/acdc/regengine.d.ts +14 -28
  195. package/types/acdc/regengine.d.ts.map +1 -1
  196. package/types/acdc/regeventing.d.ts +24 -7
  197. package/types/acdc/regeventing.d.ts.map +1 -1
  198. package/types/acdc/registering.d.ts +27 -11
  199. package/types/acdc/registering.d.ts.map +1 -1
  200. package/types/acdc/registraring.d.ts +22 -22
  201. package/types/acdc/registraring.d.ts.map +1 -1
  202. package/types/acdc/relating.d.ts +21 -0
  203. package/types/acdc/relating.d.ts.map +1 -0
  204. package/types/acdc/salting.d.ts +241 -0
  205. package/types/acdc/salting.d.ts.map +1 -0
  206. package/types/acdc/scheming.d.ts +3 -2
  207. package/types/acdc/scheming.d.ts.map +1 -1
  208. package/types/acdc/unblinding.d.ts +150 -0
  209. package/types/acdc/unblinding.d.ts.map +1 -0
  210. package/types/app/bootstrap/authenticating.d.ts +54 -0
  211. package/types/app/bootstrap/authenticating.d.ts.map +1 -0
  212. package/types/app/bootstrap/bootstrapping.d.ts +45 -0
  213. package/types/app/bootstrap/bootstrapping.d.ts.map +1 -0
  214. package/types/app/bootstrap/oobi-replies.d.ts +8 -0
  215. package/types/app/bootstrap/oobi-replies.d.ts.map +1 -0
  216. package/types/app/{oobiery.d.ts → bootstrap/oobiery.d.ts} +98 -27
  217. package/types/app/bootstrap/oobiery.d.ts.map +1 -0
  218. package/types/app/credentials/credential-importing.d.ts +29 -0
  219. package/types/app/credentials/credential-importing.d.ts.map +1 -0
  220. package/types/app/credentials/credential-proposals.d.ts +27 -0
  221. package/types/app/credentials/credential-proposals.d.ts.map +1 -0
  222. package/types/app/credentials/credential-revoking.d.ts +44 -0
  223. package/types/app/credentials/credential-revoking.d.ts.map +1 -0
  224. package/types/app/credentials/credential-workflows.d.ts +149 -0
  225. package/types/app/credentials/credential-workflows.d.ts.map +1 -0
  226. package/types/app/{schema-resolving.d.ts → credentials/schema-resolving.d.ts} +2 -2
  227. package/types/app/credentials/schema-resolving.d.ts.map +1 -0
  228. package/types/app/credentials/tel-publishing.d.ts +16 -0
  229. package/types/app/credentials/tel-publishing.d.ts.map +1 -0
  230. package/types/app/{verifying.d.ts → credentials/verifying.d.ts} +20 -9
  231. package/types/app/credentials/verifying.d.ts.map +1 -0
  232. package/types/app/delivery/forwarding.d.ts +227 -0
  233. package/types/app/delivery/forwarding.d.ts.map +1 -0
  234. package/types/app/delivery/introducing.d.ts +21 -0
  235. package/types/app/delivery/introducing.d.ts.map +1 -0
  236. package/types/app/delivery/reply-streams.d.ts +49 -0
  237. package/types/app/delivery/reply-streams.d.ts.map +1 -0
  238. package/types/app/delivery/respondant.d.ts +52 -0
  239. package/types/app/delivery/respondant.d.ts.map +1 -0
  240. package/types/app/delivery/stored-replies.d.ts +11 -0
  241. package/types/app/delivery/stored-replies.d.ts.map +1 -0
  242. package/types/app/exchanges/essr.d.ts +53 -0
  243. package/types/app/exchanges/essr.d.ts.map +1 -0
  244. package/types/app/exchanges/exchange-messaging.d.ts +73 -0
  245. package/types/app/exchanges/exchange-messaging.d.ts.map +1 -0
  246. package/types/app/exchanges/exchanging.d.ts +379 -0
  247. package/types/app/exchanges/exchanging.d.ts.map +1 -0
  248. package/types/app/{challenging.d.ts → identity/challenging.d.ts} +9 -3
  249. package/types/app/identity/challenging.d.ts.map +1 -0
  250. package/types/app/{configing.d.ts → identity/configing.d.ts} +1 -1
  251. package/types/app/identity/configing.d.ts.map +1 -0
  252. package/types/app/{delegating.d.ts → identity/delegating.d.ts} +59 -17
  253. package/types/app/identity/delegating.d.ts.map +1 -0
  254. package/types/app/identity/endpoint-roleing.d.ts +54 -0
  255. package/types/app/identity/endpoint-roleing.d.ts.map +1 -0
  256. package/types/app/{habbing.d.ts → identity/habbing.d.ts} +86 -54
  257. package/types/app/identity/habbing.d.ts.map +1 -0
  258. package/types/app/{keeping.d.ts → identity/keeping.d.ts} +19 -5
  259. package/types/app/identity/keeping.d.ts.map +1 -0
  260. package/types/app/{organizing.d.ts → identity/organizing.d.ts} +19 -4
  261. package/types/app/identity/organizing.d.ts.map +1 -0
  262. package/types/app/{ipex-building.d.ts → ipex/ipex-building.d.ts} +5 -5
  263. package/types/app/ipex/ipex-building.d.ts.map +1 -0
  264. package/types/app/{ipex-credentialing.d.ts → ipex/ipex-credentialing.d.ts} +42 -10
  265. package/types/app/ipex/ipex-credentialing.d.ts.map +1 -0
  266. package/types/app/ipex/ipex-graph.d.ts +28 -0
  267. package/types/app/ipex/ipex-graph.d.ts.map +1 -0
  268. package/types/app/ipex/ipex-grouping.d.ts +112 -0
  269. package/types/app/ipex/ipex-grouping.d.ts.map +1 -0
  270. package/types/app/ipex/ipex-node-authentication.d.ts +32 -0
  271. package/types/app/ipex/ipex-node-authentication.d.ts.map +1 -0
  272. package/types/app/ipex/ipex-v2.d.ts +71 -0
  273. package/types/app/ipex/ipex-v2.d.ts.map +1 -0
  274. package/types/app/{ipexing.d.ts → ipex/ipexing.d.ts} +21 -8
  275. package/types/app/ipex/ipexing.d.ts.map +1 -0
  276. package/types/app/mailbox/forward-handler.d.ts +68 -0
  277. package/types/app/mailbox/forward-handler.d.ts.map +1 -0
  278. package/types/app/mailbox/mailbox-director.d.ts +252 -0
  279. package/types/app/mailbox/mailbox-director.d.ts.map +1 -0
  280. package/types/app/mailbox/mailbox-poller.d.ts +149 -0
  281. package/types/app/mailbox/mailbox-poller.d.ts.map +1 -0
  282. package/types/app/mailbox/mailbox-sse.d.ts +63 -0
  283. package/types/app/mailbox/mailbox-sse.d.ts.map +1 -0
  284. package/types/app/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +92 -43
  285. package/types/app/mailbox/mailboxing.d.ts.map +1 -0
  286. package/types/app/mailbox/topic-routing.d.ts +18 -0
  287. package/types/app/mailbox/topic-routing.d.ts.map +1 -0
  288. package/types/app/multisig/group-members.d.ts +60 -0
  289. package/types/app/multisig/group-members.d.ts.map +1 -0
  290. package/types/app/multisig/grouping.d.ts +317 -0
  291. package/types/app/multisig/grouping.d.ts.map +1 -0
  292. package/types/app/multisig/multisig-messaging.d.ts +97 -0
  293. package/types/app/multisig/multisig-messaging.d.ts.map +1 -0
  294. package/types/app/multisig/multisig-workflows.d.ts +85 -0
  295. package/types/app/multisig/multisig-workflows.d.ts.map +1 -0
  296. package/types/app/{notifying.d.ts → notifications/notifying.d.ts} +5 -6
  297. package/types/app/notifications/notifying.d.ts.map +1 -0
  298. package/types/app/notifications/signaling.d.ts +68 -0
  299. package/types/app/notifications/signaling.d.ts.map +1 -0
  300. package/types/app/protocol/parsering.d.ts +128 -0
  301. package/types/app/protocol/parsering.d.ts.map +1 -0
  302. package/types/app/{protocol-host-policy.d.ts → protocol/protocol-host-policy.d.ts} +1 -10
  303. package/types/app/protocol/protocol-host-policy.d.ts.map +1 -0
  304. package/types/app/protocol/protocol-processing.d.ts +140 -0
  305. package/types/app/protocol/protocol-processing.d.ts.map +1 -0
  306. package/types/app/protocol/reactor.d.ts +43 -0
  307. package/types/app/protocol/reactor.d.ts.map +1 -0
  308. package/types/app/queries/query-replies.d.ts +78 -0
  309. package/types/app/queries/query-replies.d.ts.map +1 -0
  310. package/types/app/queries/querying.d.ts +155 -0
  311. package/types/app/queries/querying.d.ts.map +1 -0
  312. package/types/app/queries/witness-inquisitor.d.ts +150 -0
  313. package/types/app/queries/witness-inquisitor.d.ts.map +1 -0
  314. package/types/app/runtime/abortable.d.ts +39 -0
  315. package/types/app/runtime/abortable.d.ts.map +1 -0
  316. package/types/app/runtime/agent-runtime.d.ts +348 -0
  317. package/types/app/runtime/agent-runtime.d.ts.map +1 -0
  318. package/types/app/runtime/cue-runtime.d.ts +33 -0
  319. package/types/app/runtime/cue-runtime.d.ts.map +1 -0
  320. package/types/app/runtime/runtime-clock.d.ts +28 -0
  321. package/types/app/runtime/runtime-clock.d.ts.map +1 -0
  322. package/types/app/runtime/runtime-turn.d.ts.map +1 -0
  323. package/types/app/transport/byte-source.d.ts +41 -0
  324. package/types/app/transport/byte-source.d.ts.map +1 -0
  325. package/types/app/transport/cesr-egress.d.ts +117 -0
  326. package/types/app/transport/cesr-egress.d.ts.map +1 -0
  327. package/types/app/{cesr-http.d.ts → transport/cesr-http.d.ts} +9 -33
  328. package/types/app/transport/cesr-http.d.ts.map +1 -0
  329. package/types/app/transport/http-client.d.ts +99 -0
  330. package/types/app/transport/http-client.d.ts.map +1 -0
  331. package/types/app/transport/http-messenger.d.ts +37 -0
  332. package/types/app/transport/http-messenger.d.ts.map +1 -0
  333. package/types/app/transport/http-stream-messenger.d.ts +30 -0
  334. package/types/app/transport/http-stream-messenger.d.ts.map +1 -0
  335. package/types/app/transport/httping.d.ts +19 -0
  336. package/types/app/transport/httping.d.ts.map +1 -0
  337. package/types/app/transport/message-source.d.ts +22 -0
  338. package/types/app/transport/message-source.d.ts.map +1 -0
  339. package/types/app/transport/messengering.d.ts +41 -0
  340. package/types/app/transport/messengering.d.ts.map +1 -0
  341. package/types/app/{socket-source.d.ts → transport/socket-source.d.ts} +10 -3
  342. package/types/app/transport/socket-source.d.ts.map +1 -0
  343. package/types/app/transport/tcp-egress.d.ts +118 -0
  344. package/types/app/transport/tcp-egress.d.ts.map +1 -0
  345. package/types/app/transport/tcp-messenger.d.ts +69 -0
  346. package/types/app/transport/tcp-messenger.d.ts.map +1 -0
  347. package/types/app/transport/tcp-stream-messenger.d.ts +25 -0
  348. package/types/app/transport/tcp-stream-messenger.d.ts.map +1 -0
  349. package/types/app/transport/transport-error.d.ts +12 -0
  350. package/types/app/transport/transport-error.d.ts.map +1 -0
  351. package/types/app/witness/http-endpoints.d.ts +77 -0
  352. package/types/app/witness/http-endpoints.d.ts.map +1 -0
  353. package/types/app/witness/ingress.d.ts +65 -0
  354. package/types/app/witness/ingress.d.ts.map +1 -0
  355. package/types/app/witness/receipt-client.d.ts +82 -0
  356. package/types/app/witness/receipt-client.d.ts.map +1 -0
  357. package/types/app/witness/receipt-messages.d.ts +21 -0
  358. package/types/app/witness/receipt-messages.d.ts.map +1 -0
  359. package/types/app/witness/receipting.d.ts +117 -0
  360. package/types/app/witness/receipting.d.ts.map +1 -0
  361. package/types/app/witness/registration.d.ts +27 -0
  362. package/types/app/witness/registration.d.ts.map +1 -0
  363. package/types/cli/common/bootstrap.d.ts +5 -0
  364. package/types/cli/common/bootstrap.d.ts.map +1 -0
  365. package/types/{app/cli → cli}/common/context.d.ts +10 -9
  366. package/types/cli/common/context.d.ts.map +1 -0
  367. package/types/{app/cli → cli}/common/existing.d.ts +2 -8
  368. package/types/cli/common/existing.d.ts.map +1 -0
  369. package/types/{app/cli → cli}/common/parsing.d.ts +26 -15
  370. package/types/cli/common/parsing.d.ts.map +1 -0
  371. package/types/cli/common/passcode.d.ts +9 -0
  372. package/types/cli/common/passcode.d.ts.map +1 -0
  373. package/types/cli/common/rendering.d.ts.map +1 -0
  374. package/types/cli/common/tel-completion.d.ts +8 -0
  375. package/types/cli/common/tel-completion.d.ts.map +1 -0
  376. package/types/{app/cli → cli}/common/witness-auth.d.ts +1 -1
  377. package/types/cli/common/witness-auth.d.ts.map +1 -0
  378. package/types/cli/credentials/ipex.d.ts +110 -0
  379. package/types/cli/credentials/ipex.d.ts.map +1 -0
  380. package/types/cli/credentials/vc.d.ts +42 -0
  381. package/types/cli/credentials/vc.d.ts.map +1 -0
  382. package/types/{app/cli → cli/endpoints}/did.d.ts +5 -1
  383. package/types/cli/endpoints/did.d.ts.map +1 -0
  384. package/types/{app/cli → cli/endpoints}/ends.d.ts +9 -1
  385. package/types/cli/endpoints/ends.d.ts.map +1 -0
  386. package/types/cli/endpoints/loc.d.ts.map +1 -0
  387. package/types/cli/endpoints/oobi-clean.d.ts +8 -0
  388. package/types/cli/endpoints/oobi-clean.d.ts.map +1 -0
  389. package/types/{app/cli → cli/endpoints}/oobi.d.ts +3 -1
  390. package/types/cli/endpoints/oobi.d.ts.map +1 -0
  391. package/types/cli/identity/aid.d.ts.map +1 -0
  392. package/types/{app/cli → cli/identity}/challenge.d.ts +5 -1
  393. package/types/cli/identity/challenge.d.ts.map +1 -0
  394. package/types/cli/identity/delegate.d.ts +4 -0
  395. package/types/cli/identity/delegate.d.ts.map +1 -0
  396. package/types/cli/identity/export.d.ts.map +1 -0
  397. package/types/{app/cli → cli/identity}/incept.d.ts +2 -0
  398. package/types/cli/identity/incept.d.ts.map +1 -0
  399. package/types/{app/cli → cli/identity}/init.d.ts +2 -0
  400. package/types/cli/identity/init.d.ts.map +1 -0
  401. package/types/{app/cli → cli/identity}/interact.d.ts +2 -0
  402. package/types/cli/identity/interact.d.ts.map +1 -0
  403. package/types/cli/identity/list.d.ts.map +1 -0
  404. package/types/{app/cli → cli/identity}/rotate.d.ts +9 -2
  405. package/types/cli/identity/rotate.d.ts.map +1 -0
  406. package/types/cli/index.d.ts +39 -0
  407. package/types/cli/index.d.ts.map +1 -0
  408. package/types/{app/cli → cli/messaging}/exchange.d.ts +3 -1
  409. package/types/cli/messaging/exchange.d.ts.map +1 -0
  410. package/types/cli/messaging/multisig.d.ts +29 -0
  411. package/types/cli/messaging/multisig.d.ts.map +1 -0
  412. package/types/cli/messaging/notifications.d.ts.map +1 -0
  413. package/types/cli/output.d.ts.map +1 -0
  414. package/types/cli/tools/annotate-color.d.ts.map +1 -0
  415. package/types/cli/tools/annotate.d.ts.map +1 -0
  416. package/types/cli/tools/benchmark.d.ts.map +1 -0
  417. package/types/{app/cli → cli/tools}/db-dump.d.ts +0 -2
  418. package/types/cli/tools/db-dump.d.ts.map +1 -0
  419. package/types/cli/tools/saidify.d.ts.map +1 -0
  420. package/types/{app/cli → cli/tools}/sign.d.ts +2 -0
  421. package/types/cli/tools/sign.d.ts.map +1 -0
  422. package/types/cli/tools/verify.d.ts.map +1 -0
  423. package/types/core/attachment-countering.d.ts +10 -1
  424. package/types/core/attachment-countering.d.ts.map +1 -1
  425. package/types/core/cues.d.ts +146 -57
  426. package/types/core/cues.d.ts.map +1 -1
  427. package/types/core/deck.d.ts +2 -12
  428. package/types/core/deck.d.ts.map +1 -1
  429. package/types/core/dispatch.d.ts +7 -3
  430. package/types/core/dispatch.d.ts.map +1 -1
  431. package/types/core/errors.d.ts +4 -4
  432. package/types/core/errors.d.ts.map +1 -1
  433. package/types/core/{exchange-proofing.d.ts → exchange/exchange-proofing.d.ts} +9 -2
  434. package/types/core/exchange/exchange-proofing.d.ts.map +1 -0
  435. package/types/core/{protocol-exchanging.d.ts → exchange/protocol-exchanging.d.ts} +18 -2
  436. package/types/core/exchange/protocol-exchanging.d.ts.map +1 -0
  437. package/types/core/genus-framing.d.ts +12 -0
  438. package/types/core/genus-framing.d.ts.map +1 -0
  439. package/types/core/{eventing.d.ts → kel/eventing.d.ts} +37 -48
  440. package/types/core/kel/eventing.d.ts.map +1 -0
  441. package/types/core/{kever-decisions.d.ts → kel/kever-decisions.d.ts} +36 -22
  442. package/types/core/kel/kever-decisions.d.ts.map +1 -0
  443. package/types/core/{kever.d.ts → kel/kever.d.ts} +13 -47
  444. package/types/core/kel/kever.d.ts.map +1 -0
  445. package/types/core/kel/witnesses.d.ts.map +1 -0
  446. package/types/core/logger.d.ts +1 -1
  447. package/types/core/logger.d.ts.map +1 -1
  448. package/types/core/{kram-auth.d.ts → mailbox/kram-auth.d.ts} +2 -2
  449. package/types/core/mailbox/kram-auth.d.ts.map +1 -0
  450. package/types/core/{kram-policy.d.ts → mailbox/kram-policy.d.ts} +2 -2
  451. package/types/core/mailbox/kram-policy.d.ts.map +1 -0
  452. package/types/core/{kram-pruning.d.ts → mailbox/kram-pruning.d.ts} +3 -3
  453. package/types/core/{kram-pruning.d.ts.map → mailbox/kram-pruning.d.ts.map} +1 -1
  454. package/types/core/{kram-signatures.d.ts → mailbox/kram-signatures.d.ts} +3 -3
  455. package/types/core/mailbox/kram-signatures.d.ts.map +1 -0
  456. package/types/core/mailbox/kram-staging.d.ts +30 -0
  457. package/types/core/mailbox/kram-staging.d.ts.map +1 -0
  458. package/types/core/{kram-time.d.ts → mailbox/kram-time.d.ts} +5 -11
  459. package/types/core/mailbox/kram-time.d.ts.map +1 -0
  460. package/types/core/mailbox/kraming.d.ts +42 -0
  461. package/types/core/mailbox/kraming.d.ts.map +1 -0
  462. package/types/core/mailbox/mailbox-topics.d.ts.map +1 -0
  463. package/types/core/protocol-eventing.d.ts +5 -0
  464. package/types/core/protocol-eventing.d.ts.map +1 -1
  465. package/types/core/protocol-serialization.d.ts +1 -1
  466. package/types/core/protocol-serialization.d.ts.map +1 -1
  467. package/types/core/protocol-vdr-eventing.d.ts +7 -5
  468. package/types/core/protocol-vdr-eventing.d.ts.map +1 -1
  469. package/types/core/records.d.ts +15 -50
  470. package/types/core/records.d.ts.map +1 -1
  471. package/types/core/routing.d.ts +76 -46
  472. package/types/core/routing.d.ts.map +1 -1
  473. package/types/db/baser-defaults.d.ts +5 -0
  474. package/types/db/baser-defaults.d.ts.map +1 -0
  475. package/types/db/basing.d.ts +70 -75
  476. package/types/db/basing.d.ts.map +1 -1
  477. package/types/db/core/keys.d.ts.map +1 -1
  478. package/types/db/core/lmdber.d.ts +21 -23
  479. package/types/db/core/lmdber.d.ts.map +1 -1
  480. package/types/db/core/path-manager.d.ts.map +1 -1
  481. package/types/db/escrowing.d.ts +12 -49
  482. package/types/db/escrowing.d.ts.map +1 -1
  483. package/types/db/exchange/exchange-nests.d.ts +12 -0
  484. package/types/db/exchange/exchange-nests.d.ts.map +1 -0
  485. package/types/db/exchange/exchange-records.d.ts +38 -0
  486. package/types/db/exchange/exchange-records.d.ts.map +1 -0
  487. package/types/db/index.d.ts +5 -6
  488. package/types/db/index.d.ts.map +1 -1
  489. package/types/db/keeping.d.ts +19 -1
  490. package/types/db/keeping.d.ts.map +1 -1
  491. package/types/db/koming.d.ts +1 -1
  492. package/types/db/koming.d.ts.map +1 -1
  493. package/types/db/{kram-factors.d.ts → mailbox/kram-factors.d.ts} +3 -5
  494. package/types/db/mailbox/kram-factors.d.ts.map +1 -0
  495. package/types/db/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +3 -4
  496. package/types/db/mailbox/mailboxing.d.ts.map +1 -0
  497. package/types/db/reger.d.ts +10 -12
  498. package/types/db/reger.d.ts.map +1 -1
  499. package/types/db/{kel-replay.d.ts → replay/kel-replay.d.ts} +2 -6
  500. package/types/db/replay/kel-replay.d.ts.map +1 -0
  501. package/types/db/{tel-replay.d.ts → replay/tel-replay.d.ts} +13 -8
  502. package/types/db/replay/tel-replay.d.ts.map +1 -0
  503. package/types/db/{witness-replay.d.ts → replay/witness-replay.d.ts} +2 -3
  504. package/types/db/replay/witness-replay.d.ts.map +1 -0
  505. package/types/db/subing.d.ts +1 -5
  506. package/types/db/subing.d.ts.map +1 -1
  507. package/types/did/keri/resolving.d.ts +5 -10
  508. package/types/did/keri/resolving.d.ts.map +1 -1
  509. package/types/did/webs/artifacts.d.ts +5 -5
  510. package/types/did/webs/artifacts.d.ts.map +1 -1
  511. package/types/did/webs/designated-aliases.d.ts +6 -5
  512. package/types/did/webs/designated-aliases.d.ts.map +1 -1
  513. package/types/did/webs/documenting.d.ts +6 -5
  514. package/types/did/webs/documenting.d.ts.map +1 -1
  515. package/types/did/webs/resolving.d.ts +13 -3
  516. package/types/did/webs/resolving.d.ts.map +1 -1
  517. package/types/library/index.d.ts +1 -1
  518. package/types/library/index.d.ts.map +1 -1
  519. package/types/npm/cli.d.ts +1 -1
  520. package/types/npm/cli.d.ts.map +1 -1
  521. package/types/npm/index.d.ts +1 -1
  522. package/types/npm/index.d.ts.map +1 -1
  523. package/types/runtime/index.d.ts +109 -76
  524. package/types/runtime/index.d.ts.map +1 -1
  525. package/types/vdr/backer-state.d.ts +22 -0
  526. package/types/vdr/backer-state.d.ts.map +1 -0
  527. package/types/vdr/credential-tsn-record.d.ts +13 -0
  528. package/types/vdr/credential-tsn-record.d.ts.map +1 -0
  529. package/types/vdr/credentialing.d.ts +16 -27
  530. package/types/vdr/credentialing.d.ts.map +1 -1
  531. package/types/vdr/eventing.d.ts +66 -23
  532. package/types/vdr/eventing.d.ts.map +1 -1
  533. package/types/vdr/registry-tsn-record.d.ts +6 -0
  534. package/types/vdr/registry-tsn-record.d.ts.map +1 -0
  535. package/types/vdr/revoking.d.ts +18 -0
  536. package/types/vdr/revoking.d.ts.map +1 -0
  537. package/types/vdr/tel-anchor.d.ts +10 -0
  538. package/types/vdr/tel-anchor.d.ts.map +1 -0
  539. package/types/vdr/tel-publication.d.ts +49 -0
  540. package/types/vdr/tel-publication.d.ts.map +1 -0
  541. package/types/vdr/tsn-query.d.ts +9 -4
  542. package/types/vdr/tsn-query.d.ts.map +1 -1
  543. package/types/{app/version.d.ts → version.d.ts} +2 -2
  544. package/types/version.d.ts.map +1 -0
  545. package/esm/keri/npm/src/app/abortable.js +0 -27
  546. package/esm/keri/npm/src/app/agent-runtime.js +0 -638
  547. package/esm/keri/npm/src/app/cesr-egress.js +0 -308
  548. package/esm/keri/npm/src/app/cesr-output.js +0 -12
  549. package/esm/keri/npm/src/app/cli/annotate.js +0 -24
  550. package/esm/keri/npm/src/app/cli/challenge.js +0 -168
  551. package/esm/keri/npm/src/app/cli/common/displaying.js +0 -43
  552. package/esm/keri/npm/src/app/cli/common/parsing.js +0 -215
  553. package/esm/keri/npm/src/app/cli/incept.js +0 -187
  554. package/esm/keri/npm/src/app/cli/index.js +0 -36
  555. package/esm/keri/npm/src/app/cli/init.js +0 -155
  556. package/esm/keri/npm/src/app/cli/interact.js +0 -72
  557. package/esm/keri/npm/src/app/cli/ipex.js +0 -453
  558. package/esm/keri/npm/src/app/cli/multisig.js +0 -474
  559. package/esm/keri/npm/src/app/cli/query.js +0 -143
  560. package/esm/keri/npm/src/app/cli/rotate.js +0 -171
  561. package/esm/keri/npm/src/app/cli/vc.js +0 -284
  562. package/esm/keri/npm/src/app/cli/verifier.js +0 -96
  563. package/esm/keri/npm/src/app/credential-workflows.js +0 -431
  564. package/esm/keri/npm/src/app/cue-delivery.js +0 -171
  565. package/esm/keri/npm/src/app/cue-preparation.js +0 -124
  566. package/esm/keri/npm/src/app/cue-route.js +0 -64
  567. package/esm/keri/npm/src/app/cue-runtime.js +0 -104
  568. package/esm/keri/npm/src/app/direct-reply-delivery.js +0 -282
  569. package/esm/keri/npm/src/app/essr.js +0 -235
  570. package/esm/keri/npm/src/app/exchanging.js +0 -1219
  571. package/esm/keri/npm/src/app/forwarding.js +0 -1346
  572. package/esm/keri/npm/src/app/group-members.js +0 -37
  573. package/esm/keri/npm/src/app/grouping.js +0 -534
  574. package/esm/keri/npm/src/app/httping.js +0 -130
  575. package/esm/keri/npm/src/app/ipex-credentialing.js +0 -245
  576. package/esm/keri/npm/src/app/ipex-grouping.js +0 -317
  577. package/esm/keri/npm/src/app/ipex-v2.js +0 -542
  578. package/esm/keri/npm/src/app/mailbox-sse.js +0 -257
  579. package/esm/keri/npm/src/app/multisig-workflows.js +0 -537
  580. package/esm/keri/npm/src/app/oobi-replies.js +0 -194
  581. package/esm/keri/npm/src/app/query-replies.js +0 -181
  582. package/esm/keri/npm/src/app/querying.js +0 -1040
  583. package/esm/keri/npm/src/app/reactor.js +0 -517
  584. package/esm/keri/npm/src/app/reply-streams.js +0 -304
  585. package/esm/keri/npm/src/app/respondant.js +0 -173
  586. package/esm/keri/npm/src/app/runtime-deliveries.js +0 -510
  587. package/esm/keri/npm/src/app/runtime-services.js +0 -25
  588. package/esm/keri/npm/src/app/signaling.js +0 -388
  589. package/esm/keri/npm/src/app/stored-replies.js +0 -85
  590. package/esm/keri/npm/src/app/tcp-egress.js +0 -334
  591. package/esm/keri/npm/src/app/verifier-agent.js +0 -461
  592. package/esm/keri/npm/src/app/witnessing.js +0 -956
  593. package/esm/keri/npm/src/core/cue-admission.js +0 -419
  594. package/esm/keri/npm/src/core/index.js +0 -23
  595. package/esm/keri/npm/src/core/kever-decisions.js +0 -63
  596. package/esm/keri/npm/src/core/kram-handoff.js +0 -148
  597. package/esm/keri/npm/src/core/kram-staging.js +0 -211
  598. package/esm/keri/npm/src/core/kraming.js +0 -99
  599. package/esm/keri/npm/src/db/exchange-nests.js +0 -175
  600. package/esm/keri/npm/src/db/exchange-records.js +0 -7
  601. package/esm/keri/npm/src/db/kram-snapshots.js +0 -216
  602. package/esm/keri/npm/src/db/mailbox-inbox.js +0 -206
  603. package/esm/keri/npm/src/db/outboxing.js +0 -371
  604. package/esm/keri/npm/src/db/payload-archive.js +0 -402
  605. package/esm/keri/npm/src/db/payload-store.js +0 -416
  606. package/esm/keri/npm/src/db/payload-view.js +0 -23
  607. package/esm/keri/npm/src/db/verifier-cueing.js +0 -132
  608. package/esm/keri/npm/src/vdr/credential-tsn.js +0 -218
  609. package/esm/keri/npm/src/vdr/registry-tsn.js +0 -218
  610. package/types/app/abortable.d.ts +0 -11
  611. package/types/app/abortable.d.ts.map +0 -1
  612. package/types/app/agent-runtime.d.ts +0 -284
  613. package/types/app/agent-runtime.d.ts.map +0 -1
  614. package/types/app/authenticating.d.ts +0 -36
  615. package/types/app/authenticating.d.ts.map +0 -1
  616. package/types/app/byte-source.d.ts +0 -16
  617. package/types/app/byte-source.d.ts.map +0 -1
  618. package/types/app/cesr-egress.d.ts +0 -48
  619. package/types/app/cesr-egress.d.ts.map +0 -1
  620. package/types/app/cesr-http.d.ts.map +0 -1
  621. package/types/app/cesr-output.d.ts +0 -5
  622. package/types/app/cesr-output.d.ts.map +0 -1
  623. package/types/app/challenging.d.ts.map +0 -1
  624. package/types/app/cli/aid.d.ts.map +0 -1
  625. package/types/app/cli/annotate-color.d.ts.map +0 -1
  626. package/types/app/cli/annotate.d.ts.map +0 -1
  627. package/types/app/cli/benchmark.d.ts.map +0 -1
  628. package/types/app/cli/challenge.d.ts.map +0 -1
  629. package/types/app/cli/common/context.d.ts.map +0 -1
  630. package/types/app/cli/common/displaying.d.ts +0 -12
  631. package/types/app/cli/common/displaying.d.ts.map +0 -1
  632. package/types/app/cli/common/existing.d.ts.map +0 -1
  633. package/types/app/cli/common/parsing.d.ts.map +0 -1
  634. package/types/app/cli/common/rendering.d.ts.map +0 -1
  635. package/types/app/cli/common/witness-auth.d.ts.map +0 -1
  636. package/types/app/cli/db-dump.d.ts.map +0 -1
  637. package/types/app/cli/delegate.d.ts +0 -26
  638. package/types/app/cli/delegate.d.ts.map +0 -1
  639. package/types/app/cli/did.d.ts.map +0 -1
  640. package/types/app/cli/ends.d.ts.map +0 -1
  641. package/types/app/cli/exchange.d.ts.map +0 -1
  642. package/types/app/cli/export.d.ts.map +0 -1
  643. package/types/app/cli/incept.d.ts.map +0 -1
  644. package/types/app/cli/index.d.ts +0 -37
  645. package/types/app/cli/index.d.ts.map +0 -1
  646. package/types/app/cli/init.d.ts.map +0 -1
  647. package/types/app/cli/interact.d.ts.map +0 -1
  648. package/types/app/cli/ipex.d.ts +0 -20
  649. package/types/app/cli/ipex.d.ts.map +0 -1
  650. package/types/app/cli/list.d.ts.map +0 -1
  651. package/types/app/cli/loc.d.ts.map +0 -1
  652. package/types/app/cli/multisig.d.ts +0 -12
  653. package/types/app/cli/multisig.d.ts.map +0 -1
  654. package/types/app/cli/notifications.d.ts.map +0 -1
  655. package/types/app/cli/oobi.d.ts.map +0 -1
  656. package/types/app/cli/output.d.ts.map +0 -1
  657. package/types/app/cli/query.d.ts +0 -12
  658. package/types/app/cli/query.d.ts.map +0 -1
  659. package/types/app/cli/rotate.d.ts.map +0 -1
  660. package/types/app/cli/saidify.d.ts.map +0 -1
  661. package/types/app/cli/sign.d.ts.map +0 -1
  662. package/types/app/cli/vc.d.ts +0 -20
  663. package/types/app/cli/vc.d.ts.map +0 -1
  664. package/types/app/cli/verifier.d.ts +0 -3
  665. package/types/app/cli/verifier.d.ts.map +0 -1
  666. package/types/app/cli/verify.d.ts.map +0 -1
  667. package/types/app/configing.d.ts.map +0 -1
  668. package/types/app/credential-workflows.d.ts +0 -118
  669. package/types/app/credential-workflows.d.ts.map +0 -1
  670. package/types/app/cue-delivery.d.ts +0 -30
  671. package/types/app/cue-delivery.d.ts.map +0 -1
  672. package/types/app/cue-preparation.d.ts +0 -25
  673. package/types/app/cue-preparation.d.ts.map +0 -1
  674. package/types/app/cue-route.d.ts +0 -19
  675. package/types/app/cue-route.d.ts.map +0 -1
  676. package/types/app/cue-runtime.d.ts +0 -46
  677. package/types/app/cue-runtime.d.ts.map +0 -1
  678. package/types/app/delegating.d.ts.map +0 -1
  679. package/types/app/direct-reply-delivery.d.ts +0 -38
  680. package/types/app/direct-reply-delivery.d.ts.map +0 -1
  681. package/types/app/endpoint-roleing.d.ts +0 -41
  682. package/types/app/endpoint-roleing.d.ts.map +0 -1
  683. package/types/app/essr.d.ts +0 -72
  684. package/types/app/essr.d.ts.map +0 -1
  685. package/types/app/exchanging.d.ts +0 -245
  686. package/types/app/exchanging.d.ts.map +0 -1
  687. package/types/app/forwarding.d.ts +0 -411
  688. package/types/app/forwarding.d.ts.map +0 -1
  689. package/types/app/group-members.d.ts +0 -12
  690. package/types/app/group-members.d.ts.map +0 -1
  691. package/types/app/grouping.d.ts +0 -150
  692. package/types/app/grouping.d.ts.map +0 -1
  693. package/types/app/habbing.d.ts.map +0 -1
  694. package/types/app/httping.d.ts +0 -42
  695. package/types/app/httping.d.ts.map +0 -1
  696. package/types/app/ipex-building.d.ts.map +0 -1
  697. package/types/app/ipex-credentialing.d.ts.map +0 -1
  698. package/types/app/ipex-graph.d.ts +0 -30
  699. package/types/app/ipex-graph.d.ts.map +0 -1
  700. package/types/app/ipex-grouping.d.ts +0 -51
  701. package/types/app/ipex-grouping.d.ts.map +0 -1
  702. package/types/app/ipex-v2.d.ts +0 -51
  703. package/types/app/ipex-v2.d.ts.map +0 -1
  704. package/types/app/ipexing.d.ts.map +0 -1
  705. package/types/app/keeping.d.ts.map +0 -1
  706. package/types/app/mailbox-director.d.ts +0 -159
  707. package/types/app/mailbox-director.d.ts.map +0 -1
  708. package/types/app/mailbox-sse.d.ts +0 -38
  709. package/types/app/mailbox-sse.d.ts.map +0 -1
  710. package/types/app/mailboxing.d.ts.map +0 -1
  711. package/types/app/multisig-workflows.d.ts +0 -59
  712. package/types/app/multisig-workflows.d.ts.map +0 -1
  713. package/types/app/notifying.d.ts.map +0 -1
  714. package/types/app/oobi-replies.d.ts +0 -18
  715. package/types/app/oobi-replies.d.ts.map +0 -1
  716. package/types/app/oobiery.d.ts.map +0 -1
  717. package/types/app/organizing.d.ts.map +0 -1
  718. package/types/app/parsering.d.ts +0 -106
  719. package/types/app/parsering.d.ts.map +0 -1
  720. package/types/app/protocol-host-policy.d.ts.map +0 -1
  721. package/types/app/query-replies.d.ts +0 -45
  722. package/types/app/query-replies.d.ts.map +0 -1
  723. package/types/app/querying.d.ts +0 -294
  724. package/types/app/querying.d.ts.map +0 -1
  725. package/types/app/reactor.d.ts +0 -171
  726. package/types/app/reactor.d.ts.map +0 -1
  727. package/types/app/reply-streams.d.ts +0 -51
  728. package/types/app/reply-streams.d.ts.map +0 -1
  729. package/types/app/respondant.d.ts +0 -48
  730. package/types/app/respondant.d.ts.map +0 -1
  731. package/types/app/runtime-deliveries.d.ts +0 -67
  732. package/types/app/runtime-deliveries.d.ts.map +0 -1
  733. package/types/app/runtime-services.d.ts +0 -29
  734. package/types/app/runtime-services.d.ts.map +0 -1
  735. package/types/app/runtime-turn.d.ts.map +0 -1
  736. package/types/app/schema-resolving.d.ts.map +0 -1
  737. package/types/app/signaling.d.ts +0 -96
  738. package/types/app/signaling.d.ts.map +0 -1
  739. package/types/app/socket-source.d.ts.map +0 -1
  740. package/types/app/stored-replies.d.ts +0 -18
  741. package/types/app/stored-replies.d.ts.map +0 -1
  742. package/types/app/tcp-egress.d.ts +0 -87
  743. package/types/app/tcp-egress.d.ts.map +0 -1
  744. package/types/app/verifier-agent.d.ts +0 -91
  745. package/types/app/verifier-agent.d.ts.map +0 -1
  746. package/types/app/verifying.d.ts.map +0 -1
  747. package/types/app/version.d.ts.map +0 -1
  748. package/types/app/witnessing.d.ts +0 -227
  749. package/types/app/witnessing.d.ts.map +0 -1
  750. package/types/core/cue-admission.d.ts +0 -74
  751. package/types/core/cue-admission.d.ts.map +0 -1
  752. package/types/core/eventing.d.ts.map +0 -1
  753. package/types/core/exchange-proofing.d.ts.map +0 -1
  754. package/types/core/index.d.ts +0 -24
  755. package/types/core/index.d.ts.map +0 -1
  756. package/types/core/kever-decisions.d.ts.map +0 -1
  757. package/types/core/kever.d.ts.map +0 -1
  758. package/types/core/kram-auth.d.ts.map +0 -1
  759. package/types/core/kram-handoff.d.ts +0 -45
  760. package/types/core/kram-handoff.d.ts.map +0 -1
  761. package/types/core/kram-policy.d.ts.map +0 -1
  762. package/types/core/kram-signatures.d.ts.map +0 -1
  763. package/types/core/kram-staging.d.ts +0 -36
  764. package/types/core/kram-staging.d.ts.map +0 -1
  765. package/types/core/kram-time.d.ts.map +0 -1
  766. package/types/core/kraming.d.ts +0 -46
  767. package/types/core/kraming.d.ts.map +0 -1
  768. package/types/core/mailbox-topics.d.ts.map +0 -1
  769. package/types/core/protocol-exchanging.d.ts.map +0 -1
  770. package/types/core/witnesses.d.ts.map +0 -1
  771. package/types/db/exchange-nests.d.ts +0 -39
  772. package/types/db/exchange-nests.d.ts.map +0 -1
  773. package/types/db/exchange-records.d.ts +0 -35
  774. package/types/db/exchange-records.d.ts.map +0 -1
  775. package/types/db/kel-replay.d.ts.map +0 -1
  776. package/types/db/kram-factors.d.ts.map +0 -1
  777. package/types/db/kram-snapshots.d.ts +0 -23
  778. package/types/db/kram-snapshots.d.ts.map +0 -1
  779. package/types/db/mailbox-inbox.d.ts +0 -72
  780. package/types/db/mailbox-inbox.d.ts.map +0 -1
  781. package/types/db/mailboxing.d.ts.map +0 -1
  782. package/types/db/outboxing.d.ts +0 -182
  783. package/types/db/outboxing.d.ts.map +0 -1
  784. package/types/db/payload-archive.d.ts +0 -70
  785. package/types/db/payload-archive.d.ts.map +0 -1
  786. package/types/db/payload-store.d.ts +0 -40
  787. package/types/db/payload-store.d.ts.map +0 -1
  788. package/types/db/payload-view.d.ts +0 -4
  789. package/types/db/payload-view.d.ts.map +0 -1
  790. package/types/db/tel-replay.d.ts.map +0 -1
  791. package/types/db/verifier-cueing.d.ts +0 -46
  792. package/types/db/verifier-cueing.d.ts.map +0 -1
  793. package/types/db/witness-replay.d.ts.map +0 -1
  794. package/types/vdr/credential-tsn.d.ts +0 -18
  795. package/types/vdr/credential-tsn.d.ts.map +0 -1
  796. package/types/vdr/registry-tsn.d.ts +0 -23
  797. package/types/vdr/registry-tsn.d.ts.map +0 -1
  798. /package/esm/keri/npm/src/app/{schema-resolving.js → credentials/schema-resolving.js} +0 -0
  799. /package/esm/keri/npm/src/app/{protocol-host-policy.js → protocol/protocol-host-policy.js} +0 -0
  800. /package/esm/keri/npm/src/app/{runtime-turn.js → runtime/runtime-turn.js} +0 -0
  801. /package/esm/keri/npm/src/{app/cli → cli}/common/rendering.js +0 -0
  802. /package/esm/keri/npm/src/{app/cli → cli/tools}/annotate-color.js +0 -0
  803. /package/esm/keri/npm/src/core/{witnesses.js → kel/witnesses.js} +0 -0
  804. /package/esm/keri/npm/src/core/{kram-auth.js → mailbox/kram-auth.js} +0 -0
  805. /package/esm/keri/npm/src/core/{mailbox-topics.js → mailbox/mailbox-topics.js} +0 -0
  806. /package/types/app/{runtime-turn.d.ts → runtime/runtime-turn.d.ts} +0 -0
  807. /package/types/{app/cli → cli}/common/rendering.d.ts +0 -0
  808. /package/types/{app/cli → cli/endpoints}/loc.d.ts +0 -0
  809. /package/types/{app/cli → cli/identity}/aid.d.ts +0 -0
  810. /package/types/{app/cli → cli/identity}/export.d.ts +0 -0
  811. /package/types/{app/cli → cli/identity}/list.d.ts +0 -0
  812. /package/types/{app/cli → cli/messaging}/notifications.d.ts +0 -0
  813. /package/types/{app/cli → cli}/output.d.ts +0 -0
  814. /package/types/{app/cli → cli/tools}/annotate-color.d.ts +0 -0
  815. /package/types/{app/cli → cli/tools}/annotate.d.ts +0 -0
  816. /package/types/{app/cli → cli/tools}/benchmark.d.ts +0 -0
  817. /package/types/{app/cli → cli/tools}/saidify.d.ts +0 -0
  818. /package/types/{app/cli → cli/tools}/verify.d.ts +0 -0
  819. /package/types/core/{witnesses.d.ts → kel/witnesses.d.ts} +0 -0
  820. /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
+ }