@vibe-agent-toolkit/cli 0.1.41-rc.7 → 0.1.41-rc.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/vat +24 -1
- package/dist/bin/vat.js +24 -1
- package/dist/bin/vat.js.map +1 -1
- package/dist/bin.js +12 -1
- package/dist/bin.js.map +1 -1
- package/dist/commands/agent/list.d.ts +11 -0
- package/dist/commands/agent/list.d.ts.map +1 -1
- package/dist/commands/agent/list.js +30 -11
- package/dist/commands/agent/list.js.map +1 -1
- package/dist/commands/audit.d.ts +34 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +220 -88
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/build.d.ts +14 -0
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +89 -24
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/claude/marketplace/validate.d.ts +97 -0
- package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/validate.js +154 -40
- package/dist/commands/claude/marketplace/validate.js.map +1 -1
- package/dist/commands/claude/org/stubs.d.ts +9 -1
- package/dist/commands/claude/org/stubs.d.ts.map +1 -1
- package/dist/commands/claude/org/stubs.js +11 -3
- package/dist/commands/claude/org/stubs.js.map +1 -1
- package/dist/commands/claude/plugin/build.d.ts +25 -2
- package/dist/commands/claude/plugin/build.d.ts.map +1 -1
- package/dist/commands/claude/plugin/build.js +99 -10
- package/dist/commands/claude/plugin/build.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-json-merge.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-json-merge.js +15 -0
- package/dist/commands/claude/plugin/plugin-json-merge.js.map +1 -1
- package/dist/commands/corpus/report.d.ts +22 -4
- package/dist/commands/corpus/report.d.ts.map +1 -1
- package/dist/commands/corpus/report.js +1 -0
- package/dist/commands/corpus/report.js.map +1 -1
- package/dist/commands/corpus/runner.d.ts +16 -1
- package/dist/commands/corpus/runner.d.ts.map +1 -1
- package/dist/commands/corpus/runner.js +40 -22
- package/dist/commands/corpus/runner.js.map +1 -1
- package/dist/commands/inventory.d.ts +2 -0
- package/dist/commands/inventory.d.ts.map +1 -1
- package/dist/commands/inventory.js +45 -4
- package/dist/commands/inventory.js.map +1 -1
- package/dist/commands/phase-utils.d.ts +183 -14
- package/dist/commands/phase-utils.d.ts.map +1 -1
- package/dist/commands/phase-utils.js +294 -29
- package/dist/commands/phase-utils.js.map +1 -1
- package/dist/commands/rag/query-command.d.ts +40 -0
- package/dist/commands/rag/query-command.d.ts.map +1 -1
- package/dist/commands/rag/query-command.js +47 -20
- package/dist/commands/rag/query-command.js.map +1 -1
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +27 -9
- package/dist/commands/resources/index.js.map +1 -1
- package/dist/commands/resources/scan.d.ts +37 -0
- package/dist/commands/resources/scan.d.ts.map +1 -1
- package/dist/commands/resources/scan.js +47 -32
- package/dist/commands/resources/scan.js.map +1 -1
- package/dist/commands/resources/validate.d.ts +136 -1
- package/dist/commands/resources/validate.d.ts.map +1 -1
- package/dist/commands/resources/validate.js +105 -66
- package/dist/commands/resources/validate.js.map +1 -1
- package/dist/commands/skill/review.d.ts.map +1 -1
- package/dist/commands/skill/review.js +7 -3
- package/dist/commands/skill/review.js.map +1 -1
- package/dist/commands/skill/test/run.d.ts +1 -1
- package/dist/commands/skill/test/run.d.ts.map +1 -1
- package/dist/commands/skill/test/run.js +8 -6
- package/dist/commands/skill/test/run.js.map +1 -1
- package/dist/commands/skills/build.d.ts +96 -7
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +277 -60
- package/dist/commands/skills/build.js.map +1 -1
- package/dist/commands/skills/command-helpers.d.ts +6 -10
- package/dist/commands/skills/command-helpers.d.ts.map +1 -1
- package/dist/commands/skills/command-helpers.js +6 -22
- package/dist/commands/skills/command-helpers.js.map +1 -1
- package/dist/commands/skills/list.d.ts +18 -0
- package/dist/commands/skills/list.d.ts.map +1 -1
- package/dist/commands/skills/list.js +41 -15
- package/dist/commands/skills/list.js.map +1 -1
- package/dist/commands/skills/package.d.ts +15 -0
- package/dist/commands/skills/package.d.ts.map +1 -1
- package/dist/commands/skills/package.js +30 -20
- package/dist/commands/skills/package.js.map +1 -1
- package/dist/commands/skills/validate-command.d.ts.map +1 -1
- package/dist/commands/skills/validate-command.js +22 -6
- package/dist/commands/skills/validate-command.js.map +1 -1
- package/dist/commands/skills/validate.d.ts +44 -3
- package/dist/commands/skills/validate.d.ts.map +1 -1
- package/dist/commands/skills/validate.js +180 -46
- package/dist/commands/skills/validate.js.map +1 -1
- package/dist/commands/validate.d.ts +18 -0
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +73 -66
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts +38 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +203 -83
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/skill-resolution/index.d.ts +1 -1
- package/dist/skill-resolution/index.d.ts.map +1 -1
- package/dist/skill-resolution/index.js +1 -1
- package/dist/skill-resolution/index.js.map +1 -1
- package/dist/skill-resolution/packaging-config.d.ts +15 -2
- package/dist/skill-resolution/packaging-config.d.ts.map +1 -1
- package/dist/skill-resolution/packaging-config.js +39 -2
- package/dist/skill-resolution/packaging-config.js.map +1 -1
- package/dist/utils/command-error.d.ts +34 -1
- package/dist/utils/command-error.d.ts.map +1 -1
- package/dist/utils/command-error.js +32 -1
- package/dist/utils/command-error.js.map +1 -1
- package/dist/utils/help-loader.d.ts +6 -2
- package/dist/utils/help-loader.d.ts.map +1 -1
- package/dist/utils/help-loader.js +9 -16
- package/dist/utils/help-loader.js.map +1 -1
- package/dist/utils/issue-rendering.d.ts +88 -0
- package/dist/utils/issue-rendering.d.ts.map +1 -1
- package/dist/utils/issue-rendering.js +94 -0
- package/dist/utils/issue-rendering.js.map +1 -1
- package/dist/utils/output.d.ts +54 -5
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +111 -17
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/relativize-paths.d.ts +45 -0
- package/dist/utils/relativize-paths.d.ts.map +1 -0
- package/dist/utils/relativize-paths.js +67 -0
- package/dist/utils/relativize-paths.js.map +1 -0
- package/dist/utils/resource-loader.d.ts +21 -2
- package/dist/utils/resource-loader.d.ts.map +1 -1
- package/dist/utils/resource-loader.js +85 -11
- package/dist/utils/resource-loader.js.map +1 -1
- package/dist/utils/skill-packaging-config.d.ts +22 -1
- package/dist/utils/skill-packaging-config.d.ts.map +1 -1
- package/dist/utils/skill-packaging-config.js +26 -0
- package/dist/utils/skill-packaging-config.js.map +1 -1
- package/dist/utils/verdict-helpers.d.ts +4 -3
- package/dist/utils/verdict-helpers.d.ts.map +1 -1
- package/dist/utils/verdict-helpers.js +6 -13
- package/dist/utils/verdict-helpers.js.map +1 -1
- package/docs/rag.md +9 -4
- package/docs/resources.md +30 -14
- package/docs/skills.md +9 -5
- package/package.json +12 -12
|
@@ -28,24 +28,45 @@ import { loadConfig } from '../utils/config-loader.js';
|
|
|
28
28
|
import { createLogger } from '../utils/logger.js';
|
|
29
29
|
import { writeYamlOutput } from '../utils/output.js';
|
|
30
30
|
import { requireProjectRoot } from '../utils/project-root-policy.js';
|
|
31
|
-
import { aggregatePhaseStatus, exitCodeForPhases, resolveBinPath, runPhase, } from './phase-utils.js';
|
|
31
|
+
import { addRetiredOnlyOption, aggregatePhaseIssueCounts, aggregatePhaseStatus, applyPhaseSelection, decidePhaseSelection, exitCodeForPhases, rejectRetiredOnly, resolveBinPath, runPhase, } from './phase-utils.js';
|
|
32
32
|
/** Surfaces `vat validate` knows how to run, in stable execution order. */
|
|
33
33
|
const VALID_SURFACES = ['resources', 'skills'];
|
|
34
|
+
const VALIDATE_VOCABULARY = {
|
|
35
|
+
noun: 'Surface',
|
|
36
|
+
verb: 'validate',
|
|
37
|
+
validNames: VALID_SURFACES,
|
|
38
|
+
noop: {
|
|
39
|
+
// A bare run with nothing configured is a clean no-op (exit 0, per issue
|
|
40
|
+
// #128's "doesn't check what it doesn't know about") — but silent success
|
|
41
|
+
// on stdout alone is indistinguishable, to anyone watching only the exit
|
|
42
|
+
// code, from a run that actually validated something. Warn on stderr so a
|
|
43
|
+
// config typo (e.g. `recources:`) doesn't masquerade as "all good."
|
|
44
|
+
warning: 'No resources: or skills: block found in vibe-agent-toolkit.config.yaml — nothing to validate. If this is unexpected, check your config.',
|
|
45
|
+
note: 'No configured validators (no resources or skills block in vibe-agent-toolkit.config.yaml).',
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Measured full-run duration on the 90-skill / 1,041-document adopter, cited by
|
|
50
|
+
* the retired-`--only` message: resources 13.9s + skills 19.3s.
|
|
51
|
+
*/
|
|
52
|
+
const VALIDATE_FULL_RUN_SECONDS = 35;
|
|
34
53
|
export function createValidateTopLevelCommand() {
|
|
35
54
|
const command = new Command('validate');
|
|
36
|
-
command
|
|
55
|
+
addRetiredOnlyOption(command)
|
|
37
56
|
.description('Validate configured surfaces from source (resources + skills) — no build required')
|
|
38
|
-
.option('--only <surface>', 'Validate only a specific surface: resources, skills')
|
|
39
57
|
.option('--debug', 'Enable debug logging')
|
|
58
|
+
.option('-v, --verbose', 'Show every finding, not just the collapsed counts')
|
|
40
59
|
.action(validateTopLevelCommand)
|
|
41
60
|
.addHelpText('after', `
|
|
42
61
|
Description:
|
|
43
62
|
Runs the source-level validators (resources, skills) the project's config
|
|
44
63
|
declares — and only those. A surface whose config block is absent is skipped
|
|
45
64
|
(a project with no skills block does not run skill validation; no error, no
|
|
46
|
-
noise, but a stderr warning if nothing at all is configured).
|
|
47
|
-
|
|
48
|
-
|
|
65
|
+
noise, but a stderr warning if nothing at all is configured).
|
|
66
|
+
|
|
67
|
+
A run is a WHOLE run: '--only' was removed (a full run is ~35s, and the flag
|
|
68
|
+
let a renamed config key silently drop a CI gate's coverage). 'vat build'
|
|
69
|
+
keeps its '--only', where a phase costs minutes rather than seconds.
|
|
49
70
|
|
|
50
71
|
Source-level only. Unlike 'vat verify', this never inspects built dist
|
|
51
72
|
artifacts and never requires a build.
|
|
@@ -55,17 +76,22 @@ Description:
|
|
|
55
76
|
skills → SKILL.md frontmatter and packaging validation (when 'skills:' configured)
|
|
56
77
|
|
|
57
78
|
Output:
|
|
58
|
-
YAML
|
|
59
|
-
per surface: status (success | error | system-error) plus the
|
|
60
|
-
exitCode, signal, or spawn error — a surface that could not run is
|
|
61
|
-
reported as a surface that failed validation.
|
|
62
|
-
|
|
79
|
+
ONE YAML document → stdout
|
|
80
|
+
per surface: status (success | warning | error | system-error) plus the
|
|
81
|
+
child's exitCode, signal, or spawn error — a surface that could not run is
|
|
82
|
+
never reported as a surface that failed validation. The validator's own
|
|
83
|
+
report is captured and nested under 'report', so the whole run stays a
|
|
84
|
+
single parseable document ('vat validate | jq' works). A surface's status
|
|
85
|
+
comes from the validator's REPORTED status, not from its exit code — an
|
|
86
|
+
exit code cannot express 'warning'.
|
|
87
|
+
Progress and validation errors → stderr (streamed live)
|
|
63
88
|
|
|
64
89
|
Exit Codes:
|
|
65
90
|
0 - All configured validators passed (or nothing configured to validate)
|
|
66
|
-
1 - Validation errors found, or --only
|
|
91
|
+
1 - Validation errors found, or the retired '--only' flag was passed
|
|
67
92
|
2 - System error (this command's own, or propagated from a validator that
|
|
68
|
-
could not run: exited 2, was killed by a signal,
|
|
93
|
+
could not run: exited 2, was killed by a signal, was never spawned, or
|
|
94
|
+
wrote output that could not be parsed)
|
|
69
95
|
|
|
70
96
|
Requirements:
|
|
71
97
|
projectRoot: required (errors if no vibe-agent-toolkit.config.yaml or .git/ ancestor)
|
|
@@ -75,76 +101,49 @@ Requirements:
|
|
|
75
101
|
|
|
76
102
|
Example:
|
|
77
103
|
$ vat validate # Validate every configured surface
|
|
78
|
-
$ vat validate --only skills # Validate skills only
|
|
79
104
|
`);
|
|
80
105
|
return command;
|
|
81
106
|
}
|
|
82
107
|
/**
|
|
83
|
-
*
|
|
108
|
+
* Decide which validation surfaces to run.
|
|
109
|
+
*
|
|
84
110
|
* A surface is included only when its config block is present, so coverage is
|
|
85
|
-
* discovered rather than hand-composed
|
|
86
|
-
*
|
|
87
|
-
*
|
|
111
|
+
* discovered rather than hand-composed — and with `--only` retired, config
|
|
112
|
+
* presence is now the ONLY input. There is no longer a way for a caller to
|
|
113
|
+
* narrow the run, so there is no longer a way for a CI gate to ask for coverage
|
|
114
|
+
* it cannot get; the class of silent-coverage-loss bug the `--only` failure arms
|
|
115
|
+
* existed to catch is now unreachable by construction rather than guarded.
|
|
116
|
+
*
|
|
117
|
+
* `only` is still passed to {@link decidePhaseSelection} as `undefined`: that
|
|
118
|
+
* helper is shared with `vat build`, which keeps its own `--only`.
|
|
88
119
|
*/
|
|
89
|
-
function
|
|
90
|
-
|
|
120
|
+
export function selectValidateSurfaces(config, verbose = false) {
|
|
121
|
+
// Forwarded to every surface, exactly as `vat verify` forwards its own. Both
|
|
122
|
+
// child validators already accept `-v, --verbose`; only this command lacked
|
|
123
|
+
// the flag, which made the collapsed warning/info detail unreachable HERE
|
|
124
|
+
// while the same findings were one `vat skills validate` away.
|
|
125
|
+
const detail = verbose ? ['--verbose'] : [];
|
|
91
126
|
const phases = [];
|
|
92
|
-
if (
|
|
93
|
-
phases.push({ name: 'resources', args: ['resources', 'validate'] });
|
|
127
|
+
if (config?.resources) {
|
|
128
|
+
phases.push({ name: 'resources', args: ['resources', 'validate', ...detail] });
|
|
94
129
|
}
|
|
95
|
-
if (
|
|
96
|
-
phases.push({ name: 'skills', args: ['skills', 'validate'] });
|
|
130
|
+
if (config?.skills) {
|
|
131
|
+
phases.push({ name: 'skills', args: ['skills', 'validate', ...detail] });
|
|
97
132
|
}
|
|
98
|
-
return phases;
|
|
133
|
+
return decidePhaseSelection(undefined, phases, VALIDATE_VOCABULARY);
|
|
99
134
|
}
|
|
100
135
|
async function validateTopLevelCommand(options) {
|
|
136
|
+
// Before requireProjectRoot: a retired flag is a usage error, and answering it
|
|
137
|
+
// with "no vibe-agent-toolkit.config.yaml found" would diagnose the wrong
|
|
138
|
+
// problem for anyone running the old invocation outside a project.
|
|
139
|
+
rejectRetiredOnly(options.only, 'vat validate', VALIDATE_FULL_RUN_SECONDS);
|
|
101
140
|
// requireProjectRoot returns the discovered root; read config from there so a
|
|
102
141
|
// subdirectory invocation doesn't load an empty config and falsely pass.
|
|
103
142
|
const projectRoot = requireProjectRoot(process.cwd(), 'vat validate');
|
|
104
143
|
const logger = createLogger(options.debug ? { debug: true } : {});
|
|
105
144
|
const startTime = Date.now();
|
|
106
|
-
// `--only` failures — an unrecognized surface name, or a recognized name
|
|
107
|
-
// that just isn't configured — are both "you asked for a surface that
|
|
108
|
-
// can't run." Both must exit 1 (not fall through to the generic exit-2
|
|
109
|
-
// system-error path), so a CI gate differentiating "validation failed"
|
|
110
|
-
// from "system error" doesn't miss one of the two.
|
|
111
|
-
const failOnly = (message) => {
|
|
112
|
-
logger.error(message);
|
|
113
|
-
writeYamlOutput({
|
|
114
|
-
status: 'error',
|
|
115
|
-
phases: [],
|
|
116
|
-
error: message,
|
|
117
|
-
duration: `${Date.now() - startTime}ms`,
|
|
118
|
-
});
|
|
119
|
-
return process.exit(1);
|
|
120
|
-
};
|
|
121
145
|
try {
|
|
122
|
-
|
|
123
|
-
failOnly(`Unknown surface: ${options.only}. Valid surfaces: ${VALID_SURFACES.join(', ')}`);
|
|
124
|
-
}
|
|
125
|
-
const phases = buildPhaseList(options.only, projectRoot);
|
|
126
|
-
if (phases.length === 0) {
|
|
127
|
-
// An explicit `--only <surface>` that isn't configured is a failure: the
|
|
128
|
-
// caller asked for a specific validator that can't run, so a CI gate must
|
|
129
|
-
// not stay green.
|
|
130
|
-
if (options.only) {
|
|
131
|
-
failOnly(`Surface '${options.only}' is not configured in vibe-agent-toolkit.config.yaml — nothing to validate.`);
|
|
132
|
-
}
|
|
133
|
-
// A bare run with nothing configured is a clean no-op (exit 0, per
|
|
134
|
-
// issue #128's "doesn't check what it doesn't know about") — but silent
|
|
135
|
-
// success on stdout alone is indistinguishable, to anyone watching only
|
|
136
|
-
// the exit code, from a run that actually validated something. Warn on
|
|
137
|
-
// stderr so a config typo (e.g. `recources:`) doesn't masquerade as
|
|
138
|
-
// "all good."
|
|
139
|
-
logger.warn('No resources: or skills: block found in vibe-agent-toolkit.config.yaml — nothing to validate. If this is unexpected, check your config.');
|
|
140
|
-
writeYamlOutput({
|
|
141
|
-
status: 'success',
|
|
142
|
-
phases: [],
|
|
143
|
-
note: 'No configured validators (no resources or skills block in vibe-agent-toolkit.config.yaml).',
|
|
144
|
-
duration: `${Date.now() - startTime}ms`,
|
|
145
|
-
});
|
|
146
|
-
process.exit(0);
|
|
147
|
-
}
|
|
146
|
+
const phases = applyPhaseSelection(selectValidateSurfaces(loadConfig(projectRoot), options.verbose === true), logger, startTime);
|
|
148
147
|
logger.info(`✅ vat validate (surfaces: ${phases.map((p) => p.name).join(' → ')})`);
|
|
149
148
|
const binPath = resolveBinPath();
|
|
150
149
|
const phaseResults = [];
|
|
@@ -155,8 +154,16 @@ async function validateTopLevelCommand(options) {
|
|
|
155
154
|
// A surface whose validator could not RUN (exit 2, killed, never spawned)
|
|
156
155
|
// is not a surface that failed validation: it exits 2, so a CI gate can
|
|
157
156
|
// tell a broken config from a broken link.
|
|
157
|
+
// `issueCounts` beside `status` because a status alone cannot express a
|
|
158
|
+
// three-valued distribution, and this document published none at all: a
|
|
159
|
+
// consumer that wanted "did anything need acting on" had to either trust a
|
|
160
|
+
// bare `status` or hand-sum the phases. `status: warning` on a warnings-only
|
|
161
|
+
// repo is correct and deliberate — `success` means "nothing to act on", not
|
|
162
|
+
// "nothing to see" — so gate on `issueCounts.errors` or the exit code, both
|
|
163
|
+
// of which stay 0 through any number of warnings.
|
|
158
164
|
writeYamlOutput({
|
|
159
165
|
status: aggregatePhaseStatus(phaseResults),
|
|
166
|
+
issueCounts: aggregatePhaseIssueCounts(phaseResults),
|
|
160
167
|
phases: phaseResults,
|
|
161
168
|
duration: `${Date.now() - startTime}ms`,
|
|
162
169
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,QAAQ,GAKT,MAAM,kBAAkB,CAAC;AAE1B,2EAA2E;AAC3E,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAU,CAAC;AAExD,MAAM,mBAAmB,GAAoB;IAC3C,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,cAAc;IAC1B,IAAI,EAAE;QACJ,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,OAAO,EACL,yIAAyI;QAC3I,IAAI,EAAE,4FAA4F;KACnG;CACF,CAAC;AASF;;;GAGG;AACH,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC,MAAM,UAAU,6BAA6B;IAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAExC,oBAAoB,CAAC,OAAO,CAAC;SAC1B,WAAW,CAAC,mFAAmF,CAAC;SAChG,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,mDAAmD,CAAC;SAC5E,MAAM,CAAC,uBAAuB,CAAC;SAC/B,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CL,CACI,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAiC,EACjC,OAAO,GAAG,KAAK;IAEf,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,+DAA+D;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,OAA+B;IACpE,+EAA+E;IAC/E,0EAA0E;IAC1E,mEAAmE;IACnE,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,yBAAyB,CAAC,CAAC;IAE3E,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,mBAAmB,CAChC,sBAAsB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,EACzE,MAAM,EACN,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnF,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,0EAA0E;QAC1E,wEAAwE;QACxE,2CAA2C;QAC3C,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,kDAAkD;QAClD,eAAe,CAAC;YACd,MAAM,EAAE,oBAAoB,CAAC,YAAY,CAAC;YAC1C,WAAW,EAAE,yBAAyB,CAAC,YAAY,CAAC;YACpD,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI;SACxC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
|
|
@@ -5,11 +5,20 @@
|
|
|
5
5
|
* 1. vat resources validate (link integrity, collection schemas)
|
|
6
6
|
* 2. vat skills validate (SKILL.md frontmatter validation)
|
|
7
7
|
* 3. vat claude marketplace validate (strict marketplace validation, when configured)
|
|
8
|
-
* 4.
|
|
8
|
+
* 4. files-config-dests (in-process; every `files:` dest exists in the built output)
|
|
9
|
+
* 5. consistency check (in-process; skill distribution integrity — package.json, plugin assignment)
|
|
10
|
+
*
|
|
11
|
+
* 1–3 are subprocess phases chosen by {@link selectVerifyPhases}; 4–5 run here and
|
|
12
|
+
* are chosen by `selectInProcessVerifyPhases`. Both sets are config-gated, and both
|
|
13
|
+
* are announced on startup.
|
|
9
14
|
*/
|
|
15
|
+
import type { ProjectConfig } from '@vibe-agent-toolkit/resources';
|
|
10
16
|
import { Command } from 'commander';
|
|
17
|
+
import { type PhaseSelection } from './phase-utils.js';
|
|
11
18
|
export interface VerifyCommandOptions {
|
|
19
|
+
/** Retired; declared only so {@link rejectRetiredOnly} can explain the removal. */
|
|
12
20
|
only?: string;
|
|
21
|
+
verbose?: boolean;
|
|
13
22
|
debug?: boolean;
|
|
14
23
|
}
|
|
15
24
|
export declare function createVerifyTopLevelCommand(): Command;
|
|
@@ -33,4 +42,32 @@ export interface FilesDestCheckResult {
|
|
|
33
42
|
* @returns One result per (skill, outputDir) pair where dests are absent.
|
|
34
43
|
*/
|
|
35
44
|
export declare function checkFilesConfigDests(cwd: string): FilesDestCheckResult[];
|
|
45
|
+
/**
|
|
46
|
+
* Decide which verification phases to run.
|
|
47
|
+
*
|
|
48
|
+
* Config-gated, exactly as `vat validate` is. It used to push `resources` and
|
|
49
|
+
* `skills` unconditionally, so `vat verify --only skills` in a project with no
|
|
50
|
+
* `skills:` block exited 0 while `vat validate --only skills` on the same
|
|
51
|
+
* project exited 1 — same question, opposite verdicts, and a CI gate pinned to
|
|
52
|
+
* the verify form stayed green forever the moment the config key was renamed.
|
|
53
|
+
*
|
|
54
|
+
* `--only` is gone from this command entirely. Measured on a 90-skill project a
|
|
55
|
+
* full `vat verify` is ~32s, of which the two slowest phases are ~28s — the
|
|
56
|
+
* filter bought at most ~18s and repeatedly bought a wrong answer with it. Every
|
|
57
|
+
* run is now a whole run, and `only` is passed to {@link decidePhaseSelection}
|
|
58
|
+
* as `undefined` (that helper still routes `--only` for `vat validate` and
|
|
59
|
+
* `vat build`).
|
|
60
|
+
*
|
|
61
|
+
* @param configError - The config-load failure, when the config could not be
|
|
62
|
+
* read. Every subprocess phase still runs so the CHILD reports the real
|
|
63
|
+
* config error (exit 2) instead of this command guessing.
|
|
64
|
+
* @param verbose - Forwarded to each subprocess phase as `--verbose`. The
|
|
65
|
+
* children own their own summarization; this command only relays the request.
|
|
66
|
+
*/
|
|
67
|
+
export declare function selectVerifyPhases(config: ProjectConfig | undefined, configError?: string, verbose?: boolean): PhaseSelection;
|
|
68
|
+
/**
|
|
69
|
+
* The startup announcement: every phase this run will inspect something with,
|
|
70
|
+
* in order. A phase that would consult nothing is not named.
|
|
71
|
+
*/
|
|
72
|
+
export declare function formatVerifyAnnouncement(subprocessPhaseNames: readonly string[], config: ProjectConfig | undefined): string;
|
|
36
73
|
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAYH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,OAAO,EAWL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AASD,wBAAgB,2BAA2B,IAAI,OAAO,CA4ErD;AAED,iFAAiF;AACjF,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAwCD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAkDzE;AAkFD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,OAAO,GAChB,cAAc,CA6BhB;AAyCD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,oBAAoB,EAAE,SAAS,MAAM,EAAE,EACvC,MAAM,EAAE,aAAa,GAAG,SAAS,GAChC,MAAM,CAGR"}
|