vaulter 1.0.66 → 1.0.73

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 (361) hide show
  1. package/README.md +264 -106
  2. package/dist/cli/commands/apply.d.ts +15 -0
  3. package/dist/cli/commands/apply.d.ts.map +1 -0
  4. package/dist/cli/commands/apply.js +160 -0
  5. package/dist/cli/commands/apply.js.map +1 -0
  6. package/dist/cli/commands/change.d.ts +33 -0
  7. package/dist/cli/commands/change.d.ts.map +1 -0
  8. package/dist/cli/commands/change.js +621 -0
  9. package/dist/cli/commands/change.js.map +1 -0
  10. package/dist/cli/commands/diff.d.ts +15 -0
  11. package/dist/cli/commands/diff.d.ts.map +1 -0
  12. package/dist/cli/commands/diff.js +136 -0
  13. package/dist/cli/commands/diff.js.map +1 -0
  14. package/dist/cli/commands/init.js +1 -1
  15. package/dist/cli/commands/init.js.map +1 -1
  16. package/dist/cli/commands/local/delete.d.ts.map +1 -1
  17. package/dist/cli/commands/local/delete.js +12 -1
  18. package/dist/cli/commands/local/delete.js.map +1 -1
  19. package/dist/cli/commands/local/diff.d.ts.map +1 -1
  20. package/dist/cli/commands/local/diff.js +12 -0
  21. package/dist/cli/commands/local/diff.js.map +1 -1
  22. package/dist/cli/commands/local/index.js +2 -2
  23. package/dist/cli/commands/local/index.js.map +1 -1
  24. package/dist/cli/commands/local/init.d.ts.map +1 -1
  25. package/dist/cli/commands/local/init.js +13 -2
  26. package/dist/cli/commands/local/init.js.map +1 -1
  27. package/dist/cli/commands/local/pull.d.ts.map +1 -1
  28. package/dist/cli/commands/local/pull.js +2 -11
  29. package/dist/cli/commands/local/pull.js.map +1 -1
  30. package/dist/cli/commands/local/push.d.ts.map +1 -1
  31. package/dist/cli/commands/local/push.js +12 -0
  32. package/dist/cli/commands/local/push.js.map +1 -1
  33. package/dist/cli/commands/local/set.d.ts +1 -1
  34. package/dist/cli/commands/local/set.d.ts.map +1 -1
  35. package/dist/cli/commands/local/set.js +13 -2
  36. package/dist/cli/commands/local/set.js.map +1 -1
  37. package/dist/cli/commands/local/status.js +1 -1
  38. package/dist/cli/commands/local/status.js.map +1 -1
  39. package/dist/cli/commands/local/sync.js +1 -1
  40. package/dist/cli/commands/local/sync.js.map +1 -1
  41. package/dist/cli/commands/plan.d.ts +14 -0
  42. package/dist/cli/commands/plan.d.ts.map +1 -0
  43. package/dist/cli/commands/plan.js +172 -0
  44. package/dist/cli/commands/plan.js.map +1 -0
  45. package/dist/cli/commands/rotation.js +1 -1
  46. package/dist/cli/commands/rotation.js.map +1 -1
  47. package/dist/cli/commands/service/dedupe.d.ts.map +1 -1
  48. package/dist/cli/commands/service/dedupe.js +4 -8
  49. package/dist/cli/commands/service/dedupe.js.map +1 -1
  50. package/dist/cli/commands/services.js +2 -2
  51. package/dist/cli/commands/services.js.map +1 -1
  52. package/dist/cli/commands/status.d.ts +21 -0
  53. package/dist/cli/commands/status.d.ts.map +1 -0
  54. package/dist/cli/commands/status.js +714 -0
  55. package/dist/cli/commands/status.js.map +1 -0
  56. package/dist/cli/index.js +198 -96
  57. package/dist/cli/index.js.map +1 -1
  58. package/dist/cli/lib/colors.d.ts +1 -0
  59. package/dist/cli/lib/colors.d.ts.map +1 -1
  60. package/dist/cli/lib/colors.js +2 -0
  61. package/dist/cli/lib/colors.js.map +1 -1
  62. package/dist/cli/lib/create-client.d.ts.map +1 -1
  63. package/dist/cli/lib/create-client.js +15 -0
  64. package/dist/cli/lib/create-client.js.map +1 -1
  65. package/dist/cli/lib/error-hints.d.ts +6 -0
  66. package/dist/cli/lib/error-hints.d.ts.map +1 -0
  67. package/dist/cli/lib/error-hints.js +5 -0
  68. package/dist/cli/lib/error-hints.js.map +1 -0
  69. package/dist/cli/tui/app.d.ts.map +1 -1
  70. package/dist/cli/tui/app.js +2 -23
  71. package/dist/cli/tui/app.js.map +1 -1
  72. package/dist/cli/tui/dashboard.js +1 -1
  73. package/dist/cli/tui/dashboard.js.map +1 -1
  74. package/dist/cli/tui/secrets-explorer/entry.d.ts.map +1 -1
  75. package/dist/cli/tui/secrets-explorer/entry.js +2 -34
  76. package/dist/cli/tui/secrets-explorer/entry.js.map +1 -1
  77. package/dist/cli/tui/tabs/audit-tab.d.ts +1 -2
  78. package/dist/cli/tui/tabs/audit-tab.d.ts.map +1 -1
  79. package/dist/cli/tui/tabs/audit-tab.js +2 -3
  80. package/dist/cli/tui/tabs/audit-tab.js.map +1 -1
  81. package/dist/client.d.ts +3 -3
  82. package/dist/client.d.ts.map +1 -1
  83. package/dist/client.js +26 -13
  84. package/dist/client.js.map +1 -1
  85. package/dist/domain/apply.d.ts +47 -0
  86. package/dist/domain/apply.d.ts.map +1 -0
  87. package/dist/domain/apply.js +144 -0
  88. package/dist/domain/apply.js.map +1 -0
  89. package/dist/domain/governance.d.ts +50 -0
  90. package/dist/domain/governance.d.ts.map +1 -0
  91. package/dist/domain/governance.js +456 -0
  92. package/dist/domain/governance.js.map +1 -0
  93. package/dist/domain/index.d.ts +22 -0
  94. package/dist/domain/index.d.ts.map +1 -0
  95. package/dist/domain/index.js +22 -0
  96. package/dist/domain/index.js.map +1 -0
  97. package/dist/domain/inventory.d.ts +30 -0
  98. package/dist/domain/inventory.d.ts.map +1 -0
  99. package/dist/domain/inventory.js +175 -0
  100. package/dist/domain/inventory.js.map +1 -0
  101. package/dist/domain/plan.d.ts +67 -0
  102. package/dist/domain/plan.d.ts.map +1 -0
  103. package/dist/domain/plan.js +352 -0
  104. package/dist/domain/plan.js.map +1 -0
  105. package/dist/domain/scorecard.d.ts +34 -0
  106. package/dist/domain/scorecard.d.ts.map +1 -0
  107. package/dist/domain/scorecard.js +216 -0
  108. package/dist/domain/scorecard.js.map +1 -0
  109. package/dist/domain/state.d.ts +104 -0
  110. package/dist/domain/state.d.ts.map +1 -0
  111. package/dist/domain/state.js +566 -0
  112. package/dist/domain/state.js.map +1 -0
  113. package/dist/domain/types.d.ts +389 -0
  114. package/dist/domain/types.d.ts.map +1 -0
  115. package/dist/domain/types.js +161 -0
  116. package/dist/domain/types.js.map +1 -0
  117. package/dist/lib/audit.js +1 -1
  118. package/dist/lib/audit.js.map +1 -1
  119. package/dist/lib/backend-sync.d.ts +5 -7
  120. package/dist/lib/backend-sync.d.ts.map +1 -1
  121. package/dist/lib/backend-sync.js +96 -74
  122. package/dist/lib/backend-sync.js.map +1 -1
  123. package/dist/lib/crypto.d.ts.map +1 -1
  124. package/dist/lib/crypto.js +16 -23
  125. package/dist/lib/crypto.js.map +1 -1
  126. package/dist/lib/error-hints.d.ts +27 -0
  127. package/dist/lib/error-hints.d.ts.map +1 -0
  128. package/dist/lib/error-hints.js +132 -0
  129. package/dist/lib/error-hints.js.map +1 -0
  130. package/dist/lib/errors.js +2 -2
  131. package/dist/lib/errors.js.map +1 -1
  132. package/dist/lib/init-generator.d.ts +0 -10
  133. package/dist/lib/init-generator.d.ts.map +1 -1
  134. package/dist/lib/init-generator.js +1 -48
  135. package/dist/lib/init-generator.js.map +1 -1
  136. package/dist/lib/local-ops.d.ts +3 -3
  137. package/dist/lib/local-ops.d.ts.map +1 -1
  138. package/dist/lib/local-ops.js +111 -69
  139. package/dist/lib/local-ops.js.map +1 -1
  140. package/dist/lib/local.d.ts +22 -4
  141. package/dist/lib/local.d.ts.map +1 -1
  142. package/dist/lib/local.js +49 -9
  143. package/dist/lib/local.js.map +1 -1
  144. package/dist/lib/monorepo.d.ts +40 -1
  145. package/dist/lib/monorepo.d.ts.map +1 -1
  146. package/dist/lib/monorepo.js +190 -4
  147. package/dist/lib/monorepo.js.map +1 -1
  148. package/dist/lib/output.d.ts +0 -3
  149. package/dist/lib/output.d.ts.map +1 -1
  150. package/dist/lib/output.js +6 -2
  151. package/dist/lib/output.js.map +1 -1
  152. package/dist/lib/root-gitignore.d.ts +14 -0
  153. package/dist/lib/root-gitignore.d.ts.map +1 -0
  154. package/dist/lib/root-gitignore.js +54 -0
  155. package/dist/lib/root-gitignore.js.map +1 -0
  156. package/dist/lib/scope-policy.d.ts +81 -0
  157. package/dist/lib/scope-policy.d.ts.map +1 -0
  158. package/dist/lib/scope-policy.js +269 -0
  159. package/dist/lib/scope-policy.js.map +1 -0
  160. package/dist/lib/snapshot-ops.js +1 -1
  161. package/dist/lib/snapshot-ops.js.map +1 -1
  162. package/dist/lib/sync-plan.d.ts +76 -0
  163. package/dist/lib/sync-plan.d.ts.map +1 -0
  164. package/dist/lib/sync-plan.js +205 -0
  165. package/dist/lib/sync-plan.js.map +1 -0
  166. package/dist/lib/variable-validation.d.ts +33 -0
  167. package/dist/lib/variable-validation.d.ts.map +1 -0
  168. package/dist/lib/variable-validation.js +137 -0
  169. package/dist/lib/variable-validation.js.map +1 -0
  170. package/dist/lib/write-guard.d.ts +25 -0
  171. package/dist/lib/write-guard.d.ts.map +1 -0
  172. package/dist/lib/write-guard.js +59 -0
  173. package/dist/lib/write-guard.js.map +1 -0
  174. package/dist/mcp/prompts.d.ts +26 -21
  175. package/dist/mcp/prompts.d.ts.map +1 -1
  176. package/dist/mcp/prompts.js +107 -1754
  177. package/dist/mcp/prompts.js.map +1 -1
  178. package/dist/mcp/resources.d.ts +18 -27
  179. package/dist/mcp/resources.d.ts.map +1 -1
  180. package/dist/mcp/resources.js +242 -1677
  181. package/dist/mcp/resources.js.map +1 -1
  182. package/dist/mcp/server.d.ts +7 -7
  183. package/dist/mcp/server.js +9 -9
  184. package/dist/mcp/server.js.map +1 -1
  185. package/dist/mcp/tools/config.d.ts +7 -1
  186. package/dist/mcp/tools/config.d.ts.map +1 -1
  187. package/dist/mcp/tools/config.js +15 -3
  188. package/dist/mcp/tools/config.js.map +1 -1
  189. package/dist/mcp/tools/definitions.d.ts +12 -7
  190. package/dist/mcp/tools/definitions.d.ts.map +1 -1
  191. package/dist/mcp/tools/definitions.js +269 -682
  192. package/dist/mcp/tools/definitions.js.map +1 -1
  193. package/dist/mcp/tools/handlers/apply.d.ts +8 -0
  194. package/dist/mcp/tools/handlers/apply.d.ts.map +1 -0
  195. package/dist/mcp/tools/handlers/apply.js +72 -0
  196. package/dist/mcp/tools/handlers/apply.js.map +1 -0
  197. package/dist/mcp/tools/handlers/change.d.ts +9 -0
  198. package/dist/mcp/tools/handlers/change.d.ts.map +1 -0
  199. package/dist/mcp/tools/handlers/change.js +175 -0
  200. package/dist/mcp/tools/handlers/change.js.map +1 -0
  201. package/dist/mcp/tools/handlers/diff.d.ts +8 -0
  202. package/dist/mcp/tools/handlers/diff.d.ts.map +1 -0
  203. package/dist/mcp/tools/handlers/diff.js +67 -0
  204. package/dist/mcp/tools/handlers/diff.js.map +1 -0
  205. package/dist/mcp/tools/handlers/export.d.ts +10 -0
  206. package/dist/mcp/tools/handlers/export.d.ts.map +1 -0
  207. package/dist/mcp/tools/handlers/export.js +217 -0
  208. package/dist/mcp/tools/handlers/export.js.map +1 -0
  209. package/dist/mcp/tools/handlers/init.d.ts +3 -6
  210. package/dist/mcp/tools/handlers/init.d.ts.map +1 -1
  211. package/dist/mcp/tools/handlers/init.js +22 -72
  212. package/dist/mcp/tools/handlers/init.js.map +1 -1
  213. package/dist/mcp/tools/handlers/key.d.ts +9 -0
  214. package/dist/mcp/tools/handlers/key.d.ts.map +1 -0
  215. package/dist/mcp/tools/handlers/key.js +326 -0
  216. package/dist/mcp/tools/handlers/key.js.map +1 -0
  217. package/dist/mcp/tools/handlers/local.d.ts +10 -85
  218. package/dist/mcp/tools/handlers/local.d.ts.map +1 -1
  219. package/dist/mcp/tools/handlers/local.js +351 -468
  220. package/dist/mcp/tools/handlers/local.js.map +1 -1
  221. package/dist/mcp/tools/handlers/nuke.d.ts +9 -0
  222. package/dist/mcp/tools/handlers/nuke.d.ts.map +1 -0
  223. package/dist/mcp/tools/handlers/nuke.js +30 -0
  224. package/dist/mcp/tools/handlers/nuke.js.map +1 -0
  225. package/dist/mcp/tools/handlers/plan.d.ts +8 -0
  226. package/dist/mcp/tools/handlers/plan.d.ts.map +1 -0
  227. package/dist/mcp/tools/handlers/plan.js +75 -0
  228. package/dist/mcp/tools/handlers/plan.js.map +1 -0
  229. package/dist/mcp/tools/handlers/read.d.ts +15 -0
  230. package/dist/mcp/tools/handlers/read.d.ts.map +1 -0
  231. package/dist/mcp/tools/handlers/read.js +57 -0
  232. package/dist/mcp/tools/handlers/read.js.map +1 -0
  233. package/dist/mcp/tools/handlers/run.d.ts +12 -0
  234. package/dist/mcp/tools/handlers/run.d.ts.map +1 -0
  235. package/dist/mcp/tools/handlers/run.js +203 -0
  236. package/dist/mcp/tools/handlers/run.js.map +1 -0
  237. package/dist/mcp/tools/handlers/search.d.ts +11 -0
  238. package/dist/mcp/tools/handlers/search.d.ts.map +1 -0
  239. package/dist/mcp/tools/handlers/search.js +124 -0
  240. package/dist/mcp/tools/handlers/search.js.map +1 -0
  241. package/dist/mcp/tools/handlers/services.d.ts +8 -0
  242. package/dist/mcp/tools/handlers/services.d.ts.map +1 -0
  243. package/dist/mcp/tools/handlers/services.js +39 -0
  244. package/dist/mcp/tools/handlers/services.js.map +1 -0
  245. package/dist/mcp/tools/handlers/snapshot.d.ts +10 -0
  246. package/dist/mcp/tools/handlers/snapshot.d.ts.map +1 -0
  247. package/dist/mcp/tools/handlers/snapshot.js +141 -0
  248. package/dist/mcp/tools/handlers/snapshot.js.map +1 -0
  249. package/dist/mcp/tools/handlers/status.d.ts +8 -0
  250. package/dist/mcp/tools/handlers/status.d.ts.map +1 -0
  251. package/dist/mcp/tools/handlers/status.js +341 -0
  252. package/dist/mcp/tools/handlers/status.js.map +1 -0
  253. package/dist/mcp/tools/handlers/versions.d.ts +10 -0
  254. package/dist/mcp/tools/handlers/versions.d.ts.map +1 -0
  255. package/dist/mcp/tools/handlers/versions.js +139 -0
  256. package/dist/mcp/tools/handlers/versions.js.map +1 -0
  257. package/dist/mcp/tools/index.d.ts +13 -5
  258. package/dist/mcp/tools/index.d.ts.map +1 -1
  259. package/dist/mcp/tools/index.js +158 -246
  260. package/dist/mcp/tools/index.js.map +1 -1
  261. package/dist/mcp/tools.d.ts +2 -10
  262. package/dist/mcp/tools.d.ts.map +1 -1
  263. package/dist/mcp/tools.js +2 -19
  264. package/dist/mcp/tools.js.map +1 -1
  265. package/dist/runtime/loader.d.ts.map +1 -1
  266. package/dist/runtime/loader.js +89 -1
  267. package/dist/runtime/loader.js.map +1 -1
  268. package/dist/runtime/types.d.ts +8 -0
  269. package/dist/runtime/types.d.ts.map +1 -1
  270. package/dist/types.d.ts +44 -0
  271. package/dist/types.d.ts.map +1 -1
  272. package/dist/types.js.map +1 -1
  273. package/package.json +16 -14
  274. package/dist/cli/commands/delete.d.ts +0 -25
  275. package/dist/cli/commands/delete.d.ts.map +0 -1
  276. package/dist/cli/commands/delete.js +0 -118
  277. package/dist/cli/commands/delete.js.map +0 -1
  278. package/dist/cli/commands/doctor.d.ts +0 -21
  279. package/dist/cli/commands/doctor.d.ts.map +0 -1
  280. package/dist/cli/commands/doctor.js +0 -493
  281. package/dist/cli/commands/doctor.js.map +0 -1
  282. package/dist/cli/commands/get.d.ts +0 -24
  283. package/dist/cli/commands/get.d.ts.map +0 -1
  284. package/dist/cli/commands/get.js +0 -118
  285. package/dist/cli/commands/get.js.map +0 -1
  286. package/dist/cli/commands/pull.d.ts +0 -32
  287. package/dist/cli/commands/pull.d.ts.map +0 -1
  288. package/dist/cli/commands/pull.js +0 -196
  289. package/dist/cli/commands/pull.js.map +0 -1
  290. package/dist/cli/commands/push.d.ts +0 -29
  291. package/dist/cli/commands/push.d.ts.map +0 -1
  292. package/dist/cli/commands/push.js +0 -322
  293. package/dist/cli/commands/push.js.map +0 -1
  294. package/dist/cli/commands/rollback.d.ts +0 -8
  295. package/dist/cli/commands/rollback.d.ts.map +0 -1
  296. package/dist/cli/commands/rollback.js +0 -109
  297. package/dist/cli/commands/rollback.js.map +0 -1
  298. package/dist/cli/commands/set.d.ts +0 -35
  299. package/dist/cli/commands/set.d.ts.map +0 -1
  300. package/dist/cli/commands/set.js +0 -424
  301. package/dist/cli/commands/set.js.map +0 -1
  302. package/dist/cli/commands/sync/index.d.ts +0 -33
  303. package/dist/cli/commands/sync/index.d.ts.map +0 -1
  304. package/dist/cli/commands/sync/index.js +0 -275
  305. package/dist/cli/commands/sync/index.js.map +0 -1
  306. package/dist/cli/commands/sync.d.ts +0 -26
  307. package/dist/cli/commands/sync.d.ts.map +0 -1
  308. package/dist/cli/commands/sync.js +0 -371
  309. package/dist/cli/commands/sync.js.map +0 -1
  310. package/dist/cli/commands/var/index.d.ts +0 -31
  311. package/dist/cli/commands/var/index.d.ts.map +0 -1
  312. package/dist/cli/commands/var/index.js +0 -119
  313. package/dist/cli/commands/var/index.js.map +0 -1
  314. package/dist/cli/commands/versions.d.ts +0 -8
  315. package/dist/cli/commands/versions.d.ts.map +0 -1
  316. package/dist/cli/commands/versions.js +0 -135
  317. package/dist/cli/commands/versions.js.map +0 -1
  318. package/dist/mcp/tools/handlers/analysis.d.ts +0 -13
  319. package/dist/mcp/tools/handlers/analysis.d.ts.map +0 -1
  320. package/dist/mcp/tools/handlers/analysis.js +0 -195
  321. package/dist/mcp/tools/handlers/analysis.js.map +0 -1
  322. package/dist/mcp/tools/handlers/batch.d.ts +0 -12
  323. package/dist/mcp/tools/handlers/batch.d.ts.map +0 -1
  324. package/dist/mcp/tools/handlers/batch.js +0 -171
  325. package/dist/mcp/tools/handlers/batch.js.map +0 -1
  326. package/dist/mcp/tools/handlers/core.d.ts +0 -15
  327. package/dist/mcp/tools/handlers/core.d.ts.map +0 -1
  328. package/dist/mcp/tools/handlers/core.js +0 -179
  329. package/dist/mcp/tools/handlers/core.js.map +0 -1
  330. package/dist/mcp/tools/handlers/doctor.d.ts +0 -32
  331. package/dist/mcp/tools/handlers/doctor.d.ts.map +0 -1
  332. package/dist/mcp/tools/handlers/doctor.js +0 -1062
  333. package/dist/mcp/tools/handlers/doctor.js.map +0 -1
  334. package/dist/mcp/tools/handlers/iac.d.ts +0 -17
  335. package/dist/mcp/tools/handlers/iac.d.ts.map +0 -1
  336. package/dist/mcp/tools/handlers/iac.js +0 -131
  337. package/dist/mcp/tools/handlers/iac.js.map +0 -1
  338. package/dist/mcp/tools/handlers/k8s.d.ts +0 -11
  339. package/dist/mcp/tools/handlers/k8s.d.ts.map +0 -1
  340. package/dist/mcp/tools/handlers/k8s.js +0 -117
  341. package/dist/mcp/tools/handlers/k8s.js.map +0 -1
  342. package/dist/mcp/tools/handlers/keys.d.ts +0 -54
  343. package/dist/mcp/tools/handlers/keys.d.ts.map +0 -1
  344. package/dist/mcp/tools/handlers/keys.js +0 -561
  345. package/dist/mcp/tools/handlers/keys.js.map +0 -1
  346. package/dist/mcp/tools/handlers/monorepo.d.ts +0 -29
  347. package/dist/mcp/tools/handlers/monorepo.d.ts.map +0 -1
  348. package/dist/mcp/tools/handlers/monorepo.js +0 -329
  349. package/dist/mcp/tools/handlers/monorepo.js.map +0 -1
  350. package/dist/mcp/tools/handlers/sync.d.ts +0 -11
  351. package/dist/mcp/tools/handlers/sync.d.ts.map +0 -1
  352. package/dist/mcp/tools/handlers/sync.js +0 -77
  353. package/dist/mcp/tools/handlers/sync.js.map +0 -1
  354. package/dist/mcp/tools/handlers/utility.d.ts +0 -29
  355. package/dist/mcp/tools/handlers/utility.d.ts.map +0 -1
  356. package/dist/mcp/tools/handlers/utility.js +0 -245
  357. package/dist/mcp/tools/handlers/utility.js.map +0 -1
  358. package/dist/mcp/tools/handlers/versioning.d.ts +0 -33
  359. package/dist/mcp/tools/handlers/versioning.d.ts.map +0 -1
  360. package/dist/mcp/tools/handlers/versioning.js +0 -208
  361. package/dist/mcp/tools/handlers/versioning.js.map +0 -1
