keri-ts 2.2.4 → 2.2.6

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 (256) hide show
  1. package/esm/keri/npm/src/_dnt.polyfills.js +14 -14
  2. package/esm/keri/npm/src/acdc/dhking.js +29 -2
  3. package/esm/keri/npm/src/acdc/observing.js +10 -3
  4. package/esm/keri/npm/src/acdc/query-resend.js +74 -0
  5. package/esm/keri/npm/src/acdc/regengine.js +39 -9
  6. package/esm/keri/npm/src/acdc/regeventing.js +5 -3
  7. package/esm/keri/npm/src/acdc/registering.js +19 -0
  8. package/esm/keri/npm/src/acdc/salting.js +4 -0
  9. package/esm/keri/npm/src/acdc/unblinding.js +38 -3
  10. package/esm/keri/npm/src/app/bootstrap/authenticating.js +32 -10
  11. package/esm/keri/npm/src/app/bootstrap/oobiery.js +363 -30
  12. package/esm/keri/npm/src/app/credentials/credential-importing.js +33 -4
  13. package/esm/keri/npm/src/app/credentials/root-replicator.js +27 -15
  14. package/esm/keri/npm/src/app/credentials/schema-resolving.js +5 -1
  15. package/esm/keri/npm/src/app/credentials/tel-publishing.js +16 -7
  16. package/esm/keri/npm/src/app/delivery/forwarding.js +205 -44
  17. package/esm/keri/npm/src/app/delivery/relaying.js +232 -0
  18. package/esm/keri/npm/src/app/delivery/respondant.js +8 -5
  19. package/esm/keri/npm/src/app/exchanges/exchange-messaging.js +1 -1
  20. package/esm/keri/npm/src/app/exchanges/exchanging.js +65 -9
  21. package/esm/keri/npm/src/app/identity/delegating.js +66 -9
  22. package/esm/keri/npm/src/app/identity/habbing.js +190 -71
  23. package/esm/keri/npm/src/app/identity/keeping.js +111 -39
  24. package/esm/keri/npm/src/app/identity/retire-identifier.js +98 -0
  25. package/esm/keri/npm/src/app/ipex/disclosure-replaying.js +116 -0
  26. package/esm/keri/npm/src/app/ipex/group-ipex.js +122 -25
  27. package/esm/keri/npm/src/app/ipex/group-issuance.js +137 -37
  28. package/esm/keri/npm/src/app/ipex/ipex-discloser.js +94 -31
  29. package/esm/keri/npm/src/app/ipex/ipex-grouping.js +53 -3
  30. package/esm/keri/npm/src/app/ipex/ipex-v2.js +7 -2
  31. package/esm/keri/npm/src/app/ipex/issuance.js +147 -44
  32. package/esm/keri/npm/src/app/ipex/pending-presentations.js +4 -2
  33. package/esm/keri/npm/src/app/ipex/presenting.js +3 -18
  34. package/esm/keri/npm/src/app/ipex/receive-issuance.js +2 -1
  35. package/esm/keri/npm/src/app/ipex/unblinding-workflow.js +39 -11
  36. package/esm/keri/npm/src/app/mailbox/agent-inbox.js +292 -0
  37. package/esm/keri/npm/src/app/mailbox/forward-handler.js +298 -52
  38. package/esm/keri/npm/src/app/mailbox/kel-publisher.js +26 -31
  39. package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +70 -62
  40. package/esm/keri/npm/src/app/mailbox/mailboxing.js +20 -4
  41. package/esm/keri/npm/src/app/multisig/counseling.js +71 -27
  42. package/esm/keri/npm/src/app/multisig/group-members.js +41 -5
  43. package/esm/keri/npm/src/app/multisig/grouping.js +50 -2
  44. package/esm/keri/npm/src/app/multisig/multisig-workflows.js +3 -18
  45. package/esm/keri/npm/src/app/multisig/proposing.js +1 -16
  46. package/esm/keri/npm/src/app/multisig/rejoin-group.js +99 -0
  47. package/esm/keri/npm/src/app/multisig/replace-member.js +29 -8
  48. package/esm/keri/npm/src/app/protocol/parsering.js +45 -17
  49. package/esm/keri/npm/src/app/protocol/protocol-processing.js +47 -21
  50. package/esm/keri/npm/src/app/queries/query-replies.js +0 -22
  51. package/esm/keri/npm/src/app/queries/relay-refresh.js +81 -0
  52. package/esm/keri/npm/src/app/queries/witness-inquisitor.js +180 -34
  53. package/esm/keri/npm/src/app/runtime/agent-runtime.js +42 -73
  54. package/esm/keri/npm/src/app/runtime/cue-runtime.js +45 -5
  55. package/esm/keri/npm/src/app/runtime/ipex-auxiliaries.js +8 -1
  56. package/esm/keri/npm/src/app/runtime/operation-owners.js +26 -56
  57. package/esm/keri/npm/src/app/runtime/workflow-contract.js +7 -4
  58. package/esm/keri/npm/src/app/transport/http-client.js +20 -2
  59. package/esm/keri/npm/src/app/transport/message-source.js +2 -1
  60. package/esm/keri/npm/src/app/transport/messengering.js +39 -8
  61. package/esm/keri/npm/src/app/witness/ingress.js +7 -0
  62. package/esm/keri/npm/src/app/witness/receipt-client.js +43 -16
  63. package/esm/keri/npm/src/app/witness/receipting.js +62 -20
  64. package/esm/keri/npm/src/cli/messaging/multisig.js +4 -3
  65. package/esm/keri/npm/src/core/errors.js +73 -0
  66. package/esm/keri/npm/src/core/kel/delegation-ancestry.js +11 -2
  67. package/esm/keri/npm/src/core/kel/eventing.js +25 -28
  68. package/esm/keri/npm/src/core/kel/kever.js +15 -9
  69. package/esm/keri/npm/src/core/mailbox/kram-policy.js +16 -0
  70. package/esm/keri/npm/src/core/mailbox/kram-pruning.js +25 -6
  71. package/esm/keri/npm/src/core/mailbox/kram-time.js +34 -6
  72. package/esm/keri/npm/src/core/mailbox/kraming.js +58 -2
  73. package/esm/keri/npm/src/core/missing-anchor-query.js +20 -0
  74. package/esm/keri/npm/src/core/routing.js +18 -25
  75. package/esm/keri/npm/src/core/scheming.js +12 -5
  76. package/esm/keri/npm/src/core/wire-fields.js +126 -0
  77. package/esm/keri/npm/src/db/basing.js +4 -13
  78. package/esm/keri/npm/src/db/core/indexeddb-persistence.js +3 -2
  79. package/esm/keri/npm/src/db/core/webdber.js +85 -27
  80. package/esm/keri/npm/src/db/mailbox/mailboxing.js +13 -0
  81. package/esm/keri/npm/src/db/subing.js +4 -0
  82. package/esm/keri/npm/src/runtime/index.js +11 -5
  83. package/esm/keri/npm/src/time/mod.js +5 -0
  84. package/esm/keri/npm/src/vdr/credential-tsn-record.js +2 -7
  85. package/esm/keri/npm/src/vdr/eventing.js +71 -28
  86. package/esm/keri/npm/src/vdr/registry-tsn-record.js +3 -13
  87. package/esm/keri/npm/src/version.js +2 -2
  88. package/package.json +1 -1
  89. package/types/_dnt.polyfills.d.ts +9 -9
  90. package/types/_dnt.polyfills.d.ts.map +1 -1
  91. package/types/acdc/dhking.d.ts +8 -0
  92. package/types/acdc/dhking.d.ts.map +1 -1
  93. package/types/acdc/observing.d.ts +5 -1
  94. package/types/acdc/observing.d.ts.map +1 -1
  95. package/types/acdc/query-resend.d.ts +24 -0
  96. package/types/acdc/query-resend.d.ts.map +1 -0
  97. package/types/acdc/regengine.d.ts +19 -1
  98. package/types/acdc/regengine.d.ts.map +1 -1
  99. package/types/acdc/regeventing.d.ts.map +1 -1
  100. package/types/acdc/registering.d.ts +6 -0
  101. package/types/acdc/registering.d.ts.map +1 -1
  102. package/types/acdc/salting.d.ts.map +1 -1
  103. package/types/acdc/unblinding.d.ts +13 -1
  104. package/types/acdc/unblinding.d.ts.map +1 -1
  105. package/types/app/bootstrap/authenticating.d.ts +12 -2
  106. package/types/app/bootstrap/authenticating.d.ts.map +1 -1
  107. package/types/app/bootstrap/oobiery.d.ts +144 -7
  108. package/types/app/bootstrap/oobiery.d.ts.map +1 -1
  109. package/types/app/credentials/credential-importing.d.ts +8 -0
  110. package/types/app/credentials/credential-importing.d.ts.map +1 -1
  111. package/types/app/credentials/root-replicator.d.ts +19 -8
  112. package/types/app/credentials/root-replicator.d.ts.map +1 -1
  113. package/types/app/credentials/schema-resolving.d.ts.map +1 -1
  114. package/types/app/credentials/tel-publishing.d.ts +4 -2
  115. package/types/app/credentials/tel-publishing.d.ts.map +1 -1
  116. package/types/app/delivery/forwarding.d.ts +90 -5
  117. package/types/app/delivery/forwarding.d.ts.map +1 -1
  118. package/types/app/delivery/relaying.d.ts +144 -0
  119. package/types/app/delivery/relaying.d.ts.map +1 -0
  120. package/types/app/delivery/respondant.d.ts +9 -2
  121. package/types/app/delivery/respondant.d.ts.map +1 -1
  122. package/types/app/exchanges/exchanging.d.ts +36 -0
  123. package/types/app/exchanges/exchanging.d.ts.map +1 -1
  124. package/types/app/identity/delegating.d.ts +6 -0
  125. package/types/app/identity/delegating.d.ts.map +1 -1
  126. package/types/app/identity/habbing.d.ts +106 -19
  127. package/types/app/identity/habbing.d.ts.map +1 -1
  128. package/types/app/identity/keeping.d.ts +54 -19
  129. package/types/app/identity/keeping.d.ts.map +1 -1
  130. package/types/app/identity/retire-identifier.d.ts +24 -0
  131. package/types/app/identity/retire-identifier.d.ts.map +1 -0
  132. package/types/app/ipex/disclosure-replaying.d.ts +61 -0
  133. package/types/app/ipex/disclosure-replaying.d.ts.map +1 -0
  134. package/types/app/ipex/group-ipex.d.ts +60 -14
  135. package/types/app/ipex/group-ipex.d.ts.map +1 -1
  136. package/types/app/ipex/group-issuance.d.ts +54 -8
  137. package/types/app/ipex/group-issuance.d.ts.map +1 -1
  138. package/types/app/ipex/ipex-discloser.d.ts +39 -2
  139. package/types/app/ipex/ipex-discloser.d.ts.map +1 -1
  140. package/types/app/ipex/ipex-grouping.d.ts +23 -2
  141. package/types/app/ipex/ipex-grouping.d.ts.map +1 -1
  142. package/types/app/ipex/ipex-v2.d.ts +5 -2
  143. package/types/app/ipex/ipex-v2.d.ts.map +1 -1
  144. package/types/app/ipex/issuance.d.ts +46 -16
  145. package/types/app/ipex/issuance.d.ts.map +1 -1
  146. package/types/app/ipex/pending-presentations.d.ts +4 -2
  147. package/types/app/ipex/pending-presentations.d.ts.map +1 -1
  148. package/types/app/ipex/presenting.d.ts.map +1 -1
  149. package/types/app/ipex/receive-issuance.d.ts +2 -1
  150. package/types/app/ipex/receive-issuance.d.ts.map +1 -1
  151. package/types/app/ipex/unblinding-workflow.d.ts +13 -2
  152. package/types/app/ipex/unblinding-workflow.d.ts.map +1 -1
  153. package/types/app/mailbox/agent-inbox.d.ts +126 -0
  154. package/types/app/mailbox/agent-inbox.d.ts.map +1 -0
  155. package/types/app/mailbox/forward-handler.d.ts +114 -14
  156. package/types/app/mailbox/forward-handler.d.ts.map +1 -1
  157. package/types/app/mailbox/kel-publisher.d.ts +12 -22
  158. package/types/app/mailbox/kel-publisher.d.ts.map +1 -1
  159. package/types/app/mailbox/mailbox-poller.d.ts +40 -24
  160. package/types/app/mailbox/mailbox-poller.d.ts.map +1 -1
  161. package/types/app/mailbox/mailboxing.d.ts +19 -5
  162. package/types/app/mailbox/mailboxing.d.ts.map +1 -1
  163. package/types/app/multisig/counseling.d.ts +32 -11
  164. package/types/app/multisig/counseling.d.ts.map +1 -1
  165. package/types/app/multisig/group-members.d.ts +17 -1
  166. package/types/app/multisig/group-members.d.ts.map +1 -1
  167. package/types/app/multisig/grouping.d.ts +17 -1
  168. package/types/app/multisig/grouping.d.ts.map +1 -1
  169. package/types/app/multisig/multisig-workflows.d.ts +0 -8
  170. package/types/app/multisig/multisig-workflows.d.ts.map +1 -1
  171. package/types/app/multisig/proposing.d.ts +4 -19
  172. package/types/app/multisig/proposing.d.ts.map +1 -1
  173. package/types/app/multisig/rejoin-group.d.ts +119 -0
  174. package/types/app/multisig/rejoin-group.d.ts.map +1 -0
  175. package/types/app/multisig/replace-member.d.ts +15 -1
  176. package/types/app/multisig/replace-member.d.ts.map +1 -1
  177. package/types/app/protocol/parsering.d.ts +21 -2
  178. package/types/app/protocol/parsering.d.ts.map +1 -1
  179. package/types/app/protocol/protocol-processing.d.ts +25 -5
  180. package/types/app/protocol/protocol-processing.d.ts.map +1 -1
  181. package/types/app/queries/query-replies.d.ts +4 -8
  182. package/types/app/queries/query-replies.d.ts.map +1 -1
  183. package/types/app/queries/relay-refresh.d.ts +26 -0
  184. package/types/app/queries/relay-refresh.d.ts.map +1 -0
  185. package/types/app/queries/witness-inquisitor.d.ts +56 -5
  186. package/types/app/queries/witness-inquisitor.d.ts.map +1 -1
  187. package/types/app/runtime/agent-runtime.d.ts +34 -3
  188. package/types/app/runtime/agent-runtime.d.ts.map +1 -1
  189. package/types/app/runtime/cue-runtime.d.ts +15 -3
  190. package/types/app/runtime/cue-runtime.d.ts.map +1 -1
  191. package/types/app/runtime/ipex-auxiliaries.d.ts.map +1 -1
  192. package/types/app/runtime/operation-owners.d.ts +16 -26
  193. package/types/app/runtime/operation-owners.d.ts.map +1 -1
  194. package/types/app/runtime/workflow-contract.d.ts +21 -6
  195. package/types/app/runtime/workflow-contract.d.ts.map +1 -1
  196. package/types/app/transport/http-client.d.ts +9 -0
  197. package/types/app/transport/http-client.d.ts.map +1 -1
  198. package/types/app/transport/message-source.d.ts +6 -3
  199. package/types/app/transport/message-source.d.ts.map +1 -1
  200. package/types/app/transport/messengering.d.ts +10 -1
  201. package/types/app/transport/messengering.d.ts.map +1 -1
  202. package/types/app/witness/ingress.d.ts +1 -0
  203. package/types/app/witness/ingress.d.ts.map +1 -1
  204. package/types/app/witness/receipt-client.d.ts +19 -1
  205. package/types/app/witness/receipt-client.d.ts.map +1 -1
  206. package/types/app/witness/receipting.d.ts +24 -1
  207. package/types/app/witness/receipting.d.ts.map +1 -1
  208. package/types/cli/messaging/multisig.d.ts.map +1 -1
  209. package/types/core/cues.d.ts +53 -1
  210. package/types/core/cues.d.ts.map +1 -1
  211. package/types/core/errors.d.ts +32 -0
  212. package/types/core/errors.d.ts.map +1 -1
  213. package/types/core/kel/delegation-ancestry.d.ts.map +1 -1
  214. package/types/core/kel/eventing.d.ts.map +1 -1
  215. package/types/core/kel/kever-decisions.d.ts +3 -1
  216. package/types/core/kel/kever-decisions.d.ts.map +1 -1
  217. package/types/core/kel/kever.d.ts +7 -1
  218. package/types/core/kel/kever.d.ts.map +1 -1
  219. package/types/core/mailbox/kram-policy.d.ts +12 -0
  220. package/types/core/mailbox/kram-policy.d.ts.map +1 -1
  221. package/types/core/mailbox/kram-pruning.d.ts +5 -1
  222. package/types/core/mailbox/kram-pruning.d.ts.map +1 -1
  223. package/types/core/mailbox/kram-time.d.ts +26 -2
  224. package/types/core/mailbox/kram-time.d.ts.map +1 -1
  225. package/types/core/mailbox/kraming.d.ts +14 -1
  226. package/types/core/mailbox/kraming.d.ts.map +1 -1
  227. package/types/core/missing-anchor-query.d.ts +34 -0
  228. package/types/core/missing-anchor-query.d.ts.map +1 -0
  229. package/types/core/routing.d.ts +3 -7
  230. package/types/core/routing.d.ts.map +1 -1
  231. package/types/core/scheming.d.ts.map +1 -1
  232. package/types/core/wire-fields.d.ts +56 -0
  233. package/types/core/wire-fields.d.ts.map +1 -0
  234. package/types/db/basing.d.ts.map +1 -1
  235. package/types/db/core/indexeddb-persistence.d.ts +3 -2
  236. package/types/db/core/indexeddb-persistence.d.ts.map +1 -1
  237. package/types/db/core/webdber.d.ts +32 -6
  238. package/types/db/core/webdber.d.ts.map +1 -1
  239. package/types/db/exchange/exchange-records.d.ts +4 -0
  240. package/types/db/exchange/exchange-records.d.ts.map +1 -1
  241. package/types/db/mailbox/mailboxing.d.ts +10 -1
  242. package/types/db/mailbox/mailboxing.d.ts.map +1 -1
  243. package/types/db/subing.d.ts +2 -0
  244. package/types/db/subing.d.ts.map +1 -1
  245. package/types/runtime/index.d.ts +20 -14
  246. package/types/runtime/index.d.ts.map +1 -1
  247. package/types/time/mod.d.ts +2 -0
  248. package/types/time/mod.d.ts.map +1 -1
  249. package/types/vdr/credential-tsn-record.d.ts.map +1 -1
  250. package/types/vdr/eventing.d.ts +32 -1
  251. package/types/vdr/eventing.d.ts.map +1 -1
  252. package/types/vdr/registry-tsn-record.d.ts.map +1 -1
  253. package/types/version.d.ts +2 -2
  254. package/esm/keri/npm/src/app/runtime/signer-conditions.js +0 -51
  255. package/types/app/runtime/signer-conditions.d.ts +0 -32
  256. package/types/app/runtime/signer-conditions.d.ts.map +0 -1
