@vibe-validate/cli 0.9.7 → 0.9.9
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/README.md +56 -23
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +16 -21
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +166 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/generate-workflow.d.ts.map +1 -1
- package/dist/commands/generate-workflow.js +20 -18
- package/dist/commands/generate-workflow.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +101 -17
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/pre-commit.d.ts.map +1 -1
- package/dist/commands/pre-commit.js +21 -20
- package/dist/commands/pre-commit.js.map +1 -1
- package/dist/commands/state.d.ts.map +1 -1
- package/dist/commands/state.js +19 -28
- package/dist/commands/state.js.map +1 -1
- package/dist/commands/sync-check.d.ts +1 -1
- package/dist/commands/sync-check.d.ts.map +1 -1
- package/dist/commands/sync-check.js +19 -5
- package/dist/commands/sync-check.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +11 -6
- package/dist/commands/validate.js.map +1 -1
- package/dist/utils/check-validation.d.ts +18 -0
- package/dist/utils/check-validation.d.ts.map +1 -0
- package/dist/utils/check-validation.js +78 -0
- package/dist/utils/check-validation.js.map +1 -0
- package/dist/utils/context-detector.d.ts +3 -3
- package/dist/utils/context-detector.d.ts.map +1 -1
- package/dist/utils/context-detector.js +11 -7
- package/dist/utils/context-detector.js.map +1 -1
- package/dist/utils/runner-adapter.d.ts +1 -1
- package/dist/utils/runner-adapter.d.ts.map +1 -1
- package/dist/utils/runner-adapter.js +11 -22
- package/dist/utils/runner-adapter.js.map +1 -1
- package/package.json +7 -5
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Status Checker
|
|
3
|
+
*
|
|
4
|
+
* Provides programmatic interface to check if validation has already passed
|
|
5
|
+
* for the current working tree state, without exposing state file implementation details.
|
|
6
|
+
*/
|
|
7
|
+
import type { VibeValidateConfig } from '@vibe-validate/config';
|
|
8
|
+
/**
|
|
9
|
+
* Check validation status for current working tree
|
|
10
|
+
*
|
|
11
|
+
* Exit codes:
|
|
12
|
+
* 0 = Validation already passed (skip validation)
|
|
13
|
+
* 1 = Validation not passed or needed (run validation)
|
|
14
|
+
* 2 = State file missing (run validation)
|
|
15
|
+
* 3 = Git tree hash mismatch (run validation)
|
|
16
|
+
*/
|
|
17
|
+
export declare function checkValidationStatus(config: VibeValidateConfig): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=check-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-validation.d.ts","sourceRoot":"","sources":["../../src/utils/check-validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAKhE;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgErF"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Status Checker
|
|
3
|
+
*
|
|
4
|
+
* Provides programmatic interface to check if validation has already passed
|
|
5
|
+
* for the current working tree state, without exposing state file implementation details.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync } from 'fs';
|
|
8
|
+
import { getGitTreeHash } from '@vibe-validate/git';
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
import yaml from 'yaml';
|
|
11
|
+
/**
|
|
12
|
+
* Check validation status for current working tree
|
|
13
|
+
*
|
|
14
|
+
* Exit codes:
|
|
15
|
+
* 0 = Validation already passed (skip validation)
|
|
16
|
+
* 1 = Validation not passed or needed (run validation)
|
|
17
|
+
* 2 = State file missing (run validation)
|
|
18
|
+
* 3 = Git tree hash mismatch (run validation)
|
|
19
|
+
*/
|
|
20
|
+
export async function checkValidationStatus(config) {
|
|
21
|
+
const stateFilePath = config.validation.caching?.statePath || '.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
|
+
}
|
|
29
|
+
// Get current tree hash
|
|
30
|
+
const currentTreeHash = await getGitTreeHash();
|
|
31
|
+
// Read state file
|
|
32
|
+
let state;
|
|
33
|
+
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);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
state = JSON.parse(content);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
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)}`));
|
|
47
|
+
process.exit(2);
|
|
48
|
+
}
|
|
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);
|
|
56
|
+
}
|
|
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}`));
|
|
64
|
+
}
|
|
65
|
+
console.log(chalk.blue('\n💡 Fix errors and run validation:'), chalk.white('npx vibe-validate validate'));
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
// 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}`));
|
|
75
|
+
}
|
|
76
|
+
process.exit(0);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=check-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-validation.js","sourceRoot":"","sources":["../../src/utils/check-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,10 @@ export interface AgentContext {
|
|
|
17
17
|
*/
|
|
18
18
|
export declare function detectContext(): AgentContext;
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* Determine if verbose output should be used based on context
|
|
21
21
|
*
|
|
22
22
|
* @param context Agent context
|
|
23
|
-
* @returns
|
|
23
|
+
* @returns True if verbose output is recommended, false for minimal
|
|
24
24
|
*/
|
|
25
|
-
export declare function
|
|
25
|
+
export declare function shouldBeVerbose(context: AgentContext): boolean;
|
|
26
26
|
//# sourceMappingURL=context-detector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-detector.d.ts","sourceRoot":"","sources":["../../src/utils/context-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,YAAY,CAuD5C;AAED;;;;;GAKG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"context-detector.d.ts","sourceRoot":"","sources":["../../src/utils/context-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,YAAY,CAuD5C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAkB9D"}
|
|
@@ -60,21 +60,25 @@ export function detectContext() {
|
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
|
-
*
|
|
63
|
+
* Determine if verbose output should be used based on context
|
|
64
64
|
*
|
|
65
65
|
* @param context Agent context
|
|
66
|
-
* @returns
|
|
66
|
+
* @returns True if verbose output is recommended, false for minimal
|
|
67
67
|
*/
|
|
68
|
-
export function
|
|
68
|
+
export function shouldBeVerbose(context) {
|
|
69
|
+
// Agents (Claude Code, Cursor, etc.) prefer minimal output
|
|
69
70
|
if (context.isAgent) {
|
|
70
|
-
return
|
|
71
|
+
return false;
|
|
71
72
|
}
|
|
73
|
+
// CI environments prefer minimal output
|
|
72
74
|
if (context.isCI) {
|
|
73
|
-
return
|
|
75
|
+
return false;
|
|
74
76
|
}
|
|
77
|
+
// Interactive terminals can handle verbose output
|
|
75
78
|
if (context.isInteractive) {
|
|
76
|
-
return
|
|
79
|
+
return true;
|
|
77
80
|
}
|
|
78
|
-
|
|
81
|
+
// Default to minimal for non-interactive contexts
|
|
82
|
+
return false;
|
|
79
83
|
}
|
|
80
84
|
//# sourceMappingURL=context-detector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-detector.js","sourceRoot":"","sources":["../../src/utils/context-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAExB,wCAAwC;IACxC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,aAAa;YACxB,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,IAAI,GAAG,CAAC,EAAE,KAAK,MAAM,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,IAAI;YACV,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,KAAK;QACX,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK;KAC7C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"context-detector.js","sourceRoot":"","sources":["../../src/utils/context-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAExB,wCAAwC;IACxC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,aAAa;YACxB,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,IAAI,GAAG,CAAC,EAAE,KAAK,MAAM,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,IAAI;YACV,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,KAAK;QACX,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK;KAC7C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAqB;IACnD,2DAA2D;IAC3D,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IACxC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kDAAkD;IAClD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kDAAkD;IAClD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -8,7 +8,7 @@ import type { ValidationConfig } from '@vibe-validate/core';
|
|
|
8
8
|
import type { AgentContext } from './context-detector.js';
|
|
9
9
|
export interface RunnerOptions {
|
|
10
10
|
force?: boolean;
|
|
11
|
-
|
|
11
|
+
verbose: boolean;
|
|
12
12
|
context: AgentContext;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
@@ -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,
|
|
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"}
|
|
@@ -19,26 +19,24 @@ export function createRunnerConfig(config, options) {
|
|
|
19
19
|
envVars[key] = value;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
// Choose callbacks based on output format
|
|
27
|
-
const callbacks = options.format === 'human'
|
|
28
|
-
? createHumanCallbacks()
|
|
29
|
-
: createAgentCallbacks(options.format);
|
|
22
|
+
// Choose callbacks based on verbosity
|
|
23
|
+
const callbacks = options.verbose
|
|
24
|
+
? createVerboseCallbacks()
|
|
25
|
+
: createMinimalCallbacks();
|
|
30
26
|
return {
|
|
31
27
|
phases: config.validation?.phases || [],
|
|
32
28
|
enableFailFast: true, // Default to fail-fast (individual phases can override)
|
|
29
|
+
forceRun: options.force, // Pass force flag to runner
|
|
30
|
+
verbose: options.verbose, // Pass verbose flag to runner for output streaming
|
|
33
31
|
env: envVars,
|
|
34
32
|
stateFilePath: '.vibe-validate-state.yaml',
|
|
35
33
|
...callbacks,
|
|
36
34
|
};
|
|
37
35
|
}
|
|
38
36
|
/**
|
|
39
|
-
* Create
|
|
37
|
+
* Create verbose console callbacks (colorful, detailed progress)
|
|
40
38
|
*/
|
|
41
|
-
function
|
|
39
|
+
function createVerboseCallbacks() {
|
|
42
40
|
return {
|
|
43
41
|
onPhaseStart: (phase) => {
|
|
44
42
|
console.log(chalk.blue(`\n🔄 Running phase: ${phase.name}`));
|
|
@@ -68,19 +66,10 @@ function createHumanCallbacks() {
|
|
|
68
66
|
};
|
|
69
67
|
}
|
|
70
68
|
/**
|
|
71
|
-
* Create agent-friendly
|
|
69
|
+
* Create minimal callbacks (agent-friendly YAML output)
|
|
72
70
|
*/
|
|
73
|
-
function
|
|
74
|
-
|
|
75
|
-
// JSON format: output structured data only at the end
|
|
76
|
-
return {
|
|
77
|
-
onPhaseStart: () => { }, // Silent
|
|
78
|
-
onPhaseComplete: () => { }, // Silent
|
|
79
|
-
onStepStart: () => { }, // Silent
|
|
80
|
-
onStepComplete: () => { }, // Silent
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
// YAML format: minimal progress output
|
|
71
|
+
function createMinimalCallbacks() {
|
|
72
|
+
// Minimal YAML-structured progress output
|
|
84
73
|
return {
|
|
85
74
|
onPhaseStart: (phase) => {
|
|
86
75
|
console.log(`phase_start: ${phase.name}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-adapter.js","sourceRoot":"","sources":["../../src/utils/runner-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA0B,EAC1B,OAAsB;IAEtB,kFAAkF;IAClF,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"runner-adapter.js","sourceRoot":"","sources":["../../src/utils/runner-adapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe-validate/cli",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.9",
|
|
4
4
|
"description": "Command-line interface for vibe-validate validation framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -61,15 +61,17 @@
|
|
|
61
61
|
"access": "public"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@vibe-validate/core": "
|
|
65
|
-
"@vibe-validate/git": "
|
|
66
|
-
"@vibe-validate/config": "
|
|
64
|
+
"@vibe-validate/core": "workspace:*",
|
|
65
|
+
"@vibe-validate/git": "workspace:*",
|
|
66
|
+
"@vibe-validate/config": "workspace:*",
|
|
67
67
|
"commander": "^12.1.0",
|
|
68
68
|
"chalk": "^5.3.0",
|
|
69
|
-
"yaml": "^2.6.1"
|
|
69
|
+
"yaml": "^2.6.1",
|
|
70
|
+
"js-yaml": "^4.1.0"
|
|
70
71
|
},
|
|
71
72
|
"devDependencies": {
|
|
72
73
|
"@types/node": "^20.14.8",
|
|
74
|
+
"@types/js-yaml": "^4.0.9",
|
|
73
75
|
"typescript": "^5.5.2",
|
|
74
76
|
"vitest": "^2.0.5"
|
|
75
77
|
}
|