run402 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.
Files changed (337) hide show
  1. package/README.md +23 -23
  2. package/cli.mjs +8 -40
  3. package/core-dist/keystore.js +1 -1
  4. package/git-remote-run402.mjs +6 -6
  5. package/lib/admin.mjs +5 -5
  6. package/lib/ai.mjs +5 -5
  7. package/lib/apps.mjs +9 -9
  8. package/lib/archives.mjs +371 -8
  9. package/lib/argparse.mjs +5 -5
  10. package/lib/assets.mjs +12 -12
  11. package/lib/auth.mjs +34 -34
  12. package/lib/branches.mjs +7 -7
  13. package/lib/buzz-doctor.mjs +1 -1
  14. package/lib/buzz-notifications.mjs +4 -4
  15. package/lib/buzz.mjs +2 -2
  16. package/lib/cache.mjs +1 -1
  17. package/lib/cdn.mjs +2 -2
  18. package/lib/ci.mjs +8 -8
  19. package/lib/claims.mjs +2 -2
  20. package/lib/cold-start.mjs +2 -2
  21. package/lib/command-manifest.mjs +37 -76
  22. package/lib/config.mjs +4 -4
  23. package/lib/contacts.mjs +3 -3
  24. package/lib/contracts.mjs +11 -11
  25. package/lib/credentials.mjs +32 -32
  26. package/lib/daemon-path.mjs +3 -3
  27. package/lib/delegates.mjs +13 -13
  28. package/lib/deliveries.mjs +2 -2
  29. package/lib/deploy-v2.mjs +26 -26
  30. package/lib/dev.mjs +3 -3
  31. package/lib/doctor.mjs +49 -58
  32. package/lib/domains.mjs +27 -27
  33. package/lib/email.mjs +38 -38
  34. package/lib/errors.mjs +40 -24
  35. package/lib/escalations.mjs +4 -4
  36. package/lib/events.mjs +32 -25
  37. package/lib/feedback.mjs +2 -2
  38. package/lib/functions.mjs +34 -34
  39. package/lib/grants.mjs +7 -7
  40. package/lib/image.mjs +7 -7
  41. package/lib/init.mjs +32 -32
  42. package/lib/jobs.mjs +15 -15
  43. package/lib/live.mjs +1 -1
  44. package/lib/logs.mjs +8 -8
  45. package/lib/messages.mjs +5 -5
  46. package/lib/next-actions.mjs +2 -2
  47. package/lib/org-context.mjs +22 -22
  48. package/lib/{org.mjs → orgs.mjs} +140 -179
  49. package/lib/path-lookup.mjs +7 -10
  50. package/lib/path-lookup.test.mjs +19 -21
  51. package/lib/projects.mjs +45 -56
  52. package/lib/remote-helper-session.mjs +93 -93
  53. package/lib/repos.mjs +196 -197
  54. package/lib/rooms-context.mjs +7 -7
  55. package/lib/rooms.mjs +2 -2
  56. package/lib/sdk-errors.mjs +1 -1
  57. package/lib/secrets.mjs +13 -13
  58. package/lib/sites.mjs +14 -14
  59. package/lib/snapshots.mjs +10 -10
  60. package/lib/subdomains.mjs +12 -12
  61. package/lib/subscriptions.mjs +2 -2
  62. package/lib/transfer.mjs +1 -1
  63. package/lib/up.mjs +21 -21
  64. package/lib/{gitvault-capabilities.mjs → vault-capabilities.mjs} +10 -14
  65. package/lib/{gitvault-daemon-run.mjs → vault-daemon-run.mjs} +2 -2
  66. package/lib/{gitvault-daemon.mjs → vault-daemon.mjs} +23 -23
  67. package/lib/{gitvault-scaffold.mjs → vault-scaffold.mjs} +14 -14
  68. package/lib/{gitvault-target.mjs → vault-target.mjs} +22 -17
  69. package/lib/wallet-context.mjs +1 -1
  70. package/lib/wallets.mjs +1 -1
  71. package/lib/webhooks.mjs +8 -8
  72. package/lib/whoami.mjs +32 -5
  73. package/package.json +2 -2
  74. package/sdk/core-dist/keystore.js +1 -1
  75. package/sdk/dist/actions.d.ts +3 -3
  76. package/sdk/dist/actions.d.ts.map +1 -1
  77. package/sdk/dist/app-up.d.ts +2 -2
  78. package/sdk/dist/app-up.d.ts.map +1 -1
  79. package/sdk/dist/config.d.ts +1 -2
  80. package/sdk/dist/config.d.ts.map +1 -1
  81. package/sdk/dist/config.js.map +1 -1
  82. package/sdk/dist/credentials.d.ts +1 -1
  83. package/sdk/dist/errors.d.ts +6 -6
  84. package/sdk/dist/errors.d.ts.map +1 -1
  85. package/sdk/dist/errors.js +1 -1
  86. package/sdk/dist/errors.js.map +1 -1
  87. package/sdk/dist/index.d.ts +9 -9
  88. package/sdk/dist/index.d.ts.map +1 -1
  89. package/sdk/dist/index.js +9 -9
  90. package/sdk/dist/index.js.map +1 -1
  91. package/sdk/dist/namespaces/admin.d.ts +1 -1
  92. package/sdk/dist/namespaces/admin.d.ts.map +1 -1
  93. package/sdk/dist/namespaces/ai.d.ts +1 -1
  94. package/sdk/dist/namespaces/ai.js +2 -2
  95. package/sdk/dist/namespaces/ai.js.map +1 -1
  96. package/sdk/dist/namespaces/assets.js +1 -1
  97. package/sdk/dist/namespaces/assets.js.map +1 -1
  98. package/sdk/dist/namespaces/ci.js +3 -3
  99. package/sdk/dist/namespaces/ci.js.map +1 -1
  100. package/sdk/dist/namespaces/deploy.d.ts +5 -5
  101. package/sdk/dist/namespaces/deploy.d.ts.map +1 -1
  102. package/sdk/dist/namespaces/deploy.js +45 -46
  103. package/sdk/dist/namespaces/deploy.js.map +1 -1
  104. package/sdk/dist/namespaces/deploy.types.d.ts +19 -19
  105. package/sdk/dist/namespaces/deploy.types.d.ts.map +1 -1
  106. package/sdk/dist/namespaces/domains.d.ts +10 -2
  107. package/sdk/dist/namespaces/domains.d.ts.map +1 -1
  108. package/sdk/dist/namespaces/domains.js +10 -5
  109. package/sdk/dist/namespaces/domains.js.map +1 -1
  110. package/sdk/dist/namespaces/errors.js +1 -1
  111. package/sdk/dist/namespaces/functions.js +1 -1
  112. package/sdk/dist/namespaces/functions.js.map +1 -1
  113. package/sdk/dist/namespaces/org.d.ts +2 -2
  114. package/sdk/dist/namespaces/org.js +2 -2
  115. package/sdk/dist/namespaces/org.types.d.ts +3 -3
  116. package/sdk/dist/namespaces/pay.js +1 -1
  117. package/sdk/dist/namespaces/{gitvault.d.ts → repos.d.ts} +438 -451
  118. package/sdk/dist/namespaces/repos.d.ts.map +1 -0
  119. package/sdk/dist/namespaces/{gitvault.js → repos.js} +454 -462
  120. package/sdk/dist/namespaces/repos.js.map +1 -0
  121. package/sdk/dist/namespaces/rooms.js +2 -2
  122. package/sdk/dist/namespaces/rooms.js.map +1 -1
  123. package/sdk/dist/namespaces/session.d.ts +2 -2
  124. package/sdk/dist/namespaces/session.d.ts.map +1 -1
  125. package/sdk/dist/namespaces/session.js +2 -2
  126. package/sdk/dist/namespaces/session.js.map +1 -1
  127. package/sdk/dist/namespaces/tier.d.ts +4 -4
  128. package/sdk/dist/namespaces/tier.d.ts.map +1 -1
  129. package/sdk/dist/namespaces/transfers.d.ts +46 -15
  130. package/sdk/dist/namespaces/transfers.d.ts.map +1 -1
  131. package/sdk/dist/namespaces/transfers.js.map +1 -1
  132. package/sdk/dist/namespaces/{gitvault.crypto.d.ts → vault.crypto.d.ts} +141 -141
  133. package/sdk/dist/namespaces/vault.crypto.d.ts.map +1 -0
  134. package/sdk/dist/namespaces/{gitvault.crypto.js → vault.crypto.js} +173 -173
  135. package/sdk/dist/namespaces/vault.crypto.js.map +1 -0
  136. package/sdk/dist/namespaces/{gitvault.types.d.ts → vault.types.d.ts} +136 -136
  137. package/sdk/dist/namespaces/vault.types.d.ts.map +1 -0
  138. package/sdk/dist/namespaces/{gitvault.types.js → vault.types.js} +4 -4
  139. package/sdk/dist/namespaces/vault.types.js.map +1 -0
  140. package/sdk/dist/node/actions-node.js +8 -8
  141. package/sdk/dist/node/actions-node.js.map +1 -1
  142. package/sdk/dist/node/assets-node.js +6 -6
  143. package/sdk/dist/node/assets-node.js.map +1 -1
  144. package/sdk/dist/node/bearer-redeem-key.d.ts +1 -1
  145. package/sdk/dist/node/bearer-redeem-key.js +5 -5
  146. package/sdk/dist/node/bearer-redeem-key.js.map +1 -1
  147. package/sdk/dist/node/ci.js +1 -1
  148. package/sdk/dist/node/ci.js.map +1 -1
  149. package/sdk/dist/node/credentials.d.ts +1 -1
  150. package/sdk/dist/node/credentials.js +1 -1
  151. package/sdk/dist/node/deploy-manifest.d.ts +3 -5
  152. package/sdk/dist/node/deploy-manifest.d.ts.map +1 -1
  153. package/sdk/dist/node/deploy-manifest.js +3 -12
  154. package/sdk/dist/node/deploy-manifest.js.map +1 -1
  155. package/sdk/dist/node/http-dispatcher.js +5 -5
  156. package/sdk/dist/node/http-dispatcher.js.map +1 -1
  157. package/sdk/dist/node/index.d.ts +29 -29
  158. package/sdk/dist/node/index.d.ts.map +1 -1
  159. package/sdk/dist/node/index.js +39 -39
  160. package/sdk/dist/node/index.js.map +1 -1
  161. package/sdk/dist/node/manifest-export.js +2 -2
  162. package/sdk/dist/node/manifest-export.js.map +1 -1
  163. package/sdk/dist/node/org-adopt.js +1 -1
  164. package/sdk/dist/node/org-adopt.js.map +1 -1
  165. package/sdk/dist/node/sites-node.js +1 -1
  166. package/sdk/dist/node/sites-node.js.map +1 -1
  167. package/sdk/dist/node/{gitvault-address.d.ts → vault-address.d.ts} +42 -42
  168. package/sdk/dist/node/vault-address.d.ts.map +1 -0
  169. package/sdk/dist/node/{gitvault-address.js → vault-address.js} +43 -43
  170. package/sdk/dist/node/vault-address.js.map +1 -0
  171. package/sdk/dist/node/{gitvault-apply.d.ts → vault-apply.d.ts} +27 -27
  172. package/sdk/dist/node/vault-apply.d.ts.map +1 -0
  173. package/sdk/dist/node/{gitvault-apply.js → vault-apply.js} +38 -38
  174. package/sdk/dist/node/vault-apply.js.map +1 -0
  175. package/sdk/dist/node/vault-byo-config.d.ts +29 -0
  176. package/sdk/dist/node/vault-byo-config.d.ts.map +1 -0
  177. package/sdk/dist/node/{gitvault-byo-config.js → vault-byo-config.js} +18 -18
  178. package/sdk/dist/node/vault-byo-config.js.map +1 -0
  179. package/sdk/dist/node/vault-byo-probe.d.ts +20 -0
  180. package/sdk/dist/node/vault-byo-probe.d.ts.map +1 -0
  181. package/sdk/dist/node/vault-byo-probe.js +57 -0
  182. package/sdk/dist/node/vault-byo-probe.js.map +1 -0
  183. package/sdk/dist/node/{gitvault-creation-journal.d.ts → vault-creation-journal.d.ts} +69 -69
  184. package/sdk/dist/node/vault-creation-journal.d.ts.map +1 -0
  185. package/sdk/dist/node/{gitvault-creation-journal.js → vault-creation-journal.js} +54 -54
  186. package/sdk/dist/node/vault-creation-journal.js.map +1 -0
  187. package/sdk/dist/node/{gitvault-degraded-read.d.ts → vault-degraded-read.d.ts} +34 -34
  188. package/sdk/dist/node/vault-degraded-read.d.ts.map +1 -0
  189. package/sdk/dist/node/{gitvault-degraded-read.js → vault-degraded-read.js} +24 -24
  190. package/sdk/dist/node/vault-degraded-read.js.map +1 -0
  191. package/sdk/dist/node/{gitvault-deploy.d.ts → vault-deploy.d.ts} +67 -67
  192. package/sdk/dist/node/vault-deploy.d.ts.map +1 -0
  193. package/sdk/dist/node/{gitvault-deploy.js → vault-deploy.js} +27 -27
  194. package/sdk/dist/node/vault-deploy.js.map +1 -0
  195. package/sdk/dist/node/{gitvault-edge-fetch.d.ts → vault-edge-fetch.d.ts} +9 -9
  196. package/sdk/dist/node/vault-edge-fetch.d.ts.map +1 -0
  197. package/sdk/dist/node/{gitvault-edge-fetch.js → vault-edge-fetch.js} +11 -11
  198. package/sdk/dist/node/vault-edge-fetch.js.map +1 -0
  199. package/sdk/dist/node/{gitvault-handoff.d.ts → vault-handoff.d.ts} +9 -9
  200. package/sdk/dist/node/vault-handoff.d.ts.map +1 -0
  201. package/sdk/dist/node/{gitvault-handoff.js → vault-handoff.js} +24 -24
  202. package/sdk/dist/node/vault-handoff.js.map +1 -0
  203. package/sdk/dist/node/{gitvault-keystore.d.ts → vault-keystore.d.ts} +87 -77
  204. package/sdk/dist/node/vault-keystore.d.ts.map +1 -0
  205. package/sdk/dist/node/{gitvault-keystore.js → vault-keystore.js} +105 -68
  206. package/sdk/dist/node/vault-keystore.js.map +1 -0
  207. package/sdk/dist/node/{gitvault-member-bundle.d.ts → vault-member-bundle.d.ts} +17 -17
  208. package/sdk/dist/node/vault-member-bundle.d.ts.map +1 -0
  209. package/sdk/dist/node/{gitvault-member-bundle.js → vault-member-bundle.js} +11 -11
  210. package/sdk/dist/node/vault-member-bundle.js.map +1 -0
  211. package/sdk/dist/node/{gitvault-mirror-backend.d.ts → vault-mirror-backend.d.ts} +26 -26
  212. package/sdk/dist/node/vault-mirror-backend.d.ts.map +1 -0
  213. package/sdk/dist/node/{gitvault-mirror-backend.js → vault-mirror-backend.js} +25 -25
  214. package/sdk/dist/node/vault-mirror-backend.js.map +1 -0
  215. package/sdk/dist/node/{gitvault-mirror-config.d.ts → vault-mirror-config.d.ts} +23 -23
  216. package/sdk/dist/node/vault-mirror-config.d.ts.map +1 -0
  217. package/sdk/dist/node/{gitvault-mirror-config.js → vault-mirror-config.js} +16 -16
  218. package/sdk/dist/node/vault-mirror-config.js.map +1 -0
  219. package/sdk/dist/node/{gitvault-mirror.d.ts → vault-mirror.d.ts} +36 -36
  220. package/sdk/dist/node/vault-mirror.d.ts.map +1 -0
  221. package/sdk/dist/node/{gitvault-mirror.js → vault-mirror.js} +75 -75
  222. package/sdk/dist/node/vault-mirror.js.map +1 -0
  223. package/sdk/dist/node/{gitvault-native-crypto.d.ts → vault-native-crypto.d.ts} +10 -10
  224. package/sdk/dist/node/vault-native-crypto.d.ts.map +1 -0
  225. package/sdk/dist/node/{gitvault-native-crypto.js → vault-native-crypto.js} +16 -16
  226. package/sdk/dist/node/vault-native-crypto.js.map +1 -0
  227. package/sdk/dist/node/{gitvault-open-or-create.d.ts → vault-open-or-create.d.ts} +16 -16
  228. package/sdk/dist/node/vault-open-or-create.d.ts.map +1 -0
  229. package/sdk/dist/node/{gitvault-open-or-create.js → vault-open-or-create.js} +10 -10
  230. package/sdk/dist/node/vault-open-or-create.js.map +1 -0
  231. package/sdk/dist/node/{gitvault-prewarm.d.ts → vault-prewarm.d.ts} +13 -13
  232. package/sdk/dist/node/vault-prewarm.d.ts.map +1 -0
  233. package/sdk/dist/node/{gitvault-prewarm.js → vault-prewarm.js} +25 -25
  234. package/sdk/dist/node/vault-prewarm.js.map +1 -0
  235. package/sdk/dist/node/{gitvault-profile-scan.d.ts → vault-profile-scan.d.ts} +3 -3
  236. package/sdk/dist/node/vault-profile-scan.d.ts.map +1 -0
  237. package/sdk/dist/node/{gitvault-profile-scan.js → vault-profile-scan.js} +12 -12
  238. package/sdk/dist/node/vault-profile-scan.js.map +1 -0
  239. package/sdk/dist/node/{gitvault-prune.d.ts → vault-prune.d.ts} +61 -61
  240. package/sdk/dist/node/vault-prune.d.ts.map +1 -0
  241. package/sdk/dist/node/{gitvault-prune.js → vault-prune.js} +34 -34
  242. package/sdk/dist/node/vault-prune.js.map +1 -0
  243. package/sdk/dist/node/{gitvault-publication.d.ts → vault-publication.d.ts} +399 -399
  244. package/sdk/dist/node/vault-publication.d.ts.map +1 -0
  245. package/sdk/dist/node/{gitvault-publication.js → vault-publication.js} +584 -584
  246. package/sdk/dist/node/vault-publication.js.map +1 -0
  247. package/sdk/dist/node/{gitvault-push-to-create.d.ts → vault-push-to-create.d.ts} +16 -16
  248. package/sdk/dist/node/vault-push-to-create.d.ts.map +1 -0
  249. package/sdk/dist/node/{gitvault-push-to-create.js → vault-push-to-create.js} +9 -9
  250. package/sdk/dist/node/vault-push-to-create.js.map +1 -0
  251. package/sdk/dist/node/{gitvault-recover.d.ts → vault-recover.d.ts} +50 -50
  252. package/sdk/dist/node/vault-recover.d.ts.map +1 -0
  253. package/sdk/dist/node/{gitvault-recover.js → vault-recover.js} +84 -84
  254. package/sdk/dist/node/vault-recover.js.map +1 -0
  255. package/sdk/dist/node/{gitvault-restore.d.ts → vault-restore.d.ts} +8 -8
  256. package/sdk/dist/node/vault-restore.d.ts.map +1 -0
  257. package/sdk/dist/node/{gitvault-restore.js → vault-restore.js} +11 -11
  258. package/sdk/dist/node/vault-restore.js.map +1 -0
  259. package/sdk/dist/node/{gitvault-snapshot.d.ts → vault-snapshot.d.ts} +48 -48
  260. package/sdk/dist/node/vault-snapshot.d.ts.map +1 -0
  261. package/sdk/dist/node/{gitvault-snapshot.js → vault-snapshot.js} +61 -61
  262. package/sdk/dist/node/vault-snapshot.js.map +1 -0
  263. package/sdk/dist/node/{gitvault-writer-state.d.ts → vault-writer-state.d.ts} +8 -8
  264. package/sdk/dist/node/vault-writer-state.d.ts.map +1 -0
  265. package/sdk/dist/node/{gitvault-writer-state.js → vault-writer-state.js} +15 -15
  266. package/sdk/dist/node/vault-writer-state.js.map +1 -0
  267. package/sdk/dist/node/workflow-output.js +4 -4
  268. package/sdk/dist/node/workflow-output.js.map +1 -1
  269. package/sdk/dist/scoped.d.ts +8 -8
  270. package/sdk/dist/scoped.d.ts.map +1 -1
  271. package/sdk/dist/scoped.js +3 -3
  272. package/sdk/dist/scoped.js.map +1 -1
  273. package/vault-surface.json +40 -0
  274. package/gitvault-surface.json +0 -89
  275. package/lib/cloud.mjs +0 -256
  276. package/lib/core.mjs +0 -123
  277. package/lib/gitvault.mjs +0 -163
  278. package/lib/source-access.mjs +0 -70
  279. package/sdk/dist/namespaces/gitvault.crypto.d.ts.map +0 -1
  280. package/sdk/dist/namespaces/gitvault.crypto.js.map +0 -1
  281. package/sdk/dist/namespaces/gitvault.d.ts.map +0 -1
  282. package/sdk/dist/namespaces/gitvault.js.map +0 -1
  283. package/sdk/dist/namespaces/gitvault.types.d.ts.map +0 -1
  284. package/sdk/dist/namespaces/gitvault.types.js.map +0 -1
  285. package/sdk/dist/node/gitvault-address.d.ts.map +0 -1
  286. package/sdk/dist/node/gitvault-address.js.map +0 -1
  287. package/sdk/dist/node/gitvault-apply.d.ts.map +0 -1
  288. package/sdk/dist/node/gitvault-apply.js.map +0 -1
  289. package/sdk/dist/node/gitvault-byo-config.d.ts +0 -29
  290. package/sdk/dist/node/gitvault-byo-config.d.ts.map +0 -1
  291. package/sdk/dist/node/gitvault-byo-config.js.map +0 -1
  292. package/sdk/dist/node/gitvault-byo-probe.d.ts +0 -20
  293. package/sdk/dist/node/gitvault-byo-probe.d.ts.map +0 -1
  294. package/sdk/dist/node/gitvault-byo-probe.js +0 -57
  295. package/sdk/dist/node/gitvault-byo-probe.js.map +0 -1
  296. package/sdk/dist/node/gitvault-creation-journal.d.ts.map +0 -1
  297. package/sdk/dist/node/gitvault-creation-journal.js.map +0 -1
  298. package/sdk/dist/node/gitvault-degraded-read.d.ts.map +0 -1
  299. package/sdk/dist/node/gitvault-degraded-read.js.map +0 -1
  300. package/sdk/dist/node/gitvault-deploy.d.ts.map +0 -1
  301. package/sdk/dist/node/gitvault-deploy.js.map +0 -1
  302. package/sdk/dist/node/gitvault-edge-fetch.d.ts.map +0 -1
  303. package/sdk/dist/node/gitvault-edge-fetch.js.map +0 -1
  304. package/sdk/dist/node/gitvault-handoff.d.ts.map +0 -1
  305. package/sdk/dist/node/gitvault-handoff.js.map +0 -1
  306. package/sdk/dist/node/gitvault-keystore.d.ts.map +0 -1
  307. package/sdk/dist/node/gitvault-keystore.js.map +0 -1
  308. package/sdk/dist/node/gitvault-member-bundle.d.ts.map +0 -1
  309. package/sdk/dist/node/gitvault-member-bundle.js.map +0 -1
  310. package/sdk/dist/node/gitvault-mirror-backend.d.ts.map +0 -1
  311. package/sdk/dist/node/gitvault-mirror-backend.js.map +0 -1
  312. package/sdk/dist/node/gitvault-mirror-config.d.ts.map +0 -1
  313. package/sdk/dist/node/gitvault-mirror-config.js.map +0 -1
  314. package/sdk/dist/node/gitvault-mirror.d.ts.map +0 -1
  315. package/sdk/dist/node/gitvault-mirror.js.map +0 -1
  316. package/sdk/dist/node/gitvault-native-crypto.d.ts.map +0 -1
  317. package/sdk/dist/node/gitvault-native-crypto.js.map +0 -1
  318. package/sdk/dist/node/gitvault-open-or-create.d.ts.map +0 -1
  319. package/sdk/dist/node/gitvault-open-or-create.js.map +0 -1
  320. package/sdk/dist/node/gitvault-prewarm.d.ts.map +0 -1
  321. package/sdk/dist/node/gitvault-prewarm.js.map +0 -1
  322. package/sdk/dist/node/gitvault-profile-scan.d.ts.map +0 -1
  323. package/sdk/dist/node/gitvault-profile-scan.js.map +0 -1
  324. package/sdk/dist/node/gitvault-prune.d.ts.map +0 -1
  325. package/sdk/dist/node/gitvault-prune.js.map +0 -1
  326. package/sdk/dist/node/gitvault-publication.d.ts.map +0 -1
  327. package/sdk/dist/node/gitvault-publication.js.map +0 -1
  328. package/sdk/dist/node/gitvault-push-to-create.d.ts.map +0 -1
  329. package/sdk/dist/node/gitvault-push-to-create.js.map +0 -1
  330. package/sdk/dist/node/gitvault-recover.d.ts.map +0 -1
  331. package/sdk/dist/node/gitvault-recover.js.map +0 -1
  332. package/sdk/dist/node/gitvault-restore.d.ts.map +0 -1
  333. package/sdk/dist/node/gitvault-restore.js.map +0 -1
  334. package/sdk/dist/node/gitvault-snapshot.d.ts.map +0 -1
  335. package/sdk/dist/node/gitvault-snapshot.js.map +0 -1
  336. package/sdk/dist/node/gitvault-writer-state.d.ts.map +0 -1
  337. package/sdk/dist/node/gitvault-writer-state.js.map +0 -1
