@interop/wallet-core 0.60.0 → 0.62.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 (83) hide show
  1. package/dist/clientAnnex/forgetLast.d.ts +66 -19
  2. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  3. package/dist/clientAnnex/forgetLast.js +120 -38
  4. package/dist/clientAnnex/forgetLast.js.map +1 -1
  5. package/dist/clientAnnex/heal.d.ts +64 -29
  6. package/dist/clientAnnex/heal.d.ts.map +1 -1
  7. package/dist/clientAnnex/heal.js +292 -54
  8. package/dist/clientAnnex/heal.js.map +1 -1
  9. package/dist/clientAnnex/index.d.ts +2 -2
  10. package/dist/clientAnnex/index.d.ts.map +1 -1
  11. package/dist/clientAnnex/index.js +2 -2
  12. package/dist/clientAnnex/index.js.map +1 -1
  13. package/dist/clientAnnex/ladder.d.ts +246 -18
  14. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  15. package/dist/clientAnnex/ladder.js +742 -53
  16. package/dist/clientAnnex/ladder.js.map +1 -1
  17. package/dist/clientAnnex/ladderAnchored.d.ts +113 -6
  18. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  19. package/dist/clientAnnex/ladderAnchored.js +208 -27
  20. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  21. package/dist/clientAnnex/log.d.ts +37 -1
  22. package/dist/clientAnnex/log.d.ts.map +1 -1
  23. package/dist/clientAnnex/log.js +34 -10
  24. package/dist/clientAnnex/log.js.map +1 -1
  25. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +32 -7
  26. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  27. package/dist/clientAnnex/recoveryLadderAnchored.js +124 -23
  28. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  29. package/dist/clientAnnex/zcap.js +2 -2
  30. package/dist/clientAnnex/zcap.js.map +1 -1
  31. package/dist/identity/agents.js +2 -2
  32. package/dist/identity/agents.js.map +1 -1
  33. package/dist/keys/index.d.ts +1 -1
  34. package/dist/keys/index.d.ts.map +1 -1
  35. package/dist/keys/index.js +1 -1
  36. package/dist/keys/index.js.map +1 -1
  37. package/dist/keys/userKeyRoster.d.ts +32 -2
  38. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  39. package/dist/keys/userKeyRoster.js +40 -2
  40. package/dist/keys/userKeyRoster.js.map +1 -1
  41. package/dist/recovery/recoveryDelegation.d.ts +4 -1
  42. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  43. package/dist/recovery/recoveryDelegation.js +9 -7
  44. package/dist/recovery/recoveryDelegation.js.map +1 -1
  45. package/dist/recovery/recoveryWebvh.d.ts +42 -2
  46. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  47. package/dist/recovery/recoveryWebvh.js +160 -18
  48. package/dist/recovery/recoveryWebvh.js.map +1 -1
  49. package/dist/unlock/index.d.ts +2 -2
  50. package/dist/unlock/index.d.ts.map +1 -1
  51. package/dist/unlock/index.js +1 -1
  52. package/dist/unlock/index.js.map +1 -1
  53. package/dist/unlock/retire.d.ts +62 -9
  54. package/dist/unlock/retire.d.ts.map +1 -1
  55. package/dist/unlock/retire.js +59 -5
  56. package/dist/unlock/retire.js.map +1 -1
  57. package/dist/unlock/standingWebvh.d.ts +131 -21
  58. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  59. package/dist/unlock/standingWebvh.js +239 -54
  60. package/dist/unlock/standingWebvh.js.map +1 -1
  61. package/dist/webvh/didWebvh.d.ts +3 -2
  62. package/dist/webvh/didWebvh.d.ts.map +1 -1
  63. package/dist/webvh/didWebvh.js +7 -5
  64. package/dist/webvh/didWebvh.js.map +1 -1
  65. package/dist/webvh/index.d.ts +5 -4
  66. package/dist/webvh/index.d.ts.map +1 -1
  67. package/dist/webvh/index.js +4 -3
  68. package/dist/webvh/index.js.map +1 -1
  69. package/dist/webvh/keyAgreement.d.ts +25 -0
  70. package/dist/webvh/keyAgreement.d.ts.map +1 -1
  71. package/dist/webvh/keyAgreement.js +24 -0
  72. package/dist/webvh/keyAgreement.js.map +1 -1
  73. package/dist/webvh/listClients.d.ts +31 -18
  74. package/dist/webvh/listClients.d.ts.map +1 -1
  75. package/dist/webvh/listClients.js +60 -16
  76. package/dist/webvh/listClients.js.map +1 -1
  77. package/dist/webvh/revokeClient.d.ts +48 -0
  78. package/dist/webvh/revokeClient.d.ts.map +1 -1
  79. package/dist/webvh/revokeClient.js +85 -1
  80. package/dist/webvh/revokeClient.js.map +1 -1
  81. package/dist/webvh/zcap.js +3 -3
  82. package/dist/webvh/zcap.js.map +1 -1
  83. package/package.json +5 -5
