@vibe-validate/extractors 0.14.3 → 0.15.0-rc.1

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 (53) hide show
  1. package/dist/ava-extractor.js +4 -4
  2. package/dist/ava-extractor.js.map +1 -1
  3. package/dist/eslint-extractor.d.ts.map +1 -1
  4. package/dist/eslint-extractor.js +7 -6
  5. package/dist/eslint-extractor.js.map +1 -1
  6. package/dist/generic-extractor.d.ts +16 -10
  7. package/dist/generic-extractor.d.ts.map +1 -1
  8. package/dist/generic-extractor.js +106 -29
  9. package/dist/generic-extractor.js.map +1 -1
  10. package/dist/index.d.ts +4 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +3 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/jasmine-extractor.js +6 -6
  15. package/dist/jasmine-extractor.js.map +1 -1
  16. package/dist/jest-extractor.js +8 -8
  17. package/dist/jest-extractor.js.map +1 -1
  18. package/dist/junit-extractor.js +6 -6
  19. package/dist/junit-extractor.js.map +1 -1
  20. package/dist/mocha-extractor.js +6 -6
  21. package/dist/mocha-extractor.js.map +1 -1
  22. package/dist/playwright-extractor.js +5 -5
  23. package/dist/playwright-extractor.js.map +1 -1
  24. package/dist/result-schema-export.d.ts +29 -0
  25. package/dist/result-schema-export.d.ts.map +1 -0
  26. package/dist/result-schema-export.js +37 -0
  27. package/dist/result-schema-export.js.map +1 -0
  28. package/dist/result-schema.d.ts +349 -0
  29. package/dist/result-schema.d.ts.map +1 -0
  30. package/dist/result-schema.js +139 -0
  31. package/dist/result-schema.js.map +1 -0
  32. package/dist/scripts/generate-result-schema.d.ts +10 -0
  33. package/dist/scripts/generate-result-schema.d.ts.map +1 -0
  34. package/dist/scripts/generate-result-schema.js +20 -0
  35. package/dist/scripts/generate-result-schema.js.map +1 -0
  36. package/dist/smart-extractor.d.ts +13 -16
  37. package/dist/smart-extractor.d.ts.map +1 -1
  38. package/dist/smart-extractor.js +78 -53
  39. package/dist/smart-extractor.js.map +1 -1
  40. package/dist/tap-extractor.js +4 -4
  41. package/dist/tap-extractor.js.map +1 -1
  42. package/dist/types.d.ts +18 -65
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/types.js +3 -0
  45. package/dist/types.js.map +1 -1
  46. package/dist/typescript-extractor.d.ts.map +1 -1
  47. package/dist/typescript-extractor.js +7 -6
  48. package/dist/typescript-extractor.js.map +1 -1
  49. package/dist/vitest-extractor.d.ts.map +1 -1
  50. package/dist/vitest-extractor.js +32 -5
  51. package/dist/vitest-extractor.js.map +1 -1
  52. package/error-extractor-result.schema.json +134 -0
  53. package/package.json +8 -3
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Zod Schema for Error Extractor Results
3
+ *
4
+ * This schema defines the structure of extractor output and enables
5
+ * runtime validation and JSON Schema generation for documentation.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import { z } from 'zod';
10
+ /**
11
+ * Maximum number of errors to include in errors array
12
+ *
13
+ * Limits token usage in LLM context window. Full count available in totalErrors field.
14
+ */
15
+ export const MAX_ERRORS_IN_ARRAY = 10;
16
+ /**
17
+ * Formatted Error Schema
18
+ *
19
+ * Structured error information extracted from validation output
20
+ */
21
+ export const FormattedErrorSchema = z.object({
22
+ /** File path where the error occurred */
23
+ file: z.string().optional(),
24
+ /** Line number (1-indexed) */
25
+ line: z.number().int().positive().optional(),
26
+ /** Column number (1-indexed) */
27
+ column: z.number().int().positive().optional(),
28
+ /** Error message */
29
+ message: z.string(),
30
+ /** Error code (e.g., TS2322, ESLint rule name) */
31
+ code: z.string().optional(),
32
+ /** Severity level */
33
+ severity: z.enum(['error', 'warning']).optional(),
34
+ /** Additional context (surrounding code, stack trace excerpt) */
35
+ context: z.string().optional(),
36
+ /** Guidance for fixing the error */
37
+ guidance: z.string().optional(),
38
+ });
39
+ /**
40
+ * Detection Metadata Schema
41
+ *
42
+ * Information about which extractor was selected and why
43
+ */
44
+ export const DetectionMetadataSchema = z.object({
45
+ /** Which extractor was used */
46
+ extractor: z.string(),
47
+ /** Confidence in detection (0-100) */
48
+ confidence: z.number().min(0).max(100),
49
+ /** Patterns that matched */
50
+ patterns: z.array(z.string()),
51
+ /** Why this extractor was chosen */
52
+ reason: z.string(),
53
+ });
54
+ /**
55
+ * Extraction Metadata Schema
56
+ *
57
+ * Quality information about the extraction process
58
+ */
59
+ export const ExtractionMetadataSchema = z.object({
60
+ /** Detection information (only included when developerFeedback: true) */
61
+ detection: DetectionMetadataSchema.optional(),
62
+ /** Extraction confidence (0-100) */
63
+ confidence: z.number().min(0).max(100),
64
+ /** Percentage of extracted errors with complete data (0-100) */
65
+ completeness: z.number().min(0).max(100),
66
+ /** Issues encountered during extraction */
67
+ issues: z.array(z.string()),
68
+ /** Suggestions for improvement (only included when developerFeedback: true) */
69
+ suggestions: z.array(z.string()).optional(),
70
+ });
71
+ /**
72
+ * Error Extractor Result Schema
73
+ *
74
+ * Complete result structure from error extraction operation
75
+ *
76
+ * Field ordering optimized for LLM consumption:
77
+ * - Summary and count first (high-level overview)
78
+ * - Structured errors (detailed breakdown)
79
+ * - Guidance and errorSummary (actionable context)
80
+ * - Metadata last (quality metrics)
81
+ */
82
+ export const ErrorExtractorResultSchema = z.object({
83
+ /** Human-readable summary (e.g., "2 test failures", "5 type errors") */
84
+ summary: z.string(),
85
+ /** Total error count (may exceed errors.length if truncated to MAX_ERRORS_IN_ARRAY) */
86
+ totalErrors: z.number().int().nonnegative(),
87
+ /** Parsed and structured errors (limited to MAX_ERRORS_IN_ARRAY for token efficiency) */
88
+ errors: z.array(FormattedErrorSchema),
89
+ /** Step-specific actionable guidance for fixing errors */
90
+ guidance: z.string().optional(),
91
+ /**
92
+ * Formatted error summary - LLM-optimized text view of errors
93
+ *
94
+ * When errors exist: Concise file:line:column - message format
95
+ * When no errors: Keyword extraction from output (FAILED, Error, etc.)
96
+ * ANSI codes stripped, limited to first 10-20 relevant lines
97
+ * Provides 40x context window savings vs raw output
98
+ *
99
+ * Optional - only included when it provides value beyond structured errors array
100
+ */
101
+ errorSummary: z.string().optional(),
102
+ /** Extraction quality metadata (only included when developerFeedback: true) */
103
+ metadata: ExtractionMetadataSchema.optional(),
104
+ });
105
+ /**
106
+ * Safe validation function for ErrorExtractorResult
107
+ *
108
+ * NOTE: This duplicates the pattern from @vibe-validate/core's createSafeValidator.
109
+ * We can't import from core here due to circular dependency (core → extractors).
110
+ * This is an acceptable trade-off for a foundational package.
111
+ *
112
+ * @param data - Data to validate
113
+ * @returns Validation result with success/error information
114
+ */
115
+ export function safeValidateExtractorResult(data) {
116
+ const result = ErrorExtractorResultSchema.safeParse(data);
117
+ if (result.success) {
118
+ return { success: true, data: result.data };
119
+ }
120
+ // Extract error messages with full path
121
+ const errors = result.error.errors.map(err => {
122
+ const path = err.path.join('.');
123
+ return path ? `${path}: ${err.message}` : err.message;
124
+ });
125
+ return { success: false, errors };
126
+ }
127
+ /**
128
+ * Strict validation function for ErrorExtractorResult
129
+ *
130
+ * Validates and throws on error.
131
+ *
132
+ * @param data - Data to validate
133
+ * @returns Validated result
134
+ * @throws {Error} If validation fails
135
+ */
136
+ export function validateExtractorResult(data) {
137
+ return ErrorExtractorResultSchema.parse(data);
138
+ }
139
+ //# sourceMappingURL=result-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-schema.js","sourceRoot":"","sources":["../src/result-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Generate JSON Schema File for Error Extractor Results
4
+ *
5
+ * Creates error-extractor-result.schema.json in the package root for use in
6
+ * validating documentation examples and agent integration code.
7
+ * This script runs during the build process.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=generate-result-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-result-schema.d.ts","sourceRoot":"","sources":["../../src/scripts/generate-result-schema.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Generate JSON Schema File for Error Extractor Results
4
+ *
5
+ * Creates error-extractor-result.schema.json in the package root for use in
6
+ * validating documentation examples and agent integration code.
7
+ * This script runs during the build process.
8
+ */
9
+ import { writeFileSync } from 'node:fs';
10
+ import { fileURLToPath } from 'node:url';
11
+ import { dirname, join } from 'node:path';
12
+ import { extractorResultJsonSchema } from '../result-schema-export.js';
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = dirname(__filename);
15
+ const packageRoot = join(__dirname, '..', '..');
16
+ const schemaPath = join(packageRoot, 'error-extractor-result.schema.json');
17
+ // Generate and write schema file
18
+ writeFileSync(schemaPath, JSON.stringify(extractorResultJsonSchema, null, 2), 'utf-8');
19
+ console.log('✓ Generated error-extractor-result.schema.json');
20
+ //# sourceMappingURL=generate-result-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-result-schema.js","sourceRoot":"","sources":["../../src/scripts/generate-result-schema.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC;AAE3E,iCAAiC;AACjC,aAAa,CACX,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,EAClD,OAAO,CACR,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC"}
@@ -5,11 +5,11 @@
5
5
  *
