keri-ts 1.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. package/README.md +23 -0
  2. package/esm/keri/npm/src/acdc/chaining.js +213 -0
  3. package/esm/keri/npm/src/acdc/dhking.js +716 -0
  4. package/esm/keri/npm/src/acdc/messaging.js +2 -0
  5. package/esm/keri/npm/src/acdc/observing.js +40 -7
  6. package/esm/keri/npm/src/acdc/regbasing.js +13 -2
  7. package/esm/keri/npm/src/acdc/regengine.js +71 -23
  8. package/esm/keri/npm/src/acdc/regeventing.js +163 -44
  9. package/esm/keri/npm/src/acdc/registering.js +93 -14
  10. package/esm/keri/npm/src/acdc/relating.js +59 -0
  11. package/esm/keri/npm/src/acdc/salting.js +720 -0
  12. package/esm/keri/npm/src/acdc/scheming.js +94 -39
  13. package/esm/keri/npm/src/acdc/unblinding.js +1042 -0
  14. package/esm/keri/npm/src/app/{authenticating.js → bootstrap/authenticating.js} +39 -18
  15. package/esm/keri/npm/src/app/bootstrap/bootstrapping.js +109 -0
  16. package/esm/keri/npm/src/app/{oobi-replies.js → bootstrap/oobi-replies.js} +8 -6
  17. package/esm/keri/npm/src/app/{oobiery.js → bootstrap/oobiery.js} +161 -75
  18. package/esm/keri/npm/src/app/credentials/credential-importing.js +201 -0
  19. package/esm/keri/npm/src/app/credentials/credential-proposals.js +120 -0
  20. package/esm/keri/npm/src/app/credentials/credential-revoking.js +165 -0
  21. package/esm/keri/npm/src/app/credentials/credential-workflows.js +365 -0
  22. package/esm/keri/npm/src/app/credentials/tel-publishing.js +27 -0
  23. package/esm/keri/npm/src/app/{verifying.js → credentials/verifying.js} +50 -6
  24. package/esm/keri/npm/src/app/delivery/forwarding.js +600 -0
  25. package/esm/keri/npm/src/app/delivery/introducing.js +68 -0
  26. package/esm/keri/npm/src/app/{reply-streams.js → delivery/reply-streams.js} +52 -7
  27. package/esm/keri/npm/src/app/delivery/respondant.js +159 -0
  28. package/esm/keri/npm/src/app/{stored-replies.js → delivery/stored-replies.js} +4 -4
  29. package/esm/keri/npm/src/app/exchanges/essr.js +111 -0
  30. package/esm/keri/npm/src/app/exchanges/exchange-messaging.js +66 -0
  31. package/esm/keri/npm/src/app/exchanges/exchanging.js +1354 -0
  32. package/esm/keri/npm/src/app/{configing.js → identity/configing.js} +4 -4
  33. package/esm/keri/npm/src/app/{delegating.js → identity/delegating.js} +99 -29
  34. package/esm/keri/npm/src/app/{endpoint-roleing.js → identity/endpoint-roleing.js} +36 -36
  35. package/esm/keri/npm/src/app/{habbing.js → identity/habbing.js} +232 -150
  36. package/esm/keri/npm/src/app/{keeping.js → identity/keeping.js} +60 -56
  37. package/esm/keri/npm/src/app/{organizing.js → identity/organizing.js} +47 -21
  38. package/esm/keri/npm/src/app/ipex/ipex-building.js +162 -0
  39. package/esm/keri/npm/src/app/{ipex-credentialing.js → ipex/ipex-credentialing.js} +142 -31
  40. package/esm/keri/npm/src/app/ipex/ipex-graph.js +243 -0
  41. package/esm/keri/npm/src/app/ipex/ipex-grouping.js +664 -0
  42. package/esm/keri/npm/src/app/{ipex-node-authentication.js → ipex/ipex-node-authentication.js} +83 -6
  43. package/esm/keri/npm/src/app/ipex/ipex-v2.js +692 -0
  44. package/esm/keri/npm/src/app/{ipexing.js → ipex/ipexing.js} +58 -1
  45. package/esm/keri/npm/src/app/mailbox/forward-handler.js +228 -0
  46. package/esm/keri/npm/src/app/{mailbox-director.js → mailbox/mailbox-director.js} +120 -15
  47. package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +305 -0
  48. package/esm/keri/npm/src/app/mailbox/mailbox-sse.js +254 -0
  49. package/esm/keri/npm/src/app/{mailboxing.js → mailbox/mailboxing.js} +118 -67
  50. package/esm/keri/npm/src/app/mailbox/topic-routing.js +54 -0
  51. package/esm/keri/npm/src/app/multisig/group-members.js +173 -0
  52. package/esm/keri/npm/src/app/{grouping.js → multisig/grouping.js} +384 -70
  53. package/esm/keri/npm/src/app/multisig/multisig-messaging.js +164 -0
  54. package/esm/keri/npm/src/app/multisig/multisig-workflows.js +821 -0
  55. package/esm/keri/npm/src/app/{notifying.js → notifications/notifying.js} +8 -14
  56. package/esm/keri/npm/src/app/{signaling.js → notifications/signaling.js} +1 -1
  57. package/esm/keri/npm/src/app/{parsering.js → protocol/parsering.js} +86 -18
  58. package/esm/keri/npm/src/app/protocol/protocol-processing.js +245 -0
  59. package/esm/keri/npm/src/app/protocol/reactor.js +55 -0
  60. package/esm/keri/npm/src/app/{query-replies.js → queries/query-replies.js} +57 -6
  61. package/esm/keri/npm/src/app/queries/querying.js +306 -0
  62. package/esm/keri/npm/src/app/queries/witness-inquisitor.js +415 -0
  63. package/esm/keri/npm/src/app/{abortable.js → runtime/abortable.js} +43 -4
  64. package/esm/keri/npm/src/app/runtime/agent-runtime.js +633 -0
  65. package/esm/keri/npm/src/app/runtime/cue-runtime.js +61 -0
  66. package/esm/keri/npm/src/app/runtime/runtime-clock.js +6 -0
  67. package/esm/keri/npm/src/app/{byte-source.js → transport/byte-source.js} +36 -6
  68. package/esm/keri/npm/src/app/transport/cesr-egress.js +317 -0
  69. package/esm/keri/npm/src/app/{cesr-http.js → transport/cesr-http.js} +20 -55
  70. package/esm/keri/npm/src/app/transport/http-client.js +172 -0
  71. package/esm/keri/npm/src/app/transport/http-messenger.js +52 -0
  72. package/esm/keri/npm/src/app/transport/http-stream-messenger.js +60 -0
  73. package/esm/keri/npm/src/app/transport/httping.js +57 -0
  74. package/esm/keri/npm/src/app/transport/message-source.js +77 -0
  75. package/esm/keri/npm/src/app/transport/messengering.js +68 -0
  76. package/esm/keri/npm/src/app/{socket-source.js → transport/socket-source.js} +39 -2
  77. package/esm/keri/npm/src/app/transport/tcp-egress.js +377 -0
  78. package/esm/keri/npm/src/app/transport/tcp-messenger.js +162 -0
  79. package/esm/keri/npm/src/app/transport/tcp-stream-messenger.js +40 -0
  80. package/esm/keri/npm/src/app/transport/transport-error.js +14 -0
  81. package/esm/keri/npm/src/app/witness/http-endpoints.js +185 -0
  82. package/esm/keri/npm/src/app/witness/ingress.js +148 -0
  83. package/esm/keri/npm/src/app/witness/receipt-client.js +248 -0
  84. package/esm/keri/npm/src/app/witness/receipt-messages.js +29 -0
  85. package/esm/keri/npm/src/app/witness/receipting.js +323 -0
  86. package/esm/keri/npm/src/app/witness/registration.js +50 -0
  87. package/esm/keri/npm/src/cli/common/bootstrap.js +12 -0
  88. package/esm/keri/npm/src/{app/cli → cli}/common/context.js +47 -6
  89. package/esm/keri/npm/src/{app/cli → cli}/common/existing.js +9 -11
  90. package/esm/keri/npm/src/cli/common/parsing.js +279 -0
  91. package/esm/keri/npm/src/cli/common/passcode.js +66 -0
  92. package/esm/keri/npm/src/cli/common/tel-completion.js +24 -0
  93. package/esm/keri/npm/src/{app/cli → cli}/common/witness-auth.js +2 -2
  94. package/esm/keri/npm/src/cli/credentials/ipex.js +702 -0
  95. package/esm/keri/npm/src/cli/credentials/vc.js +399 -0
  96. package/esm/keri/npm/src/{app/cli → cli/endpoints}/did.js +63 -36
  97. package/esm/keri/npm/src/{app/cli → cli/endpoints}/ends.js +33 -28
  98. package/esm/keri/npm/src/{app/cli → cli/endpoints}/loc.js +16 -11
  99. package/esm/keri/npm/src/cli/endpoints/oobi-clean.js +134 -0
  100. package/esm/keri/npm/src/{app/cli → cli/endpoints}/oobi.js +35 -32
  101. package/esm/keri/npm/src/{app/cli → cli/identity}/aid.js +8 -7
  102. package/esm/keri/npm/src/{app/cli → cli/identity}/challenge.js +60 -49
  103. package/esm/keri/npm/src/{app/cli → cli/identity}/delegate.js +61 -26
  104. package/esm/keri/npm/src/{app/cli → cli/identity}/export.js +9 -8
  105. package/esm/keri/npm/src/cli/identity/incept.js +181 -0
  106. package/esm/keri/npm/src/cli/identity/init.js +153 -0
  107. package/esm/keri/npm/src/cli/identity/interact.js +84 -0
  108. package/esm/keri/npm/src/{app/cli → cli/identity}/list.js +7 -6
  109. package/esm/keri/npm/src/{app/cli → cli/identity}/rotate.js +60 -57
  110. package/esm/keri/npm/src/cli/index.js +38 -0
  111. package/esm/keri/npm/src/{app/cli → cli/messaging}/exchange.js +24 -22
  112. package/esm/keri/npm/src/{app/cli → cli/messaging}/multisig.js +165 -156
  113. package/esm/keri/npm/src/{app/cli → cli/messaging}/notifications.js +26 -22
  114. package/esm/keri/npm/src/{app/cli → cli}/output.js +1 -1
  115. package/esm/keri/npm/src/{app/cli → cli/tools}/annotate.js +10 -4
  116. package/esm/keri/npm/src/{app/cli → cli/tools}/benchmark.js +15 -4
  117. package/esm/keri/npm/src/{app/cli → cli/tools}/db-dump.js +11 -10
  118. package/esm/keri/npm/src/{app/cli → cli/tools}/saidify.js +3 -2
  119. package/esm/keri/npm/src/{app/cli → cli/tools}/sign.js +16 -10
  120. package/esm/keri/npm/src/{app/cli → cli/tools}/verify.js +10 -10
  121. package/esm/keri/npm/src/core/attachment-countering.js +31 -1
  122. package/esm/keri/npm/src/core/{exchange-proofing.js → exchange/exchange-proofing.js} +32 -2
  123. package/esm/keri/npm/src/core/{protocol-exchanging.js → exchange/protocol-exchanging.js} +26 -4
  124. package/esm/keri/npm/src/core/genus-framing.js +44 -0
  125. package/esm/keri/npm/src/core/{eventing.js → kel/eventing.js} +57 -25
  126. package/esm/keri/npm/src/core/{kever-decisions.js → kel/kever-decisions.js} +24 -12
  127. package/esm/keri/npm/src/core/{kever.js → kel/kever.js} +4 -4
  128. package/esm/keri/npm/src/core/logger.js +3 -3
  129. package/esm/keri/npm/src/core/{kram-policy.js → mailbox/kram-policy.js} +14 -4
  130. package/esm/keri/npm/src/core/{kram-pruning.js → mailbox/kram-pruning.js} +3 -3
  131. package/esm/keri/npm/src/core/{kram-signatures.js → mailbox/kram-signatures.js} +1 -1
  132. package/esm/keri/npm/src/core/{kram-staging.js → mailbox/kram-staging.js} +6 -6
  133. package/esm/keri/npm/src/core/{kram-time.js → mailbox/kram-time.js} +4 -3
  134. package/esm/keri/npm/src/core/{kraming.js → mailbox/kraming.js} +2 -2
  135. package/esm/keri/npm/src/core/protocol-eventing.js +1 -1
  136. package/esm/keri/npm/src/core/protocol-serialization.js +9 -34
  137. package/esm/keri/npm/src/core/routing.js +52 -17
  138. package/esm/keri/npm/src/db/baser-defaults.js +11 -0
  139. package/esm/keri/npm/src/db/basing.js +89 -232
  140. package/esm/keri/npm/src/db/core/lmdber.js +102 -63
  141. package/esm/keri/npm/src/db/escrowing.js +73 -49
  142. package/esm/keri/npm/src/db/exchange/exchange-nests.js +54 -0
  143. package/esm/keri/npm/src/db/exchange/exchange-records.js +7 -0
  144. package/esm/keri/npm/src/db/index.js +5 -4
  145. package/esm/keri/npm/src/db/keeping.js +122 -3
  146. package/esm/keri/npm/src/db/{kram-factors.js → mailbox/kram-factors.js} +1 -1
  147. package/esm/keri/npm/src/db/{mailboxing.js → mailbox/mailboxing.js} +3 -3
  148. package/esm/keri/npm/src/db/reger.js +38 -29
  149. package/esm/keri/npm/src/db/{kel-replay.js → replay/kel-replay.js} +11 -4
  150. package/esm/keri/npm/src/db/{tel-replay.js → replay/tel-replay.js} +34 -0
  151. package/esm/keri/npm/src/db/{witness-replay.js → replay/witness-replay.js} +2 -2
  152. package/esm/keri/npm/src/db/subing.js +2 -3
  153. package/esm/keri/npm/src/did/webs/artifacts.js +15 -18
  154. package/esm/keri/npm/src/did/webs/designated-aliases.js +5 -7
  155. package/esm/keri/npm/src/did/webs/resolving.js +73 -56
  156. package/esm/keri/npm/src/library/index.js +1 -1
  157. package/esm/keri/npm/src/npm/cli.js +1 -1
  158. package/esm/keri/npm/src/npm/index.js +1 -1
  159. package/esm/keri/npm/src/runtime/index.js +79 -47
  160. package/esm/keri/npm/src/vdr/backer-state.js +55 -0
  161. package/esm/keri/npm/src/vdr/credential-tsn-record.js +59 -0
  162. package/esm/keri/npm/src/vdr/credentialing.js +84 -82
  163. package/esm/keri/npm/src/vdr/eventing.js +592 -204
  164. package/esm/keri/npm/src/vdr/registry-tsn-record.js +55 -0
  165. package/esm/keri/npm/src/vdr/revoking.js +90 -0
  166. package/esm/keri/npm/src/vdr/tel-anchor.js +29 -0
  167. package/esm/keri/npm/src/vdr/tel-publication.js +178 -0
  168. package/esm/keri/npm/src/{app/version.js → version.js} +2 -2
  169. package/package.json +5 -3
  170. package/types/_dnt.polyfills.d.ts +6 -0
  171. package/types/_dnt.polyfills.d.ts.map +1 -1
  172. package/types/acdc/chaining.d.ts +35 -0
  173. package/types/acdc/chaining.d.ts.map +1 -0
  174. package/types/acdc/dhking.d.ts +136 -0
  175. package/types/acdc/dhking.d.ts.map +1 -0
  176. package/types/acdc/messaging.d.ts.map +1 -1
  177. package/types/acdc/observing.d.ts +18 -7
  178. package/types/acdc/observing.d.ts.map +1 -1
  179. package/types/acdc/regbasing.d.ts +3 -1
  180. package/types/acdc/regbasing.d.ts.map +1 -1
  181. package/types/acdc/regengine.d.ts +9 -4
  182. package/types/acdc/regengine.d.ts.map +1 -1
  183. package/types/acdc/regeventing.d.ts +24 -7
  184. package/types/acdc/regeventing.d.ts.map +1 -1
  185. package/types/acdc/registering.d.ts +22 -6
  186. package/types/acdc/registering.d.ts.map +1 -1
  187. package/types/acdc/registraring.d.ts +1 -1
  188. package/types/acdc/registraring.d.ts.map +1 -1
  189. package/types/acdc/relating.d.ts +21 -0
  190. package/types/acdc/relating.d.ts.map +1 -0
  191. package/types/acdc/salting.d.ts +241 -0
  192. package/types/acdc/salting.d.ts.map +1 -0
  193. package/types/acdc/scheming.d.ts +1 -1
  194. package/types/acdc/scheming.d.ts.map +1 -1
  195. package/types/acdc/unblinding.d.ts +150 -0
  196. package/types/acdc/unblinding.d.ts.map +1 -0
  197. package/types/app/bootstrap/authenticating.d.ts +54 -0
  198. package/types/app/bootstrap/authenticating.d.ts.map +1 -0
  199. package/types/app/bootstrap/bootstrapping.d.ts +45 -0
  200. package/types/app/bootstrap/bootstrapping.d.ts.map +1 -0
  201. package/types/app/{oobi-replies.d.ts → bootstrap/oobi-replies.d.ts} +1 -1
  202. package/types/app/bootstrap/oobi-replies.d.ts.map +1 -0
  203. package/types/app/{oobiery.d.ts → bootstrap/oobiery.d.ts} +98 -25
  204. package/types/app/bootstrap/oobiery.d.ts.map +1 -0
  205. package/types/app/credentials/credential-importing.d.ts +29 -0
  206. package/types/app/credentials/credential-importing.d.ts.map +1 -0
  207. package/types/app/credentials/credential-proposals.d.ts +27 -0
  208. package/types/app/credentials/credential-proposals.d.ts.map +1 -0
  209. package/types/app/credentials/credential-revoking.d.ts +44 -0
  210. package/types/app/credentials/credential-revoking.d.ts.map +1 -0
  211. package/types/app/credentials/credential-workflows.d.ts +149 -0
  212. package/types/app/credentials/credential-workflows.d.ts.map +1 -0
  213. package/types/app/{schema-resolving.d.ts → credentials/schema-resolving.d.ts} +2 -2
  214. package/types/app/credentials/schema-resolving.d.ts.map +1 -0
  215. package/types/app/credentials/tel-publishing.d.ts +16 -0
  216. package/types/app/credentials/tel-publishing.d.ts.map +1 -0
  217. package/types/app/{verifying.d.ts → credentials/verifying.d.ts} +19 -7
  218. package/types/app/credentials/verifying.d.ts.map +1 -0
  219. package/types/app/delivery/forwarding.d.ts +227 -0
  220. package/types/app/delivery/forwarding.d.ts.map +1 -0
  221. package/types/app/delivery/introducing.d.ts +21 -0
  222. package/types/app/delivery/introducing.d.ts.map +1 -0
  223. package/types/app/delivery/reply-streams.d.ts +49 -0
  224. package/types/app/delivery/reply-streams.d.ts.map +1 -0
  225. package/types/app/delivery/respondant.d.ts +52 -0
  226. package/types/app/delivery/respondant.d.ts.map +1 -0
  227. package/types/app/{stored-replies.d.ts → delivery/stored-replies.d.ts} +1 -1
  228. package/types/app/delivery/stored-replies.d.ts.map +1 -0
  229. package/types/app/exchanges/essr.d.ts +53 -0
  230. package/types/app/exchanges/essr.d.ts.map +1 -0
  231. package/types/app/exchanges/exchange-messaging.d.ts +73 -0
  232. package/types/app/exchanges/exchange-messaging.d.ts.map +1 -0
  233. package/types/app/exchanges/exchanging.d.ts +379 -0
  234. package/types/app/exchanges/exchanging.d.ts.map +1 -0
  235. package/types/app/{challenging.d.ts → identity/challenging.d.ts} +3 -3
  236. package/types/app/identity/challenging.d.ts.map +1 -0
  237. package/types/app/{configing.d.ts → identity/configing.d.ts} +1 -1
  238. package/types/app/identity/configing.d.ts.map +1 -0
  239. package/types/app/{delegating.d.ts → identity/delegating.d.ts} +52 -15
  240. package/types/app/identity/delegating.d.ts.map +1 -0
  241. package/types/app/{endpoint-roleing.d.ts → identity/endpoint-roleing.d.ts} +24 -13
  242. package/types/app/identity/endpoint-roleing.d.ts.map +1 -0
  243. package/types/app/{habbing.d.ts → identity/habbing.d.ts} +73 -32
  244. package/types/app/identity/habbing.d.ts.map +1 -0
  245. package/types/app/{keeping.d.ts → identity/keeping.d.ts} +19 -5
  246. package/types/app/identity/keeping.d.ts.map +1 -0
  247. package/types/app/{organizing.d.ts → identity/organizing.d.ts} +19 -4
  248. package/types/app/identity/organizing.d.ts.map +1 -0
  249. package/types/app/ipex/ipex-building.d.ts +30 -0
  250. package/types/app/ipex/ipex-building.d.ts.map +1 -0
  251. package/types/app/{ipex-credentialing.d.ts → ipex/ipex-credentialing.d.ts} +33 -6
  252. package/types/app/ipex/ipex-credentialing.d.ts.map +1 -0
  253. package/types/app/ipex/ipex-graph.d.ts +28 -0
  254. package/types/app/ipex/ipex-graph.d.ts.map +1 -0
  255. package/types/app/ipex/ipex-grouping.d.ts +112 -0
  256. package/types/app/ipex/ipex-grouping.d.ts.map +1 -0
  257. package/types/app/{ipex-node-authentication.d.ts → ipex/ipex-node-authentication.d.ts} +10 -5
  258. package/types/app/ipex/ipex-node-authentication.d.ts.map +1 -0
  259. package/types/app/ipex/ipex-v2.d.ts +71 -0
  260. package/types/app/ipex/ipex-v2.d.ts.map +1 -0
  261. package/types/app/{ipexing.d.ts → ipex/ipexing.d.ts} +21 -6
  262. package/types/app/ipex/ipexing.d.ts.map +1 -0
  263. package/types/app/mailbox/forward-handler.d.ts +68 -0
  264. package/types/app/mailbox/forward-handler.d.ts.map +1 -0
  265. package/types/app/mailbox/mailbox-director.d.ts +252 -0
  266. package/types/app/mailbox/mailbox-director.d.ts.map +1 -0
  267. package/types/app/mailbox/mailbox-poller.d.ts +149 -0
  268. package/types/app/mailbox/mailbox-poller.d.ts.map +1 -0
  269. package/types/app/mailbox/mailbox-sse.d.ts +63 -0
  270. package/types/app/mailbox/mailbox-sse.d.ts.map +1 -0
  271. package/types/app/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +92 -40
  272. package/types/app/mailbox/mailboxing.d.ts.map +1 -0
  273. package/types/app/mailbox/topic-routing.d.ts +18 -0
  274. package/types/app/mailbox/topic-routing.d.ts.map +1 -0
  275. package/types/app/multisig/group-members.d.ts +60 -0
  276. package/types/app/multisig/group-members.d.ts.map +1 -0
  277. package/types/app/{grouping.d.ts → multisig/grouping.d.ts} +142 -19
  278. package/types/app/multisig/grouping.d.ts.map +1 -0
  279. package/types/app/multisig/multisig-messaging.d.ts +97 -0
  280. package/types/app/multisig/multisig-messaging.d.ts.map +1 -0
  281. package/types/app/multisig/multisig-workflows.d.ts +85 -0
  282. package/types/app/multisig/multisig-workflows.d.ts.map +1 -0
  283. package/types/app/{notifying.d.ts → notifications/notifying.d.ts} +4 -5
  284. package/types/app/notifications/notifying.d.ts.map +1 -0
  285. package/types/app/notifications/signaling.d.ts.map +1 -0
  286. package/types/app/{parsering.d.ts → protocol/parsering.d.ts} +40 -11
  287. package/types/app/protocol/parsering.d.ts.map +1 -0
  288. package/types/app/{protocol-host-policy.d.ts → protocol/protocol-host-policy.d.ts} +1 -10
  289. package/types/app/protocol/protocol-host-policy.d.ts.map +1 -0
  290. package/types/app/protocol/protocol-processing.d.ts +140 -0
  291. package/types/app/protocol/protocol-processing.d.ts.map +1 -0
  292. package/types/app/protocol/reactor.d.ts +43 -0
  293. package/types/app/protocol/reactor.d.ts.map +1 -0
  294. package/types/app/queries/query-replies.d.ts +78 -0
  295. package/types/app/queries/query-replies.d.ts.map +1 -0
  296. package/types/app/queries/querying.d.ts +155 -0
  297. package/types/app/queries/querying.d.ts.map +1 -0
  298. package/types/app/queries/witness-inquisitor.d.ts +150 -0
  299. package/types/app/queries/witness-inquisitor.d.ts.map +1 -0
  300. package/types/app/runtime/abortable.d.ts +39 -0
  301. package/types/app/runtime/abortable.d.ts.map +1 -0
  302. package/types/app/runtime/agent-runtime.d.ts +348 -0
  303. package/types/app/runtime/agent-runtime.d.ts.map +1 -0
  304. package/types/app/runtime/cue-runtime.d.ts +33 -0
  305. package/types/app/runtime/cue-runtime.d.ts.map +1 -0
  306. package/types/app/runtime/runtime-clock.d.ts +28 -0
  307. package/types/app/runtime/runtime-clock.d.ts.map +1 -0
  308. package/types/app/runtime/runtime-turn.d.ts.map +1 -0
  309. package/types/app/transport/byte-source.d.ts +41 -0
  310. package/types/app/transport/byte-source.d.ts.map +1 -0
  311. package/types/app/transport/cesr-egress.d.ts +117 -0
  312. package/types/app/transport/cesr-egress.d.ts.map +1 -0
  313. package/types/app/{cesr-http.d.ts → transport/cesr-http.d.ts} +4 -27
  314. package/types/app/transport/cesr-http.d.ts.map +1 -0
  315. package/types/app/transport/http-client.d.ts +99 -0
  316. package/types/app/transport/http-client.d.ts.map +1 -0
  317. package/types/app/transport/http-messenger.d.ts +37 -0
  318. package/types/app/transport/http-messenger.d.ts.map +1 -0
  319. package/types/app/transport/http-stream-messenger.d.ts +30 -0
  320. package/types/app/transport/http-stream-messenger.d.ts.map +1 -0
  321. package/types/app/transport/httping.d.ts +19 -0
  322. package/types/app/transport/httping.d.ts.map +1 -0
  323. package/types/app/transport/message-source.d.ts +22 -0
  324. package/types/app/transport/message-source.d.ts.map +1 -0
  325. package/types/app/transport/messengering.d.ts +41 -0
  326. package/types/app/transport/messengering.d.ts.map +1 -0
  327. package/types/app/{socket-source.d.ts → transport/socket-source.d.ts} +8 -0
  328. package/types/app/transport/socket-source.d.ts.map +1 -0
  329. package/types/app/transport/tcp-egress.d.ts +118 -0
  330. package/types/app/transport/tcp-egress.d.ts.map +1 -0
  331. package/types/app/transport/tcp-messenger.d.ts +69 -0
  332. package/types/app/transport/tcp-messenger.d.ts.map +1 -0
  333. package/types/app/transport/tcp-stream-messenger.d.ts +25 -0
  334. package/types/app/transport/tcp-stream-messenger.d.ts.map +1 -0
  335. package/types/app/transport/transport-error.d.ts +12 -0
  336. package/types/app/transport/transport-error.d.ts.map +1 -0
  337. package/types/app/witness/http-endpoints.d.ts +77 -0
  338. package/types/app/witness/http-endpoints.d.ts.map +1 -0
  339. package/types/app/witness/ingress.d.ts +65 -0
  340. package/types/app/witness/ingress.d.ts.map +1 -0
  341. package/types/app/witness/receipt-client.d.ts +82 -0
  342. package/types/app/witness/receipt-client.d.ts.map +1 -0
  343. package/types/app/witness/receipt-messages.d.ts +21 -0
  344. package/types/app/witness/receipt-messages.d.ts.map +1 -0
  345. package/types/app/witness/receipting.d.ts +117 -0
  346. package/types/app/witness/receipting.d.ts.map +1 -0
  347. package/types/app/witness/registration.d.ts +27 -0
  348. package/types/app/witness/registration.d.ts.map +1 -0
  349. package/types/cli/common/bootstrap.d.ts +5 -0
  350. package/types/cli/common/bootstrap.d.ts.map +1 -0
  351. package/types/{app/cli → cli}/common/context.d.ts +10 -5
  352. package/types/cli/common/context.d.ts.map +1 -0
  353. package/types/{app/cli → cli}/common/existing.d.ts +2 -4
  354. package/types/cli/common/existing.d.ts.map +1 -0
  355. package/types/{app/cli → cli}/common/parsing.d.ts +26 -15
  356. package/types/cli/common/parsing.d.ts.map +1 -0
  357. package/types/cli/common/passcode.d.ts +9 -0
  358. package/types/cli/common/passcode.d.ts.map +1 -0
  359. package/types/cli/common/rendering.d.ts.map +1 -0
  360. package/types/cli/common/tel-completion.d.ts +8 -0
  361. package/types/cli/common/tel-completion.d.ts.map +1 -0
  362. package/types/{app/cli → cli}/common/witness-auth.d.ts +1 -1
  363. package/types/cli/common/witness-auth.d.ts.map +1 -0
  364. package/types/cli/credentials/ipex.d.ts +110 -0
  365. package/types/cli/credentials/ipex.d.ts.map +1 -0
  366. package/types/cli/credentials/vc.d.ts +42 -0
  367. package/types/cli/credentials/vc.d.ts.map +1 -0
  368. package/types/{app/cli → cli/endpoints}/did.d.ts +5 -1
  369. package/types/cli/endpoints/did.d.ts.map +1 -0
  370. package/types/{app/cli → cli/endpoints}/ends.d.ts +9 -1
  371. package/types/cli/endpoints/ends.d.ts.map +1 -0
  372. package/types/cli/endpoints/loc.d.ts.map +1 -0
  373. package/types/cli/endpoints/oobi-clean.d.ts +8 -0
  374. package/types/cli/endpoints/oobi-clean.d.ts.map +1 -0
  375. package/types/{app/cli → cli/endpoints}/oobi.d.ts +2 -0
  376. package/types/cli/endpoints/oobi.d.ts.map +1 -0
  377. package/types/cli/identity/aid.d.ts.map +1 -0
  378. package/types/{app/cli → cli/identity}/challenge.d.ts +5 -1
  379. package/types/cli/identity/challenge.d.ts.map +1 -0
  380. package/types/cli/identity/delegate.d.ts.map +1 -0
  381. package/types/cli/identity/export.d.ts.map +1 -0
  382. package/types/{app/cli → cli/identity}/incept.d.ts +2 -0
  383. package/types/cli/identity/incept.d.ts.map +1 -0
  384. package/types/{app/cli → cli/identity}/init.d.ts +2 -0
  385. package/types/cli/identity/init.d.ts.map +1 -0
  386. package/types/{app/cli → cli/identity}/interact.d.ts +2 -0
  387. package/types/cli/identity/interact.d.ts.map +1 -0
  388. package/types/cli/identity/list.d.ts.map +1 -0
  389. package/types/{app/cli → cli/identity}/rotate.d.ts +9 -2
  390. package/types/cli/identity/rotate.d.ts.map +1 -0
  391. package/types/cli/index.d.ts +39 -0
  392. package/types/cli/index.d.ts.map +1 -0
  393. package/types/{app/cli → cli/messaging}/exchange.d.ts +3 -1
  394. package/types/cli/messaging/exchange.d.ts.map +1 -0
  395. package/types/cli/messaging/multisig.d.ts +29 -0
  396. package/types/cli/messaging/multisig.d.ts.map +1 -0
  397. package/types/cli/messaging/notifications.d.ts.map +1 -0
  398. package/types/cli/output.d.ts.map +1 -0
  399. package/types/cli/tools/annotate-color.d.ts.map +1 -0
  400. package/types/cli/tools/annotate.d.ts.map +1 -0
  401. package/types/cli/tools/benchmark.d.ts.map +1 -0
  402. package/types/cli/tools/db-dump.d.ts.map +1 -0
  403. package/types/cli/tools/saidify.d.ts.map +1 -0
  404. package/types/{app/cli → cli/tools}/sign.d.ts +2 -0
  405. package/types/cli/tools/sign.d.ts.map +1 -0
  406. package/types/cli/tools/verify.d.ts.map +1 -0
  407. package/types/core/attachment-countering.d.ts +10 -1
  408. package/types/core/attachment-countering.d.ts.map +1 -1
  409. package/types/core/cues.d.ts +78 -21
  410. package/types/core/cues.d.ts.map +1 -1
  411. package/types/core/{exchange-proofing.d.ts → exchange/exchange-proofing.d.ts} +9 -2
  412. package/types/core/exchange/exchange-proofing.d.ts.map +1 -0
  413. package/types/core/{protocol-exchanging.d.ts → exchange/protocol-exchanging.d.ts} +10 -2
  414. package/types/core/exchange/protocol-exchanging.d.ts.map +1 -0
  415. package/types/core/genus-framing.d.ts +12 -0
  416. package/types/core/genus-framing.d.ts.map +1 -0
  417. package/types/core/{eventing.d.ts → kel/eventing.d.ts} +22 -10
  418. package/types/core/kel/eventing.d.ts.map +1 -0
  419. package/types/core/{kever-decisions.d.ts → kel/kever-decisions.d.ts} +21 -8
  420. package/types/core/kel/kever-decisions.d.ts.map +1 -0
  421. package/types/core/{kever.d.ts → kel/kever.d.ts} +2 -2
  422. package/types/core/kel/kever.d.ts.map +1 -0
  423. package/types/core/kel/witnesses.d.ts.map +1 -0
  424. package/types/core/logger.d.ts +1 -1
  425. package/types/core/logger.d.ts.map +1 -1
  426. package/types/core/{kram-auth.d.ts → mailbox/kram-auth.d.ts} +2 -2
  427. package/types/core/mailbox/kram-auth.d.ts.map +1 -0
  428. package/types/core/{kram-policy.d.ts → mailbox/kram-policy.d.ts} +2 -2
  429. package/types/core/mailbox/kram-policy.d.ts.map +1 -0
  430. package/types/core/{kram-pruning.d.ts → mailbox/kram-pruning.d.ts} +1 -1
  431. package/types/core/mailbox/kram-pruning.d.ts.map +1 -0
  432. package/types/core/{kram-signatures.d.ts → mailbox/kram-signatures.d.ts} +3 -3
  433. package/types/core/mailbox/kram-signatures.d.ts.map +1 -0
  434. package/types/core/{kram-staging.d.ts → mailbox/kram-staging.d.ts} +2 -2
  435. package/types/core/mailbox/kram-staging.d.ts.map +1 -0
  436. package/types/core/{kram-time.d.ts → mailbox/kram-time.d.ts} +2 -2
  437. package/types/core/mailbox/kram-time.d.ts.map +1 -0
  438. package/types/core/{kraming.d.ts → mailbox/kraming.d.ts} +5 -5
  439. package/types/core/mailbox/kraming.d.ts.map +1 -0
  440. package/types/core/mailbox/mailbox-topics.d.ts.map +1 -0
  441. package/types/core/protocol-eventing.d.ts.map +1 -1
  442. package/types/core/protocol-serialization.d.ts +1 -1
  443. package/types/core/protocol-serialization.d.ts.map +1 -1
  444. package/types/core/records.d.ts +1 -1
  445. package/types/core/records.d.ts.map +1 -1
  446. package/types/core/routing.d.ts +24 -4
  447. package/types/core/routing.d.ts.map +1 -1
  448. package/types/db/baser-defaults.d.ts +5 -0
  449. package/types/db/baser-defaults.d.ts.map +1 -0
  450. package/types/db/basing.d.ts +32 -44
  451. package/types/db/basing.d.ts.map +1 -1
  452. package/types/db/core/lmdber.d.ts +18 -13
  453. package/types/db/core/lmdber.d.ts.map +1 -1
  454. package/types/db/escrowing.d.ts +3 -1
  455. package/types/db/escrowing.d.ts.map +1 -1
  456. package/types/db/exchange/exchange-nests.d.ts +12 -0
  457. package/types/db/exchange/exchange-nests.d.ts.map +1 -0
  458. package/types/db/exchange/exchange-records.d.ts +38 -0
  459. package/types/db/exchange/exchange-records.d.ts.map +1 -0
  460. package/types/db/index.d.ts +5 -4
  461. package/types/db/index.d.ts.map +1 -1
  462. package/types/db/keeping.d.ts +19 -1
  463. package/types/db/keeping.d.ts.map +1 -1
  464. package/types/db/{kram-factors.d.ts → mailbox/kram-factors.d.ts} +2 -2
  465. package/types/db/mailbox/kram-factors.d.ts.map +1 -0
  466. package/types/db/{mailboxing.d.ts → mailbox/mailboxing.d.ts} +2 -2
  467. package/types/db/mailbox/mailboxing.d.ts.map +1 -0
  468. package/types/db/reger.d.ts +7 -6
  469. package/types/db/reger.d.ts.map +1 -1
  470. package/types/db/{kel-replay.d.ts → replay/kel-replay.d.ts} +1 -2
  471. package/types/db/replay/kel-replay.d.ts.map +1 -0
  472. package/types/db/{tel-replay.d.ts → replay/tel-replay.d.ts} +11 -1
  473. package/types/db/replay/tel-replay.d.ts.map +1 -0
  474. package/types/db/{witness-replay.d.ts → replay/witness-replay.d.ts} +1 -1
  475. package/types/db/replay/witness-replay.d.ts.map +1 -0
  476. package/types/db/subing.d.ts.map +1 -1
  477. package/types/did/keri/resolving.d.ts +1 -1
  478. package/types/did/keri/resolving.d.ts.map +1 -1
  479. package/types/did/webs/artifacts.d.ts +5 -5
  480. package/types/did/webs/artifacts.d.ts.map +1 -1
  481. package/types/did/webs/designated-aliases.d.ts +1 -2
  482. package/types/did/webs/designated-aliases.d.ts.map +1 -1
  483. package/types/did/webs/documenting.d.ts +1 -1
  484. package/types/did/webs/documenting.d.ts.map +1 -1
  485. package/types/did/webs/resolving.d.ts +13 -9
  486. package/types/did/webs/resolving.d.ts.map +1 -1
  487. package/types/library/index.d.ts +1 -1
  488. package/types/library/index.d.ts.map +1 -1
  489. package/types/npm/cli.d.ts +1 -1
  490. package/types/npm/cli.d.ts.map +1 -1
  491. package/types/npm/index.d.ts +1 -1
  492. package/types/npm/index.d.ts.map +1 -1
  493. package/types/runtime/index.d.ts +86 -51
  494. package/types/runtime/index.d.ts.map +1 -1
  495. package/types/vdr/backer-state.d.ts +22 -0
  496. package/types/vdr/backer-state.d.ts.map +1 -0
  497. package/types/vdr/credential-tsn-record.d.ts +13 -0
  498. package/types/vdr/credential-tsn-record.d.ts.map +1 -0
  499. package/types/vdr/credentialing.d.ts +16 -17
  500. package/types/vdr/credentialing.d.ts.map +1 -1
  501. package/types/vdr/eventing.d.ts +60 -18
  502. package/types/vdr/eventing.d.ts.map +1 -1
  503. package/types/vdr/registry-tsn-record.d.ts +6 -0
  504. package/types/vdr/registry-tsn-record.d.ts.map +1 -0
  505. package/types/vdr/revoking.d.ts +18 -0
  506. package/types/vdr/revoking.d.ts.map +1 -0
  507. package/types/vdr/tel-anchor.d.ts +10 -0
  508. package/types/vdr/tel-anchor.d.ts.map +1 -0
  509. package/types/vdr/tel-publication.d.ts +49 -0
  510. package/types/vdr/tel-publication.d.ts.map +1 -0
  511. package/types/vdr/tsn-query.d.ts +1 -1
  512. package/types/vdr/tsn-query.d.ts.map +1 -1
  513. package/types/{app/version.d.ts → version.d.ts} +2 -2
  514. package/types/version.d.ts.map +1 -0
  515. package/esm/keri/npm/src/app/agent-runtime.js +0 -544
  516. package/esm/keri/npm/src/app/cesr-egress.js +0 -294
  517. package/esm/keri/npm/src/app/cli/common/displaying.js +0 -43
  518. package/esm/keri/npm/src/app/cli/common/parsing.js +0 -215
  519. package/esm/keri/npm/src/app/cli/incept.js +0 -185
  520. package/esm/keri/npm/src/app/cli/index.js +0 -36
  521. package/esm/keri/npm/src/app/cli/init.js +0 -149
  522. package/esm/keri/npm/src/app/cli/interact.js +0 -72
  523. package/esm/keri/npm/src/app/cli/ipex.js +0 -519
  524. package/esm/keri/npm/src/app/cli/query.js +0 -142
  525. package/esm/keri/npm/src/app/cli/vc.js +0 -283
  526. package/esm/keri/npm/src/app/cli/verifier.js +0 -92
  527. package/esm/keri/npm/src/app/credential-workflows.js +0 -409
  528. package/esm/keri/npm/src/app/cue-runtime.js +0 -38
  529. package/esm/keri/npm/src/app/essr.js +0 -170
  530. package/esm/keri/npm/src/app/exchanging.js +0 -1001
  531. package/esm/keri/npm/src/app/forwarding.js +0 -936
  532. package/esm/keri/npm/src/app/group-members.js +0 -37
  533. package/esm/keri/npm/src/app/httping.js +0 -162
  534. package/esm/keri/npm/src/app/ipex-graph.js +0 -407
  535. package/esm/keri/npm/src/app/ipex-grouping.js +0 -276
  536. package/esm/keri/npm/src/app/ipex-v2.js +0 -438
  537. package/esm/keri/npm/src/app/mailbox-sse.js +0 -240
  538. package/esm/keri/npm/src/app/multisig-workflows.js +0 -457
  539. package/esm/keri/npm/src/app/querying.js +0 -775
  540. package/esm/keri/npm/src/app/reactor.js +0 -394
  541. package/esm/keri/npm/src/app/respondant.js +0 -358
  542. package/esm/keri/npm/src/app/runtime-services.js +0 -22
  543. package/esm/keri/npm/src/app/tcp-conversation.js +0 -85
  544. package/esm/keri/npm/src/app/tcp-egress.js +0 -251
  545. package/esm/keri/npm/src/app/verifier-agent.js +0 -443
  546. package/esm/keri/npm/src/app/witnessing.js +0 -914
  547. package/esm/keri/npm/src/core/index.js +0 -23
  548. package/esm/keri/npm/src/db/exchange-nests.js +0 -80
  549. package/esm/keri/npm/src/db/exchange-records.js +0 -7
  550. package/esm/keri/npm/src/db/payload-archive.js +0 -402
  551. package/esm/keri/npm/src/db/payload-store.js +0 -406
  552. package/esm/keri/npm/src/db/payload-view.js +0 -23
  553. package/esm/keri/npm/src/db/verifier-cueing.js +0 -132
  554. package/esm/keri/npm/src/vdr/credential-tsn.js +0 -230
  555. package/esm/keri/npm/src/vdr/registry-tsn.js +0 -217
  556. package/types/app/abortable.d.ts +0 -13
  557. package/types/app/abortable.d.ts.map +0 -1
  558. package/types/app/agent-runtime.d.ts +0 -221
  559. package/types/app/agent-runtime.d.ts.map +0 -1
  560. package/types/app/authenticating.d.ts +0 -36
  561. package/types/app/authenticating.d.ts.map +0 -1
  562. package/types/app/byte-source.d.ts +0 -16
  563. package/types/app/byte-source.d.ts.map +0 -1
  564. package/types/app/cesr-egress.d.ts +0 -45
  565. package/types/app/cesr-egress.d.ts.map +0 -1
  566. package/types/app/cesr-http.d.ts.map +0 -1
  567. package/types/app/challenging.d.ts.map +0 -1
  568. package/types/app/cli/aid.d.ts.map +0 -1
  569. package/types/app/cli/annotate-color.d.ts.map +0 -1
  570. package/types/app/cli/annotate.d.ts.map +0 -1
  571. package/types/app/cli/benchmark.d.ts.map +0 -1
  572. package/types/app/cli/challenge.d.ts.map +0 -1
  573. package/types/app/cli/common/context.d.ts.map +0 -1
  574. package/types/app/cli/common/displaying.d.ts +0 -12
  575. package/types/app/cli/common/displaying.d.ts.map +0 -1
  576. package/types/app/cli/common/existing.d.ts.map +0 -1
  577. package/types/app/cli/common/parsing.d.ts.map +0 -1
  578. package/types/app/cli/common/rendering.d.ts.map +0 -1
  579. package/types/app/cli/common/witness-auth.d.ts.map +0 -1
  580. package/types/app/cli/db-dump.d.ts.map +0 -1
  581. package/types/app/cli/delegate.d.ts.map +0 -1
  582. package/types/app/cli/did.d.ts.map +0 -1
  583. package/types/app/cli/ends.d.ts.map +0 -1
  584. package/types/app/cli/exchange.d.ts.map +0 -1
  585. package/types/app/cli/export.d.ts.map +0 -1
  586. package/types/app/cli/incept.d.ts.map +0 -1
  587. package/types/app/cli/index.d.ts +0 -37
  588. package/types/app/cli/index.d.ts.map +0 -1
  589. package/types/app/cli/init.d.ts.map +0 -1
  590. package/types/app/cli/interact.d.ts.map +0 -1
  591. package/types/app/cli/ipex.d.ts +0 -20
  592. package/types/app/cli/ipex.d.ts.map +0 -1
  593. package/types/app/cli/list.d.ts.map +0 -1
  594. package/types/app/cli/loc.d.ts.map +0 -1
  595. package/types/app/cli/multisig.d.ts +0 -12
  596. package/types/app/cli/multisig.d.ts.map +0 -1
  597. package/types/app/cli/notifications.d.ts.map +0 -1
  598. package/types/app/cli/oobi.d.ts.map +0 -1
  599. package/types/app/cli/output.d.ts.map +0 -1
  600. package/types/app/cli/query.d.ts +0 -12
  601. package/types/app/cli/query.d.ts.map +0 -1
  602. package/types/app/cli/rotate.d.ts.map +0 -1
  603. package/types/app/cli/saidify.d.ts.map +0 -1
  604. package/types/app/cli/sign.d.ts.map +0 -1
  605. package/types/app/cli/vc.d.ts +0 -20
  606. package/types/app/cli/vc.d.ts.map +0 -1
  607. package/types/app/cli/verifier.d.ts +0 -3
  608. package/types/app/cli/verifier.d.ts.map +0 -1
  609. package/types/app/cli/verify.d.ts.map +0 -1
  610. package/types/app/configing.d.ts.map +0 -1
  611. package/types/app/credential-workflows.d.ts +0 -113
  612. package/types/app/credential-workflows.d.ts.map +0 -1
  613. package/types/app/cue-runtime.d.ts +0 -12
  614. package/types/app/cue-runtime.d.ts.map +0 -1
  615. package/types/app/delegating.d.ts.map +0 -1
  616. package/types/app/endpoint-roleing.d.ts.map +0 -1
  617. package/types/app/essr.d.ts +0 -58
  618. package/types/app/essr.d.ts.map +0 -1
  619. package/types/app/exchanging.d.ts +0 -233
  620. package/types/app/exchanging.d.ts.map +0 -1
  621. package/types/app/forwarding.d.ts +0 -352
  622. package/types/app/forwarding.d.ts.map +0 -1
  623. package/types/app/group-members.d.ts +0 -12
  624. package/types/app/group-members.d.ts.map +0 -1
  625. package/types/app/grouping.d.ts.map +0 -1
  626. package/types/app/habbing.d.ts.map +0 -1
  627. package/types/app/httping.d.ts +0 -49
  628. package/types/app/httping.d.ts.map +0 -1
  629. package/types/app/ipex-credentialing.d.ts.map +0 -1
  630. package/types/app/ipex-graph.d.ts +0 -49
  631. package/types/app/ipex-graph.d.ts.map +0 -1
  632. package/types/app/ipex-grouping.d.ts +0 -43
  633. package/types/app/ipex-grouping.d.ts.map +0 -1
  634. package/types/app/ipex-node-authentication.d.ts.map +0 -1
  635. package/types/app/ipex-v2.d.ts +0 -46
  636. package/types/app/ipex-v2.d.ts.map +0 -1
  637. package/types/app/ipexing.d.ts.map +0 -1
  638. package/types/app/keeping.d.ts.map +0 -1
  639. package/types/app/mailbox-director.d.ts +0 -140
  640. package/types/app/mailbox-director.d.ts.map +0 -1
  641. package/types/app/mailbox-sse.d.ts +0 -32
  642. package/types/app/mailbox-sse.d.ts.map +0 -1
  643. package/types/app/mailboxing.d.ts.map +0 -1
  644. package/types/app/multisig-workflows.d.ts +0 -47
  645. package/types/app/multisig-workflows.d.ts.map +0 -1
  646. package/types/app/notifying.d.ts.map +0 -1
  647. package/types/app/oobi-replies.d.ts.map +0 -1
  648. package/types/app/oobiery.d.ts.map +0 -1
  649. package/types/app/organizing.d.ts.map +0 -1
  650. package/types/app/parsering.d.ts.map +0 -1
  651. package/types/app/protocol-host-policy.d.ts.map +0 -1
  652. package/types/app/query-replies.d.ts +0 -40
  653. package/types/app/query-replies.d.ts.map +0 -1
  654. package/types/app/querying.d.ts +0 -221
  655. package/types/app/querying.d.ts.map +0 -1
  656. package/types/app/reactor.d.ts +0 -138
  657. package/types/app/reactor.d.ts.map +0 -1
  658. package/types/app/reply-streams.d.ts +0 -20
  659. package/types/app/reply-streams.d.ts.map +0 -1
  660. package/types/app/respondant.d.ts +0 -63
  661. package/types/app/respondant.d.ts.map +0 -1
  662. package/types/app/runtime-services.d.ts +0 -26
  663. package/types/app/runtime-services.d.ts.map +0 -1
  664. package/types/app/runtime-turn.d.ts.map +0 -1
  665. package/types/app/schema-resolving.d.ts.map +0 -1
  666. package/types/app/signaling.d.ts.map +0 -1
  667. package/types/app/socket-source.d.ts.map +0 -1
  668. package/types/app/stored-replies.d.ts.map +0 -1
  669. package/types/app/tcp-conversation.d.ts +0 -27
  670. package/types/app/tcp-conversation.d.ts.map +0 -1
  671. package/types/app/tcp-egress.d.ts +0 -49
  672. package/types/app/tcp-egress.d.ts.map +0 -1
  673. package/types/app/verifier-agent.d.ts +0 -92
  674. package/types/app/verifier-agent.d.ts.map +0 -1
  675. package/types/app/verifying.d.ts.map +0 -1
  676. package/types/app/version.d.ts.map +0 -1
  677. package/types/app/witnessing.d.ts +0 -223
  678. package/types/app/witnessing.d.ts.map +0 -1
  679. package/types/core/eventing.d.ts.map +0 -1
  680. package/types/core/exchange-proofing.d.ts.map +0 -1
  681. package/types/core/index.d.ts +0 -24
  682. package/types/core/index.d.ts.map +0 -1
  683. package/types/core/kever-decisions.d.ts.map +0 -1
  684. package/types/core/kever.d.ts.map +0 -1
  685. package/types/core/kram-auth.d.ts.map +0 -1
  686. package/types/core/kram-policy.d.ts.map +0 -1
  687. package/types/core/kram-pruning.d.ts.map +0 -1
  688. package/types/core/kram-signatures.d.ts.map +0 -1
  689. package/types/core/kram-staging.d.ts.map +0 -1
  690. package/types/core/kram-time.d.ts.map +0 -1
  691. package/types/core/kraming.d.ts.map +0 -1
  692. package/types/core/mailbox-topics.d.ts.map +0 -1
  693. package/types/core/protocol-exchanging.d.ts.map +0 -1
  694. package/types/core/witnesses.d.ts.map +0 -1
  695. package/types/db/exchange-nests.d.ts +0 -15
  696. package/types/db/exchange-nests.d.ts.map +0 -1
  697. package/types/db/exchange-records.d.ts +0 -33
  698. package/types/db/exchange-records.d.ts.map +0 -1
  699. package/types/db/kel-replay.d.ts.map +0 -1
  700. package/types/db/kram-factors.d.ts.map +0 -1
  701. package/types/db/mailboxing.d.ts.map +0 -1
  702. package/types/db/payload-archive.d.ts +0 -70
  703. package/types/db/payload-archive.d.ts.map +0 -1
  704. package/types/db/payload-store.d.ts +0 -40
  705. package/types/db/payload-store.d.ts.map +0 -1
  706. package/types/db/payload-view.d.ts +0 -4
  707. package/types/db/payload-view.d.ts.map +0 -1
  708. package/types/db/tel-replay.d.ts.map +0 -1
  709. package/types/db/verifier-cueing.d.ts +0 -46
  710. package/types/db/verifier-cueing.d.ts.map +0 -1
  711. package/types/db/witness-replay.d.ts.map +0 -1
  712. package/types/vdr/credential-tsn.d.ts +0 -23
  713. package/types/vdr/credential-tsn.d.ts.map +0 -1
  714. package/types/vdr/registry-tsn.d.ts +0 -28
  715. package/types/vdr/registry-tsn.d.ts.map +0 -1
  716. /package/esm/keri/npm/src/app/{schema-resolving.js → credentials/schema-resolving.js} +0 -0
  717. /package/esm/keri/npm/src/app/{challenging.js → identity/challenging.js} +0 -0
  718. /package/esm/keri/npm/src/app/{protocol-host-policy.js → protocol/protocol-host-policy.js} +0 -0
  719. /package/esm/keri/npm/src/app/{runtime-turn.js → runtime/runtime-turn.js} +0 -0
  720. /package/esm/keri/npm/src/{app/cli → cli}/common/rendering.js +0 -0
  721. /package/esm/keri/npm/src/{app/cli → cli/tools}/annotate-color.js +0 -0
  722. /package/esm/keri/npm/src/core/{witnesses.js → kel/witnesses.js} +0 -0
  723. /package/esm/keri/npm/src/core/{kram-auth.js → mailbox/kram-auth.js} +0 -0
  724. /package/esm/keri/npm/src/core/{mailbox-topics.js → mailbox/mailbox-topics.js} +0 -0
  725. /package/types/app/{signaling.d.ts → notifications/signaling.d.ts} +0 -0
  726. /package/types/app/{runtime-turn.d.ts → runtime/runtime-turn.d.ts} +0 -0
  727. /package/types/{app/cli → cli}/common/rendering.d.ts +0 -0
  728. /package/types/{app/cli → cli/endpoints}/loc.d.ts +0 -0
  729. /package/types/{app/cli → cli/identity}/aid.d.ts +0 -0
  730. /package/types/{app/cli → cli/identity}/delegate.d.ts +0 -0
  731. /package/types/{app/cli → cli/identity}/export.d.ts +0 -0
  732. /package/types/{app/cli → cli/identity}/list.d.ts +0 -0
  733. /package/types/{app/cli → cli/messaging}/notifications.d.ts +0 -0
  734. /package/types/{app/cli → cli}/output.d.ts +0 -0
  735. /package/types/{app/cli → cli/tools}/annotate-color.d.ts +0 -0
  736. /package/types/{app/cli → cli/tools}/annotate.d.ts +0 -0
  737. /package/types/{app/cli → cli/tools}/benchmark.d.ts +0 -0
  738. /package/types/{app/cli → cli/tools}/db-dump.d.ts +0 -0
  739. /package/types/{app/cli → cli/tools}/saidify.d.ts +0 -0
  740. /package/types/{app/cli → cli/tools}/verify.d.ts +0 -0
  741. /package/types/core/{witnesses.d.ts → kel/witnesses.d.ts} +0 -0
  742. /package/types/core/{mailbox-topics.d.ts → mailbox/mailbox-topics.d.ts} +0 -0
