@vibe-validate/cli 0.18.4 → 0.19.0-rc.10

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 (83) hide show
  1. package/config-templates/minimal.yaml +12 -14
  2. package/config-templates/typescript-library.yaml +12 -14
  3. package/config-templates/typescript-nodejs.yaml +12 -14
  4. package/config-templates/typescript-react.yaml +12 -14
  5. package/dist/bin/vibe-validate +47 -25
  6. package/dist/bin/vibe-validate.d.ts +1 -0
  7. package/dist/bin/vibe-validate.d.ts.map +1 -1
  8. package/dist/bin/vibe-validate.js +47 -25
  9. package/dist/bin/vibe-validate.js.map +1 -1
  10. package/dist/bin/vv +47 -25
  11. package/dist/commands/config.d.ts.map +1 -1
  12. package/dist/commands/config.js +3 -3
  13. package/dist/commands/config.js.map +1 -1
  14. package/dist/commands/doctor.d.ts.map +1 -1
  15. package/dist/commands/doctor.js +62 -19
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/history.d.ts.map +1 -1
  18. package/dist/commands/history.js +5 -2
  19. package/dist/commands/history.js.map +1 -1
  20. package/dist/commands/pre-commit.d.ts.map +1 -1
  21. package/dist/commands/pre-commit.js +30 -9
  22. package/dist/commands/pre-commit.js.map +1 -1
  23. package/dist/commands/run.d.ts.map +1 -1
  24. package/dist/commands/run.js +55 -42
  25. package/dist/commands/run.js.map +1 -1
  26. package/dist/commands/snapshot.d.ts.map +1 -1
  27. package/dist/commands/snapshot.js +10 -1
  28. package/dist/commands/snapshot.js.map +1 -1
  29. package/dist/commands/state.d.ts.map +1 -1
  30. package/dist/commands/state.js +4 -3
  31. package/dist/commands/state.js.map +1 -1
  32. package/dist/commands/validate.d.ts.map +1 -1
  33. package/dist/commands/validate.js +27 -10
  34. package/dist/commands/validate.js.map +1 -1
  35. package/dist/commands/watch-pr.d.ts.map +1 -1
  36. package/dist/commands/watch-pr.js +110 -11
  37. package/dist/commands/watch-pr.js.map +1 -1
  38. package/dist/schemas/watch-pr-schema.d.ts +2 -2
  39. package/dist/services/cache-manager.d.ts +5 -2
  40. package/dist/services/cache-manager.d.ts.map +1 -1
  41. package/dist/services/cache-manager.js +16 -2
  42. package/dist/services/cache-manager.js.map +1 -1
  43. package/dist/services/github-fetcher.d.ts.map +1 -1
  44. package/dist/services/github-fetcher.js +1 -0
  45. package/dist/services/github-fetcher.js.map +1 -1
  46. package/dist/services/watch-pr-orchestrator.d.ts +9 -2
  47. package/dist/services/watch-pr-orchestrator.d.ts.map +1 -1
  48. package/dist/services/watch-pr-orchestrator.js +32 -19
  49. package/dist/services/watch-pr-orchestrator.js.map +1 -1
  50. package/dist/utils/check-validation.d.ts.map +1 -1
  51. package/dist/utils/check-validation.js +17 -29
  52. package/dist/utils/check-validation.js.map +1 -1
  53. package/dist/utils/context-detector.d.ts +1 -0
  54. package/dist/utils/context-detector.d.ts.map +1 -1
  55. package/dist/utils/context-detector.js.map +1 -1
  56. package/dist/utils/display-cached-result.d.ts +2 -2
  57. package/dist/utils/display-cached-result.d.ts.map +1 -1
  58. package/dist/utils/display-cached-result.js +18 -11
  59. package/dist/utils/display-cached-result.js.map +1 -1
  60. package/dist/utils/format-worktree.d.ts +21 -0
  61. package/dist/utils/format-worktree.d.ts.map +1 -0
  62. package/dist/utils/format-worktree.js +32 -0
  63. package/dist/utils/format-worktree.js.map +1 -0
  64. package/dist/utils/logger.d.ts +29 -1
  65. package/dist/utils/logger.d.ts.map +1 -1
  66. package/dist/utils/logger.js +47 -0
  67. package/dist/utils/logger.js.map +1 -1
  68. package/dist/utils/secret-scanning.d.ts.map +1 -1
  69. package/dist/utils/secret-scanning.js +96 -1
  70. package/dist/utils/secret-scanning.js.map +1 -1
  71. package/dist/utils/temp-files.d.ts +3 -4
  72. package/dist/utils/temp-files.d.ts.map +1 -1
  73. package/dist/utils/temp-files.js +4 -5
  74. package/dist/utils/temp-files.js.map +1 -1
  75. package/dist/utils/validate-workflow.d.ts +3 -0
  76. package/dist/utils/validate-workflow.d.ts.map +1 -1
  77. package/dist/utils/validate-workflow.js +180 -63
  78. package/dist/utils/validate-workflow.js.map +1 -1
  79. package/dist/utils/validation-lock-wrapper.d.ts +3 -0
  80. package/dist/utils/validation-lock-wrapper.d.ts.map +1 -1
  81. package/dist/utils/validation-lock-wrapper.js +21 -5
  82. package/dist/utils/validation-lock-wrapper.js.map +1 -1
  83. package/package.json +7 -7
