@specsafe/cli 0.3.6 → 0.4.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 (49) hide show
  1. package/dist/commands/complete.d.ts.map +1 -1
  2. package/dist/commands/complete.js +4 -1
  3. package/dist/commands/complete.js.map +1 -1
  4. package/dist/commands/done.d.ts +3 -0
  5. package/dist/commands/done.d.ts.map +1 -0
  6. package/dist/commands/done.js +237 -0
  7. package/dist/commands/done.js.map +1 -0
  8. package/dist/commands/explore.d.ts +3 -0
  9. package/dist/commands/explore.d.ts.map +1 -0
  10. package/dist/commands/explore.js +236 -0
  11. package/dist/commands/explore.js.map +1 -0
  12. package/dist/commands/new.d.ts.map +1 -1
  13. package/dist/commands/new.js +312 -27
  14. package/dist/commands/new.js.map +1 -1
  15. package/dist/commands/spec.d.ts.map +1 -1
  16. package/dist/commands/spec.js +257 -25
  17. package/dist/commands/spec.js.map +1 -1
  18. package/dist/commands/test-apply.d.ts +3 -0
  19. package/dist/commands/test-apply.d.ts.map +1 -0
  20. package/dist/commands/test-apply.js +228 -0
  21. package/dist/commands/test-apply.js.map +1 -0
  22. package/dist/commands/test-create.d.ts +3 -0
  23. package/dist/commands/test-create.d.ts.map +1 -0
  24. package/dist/commands/{test.js → test-create.js} +79 -30
  25. package/dist/commands/test-create.js.map +1 -0
  26. package/dist/commands/verify.d.ts +3 -0
  27. package/dist/commands/verify.d.ts.map +1 -0
  28. package/dist/commands/verify.js +288 -0
  29. package/dist/commands/verify.js.map +1 -0
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +46 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/utils/generateToolConfig.d.ts +1 -1
  35. package/dist/utils/generateToolConfig.d.ts.map +1 -1
  36. package/dist/utils/generateToolConfig.js +980 -209
  37. package/dist/utils/generateToolConfig.js.map +1 -1
  38. package/dist/utils/testRunner.d.ts +39 -0
  39. package/dist/utils/testRunner.d.ts.map +1 -0
  40. package/dist/utils/testRunner.js +325 -0
  41. package/dist/utils/testRunner.js.map +1 -0
  42. package/package.json +3 -3
  43. package/dist/commands/code.d.ts +0 -3
  44. package/dist/commands/code.d.ts.map +0 -1
  45. package/dist/commands/code.js +0 -53
  46. package/dist/commands/code.js.map +0 -1
  47. package/dist/commands/test.d.ts +0 -3
  48. package/dist/commands/test.d.ts.map +0 -1
  49. package/dist/commands/test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"generateToolConfig.js","sourceRoot":"","sources":["../../src/utils/generateToolConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateToolConfig.js","sourceRoot":"","sources":["../../src/utils/generateToolConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export interface TestResult {
2
+ passed: boolean;
3
+ passCount: number;
4
+ failCount: number;
5
+ failures: Array<{
6
+ testName: string;
7
+ error: string;
8
+ }>;
9
+ }
10
+ export type TestFramework = 'vitest' | 'jest' | 'mocha';
11
+ interface FrameworkDetectionResult {
12
+ framework: TestFramework;
13
+ command: string;
14
+ args: string[];
15
+ }
16
+ /**
17
+ * Detects the test framework by checking:
18
+ * 1. Package.json for test scripts
19
+ * 2. Config files (vitest.config.*, jest.config.*, etc.)
20
+ * 3. Installed dependencies
21
+ * 4. Defaults to vitest
22
+ */
23
+ export declare function detectTestFramework(cwd?: string): FrameworkDetectionResult;
24
+ /**
25
+ * Runs tests using the detected framework and returns structured results
26
+ * @param specId Optional spec ID to filter tests
27
+ * @param cwd Working directory to run tests in
28
+ * @returns TestResult with pass/fail counts and failure details
29
+ */
30
+ export declare function runTests(specId?: string, cwd?: string): Promise<TestResult>;
31
+ /**
32
+ * Runs tests synchronously (for simpler use cases)
33
+ * @param specId Optional spec ID to filter tests
34
+ * @param cwd Working directory to run tests in
35
+ * @returns TestResult with pass/fail counts and failure details
36
+ */
37
+ export declare function runTestsSync(specId?: string, cwd?: string): TestResult;
38
+ export {};
39
+ //# sourceMappingURL=testRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testRunner.d.ts","sourceRoot":"","sources":["../../src/utils/testRunner.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,UAAU,wBAAwB;IAChC,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,wBAAwB,CAmEzF;AA+ID;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqEhG;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,UAAU,CAgDrF"}
@@ -0,0 +1,325 @@
1
+ import { execSync, spawn } from 'child_process';
2
+ import { existsSync, readFileSync } from 'fs';
3
+ import { join } from 'path';
4
+ /**
5
+ * Detects the test framework by checking:
6
+ * 1. Package.json for test scripts
7
+ * 2. Config files (vitest.config.*, jest.config.*, etc.)
8
+ * 3. Installed dependencies
9
+ * 4. Defaults to vitest
10
+ */
11
+ export function detectTestFramework(cwd = process.cwd()) {
12
+ const packageJsonPath = join(cwd, 'package.json');
13
+ let packageJson = {};
14
+ if (existsSync(packageJsonPath)) {
15
+ try {
16
+ packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
17
+ }
18
+ catch {
19
+ // Invalid package.json, continue with detection
20
+ }
21
+ }
22
+ // Check for config files first (most reliable)
23
+ if (existsSync(join(cwd, 'vitest.config.ts')) ||
24
+ existsSync(join(cwd, 'vitest.config.js')) ||
25
+ existsSync(join(cwd, 'vitest.config.mjs')) ||
26
+ existsSync(join(cwd, 'vitest.config.cjs'))) {
27
+ return { framework: 'vitest', command: 'npx', args: ['vitest', 'run', '--reporter=json'] };
28
+ }
29
+ if (existsSync(join(cwd, 'jest.config.ts')) ||
30
+ existsSync(join(cwd, 'jest.config.js')) ||
31
+ existsSync(join(cwd, 'jest.config.mjs')) ||
32
+ existsSync(join(cwd, 'jest.config.cjs')) ||
33
+ existsSync(join(cwd, 'jest.config.json'))) {
34
+ return { framework: 'jest', command: 'npx', args: ['jest', '--json'] };
35
+ }
36
+ if (existsSync(join(cwd, '.mocharc.js')) ||
37
+ existsSync(join(cwd, '.mocharc.json')) ||
38
+ existsSync(join(cwd, '.mocharc.yaml')) ||
39
+ existsSync(join(cwd, '.mocharc.yml'))) {
40
+ return { framework: 'mocha', command: 'npx', args: ['mocha', '--reporter=json'] };
41
+ }
42
+ // Check package.json scripts for clues
43
+ const scripts = packageJson.scripts || {};
44
+ const testScript = scripts.test || '';
45
+ if (testScript.includes('vitest')) {
46
+ return { framework: 'vitest', command: 'npx', args: ['vitest', 'run', '--reporter=json'] };
47
+ }
48
+ if (testScript.includes('jest')) {
49
+ return { framework: 'jest', command: 'npx', args: ['jest', '--json'] };
50
+ }
51
+ if (testScript.includes('mocha')) {
52
+ return { framework: 'mocha', command: 'npx', args: ['mocha', '--reporter=json'] };
53
+ }
54
+ // Check installed dependencies
55
+ const allDeps = {
56
+ ...packageJson.dependencies,
57
+ ...packageJson.devDependencies
58
+ };
59
+ if (allDeps?.vitest) {
60
+ return { framework: 'vitest', command: 'npx', args: ['vitest', 'run', '--reporter=json'] };
61
+ }
62
+ if (allDeps?.jest) {
63
+ return { framework: 'jest', command: 'npx', args: ['jest', '--json'] };
64
+ }
65
+ if (allDeps?.mocha) {
66
+ return { framework: 'mocha', command: 'npx', args: ['mocha', '--reporter=json'] };
67
+ }
68
+ // Default to vitest
69
+ return { framework: 'vitest', command: 'npx', args: ['vitest', 'run', '--reporter=json'] };
70
+ }
71
+ /**
72
+ * Parses Vitest JSON output
73
+ */
74
+ function parseVitestOutput(output) {
75
+ try {
76
+ const result = JSON.parse(output);
77
+ const failures = [];
78
+ let passCount = 0;
79
+ let failCount = 0;
80
+ // Vitest JSON format varies by version, handle common formats
81
+ if (result.testResults) {
82
+ // Newer vitest format
83
+ for (const testFile of result.testResults) {
84
+ if (testFile.assertionResults) {
85
+ for (const assertion of testFile.assertionResults) {
86
+ if (assertion.status === 'passed') {
87
+ passCount++;
88
+ }
89
+ else {
90
+ failCount++;
91
+ failures.push({
92
+ testName: `${testFile.name} > ${assertion.title}`,
93
+ error: assertion.failureMessages?.join('\n') || 'Test failed'
94
+ });
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ // Alternative format
101
+ if (result.results) {
102
+ for (const testFile of result.results) {
103
+ if (Array.isArray(testFile)) {
104
+ for (const test of testFile) {
105
+ if (test.status === 'passed' || test.status === 'fulfilled') {
106
+ passCount++;
107
+ }
108
+ else {
109
+ failCount++;
110
+ failures.push({
111
+ testName: test.name || 'Unknown test',
112
+ error: test.error?.message || test.error || 'Test failed'
113
+ });
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+ return {
120
+ passed: failCount === 0 && passCount > 0,
121
+ passCount,
122
+ failCount,
123
+ failures
124
+ };
125
+ }
126
+ catch {
127
+ // Fallback: try to parse from stdout
128
+ return parseGenericOutput(output);
129
+ }
130
+ }
131
+ /**
132
+ * Parses Jest JSON output
133
+ */
134
+ function parseJestOutput(output) {
135
+ try {
136
+ const result = JSON.parse(output);
137
+ const failures = [];
138
+ if (result.testResults) {
139
+ for (const testFile of result.testResults) {
140
+ if (testFile.message) {
141
+ failures.push({
142
+ testName: testFile.name,
143
+ error: testFile.message
144
+ });
145
+ }
146
+ }
147
+ }
148
+ return {
149
+ passed: result.success || result.numFailedTests === 0,
150
+ passCount: result.numPassedTests || 0,
151
+ failCount: result.numFailedTests || 0,
152
+ failures
153
+ };
154
+ }
155
+ catch {
156
+ return parseGenericOutput(output);
157
+ }
158
+ }
159
+ /**
160
+ * Parses Mocha JSON output
161
+ */
162
+ function parseMochaOutput(output) {
163
+ try {
164
+ const result = JSON.parse(output);
165
+ const failures = [];
166
+ if (result.failures) {
167
+ for (const failure of result.failures) {
168
+ failures.push({
169
+ testName: failure.fullTitle || failure.title,
170
+ error: failure.err?.message || failure.err || 'Test failed'
171
+ });
172
+ }
173
+ }
174
+ return {
175
+ passed: result.failures?.length === 0 && (result.passes?.length || 0) > 0,
176
+ passCount: result.passes?.length || 0,
177
+ failCount: result.failures?.length || 0,
178
+ failures
179
+ };
180
+ }
181
+ catch {
182
+ return parseGenericOutput(output);
183
+ }
184
+ }
185
+ /**
186
+ * Generic output parser for when JSON parsing fails
187
+ * Attempts to extract pass/fail counts from text output
188
+ */
189
+ function parseGenericOutput(output) {
190
+ const failures = [];
191
+ // Try to extract pass/fail counts from common patterns
192
+ const passMatch = output.match(/(\d+)\s+passing|passed\s+(\d+)|(\d+)\s+passed/i);
193
+ const failMatch = output.match(/(\d+)\s+failing|failed\s+(\d+)|(\d+)\s+failed/i);
194
+ const passCount = parseInt(passMatch?.[1] || passMatch?.[2] || passMatch?.[3] || '0', 10);
195
+ const failCount = parseInt(failMatch?.[1] || failMatch?.[2] || failMatch?.[3] || '0', 10);
196
+ return {
197
+ passed: failCount === 0 && passCount > 0,
198
+ passCount,
199
+ failCount,
200
+ failures
201
+ };
202
+ }
203
+ /**
204
+ * Runs tests using the detected framework and returns structured results
205
+ * @param specId Optional spec ID to filter tests
206
+ * @param cwd Working directory to run tests in
207
+ * @returns TestResult with pass/fail counts and failure details
208
+ */
209
+ export async function runTests(specId, cwd = process.cwd()) {
210
+ const detection = detectTestFramework(cwd);
211
+ // Add spec filter if provided
212
+ const args = [...detection.args];
213
+ if (specId) {
214
+ if (detection.framework === 'vitest') {
215
+ args.push('-t', specId);
216
+ }
217
+ else if (detection.framework === 'jest') {
218
+ args.push('-t', specId);
219
+ }
220
+ else if (detection.framework === 'mocha') {
221
+ args.push('-g', specId);
222
+ }
223
+ }
224
+ return new Promise((resolve, reject) => {
225
+ const child = spawn(detection.command, args, {
226
+ cwd,
227
+ stdio: ['pipe', 'pipe', 'pipe'],
228
+ shell: true
229
+ });
230
+ let stdout = '';
231
+ let stderr = '';
232
+ child.stdout?.on('data', (data) => {
233
+ stdout += data.toString();
234
+ });
235
+ child.stderr?.on('data', (data) => {
236
+ stderr += data.toString();
237
+ });
238
+ child.on('close', (code) => {
239
+ // Combine stdout and stderr for parsing (some frameworks output to stderr)
240
+ const output = stdout + stderr;
241
+ try {
242
+ let result;
243
+ switch (detection.framework) {
244
+ case 'vitest':
245
+ result = parseVitestOutput(output);
246
+ break;
247
+ case 'jest':
248
+ result = parseJestOutput(output);
249
+ break;
250
+ case 'mocha':
251
+ result = parseMochaOutput(output);
252
+ break;
253
+ default:
254
+ result = parseGenericOutput(output);
255
+ }
256
+ // If no tests were found but command succeeded, treat as passed with 0 tests
257
+ if (result.passCount === 0 && result.failCount === 0 && code === 0) {
258
+ result.passed = true;
259
+ }
260
+ resolve(result);
261
+ }
262
+ catch (error) {
263
+ reject(new Error(`Failed to parse test output: ${error}`));
264
+ }
265
+ });
266
+ child.on('error', (error) => {
267
+ reject(new Error(`Failed to run tests: ${error.message}`));
268
+ });
269
+ });
270
+ }
271
+ /**
272
+ * Runs tests synchronously (for simpler use cases)
273
+ * @param specId Optional spec ID to filter tests
274
+ * @param cwd Working directory to run tests in
275
+ * @returns TestResult with pass/fail counts and failure details
276
+ */
277
+ export function runTestsSync(specId, cwd = process.cwd()) {
278
+ const detection = detectTestFramework(cwd);
279
+ // Add spec filter if provided
280
+ const args = [...detection.args];
281
+ if (specId) {
282
+ if (detection.framework === 'vitest') {
283
+ args.push('-t', specId);
284
+ }
285
+ else if (detection.framework === 'jest') {
286
+ args.push('-t', specId);
287
+ }
288
+ else if (detection.framework === 'mocha') {
289
+ args.push('-g', specId);
290
+ }
291
+ }
292
+ try {
293
+ const output = execSync(`${detection.command} ${args.join(' ')}`, {
294
+ cwd,
295
+ encoding: 'utf-8',
296
+ stdio: ['pipe', 'pipe', 'pipe']
297
+ });
298
+ switch (detection.framework) {
299
+ case 'vitest':
300
+ return parseVitestOutput(output);
301
+ case 'jest':
302
+ return parseJestOutput(output);
303
+ case 'mocha':
304
+ return parseMochaOutput(output);
305
+ default:
306
+ return parseGenericOutput(output);
307
+ }
308
+ }
309
+ catch (error) {
310
+ // Test command may exit with non-zero code on test failures
311
+ // Try to parse output anyway
312
+ const output = error.stdout || error.message || '';
313
+ switch (detection.framework) {
314
+ case 'vitest':
315
+ return parseVitestOutput(output);
316
+ case 'jest':
317
+ return parseJestOutput(output);
318
+ case 'mocha':
319
+ return parseMochaOutput(output);
320
+ default:
321
+ return parseGenericOutput(output);
322
+ }
323
+ }
324
+ }
325
+ //# sourceMappingURL=testRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testRunner.js","sourceRoot":"","sources":["../../src/utils/testRunner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specsafe/cli",
3
- "version": "0.3.6",
3
+ "version": "0.4.0",
4
4
  "description": "CLI for SpecSafe TDD framework",
5
5
  "type": "module",
6
6
  "engines": {
@@ -24,8 +24,8 @@
24
24
  "commander": "^11.0.0",
25
25
  "chalk": "^5.3.0",
26
26
  "ora": "^7.0.0",
27
- "@specsafe/core": "0.3.6",
28
- "@specsafe/test-gen": "0.3.6"
27
+ "@specsafe/core": "0.4.0",
28
+ "@specsafe/test-gen": "0.4.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^20.0.0",
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const codeCommand: Command;
3
- //# sourceMappingURL=code.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/commands/code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,WAAW,SAiDpB,CAAC"}
@@ -1,53 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import ora from 'ora';
4
- import { Workflow, ProjectTracker, validateSpecId } from '@specsafe/core';
5
- export const codeCommand = new Command('code')
6
- .description('Start implementation (TEST → CODE)')
7
- .argument('<id>', 'Spec ID')
8
- .action(async (id) => {
9
- const spinner = ora(`Starting implementation for ${id}...`).start();
10
- try {
11
- // Validate spec ID format
12
- validateSpecId(id);
13
- const workflow = new Workflow();
14
- const tracker = new ProjectTracker(process.cwd());
15
- // Load existing specs from disk
16
- await tracker.loadSpecsIntoWorkflow(workflow);
17
- // Move to code stage (validates tests exist)
18
- try {
19
- workflow.moveToCode(id);
20
- }
21
- catch (moveError) {
22
- if (moveError.message.includes('not found')) {
23
- throw new Error(`Spec '${id}' not found. Run 'specsafe spec ${id}' to create it first.`);
24
- }
25
- if (moveError.message.includes('Must be in TEST stage')) {
26
- throw new Error(`Spec '${id}' is not in TEST stage. Run 'specsafe test ${id}' first.`);
27
- }
28
- if (moveError.message.includes('No test files generated')) {
29
- throw new Error(`Spec '${id}' has no test files. Run 'specsafe test ${id}' to generate tests first.`);
30
- }
31
- throw moveError;
32
- }
33
- // Persist updated state
34
- await tracker.addSpec(workflow.getSpec(id));
35
- spinner.succeed(chalk.green(`Moved ${id} to CODE stage`));
36
- console.log(chalk.blue('Implement the functionality to pass all tests'));
37
- console.log(chalk.blue('Then: Run specsafe qa <id> when tests pass'));
38
- }
39
- catch (error) {
40
- spinner.fail(chalk.red(error.message));
41
- if (error.message.includes('not in TEST stage') || error.message.includes('Run \'specsafe test\'')) {
42
- console.log(chalk.gray(`💡 Tip: Run 'specsafe test ${id}' to generate tests first.`));
43
- }
44
- else if (error.message.includes('not found')) {
45
- console.log(chalk.gray(`💡 Tip: Run 'specsafe new <name>' to create a spec first.`));
46
- }
47
- else if (error.message.includes('No test files')) {
48
- console.log(chalk.gray(`💡 Tip: Run 'specsafe test ${id}' to generate tests first.`));
49
- }
50
- process.exit(1);
51
- }
52
- });
53
- //# sourceMappingURL=code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/commands/code.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const testCommand: Command;
3
- //# sourceMappingURL=test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,WAAW,SAyIpB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"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"}