@vibe-validate/core 0.15.0-rc.5 → 0.15.0-rc.6

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.
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Filesystem utilities for vibe-validate
3
+ *
4
+ * Provides shared filesystem operations used across the codebase:
5
+ * - Directory creation with error handling
6
+ * - Temp directory path generation
7
+ * - File creation utilities
8
+ */
9
+ /**
10
+ * Ensure a directory exists (create if needed)
11
+ *
12
+ * Creates the directory and any necessary parent directories.
13
+ * Ignores EEXIST errors if the directory already exists.
14
+ *
15
+ * @param dirPath - Path to directory to ensure exists
16
+ * @throws Error if directory creation fails for reasons other than already existing
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * await ensureDir('/tmp/my-app/logs');
21
+ * // Directory now exists, ready to write files
22
+ * ```
23
+ */
24
+ export declare function ensureDir(dirPath: string): Promise<void>;
25
+ /**
26
+ * Generate organized temp directory path with timestamp and hash
27
+ *
28
+ * Creates a path structure like:
29
+ * /tmp/vibe-validate/{baseDir}/{YYYY-MM-DD}/{shortHash-HH-mm-ss-suffix}/
30
+ *
31
+ * @param baseDir - Base directory name (e.g., 'runs', 'steps')
32
+ * @param treeHash - Git tree hash or identifier
33
+ * @param suffix - Optional suffix to append (e.g., step name)
34
+ * @returns Full path to temp directory
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * // For run output
39
+ * const runDir = getTempDir('runs', 'abc123def456');
40
+ * // Returns: /tmp/vibe-validate/runs/2025-11-10/abc123-17-30-45/
41
+ *
42
+ * // For step output
43
+ * const stepDir = getTempDir('steps', 'abc123def456', 'typecheck');
44
+ * // Returns: /tmp/vibe-validate/steps/2025-11-10/abc123-17-30-45-typecheck/
45
+ * ```
46
+ */
47
+ export declare function getTempDir(baseDir: string, treeHash: string, suffix?: string): string;
48
+ /**
49
+ * Write a log file only if content is non-empty
50
+ *
51
+ * Helper to conditionally write log files, avoiding empty file creation.
52
+ *
53
+ * @param content - Content to write
54
+ * @param outputDir - Directory to write file in
55
+ * @param filename - Name of the log file
56
+ * @returns Object with file path (if written) and write promise (if needed)
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const writePromises: Promise<void>[] = [];
61
+ *
62
+ * const { file: stdoutFile, promise: stdoutPromise } =
63
+ * createLogFileWrite(stdout, outputDir, 'stdout.log');
64
+ * if (stdoutPromise) writePromises.push(stdoutPromise);
65
+ *
66
+ * await Promise.all(writePromises);
67
+ * ```
68
+ */
69
+ export declare function createLogFileWrite(content: string, outputDir: string, filename: string): {
70
+ file: string | undefined;
71
+ promise: Promise<void> | null;
72
+ };
73
+ /**
74
+ * Create timestamped combined.jsonl content
75
+ *
76
+ * Converts an array of timestamped output lines into JSONL format
77
+ * for storage as combined.jsonl file.
78
+ *
79
+ * @param lines - Array of timestamped output lines
80
+ * @returns JSONL string (one JSON object per line)
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const lines = [
85
+ * { ts: '2025-11-10T17:30:45.123Z', stream: 'stdout', line: 'Starting...' },
86
+ * { ts: '2025-11-10T17:30:46.456Z', stream: 'stderr', line: 'Warning!' }
87
+ * ];
88
+ * const jsonl = createCombinedJsonl(lines);
89
+ * // Returns:
90
+ * // {"ts":"2025-11-10T17:30:45.123Z","stream":"stdout","line":"Starting..."}
91
+ * // {"ts":"2025-11-10T17:30:46.456Z","stream":"stderr","line":"Warning!"}
92
+ * ```
93
+ */
94
+ export declare function createCombinedJsonl(lines: Array<{
95
+ ts: string;
96
+ stream: 'stdout' | 'stderr';
97
+ line: string;
98
+ }>): string;
99
+ //# sourceMappingURL=fs-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../src/fs-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAqBR;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf;IAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAAE,CAU7D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GACtE,MAAM,CAER"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Filesystem utilities for vibe-validate
3
+ *
4
+ * Provides shared filesystem operations used across the codebase:
5
+ * - Directory creation with error handling
6
+ * - Temp directory path generation
7
+ * - File creation utilities
8
+ */
9
+ import { writeFile, mkdir } from 'node:fs/promises';
10
+ import { tmpdir } from 'node:os';
11
+ import { join } from 'node:path';
12
+ /**
13
+ * Ensure a directory exists (create if needed)
14
+ *
15
+ * Creates the directory and any necessary parent directories.
16
+ * Ignores EEXIST errors if the directory already exists.
17
+ *
18
+ * @param dirPath - Path to directory to ensure exists
19
+ * @throws Error if directory creation fails for reasons other than already existing
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * await ensureDir('/tmp/my-app/logs');
24
+ * // Directory now exists, ready to write files
25
+ * ```
26
+ */
27
+ export async function ensureDir(dirPath) {
28
+ try {
29
+ await mkdir(dirPath, { recursive: true });
30
+ }
31
+ catch (err) {
32
+ // Ignore if directory already exists
33
+ if (err && typeof err === 'object' && 'code' in err && err.code !== 'EEXIST') {
34
+ throw err;
35
+ }
36
+ }
37
+ }
38
+ /**
39
+ * Generate organized temp directory path with timestamp and hash
40
+ *
41
+ * Creates a path structure like:
42
+ * /tmp/vibe-validate/{baseDir}/{YYYY-MM-DD}/{shortHash-HH-mm-ss-suffix}/
43
+ *
44
+ * @param baseDir - Base directory name (e.g., 'runs', 'steps')
45
+ * @param treeHash - Git tree hash or identifier
46
+ * @param suffix - Optional suffix to append (e.g., step name)
47
+ * @returns Full path to temp directory
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * // For run output
52
+ * const runDir = getTempDir('runs', 'abc123def456');
53
+ * // Returns: /tmp/vibe-validate/runs/2025-11-10/abc123-17-30-45/
54
+ *
55
+ * // For step output
56
+ * const stepDir = getTempDir('steps', 'abc123def456', 'typecheck');
57
+ * // Returns: /tmp/vibe-validate/steps/2025-11-10/abc123-17-30-45-typecheck/
58
+ * ```
59
+ */
60
+ export function getTempDir(baseDir, treeHash, suffix) {
61
+ const now = new Date();
62
+ // Date folder: YYYY-MM-DD
63
+ const dateFolder = now.toISOString().split('T')[0];
64
+ // Short hash: first 6 chars
65
+ const shortHash = treeHash.substring(0, 6);
66
+ // Time suffix: HH-mm-ss
67
+ const timeSuffix = now.toISOString().split('T')[1].substring(0, 8).replace(/:/g, '-');
68
+ // Combined folder name
69
+ let folderName = `${shortHash}-${timeSuffix}`;
70
+ if (suffix) {
71
+ // Sanitize suffix for filesystem
72
+ const safeSuffix = suffix.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase();
73
+ folderName += `-${safeSuffix}`;
74
+ }
75
+ return join(tmpdir(), 'vibe-validate', baseDir, dateFolder, folderName);
76
+ }
77
+ /**
78
+ * Write a log file only if content is non-empty
79
+ *
80
+ * Helper to conditionally write log files, avoiding empty file creation.
81
+ *
82
+ * @param content - Content to write
83
+ * @param outputDir - Directory to write file in
84
+ * @param filename - Name of the log file
85
+ * @returns Object with file path (if written) and write promise (if needed)
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * const writePromises: Promise<void>[] = [];
90
+ *
91
+ * const { file: stdoutFile, promise: stdoutPromise } =
92
+ * createLogFileWrite(stdout, outputDir, 'stdout.log');
93
+ * if (stdoutPromise) writePromises.push(stdoutPromise);
94
+ *
95
+ * await Promise.all(writePromises);
96
+ * ```
97
+ */
98
+ export function createLogFileWrite(content, outputDir, filename) {
99
+ if (!content.trim()) {
100
+ return { file: undefined, promise: null };
101
+ }
102
+ const file = join(outputDir, filename);
103
+ return {
104
+ file,
105
+ promise: writeFile(file, content, 'utf-8'),
106
+ };
107
+ }
108
+ /**
109
+ * Create timestamped combined.jsonl content
110
+ *
111
+ * Converts an array of timestamped output lines into JSONL format
112
+ * for storage as combined.jsonl file.
113
+ *
114
+ * @param lines - Array of timestamped output lines
115
+ * @returns JSONL string (one JSON object per line)
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * const lines = [
120
+ * { ts: '2025-11-10T17:30:45.123Z', stream: 'stdout', line: 'Starting...' },
121
+ * { ts: '2025-11-10T17:30:46.456Z', stream: 'stderr', line: 'Warning!' }
122
+ * ];
123
+ * const jsonl = createCombinedJsonl(lines);
124
+ * // Returns:
125
+ * // {"ts":"2025-11-10T17:30:45.123Z","stream":"stdout","line":"Starting..."}
126
+ * // {"ts":"2025-11-10T17:30:46.456Z","stream":"stderr","line":"Warning!"}
127
+ * ```
128
+ */
129
+ export function createCombinedJsonl(lines) {
130
+ return lines.map(line => JSON.stringify(line)).join('\n');
131
+ }
132
+ //# sourceMappingURL=fs-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-utils.js","sourceRoot":"","sources":["../src/fs-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,qCAAqC;QACrC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7E,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,UAAU,CACxB,OAAe,EACf,QAAgB,EAChB,MAAe;IAEf,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,0BAA0B;IAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,4BAA4B;IAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3C,wBAAwB;IACxB,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtF,uBAAuB;IACvB,IAAI,UAAU,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;IAC9C,IAAI,MAAM,EAAE,CAAC;QACX,iCAAiC;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QACtE,UAAU,IAAI,IAAI,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,SAAiB,EACjB,QAAgB;IAEhB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAuE;IAEvE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC"}
package/dist/index.d.ts CHANGED
@@ -49,6 +49,7 @@ export type { ValidationResult, StepResult, PhaseResult, OutputFiles, } from './
49
49
  export type { ValidationConfig, } from './runner.js';
