@vibe-agent-toolkit/cli 0.1.41-rc.6 → 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.
Files changed (199) hide show
  1. package/README.md +4 -3
  2. package/dist/bin/vat +25 -2
  3. package/dist/bin/vat.js +25 -2
  4. package/dist/bin/vat.js.map +1 -1
  5. package/dist/bin.js +12 -1
  6. package/dist/bin.js.map +1 -1
  7. package/dist/commands/agent/list.d.ts +11 -0
  8. package/dist/commands/agent/list.d.ts.map +1 -1
  9. package/dist/commands/agent/list.js +30 -11
  10. package/dist/commands/agent/list.js.map +1 -1
  11. package/dist/commands/audit/hierarchical-output.d.ts +6 -2
  12. package/dist/commands/audit/hierarchical-output.d.ts.map +1 -1
  13. package/dist/commands/audit/hierarchical-output.js +93 -50
  14. package/dist/commands/audit/hierarchical-output.js.map +1 -1
  15. package/dist/commands/audit-settings.d.ts +35 -0
  16. package/dist/commands/audit-settings.d.ts.map +1 -1
  17. package/dist/commands/audit-settings.js +121 -51
  18. package/dist/commands/audit-settings.js.map +1 -1
  19. package/dist/commands/audit.d.ts +97 -2
  20. package/dist/commands/audit.d.ts.map +1 -1
  21. package/dist/commands/audit.js +505 -231
  22. package/dist/commands/audit.js.map +1 -1
  23. package/dist/commands/build.d.ts +14 -0
  24. package/dist/commands/build.d.ts.map +1 -1
  25. package/dist/commands/build.js +126 -32
  26. package/dist/commands/build.js.map +1 -1
  27. package/dist/commands/claude/marketplace/license-utils.d.ts +39 -2
  28. package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
  29. package/dist/commands/claude/marketplace/license-utils.js +114 -68
  30. package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
  31. package/dist/commands/claude/marketplace/publish.js +5 -4
  32. package/dist/commands/claude/marketplace/publish.js.map +1 -1
  33. package/dist/commands/claude/marketplace/validate.d.ts +97 -0
  34. package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
  35. package/dist/commands/claude/marketplace/validate.js +157 -49
  36. package/dist/commands/claude/marketplace/validate.js.map +1 -1
  37. package/dist/commands/claude/org/skills.d.ts +11 -3
  38. package/dist/commands/claude/org/skills.d.ts.map +1 -1
  39. package/dist/commands/claude/org/skills.js +70 -20
  40. package/dist/commands/claude/org/skills.js.map +1 -1
  41. package/dist/commands/claude/org/stubs.d.ts +9 -1
  42. package/dist/commands/claude/org/stubs.d.ts.map +1 -1
  43. package/dist/commands/claude/org/stubs.js +11 -3
  44. package/dist/commands/claude/org/stubs.js.map +1 -1
  45. package/dist/commands/claude/plugin/build.d.ts +116 -0
  46. package/dist/commands/claude/plugin/build.d.ts.map +1 -1
  47. package/dist/commands/claude/plugin/build.js +173 -40
  48. package/dist/commands/claude/plugin/build.js.map +1 -1
  49. package/dist/commands/claude/plugin/marketplace-json.d.ts +36 -0
  50. package/dist/commands/claude/plugin/marketplace-json.d.ts.map +1 -0
  51. package/dist/commands/claude/plugin/marketplace-json.js +34 -0
  52. package/dist/commands/claude/plugin/marketplace-json.js.map +1 -0
  53. package/dist/commands/claude/plugin/plugin-json-merge.d.ts +30 -1
  54. package/dist/commands/claude/plugin/plugin-json-merge.d.ts.map +1 -1
  55. package/dist/commands/claude/plugin/plugin-json-merge.js +107 -14
  56. package/dist/commands/claude/plugin/plugin-json-merge.js.map +1 -1
  57. package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
  58. package/dist/commands/claude/plugin/tree-copy.js +0 -1
  59. package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
  60. package/dist/commands/corpus/report.d.ts +22 -4
  61. package/dist/commands/corpus/report.d.ts.map +1 -1
  62. package/dist/commands/corpus/report.js +1 -0
  63. package/dist/commands/corpus/report.js.map +1 -1
  64. package/dist/commands/corpus/runner.d.ts +16 -1
  65. package/dist/commands/corpus/runner.d.ts.map +1 -1
  66. package/dist/commands/corpus/runner.js +55 -48
  67. package/dist/commands/corpus/runner.js.map +1 -1
  68. package/dist/commands/doctor.d.ts +57 -8
  69. package/dist/commands/doctor.d.ts.map +1 -1
  70. package/dist/commands/doctor.js +142 -67
  71. package/dist/commands/doctor.js.map +1 -1
  72. package/dist/commands/inventory.d.ts +2 -0
  73. package/dist/commands/inventory.d.ts.map +1 -1
  74. package/dist/commands/inventory.js +45 -4
  75. package/dist/commands/inventory.js.map +1 -1
  76. package/dist/commands/phase-utils.d.ts +240 -11
  77. package/dist/commands/phase-utils.d.ts.map +1 -1
  78. package/dist/commands/phase-utils.js +352 -15
  79. package/dist/commands/phase-utils.js.map +1 -1
  80. package/dist/commands/rag/query-command.d.ts +40 -0
  81. package/dist/commands/rag/query-command.d.ts.map +1 -1
  82. package/dist/commands/rag/query-command.js +47 -20
  83. package/dist/commands/rag/query-command.js.map +1 -1
  84. package/dist/commands/resources/index.d.ts.map +1 -1
  85. package/dist/commands/resources/index.js +38 -13
  86. package/dist/commands/resources/index.js.map +1 -1
  87. package/dist/commands/resources/scan.d.ts +37 -0
  88. package/dist/commands/resources/scan.d.ts.map +1 -1
  89. package/dist/commands/resources/scan.js +47 -32
  90. package/dist/commands/resources/scan.js.map +1 -1
  91. package/dist/commands/resources/validate.d.ts +136 -1
  92. package/dist/commands/resources/validate.d.ts.map +1 -1
  93. package/dist/commands/resources/validate.js +121 -68
  94. package/dist/commands/resources/validate.js.map +1 -1
  95. package/dist/commands/skill/review.d.ts.map +1 -1
  96. package/dist/commands/skill/review.js +40 -23
  97. package/dist/commands/skill/review.js.map +1 -1
  98. package/dist/commands/skill/test/run.d.ts +1 -1
  99. package/dist/commands/skill/test/run.d.ts.map +1 -1
  100. package/dist/commands/skill/test/run.js +8 -6
  101. package/dist/commands/skill/test/run.js.map +1 -1
  102. package/dist/commands/skills/build.d.ts +140 -0
  103. package/dist/commands/skills/build.d.ts.map +1 -1
  104. package/dist/commands/skills/build.js +348 -94
  105. package/dist/commands/skills/build.js.map +1 -1
  106. package/dist/commands/skills/command-helpers.d.ts +6 -10
  107. package/dist/commands/skills/command-helpers.d.ts.map +1 -1
  108. package/dist/commands/skills/command-helpers.js +6 -22
  109. package/dist/commands/skills/command-helpers.js.map +1 -1
  110. package/dist/commands/skills/list.d.ts +18 -0
  111. package/dist/commands/skills/list.d.ts.map +1 -1
  112. package/dist/commands/skills/list.js +41 -15
  113. package/dist/commands/skills/list.js.map +1 -1
  114. package/dist/commands/skills/package.d.ts +17 -0
  115. package/dist/commands/skills/package.d.ts.map +1 -1
  116. package/dist/commands/skills/package.js +72 -43
  117. package/dist/commands/skills/package.js.map +1 -1
  118. package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
  119. package/dist/commands/skills/skill-discovery.js +9 -1
  120. package/dist/commands/skills/skill-discovery.js.map +1 -1
  121. package/dist/commands/skills/validate-command.d.ts.map +1 -1
  122. package/dist/commands/skills/validate-command.js +22 -6
  123. package/dist/commands/skills/validate-command.js.map +1 -1
  124. package/dist/commands/skills/validate.d.ts +79 -0
  125. package/dist/commands/skills/validate.d.ts.map +1 -1
  126. package/dist/commands/skills/validate.js +268 -79
  127. package/dist/commands/skills/validate.js.map +1 -1
  128. package/dist/commands/validate.d.ts +18 -0
  129. package/dist/commands/validate.d.ts.map +1 -1
  130. package/dist/commands/validate.js +79 -66
  131. package/dist/commands/validate.js.map +1 -1
  132. package/dist/commands/verify.d.ts +38 -1
  133. package/dist/commands/verify.d.ts.map +1 -1
  134. package/dist/commands/verify.js +247 -84
  135. package/dist/commands/verify.js.map +1 -1
  136. package/dist/index.d.ts +1 -1
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/index.js +7 -1
  139. package/dist/index.js.map +1 -1
  140. package/dist/skill-resolution/index.d.ts +1 -1
  141. package/dist/skill-resolution/index.d.ts.map +1 -1
  142. package/dist/skill-resolution/index.js +1 -1
  143. package/dist/skill-resolution/index.js.map +1 -1
  144. package/dist/skill-resolution/packaging-config.d.ts +15 -2
  145. package/dist/skill-resolution/packaging-config.d.ts.map +1 -1
  146. package/dist/skill-resolution/packaging-config.js +39 -2
  147. package/dist/skill-resolution/packaging-config.js.map +1 -1
  148. package/dist/utils/command-error.d.ts +34 -1
  149. package/dist/utils/command-error.d.ts.map +1 -1
  150. package/dist/utils/command-error.js +32 -1
  151. package/dist/utils/command-error.js.map +1 -1
  152. package/dist/utils/config-loader.d.ts.map +1 -1
  153. package/dist/utils/config-loader.js +0 -2
  154. package/dist/utils/config-loader.js.map +1 -1
  155. package/dist/utils/help-loader.d.ts +6 -2
  156. package/dist/utils/help-loader.d.ts.map +1 -1
  157. package/dist/utils/help-loader.js +9 -16
  158. package/dist/utils/help-loader.js.map +1 -1
  159. package/dist/utils/issue-anchor.d.ts +26 -0
  160. package/dist/utils/issue-anchor.d.ts.map +1 -0
  161. package/dist/utils/issue-anchor.js +39 -0
  162. package/dist/utils/issue-anchor.js.map +1 -0
  163. package/dist/utils/issue-rendering.d.ts +149 -0
  164. package/dist/utils/issue-rendering.d.ts.map +1 -0
  165. package/dist/utils/issue-rendering.js +229 -0
  166. package/dist/utils/issue-rendering.js.map +1 -0
  167. package/dist/utils/output.d.ts +80 -9
  168. package/dist/utils/output.d.ts.map +1 -1
  169. package/dist/utils/output.js +138 -23
  170. package/dist/utils/output.js.map +1 -1
  171. package/dist/utils/project-root-policy.d.ts +2 -2
  172. package/dist/utils/project-root-policy.js +2 -2
  173. package/dist/utils/relativize-paths.d.ts +45 -0
  174. package/dist/utils/relativize-paths.d.ts.map +1 -0
  175. package/dist/utils/relativize-paths.js +67 -0
  176. package/dist/utils/relativize-paths.js.map +1 -0
  177. package/dist/utils/resource-loader.d.ts +21 -2
  178. package/dist/utils/resource-loader.d.ts.map +1 -1
  179. package/dist/utils/resource-loader.js +85 -11
  180. package/dist/utils/resource-loader.js.map +1 -1
  181. package/dist/utils/skill-packaging-config.d.ts +22 -1
  182. package/dist/utils/skill-packaging-config.d.ts.map +1 -1
  183. package/dist/utils/skill-packaging-config.js +26 -0
  184. package/dist/utils/skill-packaging-config.js.map +1 -1
  185. package/dist/utils/validate-help-files.d.ts +3 -2
  186. package/dist/utils/validate-help-files.d.ts.map +1 -1
  187. package/dist/utils/validate-help-files.js +48 -5
  188. package/dist/utils/validate-help-files.js.map +1 -1
  189. package/dist/utils/verdict-helpers.d.ts +14 -5
  190. package/dist/utils/verdict-helpers.d.ts.map +1 -1
  191. package/dist/utils/verdict-helpers.js +19 -16
  192. package/dist/utils/verdict-helpers.js.map +1 -1
  193. package/docs/audit.md +40 -14
  194. package/docs/doctor.md +46 -10
  195. package/docs/index.md +1 -1
  196. package/docs/rag.md +9 -4
  197. package/docs/resources.md +54 -22
  198. package/docs/skills.md +11 -7
  199. package/package.json +12 -12
