@run402/sdk 4.94.0 → 4.96.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.
- package/README.md +44 -44
- package/core-dist/keystore.d.ts +1 -1
- package/core-dist/keystore.js +1 -1
- package/dist/actions.d.ts +3 -3
- package/dist/actions.d.ts.map +1 -1
- package/dist/app-up.d.ts +2 -2
- package/dist/app-up.d.ts.map +1 -1
- package/dist/config.d.ts +1 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/credentials.d.ts +1 -1
- package/dist/errors.d.ts +6 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/namespaces/admin.d.ts +1 -1
- package/dist/namespaces/admin.d.ts.map +1 -1
- package/dist/namespaces/ai.d.ts +1 -1
- package/dist/namespaces/ai.js +2 -2
- package/dist/namespaces/ai.js.map +1 -1
- package/dist/namespaces/assets.js +1 -1
- package/dist/namespaces/assets.js.map +1 -1
- package/dist/namespaces/ci.js +3 -3
- package/dist/namespaces/ci.js.map +1 -1
- package/dist/namespaces/deploy.d.ts +5 -5
- package/dist/namespaces/deploy.d.ts.map +1 -1
- package/dist/namespaces/deploy.js +45 -46
- package/dist/namespaces/deploy.js.map +1 -1
- package/dist/namespaces/deploy.types.d.ts +19 -19
- package/dist/namespaces/deploy.types.d.ts.map +1 -1
- package/dist/namespaces/domains.d.ts +10 -2
- package/dist/namespaces/domains.d.ts.map +1 -1
- package/dist/namespaces/domains.js +10 -5
- package/dist/namespaces/domains.js.map +1 -1
- package/dist/namespaces/errors.js +1 -1
- package/dist/namespaces/functions.js +1 -1
- package/dist/namespaces/functions.js.map +1 -1
- package/dist/namespaces/org.d.ts +2 -2
- package/dist/namespaces/org.js +2 -2
- package/dist/namespaces/org.types.d.ts +3 -3
- package/dist/namespaces/pay.js +1 -1
- package/dist/namespaces/{gitvault.d.ts → repos.d.ts} +438 -451
- package/dist/namespaces/repos.d.ts.map +1 -0
- package/dist/namespaces/{gitvault.js → repos.js} +454 -462
- package/dist/namespaces/repos.js.map +1 -0
- package/dist/namespaces/rooms.js +2 -2
- package/dist/namespaces/rooms.js.map +1 -1
- package/dist/namespaces/session.d.ts +2 -2
- package/dist/namespaces/session.d.ts.map +1 -1
- package/dist/namespaces/session.js +2 -2
- package/dist/namespaces/session.js.map +1 -1
- package/dist/namespaces/tier.d.ts +4 -4
- package/dist/namespaces/tier.d.ts.map +1 -1
- package/dist/namespaces/transfers.d.ts +46 -15
- package/dist/namespaces/transfers.d.ts.map +1 -1
- package/dist/namespaces/transfers.js.map +1 -1
- package/dist/namespaces/{gitvault.crypto.d.ts → vault.crypto.d.ts} +141 -141
- package/dist/namespaces/vault.crypto.d.ts.map +1 -0
- package/dist/namespaces/{gitvault.crypto.js → vault.crypto.js} +173 -173
- package/dist/namespaces/vault.crypto.js.map +1 -0
- package/dist/namespaces/{gitvault.types.d.ts → vault.types.d.ts} +136 -136
- package/dist/namespaces/vault.types.d.ts.map +1 -0
- package/dist/namespaces/{gitvault.types.js → vault.types.js} +4 -4
- package/dist/namespaces/vault.types.js.map +1 -0
- package/dist/node/actions-node.js +8 -8
- package/dist/node/actions-node.js.map +1 -1
- package/dist/node/assets-node.js +6 -6
- package/dist/node/assets-node.js.map +1 -1
- package/dist/node/bearer-redeem-key.d.ts +1 -1
- package/dist/node/bearer-redeem-key.js +5 -5
- package/dist/node/bearer-redeem-key.js.map +1 -1
- package/dist/node/ci.js +1 -1
- package/dist/node/ci.js.map +1 -1
- package/dist/node/credentials.d.ts +1 -1
- package/dist/node/credentials.js +1 -1
- package/dist/node/deploy-manifest.d.ts +3 -5
- package/dist/node/deploy-manifest.d.ts.map +1 -1
- package/dist/node/deploy-manifest.js +3 -12
- package/dist/node/deploy-manifest.js.map +1 -1
- package/dist/node/http-dispatcher.js +5 -5
- package/dist/node/http-dispatcher.js.map +1 -1
- package/dist/node/index.d.ts +29 -29
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +39 -39
- package/dist/node/index.js.map +1 -1
- package/dist/node/manifest-export.js +2 -2
- package/dist/node/manifest-export.js.map +1 -1
- package/dist/node/org-adopt.js +1 -1
- package/dist/node/org-adopt.js.map +1 -1
- package/dist/node/sites-node.js +1 -1
- package/dist/node/sites-node.js.map +1 -1
- package/dist/node/{gitvault-address.d.ts → vault-address.d.ts} +42 -42
- package/dist/node/vault-address.d.ts.map +1 -0
- package/dist/node/{gitvault-address.js → vault-address.js} +43 -43
- package/dist/node/vault-address.js.map +1 -0
- package/dist/node/{gitvault-apply.d.ts → vault-apply.d.ts} +27 -27
- package/dist/node/vault-apply.d.ts.map +1 -0
- package/dist/node/{gitvault-apply.js → vault-apply.js} +38 -38
- package/dist/node/vault-apply.js.map +1 -0
- package/dist/node/vault-byo-config.d.ts +29 -0
- package/dist/node/vault-byo-config.d.ts.map +1 -0
- package/dist/node/{gitvault-byo-config.js → vault-byo-config.js} +18 -18
- package/dist/node/vault-byo-config.js.map +1 -0
- package/dist/node/vault-byo-probe.d.ts +20 -0
- package/dist/node/vault-byo-probe.d.ts.map +1 -0
- package/dist/node/vault-byo-probe.js +57 -0
- package/dist/node/vault-byo-probe.js.map +1 -0
- package/dist/node/{gitvault-creation-journal.d.ts → vault-creation-journal.d.ts} +69 -69
- package/dist/node/vault-creation-journal.d.ts.map +1 -0
- package/dist/node/{gitvault-creation-journal.js → vault-creation-journal.js} +54 -54
- package/dist/node/vault-creation-journal.js.map +1 -0
- package/dist/node/{gitvault-degraded-read.d.ts → vault-degraded-read.d.ts} +34 -34
- package/dist/node/vault-degraded-read.d.ts.map +1 -0
- package/dist/node/{gitvault-degraded-read.js → vault-degraded-read.js} +24 -24
- package/dist/node/vault-degraded-read.js.map +1 -0
- package/dist/node/{gitvault-deploy.d.ts → vault-deploy.d.ts} +67 -67
- package/dist/node/vault-deploy.d.ts.map +1 -0
- package/dist/node/{gitvault-deploy.js → vault-deploy.js} +27 -27
- package/dist/node/vault-deploy.js.map +1 -0
- package/dist/node/{gitvault-edge-fetch.d.ts → vault-edge-fetch.d.ts} +9 -9
- package/dist/node/vault-edge-fetch.d.ts.map +1 -0
- package/dist/node/{gitvault-edge-fetch.js → vault-edge-fetch.js} +11 -11
- package/dist/node/vault-edge-fetch.js.map +1 -0
- package/dist/node/{gitvault-handoff.d.ts → vault-handoff.d.ts} +9 -9
- package/dist/node/vault-handoff.d.ts.map +1 -0
- package/dist/node/{gitvault-handoff.js → vault-handoff.js} +24 -24
- package/dist/node/vault-handoff.js.map +1 -0
- package/dist/node/{gitvault-keystore.d.ts → vault-keystore.d.ts} +87 -77
- package/dist/node/vault-keystore.d.ts.map +1 -0
- package/dist/node/{gitvault-keystore.js → vault-keystore.js} +105 -68
- package/dist/node/vault-keystore.js.map +1 -0
- package/dist/node/{gitvault-member-bundle.d.ts → vault-member-bundle.d.ts} +17 -17
- package/dist/node/vault-member-bundle.d.ts.map +1 -0
- package/dist/node/{gitvault-member-bundle.js → vault-member-bundle.js} +11 -11
- package/dist/node/vault-member-bundle.js.map +1 -0
- package/dist/node/{gitvault-mirror-backend.d.ts → vault-mirror-backend.d.ts} +26 -26
- package/dist/node/vault-mirror-backend.d.ts.map +1 -0
- package/dist/node/{gitvault-mirror-backend.js → vault-mirror-backend.js} +25 -25
- package/dist/node/vault-mirror-backend.js.map +1 -0
- package/dist/node/{gitvault-mirror-config.d.ts → vault-mirror-config.d.ts} +23 -23
- package/dist/node/vault-mirror-config.d.ts.map +1 -0
- package/dist/node/{gitvault-mirror-config.js → vault-mirror-config.js} +16 -16
- package/dist/node/vault-mirror-config.js.map +1 -0
- package/dist/node/{gitvault-mirror.d.ts → vault-mirror.d.ts} +36 -36
- package/dist/node/vault-mirror.d.ts.map +1 -0
- package/dist/node/{gitvault-mirror.js → vault-mirror.js} +75 -75
- package/dist/node/vault-mirror.js.map +1 -0
- package/dist/node/{gitvault-native-crypto.d.ts → vault-native-crypto.d.ts} +10 -10
- package/dist/node/vault-native-crypto.d.ts.map +1 -0
- package/dist/node/{gitvault-native-crypto.js → vault-native-crypto.js} +16 -16
- package/dist/node/vault-native-crypto.js.map +1 -0
- package/dist/node/{gitvault-open-or-create.d.ts → vault-open-or-create.d.ts} +16 -16
- package/dist/node/vault-open-or-create.d.ts.map +1 -0
- package/dist/node/{gitvault-open-or-create.js → vault-open-or-create.js} +10 -10
- package/dist/node/vault-open-or-create.js.map +1 -0
- package/dist/node/{gitvault-prewarm.d.ts → vault-prewarm.d.ts} +13 -13
- package/dist/node/vault-prewarm.d.ts.map +1 -0
- package/dist/node/{gitvault-prewarm.js → vault-prewarm.js} +25 -25
- package/dist/node/vault-prewarm.js.map +1 -0
- package/dist/node/{gitvault-profile-scan.d.ts → vault-profile-scan.d.ts} +3 -3
- package/dist/node/vault-profile-scan.d.ts.map +1 -0
- package/dist/node/{gitvault-profile-scan.js → vault-profile-scan.js} +12 -12
- package/dist/node/vault-profile-scan.js.map +1 -0
- package/dist/node/{gitvault-prune.d.ts → vault-prune.d.ts} +61 -61
- package/dist/node/vault-prune.d.ts.map +1 -0
- package/dist/node/{gitvault-prune.js → vault-prune.js} +34 -34
- package/dist/node/vault-prune.js.map +1 -0
- package/dist/node/{gitvault-publication.d.ts → vault-publication.d.ts} +399 -399
- package/dist/node/vault-publication.d.ts.map +1 -0
- package/dist/node/{gitvault-publication.js → vault-publication.js} +584 -584
- package/dist/node/vault-publication.js.map +1 -0
- package/dist/node/{gitvault-push-to-create.d.ts → vault-push-to-create.d.ts} +16 -16
- package/dist/node/vault-push-to-create.d.ts.map +1 -0
- package/dist/node/{gitvault-push-to-create.js → vault-push-to-create.js} +9 -9
- package/dist/node/vault-push-to-create.js.map +1 -0
- package/dist/node/{gitvault-recover.d.ts → vault-recover.d.ts} +50 -50
- package/dist/node/vault-recover.d.ts.map +1 -0
- package/dist/node/{gitvault-recover.js → vault-recover.js} +84 -84
- package/dist/node/vault-recover.js.map +1 -0
- package/dist/node/{gitvault-restore.d.ts → vault-restore.d.ts} +8 -8
- package/dist/node/vault-restore.d.ts.map +1 -0
- package/dist/node/{gitvault-restore.js → vault-restore.js} +11 -11
- package/dist/node/vault-restore.js.map +1 -0
- package/dist/node/{gitvault-snapshot.d.ts → vault-snapshot.d.ts} +48 -48
- package/dist/node/vault-snapshot.d.ts.map +1 -0
- package/dist/node/{gitvault-snapshot.js → vault-snapshot.js} +61 -61
- package/dist/node/vault-snapshot.js.map +1 -0
- package/dist/node/{gitvault-writer-state.d.ts → vault-writer-state.d.ts} +8 -8
- package/dist/node/vault-writer-state.d.ts.map +1 -0
- package/dist/node/{gitvault-writer-state.js → vault-writer-state.js} +15 -15
- package/dist/node/vault-writer-state.js.map +1 -0
- package/dist/node/workflow-output.js +4 -4
- package/dist/node/workflow-output.js.map +1 -1
- package/dist/scoped.d.ts +8 -8
- package/dist/scoped.d.ts.map +1 -1
- package/dist/scoped.js +3 -3
- package/dist/scoped.js.map +1 -1
- package/package.json +1 -1
- package/dist/namespaces/gitvault.crypto.d.ts.map +0 -1
- package/dist/namespaces/gitvault.crypto.js.map +0 -1
- package/dist/namespaces/gitvault.d.ts.map +0 -1
- package/dist/namespaces/gitvault.js.map +0 -1
- package/dist/namespaces/gitvault.types.d.ts.map +0 -1
- package/dist/namespaces/gitvault.types.js.map +0 -1
- package/dist/node/gitvault-address.d.ts.map +0 -1
- package/dist/node/gitvault-address.js.map +0 -1
- package/dist/node/gitvault-apply.d.ts.map +0 -1
- package/dist/node/gitvault-apply.js.map +0 -1
- package/dist/node/gitvault-byo-config.d.ts +0 -29
- package/dist/node/gitvault-byo-config.d.ts.map +0 -1
- package/dist/node/gitvault-byo-config.js.map +0 -1
- package/dist/node/gitvault-byo-probe.d.ts +0 -20
- package/dist/node/gitvault-byo-probe.d.ts.map +0 -1
- package/dist/node/gitvault-byo-probe.js +0 -57
- package/dist/node/gitvault-byo-probe.js.map +0 -1
- package/dist/node/gitvault-creation-journal.d.ts.map +0 -1
- package/dist/node/gitvault-creation-journal.js.map +0 -1
- package/dist/node/gitvault-degraded-read.d.ts.map +0 -1
- package/dist/node/gitvault-degraded-read.js.map +0 -1
- package/dist/node/gitvault-deploy.d.ts.map +0 -1
- package/dist/node/gitvault-deploy.js.map +0 -1
- package/dist/node/gitvault-edge-fetch.d.ts.map +0 -1
- package/dist/node/gitvault-edge-fetch.js.map +0 -1
- package/dist/node/gitvault-handoff.d.ts.map +0 -1
- package/dist/node/gitvault-handoff.js.map +0 -1
- package/dist/node/gitvault-keystore.d.ts.map +0 -1
- package/dist/node/gitvault-keystore.js.map +0 -1
- package/dist/node/gitvault-member-bundle.d.ts.map +0 -1
- package/dist/node/gitvault-member-bundle.js.map +0 -1
- package/dist/node/gitvault-mirror-backend.d.ts.map +0 -1
- package/dist/node/gitvault-mirror-backend.js.map +0 -1
- package/dist/node/gitvault-mirror-config.d.ts.map +0 -1
- package/dist/node/gitvault-mirror-config.js.map +0 -1
- package/dist/node/gitvault-mirror.d.ts.map +0 -1
- package/dist/node/gitvault-mirror.js.map +0 -1
- package/dist/node/gitvault-native-crypto.d.ts.map +0 -1
- package/dist/node/gitvault-native-crypto.js.map +0 -1
- package/dist/node/gitvault-open-or-create.d.ts.map +0 -1
- package/dist/node/gitvault-open-or-create.js.map +0 -1
- package/dist/node/gitvault-prewarm.d.ts.map +0 -1
- package/dist/node/gitvault-prewarm.js.map +0 -1
- package/dist/node/gitvault-profile-scan.d.ts.map +0 -1
- package/dist/node/gitvault-profile-scan.js.map +0 -1
- package/dist/node/gitvault-prune.d.ts.map +0 -1
- package/dist/node/gitvault-prune.js.map +0 -1
- package/dist/node/gitvault-publication.d.ts.map +0 -1
- package/dist/node/gitvault-publication.js.map +0 -1
- package/dist/node/gitvault-push-to-create.d.ts.map +0 -1
- package/dist/node/gitvault-push-to-create.js.map +0 -1
- package/dist/node/gitvault-recover.d.ts.map +0 -1
- package/dist/node/gitvault-recover.js.map +0 -1
- package/dist/node/gitvault-restore.d.ts.map +0 -1
- package/dist/node/gitvault-restore.js.map +0 -1
- package/dist/node/gitvault-snapshot.d.ts.map +0 -1
- package/dist/node/gitvault-snapshot.js.map +0 -1
- package/dist/node/gitvault-writer-state.d.ts.map +0 -1
- package/dist/node/gitvault-writer-state.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* vault — the principal keystore (protocol rev 41 §5.1; task 5.2).
|
|
3
3
|
*
|
|
4
4
|
* Layout (under the active profile's config dir, beside the project-key cache
|
|
5
5
|
* `core/src/keystore.ts` manages — `RUN402_CONFIG_DIR` / `RUN402_WALLET` aware):
|
|
6
6
|
*
|
|
7
|
-
* <config>/
|
|
7
|
+
* <config>/vault/
|
|
8
8
|
* identity.json Ed25519 seed + X25519 private key (0600)
|
|
9
9
|
* repos/<repo_id>.json K_repo, trust pin, dual pins, last ref transaction (0600)
|
|
10
10
|
* repos/<repo_id>.lock/ per-repo lock (mkdir-atomic, 0700)
|
|
@@ -19,16 +19,16 @@
|
|
|
19
19
|
* is a named finding, never silent.
|
|
20
20
|
*
|
|
21
21
|
* Transitions (protocol §5.1 partial-loss table) are DERIVED by
|
|
22
|
-
* {@link
|
|
22
|
+
* {@link VaultKeystore.assess} and acted on by explicit methods — the
|
|
23
23
|
* keystore never guesses:
|
|
24
24
|
* - repo file lost + identity intact → `restoreRepoFromEnvelope` (own envelope)
|
|
25
25
|
* - signing key lost, K_repo held → `read_only` (clear report)
|
|
26
26
|
* - stale pin → `stale_pin` (re-verify from genesis; 5.4)
|
|
27
27
|
* - whole keystore lost → `VAULT_UNRECOVERABLE` (§0, verbatim)
|
|
28
28
|
*/
|
|
29
|
-
import type {
|
|
29
|
+
import type { VaultEncryptionKeypair, VaultKeyEnvelope, VaultRecoveryReceipt, VaultSigningKeypair, VaultGenesis } from "../namespaces/vault.types.js";
|
|
30
30
|
/** `identity.json` — the principal's two private keys. Either half MAY be absent after partial loss. */
|
|
31
|
-
export interface
|
|
31
|
+
export interface VaultIdentityFile {
|
|
32
32
|
version: 1;
|
|
33
33
|
/** Ed25519 32-byte seed, lowercase hex. Absent ⇒ the signing key is lost (read-only principal). */
|
|
34
34
|
signing_seed_hex?: string;
|
|
@@ -53,18 +53,18 @@ export interface GitvaultIdentityFile {
|
|
|
53
53
|
created_at: string;
|
|
54
54
|
}
|
|
55
55
|
/** The dual pins (protocol §6.4): the newest authenticated head and its generation. */
|
|
56
|
-
export interface
|
|
56
|
+
export interface VaultHeadPin {
|
|
57
57
|
generation: string;
|
|
58
58
|
head_sha256: string;
|
|
59
59
|
pinned_at: string;
|
|
60
60
|
}
|
|
61
61
|
/** `repos/<repo_id>.json` — everything per-vault the principal must not lose. */
|
|
62
|
-
export interface
|
|
62
|
+
export interface VaultRepoFile {
|
|
63
63
|
version: 1;
|
|
64
64
|
repo_id: string;
|
|
65
65
|
org_id: string;
|
|
66
66
|
project_id: string;
|
|
67
|
-
/** Raw 32-byte secret for {@link
|
|
67
|
+
/** Raw 32-byte secret for {@link VaultRepoFile.epoch} (`K_repo`/`K_1` pre-rotation, `K_e` after one), lowercase hex. */
|
|
68
68
|
k_repo_hex: string;
|
|
69
69
|
/** The current epoch — `0000000000000001` until this vault's first rotation (D194, rev 42); advances on every rotation this principal drove or opened its own envelope for. */
|
|
70
70
|
epoch: string;
|
|
@@ -83,13 +83,13 @@ export interface GitvaultRepoFile {
|
|
|
83
83
|
/** Trust pin: the admitted genesis stored-bytes hash. */
|
|
84
84
|
genesis_sha256: string;
|
|
85
85
|
/** `highest_authenticated` (§6.4): chain-verified; a listing below it is `GENERATION_REGRESSION`. `null` until the first head is authenticated. */
|
|
86
|
-
head_pin:
|
|
86
|
+
head_pin: VaultHeadPin | null;
|
|
87
87
|
/** `highest_materialized` (§6.4): decrypted + applied — the ONLY push base. Absent/`null` ⇒ never materialized. */
|
|
88
|
-
materialized_pin?:
|
|
88
|
+
materialized_pin?: VaultHeadPin | null;
|
|
89
89
|
/** The verified-prefix watermark of a budget-interrupted verification (§9.3 — resumable). Absent/`null` when none is pending. */
|
|
90
|
-
verified_prefix?:
|
|
90
|
+
verified_prefix?: VaultHeadPin | null;
|
|
91
91
|
/**
|
|
92
|
-
*
|
|
92
|
+
* vault-clone-scaling (bench P3): the newest checkpoint coverage this
|
|
93
93
|
* checkout has LOCALLY learned — from pushing a checkpoint-form head,
|
|
94
94
|
* walking past a checkpoint head, a genesis-anchored walk that saw none
|
|
95
95
|
* (proving coverage = genesis), or a restore's checkpoint apply. Feeds
|
|
@@ -99,24 +99,24 @@ export interface GitvaultRepoFile {
|
|
|
99
99
|
*/
|
|
100
100
|
checkpoint_covers_through?: string | null;
|
|
101
101
|
/**
|
|
102
|
-
*
|
|
102
|
+
* vault-object-host-predial (design D1): the object-store ORIGINS
|
|
103
103
|
* (`scheme://host` — never a path, query, key, or credential) this
|
|
104
104
|
* checkout has observed a presigned or edge URL actually served bytes
|
|
105
105
|
* from, most-recently-observed first, deduped, capped at
|
|
106
|
-
* {@link
|
|
106
|
+
* {@link VAULT_OBJECT_STORE_ORIGINS_CAP}. Same locally-learned,
|
|
107
107
|
* monotonic-in-usefulness pattern as {@link checkpoint_covers_through}:
|
|
108
108
|
* absent/`null`/`[]` means nothing is known yet (a first-ever session,
|
|
109
109
|
* byte-identical to before this field existed) and is never protocol
|
|
110
|
-
* state — it feeds the connection prewarm ONLY (`
|
|
111
|
-
* in `
|
|
110
|
+
* state — it feeds the connection prewarm ONLY (`predialVaultObjectStore`
|
|
111
|
+
* in `vault-prewarm.ts`), never verification, never a source of truth
|
|
112
112
|
* for where an object actually lives. A stale entry (bucket migrated)
|
|
113
113
|
* costs at most one harmless background dial and is overwritten by the
|
|
114
114
|
* next observed fetch.
|
|
115
115
|
*/
|
|
116
116
|
object_store_origins?: string[];
|
|
117
117
|
/**
|
|
118
|
-
* TOFU pins for {@link
|
|
119
|
-
* (
|
|
118
|
+
* TOFU pins for {@link Vault.reconcileEnvelopeRecipients}
|
|
119
|
+
* (vault-human-envelopes design D4 point 3): `principal_id ->` the
|
|
120
120
|
* `ek_` fingerprint this repo last wrapped a `key_envelope` for (or
|
|
121
121
|
* observed already covering the vault). A later reconcile whose org
|
|
122
122
|
* directory reports a DIFFERENT fingerprint for the same `principal_id`
|
|
@@ -127,9 +127,9 @@ export interface GitvaultRepoFile {
|
|
|
127
127
|
/**
|
|
128
128
|
* The MOST RECENT `recipient_pin_manifest` this principal itself built,
|
|
129
129
|
* signed, and successfully admitted (D197) — via {@link
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
* short-circuit ONLY: {@link
|
|
130
|
+
* Vault.publishPinManifestUpdate} or {@link
|
|
131
|
+
* Vault.rotateEpoch}'s `pending_confirmations` fold. Read-side
|
|
132
|
+
* short-circuit ONLY: {@link Vault} `readPinManifestObject`
|
|
133
133
|
* consults this before a network `object-reads` round trip, and uses it
|
|
134
134
|
* ONLY when `pin_manifest_version` + `stored_bytes_sha256` match the
|
|
135
135
|
* receipt it is resolving — never as a substitute for verification of a
|
|
@@ -151,9 +151,9 @@ export interface GitvaultRepoFile {
|
|
|
151
151
|
}[];
|
|
152
152
|
} | null;
|
|
153
153
|
/**
|
|
154
|
-
*
|
|
154
|
+
* vault-multi-writer rev 47 (protocol §4.15) — the writer-set analog of
|
|
155
155
|
* {@link head_pin}: the chain-replayed writer state as of THIS repo's own
|
|
156
|
-
* `head_pin`/`verified_prefix` generation, persisted so `
|
|
156
|
+
* `head_pin`/`verified_prefix` generation, persisted so `Vault.verifyToNewest`
|
|
157
157
|
* never has to re-walk the writer set from genesis on every call. Advances
|
|
158
158
|
* in lockstep with `head_pin`/`verified_prefix` — always at the SAME
|
|
159
159
|
* generation, never ahead or behind. `null` until the first `verifyToNewest`
|
|
@@ -174,7 +174,7 @@ export interface GitvaultRepoFile {
|
|
|
174
174
|
pinned_at: string;
|
|
175
175
|
} | null;
|
|
176
176
|
/**
|
|
177
|
-
*
|
|
177
|
+
* vault-multi-writer rev 47 — THIS principal's own relationship to the
|
|
178
178
|
* chain-verified `writer_set_pin` above, as of the last time it was
|
|
179
179
|
* computed (`repos view`/`doctor`/reconcile — task 5.7). `"pending"`: a
|
|
180
180
|
* claimed handoff or a directory publish is waiting on the actual
|
|
@@ -187,7 +187,7 @@ export interface GitvaultRepoFile {
|
|
|
187
187
|
*/
|
|
188
188
|
writer_status?: "pending" | "active" | "not_admitted" | "removed" | null;
|
|
189
189
|
/**
|
|
190
|
-
*
|
|
190
|
+
* vault-multi-writer rev 47 (task 5.6) — set by `resume()` the moment a
|
|
191
191
|
* handoff claim response's `writer_admission_grant` is verified and
|
|
192
192
|
* persisted, BEFORE the recipient's own `add_writer_key{"handoff"}`
|
|
193
193
|
* activation push lands on-chain; cleared once that push is admitted
|
|
@@ -210,33 +210,33 @@ export interface GitvaultRepoFile {
|
|
|
210
210
|
updated_at: string;
|
|
211
211
|
}
|
|
212
212
|
/** One `audit.log` line. */
|
|
213
|
-
export interface
|
|
213
|
+
export interface VaultAuditEntry {
|
|
214
214
|
at: string;
|
|
215
|
-
event:
|
|
215
|
+
event: VaultAuditEvent;
|
|
216
216
|
repo_id?: string;
|
|
217
217
|
details?: Record<string, unknown>;
|
|
218
218
|
}
|
|
219
|
-
export type
|
|
219
|
+
export type VaultAuditEvent = "keystore_opened" | "identity_created" | "identity_principal_bound" | "repo_saved" | "repo_restored_from_envelope" | "recovery_receipt_stored" | "permission_finding" | "lock_acquired" | "lock_released" | "lock_stale_reclaimed" | "transition_assessed" | "journal_stage" | "epoch_rotation_recorded";
|
|
220
220
|
/** A permission-audit finding (never fatal by default; surfaced to doctor). */
|
|
221
|
-
export interface
|
|
221
|
+
export interface VaultPermissionFinding {
|
|
222
222
|
path: string;
|
|
223
223
|
problem: "world_or_group_accessible" | "symlink" | "not_owned_by_user" | "missing";
|
|
224
224
|
mode?: string;
|
|
225
225
|
}
|
|
226
226
|
/** The §5.1 partial-loss transition the keystore is in for one vault. */
|
|
227
|
-
export type
|
|
227
|
+
export type VaultKeystoreState = {
|
|
228
228
|
state: "ready";
|
|
229
|
-
repo:
|
|
229
|
+
repo: VaultRepoFile;
|
|
230
230
|
} | {
|
|
231
231
|
state: "repo_state_lost_identity_intact";
|
|
232
232
|
next_action: "restore_from_envelope";
|
|
233
233
|
} | {
|
|
234
234
|
state: "read_only";
|
|
235
|
-
repo:
|
|
235
|
+
repo: VaultRepoFile;
|
|
236
236
|
reason: "signing_key_lost";
|
|
237
237
|
} | {
|
|
238
238
|
state: "stale_pin";
|
|
239
|
-
repo:
|
|
239
|
+
repo: VaultRepoFile;
|
|
240
240
|
next_action: "reverify_from_genesis";
|
|
241
241
|
} | {
|
|
242
242
|
state: "unrecoverable";
|
|
@@ -244,26 +244,36 @@ export type GitvaultKeystoreState = {
|
|
|
244
244
|
statement: string;
|
|
245
245
|
doctor_text: string;
|
|
246
246
|
};
|
|
247
|
-
export interface
|
|
248
|
-
/** Override the keystore root (tests). Defaults to `<config dir>/
|
|
247
|
+
export interface VaultKeystoreOptions {
|
|
248
|
+
/** Override the keystore root (tests). Defaults to `<config dir>/vault`. */
|
|
249
249
|
rootDir?: string;
|
|
250
250
|
/** Clock injection (tests). */
|
|
251
251
|
now?: () => Date;
|
|
252
|
-
/** When true, a permission finding on open throws `
|
|
252
|
+
/** When true, a permission finding on open throws `VAULT_KEYSTORE_PERMISSIONS` instead of only auditing. */
|
|
253
253
|
strictPermissions?: boolean;
|
|
254
254
|
}
|
|
255
|
-
export interface
|
|
255
|
+
export interface VaultLockOptions {
|
|
256
256
|
/** How long a lock is considered live before it is reclaimed as stale (ms). Default 10 min. */
|
|
257
257
|
staleAfterMs?: number;
|
|
258
|
-
/** Total wait budget before `
|
|
258
|
+
/** Total wait budget before `VAULT_KEYSTORE_LOCKED` (ms). Default 30 s. */
|
|
259
259
|
timeoutMs?: number;
|
|
260
260
|
}
|
|
261
261
|
/** The local object cache's recency window (design D3: "genesis + newest N=8 heads + newest carriers"). */
|
|
262
|
-
export declare const
|
|
263
|
-
/**
|
|
264
|
-
export declare const
|
|
265
|
-
/**
|
|
266
|
-
|
|
262
|
+
export declare const VAULT_OBJECT_CACHE_WINDOW = 8;
|
|
263
|
+
/** vault-object-host-predial (design D1): the max persisted object-store origins per repo — small on purpose, this is a predial hint, not an inventory. */
|
|
264
|
+
export declare const VAULT_OBJECT_STORE_ORIGINS_CAP = 4;
|
|
265
|
+
/**
|
|
266
|
+
* Default keystore root: `<active profile config dir>/vault`.
|
|
267
|
+
*
|
|
268
|
+
* This is the one place the keystore path is first resolved, so it is also
|
|
269
|
+
* where a keystore still at `<config>/gitvault` moves to `<config>/vault`:
|
|
270
|
+
* one same-directory `rename`, which is atomic, and only when `vault` does
|
|
271
|
+
* not exist yet. Nothing reads the earlier path after that. A move another
|
|
272
|
+
* process already made is not an error; any other refusal throws
|
|
273
|
+
* `VAULT_KEYSTORE_MOVE_FAILED` naming both paths, because answering with an
|
|
274
|
+
* empty `vault` directory would make a live keystore look lost.
|
|
275
|
+
*/
|
|
276
|
+
export declare function getVaultKeystoreRoot(): string;
|
|
267
277
|
/**
|
|
268
278
|
* Atomic, no-follow, fsynced write: `O_WRONLY|O_CREAT|O_EXCL|O_NOFOLLOW` on a
|
|
269
279
|
* temp sibling, fsync, rename over the target, fsync the directory.
|
|
@@ -271,13 +281,13 @@ export declare function getGitvaultKeystoreRoot(): string;
|
|
|
271
281
|
export declare function writeFileAtomic0600(path: string, text: string): void;
|
|
272
282
|
/** No-follow read: a symlinked keystore file is a refusal, not a read. */
|
|
273
283
|
export declare function readFileNoFollow(path: string): string | null;
|
|
274
|
-
export declare class
|
|
284
|
+
export declare class VaultKeystore {
|
|
275
285
|
readonly rootDir: string;
|
|
276
286
|
private readonly now;
|
|
277
287
|
private readonly strictPermissions;
|
|
278
|
-
constructor(options?:
|
|
288
|
+
constructor(options?: VaultKeystoreOptions);
|
|
279
289
|
/** Open (creating the directory skeleton) and run the permission audit. */
|
|
280
|
-
static open(options?:
|
|
290
|
+
static open(options?: VaultKeystoreOptions): VaultKeystore;
|
|
281
291
|
get identityPath(): string;
|
|
282
292
|
get reposDir(): string;
|
|
283
293
|
get receiptsDir(): string;
|
|
@@ -286,14 +296,14 @@ export declare class GitvaultKeystore {
|
|
|
286
296
|
repoPath(repoId: string): string;
|
|
287
297
|
recoveryReceiptPath(repoId: string): string;
|
|
288
298
|
/** Audit every keystore path that exists; findings are recorded in `audit.log` and returned. */
|
|
289
|
-
auditPermissions():
|
|
299
|
+
auditPermissions(): VaultPermissionFinding[];
|
|
290
300
|
/** Append one JSON line to `audit.log` (0600, created no-follow). */
|
|
291
|
-
audit(event:
|
|
301
|
+
audit(event: VaultAuditEvent, repoId?: string, details?: Record<string, unknown>): void;
|
|
292
302
|
/** Read the audit log (newest last). */
|
|
293
|
-
readAuditLog():
|
|
294
|
-
readIdentity():
|
|
303
|
+
readAuditLog(): VaultAuditEntry[];
|
|
304
|
+
readIdentity(): VaultIdentityFile | null;
|
|
295
305
|
/** Create the identity if absent; never overwrites an existing one. */
|
|
296
|
-
ensureIdentity():
|
|
306
|
+
ensureIdentity(): VaultIdentityFile;
|
|
297
307
|
/**
|
|
298
308
|
* Record (idempotently) which principal this identity enrolled as. A
|
|
299
309
|
* DIFFERENT already-recorded principal is refused — a deliberate migration
|
|
@@ -301,16 +311,16 @@ export declare class GitvaultKeystore {
|
|
|
301
311
|
*/
|
|
302
312
|
bindIdentityPrincipal(principalId: string): void;
|
|
303
313
|
/** The signing keypair, or `null` when the signing seed is lost (read-only principal). */
|
|
304
|
-
signingKeypair(identity?:
|
|
314
|
+
signingKeypair(identity?: VaultIdentityFile): VaultSigningKeypair | null;
|
|
305
315
|
/** The encryption keypair, or `null` when the X25519 private key is lost. */
|
|
306
|
-
encryptionKeypair(identity?:
|
|
316
|
+
encryptionKeypair(identity?: VaultIdentityFile): VaultEncryptionKeypair | null;
|
|
307
317
|
private requireIdentity;
|
|
308
|
-
readRepo(repoId: string):
|
|
318
|
+
readRepo(repoId: string): VaultRepoFile | null;
|
|
309
319
|
listRepoIds(): string[];
|
|
310
320
|
/**
|
|
311
|
-
*
|
|
312
|
-
* keystore's project→repo lookup that lets {@link
|
|
313
|
-
* (`
|
|
321
|
+
* vault-offline-clone-resolve (design D1/D2/D6, task 1.1): the
|
|
322
|
+
* keystore's project→repo lookup that lets {@link resolveVaultAddress}
|
|
323
|
+
* (`vault-address.ts`) answer an id-form address WITHOUT the network
|
|
314
324
|
* `findVaultByProject` round trip. D2's completeness argument: decrypting
|
|
315
325
|
* anything requires exactly this repo file (`k_repo_hex`), so "this
|
|
316
326
|
* keystore holds a matching file" is exactly the set of clones that can
|
|
@@ -328,7 +338,7 @@ export declare class GitvaultKeystore {
|
|
|
328
338
|
* old `repo_id` on THIS machine. D3: the most-recently-modified file (by
|
|
329
339
|
* filesystem mtime — D6 rules out a maintained on-disk index for v1) wins;
|
|
330
340
|
* a wrong pick is indistinguishable from an ordinary stale pin and heals
|
|
331
|
-
* through the same {@link
|
|
341
|
+
* through the same {@link recoverStaleVaultPin} first-use-refusal path.
|
|
332
342
|
*
|
|
333
343
|
* Cheap by construction (D6): one directory listing plus one JSON read per
|
|
334
344
|
* candidate — no maintained project→repo index. NEVER throws: a corrupt,
|
|
@@ -338,17 +348,17 @@ export declare class GitvaultKeystore {
|
|
|
338
348
|
* corruption is the right, attributable failure). Returns `null` on no
|
|
339
349
|
* match, an empty keystore, or a not-yet-created `repos/` directory.
|
|
340
350
|
*/
|
|
341
|
-
findRepoByProject(projectId: string, orgId?: string):
|
|
351
|
+
findRepoByProject(projectId: string, orgId?: string): VaultRepoFile | null;
|
|
342
352
|
/** Save (create or replace) a repo file under the per-repo lock. */
|
|
343
|
-
saveRepo(repo: Omit<
|
|
353
|
+
saveRepo(repo: Omit<VaultRepoFile, "version" | "updated_at">): VaultRepoFile;
|
|
344
354
|
/** Update the dual pins / last ref transaction without touching key material. */
|
|
345
|
-
updateRepo(repoId: string, patch: Partial<Pick<
|
|
355
|
+
updateRepo(repoId: string, patch: Partial<Pick<VaultRepoFile, "head_pin" | "materialized_pin" | "verified_prefix" | "last_ref_transaction" | "epoch" | "envelope_recipient_pins" | "k_repo_hex" | "epoch_keys" | "known_pin_manifest" | "checkpoint_covers_through" | "object_store_origins" | "writer_set_pin" | "writer_status" | "pending_writer_admission">>): VaultRepoFile;
|
|
346
356
|
/**
|
|
347
|
-
*
|
|
357
|
+
* vault-object-host-predial (design D1/D4, task 1.2): record that
|
|
348
358
|
* `origins` (already-normalized `scheme://host` strings) were observed
|
|
349
359
|
* serving THIS repo's objects — the transport's write-through-on-change
|
|
350
360
|
* hook. Most-recently-observed wins ties over anything already recorded;
|
|
351
|
-
* deduped; capped at {@link
|
|
361
|
+
* deduped; capped at {@link VAULT_OBJECT_STORE_ORIGINS_CAP}. A true
|
|
352
362
|
* no-op (no lock taken, no write, `updated_at` untouched) when the
|
|
353
363
|
* resulting set is IDENTICAL — in order — to what is already on disk, so
|
|
354
364
|
* the steady state (every session re-observes the same one or two
|
|
@@ -377,7 +387,7 @@ export declare class GitvaultKeystore {
|
|
|
377
387
|
sha256: string;
|
|
378
388
|
bytes: Uint8Array;
|
|
379
389
|
} | null;
|
|
380
|
-
/** Writes the head, then evicts anything more than {@link
|
|
390
|
+
/** Writes the head, then evicts anything more than {@link VAULT_OBJECT_CACHE_WINDOW} generations behind it. */
|
|
381
391
|
writeCachedHead(repoId: string, generation: string, sha256: string, bytes: Uint8Array): void;
|
|
382
392
|
readCachedCarrier(repoId: string, objectId: string): {
|
|
383
393
|
sha256: string;
|
|
@@ -387,7 +397,7 @@ export declare class GitvaultKeystore {
|
|
|
387
397
|
/** Writes the carrier (keyed by `object_id`, tagged with the generation that referenced it), then sweeps the window. */
|
|
388
398
|
writeCachedCarrier(repoId: string, objectId: string, generation: string, sha256: string, bytes: Uint8Array): void;
|
|
389
399
|
/**
|
|
390
|
-
* Drop heads and carriers more than {@link
|
|
400
|
+
* Drop heads and carriers more than {@link VAULT_OBJECT_CACHE_WINDOW}
|
|
391
401
|
* generations behind `latestGeneration` — genesis is exempt (kept
|
|
392
402
|
* forever). Runs inline on every cache write; also callable directly
|
|
393
403
|
* (`sweepObjectCache`, wired into `repos gc`) as a periodic backstop that
|
|
@@ -409,22 +419,22 @@ export declare class GitvaultKeystore {
|
|
|
409
419
|
recordEpochRotation(repoId: string, input: {
|
|
410
420
|
new_epoch: string;
|
|
411
421
|
new_k_repo_hex: string;
|
|
412
|
-
}):
|
|
413
|
-
saveRecoveryReceipt(receipt:
|
|
414
|
-
readRecoveryReceipt(repoId: string):
|
|
422
|
+
}): VaultRepoFile;
|
|
423
|
+
saveRecoveryReceipt(receipt: VaultRecoveryReceipt): void;
|
|
424
|
+
readRecoveryReceipt(repoId: string): VaultRecoveryReceipt | null;
|
|
415
425
|
/**
|
|
416
426
|
* Run `fn` holding the per-repo lock (`repos/<repo_id>.lock/`, mkdir-atomic).
|
|
417
427
|
* A lock older than `staleAfterMs` whose recorded pid is dead is reclaimed
|
|
418
428
|
* (audited). Re-entrant for the same process+repo.
|
|
419
429
|
*/
|
|
420
|
-
withRepoLock<T>(repoId: string, fn: () => T, options?:
|
|
430
|
+
withRepoLock<T>(repoId: string, fn: () => T, options?: VaultLockOptions): T;
|
|
421
431
|
private readonly held;
|
|
422
432
|
private reclaimStaleLock;
|
|
423
433
|
/**
|
|
424
434
|
* Derive the partial-loss transition for one vault. `expectedGenesisSha256`
|
|
425
435
|
* (from a freshly listed genesis, 5.4) turns a pin mismatch into `stale_pin`.
|
|
426
436
|
*/
|
|
427
|
-
assess(repoId: string, expectedGenesisSha256?: string):
|
|
437
|
+
assess(repoId: string, expectedGenesisSha256?: string): VaultKeystoreState;
|
|
428
438
|
/**
|
|
429
439
|
* §5.1 "repo file lost + identity intact → restore K_repo from own envelope".
|
|
430
440
|
* The genesis is checked (signature + key bindings against the stored
|
|
@@ -432,12 +442,12 @@ export declare class GitvaultKeystore {
|
|
|
432
442
|
* is opened; the restored file is marked `restored_from_envelope`.
|
|
433
443
|
*/
|
|
434
444
|
restoreRepoFromEnvelope(input: {
|
|
435
|
-
genesis:
|
|
436
|
-
envelope:
|
|
445
|
+
genesis: VaultGenesis;
|
|
446
|
+
envelope: VaultKeyEnvelope;
|
|
437
447
|
/** A surviving receipt (on disk or supplied) authenticates the genesis; without one the restore is labeled unauthenticated salvage. */
|
|
438
|
-
recovery_receipt?:
|
|
448
|
+
recovery_receipt?: VaultRecoveryReceipt | null;
|
|
439
449
|
/**
|
|
440
|
-
*
|
|
450
|
+
* vault-agent-envelopes D4: the caller verified genesis's creator
|
|
441
451
|
* fingerprints against the control plane's SIGNED allocation record. That
|
|
442
452
|
* is platform-attested consistency, NOT independent authentication — the
|
|
443
453
|
* platform serves both sides of the comparison — so it labels the restore
|
|
@@ -447,7 +457,7 @@ export declare class GitvaultKeystore {
|
|
|
447
457
|
*/
|
|
448
458
|
allocation_attested?: boolean;
|
|
449
459
|
/**
|
|
450
|
-
*
|
|
460
|
+
* vault-multi-writer (rev 47): the vault's CURRENTLY admitted writers,
|
|
451
461
|
* resolved by the caller from the chain-verified writer set (the admitted
|
|
452
462
|
* heads' `add_writer_key` / `writer_set_update` transitions). A
|
|
453
463
|
* non-creator envelope may be wrapped by ANY admitted writer — whichever
|
|
@@ -460,7 +470,7 @@ export declare class GitvaultKeystore {
|
|
|
460
470
|
signing_pubkey: string;
|
|
461
471
|
}[];
|
|
462
472
|
}): Promise<{
|
|
463
|
-
repo:
|
|
473
|
+
repo: VaultRepoFile;
|
|
464
474
|
trust: "receipt" | "platform_attested" | "unauthenticated_salvage";
|
|
465
475
|
continuity: "first_seen" | "pinned";
|
|
466
476
|
independently_verified: boolean;
|
|
@@ -473,4 +483,4 @@ export declare class GitvaultKeystore {
|
|
|
473
483
|
encryption_key_present: boolean;
|
|
474
484
|
} | null;
|
|
475
485
|
}
|
|
476
|
-
//# sourceMappingURL=
|
|
486
|
+
//# sourceMappingURL=vault-keystore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-keystore.d.ts","sourceRoot":"","sources":["../../src/node/vault-keystore.ts"],"names":[],"mappings":"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"}
|