@vibe-validate/core 0.15.0-rc.5 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fs-utils.d.ts +99 -0
- package/dist/fs-utils.d.ts.map +1 -0
- package/dist/fs-utils.js +132 -0
- package/dist/fs-utils.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/process-utils.d.ts.map +1 -1
- package/dist/process-utils.js +11 -16
- package/dist/process-utils.js.map +1 -1
- package/dist/result-schema.d.ts +53 -20
- package/dist/result-schema.d.ts.map +1 -1
- package/dist/result-schema.js +10 -8
- package/dist/result-schema.js.map +1 -1
- package/dist/runner.d.ts +3 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +186 -115
- package/dist/runner.js.map +1 -1
- package/package.json +4 -4
- package/validate-result.schema.json +17 -3
|
@@ -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"}
|
package/dist/fs-utils.js
ADDED
|
@@ -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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/process-utils.js
CHANGED
|
@@ -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 {
|
|
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
|
|
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
|
-
|
|
220
|
-
if (
|
|
221
|
-
|
|
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
|
-
|
|
226
|
-
if (
|
|
227
|
-
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAgB,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"process-utils.js","sourceRoot":"","sources":["../src/process-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/result-schema.d.ts
CHANGED
|
@@ -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
|
|
263
|
+
treeHash?: string | undefined;
|
|
261
264
|
}, {
|
|
262
265
|
timestamp: string;
|
|
263
|
-
treeHash
|
|
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
|
-
/**
|
|
1267
|
-
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB;IACjC,gCAAgC;;IAGhC,iCAAiC;;IAGjC,oCAAoC;;IAGpC,qEAAqE;;;;;;;;;;;;;;;
|
|
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;AAIxB;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB;IACjC,gCAAgC;;IAGhC,iCAAiC;;IAGjC,oCAAoC;;IAGpC,qEAAqE;;;;;;;;;;;;;;;gBA+IzB,CAAC;gBAC3B,CAAC;kBAAoC,CAAC;gBAG1C,CAAC;oBAEhB,CAAC;mBAAkD,CAAC;oBAG9C,CAAC;;;gBAEY,CAAC;gBAAkC,CAAC;kBACzC,CAAC;gBAAkC,CAAC;oBAAsC,CAAC;mBAAkD,CAAC;oBAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAA8kE,CAAC;;;;;;uBAAyK,CAAC;;;;;qBAAsI,CAAC;;;;;;uBAAyK,CAAC;;;;;;;gBAA8J,CAAC;gBAAkC,CAAC;kBAAoC,CAAC;gBAAkC,CAAC;oBAAsC,CAAC;mBAAkD,CAAC;oBAAsC,CAAC;;;;;;;;qBAA+N,CAAC;;;;;;uBAAyK,CAAC;;;;;;;gBAAiJ,CAAC;gBAAkC,CAAC;kBAAoC,CAAC;gBAAkC,CAAC;oBAAsC,CAAC;mBAAkD,CAAC;oBAAsC,CAAC;;;;;;;;qBAA+N,CAAC;;;;;;uBAAyK,CAAC;;;;;;;;;;;;gBAA/3C,CAAC;gBAAkC,CAAC;kBAAoC,CAAC;gBAAkC,CAAC;oBAAsC,CAAC;mBAAkD,CAAC;oBAAsC,CAAC;;;;;;;;qBAA+N,CAAC;;;;;;uBAAyK,CAAC;;;;;;;;;;;;gBAAiJ,CAAC;gBAAkC,CAAC;kBAAoC,CAAC;gBAAkC,CAAC;oBAAsC,CAAC;mBAAkD,CAAC;oBAAsC,CAAC;;;;;;;;qBAA+N,CAAC;;;;;;uBAAyK,CAAC;;;EAzJzvI,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;IAC5B,4CAA4C;;IAE5C,4CAA4C;;IAE5C,4DAA4D;;;;;;;;;;EAE5D,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB;IAClC,iDAAiD;;IAGjD,sFAAsF;;;;;;;;EAEtF,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,gBAAgB;IApE3B,gCAAgC;;IAGhC,iCAAiC;;IAGjC,oCAAoC;;IAGpC,qEAAqE;;;;;;;;;;;;;;;gBA+IzB,CAAC;gBAC3B,CAAC;kBAAoC,CAAC;gBAG1C,CAAC;oBAEhB,CAAC;mBAAkD,CAAC;oBAG9C,CAAC;;;gBAEY,CAAC;gBAAkC,CAAC;kBACzC,CAAC;gBAAkC,CAAC;oBAAsC,CAAC;mBAAkD,CAAC;oBAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAA8kE,CAAC;;;;;;uBAAyK,CAAC;;;;;qBAAsI,CAAC;;;;;;uBAAyK,CAAC;;;;;;;gBAA8J,CAAC;gBAAkC,CAAC;kBAAoC,CAAC;gBAAkC,CAAC;oBAAsC,CAAC;mBAAkD,CAAC;oBAAsC,CAAC;;;;;;;;qBAA+N,CAAC;;;;;;uBAAyK,CAAC;;;;;;;gBAAiJ,CAAC;gBAAkC,CAAC;kBAAoC,CAAC;gBAAkC,CAAC;oBAAsC,CAAC;mBAAkD,CAAC;oBAAsC,CAAC;;;;;;;;qBAA+N,CAAC;;;;;;uBAAyK,CAAC;;;;IA/FzvI,gBAAgB;;IAGhB,uDAAuD;;IAGvD,uDAAuD;;IAGvD,kDAAkD;;QA1DlD,4CAA4C;;QAE5C,4CAA4C;;QAE5C,4DAA4D;;;;;;;;;;;;;;;;;;;;;;gBA4I8zF,CAAC;gBAAkC,CAAC;kBAAoC,CAAC;gBAAkC,CAAC;oBAAsC,CAAC;mBAAkD,CAAC;oBAAsC,CAAC;;;;;;;;qBAA+N,CAAC;;;;;;uBAAyK,CAAC;;;;;;;;;;;;;;;;;;;;gBAAiJ,CAAC;gBAAkC,CAAC;kBAAoC,CAAC;gBAAkC,CAAC;oBAAsC,CAAC;mBAAkD,CAAC;oBAAsC,CAAC;;;;;;;;qBAA+N,CAAC;;;;;;uBAAyK,CAAC;;;;;;;;;EApFhvI,CAAC;AAEZ;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB;IAC5B,iBAAiB;;IAGjB,0BAA0B;;IAG1B,0CAA0C;;IAG1C,oCAAoC;;QArGpC,gCAAgC;;QAGhC,iCAAiC;;QAGjC,oCAAoC;;QAGpC,qEAAqE;;;;;;;;;;;;;;;oBA+IzB,CAAC;oBAC3B,CAAC;sBAAoC,CAAC;oBAG1C,CAAC;wBAEhB,CAAC;uBAAkD,CAAC;wBAG9C,CAAC;;;oBAEY,CAAC;oBAAkC,CAAC;sBACzC,CAAC;oBAAkC,CAAC;wBAAsC,CAAC;uBAAkD,CAAC;wBAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAA8kE,CAAC;;;;;;2BAAyK,CAAC;;;;;yBAAsI,CAAC;;;;;;2BAAyK,CAAC;;;;;;;oBAA8J,CAAC;oBAAkC,CAAC;sBAAoC,CAAC;oBAAkC,CAAC;wBAAsC,CAAC;uBAAkD,CAAC;wBAAsC,CAAC;;;;;;;;yBAA+N,CAAC;;;;;;2BAAyK,CAAC;;;;;;;oBAAiJ,CAAC;oBAAkC,CAAC;sBAAoC,CAAC;oBAAkC,CAAC;wBAAsC,CAAC;uBAAkD,CAAC;wBAAsC,CAAC;;;;;;;;yBAA+N,CAAC;;;;;;2BAAyK,CAAC;;;;QA/FzvI,gBAAgB;;QAGhB,uDAAuD;;QAGvD,uDAAuD;;QAGvD,kDAAkD;;YA1DlD,4CAA4C;;YAE5C,4CAA4C;;YAE5C,4DAA4D;;;;;;;;;;;;;;;;;;;;;;oBA4I8zF,CAAC;oBAAkC,CAAC;sBAAoC,CAAC;oBAAkC,CAAC;wBAAsC,CAAC;uBAAkD,CAAC;wBAAsC,CAAC;;;;;;;;yBAA+N,CAAC;;;;;;2BAAyK,CAAC;;;;;;;;;;;;;;;;;;;;oBAAiJ,CAAC;oBAAkC,CAAC;sBAAoC,CAAC;oBAAkC,CAAC;wBAAsC,CAAC;uBAAkD,CAAC;wBAAsC,CAAC;;;;;;;;yBAA+N,CAAC;;;;;;2BAAyK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;oBAA/3C,CAAC;oBAAkC,CAAC;sBAAoC,CAAC;oBAAkC,CAAC;wBAAsC,CAAC;uBAAkD,CAAC;wBAAsC,CAAC;;;;;;;;yBAA+N,CAAC;;;;;;2BAAyK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;oBAAiJ,CAAC;oBAAkC,CAAC;sBAAoC,CAAC;oBAAkC,CAAC;wBAAsC,CAAC;uBAAkD,CAAC;wBAAsC,CAAC;;;;;;;;yBAA+N,CAAC;;;;;;2BAAyK,CAAC;;;;;;;;;;EA7DhvI,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB;IAvFjC,iDAAiD;;IAGjD,sFAAsF;;;IAqFtF,2BAA2B;;IAG3B,8FAA8F;;IAG9F,yEAAyE;;IAGzE,0DAA0D;;IAG1D,sEAAsE;;QAhDtE,iBAAiB;;QAGjB,0BAA0B;;QAG1B,0CAA0C;;QAG1C,oCAAoC;;YArGpC,gCAAgC;;YAGhC,iCAAiC;;YAGjC,oCAAoC;;YAGpC,qEAAqE;;;;;;;;;;;;;;;wBA+IzB,CAAC;wBAC3B,CAAC;0BAAoC,CAAC;wBAG1C,CAAC;4BAEhB,CAAC;2BAAkD,CAAC;4BAG9C,CAAC;;;wBAEY,CAAC;wBAAkC,CAAC;0BACzC,CAAC;wBAAkC,CAAC;4BAAsC,CAAC;2BAAkD,CAAC;4BAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAA8kE,CAAC;;;;;;+BAAyK,CAAC;;;;;6BAAsI,CAAC;;;;;;+BAAyK,CAAC;;;;;;;wBAA8J,CAAC;wBAAkC,CAAC;0BAAoC,CAAC;wBAAkC,CAAC;4BAAsC,CAAC;2BAAkD,CAAC;4BAAsC,CAAC;;;;;;;;6BAA+N,CAAC;;;;;;+BAAyK,CAAC;;;;;;;wBAAiJ,CAAC;wBAAkC,CAAC;0BAAoC,CAAC;wBAAkC,CAAC;4BAAsC,CAAC;2BAAkD,CAAC;4BAAsC,CAAC;;;;;;;;6BAA+N,CAAC;;;;;;+BAAyK,CAAC;;;;YA/FzvI,gBAAgB;;YAGhB,uDAAuD;;YAGvD,uDAAuD;;YAGvD,kDAAkD;;gBA1DlD,4CAA4C;;gBAE5C,4CAA4C;;gBAE5C,4DAA4D;;;;;;;;;;;;;;;;;;;;;;wBA4I8zF,CAAC;wBAAkC,CAAC;0BAAoC,CAAC;wBAAkC,CAAC;4BAAsC,CAAC;2BAAkD,CAAC;4BAAsC,CAAC;;;;;;;;6BAA+N,CAAC;;;;;;+BAAyK,CAAC;;;;;;;;;;;;;;;;;;;;wBAAiJ,CAAC;wBAAkC,CAAC;0BAAoC,CAAC;wBAAkC,CAAC;4BAAsC,CAAC;2BAAkD,CAAC;4BAAsC,CAAC;;;;;;;;6BAA+N,CAAC;;;;;;+BAAyK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;wBAA/3C,CAAC;wBAAkC,CAAC;0BAAoC,CAAC;wBAAkC,CAAC;4BAAsC,CAAC;2BAAkD,CAAC;4BAAsC,CAAC;;;;;;;;6BAA+N,CAAC;;;;;;+BAAyK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;wBAAiJ,CAAC;wBAAkC,CAAC;0BAAoC,CAAC;wBAAkC,CAAC;4BAAsC,CAAC;2BAAkD,CAAC;4BAAsC,CAAC;;;;;;;;6BAA+N,CAAC;;;;;;+BAAyK,CAAC;;;;;;;;;;;IArBzvI,gEAAgE;;QA3HhE,4CAA4C;;QAE5C,4CAA4C;;QAE5C,4DAA4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4I8zF,CAAC;wBAAkC,CAAC;0BAAoC,CAAC;wBAAkC,CAAC;4BAAsC,CAAC;2BAAkD,CAAC;4BAAsC,CAAC;;;;;;;;6BAA+N,CAAC;;;;;;+BAAyK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAAiJ,CAAC;wBAAkC,CAAC;0BAAoC,CAAC;wBAAkC,CAAC;4BAAsC,CAAC;2BAAkD,CAAC;4BAAsC,CAAC;;;;;;;;6BAA+N,CAAC;;;;;;+BAAyK,CAAC;;;;;;;;;;;EAnBhvI,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,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;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAM61F,CAAC;4BAAkC,CAAC;8BAAoC,CAAC;4BAAkC,CAAC;gCAAsC,CAAC;+BAAkD,CAAC;gCAAsC,CAAC;;;;;;;;iCAA+N,CAAC;;;;;;mCAAyK,CAAC;;;;;;;;;;;;;;;CANt6G,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;wBACi2F,CAAC;wBAAkC,CAAC;0BAAoC,CAAC;wBAAkC,CAAC;4BAAsC,CAAC;2BAAkD,CAAC;4BAAsC,CAAC;;;;;;;;6BAA+N,CAAC;;;;;;+BAAyK,CAAC;;;;;;;;;;;CADx6G,CAAC"}
|
package/dist/result-schema.js
CHANGED
|
@@ -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
|
-
/**
|
|
143
|
-
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,gCAAgC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1B,iCAAiC;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAE1B,oCAAoC;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;IAE/B,qEAAqE;IACrE,UAAU,EAAE,0BAA0B,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,4CAA4C;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,4CAA4C;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH
|
|
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>;
|
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,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
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
|
-
|
|
198
|
-
|
|
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',
|
|
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',
|
|
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
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
if
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
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
|
-
//
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
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
|
-
|
|
277
|
-
//
|
|
278
|
-
const
|
|
279
|
-
if (
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
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
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
512
|
+
...(config.debug ? { outputFiles: { combined: logPath } } : {}),
|
|
442
513
|
};
|
|
443
514
|
return validationResult;
|
|
444
515
|
}
|
package/dist/runner.js.map
CHANGED
|
@@ -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
|
|
3
|
+
"version": "0.15.0",
|
|
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/
|
|
44
|
-
"@vibe-validate/git": "0.15.0
|
|
45
|
-
"@vibe-validate/
|
|
43
|
+
"@vibe-validate/extractors": "0.15.0",
|
|
44
|
+
"@vibe-validate/git": "0.15.0",
|
|
45
|
+
"@vibe-validate/config": "0.15.0"
|
|
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
|
-
"
|
|
233
|
-
"type": "
|
|
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
|