@@ -27,27 +27,25 @@ hooks:
27
27
  # Secret scanning prevents accidental credential commits
28
28
  secretScanning:
29
29
  enabled: true
30
- # Autodetect mode (recommended): Omit scanCommand to auto-detect tools
31
- # Automatically runs tools based on config files present:
32
- # - .gitleaks.toml or .gitleaksignore → runs gitleaks
33
- # - .secretlintrc.json → runs secretlint (via npx)
34
- # - Both files present → runs both tools (defense-in-depth)
30
+ # Autodetect mode (recommended): Automatically uses optimal commands
35
31
  #
36
- # Setup options:
37
- # 1. gitleaks (recommended - fast, 160+ secret types):
32
+ # vibe-validate automatically optimizes for pre-commit performance:
33
+ # gitleaks: Only scans staged files (0.2s)
34
+ # secretlint: Only scans staged files (0.8s)
35
+ #
36
+ # 1. gitleaks (RECOMMENDED - fastest, 160+ secret types):
38
37
  # macOS: brew install gitleaks
39
- # Linux/Windows: https://github.com/gitleaks/gitleaks#installation
40
- # Create .gitleaksignore for false positives
38
+ # Create .gitleaks.toml or .gitleaksignore to enable autodetect
41
39
  #
42
40
  # 2. secretlint (npm-based, always available):
43
41
  # npm install --save-dev @secretlint/secretlint-rule-preset-recommend secretlint
44
- # Create .secretlintrc.json with: {"rules": [{"id": "@secretlint/secretlint-rule-preset-recommend"}]}
45
- # Create .secretlintignore for false positives
42
+ # Create .secretlintrc.json to enable autodetect
46
43
  #
47
- # 3. Both (defense-in-depth): Create both config files
44
+ # 3. Both tools (defense-in-depth):
45
+ # Create both config files - runs both automatically
48
46
  #
49
- # To use explicit command instead: scanCommand: "gitleaks protect --staged --verbose"
50
- # To disable: set enabled: false
47
+ # 4. Explicit command (advanced):
48
+ # scanCommand: "gitleaks protect --staged --verbose"
51
49
 
52
50
  # Validation configuration
53
51
  validation:
@@ -27,27 +27,25 @@ hooks:
27
27
  # Secret scanning prevents accidental credential commits
28
28
  secretScanning:
29
29
  enabled: true
30
- # Autodetect mode (recommended): Omit scanCommand to auto-detect tools
31
- # Automatically runs tools based on config files present:
32
- # - .gitleaks.toml or .gitleaksignore → runs gitleaks
33
- # - .secretlintrc.json → runs secretlint (via npx)
34
- # - Both files present → runs both tools (defense-in-depth)
30
+ # Autodetect mode (recommended): Automatically uses optimal commands
35
31
  #
36
- # Setup options:
37
- # 1. gitleaks (recommended - fast, 160+ secret types):
32
+ # vibe-validate automatically optimizes for pre-commit performance:
33
+ # gitleaks: Only scans staged files (0.2s)
34
+ # secretlint: Only scans staged files (0.8s)
35
+ #
36
+ # 1. gitleaks (RECOMMENDED - fastest, 160+ secret types):
38
37
  # macOS: brew install gitleaks
