@vibe-validate/extractors 0.12.1 → 0.13.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.
- package/README.md +68 -9
- package/dist/ava-extractor.d.ts +24 -0
- package/dist/ava-extractor.d.ts.map +1 -0
- package/dist/ava-extractor.js +367 -0
- package/dist/ava-extractor.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/jasmine-extractor.d.ts +23 -0
- package/dist/jasmine-extractor.d.ts.map +1 -0
- package/dist/jasmine-extractor.js +254 -0
- package/dist/jasmine-extractor.js.map +1 -0
- package/dist/jest-extractor.d.ts +29 -0
- package/dist/jest-extractor.d.ts.map +1 -0
- package/dist/jest-extractor.js +115 -0
- package/dist/jest-extractor.js.map +1 -0
- package/dist/junit-extractor.d.ts +24 -0
- package/dist/junit-extractor.d.ts.map +1 -0
- package/dist/junit-extractor.js +264 -0
- package/dist/junit-extractor.js.map +1 -0
- package/dist/mocha-extractor.d.ts +23 -0
- package/dist/mocha-extractor.d.ts.map +1 -0
- package/dist/mocha-extractor.js +263 -0
- package/dist/mocha-extractor.js.map +1 -0
- package/dist/playwright-extractor.d.ts +38 -0
- package/dist/playwright-extractor.d.ts.map +1 -0
- package/dist/playwright-extractor.js +230 -0
- package/dist/playwright-extractor.js.map +1 -0
- package/dist/smart-extractor.d.ts +9 -0
- package/dist/smart-extractor.d.ts.map +1 -1
- package/dist/smart-extractor.js +25 -0
- package/dist/smart-extractor.js.map +1 -1
- package/dist/tap-extractor.d.ts +24 -0
- package/dist/tap-extractor.d.ts.map +1 -0
- package/dist/tap-extractor.js +227 -0
- package/dist/tap-extractor.js.map +1 -0
- package/dist/types.d.ts +21 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vitest-extractor.d.ts +9 -1
- package/dist/vitest-extractor.d.ts.map +1 -1
- package/dist/vitest-extractor.js +112 -16
- package/dist/vitest-extractor.js.map +1 -1
- package/package.json +3 -5
|
@@ -6,6 +6,13 @@
|
|
|
6
6
|
* @package @vibe-validate/extractors
|
|
7
7
|
*/
|
|
8
8
|
import type { ErrorExtractorResult } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Options for error extraction
|
|
11
|
+
*/
|
|
12
|
+
export interface ExtractorOptions {
|
|
13
|
+
/** Include quality metadata and suggestions for improving extraction */
|
|
14
|
+
developerFeedback?: boolean;
|
|
15
|
+
}
|
|
9
16
|
/**
|
|
10
17
|
* Format Vitest test failures
|
|
11
18
|
*
|
|
@@ -17,6 +24,7 @@ import type { ErrorExtractorResult } from './types.js';
|
|
|
17
24
|
* - Expected vs actual values (when available)
|
|
18
25
|
*
|
|
19
26
|
* @param output - Raw Vitest/Jest command output
|
|
27
|
+
* @param options - Extraction options (e.g., developerFeedback for quality metadata)
|
|
20
28
|
* @returns Structured error information with test-specific guidance
|
|
21
29
|
*
|
|
22
30
|
* @example
|
|
@@ -26,5 +34,5 @@ import type { ErrorExtractorResult } from './types.js';
|
|
|
26
34
|
* console.log(result.guidance); // "Fix each failing test individually..."
|
|
27
35
|
* ```
|
|
28
36
|
*/
|
|
29
|
-
export declare function extractVitestErrors(output: string): ErrorExtractorResult;
|
|
37
|
+
export declare function extractVitestErrors(output: string, options?: ExtractorOptions): ErrorExtractorResult;
|
|
30
38
|
//# sourceMappingURL=vitest-extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-extractor.d.ts","sourceRoot":"","sources":["../src/vitest-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"vitest-extractor.d.ts","sourceRoot":"","sources":["../src/vitest-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAsB,MAAM,YAAY,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA8CD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GACzB,oBAAoB,CAkPtB"}
|
package/dist/vitest-extractor.js
CHANGED
|
@@ -47,6 +47,7 @@ function extractRuntimeError(output) {
|
|
|
47
47
|
* - Expected vs actual values (when available)
|
|
48
48
|
*
|
|
49
49
|
* @param output - Raw Vitest/Jest command output
|
|
50
|
+
* @param options - Extraction options (e.g., developerFeedback for quality metadata)
|
|
50
51
|
* @returns Structured error information with test-specific guidance
|
|
51
52
|
*
|
|
52
53
|
* @example
|
|
@@ -56,10 +57,12 @@ function extractRuntimeError(output) {
|
|
|
56
57
|
* console.log(result.guidance); // "Fix each failing test individually..."
|
|
57
58
|
* ```
|
|
58
59
|
*/
|
|
59
|
-
export function extractVitestErrors(output) {
|
|
60
|
+
export function extractVitestErrors(output, options) {
|
|
60
61
|
const lines = output.split('\n');
|
|
61
62
|
const failures = [];
|
|
62
63
|
let currentFailure = null;
|
|
64
|
+
let currentFile = ''; // Track file from ❯ lines for Format 2
|
|
65
|
+
let hasFormat2 = false; // Track if we found Format 2 file headers
|
|
63
66
|
// First, check for runtime errors (Unhandled Rejection, ENOENT, etc.)
|
|
64
67
|
const runtimeError = extractRuntimeError(output);
|
|
65
68
|
if (runtimeError) {
|
|
@@ -67,34 +70,72 @@ export function extractVitestErrors(output) {
|
|
|
67
70
|
}
|
|
68
71
|
for (let i = 0; i < lines.length; i++) {
|
|
69
72
|
const line = lines[i];
|
|
70
|
-
// Match:
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
const
|
|
74
|
-
if (
|
|
73
|
+
// Match Format 2: ❯ file.test.ts (N tests | M failed) 123ms
|
|
74
|
+
// This line declares the file for subsequent × failures
|
|
75
|
+
// NOTE: Must have parentheses to distinguish from location lines (❯ file.test.ts:57:30)
|
|
76
|
+
const fileHeaderMatch = line.match(/❯\s+([^\s]+\.test\.ts)\s+\(/);
|
|
77
|
+
if (fileHeaderMatch) {
|
|
78
|
+
currentFile = fileHeaderMatch[1];
|
|
79
|
+
hasFormat2 = true; // We found Format 2, so skip Format 1 to avoid duplicates
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
// Match Format 1: FAIL file.test.ts > test hierarchy
|
|
83
|
+
// OR: ❌ file.test.ts > test hierarchy
|
|
84
|
+
// OR: × file.test.ts > test hierarchy
|
|
85
|
+
// BUT: Skip if we've seen Format 2 headers (to avoid processing duplicate FAIL lines)
|
|
86
|
+
const format1Match = !hasFormat2 && line.match(/(?:FAIL|❌|×)\s+([^\s]+\.test\.ts)\s*>\s*(.+)/);
|
|
87
|
+
// Match Format 2: × test hierarchy (without file path)
|
|
88
|
+
// Use currentFile tracked from ❯ line above
|
|
89
|
+
const format2Match = !format1Match && line.match(/(?:×)\s+(.+?)(?:\s+\d+ms)?$/);
|
|
90
|
+
if (format1Match || (format2Match && currentFile)) {
|
|
75
91
|
if (currentFailure && currentFailure.file) {
|
|
76
92
|
failures.push(currentFailure);
|
|
77
93
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
94
|
+
if (format1Match) {
|
|
95
|
+
// Format 1: file path is in the × line itself
|
|
96
|
+
currentFailure = {
|
|
97
|
+
file: format1Match[1],
|
|
98
|
+
testHierarchy: format1Match[2].trim(),
|
|
99
|
+
errorMessage: '',
|
|
100
|
+
sourceLine: '',
|
|
101
|
+
location: ''
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
else if (format2Match && currentFile) {
|
|
105
|
+
// Format 2: use file from previous ❯ line
|
|
106
|
+
currentFailure = {
|
|
107
|
+
file: currentFile,
|
|
108
|
+
testHierarchy: format2Match[1].trim(),
|
|
109
|
+
errorMessage: '',
|
|
110
|
+
sourceLine: '',
|
|
111
|
+
location: ''
|
|
112
|
+
};
|
|
113
|
+
}
|
|
85
114
|
continue;
|
|
86
115
|
}
|
|
87
116
|
// Match: AssertionError: expected 3000 to be 9999 // Object.is equality
|
|
88
117
|
// OR: Error: Test timed out in 5000ms.
|
|
89
118
|
// OR: Snapshot `name` mismatched
|
|
119
|
+
// OR: → expected 1 to be 5 // Object.is equality (Format 2 error message)
|
|
90
120
|
if (currentFailure && !currentFailure.errorMessage) {
|
|
91
121
|
// Check for standard error patterns
|
|
92
122
|
const errorMatch = line.match(/((?:AssertionError|Error):\s*.+)/);
|
|
93
123
|
// Check for snapshot failures (doesn't have "Error:" prefix)
|
|
94
124
|
const snapshotMatch = line.match(/Snapshot\s+`([^`]+)`\s+mismatched/);
|
|
95
|
-
|
|
125
|
+
// Check for Format 2 error messages (→ prefix)
|
|
126
|
+
const format2ErrorMatch = line.match(/→\s+(.+)/);
|
|
127
|
+
if (errorMatch || snapshotMatch || format2ErrorMatch) {
|
|
96
128
|
// Keep the full error including the type (AssertionError: ...)
|
|
97
|
-
let errorMessage
|
|
129
|
+
let errorMessage;
|
|
130
|
+
if (errorMatch) {
|
|
131
|
+
errorMessage = errorMatch[1].trim();
|
|
132
|
+
}
|
|
133
|
+
else if (format2ErrorMatch) {
|
|
134
|
+
errorMessage = format2ErrorMatch[1].trim();
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
errorMessage = line.trim();
|
|
138
|
+
}
|
|
98
139
|
const isSnapshotError = !!snapshotMatch;
|
|
99
140
|
// Capture additional lines (e.g., timeout guidance, long error messages, snapshot diffs)
|
|
100
141
|
// For snapshot errors: continue through blank lines until stack trace (no line limit)
|
|
@@ -205,7 +246,7 @@ export function extractVitestErrors(output) {
|
|
|
205
246
|
else {
|
|
206
247
|
guidance += 'Fix each failing test individually. Run: npm test -- <test-file> to test each file.';
|
|
207
248
|
}
|
|
208
|
-
|
|
249
|
+
const result = {
|
|
209
250
|
errors: failures.slice(0, 10).map(f => {
|
|
210
251
|
// Parse line:column from end of location string (file paths may contain colons)
|
|
211
252
|
let line;
|
|
@@ -227,6 +268,61 @@ export function extractVitestErrors(output) {
|
|
|
227
268
|
guidance,
|
|
228
269
|
cleanOutput
|
|
229
270
|
};
|
|
271
|
+
// Add quality metadata if developer feedback enabled
|
|
272
|
+
if (options?.developerFeedback) {
|
|
273
|
+
result.metadata = calculateExtractionQuality(failures, options);
|
|
274
|
+
}
|
|
275
|
+
return result;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Calculate extraction quality metadata
|
|
279
|
+
*
|
|
280
|
+
* Reports what the extractor knows about its own extraction quality.
|
|
281
|
+
* Does NOT know expected count - test infrastructure does the comparison.
|
|
282
|
+
*
|
|
283
|
+
* @param failures - Extracted test failures
|
|
284
|
+
* @param options - Extractor options
|
|
285
|
+
* @returns Quality metadata
|
|
286
|
+
*/
|
|
287
|
+
function calculateExtractionQuality(failures, options) {
|
|
288
|
+
const withFile = failures.filter(f => f.file && f.file !== 'unknown').length;
|
|
289
|
+
const withLocation = failures.filter(f => f.location).length;
|
|
290
|
+
const withMessage = failures.filter(f => f.errorMessage).length;
|
|
291
|
+
// Completeness: percentage with file + location + message
|
|
292
|
+
const complete = failures.filter(f => f.file && f.file !== 'unknown' && f.location && f.errorMessage).length;
|
|
293
|
+
const completeness = failures.length > 0
|
|
294
|
+
? Math.round((complete / failures.length) * 100)
|
|
295
|
+
: 100;
|
|
296
|
+
// Confidence: based on how well patterns matched
|
|
297
|
+
// High confidence if most failures have complete data
|
|
298
|
+
const confidence = completeness >= 80 ? 90 : (completeness >= 50 ? 70 : 50);
|
|
299
|
+
// Issues encountered
|
|
300
|
+
const issues = [];
|
|
301
|
+
if (withFile < failures.length) {
|
|
302
|
+
issues.push(`${failures.length - withFile} failure(s) missing file path`);
|
|
303
|
+
}
|
|
304
|
+
if (withLocation < failures.length) {
|
|
305
|
+
issues.push(`${failures.length - withLocation} failure(s) missing line numbers`);
|
|
306
|
+
}
|
|
307
|
+
if (withMessage < failures.length) {
|
|
308
|
+
issues.push(`${failures.length - withMessage} failure(s) missing error messages`);
|
|
309
|
+
}
|
|
310
|
+
// Suggestions (only if developer feedback enabled)
|
|
311
|
+
const suggestions = [];
|
|
312
|
+
if (options.developerFeedback) {
|
|
313
|
+
if (completeness < 80) {
|
|
314
|
+
suggestions.push('Try running Vitest with --reporter=verbose for more complete output');
|
|
315
|
+
}
|
|
316
|
+
if (failures.length > 20) {
|
|
317
|
+
suggestions.push(`Extracted ${failures.length} failures - verify this matches actual test output`);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return {
|
|
321
|
+
confidence,
|
|
322
|
+
completeness,
|
|
323
|
+
issues,
|
|
324
|
+
...(suggestions.length > 0 && { suggestions })
|
|
325
|
+
};
|
|
230
326
|
}
|
|
231
327
|
/**
|
|
232
328
|
* Extract expected/actual values from test output
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-extractor.js","sourceRoot":"","sources":["../src/vitest-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"vitest-extractor.js","sourceRoot":"","sources":["../src/vitest-extractor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe-validate/extractors",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "LLM-optimized error extractors for validation output",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -30,16 +30,14 @@
|
|
|
30
30
|
"url": "git+https://github.com/jdutton/vibe-validate.git",
|
|
31
31
|
"directory": "packages/extractors"
|
|
32
32
|
},
|
|
33
|
-
"dependencies": {
|
|
34
|
-
"yaml": "^2.6.1"
|
|
35
|
-
},
|
|
36
33
|
"devDependencies": {
|
|
37
34
|
"@types/node": "^20.19.21",
|
|
38
35
|
"ajv": "^8.17.1",
|
|
39
36
|
"ajv-formats": "^3.0.1",
|
|
40
37
|
"tsx": "^4.20.6",
|
|
41
38
|
"typescript": "^5.7.3",
|
|
42
|
-
"vitest": "^3.2.4"
|
|
39
|
+
"vitest": "^3.2.4",
|
|
40
|
+
"yaml": "^2.8.1"
|
|
43
41
|
},
|
|
44
42
|
"engines": {
|
|
45
43
|
"node": ">=20.0.0"
|