@@ -2,9 +2,9 @@
2
2
  * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
3
  */
4
4
  /**
5
- * The LAST enrolled client's forget: the two-entry transition ceremony that
6
- * takes an account from one enrolled client to the client-less,
7
- * ladder-anchored state -- the same state a credential-anchored signup and a
5
+ * The LAST enrolled client's forget: the transition ceremony that takes an
6
+ * account from one enrolled client to the client-less, ladder-anchored
7
+ * state -- the same state a credential-anchored signup and a
8
8
  * transient recovery produce. Decision 0004's 2026-08-19 amendment fixes the
9
9
  * entry order, and it is forced twice over: the server's revocation endpoint
10
10
  * verifies a to-be-revoked capability's chain against the CURRENTLY resolved
@@ -13,11 +13,39 @@
13
13
  * the client's verification method is gone, nothing can sign the revocation
14
14
  * POST at all). So:
15
15
  *
16
- * 1. **The install entry** ({@link installLadderVmWebvh}): the ladder VM
17
- * joins the document while the client's whole inventory stays -- the
18
- * both-present transitional state. This is the ceremony's
19
- * inventory-changing document version under the ceremony-tail license.
20
- * 2. **The roster rotation**, ladder-signed, anchored at the install entry,
16
+ * 1. **The strike-and-reinstall pair**
17
+ * ({@link strikeLadderVmWebvh}, then {@link installLadderVmWebvh}): this
18
+ * credential's own ladder VM leaves the document and returns in the next
19
+ * entry, the client's whole inventory standing throughout. A ladder VM's
20
+ * life is keyed to its credential rather than to the account's client
21
+ * census, so the VM already stands when the transition starts and a bare
22
+ * install would publish nothing; the reinstall is what carries the
23
+ * ceremony's inventory-changing document version under the ceremony-tail
24
+ * license. The strike reaches one credential's VM -- the id derives from
25
+ * the ladder seed -- so another standing credential's VM is untouched.
26
+ * The pair republishes the identical key under the identical id and
27
+ * revokes nothing, so the revocation stage below is undisturbed by it and
28
+ * every unexpired ladder-signed delegation keeps verifying. Its costs are
29
+ * stated rather than hidden: the reinstall reveals a rung that stands in
30
+ * `updateKeys`, as the single install already did, now over two entries;
31
+ * and a run torn between the two leaves the account with no ladder VM
32
+ * while the client still stands, which a re-run mends (the strike no-ops,
33
+ * the install reinstalls). The pair runs only when the rotation is still
34
+ * owed or the VM is missing, so a resumed run past the rotation publishes
35
+ * neither entry.
36
+ *
37
+ * Both entries publish through `clientLogStore`, the store invoked under
38
+ * the ENROLLED client's root authority, and not through the credential's
39
+ * bridge delegation. The bridge is often signed by the very VM the strike
40
+ * removes -- the readiness stage's renewal mints it as the ladder, and
41
+ * stage 6 re-signs it as the ladder again -- so a bridge-invoked reinstall
42
+ * would be authorized against the post-strike document under the
43
+ * current-key-set rule and refused, leaving the account VM-less with every
44
+ * ladder-signed delegation rotted and a re-run failing identically. The
45
+ * client stands until stage 7 and holds root authority on the Space, so
46
+ * its store is the one that carries the pair. Only the HTTP invocation
47
+ * changes: both entries stay ladder-SIGNED.
48
+ * 2. **The roster rotation**, ladder-signed, anchored at the reinstall entry,
21
49
  * HTTP-invoked under the still-standing client: the user key rotates off
22
50
  * this client's wrap in ONE append (the license's one-shot shape), read
23
51
  * back through the credential's standing wrap. Because the append's
@@ -69,13 +97,20 @@
69
97
  * client -- an account nothing can write to -- which is why a call that
70
98
  * omits the seam is refused before any read.
71
99
  * 7. **The removal entry** ({@link forgetLastWebvhClient}): the client's
72
- * whole document inventory out while the installed ladder VM keeps the
100
+ * whole document inventory out while the reinstalled ladder VM keeps the
73
101
  * account anchored. The app's local wipe runs after this ceremony
74
102
  * returns.
75
103
  *
76
104
  * Torn-state map: every stage detects completion from durable state, so a
77
105
  * run torn anywhere before the removal entry reads as "not forgotten" and a
78
- * re-run converges -- the install entry is idempotent, an already-rotated
106
+ * re-run converges. A tear BETWEEN the pair's two entries is the one worth
107
+ * stating in full: it leaves the account with no ladder VM while the client
108
+ * still stands, and the re-run's reinstall converges because it rides the
109
+ * client's root authority rather than the credential's bridge -- the bridge
110
+ * the strike may itself have rotted cannot authorize that write, and nothing
111
+ * else on a one-client account could. Both entries of the pair are
112
+ * idempotent and the pair is
113
+ * skipped once the rotation has landed, an already-rotated
79
114
  * roster skips the append (no second ladder-signed append is ever
80
115
  * attempted), the fan-out is staleness-driven, a re-POSTed revocation's 400
81
116
  * already-revoked answer reads as success (decision 0006's resume contract),
@@ -140,8 +175,10 @@ export interface UnlockMethodsRemintReach<Entry extends RecoveryDelegationEntry
140
175
  }) => Promise<void>;
141
176
  }
142
177
  /**
143
- * What a completed last-client forget reports: whether the install entry ran
144
- * on this call (`false` on a resumed run), whether the roster's wrap for the
178
+ * What a completed last-client forget reports: whether the reinstall half of
179
+ * the strike-and-reinstall pair ran on this call (`false` on a resumed run
180
+ * that owed no rotation, so neither entry was published), whether the
181
+ * roster's wrap for the
145
182
  * forgotten client was retired on this run, the per-collection fan-out
146
183
  * result, the generation stage's report, the other unlock methods' record
147
184
  * re-mint report (present when the caller supplied the reach: the counts and
@@ -151,7 +188,7 @@ export interface UnlockMethodsRemintReach<Entry extends RecoveryDelegationEntry
151
188
  * the roster descriptor it was read from.
152
189
  */
