@mangold/rvault 0.1.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 (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +83 -0
  3. package/dist/commands/doctor.d.ts +7 -0
  4. package/dist/commands/doctor.d.ts.map +1 -0
  5. package/dist/commands/doctor.js +315 -0
  6. package/dist/commands/doctor.js.map +1 -0
  7. package/dist/commands/init.d.ts +8 -0
  8. package/dist/commands/init.d.ts.map +1 -0
  9. package/dist/commands/init.js +181 -0
  10. package/dist/commands/init.js.map +1 -0
  11. package/dist/commands/run.d.ts +9 -0
  12. package/dist/commands/run.d.ts.map +1 -0
  13. package/dist/commands/run.js +117 -0
  14. package/dist/commands/run.js.map +1 -0
  15. package/dist/commands/status.d.ts +6 -0
  16. package/dist/commands/status.d.ts.map +1 -0
  17. package/dist/commands/status.js +147 -0
  18. package/dist/commands/status.js.map +1 -0
  19. package/dist/commands/upgrade.d.ts +9 -0
  20. package/dist/commands/upgrade.d.ts.map +1 -0
  21. package/dist/commands/upgrade.js +409 -0
  22. package/dist/commands/upgrade.js.map +1 -0
  23. package/dist/commands/version.d.ts +7 -0
  24. package/dist/commands/version.d.ts.map +1 -0
  25. package/dist/commands/version.js +57 -0
  26. package/dist/commands/version.js.map +1 -0
  27. package/dist/index.d.ts +3 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +103 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/lib/checksum.d.ts +3 -0
  32. package/dist/lib/checksum.d.ts.map +1 -0
  33. package/dist/lib/checksum.js +11 -0
  34. package/dist/lib/checksum.js.map +1 -0
  35. package/dist/lib/claude.d.ts +22 -0
  36. package/dist/lib/claude.d.ts.map +1 -0
  37. package/dist/lib/claude.js +50 -0
  38. package/dist/lib/claude.js.map +1 -0
  39. package/dist/lib/detect.d.ts +3 -0
  40. package/dist/lib/detect.d.ts.map +1 -0
  41. package/dist/lib/detect.js +28 -0
  42. package/dist/lib/detect.js.map +1 -0
  43. package/dist/lib/files.d.ts +28 -0
  44. package/dist/lib/files.d.ts.map +1 -0
  45. package/dist/lib/files.js +92 -0
  46. package/dist/lib/files.js.map +1 -0
  47. package/dist/lib/manifest-parser.d.ts +6 -0
  48. package/dist/lib/manifest-parser.d.ts.map +1 -0
  49. package/dist/lib/manifest-parser.js +108 -0
  50. package/dist/lib/manifest-parser.js.map +1 -0
  51. package/dist/lib/merge-prompt.d.ts +30 -0
  52. package/dist/lib/merge-prompt.d.ts.map +1 -0
  53. package/dist/lib/merge-prompt.js +113 -0
  54. package/dist/lib/merge-prompt.js.map +1 -0
  55. package/dist/lib/registry.d.ts +6 -0
  56. package/dist/lib/registry.d.ts.map +1 -0
  57. package/dist/lib/registry.js +19 -0
  58. package/dist/lib/registry.js.map +1 -0
  59. package/dist/lib/template.d.ts +7 -0
  60. package/dist/lib/template.d.ts.map +1 -0
  61. package/dist/lib/template.js +22 -0
  62. package/dist/lib/template.js.map +1 -0
  63. package/dist/lib/version-file.d.ts +5 -0
  64. package/dist/lib/version-file.d.ts.map +1 -0
  65. package/dist/lib/version-file.js +21 -0
  66. package/dist/lib/version-file.js.map +1 -0
  67. package/dist/types.d.ts +54 -0
  68. package/dist/types.d.ts.map +1 -0
  69. package/dist/types.js +2 -0
  70. package/dist/types.js.map +1 -0
  71. package/package.json +44 -0
  72. package/templates/.claude/agents/vault-adversarial-auditor.md +99 -0
  73. package/templates/.claude/agents/vault-constitutional-reviewer.md +59 -0
  74. package/templates/.claude/agents/vault-contradiction-analyst.md +86 -0
  75. package/templates/.claude/agents/vault-critic.md +73 -0
  76. package/templates/.claude/agents/vault-ideator.md +59 -0
  77. package/templates/.claude/agents/vault-meta-reviewer.md +90 -0
  78. package/templates/.claude/agents/vault-researcher.md +85 -0
  79. package/templates/.claude/agents/vault-synthesizer.md +63 -0
  80. package/templates/.claude/skills/vault/SKILL.md +96 -0
  81. package/templates/.claude/skills/vault-audit/SKILL.md +21 -0
  82. package/templates/.claude/skills/vault-decide/SKILL.md +29 -0
  83. package/templates/.claude/skills/vault-fieldnote/SKILL.md +27 -0
  84. package/templates/.claude/skills/vault-ideas/SKILL.md +24 -0
  85. package/templates/.claude/skills/vault-queue/SKILL.md +28 -0
  86. package/templates/.claude/skills/vault-review/SKILL.md +35 -0
  87. package/templates/.claude/skills/vault-status/SKILL.md +23 -0
  88. package/templates/BOOTSTRAP.md +77 -0
  89. package/templates/infrastructure.json +38 -0
  90. package/templates/research-vault/VAULT_CONSTITUTION.md +307 -0
  91. package/templates/research-vault/VAULT_PROTOCOL.md +432 -0
  92. package/templates/research-vault/archive/.gitkeep +0 -0
  93. package/templates/research-vault/decision-briefs/.gitkeep +0 -0
  94. package/templates/research-vault/distilled/.gitkeep +0 -0
  95. package/templates/research-vault/governance/DESIGN_ORIGINS.md +214 -0
  96. package/templates/research-vault/ideas/.gitkeep +0 -0
  97. package/templates/research-vault/inbox/.gitkeep +0 -0
  98. package/templates/research-vault/integrated/.gitkeep +0 -0
  99. package/templates/research-vault/logs/.gitkeep +0 -0
  100. package/templates/research-vault/project-context/.gitkeep +0 -0
  101. package/templates/research-vault/project-context/FIELD_NOTES.md +28 -0
  102. package/templates/research-vault/project-context/REFERENCES.md +48 -0
  103. package/templates/research-vault/research-queue/briefs/.gitkeep +0 -0
@@ -0,0 +1,409 @@
1
+ import { join } from "node:path";
2
+ import { readFile, mkdir, writeFile } from "node:fs/promises";
3
+ import chalk from "chalk";
4
+ import ora from "ora";
5
+ import { detectVault } from "../lib/detect.js";
6
+ import { hashFile } from "../lib/checksum.js";
7
+ import { getManifest, getTemplatePath } from "../lib/template.js";
8
+ import { readVaultVersion, writeVaultVersion } from "../lib/version-file.js";
9
+ import { fileExists, copyTemplateFile, cacheOriginal, computeTemplateHashes } from "../lib/files.js";
10
+ import { getCliVersion } from "./version.js";
11
+ import { initCommand } from "./init.js";
12
+ import { generateMergePrompt, estimateTokens, batchFiles, parseMergeResponse, } from "../lib/merge-prompt.js";
13
+ import { isClaudeAvailable, invokeClaudePrompt, savePromptToFile } from "../lib/claude.js";
14
+ export async function upgradeCommand(options) {
15
+ const projectDir = process.cwd();
16
+ // Step 1: Check for existing vault
17
+ const detection = await detectVault(projectDir);
18
+ if (detection.status === "none") {
19
+ console.log(chalk.yellow("No vault found. Run `rvault init` first."));
20
+ return;
21
+ }
22
+ if (detection.status === "unmanaged") {
23
+ console.log(chalk.yellow("Unmanaged vault detected. Running adoption first..."));
24
+ console.log();
25
+ await initCommand({ noBootstrap: true });
26
+ console.log();
27
+ }
28
+ const vaultVersion = await readVaultVersion(projectDir);
29
+ if (!vaultVersion) {
30
+ console.log(chalk.red("Could not read .vault-version after adoption."));
31
+ return;
32
+ }
33
+ // Step 2: Compare versions
34
+ const newVersion = getCliVersion();
35
+ if (vaultVersion.version === newVersion) {
36
+ console.log(chalk.green(`Already at version ${newVersion}. Nothing to upgrade.`));
37
+ return;
38
+ }
39
+ console.log(`Upgrading: ${chalk.dim(vaultVersion.version)} → ${chalk.cyan(newVersion)}`);
40
+ console.log();
41
+ // Step 3: Classify files
42
+ const manifest = await getManifest();
43
+ const classified = await classifyFiles(projectDir, vaultVersion, manifest);
44
+ const newFiles = classified.filter((f) => f.category === "new_file");
45
+ const unmodified = classified.filter((f) => f.category === "unmodified");
46
+ const modified = classified.filter((f) => f.category === "modified");
47
+ const removedClean = classified.filter((f) => f.category === "removed_clean");
48
+ const removedModified = classified.filter((f) => f.category === "removed_modified");
49
+ // Report classification
50
+ if (newFiles.length > 0) {
51
+ console.log(chalk.green(` + ${newFiles.length} new file(s)`));
52
+ }
53
+ if (unmodified.length > 0) {
54
+ console.log(chalk.dim(` = ${unmodified.length} unmodified (will replace silently)`));
55
+ }
56
+ if (modified.length > 0) {
57
+ console.log(chalk.yellow(` ~ ${modified.length} locally modified (need merge):`));
58
+ for (const f of modified) {
59
+ console.log(` ${chalk.dim("~")} ${f.path}`);
60
+ }
61
+ }
62
+ if (removedClean.length > 0) {
63
+ console.log(chalk.dim(` - ${removedClean.length} removed from template`));
64
+ }
65
+ if (removedModified.length > 0) {
66
+ console.log(chalk.yellow(` ! ${removedModified.length} removed from template but locally modified (kept):`));
67
+ for (const f of removedModified) {
68
+ console.log(` ${chalk.dim("!")} ${f.path}`);
69
+ }
70
+ }
71
+ console.log();
72
+ if (options.dryRun) {
73
+ console.log(chalk.dim("Dry run — no changes made."));
74
+ return;
75
+ }
76
+ // Step 4: Apply Tier 1 (deterministic)
77
+ const spinner = ora("Applying deterministic updates...").start();
78
+ for (const f of newFiles) {
79
+ await copyTemplateFile(f.path, projectDir);
80
+ }
81
+ for (const f of unmodified) {
82
+ await copyTemplateFile(f.path, projectDir);
83
+ }
84
+ // We don't delete removedClean files for now — safer to leave them.
85
+ // Users can clean up manually if desired.
86
+ spinner.succeed(`Applied ${newFiles.length + unmodified.length} deterministic updates.`);
87
+ // Step 5: Handle Tier 2 (modified files)
88
+ if (modified.length > 0) {
89
+ await handleModifiedFiles(projectDir, modified, vaultVersion.version, newVersion, options);
90
+ }
91
+ // Step 6: Update originals cache and version file
92
+ const updateSpinner = ora("Updating version metadata...").start();
93
+ for (const file of manifest.infrastructure) {
94
+ await cacheOriginal(file, projectDir);
95
+ }
96
+ const newHashes = await computeTemplateHashes(manifest);
97
+ const updatedVersion = {
98
+ version: newVersion,
99
+ installedAt: new Date().toISOString(),
100
+ cliVersion: newVersion,
101
+ files: newHashes,
102
+ };
103
+ await writeVaultVersion(projectDir, updatedVersion);
104
+ updateSpinner.succeed("Version metadata updated.");
105
+ // Step 7: Tier 3 — Post-upgrade verification
106
+ console.log();
107
+ await verifyUpgrade(projectDir, manifest);
108
+ console.log();
109
+ console.log(chalk.green(`Upgrade complete: v${newVersion}`));
110
+ }
111
+ async function classifyFiles(projectDir, vaultVersion, manifest) {
112
+ const classified = [];
113
+ const newInfraSet = new Set(manifest.infrastructure);
114
+ const oldFileSet = new Set(Object.keys(vaultVersion.files));
115
+ // Classify current template files
116
+ for (const path of manifest.infrastructure) {
117
+ const diskPath = join(projectDir, path);
118
+ const originalHash = vaultVersion.files[path]?.hash;
119
+ if (!(await fileExists(diskPath))) {
120
+ classified.push({ path, category: "new_file" });
121
+ continue;
122
+ }
123
+ if (!originalHash) {
124
+ // File exists on disk but wasn't tracked before — treat as new
125
+ classified.push({ path, category: "new_file" });
126
+ continue;
127
+ }
128
+ const diskHash = await hashFile(diskPath);
129
+ if (diskHash === originalHash) {
130
+ classified.push({ path, category: "unmodified" });
131
+ }
132
+ else {
133
+ classified.push({ path, category: "modified" });
134
+ }
135
+ }
136
+ // Check for files that were in old version but not in new template
137
+ for (const path of oldFileSet) {
138
+ if (!newInfraSet.has(path)) {
139
+ const diskPath = join(projectDir, path);
140
+ if (!(await fileExists(diskPath)))
141
+ continue;
142
+ const diskHash = await hashFile(diskPath);
143
+ const originalHash = vaultVersion.files[path]?.hash;
144
+ if (diskHash === originalHash) {
145
+ classified.push({ path, category: "removed_clean" });
146
+ }
147
+ else {
148
+ classified.push({ path, category: "removed_modified" });
149
+ }
150
+ }
151
+ }
152
+ return classified;
153
+ }
154
+ async function handleModifiedFiles(projectDir, modified, oldVersion, newVersion, options) {
155
+ // Build merge file data
156
+ const mergeFiles = [];
157
+ for (const f of modified) {
158
+ const originalPath = join(projectDir, ".vault", "originals", f.path);
159
+ const diskPath = join(projectDir, f.path);
160
+ const templatePath = getTemplatePath(f.path);
161
+ let original;
162
+ try {
163
+ original = await readFile(originalPath, "utf-8");
164
+ }
165
+ catch {
166
+ // Originals cache missing — try to use template as fallback
167
+ console.log(chalk.dim(` Note: original for ${f.path} not cached. Using template as baseline.`));
168
+ original = await readFile(templatePath, "utf-8");
169
+ }
170
+ const current = await readFile(diskPath, "utf-8");
171
+ const newContent = await readFile(templatePath, "utf-8");
172
+ mergeFiles.push({
173
+ path: f.path,
174
+ original,
175
+ current,
176
+ new: newContent,
177
+ });
178
+ }
179
+ // Generate prompt
180
+ const batches = options.oneAtATime
181
+ ? mergeFiles.map((f) => [f])
182
+ : batchFiles(mergeFiles);
183
+ for (let i = 0; i < batches.length; i++) {
184
+ const batch = batches[i];
185
+ const prompt = generateMergePrompt({
186
+ oldVersion,
187
+ newVersion,
188
+ files: batch,
189
+ });
190
+ const tokens = estimateTokens(prompt);
191
+ const batchLabel = batches.length > 1 ? ` (batch ${i + 1}/${batches.length})` : "";
192
+ console.log(chalk.dim(` Estimated merge cost${batchLabel}: ~${tokens.toLocaleString()} tokens across ${batch.length} file(s)`));
193
+ if (options.auto) {
194
+ await autoMerge(projectDir, prompt, batch);
195
+ }
196
+ else if (options.review) {
197
+ await reviewMerge(projectDir, prompt, batch);
198
+ }
199
+ else {
200
+ await saveForManualMerge(projectDir, prompt, batch);
201
+ }
202
+ }
203
+ }
204
+ async function autoMerge(projectDir, prompt, files) {
205
+ const available = await isClaudeAvailable();
206
+ if (!available) {
207
+ console.log(chalk.yellow(" Claude CLI not found. Falling back to saving merge prompt."));
208
+ await saveForManualMerge(projectDir, prompt, files);
209
+ return;
210
+ }
211
+ const spinner = ora("Running LLM merge via claude -p...").start();
212
+ const result = await invokeClaudePrompt(prompt, { maxTurns: 10 });
213
+ if (!result.success) {
214
+ spinner.fail("Claude invocation failed.");
215
+ console.log(chalk.red(` Error: ${result.error}`));
216
+ console.log(chalk.dim(" Falling back to saving merge prompt."));
217
+ await saveForManualMerge(projectDir, prompt, files);
218
+ return;
219
+ }
220
+ const merged = parseMergeResponse(result.output);
221
+ let applied = 0;
222
+ for (const file of files) {
223
+ const mergedContent = merged.get(file.path);
224
+ if (mergedContent) {
225
+ await writeFile(join(projectDir, file.path), mergedContent, "utf-8");
226
+ applied++;
227
+ }
228
+ else {
229
+ console.log(chalk.yellow(` Warning: No merge result for ${file.path}. Saved as .new/.local.`));
230
+ await writeFile(join(projectDir, file.path + ".new"), file.new, "utf-8");
231
+ await writeFile(join(projectDir, file.path + ".local"), file.current, "utf-8");
232
+ }
233
+ }
234
+ // Check for conflict markers in response
235
+ if (result.output.includes("### CONFLICT:")) {
236
+ spinner.warn(`Merged ${applied} file(s) — conflicts detected. Review the output below.`);
237
+ // Extract and display conflict sections
238
+ const conflictPattern = /### CONFLICT:[\s\S]*?(?=### MERGED:|---|\z)/g;
239
+ const conflicts = result.output.match(conflictPattern);
240
+ if (conflicts) {
241
+ for (const conflict of conflicts) {
242
+ console.log();
243
+ console.log(chalk.yellow(conflict.trim()));
244
+ }
245
+ }
246
+ }
247
+ else {
248
+ spinner.succeed(`Merged ${applied} file(s) automatically.`);
249
+ }
250
+ }
251
+ async function reviewMerge(projectDir, prompt, files) {
252
+ const available = await isClaudeAvailable();
253
+ if (!available) {
254
+ console.log(chalk.yellow(" Claude CLI not found. Falling back to saving merge prompt."));
255
+ await saveForManualMerge(projectDir, prompt, files);
256
+ return;
257
+ }
258
+ const spinner = ora("Running LLM merge via claude -p...").start();
259
+ const result = await invokeClaudePrompt(prompt, { maxTurns: 10 });
260
+ if (!result.success) {
261
+ spinner.fail("Claude invocation failed.");
262
+ console.log(chalk.dim(" Falling back to saving merge prompt."));
263
+ await saveForManualMerge(projectDir, prompt, files);
264
+ return;
265
+ }
266
+ spinner.succeed("Merge complete. Review each file:");
267
+ const merged = parseMergeResponse(result.output);
268
+ for (const file of files) {
269
+ const mergedContent = merged.get(file.path);
270
+ if (!mergedContent) {
271
+ console.log(chalk.yellow(`\n No merge result for ${file.path}. Saving both versions.`));
272
+ await writeFile(join(projectDir, file.path + ".new"), file.new, "utf-8");
273
+ await writeFile(join(projectDir, file.path + ".local"), file.current, "utf-8");
274
+ continue;
275
+ }
276
+ console.log(`\n${chalk.cyan(` File: ${file.path}`)}`);
277
+ console.log(chalk.dim(" Merged result preview (first 20 lines):"));
278
+ const previewLines = mergedContent.split("\n").slice(0, 20);
279
+ for (const line of previewLines) {
280
+ console.log(chalk.dim(` ${line}`));
281
+ }
282
+ if (mergedContent.split("\n").length > 20) {
283
+ console.log(chalk.dim(` ... (${mergedContent.split("\n").length} lines total)`));
284
+ }
285
+ // In non-interactive mode (piped), just apply
286
+ if (!process.stdin.isTTY) {
287
+ await writeFile(join(projectDir, file.path), mergedContent, "utf-8");
288
+ console.log(chalk.green(` Applied (non-interactive mode).`));
289
+ continue;
290
+ }
291
+ // Interactive: ask user
292
+ const readline = await import("node:readline");
293
+ const rl = readline.createInterface({
294
+ input: process.stdin,
295
+ output: process.stdout,
296
+ });
297
+ const answer = await new Promise((resolve) => {
298
+ rl.question(chalk.yellow(" Accept this merge? [y/n] "), (ans) => {
299
+ rl.close();
300
+ resolve(ans.trim().toLowerCase());
301
+ });
302
+ });
303
+ if (answer === "y" || answer === "yes") {
304
+ await writeFile(join(projectDir, file.path), mergedContent, "utf-8");
305
+ console.log(chalk.green(" Applied."));
306
+ }
307
+ else {
308
+ await writeFile(join(projectDir, file.path + ".new"), file.new, "utf-8");
309
+ await writeFile(join(projectDir, file.path + ".local"), file.current, "utf-8");
310
+ console.log(chalk.dim(` Saved as ${file.path}.new and ${file.path}.local for manual reconciliation.`));
311
+ }
312
+ }
313
+ }
314
+ async function saveForManualMerge(projectDir, prompt, files) {
315
+ const mergeDir = join(projectDir, ".vault");
316
+ await mkdir(mergeDir, { recursive: true });
317
+ const promptPath = join(mergeDir, "merge-prompt.md");
318
+ await savePromptToFile(prompt, promptPath);
319
+ // Also save .new files alongside originals
320
+ for (const file of files) {
321
+ await writeFile(join(projectDir, file.path + ".new"), file.new, "utf-8");
322
+ }
323
+ console.log();
324
+ console.log(` Merge prompt saved to ${chalk.cyan(".vault/merge-prompt.md")}`);
325
+ console.log(` New template versions saved as ${chalk.cyan("*.new")} files.`);
326
+ console.log();
327
+ console.log(" Next steps:");
328
+ console.log(` ${chalk.cyan("rvault upgrade --auto")} Run the merge via Claude`);
329
+ console.log(` ${chalk.cyan("rvault upgrade --review")} Run and review each merge`);
330
+ console.log(chalk.dim(" Or paste .vault/merge-prompt.md into Claude Code manually."));
331
+ }
332
+ async function verifyUpgrade(projectDir, manifest) {
333
+ console.log("Post-upgrade verification:");
334
+ let allPassed = true;
335
+ // Check all infrastructure files exist
336
+ let missingCount = 0;
337
+ for (const file of manifest.infrastructure) {
338
+ if (!(await fileExists(join(projectDir, file)))) {
339
+ console.log(chalk.red(` FAIL Missing: ${file}`));
340
+ missingCount++;
341
+ allPassed = false;
342
+ }
343
+ }
344
+ if (missingCount === 0) {
345
+ console.log(chalk.green(` PASS All ${manifest.infrastructure.length} infrastructure files present`));
346
+ }
347
+ // Check for deprecated patterns
348
+ const deprecatedPatterns = [
349
+ "Meta-research cycles in last 10 sessions",
350
+ "Reports synthesized since last ideation",
351
+ ];
352
+ for (const pattern of deprecatedPatterns) {
353
+ let found = false;
354
+ for (const file of manifest.infrastructure) {
355
+ const filePath = join(projectDir, file);
356
+ try {
357
+ const content = await readFile(filePath, "utf-8");
358
+ if (content.includes(pattern)) {
359
+ console.log(chalk.yellow(` WARN Deprecated pattern "${pattern}" found in ${file}`));
360
+ found = true;
361
+ allPassed = false;
362
+ }
363
+ }
364
+ catch {
365
+ // File missing — already reported above
366
+ }
367
+ }
368
+ if (!found) {
369
+ console.log(chalk.green(` PASS No deprecated "${pattern}"`));
370
+ }
371
+ }
372
+ // Check agent files reference constitution
373
+ const agentFiles = manifest.infrastructure.filter((f) => f.startsWith(".claude/agents/"));
374
+ let constitutionRefs = 0;
375
+ for (const file of agentFiles) {
376
+ try {
377
+ const content = await readFile(join(projectDir, file), "utf-8");
378
+ if (content.includes("VAULT_CONSTITUTION.md")) {
379
+ constitutionRefs++;
380
+ }
381
+ else {
382
+ console.log(chalk.yellow(` WARN ${file} does not reference VAULT_CONSTITUTION.md`));
383
+ allPassed = false;
384
+ }
385
+ }
386
+ catch {
387
+ // Already reported
388
+ }
389
+ }
390
+ if (constitutionRefs === agentFiles.length) {
391
+ console.log(chalk.green(` PASS All ${agentFiles.length} agent files reference constitution`));
392
+ }
393
+ // Version consistency
394
+ const vv = await readVaultVersion(projectDir);
395
+ if (vv) {
396
+ const cliVersion = getCliVersion();
397
+ if (vv.version === cliVersion) {
398
+ console.log(chalk.green(` PASS .vault-version matches CLI (v${cliVersion})`));
399
+ }
400
+ else {
401
+ console.log(chalk.yellow(` WARN .vault-version (${vv.version}) != CLI (${cliVersion})`));
402
+ allPassed = false;
403
+ }
404
+ }
405
+ if (allPassed) {
406
+ console.log(chalk.green("\n All checks passed."));
407
+ }
408
+ }
409
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function getCliVersion(): string;
2
+ interface VersionOptions {
3
+ json?: boolean;
4
+ }
5
+ export declare function versionCommand(options: VersionOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAaA,wBAAgB,aAAa,IAAI,MAAM,CAOtC;AAED,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD3E"}
@@ -0,0 +1,57 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { dirname } from "node:path";
5
+ import chalk from "chalk";
6
+ import { readVaultVersion } from "../lib/version-file.js";
7
+ import { getLatestVersion } from "../lib/registry.js";
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = dirname(__filename);
10
+ let _cliVersion = null;
11
+ export function getCliVersion() {
12
+ if (_cliVersion)
13
+ return _cliVersion;
14
+ // From dist/commands/version.js -> package root
15
+ const pkgPath = join(__dirname, "..", "..", "package.json");
16
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
17
+ _cliVersion = pkg.version;
18
+ return _cliVersion;
19
+ }
20
+ export async function versionCommand(options) {
21
+ const projectDir = process.cwd();
22
+ const cliVersion = getCliVersion();
23
+ const vaultVersion = await readVaultVersion(projectDir);
24
+ const latestVersion = await getLatestVersion();
25
+ if (options.json) {
26
+ console.log(JSON.stringify({
27
+ cli: cliVersion,
28
+ installed: vaultVersion?.version ?? null,
29
+ latest: latestVersion,
30
+ upgradeAvailable: latestVersion !== null &&
31
+ vaultVersion !== null &&
32
+ latestVersion !== vaultVersion.version,
33
+ }, null, 2));
34
+ return;
35
+ }
36
+ console.log(`${chalk.dim("CLI version:")} ${cliVersion}`);
37
+ if (vaultVersion) {
38
+ console.log(`${chalk.dim("Installed version:")} ${vaultVersion.version}`);
39
+ console.log(`${chalk.dim("Installed at:")} ${vaultVersion.installedAt}`);
40
+ }
41
+ else {
42
+ console.log(`${chalk.dim("Installed version:")} ${chalk.yellow("not installed")}`);
43
+ }
44
+ if (latestVersion) {
45
+ console.log(`${chalk.dim("Latest available:")} ${latestVersion}`);
46
+ if (vaultVersion &&
47
+ latestVersion !== vaultVersion.version) {
48
+ console.log();
49
+ console.log(chalk.cyan(` Upgrade available: ${vaultVersion.version} → ${latestVersion}`));
50
+ console.log(chalk.dim(` Run: rvault upgrade`));
51
+ }
52
+ }
53
+ else {
54
+ console.log(`${chalk.dim("Latest available:")} ${chalk.dim("(could not reach npm registry)")}`);
55
+ }
56
+ }
57
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ import { getCliVersion } from "./commands/version.js";
4
+ import { initCommand } from "./commands/init.js";
5
+ import { upgradeCommand } from "./commands/upgrade.js";
6
+ import { statusCommand } from "./commands/status.js";
7
+ import { doctorCommand } from "./commands/doctor.js";
8
+ import { runCommand } from "./commands/run.js";
9
+ import { versionCommand } from "./commands/version.js";
10
+ const program = new Command();
11
+ program
12
+ .name("rvault")
13
+ .description("CLI tool for the Research Vault — an autonomous research system for coding agents")
14
+ .version(getCliVersion());
15
+ program
16
+ .command("init")
17
+ .description("Initialize a Research Vault in the current project")
18
+ .option("-s, --scope <description>", "Constrain the vault's focus")
19
+ .option("--no-bootstrap", "Skip bootstrap prompt generation")
20
+ .option("--force", "Overwrite existing vault files")
21
+ .action(async (options) => {
22
+ try {
23
+ await initCommand(options);
24
+ }
25
+ catch (err) {
26
+ console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
27
+ process.exit(1);
28
+ }
29
+ });
30
+ program
31
+ .command("upgrade")
32
+ .description("Upgrade vault infrastructure files to the latest template")
33
+ .option("--auto", "Invoke Claude for merges, apply automatically")
34
+ .option("--review", "Invoke Claude for merges, review each before applying")
35
+ .option("--dry-run", "Show what would change without modifying anything")
36
+ .option("--one-at-a-time", "Merge files individually instead of batching")
37
+ .action(async (options) => {
38
+ try {
39
+ await upgradeCommand(options);
40
+ }
41
+ catch (err) {
42
+ console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
43
+ process.exit(1);
44
+ }
45
+ });
46
+ program
47
+ .command("status")
48
+ .description("Show current vault state (free, no tokens)")
49
+ .option("--json", "Output as JSON")
50
+ .action(async (options) => {
51
+ try {
52
+ await statusCommand(options);
53
+ }
54
+ catch (err) {
55
+ console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
56
+ process.exit(1);
57
+ }
58
+ });
59
+ program
60
+ .command("doctor")
61
+ .description("Run diagnostic checks on the vault")
62
+ .option("--json", "Output as JSON")
63
+ .option("--fix", "Generate fix prompt for issues found")
64
+ .action(async (options) => {
65
+ try {
66
+ await doctorCommand(options);
67
+ }
68
+ catch (err) {
69
+ console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
70
+ process.exit(1);
71
+ }
72
+ });
73
+ program
74
+ .command("run")
75
+ .description("Run a vault cycle via claude -p")
76
+ .option("--quick-burn", "Maximize throughput")
77
+ .option("--max-turns <n>", "Override max turns (default: 60)", parseInt)
78
+ .option("--background", "Run detached, log output to file")
79
+ .option("--explain-permissions", "Show allowed tools and exit")
80
+ .action(async (options) => {
81
+ try {
82
+ await runCommand(options);
83
+ }
84
+ catch (err) {
85
+ console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
86
+ process.exit(1);
87
+ }
88
+ });
89
+ program
90
+ .command("version")
91
+ .description("Show installed and available versions")
92
+ .option("--json", "Output as JSON")
93
+ .action(async (options) => {
94
+ try {
95
+ await versionCommand(options);
96
+ }
97
+ catch (err) {
98
+ console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
99
+ process.exit(1);
100
+ }
101
+ });
102
+ program.parse();
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function hashContent(content: string | Buffer): string;
2
+ export declare function hashFile(filePath: string): Promise<string>;
3
+ //# sourceMappingURL=checksum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../src/lib/checksum.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAG5D;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhE"}
@@ -0,0 +1,11 @@
1
+ import { createHash } from "node:crypto";
2
+ import { readFile } from "node:fs/promises";
3
+ export function hashContent(content) {
4
+ const hash = createHash("sha256").update(content).digest("hex");
5
+ return `sha256:${hash}`;
6
+ }
7
+ export async function hashFile(filePath) {
8
+ const content = await readFile(filePath);
9
+ return hashContent(content);
10
+ }
11
+ //# sourceMappingURL=checksum.js.map