@vibe-validate/core 0.14.3 → 0.15.0-rc.2
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 +24 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/output-capture-schema.d.ts +144 -0
- package/dist/output-capture-schema.d.ts.map +1 -0
- package/dist/output-capture-schema.js +52 -0
- package/dist/output-capture-schema.js.map +1 -0
- package/dist/process-utils.d.ts +84 -0
- package/dist/process-utils.d.ts.map +1 -1
- package/dist/process-utils.js +176 -1
- package/dist/process-utils.js.map +1 -1
- package/dist/result-schema.d.ts +1352 -88
- package/dist/result-schema.d.ts.map +1 -1
- package/dist/result-schema.js +114 -57
- package/dist/result-schema.js.map +1 -1
- package/dist/run-output-parser.d.ts +47 -0
- package/dist/run-output-parser.d.ts.map +1 -0
- package/dist/run-output-parser.js +109 -0
- package/dist/run-output-parser.js.map +1 -0
- package/dist/runner.d.ts +35 -2
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +105 -167
- package/dist/runner.js.map +1 -1
- package/dist/schema-utils.d.ts +57 -0
- package/dist/schema-utils.d.ts.map +1 -0
- package/dist/schema-utils.js +67 -0
- package/dist/schema-utils.js.map +1 -0
- package/dist/scripts/generate-result-schema.d.ts +1 -1
- package/dist/scripts/generate-result-schema.js +3 -3
- package/dist/scripts/generate-result-schema.js.map +1 -1
- package/dist/types.js +5 -1
- package/dist/types.js.map +1 -1
- package/package.json +6 -5
- package/validate-result.schema.json +245 -0
- package/dist/types.d.ts +0 -138
- package/dist/types.d.ts.map +0 -1
- package/validation-result.schema.json +0 -100
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-schema.d.ts","sourceRoot":"","sources":["../src/result-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"result-schema.d.ts","sourceRoot":"","sources":["../src/result-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/result-schema.js
CHANGED
|
@@ -5,92 +5,149 @@
|
|
|
5
5
|
* runtime validation and JSON Schema generation for documentation.
|
|
6
6
|
*/
|
|
7
7
|
import { z } from 'zod';
|
|
8
|
+
import { ErrorExtractorResultSchema } from '@vibe-validate/extractors';
|
|
9
|
+
import { createSafeValidator, createStrictValidator } from './schema-utils.js';
|
|
10
|
+
/**
|
|
11
|
+
* Base: Command Execution Schema
|
|
12
|
+
*
|
|
13
|
+
* Shared by all command executions (RunResult, StepResult).
|
|
14
|
+
* Every command execution has:
|
|
15
|
+
* - What ran (command)
|
|
16
|
+
* - How it ended (exitCode)
|
|
17
|
+
* - How long it took (durationSecs)
|
|
18
|
+
* - What errors occurred (extraction)
|
|
19
|
+
*/
|
|
20
|
+
export const CommandExecutionSchema = z.object({
|
|
21
|
+
/** Command that was executed */
|
|
22
|
+
command: z.string().min(1),
|
|
23
|
+
/** Exit code from the command */
|
|
24
|
+
exitCode: z.number().int(),
|
|
25
|
+
/** Execution duration in seconds */
|
|
26
|
+
durationSecs: z.coerce.number(),
|
|
27
|
+
/** Extracted error information (LLM-optimized, structured errors) */
|
|
28
|
+
extraction: ErrorExtractorResultSchema.optional(),
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Output Files Schema
|
|
32
|
+
*
|
|
33
|
+
* Shared by RunResult and StepResult.
|
|
34
|
+
* Provides paths to organized output files for debugging and inspection.
|
|
35
|
+
*/
|
|
36
|
+
export const OutputFilesSchema = z.object({
|
|
37
|
+
/** Path to stdout.log (omitted if empty) */
|
|
38
|
+
stdout: z.string().optional(),
|
|
39
|
+
/** Path to stderr.log (omitted if empty) */
|
|
40
|
+
stderr: z.string().optional(),
|
|
41
|
+
/** Path to combined.jsonl (chronological, ANSI-stripped) */
|
|
42
|
+
combined: z.string(),
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* Base: Operation Metadata Schema
|
|
46
|
+
*
|
|
47
|
+
* Shared by top-level operations (RunResult, ValidationResult).
|
|
48
|
+
* Every operation has:
|
|
49
|
+
* - When it ran (timestamp)
|
|
50
|
+
* - What code state (treeHash)
|
|
51
|
+
*/
|
|
52
|
+
export const OperationMetadataSchema = z.object({
|
|
53
|
+
/** When the operation was executed (ISO 8601) */
|
|
54
|
+
timestamp: z.string().datetime(),
|
|
55
|
+
/** Git tree hash identifying the code state */
|
|
56
|
+
treeHash: z.string().min(1),
|
|
57
|
+
});
|
|
8
58
|
/**
|
|
9
59
|
* Validation Step Result Schema
|
|
60
|
+
*
|
|
61
|
+
* Extends CommandExecutionSchema with step-specific fields.
|
|
62
|
+
*
|
|
63
|
+
* Field ordering is optimized for LLM consumption:
|
|
64
|
+
* - What step (name)
|
|
65
|
+
* - Did it pass? (passed)
|
|
66
|
+
* - Command execution details (command, exitCode, durationSecs, extraction)
|
|
67
|
+
* - Debug resources (outputFiles)
|
|
68
|
+
*
|
|
69
|
+
* v0.15.0 BREAKING CHANGES:
|
|
70
|
+
* - Now extends CommandExecutionSchema (adds command, exitCode)
|
|
71
|
+
* - Removed extractionQuality (use extraction.metadata instead)
|
|
72
|
+
* - Removed output field (use extraction instead)
|
|
73
|
+
* - Removed failedTests field (use extraction.errors instead)
|
|
74
|
+
* - Added isCachedResult to indicate when result came from cache
|
|
75
|
+
* - Added .strict() to reject unknown properties (prevents internal fields from leaking)
|
|
76
|
+
*
|
|
77
|
+
* v0.15.1 ENHANCEMENTS:
|
|
78
|
+
* - Added outputFiles for debugging (stdout.log, stderr.log, combined.jsonl)
|
|
10
79
|
*/
|
|
11
|
-
export const StepResultSchema =
|
|
80
|
+
export const StepResultSchema = CommandExecutionSchema.extend({
|
|
12
81
|
/** Step name */
|
|
13
82
|
name: z.string(),
|
|
14
|
-
/** Did the step pass? */
|
|
83
|
+
/** Did the step pass? (derived from exitCode === 0) */
|
|
15
84
|
passed: z.boolean(),
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
/** Output from
|
|
19
|
-
|
|
20
|
-
});
|
|
85
|
+
/** Was this result retrieved from cache? (v0.15.0+) */
|
|
86
|
+
isCachedResult: z.boolean().optional(),
|
|
87
|
+
/** Output files from step execution (v0.15.1+) */
|
|
88
|
+
outputFiles: OutputFilesSchema.optional(),
|
|
89
|
+
}).strict();
|
|
21
90
|
/**
|
|
22
91
|
* Validation Phase Result Schema
|
|
92
|
+
*
|
|
93
|
+
* Field ordering optimized for LLM consumption:
|
|
94
|
+
* - Phase identification (name)
|
|
95
|
+
* - Status (passed)
|
|
96
|
+
* - Duration (durationSecs)
|
|
97
|
+
* - Step details (steps with extraction for failed steps)
|
|
23
98
|
*/
|
|
24
99
|
export const PhaseResultSchema = z.object({
|
|
25
100
|
/** Phase name */
|
|
26
101
|
name: z.string(),
|
|
27
|
-
/** Phase execution duration in seconds */
|
|
28
|
-
durationSecs: z.coerce.number(),
|
|
29
102
|
/** Did the phase pass? */
|
|
30
103
|
passed: z.boolean(),
|
|
104
|
+
/** Phase execution duration in seconds */
|
|
105
|
+
durationSecs: z.coerce.number(),
|
|
31
106
|
/** Results from individual steps */
|
|
32
107
|
steps: z.array(StepResultSchema),
|
|
33
|
-
|
|
34
|
-
output: z.string().optional(),
|
|
35
|
-
});
|
|
108
|
+
}).strict();
|
|
36
109
|
/**
|
|
37
110
|
* Validation Result Schema
|
|
38
111
|
*
|
|
112
|
+
* Extends OperationMetadataSchema with validation-specific fields.
|
|
113
|
+
*
|
|
39
114
|
* This schema defines the validation result structure returned by the validation
|
|
40
115
|
* runner and stored in git notes (v0.12.0+) for history tracking.
|
|
116
|
+
*
|
|
117
|
+
* Field ordering optimized for LLM consumption:
|
|
118
|
+
* - Status first (passed, summary)
|
|
119
|
+
* - Operation metadata (timestamp, treeHash)
|
|
120
|
+
* - Cache indicator (isCachedResult) - v0.15.0+
|
|
121
|
+
* - Quick navigation (failedStep)
|
|
122
|
+
* - Detailed breakdown (phases with step-level extraction, each step has command)
|
|
123
|
+
* - Metadata last (fullLogFile)
|
|
124
|
+
*
|
|
125
|
+
* v0.15.0 BREAKING CHANGES:
|
|
126
|
+
* - Removed rerunCommand (use phases[].steps[].command instead)
|
|
127
|
+
* - Removed failedStepOutput (use phases[].steps[].extraction instead)
|
|
128
|
+
* - Added .strict() to reject unknown properties (prevents internal fields
|
|
129
|
+
* like _fromCache from leaking into public API)
|
|
41
130
|
*/
|
|
42
|
-
export const ValidationResultSchema =
|
|
131
|
+
export const ValidationResultSchema = OperationMetadataSchema.extend({
|
|
43
132
|
/** Did validation pass? */
|
|
44
133
|
passed: z.boolean(),
|
|
45
|
-
/**
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
phases: z.array(PhaseResultSchema).optional(),
|
|
51
|
-
/** Name of failed step (if any) */
|
|
134
|
+
/** One-line summary for LLMs (e.g., "Validation passed" or "TypeScript type check failed") */
|
|
135
|
+
summary: z.string().optional(),
|
|
136
|
+
/** Was this entire validation result retrieved from cache? (v0.15.0+) */
|
|
137
|
+
isCachedResult: z.boolean().optional(),
|
|
138
|
+
/** Name of failed step (if any) - for quick navigation */
|
|
52
139
|
failedStep: z.string().optional(),
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
/** Output from the failed step */
|
|
56
|
-
failedStepOutput: z.string().optional(),
|
|
57
|
-
/** Failed test names (if applicable) */
|
|
58
|
-
failedTests: z.array(z.string()).optional(),
|
|
140
|
+
/** Results from each phase (steps include extraction for failures) */
|
|
141
|
+
phases: z.array(PhaseResultSchema).optional(),
|
|
59
142
|
/** Path to full log file */
|
|
60
143
|
fullLogFile: z.string().optional(),
|
|
61
|
-
|
|
62
|
-
summary: z.string().optional(),
|
|
63
|
-
});
|
|
144
|
+
}).strict();
|
|
64
145
|
/**
|
|
65
|
-
* Safe validation function
|
|
66
|
-
*
|
|
67
|
-
* Validates a validation result object against the schema.
|
|
68
|
-
*
|
|
69
|
-
* @param data - Data to validate
|
|
70
|
-
* @returns Validation result with success/error information
|
|
146
|
+
* Safe validation function (uses shared utility)
|
|
71
147
|
*/
|
|
72
|
-
export
|
|
73
|
-
const result = ValidationResultSchema.safeParse(data);
|
|
74
|
-
if (result.success) {
|
|
75
|
-
return { success: true, data: result.data };
|
|
76
|
-
}
|
|
77
|
-
// Extract error messages
|
|
78
|
-
const errors = result.error.errors.map(err => {
|
|
79
|
-
const path = err.path.join('.');
|
|
80
|
-
return path ? `${path}: ${err.message}` : err.message;
|
|
81
|
-
});
|
|
82
|
-
return { success: false, errors };
|
|
83
|
-
}
|
|
148
|
+
export const safeValidateResult = createSafeValidator(ValidationResultSchema);
|
|
84
149
|
/**
|
|
85
|
-
* Strict validation function
|
|
86
|
-
*
|
|
87
|
-
* Validates and throws on error.
|
|
88
|
-
*
|
|
89
|
-
* @param data - Data to validate
|
|
90
|
-
* @returns Validated result
|
|
91
|
-
* @throws {Error} If validation fails
|
|
150
|
+
* Strict validation function (uses shared utility)
|
|
92
151
|
*/
|
|
93
|
-
export
|
|
94
|
-
return ValidationResultSchema.parse(data);
|
|
95
|
-
}
|
|
152
|
+
export const validateResult = createStrictValidator(ValidationResultSchema);
|
|
96
153
|
//# sourceMappingURL=result-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-schema.js","sourceRoot":"","sources":["../src/result-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"result-schema.js","sourceRoot":"","sources":["../src/result-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run Output Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses vibe-validate YAML output from command execution.
|
|
5
|
+
* Handles cases where vibe-validate commands wrap each other.
|
|
6
|
+
*
|
|
7
|
+
* Used by:
|
|
8
|
+
* - run command (packages/cli/src/commands/run.ts)
|
|
9
|
+
* - validate phase runner (packages/core/src/runner.ts)
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import type { ErrorExtractorResult } from '@vibe-validate/extractors';
|
|
14
|
+
import type { OutputFiles } from './result-schema.js';
|
|
15
|
+
/**
|
|
16
|
+
* Parsed vibe-validate output result
|
|
17
|
+
*/
|
|
18
|
+
export interface ParsedVibeValidateOutput {
|
|
19
|
+
/** Type of result detected */
|
|
20
|
+
type: 'run' | 'validate';
|
|
21
|
+
/** Extracted error information */
|
|
22
|
+
extraction: ErrorExtractorResult;
|
|
23
|
+
/** Whether this result came from cache */
|
|
24
|
+
isCachedResult?: boolean;
|
|
25
|
+
/** Path to full output log file (if available) */
|
|
26
|
+
fullOutputFile?: string;
|
|
27
|
+
/** Output files from command execution (v0.15.1+) */
|
|
28
|
+
outputFiles?: OutputFiles;
|
|
29
|
+
/** Original tree hash from nested result */
|
|
30
|
+
treeHash?: string;
|
|
31
|
+
/** Exit code from nested command */
|
|
32
|
+
exitCode?: number;
|
|
33
|
+
/** Timestamp from nested command */
|
|
34
|
+
timestamp?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parse vibe-validate YAML output
|
|
38
|
+
*
|
|
39
|
+
* Detects and parses YAML output from nested vibe-validate commands:
|
|
40
|
+
* - RunResult from `vibe-validate run`
|
|
41
|
+
* - ValidationResult from `vibe-validate validate`
|
|
42
|
+
*
|
|
43
|
+
* @param output - Command output (stdout + stderr)
|
|
44
|
+
* @returns Parsed result or null if no vibe-validate YAML detected
|
|
45
|
+
*/
|
|
46
|
+
export declare function parseVibeValidateOutput(output: string): ParsedVibeValidateOutput | null;
|
|
47
|
+
//# sourceMappingURL=run-output-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-output-parser.d.ts","sourceRoot":"","sources":["../src/run-output-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,8BAA8B;IAC9B,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC;IAEzB,kCAAkC;IAClC,UAAU,EAAE,oBAAoB,CAAC;IAEjC,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qDAAqD;IACrD,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI,CAiCvF"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run Output Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses vibe-validate YAML output from command execution.
|
|
5
|
+
* Handles cases where vibe-validate commands wrap each other.
|
|
6
|
+
*
|
|
7
|
+
* Used by:
|
|
8
|
+
* - run command (packages/cli/src/commands/run.ts)
|
|
9
|
+
* - validate phase runner (packages/core/src/runner.ts)
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import { parse as parseYaml } from 'yaml';
|
|
14
|
+
import { extractYamlContent } from '@vibe-validate/git';
|
|
15
|
+
/**
|
|
16
|
+
* Parse vibe-validate YAML output
|
|
17
|
+
*
|
|
18
|
+
* Detects and parses YAML output from nested vibe-validate commands:
|
|
19
|
+
* - RunResult from `vibe-validate run`
|
|
20
|
+
* - ValidationResult from `vibe-validate validate`
|
|
21
|
+
*
|
|
22
|
+
* @param output - Command output (stdout + stderr)
|
|
23
|
+
* @returns Parsed result or null if no vibe-validate YAML detected
|
|
24
|
+
*/
|
|
25
|
+
export function parseVibeValidateOutput(output) {
|
|
26
|
+
try {
|
|
27
|
+
// Extract YAML content (handles YAML frontmatter with --- separator)
|
|
28
|
+
const yamlContent = extractYamlContent(output);
|
|
29
|
+
if (!yamlContent) {
|
|
30
|
+
return null; // No YAML found
|
|
31
|
+
}
|
|
32
|
+
// Parse the YAML
|
|
33
|
+
const parsed = parseYaml(yamlContent);
|
|
34
|
+
// Detect RunResult (has command, exitCode, and optionally extraction)
|
|
35
|
+
// Note: extraction may be absent for passing commands (exitCode 0)
|
|
36
|
+
if (parsed.command && typeof parsed.command === 'string' &&
|
|
37
|
+
parsed.exitCode !== undefined) {
|
|
38
|
+
return parseRunResult(parsed);
|
|
39
|
+
}
|
|
40
|
+
// Detect ValidationResult (has passed, timestamp, phases)
|
|
41
|
+
if (parsed.passed !== undefined &&
|
|
42
|
+
parsed.timestamp &&
|
|
43
|
+
parsed.phases) {
|
|
44
|
+
return parseValidationResult(parsed);
|
|
45
|
+
}
|
|
46
|
+
// Unknown YAML format
|
|
47
|
+
return null;
|
|
48
|
+
// eslint-disable-next-line sonarjs/no-ignored-exceptions -- YAML parsing failure is expected for non-vibe-validate output
|
|
49
|
+
}
|
|
50
|
+
catch (_error) {
|
|
51
|
+
// YAML parsing failed or invalid structure
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Parse RunResult YAML
|
|
57
|
+
*/
|
|
58
|
+
function parseRunResult(parsed) {
|
|
59
|
+
const extraction = parsed.extraction;
|
|
60
|
+
// If no extraction present (passing command), create minimal extraction
|
|
61
|
+
const normalizedExtraction = extraction ?? {
|
|
62
|
+
summary: 'Success',
|
|
63
|
+
totalErrors: 0,
|
|
64
|
+
errors: [],
|
|
65
|
+
};
|
|
66
|
+
return {
|
|
67
|
+
type: 'run',
|
|
68
|
+
extraction: normalizedExtraction,
|
|
69
|
+
isCachedResult: parsed.isCachedResult,
|
|
70
|
+
fullOutputFile: parsed.fullOutputFile,
|
|
71
|
+
outputFiles: parsed.outputFiles,
|
|
72
|
+
treeHash: parsed.treeHash,
|
|
73
|
+
exitCode: parsed.exitCode,
|
|
74
|
+
timestamp: parsed.timestamp,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Parse ValidationResult YAML
|
|
79
|
+
*
|
|
80
|
+
* Extracts errors from failed steps in validation phases.
|
|
81
|
+
*/
|
|
82
|
+
function parseValidationResult(parsed) {
|
|
83
|
+
const phases = parsed.phases;
|
|
84
|
+
// Find first failed step with extraction
|
|
85
|
+
let extraction;
|
|
86
|
+
for (const phase of phases) {
|
|
87
|
+
for (const step of phase.steps) {
|
|
88
|
+
if (!step.passed && step.extraction) {
|
|
89
|
+
extraction = step.extraction;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (extraction)
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
// Fallback if no extraction found (shouldn't happen in practice)
|
|
97
|
+
extraction ??= {
|
|
98
|
+
summary: 'Validation failed',
|
|
99
|
+
totalErrors: 0,
|
|
100
|
+
errors: [],
|
|
101
|
+
};
|
|
102
|
+
return {
|
|
103
|
+
type: 'validate',
|
|
104
|
+
extraction,
|
|
105
|
+
treeHash: parsed.treeHash,
|
|
106
|
+
timestamp: parsed.timestamp,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=run-output-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-output-parser.js","sourceRoot":"","sources":["../src/run-output-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAiCxD;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,IAAI,CAAC;QACH,qEAAqE;QACrE,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,CAAC,gBAAgB;QAC/B,CAAC;QAED,iBAAiB;QACjB,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAA4B,CAAC;QAEjE,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YACpD,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,0DAA0D;QAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAC3B,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,CAAC;QAEd,0HAA0H;IAC1H,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,2CAA2C;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAA+B;IACrD,MAAM,UAAU,GAAG,MAAM,CAAC,UAA8C,CAAC;IAEzE,wEAAwE;IACxE,MAAM,oBAAoB,GAAyB,UAAU,IAAI;QAC/D,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,oBAAoB;QAChC,cAAc,EAAE,MAAM,CAAC,cAAqC;QAC5D,cAAc,EAAE,MAAM,CAAC,cAAoC;QAC3D,WAAW,EAAE,MAAM,CAAC,WAAsC;QAC1D,QAAQ,EAAE,MAAM,CAAC,QAA8B;QAC/C,QAAQ,EAAE,MAAM,CAAC,QAA8B;QAC/C,SAAS,EAAE,MAAM,CAAC,SAA+B;KAClD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,MAA+B;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,MAKpB,CAAC;IAEH,yCAAyC;IACzC,IAAI,UAA4C,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC7B,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU;YAAE,MAAM;IACxB,CAAC;IAED,iEAAiE;IACjE,UAAU,KAAK;QACb,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,UAAU;QACV,QAAQ,EAAE,MAAM,CAAC,QAA8B;QAC/C,SAAS,EAAE,MAAM,CAAC,SAA+B;KAClD,CAAC;AACJ,CAAC"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -10,7 +10,41 @@
|
|
|
10
10
|
* @packageDocumentation
|
|
11
11
|
*/
|
|
12
12
|
import { type ChildProcess } from 'node:child_process';
|
|
13
|
-
import type { ValidationStep
|
|
13
|
+
import type { ValidationStep } from '@vibe-validate/config';
|
|
14
|
+
import type { ValidationResult, StepResult, PhaseResult } from './result-schema.js';
|
|
15
|
+
/**
|
|
16
|
+
* Runtime validation configuration
|
|
17
|
+
*
|
|
18
|
+
* This extends the file-based configuration from @vibe-validate/config
|
|
19
|
+
* with runtime-specific options (callbacks, logging, output format).
|
|
20
|
+
*
|
|
21
|
+
* Note: State management (caching, forceRun) is now handled at the CLI layer
|
|
22
|
+
* via git notes. See packages/cli/src/commands/validate.ts and @vibe-validate/history.
|
|
23
|
+
*/
|
|
24
|
+
export interface ValidationConfig {
|
|
25
|
+
/** Validation phases to execute */
|
|
26
|
+
phases: import('@vibe-validate/config').ValidationPhase[];
|
|
27
|
+
/** Path to log file (default: os.tmpdir()/validation-{timestamp}.log) */
|
|
28
|
+
logPath?: string;
|
|
29
|
+
/** Enable fail-fast (stop on first failure) */
|
|
30
|
+
enableFailFast?: boolean;
|
|
31
|
+
/** Show verbose output (stream command stdout/stderr in real-time) */
|
|
32
|
+
verbose?: boolean;
|
|
33
|
+
/** Output YAML result to stdout (redirects subprocess output to stderr when true) */
|
|
34
|
+
yaml?: boolean;
|
|
35
|
+
/** Developer feedback for continuous quality improvement (default: false) */
|
|
36
|
+
developerFeedback?: boolean;
|
|
37
|
+
/** Environment variables to pass to all child processes */
|
|
38
|
+
env?: Record<string, string>;
|
|
39
|
+
/** Callback when phase starts */
|
|
40
|
+
onPhaseStart?: (_phase: import('@vibe-validate/config').ValidationPhase) => void;
|
|
41
|
+
/** Callback when phase completes */
|
|
42
|
+
onPhaseComplete?: (_phase: import('@vibe-validate/config').ValidationPhase, _result: PhaseResult) => void;
|
|
43
|
+
/** Callback when step starts */
|
|
44
|
+
onStepStart?: (_step: ValidationStep) => void;
|
|
45
|
+
/** Callback when step completes */
|
|
46
|
+
onStepComplete?: (_step: ValidationStep, _result: StepResult) => void;
|
|
47
|
+
}
|
|
14
48
|
/**
|
|
15
49
|
* Parse test output to extract specific failures
|
|
16
50
|
*
|
|
@@ -113,7 +147,6 @@ export declare function runStepsInParallel(steps: ValidationStep[], phaseName: s
|
|
|
113
147
|
* console.log('✅ Validation passed');
|
|
114
148
|
* } else {
|
|
115
149
|
* console.error(`❌ Failed at step: ${result.failedStep}`);
|
|
116
|
-
* console.error(result.failedStepOutput);
|
|
117
150
|
* }
|
|
118
151
|
* ```
|
|
119
152
|
*
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,MAAM,EAAE,OAAO,uBAAuB,EAAE,eAAe,EAAE,CAAC;IAE1D,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,qFAAqF;IACrF,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,iCAAiC;IACjC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,uBAAuB,EAAE,eAAe,KAAK,IAAI,CAAC;IAEjF,oCAAoC;IACpC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,uBAAuB,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAE1G,gCAAgC;IAChC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C,mCAAmC;IACnC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;CACvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBtD;AA6FD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,cAAc,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,OAAe,EAC/B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAChC,OAAO,GAAE,OAAe,EACxB,IAAI,GAAE,OAAe,EACrB,iBAAiB,GAAE,OAAe,GACjC,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC,CAmLD;AA0CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgFvF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAmB5E"}
|