keri-ts 2.1.0 → 2.2.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 (294) hide show
  1. package/README.md +30 -2
  2. package/esm/keri/npm/src/acdc/authoring.js +195 -0
  3. package/esm/keri/npm/src/acdc/custody.js +164 -0
  4. package/esm/keri/npm/src/acdc/dhking.js +244 -32
  5. package/esm/keri/npm/src/acdc/regbasing.js +10 -0
  6. package/esm/keri/npm/src/acdc/salting.js +16 -1
  7. package/esm/keri/npm/src/acdc/scheming.js +93 -54
  8. package/esm/keri/npm/src/acdc/unblinding.js +118 -95
  9. package/esm/keri/npm/src/app/bootstrap/authenticating.js +4 -6
  10. package/esm/keri/npm/src/app/bootstrap/oobi-resolving.js +41 -0
  11. package/esm/keri/npm/src/app/bootstrap/oobiery.js +4 -6
  12. package/esm/keri/npm/src/app/credentials/credential-revoking.js +1 -0
  13. package/esm/keri/npm/src/app/credentials/credential-workflows.js +2 -0
  14. package/esm/keri/npm/src/app/credentials/registry-settling.js +44 -0
  15. package/esm/keri/npm/src/app/credentials/root-replicating.js +68 -60
  16. package/esm/keri/npm/src/app/credentials/root-replicator.js +198 -0
  17. package/esm/keri/npm/src/app/credentials/tel-completion.js +36 -0
  18. package/esm/keri/npm/src/app/delivery/forwarding.js +16 -3
  19. package/esm/keri/npm/src/app/exchanges/exchanging.js +14 -4
  20. package/esm/keri/npm/src/app/identity/challenging.js +50 -0
  21. package/esm/keri/npm/src/app/identity/delegating.js +77 -77
  22. package/esm/keri/npm/src/app/identity/delegation-approval.js +333 -0
  23. package/esm/keri/npm/src/app/identity/event-completion.js +154 -0
  24. package/esm/keri/npm/src/app/identity/habbing.js +129 -6
  25. package/esm/keri/npm/src/app/identity/keeping.js +77 -4
  26. package/esm/keri/npm/src/app/ipex/group-ipex.js +327 -0
  27. package/esm/keri/npm/src/app/ipex/group-issuance.js +902 -0
  28. package/esm/keri/npm/src/app/ipex/ipex-admitting.js +120 -0
  29. package/esm/keri/npm/src/app/ipex/ipex-conversation.js +197 -0
  30. package/esm/keri/npm/src/app/ipex/ipex-discloser.js +591 -0
  31. package/esm/keri/npm/src/app/ipex/ipex-granting.js +93 -0
  32. package/esm/keri/npm/src/app/ipex/ipex-grouping.js +34 -11
  33. package/esm/keri/npm/src/app/ipex/issuance.js +888 -0
  34. package/esm/keri/npm/src/app/ipex/pending-presentations.js +46 -0
  35. package/esm/keri/npm/src/app/ipex/presentation-files.js +200 -0
  36. package/esm/keri/npm/src/app/ipex/presenting.js +401 -0
  37. package/esm/keri/npm/src/app/ipex/receive-issuance.js +86 -0
  38. package/esm/keri/npm/src/app/ipex/unblinding-workflow.js +660 -0
  39. package/esm/keri/npm/src/app/mailbox/ipex-arrival.js +103 -0
  40. package/esm/keri/npm/src/app/mailbox/kel-publisher.js +322 -0
  41. package/esm/keri/npm/src/app/mailbox/kel-publishing.js +65 -0
  42. package/esm/keri/npm/src/app/mailbox/kel-submission.js +24 -0
  43. package/esm/keri/npm/src/app/mailbox/mailbox-admin.js +208 -0
  44. package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +212 -47
  45. package/esm/keri/npm/src/app/mailbox/mailboxing.js +10 -5
  46. package/esm/keri/npm/src/app/multisig/counseling.js +482 -0
  47. package/esm/keri/npm/src/app/multisig/group-members.js +18 -0
  48. package/esm/keri/npm/src/app/multisig/multisig-workflows.js +94 -139
  49. package/esm/keri/npm/src/app/multisig/proposals.js +281 -0
  50. package/esm/keri/npm/src/app/multisig/proposing.js +122 -0
  51. package/esm/keri/npm/src/app/notifications/signaling.js +5 -5
  52. package/esm/keri/npm/src/app/protocol/parsering.js +26 -1
  53. package/esm/keri/npm/src/app/protocol/protocol-processing.js +9 -3
  54. package/esm/keri/npm/src/app/queries/query-workflows.js +98 -0
  55. package/esm/keri/npm/src/app/runtime/agent-runtime.js +106 -55
  56. package/esm/keri/npm/src/app/runtime/cue-runtime.js +3 -6
  57. package/esm/keri/npm/src/app/runtime/delivery-outbox.js +87 -0
  58. package/esm/keri/npm/src/app/runtime/doing.js +17 -0
  59. package/esm/keri/npm/src/app/runtime/ipex-auxiliaries.js +207 -0
  60. package/esm/keri/npm/src/app/runtime/operation-owners.js +151 -0
  61. package/esm/keri/npm/src/app/runtime/retry-backoff.js +93 -0
  62. package/esm/keri/npm/src/app/runtime/workflow-contract.js +80 -0
  63. package/esm/keri/npm/src/app/transport/http-client.js +25 -6
  64. package/esm/keri/npm/src/app/witness/http-endpoints.js +4 -4
  65. package/esm/keri/npm/src/cli/common/event-completion.js +49 -0
  66. package/esm/keri/npm/src/cli/common/runtime-workers.js +23 -0
  67. package/esm/keri/npm/src/cli/credentials/ipex.js +157 -190
  68. package/esm/keri/npm/src/cli/credentials/vc.js +53 -72
  69. package/esm/keri/npm/src/cli/endpoints/did.js +12 -3
  70. package/esm/keri/npm/src/cli/endpoints/oobi.js +10 -13
  71. package/esm/keri/npm/src/cli/identity/challenge.js +8 -34
  72. package/esm/keri/npm/src/cli/identity/delegate.js +81 -258
  73. package/esm/keri/npm/src/cli/identity/incept.js +15 -32
  74. package/esm/keri/npm/src/cli/identity/interact.js +5 -17
  75. package/esm/keri/npm/src/cli/identity/rotate.js +8 -36
  76. package/esm/keri/npm/src/cli/index.js +3 -1
  77. package/esm/keri/npm/src/cli/messaging/group-join.js +79 -0
  78. package/esm/keri/npm/src/cli/messaging/group-wait.js +88 -0
  79. package/esm/keri/npm/src/cli/messaging/multisig.js +163 -284
  80. package/esm/keri/npm/src/cli/messaging/root-copy-lines.js +31 -0
  81. package/esm/keri/npm/src/core/kel/eventing.js +66 -10
  82. package/esm/keri/npm/src/core/mailbox/kram-policy.js +39 -6
  83. package/esm/keri/npm/src/core/mailbox/kraming.js +2 -0
  84. package/esm/keri/npm/src/core/records.js +23 -0
  85. package/esm/keri/npm/src/core/routing.js +13 -0
  86. package/esm/keri/npm/src/db/basing.js +34 -2
  87. package/esm/keri/npm/src/db/core/indexeddb-persistence.js +221 -0
  88. package/esm/keri/npm/src/db/indexeddb.js +98 -0
  89. package/esm/keri/npm/src/db/keeping.js +11 -2
  90. package/esm/keri/npm/src/db/store-lock.js +150 -0
  91. package/esm/keri/npm/src/npm/db-indexeddb.browser.js +2 -0
  92. package/esm/keri/npm/src/npm/db-indexeddb.js +3 -0
  93. package/esm/keri/npm/src/npm/db.browser.js +2 -0
  94. package/esm/keri/npm/src/npm/index.browser.js +9 -0
  95. package/esm/keri/npm/src/npm/runtime-web.browser.js +2 -0
  96. package/esm/keri/npm/src/npm/runtime-web.js +3 -0
  97. package/esm/keri/npm/src/npm/runtime.browser.js +2 -0
  98. package/esm/keri/npm/src/runtime/index.js +51 -4
  99. package/esm/keri/npm/src/runtime/web/output-barrier.js +47 -0
  100. package/esm/keri/npm/src/runtime/web/persistent-storage.js +37 -0
  101. package/esm/keri/npm/src/runtime/web.js +10 -0
  102. package/esm/keri/npm/src/vdr/tel-publication.js +16 -0
  103. package/esm/keri/npm/src/version.js +2 -2
  104. package/package.json +15 -2
  105. package/types/acdc/authoring.d.ts +54 -0
  106. package/types/acdc/authoring.d.ts.map +1 -0
  107. package/types/acdc/custody.d.ts +77 -0
  108. package/types/acdc/custody.d.ts.map +1 -0
  109. package/types/acdc/dhking.d.ts +94 -3
  110. package/types/acdc/dhking.d.ts.map +1 -1
  111. package/types/acdc/regbasing.d.ts +4 -0
  112. package/types/acdc/regbasing.d.ts.map +1 -1
  113. package/types/acdc/salting.d.ts +6 -1
  114. package/types/acdc/salting.d.ts.map +1 -1
  115. package/types/acdc/scheming.d.ts +2 -0
  116. package/types/acdc/scheming.d.ts.map +1 -1
  117. package/types/acdc/unblinding.d.ts +58 -19
  118. package/types/acdc/unblinding.d.ts.map +1 -1
  119. package/types/app/bootstrap/authenticating.d.ts +3 -1
  120. package/types/app/bootstrap/authenticating.d.ts.map +1 -1
  121. package/types/app/bootstrap/oobi-resolving.d.ts +92 -0
  122. package/types/app/bootstrap/oobi-resolving.d.ts.map +1 -0
  123. package/types/app/bootstrap/oobiery.d.ts +3 -1
  124. package/types/app/bootstrap/oobiery.d.ts.map +1 -1
  125. package/types/app/credentials/credential-revoking.d.ts +3 -0
  126. package/types/app/credentials/credential-revoking.d.ts.map +1 -1
  127. package/types/app/credentials/credential-workflows.d.ts +5 -0
  128. package/types/app/credentials/credential-workflows.d.ts.map +1 -1
  129. package/types/app/credentials/registry-settling.d.ts +85 -0
  130. package/types/app/credentials/registry-settling.d.ts.map +1 -0
  131. package/types/app/credentials/root-replicating.d.ts +56 -44
  132. package/types/app/credentials/root-replicating.d.ts.map +1 -1
  133. package/types/app/credentials/root-replicator.d.ts +105 -0
  134. package/types/app/credentials/root-replicator.d.ts.map +1 -0
  135. package/types/app/credentials/tel-completion.d.ts +55 -0
  136. package/types/app/credentials/tel-completion.d.ts.map +1 -0
  137. package/types/app/delivery/forwarding.d.ts +6 -0
  138. package/types/app/delivery/forwarding.d.ts.map +1 -1
  139. package/types/app/exchanges/exchanging.d.ts.map +1 -1
  140. package/types/app/identity/challenging.d.ts +54 -0
  141. package/types/app/identity/challenging.d.ts.map +1 -1
  142. package/types/app/identity/delegating.d.ts +21 -4
  143. package/types/app/identity/delegating.d.ts.map +1 -1
  144. package/types/app/identity/delegation-approval.d.ts +228 -0
  145. package/types/app/identity/delegation-approval.d.ts.map +1 -0
  146. package/types/app/identity/event-completion.d.ts +151 -0
  147. package/types/app/identity/event-completion.d.ts.map +1 -0
  148. package/types/app/identity/habbing.d.ts +67 -2
  149. package/types/app/identity/habbing.d.ts.map +1 -1
  150. package/types/app/identity/keeping.d.ts +49 -3
  151. package/types/app/identity/keeping.d.ts.map +1 -1
  152. package/types/app/ipex/group-ipex.d.ts +247 -0
  153. package/types/app/ipex/group-ipex.d.ts.map +1 -0
  154. package/types/app/ipex/group-issuance.d.ts +281 -0
  155. package/types/app/ipex/group-issuance.d.ts.map +1 -0
  156. package/types/app/ipex/ipex-admitting.d.ts +47 -0
  157. package/types/app/ipex/ipex-admitting.d.ts.map +1 -0
  158. package/types/app/ipex/ipex-conversation.d.ts +195 -0
  159. package/types/app/ipex/ipex-conversation.d.ts.map +1 -0
  160. package/types/app/ipex/ipex-discloser.d.ts +156 -0
  161. package/types/app/ipex/ipex-discloser.d.ts.map +1 -0
  162. package/types/app/ipex/ipex-granting.d.ts +145 -0
  163. package/types/app/ipex/ipex-granting.d.ts.map +1 -0
  164. package/types/app/ipex/ipex-grouping.d.ts +18 -0
  165. package/types/app/ipex/ipex-grouping.d.ts.map +1 -1
  166. package/types/app/ipex/issuance.d.ts +443 -0
  167. package/types/app/ipex/issuance.d.ts.map +1 -0
  168. package/types/app/ipex/pending-presentations.d.ts +25 -0
  169. package/types/app/ipex/pending-presentations.d.ts.map +1 -0
  170. package/types/app/ipex/presentation-files.d.ts +47 -0
  171. package/types/app/ipex/presentation-files.d.ts.map +1 -0
  172. package/types/app/ipex/presenting.d.ts +298 -0
  173. package/types/app/ipex/presenting.d.ts.map +1 -0
  174. package/types/app/ipex/receive-issuance.d.ts +99 -0
  175. package/types/app/ipex/receive-issuance.d.ts.map +1 -0
  176. package/types/app/ipex/unblinding-workflow.d.ts +255 -0
  177. package/types/app/ipex/unblinding-workflow.d.ts.map +1 -0
  178. package/types/app/mailbox/ipex-arrival.d.ts +104 -0
  179. package/types/app/mailbox/ipex-arrival.d.ts.map +1 -0
  180. package/types/app/mailbox/kel-publisher.d.ts +141 -0
  181. package/types/app/mailbox/kel-publisher.d.ts.map +1 -0
  182. package/types/app/mailbox/kel-publishing.d.ts +70 -0
  183. package/types/app/mailbox/kel-publishing.d.ts.map +1 -0
  184. package/types/app/mailbox/kel-submission.d.ts +18 -0
  185. package/types/app/mailbox/kel-submission.d.ts.map +1 -0
  186. package/types/app/mailbox/mailbox-admin.d.ts +113 -0
  187. package/types/app/mailbox/mailbox-admin.d.ts.map +1 -0
  188. package/types/app/mailbox/mailbox-poller.d.ts +92 -3
  189. package/types/app/mailbox/mailbox-poller.d.ts.map +1 -1
  190. package/types/app/mailbox/mailboxing.d.ts +3 -0
  191. package/types/app/mailbox/mailboxing.d.ts.map +1 -1
  192. package/types/app/multisig/counseling.d.ts +196 -0
  193. package/types/app/multisig/counseling.d.ts.map +1 -0
  194. package/types/app/multisig/group-members.d.ts +11 -0
  195. package/types/app/multisig/group-members.d.ts.map +1 -1
  196. package/types/app/multisig/grouping.d.ts +39 -20
  197. package/types/app/multisig/grouping.d.ts.map +1 -1
  198. package/types/app/multisig/multisig-workflows.d.ts +91 -22
  199. package/types/app/multisig/multisig-workflows.d.ts.map +1 -1
  200. package/types/app/multisig/proposals.d.ts +129 -0
  201. package/types/app/multisig/proposals.d.ts.map +1 -0
  202. package/types/app/multisig/proposing.d.ts +125 -0
  203. package/types/app/multisig/proposing.d.ts.map +1 -0
  204. package/types/app/notifications/signaling.d.ts +3 -1
  205. package/types/app/notifications/signaling.d.ts.map +1 -1
  206. package/types/app/protocol/parsering.d.ts +13 -0
  207. package/types/app/protocol/parsering.d.ts.map +1 -1
  208. package/types/app/protocol/protocol-processing.d.ts +7 -1
  209. package/types/app/protocol/protocol-processing.d.ts.map +1 -1
  210. package/types/app/queries/query-workflows.d.ts +98 -0
  211. package/types/app/queries/query-workflows.d.ts.map +1 -0
  212. package/types/app/runtime/agent-runtime.d.ts +72 -25
  213. package/types/app/runtime/agent-runtime.d.ts.map +1 -1
  214. package/types/app/runtime/cue-runtime.d.ts +2 -1
  215. package/types/app/runtime/cue-runtime.d.ts.map +1 -1
  216. package/types/app/runtime/delivery-outbox.d.ts +68 -0
  217. package/types/app/runtime/delivery-outbox.d.ts.map +1 -0
  218. package/types/app/runtime/doing.d.ts +27 -0
  219. package/types/app/runtime/doing.d.ts.map +1 -0
  220. package/types/app/runtime/ipex-auxiliaries.d.ts +74 -0
  221. package/types/app/runtime/ipex-auxiliaries.d.ts.map +1 -0
  222. package/types/app/runtime/operation-owners.d.ts +137 -0
  223. package/types/app/runtime/operation-owners.d.ts.map +1 -0
  224. package/types/app/runtime/retry-backoff.d.ts +49 -0
  225. package/types/app/runtime/retry-backoff.d.ts.map +1 -0
  226. package/types/app/runtime/workflow-contract.d.ts +79 -0
  227. package/types/app/runtime/workflow-contract.d.ts.map +1 -0
  228. package/types/app/transport/http-client.d.ts.map +1 -1
  229. package/types/cli/common/event-completion.d.ts +26 -0
  230. package/types/cli/common/event-completion.d.ts.map +1 -0
  231. package/types/cli/common/runtime-workers.d.ts +23 -0
  232. package/types/cli/common/runtime-workers.d.ts.map +1 -0
  233. package/types/cli/credentials/ipex.d.ts.map +1 -1
  234. package/types/cli/credentials/vc.d.ts +1 -1
  235. package/types/cli/credentials/vc.d.ts.map +1 -1
  236. package/types/cli/endpoints/did.d.ts.map +1 -1
  237. package/types/cli/endpoints/oobi.d.ts +3 -1
  238. package/types/cli/endpoints/oobi.d.ts.map +1 -1
  239. package/types/cli/identity/challenge.d.ts +1 -1
  240. package/types/cli/identity/challenge.d.ts.map +1 -1
  241. package/types/cli/identity/delegate.d.ts +14 -1
  242. package/types/cli/identity/delegate.d.ts.map +1 -1
  243. package/types/cli/identity/incept.d.ts.map +1 -1
  244. package/types/cli/identity/interact.d.ts.map +1 -1
  245. package/types/cli/identity/rotate.d.ts.map +1 -1
  246. package/types/cli/index.d.ts +3 -1
  247. package/types/cli/index.d.ts.map +1 -1
  248. package/types/cli/messaging/group-join.d.ts +53 -0
  249. package/types/cli/messaging/group-join.d.ts.map +1 -0
  250. package/types/cli/messaging/group-wait.d.ts +34 -0
  251. package/types/cli/messaging/group-wait.d.ts.map +1 -0
  252. package/types/cli/messaging/multisig.d.ts +28 -5
  253. package/types/cli/messaging/multisig.d.ts.map +1 -1
  254. package/types/cli/messaging/root-copy-lines.d.ts +39 -0
  255. package/types/cli/messaging/root-copy-lines.d.ts.map +1 -0
  256. package/types/core/cues.d.ts +11 -0
  257. package/types/core/cues.d.ts.map +1 -1
  258. package/types/core/kel/eventing.d.ts.map +1 -1
  259. package/types/core/mailbox/kram-policy.d.ts +14 -0
  260. package/types/core/mailbox/kram-policy.d.ts.map +1 -1
  261. package/types/core/mailbox/kraming.d.ts +1 -1
  262. package/types/core/mailbox/kraming.d.ts.map +1 -1
  263. package/types/core/records.d.ts +61 -0
  264. package/types/core/records.d.ts.map +1 -1
  265. package/types/core/routing.d.ts +6 -0
  266. package/types/core/routing.d.ts.map +1 -1
  267. package/types/db/basing.d.ts +8 -2
  268. package/types/db/basing.d.ts.map +1 -1
  269. package/types/db/core/indexeddb-persistence.d.ts +59 -0
  270. package/types/db/core/indexeddb-persistence.d.ts.map +1 -0
  271. package/types/db/indexeddb.d.ts +37 -0
  272. package/types/db/indexeddb.d.ts.map +1 -0
  273. package/types/db/keeping.d.ts +5 -2
  274. package/types/db/keeping.d.ts.map +1 -1
  275. package/types/db/store-lock.d.ts +72 -0
  276. package/types/db/store-lock.d.ts.map +1 -0
  277. package/types/npm/db-indexeddb.d.ts +4 -0
  278. package/types/npm/db-indexeddb.d.ts.map +1 -0
  279. package/types/npm/runtime-web.d.ts +4 -0
  280. package/types/npm/runtime-web.d.ts.map +1 -0
  281. package/types/runtime/index.d.ts +41 -6
  282. package/types/runtime/index.d.ts.map +1 -1
  283. package/types/runtime/web/output-barrier.d.ts +30 -0
  284. package/types/runtime/web/output-barrier.d.ts.map +1 -0
  285. package/types/runtime/web/persistent-storage.d.ts +36 -0
  286. package/types/runtime/web/persistent-storage.d.ts.map +1 -0
  287. package/types/runtime/web.d.ts +11 -0
  288. package/types/runtime/web.d.ts.map +1 -0
  289. package/types/vdr/tel-publication.d.ts +6 -0
  290. package/types/vdr/tel-publication.d.ts.map +1 -1
  291. package/types/version.d.ts +2 -2
  292. package/esm/keri/npm/src/cli/common/tel-completion.js +0 -24
  293. package/types/cli/common/tel-completion.d.ts +0 -8
  294. package/types/cli/common/tel-completion.d.ts.map +0 -1
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Registry blind derivation over the Keeper's registry root.
3
+ *
4
+ * Issuing a blinded (BUP) registry update needs a deterministic opening. The
5
+ * root salt stays in the Keeper; this core derives openings from it and keeps
6
+ * only the public, event-specific coordinates in a `DerivedUpdateStore`. A
7
+ * runtime defaults to {@link BaserDerivedUpdateStore}; a wallet backs the port
8
+ * with its own table. The core opens no database of its own.
9
+ */
10
+ import { type SerderACDC } from "cesr-ts";
11
+ import type { Hab, Habery } from "../app/identity/habbing.js";
12
+ import type { RegBaser } from "./regbasing.js";
13
+ import { type RegistryDisclosure } from "./regeventing.js";
14
+ import type { RegistryStore } from "./registering.js";
15
+ /** Public event-specific inputs; neither a salt nor a derived opening is retained here. */
16
+ export interface DerivedUpdate {
17
+ credential: string;
18
+ state: string;
19
+ bound: {
20
+ bn: string;
21
+ bd: string;
22
+ } | null;
23
+ }
24
+ /** Durable, non-secret derivation coordinates keyed by BUP SAID; `pin` overwrites. */
25
+ export interface DerivedUpdateStore {
26
+ get(event: string): DerivedUpdate | null;
27
+ pin(event: string, value: DerivedUpdate): void;
28
+ }
29
+ /** Process-local store for a CLI or tests; a wallet backs the port with its own durable table. */
30
+ export declare class MemoryDerivedUpdateStore implements DerivedUpdateStore {
31
+ private readonly rows;
32
+ get(event: string): DerivedUpdate | null;
33
+ pin(event: string, value: DerivedUpdate): void;
34
+ }
35
+ /**
36
+ * Derivation coordinates kept in a registry environment's own database (`RegBaser.dvus`). The default of a
37
+ * runtime that supplies no store, so a server agent keeps them durably beside the registry events they
38
+ * describe. A wallet with its own table still passes that instead.
39
+ */
40
+ export declare class BaserDerivedUpdateStore implements DerivedUpdateStore {
41
+ private readonly baser;
42
+ constructor(baser: RegBaser);
43
+ get(event: string): DerivedUpdate | null;
44
+ pin(event: string, value: DerivedUpdate): void;
45
+ }
46
+ /** Owners a custody borrows; construction opens nothing. */
47
+ export interface RegistryCustodyOptions {
48
+ hby: Habery;
49
+ hab: Hab;
50
+ registry: RegistryStore;
51
+ store: DerivedUpdateStore;
52
+ }
53
+ /** Explicit capability over a local habitat's Keeper root and accepted public registry evidence. */
54
+ export declare class RegistryCustody {
55
+ readonly options: RegistryCustodyOptions;
56
+ /** Borrow owners only; construction loads no encrypted row. */
57
+ constructor(options: RegistryCustodyOptions);
58
+ /** Bind the actual local habitat and its key owners, never an AID label alone. */
59
+ private owner;
60
+ /** Load only this habitat's Keeper root; possession confers no protocol authority. */
61
+ private load;
62
+ /** Provision an issuer-selected root once, refusing replacement behind opaque accepted history. */
63
+ createCustody(registry: string): {
64
+ registry: string;
65
+ };
66
+ /** Derive a candidate only; consumers still authenticate its exact accepted event and bound KEL reference. */
67
+ derive(registry: string, ordinal: number | bigint, credential: string, state: string, options?: {
68
+ bound?: boolean;
69
+ bsn?: number | bigint;
70
+ bd?: string;
71
+ }): RegistryDisclosure;
72
+ /** Persist exact nonsecret coordinates before processing/anchoring a newly derived BUP. */
73
+ retainDerivedUpdate(event: SerderACDC, opening: RegistryDisclosure): DerivedUpdate;
74
+ /** Reproduce only the exact accepted event, never today's head or a later credential's coordinates. */
75
+ derivedOpening(event: SerderACDC): RegistryDisclosure;
76
+ }
77
+ //# sourceMappingURL=custody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custody.d.ts","sourceRoot":"","sources":["../../src/acdc/custody.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAA8D,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,kBAAkB,EAAY,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1C;AAED,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC;IACzC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;CAChD;AAED,kGAAkG;AAClG,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IACzD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAGxC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;CAG/C;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,QAAQ;IAC5C,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAIxC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;CAG/C;AAED,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,oGAAoG;AACpG,qBAAa,eAAe;IAEd,QAAQ,CAAC,OAAO,EAAE,sBAAsB;IADpD,+DAA+D;gBAC1C,OAAO,EAAE,sBAAsB;IAIpD,kFAAkF;IAClF,OAAO,CAAC,KAAK;IAOb,sFAAsF;IACtF,OAAO,CAAC,IAAI;IAOZ,mGAAmG;IACnG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAiCrD,8GAA8G;IAC9G,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAO,GACpE,kBAAkB;IAarB,2FAA2F;IAC3F,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,GAAG,aAAa;IAiBlF,uGAAuG;IACvG,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB;CAwBtD"}
@@ -5,13 +5,14 @@
5
5
  */
