@vibe-agent-toolkit/cli 0.1.41-rc.7 → 0.1.41
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 +23 -2
- 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/distributed-tree.d.ts +172 -0
- package/dist/commands/audit/distributed-tree.d.ts.map +1 -0
- package/dist/commands/audit/distributed-tree.js +319 -0
- package/dist/commands/audit/distributed-tree.js.map +1 -0
- package/dist/commands/audit.d.ts +69 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +525 -174
- 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 +103 -26
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.js +21 -3
- package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
- package/dist/commands/claude/marketplace/validate.d.ts +125 -0
- package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/validate.js +251 -44
- 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 +34 -4
- package/dist/commands/claude/plugin/build.d.ts.map +1 -1
- package/dist/commands/claude/plugin/build.js +187 -16
- package/dist/commands/claude/plugin/build.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-files.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-files.js +6 -2
- package/dist/commands/claude/plugin/plugin-files.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/claude/plugin/tree-copy.d.ts +40 -0
- package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
- package/dist/commands/claude/plugin/tree-copy.js +100 -4
- package/dist/commands/claude/plugin/tree-copy.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/doctor.js +1 -1
- package/dist/commands/doctor.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/positional-args.d.ts +36 -0
- package/dist/commands/positional-args.d.ts.map +1 -0
- package/dist/commands/positional-args.js +52 -0
- package/dist/commands/positional-args.js.map +1 -0
- 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-checklist.d.ts.map +1 -1
- package/dist/commands/skill/review-checklist.js +5 -0
- package/dist/commands/skill/review-checklist.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 +349 -11
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +901 -97
- 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/scope-guard.d.ts +64 -0
- package/dist/commands/skills/scope-guard.d.ts.map +1 -0
- package/dist/commands/skills/scope-guard.js +86 -0
- package/dist/commands/skills/scope-guard.js.map +1 -0
- package/dist/commands/skills/validate-command.d.ts.map +1 -1
- package/dist/commands/skills/validate-command.js +41 -7
- 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 +217 -53
- 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 +89 -68
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts +113 -6
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +440 -123
- 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 +130 -0
- package/dist/utils/issue-rendering.d.ts.map +1 -1
- package/dist/utils/issue-rendering.js +147 -0
- package/dist/utils/issue-rendering.js.map +1 -1
- package/dist/utils/issue-severity.d.ts +51 -0
- package/dist/utils/issue-severity.d.ts.map +1 -0
- package/dist/utils/issue-severity.js +63 -0
- package/dist/utils/issue-severity.js.map +1 -0
- 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/dist/version.d.ts +22 -2
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +31 -2
- package/dist/version.js.map +1 -1
- package/docs/index.md +12 -0
- package/docs/rag.md +9 -4
- package/docs/resources.md +30 -14
- package/docs/skills.md +25 -7
- package/package.json +12 -12
|
@@ -4,19 +4,20 @@
|
|
|
4
4
|
* Discovers skills from config yaml skills.include/exclude, validates each
|
|
5
5
|
* using validateSkillForPackaging with merged packaging config.
|
|
6
6
|
*/
|
|
7
|
-
import { calculateValidationStatus, countBySeverity, } from '@vibe-agent-toolkit/agent-schema';
|
|
7
|
+
import { allowUnusedIssues, calculateValidationStatus, countBySeverity, createAllowUsageLedger, } from '@vibe-agent-toolkit/agent-schema';
|
|
8
8
|
import { validateSkillForPackaging, } from '@vibe-agent-toolkit/agent-skills';
|
|
9
9
|
import { ResourceRegistry } from '@vibe-agent-toolkit/resources';
|
|
10
10
|
import { findProjectRoot, gitFindRoot, GitTracker, safePath } from '@vibe-agent-toolkit/utils';
|
|
11
11
|
import * as yaml from 'yaml';
|
|
12
|
+
import { handleCommandError } from '../../utils/command-error.js';
|
|
12
13
|
import { loadConfig } from '../../utils/config-loader.js';
|
|
13
14
|
import { formatDurationSecs } from '../../utils/duration.js';
|
|
14
|
-
import { formatIssueLines,
|
|
15
|
+
import { formatIssueLines, formatRunIssueLines, formatSeverityBreakdown, issuesToRenderAtVerbosity, summarizeFindings, sumSeverityCounts, } from '../../utils/issue-rendering.js';
|
|
15
16
|
import { requireProjectRoot } from '../../utils/project-root-policy.js';
|
|
16
|
-
import { mergeSkillPackagingConfig } from '../../utils/skill-packaging-config.js';
|
|
17
|
+
import { collectDeclaredEvalSuites, mergeSkillPackagingConfig } from '../../utils/skill-packaging-config.js';
|
|
17
18
|
import { renderSkillQualityFooter } from '../../utils/skill-quality-footer.js';
|
|
18
19
|
import { applyConfigVerdicts } from '../../utils/verdict-helpers.js';
|
|
19
|
-
import { filterSkillsByName,
|
|
20
|
+
import { filterSkillsByName, setupCommandContext, } from './command-helpers.js';
|
|
20
21
|
import { discoverSkillsFromConfig } from './skill-discovery.js';
|
|
21
22
|
/**
|
|
22
23
|
* Every issue emitted across the batch, after severity resolution.
|
|
@@ -29,22 +30,59 @@ function batchIssues(results) {
|
|
|
29
30
|
return results.flatMap((r) => r.allErrors);
|
|
30
31
|
}
|
|
31
32
|
/**
|
|
32
|
-
* One skill's YAML entry: the result plus the per-severity counts
|
|
33
|
-
* `status` cannot express.
|
|
33
|
+
* One skill's VERBOSE YAML entry: the whole result plus the per-severity counts
|
|
34
|
+
* its two-valued `status` cannot express.
|
|
34
35
|
*
|
|
35
36
|
* The per-skill `status` stays the gate verdict (`error` iff an active error) —
|
|
36
37
|
* that is what the exit code is derived from. `issueCounts` beside it is what
|
|
37
38
|
* makes `success` readable: "nothing you must act on", not "nothing was found".
|
|
39
|
+
*
|
|
40
|
+
* This shape is optimized for `> file` then `grep`, not for reading: on a
|
|
41
|
+
* 90-skill repo it is 17,262 of the 22,156 stdout lines `vat verify` emits.
|
|
38
42
|
*/
|
|
39
|
-
function
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
function toVerboseYamlResult(result) {
|
|
44
|
+
return { ...result, issueCounts: countBySeverity(result.allErrors) };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Does this skill have anything to say? Emitted findings OR allow-suppressed
|
|
48
|
+
* ones — the same predicate the human report uses, so the two streams cannot
|
|
49
|
+
* disagree about which skills exist.
|
|
50
|
+
*/
|
|
51
|
+
function hasFindings(result) {
|
|
52
|
+
return result.allErrors.length > 0 || result.ignoredErrors.length > 0;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* One skill's DEFAULT YAML entry: which asset has problems, how many, of what
|
|
56
|
+
* code — and nothing else.
|
|
57
|
+
*
|
|
58
|
+
* Why the per-code tally is a summary rather than N findings: 1,728 of the 1,897
|
|
59
|
+
* findings on a real 90-skill repo are one code, LINK_DROPPED_BY_DEPTH, and the
|
|
60
|
+
* four remedies its `fix` hint proposes (`linkFollowDepth`, `files:`,
|
|
61
|
+
* `validation.allow`, `excludeReferencesFromBundle`) are all SKILL-level config
|
|
62
|
+
* edits — so 348 findings on one skill propose the same four edits 348 times.
|
|
63
|
+
* The skill is the unit the reader acts on, so the skill is the unit we publish.
|
|
64
|
+
* Aggregating at EMISSION instead would break `validation.allow`'s per-`paths:`
|
|
65
|
+
* matching and per-path severity overrides, both of which need one issue per
|
|
66
|
+
* link; the collapse therefore has to happen here, after allow-filtering.
|
|
67
|
+
* Downgrading the code to `info` was considered and rejected: it would delete
|
|
68
|
+
* the signal the code exists for (a depth-limited walk may silently omit content
|
|
69
|
+
* the author expected to ship) and would contradict PACKAGED_TEST_INPUT, which
|
|
70
|
+
* `docs/validation-codes.md` keeps at `warning` on identical "this is configured
|
|
71
|
+
* behaviour, here is your receipt" reasoning.
|
|
72
|
+
*
|
|
73
|
+
* `allowed` is a scalar, not a list: an allow-suppressed finding is a fact about
|
|
74
|
+
* the skill a reader must not lose, but it is deliberately NOT in `codes`, which
|
|
75
|
+
* summarizes the EMITTED set.
|
|
76
|
+
*/
|
|
77
|
+
function toSummaryYamlResult(result) {
|
|
78
|
+
const { codes, ...counts } = summarizeFindings(result.allErrors);
|
|
79
|
+
const allowedCount = result.ignoredErrors.length;
|
|
45
80
|
return {
|
|
46
|
-
|
|
47
|
-
|
|
81
|
+
skillName: result.skillName,
|
|
82
|
+
status: result.status,
|
|
83
|
+
...counts,
|
|
84
|
+
...(allowedCount > 0 ? { allowed: allowedCount } : {}),
|
|
85
|
+
codes,
|
|
48
86
|
};
|
|
49
87
|
}
|
|
50
88
|
/**
|
|
@@ -55,40 +93,111 @@ function toYamlResult(result, verbose) {
|
|
|
55
93
|
* `results.some(r => r.status === 'error') ? 'error' : 'success'` — a two-value
|
|
56
94
|
* collapse that could never report the warning case, and so reported 33 active
|
|
57
95
|
* warnings as `success`.
|
|
96
|
+
*
|
|
97
|
+
* The header total counts BOTH the per-skill findings and the run-level ones,
|
|
98
|
+
* because the exit code does too — dropping run issues from the header would
|
|
99
|
+
* divorce the published verdict from the code the process actually returns.
|
|
100
|
+
* That is why `runIssueCounts` exists beside them: on a large real repo the
|
|
101
|
+
* header read 1814 warnings against a per-skill sum of 1800, and the missing 14
|
|
102
|
+
* were run-level ALLOW_UNUSED entries published only as a bare LIST. The
|
|
103
|
+
* identity `issueCounts === Σ results[].issueCounts + runIssueCounts` now holds
|
|
104
|
+
* by construction, so a consumer can reconcile the two numbers instead of
|
|
105
|
+
* hand-counting a list to find out whether anything went missing.
|
|
106
|
+
*
|
|
107
|
+
* That identity survives the default mode dropping every finding-free skill from
|
|
108
|
+
* `results[]`, because a dropped row contributes exactly zero to each bucket —
|
|
109
|
+
* and it survives the default row publishing its counts flat with zero buckets
|
|
110
|
+
* omitted, because an absent bucket reads as zero. Only the per-asset ROWS omit
|
|
111
|
+
* zeros: `issueCounts` and `runIssueCounts` keep their complete
|
|
112
|
+
* `{errors, warnings, info}` shape in both modes, because they are the
|
|
113
|
+
* reconciliation identity rather than something a reader scans.
|
|
58
114
|
*/
|
|
59
|
-
export function buildValidateSummary(results, duration, verbose) {
|
|
60
|
-
const
|
|
115
|
+
export function buildValidateSummary(results, duration, verbose, runIssues) {
|
|
116
|
+
const skillIssues = batchIssues(results);
|
|
117
|
+
const runIssueCounts = countBySeverity(runIssues);
|
|
61
118
|
return {
|
|
62
|
-
status: calculateValidationStatus(
|
|
63
|
-
issueCounts: countBySeverity(
|
|
119
|
+
status: calculateValidationStatus([...skillIssues, ...runIssues]),
|
|
120
|
+
issueCounts: sumSeverityCounts([countBySeverity(skillIssues), runIssueCounts]),
|
|
121
|
+
runIssueCounts,
|
|
122
|
+
// `skillsValidated` stays the true denominator even though the default
|
|
123
|
+
// `results[]` lists only the skills with something to say.
|
|
124
|
+
//
|
|
125
|
+
// KNOWN, DELIBERATELY NOT FIXED — the denominator and the listing disagree,
|
|
126
|
+
// and nothing in the document explains the gap. A real adopter run published
|
|
127
|
+
// `skillsValidated: 92` beside a `results:` array of 62 rows. Omitting the
|
|
128
|
+
// clean skills is the DESIGN — a report of 92 rows where 30 say nothing is a
|
|
129
|
+
// report nobody reads — but 23 of the omitted were config-DECLARED skills, so
|
|
130
|
+
// a reader reconciling 92 against 62 cannot tell "validated and clean" from
|
|
131
|
+
// "never validated at all". The omission is deliberate; the unexplained
|
|
132
|
+
// difference is the defect. A fix names the omitted population rather than
|
|
133
|
+
// re-listing it (a count of clean skills, or their names on a separate key) —
|
|
134
|
+
// it does not put the empty rows back.
|
|
64
135
|
skillsValidated: results.length,
|
|
65
|
-
results:
|
|
136
|
+
results: verbose
|
|
137
|
+
? results.map((r) => toVerboseYamlResult(r))
|
|
138
|
+
: results.filter((r) => hasFindings(r)).map((r) => toSummaryYamlResult(r)),
|
|
139
|
+
runIssues: [...runIssues],
|
|
66
140
|
durationSecs: formatDurationSecs(duration),
|
|
67
141
|
};
|
|
68
142
|
}
|
|
69
143
|
/**
|
|
70
144
|
* Output YAML summary to stdout
|
|
71
145
|
*/
|
|
72
|
-
function outputYamlSummary(results, duration, verbose) {
|
|
73
|
-
const output = buildValidateSummary(results, duration, verbose);
|
|
146
|
+
function outputYamlSummary(results, duration, verbose, runIssues) {
|
|
147
|
+
const output = buildValidateSummary(results, duration, verbose, runIssues);
|
|
74
148
|
console.log(yaml.stringify(output, { indent: 2, lineWidth: 0, aliasDuplicateObjects: false }));
|
|
75
149
|
}
|
|
76
|
-
/**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
150
|
+
/**
|
|
151
|
+
* ONE line for one skill: its severity breakdown, its allowed count, and the
|
|
152
|
+
* codes behind it, dominant first.
|
|
153
|
+
*
|
|
154
|
+
* The stderr counterpart of {@link toSummaryYamlResult} — same unit (the asset),
|
|
155
|
+
* same reason (see that function's comment). The per-issue blocks below are what
|
|
156
|
+
* made this stream 6,261 lines on a 90-skill repo.
|
|
157
|
+
*/
|
|
158
|
+
function skillSummaryLine(result) {
|
|
159
|
+
const { codes } = summarizeFindings(result.allErrors);
|
|
160
|
+
const breakdown = formatSeverityBreakdown(countBySeverity(result.allErrors));
|
|
161
|
+
const allowed = result.ignoredErrors.length > 0
|
|
162
|
+
? ` (+${result.ignoredErrors.length} allowed by config)`
|
|
163
|
+
: '';
|
|
164
|
+
const tally = Object.entries(codes).map(([code, count]) => `${code}: ${count}`).join(', ');
|
|
165
|
+
const codeSuffix = tally === '' ? '' : ` — ${tally}`;
|
|
166
|
+
return ` ${result.skillName}: ${breakdown}${allowed}${codeSuffix}`;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Lines for ONE skill: its summary row, then the findings that render in full
|
|
170
|
+
* beneath it at this verbosity.
|
|
171
|
+
*
|
|
172
|
+
* The row is unconditional — it is the only place a collapsed finding is
|
|
173
|
+
* counted, so a mode that replaced it with per-issue blocks would lose the
|
|
174
|
+
* allowed count and the per-code tally. What varies is what hangs below it, and
|
|
175
|
+
* that choice belongs to {@link issuesToRenderAtVerbosity}, not to this lane:
|
|
176
|
+
* an `error` renders in full at every verbosity (the reader must never have to
|
|
177
|
+
* re-run with `-v` to learn what failed the gate), while `warning`/`info`
|
|
178
|
+
* collapse into the row unless asked for.
|
|
179
|
+
*
|
|
180
|
+
* The allow-suppressed records are listed only under `verbose`; by default the
|
|
181
|
+
* row's `(+N allowed by config)` is their receipt.
|
|
182
|
+
*/
|
|
183
|
+
function skillReportLines(result, verbose) {
|
|
184
|
+
const lines = [skillSummaryLine(result)];
|
|
185
|
+
const rendered = issuesToRenderAtVerbosity(result.allErrors, verbose);
|
|
186
|
+
for (const issue of rendered) {
|
|
187
|
+
lines.push(...formatIssueLines(issue, ' '));
|
|
84
188
|
}
|
|
85
|
-
|
|
189
|
+
const listAllowed = verbose && result.ignoredErrors.length > 0;
|
|
190
|
+
if (listAllowed) {
|
|
86
191
|
lines.push(` Allowed issues (${result.ignoredErrors.length}):`);
|
|
87
192
|
for (const record of result.ignoredErrors) {
|
|
88
193
|
lines.push(` [${String(record.code)}] ${String(record.location)} (allowed: ${record.reason})`);
|
|
89
194
|
}
|
|
90
195
|
}
|
|
91
|
-
|
|
196
|
+
// A trailing blank line only when something was rendered beneath the row —
|
|
197
|
+
// otherwise consecutive one-line rows would be double-spaced.
|
|
198
|
+
if (rendered.length > 0 || listAllowed) {
|
|
199
|
+
lines.push('');
|
|
200
|
+
}
|
|
92
201
|
return lines;
|
|
93
202
|
}
|
|
94
203
|
/**
|
|
@@ -100,19 +209,38 @@ const STATUS_GLYPHS = {
|
|
|
100
209
|
warning: '⚠️ ',
|
|
101
210
|
success: '✅',
|
|
102
211
|
};
|
|
103
|
-
/**
|
|
212
|
+
/**
|
|
213
|
+
* Banner naming what the run actually found.
|
|
214
|
+
*
|
|
215
|
+
* "All validations passed" — with nothing after it — is reserved for a run with
|
|
216
|
+
* NO finding at all. Any non-error finding gets the same "passed with findings"
|
|
217
|
+
* wording whatever its severity, because the banner cannot tell an `info` that
|
|
218
|
+
* is genuinely inert from one whose own message says the build will die on it.
|
|
219
|
+
* The info-only banner used to assert "nothing to act on" and was printed
|
|
220
|
+
* directly above `FILES_GLOB_MATCHED_NOTHING`, whose message reads "`vat skills
|
|
221
|
+
* build` fails on a glob that matches nothing, so the build will fail unless
|
|
222
|
+
* that artifact is produced first" — a headline contradicting the single line
|
|
223
|
+
* beneath it.
|
|
224
|
+
*
|
|
225
|
+
* The severity is right (a glob over an unbuilt `dist/` matching nothing is the
|
|
226
|
+
* expected pre-build state and must not fail CI); only the claim was wrong. It
|
|
227
|
+
* is dropped rather than made conditional because the code registry carries no
|
|
228
|
+
* build-blocking fact to condition it on — `CodeRegistryEntry` in
|
|
229
|
+
* agent-schema/src/validation-codes.ts is exactly `defaultSeverity` /
|
|
230
|
+
* `description` / `fix` / `reference` — and keying the claim
|
|
231
|
+
* on a hardcoded list of code names would assert a cause this renderer cannot
|
|
232
|
+
* observe, and would go stale the next time a code is added.
|
|
233
|
+
*/
|
|
104
234
|
function reportBanner(status, counts) {
|
|
105
235
|
if (status === 'error') {
|
|
106
236
|
return `\n❌ Validation failed — ${formatSeverityBreakdown(counts)}:\n`;
|
|
107
237
|
}
|
|
108
|
-
if (
|
|
238
|
+
if (counts.warnings + counts.info > 0) {
|
|
109
239
|
// Non-blocking (exit 0), which is exactly why this used to print
|
|
110
|
-
// "All validations passed" over the
|
|
111
|
-
return `\n
|
|
240
|
+
// "All validations passed" over the findings.
|
|
241
|
+
return `\n${STATUS_GLYPHS[status]} Validation passed with findings — ${formatSeverityBreakdown(counts)}:\n`;
|
|
112
242
|
}
|
|
113
|
-
return
|
|
114
|
-
? `\n✅ All validations passed — ${formatSeverityBreakdown(counts)}, nothing to act on:\n`
|
|
115
|
-
: '\n✅ All validations passed';
|
|
243
|
+
return '\n✅ All validations passed';
|
|
116
244
|
}
|
|
117
245
|
/**
|
|
118
246
|
* Human-readable report lines for the whole batch.
|
|
@@ -120,24 +248,39 @@ function reportBanner(status, counts) {
|
|
|
120
248
|
* Renders every skill with ANY emitted finding, not just the ones that failed
|
|
121
249
|
* the gate: a warning-only or info-only run used to print the success banner and
|
|
122
250
|
* nothing else, so the findings existed only in the YAML on stdout.
|
|
251
|
+
*
|
|
252
|
+
* Every skill with findings gets its summary row at every verbosity; `verbose`
|
|
253
|
+
* picks only which findings are ALSO rendered in full beneath that row, per
|
|
254
|
+
* {@link issuesToRenderAtVerbosity} — errors always, `warning`/`info` when
|
|
255
|
+
* asked, `ignore` never. `verbose` deliberately does NOT gate errors: a default
|
|
256
|
+
* run that collapsed the error it exited 1 on into a count line forced the reader
|
|
257
|
+
* to re-run with a flag to learn what broke.
|
|
258
|
+
*
|
|
259
|
+
* Run-level findings and the banner are printed in full either way — there are
|
|
260
|
+
* ~14 of the former, and they belong to the project config rather than to any
|
|
261
|
+
* asset, so there is no row for them to collapse into.
|
|
123
262
|
*/
|
|
124
|
-
export function formatValidationReportLines(results) {
|
|
125
|
-
const issues = batchIssues(results);
|
|
263
|
+
export function formatValidationReportLines(results, runIssues, verbose) {
|
|
264
|
+
const issues = [...batchIssues(results), ...runIssues];
|
|
126
265
|
const counts = countBySeverity(issues);
|
|
127
266
|
const status = calculateValidationStatus(issues);
|
|
128
267
|
const lines = [reportBanner(status, counts)];
|
|
129
268
|
for (const result of results) {
|
|
130
|
-
if (result
|
|
269
|
+
if (!hasFindings(result))
|
|
131
270
|
continue;
|
|
132
|
-
lines.push(...
|
|
271
|
+
lines.push(...skillReportLines(result, verbose));
|
|
272
|
+
}
|
|
273
|
+
const runLines = formatRunIssueLines(runIssues);
|
|
274
|
+
if (runLines.length > 0) {
|
|
275
|
+
lines.push(...runLines, '');
|
|
133
276
|
}
|
|
134
277
|
return lines;
|
|
135
278
|
}
|
|
136
279
|
/**
|
|
137
280
|
* Output validation report to stdout (YAML) and stderr (human-readable)
|
|
138
281
|
*/
|
|
139
|
-
function outputValidationReport(results, duration, logger, verbose) {
|
|
140
|
-
outputYamlSummary(results, duration, verbose);
|
|
282
|
+
function outputValidationReport(results, duration, logger, verbose, runIssues) {
|
|
283
|
+
outputYamlSummary(results, duration, verbose, runIssues);
|
|
141
284
|
// Collect all emitted codes across skills (both errors and warnings) to drive the footer
|
|
142
285
|
const emittedCodes = new Set();
|
|
143
286
|
for (const r of results) {
|
|
@@ -145,8 +288,11 @@ function outputValidationReport(results, duration, logger, verbose) {
|
|
|
145
288
|
emittedCodes.add(issue.code);
|
|
146
289
|
}
|
|
147
290
|
}
|
|
148
|
-
const
|
|
149
|
-
|
|
291
|
+
for (const issue of runIssues) {
|
|
292
|
+
emittedCodes.add(issue.code);
|
|
293
|
+
}
|
|
294
|
+
const hasSkillFindings = results.some((r) => calculateValidationStatus(r.allErrors) !== 'success');
|
|
295
|
+
for (const line of formatValidationReportLines(results, runIssues, verbose)) {
|
|
150
296
|
logger.info(line);
|
|
151
297
|
}
|
|
152
298
|
renderSkillQualityFooter(logger, hasSkillFindings, emittedCodes);
|
|
@@ -168,7 +314,7 @@ export function formatSkillProgressLine(skillName, result) {
|
|
|
168
314
|
if (result.ignoredErrors.length > 0) {
|
|
169
315
|
lines.push(` (${result.ignoredErrors.length} allowed by config)`);
|
|
170
316
|
}
|
|
171
|
-
const expiredCount = result.
|
|
317
|
+
const expiredCount = result.allErrors.filter(w => w.code === 'ALLOW_EXPIRED').length;
|
|
172
318
|
if (expiredCount > 0) {
|
|
173
319
|
lines.push(` (${expiredCount} expired allow entr${expiredCount === 1 ? 'y' : 'ies'})`);
|
|
174
320
|
}
|
|
@@ -193,9 +339,17 @@ function logSkillProgress(skillName, result, logger) {
|
|
|
193
339
|
* returns an empty context and validators transparently fall back to their
|
|
194
340
|
* legacy per-skill setup — correctness first, perf second.
|
|
195
341
|
*/
|
|
196
|
-
async function buildSharedValidationContext(skills, logger) {
|
|
342
|
+
async function buildSharedValidationContext(skills, projectSkills, logger) {
|
|
343
|
+
// The allow-entry ledger is not an optimization like the two below — it is
|
|
344
|
+
// what makes ALLOW_UNUSED true. `validation.allow` is declared once for the
|
|
345
|
+
// package and matched per skill, so only the batch can say an entry matched
|
|
346
|
+
// nothing. Always present, so no early return can drop it.
|
|
347
|
+
const allowLedger = createAllowUsageLedger();
|
|
348
|
+
// Likewise not an optimization: the test-input rule is project-wide, so this
|
|
349
|
+
// lane must model a bundle that excludes EVERY declared suite, not just the
|
|
350
|
+
// subject's. Present even for an empty batch, so no early return can drop it.
|
|
197
351
|
if (skills.length === 0) {
|
|
198
|
-
return {};
|
|
352
|
+
return { allowLedger, projectSkills };
|
|
199
353
|
}
|
|
200
354
|
const projectRoots = new Set();
|
|
201
355
|
const gitRoots = new Set();
|
|
@@ -213,7 +367,7 @@ async function buildSharedValidationContext(skills, logger) {
|
|
|
213
367
|
gitRoots.add(safePath.resolve(gitRoot));
|
|
214
368
|
}
|
|
215
369
|
}
|
|
216
|
-
const context = {};
|
|
370
|
+
const context = { allowLedger, projectSkills };
|
|
217
371
|
// Only reuse a single registry when every skill shares the same project
|
|
218
372
|
// root. Otherwise the per-skill fallback path is correct and the cost is
|
|
219
373
|
// unchanged from the pre-refactor baseline.
|
|
@@ -284,7 +438,10 @@ export async function validateCommand(pathArg, options) {
|
|
|
284
438
|
// (for markdown parses) and the git tracker (for gitignore checks) can be
|
|
285
439
|
// shared across every skill whose projectRoot + gitRoot match the derived
|
|
286
440
|
// values, which is the common case for a single-repo `vat skills validate`.
|
|
287
|
-
|
|
441
|
+
// Every declared skill, not just `skillsToValidate`: `--skill x` narrows what is
|
|
442
|
+
// REPORTED on, never what counts as some skill's declared test input.
|
|
443
|
+
const projectSkills = collectDeclaredEvalSuites(config.skills, discovered);
|
|
444
|
+
const sharedContext = await buildSharedValidationContext(skillsToValidate, projectSkills, logger);
|
|
288
445
|
// Validate each skill
|
|
289
446
|
const results = [];
|
|
290
447
|
for (const skill of skillsToValidate) {
|
|
@@ -298,11 +455,18 @@ export async function validateCommand(pathArg, options) {
|
|
|
298
455
|
logSkillProgress(skill.name, result, logger);
|
|
299
456
|
results.push(result);
|
|
300
457
|
}
|
|
458
|
+
// Drain the run's allow ledger AFTER the last skill — an entry matched by
|
|
459
|
+
// any skill in the batch is used, so this is the first point at which
|
|
460
|
+
// "matched nothing" is answerable.
|
|
461
|
+
const runIssues = sharedContext.allowLedger === undefined
|
|
462
|
+
? []
|
|
463
|
+
: allowUnusedIssues(sharedContext.allowLedger);
|
|
301
464
|
// Output report and exit
|
|
302
465
|
const duration = Date.now() - startTime;
|
|
303
466
|
const verbose = options.verbose === true;
|
|
304
|
-
outputValidationReport(results, duration, logger, verbose);
|
|
305
|
-
const hasErrors = results.some(r => r.status === 'error')
|
|
467
|
+
outputValidationReport(results, duration, logger, verbose, runIssues);
|
|
468
|
+
const hasErrors = results.some(r => r.status === 'error')
|
|
469
|
+
|| runIssues.some(i => i.severity === 'error');
|
|
306
470
|
process.exit(hasErrors ? 1 : 0);
|
|
307
471
|
}
|
|
308
472
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/skills/validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/skills/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,10 +22,28 @@
|
|
|
22
22
|
* build. If a single "validate the whole shippable thing" command is later
|
|
23
23
|
* wanted, fold the marketplace phase in here (mirror verify.ts) — see #128.
|
|
24
24
|
*/
|
|
25
|
+
import { type ProjectConfig } from '@vibe-agent-toolkit/resources';
|
|
25
26
|
import { Command } from 'commander';
|
|
27
|
+
import { type PhaseSelection } from './phase-utils.js';
|
|
26
28
|
export interface ValidateCommandOptions {
|
|
29
|
+
/** Retired; declared only so {@link rejectRetiredOnly} can explain the removal. */
|
|
27
30
|
only?: string;
|
|
28
31
|
debug?: boolean;
|
|
32
|
+
verbose?: boolean;
|
|
29
33
|
}
|
|
30
34
|
export declare function createValidateTopLevelCommand(): Command;
|
|
35
|
+
/**
|
|
36
|
+
* Decide which validation surfaces to run.
|
|
37
|
+
*
|
|
38
|
+
* A surface is included only when its config block is present, so coverage is
|
|
39
|
+
* discovered rather than hand-composed — and with `--only` retired, config
|
|
40
|
+
* presence is now the ONLY input. There is no longer a way for a caller to
|
|
41
|
+
* narrow the run, so there is no longer a way for a CI gate to ask for coverage
|
|
42
|
+
* it cannot get; the class of silent-coverage-loss bug the `--only` failure arms
|
|
43
|
+
* existed to catch is now unreachable by construction rather than guarded.
|
|
44
|
+
*
|
|
45
|
+
* `only` is still passed to {@link decidePhaseSelection} as `undefined`: that
|
|
46
|
+
* helper is shared with `vat build`, which keeps its own `--only`.
|
|
47
|
+
*/
|
|
48
|
+
export declare function selectValidateSurfaces(config: ProjectConfig | undefined, verbose?: boolean): PhaseSelection;
|
|
31
49
|
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,OAAO,EAYL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAC;AAsB1B,MAAM,WAAW,sBAAsB;IACrC,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAWD,wBAAgB,6BAA6B,IAAI,OAAO,CAgEvD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,OAAO,UAAQ,GACd,cAAc,CAiBhB"}
|