@run402/sdk 4.39.1 → 4.41.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 (48) hide show
  1. package/README.md +4 -4
  2. package/dist/errors.d.ts +5 -2
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js.map +1 -1
  5. package/dist/namespaces/gitvault.crypto.d.ts +10 -0
  6. package/dist/namespaces/gitvault.crypto.d.ts.map +1 -1
  7. package/dist/namespaces/gitvault.crypto.js +10 -0
  8. package/dist/namespaces/gitvault.crypto.js.map +1 -1
  9. package/dist/namespaces/gitvault.d.ts +285 -5
  10. package/dist/namespaces/gitvault.d.ts.map +1 -1
  11. package/dist/namespaces/gitvault.js +369 -8
  12. package/dist/namespaces/gitvault.js.map +1 -1
  13. package/dist/node/gitvault-apply.d.ts +1 -1
  14. package/dist/node/gitvault-apply.d.ts.map +1 -1
  15. package/dist/node/gitvault-apply.js +6 -6
  16. package/dist/node/gitvault-apply.js.map +1 -1
  17. package/dist/node/gitvault-creation-journal.js +1 -1
  18. package/dist/node/gitvault-creation-journal.js.map +1 -1
  19. package/dist/node/gitvault-deploy.js +2 -2
  20. package/dist/node/gitvault-deploy.js.map +1 -1
  21. package/dist/node/gitvault-keystore.d.ts +11 -1
  22. package/dist/node/gitvault-keystore.d.ts.map +1 -1
  23. package/dist/node/gitvault-keystore.js.map +1 -1
  24. package/dist/node/gitvault-mirror-backend.d.ts +88 -0
  25. package/dist/node/gitvault-mirror-backend.d.ts.map +1 -0
  26. package/dist/node/gitvault-mirror-backend.js +374 -0
  27. package/dist/node/gitvault-mirror-backend.js.map +1 -0
  28. package/dist/node/gitvault-mirror-config.d.ts +53 -0
  29. package/dist/node/gitvault-mirror-config.d.ts.map +1 -0
  30. package/dist/node/gitvault-mirror-config.js +112 -0
  31. package/dist/node/gitvault-mirror-config.js.map +1 -0
  32. package/dist/node/gitvault-mirror.d.ts +120 -0
  33. package/dist/node/gitvault-mirror.d.ts.map +1 -0
  34. package/dist/node/gitvault-mirror.js +464 -0
  35. package/dist/node/gitvault-mirror.js.map +1 -0
  36. package/dist/node/gitvault-publication.d.ts +153 -3
  37. package/dist/node/gitvault-publication.d.ts.map +1 -1
  38. package/dist/node/gitvault-publication.js +182 -13
  39. package/dist/node/gitvault-publication.js.map +1 -1
  40. package/dist/node/gitvault-recover.d.ts +136 -0
  41. package/dist/node/gitvault-recover.d.ts.map +1 -0
  42. package/dist/node/gitvault-recover.js +412 -0
  43. package/dist/node/gitvault-recover.js.map +1 -0
  44. package/dist/node/gitvault-snapshot.d.ts +8 -0
  45. package/dist/node/gitvault-snapshot.d.ts.map +1 -1
  46. package/dist/node/gitvault-snapshot.js +11 -0
  47. package/dist/node/gitvault-snapshot.js.map +1 -1
  48. package/package.json +1 -1
@@ -388,6 +388,61 @@ export interface GitvaultTransport extends GitvaultCreationTransport {
388
388
  repo_id: string;
389
389
  prune_intent_object_id: string;
390
390
  }): Promise<GitvaultPruneIntentRecord | null>;