39
- # Linux/Windows: https://github.com/gitleaks/gitleaks#installation
40
- # Create .gitleaksignore for false positives
38
+ # Create .gitleaks.toml or .gitleaksignore to enable autodetect
41
39
  #
42
40
  # 2. secretlint (npm-based, always available):
43
41
  # npm install --save-dev @secretlint/secretlint-rule-preset-recommend secretlint
44
- # Create .secretlintrc.json with: {"rules": [{"id": "@secretlint/secretlint-rule-preset-recommend"}]}
45
- # Create .secretlintignore for false positives
42
+ # Create .secretlintrc.json to enable autodetect
46
43
  #
47
- # 3. Both (defense-in-depth): Create both config files
44
+ # 3. Both tools (defense-in-depth):
45
+ # Create both config files - runs both automatically
48
46
  #
49
- # To use explicit command instead: scanCommand: "gitleaks protect --staged --verbose"
50
- # To disable: set enabled: false
47
+ # 4. Explicit command (advanced):
48
+ # scanCommand: "gitleaks protect --staged --verbose"
51
49
 
52
50
  # Validation configuration
53
51
  validation:
@@ -28,27 +28,25 @@ hooks:
28
28
  # Secret scanning prevents accidental credential commits
29
29
  secretScanning:
30
30
  enabled: true
31
- # Autodetect mode (recommended): Omit scanCommand to auto-detect tools
32
- # Automatically runs tools based on config files present:
33
- # - .gitleaks.toml or .gitleaksignore → runs gitleaks
34
- # - .secretlintrc.json → runs secretlint (via npx)
35
- # - Both files present → runs both tools (defense-in-depth)
31
+ # Autodetect mode (recommended): Automatically uses optimal commands
36
32
  #
37
- # Setup options:
38
- # 1. gitleaks (recommended - fast, 160+ secret types):
33
+ # vibe-validate automatically optimizes for pre-commit performance:
34
+ # gitleaks: Only scans staged files (0.2s)
35
+ # secretlint: Only scans staged files (0.8s)
36
+ #
37
+ # 1. gitleaks (RECOMMENDED - fastest, 160+ secret types):
39
38
  # macOS: brew install gitleaks
40
- # Linux/Windows: https://github.com/gitleaks/gitleaks#installation
41
- # Create .gitleaksignore for false positives
39
+ # Create .gitleaks.toml or .gitleaksignore to enable autodetect
42
40
  #
43
41
  # 2. secretlint (npm-based, always available):
44
42
  # npm install --save-dev @secretlint/secretlint-rule-preset-recommend secretlint
45
- # Create .secretlintrc.json with: {"rules": [{"id": "@secretlint/secretlint-rule-preset-recommend"}]}
46
- # Create .secretlintignore for false positives
43
+ # Create .secretlintrc.json to enable autodetect
47
44
  #
48
- # 3. Both (defense-in-depth): Create both config files
45
+ # 3. Both tools (defense-in-depth):
46
+ # Create both config files - runs both automatically
49
47
  #
50
- # To use explicit command instead: scanCommand: "gitleaks protect --staged --verbose"
51
- # To disable: set enabled: false
48
+ # 4. Explicit command (advanced):
49
+ # scanCommand: "gitleaks protect --staged --verbose"
52
50
 
53
51
  # Validation configuration
54
52
  validation:
@@ -28,27 +28,25 @@ hooks:
28
28
  # Secret scanning prevents accidental credential commits
29
29
  secretScanning:
30
30
  enabled: true
31
- # Autodetect mode (recommended): Omit scanCommand to auto-detect tools
32
- # Automatically runs tools based on config files present:
33
- # - .gitleaks.toml or .gitleaksignore → runs gitleaks
34
- # - .secretlintrc.json → runs secretlint (via npx)
35
- # - Both files present → runs both tools (defense-in-depth)
31
+ # Autodetect mode (recommended): Automatically uses optimal commands
36
32
  #
37
- # Setup options:
38
- # 1. gitleaks (recommended - fast, 160+ secret types):
33
+ # vibe-validate automatically optimizes for pre-commit performance:
34
+ # gitleaks: Only scans staged files (0.2s)
35
+ # secretlint: Only scans staged files (0.8s)
36
+ #
37
+ # 1. gitleaks (RECOMMENDED - fastest, 160+ secret types):
39
38
  # macOS: brew install gitleaks
