@run402/sdk 4.95.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 +24 -24
- package/core-dist/keystore.d.ts +1 -1
- package/core-dist/keystore.js +1 -1
- package/dist/errors.d.ts +4 -4
- package/dist/errors.d.ts.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -8
- package/dist/index.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 +20 -20
- package/dist/namespaces/deploy.js.map +1 -1
- package/dist/namespaces/deploy.types.d.ts +17 -17
- package/dist/namespaces/deploy.types.d.ts.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} +436 -449
- package/dist/namespaces/repos.d.ts.map +1 -0
- package/dist/namespaces/{gitvault.js → repos.js} +451 -459
- 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 +3 -3
- package/dist/namespaces/tier.d.ts.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/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/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/{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/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,20 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* vault D6 — push-to-create (repo-first-onramp task 4.5).
|
|
3
3
|
*
|
|
4
|
-
* `
|
|
4
|
+
* `pushToCreateVault` is the primitive the remote helper and `vault
|
|
5
5
|
* snapshot` drive when a slug-form remote (`run402::<org-slug>/<name>`)
|
|
6
6
|
* resolves to nothing yet: pushing to a name that does not exist allocates it
|
|
7
|
-
* (design D6), atomically, through the gateway's `POST /
|
|
7
|
+
* (design D6), atomically, through the gateway's `POST /vaults/v1
|
|
8
8
|
* {org_slug, repo_name}` push-to-create form — the SAME route the ordinary
|
|
9
9
|
* `{project_id}` allocate uses, so the six-stage creation journal
|
|
10
|
-
* ({@link
|
|
10
|
+
* ({@link createVault}) drives it exactly as it drives an ordinary
|
|
11
11
|
* creation, just addressed by `push_to_create` instead of `project_id`.
|
|
12
12
|
*
|
|
13
13
|
* SHAPE, mirroring the gateway's own `pushToCreateRepo` (run402-private
|
|
14
14
|
* `services/repo-names.ts`) one layer up:
|
|
15
15
|
*
|
|
16
16
|
* 1. Fast path: does `org-slug/name` already resolve
|
|
17
|
-
* ({@link
|
|
17
|
+
* ({@link VaultTransport.findVaultByRepo})? If so this is an
|
|
18
18
|
* ordinary push to an existing repo — return its vault record, allocate
|
|
19
19
|
* nothing. This is ALSO how a race LOSER's next call resolves cleanly
|
|
20
20
|
* (see step 3): the repo now exists, so a retry never re-enters the
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
* auto-followed — rethrown unchanged so the caller sees the typed
|
|
38
38
|
* refusal (successor slug named, cooldown_until stated).
|
|
39
39
|
*/
|
|
40
|
-
import {
|
|
40
|
+
import { createVault, findResumablePushToCreateJournal } from "./vault-creation-journal.js";
|
|
41
41
|
function isNotFound(e) {
|
|
42
42
|
const err = e;
|
|
43
43
|
return Boolean(err && (err.status === 404 || err.code === "RESOURCE_NOT_FOUND" || err.code === "ROUTE_NOT_FOUND"));
|
|
@@ -79,7 +79,7 @@ async function pollFindVaultByProject(transport, projectId, attempts = 20, inter
|
|
|
79
79
|
* Resolve `(org_slug, repo_name)`, allocating it (project + vault, atomically)
|
|
80
80
|
* when it does not exist yet.
|
|
81
81
|
*/
|
|
82
|
-
export async function
|
|
82
|
+
export async function pushToCreateVault(options) {
|
|
83
83
|
// ── 1. fast path: already exists? ──
|
|
84
84
|
try {
|
|
85
85
|
const record = await options.transport.findVaultByRepo({ org_slug: options.org_slug, repo_name: options.repo_name });
|
|
@@ -92,7 +92,7 @@ export async function pushToCreateGitvault(options) {
|
|
|
92
92
|
// ── 2. drive the six-stage journal, addressed by push_to_create ──
|
|
93
93
|
const resumable = options.client_creation_id ? null : findResumablePushToCreateJournal(options.keystore, options.org_slug, options.repo_name);
|
|
94
94
|
try {
|
|
95
|
-
const created = await
|
|
95
|
+
const created = await createVault({
|
|
96
96
|
keystore: options.keystore,
|
|
97
97
|
transport: options.transport,
|
|
98
98
|
push_to_create: { org_slug: options.org_slug, repo_name: options.repo_name },
|
|
@@ -129,4 +129,4 @@ export async function pushToCreateGitvault(options) {
|
|
|
129
129
|
throw e;
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
//# sourceMappingURL=
|
|
132
|
+
//# sourceMappingURL=vault-push-to-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-push-to-create.js","sourceRoot":"","sources":["../../src/node/vault-push-to-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import {
|
|
5
|
-
import { type
|
|
6
|
-
import type {
|
|
7
|
-
export interface
|
|
1
|
+
import { VAULT_MIRROR_KEYSTORE_STILL_REQUIRED_STATEMENT, VAULT_MIRROR_VALIDITY_NOT_FRESHNESS_STATEMENT } from "../namespaces/vault.crypto.js";
|
|
2
|
+
import type { VaultHead, VaultRecoveryReceipt, VaultGenesis } from "../namespaces/vault.types.js";
|
|
3
|
+
import type { VaultEncounteredRotation, VaultEpochDecryptFailure, VaultRetainedRefsReconcileResult } from "./vault-publication.js";
|
|
4
|
+
import { VaultKeystore, type VaultIdentityFile } from "./vault-keystore.js";
|
|
5
|
+
import { type VaultMemberBundleHint, type VaultMemberRecoveryBundle } from "./vault-member-bundle.js";
|
|
6
|
+
import type { VaultMirrorBackend } from "./vault-mirror-backend.js";
|
|
7
|
+
export interface VaultChainEntry {
|
|
8
8
|
generation: string;
|
|
9
|
-
head:
|
|
9
|
+
head: VaultHead;
|
|
10
10
|
head_sha256: string;
|
|
11
11
|
}
|
|
12
|
-
export interface
|
|
12
|
+
export interface VaultChainBreak {
|
|
13
13
|
generation: string;
|
|
14
14
|
reason: string;
|
|
15
15
|
}
|
|
16
|
-
export interface
|
|
16
|
+
export interface VaultDiscoveryResult {
|
|
17
17
|
repo_id: string;
|
|
18
|
-
genesis:
|
|
18
|
+
genesis: VaultGenesis;
|
|
19
19
|
genesis_sha256: string;
|
|
20
20
|
/** How the genesis was authenticated. `unauthenticated_salvage` is a real, first-class outcome (protocol §5.1 vocabulary) — never silently upgraded to "trusted". */
|
|
21
21
|
pin_trust: "receipt" | "unauthenticated_salvage";
|
|
22
22
|
/** Every fully chain-verified head, genesis excluded, generation 1..N ascending. */
|
|
23
|
-
chain:
|
|
23
|
+
chain: VaultChainEntry[];
|
|
24
24
|
/** The newest fully-verified generation — `"0000000000000000"` (genesis) when the chain is empty. */
|
|
25
25
|
newest_generation: string;
|
|
26
26
|
newest_head_sha256: string;
|
|
27
27
|
/** Non-null when the walk stopped because a head FAILED verification (a broken chain, not merely "nothing further is mirrored"). Recovery falls back to `newest_generation` either way — this field is what distinguishes an honest fallback from a quiet one. */
|
|
28
|
-
chain_break:
|
|
28
|
+
chain_break: VaultChainBreak | null;
|
|
29
29
|
/**
|
|
30
30
|
* Every admitted `rotate_epoch` transition this KEYLESS chain walk saw,
|
|
31
31
|
* oldest first (D193, rev 42 — `checkChainLink`/`assertNoTransition` admit
|
|
32
32
|
* it structurally without ever opening an envelope; recovery's keyed
|
|
33
33
|
* decrypt step, below, is the only place a rotation's envelope is opened).
|
|
34
34
|
*/
|
|
35
|
-
rotations:
|
|
35
|
+
rotations: VaultEncounteredRotation[];
|
|
36
36
|
}
|
|
37
|
-
export interface
|
|
38
|
-
backend:
|
|
37
|
+
export interface VaultDiscoverOptions {
|
|
38
|
+
backend: VaultMirrorBackend;
|
|
39
39
|
/** An explicit pin, overriding the keystore's stored receipt. */
|
|
40
|
-
recovery_receipt?:
|
|
40
|
+
recovery_receipt?: VaultRecoveryReceipt;
|
|
41
41
|
/** Consulted only when `recovery_receipt` is omitted, keyed by the genesis's OWN `repo_id` (read from the mirror first). */
|
|
42
|
-
keystore?:
|
|
42
|
+
keystore?: VaultKeystore;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* List `head/`, pin-check the genesis, and walk `prev_sha256` from genesis to
|
|
@@ -54,13 +54,13 @@ export interface GitvaultDiscoverOptions {
|
|
|
54
54
|
* verifies", because a substituted vault's own chain verifies perfectly
|
|
55
55
|
* against ITS OWN (different) creator key.
|
|
56
56
|
*/
|
|
57
|
-
export declare function discoverAndVerifyChain(options:
|
|
58
|
-
export interface
|
|
57
|
+
export declare function discoverAndVerifyChain(options: VaultDiscoverOptions): Promise<VaultDiscoveryResult>;
|
|
58
|
+
export interface VaultRequiredObject {
|
|
59
59
|
key: string;
|
|
60
60
|
object_id: string;
|
|
61
61
|
kind: "ref_state" | "retention_roots" | "wal_pack" | "checkpoint_claim_set" | "checkpoint_manifest" | "checkpoint_pack";
|
|
62
62
|
}
|
|
63
|
-
export interface
|
|
63
|
+
export interface VaultAbsenceAdjudication {
|
|
64
64
|
object_id: string;
|
|
65
65
|
key: string;
|
|
66
66
|
/** `intentionally_pruned` when a stored `prune_intent` names this object id — never corruption; `unexplained_absence` otherwise — a real loss, named rather than silently skipped. */
|
|
@@ -75,7 +75,7 @@ export interface GitvaultAbsenceAdjudication {
|
|
|
75
75
|
* key. Walks back from `head` to the nearest checkpoint-bearing ancestor (or
|
|
76
76
|
* genesis) collecting each head's own carriers + WAL entries along the way.
|
|
77
77
|
*/
|
|
78
|
-
export declare function closureForGeneration(backend:
|
|
78
|
+
export declare function closureForGeneration(backend: VaultMirrorBackend, chain: readonly VaultChainEntry[], targetGeneration: string): Promise<VaultRequiredObject[]>;
|
|
79
79
|
/**
|
|
80
80
|
* Check presence of every required object; for each ABSENT one, check the
|
|
81
81
|
* mirror's OWN stored `prune_intent` objects (plaintext-structured, keyless)
|
|
@@ -84,8 +84,8 @@ export declare function closureForGeneration(backend: GitvaultMirrorBackend, cha
|
|
|
84
84
|
* `unexplained_absence` (typically: fall back one generation, see {@link
|
|
85
85
|
* recoverWithFallback}).
|
|
86
86
|
*/
|
|
87
|
-
export declare function adjudicateAbsences(backend:
|
|
88
|
-
export interface
|
|
87
|
+
export declare function adjudicateAbsences(backend: VaultMirrorBackend, required: readonly VaultRequiredObject[]): Promise<VaultAbsenceAdjudication[]>;
|
|
88
|
+
export interface VaultRecoveryReport {
|
|
89
89
|
repo_id: string;
|
|
90
90
|
genesis_sha256: string;
|
|
91
91
|
pin_trust: "receipt" | "unauthenticated_salvage";
|
|
@@ -105,36 +105,36 @@ export interface GitvaultRecoveryReport {
|
|
|
105
105
|
* how far `recovered_generation` actually materialized.
|
|
106
106
|
*/
|
|
107
107
|
chain_verified_to_generation: string;
|
|
108
|
-
/** Non-null iff the chain walk itself broke (see {@link
|
|
109
|
-
chain_break:
|
|
108
|
+
/** Non-null iff the chain walk itself broke (see {@link VaultDiscoveryResult.chain_break}). */
|
|
109
|
+
chain_break: VaultChainBreak | null;
|
|
110
110
|
/**
|
|
111
111
|
* Non-null iff an admitted `rotate_epoch` transition capped
|
|
112
112
|
* `recovered_generation` below `chain_verified_to_generation` because this
|
|
113
113
|
* keystore holds no envelope for the new epoch (or the envelope is absent/
|
|
114
114
|
* altered on this mirror) — Request 4's named epoch boundary, never a bare
|
|
115
|
-
* generic absence. Always `null` on {@link
|
|
115
|
+
* generic absence. Always `null` on {@link VaultVerifyReport} (mode
|
|
116
116
|
* `keyless_verify` never opens a key).
|
|
117
117
|
*/
|
|
118
|
-
epoch_decrypt_failure:
|
|
118
|
+
epoch_decrypt_failure: VaultEpochDecryptFailure | null;
|
|
119
119
|
/** Every absence encountered while resolving closures, across every generation tried, oldest attempt first. */
|
|
120
|
-
absences:
|
|
120
|
+
absences: VaultAbsenceAdjudication[];
|
|
121
121
|
/** True iff any absence was `unexplained_absence` — the loud, un-missable flag; never buried in a nested field. */
|
|
122
122
|
data_loss_detected: boolean;
|
|
123
|
-
validity_not_freshness: typeof
|
|
124
|
-
keystore_still_required: typeof
|
|
123
|
+
validity_not_freshness: typeof VAULT_MIRROR_VALIDITY_NOT_FRESHNESS_STATEMENT;
|
|
124
|
+
keystore_still_required: typeof VAULT_MIRROR_KEYSTORE_STILL_REQUIRED_STATEMENT;
|
|
125
125
|
}
|
|
126
|
-
export interface
|
|
126
|
+
export interface VaultVerifyReport extends VaultRecoveryReport {
|
|
127
127
|
mode: "keyless_verify";
|
|
128
128
|
/** Object kinds present + confirmed reachable for the recovered generation, counted (never bytes, never plaintext). */
|
|
129
129
|
inventory: Record<string, number>;
|
|
130
130
|
/**
|
|
131
131
|
* Member recovery-bundle sidecars found under `member-recovery-bundles/` in
|
|
132
|
-
* this prefix — UNVERIFIED availability hints (
|
|
132
|
+
* this prefix — UNVERIFIED availability hints (vault-recovery-custody):
|
|
133
133
|
* nothing about them is authenticated by the chain; they only tell a human
|
|
134
134
|
* holder "a bundle travels with this mirror, so bundle + source recovery
|
|
135
135
|
* code can recover it with no server." Empty when the prefix carries none.
|
|
136
136
|
*/
|
|
137
|
-
member_recovery_bundles:
|
|
137
|
+
member_recovery_bundles: VaultMemberBundleHint[];
|
|
138
138
|
}
|
|
139
139
|
/**
|
|
140
140
|
* Discovery + chain verification + closure/absence adjudication, WITHOUT
|
|
@@ -143,11 +143,11 @@ export interface GitvaultVerifyReport extends GitvaultRecoveryReport {
|
|
|
143
143
|
* materializes. A genuinely keyless integrity probe (design D5) — useful as a
|
|
144
144
|
* CI check that never needs a secret.
|
|
145
145
|
*/
|
|
146
|
-
export declare function
|
|
147
|
-
recovery_receipt?:
|
|
148
|
-
keystore?:
|
|
149
|
-
}): Promise<
|
|
150
|
-
export interface
|
|
146
|
+
export declare function verifyVaultMirror(backend: VaultMirrorBackend, options?: {
|
|
147
|
+
recovery_receipt?: VaultRecoveryReceipt;
|
|
148
|
+
keystore?: VaultKeystore;
|
|
149
|
+
}): Promise<VaultVerifyReport>;
|
|
150
|
+
export interface VaultRecoverResult extends VaultRecoveryReport {
|
|
151
151
|
mode: "recovered";
|
|
152
152
|
out_dir: string;
|
|
153
153
|
refs: Record<string, string>;
|
|
@@ -180,11 +180,11 @@ export interface GitvaultRecoverResult extends GitvaultRecoveryReport {
|
|
|
180
180
|
* itself just proved are retained. D3: a bookkeeping failure degrades to a
|
|
181
181
|
* `warning` on this field; recovery itself never fails on it.
|
|
182
182
|
*/
|
|
183
|
-
retained_refs:
|
|
183
|
+
retained_refs: VaultRetainedRefsReconcileResult;
|
|
184
184
|
/**
|
|
185
185
|
* `out_dir` is a BARE repository (`git init --bare`) — objects/refs/HEAD
|
|
186
186
|
* directly in `out_dir`, no working files. This is deliberate and matches
|
|
187
|
-
* every other on-disk
|
|
187
|
+
* every other on-disk vault layout; it is named explicitly here (rather
|
|
188
188
|
* than left for the reader to discover via `ls`) because a bare directory
|
|
189
189
|
* with no working tree reads as a failed or empty recovery otherwise
|
|
190
190
|
* (dogfood item 3). See `next_actions` for how to get working files.
|
|
@@ -196,13 +196,13 @@ export interface GitvaultRecoverResult extends GitvaultRecoveryReport {
|
|
|
196
196
|
command: string;
|
|
197
197
|
}[];
|
|
198
198
|
}
|
|
199
|
-
export interface
|
|
200
|
-
backend:
|
|
199
|
+
export interface VaultRecoverOptions {
|
|
200
|
+
backend: VaultMirrorBackend;
|
|
201
201
|
out_dir: string;
|
|
202
|
-
recovery_receipt?:
|
|
203
|
-
keystore?:
|
|
202
|
+
recovery_receipt?: VaultRecoveryReceipt;
|
|
203
|
+
keystore?: VaultKeystore;
|
|
204
204
|
/**
|
|
205
|
-
*
|
|
205
|
+
* vault-recovery-custody — the human-member path: a member recovery
|
|
206
206
|
* bundle (exported wrapper ciphertexts + key identity) opened with
|
|
207
207
|
* `source_recovery_code` substitutes for the keystore's encryption
|
|
208
208
|
* identity. When `source_recovery_code` is supplied WITHOUT a bundle, the
|
|
@@ -212,13 +212,13 @@ export interface GitvaultRecoverOptions {
|
|
|
212
212
|
* recovery-receipt pin is still required for trusted recovery — key
|
|
213
213
|
* material never substitutes for the trust anchor.
|
|
214
214
|
*/
|
|
215
|
-
member_bundle?:
|
|
215
|
+
member_bundle?: VaultMemberRecoveryBundle;
|
|
216
216
|
source_recovery_code?: string;
|
|
217
217
|
/** Seal-time ceremony host for the wrapper context; default = bundle's own `rp_id`, then `console.run402.com`. */
|
|
218
218
|
rp_id?: string;
|
|
219
219
|
}
|
|
220
220
|
/** The two identity fields recovery actually decrypts with — a keystore's `identity.json` or a member bundle opened by the source recovery code both project onto this. */
|
|
221
|
-
export type
|
|
221
|
+
export type VaultRecoveryIdentity = Pick<VaultIdentityFile, "encryption_private_key_hex" | "encryption_fingerprint">;
|
|
222
222
|
/**
|
|
223
223
|
* Materialize the resolved generation into `out_dir` and run §4.7 restorer
|
|
224
224
|
* acceptance: scratch restore, every covered ref at its EXACT oid, `git fsck`
|
|
@@ -226,5 +226,5 @@ export type GitvaultRecoveryIdentity = Pick<GitvaultIdentityFile, "encryption_pr
|
|
|
226
226
|
* checkpoint manifest when one covers this generation. Acceptance failure is
|
|
227
227
|
* a typed non-zero exit (throws) — never a partial, silently-accepted repo.
|
|
228
228
|
*/
|
|
229
|
-
export declare function
|
|
230
|
-
//# sourceMappingURL=
|
|
229
|
+
export declare function recoverVaultMirror(options: VaultRecoverOptions): Promise<VaultRecoverResult>;
|
|
230
|
+
//# sourceMappingURL=vault-recover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-recover.d.ts","sourceRoot":"","sources":["../../src/node/vault-recover.ts"],"names":[],"mappings":"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"}
|