@@ -8,13 +8,16 @@
8
8
  */
9
9
  import { existsSync } from 'node:fs';
10
10
  import { rm } from 'node:fs/promises';
11
+ import { allowUnusedIssues, calculateValidationStatus, countBySeverity, createAllowUsageLedger, } from '@vibe-agent-toolkit/agent-schema';
11
12
  import { packageSkills, packagingConfigToPackageOptions, skillNameToFsPath, validateSkillForPackaging, } from '@vibe-agent-toolkit/agent-skills';
12
13
  import { safePath } from '@vibe-agent-toolkit/utils';
13
14
  import { Command } from 'commander';
14
- import { handleCommandError } from '../../utils/command-error.js';
15
+ import * as yaml from 'yaml';
16
+ import { handleCommandError, handleValidationGateFailure } from '../../utils/command-error.js';
15
17
  import { loadConfig } from '../../utils/config-loader.js';
18
+ import { collectPostBuildIssues, formatIssueLines, formatIssueSetHeading, formatRunIssueLines, issuesToRenderAtVerbosity, sumSeverityCounts, } from '../../utils/issue-rendering.js';
16
19
  import { requireProjectRoot } from '../../utils/project-root-policy.js';
17
- import { mergeSkillPackagingConfig } from '../../utils/skill-packaging-config.js';
20
+ import { collectDeclaredEvalSuites, mergeSkillPackagingConfig } from '../../utils/skill-packaging-config.js';
18
21
  import { applyConfigVerdicts } from '../../utils/verdict-helpers.js';
