@vibe-validate/core 0.14.3 → 0.15.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +24 -0
  2. package/dist/index.d.ts +9 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +7 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/output-capture-schema.d.ts +144 -0
  7. package/dist/output-capture-schema.d.ts.map +1 -0
  8. package/dist/output-capture-schema.js +52 -0
  9. package/dist/output-capture-schema.js.map +1 -0
  10. package/dist/process-utils.d.ts +84 -0
  11. package/dist/process-utils.d.ts.map +1 -1
  12. package/dist/process-utils.js +176 -1
  13. package/dist/process-utils.js.map +1 -1
  14. package/dist/result-schema.d.ts +1352 -88
  15. package/dist/result-schema.d.ts.map +1 -1
  16. package/dist/result-schema.js +114 -57
  17. package/dist/result-schema.js.map +1 -1
  18. package/dist/run-output-parser.d.ts +47 -0
  19. package/dist/run-output-parser.d.ts.map +1 -0
  20. package/dist/run-output-parser.js +109 -0
  21. package/dist/run-output-parser.js.map +1 -0
  22. package/dist/runner.d.ts +35 -2
  23. package/dist/runner.d.ts.map +1 -1
  24. package/dist/runner.js +105 -167
  25. package/dist/runner.js.map +1 -1
  26. package/dist/schema-utils.d.ts +57 -0
  27. package/dist/schema-utils.d.ts.map +1 -0
  28. package/dist/schema-utils.js +67 -0
  29. package/dist/schema-utils.js.map +1 -0
  30. package/dist/scripts/generate-result-schema.d.ts +1 -1
  31. package/dist/scripts/generate-result-schema.js +3 -3
  32. package/dist/scripts/generate-result-schema.js.map +1 -1
  33. package/dist/types.js +5 -1
  34. package/dist/types.js.map +1 -1
  35. package/package.json +6 -5
  36. package/validate-result.schema.json +245 -0
  37. package/dist/types.d.ts +0 -138
  38. package/dist/types.d.ts.map +0 -1
  39. package/validation-result.schema.json +0 -100
package/dist/runner.js CHANGED
@@ -9,57 +9,14 @@
9
9
  *
10
10
  * @packageDocumentation
11
11
  */
12
- import { spawn } from 'node:child_process';
13
12
  import { writeFileSync, appendFileSync } from 'node:fs';
14
13
  import { tmpdir } from 'node:os';
15
14
  import { join } from 'node:path';
16
15
  import stripAnsi from 'strip-ansi';
17
16
  import { getGitTreeHash } from '@vibe-validate/git';
18
17
  import { autoDetectAndExtract } from '@vibe-validate/extractors';
