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
@@ -1,8 +1,10 @@
1
+ import { call, spawn } from "effection";
2
+ import { endpointRoleAccepted, isLocalGroupHab, proposeGroupEndpointRole, } from "../../app/identity/endpoint-roleing.js";
3
+ import { settleRuntimeIngress } from "../../app/runtime/agent-runtime.js";
1
4
  import { ValidationError } from "../../core/errors.js";
2
5
  import { isEndpointRole } from "../../core/roles.js";
3
- import { ingestKeriBytes, processRuntimeTurn } from "../agent-runtime.js";
4
- import { endpointRoleAccepted, isLocalGroupHab, proposeGroupEndpointRole } from "../endpoint-roleing.js";
5
- import { withHabAndAgentRuntime } from "./common/context.js";
6
+ import { withHabAndAgentRuntime } from "../common/context.js";
7
+ import { parseBooleanOption, parseStringOption } from "../common/parsing.js";
6
8
  /**
7
9
  * Implement `tufa ends add` on top of the shared local runtime.
8
10
  *
@@ -14,18 +16,20 @@ import { withHabAndAgentRuntime } from "./common/context.js";
14
16
  *
15
17
  * This command mutates local state only through normal KERI reply processing,
16
18
  * not through a side-channel direct DB write.
19
+ *
20
+ * @param args Parsed command flags and positionals; required identifiers and policy values are validated before effects.
17
21
  */
