@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.
Files changed (39) hide show
  1. package/README.md +24 -0
  2. package/dist/index.d.ts +9 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +7 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/output-capture-schema.d.ts +144 -0
  7. package/dist/output-capture-schema.d.ts.map +1 -0
  8. package/dist/output-capture-schema.js +52 -0
  9. package/dist/output-capture-schema.js.map +1 -0
  10. package/dist/process-utils.d.ts +84 -0
  11. package/dist/process-utils.d.ts.map +1 -1
  12. package/dist/process-utils.js +176 -1
  13. package/dist/process-utils.js.map +1 -1
  14. package/dist/result-schema.d.ts +1352 -88
  15. package/dist/result-schema.d.ts.map +1 -1
  16. package/dist/result-schema.js +114 -57
  17. package/dist/result-schema.js.map +1 -1
  18. package/dist/run-output-parser.d.ts +47 -0
  19. package/dist/run-output-parser.d.ts.map +1 -0
  20. package/dist/run-output-parser.js +109 -0
  21. package/dist/run-output-parser.js.map +1 -0
  22. package/dist/runner.d.ts +35 -2
  23. package/dist/runner.d.ts.map +1 -1
  24. package/dist/runner.js +105 -167
  25. package/dist/runner.js.map +1 -1
  26. package/dist/schema-utils.d.ts +57 -0
  27. package/dist/schema-utils.d.ts.map +1 -0
  28. package/dist/schema-utils.js +67 -0
  29. package/dist/schema-utils.js.map +1 -0
  30. package/dist/scripts/generate-result-schema.d.ts +1 -1
  31. package/dist/scripts/generate-result-schema.js +3 -3
  32. package/dist/scripts/generate-result-schema.js.map +1 -1
  33. package/dist/types.js +5 -1
  34. package/dist/types.js.map +1 -1
  35. package/package.json +6 -5
  36. package/validate-result.schema.json +245 -0
  37. package/dist/types.d.ts +0 -138
  38. package/dist/types.d.ts.map +0 -1
  39. 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;AAExB;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B,gBAAgB;;IAGhB,yBAAyB;;IAGzB,oCAAoC;;IAGpC,6CAA6C;;;;;;;;;;;;EAE7C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B,iBAAiB;;IAGjB,0CAA0C;;IAG1C,0BAA0B;;IAG1B,oCAAoC;;QA1BpC,gBAAgB;;QAGhB,yBAAyB;;QAGzB,oCAAoC;;QAGpC,6CAA6C;;;;;;;;;;;;;IAoB7C,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;EAEvC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;IACjC,2BAA2B;;IAG3B,yBAAyB;;IAGzB,qCAAqC;;IAGrC,8BAA8B;;QAhC9B,iBAAiB;;QAGjB,0CAA0C;;QAG1C,0BAA0B;;QAG1B,oCAAoC;;YA1BpC,gBAAgB;;YAGhB,yBAAyB;;YAGzB,oCAAoC;;YAGpC,6CAA6C;;;;;;;;;;;;;QAoB7C,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;IAuBvC,mCAAmC;;IAGnC,oCAAoC;;IAGpC,kCAAkC;;IAGlC,wCAAwC;;IAGxC,4BAA4B;;IAG5B,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEtB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAC5C;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACzC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAcvC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAE9D"}
1
+ {"version":3,"file":"result-schema.d.ts","sourceRoot":"","sources":["../src/result-schema.ts"],"names":[],"mappings":"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"}
@@ -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 = z.object({
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
- /** Execution duration in seconds */
17
- durationSecs: z.coerce.number(),
18
- /** Output from the step (stdout + stderr) */
19
- output: z.string().optional(),
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
- /** Output from failed step (if any) */
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 = z.object({
131
+ export const ValidationResultSchema = OperationMetadataSchema.extend({
43
132
  /** Did validation pass? */
44
133
  passed: z.boolean(),
45
- /** ISO 8601 timestamp */
46
- timestamp: z.string(),
47
- /** Git tree hash (if in git repo) */
48
- treeHash: z.string(),
49
- /** Results from each phase */
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
- /** Command to re-run failed step */
54
- rerunCommand: z.string().optional(),
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
- /** Summary message */
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 function safeValidateResult(data) {
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 function validateResult(data) {
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":"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"}
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, ValidationResult, ValidationConfig, StepResult } from './types.js';
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
  *
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EAEX,MAAM,YAAY,CAAC;AA+CpB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBtD;AAwID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,CA0ID;AAoDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6FvF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAmB5E"}
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"}