@@ -100,6 +100,8 @@ export function regcept(issuer, options = {}) {
100
100
  /** Create an ACDC v2 blindable registry update (`bup`) message. */
101
101
  export function blindate(regid, prior, blid, options = {}) {
102
102
  const { sn = 1, stamp, pvrsn = Vrsn_2_0, gvrsn = Vrsn_2_0, kind = Kinds.json } = options;
103
+ if (BigInt(sn) < 1n)
104
+ throw new ValidationError(`ACDC blindable update sequence number must be positive: ${sn}`);
103
105
  return new SerderACDC({
104
106
  sad: {
105
107
  v: versionString({ pvrsn, gvrsn, kind }),
@@ -1,14 +1,16 @@
1
- /** Explicit public registry intake; this TypeScript integration is beyond frozen KERIpy 927. */
2
- import { Diger, Ilks, ParserError } from "cesr-ts";
1
+ /** Public v2 registry intake with event-local opening preflight and durable retention. */
2
+ import { bytesEqual, Diger, Ilks, ParserError } from "cesr-ts";
3
3
  import { DatabaseNotOpenError, DatabaseOperationError } from "../core/errors.js";
4
4
  import { RegistryEventer } from "./regengine.js";
5
- import { validateRip, validateUpdate } from "./regeventing.js";
5
+ import { validateRegistrySourceLocators, validateRip, validateUpdate, vetBlind, } from "./regeventing.js";
6
+ import { publicOpeningAttachment } from "./registering.js";
6
7
  /**
7
8
  * Borrow accepted public KEL state and one registry store without habitats, aliases or handles.
8
9
  * Reconstruct the engine's issuer from stored inception after reopen. Intake uses the engine's
9
- * full tuple/witness anchor policy, distinct from digest-only observer vetting. Each accepted
10
+ * exact registry-seal and historical witness policy shared with observer vetting. Each accepted
10
11
  * event commits independently; a later failure preserves the already accepted prefix.
11
- * Parsed evidence stays borrowed. This installs no automatic parser or runtime route.
12
+ * Parsed evidence stays borrowed. Composition supplies this owner to v2 protocol dispatch;
13
+ * no local habitat, alias or application disclosure custody is created by public intake.
12
14
  */
13
15
  export class RegistryObserver {
14
16
  constructor(db, store) {
@@ -26,11 +28,22 @@ export class RegistryObserver {
26
28
  });
27
29
  }
28
30
  /** Stage parsed events before inception, otherwise delegate ordinary validation and acceptance. */
29
- processEvent(serder) {
31
+ processEvent(serder, locators = {}) {
30
32
  const result = serder.ilk === Ilks.rip ? validateRip(serder) : validateUpdate(serder, serder.regid ?? "");
31
33
  if (result.kind === "reject")
32
34
  return result;
33
35
  const event = result.event;
36
+ const openings = [...locators.bsqs ?? [], ...locators.bsss ?? []], opening = openings[0];
37
+ if (openings.length > 1 || (opening && event.ilk !== Ilks.bup))
38
+ return { kind: "reject", reason: "disclosure" };
39
+ if (opening) {
40
+ if (!vetBlind(opening, serder.sad.b))
41
+ return { kind: "reject", reason: "disclosure" };
42
+ const old = this.store.opening(event.said), stored = this.store.event(event.said);
43
+ if ((old && !bytesEqual(old, publicOpeningAttachment(opening)))
44
+ || (stored && !bytesEqual(stored.raw, serder.raw)))
45
+ return { kind: "reject", reason: "disclosure" };
46
+ }
34
47
  // Unknown registry routing cannot rely on a stored RIP to validate its qualified SAID.
35
48
  try {
36
49
  if (new Diger({ qb64: event.regid }).qb64 !== event.regid)
@@ -52,8 +65,13 @@ export class RegistryObserver {
52
65
  engine ??= new RegistryEventer(this.db, event.issuer, this.store, event.regid);
53
66
  }
54
67
  if (engine) {
55
- return engine.processEvent(serder);
68
+ const decision = engine.processEvent(serder, locators);
69
+ if (decision.kind !== "reject" && opening)
70
+ this.store.retainOpening(serder, opening);
71
+ return decision;
56
72
  }
73
+ if (!validateRegistrySourceLocators(serder, this.db, null, locators))
74
+ return { kind: "reject", reason: "anchor" };
57
75
  // Issuer/anchor discovery is impossible until RIP arrives; the existing anchor escrow owns this body.
58
76
  const baser = this.store.baser;
59
77
  if (baser.readonly)
@@ -61,6 +79,8 @@ export class RegistryObserver {
61
79
  return baser.env.transactionSync(() => {
62
80
  this.store.putEvent(serder);
63
81
  this.store.escrowMissingAnchor(event.regid, Number(event.sn), event.said);
82
+ if (opening)
83
+ this.store.retainOpening(serder, opening);
64
84
  return { kind: "escrow", reason: "inception", event };
65
85
  });
66
86
  }
@@ -71,6 +91,19 @@ export class RegistryObserver {
71
91
  return;
72
92
  engine.processEscrows();
73
93
  }
94
+ /**
95
+ * Retry registries named by durable dependency escrows, including foreign registries after reopen.
96
+ * Finish both table cursors before acceptance writes; local aliases do not determine pending work.
97
+ */
98
+ processAllEscrows() {
99
+ const registries = new Set();
100
+ for (const table of [this.store.baser.maes, this.store.baser.ooes]) {
101
+ for (const [keys] of table.getAllItemIter())
102
+ registries.add(keys[0]);
103
+ }
104
+ for (const regid of registries)
105
+ this.processEscrows(regid);
106
+ }
74
107
  /** Stored inception is durable issuer identity, including while its anchor is still absent. */
75
108
  engine(regid) {
76
109
  if (!this.store.baser.env)
@@ -2,7 +2,7 @@
2
2
  import { b, Diger, NumberPrimitive, Saider, SerderACDC } from "cesr-ts";
3
3
  import { DatabaseNotOpenError } from "../core/errors.js";
4
4
  import { LMDBer } from "../db/core/lmdber.js";
5
- import { B64OnIoSetSuber, CatCesrSuber, CesrOnSuber, CesrSuber, SerderSuber } from "../db/subing.js";
5
+ import { B64OnIoSetSuber, BytesSuber, CatCesrSuber, CesrOnSuber, CesrSuber, SerderSuber } from "../db/subing.js";
6
6
  /**
7
7
  * Own one environment for public registry TEL bodies, accepted ordinals and heads.
8
8
  * Mirrors frozen KERIpy RegBaser's typed tables; opening neither verifies
@@ -14,7 +14,10 @@ export class RegBaser extends LMDBer {
14
14
  hasTable(name) {
15
15
  if (!this.env)
16
16
  throw new DatabaseNotOpenError("Registry environment is closed.");
17
- return this.env.getBinary(b(name)) !== undefined;
17
+ // Native lmdb-js exposes its C-string terminator in root metadata keys;
18
+ // the Deno backend also supports the unterminated representation.
19
+ return this.env.getBinary(b(name)) !== undefined
20
+ || this.env.getBinary(b(`${name}\0`)) !== undefined;
18
21
  }
19
22
  constructor(options = {}) {
20
23
  super(options, {
@@ -45,6 +48,13 @@ export class RegBaser extends LMDBer {
45
48
  writable: true,
46
49
  value: void 0
47
50
  });
51
+ /** Event-SAID -> one deliberately published counted BSQ/BSS opening; never private custody. */
52
+ Object.defineProperty(this, "openings", {
53
+ enumerable: true,
54
+ configurable: true,
55
+ writable: true,
56
+ value: void 0
57
+ });
48
58
  /** Event-SAID -> earliest verified KEL source couple, in the current store. */
49
59
  Object.defineProperty(this, "ancs", {
50
60
  enumerable: true,
@@ -76,6 +86,7 @@ export class RegBaser extends LMDBer {
76
86
  this.evts = new SerderSuber(this, { subkey: "evts.", ctor: SerderACDC });
77
87
  this.tels = new CesrOnSuber(this, { subkey: "tels.", ctor: Saider });
78
88
  this.heads = new CesrSuber(this, { subkey: "heds.", ctor: Saider });
89
+ this.openings = new BytesSuber(this, { subkey: "openings." });
79
90
  this.ancs = new CatCesrSuber(this, { subkey: "ancs.", ctor: [NumberPrimitive, Diger] });
80
91
  this.maes = new B64OnIoSetSuber(this, { subkey: "maes." });
81
92
  this.ooes = new B64OnIoSetSuber(this, { subkey: "ooes." });
@@ -1,7 +1,8 @@
1
1
  /** Shared TEL validation, accepted-state publication, anchoring and retry for local and foreign registries. */
2
2
  import { Diger, Ilks, NumberPrimitive, } from "cesr-ts";
3
3
  import { DatabaseNotOpenError, DatabaseOperationError } from "../core/errors.js";
4
- import { validateRip, validateUpdate, verifyRegistryAnchor, } from "./regeventing.js";
4
+ import { consoleLogger } from "../core/logger.js";
5
+ import { findRegistryAnchor, validateRegistrySourceLocators, validateRip, validateUpdate, verifyRegistryAnchor, } from "./regeventing.js";
5
6
  /**
6
7
  * Borrow the issuer's accepted KEL and registry store; no keys or handles are acquired.
7
8
  * The local facade and foreign observer share this accepted-state engine.
@@ -81,10 +82,13 @@ export class RegistryEventer {
81
82
  return { kind: "reject", reason: "prior" };
82
83
  if ((number === undefined) !== (diger === undefined))
83
84
  return { kind: "reject", reason: "anchor" };
85
+ if (number && diger && !verifyRegistryAnchor(event, { db: this.db, issuer: this.issuer, number, diger })) {
86
+ return { kind: "reject", reason: "anchor" };
87
+ }
88
+ // Already accepted TEL history is immutable; explicit claims still verify before duplicate success.
89
+ if (occupied?.kind === "duplicate")
90
+ return this.processEvent(serder);
84
91
  if (number && diger) {
85
- if (!verifyRegistryAnchor(event, { db: this.db, issuer: this.issuer, number, diger })) {
86
- return { kind: "reject", reason: "anchor" };
87
- }
88
92
  this.store.putAnchor(said, number, diger);
89
93
  }
90
94
  else {
@@ -148,16 +152,38 @@ export class RegistryEventer {
148
152
  for (const event of candidates) {
149
153
  const result = this.processEvent(event.serder);
150
154
  if (result.kind === "reject" || result.kind === "duplicate") {
151
- this.store.clearEscrows(this.regk, sn, event.said);
155
+ const removed = this.store.clearEscrows(this.regk, sn, event.said);
156
+ if (removed && result.kind === "reject") {
157
+ consoleLogger.warn("RegistryEventer ejected registry candidate from escrow", {
158
+ family: "registry",
159
+ said: event.said,
160
+ regk: this.regk,
161
+ sn,
162
+ reason: result.reason,
163
+ });
164
+ }
152
165
  }
153
166
  }
154
167
  }
155
168
  }
156
- /** Prune unrecoverable candidates; corrupt records and storage failures still propagate. */
169
+ /**
170
+ * Prune unrecoverable candidates and report completed removals; accepted duplicates stay quiet.
171
+ * @param said Candidate event SAID loaded from the current escrow snapshot.
172
+ * @param sn TEL ordinal under which the candidate was indexed.
173
+ * @returns The validated candidate, or null after obsolete or invalid membership cleanup.
174
+ */
157
175
  replayCandidate(said, sn) {
158
176
  const serder = this.store.event(said);
159
177
  if (!serder) {
160
- this.store.clearEscrows(this.regk, sn, said);
178
+ if (this.store.clearEscrows(this.regk, sn, said)) {
179
+ consoleLogger.warn("RegistryEventer ejected registry candidate from escrow", {
180
+ family: "registry",
181
+ said,
182
+ regk: this.regk,
183
+ sn,
184
+ reason: "missingEvent",
185
+ });
186
+ }
161
187
  return null;
162
188
  }
163
189
  if (serder.said !== said)
@@ -165,6 +191,7 @@ export class RegistryEventer {
165
191
  const result = serder.ilk === Ilks.rip
166
192
  ? validateRip(serder, this.issuer)
167
193
  : validateUpdate(serder, this.regk);
194
+ let reason = result.kind === "reject" ? result.reason : "registryOrOrdinal";
168
195
  if (result.kind === "valid") {
169
196
  const event = result.event;
170
197
  if (event.regid === this.regk && event.sn === BigInt(sn)) {
@@ -172,9 +199,19 @@ export class RegistryEventer {
172
199
  const prior = sn > 0 ? this.acceptedAt(event.regid, sn - 1) : null;
173
200
  if (!existing && (!prior || prior.said === event.prior))
174
201
  return event;
202
+ reason = existing?.kind === "duplicate" ? null : existing?.kind === "reject" ? existing.reason : "prior";
175
203
  }
176
204
  }
177
- this.store.clearEscrows(this.regk, sn, said);
205
+ const removed = this.store.clearEscrows(this.regk, sn, said);
206
+ if (removed && reason !== null) {
207
+ consoleLogger.warn("RegistryEventer ejected registry candidate from escrow", {
208
+ family: "registry",
209
+ said,
210
+ regk: this.regk,
211
+ sn,
212
+ reason,
213
+ });
214
+ }
178
215
  return null;
179
216
  }
180
217
  /** Earliest verified anchor wins; digest then event SAID break ties using code-point order. */
@@ -193,20 +230,23 @@ export class RegistryEventer {
193
230
  return left < right ? -1 : left > right ? 1 : 0;
194
231
  }
195
232
  /** Accept one parsed event, then advance ready successors without recursive replay. */
196
- processEvent(serder) {
197
- const decision = this.processOne(serder);
233
+ processEvent(serder, locators = {}) {
234
+ const decision = this.processOne(serder, locators);
198
235
  if (decision.kind === "accept")
199
236
  this.processQueued();
200
237
  return decision;
201
238
  }
202
239
  /** Decide and persist one event; callers own subsequent chain progression. */
203
- processOne(serder) {
240
+ processOne(serder, locators = {}) {
204
241
  if (this.regk === null || serder.ilk === Ilks.rip)
205
- return this.processInception(serder);
242
+ return this.processInception(serder, locators);
206
243
  const result = validateUpdate(serder, this.regk);
207
244
  if (result.kind === "reject")
208
245
  return result;
209
246
  const event = result.event;
247
+ if (!validateRegistrySourceLocators(serder, this.db, this.issuer, locators)) {
248
+ return { kind: "reject", reason: "anchor" };
249
+ }
210
250
  // Preserve protocol precision until the existing ordinal storage seam can represent it.
211
251
  if (event.sn > BigInt(Number.MAX_SAFE_INTEGER))
212
252
  return { kind: "reject", reason: "ordinalRange" };
@@ -247,11 +287,14 @@ export class RegistryEventer {
247
287
  });
248
288
  }
249
289
  /** Validate, anchor and accept one inception, or retain its body in anchor escrow. */
250
- processInception(serder) {
290
+ processInception(serder, locators) {
251
291
  const result = validateRip(serder, this.issuer);
252
292
  if (result.kind === "reject")
253
293
  return result;
254
294
  const event = result.event;
295
+ if (!validateRegistrySourceLocators(serder, this.db, this.issuer, locators)) {
296
+ return { kind: "reject", reason: "anchor" };
297
+ }
255
298
  if (this.regk !== null && this.regk !== event.regid)
256
299
  return { kind: "reject", reason: "registry" };
257
300
  const previous = this.acceptedEvent(event);
@@ -335,19 +378,24 @@ export class RegistryEventer {
335
378
  this.store.baser.maes.rem(event.regid, Number(event.sn));
336
379
  this.store.baser.ooes.rem(event.regid, Number(event.sn));
337
380
  }
338
- /** Keep an already verified anchor or discover the earliest fully witnessed seal. */
381
+ /** Keep a valid first pair; recovery-invalidated pending anchors must rediscover current-branch authority. */
339
382
  discoverAnchor(event) {
340
- if (this.store.anchor(event.said))
341
- return;
342
- const anchor = this.db.fetchLastSealingEventByEventSeal(this.issuer, {
343
- i: event.regid,
344
- s: event.serder.sad.n,
345
- d: event.said,
346
- });
383
+ const current = this.store.anchor(event.said);
384
+ if (current) {
385
+ if (verifyRegistryAnchor(event, {
386
+ db: this.db,
387
+ issuer: this.issuer,
388
+ number: current[0],
389
+ diger: current[1],
390
+ }))
391
+ return;
392
+ this.store.baser.ancs.rem(event.said);
393
+ }
394
+ const anchor = findRegistryAnchor(this.db, this.issuer, event.serder);
347
395
  if (!anchor)
348
396
  return;
349
- const number = NumberPrimitive.fromNum(BigInt(anchor.sn));
350
- const diger = new Diger({ qb64: anchor.said });
397
+ const number = NumberPrimitive.fromNum(BigInt(anchor[0]));
398
+ const diger = new Diger({ qb64: anchor[1] });
351
399
  if (verifyRegistryAnchor(event, { db: this.db, issuer: this.issuer, number, diger })) {
352
400
  this.store.putAnchor(event.said, number, diger);
353
401
  }
@@ -3,7 +3,7 @@
3
3
  * Mirrors frozen KERIpy acdc.regeventing.vet/vetBinds. Parsing, KEL acceptance,
4
4
  * fetching, escrow persistence, and issuer-side TEL processing belong to callers.
5
5
  */
6
- import { commitBlindState, commitBoundState, Ilks, } from "cesr-ts";
6
+ import { commitBlindState, commitBoundState, Diger, Ilks, ParserError, } from "cesr-ts";
7
7
  import { timestampMicros } from "../time/mod.js";
8
8
  /** Sequence numbers retain protocol precision; database KEL lookups remain safe integers. */
9
9
  function ordinal(event) {
@@ -14,9 +14,14 @@ function normalizeEvent(event) {
14
14
  if (!event.verify() || (event.ilk !== Ilks.rip && event.ilk !== Ilks.bup))
15
15
  return { kind: "reject", reason: "event" };
16
16
  const sequence = event.sad?.n;
17
- if (typeof sequence !== "string" || !/^[0-9a-fA-F]+$/.test(sequence) || ordinal(event) >= 2n ** 128n) {
17
+ if (typeof sequence !== "string" || !/^(0|[1-9a-f][0-9a-f]*)$/.test(sequence) || ordinal(event) >= 2n ** 128n) {
18
18
  return { kind: "reject", reason: "sequence" };
19
19
  }
20
+ const stamp = event.sad?.dt;
21
+ if (typeof stamp !== "string" || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{6}[+-]\d{2}:\d{2}$/.test(stamp)
22
+ || stamp.startsWith("0000-")
23
+ || timestampMicros(stamp) === null)
24
+ return { kind: "reject", reason: "timestamp" };
20
25
  return {
21
26
  kind: "valid",
22
27
  event: {
@@ -61,8 +66,8 @@ export function validateUpdate(serder, regid, prior) {
61
66
  return result;
62
67
  }
63
68
  /**
64
- * Check a local TEL anchor against the last accepted, fully witnessed KEL event.
65
- * Unlike observer vetting, this requires the full registry/ordinal/digest tuple.
69
+ * Check a local TEL anchor against the current accepted KEL branch and its witness quorum.
70
+ * V2 TEL admission requires the full registry/ordinal/event-SAID seal.
66
71
  * Missing or mismatched evidence returns false; database failures propagate.
67
72
  */
68
73
  export function verifyRegistryAnchor(event, { db, issuer, number, diger }) {
@@ -70,13 +75,68 @@ export function verifyRegistryAnchor(event, { db, issuer, number, diger }) {
70
75
  return false;
71
76
  const said = db.kels.getLast(issuer, Number(number.num));
72
77
  const anchor = said ? db.getEvtSerder(issuer, said) : null;
73
- if (!anchor || anchor.said !== diger.qb64 || !db.fullyWitnessed(anchor))
78
+ if (!anchor || anchor.said !== diger.qb64 || !onCurrentRegistryBranch(db, issuer, anchor)
79
+ || !db.fullyWitnessed(anchor))
74
80
  return false;
75
- return anchor.seals.some((seal) => !!seal && typeof seal === "object" && !Array.isArray(seal)
76
- && "i" in seal && "s" in seal && "d" in seal
77
- && seal.i === event.regid && seal.s === event.serder.sad.n && seal.d === event.said);
81
+ return anchor.seals.some((seal) => matchesRegistrySeal(seal, event.serder));
78
82
  }
79
- /** Verifier anchors match digests; a seal's TEL sequence hint is not authoritative. */
83
+ /** Descend the current head's exact prior digests, stopping at missing or noncontiguous ancestry. */
84
+ function* currentRegistryBranch(db, issuer) {
85
+ let current = db.getKever(issuer)?.serder ?? null;
86
+ while (current) {
87
+ yield current;
88
+ const prior = current.prior ? db.getEvtSerder(issuer, current.prior) : null;
89
+ if (!prior || prior.sn !== current.sn - 1)
90
+ return;
91
+ current = prior;
92
+ }
93
+ }
94
+ /** Recovery preserves disputed buckets; new TEL authority comes only from the current branch. */
95
+ function onCurrentRegistryBranch(db, issuer, anchor) {
96
+ for (const current of currentRegistryBranch(db, issuer)) {
97
+ if (current.sn < anchor.sn)
98
+ return false;
99
+ if (current.said === anchor.said)
100
+ return true;
101
+ }
102
+ return false;
103
+ }
104
+ /** Match the full registry/ordinal/event-SAID tuple required for v2 TEL authority. */
105
+ export function matchesRegistrySeal(candidate, event) {
106
+ if (!candidate || typeof candidate !== "object" || Array.isArray(candidate))
107
+ return false;
108
+ const seal = candidate;
109
+ const fields = Object.keys(seal).sort().join(",");
110
+ if (fields !== "d,i,s")
111
+ return false;
112
+ return seal.d === event.said
113
+ && seal.s === event.sad.n
114
+ && seal.i === (event.ilk === Ilks.rip ? event.said : event.regid);
115
+ }
116
+ /** Refuse resolvable false locators before publication, without persisting unsigned requirements. */
117
+ export function validateRegistrySourceLocators(event, db, issuer, { sscs = [], ssts = [] }) {
118
+ const locators = [
119
+ ...sscs.map((seal) => ({ controller: issuer, number: seal.s, diger: seal.d })),
120
+ ...ssts.map((seal) => ({ controller: seal.i.qb64, number: seal.s, diger: seal.d })),
121
+ ];
122
+ for (const { controller, number, diger } of locators) {
123
+ if (issuer !== null && controller !== issuer)
124
+ return false;
125
+ if (controller === null || number.num > BigInt(Number.MAX_SAFE_INTEGER))
126
+ continue;
127
+ const accepted = db.kels.getLast(controller, Number(number.num));
128
+ if (!accepted)
129
+ continue;
130
+ if (accepted !== diger.qb64)
131
+ return false;
132
+ const anchor = db.getEvtSerder(controller, accepted);
133
+ if (anchor && (!onCurrentRegistryBranch(db, controller, anchor)
134
+ || !anchor.seals.some((seal) => matchesRegistrySeal(seal, event))))
135
+ return false;
136
+ }
137
+ return true;
138
+ }
139
+ /** Public stateless vetting authenticates digest commitments; other seal fields are nonbinding hints. */
80
140
  function sealDigests(event) {
81
141
  return event.seals.flatMap((seal) => {
82
142
  if (typeof seal === "string")
@@ -86,19 +146,26 @@ function sealDigests(event) {
86
146
  return [];
87
147
  });
88
148
  }
89
- /** Scan only the accepted controller's KEL frontier; this does not verify KEL signatures. */
90
- function scanKel(db, issuer, said) {
91
- const kever = db.getKever(issuer);
92
- if (!kever)
93
- return null;
94
- for (const [sn, digest] of db.getKelItemIter(issuer)) {
95
- if (sn > kever.sn)
96
- break;
97
- const event = db.getEvtSerder(issuer, digest);
98
- if (event && sealDigests(event).includes(said))
99
- return [sn, event.said];
149
+ /** Find an accepted controller event carrying an exact registry seal and its historical witness quorum. */
150
+ export function findRegistryAnchor(db, issuer, registry) {
151
+ let earliest = null;
152
+ for (const event of currentRegistryBranch(db, issuer)) {
153
+ if (db.fullyWitnessed(event)
154
+ && event.seals.some((seal) => matchesRegistrySeal(seal, registry))) {
155
+ earliest = [event.sn, event.said];
156
+ }
157
+ }
158
+ return earliest;
159
+ }
160
+ /** Find a public digest commitment without granting v2 registry admission authority. */
161
+ function findDigestAnchor(db, issuer, digest) {
162
+ let earliest = null;
163
+ for (const event of currentRegistryBranch(db, issuer)) {
164
+ if (db.fullyWitnessed(event) && sealDigests(event).includes(digest)) {
165
+ earliest = [event.sn, event.said];
166
+ }
100
167
  }
101
- return null;
168
+ return earliest;
102
169
  }
103
170
  /** Match the reference's source-hint fallback and named aggregate-seal refusal. */
104
171
  function vetAnchor(event, issuer, db, told, source) {
@@ -111,29 +178,66 @@ function vetAnchor(event, issuer, db, told, source) {
111
178
  if (source !== undefined) {
112
179
  const said = typeof source === "string" ? source : db.kels.getLast(issuer, source);
113
180
  const anchor = said ? db.getEvtSerder(issuer, said) : null;
114
- if (anchor) {
181
+ if (anchor && db.kels.getLast(issuer, anchor.sn) === anchor.said
182
+ && onCurrentRegistryBranch(db, issuer, anchor)) {
115
183
  const digests = sealDigests(anchor);
116
- if (digests.includes(event.said))
184
+ if (db.fullyWitnessed(anchor) && digests.includes(event.said)) {
117
185
  return { kind: "verified", anchor: [anchor.sn, anchor.said] };
186
+ }
118
187
  if (digests.length && !digests.some((digest) => typeof digest === "string" && told.has(digest))) {
119
188
  return { kind: "reject", reason: "rootSeal" };
120
189
  }
121
190
  }
122
191
  }
123
- const anchor = scanKel(db, issuer, event.said);
192
+ const anchor = findDigestAnchor(db, issuer, event.said);
124
193
  if (anchor)
125
194
  return { kind: "verified", anchor };
126
195
  for (const pre of db.kevers.keys()) {
127
- if (pre !== issuer && scanKel(db, pre, event.said))
196
+ if (pre !== issuer && findDigestAnchor(db, pre, event.said))
128
197
  return { kind: "reject", reason: "anchor" };
129
198
  }
130
199
  return missing;
131
200
  }
132
- /** Recompute the disclosed tuple with the reference's default Blake3 commitment. */
133
- function vetBlind(blinder, blid) {
134
- const redone = "bn" in blinder ? commitBoundState(blinder, "E") : commitBlindState(blinder, "E");
201
+ /** Authenticate the declared native BLID against the exact carried primitive tuple. */
202
+ export function vetBlind(blinder, blid) {
203
+ if (!/^[E-I][A-Za-z0-9_-]{43}$/.test(blid) || blinder.d.nonce !== blid)
204
+ return false;
205
+ let digest;
206
+ try {
207
+ digest = new Diger({ qb64: blid });
208
+ }
209
+ catch (error) {
210
+ if (error instanceof ParserError)
211
+ return false;
212
+ throw error;
213
+ }
214
+ if (new Diger({ code: digest.code, raw: digest.raw }).qb64 !== blid)
215
+ return false;
216
+ const redone = "bn" in blinder ? commitBoundState(blinder, digest.code) : commitBlindState(blinder, digest.code);
135
217
  return redone.d.nonce === blid;
136
218
  }
219
+ /** A bound opening names an exact accepted Issuee event, including historical interactions. */
220
+ export function vetBound(blinder, acdc, db) {
221
+ if (!("bn" in blinder))
222
+ return null;
223
+ const number = blinder.bn.num, digest = blinder.bd.nonce;
224
+ if (!blinder.td.nonce && !blinder.ts.text) {
225
+ return number === 0n && !digest ? null : { kind: "reject", reason: "binding" };
226
+ }
227
+ if (!digest || !acdc || blinder.td.nonce !== acdc.said || !acdc.issuee)
228
+ return { kind: "reject", reason: "binding" };
229
+ const issuer = acdc.issuee;
230
+ const missing = { kind: "missing", reason: "anchor", issuer, said: digest };
231
+ if (number > BigInt(Number.MAX_SAFE_INTEGER))
232
+ return missing;
233
+ const accepted = db.kels.getLast(issuer, Number(number));
234
+ if (!accepted)
235
+ return missing;
236
+ if (accepted !== digest)
237
+ return { kind: "reject", reason: "anchor" };
238
+ const event = db.getEvtSerder(issuer, accepted);
239
+ return event && db.fullyWitnessed(event) ? null : missing;
240
+ }
137
241
  /** A registry must bind both the exact credential and its issuer, plus rd when present. */
138
242
  function binding(acdc, state) {
139
243
  if (!acdc.verify() || state.acdc !== acdc.said || acdc.issuer !== state.issuer)
@@ -200,6 +304,9 @@ export function vet({ rip, updates = [], db, sources = new Map(), acdc, blinder
200
304
  if (head.ilk === Ilks.bup && blinder) {
201
305
  if (!vetBlind(blinder, head.sad.b))
202
306
  return { kind: "reject", reason: "disclosure" };
307
+ const refusal = vetBound(blinder, acdc, db);
308
+ if (refusal)
309
+ return refusal;
203
310
  state.acdc = blinder.td.nonce || null;
204
311
  state.state = blinder.ts.text || null;
205
312
  }
@@ -215,25 +322,28 @@ export function vet({ rip, updates = [], db, sources = new Map(), acdc, blinder
215
322
  /**
216
323
  * Resolve the latest non-vacuous binding behind a verified (possibly historical)
217
324
  * head. Every intervening vacuous update needs exactly one authentic disclosure.
218
- * The caller supplies a trusted receiver timestamp; this creates no KRAM state.
325
+ * The selected SAID fixes the TEL prefix; neither timestamps nor source hints select it.
219
326
  */
220
- export function vetBinds({ rip, updates = [], db, sources = new Map(), acdc, blinders, target, controller, cutoff, requireSource = false }) {
221
- if (cutoff !== undefined) {
222
- const when = timestampMicros(cutoff);
223
- const inception = timestampMicros(rip.sad?.dt);
224
- if (when === null || inception === null)
225
- return { kind: "reject", reason: "timestamp" };
226
- if (inception > when)
227
- return { kind: "reject", reason: "binding" };
228
- const selected = [];
327
+ export function vetBinds({ rip, updates = [], db, sources = new Map(), acdc, blinders, target, controller, cutoff, at, requireSource = false }) {
328
+ if (cutoff !== undefined)
329
+ return { kind: "reject", reason: "event" };
330
+ if (at !== undefined) {
331
+ const selected = [rip, ...updates].filter((event) => event.said === at);
332
+ if (selected.length !== 1)
333
+ return { kind: "missing", reason: "anchor", issuer: rip.issuer, said: at };
334
+ const checked = selected[0].ilk === Ilks.rip ? validateRip(selected[0]) : validateUpdate(selected[0], rip.said);
335
+ if (checked.kind === "reject")
336
+ return checked;
337
+ const prefix = [];
229
338
  for (const update of updates) {
230
- const stamp = timestampMicros(update.sad?.dt);
231
- if (stamp === null)
232
- return { kind: "reject", reason: "timestamp" };
233
- if (stamp <= when)
234
- selected.push(update);
339
+ const sequence = update.sad?.n;
340
+ if (typeof sequence !== "string" || !/^(0|[1-9a-f][0-9a-f]*)$/.test(sequence) || ordinal(update) >= 2n ** 128n) {
341
+ return { kind: "reject", reason: "sequence" };
342
+ }
343
+ if (ordinal(update) <= checked.event.sn)
344
+ prefix.push(update);
235
345
  }
236
- updates = selected;
346
+ updates = prefix;
237
347
  }
238
348
  const result = vet({ rip, updates, db, sources });
239
349
  if (result.kind !== "verified")
@@ -243,10 +353,19 @@ export function vetBinds({ rip, updates = [], db, sources = new Map(), acdc, bli
243
353
  const newest = [...updates].sort((a, b) => ordinal(a) > ordinal(b) ? -1 : ordinal(a) < ordinal(b) ? 1 : 0);
244
354
  for (const update of newest) {
245
355
  const matches = blinders.filter((blinder) => blinder.d.nonce === update.sad.b);
356
+ if (!matches.length) {
357
+ if (blinders.some((blinder) => !vetBlind(blinder, blinder.d.nonce))
358
+ || new Set(blinders.map((blinder) => blinder.d.nonce)).size !== blinders.length)
359
+ return { kind: "reject", reason: "disclosure" };
360
+ return { kind: "missing", reason: "disclosure", issuer: result.state.issuer, said: update.said };
361
+ }
246
362
  if (matches.length !== 1 || !vetBlind(matches[0], update.sad.b)) {
247
363
  return { kind: "reject", reason: "disclosure" };
248
364
  }
249
365
  const blinder = matches[0];
366
+ const refusal = vetBound(blinder, acdc, db);
367
+ if (refusal)
368
+ return refusal;
250
369
  const td = blinder.td.nonce;
251
370
  const state = blinder.ts.text;
252
371
  if (!td && !state)