@@ -13,13 +13,13 @@
13
13
  * positionals canonical positional ATTRIBUTES (post-conventions).
14
14
  * A variadic list of the SAME kind counts as one.
15
15
  * projectScoped command operates on a project and accepts
16
- * `--project <id>` (precedence: --project > legacy
16
+ * `--project <project_id>` (precedence: --project > legacy
17
17
  * leading prj_ positional > active project)
18
18
  * orgScoped command acts ON an organization and resolves it
19
19
  * through the ONE shared chain (cli-org-context):
20
20
  * an optional leading <org_id> positional, else
21
21
  * --org, else RUN402_ORG, else the .run402.json
22
- * binding, else `org use`. The gate drives every
22
+ * binding, else `orgs use`. The gate drives every
23
23
  * such entry through --org AND RUN402_ORG with no
24
24
  * positional and fails on any "Missing <org_id>".
25
25
  * Any entry with an `org_id` positional MUST be
@@ -151,7 +151,6 @@ export const COMMAND_MANIFEST = [
151
151
  { path: ["projects", "delete"], positionals: [], projectScoped: true, legacyPositionalProject: true, minimalArgs: [] },
152
152
  { path: ["projects", "promote-user"], positionals: [p("email")], projectScoped: true, legacyPositionalProject: true, minimalArgs: ["user@example.com"] },
153
153
  { path: ["projects", "demote-user"], positionals: [p("email")], projectScoped: true, legacyPositionalProject: true, minimalArgs: ["user@example.com"] },
154
- { path: ["projects", "export"], positionals: [], projectScoped: true, legacyPositionalProject: true, minimalArgs: [] },
155
154
 
156
155
  // ── snapshots ────────────────────────────────────────────────────────────
157
156
  { path: ["snapshots", "create"], positionals: [], projectScoped: true, legacyPositionalProject: true, minimalArgs: [] },
@@ -171,13 +170,13 @@ export const COMMAND_MANIFEST = [
171
170
  { path: ["admin", "archive"], positionals: [], projectScoped: true, legacyPositionalProject: true, minimalArgs: ["--reason", "gate"] },
172
171
  { path: ["admin", "reactivate"], positionals: [], projectScoped: true, legacyPositionalProject: true, minimalArgs: [] },
173
172
 
174
- // ── cloud / archives / core ──────────────────────────────────────────────
175
- { path: ["cloud", "archives", "create"], positionals: [], projectScoped: true, legacyPositionalProject: true, minimalArgs: [] },
176
- { path: ["cloud", "archives", "download"], positionals: [p("archive_id")], projectScoped: true, legacyPositionalProject: true, minimalArgs: ["arc_gate1", "--output", "__OUT_FILE__"] },
177
- { path: ["cloud", "archives", "status"], positionals: [p("archive_id")], projectScoped: true, legacyPositionalProject: true, minimalArgs: ["arc_gate1"] },
173
+ // ── archives ─────────────────────────────────────────────────────────────
174
+ { path: ["archives", "create"], positionals: [], projectScoped: true, legacyPositionalProject: true, minimalArgs: [] },
175
+ { path: ["archives", "download"], positionals: [p("archive_id")], projectScoped: true, legacyPositionalProject: true, minimalArgs: ["arc_gate1", "--output", "__OUT_FILE__"] },
176
+ { path: ["archives", "status"], positionals: [p("archive_id")], projectScoped: true, legacyPositionalProject: true, minimalArgs: ["arc_gate1"] },
178
177
  { path: ["archives", "inspect"], positionals: [p("archive_path")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["__FIXTURE_FILE__"] },
179
178
  { path: ["archives", "verify"], positionals: [p("archive_path")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["__FIXTURE_FILE__"] },
180
- { path: ["core", "projects", "import"], positionals: [p("archive_path")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["__FIXTURE_FILE__", "--name", "gate-import"] },
179
+ { path: ["archives", "import"], positionals: [p("archive_path")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["__FIXTURE_FILE__", "--name", "gate-import"] },
181
180
 
182
181
  // ── deploy (unified deploy v2) ───────────────────────────────────────────
183
182
  // Bare `run402 deploy` IS the deploy (a verb); the family's subcommands
@@ -209,31 +208,30 @@ export const COMMAND_MANIFEST = [
209
208
  { path: ["transfer", "accept"], positionals: [p("transfer_id")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["tr_gate1"] },
210
209
  { path: ["transfer", "cancel"], positionals: [p("transfer_id")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["tr_gate1"] },
211
210
 
212
- // ── org ──────────────────────────────────────────────────────────────────
213
- { path: ["org", "create"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
214
- { path: ["org", "list"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
215
- { path: ["org", "get"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG] },
216
- { path: ["org", "rename"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "--name", "Gate"] },
217
- { path: ["org", "payout-wallet"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "0x1111111111111111111111111111111111111111"] },
211
+ // ── orgs ──────────────────────────────────────────────────────────────────
212
+ { path: ["orgs", "create"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
213
+ { path: ["orgs", "list"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
214
+ { path: ["orgs", "get"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG] },
215
+ { path: ["orgs", "rename"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "--name", "Gate"] },
216
+ { path: ["orgs", "payout-wallet"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "0x1111111111111111111111111111111111111111"] },
218
217
  // `--org` (not a positional org_id
219
218
  // like rename/payout-wallet above) goes through resolveOrg's SHAPE
220
219
  // validation (a real UUID) — "org_gate1" fails that locally, so this needs
221
- // the same UUID-shaped fixture `org use` below already established.
222
- { path: ["org", "slug"], positionals: [p("slug")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["acme", "--org", "11111111-2222-3333-4444-555555555555"] },
223
- { path: ["org", "whoami"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
224
- { path: ["org", "audit"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG] },
225
- { path: ["org", "use"], positionals: [p("org_id")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["11111111-2222-3333-4444-555555555555"] },
226
- { path: ["org", "current"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
227
- { path: ["org", "clear"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
228
- { path: ["org", "bind"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["--org", "11111111-2222-3333-4444-555555555555"] },
229
- { path: ["org", "unbind"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
230
- { path: ["org", "member", "list"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG] },
231
- { path: ["org", "member", "add"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "0x1111111111111111111111111111111111111111"] },
232
- { path: ["org", "member", "role"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "--principal", "prn_gate1", "--role", "viewer"] },
233
- { path: ["org", "member", "rm"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "--principal", "prn_gate1"] },
234
- { path: ["org", "invite", "list"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG] },
235
- { path: ["org", "invite", "create"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "--email", "gate@example.com"] },
236
- { path: ["org", "invite", "rm"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "--principal", "prn_gate1"] },
220
+ // the same UUID-shaped fixture `orgs use` below already established.
221
+ { path: ["orgs", "slug"], positionals: [p("slug")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["acme", "--org", "11111111-2222-3333-4444-555555555555"] },
222
+ { path: ["orgs", "audit"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG] },
223
+ { path: ["orgs", "use"], positionals: [p("org_id")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["11111111-2222-3333-4444-555555555555"] },
224
+ { path: ["orgs", "current"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
225
+ { path: ["orgs", "clear"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
226
+ { path: ["orgs", "bind"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["--org", "11111111-2222-3333-4444-555555555555"] },
227
+ { path: ["orgs", "unbind"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
228
+ { path: ["orgs", "members", "list"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG] },
229
+ { path: ["orgs", "members", "add"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "0x1111111111111111111111111111111111111111"] },
230
+ { path: ["orgs", "members", "role"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "--principal", "prn_gate1", "--role", "viewer"] },
231
+ { path: ["orgs", "members", "rm"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "--principal", "prn_gate1"] },
232
+ { path: ["orgs", "invite", "list"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG] },
233
+ { path: ["orgs", "invite", "create"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "--email", "gate@example.com"] },
234
+ { path: ["orgs", "invite", "rm"], positionals: [p("org_id", { required: false })], projectScoped: false, orgScoped: true, legacyPositionalProject: false, minimalArgs: [GATE_ORG, "--principal", "prn_gate1"] },
237
235
 
238
236
  // ── grants ───────────────────────────────────────────────────────────────
239
237
  { path: ["grants", "create"], positionals: [p("wallet")], projectScoped: true, legacyPositionalProject: true, minimalArgs: ["0x1111111111111111111111111111111111111111", "--capability", "deploy"] },
@@ -245,8 +243,8 @@ export const COMMAND_MANIFEST = [
245
243
  { path: ["delegates", "revoke"], legacyPositionalProject: false, positionals: [p("delegate_id")], projectScoped: true, minimalArgs: ["dlg_gate1"] },
246
244
  { path: ["delegates", "rotate"], legacyPositionalProject: false, positionals: [p("delegate_id")], projectScoped: true, minimalArgs: ["dlg_gate1"] },
247
245
 
248
- // ── events / errors (flat, merged runners) ───────────────────────────────
249
- { path: ["events"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: [], runStyle: "merged" },
246
+ // ── events / live ────────────────────────────────────────────────────────
247
+ { path: ["events", "list"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: [], runStyle: "sub" },
250
248
  { path: ["live"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: ["--tables", "cells", "--once"], runStyle: "merged" },
251
249
  { path: ["deliveries", "list"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [], runStyle: "sub" },
252
250
  { path: ["deliveries", "get"], positionals: [p("notification_id")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["n_1"], runStyle: "sub" },
@@ -283,12 +281,6 @@ export const COMMAND_MANIFEST = [
283
281
  { path: ["claims", "list"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: [], runStyle: "sub" },
284
282
  { path: ["claims", "release"], positionals: [p("claim_id")], projectScoped: true, legacyPositionalProject: false, minimalArgs: ["clm_1"], runStyle: "sub" },
285
283
 
286
- // ── gitvault — no manifest entries ──────────────────────
287
- // `cli/lib/gitvault.mjs`'s dispatcher handles every `gitvault <verb>` and
288
- // answers a structural COMMAND_MOVED (or, for `push`/`reconcile`,
289
- // COMMAND_REMOVED) redirect that dispatches nothing — see
290
- // RESERVED_SUBCOMMANDS below, and "gitvault" in SKIPPED_FAMILIES.
291
-
292
284
  // ── repos (the consolidated 15-verb family) ─
293
285
  // Every verb needs a real principal keystore and, for most, an allocated
294
286
  // repo and a local git working tree, so the gate runs structural checks
@@ -301,7 +293,7 @@ export const COMMAND_MANIFEST = [
301
293
  // name, with `--repo`/`--project` addressing.
302
294
  { path: ["repos", "rename"], positionals: [p("new_name")], projectScoped: true, legacyPositionalProject: false, minimalArgs: ["my-notes"], runStyle: "sub", skipBehavioral: "claims a per-org-unique repo name against a live project" },
303
295
  { path: ["repos", "delete"], positionals: [], projectScoped: true, legacyPositionalProject: true, minimalArgs: [], runStyle: "sub", skipBehavioral: "irreversibly deletes a project after reading its live non-repo-resource state and vault generation count" },
304
- { path: ["repos", "snapshot"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: [], runStyle: "sub", skipBehavioral: "captures the cwd git working tree and publishes a signed head" },
296
+ { path: ["repos", "capture"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: [], runStyle: "sub", skipBehavioral: "captures the cwd git working tree and publishes a signed head" },
305
297
  // kygit-handoff: `handoff` captures a stash-shaped checkpoint and mints a
306
298
  // single-use bearer key through a live gateway call; `resume` claims one
307
299
  // (a real membership mutation) and writes into a fresh working tree.
@@ -322,12 +314,13 @@ export const COMMAND_MANIFEST = [
322
314
  { path: ["repos", "access", "repair"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: ["--recipient-state-version", "0", "--recipient-revocation-version", "0"], runStyle: "sub", skipBehavioral: "owner+step-up-gated epoch rotation (D193-D203, rev 42) — samples a fresh epoch key and re-seals a live vault's recipients" },
323
315
  { path: ["repos", "access", "revoke-key"], positionals: [p("principal_id")], projectScoped: true, legacyPositionalProject: false, minimalArgs: ["prin_00000000000000000000000000000000"], runStyle: "sub", skipBehavioral: "owner+step-up-gated: declares a recipient's key revoked (org-scoped watermark) and drives a real epoch rotation off it" },
324
316
  { path: ["repos", "access", "declare-exposure"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: [], runStyle: "sub", skipBehavioral: "owner+step-up-gated: declares this vault's epoch secret exposed, forcing every subsequent ordinary push to refuse until a rotation lands" },
325
- { path: ["repos", "access", "sync"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: [], runStyle: "sub", skipBehavioral: "gitvault-multi-writer (rev 47): on-demand writer-admission reconcile — resolves pending candidates' signing keys via the live org encryption-key directory and publishes a real add_writer_key head per candidate" },
317
+ { path: ["repos", "access", "sync"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: [], runStyle: "sub", skipBehavioral: "vault-multi-writer (rev 47): on-demand writer-admission reconcile — resolves pending candidates' signing keys via the live org encryption-key directory and publishes a real add_writer_key head per candidate" },
326
318
  { path: ["repos", "recover"], positionals: [p("source")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["s3://example-mirror-bucket", "--out", "__SCRATCH_DIR__/recover-out"], runStyle: "sub", skipBehavioral: "materializes a git repository from a mirror source, offline, with no server call" },
327
319
  // Principal-scoped (one bundle covers every vault you can read), so no
328
320
  // --project — deliberately unlike its eleven vault-scoped siblings.
329
321
  { path: ["repos", "recovery-bundle"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["--out", "-"], runStyle: "sub", skipBehavioral: "exports the caller's live member recovery bundle (stamps recovery-posture export evidence server-side)" },
330
- { path: ["errors"], positionals: [p("fingerprint_id", { required: false })], projectScoped: true, legacyPositionalProject: false, minimalArgs: [], runStyle: "merged" },
322
+ { path: ["errors", "list"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: [], runStyle: "sub" },
323
+ { path: ["errors", "get"], positionals: [p("fingerprint_id")], projectScoped: true, legacyPositionalProject: false, minimalArgs: ["fp_gate1"], runStyle: "sub" },
331
324
 
332
325
  // ── jobs ─────────────────────────────────────────────────────────────────
333
326
  { path: ["jobs", "submit"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: ["--file", "__FIXTURE_FILE__"] },
@@ -478,14 +471,14 @@ export const COMMAND_MANIFEST = [
478
471
  { path: ["service", "health"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
479
472
  { path: ["cache", "inspect"], positionals: [p("url")], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["https://example.com/"] },
480
473
  { path: ["cache", "invalidate"], positionals: [p("url", { required: false })], projectScoped: false, legacyPositionalProject: false, minimalArgs: ["--all", "--host", "example.com"] },
481
- // projectScoped: --project targets the gitvault
474
+ // projectScoped: --project targets the vault
482
475
  // check only (see doctor.mjs's own HELP) — every other check stays
483
476
  // wallet/machine-wide, but the gate's contract is "accepts --project
484
477
  // without rejecting it," which this satisfies.
485
478
  { path: ["doctor"], positionals: [], projectScoped: true, legacyPositionalProject: false, minimalArgs: ["--no-scan"], runStyle: "merged" },
486
479
  { path: ["webhook-secret", "rotate"], positionals: [], projectScoped: false, legacyPositionalProject: false, minimalArgs: [] },
487
- // `run402 logs [<function>] --request-id <id>`: the optional positional is
488
- // the function name (`run402 errors` samples print it that way); it is
480
+ // `run402 logs [<function>] --request-id <request_id>`: the optional positional is
481
+ // the function name (`run402 errors list` samples print it that way); it is
489
482
  // never a project id.
490
483
  { path: ["logs"], positionals: [p("function", { required: false })], projectScoped: true, legacyPositionalProject: false, minimalArgs: ["--request-id", "req_gate123"], runStyle: "merged" },
491
484
  ];
@@ -502,20 +495,6 @@ export const SKIPPED_FAMILIES = {
502
495
  // Split into `deliveries` / `contacts` / `subscriptions`; every subcommand
503
496
  // answers COMMAND_REMOVED naming its successor.
504
497
  "notifications": "reserved group; split by legible-cli-surface",
505
- // The gitvault dispatcher answers COMMAND_MOVED/COMMAND_REMOVED for every
506
- // `gitvault <verb>` (see RESERVED_SUBCOMMANDS below for the per-verb list)
507
- // — the family stays dispatched in cli.mjs (so the redirect fires instead
508
- // of UNKNOWN_COMMAND) but has zero manifest entries, since a redirect
509
- // dispatches nothing.
510
- "gitvault": "retired; every subcommand answers COMMAND_MOVED/COMMAND_REMOVED naming its `repos`/git successor",
511
- // Shipped in exactly one release (v4.54.0, live for hours) before the
512
- // one-noun review caught it: a gateway route namespace is not a CLI noun.
513
- // Both verbs answer COMMAND_MOVED into the repos family for one release,
514
- // then the spelling is reserved and answers nothing.
515
- "source-access": "retired same-day; `export` -> `repos recovery-bundle`, `status` -> `repos access` (member_custody block)",
516
- // `repo` singular resolves identically to `repos` — same
517
- // module, same case block in cli.mjs, so it needs no manifest of its own.
518
- "repo": "alias for `repos`, resolves identically (design D1)",
519
498
  };
520
499
 
521
500
  /**
@@ -531,23 +510,5 @@ export const SKIPPED_FAMILIES = {
531
510
  * which the family list cannot express.
532
511
  */
533
512
  export const RESERVED_SUBCOMMANDS = {
534
- "source-access:export": "moved to `repos recovery-bundle` — the artifact `repos recover --bundle` consumes belongs to the repos family",
535
- "source-access:status": "moved to `repos access` — your own wrapper custody rides its member_custody block; the org advisory is `doctor --only recovery_posture`",
536
513
  "escalations:contacts": "merged into `contacts` — the ladder and Telegram channels are one question",
537
- // Every `gitvault <verb>` spelling. Nine
538
- // answer COMMAND_MOVED naming their `repos` successor; `push` and
539
- // `reconcile` answer COMMAND_REMOVED (no equivalent successor for either —
540
- // `push`'s one-release alias window is over, `reconcile` was a workaround
541
- // with no permanent replacement, only a read at `repos access`).
542
- "gitvault:init": "moved to `repos create --project <id>`",
543
- "gitvault:status": "moved to `repos view`",
544
- "gitvault:snapshot": "moved to `repos snapshot`",
545
- "gitvault:policy": "moved to `repos policy`",
546
- "gitvault:compact": "moved to `repos gc`",
547
- "gitvault:prune": "moved to `repos gc`",
548
- "gitvault:verify": "moved to `repos fsck`",
549
- "gitvault:mirror": "moved to `repos mirror`",
550
- "gitvault:recover": "moved to `repos recover`",
551
- "gitvault:push": "removed — its one-release deprecation-alias window is over; `git push` / `repos snapshot`",
552
- "gitvault:reconcile": "removed — a workaround with no permanent successor; read `repos access` instead",
553
514
  };
package/lib/config.mjs CHANGED
@@ -101,11 +101,11 @@ export function findProject(id) {
101
101
  fail({
102
102
  code: "PROJECT_CREDENTIAL_NOT_FOUND",
103
103
  message: `No local project credentials cached for ${idStr}.`,
104
- hint: "Use a principal-auth command, or import project keys with `run402 credentials project-keys import --project <id> --service-key-stdin`.",
104
+ hint: "Use a principal-auth command, or import project keys with `run402 credentials project-keys import --project <project_id> --service-key-stdin`.",
105
105
  details: { project_id: idStr, source: "local_cache", cache_path: projectCredentialsFile(), wallet: activeProfile(), profile: activeProfile() },
106
106
  next_actions: [{
107
107
  type: "run_command",
108
- command: `run402 credentials project-keys status --project ${idStr || "<id>"}`,
108
+ command: `run402 credentials project-keys status --project ${idStr || "<project_id>"}`,
109
109
  why: "Inspect the local project-key cache without revealing secrets.",
110
110
  }],
111
111
  });
@@ -119,7 +119,7 @@ export function resolveProject(id) {
119
119
  fail({
120
120
  code: "PROJECT_REQUIRED",
121
121
  message: "no project specified and no active project set.",
122
- hint: "Pass --project <id>, set RUN402_PROJECT_ID, or run: run402 projects use <id>",
122
+ hint: "Pass --project <project_id>, set RUN402_PROJECT_ID, or run: run402 projects use <project_id>",
123
123
  next_actions: [selectProjectAction()],
124
124
  });
125
125
  }
@@ -132,7 +132,7 @@ export function resolveProjectId(id) {
132
132
  fail({
133
133
  code: "PROJECT_REQUIRED",
134
134
  message: "no project specified and no active project set.",
135
- hint: "Pass --project <id>, set RUN402_PROJECT_ID, or run: run402 projects use <id>",
135
+ hint: "Pass --project <project_id>, set RUN402_PROJECT_ID, or run: run402 projects use <project_id>",
136
136
  next_actions: [selectProjectAction()],
137
137
  });
138
138
  }
package/lib/contacts.mjs CHANGED
@@ -12,7 +12,7 @@
12
12
  * "how can this human be reached" — not the mechanisms, which really are
13
13
  * different and are not pretended otherwise.
14
14
  *
15
- * `rm <id>` takes a bare id and works out which backend owns it, because both
15
+ * `rm <contact_id>` takes a bare id and works out which backend owns it, because both
16
16
  * are UUIDs and a caller holding one from `contacts list` should not have to
17
17
  * know which subsystem minted it. That costs one extra read and removes a
18
18
  * `--kind` flag nobody could answer without looking it up.
@@ -44,7 +44,7 @@ Usage:
44
44
  run402 contacts list
45
45
  run402 contacts add <email> [--level <1-10>] [--name <display>]
46
46
  run402 contacts connect telegram [--label <name>]
47
- run402 contacts rm <id>
47
+ run402 contacts rm <contact_id>
48
48
  run402 contacts preferences
49
49
  run402 contacts preferences set <key>=<value> [<key>=<value> ...]
50
50
  run402 contacts test [--source app|platform] [--type <event_type>]
@@ -339,7 +339,7 @@ async function removeContact(args) {
339
339
  assertKnownFlags(a, ["--org", "--help", "-h"], ["--org"]);
340
340
  const positionals = positionalArgs(a, ["--org"]);
341
341
  requirePositionalCount(positionals, ["--org"], {
342
- min: 1, max: 1, command: "run402 contacts rm", missing: "<id>",
342
+ min: 1, max: 1, command: "run402 contacts rm", missing: "<contact_id>",
343
343
  });
344
344
  const id = positionals[0];
345
345
  const sdk = getSdk();
package/lib/contracts.mjs CHANGED
@@ -53,7 +53,7 @@ const SUB_HELP = {
53
53
  "provision-signer": `run402 contracts provision-signer — Provision a KMS-backed signer
54
54
 
55
55
  Usage:
56
- run402 contracts provision-signer --chain <chain> [--project <id>] [options]
56
+ run402 contracts provision-signer --chain <chain> [--project <project_id>] [options]
57
57
 
58
58
  Legacy (still supported):
59
59
  run402 contracts provision-signer <project_id> --chain <chain> [options]
@@ -69,7 +69,7 @@ Options:
69
69
  "set-recovery": `run402 contracts set-recovery — Set or clear the signer recovery address
70
70
 
71
71
  Usage:
72
- run402 contracts set-recovery <signer_id> [--project <id>] [options]
72
+ run402 contracts set-recovery <signer_id> [--project <project_id>] [options]
73
73
 
74
74
  Legacy (still supported):
75
75
  run402 contracts set-recovery <project_id> <signer_id> [options]
@@ -77,7 +77,7 @@ Legacy (still supported):
77
77
  "set-alert": `run402 contracts set-alert — Set the low-balance alert threshold
78
78
 
79
79
  Usage:
80
- run402 contracts set-alert <signer_id> --threshold-wei <n> [--project <id>]
80
+ run402 contracts set-alert <signer_id> --threshold-wei <n> [--project <project_id>]
81
81
 
82
82
  Legacy (still supported):
83
83
  run402 contracts set-alert <project_id> <signer_id> --threshold-wei <n>
@@ -85,7 +85,7 @@ Legacy (still supported):
85
85
  call: `run402 contracts call — Submit a contract write call
86
86
 
87
87
  Usage:
88
- run402 contracts call <signer_id> --to 0x... --abi <json> [--project <id>]
88
+ run402 contracts call <signer_id> --to 0x... --abi <json> [--project <project_id>]
89
89
 
90
90
  Legacy (still supported):
91
91
  run402 contracts call <project_id> <signer_id> --to 0x... --abi <json>
@@ -98,7 +98,7 @@ Returns the deterministic CREATE address synchronously — known from (signer, n
98
98
  before the tx confirms. Cost: chain gas at-cost + $0.000005 KMS sign fee.
99
99
 
100
100
  Usage:
101
- run402 contracts deploy <signer_id> --bytecode 0x... [--project <id>] [options]
101
+ run402 contracts deploy <signer_id> --bytecode 0x... [--project <project_id>] [options]
102
102
 
103
103
  Legacy (still supported):
104
104
  run402 contracts deploy <project_id> <signer_id> --bytecode 0x... [options]
@@ -125,7 +125,7 @@ Usage:
125
125
  drain: `run402 contracts drain — Drain native balance to a destination address
126
126
 
127
127
  Usage:
128
- run402 contracts drain <signer_id> --to 0x... --confirm [--project <id>]
128
+ run402 contracts drain <signer_id> --to 0x... --confirm [--project <project_id>]
129
129
 
130
130
  Legacy (still supported):
131
131
  run402 contracts drain <project_id> <signer_id> --to 0x... --confirm
@@ -133,7 +133,7 @@ Legacy (still supported):
133
133
  delete: `run402 contracts delete — Schedule the KMS key for deletion
134
134
 
135
135
  Usage:
136
- run402 contracts delete <signer_id> --confirm [--project <id>]
136
+ run402 contracts delete <signer_id> --confirm [--project <project_id>]
137
137
 
138
138
  Legacy (still supported):
139
139
  run402 contracts delete <project_id> <signer_id> --confirm
@@ -141,7 +141,7 @@ Legacy (still supported):
141
141
  "get-signer": `run402 contracts get-signer — Get signer metadata + live balance
142
142
 
143
143
  Usage:
144
- run402 contracts get-signer <signer_id> [--project <id>]
144
+ run402 contracts get-signer <signer_id> [--project <project_id>]
145
145
 
146
146
  Legacy (still supported):
147
147
  run402 contracts get-signer <project_id> <signer_id>
@@ -156,7 +156,7 @@ Examples:
156
156
  "list-signers": `run402 contracts list-signers — List all KMS signers for a project
157
157
 
158
158
  Usage:
159
- run402 contracts list-signers [--project <id>]
159
+ run402 contracts list-signers [--project <project_id>]
160
160
 
161
161
  Legacy (still supported):
162
162
  run402 contracts list-signers <project_id>
@@ -173,7 +173,7 @@ Examples:
173
173
  status: `run402 contracts status — Get a contract call's status and receipt
174
174
 
175
175
  Usage:
176
- run402 contracts status <call_id> [--project <id>]
176
+ run402 contracts status <call_id> [--project <project_id>]
177
177
 
178
178
  Legacy (still supported):
179
179
  run402 contracts status <project_id> <call_id>
@@ -502,7 +502,7 @@ async function deleteSigner(projectId, signerId, args) {
502
502
  export async function run(sub, args) {
503
503
  if (!sub || sub === "--help" || sub === "-h") { console.log(HELP); process.exit(0); }
504
504
  if (Array.isArray(args) && (args.includes("--help") || args.includes("-h"))) { console.log(SUB_HELP[sub] || HELP); process.exit(0); }
505
- // Project selection (CLI-wide convention): `--project <id>` wins, else a
505
+ // Project selection (CLI-wide convention): `--project <project_id>` wins, else a
506
506
  // legacy leading `prj_...` positional, else the active project. The signer /
507
507
  // call id stays positional (`cwlt_...` / `ccall_...`). Computed lazily so
508
508
  // unknown subcommands (and the anonymous `read`) never trip project
@@ -26,18 +26,18 @@ Usage:
26
26
  run402 credentials <subcommand> [args...]
27
27
 
28
28
  Project credentials (on the gateway — named, revocable, rotatable):
29
- issue --kind <anon|service> --name <name> [--project <id>] [--expires <iso8601>] [--import]
29
+ issue --kind <anon|service> --name <name> [--project <project_id>] [--expires <iso8601>] [--import]
30
30
  Mint one. The secret is printed ONCE.
31
31
  --import also writes it into this machine's
32
32
  local key cache (the cold-restart re-key path).
33
- list [--project <id>] [--include-revoked]
33
+ list [--project <project_id>] [--include-revoked]
34
34
  List credentials (metadata only, never secrets)
35
- status [--project <id>] Are you still on the retiring legacy key?
36
- rotate <credential_id> [--project <id>]
35
+ status [--project <project_id>] Are you still on the retiring legacy key?
36
+ rotate <credential_id> [--project <project_id>]
37
37
  Replace in one step; new secret printed ONCE
38
- revoke <credential_id> [--project <id>] [--reason <text>]
38
+ revoke <credential_id> [--project <project_id>] [--reason <text>]
39
39
  Revoke immediately, freeing the name
40
- token [--project <id>] [--kind <anon|service>]
40
+ token [--project <project_id>] [--kind <anon|service>]
41
41
  Mint a SHORT-LIVED token. Works with only a
42
42
  delegate — the unattended recovery path.
43
43
 
@@ -68,12 +68,12 @@ Usage:
68
68
 
69
69
  Subcommands:
70
70
  list List cached project-key entries, redacted
71
- status --project <id> Show one cached entry, redacted
72
- import --project <id> --service-key-stdin
73
- import --project <id> --service-key-env <env>
74
- import --project <id> --anon-key-env <env> Rotate only the anon key
75
- export --project <id> --reveal Print cached keys, including secrets
76
- remove --project <id> Remove one cached key entry
71
+ status --project <project_id> Show one cached entry, redacted
72
+ import --project <project_id> --service-key-stdin
73
+ import --project <project_id> --service-key-env <env>
74
+ import --project <project_id> --anon-key-env <env> Rotate only the anon key
75
+ export --project <project_id> --reveal Print cached keys, including secrets
76
+ remove --project <project_id> Remove one cached key entry
77
77
 
78
78
  Notes:
79
79
  - This is a LOCAL CACHE surface. It is not project inventory.
@@ -89,7 +89,7 @@ const SUB_HELP = {
89
89
  issue: `run402 credentials issue — mint a named project credential
90
90
 
91
91
  Usage:
92
- run402 credentials issue --kind <anon|service> --name <name> [--project <id>] [--import]
92
+ run402 credentials issue --kind <anon|service> --name <name> [--project <project_id>] [--import]
93
93
  [--expires <iso8601>]
94
94
 
95
95
  --kind "anon" is the tenant-facing key; "service" is the privileged one.
@@ -112,14 +112,14 @@ can NEVER do this; use 'run402 credentials token' instead.
112
112
  list: `run402 credentials list — list a project's credentials
113
113
 
114
114
  Usage:
115
- run402 credentials list [--project <id>] [--include-revoked]
115
+ run402 credentials list [--project <project_id>] [--include-revoked]
116
116
 
117
117
  Metadata only — never a secret or a secret hash. Only project.read is needed.
118
118
  `,
119
119
  status: `run402 credentials status — are you still on the retiring legacy key?
120
120
 
121
121
  Usage:
122
- run402 credentials status [--project <id>]
122
+ run402 credentials status [--project <project_id>]
123
123
 
124
124
  Returns state "legacy" while the project still depends on the derived
125
125
  anon/service keys, or "rotatable" once it holds credentials it can revoke
@@ -133,7 +133,7 @@ date the platform has not committed to.
133
133
  rotate: `run402 credentials rotate — replace a credential in one step
134
134
 
135
135
  Usage:
136
- run402 credentials rotate <credential_id> [--project <id>]
136
+ run402 credentials rotate <credential_id> [--project <project_id>]
137
137
 
138
138
  Mints a replacement and revokes the old one in a single transaction, keeping
139
139
  the name. The NEW secret is printed once.
@@ -146,7 +146,7 @@ compromised.
146
146
  revoke: `run402 credentials revoke — revoke a credential immediately
147
147
 
148
148
  Usage:
149
- run402 credentials revoke <credential_id> [--project <id>] [--reason <text>]
149
+ run402 credentials revoke <credential_id> [--project <project_id>] [--reason <text>]
150
150
 
151
151
  Takes effect for every subsequent request and frees the name for reuse.
152
152
  Requires owner membership plus step-up.
@@ -154,7 +154,7 @@ Requires owner membership plus step-up.
154
154
  token: `run402 credentials token — mint a short-lived project token
155
155
 
156
156
  Usage:
157
- run402 credentials token [--project <id>] [--kind <anon|service>]
157
+ run402 credentials token [--project <project_id>] [--kind <anon|service>]
158
158
 
159
159
  The cold-restart recovery path, and the ONE credential call an agent can make
160
160
  with no human present: a delegate is accepted here. There is no step-up because
@@ -214,7 +214,7 @@ function requireProjectFlag(projectId, usage) {
214
214
  if (!projectId) {
215
215
  fail({
216
216
  code: "BAD_USAGE",
217
- message: "Missing --project <id>.",
217
+ message: "Missing --project <project_id>.",
218
218
  hint: usage,
219
219
  });
220
220
  }
@@ -227,7 +227,7 @@ function requireCachedProject(projectId) {
227
227
  fail({
228
228
  code: "PROJECT_CREDENTIAL_NOT_FOUND",
229
229
  message: `No local project credentials cached for ${projectId}.`,
230
- hint: "Import keys with `run402 credentials project-keys import --project <id> --service-key-stdin` if this operation truly requires local project credentials.",
230
+ hint: "Import keys with `run402 credentials project-keys import --project <project_id> --service-key-stdin` if this operation truly requires local project credentials.",
231
231
  details: { project_id: projectId, ...provenance() },
232
232
  next_actions: [{
233
233
  type: "run_command",
@@ -256,7 +256,7 @@ async function status(args) {
256
256
  if (rest.length > 0) {
257
257
  fail({ code: "BAD_USAGE", message: `Unexpected argument for project-keys status: ${rest[0]}` });
258
258
  }
259
- const id = requireProjectFlag(projectId, "run402 credentials project-keys status --project <id>");
259
+ const id = requireProjectFlag(projectId, "run402 credentials project-keys status --project <project_id>");
260
260
  console.log(JSON.stringify(redactedEntry(id, getProject(id)), null, 2));
261
261
  }
262
262
 
@@ -311,7 +311,7 @@ async function importKey(args) {
311
311
  if (rest.length > 0) {
312
312
  fail({ code: "BAD_USAGE", message: `Unexpected argument for project-keys import: ${rest[0]}` });
313
313
  }
314
- const id = requireProjectFlag(projectId, "run402 credentials project-keys import --project <id> --service-key-stdin");
314
+ const id = requireProjectFlag(projectId, "run402 credentials project-keys import --project <project_id> --service-key-stdin");
315
315
  // Resolve --anon-key-env before requiring a service key, so a missing service
316
316
  // key can report against the flags actually passed and an anon-only rotation
317
317
  // can reuse the cached service key.
@@ -346,12 +346,12 @@ async function exportKey(args) {
346
346
  if (rest.length > 0) {
347
347
  fail({ code: "BAD_USAGE", message: `Unexpected argument for project-keys export: ${rest[0]}` });
348
348
  }
349
- const id = requireProjectFlag(projectId, "run402 credentials project-keys export --project <id> --reveal");
349
+ const id = requireProjectFlag(projectId, "run402 credentials project-keys export --project <project_id> --reveal");
350
350
  if (!parsed.includes("--reveal")) {
351
351
  fail({
352
352
  code: "REVEAL_REQUIRED",
353
353
  message: "Exporting full project keys requires --reveal.",
354
- hint: "Use `run402 credentials project-keys status --project <id>` for redacted output.",
354
+ hint: "Use `run402 credentials project-keys status --project <project_id>` for redacted output.",
355
355
  details: { project_id: id, ...provenance() },
356
356
  });
357
357
  }
@@ -364,7 +364,7 @@ async function remove(args) {
364
364
  if (rest.length > 0) {
365
365
  fail({ code: "BAD_USAGE", message: `Unexpected argument for project-keys remove: ${rest[0]}` });
366
366
  }
367
- const id = requireProjectFlag(projectId, "run402 credentials project-keys remove --project <id>");
367
+ const id = requireProjectFlag(projectId, "run402 credentials project-keys remove --project <project_id>");
368
368
  const existed = Boolean(getProject(id));
369
369
  removeProject(id, projectCredentialsFile());
370
370
  console.log(JSON.stringify({ project_id: id, removed: existed, ...provenance() }, null, 2));
@@ -423,7 +423,7 @@ async function issue(args) {
423
423
  requirePositionalCount(rest, ISSUE_VALUE_FLAGS, {
424
424
  min: 0,
425
425
  max: 0,
426
- command: "run402 credentials issue --kind <anon|service> --name <name> [--project <id>] [--import]",
426
+ command: "run402 credentials issue --kind <anon|service> --name <name> [--project <project_id>] [--import]",
427
427
  missing: "",
428
428
  });
429
429
  if (kind !== "anon" && kind !== "service") {
@@ -454,7 +454,7 @@ async function issue(args) {
454
454
  try {
455
455
  const res = await getSdk().credentials.issue(projectId, { kind, name, expiresAt: expiresAt || undefined });
456
456
  if (importToCache && res?.secret) {
457
- // The cold-restart re-key path (gitvault-deploy-lane 6.5a): the minted
457
+ // The cold-restart re-key path (vault-deploy-lane 6.5a): the minted
458
458
  // secret goes straight into the local cache the deploy and data-plane
459
459
  // commands read, so a fresh machine re-keys in one command per kind
460
460
  // instead of the four-command issue-then-project-keys-import dance.
@@ -485,7 +485,7 @@ async function listCredentials(args) {
485
485
  requirePositionalCount(rest, ["--project"], {
486
486
  min: 0,
487
487
  max: 0,
488
- command: "run402 credentials list [--project <id>]",
488
+ command: "run402 credentials list [--project <project_id>]",
489
489
  missing: "",
490
490
  });
491
491
  try {
@@ -503,7 +503,7 @@ async function credentialStatus(args) {
503
503
  requirePositionalCount(rest, ["--project"], {
504
504
  min: 0,
505
505
  max: 0,
506
- command: "run402 credentials status [--project <id>]",
506
+ command: "run402 credentials status [--project <project_id>]",
507
507
  missing: "",
508
508
  });
509
509
  try {
@@ -527,7 +527,7 @@ async function rotate(args) {
527
527
  const [credentialId] = requirePositionalCount(rest, ["--project"], {
528
528
  min: 1,
529
529
  max: 1,
530
- command: "run402 credentials rotate <credential_id> [--project <id>]",
530
+ command: "run402 credentials rotate <credential_id> [--project <project_id>]",
531
531
  missing: "Missing <credential_id>. Find it with: run402 credentials list",
532
532
  });
533
533
  try {
@@ -545,7 +545,7 @@ async function revoke(args) {
545
545
  const [credentialId] = requirePositionalCount(rest, ["--project", "--reason"], {
546
546
  min: 1,
547
547
  max: 1,
548
- command: "run402 credentials revoke <credential_id> [--project <id>]",
548
+ command: "run402 credentials revoke <credential_id> [--project <project_id>]",
549
549
  missing: "Missing <credential_id>. Find it with: run402 credentials list",
550
550
  });
551
551
  try {
@@ -564,7 +564,7 @@ async function token(args) {
564
564
  requirePositionalCount(rest, ["--project", "--kind"], {
565
565
  min: 0,
566
566
  max: 0,
567
- command: "run402 credentials token [--project <id>]",
567
+ command: "run402 credentials token [--project <project_id>]",
568
568
  missing: "",
569
569
  });
570
570
  if (kind && kind !== "anon" && kind !== "service") {
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Daemon identity + transport addressing (gitvault-persistent-helper D4/D5)
2
+ * Daemon identity + transport addressing (vault-persistent-helper D4/D5)
3
3
  * — the ONE module the thin client's fast path may import beside node
4
4
  * builtins (pinned by the import-graph gate test), so it must stay tiny.
5
5
  *
6
6
  * The socket lives INSIDE the client configuration directory — the same
7
7
  * 0700 trust boundary that already holds the wallet private key and the
8
- * gitvault keystore — and its path is keyed by CLI version, so a CLI
8
+ * vault keystore — and its path is keyed by CLI version, so a CLI
9
9
  * upgrade resolves a NEW path: the new client never reaches the old daemon,
10
10
  * which idles out on its own. Windows uses a named pipe whose name carries
11
11
  * a hash of the config dir (pipes have no filesystem home) plus the same
@@ -79,7 +79,7 @@ export function daemonSocketPath() {
79
79
  }
80
80
 
81
81
  export function daemonRunnerPath() {
82
- return join(dirname(fileURLToPath(import.meta.url)), "gitvault-daemon-run.mjs");
82
+ return join(dirname(fileURLToPath(import.meta.url)), "vault-daemon-run.mjs");
83
83
  }
84
84
 
85
85
  /**