391
+ /**
392
+ * The org's directory of envelope-capable principals (gitvault-human-
393
+ * envelopes design D7, `GET /orgs/v1/:org_id/encryption-keys`) — every
394
+ * active human member who has published an encryption key. Read by
395
+ * {@link GitvaultVault.reconcileEnvelopeRecipients} to diff against a
396
+ * vault's current recipient set.
397
+ */
398
+ listOrgEncryptionKeys(request: {
399
+ org_id: string;
400
+ }): Promise<GitvaultOrgEncryptionKeyDirectory>;
401
+ /**
402
+ * The `ek_` fingerprints already covering this vault, at any epoch
403
+ * (`GET /gitvault/v1/vaults/:vault_id/envelope-recipients`, task 2.2) —
404
+ * fingerprints only, never envelope bytes; the recipient-only rule on
405
+ * envelope BYTES elsewhere is unaffected.
406
+ */
407
+ listEnvelopeRecipients(request: {
408
+ repo_id: string;
409
+ }): Promise<GitvaultEnvelopeRecipientsResponse>;
410
+ }
411
+ /**
412
+ * One row of the org's envelope-capable-principal directory
413
+ * ({@link GitvaultTransport.listOrgEncryptionKeys}).
414
+ *
415
+ * `public_key` is OPTIONAL because the shipped gateway route
416
+ * (`GET /orgs/v1/:org_id/encryption-keys`, `routes/org.ts` in
417
+ * run402-private) does not return it yet: `services/
418
+ * principal-encryption-keys.ts:listOrgEncryptionKeyDirectory`'s SELECT
419
+ * omits `pk.public_key` and the route's response `.map()` doesn't forward
420
+ * it — a three-line fix (the SELECT list, the `EncryptionKeyDirectoryEntry`
421
+ * type, and the route's map) that has not shipped as of 2026-08-26. Until
422
+ * it does, {@link GitvaultVault.reconcileEnvelopeRecipients} reports every
423
+ * directory entry as `skipped` with reason `missing_public_key` — this type
424
+ * and the reconcile method are written against the INTENDED response shape
425
+ * and need no further change once the gateway ships the field.
426
+ */
427
+ export interface GitvaultOrgEncryptionKeyEntry {
428
+ principal_id: string;
429
+ display_name: string | null;
430
+ ek_fingerprint: string;
431
+ suite: string;
432
+ created_at: string;
433
+ /** Raw base64url X25519 public key — absent on gateways that haven't shipped the fix noted above. */
434
+ public_key?: string;
435
+ [key: string]: unknown;
436
+ }
437
+ /** `GET /orgs/v1/:org_id/encryption-keys` — {@link GitvaultTransport.listOrgEncryptionKeys}'s result. */
438
+ export interface GitvaultOrgEncryptionKeyDirectory {
439
+ org_id: string;
440
+ keys: GitvaultOrgEncryptionKeyEntry[];
441
+ }
442
+ /** `GET /gitvault/v1/vaults/:vault_id/envelope-recipients` — {@link GitvaultTransport.listEnvelopeRecipients}'s result. */
443
+ export interface GitvaultEnvelopeRecipientsResponse {
444
+ vault_id: string;
445
+ recipient_fingerprints: string[];
391
446
  }
392
447
  /** `GET /gitvault/v1/vaults/:vault_id` — the shape `reads.ts:getVaultRecord` returns. */