50
50
  export { runValidation, runStepsInParallel, parseFailures, setupSignalHandlers, } from './runner.js';
51
51
  export { stopProcessGroup, spawnCommand, captureCommandOutput, type CaptureCommandOptions, } from './process-utils.js';
52
+ export { ensureDir, getTempDir, createLogFileWrite, createCombinedJsonl, } from './fs-utils.js';
52
53
  export { ValidationResultSchema, StepResultSchema, PhaseResultSchema, CommandExecutionSchema, OperationMetadataSchema, OutputFilesSchema, safeValidateResult, validateResult, } from './result-schema.js';
53
54
  export { createSafeValidator, createStrictValidator, } from './schema-utils.js';
54
55
  export { validationResultJsonSchema, generateValidationResultJsonSchema, } from './result-schema-export.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAGH,YAAY,EACV,cAAc,EACd,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EACV,UAAU,EACV,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAGH,YAAY,EACV,cAAc,EACd,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EACV,UAAU,EACV,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -48,6 +48,8 @@
48
48
  export { runValidation, runStepsInParallel, parseFailures, setupSignalHandlers, } from './runner.js';
49
49
  // Export process utilities
50
50
  export { stopProcessGroup, spawnCommand, captureCommandOutput, } from './process-utils.js';
51
+ // Export filesystem utilities
52
+ export { ensureDir, getTempDir, createLogFileWrite, createCombinedJsonl, } from './fs-utils.js';
51
53
  // Export validation result schema and validators
52
54
  export { ValidationResultSchema, StepResultSchema, PhaseResultSchema, CommandExecutionSchema, OperationMetadataSchema, OutputFilesSchema, safeValidateResult, validateResult, } from './result-schema.js';