package/README.md CHANGED
@@ -26,14 +26,81 @@ curl -fsSL https://raw.githubusercontent.com/forattini-dev/vaulter/main/install.
26
26
 
27
27
  ## Quick Start
28
28
 
29
+ ### Minimal
30
+
29
31
  ```bash
30
32
  vaulter init # Initialize project
31
33
  vaulter key generate --name master # Generate encryption key
32
- vaulter var set DATABASE_URL="postgres://..." -e dev # Set secret
33
- vaulter var set PORT::3000 -e dev # Set config (plain)
34
+ vaulter change set DATABASE_URL="postgres://..." -e dev # Set secret
35
+ vaulter change set PORT::3000 -e dev # Set config (plain)
36
+ vaulter change set NODE_ENV=local -e dev # Set config (sensitive=false)
37
+ vaulter change move API_KEY --from shared --to api -e dev # Move variable to service
38
+ vaulter change move API_KEY --from shared -e dev -s svc-notifications # Infer destination service
39
+ vaulter plan -e dev # Preview changes before applying
34
40
  eval $(vaulter export shell -e dev) # Export to shell
35
41
  ```
36
42
 
43
+ ### End-to-End (Monorepo, `web` + `api`)
44
+
45
+ This flow shows local editing, team sharing, and promotion across multiple environments.
46
+
47
+ ```bash
48
+ # 0) Initialize + discover services
49
+ vaulter init --monorepo
50
+ vaulter key generate --name master
51
+ vaulter services
52
+
53
+ # 1) Create/override vars locally (offline by default)
54
+ # `local set` writes only to `.vaulter/local/*`; use `-e/--env` only for backend-aware operations.
55
+ vaulter local set NEXT_PUBLIC_APP_NAME=Portal --shared
56
+ vaulter local set NODE_ENV=local --shared
57
+ vaulter local set DATABASE_URL=postgres://... -s api
58
+ vaulter local set REDIS_URL=redis://... -s api
59
+ vaulter local set QUEUE_ENABLED::true -s api
60
+ vaulter local set WORKER_CONCURRENCY::4 -s web
61
+ vaulter local pull --all # Generates .env for local run (all outputs)
62
+ vaulter local diff # Review local overrides
63
+
64
+ # 2) Share source of truth with team (backend sync)
65
+ vaulter local push --all -e dev
66
+
67
+ # 3) Team members pull and generate local envs
68
+ vaulter local sync -e dev
69
+ vaulter local pull --all
70
+
71
+ # 4) Promote the same managed set to multiple environments
72
+ for ENV in dev stg prd; do
73
+ echo "Deploying to $ENV"
74
+ vaulter plan -e "$ENV"
75
+ vaulter apply -e "$ENV" $( [ "$ENV" = "prd" ] && echo '--force' )
76
+ done
77
+
78
+ # 5) Run your scripts with vaulter-managed variables
79
+ vaulter run -e dev -- pnpm start # Local run with local overrides
80
+ vaulter run -e dev -s web -- pnpm --dir apps/web dev
81
+ vaulter run -e dev -s api -- pnpm --dir apps/api lint
82
+ vaulter run -e stg -s api -- pnpm --dir apps/api migrate
83
+ vaulter run -e prd -- docker compose -f ./deploy/docker/docker-compose.yml up
84
+
85
+ # 6) Export service-specific artifacts per environment
86
+ # Config-like outputs
87
+ vaulter export env -e dev --service api > apps/api/.env
88
+ vaulter export env -e stg --service web > apps/web/.env
89
+ vaulter export shell -e prd --service api > /tmp/api-env.sh
90
+
91
+ # Kubernetes artifacts
92
+ vaulter export k8s-secret -e dev --service api --name api-secrets
93
+ vaulter export k8s-secret -e dev --service web --name web-secrets
94
+ vaulter export k8s-secret -e stg --service api --name api-secrets
95
+ vaulter export k8s-secret -e prd --service api --name api-secrets
96
+
97
+ # Deployment formats
98
+ vaulter export k8s-configmap -e prd --service api --name api-configmap
99
+ vaulter export helm -e prd --service api --name api-values
100
+ ```
101
+
102
+ > `--force` is required on `apply -e prd` and other production-like environments.
103
+
37
104
  ---
38
105
 
39
106
  ## 🔄 Development Workflow
@@ -91,18 +158,20 @@ apps/api/.env # ❌ Gitignored - Generated output
91
158
 
92
159
  ```bash
93
160
  # 1. Start: Pull latest from backend + apply your local overrides
94
- vaulter local pull --all
161
+ vaulter local pull
95
162
 
96
163
  # 2. Work: Add personal overrides (not shared with team)
97
164
  vaulter local set DEBUG::true # Shared override
98
- vaulter local set PORT::3001 -s api # Service-specific
165
+ vaulter local set PORT::3001 # Service-specific (inferred from cwd in monorepo)
99
166
 
100
167
  # 3. Add new variable for team? Push to backend
101
- vaulter set NEW_VAR=value -e dev # Add to backend
102
- vaulter sync push -e dev # Or push local .env
168
+ vaulter local set NEW_VAR=value --shared # Personal scratch pad
169
+ vaulter local push # Share scratch locally with team
170
+ vaulter plan -e dev # Preview changes (recommended)
171
+ vaulter apply -e dev # Apply after approval
103
172
 
104
173
  # 4. Check: See what's different
105
- vaulter diff -e dev # Local vs backend
174
+ vaulter diff -e dev # Local vs backend diff
106
175
 
107
176
  # 5. Promote: Clone to staging/production
108
177
  vaulter clone dev stg --dry-run # Preview
@@ -138,37 +207,70 @@ vaulter clone dev stg # Execute
138
207
 
139
208
  ### Team Collaboration
140
209
 
141
- **New team member setup:**
210
+ Team collaboration assumes one shared truth for each environment (backend) and private, local overrides per developer.
211
+
212
+ **New team member setup (2 minutes):**
142
213
  ```bash
143
214
  git clone <repo> # Gets .vaulter/config.yaml
144
215
  export VAULTER_KEY_DEV=<from-team> # Get key securely from team
145
- vaulter sync pull --dir -e dev # Pull from backend .vaulter/local/
216
+ vaulter local sync -e dev # Pull remote vars to .vaulter/local/
146
217
  vaulter local pull --all # Generate .env files (offline)
147
218
  ```
148
219
 
149
- **Sharing a new variable:**
220
+ **Why this is stable for teams**
221
+
222
+ - `vaulter local set` is always a private, working-copy edit. It does **not** change what others consume by itself.
223
+ - `vaulter local push` is how you publish team-visible changes from local overrides.
224
+ - `vaulter local sync` is how others consume published changes.
225
+ - Use environment-specific gates (`status`, `diff`, and `plan/apply`) before merging critical updates.
226
+
227
+ **Recommended sharing flow (single variable):**
150
228
  ```bash
151
- # 1. Add locally
152
- vaulter local set NEW_FEATURE::enabled # Shared config
229
+ # 1) Add locally first
230
+ vaulter local set --shared NEW_FEATURE::enabled # Shared config
231
+ vaulter local diff # Verify local change before publishing
232
+
233
+ # 2) Optional dry-run share preview
234
+ vaulter local push --shared --dry-run -e dev # Checks what would be pushed
153
235
 
154
- # 2. Push to backend (share with team)
155
- vaulter sync push --dir -e dev
236
+ # 3) Share to backend (explicit approval step before running)
237
+ vaulter local push --shared -e dev
156
238
 
157
- # 3. Notify team
158
- # "New var added, run: vaulter sync pull --dir && vaulter local pull --all"
239
+ # 4) Notify team
240
+ # "New var published. Run: vaulter local sync -e dev && vaulter local pull --all"
159
241
  ```
160
242
 
243
+ **Monorepo service rule (recommended):**
244
+
245
+ - Defaults are shared only when genuinely global.
246
+ - Service behavior should live in service scope (`-s svc-*`) unless explicitly cross-service.
247
+ - Keep service ownership rules documented in `.vaulter/config.yaml` (`policy`), so mistakes are prevented early.
248
+
249
+ **Conflict resolution if two devs edit same key**
250
+
251
+ ```bash
252
+ vaulter local diff -s <service> # See your local delta
253
+ vaulter local sync -e dev # Pull latest from backend
254
+ vaulter local pull --all # Rebuild outputs
255
+ vaulter local diff -s <service> # Re-check before pushing
256
+ ```
257
+
258
+ If divergence remains:
259
+ - Ask one owner to pause and re-publish.
260
+ - Prefer `vaulter plan -e dev` + manual review for sensitive or cross-service keys.
261
+
262
+ **Important:** Most `local` commands are local-only. Passing `-e/--env` is only needed when publishing or syncing with backend.
263
+
161
264
  ### MCP Tools for Workflow
162
265
 
163
266
  | Task | Tool |
164
267
  |:-----|:-----|
165
- | Check health | `vaulter_doctor` |
166
- | Pull with overrides | `vaulter_local_pull all=true` |
167
- | Set shared override | `vaulter_local_shared_set key="DEBUG" value="true"` |
168
- | Set service override | `vaulter_local_set key="PORT" value="3001" service="api"` |
169
- | See differences | `vaulter_local_diff` |
170
- | Clone environment | `vaulter_clone_env source="dev" target="stg"` |
171
- | Compare environments | `vaulter_compare source="dev" target="prd"` |
268
+ | Check health | `vaulter_status action="scorecard"` |
269
+ | Pull with overrides | `vaulter_local action="pull"` |
270
+ | Set shared override | `vaulter_local action="shared-set" key="DEBUG" value="true"` |
271
+ | Set service override | `vaulter_local action="set" key="PORT" value="3001"` |
272
+ | See differences | `vaulter_diff` |
273
+ | Compare environments | `vaulter_search source="dev" target="prd"` |
172
274
 
173
275
  ---
174
276
 
@@ -212,38 +314,40 @@ config() // Loads from .vaulter/local/ (configs.env + secrets.env)
212
314
  npx vaulter run -- pnpm dev
213
315
 
214
316
  # Or pull from backend first
215
- vaulter local pull --all
317
+ vaulter local pull
216
318
  ```
217
319
 
218
320
  That's it! For most local development, vaulter is just a structured dotenv.
219
321
 
220
322
  ---
221
323
 
222
- ## 🩺 Health Check - Doctor
324
+ ## 🩺 Health Check - Status
223
325
 
224
- **Always start with `vaulter doctor`** to diagnose your setup:
326
+ **Always start with `vaulter status`** to diagnose your setup:
225
327
 
226
328
  ```bash
227
- vaulter doctor -e dev
329
+ vaulter status -e dev
330
+ vaulter status -e dev --offline
228
331
  ```
229
332
 
230
- Doctor performs **16 comprehensive checks**:
333
+ Status performs **up to 18 checks** online, or a local-first subset in `--offline`.
231
334
 
232
335
  | Check | What It Does |
233
336
  |-------|--------------|
234
- | ✅ **Connection** | Tests backend connectivity |
337
+ | ✅ **Connection** | Tests backend connectivity (skipped in `--offline`) |
235
338
  | ✅ **Latency** | Measures operation speed |
236
339
  | ✅ **Permissions** | Validates read/write/delete access |
237
340
  | ✅ **Encryption** | Tests encrypt → decrypt round-trip |
238
341
  | ✅ **Sync Status** | Compares local vs remote |
239
342
  | ✅ **Security** | Detects .env in git, weak keys |
343
+ | ✅ **Scope Policy** | Checks `shared` vs `service` assignment rules |
240
344
  | ✅ **Perf Config** | Suggests cache/warmup/concurrency tuning |
241
- | ✅ **+9 more** | Config, project, environment, backend, keys, etc. |
345
+ | ✅ **+8 more** | Config, project, environment, backend, keys, etc. |
242
346
 
243
347
  **Example output:**
244
348
 
245
349
  ```
246
- ✓ ok: 14 | ⚠ warn: 1 | ✗ fail: 1
350
+ ✓ ok: 15 | ⚠ warn: 1 | ✗ fail: 1
247
351
 
248
352
  ✓ connection: connected (24 vars in dev)
249
353
  ✓ latency: read=45ms, list=67ms
@@ -266,17 +370,18 @@ For a quick pre-deploy validation in local/dev workflows:
266
370
 
267
371
  ```bash
268
372
  VAULTER_VERIFY_ENV=dev pnpm run verify:vaulter
373
+ VAULTER_VERIFY_OFFLINE=0 VAULTER_VERIFY_REQUIRE_CONFIG=1 pnpm run verify:vaulter
269
374
  ```
270
375
 
271
376
  The script runs:
272
377
 
273
- - `vaulter doctor -e <env> -v`
274
- - `vaulter sync diff -e <env> --values`
378
+ - `vaulter status -e <env> -v [--offline]` (offline by default)
379
+ - `vaulter diff -e <env> --values`
275
380
  - `vaulter list -e <env>`
276
381
 
277
382
  It writes an execution log under `artifacts/vaulter-health/` for auditability.
278
383
 
279
- **For AI Agents:** Call `vaulter_doctor` once at the start of a new session (or when operations fail / environments change) to understand the current state before performing sensitive operations.
384
+ **For AI Agents:** Call `vaulter_status action="scorecard"` once at the start of a new session (or when operations fail / environments change) to understand the current state before performing sensitive operations.
280
385
 
281
386
  See [docs/DOCTOR.md](docs/DOCTOR.md) for complete guide.
282
387
 
@@ -291,38 +396,52 @@ See [docs/DOCTOR.md](docs/DOCTOR.md) for complete guide.
291
396
  | `init` | Initialize project config |
292
397
  | `init --split` | Initialize with split mode (configs/secrets dirs) |
293
398
 
294
- ### Variables (`var`)
399
+ ### Health
295
400
 
296
401
  | Command | Description |
297
402
  |:--------|:------------|
298
- | `var get <key> -e <env>` | Get a variable |
299
- | `var set KEY=val -e <env>` | Set secret (encrypted) |
300
- | `var set KEY::val -e <env>` | Set config (plain text) |
301
- | `var set KEY:=123 -e <env>` | Set typed secret (number/boolean) |
302
- | `var delete <key> -e <env>` | Delete a variable |
303
- | `var list -e <env>` | List all variables |
403
+ | `status -e <env>` | Full diagnostic report with checks and suggestions |
404
+
405
+ ### Mutations (`change`)
406
+
407
+ | Command | Description |
408
+ |:--------|:------------|
409
+ | `change set KEY=val -e <env>` | Set secret (encrypted) |
410
+ | `change set KEY::val -e <env>` | Set config (plain text) |
411
+ | `change set KEY:=123 -e <env>` | Set typed secret (number/boolean) |
412
+ | `change delete <key> -e <env>` | Delete variable |
413
+ | `change move <key> --from <scope> --to <scope> -e <env>` | Move/copy variable between scopes |
414
+ | `change import -f <file> -e <env>` | Import variables from file |
415
+ | `list -e <env>` | List all variables |
304
416
 
305
417
  **Set syntax**: `=` encrypted secret · `::` plain config · `:=` typed secret
306
418
 
307
- ### Sync
419
+ In monorepo mode, when `--service` is resolved, one of `--from` or `--to` can be omitted and inferred from the active service.
420
+
421
+ ### Plan & Apply
308
422
 
309
423
  | Command | Description |
310
424
  |:--------|:------------|
311
- | `sync merge -e <env>` | Bidirectional merge (default) |
312
- | `sync pull -e <env>` | Download from backend to outputs |
313
- | `sync pull --dir -e <env>` | Download to `.vaulter/{env}/` directory |
314
- | `sync push -e <env>` | Upload .env file to backend |
315
- | `sync push --dir -e <env>` | Upload `.vaulter/{env}/` directory to backend |
316
- | `sync push --prune -e <env>` | Upload, delete remote-only vars |
317
- | `sync diff -e <env>` | Show differences without changes |
425
+ | `plan -e <env>` | Compute diff local vs backend, generate plan artifact |
426
+ | `apply -e <env>` | Execute plan, push changes to backend |
427
+ | `diff -e <env>` | Quick diff without plan artifacts |
428
+ | `plan --dir -e <env>` | Plan from `.vaulter/{env}/` directory |
429
+ | `plan [--plan-output <file>] -e <env>` | Write plan artifact (`.json` + `.md`). If `--plan-output` is omitted, defaults to `artifacts/vaulter-plans/<project>-<env>-<timestamp>.*` |
430
+
431
+ ### Recommended daily path
432
+
433
+ - `vaulter local pull` → `vaulter local set` → `vaulter local push` (when ready)
434
+ - `vaulter change set` → `vaulter change move` → `vaulter plan -e <env>` → `vaulter apply -e <env>`
435
+ - `vaulter plan -e <env>` → validate → `vaulter apply -e <env>`
436
+ - `vaulter status -e <env>` for quick pre-flight health check
318
437
 
319
438
  ### Export
320
439
 
321
440
  | Command | Description |
322
441
  |:--------|:------------|
323
442
  | `export shell -e <env>` | Export for shell `eval $(...)` |
324
- | `export k8s-secret -e <env>` | Generate Kubernetes Secret |
325
- | `export k8s-configmap -e <env>` | Generate Kubernetes ConfigMap |
443
+ | `export k8s-secret -e <env>` | Generate Kubernetes Secret (sensitive vars only) |
444
+ | `export k8s-configmap -e <env>` | Generate Kubernetes ConfigMap (config vars only) |
326
445
  | `export helm -e <env>` | Generate Helm values.yaml |
327
446
  | `export terraform -e <env>` | Generate Terraform .tfvars |
328
447
  | `export docker -e <env>` | Docker env-file format |
@@ -381,6 +500,30 @@ npx vaulter run -e prd -- pnpm build
381
500
  npx vaulter run -e dev -s api -- pnpm start
382
501
  ```
383
502
 
503
+ ### Run scripts via package.json
504
+
505
+ Use `vaulter run` directly in your npm scripts to keep variables centralized and explicit.
506
+
507
+ ```json
508
+ {
509
+ "scripts": {
510
+ "dev:web": "vaulter run -e dev -s web -- pnpm --dir apps/web dev",
511
+ "lint:api": "vaulter run -e dev -s api -- pnpm --dir apps/api lint",
512
+ "migrate:api:stg": "vaulter run -e stg -s api -- pnpm --dir apps/api run migrate",
513
+ "deploy:api:prd": "vaulter run -e prd -s api -- pnpm --dir apps/api build && vaulter export k8s-secret -e prd -s api --name api-secrets"
514
+ }
515
+ }
516
+ ```
517
+
518
+ ```bash
519
+ npm run dev:web
520
+ npm run lint:api
521
+ npm run migrate:api:stg
522
+ ```
523
+
524
+ The important part is that `vaulter run` stays as the first command so variable resolution and scope resolution
525
+ happen before your script command.
526
+
384
527
  The `run` command auto-detects the environment (local, CI, K8s) and loads the appropriate files before executing your command.
385
528
 
386
529
  > Run `vaulter --help` or `vaulter <command> --help` for all options.
@@ -499,10 +642,10 @@ encryption:
499
642
  **Example flow:**
500
643
  ```bash
501
644
  # Set shared var (uses dev key because shared_key_environment: dev)
502
- vaulter var set LOG_LEVEL=debug -e dev --shared
645
+ vaulter change set LOG_LEVEL=debug -e dev --scope shared
503
646
 
504
647
  # Read shared var from prd (still uses dev key for shared vars)
505
- vaulter var list -e prd --shared # Works! Uses dev key for shared
648
+ vaulter list -e prd --shared # Works! Uses dev key for shared
506
649
  ```
507
650
 
508
651
  ---
@@ -533,6 +676,20 @@ audit:
533
676
  enabled: true
534
677
  retention_days: 90
535
678
 
679
+ scope_policy:
680
+ mode: warn
681
+ inherit_defaults: true
682
+ rules:
683
+ - name: api-keys-service
684
+ pattern: '^API_'
685
+ expected_scope: service
686
+ expected_service: svc-app
687
+ reason: 'API_* vars are service-owned'
688
+ - name: app-url-shared-default
689
+ pattern: '^APP_.*_URL$'
690
+ expected_scope: shared
691
+ reason: 'URL variables stay shared by default'
692
+
536
693
  # Local development files (see "Local vs Deploy Structure" below)
537
694
  # local: .vaulter/local/
538
695
 
@@ -581,7 +738,7 @@ Vaulter separates **local development** from **deployment** configurations:
581
738
  | `local/configs.env` | Developer's machine | Ignored | Non-sensitive local vars |
582
739
  | `local/secrets.env` | Developer's machine | Ignored | Sensitive local secrets |
583
740
  | `deploy/configs/*.env` | CI/CD configs | Committed | Non-sensitive (PORT, HOST, LOG_LEVEL) |
584
- | `deploy/secrets/*.env` | CI/CD secrets | Ignored | Pulled via `vaulter sync pull` |
741
+ | `deploy/secrets/*.env` | CI/CD secrets | Ignored | Pulled via `vaulter local sync` |
585
742
 
586
743
  **Gitignore:**
587
744
 
@@ -754,7 +911,8 @@ You can also use the CLI directly:
754
911
  AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
755
912
  AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
756
913
  run: |
757
- npx vaulter sync pull -e prd
914
+ npx vaulter local sync -e prd
915
+ npx vaulter local pull -e prd
758
916
  npx vaulter run -e prd -- pnpm build
759
917
  ```
760
918
 
@@ -797,8 +955,8 @@ Auto-detects NX, Turborepo, Lerna, pnpm, Yarn workspaces, Rush.
797
955
 
798
956
  ```bash
799
957
  vaulter service list # List discovered services
800
- vaulter sync push -e dev -s api # Push specific service
801
- vaulter sync push -e dev --shared # Push shared variables
958
+ vaulter plan -e dev -s api # Plan changes for specific service
959
+ vaulter apply -e dev -s api # Apply planned changes
802
960
  vaulter export shell -e dev -s api # Export with shared inheritance
803
961
  vaulter export shell -e dev --shared # Export only shared variables
804
962
  ```
@@ -864,7 +1022,7 @@ shared:
864
1022
 
865
1023
  ```bash
866
1024
  # Pull to all outputs at once
867
- vaulter sync pull --all
1025
+ vaulter local pull --all
868
1026
 
869
1027
  # Result:
870
1028
  # ✓ web: apps/web/.env.local (5 vars)
@@ -876,10 +1034,10 @@ vaulter sync pull --all
876
1034
 
877
1035
  ```bash
878
1036
  # Pull only web
879
- vaulter sync pull --output web
1037
+ vaulter local pull --output web
880
1038
 
881
1039
  # Preview without writing
882
- vaulter sync pull --all --dry-run
1040
+ vaulter local pull --all --dry-run
883
1041
  ```
884
1042
 
885
1043
  ### How It Works
@@ -890,7 +1048,7 @@ vaulter sync pull --all --dry-run
890
1048
  │ DATABASE_URL, JWT_SECRET, NEXT_PUBLIC_API, LOG_LEVEL │
891
1049
  └────────────────────────┬────────────────────────────────┘
892
1050
 
893
- vaulter sync pull --all
1051
+ vaulter local pull --all
894
1052
 
895
1053
  ┌───────────────┼───────────────┐
896
1054
  ▼ ▼ ▼
@@ -929,17 +1087,19 @@ outputs:
929
1087
 
930
1088
  ## Local Overrides (Dev Environment) - OFFLINE FIRST
931
1089
 
932
- **`vaulter local pull` is 100% OFFLINE** - no backend calls!
1090
+ **`vaulter local pull` and local `.env` generation are 100% OFFLINE** - no backend calls.
933
1091
 
934
- Works entirely from local files in `.vaulter/local/`. Perfect for local development where you want to work offline and sync later.
1092
+ Works entirely from local files in `.vaulter/local/`. This is the primary workflow for day-to-day development: edit local overrides, run `vaulter local pull`, and only sync when needed.
935
1093
 
936
1094
  ### Quick Reference
937
1095
 
938
1096
  | Command | What it does | Backend? |
939
1097
  |---------|--------------|----------|
940
- | `vaulter local pull --all` | Generate .env files from local | ❌ OFFLINE |
1098
+ | `vaulter local pull` | Generate .env files from local | ❌ OFFLINE |
941
1099
  | `vaulter local push --all` | Send local → backend | ✅ Backend |
942
1100
  | `vaulter local sync` | Download backend → local | ✅ Backend |
1101
+ | `vaulter local set` | Write local override to `.vaulter/local/` | ❌ OFFLINE |
1102
+ | `vaulter local diff` | Compare local overrides vs base env | ❌ OFFLINE |
943
1103
 
944
1104
  ### Workflow
945
1105
 
@@ -947,7 +1107,7 @@ Works entirely from local files in `.vaulter/local/`. Perfect for local developm
947
1107
  ┌─────────────────────────────────────────────────────┐
948
1108
  │ LOCAL DEVELOPMENT │
949
1109
  │ 1. Edit .vaulter/local/*.env │
950
- │ 2. vaulter local pull --all → Generate .env │
1110
+ │ 2. vaulter local pull → Generate .env │
951
1111
  │ 3. Develop... │
952
1112
  └─────────────────────────────────────────────────────┘
953
1113
 
@@ -960,10 +1120,12 @@ Works entirely from local files in `.vaulter/local/`. Perfect for local developm
960
1120
  │ NEW TEAM MEMBER │
961
1121
  │ 1. git clone <repo> │
962
1122
  │ 2. vaulter local sync → Download from backend │
963
- │ 3. vaulter local pull --all → Generate .env │
1123
+ │ 3. vaulter local pull → Generate .env │
964
1124
  └─────────────────────────────────────────────────────┘
965
1125
  ```
966
1126
 
1127
+ For monorepos, use `--service <name>` on `local set`, `local delete`, `local diff`, and `local push` (without `--all`), unless the CLI can infer the service from your current directory (or the monorepo has only one service).
1128
+
967
1129
  ### File Structure
968
1130
 
969
1131
  ```
@@ -997,11 +1159,13 @@ For each output target, vaulter merges:
997
1159
  # === EDIT LOCALLY ===
998
1160
  vaulter local set --shared DEBUG::true # shared config
999
1161
  vaulter local set --shared API_KEY=xxx # shared secret
1000
- vaulter local set PORT::3001 -s web # service config
1162
+ vaulter local set PORT::3001 # service config (inferred from cwd in monorepo)
1001
1163
  vaulter local set DB_URL=xxx -s api # service secret
1164
+ # In service directories, `-s` is usually auto-inferred.
1165
+ # If the repo has only one service, `-s` is inferred automatically too.
1002
1166
 
1003
1167
  # === GENERATE .ENV FILES [OFFLINE] ===
1004
- vaulter local pull --all
1168
+ vaulter local pull
1005
1169
  # Output: "svc-auth: 23 vars (21 shared + 2 service)"
1006
1170
 
1007
1171
  # === SHARE WITH TEAM ===
@@ -1009,7 +1173,7 @@ vaulter local push --all # Upload entire structure
1009
1173
 
1010
1174
  # === GET TEAM'S CHANGES ===
1011
1175
  vaulter local sync # Download from backend
1012
- vaulter local pull --all # Generate .env files
1176
+ vaulter local pull # Generate .env files
1013
1177
 
1014
1178
  # === OTHER ===
1015
1179
  vaulter local diff # Show differences
@@ -1045,10 +1209,10 @@ NODE_ENV=production
1045
1209
 
1046
1210
  ```bash
1047
1211
  # Section-aware pull (default)
1048
- vaulter local pull --all
1212
+ vaulter local pull
1049
1213
 
1050
1214
  # Overwrite entire file (ignores sections)
1051
- vaulter local pull --all --overwrite
1215
+ vaulter local pull --overwrite
1052
1216
  ```
1053
1217
 
1054
1218
  **Programmatic API:**
@@ -1271,7 +1435,7 @@ const result = await loadRuntime({
1271
1435
 
1272
1436
  ## MCP Server
1273
1437
 
1274
- Claude AI integration via Model Context Protocol. **53 tools, 6 resources, 12 prompts.**
1438
+ Claude AI integration via Model Context Protocol. **17 Tools | 4 Resources | 5 Prompts.**
1275
1439
 
1276
1440
  ```bash
1277
1441
  vaulter mcp
@@ -1290,58 +1454,52 @@ vaulter mcp
1290
1454
  }
1291
1455
  ```
1292
1456
 
1293
- ### Tools (53)
1294
-
1295
- | Category | Tools |
1296
- |:---------|:------|
1297
- | **Core (5)** | `vaulter_get`, `vaulter_set`, `vaulter_delete`, `vaulter_list`, `vaulter_export` |
1298
- | **Batch (3)** | `vaulter_multi_get`, `vaulter_multi_set`, `vaulter_multi_delete` |
1299
- | **Sync (3)** | `vaulter_sync`, `vaulter_pull`, `vaulter_push` |
1300
- | **Analysis (2)** | `vaulter_compare`, `vaulter_search` |
1301
- | **Status (2)** | `vaulter_status`, `vaulter_audit_list` |
1302
- | **K8s (2)** | `vaulter_k8s_secret`, `vaulter_k8s_configmap` |
1303
- | **IaC (2)** | `vaulter_helm_values`, `vaulter_tf_vars` |
1304
- | **Keys (6)** | `vaulter_key_generate`, `vaulter_key_list`, `vaulter_key_show`, `vaulter_key_export`, `vaulter_key_import`, `vaulter_key_rotate` |
1305
- | **Monorepo (5)** | `vaulter_init`, `vaulter_scan`, `vaulter_services`, `vaulter_shared_list`, `vaulter_inheritance_info` |
1306
- | **Categorization (1)** | `vaulter_categorize_vars` |
1307
- | **Dangerous (1)** | `vaulter_nuke_preview` |
1308
- | **Utility (4)** | `vaulter_copy`, `vaulter_rename`, `vaulter_promote_shared`, `vaulter_demote_shared` |
1309
- | **Local Overrides (8)** | `vaulter_local_pull`, `vaulter_local_set`, `vaulter_local_delete`, `vaulter_local_diff`, `vaulter_local_status`, `vaulter_local_shared_set`, `vaulter_local_shared_delete`, `vaulter_local_shared_list` |
1310
- | **Snapshot (3)** | `vaulter_snapshot_create`, `vaulter_snapshot_list`, `vaulter_snapshot_restore` |
1311
- | **Versioning (3)** | `vaulter_list_versions`, `vaulter_get_version`, `vaulter_rollback` |
1312
- | **Diagnostic (3)** | `vaulter_doctor`, `vaulter_clone_env`, `vaulter_diff` |
1313
-
1314
- ### Resources (6)
1457
+ ### Tools (17)
1458
+
1459
+ > **Tool Architecture:** Each tool is action-based (one tool per domain with `action` parameter).
1460
+
1461
+ | Category | Tool | Actions / Description |
1462
+ |:---------|:-----|:---------------------|
1463
+ | **Mutation Flow** | `vaulter_change` | set, delete, move, import (writes local state only) |
1464
+ | | `vaulter_plan` | Compute diff local vs backend, generate plan artifact |
1465
+ | | `vaulter_apply` | Execute plan, push changes to backend |
1466
+ | | `vaulter_run` | Execute command with loaded variables |
1467
+ | **Read** | `vaulter_get` | Get single var or multi-get via `keys[]` |
1468
+ | | `vaulter_list` | List vars with optional filter |
1469
+ | | `vaulter_search` | Search by pattern or compare environments |
1470
+ | | `vaulter_diff` | Quick diff without plan artifacts |
1471
+ | **Status** | `vaulter_status` | scorecard, vars, audit, drift, inventory |
1472
+ | **Export** | `vaulter_export` | k8s-secret, k8s-configmap, helm, terraform, env, shell, json |
1473
+ | **Keys** | `vaulter_key` | generate, list, show, export, import, rotate |
1474
+ | **Local Dev** | `vaulter_local` | pull, push, push-all, sync, set, delete, diff, status, shared-set, shared-delete, shared-list |
1475
+ | **Backup** | `vaulter_snapshot` | create, list, restore, delete |
1476
+ | | `vaulter_versions` | list, get, rollback |
1477
+ | **Setup** | `vaulter_init` | Initialize project |
1478
+ | | `vaulter_services` | Discover monorepo services |
1479
+ | **Danger** | `vaulter_nuke` | Preview backend deletion (CLI-only execution) |
1480
+
1481
+ ### Resources (4)
1315
1482
 
1316
1483
  Static data views (no input required). For actions with parameters, use tools.
1317
1484
 
1318
1485
  | URI | Description |
1319
1486
  |:----|:------------|
1320
- | `vaulter://instructions` | **Read first!** How vaulter stores data (s3db.js architecture) |
1487
+ | `vaulter://instructions` | **Read first!** s3db.js architecture + tool overview |
1321
1488
  | `vaulter://tools-guide` | Which tool to use for each scenario |
1322
- | `vaulter://monorepo-example` | Complete monorepo isolation example with var counts |
1323
- | `vaulter://mcp-config` | MCP settings sources (priority chain) |
1324
1489
  | `vaulter://config` | Project configuration (YAML) |
1325
1490
  | `vaulter://services` | Monorepo services list |
1326
1491
 
1327
- ### Prompts (12)
1492
+ ### Prompts (5)
1328
1493
 
1329
1494
  Pre-configured workflows for common tasks.
1330
1495
 
1331
1496
  | Prompt | Description |
1332
1497
  |:-------|:------------|
1333
1498
  | `setup_project` | Initialize new vaulter project |
1334
- | `migrate_dotenv` | Migrate existing .env files |
1335
1499
  | `deploy_secrets` | Deploy to Kubernetes |
1336
1500
  | `compare_environments` | Compare dev vs prd |
1337
- | `security_audit` | Audit secrets for issues |
1338
1501
  | `rotation_workflow` | Check/rotate/report on rotation |
1339
- | `shared_vars_workflow` | Manage monorepo shared vars |
1340
- | `batch_operations` | Multi-set/get/delete operations |
1341
- | `copy_environment` | Copy variables between environments |
1342
- | `sync_workflow` | Sync local files with remote backend |
1343
- | `monorepo_deploy` | Complete monorepo setup with isolation |
1344
- | `local_overrides_workflow` | Manage local dev overrides (shared + service) |
1502
+ | `local_dev_workflow` | Manage local dev overrides (shared + service) |
1345
1503
 
1346
1504
  > **Full MCP documentation:** See [docs/MCP.md](docs/MCP.md) for complete tool reference with parameters.
1347
1505
 
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Vaulter `apply` Command
3
+ *
4
+ * Executes the last plan, pushing changes to the backend.
5
+ * If no plan exists or plan is stale, auto-plans first.
6
+ *
7
+ * Usage:
8
+ * vaulter apply -e dev Apply latest plan (auto-plan if needed)
9
+ * vaulter apply -e prd --force Apply to production (requires --force)
10
+ * vaulter apply -e dev --dry-run Show what would be applied
11
+ * vaulter apply -e dev --prune Include remote-only deletions
12
+ */
13
+ import type { VarContext } from './change.js';
14
+ export declare function runApply(context: VarContext): Promise<void>;
15
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAc7C,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA8GjE"}