19
- import { stopProcessGroup } from './process-utils.js';
20
- /**
21
- * Legacy function - REMOVED in favor of @vibe-validate/git package
22
- *
23
- * Use `getGitTreeHash()` from '@vibe-validate/git' instead.
24
- * This provides deterministic, content-based tree hashing.
25
- *
26
- * @deprecated Removed in v0.9.11 - Use @vibe-validate/git instead
27
- */
28
- /**
29
- * Calculate extraction quality score based on extractor output
30
- *
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?)
35
- *
36
- * @param formatted - Extractor output
37
- * @returns Quality score (0-100)
38
- *
39
- * @internal
40
- */
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
47
- }
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;
60
- }
61
- return Math.min(100, score);
62
- }
18
+ import { stopProcessGroup, spawnCommand } from './process-utils.js';
19
+ import { parseVibeValidateOutput } from './run-output-parser.js';
63
20
  /**
64
21
  * Parse test output to extract specific failures
65
22
  *
@@ -107,49 +64,6 @@ export function parseFailures(output) {
107
64
  }
108
65
  return failures;
109
66
  }
110
- /**
111
- * Detect tool type from step name
112
- *
113
- * Uses heuristics to determine which validation tool is running based on the step name.
114
- * This is a temporary solution until extractors package returns detected tool type.
115
- *
116
- * @param stepName - Name of the validation step
117
- * @returns Detected tool identifier (typescript, eslint, vitest, or unknown)
118
- *
119
- * @internal
120
- */
121
- function detectToolFromStepName(stepName) {
122
- const stepLower = stepName.toLowerCase();
123
- if (stepLower.includes('typescript') || stepLower.includes('tsc')) {
124
- return 'typescript';
125
- }
126
- if (stepLower.includes('eslint')) {
127
- return 'eslint';
128
- }
129
- if (stepLower.includes('test') || stepLower.includes('vitest')) {
130
- return 'vitest';
131
- }
132
- return 'unknown';
133
- }
134
- /**
135
- * Calculate confidence level from extraction quality score
136
- *
137
- * Maps numeric quality scores to confidence levels for easier interpretation.
138
- *
139
- * @param score - Quality score (0-100)
140
- * @returns Confidence level (high >= 80, medium >= 50, low < 50)
141
- *
142
- * @internal
143
- */
144
- function calculateConfidenceLevel(score) {
145
- if (score >= 80) {
146
- return 'high';
147
- }
148
- if (score >= 50) {
149
- return 'medium';
150
- }
151
- return 'low';
152
- }
153
67
  /**
154
68
  * Process developer feedback for failed step
155
69
  *
@@ -165,22 +79,27 @@ function calculateConfidenceLevel(score) {
165
79
  *
166
80
  * @internal
167
81
  */