53
55
  // Export shared schema utilities
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAqBH,+BAA+B;AAC/B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,GAErB,MAAM,oBAAoB,CAAC;AAE5B,iDAAiD;AACjD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,iCAAiC;AACjC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,gCAAgC;AAChC,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,2BAA2B,CAAC;AAEnC,oEAAoE;AACpE,OAAO,EACL,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAqBH,+BAA+B;AAC/B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,GAErB,MAAM,oBAAoB,CAAC;AAE5B,8BAA8B;AAC9B,OAAO,EACL,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,iDAAiD;AACjD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,iCAAiC;AACjC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,gCAAgC;AAChC,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,2BAA2B,CAAC;AAEnC,oEAAoE;AACpE,OAAO,EACL,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"process-utils.d.ts","sourceRoot":"","sources":["../src/process-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAmB,MAAM,oBAAoB,CAAC;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,4BAA4B,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,WAAW,GAAE,MAAkB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA+Cf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,GACA,YAAY,CAYd;AAcD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,cAAc,CAAC,CA2GzB"}
1
+ {"version":3,"file":"process-utils.d.ts","sourceRoot":"","sources":["../src/process-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAmB,MAAM,oBAAoB,CAAC;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,4BAA4B,CAAC;AAG7E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,WAAW,GAAE,MAAkB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA+Cf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,GACA,YAAY,CAYd;AAcD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAqGzB"}
@@ -5,8 +5,9 @@
5
5
  * Used by validation runner for signal handling and fail-fast behavior.
6
6
  */
7
7
  import { execSync, spawn } from 'node:child_process';
8
- import { mkdir, writeFile } from 'node:fs/promises';
8
+ import { writeFile } from 'node:fs/promises';
9
9
  import { join } from 'node:path';
10
+ import { ensureDir, createLogFileWrite, createCombinedJsonl } from './fs-utils.js';
10
11
  /**
11
12
  * Stop a child process and its entire process group (cross-platform)
12
13
  *
@@ -212,26 +213,20 @@ export async function captureCommandOutput(options) {
212
213
  const endTime = Date.now();
213
214
  const durationSecs = (endTime - startTime) / 1000;
214
215
  // Ensure output directory exists
215
- await mkdir(outputDir, { recursive: true });
216
- // Write output files
216
+ await ensureDir(outputDir);
217
+ // Write output files using shared utilities
217
218
  const writePromises = [];
218
219
  // Write stdout.log (only if non-empty)
219
- let stdoutFile;
220
- if (stdoutRaw.trim()) {
221
- stdoutFile = join(outputDir, 'stdout.log');
222
- writePromises.push(writeFile(stdoutFile, stdoutRaw, 'utf-8'));
223
- }
220
+ const { file: stdoutFile, promise: stdoutPromise } = createLogFileWrite(stdoutRaw, outputDir, 'stdout.log');
221
+ if (stdoutPromise)
222
+ writePromises.push(stdoutPromise);
224
223
  // Write stderr.log (only if non-empty)
225
- let stderrFile;
226
- if (stderrRaw.trim()) {
227
- stderrFile = join(outputDir, 'stderr.log');
228
- writePromises.push(writeFile(stderrFile, stderrRaw, 'utf-8'));
229
- }
224
+ const { file: stderrFile, promise: stderrPromise } = createLogFileWrite(stderrRaw, outputDir, 'stderr.log');
225
+ if (stderrPromise)
226
+ writePromises.push(stderrPromise);
230
227
  // Write combined.jsonl (always)
231
228
  const combinedFile = join(outputDir, 'combined.jsonl');
232
- const combinedContent = combinedLines
233
- .map(line => JSON.stringify(line))
234
- .join('\n');
229
+ const combinedContent = createCombinedJsonl(combinedLines);
235
230
  writePromises.push(writeFile(combinedFile, combinedContent, 'utf-8'));
236
231
  // Wait for all writes to complete
237
232
  await Promise.all(writePromises);
@@ -1 +1 @@
1
- {"version":3,"file":"process-utils.js","sourceRoot":"","sources":["../src/process-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-utils.js","sourceRoot":"","sources":["../src/process-utils.ts"],"names":[],"mappings":"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"}
@@ -248,19 +248,22 @@ export declare const OutputFilesSchema: z.ZodObject<{
248
248
  * Shared by top-level operations (RunResult, ValidationResult).
249
249
  * Every operation has:
250
250
  * - When it ran (timestamp)
251
- * - What code state (treeHash)
251
+ * - What code state (treeHash) - optional to avoid duplication in output
252
+ *
253
+ * Note: treeHash is optional to allow output layers (history, state) to
254
+ * provide it at the root level, avoiding token-wasting duplication in nested objects.
252
255
  */
253
256
  export declare const OperationMetadataSchema: z.ZodObject<{
254
257
  /** When the operation was executed (ISO 8601) */
255
258
  timestamp: z.ZodString;
256
- /** Git tree hash identifying the code state */
257
- treeHash: z.ZodString;
259
+ /** Git tree hash identifying the code state (optional when provided at root level) */
260
+ treeHash: z.ZodOptional<z.ZodString>;
258
261
  }, "strip", z.ZodTypeAny, {
259
262
  timestamp: string;
260
- treeHash: string;
263
+ treeHash?: string | undefined;
261
264
  }, {
262
265
  timestamp: string;
263
- treeHash: string;
266
+ treeHash?: string | undefined;
264
267
  }>;
265
268
  /**
266
269
  * Validation Step Result Schema
@@ -280,9 +283,8 @@ export declare const OperationMetadataSchema: z.ZodObject<{
280
283
  * - Removed failedTests field (use extraction.errors instead)
281
284
  * - Added isCachedResult to indicate when result came from cache
282
285
  * - Added .strict() to reject unknown properties (prevents internal fields from leaking)
283
- *
284
- * v0.15.1 ENHANCEMENTS:
285
286
  * - Added outputFiles for debugging (stdout.log, stderr.log, combined.jsonl)
287
+ * - Only shown in results when step fails or --debug flag enabled
286
288
  */
287
289
  export declare const StepResultSchema: z.ZodObject<{
288
290
  /** Command that was executed */
@@ -896,19 +898,19 @@ export declare const PhaseResultSchema: z.ZodObject<{
896
898
  * - Cache indicator (isCachedResult) - v0.15.0+
897
899
  * - Quick navigation (failedStep)
898
900
  * - Detailed breakdown (phases with step-level extraction, each step has command)
899
- * - Metadata last (fullLogFile)
900
901
  *
901
902
  * v0.15.0 BREAKING CHANGES:
902
903
  * - Removed rerunCommand (use phases[].steps[].command instead)
903
904
  * - Removed failedStepOutput (use phases[].steps[].extraction instead)
905
+ * - Removed fullLogFile (use phases[].steps[].outputFiles instead)
904
906
  * - Added .strict() to reject unknown properties (prevents internal fields
905
907
  * like _fromCache from leaking into public API)
906
908
  */
907
909
  export declare const ValidationResultSchema: z.ZodObject<{
908
910
  /** When the operation was executed (ISO 8601) */
909
911
  timestamp: z.ZodString;
910
- /** Git tree hash identifying the code state */
911
- treeHash: z.ZodString;
912
+ /** Git tree hash identifying the code state (optional when provided at root level) */
913
+ treeHash: z.ZodOptional<z.ZodString>;
912
914
  } & {
913
915
  /** Did validation pass? */
914
916
  passed: z.ZodBoolean;
@@ -1263,13 +1265,33 @@ export declare const ValidationResultSchema: z.ZodObject<{
1263
1265
  } | undefined;
1264
1266
  }[];
1265
1267
  }>, "many">>;
1266
- /** Path to full log file */
1267
- fullLogFile: z.ZodOptional<z.ZodString>;
1268
+ /** Output files from validation run (only with --debug flag) */
1269
+ outputFiles: z.ZodOptional<z.ZodObject<{
1270
+ /** Path to stdout.log (omitted if empty) */
1271
+ stdout: z.ZodOptional<z.ZodString>;
1272
+ /** Path to stderr.log (omitted if empty) */
1273
+ stderr: z.ZodOptional<z.ZodString>;
1274
+ /** Path to combined.jsonl (chronological, ANSI-stripped) */
1275
+ combined: z.ZodString;
1276
+ }, "strip", z.ZodTypeAny, {
1277
+ combined: string;
1278
+ stdout?: string | undefined;
1279
+ stderr?: string | undefined;
1280
+ }, {
1281
+ combined: string;
1282
+ stdout?: string | undefined;
1283
+ stderr?: string | undefined;
1284
+ }>>;
1268
1285
  }, "strict", z.ZodTypeAny, {
1269
1286
  timestamp: string;
1270
- treeHash: string;
1271
1287
  passed: boolean;
1288
+ treeHash?: string | undefined;
1272
1289
  isCachedResult?: boolean | undefined;
1290
+ outputFiles?: {
1291
+ combined: string;
1292
+ stdout?: string | undefined;
1293
+ stderr?: string | undefined;
1294
+ } | undefined;
1273
1295
  summary?: string | undefined;
1274
1296
  failedStep?: string | undefined;
1275
1297
  phases?: {
@@ -1318,12 +1340,16 @@ export declare const ValidationResultSchema: z.ZodObject<{
1318
1340
  } | undefined;
1319
1341
  }[];
1320
1342
  }[] | undefined;
1321
- fullLogFile?: string | undefined;
1322
1343
  }, {
1323
1344
  timestamp: string;
1324
- treeHash: string;
1325
1345
  passed: boolean;
1346
+ treeHash?: string | undefined;
1326
1347
  isCachedResult?: boolean | undefined;
1348
+ outputFiles?: {
1349
+ combined: string;
1350
+ stdout?: string | undefined;
1351
+ stderr?: string | undefined;
1352
+ } | undefined;
1327
1353
  summary?: string | undefined;
1328
1354
  failedStep?: string | undefined;
1329
1355
  phases?: {
@@ -1372,7 +1398,6 @@ export declare const ValidationResultSchema: z.ZodObject<{
1372
1398
  } | undefined;
1373
1399
  }[];
1374
1400
  }[] | undefined;