@@ -201,10 +201,17 @@ export declare class Creatory {
201
201
  tier?: Tier;
202
202
  }): Creator;
203
203
  }
204
+ /** What `Manager.forget` removed for one retired prefix. */
205
+ export interface ForgottenKeys {
206
+ /** Private keys deleted from the Keeper's `pris.`; 0 for a keyless habitat. */
207
+ deleted: number;
208
+ /** Current public keys whose held signers were dropped; empty for keys the Keeper stored. */
209
+ released: string[];
210
+ }
204
211
  /**
205
- * No private key for `pub`: neither held (`Manager.hold`) nor stored in the Keeper. A custodial host releases
206
- * its signers on purpose, so a background loop that needs one treats this as a condition to wait out, not as a
207
- * failure of the runtime. The message is the one the Keeper has always used.
212
+ * No private key for `pub`: neither held (`Manager.hold`) nor stored in the Keeper. A background loop reads
213
+ * `Hab.canSign()` before it signs and skips a habitat that cannot, so this error escaping a loop is a real fault.
214
+ * The message is the one the Keeper has always used.
208
215
  */
209
216
  export declare class SignerNotHeldError extends Error {
210
217
  /** The qualified public key whose private key is missing. */
@@ -243,8 +250,6 @@ export declare class Manager {
243
250
  * Never written to the Keeper and never consulted by `Keeper` rows.
244
251
  */
245
252
  private readonly held;
246
- /** Told after `hold()` borrows signers; a loop that waited for a missing signer resumes on it. */
247
- private readonly holdListeners;
248
253
  constructor(args: ManagerArgs);
249
254
  get ks(): Keeper;
250
255
  /** Process-local AEID/authentication seed kept only in memory, never persisted in keeper state. */
@@ -318,7 +323,7 @@ export declare class Manager {
318
323
  * readonly and borrowed-writer changes are refused
319
324
  */
320
325
  updateAeid(aeid: string, seed: string): void;
321
- /** Require full canonical keys; local ownership is the calling operation's responsibility. */
326
+ /** Require full canonical keys for a write; local ownership is the calling operation's responsibility. */
322
327
  private registryRootKeys;
323
328
  /** Authenticate live policy as well as process-local crypto, refusing stale managers. */
324
329
  private registryRootCrypto;
@@ -332,7 +337,10 @@ export declare class Manager {
332
337
  * for its registry) may set it.
333
338
  */
334
339
  putRegistryRoot(aid: string, regid: string, root: Salter, overwrite?: boolean): boolean;
335
- /** Whether a root is retained for `aid` and `regid`; reads no ciphertext and needs no unlocked Keeper. */
340
+ /**
341
+ * Whether a root is retained for `aid` and `regid`; reads no ciphertext and needs no unlocked Keeper. False for
342
+ * a key that is not canonical, since no root is stored under one (see `canonicalRegistryRootKeys`).
343
+ */
336
344
  hasRegistryRoot(aid: string, regid: string): boolean;
337
345
  private signerDecrypter;
338
346
  /**
@@ -353,7 +361,8 @@ export declare class Manager {
353
361
  * and hold that encoding. A request for the other encoding does not match.
354
362
  * - The host owns each `Signer` and its seed bytes, including zeroing them.
355
363
  * This keeps the reference only; it never copies seed bytes and never
356
- * erases them. Dropping a reference with `release()` does not zero memory.
364
+ * erases them. Retiring the habitat (`forget()`) drops the reference but
365
+ * does not zero memory.
357
366
  * - Holding a pub that is already held replaces the earlier signer. A held
358
367
  * signer shadows a stored key with the same public key.
359
368
  * - The `pre/path` branch of `sign()` re-derives salty keys from the stored
@@ -363,19 +372,13 @@ export declare class Manager {
363
372
  */
364
373
  hold(signers: readonly Signer[]): void;
365
374
  /**
366
- * Be told after each `hold()`, so a background loop whose signer was released can resume at once.
375
+ * Whether this Manager can sign with `pub` now: a signer is held for it, or the Keeper stores its private key.
376
+ * A pure read; it neither decrypts nor signs.
367
377
  *
368
- * @returns A function that stops the notifications.
378
+ * A store may be opened without a habitat's signer (a keyless habitat before its host calls `hold()`), so this
379
+ * is ordinary state: background loops read it before they sign and skip what cannot be signed yet.
369
380
  */
370
- onHold(listener: () => void): () => void;
371
- /**
372
- * Drop held signer references: all of them, or only those for `pubs`.
373
- *
374
- * Unheld pubs are ignored. Afterwards a request for a released key resolves
375
- * from stored keys only and fails as any missing key does. This drops
376
- * references; zeroing a signer's seed stays the host's job.
377
- */
378
- release(pubs?: readonly string[]): void;
381
+ hasSigner(pub: string): boolean;
379
382
  /** Resolve one signer by qualified public key: held first, then the Keeper's `pris.`. */
380
383
  private getSignerByPub;
381
384
  /** Resolve signers from either explicit public-key text or hydrated verifiers. */
@@ -452,6 +455,38 @@ export declare class Manager {
452
455
  * state update succeeds
453
456
  */
454
457
  rotate(args: ManagerRotateArgs): [Verfer[], Diger[]];
458
+ /**
459
+ * Delete the stored key rows of one managed prefix, in one Keeper transaction.
460
+ *
461
+ * Removed rows:
462
+ * - `prms.` and `sits.` for `pre`
463
+ * - every `pubs.` lot stored under `pre` or under an inception alias that
464
+ * `move()` bound to it (the first current public key of a self-addressing prefix)
465
+ * - `pris.` for every public key named by those lots or by the situation
466
+ *
467
+ * Kept: every `pres.` row that resolves to `pre`. They are the one-way marker:
468
+ * `incept()` refuses any later inception whose first key is one of them, so
469
+ * the same name, namespace and salt cannot derive these keys again under a
470
+ * new or the same prefix.
471
+ *
472
+ * Limit: this deletes stored rows, not the secret's derivability. For a
473
+ * rooted salty prefix the seeds stay derivable from the Keeper-global salt
474
+ * and the habitat's derivation stem (its namespace and name).
475
+ *
476
+ * A prefix with no key rows, such as a keyless habitat whose signers are held
477
+ * externally (`hold()`) or one already forgotten, has no stored keys to delete.
478
+ * Held signers for `current` (the prefix's current public keys, which a keyless
479
+ * habitat has no Keeper row for) are dropped as well; zeroing their seeds stays
480
+ * the host's job. There is no other way to drop a held signer: a store's signers
481
+ * only ever grow until it closes.
482
+ *
483
+ * No KERIpy counterpart: `Habery.deleteHab` keeps all of the Keeper's state.
484
+ *
485
+ * @param pre Prefix to forget.
486
+ * @param current The prefix's current public keys, whose held signers are dropped.
487
+ * @returns What was deleted and dropped.
488
+ */
489
+ forget(pre: string, current: readonly string[]): ForgottenKeys;
455
490
  /**
456
491
  * Sign through either explicit stored signers (`pubs` / `verfers`) or one
457
492
  * managed keeper prefix (`pre` plus optional key-list path metadata).
@@ -1 +1 @@
1
- {"version":3,"file":"keeping.d.ts","sourceRoot":"","sources":["../../../src/app/identity/keeping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keeping.d.ts","sourceRoot":"","sources":["../../../src/app/identity/keeping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { AgentRuntime } from "../runtime/agent-runtime.js";
2
+ /** What {@link retireIdentifier} did. */
3
+ export interface RetiredIdentifier {
4
+ pre: string;
5
+ /** The local name the identifier had. */
6
+ name: string;
7
+ /** Current public keys whose held signers retirement dropped; empty for keys the Keeper stored. */
8
+ released: string[];
9
+ /** Mailbox (and witness) endpoints whose poll workers stop. */
10
+ mailboxes: string[];
11
+ }
12
+ /**
13
+ * Why `runtime` would refuse to retire `pre`, or null when {@link retireIdentifier} would retire it. A pure read;
14
+ * the first refusal found is returned, `retireHab`'s own first.
15
+ */
16
+ export declare function retireIdentifierRefusal(runtime: AgentRuntime, pre: string): string | null;
17
+ /**
18
+ * Retire `pre`: `Habery.retireHab` (which drops its held signers), then delete its mailbox cursors and KEL
19
+ * publisher rows, and prompt the mailbox poller and KEL publisher. Makes no event and signs nothing.
20
+ *
21
+ * @throws ValidationError with {@link retireIdentifierRefusal}'s reason, before any write.
22
+ */
23
+ export declare function retireIdentifier(runtime: AgentRuntime, pre: string): RetiredIdentifier;
24
+ //# sourceMappingURL=retire-identifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retire-identifier.d.ts","sourceRoot":"","sources":["../../../src/app/identity/retire-identifier.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,mGAAmG;IACnG,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyBzF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAgBtF"}
@@ -0,0 +1,61 @@
1
+ import { type Operation } from "effection";
2
+ import type { Exchanger } from "../exchanges/exchanging.js";
3
+ import type { Hab, Habery } from "../identity/habbing.js";
4
+ import type { IpexDiscloser } from "./ipex-discloser.js";
5
+ /** Which side of a disclosure the group is on. */
6
+ export type DisclosureRole = "issuer" | "holder";
7
+ /** One accepted v2 Grant of a credential and the accepted Admit that answered it. */
8
+ export interface GroupDisclosure {
9
+ /** SAID of the accepted `/ipex/grant`. */
10
+ grant: string;
11
+ /** SAID of the accepted `/ipex/admit` whose prior is the Grant. */
12
+ admit: string;
13
+ /** SAID of the Grant's single disclosed origin credential. */
14
+ credential: string;
15
+ /** Registry the origin credential names, or null for a registry-less credential. */
16
+ registry: string | null;
17
+ role: DisclosureRole;
18
+ }
19
+ /**
20
+ * The group's completed credential disclosures, in `erpy.` key order (by Grant SAID). Scans `erpy.` (one row per
21
+ * accepted exchange that answered a prior) and reads the named Grant, Admit and Grant nests; nothing else.
22
+ *
23
+ * - `holder`: the group is the Grant's recipient and its Admit is accepted, whoever sent the Grant. This is what a
24
+ * wallet records as admitted.
25
+ * - `issuer`: the group sent the Grant and is the origin credential's issuer, and the recipient's Admit is accepted.
26
+ * A Grant in which the group re-presents a credential it holds is not listed; that credential is listed as held.
27
+ *
28
+ * Neither role needs the local member to sign or to carry weight, so a weight-0 member lists the same rows as its
29
+ * co-members once it has accepted the Admit. Listing does not reauthenticate stored proofs;
30
+ * {@link exportDisclosureStream} does. Each Grant carries its whole credential graph, so the rows are independent
31
+ * and need no order between them.
32
+ */
33
+ export declare function listGroupDisclosures(hby: Habery, exc: Exchanger, group: string): GroupDisclosure[];
34
+ /**
35
+ * One dependency-ordered CESR stream for a completed disclosure, which a receiver with an empty store can process
36
+ * front to back:
37
+ *
38
+ * 1. KELs, each after its delegation ancestry, with the stored signatures, witness receipts and first-seen replay
39
+ * attachments, of `hab`, the Grant's sender, the Admit's sender and every identifier the carried ACDC nodes name
40
+ * (issuers, issuees, source-seal prefixes);
41
+ * 2. the accepted TEL (`rip`, `bup`, with any retained public opening) of every registry those nodes name;
42
+ * 3. the Grant, as accepted, with its nests: the credential and every disclosed far node of its graph (a chained
43
+ * credential's dependencies travel inside it, before nothing that cites them);
44
+ * 4. the Admit, as accepted.
45
+ *
46
+ * Not in the stream: schemas (JSON Schema documents are not CESR; the receiver must hold or fetch them), the
47
+ * registry root and any other private registry state (a group root travels only as a `/registry/root` copy), the
48
+ * group's habitat record and its members' KELs beyond those named above, OOBI and end-role replies, KRAM cache
49
+ * rows, `/multisig/*` workflow wrappers and wallet inventory rows.
50
+ *
51
+ * Everything is re-encoded from stored, accepted evidence: `Exchanger.replay` revalidates each exchange's retained
52
+ * proofs, and nothing is signed, so `hab` needs no usable signing key; a weight-0 member, or one whose signer the
53
+ * host does not hold, exports the same stream. `hab` only adds its own KEL. A Grant that is not a completed
54
+ * disclosure (see {@link listGroupDisclosures}) is refused with a `ValidationError`. A host passes the runtime's
55
+ * own discloser, `runtime.operations.issuance.discloser`.
56
+ *
57
+ * The exchanges keep their original timestamps, so once their KRAM windows have passed, ordinary network intake
58
+ * with KRAM enabled refuses them as replays; accepting them on import is the importer's concern, not this read's.
59
+ */
60
+ export declare function exportDisclosureStream(discloser: IpexDiscloser, hab: Hab, grant: string): Operation<Uint8Array>;
61
+ //# sourceMappingURL=disclosure-replaying.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disclosure-replaying.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/disclosure-replaying.ts"],"names":[],"mappings":"AAcA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,kDAAkD;AAClD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;CACtB;AAkCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,CAelG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAiB,sBAAsB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAgBhH"}
@@ -13,16 +13,21 @@
13
13
  * a member that is briefly offline), collects the other members' stored contributions, and, once the message is
14
14
  * accepted, lets the elected lead send the completed message to its recipient. It signs nothing beyond the
15
15
  * contribution that the consent recorded.
16
+ * - A member that did not sign a message the others' signatures complete (a weight-0 member, say) takes it with no
17
+ * call: intake on receipt of a wrapper whose copies carry the group's threshold, or else `processOnce`'s periodic
18
+ * sweep once the exchange the message answers is accepted. That adds no signature, so it is not consent; the
19
+ * member then holds what the group completed and can accept the counterparty's answer in its thread.
16
20
  * - {@link groupIpexStatus} is a pure read and {@link waitForGroupIpex} only observes.
17
21
  *
18
22
  * Status is derived from the protocol stores: an accepted message reads `done`; a stored proposal without a live
19
23
  * operation reads `awaitingConsent` (a member that reloaded consents again with the same call and reuses its
20
24
  * recorded signature). Lost on reload, by design: whether the lead had already delivered the completed message,
21
- * the `failed` and `abandoned` reasons, and the publication results. The runtime never writes wallet inventory; the
25
+ * the `failed`, `expired` and `abandoned` reasons, and the publication results. The runtime never writes wallet inventory; the
22
26
  * embedder reacts to the pushed `{kind: "ipex", id: <message>}` change.
23
27
  */
24
28
  import { type SerderKERI, type Versionage } from "cesr-ts";
25
29
  import type { Operation } from "effection";
30
+ import type { RegistryDisclosure } from "../../acdc/regeventing.js";
26
31
  import type { Regery } from "../../acdc/registraring.js";
27
32
  import { type RegistryEventRef } from "../credentials/registry-settling.js";
28
33
  import type { Poster } from "../delivery/forwarding.js";
@@ -34,12 +39,19 @@ import type { ProtocolProcessor } from "../protocol/protocol-processing.js";
34
39
  import { RetryBackoff } from "../runtime/retry-backoff.js";
35
40
  import type { RuntimeClock } from "../runtime/runtime-clock.js";
36
41
  import { type ChangeSink, type WaitResult } from "../runtime/workflow-contract.js";
42
+ import { type PreparedGrantBody } from "./ipex-discloser.js";
37
43
  /** Milliseconds between collections of the other members' stored contributions. */
38
44
  export declare const GROUP_IPEX_COLLECT_MS = 250;
45
+ /** Milliseconds between sweeps for group messages this member holds completed but has not accepted. */
46
+ export declare const GROUP_IPEX_FOLLOW_MS = 5000;
39
47
  /** How long delivery failures may last before an operation ends `failed`; a group IPEX message has no deadline. */
40
48
  export declare const GROUP_IPEX_RETRY_BOUND_MS = 600000;
41
- /** Terminal states that are not completion; each carries a reason. */
42
- export type GroupIpexEndState = "abandoned" | "failed";
49
+ /**
50
+ * Terminal states that are not completion; each carries a reason. `expired` means this member's own KRAM refused the
51
+ * contribution for its time, thread or exchange lifetime (the reason names the KRAM reason and, when it has one, the
52
+ * deadline); no retry can change that.
53
+ */
54
+ export type GroupIpexEndState = "abandoned" | "expired" | "failed";
43
55
  /** Where an active group IPEX message is. */
44
56
  export type GroupIpexPhase = "awaitingConsent"
45
57
  /** A presentation Grant waits for the group to accept the registry update that carries its proof. */
@@ -70,12 +82,18 @@ export interface GroupIpexDeps {
70
82
  /** Collaborators of a group registry update; a Grant that carries a presentation proof needs them. */
71
83
  readonly registry?: RegistryProposeDeps;
72
84
  }
73
- /** A group registry update an operation waits for before its own message can be signed. */
85
+ /**
86
+ * A presentation Grant waiting for the group to accept the registry update that anchors its proof. Plain data: the
87
+ * owner reads the stores on each pass and, once the update is accepted, attaches the proof and signs this member's
88
+ * contribution itself.
89
+ */
74
90
  export interface GroupIpexPrerequisite {
75
91
  /** The TEL event and the group anchor that seals it. */
76
92
  readonly anchor: RegistryEventRef;
77
- /** Signs this member's contribution to the message once the update is accepted; returns its accepted wire. */
78
- readonly proceed: () => Operation<Uint8Array>;
93
+ /** The frozen unsigned Grant and its selected nodes; only its nested proof is extended once the update is accepted. */
94
+ readonly grant: PreparedGrantBody;
95
+ /** The presented-state opening the update commits to. It blinds the Grant's state, so it is never logged or reported. */
96
+ readonly opening: RegistryDisclosure;
79
97
  }
80
98
  interface LiveGroupIpex {
81
99
  /** SAID of the group-authored IPEX message. */
@@ -139,11 +157,25 @@ export declare class GroupIpexOperations {
139
157
  }>;
140
158
  /** What accepted operations published and delivered in this process; not durable. */
141
159
  readonly outcomes: Map<string, GroupIpexOutcome>;
160
+ /** Messages this member's KRAM refused to take from their copies in this process; a sweep tries them no more. */
161
+ readonly unfollowable: Set<string>;
162
+ /** When the next sweep for completed group messages is due. */
163
+ private nextFollow;
142
164
  constructor(deps: GroupIpexDeps);
143
- /** Whether a pass has work. */
165
+ /** Whether a pass has work: a live operation, or a sweep for completed group messages is due. */
144
166
  active(): boolean;
145
- /** Advance every live operation by one pass. */
167
+ /**
168
+ * Advance every live operation by one pass. Every {@link GROUP_IPEX_FOLLOW_MS} a pass also takes the group messages
169
+ * this member did not sign but holds completed ({@link follow}); that signs and sends nothing.
170
+ */
146
171
  processOnce(): Operation<void>;
172
+ /**
173
+ * Accept each stored group IPEX message whose received copies already carry the group's threshold
174
+ * ({@link groupIpexFollowable}), adding no signature, so this member holds what the group completed without it.
175
+ * Intake takes such a message on receipt; this sweep takes what intake could not yet, such as an answer that arrived
176
+ * before the exchange it answers. A message with a live operation is left to that operation's own collection.
177
+ */
178
+ private follow;
147
179
  /** End a live operation and tell the sink. */
148
180
  end(op: LiveGroupIpex, state: GroupIpexEndState, reason: string): void;
149
181
  /** Record an operation the user consented to. */
@@ -151,6 +183,17 @@ export declare class GroupIpexOperations {
151
183
  private setPhase;
152
184
  /** Run a delivery; a failure keeps the work for a later pass until failures have lasted the bound. */
153
185
  private attempt;
186
+ /**
187
+ * The event that took the awaited update's place, read from state: a different accepted KEL event at the anchor's
188
+ * sequence number, or a different accepted TEL event at the update's. Null while the update can still be accepted;
189
+ * an update the members never approve stays awaited until the user abandons it.
190
+ */
191
+ private supersededBy;
192
+ /**
193
+ * Sign this member's contribution to a presentation Grant whose registry update the group has accepted: attach the
194
+ * proof sealed by the accepted anchor, then contribute. The consent that began the operation covers this signature.
195
+ */
196
+ private signAfterUpdate;
154
197
  private step;
155
198
  }
156
199
  /** A group-authored message to propose. */
@@ -169,7 +212,8 @@ export interface GroupIpexProposalInput {
169
212
  * `processOnce`.
170
213
  *
171
214
  * @throws ValidationError for a body the group did not author, a non-group identifier, a message awaiting
172
- * authenticating dependencies, or one already begun.
215
+ * authenticating dependencies, or one already begun; KramRefusedError (a ValidationError) when this member's own
216
+ * KRAM refuses the message, as an Offer past its exchange lifetime.
173
217
  */
174
218
  export declare function proposeGroupIpex(ops: GroupIpexOperations, { hab, exn, nests, gvrsn, deliver }: GroupIpexProposalInput): Operation<GroupIpexBegun>;
175
219
  /** A group-authored message and the registry update it waits for. */
@@ -182,10 +226,11 @@ export interface GroupIpexAfterInput {
182
226
  prerequisite: GroupIpexPrerequisite;
183
227
  }
184
228
  /**
185
- * The proposer's consent to a group-authored message that waits for a registry update, as a Grant carrying a
186
- * presentation proof does: the caller has proposed the update (this member's contribution is its approval) and
187
- * passes the anchor to wait for. The owner signs the message's contribution, through `prerequisite.proceed`, once
188
- * the group has accepted the update, under this same consent. Returns after local commit.
229
+ * The proposer's consent to a presentation Grant that waits for a registry update: the caller has proposed the
230
+ * update (this member's contribution is its approval) and passes the frozen Grant, its opening and the anchor to wait
231
+ * for. On each pass the owner reads whether the group accepted the update; once it has, the owner attaches the proof
232
+ * and signs this member's contribution under this same consent. A superseded update ends the operation `failed`; one
233
+ * the members never approve stays active until {@link abandonGroupIpex}. Returns after local commit.
189
234
  */
190
235
  export declare function proposeGroupIpexAfter(ops: GroupIpexOperations, { hab, exn, gvrsn, deliver, prerequisite }: GroupIpexAfterInput): GroupIpexBegun;
191
236
  /** An Admit of an accepted Grant a group holder proposes. */
@@ -223,7 +268,8 @@ export interface GroupIpexApproveOptions {
223
268
  * completed message, which a lead that learned of the acceptance from another member's wrapper has not yet done.
224
269
  *
225
270
  * @throws ValidationError when no v2 proposal is stored for `said`, an operation is already live for it, or this
226
- * member still lacks the evidence to approve it.
271
+ * member still lacks the evidence to approve it; KramRefusedError (a ValidationError) when this member's own KRAM
272
+ * refuses the contribution.
227
273
  */
228
274
  export declare function approveGroupIpex(ops: GroupIpexOperations, said: string, { deliver }?: GroupIpexApproveOptions): Operation<GroupIpexBegun>;
229
275
  /** Local abandon: stop publishing and collecting. Does not undo a recorded contribution or message the peers. */
@@ -1 +1 @@
1
- {"version":3,"file":"group-ipex.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/group-ipex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group-ipex.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/group-ipex.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,9 @@
16
16
  * | holder custodian or member | {@link approveGroupIssuanceExchange} | consent to DH (contributions follow as they arrive) |
17
17
  * | a member that only follows | {@link followGroupIssuanceProof} | nothing; verifies the custodian's final proof |
18
18
  *
19
+ * The follow is not a consent and needs no call: the owner begins it itself (below). The explicit call remains for a
20
+ * proof supplied as bytes and is idempotent with the automatic follow.
21
+ *
19
22
  * The registry update is a separate consent: the custodian proposes the BUP through `proposeRegistryEvent`
20
23
  * (its own contribution is its approval) and every other issuer member approves that proposal with
21
24
  * `approveGroupProposal`. Admit is a separate consent as well.
@@ -25,13 +28,22 @@
25
28
  * Grant and the proof broadcast to the other members. Root copies are not sent here: the DH completion cue
26
29
  * feeds the runtime's `RootReplicator`, which sends exactly one copy per member.
27
30
  *
31
+ * Automatic follow: on its slow sweep of the pending exchange escrow the owner begins the proof-only follow, in either
32
+ * role, of each pending group Grant inside its deadline that this member has no live, ended or complete operation for
33
+ * and whose custodian's final proof is stored ({@link storedGroupProof}). The proof exists only after the key exchange
34
+ * finished, so the follow never takes the place of a member whose signature is still wanted; until the proof or a root
35
+ * copy is stored the member reads `awaitingExchangeConsent` and consents as usual. A member holding a root copy or the
36
+ * proof reads `awaitingAnchor` ({@link awaitsGroupProof}) until the follow accepts the Grant.
37
+ *
28
38
  * Reload: nothing about a group operation is durable but the protocol stores. A member that reloads reads
29
39
  * `awaitingExchangeConsent` for a pending Grant it holds no root for and consents again with the same call;
30
40
  * its signatures are deterministic, so consenting twice produces the same bytes. A custodian that reloaded
31
- * after retaining its root resumes when the stores allow it ({@link deriveGroupCustody}).
41
+ * after retaining its root resumes when the stores allow it ({@link deriveGroupCustody}). A follow signs nothing, so
42
+ * the first sweep after a reload begins it again from the stored proof.
32
43
  */
33
44
  import { type CesrFrame, SerderACDC, SerderKERI } from "cesr-ts";
34
45
  import { type Operation } from "effection";
46
+ import { ThresholdQueryResend } from "../../acdc/query-resend.js";
35
47
  import { type RegistryEventRef } from "../credentials/registry-settling.js";
36
48
  import type { Exchanger, ExchangeRouteHandler } from "../exchanges/exchanging.js";
37
49
  import type { Hab, Habery } from "../identity/habbing.js";
@@ -39,6 +51,7 @@ import type { CounselInputs } from "../multisig/counseling.js";
39
51
  import { type GroupCoordinator } from "../multisig/group-members.js";
40
52
  import { type Multiplexor, type MultisigChildRoute } from "../multisig/grouping.js";
41
53
  import { type RegistryProposeDeps } from "../multisig/proposing.js";
54
+ import { type ProofSupportMark } from "./ipex-discloser.js";
42
55
  import { type GrantDraft, type IssuanceBegun, type IssuanceDeps, type IssuanceOperations, type IssuanceRole, type LiveIssuance } from "./issuance.js";
43
56
  /** One DH child route and the handler that delegates its wrappers to this owner. */
44
57
  export type GroupRouteBinding = [route: string, handler: ExchangeRouteHandler];
@@ -143,6 +156,22 @@ export interface CustodyDeps {
143
156
  * of a disclosed root, holds none, or no accepted event elects it.
144
157
  */
145
158
  export declare function deriveGroupCustody(deps: CustodyDeps, hab: Hab, grant: string): GroupElection | null;
159
+ /**
160
+ * The election of a final proof the local member of `hab` can follow for `grant` without taking part: the
161
+ * `/multisig/ipex-proof` wrapper of this exact Grant that another current signing member published, with a recent
162
+ * accepted group event electing that member as custodian. The custodian publishes the proof only after the key
163
+ * exchange finished and the registry update was accepted, so once it is stored no member's signature is still wanted
164
+ * for this issuance. The sender names the custodian exactly, which a root copy cannot (any member holding a root
165
+ * sends copies). Null when no such proof is stored. A pure read of the stored exchanges.
166
+ */
167
+ export declare function storedGroupProof(deps: CustodyDeps, hab: Hab, grant: string): GroupElection | null;
168
+ /**
169
+ * Whether the group completed `grant` without the local member of `hab`, so that its runtime follows the final proof
170
+ * instead of asking it to consent: a `/registry/root` copy of a disclosed registry was sent to it (copies are
171
+ * authorized only once the registry update is accepted, after the key exchange), or the custodian's final proof is
172
+ * stored ({@link storedGroupProof}). A pure read of the stores.
173
+ */
174
+ export declare function awaitsGroupProof(deps: CustodyDeps, hab: Hab, grant: string): boolean;
146
175
  /**
147
176
  * Prepare the custodian's first partial Grant for a fresh credential, preserving the discloser's fresh-origin and
148
177
  * far-node checks, and return the proposal the other issuer members consent to. Signs the custodian's Grant
@@ -186,14 +215,29 @@ export declare function proposeGroupIssuance(ops: IssuanceOperations, draft: Gra
186
215
  */
187
216
  export declare function approveGroupIssuanceExchange(ops: IssuanceOperations, said: string, coordinator?: string): IssuanceBegun;
188
217
  /**
189
- * Follow a group issuance that has already been contributed to, only to verify and accept the custodian's final
190
- * proof: the file-free path of an issuer member that left after contributing and returns for the proof. The group
191
- * is the Grant's sender. Signs nothing. The proof may already be stored (it arrives by mailbox), or be supplied as
192
- * bytes.
218
+ * Follow a group issuance only to verify and accept the custodian's final proof, signing nothing. It serves any
219
+ * member that does not contribute to the key exchange: an issuer member that left after contributing and returns
220
+ * for the proof, or a holder member the group completed without, such as one whose signing weight is 0. The group
221
+ * is the Grant's sender when that is a local group, otherwise its recipient. The proof may already be stored (it
222
+ * arrives by mailbox), or be supplied as bytes.
223
+ *
224
+ * The owner begins the same follow on its own once the custodian's proof is stored ({@link storedGroupProof}), so a
225
+ * host needs this call only to supply the proof as bytes or to pin the coordinator. It is idempotent with that
226
+ * follow; see {@link beginGroupProofFollow}.
193
227
  *
194
- * @throws ValidationError for a Grant this runtime's groups did not send, or one already begun.
228
+ * @throws ValidationError for a Grant that is not pending for a local group, or one begun under a consent.
195
229
  */
196
230
  export declare function followGroupIssuanceProof(ops: IssuanceOperations, said: string, options?: GroupFollowOptions): Operation<IssuanceBegun>;
231
+ /**
232
+ * Begin `role`'s proof-only follow of the pending group Grant `said` under `coordinator` (default the group's latest
233
+ * establishment event). Signs nothing. Idempotent: when that party's follow is already live, or its side of the Grant
234
+ * is already complete, returns the Grant and its transaction and begins nothing. The owner's sweep and
235
+ * {@link followGroupIssuanceProof} both begin follows here.
236
+ *
237
+ * @throws ValidationError for a Grant that is not pending for a local group, one whose live operation is a consent,
238
+ * or a coordinator {@link GroupParty.resolve} refuses.
239
+ */
240
+ export declare function beginGroupProofFollow(ops: IssuanceOperations, said: string, role: IssuanceRole, coordinator?: string): IssuanceBegun;
197
241
  /**
198
242
  * The custodian's exact public proof of a completed group issuance: the proof support and the
199
243
  * `/multisig/ipex-proof` wrapper every other member received, read back from the stores. A copy for members that
@@ -232,14 +276,16 @@ export declare class GroupIssuance {
232
276
  started: boolean;
233
277
  /** Exact DH message this member contributes to, once frozen. */
234
278
  frozen?: Uint8Array;
235
- query?: Uint8Array;
236
- nextQuery: number;
279
+ /** The frozen threshold query and its resend schedule; a group cannot re-date it (`Dhke.requery` refuses groups). */
280
+ readonly resend: ThresholdQueryResend;
237
281
  nextProofScan: number;
238
282
  /** The custodian's registry update, once proposed. */
239
283
  registryUpdate?: RegistryEventRef;
240
284
  /** Proposal wrapper this member still owes the other members. */
241
285
  proposal?: Uint8Array;
242
286
  nodeBytes?: Uint8Array;
287
+ /** What the Grant send's proof support carried; absent when this operation did not send it (rebuilt after a restart). */
288
+ supportMark?: ProofSupportMark;
243
289
  readonly mode: GroupIssuanceMode;
244
290
  readonly anchor?: CounselInputs;
245
291
  constructor(party: GroupParty, role: IssuanceRole, grant: SerderKERI, nodes: readonly CesrFrame[], start?: GroupStart);
@@ -1 +1 @@
1
- {"version":3,"file":"group-issuance.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/group-issuance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group-issuance.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/group-issuance.ts"],"names":[],"mappings":"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"}