18
22
  export function* endsAddCommand(args) {
19
23
  const commandArgs = {
20
- name: args.name,
21
- base: args.base,
22
- headDirPath: args.headDirPath,
23
- passcode: args.passcode,
24
- alias: args.alias,
25
- role: args.role,
26
- eid: args.eid,
27
- multisigMode: parseMultisigMode(args.multisigMode),
28
- compat: args.compat,
24
+ name: parseStringOption(args.name, "--name"),
25
+ base: parseStringOption(args.base, "--base"),
26
+ headDirPath: parseStringOption(args.headDirPath, "--head-dir"),
27
+ passcode: parseStringOption(args.passcode, "--passcode"),
28
+ alias: parseStringOption(args.alias, "--alias"),
29
+ role: parseStringOption(args.role, "--role"),
30
+ eid: parseStringOption(args.eid, "--eid"),
31
+ multisigMode: parseMultisigMode(parseStringOption(args.multisigMode, "--multisig-mode")),
32
+ compat: parseBooleanOption(args.compat, "--compat"),
29
33
  };
30
34
  if (!commandArgs.name) {
31
35
  throw new ValidationError("Name is required and cannot be empty");
@@ -41,7 +45,7 @@ export function* endsAddCommand(args) {
41
45
  }
42
46
  const eid = commandArgs.eid;
43
47
  const role = commandArgs.role;
44
- yield* withHabAndAgentRuntime(commandArgs, commandArgs.alias, {
48
+ return yield* withHabAndAgentRuntime(commandArgs, commandArgs.alias, {
45
49
  compat: commandArgs.compat ?? false,
46
50
  readonly: false,
47
51
  skipConfig: false,
@@ -52,37 +56,36 @@ export function* endsAddCommand(args) {
52
56
  throw new ValidationError("Group endpoint role authorization requires --multisig-mode propose or --multisig-mode complete.");
53
57
  }
54
58
  if (commandArgs.multisigMode === "propose") {
55
- const result = yield* proposeGroupEndpointRole(runtime, hab, {
56
- eid,
57
- role,
58
- allow: true,
59
+ const result = yield* call(function* () {
60
+ const postman = runtime.postman;
61
+ const worker = yield* spawn(() => postman.deliverDo());
62
+ try {
63
+ return yield* proposeGroupEndpointRole(hby, runtime.protocol, postman, hab, {
64
+ eid,
65
+ role,
66
+ allow: true,
67
+ });
68
+ }
69
+ finally {
70
+ yield* worker.halt();
71
+ }
59
72
  });
60
- console.log(JSON.stringify({
61
- route: result.route,
62
- said: result.said,
63
- group: result.group,
64
- accepted: result.accepted,
65
- deliveries: result.deliveries,
66
- attachmentBytes: result.attachmentBytes,
67
- }));
68
- return;
73
+ return result;
69
74
  }
70
75
  if (!endpointRoleAccepted(hby, hab.pre, role, eid)) {
71
76
  throw new ValidationError(`Endpoint role ${role} for ${eid} is not yet approved for group ${hab.pre}.`);
72
77
  }
73
- console.log(`${role} ${eid}`);
74
- return;
78
+ return { role, eid };
75
79
  }
76
80
  if (commandArgs.multisigMode) {
77
81
  throw new ValidationError("--multisig-mode is only valid for local group aliases.");
78
82
  }
79
- ingestKeriBytes(runtime, hab.makeEndRole(eid, role, true));
80
- yield* processRuntimeTurn(runtime, { hab, pollMailbox: false });
83
+ yield* settleRuntimeIngress(runtime, [hab.makeEndRole(eid, role, true)]);
81
84
  const end = hby.db.ends.get([hab.pre, role, eid]);
82
85
  if (!end?.allowed) {
83
86
  throw new ValidationError(`Endpoint role ${role} for ${eid} was not accepted into local state.`);
84
87
  }
85
- console.log(`${role} ${eid}`);
88
+ return { role, eid };
86
89
  });
87
90
  }
88
91
  function parseMultisigMode(value) {
@@ -1,6 +1,8 @@
1
+ import { isLocalGroupHab } from "../../app/multisig/group-members.js";
2
+ import { settleRuntimeIngress } from "../../app/runtime/agent-runtime.js";
1
3
  import { ValidationError } from "../../core/errors.js";
2
- import { ingestKeriBytes, processRuntimeTurn } from "../agent-runtime.js";
3
- import { withHabAndAgentRuntime } from "./common/context.js";
4
+ import { withHabAndAgentRuntime } from "../common/context.js";
5
+ import { parseBooleanOption, parseStringOption } from "../common/parsing.js";
4
6
  /**
5
7
  * Implement `tufa loc add` through the shared local runtime.
6
8
  *
@@ -12,15 +14,15 @@ import { withHabAndAgentRuntime } from "./common/context.js";
12
14
  */
13
15
  export function* locAddCommand(args) {
14
16
  const commandArgs = {
15
- name: args.name,
16
- base: args.base,
17
- headDirPath: args.headDirPath,
18
- passcode: args.passcode,
19
- alias: args.alias,
20
- url: args.url,
21
- eid: args.eid,
22
- time: args.time,
23
- compat: args.compat,
17
+ name: parseStringOption(args.name, "--name"),
18
+ base: parseStringOption(args.base, "--base"),
19
+ headDirPath: parseStringOption(args.headDirPath, "--head-dir"),
20
+ passcode: parseStringOption(args.passcode, "--passcode"),
21
+ alias: parseStringOption(args.alias, "--alias"),
22
+ url: parseStringOption(args.url, "--url"),
23
+ eid: parseStringOption(args.eid, "--eid"),
24
+ time: parseStringOption(args.time, "--time"),
25
+ compat: parseBooleanOption(args.compat, "--compat"),
24
26
  };
25
27
  if (!commandArgs.name) {
26
28
  throw new ValidationError("Name is required and cannot be empty");
@@ -49,16 +51,16 @@ export function* locAddCommand(args) {
49
51
  skipConfig: false,
50
52
  skipSignator: false,
51
53
  }, function* ({ hby, hab, runtime }) {
54
+ if (isLocalGroupHab(hby, hab)) {
55
+ throw new ValidationError("Location replies require an endpoint-owner alias. Use multisig endpoint-role approval to authorize that endpoint for a group.");
56
+ }
52
57
  const eid = commandArgs.eid ?? hab.pre;
53
- ingestKeriBytes(runtime, hab.makeLocScheme(url, eid, scheme, commandArgs.time));
54
- for (let i = 0; i < 4; i += 1) {
55
- yield* processRuntimeTurn(runtime, { hab, pollMailbox: false });
56
- if (hby.db.locs.get([eid, scheme])?.url === url
57
- && !!hby.db.lans.get([eid, scheme])
58
- && hab.loadLocScheme(eid, scheme).length > 0) {
59
- console.log(`Location ${url} added for aid ${eid} with scheme ${scheme}`);
60
- return;
61
- }
58
+ yield* settleRuntimeIngress(runtime, [hab.makeLocScheme(url, eid, scheme, commandArgs.time)]);
59
+ if (hby.db.locs.get([eid, scheme])?.url === url
60
+ && !!hby.db.lans.get([eid, scheme])
61
+ && hab.loadLocScheme(eid, scheme).length > 0) {
62
+ console.log(`Location ${url} added for aid ${eid} with scheme ${scheme}`);
63
+ return;
62
64
  }
63
65
  throw new ValidationError(`Location ${url} for ${eid} was not accepted into local state.`);
64
66
  });
@@ -0,0 +1,134 @@
1
+ /** Offline, exact-key maintenance of the existing pending-OOBI table. */
2
+ import * as dntShim from "../../_dnt.shims.js";
3
+ import { call } from "effection";
4
+ import { DatabaseOperationError, ValidationError } from "../../core/errors.js";
5
+ import { baserDefaults } from "../../db/baser-defaults.js";
6
+ import { createBaser } from "../../db/basing.js";
7
+ import { PathManager } from "../../db/core/path-manager.js";
8
+ import { parseBooleanOption, parseStringOption } from "../common/parsing.js";
9
+ import { writeJsonLine } from "../common/rendering.js";
10
+ /** Read a nonempty JSON list, preserving exact keys and first-seen order. */
11
+ function* loadKeys(path) {
12
+ let value;
13
+ try {
14
+ value = JSON.parse(yield* call(() => dntShim.Deno.readTextFile(path)));
15
+ }
16
+ catch (cause) {
17
+ throw new ValidationError(`Unable to read the JSON key file: ${path}`, { cause });
18
+ }
19
+ if (!Array.isArray(value) || value.length === 0) {
20
+ throw new ValidationError("Key file must contain a nonempty JSON array of exact string keys");
21
+ }
22
+ const keys = new Set();
23
+ for (const [index, key] of value.entries()) {
24
+ if (typeof key !== "string" || key.length === 0) {
25
+ throw new ValidationError(`Key file entry ${index} must be a nonempty string`);
26
+ }
27
+ // UTF-8 encoding replaces lone surrogates; never select a different stored
28
+ // key by silently repairing an ill-formed JSON string.
29
+ if (/[\uD800-\uDFFF]/u.test(key)) {
30
+ throw new ValidationError(`Key file entry ${index} must be a well-formed Unicode string`);
31
+ }
32
+ keys.add(key);
33
+ }
34
+ return [...keys];
35
+ }
36
+ /**
37
+ * Preview by default; apply only after every requested pending key is present.
38
+ * Publish the actual completed/remaining selection even on a deletion failure.
39
+ * The operator stops and backs up the service before invoking this command.
40
+ */
41
+ export function* oobiCleanCommand(args) {
42
+ if (typeof args.name !== "string" || args.name.trim().length === 0) {
43
+ throw new ValidationError("Name is required and cannot be empty");
44
+ }
45
+ if (typeof args.keyFile !== "string" || args.keyFile.length === 0) {
46
+ throw new ValidationError("A JSON --key-file is required");
47
+ }
48
+ const name = args.name;
49
+ const apply = parseBooleanOption(args.apply, "apply") ?? false;
50
+ const options = {
51
+ name,
52
+ base: parseStringOption(args.base, "base"),
53
+ headDirPath: parseStringOption(args.headDirPath, "headDirPath"),
54
+ compat: parseBooleanOption(args.compat, "compat") ?? false,
55
+ };
56
+ const keys = yield* loadKeys(args.keyFile);
57
+ // Resolve through ordinary path preparation before Baser can create data.mdb.
58
+ // Empty directories are ordinary startup effects; missing databases still fail.
59
+ const paths = new PathManager(options, baserDefaults(options.compat));
60
+ paths.name = name;
61
+ yield* paths.reopen();
62
+ const path = paths.path;
63
+ yield* paths.close();
64
+ if (!(yield* paths.statFileOp(`${path}/data.mdb`)).isFile) {
65
+ throw new DatabaseOperationError(`Existing database not found at ${path}`);
66
+ }
67
+ let report;
68
+ try {
69
+ // This boundary joins resource shutdown before reporting command completion.
70
+ yield* call(function* () {
71
+ const db = yield* createBaser(options);
72
+ let operationFailure;
73
+ try {
74
+ const entries = keys.map((key) => ({ key, present: db.oobis.get(key) !== null }));
75
+ const missing = entries.filter((entry) => !entry.present).map((entry) => entry.key);
76
+ const deleted = [];
77
+ report = {
78
+ path,
79
+ mode: apply ? "apply" : "preview",
80
+ selectedCount: keys.length,
81
+ entries,
82
+ missing,
83
+ deletedCount: 0,
84
+ deleted,
85
+ remaining: [...keys],
86
+ };
87
+ if (missing.length > 0) {
88
+ throw new ValidationError(`Pending OOBI keys not found: ${JSON.stringify(missing)}`);
89
+ }
90
+ if (apply) {
91
+ for (const key of keys) {
92
+ try {
93
+ if (!db.oobis.rem(key)) {
94
+ throw new DatabaseOperationError(`Pending OOBI removal returned false for ${key}`);
95
+ }
96
+ }
97
+ catch (cause) {
98
+ throw new DatabaseOperationError(`OOBI cleanup stopped after deleting ${deleted.length} of ${keys.length} selected entries`, { cause });
99
+ }
100
+ deleted.push(key);
101
+ report.deletedCount = deleted.length;
102
+ report.remaining = keys.slice(deleted.length);
103
+ }
104
+ }
105
+ }
106
+ catch (error) {
107
+ operationFailure = { error };
108
+ throw error;
109
+ }
110
+ finally {
111
+ try {
112
+ yield* db.close();
113
+ }
114
+ catch (error) {
115
+ if (operationFailure) {
116
+ // deno-lint-ignore no-unsafe-finally -- Preserve completed row failure and shutdown failure.
117
+ throw new AggregateError([operationFailure.error, error], "OOBI cleanup and database close failed", {
118
+ cause: operationFailure.error,
119
+ });
120
+ }
121
+ // deno-lint-ignore no-unsafe-finally -- Final command success requires closure.
122
+ throw error;
123
+ }
124
+ }
125
+ });
126
+ }
127
+ catch (error) {
128
+ if (report)
129
+ writeJsonLine({ ...report, status: "failed" });
130
+ throw error;
131
+ }
132
+ if (report)
133
+ writeJsonLine({ ...report, status: "complete" });
134
+ }
@@ -1,10 +1,13 @@
1
+ import { oobiTerminalState } from "../../app/bootstrap/oobiery.js";
2
+ import { OOBI_MAILBOX_TOPIC, OOBI_REQUEST_ROUTE, oobiRequestExn } from "../../app/bootstrap/oobiery.js";
3
+ import { sendExchangeMessage } from "../../app/exchanges/exchange-messaging.js";
4
+ import { enqueueOobi, runAgentRuntimeUntil, runtimeOobiConverged } from "../../app/runtime/agent-runtime.js";
5
+ import { systemClock } from "../../app/runtime/runtime-clock.js";
6
+ import { FetchHttpClient } from "../../app/transport/http-client.js";
1
7
  import { ValidationError } from "../../core/errors.js";
2
8
  import { EndpointRoles, isEndpointRole } from "../../core/roles.js";
3
- import { enqueueOobi, processRuntimeUntil, runtimeOobiConverged, runtimeOobiTerminalState } from "../agent-runtime.js";
4
- import { normalizeCesrBodyMode } from "../cesr-http.js";
5
- import { sendExchangeMessage } from "../forwarding.js";
6
- import { OOBI_MAILBOX_TOPIC, OOBI_REQUEST_ROUTE, oobiRequestExn } from "../oobiery.js";
7
- import { withAgentRuntime, withExistingHab } from "./common/context.js";
9
+ import { parseBooleanOption, parseStringOption } from "../common/parsing.js";
10
+ import { withAgentRuntime, withExistingHab } from "../common/context.js";
8
11
  /**
9
12
  * Choose one preferred URL from a scheme-keyed location map.
10
13
  *
@@ -32,13 +35,13 @@ function canonicalOobiOrigin(url) {
32
35
  */
33
36
  export function* oobiGenerateCommand(args) {
34
37
  const commandArgs = {
35
- name: args.name,
36
- base: args.base,
37
- headDirPath: args.headDirPath,
38
- passcode: args.passcode,
39
- alias: args.alias,
40
- role: args.role,
41
- compat: args.compat,
38
+ name: parseStringOption(args.name, "name"),
39
+ base: parseStringOption(args.base, "base"),
40
+ headDirPath: parseStringOption(args.headDirPath, "headDirPath"),
41
+ passcode: parseStringOption(args.passcode, "passcode"),
42
+ alias: parseStringOption(args.alias, "alias"),
43
+ role: parseStringOption(args.role, "role"),
44
+ compat: parseBooleanOption(args.compat, "compat"),
42
45
  };
43
46
  if (!commandArgs.name) {
44
47
  throw new ValidationError("Name is required and cannot be empty");
@@ -102,19 +105,19 @@ export function* oobiGenerateCommand(args) {
102
105
  /**
103
106
  * Implement `tufa oobi resolve` using a command-local shared runtime host.
104
107
  *
105
- * The command queues one OOBI job, runs one runtime turn, and succeeds only if
108
+ * The command queues one OOBI job, runs the shared workers, and succeeds only if
106
109
  * the URL lands in `roobi.`. Any reply/event material fetched from the OOBI is
107
110
  * forced through the same parser/routing path used by the long-lived host.
108
111
  */
109
112
  export function* oobiResolveCommand(args) {
110
113
  const commandArgs = {
111
- name: args.name,
112
- base: args.base,
113
- headDirPath: args.headDirPath,
114
- passcode: args.passcode,
115
- url: args.url,
116
- oobiAlias: args.oobiAlias,
117
- compat: args.compat,
114
+ name: parseStringOption(args.name, "name"),
115
+ base: parseStringOption(args.base, "base"),
116
+ headDirPath: parseStringOption(args.headDirPath, "headDirPath"),
117
+ passcode: parseStringOption(args.passcode, "passcode"),
118
+ url: parseStringOption(args.url, "url"),
119
+ oobiAlias: parseStringOption(args.oobiAlias, "oobiAlias"),
120
+ compat: parseBooleanOption(args.compat, "compat"),
118
121
  };
119
122
  if (!commandArgs.name) {
120
123
  throw new ValidationError("Name is required and cannot be empty");
@@ -133,8 +136,8 @@ export function* oobiResolveCommand(args) {
133
136
  url,
134
137
  alias: commandArgs.oobiAlias,
135
138
  });
136
- yield* processRuntimeUntil(runtime, () => runtimeOobiConverged(runtime, url), { maxTurns: 128, pollMailbox: false });
137
- const terminal = runtimeOobiTerminalState(runtime, url);
139
+ yield* runAgentRuntimeUntil(runtime, () => runtimeOobiConverged(runtime, url), { timeoutMs: 30_000, pollMailbox: false });
140
+ const terminal = oobiTerminalState(runtime.hby.db, url);
138
141
  if (terminal.status === "failed") {
139
142
  throw new ValidationError(`OOBI ${url} failed: ${terminal.record?.state ?? "failed"}`);
140
143
  }
@@ -149,19 +152,19 @@ export function* oobiResolveCommand(args) {
149
152
  *
150
153
  * This mirrors KERIpy's `"/oobis"` route while keeping the CLI and transport
151
154
  * ownership aligned with other outbound messaging commands.
155
+ *
156
+ * @param args Parsed command flags and positionals; required identifiers and policy values are validated before effects.
152
157
  */
153
158
  export function* oobiRequestCommand(args) {
154
159
  const commandArgs = {
155
- name: args.name,
156
- base: args.base,
157
- headDirPath: args.headDirPath,
158
- passcode: args.passcode,
159
- alias: args.alias,
160
- recipient: args.recipient,
161
- url: args.url,
162
- compat: args.compat,
163
- outboxer: args.outboxer,
164
- cesrBodyMode: normalizeCesrBodyMode(args.cesrBodyMode),
160
+ name: parseStringOption(args.name, "name"),
161
+ base: parseStringOption(args.base, "base"),
162
+ headDirPath: parseStringOption(args.headDirPath, "headDirPath"),
163
+ passcode: parseStringOption(args.passcode, "passcode"),
164
+ alias: parseStringOption(args.alias, "alias"),
165
+ recipient: parseStringOption(args.recipient, "recipient"),
166
+ url: parseStringOption(args.url, "url"),
167
+ compat: parseBooleanOption(args.compat, "compat"),
165
168
  };
166
169
  if (!commandArgs.name) {
167
170
  throw new ValidationError("Name is required and cannot be empty");
@@ -186,12 +189,10 @@ export function* oobiRequestCommand(args) {
186
189
  readonly: false,
187
190
  skipConfig: false,
188
191
  skipSignator: false,
189
- outboxer: commandArgs.outboxer ?? false,
190
- cesrBodyMode: commandArgs.cesrBodyMode,
191
192
  }, function* ({ hby, hab }) {
192
193
  const exn = oobiRequestExn(hab, recipient, url);
193
- const { serder } = yield* sendExchangeMessage(hby, hab, {
194
- recipient,
194
+ const { serder } = yield* sendExchangeMessage(hby, hab, new FetchHttpClient(), systemClock, {
195
+ dest: recipient,
195
196
  route: OOBI_REQUEST_ROUTE,
196
197
  topic: OOBI_MAILBOX_TOPIC,
197
198
  payload: exn.ked?.a ?? {
@@ -1,14 +1,15 @@
1
1
  import { ValidationError } from "../../core/errors.js";
2
- import { withExistingHab } from "./common/context.js";
2
+ import { withExistingHab } from "../common/context.js";
3
+ import { parseBooleanOption, parseStringOption } from "../common/parsing.js";
3
4
  /** Implements `tufa aid`. */
4
5
  export function* aidCommand(args) {
5
6
  const aidArgs = {
6
- name: args.name,
7
- base: args.base,
8
- headDirPath: args.headDirPath,
9
- passcode: args.passcode,
10
- alias: args.alias,
11
- compat: args.compat,
7
+ name: parseStringOption(args.name, "name"),
8
+ base: parseStringOption(args.base, "base"),
9
+ headDirPath: parseStringOption(args.headDirPath, "headDirPath"),
10
+ passcode: parseStringOption(args.passcode, "passcode"),
11
+ alias: parseStringOption(args.alias, "alias"),
12
+ compat: parseBooleanOption(args.compat, "compat"),
12
13
  };
13
14
  if (!aidArgs.name) {
14
15
  throw new ValidationError("Name is required and cannot be empty");
@@ -0,0 +1,181 @@
1
+ import { action, spawn } from "effection";
2
+ import { sendExchangeMessage } from "../../app/exchanges/exchange-messaging.js";
3
+ import { CHALLENGE_RESPONSE_ROUTE, findVerifiedChallengeResponse, formatChallengeWords, generateChallengeWords, markChallengeVerified, parseChallengeWords, } from "../../app/identity/challenging.js";
4
+ import { Organizer } from "../../app/identity/organizing.js";
5
+ import { isLocalGroupHab } from "../../app/multisig/group-members.js";
6
+ import { runAgentRuntime } from "../../app/runtime/agent-runtime.js";
7
+ import { systemClock } from "../../app/runtime/runtime-clock.js";
8
+ import { FetchHttpClient } from "../../app/transport/http-client.js";
9
+ import { ValidationError } from "../../core/errors.js";
10
+ import { parseBooleanOption, parseIntegerOption, parseNumberOption, parseStringOption } from "../common/parsing.js";
11
+ import { withAgentRuntime, withExistingHab } from "../common/context.js";
12
+ /** Implement `tufa challenge generate`. */
13
+ export function* challengeGenerateCommand(args) {
14
+ const commandArgs = {
15
+ strength: parseStrength(args.strength),
16
+ out: parseStringOption(args.out, "out"),
17
+ };
18
+ const out = normalizeOutput(commandArgs.out);
19
+ const words = generateChallengeWords(commandArgs.strength ?? 128);
20
+ console.log(formatChallengeWords(words, out));
21
+ }
22
+ /**
23
+ * Implement `tufa challenge respond` by sending a signed `/challenge/response` exchange message.
24
+ *
25
+ * @param args Parsed command flags and positionals; required identifiers and policy values are validated before effects.
26
+ */
27
+ export function* challengeRespondCommand(args) {
28
+ const commandArgs = {
29
+ name: parseStringOption(args.name, "name"),
30
+ base: parseStringOption(args.base, "base"),
31
+ headDirPath: parseStringOption(args.headDirPath, "headDirPath"),
32
+ passcode: parseStringOption(args.passcode, "passcode"),
33
+ alias: parseStringOption(args.alias, "alias"),
34
+ recipient: parseStringOption(args.recipient, "recipient"),
35
+ words: parseStringOption(args.words, "words"),
36
+ compat: parseBooleanOption(args.compat, "compat"),
37
+ };
38
+ if (!commandArgs.name) {
39
+ throw new ValidationError("Name is required and cannot be empty");
40
+ }
41
+ if (!commandArgs.alias) {
42
+ throw new ValidationError("Alias is required and cannot be empty");
43
+ }
44
+ if (!commandArgs.recipient) {
45
+ throw new ValidationError("Recipient prefix is required.");
46
+ }
47
+ if (!commandArgs.words) {
48
+ throw new ValidationError("Challenge words are required.");
49
+ }
50
+ const words = parseChallengeWords(commandArgs.words);
51
+ if (words.length === 0) {
52
+ throw new ValidationError("Challenge words must not be empty.");
53
+ }
54
+ const recipient = commandArgs.recipient;
55
+ yield* withExistingHab(commandArgs, commandArgs.alias, {
56
+ compat: commandArgs.compat ?? false,
57
+ readonly: false,
58
+ skipConfig: false,
59
+ skipSignator: false,
60
+ }, function* ({ hby, hab }) {
61
+ if (isLocalGroupHab(hby, hab)) {
62
+ throw new ValidationError("Challenge respond does not coordinate group approval. Select the responding member alias.");
63
+ }
64
+ const payload = { words };
65
+ const { serder } = yield* sendExchangeMessage(hby, hab, new FetchHttpClient(), systemClock, {
66
+ dest: recipient,
67
+ route: CHALLENGE_RESPONSE_ROUTE,
68
+ topic: "challenge",
69
+ payload: { i: hab.pre, ...payload },
70
+ });
71
+ console.log("Sent EXN message");
72
+ console.log(serder.pretty());
73
+ });
74
+ }
75
+ /** Implement `tufa challenge verify` by matching accepted challenge responses in local exchange state. */
76
+ export function* challengeVerifyCommand(args) {
77
+ const commandArgs = {
78
+ name: parseStringOption(args.name, "name"),
79
+ base: parseStringOption(args.base, "base"),
80
+ headDirPath: parseStringOption(args.headDirPath, "headDirPath"),
81
+ passcode: parseStringOption(args.passcode, "passcode"),
82
+ signer: parseStringOption(args.signer, "signer"),
83
+ words: parseStringOption(args.words, "words"),
84
+ generate: parseBooleanOption(args.generate, "generate"),
85
+ strength: parseStrength(args.strength),
86
+ out: parseStringOption(args.out, "out"),
87
+ timeout: parseNumberOption(args.timeout, "timeout") ?? 10,
88
+ compat: parseBooleanOption(args.compat, "compat"),
89
+ pollDelayMs: parseNumberOption(args.pollDelayMs, "pollDelayMs") ?? 250,
90
+ };
91
+ if (!commandArgs.name) {
92
+ throw new ValidationError("Name is required and cannot be empty");
93
+ }
94
+ if (commandArgs.timeout < 0 || !Number.isFinite(commandArgs.timeout * 1000)) {
95
+ throw new ValidationError("timeout must be finite and nonnegative seconds.");
96
+ }
97
+ if (commandArgs.pollDelayMs <= 0) {
98
+ throw new ValidationError("pollDelayMs must be positive.");
99
+ }
100
+ const out = normalizeOutput(commandArgs.out);
101
+ if (!commandArgs.signer) {
102
+ throw new ValidationError("Signer identifier or contact alias is required.");
103
+ }
104
+ if (!commandArgs.generate && !commandArgs.words) {
105
+ throw new ValidationError("Challenge words are required.");
106
+ }
107
+ const words = commandArgs.generate
108
+ ? generateChallengeWords(commandArgs.strength ?? 128)
109
+ : parseChallengeWords(commandArgs.words);
110
+ if (words.length === 0) {
111
+ throw new ValidationError("Challenge words must not be empty.");
112
+ }
113
+ const signerInput = commandArgs.signer;
114
+ yield* withAgentRuntime(commandArgs, {
115
+ compat: commandArgs.compat ?? false,
116
+ readonly: false,
117
+ skipConfig: false,
118
+ skipSignator: true,
119
+ }, function* ({ hby, runtime }) {
120
+ const signer = resolveSigner(hby, signerInput);
121
+ if (commandArgs.generate) {
122
+ console.log(formatChallengeWords(words, out));
123
+ }
124
+ runtime.mailboxDirector.topics.clear();
125
+ runtime.mailboxDirector.registerTopic("/challenge");
126
+ const timeoutMs = commandArgs.timeout * 1000;
127
+ const pollDelayMs = commandArgs.pollDelayMs;
128
+ const deadline = Date.now() + timeoutMs;
129
+ let match = findVerifiedChallengeResponse(hby.db, signer, words);
130
+ if (!match && timeoutMs > 0) {
131
+ const worker = yield* spawn(() => runAgentRuntime(runtime));
132
+ try {
133
+ while (!match && Date.now() < deadline) {
134
+ yield* sleep(Math.min(pollDelayMs, Math.max(0, deadline - Date.now())));
135
+ match = findVerifiedChallengeResponse(hby.db, signer, words);
136
+ }
137
+ }
138
+ finally {
139
+ yield* worker.halt();
140
+ }
141
+ }
142
+ if (!match) {
143
+ throw new ValidationError(`No challenge response from ${signerInput} matched the provided words.`);
144
+ }
145
+ markChallengeVerified(hby.db, signer, match);
146
+ console.log(`${signer} ${match.said}`);
147
+ });
148
+ }
149
+ function resolveSigner(hby, signer) {
150
+ if (hby.db.getKever(signer)) {
151
+ return signer;
152
+ }
153
+ const matches = new Organizer(hby.db, hby.signator).findExact("alias", signer);
154
+ if (matches.length === 0) {
155
+ throw new ValidationError(`no contact found with alias '${signer}'`);
156
+ }
157
+ if (matches.length > 1) {
158
+ throw new ValidationError(`multiple contacts match alias '${signer}', use prefix instead`);
159
+ }
160
+ return matches[0].id;
161
+ }
162
+ function normalizeOutput(input) {
163
+ const out = input ?? "json";
164
+ if (out === "json" || out === "string" || out === "words") {
165
+ return out;
166
+ }
167
+ throw new ValidationError(`Unsupported challenge output ${String(input)}.`);
168
+ }
169
+ function* sleep(ms) {
170
+ yield* action((resolve) => {
171
+ const timeoutId = setTimeout(() => resolve(undefined), ms);
172
+ return () => clearTimeout(timeoutId);
173
+ });
174
+ }
175
+ /** Challenge entropy is a positive whole bit count; omission selects the command default. */
176
+ function parseStrength(value) {
177
+ const strength = parseIntegerOption(value, "strength") ?? 128;
178
+ if (strength <= 0)
179
+ throw new ValidationError("strength must be positive.");
180
+ return strength;
181
+ }