@vibe-validate/cli 0.11.0 → 0.12.1

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 (82) hide show
  1. package/README.md +14 -4
  2. package/dist/bin.js +88 -13
  3. package/dist/bin.js.map +1 -1
  4. package/dist/commands/cleanup.d.ts +4 -0
  5. package/dist/commands/cleanup.d.ts.map +1 -1
  6. package/dist/commands/cleanup.js +94 -2
  7. package/dist/commands/cleanup.js.map +1 -1
  8. package/dist/commands/config.d.ts +4 -0
  9. package/dist/commands/config.d.ts.map +1 -1
  10. package/dist/commands/config.js +83 -0
  11. package/dist/commands/config.js.map +1 -1
  12. package/dist/commands/doctor.d.ts +4 -0
  13. package/dist/commands/doctor.d.ts.map +1 -1
  14. package/dist/commands/doctor.js +306 -28
  15. package/dist/commands/doctor.js.map +1 -1
  16. package/dist/commands/generate-workflow.d.ts +4 -0
  17. package/dist/commands/generate-workflow.d.ts.map +1 -1
  18. package/dist/commands/generate-workflow.js +157 -48
  19. package/dist/commands/generate-workflow.js.map +1 -1
  20. package/dist/commands/history.d.ts +13 -0
  21. package/dist/commands/history.d.ts.map +1 -0
  22. package/dist/commands/history.js +415 -0
  23. package/dist/commands/history.js.map +1 -0
  24. package/dist/commands/init.d.ts +4 -0
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +181 -0
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/pre-commit.d.ts +4 -0
  29. package/dist/commands/pre-commit.d.ts.map +1 -1
  30. package/dist/commands/pre-commit.js +158 -7
  31. package/dist/commands/pre-commit.js.map +1 -1
  32. package/dist/commands/state.d.ts +5 -1
  33. package/dist/commands/state.d.ts.map +1 -1
  34. package/dist/commands/state.js +192 -18
  35. package/dist/commands/state.js.map +1 -1
  36. package/dist/commands/sync-check.d.ts +4 -0
  37. package/dist/commands/sync-check.d.ts.map +1 -1
  38. package/dist/commands/sync-check.js +98 -2
  39. package/dist/commands/sync-check.js.map +1 -1
  40. package/dist/commands/validate.d.ts +5 -1
  41. package/dist/commands/validate.d.ts.map +1 -1
  42. package/dist/commands/validate.js +184 -28
  43. package/dist/commands/validate.js.map +1 -1
  44. package/dist/commands/watch-pr.d.ts +4 -0
  45. package/dist/commands/watch-pr.d.ts.map +1 -1
  46. package/dist/commands/watch-pr.js +175 -14
  47. package/dist/commands/watch-pr.js.map +1 -1
  48. package/dist/schemas/watch-pr-schema.d.ts +40 -40
  49. package/dist/schemas/watch-pr-schema.js +1 -1
  50. package/dist/schemas/watch-pr-schema.js.map +1 -1
  51. package/dist/services/ci-provider.d.ts +13 -8
  52. package/dist/services/ci-provider.d.ts.map +1 -1
  53. package/dist/services/ci-providers/github-actions.d.ts +5 -4
  54. package/dist/services/ci-providers/github-actions.d.ts.map +1 -1
  55. package/dist/services/ci-providers/github-actions.js +36 -27
  56. package/dist/services/ci-providers/github-actions.js.map +1 -1
  57. package/dist/utils/check-validation.d.ts +7 -4
  58. package/dist/utils/check-validation.d.ts.map +1 -1
  59. package/dist/utils/check-validation.js +129 -48
  60. package/dist/utils/check-validation.js.map +1 -1
  61. package/dist/utils/run-validation-with-cache.d.ts +48 -0
  62. package/dist/utils/run-validation-with-cache.d.ts.map +1 -0
  63. package/dist/utils/run-validation-with-cache.js +123 -0
  64. package/dist/utils/run-validation-with-cache.js.map +1 -0
  65. package/dist/utils/runner-adapter.d.ts +1 -0
  66. package/dist/utils/runner-adapter.d.ts.map +1 -1
  67. package/dist/utils/runner-adapter.js +25 -17
  68. package/dist/utils/runner-adapter.js.map +1 -1
  69. package/dist/utils/setup-checks/gitignore-check.d.ts +10 -15
  70. package/dist/utils/setup-checks/gitignore-check.d.ts.map +1 -1
  71. package/dist/utils/setup-checks/gitignore-check.js +20 -137
  72. package/dist/utils/setup-checks/gitignore-check.js.map +1 -1
  73. package/dist/utils/validate-workflow.d.ts +28 -0
  74. package/dist/utils/validate-workflow.d.ts.map +1 -0
  75. package/dist/utils/validate-workflow.js +247 -0
  76. package/dist/utils/validate-workflow.js.map +1 -0
  77. package/dist/utils/validation-cache.d.ts +30 -0
  78. package/dist/utils/validation-cache.d.ts.map +1 -0
  79. package/dist/utils/validation-cache.js +57 -0
  80. package/dist/utils/validation-cache.js.map +1 -0
  81. package/package.json +6 -4
  82. package/watch-pr-result.schema.json +1 -1