393
448
  export interface GitvaultVaultRecord {
@@ -454,6 +509,8 @@ export declare const gitvaultPaths: {
454
509
  readonly cutoffTicket: (id: string) => string;
455
510
  /** `verifier-receipts/<vr>.json` — plaintext-structured, uploaded before a prune intent may reference it (§7.3). */
456
511
  readonly verifierReceipt: (id: string) => string;
512
+ /** `envelopes/<epoch>/<recipient_fingerprint>` — mirrors `gitvault-creation-journal.ts`'s private `envelopePath` (the genesis creator's envelope); this is the same addressing for every OTHER recipient's `key_envelope`. */
513
+ readonly envelope: (epoch: string, recipientFingerprint: string) => string;
457
514
  };
458
515
  export interface GitvaultVaultOptions {
459
516
  keystore: GitvaultKeystore;
@@ -492,6 +549,33 @@ export interface GitvaultMaterializedState extends GitvaultVerifiedState {
492
549
  roots: GitvaultRetentionRoot[];
493
550
  head_target: GitvaultHeadTarget;
494
551
  }
552
+ /** One directory entry {@link GitvaultVault.reconcileEnvelopeRecipients} wrapped a fresh `key_envelope` for. */
553
+ export interface GitvaultReconcileEnvelopeRecipientsWrapped {
554
+ principal_id: string;
555
+ ek_fingerprint: string;
556
+ }
557
+ /** Why {@link GitvaultVault.reconcileEnvelopeRecipients} did NOT wrap a directory entry it otherwise would have. */
558
+ export type GitvaultReconcileEnvelopeRecipientsSkipReason = "missing_public_key" | "invalid_public_key" | "pinned_key_mismatch";
559
+ export interface GitvaultReconcileEnvelopeRecipientsSkipped {
560
+ principal_id: string;
561
+ ek_fingerprint: string;
562
+ reason: GitvaultReconcileEnvelopeRecipientsSkipReason;
563
+ /** `pinned_key_mismatch`: `{pinned_fingerprint, directory_fingerprint}`. `invalid_public_key` (derivation mismatch): `{derived_fingerprint}`. Absent for `missing_public_key` and a bad-encoding `invalid_public_key`. */
564
+ details?: Record<string, unknown>;
565
+ }
566
+ /** {@link GitvaultVault.reconcileEnvelopeRecipients}'s full per-recipient breakdown. */
567
+ export interface GitvaultReconcileEnvelopeRecipientsResult {
568
+ repo_id: string;
569
+ org_id: string;
570
+ /** The epoch every wrap in this call used (V0: always {@link GITVAULT_GENESIS_EPOCH}). */
571
+ epoch: string;
572
+ /** Directory entries this call itself wrapped a NEW `key_envelope` for. */
573
+ wrapped: GitvaultReconcileEnvelopeRecipientsWrapped[];
574
+ /** `ek_` fingerprints already covering the vault before (or, for a raced wrap, as of) this call — no action taken. */
575
+ already_covered: string[];
576
+ /** Directory entries this call could not (or, for `pinned_key_mismatch`, would not) wrap. */
577
+ skipped: GitvaultReconcileEnvelopeRecipientsSkipped[];
578
+ }
495
579
  export interface GitvaultPushOptions {
496
580
  transaction: GitvaultRefTransaction;
497
581
  /** New `HEAD` target for the published ref_state; carried forward when omitted. */
@@ -604,13 +688,77 @@ export declare class GitvaultVault {
604
688
  * List from the authenticated pin and verify every link upward. Persists
605
689
  * the verified prefix after each page, so a `VERIFICATION_BUDGET_EXCEEDED`
606
690
  * continues rather than restarts. Returns the newest verified state.
691
+ *
692
+ * `options.persist` (default `true`, repo-surface-consolidation task 3.3 —
693
+ * `repos fsck --no-write`'s audit mode): when `false`, the chain is walked
694
+ * and verified exactly the same way, but every `keystore.updateRepo(...)`
695
+ * write below is skipped — no local trust pin advances. A
696
+ * `VERIFICATION_BUDGET_EXCEEDED` pause in this mode persists nothing, so a
697
+ * retry restarts from the ORIGINAL pin rather than resuming — the honest
698
+ * consequence of asking for a no-write audit and then walking off the end
699
+ * of one call's budget.
607
700
  */
608
- verifyToNewest(): Promise<GitvaultVerifiedState>;
701
+ verifyToNewest(options?: {
702
+ persist?: boolean;
703
+ }): Promise<GitvaultVerifiedState>;
609
704
  private readHead;
610
705
  /** Decrypt one encrypted carrier object by its receipt; any failure is `CHAIN_UNUSABLE`. */
611
706
  private openCarrier;
612
- /** Verify to newest, then decrypt + apply its carriers — advancing the materialized pin. */
613
- materialize(): Promise<GitvaultMaterializedState>;
707
+ /**
708
+ * Verify to newest, then decrypt + apply its carriers — advancing the
709
+ * materialized pin. `options.persist` (default `true`) is forwarded to
710
+ * {@link verifyToNewest} and gates this method's OWN `materialized_pin`
711
+ * write the same way — `repos fsck --no-write` computes and returns the
712
+ * real ref map and generation without moving either local pin.
713
+ */
714
+ materialize(options?: {
715
+ persist?: boolean;
716
+ }): Promise<GitvaultMaterializedState>;
717
+ /**
718
+ * Wrap the vault's CURRENT epoch key to every org member the directory
719
+ * lists but the vault does not yet have a `key_envelope` for.
720
+ *
721
+ * **This is task 1.1's residual WORKAROUND, not the design D5 ideal.** D5
722
+ * describes a recipient-set change as an epoch rotation — "history epochs
723
+ * stay wrapped as they were; a new member reads from their first covered
724
+ * epoch forward" — which needs a protocol revision (task 1, BLOCKED as of
725
+ * 2026-08-26: V0 pins `epoch` to the single constant
726
+ * `GITVAULT_GENESIS_EPOCH` on every head, so there is no "forward" to
727
+ * speak of yet). What this method actually does, legally, without any
728
+ * protocol change: `key_envelope` objects are never head-referenced (not
729
+ * even genesis's own envelope is), so uploading an ADDITIONAL one at
730
+ * `envelopes/<current epoch>/<recipient fingerprint>` for a missing
731
+ * recipient is accepted by the existing generic create-only upload route
732
+ * as-is. The honest consequence: a newly-wrapped member gets the SAME
733
+ * single epoch every existing member already has, which in V0 means the
734
+ * vault's ENTIRE history — not "from here forward." True forward-only
735
+ * semantics wait on task 1's protocol revision; this method does not
736
+ * pretend otherwise.
737
+ *
738
+ * **TOFU pinning (design D4 point 3).** The first time this repo wraps a
739
+ * given `principal_id`, its CURRENT `ek_fingerprint` is pinned in the
740
+ * keystore repo file (`envelope_recipient_pins`). On a later call, a
741
+ * directory entry whose fingerprint no longer matches its pin is a
742
+ * REFUSAL for that recipient ONLY — reported under `skipped` with reason
743
+ * `pinned_key_mismatch` and both fingerprints in `details`, never wrapped
744
+ * under the new key, and never a thrown error that would abort the whole
745
+ * call (other recipients still get processed). Whether that mismatch is a
746
+ * legitimate key rotation or a substitution is a product/human decision
747
+ * this SDK does not make unattended.
748
+ *
749
+ * **The gateway directory route does not carry `public_key` yet**
750
+ * (`GET /orgs/v1/:org_id/encryption-keys` — see the doc comment on
751
+ * {@link GitvaultOrgEncryptionKeyEntry}). Until it does, every directory
752
+ * entry is reported under `skipped` with reason `missing_public_key`;
753
+ * this method needs no further change once the gateway ships the field.
754
+ *
755
+ * Best-effort by design at the call site, not here: this method itself
756
+ * either completes (returning a full per-recipient breakdown) or throws
757
+ * (e.g. `GITVAULT_READ_ONLY` when this principal holds no signing key).
758
+ * Callers that want "never block on this" (the deploy hook) wrap the call
759
+ * themselves — see `Gitvault.push`'s `#tryReconcileEnvelopeRecipients`.
760
+ */
761
+ reconcileEnvelopeRecipients(): Promise<GitvaultReconcileEnvelopeRecipientsResult>;
614
762
  private seal;
615
763
  /**
616
764
  * The owner signing seed, or `GITVAULT_READ_ONLY`.
@@ -623,6 +771,8 @@ export declare class GitvaultVault {
623
771
  */
624
772
  signer(): Uint8Array;
625
773
  private writerKeyId;
774
+ /** The owner's full signing keypair, or `GITVAULT_READ_ONLY` — same refusal path as {@link signer}, which returns only the seed; {@link sealKeyEnvelope} needs both halves. */
775
+ private signingKeypair;
626
776
  private buildRefState;
627
777
  private buildRetentionRoots;
628
778
  /** Plaintext, independently non-thin packs covering `reachable(tips) ∖ reachable(base)`, split at the multi-object target. */
@@ -1 +1 @@
1
- {"version":3,"file":"gitvault-publication.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-publication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gitvault-publication.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-publication.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ import { mkdtempSync, readdirSync, readFileSync, rmSync } from "node:fs";
37
37
  import { tmpdir } from "node:os";
38
38
  import { join } from "node:path";
39
39
  import { LocalError, isRun402Error } from "../errors.js";
40
- import { GITVAULT_FORMAT, GITVAULT_GENESIS_EPOCH, GITVAULT_GENESIS_GENERATION, GITVAULT_HEX16_RE, GITVAULT_OID40_RE, GITVAULT_SUITE, deriveDigestKey, deriveObjectKey, formatGitvaultTimestamp, hexToBytes, jcs, keyedCommitment, newGitvaultId, objectsetContent, openBindingPreimage, openFrame, parseGitvaultStrict, sealFrame, sha256Hex, signGitvaultObject, storedBytes, verifyGitvaultObject, } from "../namespaces/gitvault.crypto.js";
40
+ import { GITVAULT_FORMAT, GITVAULT_GENESIS_EPOCH, GITVAULT_GENESIS_GENERATION, GITVAULT_HEX16_RE, GITVAULT_OID40_RE, GITVAULT_SUITE, deriveDigestKey, deriveObjectKey, ekFingerprint, formatGitvaultTimestamp, fromBase64url, hexToBytes, jcs, keyedCommitment, newGitvaultId, objectsetContent, openBindingPreimage, openFrame, parseGitvaultStrict, sealFrame, sealKeyEnvelope, sha256Hex, signGitvaultObject, storedBytes, verifyGitvaultObject, } from "../namespaces/gitvault.crypto.js";
41
41
  import { crossProfileGitvaultHint } from "./gitvault-profile-scan.js";
42
42
  import { GITVAULT_DEPLOY_REF, hardenedGit, hasObject, isAncestor } from "./gitvault-snapshot.js";
43
43
  // ─── Constants (constants.json) ──────────────────────────────────────────────
@@ -588,6 +588,8 @@ export function createGitvaultHttpTransport(client, options = {}) {
588
588
  getVaultRecord: ({ repo_id }) => client.request(base(repo_id), { context: "reading the gitvault record" }),
589
589
  findVaultByProject: ({ project_id }) => client.request(`/gitvault/v1/vaults?project_id=${encodeURIComponent(project_id)}`, { context: "resolving the project's gitvault" }),
590
590
  findVaultByRepo: ({ org_slug, repo_name }) => client.request(`/gitvault/v1/vaults?repo=${encodeURIComponent(`${org_slug}/${repo_name}`)}`, { context: "resolving the gitvault by repo address" }),
591
+ listOrgEncryptionKeys: ({ org_id }) => client.request(`/orgs/v1/${encodeURIComponent(org_id)}/encryption-keys`, { context: "reading the org encryption-key directory" }),
592
+ listEnvelopeRecipients: ({ repo_id }) => client.request(`${base(repo_id)}/envelope-recipients`, { context: "reading the gitvault envelope recipients" }),
591
593
  acquireMaintenanceLease: ({ repo_id, base_head_sha256, current_checkpoint_hash, r1_size_bytes, r2_cap_size_bytes, p_before_c1_size_bytes, p_before_c2_size_bytes }) => client.request(`${base(repo_id)}/maintenance-leases`, {
592
594
  method: "POST",
593
595
  body: {
@@ -658,6 +660,8 @@ export const gitvaultPaths = {
658
660
  cutoffTicket: (id) => `retention/${id}.ticket.json`,
659
661
  /** `verifier-receipts/<vr>.json` — plaintext-structured, uploaded before a prune intent may reference it (§7.3). */
660
662
  verifierReceipt: (id) => `verifier-receipts/${id}.json`,
663
+ /** `envelopes/<epoch>/<recipient_fingerprint>` — mirrors `gitvault-creation-journal.ts`'s private `envelopePath` (the genesis creator's envelope); this is the same addressing for every OTHER recipient's `key_envelope`. */
664
+ envelope: (epoch, recipientFingerprint) => `envelopes/${epoch}/${recipientFingerprint}`,
661
665
  };
662
666
  /** A transport-agnostic view of git ops the publication needs (the local repository). */
663
667
  export class GitvaultVault {
@@ -731,8 +735,18 @@ export class GitvaultVault {
731
735
  * List from the authenticated pin and verify every link upward. Persists
732
736
  * the verified prefix after each page, so a `VERIFICATION_BUDGET_EXCEEDED`
733
737
  * continues rather than restarts. Returns the newest verified state.
738
+ *
739
+ * `options.persist` (default `true`, repo-surface-consolidation task 3.3 —
740
+ * `repos fsck --no-write`'s audit mode): when `false`, the chain is walked
741
+ * and verified exactly the same way, but every `keystore.updateRepo(...)`
742
+ * write below is skipped — no local trust pin advances. A
743
+ * `VERIFICATION_BUDGET_EXCEEDED` pause in this mode persists nothing, so a
744
+ * retry restarts from the ORIGINAL pin rather than resuming — the honest
745
+ * consequence of asking for a no-write audit and then walking off the end
746
+ * of one call's budget.
734
747
  */
735
- async verifyToNewest() {
748
+ async verifyToNewest(options = {}) {
749
+ const persist = options.persist ?? true;
736
750
  const { genesis, sha256: genesisSha } = await this.genesis();
737
751
  const writerKey = genesis.creator_signing_pubkey;
738
752
  const writerKeyId = genesis.writer_key_id;
@@ -748,8 +762,11 @@ export class GitvaultVault {
748
762
  progress = verifyHeadsListingPage(page, request, progress, this.repoId);
749
763
  for (const entry of page.heads) {
750
764
  if (verified >= this.budget) {
751
- this.keystore.updateRepo(this.repoId, { verified_prefix: pin });
752
- fail("VERIFICATION_BUDGET_EXCEEDED", `${verified} heads verified this call; the verified prefix (generation ${pin.generation}) is persisted — call again to continue`, "verifying gitvault chain", { verified_through: pin.generation }, [{ action: "resume verification from the persisted verified prefix" }]);
765
+ if (persist)
766
+ this.keystore.updateRepo(this.repoId, { verified_prefix: pin });
767
+ fail("VERIFICATION_BUDGET_EXCEEDED", persist
768
+ ? `${verified} heads verified this call; the verified prefix (generation ${pin.generation}) is persisted — call again to continue`
769
+ : `${verified} heads verified this call in no-write mode; nothing was persisted — a retry restarts from the original pin, not generation ${pin.generation}`, "verifying gitvault chain", { verified_through: pin.generation, persisted: persist }, [{ action: persist ? "resume verification from the persisted verified prefix" : "re-run without --no-write to persist and resume incrementally, or re-run this same audit call again from the start" }]);
753
770
  }
754
771
  const bytes = await this.transport.getObject({ repo_id: this.repoId, path: gitvaultPaths.head(entry.generation) });
755
772
  if (!bytes)
@@ -761,21 +778,24 @@ export class GitvaultVault {
761
778
  }
762
779
  catch (e) {
763
780
  // fail closed: pin stays BELOW the transition head; the verified prefix is cleared (this is the final state, not a budget pause)
764
- this.keystore.updateRepo(this.repoId, { head_pin: pin, verified_prefix: null });
781
+ if (persist)
782
+ this.keystore.updateRepo(this.repoId, { head_pin: pin, verified_prefix: null });
765
783
  throw e;
766
784
  }
767
785
  pin = { generation: head.generation, head_sha256: entry.stored_bytes_sha256, pinned_at: formatGitvaultTimestamp(this.now()) };
768
786
  lastHead = head;
769
787
  verified += 1;
770
788
  }
771
- // verified prefix persists per page (resumable)
772
- this.keystore.updateRepo(this.repoId, { verified_prefix: pin });
789
+ // verified prefix persists per page (resumable) — skipped entirely in no-write mode
790
+ if (persist)
791
+ this.keystore.updateRepo(this.repoId, { verified_prefix: pin });
773
792
  const next = nextListingRequest(request, page);
774
793
  if (!next)
775
794
  break;
776
795
  request = next;
777
796
  }
778
- this.keystore.updateRepo(this.repoId, { head_pin: pin, verified_prefix: null });
797
+ if (persist)
798
+ this.keystore.updateRepo(this.repoId, { head_pin: pin, verified_prefix: null });
779
799
  return { generation: pin.generation, head_sha256: pin.head_sha256, head: lastHead, genesis };
780
800
  }
781
801
  async readHead(generation, expectedSha256) {
@@ -809,21 +829,162 @@ export class GitvaultVault {
809
829
  }
810
830
  return object;
811
831
  }
812
- /** Verify to newest, then decrypt + apply its carriers — advancing the materialized pin. */
813
- async materialize() {
814
- const state = await this.verifyToNewest();
832
+ /**
833
+ * Verify to newest, then decrypt + apply its carriers — advancing the
834
+ * materialized pin. `options.persist` (default `true`) is forwarded to
835
+ * {@link verifyToNewest} and gates this method's OWN `materialized_pin`
836
+ * write the same way — `repos fsck --no-write` computes and returns the
837
+ * real ref map and generation without moving either local pin.
838
+ */
839
+ async materialize(options = {}) {
840
+ const persist = options.persist ?? true;
841
+ const state = await this.verifyToNewest({ persist });
815
842
  const writerKey = state.genesis.creator_signing_pubkey;
816
843
  if (!state.head) {
817
- this.keystore.updateRepo(this.repoId, { materialized_pin: { generation: state.generation, head_sha256: state.head_sha256, pinned_at: formatGitvaultTimestamp(this.now()) } });
844
+ if (persist)
845
+ this.keystore.updateRepo(this.repoId, { materialized_pin: { generation: state.generation, head_sha256: state.head_sha256, pinned_at: formatGitvaultTimestamp(this.now()) } });
818
846
  return { ...state, ref_state: null, retention_roots: null, refs: {}, roots: [], head_target: { kind: "symref", ref: "refs/heads/main" } };
819
847
  }
820
848
  const refState = await this.openCarrier("ref_state", state.head.ref_state, gitvaultPaths.refState(state.head.ref_state.object_id), writerKey);
821
849
  const roots = await this.openCarrier("retention_roots", state.head.retention_roots, gitvaultPaths.retentionRoots(state.head.retention_roots.object_id), writerKey);
822
850
  if (refState.generation !== state.generation || roots.generation !== state.generation)
823
851
  fail("CHAIN_UNUSABLE", "carrier generation does not match the head", "materializing gitvault head");
824
- this.keystore.updateRepo(this.repoId, { materialized_pin: { generation: state.generation, head_sha256: state.head_sha256, pinned_at: formatGitvaultTimestamp(this.now()) } });
852
+ if (persist)
853
+ this.keystore.updateRepo(this.repoId, { materialized_pin: { generation: state.generation, head_sha256: state.head_sha256, pinned_at: formatGitvaultTimestamp(this.now()) } });
825
854
  return { ...state, ref_state: refState, retention_roots: roots, refs: { ...refState.refs }, roots: roots.roots.map((r) => ({ ...r })), head_target: refState.head_target };
826
855
  }
856
+ // ── envelope recipients (gitvault-human-envelopes task 4.1, the ADD-path workaround) ──
857
+ /**
858
+ * Wrap the vault's CURRENT epoch key to every org member the directory
859
+ * lists but the vault does not yet have a `key_envelope` for.
860
+ *
861
+ * **This is task 1.1's residual WORKAROUND, not the design D5 ideal.** D5
862
+ * describes a recipient-set change as an epoch rotation — "history epochs
863
+ * stay wrapped as they were; a new member reads from their first covered
864
+ * epoch forward" — which needs a protocol revision (task 1, BLOCKED as of
865
+ * 2026-08-26: V0 pins `epoch` to the single constant
866
+ * `GITVAULT_GENESIS_EPOCH` on every head, so there is no "forward" to
867
+ * speak of yet). What this method actually does, legally, without any
868
+ * protocol change: `key_envelope` objects are never head-referenced (not
869
+ * even genesis's own envelope is), so uploading an ADDITIONAL one at
870
+ * `envelopes/<current epoch>/<recipient fingerprint>` for a missing
871
+ * recipient is accepted by the existing generic create-only upload route
872
+ * as-is. The honest consequence: a newly-wrapped member gets the SAME
873
+ * single epoch every existing member already has, which in V0 means the
874
+ * vault's ENTIRE history — not "from here forward." True forward-only
875
+ * semantics wait on task 1's protocol revision; this method does not
876
+ * pretend otherwise.
877
+ *
878
+ * **TOFU pinning (design D4 point 3).** The first time this repo wraps a
879
+ * given `principal_id`, its CURRENT `ek_fingerprint` is pinned in the
880
+ * keystore repo file (`envelope_recipient_pins`). On a later call, a
881
+ * directory entry whose fingerprint no longer matches its pin is a
882
+ * REFUSAL for that recipient ONLY — reported under `skipped` with reason
883
+ * `pinned_key_mismatch` and both fingerprints in `details`, never wrapped
884
+ * under the new key, and never a thrown error that would abort the whole
885
+ * call (other recipients still get processed). Whether that mismatch is a
886
+ * legitimate key rotation or a substitution is a product/human decision
887
+ * this SDK does not make unattended.
888
+ *
889
+ * **The gateway directory route does not carry `public_key` yet**
890
+ * (`GET /orgs/v1/:org_id/encryption-keys` — see the doc comment on
891
+ * {@link GitvaultOrgEncryptionKeyEntry}). Until it does, every directory
892
+ * entry is reported under `skipped` with reason `missing_public_key`;
893
+ * this method needs no further change once the gateway ships the field.
894
+ *
895
+ * Best-effort by design at the call site, not here: this method itself
896
+ * either completes (returning a full per-recipient breakdown) or throws
897
+ * (e.g. `GITVAULT_READ_ONLY` when this principal holds no signing key).
898
+ * Callers that want "never block on this" (the deploy hook) wrap the call
899
+ * themselves — see `Gitvault.push`'s `#tryReconcileEnvelopeRecipients`.
900
+ */
901
+ async reconcileEnvelopeRecipients() {
902
+ const repo = this.repoFile();
903
+ const epoch = this.epoch();
904
+ const signer = this.signingKeypair();
905
+ const [directory, coverage] = await Promise.all([
906
+ this.transport.listOrgEncryptionKeys({ org_id: repo.org_id }),
907
+ this.transport.listEnvelopeRecipients({ repo_id: this.repoId }),
908
+ ]);
909
+ const covered = new Set(coverage.recipient_fingerprints);
910
+ const pins = { ...(repo.envelope_recipient_pins ?? {}) };
911
+ const wrapped = [];
912
+ const alreadyCovered = [];
913
+ const skipped = [];
914
+ let pinsChanged = false;
915
+ for (const entry of directory.keys) {
916
+ if (covered.has(entry.ek_fingerprint)) {
917
+ alreadyCovered.push(entry.ek_fingerprint);
918
+ continue;
919
+ }
920
+ const pinned = pins[entry.principal_id];
921
+ if (pinned !== undefined && pinned !== entry.ek_fingerprint) {
922
+ skipped.push({ principal_id: entry.principal_id, ek_fingerprint: entry.ek_fingerprint, reason: "pinned_key_mismatch", details: { pinned_fingerprint: pinned, directory_fingerprint: entry.ek_fingerprint } });
923
+ continue;
924
+ }
925
+ if (typeof entry.public_key !== "string" || entry.public_key.length === 0) {
926
+ skipped.push({ principal_id: entry.principal_id, ek_fingerprint: entry.ek_fingerprint, reason: "missing_public_key" });
927
+ continue;
928
+ }
929
+ let recipientPublicKey;
930
+ try {
931
+ recipientPublicKey = fromBase64url(entry.public_key, "public_key");
932
+ }
933
+ catch {
934
+ skipped.push({ principal_id: entry.principal_id, ek_fingerprint: entry.ek_fingerprint, reason: "invalid_public_key" });
935
+ continue;
936
+ }
937
+ // Defense in depth: a directory row whose printed fingerprint does not
938
+ // derive from its own public_key is corrupt data, not a valid
939
+ // recipient — fail loud here rather than let `sealKeyEnvelope` (which
940
+ // derives the fingerprint itself and never trusts a caller-supplied
941
+ // one) silently seal under a fingerprint that disagrees with the one
942
+ // the directory printed.
943
+ const derived = ekFingerprint(recipientPublicKey);
944
+ if (derived !== entry.ek_fingerprint) {
945
+ skipped.push({ principal_id: entry.principal_id, ek_fingerprint: entry.ek_fingerprint, reason: "invalid_public_key", details: { derived_fingerprint: derived } });
946
+ continue;
947
+ }
948
+ const sealed = await sealKeyEnvelope({
949
+ k_repo: this.kRepo(),
950
+ repo_id: this.repoId,
951
+ epoch,
952
+ recipient_public_key: recipientPublicKey,
953
+ signer,
954
+ created_at: formatGitvaultTimestamp(this.now()),
955
+ });
956
+ try {
957
+ await this.transport.putObject({
958
+ repo_id: this.repoId,
959
+ path: gitvaultPaths.envelope(epoch, sealed.receipt.recipient_fingerprint),
960
+ bytes: sealed.stored_bytes,
961
+ expected_sha256: sealed.stored_bytes_sha256,
962
+ expected_size_bytes: sealed.size_bytes,
963
+ });
964
+ wrapped.push({ principal_id: entry.principal_id, ek_fingerprint: entry.ek_fingerprint });
965
+ }
966
+ catch (e) {
967
+ // A concurrent reconcile (another machine/session) may have wrapped
968
+ // the SAME recipient first — HPKE seal is randomized, so two valid
969
+ // wraps of the same K_repo to the same recipient produce DIFFERENT
970
+ // ciphertext bytes, and the create-only path's read-and-compare
971
+ // reports that as `GITVAULT_OBJECT_EXISTS_DIFFERENT` even though the
972
+ // recipient is now genuinely covered. Treat exactly that code as a
973
+ // benign race, not a failure; anything else propagates.
974
+ if (isRun402Error(e) && e.code === "GITVAULT_OBJECT_EXISTS_DIFFERENT") {
975
+ alreadyCovered.push(entry.ek_fingerprint);
976
+ }
977
+ else {
978
+ throw e;
979
+ }
980
+ }
981
+ pins[entry.principal_id] = entry.ek_fingerprint;
982
+ pinsChanged = true;
983
+ }
984
+ if (pinsChanged)
985
+ this.keystore.updateRepo(this.repoId, { envelope_recipient_pins: pins });
986
+ return { repo_id: this.repoId, org_id: repo.org_id, epoch, wrapped, already_covered: alreadyCovered, skipped };
987
+ }
827
988
  // ── object building ──
828
989
  seal(kind, objectId, plaintext, path) {
829
990
  const sealed = sealFrame({ k_obj: deriveObjectKey(this.kRepo(), this.repoId, this.epoch(), kind, objectId), repo_id: this.repoId, object_kind: kind, object_id: objectId, epoch: this.epoch(), plaintext });
@@ -846,6 +1007,14 @@ export class GitvaultVault {
846
1007
  return kp.seed;
847
1008
  }
848
1009
  writerKeyId() { return this.keystore.ensureIdentity().signing_fingerprint; }
1010
+ /** The owner's full signing keypair, or `GITVAULT_READ_ONLY` — same refusal path as {@link signer}, which returns only the seed; {@link sealKeyEnvelope} needs both halves. */
1011
+ signingKeypair() {
1012
+ const identity = this.keystore.ensureIdentity();
1013
+ const kp = this.keystore.signingKeypair(identity);
1014
+ if (!kp)
1015
+ fail("GITVAULT_READ_ONLY", "the signing key is missing from identity.json; this principal is read-only", "signing gitvault object", undefined, [{ action: "stay read-only at the materialized pin" }]);
1016
+ return kp;
1017
+ }
849
1018
  buildRefState(generation, refs, headTarget) {
850
1019
  if (headTarget.kind === "symref" && !BRANCH_REF_RE.test(headTarget.ref))
851
1020
  fail("REFNAME_UNSUPPORTED", `head_target symref must name a refs/heads/* branch: ${headTarget.ref}`, "building ref_state");