@vibe-validate/core 0.11.0 → 0.12.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/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/result-schema.d.ts +4 -4
- package/dist/result-schema.js +2 -2
- package/dist/runner.d.ts +4 -42
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +136 -74
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +36 -24
- package/dist/types.d.ts.map +1 -1
- package/package.json +13 -11
- package/LICENSE +0 -21
package/dist/index.d.ts
CHANGED
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
*
|
|
45
45
|
* @packageDocumentation
|
|
46
46
|
*/
|
|
47
|
-
export type { ValidationStep, ValidationPhase, ValidationConfig, ValidationResult, StepResult, PhaseResult, } from './types.js';
|
|
48
|
-
export { runValidation, runStepsInParallel,
|
|
47
|
+
export type { ValidationStep, ValidationPhase, ValidationConfig, ValidationResult, StepResult, PhaseResult, ExtractionQuality, } from './types.js';
|
|
48
|
+
export { runValidation, runStepsInParallel, parseFailures, setupSignalHandlers, } from './runner.js';
|
|
49
49
|
export { stopProcessGroup, } from './process-utils.js';
|
|
50
50
|
export { ValidationResultSchema, StepResultSchema, PhaseResultSchema, safeValidateResult, validateResult, } from './result-schema.js';
|
|
51
51
|
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,EACf,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAGH,YAAY,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
* @packageDocumentation
|
|
46
46
|
*/
|
|
47
47
|
// Export core runner functions
|
|
48
|
-
export { runValidation, runStepsInParallel,
|
|
48
|
+
export { runValidation, runStepsInParallel, parseFailures, setupSignalHandlers, } from './runner.js';
|
|
49
49
|
// Export process utilities
|
|
50
50
|
export { stopProcessGroup, } from './process-utils.js';
|
|
51
51
|
// Export validation result schema and validators
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAaH,+BAA+B;AAC/B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,iDAAiD;AACjD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,gCAAgC;AAChC,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,2BAA2B,CAAC"}
|
package/dist/result-schema.d.ts
CHANGED
|
@@ -87,8 +87,8 @@ export declare const PhaseResultSchema: z.ZodObject<{
|
|
|
87
87
|
/**
|
|
88
88
|
* Validation Result Schema
|
|
89
89
|
*
|
|
90
|
-
* This
|
|
91
|
-
* (.
|
|
90
|
+
* This schema defines the validation result structure returned by the validation
|
|
91
|
+
* runner and stored in git notes (v0.12.0+) for history tracking.
|
|
92
92
|
*/
|
|
93
93
|
export declare const ValidationResultSchema: z.ZodObject<{
|
|
94
94
|
/** Did validation pass? */
|
|
@@ -164,8 +164,8 @@ export declare const ValidationResultSchema: z.ZodObject<{
|
|
|
164
164
|
/** Summary message */
|
|
165
165
|
summary: z.ZodOptional<z.ZodString>;
|
|
166
166
|
}, "strip", z.ZodTypeAny, {
|
|
167
|
-
timestamp: string;
|
|
168
167
|
passed: boolean;
|
|
168
|
+
timestamp: string;
|
|
169
169
|
treeHash: string;
|
|
170
170
|
failedStep?: string | undefined;
|
|
171
171
|
phases?: {
|
|
@@ -186,8 +186,8 @@ export declare const ValidationResultSchema: z.ZodObject<{
|
|
|
186
186
|
fullLogFile?: string | undefined;
|
|
187
187
|
summary?: string | undefined;
|
|
188
188
|
}, {
|
|
189
|
-
timestamp: string;
|
|
190
189
|
passed: boolean;
|
|
190
|
+
timestamp: string;
|
|
191
191
|
treeHash: string;
|
|
192
192
|
failedStep?: string | undefined;
|
|
193
193
|
phases?: {
|
package/dist/result-schema.js
CHANGED
|
@@ -36,8 +36,8 @@ export const PhaseResultSchema = z.object({
|
|
|
36
36
|
/**
|
|
37
37
|
* Validation Result Schema
|
|
38
38
|
*
|
|
39
|
-
* This
|
|
40
|
-
* (.
|
|
39
|
+
* This schema defines the validation result structure returned by the validation
|
|
40
|
+
* runner and stored in git notes (v0.12.0+) for history tracking.
|
|
41
41
|
*/
|
|
42
42
|
export const ValidationResultSchema = z.object({
|
|
43
43
|
/** Did validation pass? */
|
package/dist/runner.d.ts
CHANGED
|
@@ -11,51 +11,14 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { type ChildProcess } from 'child_process';
|
|
13
13
|
import type { ValidationStep, ValidationResult, ValidationConfig, StepResult } from './types.js';
|
|
14
|
-
/**
|
|
15
|
-
* Legacy function - REMOVED in favor of @vibe-validate/git package
|
|
16
|
-
*
|
|
17
|
-
* Use `getGitTreeHash()` from '@vibe-validate/git' instead.
|
|
18
|
-
* This provides deterministic, content-based tree hashing.
|
|
19
|
-
*
|
|
20
|
-
* @deprecated Removed in v0.9.11 - Use @vibe-validate/git instead
|
|
21
|
-
*/
|
|
22
|
-
/**
|
|
23
|
-
* Check if validation has already passed for current working tree state
|
|
24
|
-
*
|
|
25
|
-
* Reads the validation state file and compares the git tree hash to determine
|
|
26
|
-
* if validation can be skipped (cache hit).
|
|
27
|
-
*
|
|
28
|
-
* @param currentTreeHash - Current git tree hash of working directory
|
|
29
|
-
* @param stateFilePath - Path to validation state file
|
|
30
|
-
* @returns Object with alreadyPassed flag and optional previousState
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* const { alreadyPassed, previousState } = checkExistingValidation(
|
|
35
|
-
* 'abc123...',
|
|
36
|
-
* '.validate-state.json'
|
|
37
|
-
* );
|
|
38
|
-
*
|
|
39
|
-
* if (alreadyPassed) {
|
|
40
|
-
* console.log('Validation already passed!');
|
|
41
|
-
* return previousState;
|
|
42
|
-
* }
|
|
43
|
-
* ```
|
|
44
|
-
*
|
|
45
|
-
* @public
|
|
46
|
-
*/
|
|
47
|
-
export declare function checkExistingValidation(currentTreeHash: string, stateFilePath: string): {
|
|
48
|
-
alreadyPassed: boolean;
|
|
49
|
-
previousState?: ValidationResult;
|
|
50
|
-
};
|
|
51
14
|
/**
|
|
52
15
|
* Parse test output to extract specific failures
|
|
53
16
|
*
|
|
54
17
|
* Extracts failure details from validation step output using pattern matching.
|
|
55
18
|
* Supports Vitest, TypeScript, and ESLint error formats.
|
|
56
19
|
*
|
|
57
|
-
* Note: This is a basic implementation - the
|
|
58
|
-
* more sophisticated parsing with tool-specific
|
|
20
|
+
* Note: This is a basic implementation - the extractors package provides
|
|
21
|
+
* more sophisticated parsing with tool-specific extractors.
|
|
59
22
|
*
|
|
60
23
|
* @param output - Raw stdout/stderr output from validation step
|
|
61
24
|
* @returns Array of extracted failure messages (max 10 per failure type)
|
|
@@ -72,6 +35,7 @@ export declare function checkExistingValidation(currentTreeHash: string, stateFi
|
|
|
72
35
|
* ```
|
|
73
36
|
*
|
|
74
37
|
* @public
|
|
38
|
+
* @deprecated Use extractByStepName() from @vibe-validate/extractors instead
|
|
75
39
|
*/
|
|
76
40
|
export declare function parseFailures(output: string): string[];
|
|
77
41
|
/**
|
|
@@ -106,7 +70,7 @@ export declare function parseFailures(output: string): string[];
|
|
|
106
70
|
*
|
|
107
71
|
* @public
|
|
108
72
|
*/
|
|
109
|
-
export declare function runStepsInParallel(steps: ValidationStep[], phaseName: string, enableFailFast?: boolean, env?: Record<string, string>, verbose?: boolean): Promise<{
|
|
73
|
+
export declare function runStepsInParallel(steps: ValidationStep[], phaseName: string, enableFailFast?: boolean, env?: Record<string, string>, verbose?: boolean, yaml?: boolean, developerFeedback?: boolean): Promise<{
|
|
110
74
|
success: boolean;
|
|
111
75
|
failedStep?: ValidationStep;
|
|
112
76
|
outputs: Map<string, string>;
|
|
@@ -142,9 +106,7 @@ export declare function runStepsInParallel(steps: ValidationStep[], phaseName: s
|
|
|
142
106
|
* ],
|
|
143
107
|
* },
|
|
144
108
|
* ],
|
|
145
|
-
* stateFilePath: '.vibe-validate-state.yaml',
|
|
146
109
|
* enableFailFast: false,
|
|
147
|
-
* forceRun: false,
|
|
148
110
|
* });
|
|
149
111
|
*
|
|
150
112
|
* if (result.passed) {
|
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,EAAS,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAQzD,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EAEX,MAAM,YAAY,CAAC;AA+CpB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,CAyKD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+HvF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAe5E"}
|
package/dist/runner.js
CHANGED
|
@@ -10,11 +10,12 @@
|
|
|
10
10
|
* @packageDocumentation
|
|
11
11
|
*/
|
|
12
12
|
import { spawn } from 'child_process';
|
|
13
|
-
import { writeFileSync, appendFileSync
|
|
13
|
+
import { writeFileSync, appendFileSync } from 'fs';
|
|
14
14
|
import { tmpdir } from 'os';
|
|
15
15
|
import { join } from 'path';
|
|
16
|
-
import
|
|
16
|
+
import stripAnsi from 'strip-ansi';
|
|
17
17
|
import { getGitTreeHash } from '@vibe-validate/git';
|
|
18
|
+
import { extractByStepName } from '@vibe-validate/extractors';
|
|
18
19
|
import { stopProcessGroup } from './process-utils.js';
|
|
19
20
|
/**
|
|
20
21
|
* Legacy function - REMOVED in favor of @vibe-validate/git package
|
|
@@ -25,47 +26,39 @@ import { stopProcessGroup } from './process-utils.js';
|
|
|
25
26
|
* @deprecated Removed in v0.9.11 - Use @vibe-validate/git instead
|
|
26
27
|
*/
|
|
27
28
|
/**
|
|
28
|
-
*
|
|
29
|
+
* Calculate extraction quality score based on extractor output
|
|
29
30
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
31
|
+
* Scores extraction quality from 0-100 based on:
|
|
32
|
+
* - Number of errors extracted
|
|
33
|
+
* - Field completeness (file, line, message)
|
|
34
|
+
* - Actionability (can an LLM/human act on this?)
|
|
32
35
|
*
|
|
33
|
-
* @param
|
|
34
|
-
* @
|
|
35
|
-
* @returns Object with alreadyPassed flag and optional previousState
|
|
36
|
+
* @param formatted - Extractor output
|
|
37
|
+
* @returns Quality score (0-100)
|
|
36
38
|
*
|
|
37
|
-
* @
|
|
38
|
-
* ```typescript
|
|
39
|
-
* const { alreadyPassed, previousState } = checkExistingValidation(
|
|
40
|
-
* 'abc123...',
|
|
41
|
-
* '.validate-state.json'
|
|
42
|
-
* );
|
|
43
|
-
*
|
|
44
|
-
* if (alreadyPassed) {
|
|
45
|
-
* console.log('Validation already passed!');
|
|
46
|
-
* return previousState;
|
|
47
|
-
* }
|
|
48
|
-
* ```
|
|
49
|
-
*
|
|
50
|
-
* @public
|
|
39
|
+
* @internal
|
|
51
40
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
// Parse as YAML (JSON is valid YAML, so this handles both)
|
|
59
|
-
const state = yamlParse(content);
|
|
60
|
-
// Check if validation passed and tree hash matches
|
|
61
|
-
if (state.passed && state.treeHash === currentTreeHash) {
|
|
62
|
-
return { alreadyPassed: true, previousState: state };
|
|
63
|
-
}
|
|
64
|
-
return { alreadyPassed: false, previousState: state };
|
|
41
|
+
function calculateExtractionQuality(formatted) {
|
|
42
|
+
let score = 0;
|
|
43
|
+
// Error extraction (0-60 points)
|
|
44
|
+
const errorCount = formatted.errors?.length || 0;
|
|
45
|
+
if (errorCount > 0) {
|
|
46
|
+
score += Math.min(60, errorCount * 12); // Max 60 points for 5+ errors
|
|
65
47
|
}
|
|
66
|
-
|
|
67
|
-
|
|
48
|
+
// Field completeness (0-40 points)
|
|
49
|
+
const errors = formatted.errors || [];
|
|
50
|
+
if (errors.length > 0) {
|
|
51
|
+
const firstError = errors[0];
|
|
52
|
+
let fieldScore = 0;
|
|
53
|
+
if (firstError.file)
|
|
54
|
+
fieldScore += 10;
|
|
55
|
+
if (firstError.line !== undefined)
|
|
56
|
+
fieldScore += 10;
|
|
57
|
+
if (firstError.message)
|
|
58
|
+
fieldScore += 20;
|
|
59
|
+
score += fieldScore;
|
|
68
60
|
}
|
|
61
|
+
return Math.min(100, score);
|
|
69
62
|
}
|
|
70
63
|
/**
|
|
71
64
|
* Parse test output to extract specific failures
|
|
@@ -73,8 +66,8 @@ export function checkExistingValidation(currentTreeHash, stateFilePath) {
|
|
|
73
66
|
* Extracts failure details from validation step output using pattern matching.
|
|
74
67
|
* Supports Vitest, TypeScript, and ESLint error formats.
|
|
75
68
|
*
|
|
76
|
-
* Note: This is a basic implementation - the
|
|
77
|
-
* more sophisticated parsing with tool-specific
|
|
69
|
+
* Note: This is a basic implementation - the extractors package provides
|
|
70
|
+
* more sophisticated parsing with tool-specific extractors.
|
|
78
71
|
*
|
|
79
72
|
* @param output - Raw stdout/stderr output from validation step
|
|
80
73
|
* @returns Array of extracted failure messages (max 10 per failure type)
|
|
@@ -91,6 +84,7 @@ export function checkExistingValidation(currentTreeHash, stateFilePath) {
|
|
|
91
84
|
* ```
|
|
92
85
|
*
|
|
93
86
|
* @public
|
|
87
|
+
* @deprecated Use extractByStepName() from @vibe-validate/extractors instead
|
|
94
88
|
*/
|
|
95
89
|
export function parseFailures(output) {
|
|
96
90
|
const failures = [];
|
|
@@ -143,8 +137,12 @@ export function parseFailures(output) {
|
|
|
143
137
|
*
|
|
144
138
|
* @public
|
|
145
139
|
*/
|
|
146
|
-
export async function runStepsInParallel(steps, phaseName, enableFailFast = false, env = {}, verbose = false) {
|
|
147
|
-
|
|
140
|
+
export async function runStepsInParallel(steps, phaseName, enableFailFast = false, env = {}, verbose = false, yaml = false, developerFeedback = false) {
|
|
141
|
+
// When yaml mode is on, write progress to stderr to keep stdout clean
|
|
142
|
+
const log = yaml ?
|
|
143
|
+
(msg) => process.stderr.write(msg + '\n') :
|
|
144
|
+
(msg) => console.log(msg);
|
|
145
|
+
log(`\n🔍 Running ${phaseName} (${steps.length} steps in parallel)...`);
|
|
148
146
|
// Find longest step name for alignment
|
|
149
147
|
const maxNameLength = Math.max(...steps.map(s => s.name.length));
|
|
150
148
|
const outputs = new Map();
|
|
@@ -153,7 +151,7 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
|
|
|
153
151
|
let firstFailure = null;
|
|
154
152
|
const results = await Promise.allSettled(steps.map(step => new Promise((resolve, reject) => {
|
|
155
153
|
const paddedName = step.name.padEnd(maxNameLength);
|
|
156
|
-
|
|
154
|
+
log(` ⏳ ${paddedName} → ${step.command}`);
|
|
157
155
|
const startTime = Date.now();
|
|
158
156
|
// Use shell: true for cross-platform compatibility
|
|
159
157
|
// Node.js automatically selects cmd.exe on Windows, sh on Unix
|
|
@@ -173,18 +171,29 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
|
|
|
173
171
|
let stderr = '';
|
|
174
172
|
proc.stdout.on('data', data => {
|
|
175
173
|
const chunk = data.toString();
|
|
176
|
-
|
|
174
|
+
// Strip ANSI escape codes to make output readable for humans and LLMs
|
|
175
|
+
// These codes (e.g., \e[32m for colors) are noise in logs, YAML, and git notes
|
|
176
|
+
const cleanChunk = stripAnsi(chunk);
|
|
177
|
+
stdout += cleanChunk;
|
|
177
178
|
// Stream output in real-time when verbose mode is enabled
|
|
179
|
+
// When yaml mode is on, redirect subprocess output to stderr to keep stdout clean
|
|
178
180
|
if (verbose) {
|
|
179
|
-
|
|
181
|
+
if (yaml) {
|
|
182
|
+
process.stderr.write(chunk); // Keep colors for terminal viewing
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
process.stdout.write(chunk); // Keep colors for terminal viewing
|
|
186
|
+
}
|
|
180
187
|
}
|
|
181
188
|
});
|
|
182
189
|
proc.stderr.on('data', data => {
|
|
183
190
|
const chunk = data.toString();
|
|
184
|
-
stderr
|
|
191
|
+
// Strip ANSI escape codes from stderr as well
|
|
192
|
+
const cleanChunk = stripAnsi(chunk);
|
|
193
|
+
stderr += cleanChunk;
|
|
185
194
|
// Stream errors in real-time when verbose mode is enabled
|
|
186
195
|
if (verbose) {
|
|
187
|
-
process.stderr.write(chunk);
|
|
196
|
+
process.stderr.write(chunk); // Keep colors for terminal viewing
|
|
188
197
|
}
|
|
189
198
|
});
|
|
190
199
|
proc.on('close', code => {
|
|
@@ -194,8 +203,54 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
|
|
|
194
203
|
outputs.set(step.name, output);
|
|
195
204
|
const status = code === 0 ? '✅' : '❌';
|
|
196
205
|
const result = code === 0 ? 'PASSED' : 'FAILED';
|
|
197
|
-
|
|
198
|
-
|
|
206
|
+
log(` ${status} ${step.name.padEnd(maxNameLength)} - ${result} (${durationSecs}s)`);
|
|
207
|
+
// Create base step result
|
|
208
|
+
const stepResult = {
|
|
209
|
+
name: step.name,
|
|
210
|
+
passed: code === 0,
|
|
211
|
+
durationSecs,
|
|
212
|
+
};
|
|
213
|
+
// Only run extractors on FAILED steps (code !== 0)
|
|
214
|
+
// Rationale: Passing tests have no failures to extract, extraction would always produce
|
|
215
|
+
// meaningless results (score: 0, no errors). Skipping saves CPU and reduces output noise.
|
|
216
|
+
if (code !== 0 && output && output.trim()) {
|
|
217
|
+
const formatted = extractByStepName(step.name, output);
|
|
218
|
+
// Extract structured failures/tests
|
|
219
|
+
stepResult.failedTests = formatted.errors?.map(error => {
|
|
220
|
+
const location = error.file
|
|
221
|
+
? `${error.file}${error.line ? `:${error.line}` : ''}`
|
|
222
|
+
: 'unknown';
|
|
223
|
+
return `${location} - ${error.message || 'No message'}`;
|
|
224
|
+
}) || [];
|
|
225
|
+
// Only include extraction quality metrics when developerFeedback is enabled
|
|
226
|
+
// This is for vibe-validate contributors to identify extraction improvement opportunities
|
|
227
|
+
if (developerFeedback) {
|
|
228
|
+
// Detect tool from step name (heuristic until extractors returns this)
|
|
229
|
+
const detectedTool = step.name.toLowerCase().includes('typescript') || step.name.toLowerCase().includes('tsc')
|
|
230
|
+
? 'typescript'
|
|
231
|
+
: step.name.toLowerCase().includes('eslint')
|
|
232
|
+
? 'eslint'
|
|
233
|
+
: step.name.toLowerCase().includes('test') || step.name.toLowerCase().includes('vitest')
|
|
234
|
+
? 'vitest'
|
|
235
|
+
: 'unknown';
|
|
236
|
+
// Calculate extraction quality metrics
|
|
237
|
+
const score = calculateExtractionQuality(formatted);
|
|
238
|
+
stepResult.extractionQuality = {
|
|
239
|
+
detectedTool,
|
|
240
|
+
confidence: score >= 80 ? 'high' : score >= 50 ? 'medium' : 'low',
|
|
241
|
+
score,
|
|
242
|
+
warnings: formatted.errors?.filter(e => e.severity === 'warning').length || 0,
|
|
243
|
+
errorsExtracted: formatted.errors?.filter(e => e.severity !== 'warning').length || formatted.errors?.length || 0,
|
|
244
|
+
actionable: (formatted.errors?.length || 0) > 0,
|
|
245
|
+
};
|
|
246
|
+
// Alert on poor extraction quality (for failed steps)
|
|
247
|
+
if (score < 50) {
|
|
248
|
+
log(` ⚠️ Poor extraction quality (${score}%) - Extractors failed to extract failures`);
|
|
249
|
+
log(` 💡 vibe-validate improvement opportunity: Improve ${detectedTool} extractor for this output`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
stepResults.push(stepResult);
|
|
199
254
|
if (code === 0) {
|
|
200
255
|
resolve({ step, output, durationSecs });
|
|
201
256
|
}
|
|
@@ -206,7 +261,7 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
|
|
|
206
261
|
// Even if multiple failures occur, only one will be firstFailure, which is acceptable.
|
|
207
262
|
if (enableFailFast && !firstFailure) {
|
|
208
263
|
firstFailure = { step, output };
|
|
209
|
-
|
|
264
|
+
log(`\n⚠️ Fail-fast enabled: Killing remaining processes...`);
|
|
210
265
|
// Kill all other running processes
|
|
211
266
|
for (const { proc: otherProc, step: otherStep } of processes) {
|
|
212
267
|
if (otherStep !== step && otherProc.exitCode === null) {
|
|
@@ -259,9 +314,7 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
|
|
|
259
314
|
* ],
|
|
260
315
|
* },
|
|
261
316
|
* ],
|
|
262
|
-
* stateFilePath: '.vibe-validate-state.yaml',
|
|
263
317
|
* enableFailFast: false,
|
|
264
|
-
* forceRun: false,
|
|
265
318
|
* });
|
|
266
319
|
*
|
|
267
320
|
* if (result.passed) {
|
|
@@ -275,19 +328,11 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
|
|
|
275
328
|
* @public
|
|
276
329
|
*/
|
|
277
330
|
export async function runValidation(config) {
|
|
278
|
-
const { phases,
|
|
331
|
+
const { phases, logPath = join(tmpdir(), `validation-${new Date().toISOString().replace(/[:.]/g, '-')}.log`), enableFailFast = false, env = {}, onPhaseStart, onPhaseComplete, } = config;
|
|
279
332
|
// Get current working tree hash (deterministic, content-based)
|
|
280
333
|
const currentTreeHash = await getGitTreeHash();
|
|
281
|
-
//
|
|
282
|
-
|
|
283
|
-
const { alreadyPassed, previousState } = checkExistingValidation(currentTreeHash, stateFilePath);
|
|
284
|
-
if (alreadyPassed && previousState) {
|
|
285
|
-
console.log('✅ Validation already passed for current working tree state');
|
|
286
|
-
console.log(` Tree hash: ${currentTreeHash.substring(0, 12)}...`);
|
|
287
|
-
console.log(` Last validated: ${previousState.timestamp}`);
|
|
288
|
-
return previousState;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
334
|
+
// Note: Caching is now handled at the CLI layer via git notes
|
|
335
|
+
// (see packages/cli/src/commands/validate.ts and @vibe-validate/history)
|
|
291
336
|
// Initialize log file
|
|
292
337
|
writeFileSync(logPath, `Validation started at ${new Date().toISOString()}\n\n`);
|
|
293
338
|
let failedStep = null;
|
|
@@ -298,7 +343,7 @@ export async function runValidation(config) {
|
|
|
298
343
|
onPhaseStart(phase);
|
|
299
344
|
}
|
|
300
345
|
const phaseStartTime = Date.now();
|
|
301
|
-
const result = await runStepsInParallel(phase.steps, phase.name, enableFailFast, env, config.verbose ?? false);
|
|
346
|
+
const result = await runStepsInParallel(phase.steps, phase.name, enableFailFast, env, config.verbose ?? false, config.yaml ?? false, config.developerFeedback ?? false);
|
|
302
347
|
const phaseDurationMs = Date.now() - phaseStartTime;
|
|
303
348
|
const durationSecs = parseFloat((phaseDurationMs / 1000).toFixed(1));
|
|
304
349
|
// Append all outputs to log file
|
|
@@ -315,9 +360,11 @@ export async function runValidation(config) {
|
|
|
315
360
|
passed: result.success,
|
|
316
361
|
steps: result.stepResults,
|
|
317
362
|
};
|
|
318
|
-
// If phase failed, include output
|
|
363
|
+
// If phase failed, extract and include output (LLM-optimized, not raw)
|
|
319
364
|
if (!result.success && result.failedStep) {
|
|
320
|
-
|
|
365
|
+
const rawOutput = result.outputs.get(result.failedStep.name) || '';
|
|
366
|
+
const extracted = extractByStepName(result.failedStep.name, rawOutput);
|
|
367
|
+
phaseResult.output = extracted.cleanOutput.trim() || rawOutput;
|
|
321
368
|
}
|
|
322
369
|
phaseResults.push(phaseResult);
|
|
323
370
|
if (onPhaseComplete) {
|
|
@@ -327,33 +374,48 @@ export async function runValidation(config) {
|
|
|
327
374
|
if (!result.success && result.failedStep) {
|
|
328
375
|
failedStep = result.failedStep;
|
|
329
376
|
const failedOutput = result.outputs.get(failedStep.name) || '';
|
|
330
|
-
|
|
377
|
+
// Extract actionable failures from raw output (LLM-optimized, 5-10 lines instead of 100+)
|
|
378
|
+
// This reduces git notes bloat and makes errors immediately actionable
|
|
379
|
+
const extracted = extractByStepName(failedStep.name, failedOutput);
|
|
380
|
+
// Use cleanOutput for storage (already formatted for YAML/JSON, stripped of ANSI codes)
|
|
381
|
+
// Falls back to raw output if extraction fails
|
|
382
|
+
const extractedOutput = extracted.cleanOutput.trim() || failedOutput;
|
|
383
|
+
// Use structured errors from extractor (replaces deprecated parseFailures)
|
|
384
|
+
const structuredFailures = extracted.errors.map(error => {
|
|
385
|
+
const location = error.file
|
|
386
|
+
? `${error.file}${error.line ? `:${error.line}` : ''}`
|
|
387
|
+
: 'unknown';
|
|
388
|
+
return `${location} - ${error.message || 'No message'}`;
|
|
389
|
+
});
|
|
390
|
+
// IMPORTANT: Field order matches types.ts for YAML truncation safety
|
|
391
|
+
// Verbose fields (phases, failedStepOutput) at the end
|
|
331
392
|
const validationResult = {
|
|
332
393
|
passed: false,
|
|
333
394
|
timestamp: new Date().toISOString(),
|
|
334
395
|
treeHash: currentTreeHash,
|
|
335
|
-
phases: phaseResults,
|
|
336
396
|
failedStep: failedStep.name,
|
|
337
397
|
rerunCommand: failedStep.command,
|
|
338
|
-
|
|
339
|
-
failedTests: failures.length > 0 ? failures : undefined,
|
|
398
|
+
failedTests: structuredFailures.length > 0 ? structuredFailures : undefined,
|
|
340
399
|
fullLogFile: logPath,
|
|
400
|
+
phases: phaseResults, // Contains verbose output - near end
|
|
401
|
+
failedStepOutput: extractedOutput, // Most verbose - dead last
|
|
341
402
|
};
|
|
342
|
-
//
|
|
343
|
-
|
|
403
|
+
// State persistence moved to validate.ts via git notes (v0.12.0+)
|
|
404
|
+
// The state file is deprecated - git notes are now the source of truth
|
|
344
405
|
return validationResult;
|
|
345
406
|
}
|
|
346
407
|
}
|
|
347
408
|
// All steps passed!
|
|
409
|
+
// IMPORTANT: Field order matches types.ts for YAML truncation safety
|
|
348
410
|
const validationResult = {
|
|
349
411
|
passed: true,
|
|
350
412
|
timestamp: new Date().toISOString(),
|
|
351
413
|
treeHash: currentTreeHash,
|
|
352
|
-
phases: phaseResults,
|
|
353
414
|
fullLogFile: logPath,
|
|
415
|
+
phases: phaseResults, // May contain output - at end for safety
|
|
354
416
|
};
|
|
355
|
-
//
|
|
356
|
-
|
|
417
|
+
// State persistence moved to validate.ts via git notes (v0.12.0+)
|
|
418
|
+
// The state file is deprecated - git notes are now the source of truth
|
|
357
419
|
return validationResult;
|
|
358
420
|
}
|
|
359
421
|
/**
|
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/dist/types.d.ts
CHANGED
|
@@ -27,6 +27,23 @@ export interface ValidationPhase {
|
|
|
27
27
|
/** Steps to execute in this phase */
|
|
28
28
|
steps: ValidationStep[];
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Extraction quality metrics for a validation step
|
|
32
|
+
*/
|
|
33
|
+
export interface ExtractionQuality {
|
|
34
|
+
/** Tool detected from output (vitest, tsc, eslint, etc.) */
|
|
35
|
+
detectedTool: string;
|
|
36
|
+
/** Confidence level of tool detection */
|
|
37
|
+
confidence: 'high' | 'medium' | 'low';
|
|
38
|
+
/** Quality score (0-100) based on field extraction */
|
|
39
|
+
score: number;
|
|
40
|
+
/** Number of warnings extracted (even from passing tests) */
|
|
41
|
+
warnings: number;
|
|
42
|
+
/** Number of errors/failures extracted */
|
|
43
|
+
errorsExtracted: number;
|
|
44
|
+
/** Is the extraction actionable? (has structured failures/warnings) */
|
|
45
|
+
actionable: boolean;
|
|
46
|
+
}
|
|
30
47
|
/**
|
|
31
48
|
* Result from executing a validation step
|
|
32
49
|
*/
|
|
@@ -39,6 +56,10 @@ export interface StepResult {
|
|
|
39
56
|
durationSecs: number;
|
|
40
57
|
/** Output from the step (stdout + stderr) */
|
|
41
58
|
output?: string;
|
|
59
|
+
/** Extracted test failures (file:line - message) */
|
|
60
|
+
failedTests?: string[];
|
|
61
|
+
/** Extraction quality metrics (populated for all steps with output) */
|
|
62
|
+
extractionQuality?: ExtractionQuality;
|
|
42
63
|
}
|
|
43
64
|
/**
|
|
44
65
|
* Result from executing a validation phase
|
|
@@ -57,6 +78,10 @@ export interface PhaseResult {
|
|
|
57
78
|
}
|
|
58
79
|
/**
|
|
59
80
|
* Overall validation result
|
|
81
|
+
*
|
|
82
|
+
* IMPORTANT: Field order matters for YAML truncation safety!
|
|
83
|
+
* Verbose fields (failedStepOutput, phases with output) are at the END
|
|
84
|
+
* so that truncation doesn't break critical metadata (passed, timestamp, rerunCommand).
|
|
60
85
|
*/
|
|
61
86
|
export interface ValidationResult {
|
|
62
87
|
/** Did validation pass? */
|
|
@@ -65,37 +90,40 @@ export interface ValidationResult {
|
|
|
65
90
|
timestamp: string;
|
|
66
91
|
/** Git tree hash (if in git repo) */
|
|
67
92
|
treeHash: string;
|
|
68
|
-
/** Results from each phase */
|
|
69
|
-
phases?: PhaseResult[];
|
|
70
93
|
/** Name of failed step (if any) */
|
|
71
94
|
failedStep?: string;
|
|
72
95
|
/** Command to re-run failed step */
|
|
73
96
|
rerunCommand?: string;
|
|
74
|
-
/** Output from the failed step */
|
|
75
|
-
failedStepOutput?: string;
|
|
76
97
|
/** Failed test names (if applicable) */
|
|
77
98
|
failedTests?: string[];
|
|
78
99
|
/** Path to full log file */
|
|
79
100
|
fullLogFile?: string;
|
|
80
101
|
/** Summary message */
|
|
81
102
|
summary?: string;
|
|
103
|
+
/** Results from each phase (may contain verbose output field) */
|
|
104
|
+
phases?: PhaseResult[];
|
|
105
|
+
/** Output from the failed step (verbose - placed last for truncation safety) */
|
|
106
|
+
failedStepOutput?: string;
|
|
82
107
|
}
|
|
83
108
|
/**
|
|
84
109
|
* Validation configuration
|
|
110
|
+
*
|
|
111
|
+
* Note: State management (caching, forceRun) is now handled at the CLI layer
|
|
112
|
+
* via git notes. See packages/cli/src/commands/validate.ts and @vibe-validate/history.
|
|
85
113
|
*/
|
|
86
114
|
export interface ValidationConfig {
|
|
87
115
|
/** Validation phases to execute */
|
|
88
116
|
phases: ValidationPhase[];
|
|
89
|
-
/** Path to state file (default: .validate-state.json) */
|
|
90
|
-
stateFilePath?: string;
|
|
91
117
|
/** Path to log file (default: os.tmpdir()/validation-{timestamp}.log) */
|
|
92
118
|
logPath?: string;
|
|
93
119
|
/** Enable fail-fast (stop on first failure) */
|
|
94
120
|
enableFailFast?: boolean;
|
|
95
|
-
/** Force re-run even if state says validation already passed */
|
|
96
|
-
forceRun?: boolean;
|
|
97
121
|
/** Show verbose output (stream command stdout/stderr in real-time) */
|
|
98
122
|
verbose?: boolean;
|
|
123
|
+
/** Output YAML result to stdout (redirects subprocess output to stderr when true) */
|
|
124
|
+
yaml?: boolean;
|
|
125
|
+
/** Developer feedback for continuous quality improvement (default: false) */
|
|
126
|
+
developerFeedback?: boolean;
|
|
99
127
|
/** Environment variables to pass to all child processes */
|
|
100
128
|
env?: Record<string, string>;
|
|
101
129
|
/** Callback when phase starts */
|
|
@@ -106,21 +134,5 @@ export interface ValidationConfig {
|
|
|
106
134
|
onStepStart?: (_step: ValidationStep) => void;
|
|
107
135
|
/** Callback when step completes */
|
|
108
136
|
onStepComplete?: (_step: ValidationStep, _result: StepResult) => void;
|
|
109
|
-
/** Caching configuration */
|
|
110
|
-
caching?: {
|
|
111
|
-
/** Enable git tree hash caching */
|
|
112
|
-
enabled: boolean;
|
|
113
|
-
/** Cache strategy */
|
|
114
|
-
strategy: 'git-tree-hash' | 'file-hash' | 'timestamp';
|
|
115
|
-
/** Maximum age of cached results (ms) */
|
|
116
|
-
maxAge?: number;
|
|
117
|
-
};
|
|
118
|
-
/** Output configuration */
|
|
119
|
-
output?: {
|
|
120
|
-
/** Output format */
|
|
121
|
-
format: 'auto' | 'human' | 'yaml' | 'json';
|
|
122
|
-
/** Show verbose output */
|
|
123
|
-
verbose?: boolean;
|
|
124
|
-
};
|
|
125
137
|
}
|
|
126
138
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IAEb,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAEhB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,6BAA6B;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAElB,qCAAqC;IACrC,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IAEb,yBAAyB;IACzB,MAAM,EAAE,OAAO,CAAC;IAEhB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IAErB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.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.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Core validation orchestration engine for vibe-validate",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -15,6 +15,13 @@
|
|
|
15
15
|
"dist",
|
|
16
16
|
"validation-result.schema.json"
|
|
17
17
|
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc && node dist/scripts/generate-result-schema.js",
|
|
20
|
+
"dev": "tsc --watch",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"test:watch": "vitest",
|
|
23
|
+
"clean": "rm -rf dist *.tsbuildinfo validation-result.schema.json"
|
|
24
|
+
},
|
|
18
25
|
"keywords": [
|
|
19
26
|
"validation",
|
|
20
27
|
"parallel",
|
|
@@ -36,21 +43,16 @@
|
|
|
36
43
|
"access": "public"
|
|
37
44
|
},
|
|
38
45
|
"dependencies": {
|
|
46
|
+
"@vibe-validate/extractors": "workspace:*",
|
|
47
|
+
"@vibe-validate/git": "workspace:*",
|
|
48
|
+
"strip-ansi": "^7.1.2",
|
|
39
49
|
"yaml": "^2.6.1",
|
|
40
50
|
"zod": "^3.24.1",
|
|
41
|
-
"zod-to-json-schema": "^3.24.6"
|
|
42
|
-
"@vibe-validate/git": "0.11.0"
|
|
51
|
+
"zod-to-json-schema": "^3.24.6"
|
|
43
52
|
},
|
|
44
53
|
"devDependencies": {
|
|
45
54
|
"@types/node": "^20.17.6",
|
|
46
55
|
"typescript": "^5.7.2",
|
|
47
56
|
"vitest": "^2.1.8"
|
|
48
|
-
},
|
|
49
|
-
"scripts": {
|
|
50
|
-
"build": "tsc && node dist/scripts/generate-result-schema.js",
|
|
51
|
-
"dev": "tsc --watch",
|
|
52
|
-
"test": "vitest run",
|
|
53
|
-
"test:watch": "vitest",
|
|
54
|
-
"clean": "rm -rf dist *.tsbuildinfo validation-result.schema.json"
|
|
55
57
|
}
|
|
56
|
-
}
|
|
58
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Jeff Dutton
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|