vralphy 0.8.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 (158) hide show
  1. package/README.md +512 -0
  2. package/bin/vralphy.js +3 -0
  3. package/dist/commands/build.d.ts +9 -0
  4. package/dist/commands/build.d.ts.map +1 -0
  5. package/dist/commands/build.js +176 -0
  6. package/dist/commands/build.js.map +1 -0
  7. package/dist/commands/cleanup.d.ts +19 -0
  8. package/dist/commands/cleanup.d.ts.map +1 -0
  9. package/dist/commands/cleanup.js +159 -0
  10. package/dist/commands/cleanup.js.map +1 -0
  11. package/dist/commands/cleanup.test.d.ts +2 -0
  12. package/dist/commands/cleanup.test.d.ts.map +1 -0
  13. package/dist/commands/cleanup.test.js +389 -0
  14. package/dist/commands/cleanup.test.js.map +1 -0
  15. package/dist/commands/init.d.ts +13 -0
  16. package/dist/commands/init.d.ts.map +1 -0
  17. package/dist/commands/init.js +120 -0
  18. package/dist/commands/init.js.map +1 -0
  19. package/dist/commands/plan.d.ts +9 -0
  20. package/dist/commands/plan.d.ts.map +1 -0
  21. package/dist/commands/plan.js +147 -0
  22. package/dist/commands/plan.js.map +1 -0
  23. package/dist/commands/spec.d.ts +9 -0
  24. package/dist/commands/spec.d.ts.map +1 -0
  25. package/dist/commands/spec.js +111 -0
  26. package/dist/commands/spec.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 +251 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/lib/agents.d.ts +32 -0
  32. package/dist/lib/agents.d.ts.map +1 -0
  33. package/dist/lib/agents.js +96 -0
  34. package/dist/lib/agents.js.map +1 -0
  35. package/dist/lib/config.d.ts +54 -0
  36. package/dist/lib/config.d.ts.map +1 -0
  37. package/dist/lib/config.js +199 -0
  38. package/dist/lib/config.js.map +1 -0
  39. package/dist/lib/config.test.d.ts +2 -0
  40. package/dist/lib/config.test.d.ts.map +1 -0
  41. package/dist/lib/config.test.js +57 -0
  42. package/dist/lib/config.test.js.map +1 -0
  43. package/dist/lib/context.d.ts +29 -0
  44. package/dist/lib/context.d.ts.map +1 -0
  45. package/dist/lib/context.js +175 -0
  46. package/dist/lib/context.js.map +1 -0
  47. package/dist/lib/engines/base.d.ts +75 -0
  48. package/dist/lib/engines/base.d.ts.map +1 -0
  49. package/dist/lib/engines/base.js +62 -0
  50. package/dist/lib/engines/base.js.map +1 -0
  51. package/dist/lib/engines/base.test.d.ts +2 -0
  52. package/dist/lib/engines/base.test.d.ts.map +1 -0
  53. package/dist/lib/engines/base.test.js +28 -0
  54. package/dist/lib/engines/base.test.js.map +1 -0
  55. package/dist/lib/engines/claude.d.ts +12 -0
  56. package/dist/lib/engines/claude.d.ts.map +1 -0
  57. package/dist/lib/engines/claude.js +156 -0
  58. package/dist/lib/engines/claude.js.map +1 -0
  59. package/dist/lib/engines/codex.d.ts +28 -0
  60. package/dist/lib/engines/codex.d.ts.map +1 -0
  61. package/dist/lib/engines/codex.js +177 -0
  62. package/dist/lib/engines/codex.js.map +1 -0
  63. package/dist/lib/engines/index.d.ts +19 -0
  64. package/dist/lib/engines/index.d.ts.map +1 -0
  65. package/dist/lib/engines/index.js +40 -0
  66. package/dist/lib/engines/index.js.map +1 -0
  67. package/dist/lib/engines/opencode.d.ts +14 -0
  68. package/dist/lib/engines/opencode.d.ts.map +1 -0
  69. package/dist/lib/engines/opencode.js +127 -0
  70. package/dist/lib/engines/opencode.js.map +1 -0
  71. package/dist/lib/events/index.d.ts +6 -0
  72. package/dist/lib/events/index.d.ts.map +1 -0
  73. package/dist/lib/events/index.js +5 -0
  74. package/dist/lib/events/index.js.map +1 -0
  75. package/dist/lib/events/types.d.ts +93 -0
  76. package/dist/lib/events/types.d.ts.map +1 -0
  77. package/dist/lib/events/types.js +7 -0
  78. package/dist/lib/events/types.js.map +1 -0
  79. package/dist/lib/events/writer.d.ts +68 -0
  80. package/dist/lib/events/writer.d.ts.map +1 -0
  81. package/dist/lib/events/writer.js +178 -0
  82. package/dist/lib/events/writer.js.map +1 -0
  83. package/dist/lib/events.d.ts +33 -0
  84. package/dist/lib/events.d.ts.map +1 -0
  85. package/dist/lib/events.js +81 -0
  86. package/dist/lib/events.js.map +1 -0
  87. package/dist/lib/events.test.d.ts +2 -0
  88. package/dist/lib/events.test.d.ts.map +1 -0
  89. package/dist/lib/events.test.js +123 -0
  90. package/dist/lib/events.test.js.map +1 -0
  91. package/dist/lib/file-injection.d.ts +32 -0
  92. package/dist/lib/file-injection.d.ts.map +1 -0
  93. package/dist/lib/file-injection.js +138 -0
  94. package/dist/lib/file-injection.js.map +1 -0
  95. package/dist/lib/file-injection.test.d.ts +2 -0
  96. package/dist/lib/file-injection.test.d.ts.map +1 -0
  97. package/dist/lib/file-injection.test.js +508 -0
  98. package/dist/lib/file-injection.test.js.map +1 -0
  99. package/dist/lib/init.d.ts +27 -0
  100. package/dist/lib/init.d.ts.map +1 -0
  101. package/dist/lib/init.js +363 -0
  102. package/dist/lib/init.js.map +1 -0
  103. package/dist/lib/init.test.d.ts +2 -0
  104. package/dist/lib/init.test.d.ts.map +1 -0
  105. package/dist/lib/init.test.js +315 -0
  106. package/dist/lib/init.test.js.map +1 -0
  107. package/dist/lib/plan.d.ts +11 -0
  108. package/dist/lib/plan.d.ts.map +1 -0
  109. package/dist/lib/plan.js +22 -0
  110. package/dist/lib/plan.js.map +1 -0
  111. package/dist/lib/plan.test.d.ts +2 -0
  112. package/dist/lib/plan.test.d.ts.map +1 -0
  113. package/dist/lib/plan.test.js +70 -0
  114. package/dist/lib/plan.test.js.map +1 -0
  115. package/dist/lib/prompts/codex.d.ts +18 -0
  116. package/dist/lib/prompts/codex.d.ts.map +1 -0
  117. package/dist/lib/prompts/codex.js +82 -0
  118. package/dist/lib/prompts/codex.js.map +1 -0
  119. package/dist/lib/prompts/opencode.d.ts +16 -0
  120. package/dist/lib/prompts/opencode.d.ts.map +1 -0
  121. package/dist/lib/prompts/opencode.js +71 -0
  122. package/dist/lib/prompts/opencode.js.map +1 -0
  123. package/dist/lib/prompts.d.ts +57 -0
  124. package/dist/lib/prompts.d.ts.map +1 -0
  125. package/dist/lib/prompts.js +255 -0
  126. package/dist/lib/prompts.js.map +1 -0
  127. package/dist/lib/prompts.test.d.ts +2 -0
  128. package/dist/lib/prompts.test.d.ts.map +1 -0
  129. package/dist/lib/prompts.test.js +128 -0
  130. package/dist/lib/prompts.test.js.map +1 -0
  131. package/dist/lib/skills.d.ts +36 -0
  132. package/dist/lib/skills.d.ts.map +1 -0
  133. package/dist/lib/skills.js +132 -0
  134. package/dist/lib/skills.js.map +1 -0
  135. package/dist/lib/slack.d.ts +43 -0
  136. package/dist/lib/slack.d.ts.map +1 -0
  137. package/dist/lib/slack.js +130 -0
  138. package/dist/lib/slack.js.map +1 -0
  139. package/dist/lib/slack.test.d.ts +2 -0
  140. package/dist/lib/slack.test.d.ts.map +1 -0
  141. package/dist/lib/slack.test.js +74 -0
  142. package/dist/lib/slack.test.js.map +1 -0
  143. package/dist/lib/templates/injections.d.ts +18 -0
  144. package/dist/lib/templates/injections.d.ts.map +1 -0
  145. package/dist/lib/templates/injections.js +32 -0
  146. package/dist/lib/templates/injections.js.map +1 -0
  147. package/dist/lib/templates/readme.d.ts +6 -0
  148. package/dist/lib/templates/readme.d.ts.map +1 -0
  149. package/dist/lib/templates/readme.js +168 -0
  150. package/dist/lib/templates/readme.js.map +1 -0
  151. package/docs/COMMANDS.md +664 -0
  152. package/docs/DESIGN.md +537 -0
  153. package/docs/EXAMPLES.md +812 -0
  154. package/docs/METHODOLOGY.md +390 -0
  155. package/docs/README.md +110 -0
  156. package/docs/WORKFLOWS.md +808 -0
  157. package/llms.txt +104 -0
  158. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface CleanupOptions {
2
+ from?: string;
3
+ removeSpecs?: boolean;
4
+ force?: boolean;
5
+ }
6
+ /**
7
+ * Remove vralphy files and directories from a project
8
+ */
9
+ export declare function cleanupProject(dir: string, options: CleanupOptions): Promise<{
10
+ removed: string[];
11
+ kept: string[];
12
+ notFound: string[];
13
+ injectionsCleaned: string[];
14
+ }>;
15
+ /**
16
+ * Execute cleanup command
17
+ */
18
+ export declare function cleanupCommand(options: CleanupOptions): Promise<void>;
19
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA4CD;;GAEG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqDjG;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqE3E"}
@@ -0,0 +1,159 @@
1
+ import { rm } from 'fs/promises';
2
+ import { existsSync } from 'fs';
3
+ import { join } from 'path';
4
+ import { createInterface } from 'readline';
5
+ import { removeInjectedContent } from '../lib/file-injection.js';
6
+ import { INJECTION_MARKERS } from '../lib/templates/injections.js';
7
+ /**
8
+ * Prompt user for confirmation
9
+ */
10
+ async function confirm(message) {
11
+ const rl = createInterface({
12
+ input: process.stdin,
13
+ output: process.stdout,
14
+ });
15
+ return new Promise((resolve, reject) => {
16
+ const cleanup = () => {
17
+ try {
18
+ rl.close();
19
+ }
20
+ catch {
21
+ // Ignore cleanup errors
22
+ }
23
+ };
24
+ rl.question(`${message} [y/N] `, (answer) => {
25
+ cleanup();
26
+ resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
27
+ });
28
+ rl.on('error', (err) => {
29
+ cleanup();
30
+ reject(err);
31
+ });
32
+ // Handle SIGINT (Ctrl+C) to cleanup properly
33
+ const sigintHandler = () => {
34
+ cleanup();
35
+ resolve(false);
36
+ };
37
+ process.once('SIGINT', sigintHandler);
38
+ // Remove SIGINT handler after question is answered
39
+ rl.on('close', () => {
40
+ process.removeListener('SIGINT', sigintHandler);
41
+ });
42
+ });
43
+ }
44
+ /**
45
+ * Remove vralphy files and directories from a project
46
+ */
47
+ export async function cleanupProject(dir, options) {
48
+ const removed = [];
49
+ const kept = [];
50
+ const notFound = [];
51
+ const injectionsCleaned = [];
52
+ // Clean up injections from CLAUDE.md and AGENTS.md before removing .vralphy/
53
+ const claudeMdPath = join(dir, 'CLAUDE.md');
54
+ const claudeResult = await removeInjectedContent(claudeMdPath, INJECTION_MARKERS);
55
+ if (claudeResult.success) {
56
+ injectionsCleaned.push('CLAUDE.md');
57
+ }
58
+ const agentsMdPath = join(dir, 'AGENTS.md');
59
+ const agentsResult = await removeInjectedContent(agentsMdPath, INJECTION_MARKERS);
60
+ if (agentsResult.success) {
61
+ injectionsCleaned.push('AGENTS.md');
62
+ }
63
+ const filesToRemove = [
64
+ { path: '.vralphy', name: '.vralphy/' },
65
+ { path: 'IMPLEMENTATION_PLAN.md', name: 'IMPLEMENTATION_PLAN.md' },
66
+ ];
67
+ // Add specs/ if --remove-specs flag is set
68
+ if (options.removeSpecs) {
69
+ filesToRemove.push({ path: 'specs', name: 'specs/' });
70
+ }
71
+ for (const file of filesToRemove) {
72
+ const fullPath = join(dir, file.path);
73
+ if (existsSync(fullPath)) {
74
+ try {
75
+ await rm(fullPath, { recursive: true, force: true });
76
+ removed.push(file.name);
77
+ }
78
+ catch (error) {
79
+ console.error(`Failed to remove ${file.name}:`, error);
80
+ kept.push(file.name);
81
+ }
82
+ }
83
+ else {
84
+ notFound.push(file.name);
85
+ }
86
+ }
87
+ // specs/ is kept by default unless --remove-specs is used
88
+ if (!options.removeSpecs) {
89
+ const specsPath = join(dir, 'specs');
90
+ if (existsSync(specsPath)) {
91
+ kept.push('specs/ (use --remove-specs to delete)');
92
+ }
93
+ }
94
+ return { removed, kept, notFound, injectionsCleaned };
95
+ }
96
+ /**
97
+ * Execute cleanup command
98
+ */
99
+ export async function cleanupCommand(options) {
100
+ const dir = options.from ?? process.cwd();
101
+ console.log(`Cleaning up vralphy from: ${dir}`);
102
+ // Check if vralphy is initialized
103
+ const vralphyDir = join(dir, '.vralphy');
104
+ if (!existsSync(vralphyDir)) {
105
+ console.log('\nvralphy is not initialized in this directory.');
106
+ console.log('Nothing to clean up.');
107
+ return;
108
+ }
109
+ // Show what will be removed
110
+ console.log('\nThe following will be removed:');
111
+ console.log(' - .vralphy/');
112
+ console.log(' - IMPLEMENTATION_PLAN.md');
113
+ if (options.removeSpecs) {
114
+ console.log(' - specs/');
115
+ }
116
+ else {
117
+ console.log('\nThe following will be kept:');
118
+ console.log(' - specs/ (use --remove-specs to delete)');
119
+ }
120
+ // Confirm unless --force flag is set
121
+ if (!options.force) {
122
+ const confirmed = await confirm('\nProceed with cleanup?');
123
+ if (!confirmed) {
124
+ console.log('Cleanup cancelled.');
125
+ return;
126
+ }
127
+ }
128
+ // Perform cleanup
129
+ const { removed, kept, notFound, injectionsCleaned } = await cleanupProject(dir, options);
130
+ // Report results
131
+ console.log('\n--- Cleanup Results ---\n');
132
+ if (injectionsCleaned.length > 0) {
133
+ console.log('Cleaned injections:');
134
+ for (const item of injectionsCleaned) {
135
+ console.log(` ✓ ${item}`);
136
+ }
137
+ }
138
+ if (removed.length > 0) {
139
+ console.log('\nRemoved:');
140
+ for (const item of removed) {
141
+ console.log(` ✓ ${item}`);
142
+ }
143
+ }
144
+ if (kept.length > 0) {
145
+ console.log('\nKept:');
146
+ for (const item of kept) {
147
+ console.log(` - ${item}`);
148
+ }
149
+ }
150
+ if (notFound.length > 0) {
151
+ console.log('\nNot found (already removed):');
152
+ for (const item of notFound) {
153
+ console.log(` ~ ${item}`);
154
+ }
155
+ }
156
+ console.log('\nCleanup complete!');
157
+ console.log('\nTo re-initialize vralphy, run: vralphy init');
158
+ }
159
+ //# sourceMappingURL=cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cleanup.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.test.d.ts","sourceRoot":"","sources":["../../src/commands/cleanup.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,389 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import { mkdir, writeFile, readFile, rm } from 'fs/promises';
3
+ import { existsSync } from 'fs';
4
+ import { join } from 'path';
5
+ import { cleanupProject } from './cleanup.js';
6
+ import { INJECTION_MARKERS, CLAUDE_MD_INJECTION, AGENTS_MD_INJECTION } from '../lib/templates/injections.js';
7
+ const TEST_DIR = '/tmp/vralphy-cleanup-test';
8
+ describe('cleanup command', () => {
9
+ beforeEach(async () => {
10
+ // Create test directory
11
+ if (existsSync(TEST_DIR)) {
12
+ await rm(TEST_DIR, { recursive: true, force: true });
13
+ }
14
+ await mkdir(TEST_DIR, { recursive: true });
15
+ });
16
+ afterEach(async () => {
17
+ // Clean up test directory
18
+ if (existsSync(TEST_DIR)) {
19
+ await rm(TEST_DIR, { recursive: true, force: true });
20
+ }
21
+ });
22
+ describe('file removal', () => {
23
+ it('should remove .vralphy directory', async () => {
24
+ // Setup
25
+ const vralphyDir = join(TEST_DIR, '.vralphy');
26
+ await mkdir(vralphyDir, { recursive: true });
27
+ await writeFile(join(vralphyDir, 'AGENTS.md'), '# Test');
28
+ expect(existsSync(vralphyDir)).toBe(true);
29
+ // Execute
30
+ const result = await cleanupProject(TEST_DIR, {});
31
+ // Assert
32
+ expect(existsSync(vralphyDir)).toBe(false);
33
+ expect(result.removed).toContain('.vralphy/');
34
+ });
35
+ it('should remove IMPLEMENTATION_PLAN.md', async () => {
36
+ // Setup
37
+ const planFile = join(TEST_DIR, 'IMPLEMENTATION_PLAN.md');
38
+ await writeFile(planFile, '# Plan');
39
+ expect(existsSync(planFile)).toBe(true);
40
+ // Execute
41
+ const result = await cleanupProject(TEST_DIR, {});
42
+ // Assert
43
+ expect(existsSync(planFile)).toBe(false);
44
+ expect(result.removed).toContain('IMPLEMENTATION_PLAN.md');
45
+ });
46
+ it('should keep specs/ by default', async () => {
47
+ // Setup
48
+ const specsDir = join(TEST_DIR, 'specs');
49
+ await mkdir(specsDir, { recursive: true });
50
+ await writeFile(join(specsDir, 'test.md'), '# Spec');
51
+ const vralphyDir = join(TEST_DIR, '.vralphy');
52
+ await mkdir(vralphyDir, { recursive: true });
53
+ expect(existsSync(specsDir)).toBe(true);
54
+ // Execute
55
+ const result = await cleanupProject(TEST_DIR, {});
56
+ // Assert
57
+ expect(existsSync(specsDir)).toBe(true);
58
+ expect(result.kept.some(item => item.includes('specs/'))).toBe(true);
59
+ });
60
+ it('should remove specs/ when --remove-specs is set', async () => {
61
+ // Setup
62
+ const specsDir = join(TEST_DIR, 'specs');
63
+ await mkdir(specsDir, { recursive: true });
64
+ await writeFile(join(specsDir, 'test.md'), '# Spec');
65
+ const vralphyDir = join(TEST_DIR, '.vralphy');
66
+ await mkdir(vralphyDir, { recursive: true });
67
+ expect(existsSync(specsDir)).toBe(true);
68
+ // Execute
69
+ const result = await cleanupProject(TEST_DIR, { removeSpecs: true });
70
+ // Assert
71
+ expect(existsSync(specsDir)).toBe(false);
72
+ expect(result.removed).toContain('specs/');
73
+ });
74
+ it('should handle missing files gracefully', async () => {
75
+ // Execute (no files created)
76
+ const result = await cleanupProject(TEST_DIR, {});
77
+ // Assert
78
+ expect(result.removed.length).toBe(0);
79
+ expect(result.notFound.length).toBeGreaterThan(0);
80
+ expect(result.notFound).toContain('.vralphy/');
81
+ expect(result.notFound).toContain('IMPLEMENTATION_PLAN.md');
82
+ });
83
+ it('should remove nested .vralphy contents', async () => {
84
+ // Setup
85
+ const vralphyDir = join(TEST_DIR, '.vralphy');
86
+ const promptsDir = join(vralphyDir, 'prompts');
87
+ await mkdir(promptsDir, { recursive: true });
88
+ await writeFile(join(vralphyDir, 'AGENTS.md'), '# Test');
89
+ await writeFile(join(promptsDir, 'plan.md'), '# Plan');
90
+ await writeFile(join(promptsDir, 'build.md'), '# Build');
91
+ expect(existsSync(join(promptsDir, 'plan.md'))).toBe(true);
92
+ // Execute
93
+ await cleanupProject(TEST_DIR, {});
94
+ // Assert
95
+ expect(existsSync(vralphyDir)).toBe(false);
96
+ expect(existsSync(promptsDir)).toBe(false);
97
+ });
98
+ });
99
+ describe('result structure', () => {
100
+ it('should return correct result structure', async () => {
101
+ // Setup
102
+ const vralphyDir = join(TEST_DIR, '.vralphy');
103
+ await mkdir(vralphyDir, { recursive: true });
104
+ // Execute
105
+ const result = await cleanupProject(TEST_DIR, {});
106
+ // Assert
107
+ expect(result).toHaveProperty('removed');
108
+ expect(result).toHaveProperty('kept');
109
+ expect(result).toHaveProperty('notFound');
110
+ expect(result).toHaveProperty('injectionsCleaned');
111
+ expect(Array.isArray(result.removed)).toBe(true);
112
+ expect(Array.isArray(result.kept)).toBe(true);
113
+ expect(Array.isArray(result.notFound)).toBe(true);
114
+ expect(Array.isArray(result.injectionsCleaned)).toBe(true);
115
+ });
116
+ });
117
+ describe('injection cleanup', () => {
118
+ it('should clean injected content from CLAUDE.md', async () => {
119
+ // Setup
120
+ const vralphyDir = join(TEST_DIR, '.vralphy');
121
+ await mkdir(vralphyDir, { recursive: true });
122
+ const claudeMdPath = join(TEST_DIR, 'CLAUDE.md');
123
+ const injectedContent = `# Project
124
+
125
+ ## Existing Section
126
+
127
+ Some content here.
128
+
129
+ ${INJECTION_MARKERS.start}
130
+ ## vralphy Integration
131
+
132
+ This project uses vralphy.
133
+ ${INJECTION_MARKERS.end}
134
+
135
+ ## Another Section
136
+
137
+ More content.
138
+ `;
139
+ await writeFile(claudeMdPath, injectedContent);
140
+ // Execute
141
+ const result = await cleanupProject(TEST_DIR, {});
142
+ // Assert
143
+ expect(result.injectionsCleaned).toContain('CLAUDE.md');
144
+ const content = await readFile(claudeMdPath, 'utf-8');
145
+ expect(content).not.toContain(INJECTION_MARKERS.start);
146
+ expect(content).not.toContain('vralphy Integration');
147
+ expect(content).not.toContain(INJECTION_MARKERS.end);
148
+ expect(content).toContain('# Project');
149
+ expect(content).toContain('Existing Section');
150
+ expect(content).toContain('Another Section');
151
+ });
152
+ it('should clean injected content from AGENTS.md', async () => {
153
+ // Setup
154
+ const vralphyDir = join(TEST_DIR, '.vralphy');
155
+ await mkdir(vralphyDir, { recursive: true });
156
+ const agentsMdPath = join(TEST_DIR, 'AGENTS.md');
157
+ const injectedContent = `# Agents
158
+
159
+ ## Guidelines
160
+
161
+ Be helpful.
162
+
163
+ ${INJECTION_MARKERS.start}
164
+ ## vralphy
165
+
166
+ This project uses vralphy.
167
+ ${INJECTION_MARKERS.end}
168
+ `;
169
+ await writeFile(agentsMdPath, injectedContent);
170
+ // Execute
171
+ const result = await cleanupProject(TEST_DIR, {});
172
+ // Assert
173
+ expect(result.injectionsCleaned).toContain('AGENTS.md');
174
+ const content = await readFile(agentsMdPath, 'utf-8');
175
+ expect(content).not.toContain(INJECTION_MARKERS.start);
176
+ expect(content).not.toContain('This project uses vralphy');
177
+ expect(content).not.toContain(INJECTION_MARKERS.end);
178
+ expect(content).toContain('# Agents');
179
+ expect(content).toContain('Guidelines');
180
+ });
181
+ it('should clean both CLAUDE.md and AGENTS.md', async () => {
182
+ // Setup
183
+ const vralphyDir = join(TEST_DIR, '.vralphy');
184
+ await mkdir(vralphyDir, { recursive: true });
185
+ await writeFile(join(TEST_DIR, 'CLAUDE.md'), `# Project\n\n${INJECTION_MARKERS.start}\nInjected\n${INJECTION_MARKERS.end}\n`);
186
+ await writeFile(join(TEST_DIR, 'AGENTS.md'), `# Agents\n\n${INJECTION_MARKERS.start}\nInjected\n${INJECTION_MARKERS.end}\n`);
187
+ // Execute
188
+ const result = await cleanupProject(TEST_DIR, {});
189
+ // Assert
190
+ expect(result.injectionsCleaned).toContain('CLAUDE.md');
191
+ expect(result.injectionsCleaned).toContain('AGENTS.md');
192
+ expect(result.injectionsCleaned.length).toBe(2);
193
+ });
194
+ it('should not report files without injection markers', async () => {
195
+ // Setup
196
+ const vralphyDir = join(TEST_DIR, '.vralphy');
197
+ await mkdir(vralphyDir, { recursive: true });
198
+ const claudeMdPath = join(TEST_DIR, 'CLAUDE.md');
199
+ await writeFile(claudeMdPath, '# Project\n\nNo injections here.\n');
200
+ // Execute
201
+ const result = await cleanupProject(TEST_DIR, {});
202
+ // Assert
203
+ expect(result.injectionsCleaned).not.toContain('CLAUDE.md');
204
+ });
205
+ it('should not report files that do not exist', async () => {
206
+ // Setup - only create .vralphy, no CLAUDE.md or AGENTS.md
207
+ const vralphyDir = join(TEST_DIR, '.vralphy');
208
+ await mkdir(vralphyDir, { recursive: true });
209
+ // Execute
210
+ const result = await cleanupProject(TEST_DIR, {});
211
+ // Assert
212
+ expect(result.injectionsCleaned.length).toBe(0);
213
+ });
214
+ it('should clean injections before removing .vralphy', async () => {
215
+ // This tests that cleanup runs in the right order
216
+ const vralphyDir = join(TEST_DIR, '.vralphy');
217
+ await mkdir(vralphyDir, { recursive: true });
218
+ await writeFile(join(vralphyDir, 'README.md'), '# Documentation');
219
+ await writeFile(join(TEST_DIR, 'CLAUDE.md'), `# Project\n\n${INJECTION_MARKERS.start}\n@.vralphy/README.md\n${INJECTION_MARKERS.end}\n`);
220
+ // Execute
221
+ const result = await cleanupProject(TEST_DIR, {});
222
+ // Assert - both should succeed
223
+ expect(result.injectionsCleaned).toContain('CLAUDE.md');
224
+ expect(result.removed).toContain('.vralphy/');
225
+ });
226
+ it('should handle actual CLAUDE_MD_INJECTION content', async () => {
227
+ // Setup
228
+ const vralphyDir = join(TEST_DIR, '.vralphy');
229
+ await mkdir(vralphyDir, { recursive: true });
230
+ const claudeMdPath = join(TEST_DIR, 'CLAUDE.md');
231
+ await writeFile(claudeMdPath, `# vralphy
232
+
233
+ CLI tool implementing the Ralph Playbook.
234
+
235
+ ## Commands
236
+
237
+ \`\`\`bash
238
+ npm run build
239
+ npm test
240
+ \`\`\`
241
+
242
+ ${INJECTION_MARKERS.start}${CLAUDE_MD_INJECTION}${INJECTION_MARKERS.end}
243
+
244
+ ## More sections
245
+
246
+ Additional content.
247
+ `);
248
+ // Execute
249
+ const result = await cleanupProject(TEST_DIR, {});
250
+ // Assert
251
+ expect(result.injectionsCleaned).toContain('CLAUDE.md');
252
+ const content = await readFile(claudeMdPath, 'utf-8');
253
+ expect(content).not.toContain('## vralphy Integration');
254
+ expect(content).not.toContain('@.vralphy/README.md');
255
+ expect(content).toContain('# vralphy');
256
+ expect(content).toContain('npm run build');
257
+ expect(content).toContain('## More sections');
258
+ });
259
+ it('should handle actual AGENTS_MD_INJECTION content', async () => {
260
+ // Setup
261
+ const vralphyDir = join(TEST_DIR, '.vralphy');
262
+ await mkdir(vralphyDir, { recursive: true });
263
+ const agentsMdPath = join(TEST_DIR, 'AGENTS.md');
264
+ await writeFile(agentsMdPath, `# AGENTS.md
265
+
266
+ Operational guide.
267
+
268
+ ## Build
269
+
270
+ \`\`\`bash
271
+ npm install
272
+ \`\`\`
273
+
274
+ ${INJECTION_MARKERS.start}${AGENTS_MD_INJECTION}${INJECTION_MARKERS.end}
275
+ `);
276
+ // Execute
277
+ const result = await cleanupProject(TEST_DIR, {});
278
+ // Assert
279
+ expect(result.injectionsCleaned).toContain('AGENTS.md');
280
+ const content = await readFile(agentsMdPath, 'utf-8');
281
+ expect(content).not.toContain('.vralphy/README.md');
282
+ expect(content).toContain('# AGENTS.md');
283
+ expect(content).toContain('npm install');
284
+ });
285
+ });
286
+ describe('complete cleanup flow', () => {
287
+ it('should handle cleanup of complete vralphy project', async () => {
288
+ // Setup - create full vralphy structure
289
+ const vralphyDir = join(TEST_DIR, '.vralphy');
290
+ const promptsDir = join(vralphyDir, 'prompts');
291
+ const specsDir = join(TEST_DIR, 'specs');
292
+ await mkdir(promptsDir, { recursive: true });
293
+ await mkdir(specsDir, { recursive: true });
294
+ await writeFile(join(vralphyDir, 'AGENTS.md'), '# Agents');
295
+ await writeFile(join(vralphyDir, 'README.md'), '# README');
296
+ await writeFile(join(promptsDir, 'plan.md'), '# Plan');
297
+ await writeFile(join(promptsDir, 'build.md'), '# Build');
298
+ await writeFile(join(promptsDir, 'spec.md'), '# Spec');
299
+ await writeFile(join(TEST_DIR, 'IMPLEMENTATION_PLAN.md'), '# Plan');
300
+ await writeFile(join(specsDir, 'auth.md'), '# Auth');
301
+ // Execute
302
+ const result = await cleanupProject(TEST_DIR, {});
303
+ // Assert
304
+ expect(existsSync(vralphyDir)).toBe(false);
305
+ expect(existsSync(join(TEST_DIR, 'IMPLEMENTATION_PLAN.md'))).toBe(false);
306
+ expect(existsSync(specsDir)).toBe(true); // Kept by default
307
+ expect(result.removed).toContain('.vralphy/');
308
+ expect(result.removed).toContain('IMPLEMENTATION_PLAN.md');
309
+ });
310
+ it('should cleanup project with injected CLAUDE.md and AGENTS.md', async () => {
311
+ // Setup - simulate a project that was initialized with vralphy
312
+ const vralphyDir = join(TEST_DIR, '.vralphy');
313
+ await mkdir(vralphyDir, { recursive: true });
314
+ await writeFile(join(vralphyDir, 'README.md'), '# vralphy docs');
315
+ await writeFile(join(vralphyDir, 'AGENTS.md'), '# Internal agents');
316
+ await writeFile(join(TEST_DIR, 'IMPLEMENTATION_PLAN.md'), '- [x] Task 1\n- [ ] Task 2');
317
+ await writeFile(join(TEST_DIR, 'CLAUDE.md'), `# my-project
318
+
319
+ ## Commands
320
+
321
+ \`\`\`bash
322
+ npm test
323
+ \`\`\`
324
+
325
+ ${INJECTION_MARKERS.start}
326
+ ## vralphy Integration
327
+
328
+ This project uses vralphy.
329
+
330
+ - **Full documentation**: @.vralphy/README.md
331
+ ${INJECTION_MARKERS.end}
332
+
333
+ ## Architecture
334
+
335
+ Source code structure.
336
+ `);
337
+ await writeFile(join(TEST_DIR, 'AGENTS.md'), `# AGENTS.md
338
+
339
+ Guide for AI.
340
+
341
+ ${INJECTION_MARKERS.start}
342
+ ## vralphy
343
+
344
+ See \`.vralphy/README.md\`.
345
+ ${INJECTION_MARKERS.end}
346
+ `);
347
+ // Execute
348
+ const result = await cleanupProject(TEST_DIR, {});
349
+ // Assert - files cleaned properly
350
+ expect(result.injectionsCleaned).toContain('CLAUDE.md');
351
+ expect(result.injectionsCleaned).toContain('AGENTS.md');
352
+ expect(result.removed).toContain('.vralphy/');
353
+ expect(result.removed).toContain('IMPLEMENTATION_PLAN.md');
354
+ // CLAUDE.md preserved without injection
355
+ const claudeContent = await readFile(join(TEST_DIR, 'CLAUDE.md'), 'utf-8');
356
+ expect(claudeContent).toContain('# my-project');
357
+ expect(claudeContent).toContain('## Commands');
358
+ expect(claudeContent).toContain('## Architecture');
359
+ expect(claudeContent).not.toContain('## vralphy Integration');
360
+ expect(claudeContent).not.toContain('@.vralphy/README.md');
361
+ // AGENTS.md preserved without injection
362
+ const agentsContent = await readFile(join(TEST_DIR, 'AGENTS.md'), 'utf-8');
363
+ expect(agentsContent).toContain('# AGENTS.md');
364
+ expect(agentsContent).toContain('Guide for AI');
365
+ expect(agentsContent).not.toContain('.vralphy/README.md');
366
+ });
367
+ it('should handle re-initialization after cleanup', async () => {
368
+ // Setup - create and cleanup, then verify files can be re-created
369
+ const vralphyDir = join(TEST_DIR, '.vralphy');
370
+ await mkdir(vralphyDir, { recursive: true });
371
+ await writeFile(join(vralphyDir, 'AGENTS.md'), '# First init');
372
+ // First cleanup
373
+ await cleanupProject(TEST_DIR, {});
374
+ expect(existsSync(vralphyDir)).toBe(false);
375
+ // Re-create (simulating re-init)
376
+ await mkdir(vralphyDir, { recursive: true });
377
+ await writeFile(join(vralphyDir, 'AGENTS.md'), '# Second init');
378
+ // Verify
379
+ expect(existsSync(vralphyDir)).toBe(true);
380
+ const content = await readFile(join(vralphyDir, 'AGENTS.md'), 'utf-8');
381
+ expect(content).toBe('# Second init');
382
+ // Second cleanup
383
+ const result = await cleanupProject(TEST_DIR, {});
384
+ expect(result.removed).toContain('.vralphy/');
385
+ expect(existsSync(vralphyDir)).toBe(false);
386
+ });
387
+ });
388
+ });
389
+ //# sourceMappingURL=cleanup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.test.js","sourceRoot":"","sources":["../../src/commands/cleanup.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface InitCommandOptions {
2
+ from?: string;
3
+ noAi?: boolean;
4
+ noInject?: boolean;
5
+ approve?: boolean;
6
+ engine?: string;
7
+ verbose?: boolean;
8
+ }
9
+ /**
10
+ * Execute init command
11
+ */
12
+ export declare function initCommand(options: InitCommandOptions): Promise<void>;
13
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA4CD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D5E"}