6
6
  * @package @vibe-validate/extractors
7
7
  */
8
- import type { ErrorExtractorResult } from './types.js';
8
+ import type { ErrorExtractorResult, ExtractorInput } from './types.js';
9
9
  /**
10
10
  * Auto-detect tool type from output patterns and extract errors
11
11
  *
12
- * Detection is 100% pattern-based - context parameter is NOT used for routing decisions.
12
+ * Detection is 100% pattern-based from output analysis only.
13
13
  * This ensures robust detection regardless of how users name their validation steps.
14
14
  *
15
15
  * Auto-detection rules (checked in order):
@@ -23,24 +23,21 @@ import type { ErrorExtractorResult } from './types.js';
23
23
  * 8. **Vitest**: `×`/`❯`/`❌` symbols + `Test Files` summary
24
24
  * 9. **Generic**: Fallback for all other formats
25
25
  *
26
- * @param context - Context string (e.g., step name) preserved for generic extractor error messages only
27
- * @param output - Raw command output (may contain ANSI color codes)
26
+ * @param input - Raw command output (string) or separated streams (ExtractorInput)
28
27
  * @returns Structured error information from appropriate extractor
29
28
  *
30
29
  * @example
31
30
  * ```typescript
32
- * // TypeScript detection (from "error TS2322:" pattern, not context)
33
- * const result1 = autoDetectAndExtract('Build', tscOutput);
34
- * // Uses extractTypeScriptErrors
35
- *
36
- * // Jest detection (from "FAIL" markers, not context)
37
- * const result2 = autoDetectAndExtract('Validation', jestOutput);
38
- * // Uses extractJestErrors
39
- *
40
- * // Vitest detection (from "✓" symbols, not context)
41
- * const result3 = autoDetectAndExtract('Check', vitestOutput);
42
- * // Uses extractVitestErrors
31
+ * // Legacy usage (string)
32
+ * const result1 = autoDetectAndExtract(tscOutput);
33
+ *
34
+ * // New usage (separated streams)
35
+ * const result2 = autoDetectAndExtract({
36
+ * stdout: stdoutString,
37
+ * stderr: stderrString,
38
+ * combined: combinedString
39
+ * });
43
40
  * ```
44
41
  */