40
- # Linux/Windows: https://github.com/gitleaks/gitleaks#installation
41
- # Create .gitleaksignore for false positives
39
+ # Create .gitleaks.toml or .gitleaksignore to enable autodetect
42
40
  #
43
41
  # 2. secretlint (npm-based, always available):
44
42
  # npm install --save-dev @secretlint/secretlint-rule-preset-recommend secretlint
45
- # Create .secretlintrc.json with: {"rules": [{"id": "@secretlint/secretlint-rule-preset-recommend"}]}
46
- # Create .secretlintignore for false positives
43
+ # Create .secretlintrc.json to enable autodetect
47
44
  #
48
- # 3. Both (defense-in-depth): Create both config files
45
+ # 3. Both tools (defense-in-depth):
46
+ # Create both config files - runs both automatically
49
47
  #
50
- # To use explicit command instead: scanCommand: "gitleaks protect --staged --verbose"
51
- # To disable: set enabled: false
48
+ # 4. Explicit command (advanced):
49
+ # scanCommand: "gitleaks protect --staged --verbose"
52
50
 
53
51
  # Validation configuration
54
52
  validation:
@@ -3,6 +3,7 @@
3
3
  * Smart vibe-validate wrapper with context-aware execution
4
4
  *
5
5
  * Automatically detects execution context and delegates to appropriate binary:
6
+ * - VV_ROOT_DIR override: Use developer's local build for testing
6
7
  * - Developer mode: Inside vibe-validate repo → packages/cli/dist/bin.js (unpackaged dev build)
7
8
  * - Local install: Project has vibe-validate → node_modules version (packaged)
8
9
  * - Global install: Fallback → globally installed version (packaged)
@@ -104,6 +105,51 @@ function readVersion(packageJsonPath) {
104
105
  return null;
105
106
  }
106
107
  }
108
+ function tryVvRootDirOverride(debug) {
109
+ const vvRootDir = process.env.VV_ROOT_DIR;
110
+ if (!vvRootDir)
111
+ return null;
112
+ const overrideBin = join(vvRootDir, 'packages/cli/dist/bin.js');
113
+ if (!existsSync(overrideBin)) {
114
+ if (debug) {
115
+ console.error(`[vv debug] VV_ROOT_DIR set but ${overrideBin} not found — ignoring`);
116
+ }
117
+ return null;
118
+ }
119
+ console.error(`[vv] Using VV_ROOT_DIR: ${vvRootDir}`);
120
+ return { binPath: overrideBin, context: 'dev-override', binDir: dirname(dirname(overrideBin)) };
121
+ }
122
+ function tryDevMode(projectRoot) {
123
+ const devBin = getDevModeBinary(projectRoot);
124
+ if (!devBin)
125
+ return null;
126
+ return { binPath: devBin, context: 'dev', binDir: dirname(dirname(devBin)) };
127
+ }
128
+ function tryLocalInstall(projectRoot) {
129
+ const localBin = findLocalInstall(projectRoot);
130
+ if (!localBin)
131
+ return null;
132
+ return { binPath: localBin, context: 'local', binDir: dirname(dirname(localBin)) };
133
+ }
134
+ function useGlobalInstall() {
135
+ return { binPath: join(__dirname, '../bin.js'), context: 'global', binDir: dirname(__dirname) };
136
+ }
137
+ /**
138
+ * Resolve binary path using priority chain
139
+ *
140
+ * Priority order:
141
+ * 0. VV_ROOT_DIR env override (developer testing dev build against other projects - security validated)
142
+ * 1. Developer mode (inside vibe-validate repo itself)
143
+ * 2. Local install (node_modules)
144
+ * 3. Global install (this script's own location)
145
+ */
146
+ function resolveBinary(projectRoot, debug) {
147
+ // Try each resolution strategy in priority order
148
+ return (tryVvRootDirOverride(debug) ??
149
+ tryDevMode(projectRoot) ??
150
+ tryLocalInstall(projectRoot) ??
151
+ useGlobalInstall());
152
+ }
107
153
  /**
108
154
  * Main entry point - detects context and executes appropriate binary
109
155
  */