19
22
  import { filterSkillsByName, setupCommandContext, writeYamlHeader, } from './command-helpers.js';
20
23
  import { discoverSkillsFromConfig } from './skill-discovery.js';
@@ -25,6 +28,7 @@ export function createBuildCommand() {
25
28
  .argument('[path]', 'Path to project directory (default: current directory)')
26
29
  .option('--skill <name>', 'Build specific skill only')
27
30
  .option('--dry-run', 'Preview build without creating files')
31
+ .option('-v, --verbose', 'Show every individual finding, not just the errors')
28
32
  .option('--debug', 'Enable debug logging')
29
33
  .action(buildCommand)
30
34
  .addHelpText('after', `
@@ -64,9 +68,38 @@ Output:
64
68
  YAML summary -> stdout (for programmatic parsing)
65
69
  Build progress -> stderr (for human reading)
66
70
 
71
+ On stderr, every findings heading names the whole set and its severity
72
+ breakdown, and errors are always printed in full beneath it. Warnings and
73
+ info findings stay collapsed into that heading unless --verbose, because
74
+ they are the high-cardinality ones (one adopter skill carries 348
75
+ LINK_DROPPED_BY_DEPTH warnings alone). The stdout YAML is NOT affected by
76
+ --verbose: it carries every finding at every verbosity.
77
+
78
+ skills: one row per skill that produced a bundle
79
+ failedSkills: one row per skill that could not be packaged AT ALL (no
80
+ bundle exists for it); each carries name, error and an
81
+ issueCounts of one error
82
+ skillsWithErrors / skillsWithErrorNames:
83
+ the OTHER failure mode — skills that packaged fine and then
84
+ emitted post-build validation errors. They are counted in
85
+ skillsBuilt, not skillsFailed, so read BOTH before concluding
86
+ a run was clean: the exit code follows this one too.
87
+ runIssueCounts: findings that belong to the run rather than to any one
88
+ skill (ALLOW_UNUSED)
89
+ issueCounts: the run total, which reconciles against the rows above:
90
+
91
+ issueCounts = sum(skills[].issueCounts)
92
+ + sum(failedSkills[].issueCounts)
93
+ + runIssueCounts
94
+
95
+ Every error, warning and info in the header total is
96
+ therefore attributable to a row you can point at.
97
+
67
98
  Exit Codes:
68
99
  0 - All skills built successfully (or dry-run preview)
69
- 1 - One or more skills emitted validation errors
100
+ 1 - One or more skills emitted validation errors, or could not be packaged
101
+ at all (a skill that fails to package does NOT abort the others; the
102
+ rest still build and the failures are listed under failedSkills)
70
103
  2 - System error (config invalid, directory not found)
71
104
 
72
105
  Requirements:
@@ -81,54 +114,69 @@ Example:
81
114
  return command;
82
115
  }
83
116
  /**
84
- * Display active validation errors
117
+ * Render every emitted pre-build finding, each labelled with its own severity.
118
+ *
119
+ * `allErrors` is the full emitted set INCLUDING info (its name lies — see the
120
+ * doc comment on `PackagingValidationResult`). Walking only the errors plus the
121
+ * `ALLOW_EXPIRED` subset of the warnings, which is what this used to do,
122
+ * dropped every other warning and every info finding from a report that had
123
+ * already decided to abort the build.
124
+ *
125
+ * `verbose` picks how much of that set is spelled out, never how much of it is
126
+ * COUNTED: the heading is built from `allErrors` either way, so the severity
127
+ * breakdown stays whole even when the bodies below it do not (see
128
+ * `issuesToRenderAtVerbosity`). Every error is printed at both verbosities —
129
+ * these are the findings that just aborted the build, so putting one behind a
130
+ * flag would mean re-running to learn what broke.
131
+ *
132
+ * Pure so the whole set is assertable, not a chosen subset of it.
85
133
  */
86
- function displayActiveErrors(validationResult, logger) {
87
- if (validationResult.activeErrors.length > 0) {
88
- logger.error(`\n Active errors (${validationResult.activeErrors.length}):`);
89
- for (const error of validationResult.activeErrors) {
90
- logger.error(` [${String(error.code)}] ${String(error.message)}`);
91
- if (error.location) {
92
- logger.error(` Location: ${String(error.location)}`);
93
- }
94
- if (error.fix) {
95
- logger.error(` Fix: ${String(error.fix)}`);
96
- }
134
+ export function formatPreBuildIssueReport(validationResult, verbose) {
135
+ const lines = [];
136
+ if (validationResult.allErrors.length > 0) {
137
+ lines.push(`\n ${formatIssueSetHeading(validationResult.allErrors)}:`);
138
+ for (const issue of issuesToRenderAtVerbosity(validationResult.allErrors, verbose)) {
139
+ lines.push(...formatIssueLines(issue, ' '));
97
140
  }
98
141
  }
142
+ return lines;
99
143
  }
100
144
  /**
101
- * Display expired allow warnings
145
+ * Render post-build integrity issues, each prefixed by its OWN resolved severity.
146
+ *
147
+ * Reads BOTH post-build channels (see `collectPostBuildIssues`) so a build that
148
+ * failed purely on the built-output validation still shows the findings that
149
+ * failed it, and the heading names the set's actual severity mix rather than
150
+ * calling every set by its worst member.
151
+ *
152
+ * The heading is unconditional and counts the WHOLE set; `verbose` decides only
153
+ * which findings get a block beneath it (see `issuesToRenderAtVerbosity`). This
154
+ * loop printing every occurrence is what made a 90-skill build emit 6,552 stderr
155
+ * lines against the 804 `vat skills validate` emitted for the same corpus — 1,620
156
+ * of them one high-cardinality warning code. A set whose findings all collapse
157
+ * still renders its heading: collapsing that too would turn a warning-carrying
158
+ * build into silence, which is the reassuring direction this module warns about.
159
+ *
160
+ * Pure: returns the lines instead of writing them, so the whole rendered set is
161
+ * assertable without capturing a stream.
102
162
  */
103
- function displayExpiredAllowEntries(validationResult, logger) {
104
- const expiredWarnings = validationResult.activeWarnings.filter(w => w.code === 'ALLOW_EXPIRED');
105
- if (expiredWarnings.length > 0) {
106
- logger.error(`\n Expired allow entries (${expiredWarnings.length}):`);
107
- for (const warn of expiredWarnings) {
108
- logger.error(` ${String(warn.message)}`);
109
- }
163
+ export function formatPostBuildIssueReport(result, verbose) {
164
+ const issues = collectPostBuildIssues(result);
165
+ if (issues.length === 0)
166
+ return [];
167
+ const lines = [` ${formatIssueSetHeading(issues, 'post-build')}:`];
168
+ for (const issue of issuesToRenderAtVerbosity(issues, verbose)) {
169
+ lines.push(...formatIssueLines(issue, ' '));
110
170
  }
171
+ return lines;
111
172
  }
112
173
  /**
113
- * Log post-build integrity issues, prefixed by resolved severity.
114
- *
115
- * Errors are emitted to stderr; warnings and info to stderr as well so they
116
- * appear in the human-readable stream (not the YAML stdout stream).
174
+ * Log post-build integrity issues to stderr (the human stream; stdout is
175
+ * reserved for the YAML summary).
117
176
  */
118
- function logPostBuildIssues(result, logger) {
119
- if (!result.postBuildIssues || result.postBuildIssues.length === 0)
120
- return;
121
- const label = result.hasErrors ? 'post-build error(s)' : 'post-build warning(s)';
122
- logger.info(` ${result.postBuildIssues.length} ${label}:`);
123
- for (const issue of result.postBuildIssues) {
124
- const prefix = issue.severity === 'error' ? 'ERROR' : 'WARNING';
125
- logger.info(` [${prefix}] [${String(issue.code)}] ${String(issue.message)}`);
126
- if (issue.location) {
127
- logger.info(` Location: ${String(issue.location)}`);
128
- }
129
- if (issue.fix) {
130
- logger.info(` Fix: ${String(issue.fix)}`);
131
- }
177
+ function logPostBuildIssues(result, logger, verbose) {
178
+ for (const line of formatPostBuildIssueReport(result, verbose)) {
179
+ logger.info(line);
132
180
  }
133
181
  }
134
182
  /**
@@ -142,27 +190,36 @@ function displayIgnoredErrors(validationResult, logger) {
142
190
  }
143
191
  }
144
192
  }
145
- /**
146
- * Validate skill before building
147
- */
148
- async function validateSkillOrExit(skillName, sourcePath, packagingConfig, logger) {
193
+ async function validateSkillOrExit(input) {
194
+ const { skillName, sourcePath, packagingConfig, logger, locationRoot, allowLedger, projectSkills, verbose } = input;
149
195
  logger.debug(` Validating skill: ${skillName}`);
150
- const validationResult = await validateSkillForPackaging(sourcePath, packagingConfig);
151
- applyConfigVerdicts(validationResult, packagingConfig.targets, sourcePath);
196
+ // The run's ledger, not this call's: an allow entry scoped to a SOURCE
197
+ // filename can only ever match here — packaging renames the file to
198
+ // `SKILL.md` and the built lane drops the source-only codes — so a build that
199
+ // withholds this lane's matches from the run reports live entries as dead.
200
+ //
201
+ // The run's declared eval suites likewise: this lane must model the same bundle
202
+ // the packager below produces, and that bundle excludes EVERY skill's test input.
203
+ const validationResult = await validateSkillForPackaging(sourcePath, packagingConfig, 'source', { allowLedger, projectSkills });
204
+ applyConfigVerdicts(validationResult, packagingConfig.targets, sourcePath, locationRoot);
152
205
  if (validationResult.status !== 'error') {
153
206
  if (validationResult.ignoredErrors.length > 0) {
154
207
  logger.debug(` ${validationResult.ignoredErrors.length} issue(s) allowed by config`);
155
208
  }
156
209
  return;
157
210
  }
158
- // Validation failed - display all errors and exit
211
+ // Validation failed - display every emitted finding and exit
159
212
  logger.error(`\nSkill validation failed: ${skillName}`);
160
213
  logger.error(` Source: ${sourcePath}`);
161
- displayActiveErrors(validationResult, logger);
162
- displayExpiredAllowEntries(validationResult, logger);
214
+ for (const line of formatPreBuildIssueReport(validationResult, verbose)) {
215
+ logger.error(line);
216
+ }
163
217
  displayIgnoredErrors(validationResult, logger);
164
218
  logger.error(`\n Build aborted due to validation errors`);
165
- process.exit(1);
219
+ // Every finding above went to STDERR. Exiting here without the stdout summary
220
+ // is what made `vat skills build | jq .status` return an empty document
221
+ // alongside exit 1 — the one case the help text documents exit 1 for.
222
+ handleValidationGateFailure(skillName, validationResult.allErrors);
166
223
  }
167
224
  /**
168
225
  * Output dry-run results
@@ -171,6 +228,11 @@ function outputDryRunYaml(skills, duration) {
171
228
  writeYamlHeader({
172
229
  status: 'success',
173
230
  dryRun: true,
231
+ // A dry run validates NOTHING, so it has no severity distribution to
232
+ // publish. Saying so is the point: an absent `issueCounts` next to
233
+ // `status: success` otherwise reads as "clean", which is the reassuring
234
+ // misreading. This field makes the absence explicit instead.
235
+ validated: false,
174
236
  skillsFound: skills.length,
175
237
  });
176
238
  process.stdout.write(`skills:\n`);
@@ -197,21 +259,132 @@ function performDryRun(skillsToBuild, duration, logger) {
197
259
  logger.info(`\nDry-run complete (no files created)`);
198
260
  logger.info(` Run without --dry-run to build the skills`);
199
261
  }
262
+ /**
263
+ * What ONE unpackageable skill contributes to the run's counts.
264
+ *
265
+ * A fresh object per row: these are published as separate YAML nodes, and a
266
+ * shared reference is how a document grows anchors (or a later mutation edits
267
+ * every row at once).
268
+ */
269
+ const failureIssueCounts = () => ({ errors: 1, warnings: 0, info: 0 });
270
+ /**
271
+ * The archived summary of a build, as YAML fields.
272
+ *
273
+ * `status` used to be the literal `success` — printed even for a build that then
274
+ * exited 1 on post-build errors, so the machine-readable half of the output
275
+ * contradicted the exit code, in the reassuring direction. It is now derived
276
+ * from the same issues the human stream renders, and the per-severity counts
277
+ * ride beside it because a status cannot express a three-valued distribution:
278
+ * `success` here means "nothing you must act on", not "there was nothing to see".
279
+ *
280
+ * The header total reconciles against the document, by construction:
281
+ *
282
+ * issueCounts === Σ skills[].issueCounts
283
+ * + Σ failedSkills[].issueCounts
284
+ * + runIssueCounts
285
+ *
286
+ * Every addend therefore has a ROW a reader can point at. Counting the failures
287
+ * only in the header — which is how this first shipped — reproduced, one command
288
+ * over, the exact defect `vat skills validate` was fixed for: a header reporting
289
+ * more than its rows summed to (there, 1814 warnings against 1800), leaving a
290
+ * consumer to hand-count a list to find out what the difference was. `--help`
291
+ * states this identity; changing it means changing that text too.
292
+ */
293
+ export function buildYamlSummary(results, failures, duration, runIssues, skillsWithErrors) {
294
+ const perSkill = results.map(({ name, result }) => {
295
+ const issues = collectPostBuildIssues(result);
296
+ return {
297
+ name,
298
+ // KNOWN, DELIBERATELY NOT FIXED — this is an ABSOLUTE path, so stdout carries
299
+ // `$HOME`. Confirmed on a real 90-skill adopter run:
300
+ // `outputPath: /Users/<user>/Workspaces/.../dist/skills/<name>`. It is absolute
301
+ // because `runSkillBuild` builds it with `safePath.resolve(cwd, 'dist', ...)`.
302
+ //
303
+ // Do NOT "helpfully" relativize it. It is blocked on an approved-but-unbuilt
304
+ // design decision that is the project owner's call: the document must state one
305
+ // `root:` and re-base every path onto it, the same coordinate-system rule
306
+ // `vat audit` already follows (see `deriveScanRoot` in ../audit.ts — "the ONE base
307
+ // every `path` and `location` in a report is expressed relative to"). Making this
308
+ // one field relative ahead of that decision picks the anchor by accident and
309
+ // leaves the document in two coordinate systems.
310
+ outputPath: result.outputPath,
311
+ filesPackaged: result.files.dependencies.length + 1,
312
+ issueCounts: countBySeverity(issues),
313
+ issues,
314
+ };
315
+ });
316
+ const allIssues = perSkill.flatMap((s) => s.issues);
317
+ const runIssueCounts = countBySeverity(runIssues);
318
+ // A skill that THREW emits no issues at all — it never reached the lanes that
319
+ // produce them. Deriving the header purely from issue channels therefore said
320
+ // `success` for a run the command then exited 1 on, which is exactly the
321
+ // reassuring contradiction this summary exists to prevent. Each failure is
322
+ // counted as one error so `status`, `issueCounts` and the exit code agree —
323
+ // and that error is published ON the failure's own row (see
324
+ // `failureIssueCounts`), never as a header-only addend, so the identity
325
+ // documented in `--help` holds.
326
+ const failedSkills = failures.map(({ name, message }) => ({
327
+ name,
328
+ error: message,
329
+ issueCounts: failureIssueCounts(),
330
+ }));
331
+ return {
332
+ status: failures.length > 0
333
+ ? 'error'
334
+ : calculateValidationStatus([...allIssues, ...runIssues]),
335
+ issueCounts: sumSeverityCounts([
336
+ ...perSkill.map((s) => s.issueCounts),
337
+ ...failedSkills.map((s) => s.issueCounts),
338
+ runIssueCounts,
339
+ ]),
340
+ runIssueCounts,
341
+ skillsBuilt: results.length,
342
+ skillsFailed: failures.length,
343
+ // The OTHER meaning of "failed", published because the exit code follows
344
+ // THIS one and nothing in the document did. `skillsFailed` counts skills
345
+ // that could not be packaged at all; a skill that packaged fine and then
346
+ // emitted post-build validation errors is a `skillsBuilt`, so a real run
347
+ // printed "Build failed: 3 skill(s) emitted post-build validation errors"
348
+ // over `skillsFailed: 0` and `failedSkills: []`, and exited 1. A CI job
349
+ // reading either field saw a clean build. Both categories are now named.
350
+ skillsWithErrors: [...skillsWithErrors],
351
+ // `skills` lists what exists on disk. A failed skill is published in its own
352
+ // list rather than here, because every field of this shape (outputPath,
353
+ // filesPackaged) would have to be invented for a bundle that was not written.
354
+ skills: perSkill.map(({ name, outputPath, filesPackaged, issueCounts }) => ({
355
+ name,
356
+ outputPath,
357
+ filesPackaged,
358
+ issueCounts,
359
+ })),
360
+ failedSkills,
361
+ runIssues: [...runIssues],
362
+ duration: `${duration}ms`,
363
+ };
364
+ }
200
365
  /**
201
366
  * Output build results
202
367
  */
203
- function outputBuildYaml(results, duration) {
368
+ function outputBuildYaml(results, failures, duration, runIssues, skillsWithErrors) {
369
+ const summary = buildYamlSummary(results, failures, duration, runIssues, skillsWithErrors);
370
+ const { status, skillsBuilt, skillsFailed, issueCounts, runIssueCounts, skills, failedSkills, duration: durationText, } = summary;
371
+ // In the header, beside the other two counts: this is the number the exit code
372
+ // actually follows, so a reader who stops at the header is not misled by it.
204
373
  writeYamlHeader({
205
- status: 'success',
206
- skillsBuilt: results.length,
374
+ status,
375
+ skillsBuilt,
376
+ skillsFailed,
377
+ skillsWithErrors: summary.skillsWithErrors.length,
207
378
  });
208
- process.stdout.write(`skills:\n`);
209
- for (const { name, result } of results) {
210
- process.stdout.write(` - name: ${name}\n`);
211
- process.stdout.write(` outputPath: ${result.outputPath}\n`);
212
- process.stdout.write(` filesPackaged: ${result.files.dependencies.length + 1}\n`);
213
- }
214
- process.stdout.write(`duration: ${duration}ms\n`);
379
+ process.stdout.write(yaml.stringify({
380
+ issueCounts,
381
+ runIssueCounts,
382
+ skills,
383
+ failedSkills,
384
+ skillsWithErrorNames: summary.skillsWithErrors,
385
+ runIssues: summary.runIssues,
386
+ }, { indent: 2, lineWidth: 0, aliasDuplicateObjects: false }));
387
+ process.stdout.write(`duration: ${durationText}\n`);
215
388
  }
216
389
  /**
217
390
  * Clean stale skill output directories before building.
@@ -233,6 +406,94 @@ async function cleanStaleSkillOutputs(cwd, skillName) {
233
406
  }
234
407
  }
235
408
  }
409
+ /**
410
+ * Validate, package, and drain — the whole span of ONE `vat build` invocation.
411
+ *
412
+ * The allow-usage ledger created here spans EVERY skill and BOTH validation
413
+ * lanes (the source-tree pre-build check and the two lanes inside
414
+ * `packageSkill`), because `validation.allow` is declared once for the package
415
+ * while being evaluated once per skill per lane. Anything narrower reports
416
+ * entries that legitimately matched somewhere else as unused: measured on this
417
+ * repo's own 13-skill package, 3 live entries produced 32 false ALLOW_UNUSED
418
+ * warnings — 6 from the cross-skill seam, 26 because the two lanes inside
419
+ * `packageSkill` see a FILTERED issue population against a file packaging has
420
+ * renamed to `SKILL.md`, so entries scoped to a source filename are structurally
421
+ * incapable of matching there. A lane that sees a subset cannot answer "matched
422
+ * nothing"; only the union can. Hence one ledger, drained once, here.
423
+ *
424
+ * Extracted from the command body so the span is testable without driving
425
+ * `process.exit` — the drain seam is the thing worth asserting.
426
+ */
427
+ export async function runSkillBuild(specs, cwd, logger, projectSkills, verbose = false) {
428
+ const allowLedger = createAllowUsageLedger();
429
+ // Validate all skills before building
430
+ for (const { skill, packagingConfig } of specs) {
431
+ const outputDir = safePath.resolve(cwd, 'dist', 'skills', skillNameToFsPath(skill.name));
432
+ logger.info(`\nBuilding skill: ${skill.name}`);
433
+ logger.info(` Source: ${skill.sourcePath}`);
434
+ logger.info(` Output: ${outputDir}`);
435
+ await validateSkillOrExit({
436
+ skillName: skill.name,
437
+ sourcePath: skill.sourcePath,
438
+ packagingConfig,
439
+ logger,
440
+ locationRoot: cwd,
441
+ allowLedger,
442
+ projectSkills,
443
+ verbose,
444
+ });
445
+ }
446
+ // Build all skills with a shared registry.
447
+ //
448
+ // `projectSkills` is the run's declared eval suites — the whole project's, not
449
+ // `specs`'. `--skill x` narrows what gets BUILT; it never narrows what counts as
450
+ // test input, because an excluded skill's suite is still an answer key that must
451
+ // not ship inside x's bundle.
452
+ const buildSpecs = specs.map(({ skill, packagingConfig }) => ({
453
+ skillPath: skill.sourcePath,
454
+ options: packagingConfigToPackageOptions(packagingConfig, {
455
+ skillPath: skill.sourcePath,
456
+ outputPath: safePath.resolve(cwd, 'dist', 'skills', skillNameToFsPath(skill.name)),
457
+ }, projectSkills),
458
+ }));
459
+ const outcomes = await packageSkills(buildSpecs, cwd, allowLedger);
460
+ const results = [];
461
+ const skillsWithErrors = [];
462
+ const failures = [];
463
+ for (const [i, spec] of specs.entries()) {
464
+ const outcome = outcomes[i];
465
+ if (!outcome)
466
+ continue;
467
+ if (outcome.status === 'failed') {
468
+ // No `Built N files` line here: nothing was built, and claiming a count
469
+ // for an absent bundle is the misreport this branch exists to avoid.
470
+ logger.error(`\nBuild failed for skill: ${spec.skill.name}`);
471
+ logger.error(` ${outcome.error.message}`);
472
+ failures.push({ name: spec.skill.name, message: outcome.error.message });
473
+ continue;
474
+ }
475
+ const { result } = outcome;
476
+ logger.info(` Built ${result.files.dependencies.length + 1} files`);
477
+ logPostBuildIssues(result, logger, verbose);
478
+ if (result.hasErrors) {
479
+ skillsWithErrors.push(spec.skill.name);
480
+ }
481
+ results.push({ name: spec.skill.name, result });
482
+ }
483
+ // Drain point: every skill and every lane has now contributed, so this is the
484
+ // first place the run can honestly say an entry matched nothing. A skill that
485
+ // threw still contributed the matches it made before throwing — which is why
486
+ // the drain must stay here, after a partially-failed batch, and not move into
487
+ // a success-only path. (Before per-skill containment the drain never ran at
488
+ // all on a throw, because the exception propagated straight past it.)
489
+ //
490
+ // Known residual: a skill that threw never reached its later lanes, so an
491
+ // allow entry only THAT skill could have matched may now be reported
492
+ // ALLOW_UNUSED. That is a warning, and `runHasErrors` gates on `error` only,
493
+ // so it cannot fail a build on its own — and the run is already exiting 1 on
494
+ // the failure the operator actually needs to fix.
495
+ return { results, runIssues: allowUnusedIssues(allowLedger), skillsWithErrors, failures };
496
+ }
236
497
  async function buildCommand(pathArg, options) {
237
498
  const { logger, cwd, startTime } = setupCommandContext(pathArg, options.debug);
238
499
  try {
@@ -266,47 +527,40 @@ async function buildCommand(pathArg, options) {
266
527
  performDryRun(skillsToBuild, duration, logger);
267
528
  process.exit(0);
268
529
  }
269
- // Validate all skills before building
270
- const validatedSpecs = [];
271
- for (const skill of skillsToBuild) {
272
- const packagingConfig = mergeSkillPackagingConfig(skillsConfig.defaults, skillsConfig.config?.[skill.name]);
273
- const outputDir = safePath.resolve(cwd, 'dist', 'skills', skillNameToFsPath(skill.name));
274
- logger.info(`\nBuilding skill: ${skill.name}`);
275
- logger.info(` Source: ${skill.sourcePath}`);
276
- logger.info(` Output: ${outputDir}`);
277
- await validateSkillOrExit(skill.name, skill.sourcePath, packagingConfig, logger);
278
- validatedSpecs.push({ skill, packagingConfig });
279
- }
280
- // Build all skills with a shared registry
281
- const specs = validatedSpecs.map(({ skill, packagingConfig }) => ({
282
- skillPath: skill.sourcePath,
283
- options: packagingConfigToPackageOptions(packagingConfig, {
284
- skillPath: skill.sourcePath,
285
- outputPath: safePath.resolve(cwd, 'dist', 'skills', skillNameToFsPath(skill.name)),
286
- }),
530
+ const buildSpecs = skillsToBuild.map((skill) => ({
531
+ skill,
532
+ packagingConfig: mergeSkillPackagingConfig(skillsConfig.defaults, skillsConfig.config?.[skill.name]),
287
533
  }));
288
- const packageResults = await packageSkills(specs, cwd);
289
- const results = [];
290
- const skillsWithErrors = [];
291
- for (const [i, spec] of validatedSpecs.entries()) {
292
- const result = packageResults[i];
293
- if (result) {
294
- logger.info(` Built ${result.files.dependencies.length + 1} files`);
295
- logPostBuildIssues(result, logger);
296
- if (result.hasErrors) {
297
- skillsWithErrors.push(spec.skill.name);
298
- }
299
- results.push({ name: spec.skill.name, result });
300
- }
301
- }
534
+ // Assembled ONCE, from the UNFILTERED discovery: `--skill x` narrows the build,
535
+ // not the set of files that count as some skill's declared test input.
536
+ const projectSkills = collectDeclaredEvalSuites(skillsConfig, discoveredSkills);
537
+ const { results, runIssues, skillsWithErrors, failures } = await runSkillBuild(buildSpecs, cwd, logger, projectSkills, options.verbose === true);
302
538
  const duration = Date.now() - startTime;
303
539
  // Output YAML results
304
- outputBuildYaml(results, duration);
540
+ outputBuildYaml(results, failures, duration, runIssues, skillsWithErrors);
541
+ for (const line of formatRunIssueLines(runIssues)) {
542
+ logger.info(line);
543
+ }
544
+ if (failures.length > 0) {
545
+ logger.error(`\nBuild failed: ${failures.length} skill(s) could not be packaged at all`);
546
+ for (const { name, message } of failures) {
547
+ logger.error(` - ${name}: ${message.split('\n')[0] ?? message}`);
548
+ }
549
+ }
305
550
  if (skillsWithErrors.length > 0) {
306
551
  logger.error(`\nBuild failed: ${skillsWithErrors.length} skill(s) emitted post-build validation errors`);
307
552
  for (const name of skillsWithErrors) {
308
553
  logger.error(` - ${name}`);
309
554
  }
555
+ }
556
+ // A run-level finding belongs to no skill, so the loop above cannot carry
557
+ // it. Only `error` severity gates: ALLOW_UNUSED ships as a `warning`, and a
558
+ // warning must never abort a build that produced its artifacts.
559
+ const runHasErrors = runIssues.some((i) => i.severity === 'error');
560
+ if (runHasErrors) {
561
+ logger.error(`\nBuild failed: run-level validation errors (project config, not any one skill)`);
562
+ }
563
+ if (skillsWithErrors.length > 0 || runHasErrors || failures.length > 0) {
310
564
  process.exit(1);
311
565
  }
312
566
  logger.info(`\nBuilt ${results.length} skill(s) successfully`);
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/skills/build.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EACL,aAAa,EACb,+BAA+B,EAC/B,iBAAiB,EACjB,yBAAyB,GAK1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAQhE,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,OAAO;SACJ,WAAW,CAAC,oEAAoE,CAAC;SACjF,QAAQ,CAAC,QAAQ,EAAE,wDAAwD,CAAC;SAC5E,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;SACrD,MAAM,CAAC,WAAW,EAAE,sCAAsC,CAAC;SAC3D,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,YAAY,CAAC;SACpB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDL,CACI,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,gBAA2C,EAC3C,MAAuC;IAEvC,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,uBAAuB,gBAAgB,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;QAC9E,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,YAAY,EAAE,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CACjC,gBAA2C,EAC3C,MAAuC;IAEvC,MAAM,eAAe,GAAG,gBAAgB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IAChG,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,+BAA+B,eAAe,CAAC,MAAM,IAAI,CAAC,CAAC;QACxE,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CACzB,MAA0B,EAC1B,MAAuC;IAEvC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IACjF,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjF,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,gBAA2C,EAC3C,MAAuC;IAEvC,IAAI,gBAAgB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,wBAAwB,gBAAgB,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/E,KAAK,MAAM,MAAM,IAAI,gBAAgB,CAAC,aAAa,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,SAAiB,EACjB,UAAkB,EAClB,eAAqC,EACrC,MAAuC;IAEvC,MAAM,CAAC,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;IAElD,MAAM,gBAAgB,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACtF,mBAAmB,CACjB,gBAAgB,EAChB,eAAe,CAAC,OAAwC,EACxD,UAAU,CACX,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACxC,IAAI,gBAAgB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,gBAAgB,CAAC,aAAa,CAAC,MAAM,6BAA6B,CAAC,CAAC;QACzF,CAAC;QACD,OAAO;IACT,CAAC;IAED,kDAAkD;IAClD,MAAM,CAAC,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;IAEzC,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC9C,0BAA0B,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACrD,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAE/C,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,MAAyB,EACzB,QAAgB;IAEhB,eAAe,CAAC;QACd,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,MAAM,CAAC,MAAM;KAC3B,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;QAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACpB,aAAgC,EAChC,QAAgB,EAChB,MAAuC;IAEvC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,uBAAuB,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IAE3D,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,6BAA6B,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAE1C,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,OAA4D,EAC5D,QAAgB;IAEhB,eAAe,CAAC;QACd,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,OAAO,CAAC,MAAM;KAC5B,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClC,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CAAC,GAAW,EAAE,SAA6B;IAC9E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7F,qGAAqG;QACrG,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7D,wFAAwF;QACxF,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,OAA2B,EAC3B,OAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAE/E,IAAI,CAAC;QACH,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,yEAAyE;QACzE,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAE5C,oFAAoF;QACpF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAEnC,iFAAiF;QACjF,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAG,MAAM,wBAAwB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAE3E,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,sDAAsD,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxF,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,MAAM,aAAa,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAE1E,MAAM,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,oBAAoB,CAAC,CAAC;QAE/D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QAED,sBAAsB;QACtB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,sCAAsC;QACtC,MAAM,cAAc,GAGf,EAAE,CAAC;QAER,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,yBAAyB,CAC/C,YAAY,CAAC,QAAQ,EACrB,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAClC,CAAC;YAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACzF,MAAM,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;YAEvC,MAAM,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;YACjF,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,0CAA0C;QAC1C,MAAM,KAAK,GAAqB,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;YAClF,SAAS,EAAE,KAAK,CAAC,UAAU;YAC3B,OAAO,EAAE,+BAA+B,CAAC,eAAe,EAAE;gBACxD,SAAS,EAAE,KAAK,CAAC,UAAU;gBAC3B,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACnF,CAAC;SACH,CAAC,CAAC,CAAC;QAEJ,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAwD,EAAE,CAAC;QACxE,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtE,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACnC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,sBAAsB;QACtB,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEnC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,mBAAmB,gBAAgB,CAAC,MAAM,gDAAgD,CAAC,CAAC;YACzG,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,wBAAwB,CAAC,CAAC;QAE/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/skills/build.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,12 @@
1
1
  /**
2
- * Helper functions for skill commands
3
- */
4
- import { type Logger } from '../../utils/logger.js';
5
- /**
6
- * Handle command errors consistently
2
+ * Helper functions for skill commands.
7
3
  *
8
- * @param error - Error object
9
- * @param logger - Logger instance
10
- * @param startTime - Command start timestamp
11
- * @param commandName - Name of command for error messages
4
+ * Error handling deliberately does NOT live here: every command family shares
5
+ * the one implementation in `utils/command-error.ts`. This module used to carry
6
+ * a second `handleCommandError` with the same name and signature that wrote
7
+ * nothing to stdout before exiting 2.
12
8
  */
13
- export declare function handleCommandError(error: unknown, logger: Logger, startTime: number, commandName: string): never;
9
+ import { type Logger } from '../../utils/logger.js';
14
10
  /**
15
11
  * Discovered skill with its source path and frontmatter name
16
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"command-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/command-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAElE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,KAAK,CAcP;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,eAAe,EAC1D,MAAM,EAAE,CAAC,EAAE,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,CAAC,EAAE,CAeL;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAKvF;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,CAAC,EAAE,OAAO,GACd,cAAc,CAMhB"}
1
+ {"version":3,"file":"command-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/command-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,eAAe,EAC1D,MAAM,EAAE,CAAC,EAAE,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,CAAC,EAAE,CAeL;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAKvF;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,CAAC,EAAE,OAAO,GACd,cAAc,CAMhB"}