45
- export declare function autoDetectAndExtract(context: string, output: string): ErrorExtractorResult;
42
+ export declare function autoDetectAndExtract(input: string | ExtractorInput): ErrorExtractorResult;
46
43
  //# sourceMappingURL=smart-extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"smart-extractor.d.ts","sourceRoot":"","sources":["../src/smart-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAYvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,oBAAoB,CA2I1F"}
1
+ {"version":3,"file":"smart-extractor.d.ts","sourceRoot":"","sources":["../src/smart-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAYvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,oBAAoB,CAmKzF"}
@@ -18,7 +18,7 @@ import { stripAnsiCodes } from './utils.js';
18
18
  /**
19
19
  * Auto-detect tool type from output patterns and extract errors
20
20
  *
21
- * Detection is 100% pattern-based - context parameter is NOT used for routing decisions.
21
+ * Detection is 100% pattern-based from output analysis only.
22
22
  * This ensures robust detection regardless of how users name their validation steps.
23
23
  *
24
24
  * Auto-detection rules (checked in order):
@@ -32,27 +32,28 @@ import { stripAnsiCodes } from './utils.js';
32
32
  * 8. **Vitest**: `×`/`❯`/`❌` symbols + `Test Files` summary
33
33
  * 9. **Generic**: Fallback for all other formats
34
34
  *
35
- * @param context - Context string (e.g., step name) preserved for generic extractor error messages only
36
- * @param output - Raw command output (may contain ANSI color codes)
35
+ * @param input - Raw command output (string) or separated streams (ExtractorInput)
37
36
  * @returns Structured error information from appropriate extractor
38
37
  *
39
38
  * @example
40
39
  * ```typescript
41
- * // TypeScript detection (from "error TS2322:" pattern, not context)
42
- * const result1 = autoDetectAndExtract('Build', tscOutput);
43
- * // Uses extractTypeScriptErrors
40
+ * // Legacy usage (string)
41
+ * const result1 = autoDetectAndExtract(tscOutput);
44
42
  *
45
- * // Jest detection (from "FAIL" markers, not context)
46
- * const result2 = autoDetectAndExtract('Validation', jestOutput);
47
- * // Uses extractJestErrors
48
- *
49
- * // Vitest detection (from "✓" symbols, not context)
50
- * const result3 = autoDetectAndExtract('Check', vitestOutput);
51
- * // Uses extractVitestErrors
43
+ * // New usage (separated streams)
44
+ * const result2 = autoDetectAndExtract({
45
+ * stdout: stdoutString,
46
+ * stderr: stderrString,
47
+ * combined: combinedString
48
+ * });
52
49
  * ```
53
50
  */
54
51
  // eslint-disable-next-line sonarjs/cognitive-complexity -- Complexity 26 acceptable for smart extractor (sequentially detects 9 different test framework output formats with pattern matching)
55
- export function autoDetectAndExtract(context, output) {
52
+ export function autoDetectAndExtract(input) {
53
+ // Normalize input to string for backwards compatibility
54
+ // Most extractors currently use combined output, but this structure
55
+ // allows future extractors to be stream-specific
56
+ const output = typeof input === 'string' ? input : input.combined;
56
57
  // CRITICAL: Strip ANSI codes centrally before routing to extractors
57
58
  //
58
59
  // Design Decision: Central stripping (DRY & fail-safe)
@@ -66,13 +67,13 @@ export function autoDetectAndExtract(context, output) {
66
67
  // - Impossible to forget (enforced for all extractors)
67
68
  // - Consistent behavior across all extraction paths
68
69
  // - Easier to maintain and test
69
- const cleanOutput = stripAnsiCodes(output);
70
+ const errorSummary = stripAnsiCodes(output);
70
71
  // TypeScript detection: Check for TypeScript compiler error patterns
71
72
  // - "error TS####:" (error code like TS2322, TS2345)
72
73
  // - Format: file.ts(line,col): error TS####:
73
- const hasTypeScriptMarkers = /error TS\d+:/.exec(cleanOutput);
74
+ const hasTypeScriptMarkers = /error TS\d+:/.exec(errorSummary);
74
75
  if (hasTypeScriptMarkers) {
75
- const result = extractTypeScriptErrors(cleanOutput);
76
+ const result = extractTypeScriptErrors(errorSummary);
76
77
  return addDetectionMetadata(result, 'typescript', 95, ['error TS#### pattern'], 'TypeScript compiler error format detected');
77
78
  }
78
79
  // ESLint detection: Check for ESLint-specific patterns
@@ -80,28 +81,52 @@ export function autoDetectAndExtract(context, output) {
80
81
  // - File paths with line:col followed by error/warning (with optional colon)
81
82
  const hasESLintMarkers =
82
83
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Boolean OR for pattern matching, not nullish check
83
- /✖ \d+ problems?/.exec(cleanOutput) ||
84
+ /✖ \d+ problems?/.exec(errorSummary) ||
84
85
  // eslint-disable-next-line sonarjs/slow-regex -- Safe: only detects ESLint output format (controlled linter output), limited input size
85
- /\d+:\d+:?\s+(error|warning)\s+/.exec(cleanOutput);
86
+ /\d+:\d+:?\s+(error|warning)\s+/.exec(errorSummary);
86
87
  if (hasESLintMarkers) {
87
- const result = extractESLintErrors(cleanOutput);
88
+ const result = extractESLintErrors(errorSummary);
88
89
  const patterns = [];
89
- if (/✖ \d+ problems?/.exec(cleanOutput))
90
+ if (/✖ \d+ problems?/.exec(errorSummary))
90
91
  patterns.push('✖ X problems summary');
91
92
  // eslint-disable-next-line sonarjs/slow-regex -- Safe: only detects ESLint output format (controlled linter output), limited input size
92
- if (/\d+:\d+:?\s+(error|warning)\s+/.exec(cleanOutput))
93
+ if (/\d+:\d+:?\s+(error|warning)\s+/.exec(errorSummary))
93
94
  patterns.push('line:col error/warning format');
94
95
  return addDetectionMetadata(result, 'eslint', 90, patterns, 'ESLint error format detected');
95
96
  }
97
+ // Vitest priority detection: Check for "RUN v" pattern (100% unique to vitest)
98
+ // CRITICAL: Must check BEFORE Jest to prevent false positives
99
+ // Jest's loose ● detection can match test names that mention Jest patterns
100
+ // (e.g., "should detect Jest from ● bullet marker")
101
+ // The "RUN v" pattern at the start of vitest output is unmistakable
102
+ // Note: Allow optional leading whitespace (ANSI stripping can leave spaces)
103
+ // eslint-disable-next-line sonarjs/slow-regex -- False positive: regex is anchored and has limited repetition
104
+ if (/^\s*RUN\s+v\d+\.\d+\.\d+/m.test(errorSummary)) {
105
+ const result = extractVitestErrors(errorSummary);
106
+ const patterns = ['RUN v#### version header'];
107
+ if (errorSummary.includes('×'))
108
+ patterns.push('× symbol (U+00D7)');
109
+ if (errorSummary.includes('❌'))
110
+ patterns.push('❌ cross mark');
111
+ if (errorSummary.includes(' ❯ '))
112
+ patterns.push('❯ arrow marker');
113
+ if (errorSummary.includes('Test Files'))
114
+ patterns.push('Test Files summary');
115
+ if (errorSummary.includes('.test.ts'))
116
+ patterns.push('.test.ts files');
117
+ if (/FAIL\s+\d+\s+test\s+(file|case)/i.exec(errorSummary))
118
+ patterns.push('FAIL N test files/cases pattern');
119
+ return addDetectionMetadata(result, 'vitest', 100, patterns, 'Vitest test output format detected (RUN v#### header)');
120
+ }
96
121
  // Auto-detect JUnit XML format
97
122
  // Must have both <?xml at start of line AND <testsuite tag (not just mentioned in text)
98
- if (/^<\?xml\s+/m.exec(cleanOutput) && cleanOutput.includes('<testsuite')) {
99
- const result = extractJUnitErrors(cleanOutput);
123
+ if (/^<\?xml\s+/m.exec(errorSummary) && errorSummary.includes('<testsuite')) {
124
+ const result = extractJUnitErrors(errorSummary);
100
125
  return addDetectionMetadata(result, 'junit', 100, ['<?xml header', '<testsuite> tag'], 'JUnit XML format detected');
101
126
  }
102
127
  // Auto-detect Jasmine format (distinctive "Failures:" header)
103
- if (cleanOutput.includes('Failures:') && /^\d+\)\s+/m.exec(cleanOutput)) {
104
- const result = extractJasmineErrors(cleanOutput);
128
+ if (errorSummary.includes('Failures:') && /^\d+\)\s+/m.exec(errorSummary)) {
129
+ const result = extractJasmineErrors(errorSummary);
105
130
  return addDetectionMetadata(result, 'jasmine', 85, ['Failures: header', 'numbered test list'], 'Jasmine test output format detected');
106
131
  }
107
132
  // Jest detection: Check output for Jest-specific patterns
@@ -110,29 +135,29 @@ export function autoDetectAndExtract(context, output) {
110
135
  // - "Test Suites:" summary line (Jest-specific, Vitest uses "Test Files")
111
136
  // Jest patterns are highly distinctive (confidence 90) vs Mocha's generic patterns (confidence 80)
112
137
  // Mocha's "passing"/"failing" patterns can appear in Jest test names, causing misdetection
113
- const hasJestMarkers = cleanOutput.includes('●') ||
114
- cleanOutput.includes('Test Suites:');
138
+ const hasJestMarkers = errorSummary.includes('●') ||
139
+ errorSummary.includes('Test Suites:');
115
140
  if (hasJestMarkers) {
116
- const result = extractJestErrors(cleanOutput);
141
+ const result = extractJestErrors(errorSummary);
117
142
  const patterns = [];
118
- if (cleanOutput.includes('●'))
143
+ if (errorSummary.includes('●'))
119
144
  patterns.push('● bullet marker');
120
- if (cleanOutput.includes('Test Suites:'))
145
+ if (errorSummary.includes('Test Suites:'))
121
146
  patterns.push('Test Suites: summary');
122
147
  // eslint-disable-next-line sonarjs/slow-regex -- Safe: only detects Jest test framework output format (controlled test framework output), not user input
123
- if (/^\s*FAIL\s+/m.exec(cleanOutput))
148
+ if (/^\s*FAIL\s+/m.exec(errorSummary))
124
149
  patterns.push('FAIL marker');
125
150
  // eslint-disable-next-line sonarjs/slow-regex -- Safe: only detects Jest test framework output format (controlled test framework output), not user input
126
- if (/^\s*PASS\s+/m.exec(cleanOutput))
151
+ if (/^\s*PASS\s+/m.exec(errorSummary))
127
152
  patterns.push('PASS marker');
128
153
  return addDetectionMetadata(result, 'jest', 90, patterns, 'Jest test output format detected');
129
154
  }
130
155
  // Auto-detect Mocha format (distinctive "X passing"/"X failing" pattern)
131
156
  // NOTE: Checked AFTER Jest because "passing"/"failing" can appear in Jest test names
132
- if ((cleanOutput.includes(' passing') || cleanOutput.includes(' failing')) &&
157
+ if ((errorSummary.includes(' passing') || errorSummary.includes(' failing')) &&
133
158
  // eslint-disable-next-line sonarjs/slow-regex -- Safe: only detects Mocha test framework output format (controlled test framework output), not user input
134
- /\s+\d+\)\s+/.exec(cleanOutput)) {
135
- const result = extractMochaErrors(cleanOutput);
159
+ /\s+\d+\)\s+/.exec(errorSummary)) {
160
+ const result = extractMochaErrors(errorSummary);
136
161
  return addDetectionMetadata(result, 'mocha', 80, ['passing/failing summary', 'numbered failures'], 'Mocha test output format detected');
137
162
  }
138
163
  // Playwright detection: Check for Playwright-specific patterns
@@ -141,21 +166,21 @@ export function autoDetectAndExtract(context, output) {
141
166
  // - ✘ symbol followed by .spec.ts file path
142
167
  // IMPORTANT: Require .spec.ts with › separator OR ✘ + .spec.ts (not just mentioned in text)
143
168
  // Must check BEFORE Vitest to avoid misdetection (.spec.ts vs .test.ts)
144
- const hasPlaywrightMarkers = (cleanOutput.includes('.spec.ts') &&
169
+ const hasPlaywrightMarkers = (errorSummary.includes('.spec.ts') &&
145
170
  // eslint-disable-next-line sonarjs/slow-regex, @typescript-eslint/prefer-nullish-coalescing -- Safe: only detects Playwright test framework output format (controlled test framework output), not user input. Boolean OR for pattern matching.
146
- (/\d+\)\s+.*\.spec\.ts:\d+:\d+\s+›/.exec(cleanOutput) ||
171
+ (/\d+\)\s+.*\.spec\.ts:\d+:\d+\s+›/.exec(errorSummary) ||
147
172
  // eslint-disable-next-line sonarjs/slow-regex -- Safe: only detects Playwright test framework output format (controlled test framework output), not user input
148
- /✘.*\.spec\.ts/.exec(cleanOutput)));
173
+ /✘.*\.spec\.ts/.exec(errorSummary)));
149
174
  if (hasPlaywrightMarkers) {
150
- const result = extractPlaywrightErrors(cleanOutput);
175
+ const result = extractPlaywrightErrors(errorSummary);
151
176
  const patterns = [];
152
- if (cleanOutput.includes('.spec.ts'))
177
+ if (errorSummary.includes('.spec.ts'))
153
178
  patterns.push('.spec.ts files');
154
179
  // eslint-disable-next-line sonarjs/slow-regex -- Safe: only detects Playwright test framework output format (controlled test framework output), not user input
155
- if (/\d+\)\s+.*\.spec\.ts:\d+:\d+\s+›/.exec(cleanOutput))
180
+ if (/\d+\)\s+.*\.spec\.ts:\d+:\d+\s+›/.exec(errorSummary))
156
181
  patterns.push('numbered failures with › separator');
157
182
  // eslint-disable-next-line sonarjs/slow-regex -- Safe: only detects Playwright test framework output format (controlled test framework output), not user input
158
- if (/✘.*\.spec\.ts/.exec(cleanOutput))
183
+ if (/✘.*\.spec\.ts/.exec(errorSummary))
159
184
  patterns.push('✘ failure with .spec.ts file');
160
185
  return addDetectionMetadata(result, 'playwright', 95, patterns, 'Playwright test output format detected');
161
186
  }
@@ -169,28 +194,28 @@ export function autoDetectAndExtract(context, output) {
169
194
  // NOTE: Both Vitest and Jest use ✓ (check mark), so we don't check for it alone
170
195
  // IMPORTANT: Require MULTIPLE patterns together to avoid false positives
171
196
  // (e.g., ❯ can appear in Jest stack traces from source code comments)
172
- const hasVitestMarkers = (cleanOutput.includes('×') || cleanOutput.includes(' ❯ ') || cleanOutput.includes('❌')) &&
197
+ const hasVitestMarkers = (errorSummary.includes('×') || errorSummary.includes(' ❯ ') || errorSummary.includes('❌')) &&
173
198
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Boolean OR for pattern matching, not nullish check
174
- (cleanOutput.includes('Test Files') || /FAIL\s+\d+\s+test\s+(file|case)/i.exec(cleanOutput) || cleanOutput.includes('.test.ts'));
199
+ (errorSummary.includes('Test Files') || /FAIL\s+\d+\s+test\s+(file|case)/i.exec(errorSummary) || errorSummary.includes('.test.ts'));
175
200
  if (hasVitestMarkers) {
176
- const result = extractVitestErrors(cleanOutput);
201
+ const result = extractVitestErrors(errorSummary);
177
202
  const patterns = [];
178
- if (cleanOutput.includes('×'))
203
+ if (errorSummary.includes('×'))
179
204
  patterns.push('× symbol (U+00D7)');
180
- if (cleanOutput.includes('❌'))
205
+ if (errorSummary.includes('❌'))
181
206
  patterns.push('❌ cross mark');
182
- if (cleanOutput.includes(' ❯ '))
207
+ if (errorSummary.includes(' ❯ '))
183
208
  patterns.push('❯ arrow marker');
184
- if (cleanOutput.includes('Test Files'))
209
+ if (errorSummary.includes('Test Files'))
185
210
  patterns.push('Test Files summary');
186
- if (cleanOutput.includes('.test.ts'))
211
+ if (errorSummary.includes('.test.ts'))
187
212
  patterns.push('.test.ts files');
188
- if (/FAIL\s+\d+\s+test\s+(file|case)/i.exec(cleanOutput))
213
+ if (/FAIL\s+\d+\s+test\s+(file|case)/i.exec(errorSummary))
189
214
  patterns.push('FAIL N test files/cases pattern');
190
215
  return addDetectionMetadata(result, 'vitest', 90, patterns, 'Vitest test output format detected');
191
216
  }
192
217
  // No specific pattern detected - use generic extractor
193
- const result = extractGenericErrors(cleanOutput, context);
218
+ const result = extractGenericErrors(errorSummary);
194
219
  return addDetectionMetadata(result, 'generic', 50, ['no specific patterns'], 'No specific tool detected, using generic extractor');
195
220
  }
196
221
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"smart-extractor.js","sourceRoot":"","sources":["../src/smart-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-extractor.js","sourceRoot":"","sources":["../src/smart-extractor.ts"],"names":[],"mappings":"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"}
@@ -27,8 +27,8 @@ export function extractTAPErrors(output) {
27
27
  return {
28
28
  summary: '0 test(s) failed',
29
29
  errors: [],
30
- totalCount: 0,
31
- cleanOutput: '',
30
+ totalErrors: 0,
31
+ errorSummary: '',
32
32
  guidance: '',
33
33
  metadata: {
34
34
  confidence: 100,
@@ -70,8 +70,8 @@ export function extractTAPErrors(output) {
70
70
  return {
71
71
  summary,
72
72
  errors,
73
- totalCount: failures.length,
74
- cleanOutput: formatCleanOutput(errors),
73
+ totalErrors: failures.length,
74
+ errorSummary: formatCleanOutput(errors),
75
75
  guidance,
76
76
  metadata
77
77
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tap-extractor.js","sourceRoot":"","sources":["../src/tap-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tap-extractor.js","sourceRoot":"","sources":["../src/tap-extractor.ts"],"names":[],"mappings":"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"}