@@ -113,31 +159,7 @@ function main() {
113
159
  const debug = process.env.VV_DEBUG === '1';
114
160
  // Find project root (where .git is, or cwd if no git)
115
161
  const projectRoot = findProjectRoot(cwd);
116
- let binPath;
117
- let context;
118
- let binDir;
119
- // Priority 1: Check for developer mode (inside vibe-validate repo)
120
- const devBin = getDevModeBinary(projectRoot);
121
- if (devBin) {
122
- binPath = devBin;
123
- context = 'dev';
124
- binDir = dirname(dirname(devBin)); // packages/cli/dist -> packages/cli
125
- }
126
- // Priority 2: Check for local install (node_modules)
127
- else {
128
- const localBin = findLocalInstall(projectRoot);
129
- if (localBin) {
130
- binPath = localBin;
131
- context = 'local';
132
- binDir = dirname(dirname(localBin)); // node_modules/@vibe-validate/cli/dist -> node_modules/@vibe-validate/cli
133
- }
134
- // Priority 3: Use global install (this script's location)
135
- else {
136
- binPath = join(__dirname, '../bin.js');
137
- context = 'global';
138
- binDir = dirname(__dirname); // dist -> cli root
139
- }
140
- }
162
+ const { binPath, context, binDir } = resolveBinary(projectRoot, debug);
141
163
  // Read versions for comparison
142
164
  // __dirname = dist/bin, so go up twice to reach package.json at cli root
143
165
  const globalPkgPath = join(dirname(dirname(__dirname)), 'package.json');
@@ -3,6 +3,7 @@
3
3
  * Smart vibe-validate wrapper with context-aware execution
4
4
  *
5
5
  * Automatically detects execution context and delegates to appropriate binary:
6
+ * - VV_ROOT_DIR override: Use developer's local build for testing
6
7
  * - Developer mode: Inside vibe-validate repo → packages/cli/dist/bin.js (unpackaged dev build)
7
8
  * - Local install: Project has vibe-validate → node_modules version (packaged)
8
9
  * - Global install: Fallback → globally installed version (packaged)
@@ -1 +1 @@
1
- {"version":3,"file":"vibe-validate.d.ts","sourceRoot":"","sources":["../../src/bin/vibe-validate.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG"}
1
+ {"version":3,"file":"vibe-validate.d.ts","sourceRoot":"","sources":["../../src/bin/vibe-validate.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG"}
@@ -3,6 +3,7 @@
3
3
  * Smart vibe-validate wrapper with context-aware execution
4
4
  *
5
5
  * Automatically detects execution context and delegates to appropriate binary:
6
+ * - VV_ROOT_DIR override: Use developer's local build for testing
6
7
  * - Developer mode: Inside vibe-validate repo → packages/cli/dist/bin.js (unpackaged dev build)
7
8
  * - Local install: Project has vibe-validate → node_modules version (packaged)
8
9
  * - Global install: Fallback → globally installed version (packaged)
@@ -104,6 +105,51 @@ function readVersion(packageJsonPath) {
104
105
  return null;
105
106
  }
106
107
  }
108
+ function tryVvRootDirOverride(debug) {
109
+ const vvRootDir = process.env.VV_ROOT_DIR;
110
+ if (!vvRootDir)
111
+ return null;
112
+ const overrideBin = join(vvRootDir, 'packages/cli/dist/bin.js');
113
+ if (!existsSync(overrideBin)) {
114
+ if (debug) {
115
+ console.error(`[vv debug] VV_ROOT_DIR set but ${overrideBin} not found — ignoring`);
116
+ }
117
+ return null;
118
+ }
119
+ console.error(`[vv] Using VV_ROOT_DIR: ${vvRootDir}`);
120
+ return { binPath: overrideBin, context: 'dev-override', binDir: dirname(dirname(overrideBin)) };
121
+ }
122
+ function tryDevMode(projectRoot) {
123
+ const devBin = getDevModeBinary(projectRoot);
124
+ if (!devBin)
125
+ return null;
126
+ return { binPath: devBin, context: 'dev', binDir: dirname(dirname(devBin)) };
127
+ }
128
+ function tryLocalInstall(projectRoot) {
129
+ const localBin = findLocalInstall(projectRoot);
130
+ if (!localBin)
131
+ return null;
132
+ return { binPath: localBin, context: 'local', binDir: dirname(dirname(localBin)) };
133
+ }
134
+ function useGlobalInstall() {
135
+ return { binPath: join(__dirname, '../bin.js'), context: 'global', binDir: dirname(__dirname) };
136
+ }
137
+ /**
138
+ * Resolve binary path using priority chain
139
+ *
140
+ * Priority order:
141
+ * 0. VV_ROOT_DIR env override (developer testing dev build against other projects - security validated)
142
+ * 1. Developer mode (inside vibe-validate repo itself)
143
+ * 2. Local install (node_modules)
144
+ * 3. Global install (this script's own location)
145
+ */
146
+ function resolveBinary(projectRoot, debug) {
147
+ // Try each resolution strategy in priority order
148
+ return (tryVvRootDirOverride(debug) ??
149
+ tryDevMode(projectRoot) ??
150
+ tryLocalInstall(projectRoot) ??
151
+ useGlobalInstall());
152
+ }
107
153
  /**
108
154
  * Main entry point - detects context and executes appropriate binary
109
155
  */
@@ -113,31 +159,7 @@ function main() {
113
159
  const debug = process.env.VV_DEBUG === '1';
114
160
  // Find project root (where .git is, or cwd if no git)
115
161
  const projectRoot = findProjectRoot(cwd);
116
- let binPath;
117
- let context;
118
- let binDir;
119
- // Priority 1: Check for developer mode (inside vibe-validate repo)
120
- const devBin = getDevModeBinary(projectRoot);
121
- if (devBin) {
122
- binPath = devBin;
123
- context = 'dev';
124
- binDir = dirname(dirname(devBin)); // packages/cli/dist -> packages/cli
125
- }
126
- // Priority 2: Check for local install (node_modules)
127
- else {
128
- const localBin = findLocalInstall(projectRoot);
129
- if (localBin) {
130
- binPath = localBin;
131
- context = 'local';
132
- binDir = dirname(dirname(localBin)); // node_modules/@vibe-validate/cli/dist -> node_modules/@vibe-validate/cli
133
- }
134
- // Priority 3: Use global install (this script's location)
135
- else {
136
- binPath = join(__dirname, '../bin.js');
137
- context = 'global';
138
- binDir = dirname(__dirname); // dist -> cli root
139
- }
140
- }
162
+ const { binPath, context, binDir } = resolveBinary(projectRoot, debug);
141
163
  // Read versions for comparison
142
164
  // __dirname = dist/bin, so go up twice to reach package.json at cli root
143
165
  const globalPkgPath = join(dirname(dirname(__dirname)), 'package.json');
@@ -1 +1 @@
1
- {"version":3,"file":"vibe-validate.js","sourceRoot":"","sources":["../../src/bin/vibe-validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vibe-validate.js","sourceRoot":"","sources":["../../src/bin/vibe-validate.ts"],"names":[],"mappings":"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"}
package/dist/bin/vv CHANGED
@@ -3,6 +3,7 @@
3
3
  * Smart vibe-validate wrapper with context-aware execution
4
4
  *
5
5
  * Automatically detects execution context and delegates to appropriate binary:
6
+ * - VV_ROOT_DIR override: Use developer's local build for testing
6
7
  * - Developer mode: Inside vibe-validate repo → packages/cli/dist/bin.js (unpackaged dev build)
7
8
  * - Local install: Project has vibe-validate → node_modules version (packaged)
8
9
  * - Global install: Fallback → globally installed version (packaged)
@@ -104,6 +105,51 @@ function readVersion(packageJsonPath) {
104
105
  return null;
105
106
  }
106
107
  }
108
+ function tryVvRootDirOverride(debug) {
109
+ const vvRootDir = process.env.VV_ROOT_DIR;
110
+ if (!vvRootDir)
111
+ return null;
112
+ const overrideBin = join(vvRootDir, 'packages/cli/dist/bin.js');
113
+ if (!existsSync(overrideBin)) {
114
+ if (debug) {
115
+ console.error(`[vv debug] VV_ROOT_DIR set but ${overrideBin} not found — ignoring`);
116
+ }
117
+ return null;
118
+ }
119
+ console.error(`[vv] Using VV_ROOT_DIR: ${vvRootDir}`);
120
+ return { binPath: overrideBin, context: 'dev-override', binDir: dirname(dirname(overrideBin)) };
121
+ }
122
+ function tryDevMode(projectRoot) {
123
+ const devBin = getDevModeBinary(projectRoot);
124
+ if (!devBin)
125
+ return null;
126
+ return { binPath: devBin, context: 'dev', binDir: dirname(dirname(devBin)) };
127
+ }
128
+ function tryLocalInstall(projectRoot) {
129
+ const localBin = findLocalInstall(projectRoot);
130
+ if (!localBin)
131
+ return null;
132
+ return { binPath: localBin, context: 'local', binDir: dirname(dirname(localBin)) };
133
+ }
134
+ function useGlobalInstall() {
135
+ return { binPath: join(__dirname, '../bin.js'), context: 'global', binDir: dirname(__dirname) };
136
+ }
137
+ /**
138
+ * Resolve binary path using priority chain
139
+ *
140
+ * Priority order:
141
+ * 0. VV_ROOT_DIR env override (developer testing dev build against other projects - security validated)
142
+ * 1. Developer mode (inside vibe-validate repo itself)
143
+ * 2. Local install (node_modules)
144
+ * 3. Global install (this script's own location)
145
+ */
146
+ function resolveBinary(projectRoot, debug) {
147
+ // Try each resolution strategy in priority order
148
+ return (tryVvRootDirOverride(debug) ??
149
+ tryDevMode(projectRoot) ??
150
+ tryLocalInstall(projectRoot) ??
151
+ useGlobalInstall());
152
+ }
107
153
  /**
108
154
  * Main entry point - detects context and executes appropriate binary
109
155
  */
@@ -113,31 +159,7 @@ function main() {
113
159
  const debug = process.env.VV_DEBUG === '1';
114
160
  // Find project root (where .git is, or cwd if no git)
115
161
  const projectRoot = findProjectRoot(cwd);
116
- let binPath;
117
- let context;
118
- let binDir;
119
- // Priority 1: Check for developer mode (inside vibe-validate repo)
120
- const devBin = getDevModeBinary(projectRoot);
121
- if (devBin) {
122
- binPath = devBin;
123
- context = 'dev';
124
- binDir = dirname(dirname(devBin)); // packages/cli/dist -> packages/cli
125
- }
126
- // Priority 2: Check for local install (node_modules)
127
- else {
128
- const localBin = findLocalInstall(projectRoot);
129
- if (localBin) {
130
- binPath = localBin;
131
- context = 'local';
132
- binDir = dirname(dirname(localBin)); // node_modules/@vibe-validate/cli/dist -> node_modules/@vibe-validate/cli
133
- }
134
- // Priority 3: Use global install (this script's location)
135
- else {
136
- binPath = join(__dirname, '../bin.js');
137
- context = 'global';
138
- binDir = dirname(__dirname); // dist -> cli root
139
- }
140
- }
162
+ const { binPath, context, binDir } = resolveBinary(projectRoot, debug);
141
163
  // Read versions for comparison
142
164
  // __dirname = dist/bin, so go up twice to reach package.json at cli root
143
165
  const globalPkgPath = join(dirname(dirname(__dirname)), 'package.json');
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwCpD;AAuED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CA+E5C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwCpD;AAuED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CA+E5C"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Show or validate vibe-validate configuration.
5
5
  */
6
+ import { basename } from 'node:path';
6
7
  import chalk from 'chalk';
7
8
  import { getCommandName } from '../utils/command-name.js';
8
9
  import { displayConfigErrors } from '../utils/config-error-reporter.js';
@@ -24,8 +25,7 @@ async function loadAndValidateConfig() {
24
25
  const result = await loadConfigWithErrors();
25
26
  // Show detailed validation errors if config is invalid
26
27
  if (!result.config && result.errors) {
27
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Need to filter empty strings, not just null/undefined
28
- const fileName = result.filePath?.split('/').pop() || 'vibe-validate.config.yaml';
28
+ const fileName = result.filePath ? basename(result.filePath) : 'vibe-validate.config.yaml';
29
29
  displayConfigErrors({ fileName, errors: result.errors });
30
30
  process.exit(1);
31
31
  }
@@ -123,7 +123,7 @@ function displayYamlConfig(config) {
123
123
  console.log(' phases:');
124
124
  for (const phase of config.validation.phases) {
125
125
  console.log(` - name: ${phase.name}`);
126
- console.log(` parallel: ${phase.parallel}`);
126
+ console.log(` parallel: ${phase.parallel ?? false}`);
127
127
  console.log(` steps: ${phase.steps?.length ?? 0}`);
128
128
  }
129
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAaH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDzC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,sCAAsC;IACtC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAkhCD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwElF;AAkFD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsBpD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CA0H5C"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAaH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDzC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,sCAAsC;IACtC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AA0jCD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CA+ElF;AAkFD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsBpD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CA0H5C"}