@@ -2,76 +2,157 @@
2
2
  * Validation Status Checker
3
3
  *
4
4
  * Provides programmatic interface to check if validation has already passed
5
- * for the current working tree state, without exposing state file implementation details.
5
+ * for the current working tree state using git notes.
6
6
  */
7
- import { existsSync, readFileSync } from 'fs';
8
7
  import { getGitTreeHash } from '@vibe-validate/git';
8
+ import { readHistoryNote } from '@vibe-validate/history';
9
9
  import chalk from 'chalk';
10
- import yaml from 'yaml';
10
+ import { stringify as yamlStringify } from 'yaml';
11
11
  /**
12
12
  * Check validation status for current working tree
13
13
  *
14
14
  * Exit codes:
15
15
  * 0 = Validation already passed (skip validation)
16
16
  * 1 = Validation not passed or needed (run validation)
17
- * 2 = State file missing (run validation)
18
- * 3 = Git tree hash mismatch (run validation)
17
+ * 2 = No history found (run validation)
18
+ * 3 = Git tree hash changed (run validation)
19
+ *
20
+ * @param _config - vibe-validate configuration (unused, kept for API compatibility)
21
+ * @param yaml - If true, output YAML to stdout instead of human-readable text
19
22
  */
20
- export async function checkValidationStatus(_config) {
21
- const stateFilePath = '.vibe-validate-state.yaml';
22
- // Check if state file exists
23
- if (!existsSync(stateFilePath)) {
24
- console.log(chalk.yellow('āš ļø Validation state file not found'));
25
- console.log(chalk.gray(` Expected: ${stateFilePath}`));
26
- console.log(chalk.blue('\nšŸ’” Run validation:'), chalk.white('npx vibe-validate validate'));
27
- process.exit(2);
28
- }
23
+ export async function checkValidationStatus(_config, yaml = false) {
29
24
  // Get current tree hash
30
- const currentTreeHash = await getGitTreeHash();
31
- // Read state file
32
- let state;
25
+ let currentTreeHash;
33
26
  try {
34
- const content = readFileSync(stateFilePath, 'utf8');
35
- // Try parsing as YAML first (CLI default), fallback to JSON
36
- try {
37
- state = yaml.parse(content);
27
+ currentTreeHash = await getGitTreeHash();
28
+ }
29
+ catch (_error) {
30
+ if (yaml) {
31
+ // YAML mode: Output structured error
32
+ const errorOutput = {
33
+ exists: false,
34
+ error: 'Not in git repository',
35
+ };
36
+ process.stdout.write('---\n');
37
+ process.stdout.write(yamlStringify(errorOutput));
38
38
  }
39
- catch {
40
- state = JSON.parse(content);
39
+ else {
40
+ // Human mode: Colored output
41
+ console.log(chalk.yellow('āš ļø Not in git repository'));
42
+ console.log(chalk.blue('\nšŸ’” Run validation:'), chalk.white('npx vibe-validate validate'));
41
43
  }
44
+ process.exit(2);
45
+ }
46
+ // Check git notes for validation history
47
+ let historyNote;
48
+ try {
49
+ historyNote = await readHistoryNote(currentTreeHash);
42
50
  }
43
- catch (error) {
44
- console.error(chalk.red('āŒ Failed to parse validation state file'));
45
- console.error(chalk.gray(` File: ${stateFilePath}`));
46
- console.error(chalk.gray(` Error: ${error instanceof Error ? error.message : String(error)}`));
51
+ catch (_error) {
52
+ if (yaml) {
53
+ // YAML mode: Output structured error
54
+ const errorOutput = {
55
+ exists: false,
56
+ treeHash: currentTreeHash,
57
+ error: 'Failed to read validation history',
58
+ };
59
+ process.stdout.write('---\n');
60
+ process.stdout.write(yamlStringify(errorOutput));
61
+ }
62
+ else {
63
+ // Human mode: Colored output
64
+ console.log(chalk.yellow('āš ļø Failed to read validation history'));
65
+ console.log(chalk.blue('\nšŸ’” Run validation:'), chalk.white('npx vibe-validate validate'));
66
+ }
47
67
  process.exit(2);
48
68
  }
49
- // Check if tree hash matches
50
- if (state.treeHash !== currentTreeHash) {
51
- console.log(chalk.yellow('āš ļø Working tree has changed since last validation'));
52
- console.log(chalk.gray(` Last validated: ${state.treeHash.substring(0, 12)}...`));
53
- console.log(chalk.gray(` Current state: ${currentTreeHash.substring(0, 12)}...`));
54
- console.log(chalk.blue('\nšŸ’” Run validation:'), chalk.white('npx vibe-validate validate'));
55
- process.exit(3);
69
+ // Check if history exists
70
+ if (!historyNote || historyNote.runs.length === 0) {
71
+ if (yaml) {
72
+ // YAML mode: Output structured no-history response
73
+ const noHistoryOutput = {
74
+ exists: false,
75
+ treeHash: currentTreeHash,
76
+ };
77
+ process.stdout.write('---\n');
78
+ process.stdout.write(yamlStringify(noHistoryOutput));
79
+ }
80
+ else {
81
+ // Human mode: Colored output
82
+ console.log(chalk.yellow('āš ļø No validation history for current working tree'));
83
+ console.log(chalk.gray(` Tree hash: ${currentTreeHash.substring(0, 12)}...`));
84
+ console.log(chalk.blue('\nšŸ’” Run validation:'), chalk.white('npx vibe-validate validate'));
85
+ }
86
+ process.exit(2);
56
87
  }
57
- // Check if validation passed
58
- if (!state.passed) {
59
- console.log(chalk.red('āŒ Last validation failed'));
60
- console.log(chalk.gray(` Tree hash: ${state.treeHash.substring(0, 12)}...`));
61
- console.log(chalk.gray(` Last validated: ${state.timestamp}`));
62
- if (state.failedStep) {
63
- console.log(chalk.gray(` Failed step: ${state.failedStep}`));
88
+ // Find most recent passing run
89
+ const passingRun = [...historyNote.runs].reverse().find(run => run.passed);
90
+ if (!passingRun) {
91
+ // Last validation failed - show error details (same as fresh failure)
92
+ const mostRecent = historyNote.runs[historyNote.runs.length - 1];
93
+ if (yaml) {
94
+ // YAML mode: Output failed result as YAML to stdout
95
+ process.stdout.write('---\n');
96
+ process.stdout.write(yamlStringify(mostRecent.result));
97
+ // Wait for stdout to flush before exiting
98
+ await new Promise(resolve => {
99
+ if (process.stdout.write('')) {
100
+ resolve();
101
+ }
102
+ else {
103
+ process.stdout.once('drain', resolve);
104
+ }
105
+ });
106
+ }
107
+ else {
108
+ // Human-readable mode: Display failure details
109
+ console.log(chalk.red('āŒ Last validation failed for current working tree'));
110
+ console.log(chalk.gray(` Tree hash: ${currentTreeHash.substring(0, 12)}...`));
111
+ console.log(chalk.gray(` Last validated: ${mostRecent.timestamp}`));
112
+ console.log(chalk.gray(` Branch: ${mostRecent.branch}`));
113
+ // Show which phase/step failed (actionable info)
114
+ if (mostRecent.result?.phases) {
115
+ const failedPhase = mostRecent.result.phases.find(p => !p.passed);
116
+ if (failedPhase) {
117
+ console.log(chalk.red(`\n Failed phase: ${failedPhase.name}`));
118
+ const failedStep = failedPhase.steps?.find(s => !s.passed);
119
+ if (failedStep) {
120
+ console.log(chalk.red(` Failed step: ${failedStep.name}`));
121
+ }
122
+ }
123
+ }
124
+ console.log(chalk.blue('\nšŸ“‹ View full error details:'), chalk.white('vibe-validate state'));
125
+ console.log(chalk.blue('šŸ’” Fix errors and run validation:'), chalk.white('npx vibe-validate validate'));
64
126
  }
65
- console.log(chalk.blue('\nšŸ’” Fix errors and run validation:'), chalk.white('npx vibe-validate validate'));
66
127
  process.exit(1);
67
128
  }
68
129
  // Validation passed!
69
- console.log(chalk.green('āœ… Validation already passed for current working tree'));
70
- console.log(chalk.gray(` Tree hash: ${state.treeHash.substring(0, 12)}...`));
71
- console.log(chalk.gray(` Last validated: ${state.timestamp}`));
72
- if (state.phases) {
73
- const totalSteps = state.phases.reduce((sum, phase) => sum + (phase.steps?.length || 0), 0);
74
- console.log(chalk.gray(` Phases: ${state.phases.length}, Steps: ${totalSteps}`));
130
+ if (yaml) {
131
+ // YAML mode: Output validation result as YAML to stdout
132
+ process.stdout.write('---\n');
133
+ process.stdout.write(yamlStringify(passingRun.result));
134
+ // Wait for stdout to flush before exiting
135
+ await new Promise(resolve => {
136
+ if (process.stdout.write('')) {
137
+ resolve();
138
+ }
139
+ else {
140
+ process.stdout.once('drain', resolve);
141
+ }
142
+ });
143
+ }
144
+ else {
145
+ // Human-readable mode: Display status message
146
+ const durationSecs = (passingRun.duration / 1000).toFixed(1);
147
+ console.log(chalk.green('āœ… Validation already passed for current working tree'));
148
+ console.log(chalk.gray(` Tree hash: ${currentTreeHash.substring(0, 12)}...`));
149
+ console.log(chalk.gray(` Last validated: ${passingRun.timestamp}`));
150
+ console.log(chalk.gray(` Duration: ${durationSecs}s`));
151
+ console.log(chalk.gray(` Branch: ${passingRun.branch}`));
152
+ if (passingRun.result?.phases) {
153
+ const totalSteps = passingRun.result.phases.reduce((sum, phase) => sum + (phase.steps?.length || 0), 0);
154
+ console.log(chalk.gray(` Phases: ${passingRun.result.phases.length}, Steps: ${totalSteps}`));
155
+ }
75
156
  }
76
157
  process.exit(0);
77
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check-validation.js","sourceRoot":"","sources":["../../src/utils/check-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-validation.js","sourceRoot":"","sources":["../../src/utils/check-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Run Validation with Caching
3
+ *
4
+ * Shared workflow for running validation with git tree hash caching.
5
+ * Used by both validate and pre-commit commands to ensure consistent behavior.
6
+ */
7
+ import type { ValidationResult, ValidationConfig } from '@vibe-validate/core';
8
+ export interface ValidationWorkflowOptions {
9
+ /** Runner configuration for validation */
10
+ runnerConfig: ValidationConfig;
11
+ /** Force validation even if cached */
12
+ force?: boolean;
13
+ /** Show verbose output */
14
+ verbose?: boolean;
15
+ /** Callback for displaying cache hit information */
16
+ onCacheHit?: (info: {
17
+ treeHash: string;
18
+ timestamp: string;
19
+ duration: number;
20
+ branch: string;
21
+ result: ValidationResult;
22
+ }) => void;
23
+ }
24
+ export interface ValidationWorkflowResult {
25
+ /** Validation result */
26
+ result: ValidationResult;
27
+ /** Whether result was from cache */
28
+ fromCache: boolean;
29
+ /** Git tree hash (if in git repo) */
30
+ treeHash: string | null;
31
+ }
32
+ /**
33
+ * Run validation with full git tree hash caching workflow.
34
+ *
35
+ * This is the complete workflow used by both validate and pre-commit commands:
36
+ * 1. Get git tree hash
37
+ * 2. Check cache (git notes)
38
+ * 3. If cache hit: return cached result
39
+ * 4. If cache miss: run validation
40
+ * 5. Record result to git notes
41
+ * 6. Check worktree stability
42
+ * 7. Run health checks
43
+ *
44
+ * @param options - Validation workflow options
45
+ * @returns Validation workflow result
46
+ */
47
+ export declare function runValidationWithCache(options: ValidationWorkflowOptions): Promise<ValidationWorkflowResult>;
48
+ //# sourceMappingURL=run-validation-with-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-validation-with-cache.d.ts","sourceRoot":"","sources":["../../src/utils/run-validation-with-cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,MAAM,WAAW,yBAAyB;IACxC,0CAA0C;IAC1C,YAAY,EAAE,gBAAgB,CAAC;IAE/B,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,oDAAoD;IACpD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,gBAAgB,CAAC;KAC1B,KAAK,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,wBAAwB;IACvC,wBAAwB;IACxB,MAAM,EAAE,gBAAgB,CAAC;IAEzB,oCAAoC;IACpC,SAAS,EAAE,OAAO,CAAC;IAEnB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CAqGnC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Run Validation with Caching
3
+ *
4
+ * Shared workflow for running validation with git tree hash caching.
5
+ * Used by both validate and pre-commit commands to ensure consistent behavior.
6
+ */
7
+ import { runValidation } from '@vibe-validate/core';
8
+ import { getGitTreeHash } from '@vibe-validate/git';
9
+ import { recordValidationHistory, checkWorktreeStability, checkHistoryHealth, readHistoryNote, } from '@vibe-validate/history';
10
+ import chalk from 'chalk';
11
+ /**
12
+ * Run validation with full git tree hash caching workflow.
13
+ *
14
+ * This is the complete workflow used by both validate and pre-commit commands:
15
+ * 1. Get git tree hash
16
+ * 2. Check cache (git notes)
17
+ * 3. If cache hit: return cached result
18
+ * 4. If cache miss: run validation
19
+ * 5. Record result to git notes
20
+ * 6. Check worktree stability
21
+ * 7. Run health checks
22
+ *
23
+ * @param options - Validation workflow options
24
+ * @returns Validation workflow result
25
+ */
26
+ export async function runValidationWithCache(options) {
27
+ const { runnerConfig, force = false, verbose = false, onCacheHit } = options;
28
+ // Get tree hash BEFORE validation (for caching and stability check)
29
+ let treeHashBefore = null;
30
+ try {
31
+ treeHashBefore = await getGitTreeHash();
32
+ }
33
+ catch (_error) {
34
+ // Not in git repo or git command failed - continue without history
35
+ if (verbose) {
36
+ console.warn(chalk.yellow('āš ļø Could not get git tree hash - history recording disabled'));
37
+ }
38
+ }
39
+ // Check cache: if validation already passed for this tree hash, skip re-running
40
+ if (treeHashBefore && !force) {
41
+ try {
42
+ const historyNote = await readHistoryNote(treeHashBefore);
43
+ if (historyNote && historyNote.runs.length > 0) {
44
+ // Find most recent passing run
45
+ const passingRun = [...historyNote.runs]
46
+ .reverse()
47
+ .find(run => run.passed);
48
+ if (passingRun && passingRun.result) {
49
+ // Cache hit! Call callback if provided
50
+ if (onCacheHit) {
51
+ onCacheHit({
52
+ treeHash: treeHashBefore,
53
+ timestamp: passingRun.timestamp,
54
+ duration: passingRun.duration,
55
+ branch: passingRun.branch,
56
+ result: passingRun.result,
57
+ });
58
+ }
59
+ return {
60
+ result: passingRun.result,
61
+ fromCache: true,
62
+ treeHash: treeHashBefore,
63
+ };
64
+ }
65
+ }
66
+ }
67
+ catch (_error) {
68
+ // Cache check failed - proceed with validation
69
+ // This is expected for first-time validation
70
+ }
71
+ }
72
+ // Cache miss - run validation
73
+ const result = await runValidation(runnerConfig);
74
+ // Record validation history (if in git repo and stability check passes)
75
+ if (treeHashBefore) {
76
+ try {
77
+ // Check if worktree changed during validation
78
+ const stability = await checkWorktreeStability(treeHashBefore);
79
+ if (!stability.stable) {
80
+ console.warn(chalk.yellow('\nāš ļø Worktree changed during validation'));
81
+ console.warn(chalk.yellow(` Before: ${stability.treeHashBefore.slice(0, 12)}...`));
82
+ console.warn(chalk.yellow(` After: ${stability.treeHashAfter.slice(0, 12)}...`));
83
+ console.warn(chalk.yellow(' Results valid but history not recorded (unstable state)'));
84
+ }
85
+ else {
86
+ // Record to git notes
87
+ const recordResult = await recordValidationHistory(treeHashBefore, result);
88
+ if (recordResult.recorded) {
89
+ if (verbose) {
90
+ console.log(chalk.gray(`\nšŸ“ History recorded (tree: ${treeHashBefore.slice(0, 12)})`));
91
+ }
92
+ }
93
+ else if (verbose) {
94
+ console.warn(chalk.yellow(`āš ļø History recording failed: ${recordResult.reason}`));
95
+ }
96
+ }
97
+ }
98
+ catch (error) {
99
+ // Silent failure - don't block validation
100
+ if (verbose) {
101
+ const errorMessage = error instanceof Error ? error.message : String(error);
102
+ console.warn(chalk.yellow(`āš ļø History recording error: ${errorMessage}`));
103
+ }
104
+ }
105
+ }
106
+ // Proactive health check (non-blocking)
107
+ try {
108
+ const health = await checkHistoryHealth();
109
+ if (health.shouldWarn) {
110
+ console.log('');
111
+ console.log(chalk.blue(health.warningMessage));
112
+ }
113
+ }
114
+ catch {
115
+ // Silent failure - don't block validation
116
+ }
117
+ return {
118
+ result,
119
+ fromCache: false,
120
+ treeHash: treeHashBefore,
121
+ };
122
+ }
123
+ //# sourceMappingURL=run-validation-with-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-validation-with-cache.js","sourceRoot":"","sources":["../../src/utils/run-validation-with-cache.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import type { AgentContext } from './context-detector.js';
9
9
  export interface RunnerOptions {
10
10
  force?: boolean;
11
11
  verbose: boolean;
12
+ yaml?: boolean;
12
13
  context: AgentContext;
13
14
  }
14
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runner-adapter.d.ts","sourceRoot":"","sources":["../../src/utils/runner-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAA4D,MAAM,qBAAqB,CAAC;AACtH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,aAAa,GACrB,gBAAgB,CAuBlB"}
1
+ {"version":3,"file":"runner-adapter.d.ts","sourceRoot":"","sources":["../../src/utils/runner-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAA4D,MAAM,qBAAqB,CAAC;AACtH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,aAAa,GACrB,gBAAgB,CAuBlB"}
@@ -21,45 +21,49 @@ export function createRunnerConfig(config, options) {
21
21
  }
22
22
  // Choose callbacks based on verbosity
23
23
  const callbacks = options.verbose
24
- ? createVerboseCallbacks()
25
- : createMinimalCallbacks();
24
+ ? createVerboseCallbacks(options.yaml)
25
+ : createMinimalCallbacks(options.yaml);
26
26
  return {
27
27
  phases: config.validation?.phases || [],
28
28
  enableFailFast: true, // Default to fail-fast (individual phases can override)
29
- forceRun: options.force, // Pass force flag to runner
30
29
  verbose: options.verbose, // Pass verbose flag to runner for output streaming
30
+ yaml: options.yaml, // Pass yaml flag to runner for stdout/stderr routing
31
+ developerFeedback: config.developerFeedback ?? false, // Enable extraction quality alerts for dogfooding
31
32
  env: envVars,
32
- stateFilePath: '.vibe-validate-state.yaml',
33
33
  ...callbacks,
34
34
  };
35
35
  }
36
36
  /**
37
37
  * Create verbose console callbacks (colorful, detailed progress)
38
38
  */
39
- function createVerboseCallbacks() {
39
+ function createVerboseCallbacks(yaml = false) {
40
+ // When yaml mode is on, write to stderr to keep stdout clean for YAML data
41
+ const log = yaml ?
42
+ (msg) => process.stderr.write(msg + '\n') :
43
+ (msg) => console.log(msg);
40
44
  return {
41
45
  onPhaseStart: (phase) => {
42
- console.log(chalk.blue(`\nšŸ”„ Running phase: ${phase.name}`));
46
+ log(chalk.blue(`\nšŸ”„ Running phase: ${phase.name}`));
43
47
  },
44
48
  onPhaseComplete: (phase, result) => {
45
49
  if (result.passed) {
46
- console.log(chalk.green(`āœ… Phase ${phase.name} completed successfully`));
50
+ log(chalk.green(`āœ… Phase ${phase.name} completed successfully`));
47
51
  }
48
52
  else {
49
- console.log(chalk.red(`āŒ Phase ${phase.name} failed`));
53
+ log(chalk.red(`āŒ Phase ${phase.name} failed`));
50
54
  }
51
55
  },
52
56
  onStepStart: (step) => {
53
- console.log(chalk.gray(` ā³ ${step.name}...`));
57
+ log(chalk.gray(` ā³ ${step.name}...`));
54
58
  },
55
59
  onStepComplete: (step, result) => {
56
60
  if (result.passed) {
57
- console.log(chalk.green(` āœ… ${step.name} (${result.durationSecs}s)`));
61
+ log(chalk.green(` āœ… ${step.name} (${result.durationSecs}s)`));
58
62
  }
59
63
  else {
60
- console.log(chalk.red(` āŒ ${step.name} failed (${result.durationSecs}s)`));
64
+ log(chalk.red(` āŒ ${step.name} failed (${result.durationSecs}s)`));
61
65
  if (result.output) {
62
- console.log(chalk.red(` Error: ${result.output}`));
66
+ log(chalk.red(` Error: ${result.output}`));
63
67
  }
64
68
  }
65
69
  },
@@ -68,20 +72,24 @@ function createVerboseCallbacks() {
68
72
  /**
69
73
  * Create minimal callbacks (agent-friendly YAML output)
70
74
  */
71
- function createMinimalCallbacks() {
75
+ function createMinimalCallbacks(yaml = false) {
72
76
  // Minimal YAML-structured progress output
77
+ // When yaml mode is on, write to stderr to keep stdout clean for YAML data
78
+ const log = yaml ?
79
+ (msg) => process.stderr.write(msg + '\n') :
80
+ (msg) => console.log(msg);
73
81
  return {
74
82
  onPhaseStart: (phase) => {
75
- console.log(`phase_start: ${phase.name}`);
83
+ log(`phase_start: ${phase.name}`);
76
84
  },
77
85
  onPhaseComplete: (phase, result) => {
78
- console.log(`phase_complete: ${phase.name} (${result.passed ? 'passed' : 'failed'})`);
86
+ log(`phase_complete: ${phase.name} (${result.passed ? 'passed' : 'failed'})`);
79
87
  },
80
88
  onStepStart: (step) => {
81
- console.log(` step_start: ${step.name}`);
89
+ log(` step_start: ${step.name}`);
82
90
  },
83
91
  onStepComplete: (step, result) => {
84
- console.log(` step_complete: ${step.name} (${result.passed ? 'passed' : 'failed'}, ${result.durationSecs}s)`);
92
+ log(` step_complete: ${step.name} (${result.passed ? 'passed' : 'failed'}, ${result.durationSecs}s)`);
85
93
  },
86
94
  };
87
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner-adapter.js","sourceRoot":"","sources":["../../src/utils/runner-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-adapter.js","sourceRoot":"","sources":["../../src/utils/runner-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,18 @@
1
1
  /**
2
- * Gitignore Setup Check
2
+ * Gitignore Setup Check (DEPRECATED)
3
3
  *
4
- * Ensures that .vibe-validate-state.yaml is listed in .gitignore
5
- * to prevent committing validation state files.
4
+ * @deprecated Since v0.12.0 - State file (.vibe-validate-state.yaml) is deprecated.
5
+ * Validation history is now stored in git notes instead of a state file.
6
+ * This check always passes and does not modify .gitignore.
7
+ *
8
+ * Use `vibe-validate doctor` to detect and remove deprecated state file entries.
6
9
  */
7
10
  import type { SetupCheck, CheckResult, FixResult, PreviewResult, FixOptions } from '../setup-engine.js';
8
11
  export declare class GitignoreSetupCheck implements SetupCheck {
9
12
  readonly id = "gitignore";
10
- readonly name = "Gitignore Setup";
11
- check(options?: FixOptions): Promise<CheckResult>;
12
- preview(options?: FixOptions): Promise<PreviewResult>;
13
- fix(options?: FixOptions): Promise<FixResult>;
14
- /**
15
- * Generate content for a new .gitignore file
16
- */
17
- private generateNewGitignoreContent;
18
- /**
19
- * Add state file entry to existing .gitignore content
20
- */
21
- private addEntryToGitignore;
13
+ readonly name = "Gitignore Setup (deprecated)";
14
+ check(_options?: FixOptions): Promise<CheckResult>;
15
+ preview(_options?: FixOptions): Promise<PreviewResult>;
16
+ fix(_options?: FixOptions): Promise<FixResult>;
22
17
  }
23
18
  //# sourceMappingURL=gitignore-check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore-check.d.ts","sourceRoot":"","sources":["../../../src/utils/setup-checks/gitignore-check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,oBAAoB,CAAC;AAI5B,qBAAa,mBAAoB,YAAW,UAAU;IACpD,QAAQ,CAAC,EAAE,eAAe;IAC1B,QAAQ,CAAC,IAAI,qBAAqB;IAE5B,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAkCjD,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IA4CrD,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IA6DnD;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAMnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAY5B"}
1
+ {"version":3,"file":"gitignore-check.d.ts","sourceRoot":"","sources":["../../../src/utils/setup-checks/gitignore-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,mBAAoB,YAAW,UAAU;IACpD,QAAQ,CAAC,EAAE,eAAe;IAC1B,QAAQ,CAAC,IAAI,kCAAkC;IAEzC,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IASlD,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAStD,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;CAQrD"}