@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.
Files changed (210) hide show
  1. package/README.md +24 -24
  2. package/core-dist/keystore.d.ts +1 -1
  3. package/core-dist/keystore.js +1 -1
  4. package/dist/errors.d.ts +4 -4
  5. package/dist/errors.d.ts.map +1 -1
  6. package/dist/index.d.ts +9 -9
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +8 -8
  9. package/dist/index.js.map +1 -1
  10. package/dist/namespaces/deploy.d.ts +5 -5
  11. package/dist/namespaces/deploy.d.ts.map +1 -1
  12. package/dist/namespaces/deploy.js +20 -20
  13. package/dist/namespaces/deploy.js.map +1 -1
  14. package/dist/namespaces/deploy.types.d.ts +17 -17
  15. package/dist/namespaces/deploy.types.d.ts.map +1 -1
  16. package/dist/namespaces/org.d.ts +2 -2
  17. package/dist/namespaces/org.js +2 -2
  18. package/dist/namespaces/org.types.d.ts +3 -3
  19. package/dist/namespaces/pay.js +1 -1
  20. package/dist/namespaces/{gitvault.d.ts → repos.d.ts} +436 -449
  21. package/dist/namespaces/repos.d.ts.map +1 -0
  22. package/dist/namespaces/{gitvault.js → repos.js} +451 -459
  23. package/dist/namespaces/repos.js.map +1 -0
  24. package/dist/namespaces/rooms.js +2 -2
  25. package/dist/namespaces/rooms.js.map +1 -1
  26. package/dist/namespaces/session.d.ts +2 -2
  27. package/dist/namespaces/session.d.ts.map +1 -1
  28. package/dist/namespaces/session.js +2 -2
  29. package/dist/namespaces/session.js.map +1 -1
  30. package/dist/namespaces/tier.d.ts +3 -3
  31. package/dist/namespaces/tier.d.ts.map +1 -1
  32. package/dist/namespaces/{gitvault.crypto.d.ts → vault.crypto.d.ts} +141 -141
  33. package/dist/namespaces/vault.crypto.d.ts.map +1 -0
  34. package/dist/namespaces/{gitvault.crypto.js → vault.crypto.js} +173 -173
  35. package/dist/namespaces/vault.crypto.js.map +1 -0
  36. package/dist/namespaces/{gitvault.types.d.ts → vault.types.d.ts} +136 -136
  37. package/dist/namespaces/vault.types.d.ts.map +1 -0
  38. package/dist/namespaces/{gitvault.types.js → vault.types.js} +4 -4
  39. package/dist/namespaces/vault.types.js.map +1 -0
  40. package/dist/node/bearer-redeem-key.d.ts +1 -1
  41. package/dist/node/bearer-redeem-key.js +5 -5
  42. package/dist/node/bearer-redeem-key.js.map +1 -1
  43. package/dist/node/http-dispatcher.js +5 -5
  44. package/dist/node/http-dispatcher.js.map +1 -1
  45. package/dist/node/index.d.ts +29 -29
  46. package/dist/node/index.d.ts.map +1 -1
  47. package/dist/node/index.js +39 -39
  48. package/dist/node/index.js.map +1 -1
  49. package/dist/node/{gitvault-address.d.ts → vault-address.d.ts} +42 -42
  50. package/dist/node/vault-address.d.ts.map +1 -0
  51. package/dist/node/{gitvault-address.js → vault-address.js} +43 -43
  52. package/dist/node/vault-address.js.map +1 -0
  53. package/dist/node/{gitvault-apply.d.ts → vault-apply.d.ts} +27 -27
  54. package/dist/node/vault-apply.d.ts.map +1 -0
  55. package/dist/node/{gitvault-apply.js → vault-apply.js} +38 -38
  56. package/dist/node/vault-apply.js.map +1 -0
  57. package/dist/node/vault-byo-config.d.ts +29 -0
  58. package/dist/node/vault-byo-config.d.ts.map +1 -0
  59. package/dist/node/{gitvault-byo-config.js → vault-byo-config.js} +18 -18
  60. package/dist/node/vault-byo-config.js.map +1 -0
  61. package/dist/node/vault-byo-probe.d.ts +20 -0
  62. package/dist/node/vault-byo-probe.d.ts.map +1 -0
  63. package/dist/node/vault-byo-probe.js +57 -0
  64. package/dist/node/vault-byo-probe.js.map +1 -0
  65. package/dist/node/{gitvault-creation-journal.d.ts → vault-creation-journal.d.ts} +69 -69
  66. package/dist/node/vault-creation-journal.d.ts.map +1 -0
  67. package/dist/node/{gitvault-creation-journal.js → vault-creation-journal.js} +54 -54
  68. package/dist/node/vault-creation-journal.js.map +1 -0
  69. package/dist/node/{gitvault-degraded-read.d.ts → vault-degraded-read.d.ts} +34 -34
  70. package/dist/node/vault-degraded-read.d.ts.map +1 -0
  71. package/dist/node/{gitvault-degraded-read.js → vault-degraded-read.js} +24 -24
  72. package/dist/node/vault-degraded-read.js.map +1 -0
  73. package/dist/node/{gitvault-deploy.d.ts → vault-deploy.d.ts} +67 -67
  74. package/dist/node/vault-deploy.d.ts.map +1 -0
  75. package/dist/node/{gitvault-deploy.js → vault-deploy.js} +27 -27
  76. package/dist/node/vault-deploy.js.map +1 -0
  77. package/dist/node/{gitvault-edge-fetch.d.ts → vault-edge-fetch.d.ts} +9 -9
  78. package/dist/node/vault-edge-fetch.d.ts.map +1 -0
  79. package/dist/node/{gitvault-edge-fetch.js → vault-edge-fetch.js} +11 -11
  80. package/dist/node/vault-edge-fetch.js.map +1 -0
  81. package/dist/node/{gitvault-handoff.d.ts → vault-handoff.d.ts} +9 -9
  82. package/dist/node/vault-handoff.d.ts.map +1 -0
  83. package/dist/node/{gitvault-handoff.js → vault-handoff.js} +24 -24
  84. package/dist/node/vault-handoff.js.map +1 -0
  85. package/dist/node/{gitvault-keystore.d.ts → vault-keystore.d.ts} +87 -77
  86. package/dist/node/vault-keystore.d.ts.map +1 -0
  87. package/dist/node/{gitvault-keystore.js → vault-keystore.js} +105 -68
  88. package/dist/node/vault-keystore.js.map +1 -0
  89. package/dist/node/{gitvault-member-bundle.d.ts → vault-member-bundle.d.ts} +17 -17
  90. package/dist/node/vault-member-bundle.d.ts.map +1 -0
  91. package/dist/node/{gitvault-member-bundle.js → vault-member-bundle.js} +11 -11
  92. package/dist/node/vault-member-bundle.js.map +1 -0
  93. package/dist/node/{gitvault-mirror-backend.d.ts → vault-mirror-backend.d.ts} +26 -26
  94. package/dist/node/vault-mirror-backend.d.ts.map +1 -0
  95. package/dist/node/{gitvault-mirror-backend.js → vault-mirror-backend.js} +25 -25
  96. package/dist/node/vault-mirror-backend.js.map +1 -0
  97. package/dist/node/{gitvault-mirror-config.d.ts → vault-mirror-config.d.ts} +23 -23
  98. package/dist/node/vault-mirror-config.d.ts.map +1 -0
  99. package/dist/node/{gitvault-mirror-config.js → vault-mirror-config.js} +16 -16
  100. package/dist/node/vault-mirror-config.js.map +1 -0
  101. package/dist/node/{gitvault-mirror.d.ts → vault-mirror.d.ts} +36 -36
  102. package/dist/node/vault-mirror.d.ts.map +1 -0
  103. package/dist/node/{gitvault-mirror.js → vault-mirror.js} +75 -75
  104. package/dist/node/vault-mirror.js.map +1 -0
  105. package/dist/node/{gitvault-native-crypto.d.ts → vault-native-crypto.d.ts} +10 -10
  106. package/dist/node/vault-native-crypto.d.ts.map +1 -0
  107. package/dist/node/{gitvault-native-crypto.js → vault-native-crypto.js} +16 -16
  108. package/dist/node/vault-native-crypto.js.map +1 -0
  109. package/dist/node/{gitvault-open-or-create.d.ts → vault-open-or-create.d.ts} +16 -16
  110. package/dist/node/vault-open-or-create.d.ts.map +1 -0
  111. package/dist/node/{gitvault-open-or-create.js → vault-open-or-create.js} +10 -10
  112. package/dist/node/vault-open-or-create.js.map +1 -0
  113. package/dist/node/{gitvault-prewarm.d.ts → vault-prewarm.d.ts} +13 -13
  114. package/dist/node/vault-prewarm.d.ts.map +1 -0
  115. package/dist/node/{gitvault-prewarm.js → vault-prewarm.js} +25 -25
  116. package/dist/node/vault-prewarm.js.map +1 -0
  117. package/dist/node/{gitvault-profile-scan.d.ts → vault-profile-scan.d.ts} +3 -3
  118. package/dist/node/vault-profile-scan.d.ts.map +1 -0
  119. package/dist/node/{gitvault-profile-scan.js → vault-profile-scan.js} +12 -12
  120. package/dist/node/vault-profile-scan.js.map +1 -0
  121. package/dist/node/{gitvault-prune.d.ts → vault-prune.d.ts} +61 -61
  122. package/dist/node/vault-prune.d.ts.map +1 -0
  123. package/dist/node/{gitvault-prune.js → vault-prune.js} +34 -34
  124. package/dist/node/vault-prune.js.map +1 -0
  125. package/dist/node/{gitvault-publication.d.ts → vault-publication.d.ts} +399 -399
  126. package/dist/node/vault-publication.d.ts.map +1 -0
  127. package/dist/node/{gitvault-publication.js → vault-publication.js} +584 -584
  128. package/dist/node/vault-publication.js.map +1 -0
  129. package/dist/node/{gitvault-push-to-create.d.ts → vault-push-to-create.d.ts} +16 -16
  130. package/dist/node/vault-push-to-create.d.ts.map +1 -0
  131. package/dist/node/{gitvault-push-to-create.js → vault-push-to-create.js} +9 -9
  132. package/dist/node/vault-push-to-create.js.map +1 -0
  133. package/dist/node/{gitvault-recover.d.ts → vault-recover.d.ts} +50 -50
  134. package/dist/node/vault-recover.d.ts.map +1 -0
  135. package/dist/node/{gitvault-recover.js → vault-recover.js} +84 -84
  136. package/dist/node/vault-recover.js.map +1 -0
  137. package/dist/node/{gitvault-restore.d.ts → vault-restore.d.ts} +8 -8
  138. package/dist/node/vault-restore.d.ts.map +1 -0
  139. package/dist/node/{gitvault-restore.js → vault-restore.js} +11 -11
  140. package/dist/node/vault-restore.js.map +1 -0
  141. package/dist/node/{gitvault-snapshot.d.ts → vault-snapshot.d.ts} +48 -48
  142. package/dist/node/vault-snapshot.d.ts.map +1 -0
  143. package/dist/node/{gitvault-snapshot.js → vault-snapshot.js} +61 -61
  144. package/dist/node/vault-snapshot.js.map +1 -0
  145. package/dist/node/{gitvault-writer-state.d.ts → vault-writer-state.d.ts} +8 -8
  146. package/dist/node/vault-writer-state.d.ts.map +1 -0
  147. package/dist/node/{gitvault-writer-state.js → vault-writer-state.js} +15 -15
  148. package/dist/node/vault-writer-state.js.map +1 -0
  149. package/dist/node/workflow-output.js +4 -4
  150. package/dist/node/workflow-output.js.map +1 -1
  151. package/package.json +1 -1
  152. package/dist/namespaces/gitvault.crypto.d.ts.map +0 -1
  153. package/dist/namespaces/gitvault.crypto.js.map +0 -1
  154. package/dist/namespaces/gitvault.d.ts.map +0 -1
  155. package/dist/namespaces/gitvault.js.map +0 -1
  156. package/dist/namespaces/gitvault.types.d.ts.map +0 -1
  157. package/dist/namespaces/gitvault.types.js.map +0 -1
  158. package/dist/node/gitvault-address.d.ts.map +0 -1
  159. package/dist/node/gitvault-address.js.map +0 -1
  160. package/dist/node/gitvault-apply.d.ts.map +0 -1
  161. package/dist/node/gitvault-apply.js.map +0 -1
  162. package/dist/node/gitvault-byo-config.d.ts +0 -29
  163. package/dist/node/gitvault-byo-config.d.ts.map +0 -1
  164. package/dist/node/gitvault-byo-config.js.map +0 -1
  165. package/dist/node/gitvault-byo-probe.d.ts +0 -20
  166. package/dist/node/gitvault-byo-probe.d.ts.map +0 -1
  167. package/dist/node/gitvault-byo-probe.js +0 -57
  168. package/dist/node/gitvault-byo-probe.js.map +0 -1
  169. package/dist/node/gitvault-creation-journal.d.ts.map +0 -1
  170. package/dist/node/gitvault-creation-journal.js.map +0 -1
  171. package/dist/node/gitvault-degraded-read.d.ts.map +0 -1
  172. package/dist/node/gitvault-degraded-read.js.map +0 -1
  173. package/dist/node/gitvault-deploy.d.ts.map +0 -1
  174. package/dist/node/gitvault-deploy.js.map +0 -1
  175. package/dist/node/gitvault-edge-fetch.d.ts.map +0 -1
  176. package/dist/node/gitvault-edge-fetch.js.map +0 -1
  177. package/dist/node/gitvault-handoff.d.ts.map +0 -1
  178. package/dist/node/gitvault-handoff.js.map +0 -1
  179. package/dist/node/gitvault-keystore.d.ts.map +0 -1
  180. package/dist/node/gitvault-keystore.js.map +0 -1
  181. package/dist/node/gitvault-member-bundle.d.ts.map +0 -1
  182. package/dist/node/gitvault-member-bundle.js.map +0 -1
  183. package/dist/node/gitvault-mirror-backend.d.ts.map +0 -1
  184. package/dist/node/gitvault-mirror-backend.js.map +0 -1
  185. package/dist/node/gitvault-mirror-config.d.ts.map +0 -1
  186. package/dist/node/gitvault-mirror-config.js.map +0 -1
  187. package/dist/node/gitvault-mirror.d.ts.map +0 -1
  188. package/dist/node/gitvault-mirror.js.map +0 -1
  189. package/dist/node/gitvault-native-crypto.d.ts.map +0 -1
  190. package/dist/node/gitvault-native-crypto.js.map +0 -1
  191. package/dist/node/gitvault-open-or-create.d.ts.map +0 -1
  192. package/dist/node/gitvault-open-or-create.js.map +0 -1
  193. package/dist/node/gitvault-prewarm.d.ts.map +0 -1
  194. package/dist/node/gitvault-prewarm.js.map +0 -1
  195. package/dist/node/gitvault-profile-scan.d.ts.map +0 -1
  196. package/dist/node/gitvault-profile-scan.js.map +0 -1
  197. package/dist/node/gitvault-prune.d.ts.map +0 -1
  198. package/dist/node/gitvault-prune.js.map +0 -1
  199. package/dist/node/gitvault-publication.d.ts.map +0 -1
  200. package/dist/node/gitvault-publication.js.map +0 -1
  201. package/dist/node/gitvault-push-to-create.d.ts.map +0 -1
  202. package/dist/node/gitvault-push-to-create.js.map +0 -1
  203. package/dist/node/gitvault-recover.d.ts.map +0 -1
  204. package/dist/node/gitvault-recover.js.map +0 -1
  205. package/dist/node/gitvault-restore.d.ts.map +0 -1
  206. package/dist/node/gitvault-restore.js.map +0 -1
  207. package/dist/node/gitvault-snapshot.d.ts.map +0 -1
  208. package/dist/node/gitvault-snapshot.js.map +0 -1
  209. package/dist/node/gitvault-writer-state.d.ts.map +0 -1
  210. package/dist/node/gitvault-writer-state.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  /**
2
- * gitvault — the principal keystore (protocol rev 41 §5.1; task 5.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>/gitvault/
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,7 +19,7 @@
19
19
  * is a named finding, never silent.
20
20
  *
21
21
  * Transitions (protocol §5.1 partial-loss table) are DERIVED by
22
- * {@link GitvaultKeystore.assess} and acted on by explicit methods — the
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)
@@ -30,7 +30,7 @@ import { closeSync, constants, existsSync, fsyncSync, lstatSync, mkdirSync, open
30
30
  import { dirname, join } from "node:path";
31
31
  import { getConfigDir } from "../../core-dist/config.js";
32
32
  import { LocalError } from "../errors.js";
33
- import { GITVAULT_EK_RE, GITVAULT_SRC_RE, GITVAULT_TERMINAL_LOSS_DOCTOR_TEXT, GITVAULT_TERMINAL_LOSS_STATEMENT, GITVAULT_VK_RE, bytesToHex, checkGenesisKeyBindings, checkRecoveryReceipt, ekFingerprint, fromBase64url, formatGitvaultTimestamp, generateEncryptionKeypair, generateSigningKeypair, hexToBytes, openKeyEnvelope, storedBytesSha256, toBase64url, verifyGitvaultObject, vkFingerprint, } from "../namespaces/gitvault.crypto.js";
33
+ import { VAULT_EK_RE, VAULT_SRC_RE, VAULT_TERMINAL_LOSS_DOCTOR_TEXT, VAULT_TERMINAL_LOSS_STATEMENT, VAULT_VK_RE, bytesToHex, checkGenesisKeyBindings, checkRecoveryReceipt, ekFingerprint, fromBase64url, formatVaultTimestamp, generateEncryptionKeypair, generateSigningKeypair, hexToBytes, openKeyEnvelope, storedBytesSha256, toBase64url, verifyVaultObject, vkFingerprint, } from "../namespaces/vault.crypto.js";
34
34
  function fail(code, message, context, details) {
35
35
  throw new LocalError(message, context, { code, details });
36
36
  }
@@ -38,10 +38,10 @@ const O_NOFOLLOW = constants.O_NOFOLLOW ?? 0;
38
38
  const DIR_MODE = 0o700;
39
39
  const FILE_MODE = 0o600;
40
40
  /** The local object cache's recency window (design D3: "genesis + newest N=8 heads + newest carriers"). */