1375
- fullLogFile?: string | undefined;
1376
1401
  }>;
1377
1402
  /**
1378
1403
  * Inferred TypeScript types from Zod schemas
@@ -1388,9 +1413,14 @@ export declare const safeValidateResult: (data: unknown) => {
1388
1413
  success: true;
1389
1414
  data: {
1390
1415
  timestamp: string;
1391
- treeHash: string;
1392
1416
  passed: boolean;
1417
+ treeHash?: string | undefined;
1393
1418
  isCachedResult?: boolean | undefined;
1419
+ outputFiles?: {
1420
+ combined: string;
1421
+ stdout?: string | undefined;
1422
+ stderr?: string | undefined;
1423
+ } | undefined;
1394
1424
  summary?: string | undefined;
1395
1425
  failedStep?: string | undefined;
1396
1426
  phases?: {
@@ -1439,7 +1469,6 @@ export declare const safeValidateResult: (data: unknown) => {
1439
1469
  } | undefined;
1440
1470
  }[];
1441
1471
  }[] | undefined;
1442
- fullLogFile?: string | undefined;
1443
1472
  };
1444
1473
  } | {
1445
1474
  success: false;
@@ -1450,9 +1479,14 @@ export declare const safeValidateResult: (data: unknown) => {
1450
1479
  */
1451
1480
  export declare const validateResult: (data: unknown) => {
1452
1481
  timestamp: string;
1453
- treeHash: string;
1454
1482
  passed: boolean;
1483
+ treeHash?: string | undefined;
1455
1484
  isCachedResult?: boolean | undefined;
1485
+ outputFiles?: {
1486
+ combined: string;
1487
+ stdout?: string | undefined;
1488
+ stderr?: string | undefined;
1489
+ } | undefined;
1456
1490
  summary?: string | undefined;
1457
1491
  failedStep?: string | undefined;
1458
1492
  phases?: {
@@ -1501,6 +1535,5 @@ export declare const validateResult: (data: unknown) => {
1501
1535
  } | undefined;
1502
1536
  }[];
1503
1537
  }[] | undefined;
1504
- fullLogFile?: string | undefined;
1505
1538
  };
1506
1539
  //# sourceMappingURL=result-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-schema.d.ts","sourceRoot":"","sources":["../src/result-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result-schema.d.ts","sourceRoot":"","sources":["../src/result-schema.ts"],"names":[],"mappings":"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"}