168
- function processDeveloperFeedback(stepResult, stepName, formatted, log, isWarning, isNotWarning) {
169
- const detectedTool = detectToolFromStepName(stepName);
170
- // eslint-disable-next-line sonarjs/deprecation -- calculateExtractionQuality is deprecated but still used for backwards compatibility
171
- const score = calculateExtractionQuality(formatted);
172
- const confidence = calculateConfidenceLevel(score);
173
- stepResult.extractionQuality = {
174
- detectedTool,
175
- confidence,
176
- score,
177
- warnings: formatted.errors?.filter(isWarning).length ?? 0,
178
- errorsExtracted: formatted.errors?.filter(isNotWarning).length ?? formatted.errors?.length ?? 0,
179
- actionable: (formatted.errors?.length ?? 0) > 0,
180
- };
82
+ function processDeveloperFeedback(_stepResult, formatted, log, _isWarning, _isNotWarning) {
83
+ // Use extraction metadata from extractors package
84
+ const detectedTool = formatted.metadata?.detection?.extractor ?? 'unknown';
85
+ const confidence = formatted.metadata?.confidence ?? 0;
86
+ const completeness = formatted.metadata?.completeness ?? 0;
87
+ // Map confidence to level (0-100 → high/medium/low)
88
+ let confidenceLevel;
89
+ if (confidence >= 80) {
90
+ confidenceLevel = 'high';
91
+ }
92
+ else if (confidence >= 50) {
93
+ confidenceLevel = 'medium';
94
+ }
95
+ else {
96
+ confidenceLevel = 'low';
97
+ }
98
+ // Log extraction quality for developer feedback (not added to result)
99
+ log(` 📊 Extraction quality: ${detectedTool} (${confidenceLevel} confidence: ${confidence}%, completeness: ${completeness}%)`);
181
100
  // Alert on poor extraction quality (for failed steps)
182
- if (score < 50) {
183
- log(` ⚠️ Poor extraction quality (${score}%) - Extractors failed to extract failures`);
101
+ if (confidence < 50) {
102
+ log(` ⚠️ Poor extraction quality (${confidence}%) - Extractors failed to extract failures`);
184
103
  log(` 💡 vibe-validate improvement opportunity: Improve ${detectedTool} extractor for this output`);
185
104
  }
186
105
  }
@@ -263,11 +182,6 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
263
182
  const processes = [];
264
183
  let firstFailure = null;
265
184
  // Helper functions (extracted to reduce nesting depth)
266
- const formatError = (error) => {
267
- const linePart = error.line ? `:${error.line}` : '';
268
- const location = error.file ? `${error.file}${linePart}` : 'unknown';
269
- return `${location} - ${error.message ?? 'No message'}`;
270
- };
271
185
  const isWarning = (e) => e.severity === 'warning';
272
186
  const isNotWarning = (e) => e.severity !== 'warning';
273
187
  const ignoreStopErrors = () => { };
@@ -275,23 +189,15 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
275
189
  const paddedName = step.name.padEnd(maxNameLength);
276
190
  log(` ⏳ ${paddedName} → ${step.command}`);
277
191
  const startTime = Date.now();
278
- // SECURITY: shell: true required for shell operators (&&, ||, |) and cross-platform compatibility.
279
- // Commands from user config files only (same trust as npm scripts). See SECURITY.md for full threat model.
280
- // NOSONAR - Intentional shell execution of user-defined commands
281
- const proc = spawn(step.command, [], {
282
- stdio: 'pipe',
283
- shell: true, // Cross-platform: cmd.exe on Windows, sh on Unix
284
- // detached: true only on Unix - Windows doesn't pipe stdio correctly when detached
285
- detached: process.platform !== 'win32',
286
- env: {
287
- ...process.env,
288
- ...env,
289
- }
192
+ const proc = spawnCommand(step.command, {
193
+ env,
290
194
  });
291
195
  // Track process for potential kill
292
196
  processes.push({ proc, step });
293
197
  let stdout = '';
294
198
  let stderr = '';
199
+ // spawnCommand always sets stdio: ['ignore', 'pipe', 'pipe'], so stdout/stderr are guaranteed non-null
200
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- spawnCommand always pipes stdout/stderr
295
201
  proc.stdout.on('data', data => {
296
202
  const chunk = data.toString();
297
203
  // Strip ANSI escape codes to make output readable for humans and LLMs
@@ -309,6 +215,7 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
309
215
  }
310
216
  }
311
217
  });
218
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- spawnCommand always pipes stdout/stderr
312
219
  proc.stderr.on('data', data => {
313
220
  const chunk = data.toString();
314
221
  // Strip ANSI escape codes from stderr as well
@@ -319,33 +226,82 @@ export async function runStepsInParallel(steps, phaseName, enableFailFast = fals
319
226
  process.stderr.write(chunk); // Keep colors for terminal viewing
320
227
  }
321
228
  });
322
- proc.on('close', code => {
229
+ // eslint-disable-next-line sonarjs/cognitive-complexity -- Complex handler for step completion, extraction, and fail-fast coordination
230
+ proc.on('close', exitCode => {
323
231
  const durationMs = Date.now() - startTime;
324
232
  const durationSecs = Number.parseFloat((durationMs / 1000).toFixed(1));
325
233
  const output = stdout + stderr;
326
234
  outputs.set(step.name, output);
235
+ // Normalize exit code (null means abnormal termination, treat as failure)
236
+ const code = exitCode ?? 1;
327
237
  const status = code === 0 ? '✅' : '❌';
328
238
  const result = code === 0 ? 'PASSED' : 'FAILED';
329
239
  log(` ${status} ${step.name.padEnd(maxNameLength)} - ${result} (${durationSecs}s)`);
330
- // Create base step result
240
+ // Extract errors ONLY from FAILED steps (code !== 0)
241
+ // Rationale: Passing tests have no failures to extract. Including empty extraction
242
+ // objects wastes tokens in LLM context. Only extract when there's value to provide.
243
+ let extraction;
244
+ let isCachedResult;
245
+ let outputFiles;
246
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain -- Explicit null/undefined/empty check is clearer than optional chaining
247
+ if (code !== 0 && output && output.trim()) {
248
+ // Try parsing vibe-validate YAML output (from nested run commands)
249
+ // Uses shared parser that handles both RunResult and ValidationResult formats
250
+ const parsed = parseVibeValidateOutput(output);
251
+ if (parsed) {
252
+ // Use extraction from nested vibe-validate command
253
+ // This preserves the actual meaningful summary instead of generic "X error(s) from nested command"
254
+ extraction = parsed.extraction;
255
+ isCachedResult = parsed.isCachedResult;
256
+ outputFiles = parsed.outputFiles;
257
+ // Log cache hit status if available (nested run was cached)
258
+ if (parsed.isCachedResult && verbose) {
259
+ log(` ⚡ Step used cached result (${parsed.type} command)`);
260
+ }
261
+ }
262
+ else {
263
+ // No vibe-validate YAML detected - use standard extraction
264
+ const rawExtraction = autoDetectAndExtract(output);
265
+ // Strip empty optional fields to save tokens
266
+ extraction = {
267
+ summary: rawExtraction.summary,
268
+ totalErrors: rawExtraction.totalErrors,
269
+ errors: rawExtraction.errors,
270
+ ...(rawExtraction.guidance?.trim() ? { guidance: rawExtraction.guidance } : {}),
271
+ ...(rawExtraction.errorSummary?.trim() ? { errorSummary: rawExtraction.errorSummary } : {}),
272
+ ...(rawExtraction.metadata ? { metadata: rawExtraction.metadata } : {}),
273
+ };
274
+ }
275
+ }
276
+ else if (output?.trim()) {
277
+ // Passing step (code === 0) - check if it was cached
278
+ const parsed = parseVibeValidateOutput(output);
279
+ if (parsed) {
280
+ isCachedResult = parsed.isCachedResult;
281
+ outputFiles = parsed.outputFiles;
282
+ // Log cache hit status if available
283
+ if (parsed.isCachedResult && verbose) {
284
+ log(` ⚡ Step used cached result (${parsed.type} command)`);
285
+ }
286
+ }
287
+ }
288
+ // If passing step (code === 0), extraction remains undefined (token optimization)
289
+ // Create step result - extends CommandExecutionSchema (v0.15.0+)
331
290
  const stepResult = {
332
291
  name: step.name,
333
- passed: code === 0,
292
+ command: step.command,
293
+ exitCode: code,
334
294
  durationSecs,
295
+ passed: code === 0,
296
+ ...(isCachedResult !== undefined ? { isCachedResult } : {}), // Include cache status if available
297
+ ...(extraction ? { extraction } : {}), // Conditionally include extraction
298
+ ...(outputFiles ? { outputFiles } : {}), // Include output files for debugging (v0.15.1+)
335
299
  };
336
- // Only run extractors on FAILED steps (code !== 0)
337
- // Rationale: Passing tests have no failures to extract, extraction would always produce
338
- // meaningless results (score: 0, no errors). Skipping saves CPU and reduces output noise.
339
- // eslint-disable-next-line @typescript-eslint/prefer-optional-chain -- Explicit null/undefined/empty check is clearer than optional chaining
340
- if (code !== 0 && output && output.trim()) {
341
- const formatted = autoDetectAndExtract(step.name, output);
342
- // Extract structured failures/tests
343
- stepResult.failedTests = formatted.errors?.map(formatError) ?? [];
344
- // Only include extraction quality metrics when developerFeedback is enabled
345
- // This is for vibe-validate contributors to identify extraction improvement opportunities
346
- if (developerFeedback) {
347
- processDeveloperFeedback(stepResult, step.name, formatted, log, isWarning, isNotWarning);
348
- }
300
+ // Only include extraction quality metrics when developerFeedback is enabled
301
+ // Skip if extraction already has metadata (from smart extractors) - that's more accurate
302
+ // This is for vibe-validate contributors to identify extraction improvement opportunities
303
+ if (developerFeedback && extraction && !extraction.metadata) {
304
+ processDeveloperFeedback(stepResult, extraction, log, isWarning, isNotWarning);
349
305
  }
350
306
  stepResults.push(stepResult);
351
307
  if (code === 0) {
@@ -379,28 +335,21 @@ function appendStepOutputsToLog(logPath, outputs, failedStepName) {
379
335
  }
380
336
  }
381
337
  /**
382
- * Create failed validation result with extracted errors
338
+ * Create failed validation result
339
+ *
340
+ * Note: Error extraction now happens at step level
341
+ * Each failed step in phaseResults has its own extraction field with structured errors
383
342
  */
384
- function createFailedValidationResult(failedStep, failedOutput, currentTreeHash, logPath, phaseResults) {
385
- // Extract actionable failures (LLM-optimized)
386
- const extracted = autoDetectAndExtract(failedStep.name, failedOutput);
387
- const extractedOutput = extracted.cleanOutput.trim() || failedOutput;
388
- // Use structured errors from extractor
389
- const structuredFailures = extracted.errors.map(error => {
390
- const linePart = error.line ? `:${error.line}` : '';
391
- const location = error.file ? `${error.file}${linePart}` : 'unknown';
392
- return `${location} - ${error.message ?? 'No message'}`;
393
- });
343
+ function createFailedValidationResult(failedStep, currentTreeHash, logPath, phaseResults) {
344
+ // Field order optimized for LLM consumption
394
345
  return {
395
346
  passed: false,
396
347
  timestamp: new Date().toISOString(),
397
348
  treeHash: currentTreeHash,
349
+ summary: `${failedStep.name} failed`,
398
350
  failedStep: failedStep.name,
399
- rerunCommand: failedStep.command,
400
- failedTests: structuredFailures.length > 0 ? structuredFailures : undefined,
401
- fullLogFile: logPath,
402
351
  phases: phaseResults,
403
- failedStepOutput: extractedOutput,
352
+ fullLogFile: logPath,
404
353
  };
405
354
  }
406
355
  /**
@@ -440,7 +389,6 @@ function createFailedValidationResult(failedStep, failedOutput, currentTreeHash,
440
389
  * console.log('✅ Validation passed');
441
390
  * } else {
442
391
  * console.error(`❌ Failed at step: ${result.failedStep}`);
443
- * console.error(result.failedStepOutput);
444
392
  * }
445
393
  * ```
446
394
  *
@@ -469,39 +417,29 @@ export async function runValidation(config) {
469
417
  // Record phase result
470
418
  const phaseResult = {
471
419
  name: phase.name,
472
- durationSecs,
473
420
  passed: result.success,
421
+ durationSecs,
474
422
  steps: result.stepResults,
475
423
  };
476
- // If phase failed, extract and include output (LLM-optimized, not raw)
477
- if (!result.success && result.failedStep) {
478
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Need to filter empty strings, not just null/undefined
479
- const rawOutput = result.outputs.get(result.failedStep.name) || '';
480
- const extracted = autoDetectAndExtract(result.failedStep.name, rawOutput);
481
- phaseResult.output = extracted.cleanOutput.trim() || rawOutput;
482
- }
483
424
  phaseResults.push(phaseResult);
484
425
  if (onPhaseComplete) {
485
426
  onPhaseComplete(phase, phaseResult);
486
427
  }
487
428
  // If phase failed, stop here and return failure result
488
429
  if (!result.success && result.failedStep) {
489
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Need to filter empty strings, not just null/undefined
490
- const failedOutput = result.outputs.get(result.failedStep.name) || '';
491
- return createFailedValidationResult(result.failedStep, failedOutput, currentTreeHash, logPath, phaseResults);
430
+ return createFailedValidationResult(result.failedStep, currentTreeHash, logPath, phaseResults);
492
431
  }
493
432
  }
494
433
  // All steps passed!
495
- // IMPORTANT: Field order matches types.ts for YAML truncation safety
434
+ // Field order optimized for LLM consumption
496
435
  const validationResult = {
497
436
  passed: true,
498
437
  timestamp: new Date().toISOString(),
499
438
  treeHash: currentTreeHash,
439
+ summary: 'Validation passed',
440
+ phases: phaseResults,
500
441
  fullLogFile: logPath,
501
- phases: phaseResults, // May contain output - at end for safety
502
442
  };
503
- // State persistence moved to validate.ts via git notes (v0.12.0+)
504
- // The state file is deprecated - git notes are now the source of truth
505
443
  return validationResult;
506
444
  }
507
445
  /**
@@ -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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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Zod Schema Utilities
3
+ *
4
+ * Shared validation helpers for consistent error handling across packages.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import type { z } from 'zod';
9
+ /**
10
+ * Create a type-safe validator function from a Zod schema
11
+ *
12
+ * Provides consistent error formatting across all schema validations.
13
+ * Error messages include full path (e.g., "phases.0.steps.2.command: Required")
14
+ *
15
+ * @param schema - Zod schema to validate against
16
+ * @returns Safe validation function with success/error union type
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const safeValidateResult = createSafeValidator(ValidationResultSchema);
21
+ *
22
+ * const result = safeValidateResult(data);
23
+ * if (result.success) {
24
+ * console.log(result.data); // Typed as ValidationResult
25
+ * } else {
26
+ * console.error(result.errors); // Array of formatted error messages
27
+ * }
28
+ * ```
29
+ */
30
+ export declare function createSafeValidator<T extends z.ZodType>(schema: T): (data: unknown) => {
31
+ success: true;
32
+ data: z.infer<T>;
33
+ } | {
34
+ success: false;
35
+ errors: string[];
36
+ };
37
+ /**
38
+ * Create a strict validator function from a Zod schema
39
+ *
40
+ * Throws on validation failure (useful when invalid data is a critical error).
41
+ *
42
+ * @param schema - Zod schema to validate against
43
+ * @returns Strict validation function that throws on error
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const validateResult = createStrictValidator(ValidationResultSchema);
48
+ *
49
+ * try {
50
+ * const result = validateResult(data); // Typed as ValidationResult
51
+ * } catch (error) {
52
+ * console.error('Invalid data:', error);
53
+ * }
54
+ * ```
55
+ */
56
+ export declare function createStrictValidator<T extends z.ZodType>(schema: T): (data: unknown) => z.infer<T>;
57
+ //# sourceMappingURL=schema-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-utils.d.ts","sourceRoot":"","sources":["../src/schema-utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,IACnC,MAAM,OAAO,KACtC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;CAAE,GACnC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAezC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,IACzC,MAAM,OAAO,KAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAGpD"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Zod Schema Utilities
3
+ *
4
+ * Shared validation helpers for consistent error handling across packages.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ /**
9
+ * Create a type-safe validator function from a Zod schema
10
+ *
11
+ * Provides consistent error formatting across all schema validations.
12
+ * Error messages include full path (e.g., "phases.0.steps.2.command: Required")
13
+ *
14
+ * @param schema - Zod schema to validate against
15
+ * @returns Safe validation function with success/error union type
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const safeValidateResult = createSafeValidator(ValidationResultSchema);
20
+ *
21
+ * const result = safeValidateResult(data);
22
+ * if (result.success) {
23
+ * console.log(result.data); // Typed as ValidationResult
24
+ * } else {
25
+ * console.error(result.errors); // Array of formatted error messages
26
+ * }
27
+ * ```
28
+ */
29
+ export function createSafeValidator(schema) {
30
+ return function safeValidate(data) {
31
+ const result = schema.safeParse(data);
32
+ if (result.success) {
33
+ return { success: true, data: result.data };
34
+ }
35
+ // Extract error messages with full path
36
+ const errors = result.error.errors.map(err => {
37
+ const path = err.path.join('.');
38
+ return path ? `${path}: ${err.message}` : err.message;
39
+ });
40
+ return { success: false, errors };
41
+ };
42
+ }
43
+ /**
44
+ * Create a strict validator function from a Zod schema
45
+ *
46
+ * Throws on validation failure (useful when invalid data is a critical error).
47
+ *
48
+ * @param schema - Zod schema to validate against
49
+ * @returns Strict validation function that throws on error
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const validateResult = createStrictValidator(ValidationResultSchema);
54
+ *
55
+ * try {
56
+ * const result = validateResult(data); // Typed as ValidationResult
57
+ * } catch (error) {
58
+ * console.error('Invalid data:', error);
59
+ * }
60
+ * ```
61
+ */
62
+ export function createStrictValidator(schema) {
63
+ return function validate(data) {
64
+ return schema.parse(data);
65
+ };
66
+ }
67
+ //# sourceMappingURL=schema-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-utils.js","sourceRoot":"","sources":["../src/schema-utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,mBAAmB,CAAsB,MAAS;IAChE,OAAO,SAAS,YAAY,CAAC,IAAa;QAGxC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9C,CAAC;QAED,wCAAwC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CAAsB,MAAS;IAClE,OAAO,SAAS,QAAQ,CAAC,IAAa;QACpC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC"}
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Generate JSON Schema File for Validation Results
4
4
  *
5
- * Creates validation-result.schema.json in the package root for use in
5
+ * Creates validate-result.schema.json in the package root for use in
6
6
  * validating documentation examples and agent integration code.
7
7
  * This script runs during the build process.
8
8
  */
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Generate JSON Schema File for Validation Results
4
4
  *
5
- * Creates validation-result.schema.json in the package root for use in
5
+ * Creates validate-result.schema.json in the package root for use in
6
6
  * validating documentation examples and agent integration code.
7
7
  * This script runs during the build process.
8
8
  */
@@ -13,8 +13,8 @@ import { validationResultJsonSchema } from '../result-schema-export.js';
13
13
  const __filename = fileURLToPath(import.meta.url);
14
14
  const __dirname = dirname(__filename);
15
15
  const packageRoot = join(__dirname, '..', '..');
16
- const schemaPath = join(packageRoot, 'validation-result.schema.json');
16
+ const schemaPath = join(packageRoot, 'validate-result.schema.json');
17
17
  // Generate and write schema file
18
18
  writeFileSync(schemaPath, JSON.stringify(validationResultJsonSchema, null, 2), 'utf-8');
19
- console.log('✓ Generated validation-result.schema.json');
19
+ console.log('✓ Generated validate-result.schema.json');
20
20
  //# sourceMappingURL=generate-result-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-result-schema.js","sourceRoot":"","sources":["../../src/scripts/generate-result-schema.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;AAEtE,iCAAiC;AACjC,aAAa,CACX,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC,EACnD,OAAO,CACR,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC"}
1
+ {"version":3,"file":"generate-result-schema.js","sourceRoot":"","sources":["../../src/scripts/generate-result-schema.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;AAEpE,iCAAiC;AACjC,aAAa,CACX,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC,EACnD,OAAO,CACR,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC"}
package/dist/types.js CHANGED
@@ -1,7 +1,11 @@
1
1
  /**
2
2
  * Core validation types for vibe-validate
3
3
  *
4
- * These types define the validation configuration structure and result types.
4
+ * Re-exports types from schema packages (single source of truth):
5
+ * - Input config types (ValidationStep, ValidationPhase) from @vibe-validate/config
6
+ * - Output result types (StepResult, PhaseResult, ValidationResult) from ./result-schema
7
+ *
8
+ * Defines runtime-only types (ValidationConfig with callbacks, ExtractionQuality)
5
9
  */
6
10
  export {};
7
11
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}