@run402/sdk 4.39.0 → 4.40.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 (36) hide show
  1. package/dist/namespaces/gitvault.crypto.d.ts +10 -0
  2. package/dist/namespaces/gitvault.crypto.d.ts.map +1 -1
  3. package/dist/namespaces/gitvault.crypto.js +10 -0
  4. package/dist/namespaces/gitvault.crypto.js.map +1 -1
  5. package/dist/namespaces/gitvault.d.ts +141 -4
  6. package/dist/namespaces/gitvault.d.ts.map +1 -1
  7. package/dist/namespaces/gitvault.js +226 -3
  8. package/dist/namespaces/gitvault.js.map +1 -1
  9. package/dist/node/gitvault-keystore.d.ts +11 -1
  10. package/dist/node/gitvault-keystore.d.ts.map +1 -1
  11. package/dist/node/gitvault-keystore.js.map +1 -1
  12. package/dist/node/gitvault-mirror-backend.d.ts +88 -0
  13. package/dist/node/gitvault-mirror-backend.d.ts.map +1 -0
  14. package/dist/node/gitvault-mirror-backend.js +374 -0
  15. package/dist/node/gitvault-mirror-backend.js.map +1 -0
  16. package/dist/node/gitvault-mirror-config.d.ts +53 -0
  17. package/dist/node/gitvault-mirror-config.d.ts.map +1 -0
  18. package/dist/node/gitvault-mirror-config.js +112 -0
  19. package/dist/node/gitvault-mirror-config.js.map +1 -0
  20. package/dist/node/gitvault-mirror.d.ts +120 -0
  21. package/dist/node/gitvault-mirror.d.ts.map +1 -0
  22. package/dist/node/gitvault-mirror.js +464 -0
  23. package/dist/node/gitvault-mirror.js.map +1 -0
  24. package/dist/node/gitvault-publication.d.ts +131 -0
  25. package/dist/node/gitvault-publication.d.ts.map +1 -1
  26. package/dist/node/gitvault-publication.js +145 -1
  27. package/dist/node/gitvault-publication.js.map +1 -1
  28. package/dist/node/gitvault-recover.d.ts +136 -0
  29. package/dist/node/gitvault-recover.d.ts.map +1 -0
  30. package/dist/node/gitvault-recover.js +412 -0
  31. package/dist/node/gitvault-recover.js.map +1 -0
  32. package/dist/node/gitvault-snapshot.d.ts +8 -0
  33. package/dist/node/gitvault-snapshot.d.ts.map +1 -1
  34. package/dist/node/gitvault-snapshot.js +11 -0
  35. package/dist/node/gitvault-snapshot.js.map +1 -1
  36. 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. */