41
- export const GITVAULT_OBJECT_CACHE_WINDOW = 8;
42
- /** gitvault-object-host-predial (design D1): the max persisted object-store origins per repo — small on purpose, this is a predial hint, not an inventory. */
43
- export const GITVAULT_OBJECT_STORE_ORIGINS_CAP = 4;
44
- /** Bare hex16 generation comparison for cache eviction — deliberately NOT `generationToBigInt` (gitvault-publication.ts), which this lower-level module must not import (publication already imports FROM here). Malformed input sorts as "evict" rather than throwing: a corrupt cache entry should never block eviction of everything else. */
41
+ export const VAULT_OBJECT_CACHE_WINDOW = 8;
42
+ /** 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. */
43
+ export const VAULT_OBJECT_STORE_ORIGINS_CAP = 4;
44
+ /** Bare hex16 generation comparison for cache eviction — deliberately NOT `generationToBigInt` (vault-publication.ts), which this lower-level module must not import (publication already imports FROM here). Malformed input sorts as "evict" rather than throwing: a corrupt cache entry should never block eviction of everything else. */
45
45
  function genToBigInt(generation) {
46
46
  try {
47
47
  return /^[0-9a-f]{16}$/.test(generation) ? BigInt(`0x${generation}`) : -1n;
@@ -50,9 +50,46 @@ function genToBigInt(generation) {
50
50
  return -1n;
51
51
  }
52
52
  }
53
- /** Default keystore root: `<active profile config dir>/gitvault`. */
54
- export function getGitvaultKeystoreRoot() {
55
- return join(getConfigDir(), "gitvault");
53
+ /** The keystore directory's earlier name under the same config dir. */
54
+ const FORMER_KEYSTORE_DIRNAME = "gitvault";
55
+ /**
56
+ * Default keystore root: `<active profile config dir>/vault`.
57
+ *
58
+ * This is the one place the keystore path is first resolved, so it is also
59
+ * where a keystore still at `<config>/gitvault` moves to `<config>/vault`:
60
+ * one same-directory `rename`, which is atomic, and only when `vault` does
61
+ * not exist yet. Nothing reads the earlier path after that. A move another
62
+ * process already made is not an error; any other refusal throws
63
+ * `VAULT_KEYSTORE_MOVE_FAILED` naming both paths, because answering with an
64
+ * empty `vault` directory would make a live keystore look lost.
65
+ */
66
+ export function getVaultKeystoreRoot() {
67
+ const configDir = getConfigDir();
68
+ const root = join(configDir, "vault");
69
+ moveFormerKeystoreDir(join(configDir, FORMER_KEYSTORE_DIRNAME), root);
70
+ return root;
71
+ }
72
+ function moveFormerKeystoreDir(former, root) {
73
+ if (existsSync(root))
74
+ return;
75
+ let stat;
76
+ try {
77
+ stat = lstatSync(former);
78
+ }
79
+ catch {
80
+ return; // nothing to move
81
+ }
82
+ if (!stat.isDirectory() && !stat.isSymbolicLink())
83
+ return;
84
+ try {
85
+ renameSync(former, root);
86
+ }
87
+ catch (e) {
88
+ const code = e.code;
89
+ if (existsSync(root) || code === "ENOENT")
90
+ return; // another process moved it first
91
+ throw new LocalError(`could not move the vault keystore from ${former} to ${root}: ${e instanceof Error ? e.message : String(e)}`, "resolving the vault keystore", { code: "VAULT_KEYSTORE_MOVE_FAILED", details: { from: former, to: root }, cause: e });
92
+ }
56
93
  }
57
94
  function mkdir0700(path) {
58
95
  mkdirSync(path, { recursive: true, mode: DIR_MODE });
@@ -79,7 +116,7 @@ export function writeFileAtomic0600(path, text) {
79
116
  const dir = dirname(path);
80
117
  mkdir0700(dir);
81
118
  if (existsSync(path) && lstatSync(path).isSymbolicLink()) {
82
- fail("GITVAULT_KEYSTORE_SYMLINK", `refusing to write through a symlink: ${path}`, "writing gitvault keystore file", { path });
119
+ fail("VAULT_KEYSTORE_SYMLINK", `refusing to write through a symlink: ${path}`, "writing vault keystore file", { path });
83
120
  }
84
121
  const tmp = join(dir, `.${String(process.pid)}.${bytesToHex(globalThis.crypto.getRandomValues(new Uint8Array(6)))}.tmp`);
85
122
  const fd = openSync(tmp, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL | O_NOFOLLOW, FILE_MODE);
@@ -103,7 +140,7 @@ export function readFileNoFollow(path) {
103
140
  return null;
104
141
  }
105
142
  if (st.isSymbolicLink()) {
106
- fail("GITVAULT_KEYSTORE_SYMLINK", `refusing to read through a symlink: ${path}`, "reading gitvault keystore file", { path });
143
+ fail("VAULT_KEYSTORE_SYMLINK", `refusing to read through a symlink: ${path}`, "reading vault keystore file", { path });
107
144
  }
108
145
  const fd = openSync(path, constants.O_RDONLY | O_NOFOLLOW);
109
146
  try {
@@ -135,24 +172,24 @@ function auditPath(path, expectDir) {
135
172
  return findings;
136
173
  }
137
174
  // ─── The keystore ────────────────────────────────────────────────────────────
138
- export class GitvaultKeystore {
175
+ export class VaultKeystore {
139
176
  rootDir;
140
177
  now;
141
178
  strictPermissions;
142
179
  constructor(options = {}) {
143
- this.rootDir = options.rootDir ?? getGitvaultKeystoreRoot();
180
+ this.rootDir = options.rootDir ?? getVaultKeystoreRoot();
144
181
  this.now = options.now ?? (() => new Date());
145
182
  this.strictPermissions = options.strictPermissions ?? false;
146
183
  }
147
184
  /** Open (creating the directory skeleton) and run the permission audit. */
148
185
  static open(options = {}) {
149
- const ks = new GitvaultKeystore(options);
186
+ const ks = new VaultKeystore(options);
150
187
  for (const dir of [ks.rootDir, ks.reposDir, ks.receiptsDir, ks.journalDir])
151
188
  mkdir0700(dir);
152
189
  const findings = ks.auditPermissions();
153
190
  ks.audit("keystore_opened", undefined, { findings: findings.length });
154
191
  if (findings.length > 0 && ks.strictPermissions) {
155
- fail("GITVAULT_KEYSTORE_PERMISSIONS", "gitvault keystore permission audit failed", "opening gitvault keystore", { findings });
192
+ fail("VAULT_KEYSTORE_PERMISSIONS", "vault keystore permission audit failed", "opening vault keystore", { findings });
156
193
  }
157
194
  return ks;
158
195
  }
@@ -162,13 +199,13 @@ export class GitvaultKeystore {
162
199
  get journalDir() { return join(this.rootDir, "journal"); }
163
200
  get auditLogPath() { return join(this.rootDir, "audit.log"); }
164
201
  repoPath(repoId) {
165
- if (!GITVAULT_SRC_RE.test(repoId))
166
- fail("GITVAULT_BAD_REPO_ID", `not a src_ id: ${repoId}`, "resolving gitvault repo path");
202
+ if (!VAULT_SRC_RE.test(repoId))
203
+ fail("VAULT_BAD_REPO_ID", `not a src_ id: ${repoId}`, "resolving vault repo path");
167
204
  return join(this.reposDir, `${repoId}.json`);
168
205
  }
169
206
  recoveryReceiptPath(repoId) {
170
- if (!GITVAULT_SRC_RE.test(repoId))
171
- fail("GITVAULT_BAD_REPO_ID", `not a src_ id: ${repoId}`, "resolving gitvault receipt path");
207
+ if (!VAULT_SRC_RE.test(repoId))
208
+ fail("VAULT_BAD_REPO_ID", `not a src_ id: ${repoId}`, "resolving vault receipt path");
172
209
  return join(this.receiptsDir, `${repoId}.recovery_receipt.json`);
173
210
  }
174
211
  // ── permission audit ──
@@ -201,10 +238,10 @@ export class GitvaultKeystore {
201
238
  // ── audit log ──
202
239
  /** Append one JSON line to `audit.log` (0600, created no-follow). */
203
240
  audit(event, repoId, details) {
204
- const entry = { at: formatGitvaultTimestamp(this.now()), event, ...(repoId ? { repo_id: repoId } : {}), ...(details ? { details } : {}) };
241
+ const entry = { at: formatVaultTimestamp(this.now()), event, ...(repoId ? { repo_id: repoId } : {}), ...(details ? { details } : {}) };
205
242
  mkdir0700(this.rootDir);
206
243
  if (isSymlink(this.auditLogPath)) {
207
- fail("GITVAULT_KEYSTORE_SYMLINK", "refusing to append through a symlinked audit.log", "appending gitvault audit log");
244
+ fail("VAULT_KEYSTORE_SYMLINK", "refusing to append through a symlinked audit.log", "appending vault audit log");
208
245
  }
209
246
  const fd = openSync(this.auditLogPath, constants.O_WRONLY | constants.O_CREAT | constants.O_APPEND | O_NOFOLLOW, FILE_MODE);
210
247
  try {
@@ -229,7 +266,7 @@ export class GitvaultKeystore {
229
266
  return null;
230
267
  const parsed = JSON.parse(text);
231
268
  if (parsed.version !== 1 || typeof parsed.signing_pubkey !== "string" || typeof parsed.encryption_pubkey !== "string") {
232
- fail("GITVAULT_KEYSTORE_CORRUPT", "identity.json is not a version-1 gitvault identity", "reading gitvault identity");
269
+ fail("VAULT_KEYSTORE_CORRUPT", "identity.json is not a version-1 vault identity", "reading vault identity");
233
270
  }
234
271
  return parsed;
235
272
  }
@@ -248,10 +285,10 @@ export class GitvaultKeystore {
248
285
  encryption_private_key_hex: bytesToHex(encryption.private_key),
249
286
  encryption_pubkey: toBase64url(encryption.public_key),
250
287
  encryption_fingerprint: ekFingerprint(encryption.public_key),
251
- created_at: formatGitvaultTimestamp(this.now()),
288
+ created_at: formatVaultTimestamp(this.now()),
252
289
  };
253
290
  if (existsSync(this.identityPath)) {
254
- fail("GITVAULT_KEYSTORE_CONFLICT", "identity.json appeared concurrently; refusing to overwrite", "creating gitvault identity");
291
+ fail("VAULT_KEYSTORE_CONFLICT", "identity.json appeared concurrently; refusing to overwrite", "creating vault identity");
255
292
  }
256
293
  writeFileAtomic0600(this.identityPath, JSON.stringify(identity, null, 2));
257
294
  this.audit("identity_created", undefined, { signing_fingerprint: identity.signing_fingerprint, encryption_fingerprint: identity.encryption_fingerprint });
@@ -267,7 +304,7 @@ export class GitvaultKeystore {
267
304
  if (identity.enrolled_principal_id === principalId)
268
305
  return;
269
306
  if (identity.enrolled_principal_id) {
270
- fail("GITVAULT_IDENTITY_PROFILE_MISMATCH", `this keystore identity enrolled as principal ${identity.enrolled_principal_id}, not ${principalId} — refusing cross-profile reuse`, "binding gitvault identity", { enrolled_principal_id: identity.enrolled_principal_id, principal_id: principalId });
307
+ fail("VAULT_IDENTITY_PROFILE_MISMATCH", `this keystore identity enrolled as principal ${identity.enrolled_principal_id}, not ${principalId} — refusing cross-profile reuse`, "binding vault identity", { enrolled_principal_id: identity.enrolled_principal_id, principal_id: principalId });
271
308
  }
272
309
  writeFileAtomic0600(this.identityPath, JSON.stringify({ ...identity, enrolled_principal_id: principalId }, null, 2));
273
310
  this.audit("identity_principal_bound", undefined, { principal_id: principalId });
@@ -278,7 +315,7 @@ export class GitvaultKeystore {
278
315
  return null;
279
316
  const kp = generateSigningKeypair(hexToBytes(identity.signing_seed_hex));
280
317
  if (vkFingerprint(kp.public_key) !== identity.signing_fingerprint) {
281
- fail("GITVAULT_KEYSTORE_CORRUPT", "identity signing seed does not derive the recorded fingerprint", "loading gitvault signing key");
318
+ fail("VAULT_KEYSTORE_CORRUPT", "identity signing seed does not derive the recorded fingerprint", "loading vault signing key");
282
319
  }
283
320
  return kp;
284
321
  }
@@ -288,14 +325,14 @@ export class GitvaultKeystore {
288
325
  return null;
289
326
  const kp = generateEncryptionKeypair(hexToBytes(identity.encryption_private_key_hex));
290
327
  if (ekFingerprint(kp.public_key) !== identity.encryption_fingerprint) {
291
- fail("GITVAULT_KEYSTORE_CORRUPT", "identity encryption key does not derive the recorded fingerprint", "loading gitvault encryption key");
328
+ fail("VAULT_KEYSTORE_CORRUPT", "identity encryption key does not derive the recorded fingerprint", "loading vault encryption key");
292
329
  }
293
330
  return kp;
294
331
  }
295
332
  requireIdentity() {
296
333
  const id = this.readIdentity();
297
334
  if (!id)
298
- fail("VAULT_UNRECOVERABLE", GITVAULT_TERMINAL_LOSS_DOCTOR_TEXT, "loading gitvault identity", { statement: GITVAULT_TERMINAL_LOSS_STATEMENT });
335
+ fail("VAULT_UNRECOVERABLE", VAULT_TERMINAL_LOSS_DOCTOR_TEXT, "loading vault identity", { statement: VAULT_TERMINAL_LOSS_STATEMENT });
299
336
  return id;
300
337
  }
301
338
  // ── repo files ──
@@ -305,19 +342,19 @@ export class GitvaultKeystore {
305
342
  return null;
306
343
  const parsed = JSON.parse(text);
307
344
  if (parsed.version !== 1 || parsed.repo_id !== repoId || typeof parsed.k_repo_hex !== "string") {
308
- fail("GITVAULT_KEYSTORE_CORRUPT", `repos/${repoId}.json is not a version-1 gitvault repo file`, "reading gitvault repo file", { repo_id: repoId });
345
+ fail("VAULT_KEYSTORE_CORRUPT", `repos/${repoId}.json is not a version-1 vault repo file`, "reading vault repo file", { repo_id: repoId });
309
346
  }
310
347
  return parsed;
311
348
  }
312
349
  listRepoIds() {
313
350
  if (!existsSync(this.reposDir))
314
351
  return [];
315
- return readdirSync(this.reposDir).filter((n) => n.endsWith(".json")).map((n) => n.slice(0, -5)).filter((id) => GITVAULT_SRC_RE.test(id)).sort();
352
+ return readdirSync(this.reposDir).filter((n) => n.endsWith(".json")).map((n) => n.slice(0, -5)).filter((id) => VAULT_SRC_RE.test(id)).sort();
316
353
  }
317
354
  /**
318
- * gitvault-offline-clone-resolve (design D1/D2/D6, task 1.1): the
319
- * keystore's project→repo lookup that lets {@link resolveGitvaultAddress}
320
- * (`gitvault-address.ts`) answer an id-form address WITHOUT the network
355
+ * vault-offline-clone-resolve (design D1/D2/D6, task 1.1): the
356
+ * keystore's project→repo lookup that lets {@link resolveVaultAddress}
357
+ * (`vault-address.ts`) answer an id-form address WITHOUT the network
321
358
  * `findVaultByProject` round trip. D2's completeness argument: decrypting
322
359
  * anything requires exactly this repo file (`k_repo_hex`), so "this
323
360
  * keystore holds a matching file" is exactly the set of clones that can
@@ -335,7 +372,7 @@ export class GitvaultKeystore {
335
372
  * old `repo_id` on THIS machine. D3: the most-recently-modified file (by
336
373
  * filesystem mtime — D6 rules out a maintained on-disk index for v1) wins;
337
374
  * a wrong pick is indistinguishable from an ordinary stale pin and heals
338
- * through the same {@link recoverStaleGitvaultPin} first-use-refusal path.
375
+ * through the same {@link recoverStaleVaultPin} first-use-refusal path.
339
376
  *
340
377
  * Cheap by construction (D6): one directory listing plus one JSON read per
341
378
  * candidate — no maintained project→repo index. NEVER throws: a corrupt,
@@ -373,7 +410,7 @@ export class GitvaultKeystore {
373
410
  }
374
411
  /** Save (create or replace) a repo file under the per-repo lock. */
375
412
  saveRepo(repo) {
376
- const full = { version: 1, ...repo, updated_at: formatGitvaultTimestamp(this.now()) };
413
+ const full = { version: 1, ...repo, updated_at: formatVaultTimestamp(this.now()) };
377
414
  this.withRepoLock(repo.repo_id, () => {
378
415
  writeFileAtomic0600(this.repoPath(repo.repo_id), JSON.stringify(full, null, 2));
379
416
  });
@@ -385,18 +422,18 @@ export class GitvaultKeystore {
385
422
  return this.withRepoLock(repoId, () => {
386
423
  const existing = this.readRepo(repoId);
387
424
  if (!existing)
388
- fail("GITVAULT_REPO_STATE_MISSING", `no repo file for ${repoId}`, "updating gitvault repo file", { repo_id: repoId });
389
- const full = { ...existing, ...patch, updated_at: formatGitvaultTimestamp(this.now()) };
425
+ fail("VAULT_REPO_STATE_MISSING", `no repo file for ${repoId}`, "updating vault repo file", { repo_id: repoId });
426
+ const full = { ...existing, ...patch, updated_at: formatVaultTimestamp(this.now()) };
390
427
  writeFileAtomic0600(this.repoPath(repoId), JSON.stringify(full, null, 2));
391
428
  return full;
392
429
  });
393
430
  }
394
431
  /**
395
- * gitvault-object-host-predial (design D1/D4, task 1.2): record that
432
+ * vault-object-host-predial (design D1/D4, task 1.2): record that
396
433
  * `origins` (already-normalized `scheme://host` strings) were observed
397
434
  * serving THIS repo's objects — the transport's write-through-on-change
398
435
  * hook. Most-recently-observed wins ties over anything already recorded;
399
- * deduped; capped at {@link GITVAULT_OBJECT_STORE_ORIGINS_CAP}. A true
436
+ * deduped; capped at {@link VAULT_OBJECT_STORE_ORIGINS_CAP}. A true
400
437
  * no-op (no lock taken, no write, `updated_at` untouched) when the
401
438
  * resulting set is IDENTICAL — in order — to what is already on disk, so
402
439
  * the steady state (every session re-observes the same one or two
@@ -418,12 +455,12 @@ export class GitvaultKeystore {
418
455
  if (!next.includes(o))
419
456
  next.push(o);
420
457
  for (const o of current) {
421
- if (next.length >= GITVAULT_OBJECT_STORE_ORIGINS_CAP)
458
+ if (next.length >= VAULT_OBJECT_STORE_ORIGINS_CAP)
422
459
  break;
423
460
  if (!next.includes(o))
424
461
  next.push(o);
425
462
  }
426
- const capped = next.slice(0, GITVAULT_OBJECT_STORE_ORIGINS_CAP);
463
+ const capped = next.slice(0, VAULT_OBJECT_STORE_ORIGINS_CAP);
427
464
  if (capped.length === current.length && capped.every((o, i) => o === current[i]))
428
465
  return;
429
466
  this.updateRepo(repoId, { object_store_origins: capped });
@@ -432,7 +469,7 @@ export class GitvaultKeystore {
432
469
  /* best-effort learning only — never surfaces into an object read */
433
470
  }
434
471
  }
435
- // ── local immutable-object cache (gitvault-client-round-trips design D3) ──
472
+ // ── local immutable-object cache (vault-client-round-trips design D3) ──
436
473
  //
437
474
  // `<rootDir>/<repo_id>/objects/` — beside the repo file above, NOT inside
438
475
  // it: genesis bytes, admitted head bytes, and carrier (ref_state /
@@ -440,7 +477,7 @@ export class GitvaultKeystore {
440
477
  // verified once. Holds ONLY ciphertext and signed public objects — never
441
478
  // decrypted plaintext, key material, or key envelopes. This class stores
442
479
  // and retrieves bytes alongside the sha256 they were verified against; it
443
- // does not itself re-verify anything — every caller (`GitvaultVault`)
480
+ // does not itself re-verify anything — every caller (`Vault`)
444
481
  // re-checks a cache hit against the SAME pin/receipt it would check
445
482
  // network bytes against before trusting it, so a stale or tampered entry
446
483
  // can only ever be discarded and refetched, never silently trusted. A
@@ -448,8 +485,8 @@ export class GitvaultKeystore {
448
485
  // never a thrown error — the cache is a pure accelerator, and its absence
449
486
  // degrades to exactly today's network-fetch behavior.
450
487
  objectsRepoDir(repoId) {
451
- if (!GITVAULT_SRC_RE.test(repoId))
452
- fail("GITVAULT_BAD_REPO_ID", `not a src_ id: ${repoId}`, "resolving gitvault object cache path");
488
+ if (!VAULT_SRC_RE.test(repoId))
489
+ fail("VAULT_BAD_REPO_ID", `not a src_ id: ${repoId}`, "resolving vault object cache path");
453
490
  return join(this.rootDir, repoId, "objects");
454
491
  }
455
492
  objectsGenesisPath(repoId) { return join(this.objectsRepoDir(repoId), "genesis.json"); }
@@ -492,7 +529,7 @@ export class GitvaultKeystore {
492
529
  readCachedHead(repoId, generation) {
493
530
  return this.decodeCachedBytes(this.readCachedFile(this.objectsHeadPath(repoId, generation)));
494
531
  }
495
- /** Writes the head, then evicts anything more than {@link GITVAULT_OBJECT_CACHE_WINDOW} generations behind it. */
532
+ /** Writes the head, then evicts anything more than {@link VAULT_OBJECT_CACHE_WINDOW} generations behind it. */
496
533
  writeCachedHead(repoId, generation, sha256, bytes) {
497
534
  this.writeCachedFile(this.objectsHeadPath(repoId, generation), { sha256, bytes_base64: Buffer.from(bytes).toString("base64") });
498
535
  this.evictObjectCache(repoId, generation);
@@ -510,7 +547,7 @@ export class GitvaultKeystore {
510
547
  this.evictObjectCache(repoId, generation);
511
548
  }
512
549
  /**
513
- * Drop heads and carriers more than {@link GITVAULT_OBJECT_CACHE_WINDOW}
550
+ * Drop heads and carriers more than {@link VAULT_OBJECT_CACHE_WINDOW}
514
551
  * generations behind `latestGeneration` — genesis is exempt (kept
515
552
  * forever). Runs inline on every cache write; also callable directly
516
553
  * (`sweepObjectCache`, wired into `repos gc`) as a periodic backstop that
@@ -519,7 +556,7 @@ export class GitvaultKeystore {
519
556
  * cache's own "a miss just refetches" posture.
520
557
  */
521
558
  evictObjectCache(repoId, latestGeneration) {
522
- const cutoff = genToBigInt(latestGeneration) - BigInt(GITVAULT_OBJECT_CACHE_WINDOW - 1);
559
+ const cutoff = genToBigInt(latestGeneration) - BigInt(VAULT_OBJECT_CACHE_WINDOW - 1);
523
560
  const pruneDir = (dir, generationOf) => {
524
561
  if (!existsSync(dir))
525
562
  return;
@@ -563,9 +600,9 @@ export class GitvaultKeystore {
563
600
  return this.withRepoLock(repoId, () => {
564
601
  const existing = this.readRepo(repoId);
565
602
  if (!existing)
566
- fail("GITVAULT_REPO_STATE_MISSING", `no repo file for ${repoId}`, "recording gitvault epoch rotation", { repo_id: repoId });
603
+ fail("VAULT_REPO_STATE_MISSING", `no repo file for ${repoId}`, "recording vault epoch rotation", { repo_id: repoId });
567
604
  const epochKeys = { ...(existing.epoch_keys ?? {}), [existing.epoch]: existing.k_repo_hex, [input.new_epoch]: input.new_k_repo_hex };
568
- const full = { ...existing, epoch: input.new_epoch, k_repo_hex: input.new_k_repo_hex, epoch_keys: epochKeys, updated_at: formatGitvaultTimestamp(this.now()) };
605
+ const full = { ...existing, epoch: input.new_epoch, k_repo_hex: input.new_k_repo_hex, epoch_keys: epochKeys, updated_at: formatVaultTimestamp(this.now()) };
569
606
  writeFileAtomic0600(this.repoPath(repoId), JSON.stringify(full, null, 2));
570
607
  this.audit("epoch_rotation_recorded", repoId, { new_epoch: input.new_epoch, known_epoch_count: Object.keys(epochKeys).length });
571
608
  return full;
@@ -607,14 +644,14 @@ export class GitvaultKeystore {
607
644
  if (this.reclaimStaleLock(lockDir, repoId, staleAfterMs))
608
645
  continue;
609
646
  if (Date.now() >= deadline) {
610
- fail("GITVAULT_KEYSTORE_LOCKED", `another process holds the lock for ${repoId}`, "acquiring gitvault repo lock", { repo_id: repoId, lock: lockDir });
647
+ fail("VAULT_KEYSTORE_LOCKED", `another process holds the lock for ${repoId}`, "acquiring vault repo lock", { repo_id: repoId, lock: lockDir });
611
648
  }
612
649
  const until = Date.now() + 25;
613
650
  while (Date.now() < until) { /* spin */ }
614
651
  }
615
652
  }
616
653
  try {
617
- writeFileAtomic0600(join(lockDir, "owner.json"), JSON.stringify({ pid: process.pid, at: formatGitvaultTimestamp(this.now()) }));
654
+ writeFileAtomic0600(join(lockDir, "owner.json"), JSON.stringify({ pid: process.pid, at: formatVaultTimestamp(this.now()) }));
618
655
  }
619
656
  catch {
620
657
  /* owner record is advisory */
@@ -670,7 +707,7 @@ export class GitvaultKeystore {
670
707
  const repo = this.readRepo(repoId);
671
708
  let state;
672
709
  if (!identity && !repo) {
673
- state = { state: "unrecoverable", code: "VAULT_UNRECOVERABLE", statement: GITVAULT_TERMINAL_LOSS_STATEMENT, doctor_text: GITVAULT_TERMINAL_LOSS_DOCTOR_TEXT };
710
+ state = { state: "unrecoverable", code: "VAULT_UNRECOVERABLE", statement: VAULT_TERMINAL_LOSS_STATEMENT, doctor_text: VAULT_TERMINAL_LOSS_DOCTOR_TEXT };
674
711
  }
675
712
  else if (!identity && repo) {
676
713
  // K_repo survives but no key can sign or open anything new: the history
@@ -680,7 +717,7 @@ export class GitvaultKeystore {
680
717
  else if (identity && !repo) {
681
718
  state = identity.encryption_private_key_hex
682
719
  ? { state: "repo_state_lost_identity_intact", next_action: "restore_from_envelope" }
683
- : { state: "unrecoverable", code: "VAULT_UNRECOVERABLE", statement: GITVAULT_TERMINAL_LOSS_STATEMENT, doctor_text: GITVAULT_TERMINAL_LOSS_DOCTOR_TEXT };
720
+ : { state: "unrecoverable", code: "VAULT_UNRECOVERABLE", statement: VAULT_TERMINAL_LOSS_STATEMENT, doctor_text: VAULT_TERMINAL_LOSS_DOCTOR_TEXT };
684
721
  }
685
722
  else if (identity && repo && !identity.signing_seed_hex) {
686
723
  state = { state: "read_only", repo, reason: "signing_key_lost" };
@@ -703,17 +740,17 @@ export class GitvaultKeystore {
703
740
  async restoreRepoFromEnvelope(input) {
704
741
  const identity = this.readIdentity();
705
742
  if (!identity)
706
- fail("VAULT_UNRECOVERABLE", GITVAULT_TERMINAL_LOSS_DOCTOR_TEXT, "restoring gitvault repo state", { statement: GITVAULT_TERMINAL_LOSS_STATEMENT });
743
+ fail("VAULT_UNRECOVERABLE", VAULT_TERMINAL_LOSS_DOCTOR_TEXT, "restoring vault repo state", { statement: VAULT_TERMINAL_LOSS_STATEMENT });
707
744
  const recipient = this.encryptionKeypair(identity);
708
745
  if (!recipient)
709
- fail("VAULT_UNRECOVERABLE", GITVAULT_TERMINAL_LOSS_DOCTOR_TEXT, "restoring gitvault repo state", { statement: GITVAULT_TERMINAL_LOSS_STATEMENT });
746
+ fail("VAULT_UNRECOVERABLE", VAULT_TERMINAL_LOSS_DOCTOR_TEXT, "restoring vault repo state", { statement: VAULT_TERMINAL_LOSS_STATEMENT });
710
747
  const { genesis, envelope } = input;
711
- if (!verifyGitvaultObject(genesis, genesis.creator_signing_pubkey)) {
712
- fail("GITVAULT_SIGNATURE_INVALID", "vault_genesis signature does not verify", "restoring gitvault repo state", { repo_id: genesis.repo_id });
748
+ if (!verifyVaultObject(genesis, genesis.creator_signing_pubkey)) {
749
+ fail("VAULT_SIGNATURE_INVALID", "vault_genesis signature does not verify", "restoring vault repo state", { repo_id: genesis.repo_id });
713
750
  }
714
751
  // The creator's OWN genesis envelope is bound to genesis byte-for-byte
715
752
  // (hash + size + recipient). Any OTHER recipient's envelope (a member
716
- // wrapped post-genesis — gitvault-agent-envelopes D4's cold open) is
753
+ // wrapped post-genesis — vault-agent-envelopes D4's cold open) is
717
754
  // not in genesis at all: for it, check genesis's own structural bindings
718
755
  // plus the envelope's addressing (this vault, this epoch, written under
719
756
  // the registered writer key); `openKeyEnvelope` then verifies the
@@ -738,7 +775,7 @@ export class GitvaultKeystore {
738
775
  }
739
776
  }
740
777
  if (bindings.length > 0) {
741
- fail("VAULT_CREATION_CONFLICT", "genesis key bindings do not hold for the stored envelope", "restoring gitvault repo state", { repo_id: genesis.repo_id, problems: bindings });
778
+ fail("VAULT_CREATION_CONFLICT", "genesis key bindings do not hold for the stored envelope", "restoring vault repo state", { repo_id: genesis.repo_id, problems: bindings });
742
779
  }
743
780
  const genesisSha = storedBytesSha256(genesis);
744
781
  // First-open pin (agent-envelopes D4): a genesis this keystore already
@@ -747,7 +784,7 @@ export class GitvaultKeystore {
747
784
  const priorRepo = this.readRepo(genesis.repo_id);
748
785
  const priorPin = priorRepo?.genesis_sha256 ?? this.readCachedGenesis(genesis.repo_id)?.sha256 ?? null;
749
786
  if (priorPin && priorPin !== genesisSha) {
750
- fail("VAULT_CREATION_CONFLICT", `the admitted genesis (${genesisSha}) is not the one this keystore pinned (${priorPin}); refusing a substituted vault`, "restoring gitvault repo state", { repo_id: genesis.repo_id, admitted: genesisSha, pinned: priorPin });
787
+ fail("VAULT_CREATION_CONFLICT", `the admitted genesis (${genesisSha}) is not the one this keystore pinned (${priorPin}); refusing a substituted vault`, "restoring vault repo state", { repo_id: genesis.repo_id, admitted: genesisSha, pinned: priorPin });
751
788
  }
752
789
  const continuity = priorPin ? "pinned" : "first_seen";
753
790
  const receipt = input.recovery_receipt ?? this.readRecoveryReceipt(genesis.repo_id);
@@ -755,12 +792,12 @@ export class GitvaultKeystore {
755
792
  if (receipt) {
756
793
  const problems = checkRecoveryReceipt(receipt, genesis);
757
794
  if (problems.length > 0) {
758
- fail("VAULT_CREATION_CONFLICT", "recovery receipt does not pin this genesis (substituted vault?)", "restoring gitvault repo state", { repo_id: genesis.repo_id, problems });
795
+ fail("VAULT_CREATION_CONFLICT", "recovery receipt does not pin this genesis (substituted vault?)", "restoring vault repo state", { repo_id: genesis.repo_id, problems });
759
796
  }
760
797
  trust = "receipt";
761
798
  }
762
799
  if (envelope.recipient_fingerprint !== identity.encryption_fingerprint) {
763
- fail("GITVAULT_ENVELOPE_NOT_FOR_RECIPIENT", "the stored envelope is addressed to another principal", "restoring gitvault repo state", { recipient_fingerprint: envelope.recipient_fingerprint });
800
+ fail("VAULT_ENVELOPE_NOT_FOR_RECIPIENT", "the stored envelope is addressed to another principal", "restoring vault repo state", { recipient_fingerprint: envelope.recipient_fingerprint });
764
801
  }
765
802
  const kRepo = await openKeyEnvelope({ envelope, recipient, signer_public_key: envelopeSignerPubkey });
766
803
  const repo = this.saveRepo({
@@ -782,8 +819,8 @@ export class GitvaultKeystore {
782
819
  const id = this.readIdentity();
783
820
  if (!id)
784
821
  return null;
785
- if (!GITVAULT_VK_RE.test(id.signing_fingerprint) || !GITVAULT_EK_RE.test(id.encryption_fingerprint)) {
786
- fail("GITVAULT_KEYSTORE_CORRUPT", "identity fingerprints are malformed", "reading gitvault identity");
822
+ if (!VAULT_VK_RE.test(id.signing_fingerprint) || !VAULT_EK_RE.test(id.encryption_fingerprint)) {
823
+ fail("VAULT_KEYSTORE_CORRUPT", "identity fingerprints are malformed", "reading vault identity");
787
824
  }
788
825
  return {
789
826
  signing_fingerprint: id.signing_fingerprint,
@@ -825,4 +862,4 @@ function safeRemoveLock(lockDir) {
825
862
  unlinkSync(owner);
826
863
  rmdirSync(lockDir);
827
864
  }
828
- //# sourceMappingURL=gitvault-keystore.js.map
865
+ //# sourceMappingURL=vault-keystore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-keystore.js","sourceRoot":"","sources":["../../src/node/vault-keystore.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { GitvaultMirrorBackend } from "./gitvault-mirror-backend.js";
2
- export declare const GITVAULT_MEMBER_BUNDLE_FORMAT: "r402s-member-recovery-bundle/v1";
1
+ import type { VaultMirrorBackend } from "./vault-mirror-backend.js";
2
+ export declare const VAULT_MEMBER_BUNDLE_FORMAT: "r402s-member-recovery-bundle/v1";
3
3
  /** The mirrored-prefix sidecar directory recovery/verify scan for bundles. */
4
- export declare const GITVAULT_MEMBER_BUNDLE_MIRROR_PREFIX: "member-recovery-bundles/";
4
+ export declare const VAULT_MEMBER_BUNDLE_MIRROR_PREFIX: "member-recovery-bundles/";
5
5
  /**
6
6
  * The seal-time ceremony host every wrapper in existence was sealed under
7
7
  * (`location.hostname` of the sealing console page). Used only when neither
@@ -9,8 +9,8 @@ export declare const GITVAULT_MEMBER_BUNDLE_MIRROR_PREFIX: "member-recovery-bund
9
9
  * wrong value fails closed as `WRAPPER_DID_NOT_OPEN`, never a silent
10
10
  * wrong-key open.
11
11
  */
12
- export declare const GITVAULT_DEFAULT_SOURCE_WRAPPER_RP_ID: "console.run402.com";
13
- export interface GitvaultMemberBundleWrapper {
12
+ export declare const VAULT_DEFAULT_SOURCE_WRAPPER_RP_ID: "console.run402.com";
13
+ export interface VaultMemberBundleWrapper {
14
14
  wrapper_id: string;
15
15
  kind: "webauthn_prf" | "recovery_code";
16
16
  format_version: string;
@@ -21,8 +21,8 @@ export interface GitvaultMemberBundleWrapper {
21
21
  created_at: string;
22
22
  }
23
23
  /** `r402s-member-recovery-bundle/v1` — exactly what the gateway export returns (plus the console download's client-stamped `rp_id`, when present). */
24
- export interface GitvaultMemberRecoveryBundle {
25
- format: typeof GITVAULT_MEMBER_BUNDLE_FORMAT;
24
+ export interface VaultMemberRecoveryBundle {
25
+ format: typeof VAULT_MEMBER_BUNDLE_FORMAT;
26
26
  exported_at?: string;
27
27
  principal_id: string;
28
28
  encryption_key_id: string;
@@ -31,14 +31,14 @@ export interface GitvaultMemberRecoveryBundle {
31
31
  public_key: string;
32
32
  suite: string;
33
33
  custody_scheme: string;
34
- wrappers: GitvaultMemberBundleWrapper[];
34
+ wrappers: VaultMemberBundleWrapper[];
35
35
  /** Seal-time ceremony host, when the exporting surface knew it (the console download stamps `location.hostname`). */
36
36
  rp_id?: string;
37
37
  note?: string;
38
38
  }
39
39
  /** Parse + shape-check a member recovery bundle (a JSON string or an already-parsed value). Typed refusal, never a silent partial. */
40
- export declare function parseMemberRecoveryBundle(input: unknown, context?: string): GitvaultMemberRecoveryBundle;
41
- export interface GitvaultMemberUnwrapResult {
40
+ export declare function parseMemberRecoveryBundle(input: unknown, context?: string): VaultMemberRecoveryBundle;
41
+ export interface VaultMemberUnwrapResult {
42
42
  /** X25519 private scalar, lowercase hex — feed straight into the recovery identity. */
43
43
  private_key_hex: string;
44
44
  /** Raw 32-byte member public key (derived from the scalar and verified against the bundle). */
@@ -62,13 +62,13 @@ export interface GitvaultMemberUnwrapResult {
62
62
  * material.
63
63
  */
64
64
  export declare function unwrapMemberRecoveryBundle(input: {
65
- bundle: GitvaultMemberRecoveryBundle;
65
+ bundle: VaultMemberRecoveryBundle;
66
66
  source_recovery_code: string;
67
- /** Seal-time ceremony host override; default = bundle.rp_id, then {@link GITVAULT_DEFAULT_SOURCE_WRAPPER_RP_ID}. */
67
+ /** Seal-time ceremony host override; default = bundle.rp_id, then {@link VAULT_DEFAULT_SOURCE_WRAPPER_RP_ID}. */
68
68
  rp_id?: string;
69
- }): GitvaultMemberUnwrapResult;
69
+ }): VaultMemberUnwrapResult;
70
70
  /** One mirrored bundle sidecar, reported keylessly — an UNVERIFIED availability hint (nothing about it is authenticated). */
71
- export interface GitvaultMemberBundleHint {
71
+ export interface VaultMemberBundleHint {
72
72
  key: string;
73
73
  /** Parsed identity when the sidecar is readable; null when it exists but does not parse as a v1 bundle. */
74
74
  ek_fingerprint: string | null;
@@ -82,7 +82,7 @@ export interface GitvaultMemberBundleHint {
82
82
  * bundle auto-discovery both read this. Never throws: an unreadable or
83
83
  * malformed sidecar is reported with its parse error, not skipped silently.
84
84
  */
85
- export declare function discoverMemberBundles(backend: GitvaultMirrorBackend): Promise<Array<GitvaultMemberBundleHint & {
86
- bundle: GitvaultMemberRecoveryBundle | null;
85
+ export declare function discoverMemberBundles(backend: VaultMirrorBackend): Promise<Array<VaultMemberBundleHint & {
86
+ bundle: VaultMemberRecoveryBundle | null;
87
87
  }>>;
88
- //# sourceMappingURL=gitvault-member-bundle.d.ts.map
88
+ //# sourceMappingURL=vault-member-bundle.d.ts.map