@@ -47,13 +47,16 @@ export const OutputFilesSchema = z.object({
47
47
  * Shared by top-level operations (RunResult, ValidationResult).
48
48
  * Every operation has:
49
49
  * - When it ran (timestamp)
50
- * - What code state (treeHash)
50
+ * - What code state (treeHash) - optional to avoid duplication in output
51
+ *
52
+ * Note: treeHash is optional to allow output layers (history, state) to
53
+ * provide it at the root level, avoiding token-wasting duplication in nested objects.
51
54
  */
52
55
  export const OperationMetadataSchema = z.object({
53
56
  /** When the operation was executed (ISO 8601) */
54
57
  timestamp: z.string().datetime(),
55
- /** Git tree hash identifying the code state */
56
- treeHash: z.string().min(1),
58
+ /** Git tree hash identifying the code state (optional when provided at root level) */
59
+ treeHash: z.string().min(1).optional(),
57
60
  });
58
61
  /**
59
62
  * Validation Step Result Schema
@@ -73,9 +76,8 @@ export const OperationMetadataSchema = z.object({
73
76
  * - Removed failedTests field (use extraction.errors instead)
74
77
  * - Added isCachedResult to indicate when result came from cache
75
78
  * - Added .strict() to reject unknown properties (prevents internal fields from leaking)
76
- *
77
- * v0.15.1 ENHANCEMENTS:
78
79
  * - Added outputFiles for debugging (stdout.log, stderr.log, combined.jsonl)
80
+ * - Only shown in results when step fails or --debug flag enabled
79
81
  */
80
82
  export const StepResultSchema = CommandExecutionSchema.extend({
81
83
  /** Step name */
@@ -120,11 +122,11 @@ export const PhaseResultSchema = z.object({
120
122
  * - Cache indicator (isCachedResult) - v0.15.0+
121
123
  * - Quick navigation (failedStep)
122
124
  * - Detailed breakdown (phases with step-level extraction, each step has command)
123
- * - Metadata last (fullLogFile)
124
125
  *
125
126
  * v0.15.0 BREAKING CHANGES:
126
127
  * - Removed rerunCommand (use phases[].steps[].command instead)
127
128
  * - Removed failedStepOutput (use phases[].steps[].extraction instead)
129
+ * - Removed fullLogFile (use phases[].steps[].outputFiles instead)
128
130
  * - Added .strict() to reject unknown properties (prevents internal fields
129
131
  * like _fromCache from leaking into public API)
130
132
  */
@@ -139,8 +141,8 @@ export const ValidationResultSchema = OperationMetadataSchema.extend({
139
141
  failedStep: z.string().optional(),
140
142
  /** Results from each phase (steps include extraction for failures) */
141
143
  phases: z.array(PhaseResultSchema).optional(),
142
- /** Path to full log file */
143
- fullLogFile: z.string().optional(),
144
+ /** Output files from validation run (only with --debug flag) */
145
+ outputFiles: OutputFilesSchema.optional(),
144
146
  }).strict();
145
147
  /**
146
148
  * Safe validation function (uses shared utility)
@@ -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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"}
package/dist/runner.d.ts CHANGED
@@ -34,6 +34,8 @@ export interface ValidationConfig {
34
34
  yaml?: boolean;
35
35
  /** Developer feedback for continuous quality improvement (default: false) */
36
36
  developerFeedback?: boolean;
37
+ /** Debug mode: create output files for all steps (default: false) */
38
+ debug?: boolean;
37
39
  /** Environment variables to pass to all child processes */
38
40
  env?: Record<string, string>;
39
41
  /** Callback when phase starts */
@@ -104,7 +106,7 @@ export declare function parseFailures(output: string): string[];
104
106
  *
105
107
  * @public
106
108
  */
107
- export declare function runStepsInParallel(steps: ValidationStep[], phaseName: string, enableFailFast?: boolean, env?: Record<string, string>, verbose?: boolean, yaml?: boolean, developerFeedback?: boolean): Promise<{
109
+ export declare function runStepsInParallel(steps: ValidationStep[], phaseName: string, enableFailFast?: boolean, env?: Record<string, string>, verbose?: boolean, yaml?: boolean, developerFeedback?: boolean, debug?: boolean): Promise<{
108
110
  success: boolean;
109
111
  failedStep?: ValidationStep;
110
112
  outputs: Map<string, string>;
@@ -1 +1 @@
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"}
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;AAQvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAS5D,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,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,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;AAGD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBtD;AAgJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,EAClC,KAAK,GAAE,OAAe,GACrB,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,CAsND;AA2CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkFvF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAmB5E"}
package/dist/runner.js CHANGED
@@ -10,6 +10,7 @@
10
10
  * @packageDocumentation
11
11
  */
12
12
  import { writeFileSync, appendFileSync } from 'node:fs';
13
+ import { writeFile } from 'node:fs/promises';
13
14
  import { tmpdir } from 'node:os';
14
15
  import { join } from 'node:path';
15
16
  import stripAnsi from 'strip-ansi';
@@ -17,6 +18,7 @@ import { getGitTreeHash } from '@vibe-validate/git';
17
18
  import { autoDetectAndExtract } from '@vibe-validate/extractors';
18
19
  import { stopProcessGroup, spawnCommand } from './process-utils.js';
19
20
  import { parseVibeValidateOutput } from './run-output-parser.js';
21
+ import { ensureDir, getTempDir, createLogFileWrite, createCombinedJsonl, } from './fs-utils.js';
20
22
  /**
21
23
  * Parse test output to extract specific failures
22
24
  *
@@ -137,6 +139,48 @@ function handleFailFast(enableFailFast, firstFailure, step, output, processes, l
137
139
  }
138
140
  return firstFailure;
139
141
  }
142
+ /**
143
+ * Create a stream data handler for stdout or stderr
144
+ *
145
+ * Eliminates code duplication between stdout and stderr handlers by
146
+ * providing a factory function that creates handlers with proper
147
+ * stream-specific behavior.
148
+ *
149
+ * @param stream - The stream type ('stdout' or 'stderr')
150
+ * @param accumulator - Object to accumulate output into
151
+ * @param combinedLines - Array to track timestamped lines
152
+ * @param verbose - Whether to stream output in real-time
153
+ * @param yaml - Whether YAML mode is enabled (affects output target)
154
+ * @returns Data handler function for the stream
155
+ *
156
+ * @internal
157
+ */
158
+ function createStreamHandler(stream, accumulator, combinedLines, verbose, yaml) {
159
+ return (_data) => {
160
+ const chunk = _data.toString();
161
+ // Strip ANSI escape codes to make output readable for humans and LLMs
162
+ // These codes (e.g., \e[32m for colors) are noise in logs, YAML, and git notes
163
+ const cleanChunk = stripAnsi(chunk);
164
+ accumulator.value += cleanChunk;
165
+ // Track timestamped lines for combined.jsonl (for debug mode or failing steps)
166
+ const lines = cleanChunk.split('\n');
167
+ for (const line of lines) {
168
+ if (line) {
169
+ combinedLines.push({
170
+ ts: new Date().toISOString(),
171
+ stream,
172
+ line,
173
+ });
174
+ }
175
+ }
176
+ // Stream output in real-time when verbose mode is enabled
177
+ // When yaml mode is on, redirect subprocess output to stderr to keep stdout clean
178
+ if (verbose) {
179
+ const target = (stream === 'stdout' && !yaml) ? process.stdout : process.stderr;
180
+ target.write(chunk); // Keep colors for terminal viewing
181
+ }
182
+ };
183
+ }
140
184
  /**
141
185
  * Run validation steps in parallel with smart fail-fast
142
186
  *
@@ -169,7 +213,7 @@ function handleFailFast(enableFailFast, firstFailure, step, output, processes, l
169
213
  *
170
214
  * @public
171
215
  */
172
- export async function runStepsInParallel(steps, phaseName, enableFailFast = false, env = {}, verbose = false, yaml = false, developerFeedback = false) {
216
+ export async function runStepsInParallel(steps, phaseName, enableFailFast = false, env = {}, verbose = false, yaml = false, developerFeedback = false, debug = false) {
173
217
  // When yaml mode is on, write progress to stderr to keep stdout clean
174
218
  const log = yaml ?
175
219
  (msg) => process.stderr.write(msg + '\n') :
@@ -194,124 +238,151 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
194
238
  });
195
239
  // Track process for potential kill
196
240
  processes.push({ proc, step });
197
- let stdout = '';
198
- let stderr = '';
241
+ // Use object accumulators for mutable references
242
+ const stdoutAccumulator = { value: '' };
243
+ const stderrAccumulator = { value: '' };
244
+ // Track timestamped output for combined.jsonl (similar to run command)
245
+ const combinedLines = [];
246
+ // Setup stream handlers using shared factory function (eliminates duplication)
199
247
  // spawnCommand always sets stdio: ['ignore', 'pipe', 'pipe'], so stdout/stderr are guaranteed non-null
200
248
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- spawnCommand always pipes stdout/stderr
201
- proc.stdout.on('data', data => {
202
- const chunk = data.toString();
203
- // Strip ANSI escape codes to make output readable for humans and LLMs
204
- // These codes (e.g., \e[32m for colors) are noise in logs, YAML, and git notes
205
- const cleanChunk = stripAnsi(chunk);
206
- stdout += cleanChunk;
207
- // Stream output in real-time when verbose mode is enabled
208
- // When yaml mode is on, redirect subprocess output to stderr to keep stdout clean
209
- if (verbose) {
210
- if (yaml) {
211
- process.stderr.write(chunk); // Keep colors for terminal viewing
212
- }
213
- else {
214
- process.stdout.write(chunk); // Keep colors for terminal viewing
215
- }
216
- }
217
- });
249
+ proc.stdout.on('data', createStreamHandler('stdout', stdoutAccumulator, combinedLines, verbose, yaml));
218
250
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- spawnCommand always pipes stdout/stderr
219
- proc.stderr.on('data', data => {
220
- const chunk = data.toString();
221
- // Strip ANSI escape codes from stderr as well
222
- const cleanChunk = stripAnsi(chunk);
223
- stderr += cleanChunk;
224
- // Stream errors in real-time when verbose mode is enabled
225
- if (verbose) {
226
- process.stderr.write(chunk); // Keep colors for terminal viewing
227
- }
228
- });
229
- // eslint-disable-next-line sonarjs/cognitive-complexity -- Complex handler for step completion, extraction, and fail-fast coordination
251
+ proc.stderr.on('data', createStreamHandler('stderr', stderrAccumulator, combinedLines, verbose, yaml));
230
252
  proc.on('close', exitCode => {
231
- const durationMs = Date.now() - startTime;
232
- const durationSecs = Number.parseFloat((durationMs / 1000).toFixed(1));
233
- const output = stdout + stderr;
234
- outputs.set(step.name, output);
235
- // Normalize exit code (null means abnormal termination, treat as failure)
236
- const code = exitCode ?? 1;
237
- const status = code === 0 ? '✅' : '❌';
238
- const result = code === 0 ? 'PASSED' : 'FAILED';
239
- log(` ${status} ${step.name.padEnd(maxNameLength)} - ${result} (${durationSecs}s)`);
240
- // Extract errors ONLY from FAILED steps (code !== 0)
241
- // Rationale: Passing tests have no failures to extract. Including empty extraction
242
- // objects wastes tokens in LLM context. Only extract when there's value to provide.
243
- let extraction;
244
- let isCachedResult;
245
- let outputFiles;
246
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain -- Explicit null/undefined/empty check is clearer than optional chaining
247
- if (code !== 0 && output && output.trim()) {
248
- // Try parsing vibe-validate YAML output (from nested run commands)
249
- // Uses shared parser that handles both RunResult and ValidationResult formats
250
- const parsed = parseVibeValidateOutput(output);
251
- if (parsed) {
252
- // Use extraction from nested vibe-validate command
253
- // This preserves the actual meaningful summary instead of generic "X error(s) from nested command"
254
- extraction = parsed.extraction;
255
- isCachedResult = parsed.isCachedResult;
256
- outputFiles = parsed.outputFiles;
257
- // Log cache hit status if available (nested run was cached)
258
- if (parsed.isCachedResult && verbose) {
259
- log(` ⚡ Step used cached result (${parsed.type} command)`);
253
+ // Wrap in async IIFE to handle file creation
254
+ // eslint-disable-next-line sonarjs/no-nested-functions, sonarjs/cognitive-complexity -- IIFE required for async/await in sync close handler; inherits complexity from step completion logic
255
+ void (async () => {
256
+ const durationMs = Date.now() - startTime;
257
+ const durationSecs = Number.parseFloat((durationMs / 1000).toFixed(1));
258
+ const stdout = stdoutAccumulator.value;
259
+ const stderr = stderrAccumulator.value;
260
+ const output = stdout + stderr;
261
+ outputs.set(step.name, output);
262
+ // Normalize exit code (null means abnormal termination, treat as failure)
263
+ const code = exitCode ?? 1;
264
+ const status = code === 0 ? '✅' : '❌';
265
+ const result = code === 0 ? 'PASSED' : 'FAILED';
266
+ log(` ${status} ${step.name.padEnd(maxNameLength)} - ${result} (${durationSecs}s)`);
267
+ // Extract errors ONLY from FAILED steps (code !== 0)
268
+ // Rationale: Passing tests have no failures to extract. Including empty extraction
269
+ // objects wastes tokens in LLM context. Only extract when there's value to provide.
270
+ let extraction;
271
+ let isCachedResult;
272
+ let outputFiles;
273
+ let outputFilesFromNestedCommand = false; // Track if outputFiles came from nested vv run
274
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain -- Explicit null/undefined/empty check is clearer than optional chaining
275
+ if (code !== 0 && output && output.trim()) {
276
+ // Try parsing vibe-validate YAML output (from nested run commands)
277
+ // Uses shared parser that handles both RunResult and ValidationResult formats
278
+ const parsed = parseVibeValidateOutput(output);
279
+ if (parsed) {
280
+ // Use extraction from nested vibe-validate command
281
+ // This preserves the actual meaningful summary instead of generic "X error(s) from nested command"
282
+ extraction = parsed.extraction;
283
+ isCachedResult = parsed.isCachedResult;
284
+ outputFiles = parsed.outputFiles;
285
+ outputFilesFromNestedCommand = true; // Came from nested run - always include
286
+ // Log cache hit status if available (nested run was cached)
287
+ if (parsed.isCachedResult && verbose) {
288
+ log(` ⚡ Step used cached result (${parsed.type} command)`);
289
+ }
290
+ }
291
+ else {
292
+ // No vibe-validate YAML detected - use standard extraction
293
+ const rawExtraction = autoDetectAndExtract(output);
294
+ // Strip empty optional fields to save tokens
295
+ extraction = {
296
+ summary: rawExtraction.summary,
297
+ totalErrors: rawExtraction.totalErrors,
298
+ errors: rawExtraction.errors,
299
+ ...(rawExtraction.guidance?.trim() ? { guidance: rawExtraction.guidance } : {}),
300
+ ...(rawExtraction.errorSummary?.trim() ? { errorSummary: rawExtraction.errorSummary } : {}),
301
+ ...(rawExtraction.metadata ? { metadata: rawExtraction.metadata } : {}),
302
+ };
260
303
  }
261
304
  }
262
- else {
263
- // No vibe-validate YAML detected - use standard extraction
264
- const rawExtraction = autoDetectAndExtract(output);
265
- // Strip empty optional fields to save tokens
266
- extraction = {
267
- summary: rawExtraction.summary,
268
- totalErrors: rawExtraction.totalErrors,
269
- errors: rawExtraction.errors,
270
- ...(rawExtraction.guidance?.trim() ? { guidance: rawExtraction.guidance } : {}),
271
- ...(rawExtraction.errorSummary?.trim() ? { errorSummary: rawExtraction.errorSummary } : {}),
272
- ...(rawExtraction.metadata ? { metadata: rawExtraction.metadata } : {}),
273
- };
305
+ else if (output?.trim()) {
306
+ // Passing step (code === 0) - check if it was cached
307
+ const parsed = parseVibeValidateOutput(output);
308
+ if (parsed) {
309
+ isCachedResult = parsed.isCachedResult;
310
+ outputFiles = parsed.outputFiles;
311
+ outputFilesFromNestedCommand = true; // Came from nested run - always include
312
+ // Log cache hit status if available
313
+ if (parsed.isCachedResult && verbose) {
314
+ log(` ⚡ Step used cached result (${parsed.type} command)`);
315
+ }
316
+ }
274
317
  }
275
- }
276
- else if (output?.trim()) {
277
- // Passing step (code === 0) - check if it was cached
278
- const parsed = parseVibeValidateOutput(output);
279
- if (parsed) {
280
- isCachedResult = parsed.isCachedResult;
281
- outputFiles = parsed.outputFiles;
282
- // Log cache hit status if available
283
- if (parsed.isCachedResult && verbose) {
284
- log(` ⚡ Step used cached result (${parsed.type} command)`);
318
+ // If passing step (code === 0), extraction remains undefined (token optimization)
319
+ // Create output files for failing steps or when debug mode is enabled
320
+ // This provides full debugging context when needed
321
+ const shouldCreateFiles = code !== 0 || debug;
322
+ if (shouldCreateFiles && !outputFiles) {
323
+ // Only create files if not already provided by nested vibe-validate command
324
+ try {
325
+ const treeHash = await getGitTreeHash();
326
+ const outputDir = getTempDir('steps', treeHash, step.name);
327
+ await ensureDir(outputDir);
328
+ const writePromises = [];
329
+ // Write stdout.log (only if non-empty) using shared utility
330
+ const { file: stdoutFile, promise: stdoutPromise } = createLogFileWrite(stdout, outputDir, 'stdout.log');
331
+ if (stdoutPromise)
332
+ writePromises.push(stdoutPromise);
333
+ // Write stderr.log (only if non-empty) using shared utility
334
+ const { file: stderrFile, promise: stderrPromise } = createLogFileWrite(stderr, outputDir, 'stderr.log');
335
+ if (stderrPromise)
336
+ writePromises.push(stderrPromise);
337
+ // Write combined.jsonl (always - timestamped interleaved output)
338
+ const combinedFile = join(outputDir, 'combined.jsonl');
339
+ const combinedContent = createCombinedJsonl(combinedLines);
340
+ writePromises.push(writeFile(combinedFile, combinedContent, 'utf-8'));
341
+ // Wait for all writes to complete
342
+ await Promise.all(writePromises);
343
+ // Populate outputFiles for StepResult
344
+ outputFiles = {
345
+ ...(stdoutFile ? { stdout: stdoutFile } : {}),
346
+ ...(stderrFile ? { stderr: stderrFile } : {}),
347
+ combined: combinedFile,
348
+ };
349
+ }
350
+ catch (error) {
351
+ // Silent failure - don't block validation on file creation errors
352
+ // This ensures validation completes even if temp directory is unavailable
353
+ if (verbose) {
354
+ const errorMsg = error instanceof Error ? error.message : String(error);
355
+ log(` ⚠️ Could not create output files: ${errorMsg}`);
356
+ }
285
357
  }
286
358
  }
287
- }
288
- // If passing step (code === 0), extraction remains undefined (token optimization)
289
- // Create step result - extends CommandExecutionSchema (v0.15.0+)
290
- const stepResult = {
291
- name: step.name,
292
- command: step.command,
293
- exitCode: code,
294
- durationSecs,
295
- passed: code === 0,
296
- ...(isCachedResult !== undefined ? { isCachedResult } : {}), // Include cache status if available
297
- ...(extraction ? { extraction } : {}), // Conditionally include extraction
298
- ...(outputFiles ? { outputFiles } : {}), // Include output files for debugging (v0.15.1+)
299
- };
300
- // Only include extraction quality metrics when developerFeedback is enabled
301
- // Skip if extraction already has metadata (from smart extractors) - that's more accurate
302
- // This is for vibe-validate contributors to identify extraction improvement opportunities
303
- if (developerFeedback && extraction && !extraction.metadata) {
304
- processDeveloperFeedback(stepResult, extraction, log, isWarning, isNotWarning);
305
- }
306
- stepResults.push(stepResult);
307
- if (code === 0) {
308
- resolve({ step, output, durationSecs });
309
- }
310
- else {
311
- // On first failure, kill other processes if fail-fast enabled
312
- firstFailure = handleFailFast(enableFailFast, firstFailure, step, output, processes, log, ignoreStopErrors);
313
- reject({ step, output, durationSecs });
314
- }
359
+ // Create step result - extends CommandExecutionSchema (v0.15.0+)
360
+ const stepResult = {
361
+ name: step.name,
362
+ command: step.command,
363
+ exitCode: code,
364
+ durationSecs,
365
+ passed: code === 0,
366
+ ...(isCachedResult !== undefined ? { isCachedResult } : {}), // Include cache status if available
367
+ ...(extraction ? { extraction } : {}), // Conditionally include extraction
368
+ ...((outputFiles && (outputFilesFromNestedCommand || code !== 0 || debug)) ? { outputFiles } : {}), // Always show for nested commands, or when step failed/debug enabled (v0.15.0+)
369
+ };
370
+ // Only include extraction quality metrics when developerFeedback is enabled
371
+ // Skip if extraction already has metadata (from smart extractors) - that's more accurate
372
+ // This is for vibe-validate contributors to identify extraction improvement opportunities
373
+ if (developerFeedback && extraction && !extraction.metadata) {
374
+ processDeveloperFeedback(stepResult, extraction, log, isWarning, isNotWarning);
375
+ }
376
+ stepResults.push(stepResult);
377
+ if (code === 0) {
378
+ resolve({ step, output, durationSecs });
379
+ }
380
+ else {
381
+ // On first failure, kill other processes if fail-fast enabled
382
+ firstFailure = handleFailFast(enableFailFast, firstFailure, step, output, processes, log, ignoreStopErrors);
383
+ reject({ step, output, durationSecs });
384
+ }
385
+ })(); // Close async IIFE
315
386
  });
316
387
  })));
317
388
  // Check for failures
@@ -340,7 +411,7 @@ function appendStepOutputsToLog(logPath, outputs, failedStepName) {
340
411
  * Note: Error extraction now happens at step level
341
412
  * Each failed step in phaseResults has its own extraction field with structured errors
342
413
  */
343
- function createFailedValidationResult(failedStep, currentTreeHash, logPath, phaseResults) {
414
+ function createFailedValidationResult(failedStep, currentTreeHash, phaseResults, debug, logPath) {
344
415
  // Field order optimized for LLM consumption
345
416
  return {
346
417
  passed: false,
@@ -349,7 +420,7 @@ function createFailedValidationResult(failedStep, currentTreeHash, logPath, phas
349
420
  summary: `${failedStep.name} failed`,
350
421
  failedStep: failedStep.name,
351
422
  phases: phaseResults,
352
- fullLogFile: logPath,
423
+ ...(debug && logPath ? { outputFiles: { combined: logPath } } : {}),
353
424
  };
354
425
  }
355
426
  /**
@@ -409,7 +480,7 @@ export async function runValidation(config) {
409
480
  onPhaseStart(phase);
410
481
  }
411
482
  const phaseStartTime = Date.now();
412
- const result = await runStepsInParallel(phase.steps, phase.name, enableFailFast, env, config.verbose ?? false, config.yaml ?? false, config.developerFeedback ?? false);
483
+ const result = await runStepsInParallel(phase.steps, phase.name, enableFailFast, env, config.verbose ?? false, config.yaml ?? false, config.developerFeedback ?? false, config.debug ?? false);
413
484
  const phaseDurationMs = Date.now() - phaseStartTime;
414
485
  const durationSecs = Number.parseFloat((phaseDurationMs / 1000).toFixed(1));
415
486
  // Append all outputs to log file
@@ -427,7 +498,7 @@ export async function runValidation(config) {
427
498
  }
428
499
  // If phase failed, stop here and return failure result
429
500
  if (!result.success && result.failedStep) {
430
- return createFailedValidationResult(result.failedStep, currentTreeHash, logPath, phaseResults);
501
+ return createFailedValidationResult(result.failedStep, currentTreeHash, phaseResults, config.debug ?? false, logPath);
431
502
  }
432
503
  }
433
504
  // All steps passed!
@@ -438,7 +509,7 @@ export async function runValidation(config) {
438
509
  treeHash: currentTreeHash,
439
510
  summary: 'Validation passed',
440
511
  phases: phaseResults,
441
- fullLogFile: logPath,
512
+ ...(config.debug ? { outputFiles: { combined: logPath } } : {}),
442
513
  };
443
514
  return validationResult;
444
515
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe-validate/core",
3
- "version": "0.15.0-rc.5",
3
+ "version": "0.15.0-rc.6",
4
4
  "description": "Core validation orchestration engine for vibe-validate",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -40,9 +40,9 @@
40
40
  "yaml": "^2.6.1",
41
41
  "zod": "^3.24.1",
42
42
  "zod-to-json-schema": "^3.24.6",
43
- "@vibe-validate/config": "0.15.0-rc.5",
44
- "@vibe-validate/git": "0.15.0-rc.5",
45
- "@vibe-validate/extractors": "0.15.0-rc.5"
43
+ "@vibe-validate/config": "0.15.0-rc.6",
44
+ "@vibe-validate/git": "0.15.0-rc.6",
45
+ "@vibe-validate/extractors": "0.15.0-rc.6"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/node": "^20.17.6",
@@ -229,13 +229,27 @@
229
229
  "additionalProperties": false
230
230
  }
231
231
  },
232
- "fullLogFile": {
233
- "type": "string"
232
+ "outputFiles": {
233
+ "type": "object",
234
+ "properties": {
235
+ "stdout": {
236
+ "type": "string"
237
+ },
238
+ "stderr": {
239
+ "type": "string"
240
+ },
241
+ "combined": {
242
+ "type": "string"
243
+ }
244
+ },
245
+ "required": [
246
+ "combined"
247
+ ],
248
+ "additionalProperties": false
234
249
  }
235
250
  },
236
251
  "required": [
237
252
  "timestamp",
238
- "treeHash",
239
253
  "passed"
240
254
  ],
241
255
  "additionalProperties": false