@@ -611,6 +695,51 @@ export declare class GitvaultVault {
611
695
  private openCarrier;
612
696
  /** Verify to newest, then decrypt + apply its carriers — advancing the materialized pin. */
613
697
  materialize(): Promise<GitvaultMaterializedState>;
698
+ /**
699
+ * Wrap the vault's CURRENT epoch key to every org member the directory
700
+ * lists but the vault does not yet have a `key_envelope` for.
701
+ *
702
+ * **This is task 1.1's residual WORKAROUND, not the design D5 ideal.** D5
703
+ * describes a recipient-set change as an epoch rotation — "history epochs
704
+ * stay wrapped as they were; a new member reads from their first covered
705
+ * epoch forward" — which needs a protocol revision (task 1, BLOCKED as of
706
+ * 2026-08-26: V0 pins `epoch` to the single constant
707
+ * `GITVAULT_GENESIS_EPOCH` on every head, so there is no "forward" to
708
+ * speak of yet). What this method actually does, legally, without any
709
+ * protocol change: `key_envelope` objects are never head-referenced (not
710
+ * even genesis's own envelope is), so uploading an ADDITIONAL one at
711
+ * `envelopes/<current epoch>/<recipient fingerprint>` for a missing
712
+ * recipient is accepted by the existing generic create-only upload route
713
+ * as-is. The honest consequence: a newly-wrapped member gets the SAME
714
+ * single epoch every existing member already has, which in V0 means the
715
+ * vault's ENTIRE history — not "from here forward." True forward-only
716
+ * semantics wait on task 1's protocol revision; this method does not
717
+ * pretend otherwise.
718
+ *
719
+ * **TOFU pinning (design D4 point 3).** The first time this repo wraps a
720
+ * given `principal_id`, its CURRENT `ek_fingerprint` is pinned in the
721
+ * keystore repo file (`envelope_recipient_pins`). On a later call, a
722
+ * directory entry whose fingerprint no longer matches its pin is a
723
+ * REFUSAL for that recipient ONLY — reported under `skipped` with reason
724
+ * `pinned_key_mismatch` and both fingerprints in `details`, never wrapped
725
+ * under the new key, and never a thrown error that would abort the whole
726
+ * call (other recipients still get processed). Whether that mismatch is a
727
+ * legitimate key rotation or a substitution is a product/human decision
728
+ * this SDK does not make unattended.
729
+ *
730
+ * **The gateway directory route does not carry `public_key` yet**
731
+ * (`GET /orgs/v1/:org_id/encryption-keys` — see the doc comment on
732
+ * {@link GitvaultOrgEncryptionKeyEntry}). Until it does, every directory
733
+ * entry is reported under `skipped` with reason `missing_public_key`;
734
+ * this method needs no further change once the gateway ships the field.
735
+ *
736
+ * Best-effort by design at the call site, not here: this method itself
737
+ * either completes (returning a full per-recipient breakdown) or throws
738
+ * (e.g. `GITVAULT_READ_ONLY` when this principal holds no signing key).
739
+ * Callers that want "never block on this" (the deploy hook) wrap the call
740
+ * themselves — see `Gitvault.push`'s `#tryReconcileEnvelopeRecipients`.
741
+ */
742
+ reconcileEnvelopeRecipients(): Promise<GitvaultReconcileEnvelopeRecipientsResult>;
614
743
  private seal;
615
744
  /**
616
745
  * The owner signing seed, or `GITVAULT_READ_ONLY`.
@@ -623,6 +752,8 @@ export declare class GitvaultVault {
623
752
  */
624
753
  signer(): Uint8Array;
625
754
  private writerKeyId;
755
+ /** 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. */
756
+ private signingKeypair;
626
757
  private buildRefState;
627
758
  private buildRetentionRoots;
628
759
  /** 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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAyB3C,OAAO,KAAK,EACV,uBAAuB,EAEvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAG1B,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAE7B,oBAAoB,EAErB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAIV,yBAAyB,EAG1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAwB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAIvG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAKrE,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,eAAO,MAAM,wCAAwC,OAAQ,CAAC;AAC9D,eAAO,MAAM,mCAAmC,QAAS,CAAC;AAC1D,eAAO,MAAM,+BAA+B,QAAS,CAAC;AACtD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AACrD,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AACnD,eAAO,MAAM,0CAA0C,gBAAmB,CAAC;AAC3E,eAAO,MAAM,uCAAuC,YAAc,CAAC;AACnE,eAAO,MAAM,mCAAmC,WAAa,CAAC;AAC9D,eAAO,MAAM,mCAAmC,OAAQ,CAAC;AACzD,eAAO,MAAM,kCAAkC,SAAU,CAAC;AAC1D,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,uHAAuH;AACvH,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAahD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAID,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD,kHAAkH;AAClH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,GAAG,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,qCAAqC;IACpD,2EAA2E;IAC3E,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACjF,4HAA4H;IAC5H,aAAa,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACpC;AAED,2EAA2E;AAC3E,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,uBAAuB,GAAG,kBAAkB,GAAG,eAAe,GAAG,8BAA8B,GAAG,MAAM,CAAC;IACjH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,sBAAsB,EAAE,OAAO,EAAE,qCAAqC,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAiDpM;AAED,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAIlE;AAED,8GAA8G;AAC9G,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAGjG;AAID,iHAAiH;AACjH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED,+FAA+F;AAC/F,wBAAgB,wBAAwB,CAAC,sBAAsB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,SAA8B,GAAG,OAAO,CAGlJ;AAED,MAAM,WAAW,0BAA0B;IACzC,mGAAmG;IACnG,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAChH;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAIvF;AAED,+HAA+H;AAC/H,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,EAAE,OAAO,EAAE,0BAA0B,GAAG,qBAAqB,EAAE,CAepI;AAID,MAAM,WAAW,uBAAuB;IACtC,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,eAAe,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+EAA+E;AAC/E,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAItF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,uBAAuB,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,uBAAuB,CA0BhM;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAE,wBAAwB,GAAG,2BAA2B,GAAG,IAAI,CAI3I;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,sBAAsB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAUxG;AAID,oFAAoF;AACpF,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,iCAAiC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,yGAAyG;AACzG,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,GAAG,MAAM,CAEjG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAOpK;AAID,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,UAAU,CAAC;IACzB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,iBAAiB,EAAE,UAAU,GAAG,MAAM,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,6HAA6H;AAC7H,wBAAgB,cAAc,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAelE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAK3D;AAID,gGAAgG;AAChG,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,8FAA8F;IAC9F,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAExD,kDAAkD;AAClD,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAmBD,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAM3E;AAED,gGAAgG;AAChG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,GAAG,yBAAyB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAWhK;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,yBAAyB,GAAG,MAAM,CAExE;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,UAAU,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,uBAAuB,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,sBAAsB,GAAG,IAAI,CAAA;CAAE,GACxG;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEzF,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,8BAA8B,CAAC;CACzC;AAED;;;;GAIG;AACH,iFAAiF;AACjF,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,kFAAkF;AAClF,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,iGAAiG;IACjG,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,iBAAkB,SAAQ,yBAAyB;IAClE,SAAS,CAAC,OAAO,EAAE,2BAA2B,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACzG,uGAAuG;IACvG,aAAa,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC;QAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC3J,SAAS,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC/E,sBAAsB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACvH,uBAAuB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,sBAAsB,CAAA;KAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACvJ,wBAAwB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,sBAAsB,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrJ,4FAA4F;IAC5F,cAAc,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3E,oFAAoF;IACpF,kBAAkB,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClF;;;;;;;;OAQG;IACH,eAAe,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChG,uBAAuB,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrG,yBAAyB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,oBAAoB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAClL,uBAAuB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,oBAAoB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrK;;;;;;;;OAQG;IACH,iBAAiB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,yBAAyB,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpI,uFAAuF;IACvF,cAAc,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,sBAAsB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;CACzH;AAED,yFAAyF;AACzF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,UAAU,GAAG,eAAe,GAAG,IAAI,CAAC;IACrD,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,2BAA2B,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IACxG,WAAW,EAAE;QACX,KAAK,EAAE;YAAE,oBAAoB,EAAE,MAAM,CAAC;YAAC,gBAAgB,EAAE,MAAM,CAAC;YAAC,sBAAsB,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;QACrK,UAAU,EAAE;YAAE,oBAAoB,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;QAC1G,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1C,CAAC;IACF,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IAC3C,oJAAoJ;IACpJ,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAgBD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,4BAAiC,GAAG,iBAAiB,CAoPzH;AAID,eAAO,MAAM,aAAa;gCACL,MAAM;qCACD,MAAM;uBACpB,MAAM;4BACD,MAAM;kCACA,MAAM;sCACF,MAAM;kCACV,MAAM;4BACZ,MAAM;gCACF,MAAM;IACzB,oHAAoH;mCAC9F,MAAM;CACpB,CAAC;AAIX,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,mGAAmG;IACnG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mJAAmJ;IACnJ,kBAAkB,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CAC1C;AAED,wGAAwG;AACxG,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACtE,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,eAAe,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC/C,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,WAAW,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,sBAAsB,CAAC;IACpC,mFAAmF;IACnF,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,aAAa,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACnC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iHAAiH;IACjH,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,+FAA+F;IAC/F,eAAe,CAAC,EAAE,sBAAsB,GAAG,CAAC,MAAM,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,sBAAsB,GAAG,IAAI,CAAC,CAAC;CAC3H;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,uBAAuB,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC/C,yFAAyF;IACzF,IAAI,EAAE,KAAK,GAAG,YAAY,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,eAAe,EAAE,MAAM,CAAC;IACxB,iIAAiI;IACjI,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iHAAiH;IACjH,8BAA8B,EAAE,MAAM,CAAC;IACvC,kIAAkI;IAClI,IAAI,EAAE,KAAK,GAAG,YAAY,CAAC;IAC3B,+FAA+F;IAC/F,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,kBAAkB,CAAC;IAChC,uJAAuJ;IACvJ,OAAO,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzF,YAAY,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,eAAe,EAAE,MAAM,CAAC;IACxB,uIAAuI;IACvI,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,mCAAmC;IAClD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mGAAmG;IACnG,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2GAA2G;IAC3G,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uBAAuB,EAAE,OAAO,CAAC;IACjC,gHAAgH;IAChH,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,SAAS,EAAE,0BAA0B,CAAC;IACtC,iBAAiB,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACxD,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,gEAAgE;IAChE,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,yFAAyF;AACzF,qBAAa,aAAa;IACxB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAC9D,OAAO,CAAC,YAAY,CAAkE;gBAE1E,OAAO,EAAE,oBAAoB;IAWzC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa;IAMzD,QAAQ,IAAI,gBAAgB;IA0B5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,GAAG;IAKX,6DAA6D;IACvD,OAAO,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAc3E;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,qBAAqB,CAAC;YA4CxC,QAAQ;IAatB,4FAA4F;YAC9E,WAAW;IAgBzB,4FAA4F;IACtF,WAAW,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAgBvD,OAAO,CAAC,IAAI;IAKZ;;;;;;;;OAQG;IACH,MAAM,IAAI,UAAU;IAOpB,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,mBAAmB;IAQ3B,8HAA8H;IACxH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAiBvE,kFAAkF;IAC5E,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIlD;;;;;;;OAOG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOjE;;;;;;;OAOG;IACG,oBAAoB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKnG,OAAO,CAAC,MAAM;IAId;;;;;;;;;OASG;IACH,WAAW,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAIjE,yFAAyF;IACzF,cAAc,CAAC,CAAC,SAAS;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC;IAI3E,OAAO,CAAC,gBAAgB;IAKxB,wIAAwI;IACxI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,UAAU,EAAE,kBAAkB,GAAG,MAAM,EAAE;IAOnH;;;;;OAKG;IACG,eAAe,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,gBAAgB,CAAC;QAAC,eAAe,EAAE,sBAAsB,CAAA;KAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA4C5J,yJAAyJ;IACnJ,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBhI;;;;;;;;;;OAUG;IACG,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mCAAmC,CAAC;IAsDlH;;;;;;;;;OASG;IACG,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,0BAA0B,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;YA+BjH,SAAS;IAWvB;;;;;OAKG;YACW,iBAAiB;IAyF/B,yJAAyJ;IACnJ,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAsBxE;;;;;;;;;;;;;;;;;;OAkBG;IACG,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2BvE;;;;;;;;;;;;;;;;;;OAkBG;IACG,iBAAiB,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,qBAAqB,GAAG,KAAK,CAAA;KAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAoBjH,uHAAuH;YACzG,oBAAoB;IAalC,OAAO,CAAC,QAAQ;IAIhB,qGAAqG;YACvF,KAAK;IAgBnB;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAyD5H,6GAA6G;YAC/F,SAAS;IAoBvB;;;;OAIG;IACG,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,WAAW,EAAE,kBAAkB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CA8CxI;AAED,6JAA6J;AAC7J,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,0BAA0B,EAAE,QAAQ,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAYjJ;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,EAAE,eAAe,EAAE,MAAM,GAAG,sBAAsB,CAGjI;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
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 {
@@ -824,6 +828,138 @@ export class GitvaultVault {
824
828
  this.keystore.updateRepo(this.repoId, { materialized_pin: { generation: state.generation, head_sha256: state.head_sha256, pinned_at: formatGitvaultTimestamp(this.now()) } });
825
829
  return { ...state, ref_state: refState, retention_roots: roots, refs: { ...refState.refs }, roots: roots.roots.map((r) => ({ ...r })), head_target: refState.head_target };
826
830
  }
831
+ // ── envelope recipients (gitvault-human-envelopes task 4.1, the ADD-path workaround) ──
832
+ /**
833
+ * Wrap the vault's CURRENT epoch key to every org member the directory
834
+ * lists but the vault does not yet have a `key_envelope` for.
835
+ *
836
+ * **This is task 1.1's residual WORKAROUND, not the design D5 ideal.** D5
837
+ * describes a recipient-set change as an epoch rotation — "history epochs
838
+ * stay wrapped as they were; a new member reads from their first covered
839
+ * epoch forward" — which needs a protocol revision (task 1, BLOCKED as of
840
+ * 2026-08-26: V0 pins `epoch` to the single constant
841
+ * `GITVAULT_GENESIS_EPOCH` on every head, so there is no "forward" to
842
+ * speak of yet). What this method actually does, legally, without any
843
+ * protocol change: `key_envelope` objects are never head-referenced (not
844
+ * even genesis's own envelope is), so uploading an ADDITIONAL one at
845
+ * `envelopes/<current epoch>/<recipient fingerprint>` for a missing
846
+ * recipient is accepted by the existing generic create-only upload route
847
+ * as-is. The honest consequence: a newly-wrapped member gets the SAME
848
+ * single epoch every existing member already has, which in V0 means the
849
+ * vault's ENTIRE history — not "from here forward." True forward-only
850
+ * semantics wait on task 1's protocol revision; this method does not
851
+ * pretend otherwise.
852
+ *
853
+ * **TOFU pinning (design D4 point 3).** The first time this repo wraps a
854
+ * given `principal_id`, its CURRENT `ek_fingerprint` is pinned in the
855
+ * keystore repo file (`envelope_recipient_pins`). On a later call, a
856
+ * directory entry whose fingerprint no longer matches its pin is a
857
+ * REFUSAL for that recipient ONLY — reported under `skipped` with reason
858
+ * `pinned_key_mismatch` and both fingerprints in `details`, never wrapped
859
+ * under the new key, and never a thrown error that would abort the whole
860
+ * call (other recipients still get processed). Whether that mismatch is a
861
+ * legitimate key rotation or a substitution is a product/human decision
862
+ * this SDK does not make unattended.
863
+ *
864
+ * **The gateway directory route does not carry `public_key` yet**
865
+ * (`GET /orgs/v1/:org_id/encryption-keys` — see the doc comment on
866
+ * {@link GitvaultOrgEncryptionKeyEntry}). Until it does, every directory
867
+ * entry is reported under `skipped` with reason `missing_public_key`;
868
+ * this method needs no further change once the gateway ships the field.
869
+ *
870
+ * Best-effort by design at the call site, not here: this method itself
871
+ * either completes (returning a full per-recipient breakdown) or throws
872
+ * (e.g. `GITVAULT_READ_ONLY` when this principal holds no signing key).
873
+ * Callers that want "never block on this" (the deploy hook) wrap the call
874
+ * themselves — see `Gitvault.push`'s `#tryReconcileEnvelopeRecipients`.
875
+ */
876
+ async reconcileEnvelopeRecipients() {
877
+ const repo = this.repoFile();
878
+ const epoch = this.epoch();
879
+ const signer = this.signingKeypair();
880
+ const [directory, coverage] = await Promise.all([
881
+ this.transport.listOrgEncryptionKeys({ org_id: repo.org_id }),
882
+ this.transport.listEnvelopeRecipients({ repo_id: this.repoId }),
883
+ ]);
884
+ const covered = new Set(coverage.recipient_fingerprints);
885
+ const pins = { ...(repo.envelope_recipient_pins ?? {}) };
886
+ const wrapped = [];
887
+ const alreadyCovered = [];
888
+ const skipped = [];
889
+ let pinsChanged = false;
890
+ for (const entry of directory.keys) {
891
+ if (covered.has(entry.ek_fingerprint)) {
892
+ alreadyCovered.push(entry.ek_fingerprint);
893
+ continue;
894
+ }
895
+ const pinned = pins[entry.principal_id];
896
+ if (pinned !== undefined && pinned !== entry.ek_fingerprint) {
897
+ 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 } });
898
+ continue;
899
+ }
900
+ if (typeof entry.public_key !== "string" || entry.public_key.length === 0) {
901
+ skipped.push({ principal_id: entry.principal_id, ek_fingerprint: entry.ek_fingerprint, reason: "missing_public_key" });
902
+ continue;
903
+ }
904
+ let recipientPublicKey;
905
+ try {
906
+ recipientPublicKey = fromBase64url(entry.public_key, "public_key");
907
+ }
908
+ catch {
909
+ skipped.push({ principal_id: entry.principal_id, ek_fingerprint: entry.ek_fingerprint, reason: "invalid_public_key" });
910
+ continue;
911
+ }
912
+ // Defense in depth: a directory row whose printed fingerprint does not
913
+ // derive from its own public_key is corrupt data, not a valid
914
+ // recipient — fail loud here rather than let `sealKeyEnvelope` (which
915
+ // derives the fingerprint itself and never trusts a caller-supplied
916
+ // one) silently seal under a fingerprint that disagrees with the one
917
+ // the directory printed.
918
+ const derived = ekFingerprint(recipientPublicKey);
919
+ if (derived !== entry.ek_fingerprint) {
920
+ skipped.push({ principal_id: entry.principal_id, ek_fingerprint: entry.ek_fingerprint, reason: "invalid_public_key", details: { derived_fingerprint: derived } });
921
+ continue;
922
+ }
923
+ const sealed = await sealKeyEnvelope({
924
+ k_repo: this.kRepo(),
925
+ repo_id: this.repoId,
926
+ epoch,
927
+ recipient_public_key: recipientPublicKey,
928
+ signer,
929
+ created_at: formatGitvaultTimestamp(this.now()),
930
+ });
931
+ try {
932
+ await this.transport.putObject({
933
+ repo_id: this.repoId,
934
+ path: gitvaultPaths.envelope(epoch, sealed.receipt.recipient_fingerprint),
935
+ bytes: sealed.stored_bytes,
936
+ expected_sha256: sealed.stored_bytes_sha256,
937
+ expected_size_bytes: sealed.size_bytes,
938
+ });
939
+ wrapped.push({ principal_id: entry.principal_id, ek_fingerprint: entry.ek_fingerprint });
940
+ }
941
+ catch (e) {
942
+ // A concurrent reconcile (another machine/session) may have wrapped
943
+ // the SAME recipient first — HPKE seal is randomized, so two valid
944
+ // wraps of the same K_repo to the same recipient produce DIFFERENT
945
+ // ciphertext bytes, and the create-only path's read-and-compare
946
+ // reports that as `GITVAULT_OBJECT_EXISTS_DIFFERENT` even though the
947
+ // recipient is now genuinely covered. Treat exactly that code as a
948
+ // benign race, not a failure; anything else propagates.
949
+ if (isRun402Error(e) && e.code === "GITVAULT_OBJECT_EXISTS_DIFFERENT") {
950
+ alreadyCovered.push(entry.ek_fingerprint);
951
+ }
952
+ else {
953
+ throw e;
954
+ }
955
+ }
956
+ pins[entry.principal_id] = entry.ek_fingerprint;
957
+ pinsChanged = true;
958
+ }
959
+ if (pinsChanged)
960
+ this.keystore.updateRepo(this.repoId, { envelope_recipient_pins: pins });
961
+ return { repo_id: this.repoId, org_id: repo.org_id, epoch, wrapped, already_covered: alreadyCovered, skipped };
962
+ }
827
963
  // ── object building ──
828
964
  seal(kind, objectId, plaintext, path) {
829
965
  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 +982,14 @@ export class GitvaultVault {
846
982
  return kp.seed;
847
983
  }
848
984
  writerKeyId() { return this.keystore.ensureIdentity().signing_fingerprint; }
985
+ /** 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. */
986
+ signingKeypair() {
987
+ const identity = this.keystore.ensureIdentity();
988
+ const kp = this.keystore.signingKeypair(identity);
989
+ if (!kp)
990
+ 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" }]);
991
+ return kp;
992
+ }
849
993
  buildRefState(generation, refs, headTarget) {
850
994
  if (headTarget.kind === "symref" && !BRANCH_REF_RE.test(headTarget.ref))
851
995
  fail("REFNAME_UNSUPPORTED", `head_target symref must name a refs/heads/* branch: ${headTarget.ref}`, "building ref_state");