6
6
  import { type Cigar, type Diger, Salter, type SerderKERI } from "cesr-ts";
7
7
  import type { Operation } from "effection";
8
- import type { ExchangeDecision, Exchanger } from "../app/exchanges/exchanging.js";
8
+ import type { ExchangeDecision, ExchangeInput, Exchanger } from "../app/exchanges/exchanging.js";
9
9
  import { Hab } from "../app/identity/habbing.js";
10
10
  import { type GroupCoordinator } from "../app/multisig/group-members.js";
11
11
  import { type AuxiliaryQueryProcessor, type MessageDropDecision } from "../app/protocol/parsering.js";
12
12
  import { Deck } from "../core/deck.js";
13
13
  import type { KeriDispatchEnvelope, TransIdxSigGroup } from "../core/dispatch.js";
14
14
  import { type ReplyProcessDecision, type Revery } from "../core/routing.js";
15
+ import type { Baser } from "../db/basing.js";
15
16
  import { type RegistryStore } from "./registering.js";
16
17
  /** Exact context bound by the Python HKDF profile. XID can differ from Grant SAID. */
17
18
  export interface DhkeContext {
@@ -33,6 +34,40 @@ export declare function generateKeyPair(): {
33
34
  };
34
35
  /** Derive one Salt128; malformed context, wrong local keys and low-order peers refuse. */
35
36
  export declare function deriveRoot(privateKey: Uint8Array, context: DhkeContext): Salter;
37
+ /** The Grant `hab` takes part in, with its parties, transaction and registry scope. */
38
+ interface GrantScope {
39
+ input: ExchangeInput;
40
+ issuer: string;
41
+ issuee: string;
42
+ xid: string;
43
+ registries: readonly string[];
44
+ }
45
+ /**
46
+ * The DH transaction id of a Grant: its own SAID when it opens the exchange (`xip`), and otherwise the exchange it
47
+ * continues (`x`). The one definition, so the owner and any workflow that names the transaction agree.
48
+ */
49
+ export declare function grantTransactionId(grant: SerderKERI): string;
50
+ /**
51
+ * The scope of a completed exchange that can finish without new key exchange: the Grant is still pending
52
+ * inside its original deadline and `hab` holds a root for the registries it discloses. The scope is those
53
+ * registries; a registry that is still fresh must hold one. No fresh registry is required, because the
54
+ * issuer's update may already be accepted: {@link Dhke.finish} proves the held root against that update, so
55
+ * a root from any other exchange is rejected there. Pure read of stores. Null when nothing can resume.
56
+ */
57
+ export declare function resumableExchange({ hab, exc }: {
58
+ hab: Hab;
59
+ exc: Exchanger;
60
+ }, grant: string): GrantScope | null;
61
+ /**
62
+ * Whether `registry` has no committed state: its head is still the inception and no update is escrowed.
63
+ * A staged update waits in the missing-anchor or out-of-order escrow under its registry until the issuer's
64
+ * anchor is accepted, and an accepted one moves the head, so two keyed reads bounded by this registry
65
+ * decide it. Only then can a retained root be unused, because every derivation from a root, and every copy
66
+ * of it to another member (which `RegistryRoot` authorizes only for an accepted, issuer-anchored update),
67
+ * starts from a staged or accepted update. A remote update escrowed for this registry also counts, which
68
+ * is the conservative side.
69
+ */
70
+ export declare function registryUncommitted(registryStore: RegistryStore, registry: string): boolean;
36
71
  /** Group consent names its own accepted coordinator and elected member; individuals omit both. */
37
72
  export interface DhkeApproval {
38
73
  coordinator?: GroupCoordinator;
@@ -44,6 +79,16 @@ export interface DhkeOutgoing {
44
79
  dest: string;
45
80
  msg: Uint8Array;
46
81
  }
82
+ /**
83
+ * The group custodian just retained these registries' roots for `gid`; every other
84
+ * current member should receive a sealed copy (KERIpy's `replicate` cue). It carries
85
+ * coordinates only, never a root. It is a separate deck from `outgoing` because it is
86
+ * not wire: a drainer that sends every `outgoing` item would send it.
87
+ */
88
+ export interface DhkeReplicate {
89
+ gid: string;
90
+ registries: string[];
91
+ }
47
92
  /**
48
93
  * Issuer/issuee DH for an explicitly approved pending Grant. Wire
49
94
  * intake cannot approve work. Inject as ProtocolProcessor.qvy and register on
@@ -56,6 +101,8 @@ export declare class Dhke implements AuxiliaryQueryProcessor {
56
101
  static readonly Route = "/ipex/dhke";
57
102
  readonly resource = "/ipex/dhke";
58
103
  readonly outgoing: Deck<DhkeOutgoing>;
104
+ /** Completion cues for roots just retained by this group's custodian; feed `RootReplicator.replicate`. */
105
+ readonly replicated: Deck<DhkeReplicate>;
59
106
  private readonly pendingQueries;
60
107
  private readonly now;
61
108
  private readonly operations;
@@ -64,16 +111,46 @@ export declare class Dhke implements AuxiliaryQueryProcessor {
64
111
  readonly rvy: Revery;
65
112
  readonly registryStore: RegistryStore;
66
113
  readonly group: boolean;
114
+ private readonly kram;
67
115
  /** Bind concrete local owners; construction grants no consent and writes nothing. */
68
- constructor({ hab, exc, registryStore, rvy, now }: {
116
+ constructor({ hab, exc, registryStore, rvy, now, kram }: {
69
117
  hab: Hab;
70
118
  exc: Exchanger;
71
119
  registryStore: RegistryStore;
72
120
  rvy?: Revery;
73
121
  now?: () => number;
122
+ /** False when the runtime has KRAM off: its `tmsc`/`msgc` rows never exist, so `approve` refuses. */
123
+ kram?: boolean;
74
124
  });
75
- /** Select one live fresh issuance and freeze its exact bodies, parties and registry order. */
125
+ /**
126
+ * Select one live fresh issuance and freeze its exact bodies, parties and registry order.
127
+ *
128
+ * A registry that already holds a root refuses (`Registry root conflicts with this live DH operation`)
129
+ * unless it has no committed state ({@link registryUncommitted}): then the held root was never used and
130
+ * this exchange, whose Grant is from the registry's issuer, overwrites it when it retains its own root,
131
+ * never at approval, so an interruption before retention leaves the old root. Once any update is staged
132
+ * or accepted the refusal is unchanged. A KERIpy peer keeps the old rule and refuses such a second
133
+ * exchange: with a KERIpy holder the issuer needs a fresh registry. One process also refuses a second
134
+ * live operation on a registry, so two pending Grants cannot clobber each other's root.
135
+ */
76
136
  approve(grant: string, { coordinator, custodian }?: DhkeApproval): string;
137
+ /**
138
+ * Resume a completed exchange after a process restart, without new key exchange: rebuild the operation as
139
+ * completed from the roots held for the Grant's registries ({@link resumableExchange}). It holds no
140
+ * ephemeral key, so it cannot start, answer or renew a query; it can only {@link complete} and
141
+ * {@link finish}, which signs nothing and verifies the issuer's update against the held root. Needs an
142
+ * unlocked Keeper; wire intake never calls it. Repeating it returns the same transaction.
143
+ *
144
+ * @throws ValidationError unless the Grant is pending and holds a root for each registry in its scope.
145
+ */
146
+ resume(grant: string, { coordinator, custodian }?: DhkeApproval): string;
147
+ /** Freeze the exact pending Grant, parties and registry order into an operation; registers nothing. */
148
+ private frozen;
149
+ /**
150
+ * Whether this owner already holds a live operation for `grant`. Two operation tables over one runtime
151
+ * (the host's and a command's own) use it so only the first to reach a Grant drives it.
152
+ */
153
+ holds(grant: string): boolean;
77
154
  /** Return the stable issuer proposal until own threshold intake supplies the complete query. */
78
155
  start(grant: string): Uint8Array;
79
156
  /**
@@ -109,6 +186,16 @@ export declare class Dhke implements AuxiliaryQueryProcessor {
109
186
  finish(xid: string): Operation<ExchangeDecision>;
110
187
  /** Drop local ephemeral key references and permanently refuse this operation. */
111
188
  abandon(xid: string): void;
189
+ /**
190
+ * Whether this local habitat is the party of DH transaction `xid` with `sender`.
191
+ *
192
+ * Messages carry no recipient, so a per-identifier registry selects the owner by transaction:
193
+ * an approved operation here, a stored Grant from `sender` addressed to this habitat, or, for a
194
+ * group, its own members' contributions, which KRAM must pool before this owner consents.
195
+ */
196
+ inTransaction(sender: string, xid: string): boolean;
197
+ /** Recipients of the pending Grants `sender` opened in DH transaction `xid`, from KRAM-accepted store rows. */
198
+ static recipients(db: Baser, sender: string, xid: string): string[];
112
199
  /** Release all process-local approvals and retry bytes; zero owned ephemeral scalar arrays. */
113
200
  close(): void;
114
201
  /** Retain public query evidence against one exact pending Grant, without creating keys or consent. */
@@ -117,6 +204,9 @@ export declare class Dhke implements AuxiliaryQueryProcessor {
117
204
  private pruneQueries;
118
205
  /** Consume the first authenticated request only after explicit approval; never renew either clock. */
119
206
  private replayQuery;
207
+ /** The persisted query for `xid` after a restart, with its lifetime recomputed from KRAM's durable records. */
208
+ private loadHeld;
209
+ private dropHeld;
120
210
  /** Bound process-local public evidence by the original query and accepted Grant lifetimes. */
121
211
  private retainUntil;
122
212
  private operation;
@@ -133,4 +223,5 @@ export declare class Dhke implements AuxiliaryQueryProcessor {
133
223
  /** Recheck exact frozen election evidence and current membership without choosing a replacement. */
134
224
  private custody;
135
225
  }
226
+ export {};
136
227
  //# sourceMappingURL=dhking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dhking.d.ts","sourceRoot":"","sources":["../../src/acdc/dhking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dhking.d.ts","sourceRoot":"","sources":["../../src/acdc/dhking.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  /** Public ACDC registry database layout and joined LMDB lifecycle. */
2
2
  import { Diger, NumberPrimitive, Saider, SerderACDC } from "cesr-ts";
3
3
  import type { Operation } from "effection";
4
+ import { DerivedUpdateRecord } from "../core/records.js";
4
5
  import type { StoreIdentity } from "../db/core/dber.js";
5
6
  import type { LMDBerOptions } from "../db/core/lmdber.js";
6
7
  import { type StoreFamily, StoreOwner } from "../db/core/store-owner.js";
8
+ import { Komer } from "../db/koming.js";
7
9
  import { B64OnIoSetSuber, BytesSuber, CatCesrSuber, CesrOnSuber, CesrSuber, SerderSuber } from "../db/subing.js";
8
10
  /** Registry paths retain the existing .tufa default and explicit .keri compatibility mode. */
9
11
  export interface RegBaserOptions extends LMDBerOptions {
@@ -26,6 +28,8 @@ export declare class RegBaser extends StoreOwner {
26
28
  heads: CesrSuber<Saider>;
27
29
  /** Event-SAID -> one deliberately published counted BSQ/BSS opening; never private custody. */
28
30
  openings: BytesSuber;
31
+ /** keri-ts only. BUP SAID -> public blind-derivation coordinates; never a salt or opening. */
32
+ dvus: Komer<DerivedUpdateRecord>;
29
33
  /** Event-SAID -> earliest verified KEL source couple, in the current store. */
30
34
  ancs: CatCesrSuber<[NumberPrimitive, Diger]>;
31
35
  /** Insertion-ordered missing-anchor event-SAID tuples by registry and ordinal. */
@@ -1 +1 @@
1
- {"version":3,"file":"regbasing.d.ts","sourceRoot":"","sources":["../../src/acdc/regbasing.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAK,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,KAAK,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEjH,8FAA8F;AAC9F,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,UAAU;IACtC,oCAAoC;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAwB;IAE3D,gFAAgF;IAChF,IAAI,EAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC/B,qFAAqF;IACrF,IAAI,EAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,4FAA4F;IAC5F,KAAK,EAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,+FAA+F;IAC/F,QAAQ,EAAG,UAAU,CAAC;IAEtB,+EAA+E;IAC/E,IAAI,EAAG,YAAY,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9C,kFAAkF;IAClF,IAAI,EAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,gFAAgF;IAChF,IAAI,EAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjC,4EAA4E;IAC3E,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,SAAS,CAAC,OAAO,CAAC;CAiBzD"}
1
+ {"version":3,"file":"regbasing.d.ts","sourceRoot":"","sources":["../../src/acdc/regbasing.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAK,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,KAAK,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEjH,8FAA8F;AAC9F,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,UAAU;IACtC,oCAAoC;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAwB;IAE3D,gFAAgF;IAChF,IAAI,EAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC/B,qFAAqF;IACrF,IAAI,EAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,4FAA4F;IAC5F,KAAK,EAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,+FAA+F;IAC/F,QAAQ,EAAG,UAAU,CAAC;IAEtB,8FAA8F;IAC9F,IAAI,EAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAElC,+EAA+E;IAC/E,IAAI,EAAG,YAAY,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9C,kFAAkF;IAClF,IAAI,EAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,gFAAgF;IAChF,IAAI,EAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjC,4EAA4E;IAC3E,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,SAAS,CAAC,OAAO,CAAC;CAkBzD"}
@@ -24,6 +24,7 @@ import { Salter, type SerderACDC, type SerderKERI, Texter } from "cesr-ts";
24
24
  import type { ExchangeRouteHandler } from "../app/exchanges/exchanging.js";
25
25
  import type { Hab, Habery } from "../app/identity/habbing.js";
26
26
  import type { Notifier } from "../app/notifications/notifying.js";
27
+ import type { ChangeSink } from "../app/runtime/workflow-contract.js";
27
28
  import { ValidationError } from "../core/errors.js";
28
29
  import { type RegistryDisclosure } from "./regeventing.js";
29
30
  import type { Regery } from "./registraring.js";
@@ -120,7 +121,9 @@ export declare class RegistryRoot implements ExchangeRouteHandler {
120
121
  readonly hby: Habery;
121
122
  readonly rgy: Regery;
122
123
  readonly notifier: Notifier | null;
123
- constructor(hby: Habery, rgy: Regery, notifier?: Notifier | null);
124
+ /** Told `{kind: "root", id: registry}` after a copy is retained, so an embedder that waited for the root can act. */
125
+ readonly changes: ChangeSink | undefined;
126
+ constructor(hby: Habery, rgy: Regery, notifier?: Notifier | null, changes?: ChangeSink);
124
127
  /** True when `member` contributed to any accepted establishment of `group`. */
125
128
  private historical;
126
129
  /** True when `member`'s latest contributing key is in `group`'s current keys. */
@@ -164,6 +167,8 @@ export declare class RegistryRoot implements ExchangeRouteHandler {
164
167
  resealed(ghab: Hab, rotation: string): string[];
165
168
  /** Return the current signing member AIDs of `gid` known to this Habery. */
166
169
  members(gid: string): string[];
170
+ /** Public key by which `member` currently contributes to `gid`, or null while not a known current signing member. */
171
+ contributor(gid: string, member: string): string | null;
167
172
  /** Return the registry SAIDs with a root retained locally for `gid`. */
168
173
  held(gid: string): string[];
169
174
  /** True when `ghab`'s local member is the elected sender for `rotation`. */
@@ -1 +1 @@
1
- {"version":3,"file":"salting.d.ts","sourceRoot":"","sources":["../../src/acdc/salting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"salting.d.ts","sourceRoot":"","sources":["../../src/acdc/salting.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export declare class MissingSchemaError extends ValidationError {
22
22
  export declare class FailedSchemaValidationError extends ValidationError {
23
23
  }
24
24
  type Schema = Record<string, unknown>;
25
+ /** How many schema closures this process has compiled; a diagnostic for tests of the cache. */
26
+ export declare function schemaCompilationCount(): number;
25
27
  /** Local static schema closure plus a synchronous Draft 2020-12 validator; legacy Schemer behavior is unchanged. */
26
28
  export declare function validateSchema(acdc: SerderACDC, db: Baser, override?: string | Readonly<Schema>): SchemaValidation;
27
29
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"scheming.d.ts","sourceRoot":"","sources":["../../src/acdc/scheming.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,6FAA6F;AAC7F,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IACrF,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,QAAQ,GAAG,YAAY,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,4FAA4F;AAC5F,qBAAa,kBAAmB,SAAQ,eAAe;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAGpC;AACD,uFAAuF;AACvF,qBAAa,2BAA4B,SAAQ,eAAe;CAAG;AAGnE,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAgNtC,oHAAoH;AACpH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,CA8DlH"}
1
+ {"version":3,"file":"scheming.d.ts","sourceRoot":"","sources":["../../src/acdc/scheming.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,6FAA6F;AAC7F,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IACrF,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,QAAQ,GAAG,YAAY,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,4FAA4F;AAC5F,qBAAa,kBAAmB,SAAQ,eAAe;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAGpC;AACD,uFAAuF;AACvF,qBAAa,2BAA4B,SAAQ,eAAe;CAAG;AAGnE,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAiOtC,+FAA+F;AAC/F,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAwDD,oHAAoH;AACpH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,CA+BlH"}
@@ -1,7 +1,14 @@
1
1
  /**
2
- * Explicitly approved IPEX Unblind, following Python's local query/reply profile.
2
+ * IPEX Unblind, following Python's local query/reply profile.
3
3
  * Only event openings cross this boundary. Roots, application state vocabulary,
4
4
  * transport and final Admit remain with their existing owners.
5
+ *
6
+ * Consent: the disclosee explicitly approves (`approve`/`start`) the Grant it requests proofs for.
7
+ * The discloser has no separate approval step: it consented by signing the presentation Grant, so an
8
+ * authenticated query for a live Grant this identifier sent is answered automatically, bounded by that
9
+ * Grant's registry scope and original deadline. The rule is decided from stored state, so it survives a
10
+ * restart. KERIpy's `Unblind` keeps its own local approve gate; that is local policy and the wire is
11
+ * unchanged.
5
12
  */
6
13
  import { type Cigar, Diger, type SerderKERI } from "cesr-ts";
7
14
  import type { Operation } from "effection";
@@ -11,8 +18,11 @@ import { type AuxiliaryQueryProcessor, type MessageDropDecision } from "../app/p
11
18
  import { Deck } from "../core/deck.js";
12
19
  import { type KeriDispatchEnvelope, TransIdxSigGroup } from "../core/dispatch.js";
13
20
  import { type ReplyProcessDecision, type Revery } from "../core/routing.js";
21
+ import type { Baser } from "../db/basing.js";
14
22
  import type { RegistryObserver } from "./observing.js";
15
23
  import { type RegistryDisclosure } from "./regeventing.js";
24
+ /** Ordinary registry states an Unblind operation may reveal unless its approval names others. */
25
+ export declare const DEFAULT_UNBLIND_STATES: readonly string[];
16
26
  /** Member signing proposals or elected delivery of full aggregates; all bytes are process-local. */
17
27
  export interface UnblindOutgoing {
18
28
  kin: "sign" | "query" | "reply";
@@ -30,28 +40,37 @@ export declare class Unblind implements AuxiliaryQueryProcessor {
30
40
  static readonly Route = "/ipex/unblind";
31
41
  readonly resource = "/ipex/unblind";
32
42
  readonly outgoing: Deck<UnblindOutgoing>;
33
- private readonly pendingQueries;
34
- private readonly now;
35
43
  private readonly operations;
44
+ /** Whether the persisted requests this identifier owes replies to were taken up by this owner. */
45
+ private restored;
36
46
  readonly hab: Hab;
37
47
  readonly exc: Exchanger;
38
48
  readonly rvy: Revery;
39
49
  readonly registry: RegistryObserver;
40
- readonly states: readonly string[];
41
50
  readonly group: boolean;
42
- /** Bind the exact Grant verifier's store and an explicit ordinary-state vocabulary. */
43
- constructor({ hab, exc, registry, states, rvy, now }: {
51
+ private readonly kram;
52
+ /** Bind the exact Grant verifier's store; the state vocabulary is chosen per approved operation. */
53
+ constructor({ hab, exc, registry, rvy, kram }: {
44
54
  hab: Hab;
45
55
  exc: Exchanger;
46
56
  registry: RegistryObserver;
47
- states: readonly string[];
48
57
  rvy?: Revery;
49
- now?: () => number;
58
+ /** False when the runtime has KRAM off: its `tmsc`/`msgc` rows never exist, so `approve` refuses. */
59
+ kram?: boolean;
50
60
  });
51
- /** Freeze one authenticated live Grant's exact bodies, parties and authorized registry scope. */
52
- approve(grant: string): string;
61
+ /**
62
+ * Freeze one authenticated live Grant's exact bodies, parties, authorized registry scope and
63
+ * ordinary-state vocabulary. `states` defaults to the registry-root triple and applies to this
64
+ * operation only; approving the same Grant again with different explicit states is refused,
65
+ * while omitting `states` on a repeat approval keeps the frozen vocabulary.
66
+ */
67
+ approve(grant: string, options?: {
68
+ states?: readonly string[];
69
+ }): string;
53
70
  /** Freeze a signed disclosee query over the missing accepted public suffix. */
54
- start(grant: string): Uint8Array;
71
+ start(grant: string, options?: {
72
+ states?: readonly string[];
73
+ }): Uint8Array;
55
74
  /**
56
75
  * Re-sign this disclosee's started individual query for delivery now.
57
76
  *
@@ -73,6 +92,12 @@ export declare class Unblind implements AuxiliaryQueryProcessor {
73
92
  processQuery(envelope: KeriDispatchEnvelope): {
74
93
  kind: "accept";
75
94
  } | MessageDropDecision;
95
+ /**
96
+ * Take up the requests this identifier owes a reply to after its owner was lost: each persisted request is
97
+ * processed again as when first accepted, and one that no longer holds (the Grant ended, its evidence changed)
98
+ * is dropped. Done once per owner, before the first look at what is owed.
99
+ */
100
+ private restoreHeld;
76
101
  /** Schedule responder work only after the selected live operation authenticates its peer query. */
77
102
  hasPeerQuery(xid: string): boolean;
78
103
  /** Retry a previously authenticated request locally when held proofs become available. */
@@ -106,18 +131,32 @@ export declare class Unblind implements AuxiliaryQueryProcessor {
106
131
  finish(xid: string): Operation<ExchangeDecision>;
107
132
  /** Discard approved work and unsent replies; delivered bytes remain caller-owned. */
108
133
  abandon(xid: string): void;
134
+ /** Drop an operation's process-local approval, messages and openings; a persisted request stays. */
135
+ private forget;
109
136
  /** Select the exact missing public suffix without signing or changing registry state. */
110
137
  private request;
138
+ /**
139
+ * Whether this local habitat is the party of Unblind transaction `xid` with `sender`.
140
+ *
141
+ * Messages carry no recipient, so a per-identifier registry selects the owner by transaction:
142
+ * an approved operation here, a stored Grant from this habitat addressed to `sender`, or, for a
143
+ * group, its own members' contributions, which KRAM must pool before this owner consents.
144
+ */
145
+ inTransaction(sender: string, xid: string): boolean;
146
+ /** Recipients of the Grants `pre` sent in transaction `xid`, from KRAM-accepted store rows. */
147
+ static recipients(db: Baser, pre: string, xid: string): string[];
111
148
  /** Release all process-local approvals, opening references and retry bytes without changing stores. */
112
149
  close(): void;
113
- /** Hold one authenticated public suffix for explicit release consent; never import events here. */
114
- private retainQuery;
115
- /** Expired evidence cannot survive another owner interaction. */
116
- private pruneQueries;
117
- /** Consume the first authenticated request only after explicit approval; never renew either clock. */
118
- private replayQuery;
119
- /** Bound process-local public evidence by the original query and accepted Grant lifetimes. */
120
- private retainUntil;
150
+ /** The one live Grant this identifier sent to `recipient` in exchange `xid`, from KRAM-accepted store rows. */
151
+ private sentGrant;
152
+ /**
153
+ * Individual discloser operations whose authenticated peer query is waiting for a delivered reply.
154
+ * Hosts adopt these to deliver the reply; a group discloser's replies need member contributions instead.
155
+ */
156
+ awaitingReply(): {
157
+ xid: string;
158
+ grant: string;
159
+ }[];
121
160
  private operation;
122
161
  private live;
123
162
  private current;
@@ -1 +1 @@
1
- {"version":3,"file":"unblinding.d.ts","sourceRoot":"","sources":["../../src/acdc/unblinding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unblinding.d.ts","sourceRoot":"","sources":["../../src/acdc/unblinding.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { type Operation } from "effection";
2
2
  import type { Baser } from "../../db/basing.js";
3
3
  import type { Habery } from "../identity/habbing.js";
4
+ import { type DoerPacing } from "../runtime/doing.js";
5
+ import { type RuntimeClock } from "../runtime/runtime-clock.js";
4
6
  import type { HttpClient } from "../transport/http-client.js";
5
7
  /**
6
8
  * Return true when a well-known URL has been authorized into `wkas.`.
@@ -38,7 +40,7 @@ export declare class Authenticator {
38
40
  /** Process one bounded auth step if queued well-known work exists. */
39
41
  processOnce(): Operation<void>;
40
42
  /** Continuous auth doer for long-lived runtime hosts. */
41
- authDo(): Operation<never>;
43
+ authDo(clock?: RuntimeClock, pacing?: Readonly<DoerPacing>): Operation<never>;
42
44
  /** Promote one eligible `woobi.` record into the fetchable `mfa.` queue. */
43
45
  private promoteQueuedWellKnown;
44
46
  /** Return the next pending `mfa.` auth record, if any. */
@@ -1 +1 @@
1
- {"version":3,"file":"authenticating.d.ts","sourceRoot":"","sources":["../../../src/app/bootstrap/authenticating.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAU,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG9D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,KAAK,EACT,GAAG,EAAE,MAAM,GACV,OAAO,CAMT;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAa;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAKzC,sEAAsE;IACrE,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC;IAe/B,yDAAyD;IACxD,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC;IAO3B,4EAA4E;IAC5E,OAAO,CAAC,sBAAsB;IAsC9B,0DAA0D;IAC1D,OAAO,CAAC,eAAe;IAYvB;;;;;OAKG;IACH,OAAO,CAAE,kBAAkB;CAgC5B"}
1
+ {"version":3,"file":"authenticating.d.ts","sourceRoot":"","sources":["../../../src/app/bootstrap/authenticating.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAU,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,KAAK,UAAU,EAA4B,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,6BAA6B,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG9D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,KAAK,EACT,GAAG,EAAE,MAAM,GACV,OAAO,CAMT;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAa;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAKzC,sEAAsE;IACrE,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC;IAe/B,yDAAyD;IACxD,MAAM,CAAC,KAAK,GAAE,YAA0B,EAAE,MAAM,GAAE,QAAQ,CAAC,UAAU,CAAmB,GAAG,SAAS,CAAC,KAAK,CAAC;IAI5G,4EAA4E;IAC5E,OAAO,CAAC,sBAAsB;IAsC9B,0DAA0D;IAC1D,OAAO,CAAC,eAAe;IAYvB;;;;;OAKG;IACH,OAAO,CAAE,kBAAkB;CAgC5B"}