153
190
  export interface LastEnrolledClientForgetResult {
154
- installed: boolean;
191
+ reinstalled: boolean;
155
192
  rotated: boolean;
156
193
  collections: UserKeyCascadeResult;
157
194
  generation: GenerationDelegationRetirement;
@@ -199,10 +236,18 @@ export declare class RecordRemintFailedError extends Error {
199
236
  * @param options {object}
200
237
  * @param options.logStore {UnlockLogStore} the credential's delegated
201
238
  * `did.jsonl` bridge store; also serves the ceremony's public reads
239
+ * @param options.clientLogStore {UnlockLogStore} the account-log store
240
+ * invoked under the STILL-STANDING enrolled client's root authority (an
241
+ * app's `wasWebvhIdStore` satisfies the narrower shape). The
242
+ * strike-and-reinstall pair publishes through it, because the bridge
243
+ * `logStore` is often signed by the ladder VM the strike removes and the
244
+ * reinstall would then be refused under the current-key-set rule. Both
245
+ * entries stay ladder-signed; only the HTTP invocation differs. Required:
246
+ * a call without it throws a `TypeError` before any read
202
247
  * @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
203
248
  * pins, the account log's slot derived from `annex.accountSpaceId`. Every
204
- * account-log read the ceremony makes -- the pre-install read, and the
205
- * install and removal entries' own reads inside their conflict-retry
249
+ * account-log read the ceremony makes -- the opening read, and the strike,
250
+ * reinstall, and removal entries' own reads inside their conflict-retry
206
251
  * loops -- is checked against the pinned head, so a served truncated
207
252
  * prefix is refused (`ResourceLogContinuityError`, `rollback`) before any
208
253
  * roster append or log publish, and each entry advances the pin to the
@@ -221,8 +266,9 @@ export declare class RecordRemintFailedError extends Error {
221
266
  * @param options.rosterStoreFor {Function} `({ did, log }) => store` --
222
267
  * builds the `key-map/user-key.jsonl` roster store whose appends are
223
268
  * SIGNED BY THE LADDER VM and whose controller view resolves from the
224
- * supplied post-install log (the inventory-changing anchor the ceremony-tail
225
- * license admits), while its HTTP requests invoke under the still-standing
269
+ * supplied log -- the pre-transition head for the opening read, the
270
+ * post-reinstall head for the rotation (the inventory-changing anchor the
271
+ * ceremony-tail license admits), while its HTTP requests invoke under the still-standing
226
272
  * client
227
273
  * @param options.credentialKeyAgreementKey {IKeyAgreementKey} the standing
228
274
  * credential's key-agreement key -- the recipient whose wrap survives the
@@ -261,7 +307,7 @@ export declare class RecordRemintFailedError extends Error {
261
307
  * @param options.onBeforeRemoval {Function}
262
308
  * `({ did, doc, log }) => Promise<void>` -- the record re-bind seam: runs
263
309
  * after the record re-mint stage, immediately before the removal entry,
264
- * with the post-install published state. The caller re-signs the login
310
+ * with the post-reinstall published state. The caller re-signs the login
265
311
  * credential's bridge and `delegatedClients` sibling with the ladder VM
266
312
  * and re-seals its unlock record here -- the only stage that reaches the
267
313
  * login credential's record, which the `unlockMethods` pass skips. Must
@@ -270,8 +316,9 @@ export declare class RecordRemintFailedError extends Error {
270
316
  * @param [options.now] {number} epoch milliseconds, for tests
271
317
  * @returns {Promise<LastEnrolledClientForgetResult>}
272
318
  */
273
- export declare function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now }: {
319
+ export declare function forgetLastEnrolledClient({ logStore, clientLogStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now }: {
274
320
  logStore: UnlockLogStore;
321
+ clientLogStore: UnlockLogStore;
275
322
  pinStore?: ResourceLogPinStore;
276
323
  ladderSeed: Uint8Array;
277
324
  forgottenClient: RevokedClientKeys;
@@ -1 +1 @@
1
- {"version":3,"file":"forgetLast.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forgetLast.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@ import { readLogOrThrow } from '../unlock/standingWebvh.js';
8
8
  import { recordSignerFromAgent } from '../keyring/record.js';
9
9
  import { remintRecoveryDelegations } from '../recovery/recoveryDelegation.js';
10
10
  import { ladderVmKeyMultibase } from './ladder.js';
11
+ import { ladderVmIds } from '../webvh/listClients.js';
11
12
  import { ladderVmAgent, ladderVmZcapClient } from './zcap.js';
12
- import { forgetLastWebvhClient, installLadderVmWebvh } from './ladderAnchored.js';
13
+ import { forgetLastWebvhClient, installLadderVmWebvh, strikeLadderVmWebvh } from './ladderAnchored.js';
13
14
  import { clientAnnexDidParts, clientAnnexLogPinId, delegatedClientsDelegationMinter, delegatedClientsPointer, ensureGenerationDelegationCurrent, generationDelegationHistory, mintGenerationDelegation, revokeTreatingAlreadyRevokedAsSuccess } from './log.js';
14
15
  /**
15
16
  * The re-mint outcomes that withhold the removal entry: a record the pass
@@ -65,10 +66,18 @@ export class RecordRemintFailedError extends Error {
65
66
  * @param options {object}
66
67
  * @param options.logStore {UnlockLogStore} the credential's delegated
67
68
  * `did.jsonl` bridge store; also serves the ceremony's public reads
69
+ * @param options.clientLogStore {UnlockLogStore} the account-log store
70
+ * invoked under the STILL-STANDING enrolled client's root authority (an
71
+ * app's `wasWebvhIdStore` satisfies the narrower shape). The
72
+ * strike-and-reinstall pair publishes through it, because the bridge
73
+ * `logStore` is often signed by the ladder VM the strike removes and the
74
+ * reinstall would then be refused under the current-key-set rule. Both
75
+ * entries stay ladder-signed; only the HTTP invocation differs. Required:
76
+ * a call without it throws a `TypeError` before any read
68
77
  * @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
69
78
  * pins, the account log's slot derived from `annex.accountSpaceId`. Every
70
- * account-log read the ceremony makes -- the pre-install read, and the
71
- * install and removal entries' own reads inside their conflict-retry
79
+ * account-log read the ceremony makes -- the opening read, and the strike,
80
+ * reinstall, and removal entries' own reads inside their conflict-retry
72
81
  * loops -- is checked against the pinned head, so a served truncated
73
82
  * prefix is refused (`ResourceLogContinuityError`, `rollback`) before any
74
83
  * roster append or log publish, and each entry advances the pin to the
@@ -87,8 +96,9 @@ export class RecordRemintFailedError extends Error {
87
96
  * @param options.rosterStoreFor {Function} `({ did, log }) => store` --
88
97
  * builds the `key-map/user-key.jsonl` roster store whose appends are
89
98
  * SIGNED BY THE LADDER VM and whose controller view resolves from the
90
- * supplied post-install log (the inventory-changing anchor the ceremony-tail
91
- * license admits), while its HTTP requests invoke under the still-standing
99
+ * supplied log -- the pre-transition head for the opening read, the
100
+ * post-reinstall head for the rotation (the inventory-changing anchor the
101
+ * ceremony-tail license admits), while its HTTP requests invoke under the still-standing
92
102
  * client
93
103
  * @param options.credentialKeyAgreementKey {IKeyAgreementKey} the standing
94
104
  * credential's key-agreement key -- the recipient whose wrap survives the
@@ -127,7 +137,7 @@ export class RecordRemintFailedError extends Error {
127
137
  * @param options.onBeforeRemoval {Function}
128
138
  * `({ did, doc, log }) => Promise<void>` -- the record re-bind seam: runs
129
139
  * after the record re-mint stage, immediately before the removal entry,
130
- * with the post-install published state. The caller re-signs the login
140
+ * with the post-reinstall published state. The caller re-signs the login
131
141
  * credential's bridge and `delegatedClients` sibling with the ladder VM
132
142
  * and re-seals its unlock record here -- the only stage that reaches the
133
143
  * login credential's record, which the `unlockMethods` pass skips. Must
@@ -136,7 +146,7 @@ export class RecordRemintFailedError extends Error {
136
146
  * @param [options.now] {number} epoch milliseconds, for tests
137
147
  * @returns {Promise<LastEnrolledClientForgetResult>}
138
148
  */
139
- export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now = Date.now() }) {
149
+ export async function forgetLastEnrolledClient({ logStore, clientLogStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now = Date.now() }) {
140
150
  // The seam is the only stage that re-signs the login credential's bridge
141
151
  // with the ladder VM; a run without it would land the removal entry over
142
152
  // a record the struck key signed, on an account nothing could then write
@@ -145,6 +155,15 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
145
155
  throw new TypeError('forgetLastEnrolledClient requires onBeforeRemoval: the login ' +
146
156
  "credential's record is re-bound only through that seam");
147
157
  }
158
+ // The pair's store is the enrolled client's, not the credential's bridge:
159
+ // a bridge the strike rots cannot authorize the reinstall that follows it.
160
+ // Refused before any read, so nothing is published.
161
+ if (clientLogStore === undefined ||
162
+ typeof clientLogStore.putIdResource !== 'function') {
163
+ throw new TypeError('forgetLastEnrolledClient requires clientLogStore: the ladder VM ' +
164
+ "strike and reinstall publish under the enrolled client's root " +
165
+ 'authority');
166
+ }
148
167
  // The pre-install read and the two guards: a client with no remaining
149
168
  // presence means the removal entry already landed (the finish-the-wipe
150
169
  // state the app's next login maps -- nothing here can still invoke), and
@@ -165,7 +184,7 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
165
184
  });
166
185
  if (!preTarget.present) {
167
186
  return {
168
- installed: false,
187
+ reinstalled: false,
169
188
  rotated: false,
170
189
  collections: { outcomes: {}, failed: [] },
171
190
  generation: { revoked: [], replaced: false, skipped: 'already-removed' },
@@ -179,35 +198,98 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
179
198
  throw new Error('did:webvh: another enrolled client remains; the last-client ' +
180
199
  'transition ceremony does not apply -- run the ordinary forget.');
181
200
  }
182
- // Stage 1: the install entry -- the ladder VM in, the client untouched.
183
- const install = await installLadderVmWebvh({
184
- store: logStore,
185
- ladderSeed,
186
- expectedDid,
187
- ...pinned
201
+ // What the rotation is decided on, read BEFORE any entry: the roster as it
202
+ // stands on the pre-transition document. The pair below runs only when the
203
+ // rotation is still owed, so a re-run past it publishes no entry for
204
+ // nothing.
205
+ const forgottenKid = rosterRecipientKid({
206
+ signingKeyMultibase: forgottenClient.signingKeyMultibase,
207
+ keyAgreementKeyMultibase: forgottenKeyAgreementKeyMultibase
188
208
  });
209
+ const preRosterStore = rosterStoreFor({ did: before.did, log: before.log });
210
+ const current = await preRosterStore.read();
211
+ const currentEpoch = current
212
+ ? (current.descriptor.epochs ?? []).find(epoch => epoch.id === current.descriptor.currentEpoch)
213
+ : undefined;
214
+ const wrapped = currentEpoch?.recipients.some(entry => entry.header.kid === forgottenKid) === true;
215
+ const ladderVmId = `${before.did}#${await ladderVmKeyMultibase({
216
+ ladderSeed
217
+ })}`;
218
+ const vmStands = ladderVmIds({ doc: before.doc }).includes(ladderVmId);
219
+ // Stage 1: the strike-and-reinstall pair -- this credential's ladder VM
220
+ // out of the document and straight back in, the client's inventory
221
+ // untouched throughout. The credential-keyed lifecycle installs the VM at
222
+ // bind time, so it already stands here and a bare install would publish
223
+ // nothing; the pair is what gives the rotation below an inventory-changing
224
+ // document version to anchor at, which is what the ceremony-tail license
225
+ // admits. Both entries are ladder-signed by the attributed rung, so the
226
+ // reinstall reveals a rung that stands in `updateKeys` -- the cost the
227
+ // single install already carried, now over two entries.
228
+ //
229
+ // The revocation stage's ordering is undisturbed by the pair: the
230
+ // reinstall republishes the IDENTICAL key under the identical id and
231
+ // revokes nothing, and a zcap delegation proof carries no version anchor,
232
+ // so every unexpired ladder-signed delegation keeps verifying across it.
233
+ //
234
+ // Run only when there is something for it to license (the rotation is
235
+ // owed) or when the VM is missing -- the state a run torn between the two
236
+ // entries leaves, where the strike no-ops and the reinstall converges.
237
+ //
238
+ // Both entries are inventory-changing, so the pair mints TWO license
239
+ // shots rather than the one the rotation spends. That is accepted:
240
+ // clause B already licenses every standing ladder against any
241
+ // inventory-changing version, so the reinstall's own shot is spendable by
242
+ // a sibling ladder in the same window whatever the strike's shot does.
243
+ // What a sibling's spend costs is bounded either way. Spent at the strike
244
+ // version, the rotation below stays licensed at the reinstall version
245
+ // (`headControllerVersionIndex >= controllerVersionIndex` compares
246
+ // positions, and the reinstall's is higher). Spent at the reinstall
247
+ // version, the rotation refuses with `ResourceLogLicenseError` and the
248
+ // run is foreclosed rather than wedged: `wrapped` stays true, since the
249
+ // client still stands in the document and is therefore a recipient of the
250
+ // sibling's fresh epoch too, so a re-run republishes the pair and mints a
251
+ // fresh anchor. The install signs with the currently attributed rung and
252
+ // keeps its own hash committed under the carry-over convention, so no
253
+ // rung is burned; the cost is two account-log entries per attempt.
254
+ let reinstalled = false;
255
+ let anchor = {
256
+ did: before.did,
257
+ doc: before.doc,
258
+ log: before.log
259
+ };
260
+ if (wrapped || !vmStands) {
261
+ await strikeLadderVmWebvh({
262
+ store: clientLogStore,
263
+ ladderSeed,
264
+ expectedDid,
265
+ ...pinned
266
+ });
267
+ const install = await installLadderVmWebvh({
268
+ store: clientLogStore,
269
+ ladderSeed,
270
+ expectedDid,
271
+ ...pinned
272
+ });
273
+ reinstalled = install.installed;
274
+ anchor = { did: install.did, doc: install.doc, log: install.log };
275
+ }
189
276
  // Stage 2: the roster rotation off this client's wrap, ladder-signed and
190
- // anchored at the install entry, then stage 3, the collection fan-out --
277
+ // anchored at the reinstall entry, then stage 3, the collection fan-out --
191
278
  // both HTTP-invoked under this client's still-standing authority. An
192
279
  // already-rotated roster skips the append entirely, so the one-shot
193
280
  // license is never asked for a second append at the same anchor.
194
281
  let rotated = false;
195
282
  let read;
196
283
  let cascade = { outcomes: {}, failed: [] };
197
- const rosterStore = rosterStoreFor({ did: install.did, log: install.log });
198
- const current = await rosterStore.read();
284
+ const rosterStore = wrapped
285
+ ? rosterStoreFor({ did: anchor.did, log: anchor.log })
286
+ : preRosterStore;
199
287
  if (current !== null) {
200
- const forgottenKid = rosterRecipientKid({
201
- signingKeyMultibase: forgottenClient.signingKeyMultibase,
202
- keyAgreementKeyMultibase: forgottenKeyAgreementKeyMultibase
203
- });
204
288
  let descriptor = current.descriptor;
205
- const currentEpoch = (descriptor.epochs ?? []).find(epoch => epoch.id === descriptor.currentEpoch);
206
- const wrapped = currentEpoch?.recipients.some(entry => entry.header.kid === forgottenKid);
207
289
  if (wrapped) {
208
290
  descriptor = await rotateUserKeyRoster({
209
291
  store: rosterStore,
210
- document: install.doc,
292
+ document: anchor.doc,
211
293
  retireRecipientId: forgottenKid
212
294
  });
213
295
  rotated = true;
@@ -245,21 +327,21 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
245
327
  }
246
328
  // Stage 4: the generation-delegation replacement and revocations.
247
329
  const generation = await retireLadderGenerationDelegations({
248
- doc: install.doc,
249
- accountDid: install.did,
330
+ doc: anchor.doc,
331
+ accountDid: anchor.did,
250
332
  ladderSeed,
251
333
  annex,
252
334
  now
253
335
  });
254
336
  // Stage 5: the other unlock methods' record re-mint, ladder-signed, with
255
- // the forgotten client named as retiring -- the post-install document
337
+ // the forgotten client named as retiring -- the post-reinstall document
256
338
  // still lists it, so without that axis every bridge it signed would read
257
339
  // as standing and be left to rot at the removal entry.
258
340
  let remint;
259
341
  if (unlockMethods !== undefined) {
260
342
  remint = await remintUnlockMethodRecordsAsLadder({
261
- doc: install.doc,
262
- accountDid: install.did,
343
+ doc: anchor.doc,
344
+ accountDid: anchor.did,
263
345
  ladderSeed,
264
346
  retiringSigningKeyMultibase: forgottenClient.signingKeyMultibase,
265
347
  reach: unlockMethods,
@@ -277,13 +359,13 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
277
359
  }
278
360
  // Stage 6: the record re-bind seam -- the login credential's record, the
279
361
  // one stage 5 skipped -- while the removal has not landed (a
280
- // ladder-VM-signed bridge verifies from the install entry on, and the old
362
+ // ladder-VM-signed bridge verifies from the reinstall entry on, and the old
281
363
  // client-signed one keeps verifying until the removal -- so a tear on
282
364
  // either side of this callback leaves a working login).
283
365
  await onBeforeRemoval({
284
- did: install.did,
285
- doc: install.doc,
286
- log: install.log
366
+ did: anchor.did,
367
+ doc: anchor.doc,
368
+ log: anchor.log
287
369
  });
288
370
  // Stage 7: the removal entry -- the client's whole inventory out, the
289
371
  // installed ladder VM keeping the account anchored.
@@ -296,7 +378,7 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
296
378
  ...pinned
297
379
  });
298
380
  return {
299
- installed: install.installed,
381
+ reinstalled,
300
382
  rotated,
301
383
  collections: cascade,
302
384
  generation,
@@ -319,7 +401,7 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
319
401
  * a live delegation either way.
320
402
  *
321
403
  * @param options {object}
322
- * @param options.doc {DIDDoc} the post-install account document
404
+ * @param options.doc {DIDDoc} the post-reinstall account document
323
405
  * @param options.accountDid {string}
324
406
  * @param options.ladderSeed {Uint8Array}
325
407
  * @param options.annex {object} see {@link forgetLastEnrolledClient}
@@ -411,15 +493,15 @@ async function retireLadderGenerationDelegations({ doc, accountDid, ladderSeed,
411
493
  * The record re-mint stage: the revocation cascade's re-mint pass over the
412
494
  * other unlock methods' registry entries, with the ladder VM as both the
413
495
  * delegating key (the fresh bridge and sibling) and the record-frame signer
414
- * (`ladderVmAgent`'s did:key form, whose multibase the post-install document
496
+ * (`ladderVmAgent`'s did:key form, whose multibase the post-reinstall document
415
497
  * lists, so a reader settling the mixed-signer proof against the account
416
498
  * document accepts it after the removal too -- `currentAccountRecordSigners`
417
499
  * is that allowlist), and the forgotten client named as retiring. The sibling
418
- * minter reads the annex pointer off the post-install document. The HTTP
500
+ * minter reads the annex pointer off the post-reinstall document. The HTTP
419
501
  * side rides the caller's management-zcap clients, still invocable here.
420
502
  *
421
503
  * @param options {object}
422
- * @param options.doc {DIDDoc} the post-install account document
504
+ * @param options.doc {DIDDoc} the post-reinstall account document
423
505
  * @param options.accountDid {string}
424
506
  * @param options.ladderSeed {Uint8Array}
425
507
  * @param options.retiringSigningKeyMultibase {string} the forgotten
@@ -1 +1 @@
1
- {"version":3,"file":"forgetLast.js","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forgetLast.js","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"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"}