@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
@@ -31,7 +31,7 @@ export function checkNodeVersion() {
31
31
  if (!version) {
32
32
  return {
33
33
  name: CHECK_NAME_NODE_VERSION,
34
- passed: false,
34
+ outcome: 'fail',
35
35
  message: 'Not detected',
36
36
  suggestion: NODEJS_INSTALL_URL,
37
37
  };
@@ -40,7 +40,7 @@ export function checkNodeVersion() {
40
40
  if (Number.isNaN(majorVersion)) {
41
41
  return {
42
42
  name: CHECK_NAME_NODE_VERSION,
43
- passed: false,
43
+ outcome: 'fail',
44
44
  message: `Failed to parse version: "${version}"`,
45
45
  suggestion: NODEJS_INSTALL_URL,
46
46
  };
@@ -48,12 +48,12 @@ export function checkNodeVersion() {
48
48
  return majorVersion >= 20
49
49
  ? {
50
50
  name: CHECK_NAME_NODE_VERSION,
51
- passed: true,
51
+ outcome: 'pass',
52
52
  message: `${version} (meets requirement: >=20.0.0)`,
53
53
  }
54
54
  : {
55
55
  name: CHECK_NAME_NODE_VERSION,
56
- passed: false,
56
+ outcome: 'fail',
57
57
  message: `${version} is too old. Node.js 20+ required.`,
58
58
  suggestion: 'Upgrade Node.js: https://nodejs.org/ or use nvm',
59
59
  };
@@ -62,7 +62,7 @@ export function checkNodeVersion() {
62
62
  const errorMessage = error instanceof Error ? error.message : String(error);
63
63
  return {
64
64
  name: CHECK_NAME_NODE_VERSION,
65
- passed: false,
65
+ outcome: 'fail',
66
66
  message: `Failed to detect: ${errorMessage}`,
67
67
  suggestion: NODEJS_INSTALL_URL,
68
68
  };
@@ -77,14 +77,14 @@ export function checkGitInstalled() {
77
77
  if (!version) {
78
78
  return {
79
79
  name: CHECK_NAME_GIT_INSTALLED,
80
- passed: false,
80
+ outcome: 'fail',
81
81
  message: 'Git is not installed',
82
82
  suggestion: GIT_INSTALL_URL,
83
83
  };
84
84
  }
85
85
  return {
86
86
  name: CHECK_NAME_GIT_INSTALLED,
87
- passed: true,
87
+ outcome: 'pass',
88
88
  message: version,
89
89
  };
90
90
  }
@@ -92,7 +92,7 @@ export function checkGitInstalled() {
92
92
  const errorMessage = error instanceof Error ? error.message : String(error);
93
93
  return {
94
94
  name: CHECK_NAME_GIT_INSTALLED,
95
- passed: false,
95
+ outcome: 'fail',
96
96
  message: `Git is not installed: ${errorMessage}`,
97
97
  suggestion: GIT_INSTALL_URL,
98
98
  };
@@ -112,7 +112,7 @@ export function checkGitRepository() {
112
112
  if (existsSync(safePath.join(currentDir, '.git'))) {
113
113
  return {
114
114
  name: CHECK_NAME_GIT_REPOSITORY,
115
- passed: true,
115
+ outcome: 'pass',
116
116
  message: 'Current directory is a git repository',
117
117
  };
118
118
  }
@@ -121,7 +121,7 @@ export function checkGitRepository() {
121
121
  }
122
122
  return {
123
123
  name: CHECK_NAME_GIT_REPOSITORY,
124
- passed: false,
124
+ outcome: 'fail',
125
125
  message: 'Current directory is not a git repository',
126
126
  suggestion: 'Run: git init',
127
127
  };
@@ -130,7 +130,7 @@ export function checkGitRepository() {
130
130
  const errorMessage = error instanceof Error ? error.message : String(error);
131
131
  return {
132
132
  name: CHECK_NAME_GIT_REPOSITORY,
133
- passed: false,
133
+ outcome: 'fail',
134
134
  message: `Error checking git repository: ${errorMessage}`,
135
135
  suggestion: 'Run: git init',
136
136
  };
@@ -147,14 +147,14 @@ export function checkConfigFile() {
147
147
  if (configPath) {
148
148
  return {
149
149
  name: CHECK_NAME_CONFIG_FILE,
150
- passed: true,
150
+ outcome: 'pass',
151
151
  message: `Found: ${configPath}`,
152
152
  };
153
153
  }
154
154
  else {
155
155
  return {
156
156
  name: CHECK_NAME_CONFIG_FILE,
157
- passed: false,
157
+ outcome: 'fail',
158
158
  message: 'Configuration file not found',
159
159
  suggestion: CREATE_CONFIG_SUGGESTION,
160
160
  };
@@ -164,7 +164,7 @@ export function checkConfigFile() {
164
164
  const errorMessage = error instanceof Error ? error.message : String(error);
165
165
  return {
166
166
  name: CHECK_NAME_CONFIG_FILE,
167
- passed: false,
167
+ outcome: 'fail',
168
168
  message: `Error checking configuration: ${errorMessage}`,
169
169
  suggestion: CREATE_CONFIG_SUGGESTION,
170
170
  };
@@ -207,7 +207,7 @@ export function checkConfigValid() {
207
207
  if (!configPath) {
208
208
  return {
209
209
  name: CHECK_NAME_CONFIG_VALID,
210
- passed: false,
210
+ outcome: 'fail',
211
211
  message: 'Configuration file not found',
212
212
  suggestion: CREATE_CONFIG_SUGGESTION,
213
213
  };
@@ -221,7 +221,7 @@ export function checkConfigValid() {
221
221
  if (!collections || Object.keys(collections).length === 0) {
222
222
  return {
223
223
  name: CHECK_NAME_CONFIG_VALID,
224
- passed: true,
224
+ outcome: 'pass',
225
225
  message: 'Configuration is valid (no collections defined)',
226
226
  };
227
227
  }
@@ -237,7 +237,7 @@ export function checkConfigValid() {
237
237
  ].join('\n ');
238
238
  return {
239
239
  name: CHECK_NAME_CONFIG_VALID,
240
- passed: false,
240
+ outcome: 'fail',
241
241
  message: `Configuration valid but schema files missing:\n ${details}`,
242
242
  suggestion: 'Create missing schema files or update collection config',
243
243
  };
@@ -249,7 +249,7 @@ export function checkConfigValid() {
249
249
  ].join('\n ');
250
250
  return {
251
251
  name: CHECK_NAME_CONFIG_VALID,
252
- passed: true,
252
+ outcome: 'pass',
253
253
  message: `Configuration is valid\n ${details}`,
254
254
  };
255
255
  }
@@ -257,7 +257,7 @@ export function checkConfigValid() {
257
257
  const errorMessage = error instanceof Error ? error.message : String(error);
258
258
  return {
259
259
  name: CHECK_NAME_CONFIG_VALID,
260
- passed: false,
260
+ outcome: 'fail',
261
261
  message: `Configuration contains errors: ${errorMessage}`,
262
262
  suggestion: 'Fix YAML syntax or schema errors in vibe-agent-toolkit.config.yaml',
263
263
  };
@@ -267,7 +267,7 @@ export function checkConfigValid() {
267
267
  const errorMessage = error instanceof Error ? error.message : String(error);
268
268
  return {
269
269
  name: CHECK_NAME_CONFIG_VALID,
270
- passed: false,
270
+ outcome: 'fail',
271
271
  message: `Failed to check configuration: ${errorMessage}`,
272
272
  suggestion: 'Check configuration file',
273
273
  };
@@ -303,14 +303,14 @@ export async function checkVatVersion(versionChecker = defaultVersionChecker) {
303
303
  if (currentVersion === latestVersion) {
304
304
  return {
305
305
  name: CHECK_NAME_VAT_VERSION,
306
- passed: true,
306
+ outcome: 'pass',
307
307
  message: `Current: ${String(currentVersion)} — up to date`,
308
308
  };
309
309
  }
310
310
  else if (isOutdated) {
311
311
  return {
312
312
  name: CHECK_NAME_VAT_VERSION,
313
- passed: true, // Advisory only
313
+ outcome: 'pass', // Advisory only
314
314
  message: `Current: ${String(currentVersion)}, Latest: ${String(latestVersion)} available`,
315
315
  suggestion: 'Upgrade: npm install -g vibe-agent-toolkit@latest',
316
316
  };
@@ -318,16 +318,18 @@ export async function checkVatVersion(versionChecker = defaultVersionChecker) {
318
318
  else {
319
319
  return {
320
320
  name: CHECK_NAME_VAT_VERSION,
321
- passed: true,
321
+ outcome: 'pass',
322
322
  message: `Current: ${String(currentVersion)} (ahead of npm: ${String(latestVersion)})`,
323
323
  };
324
324
  }
325
325
  }
326
326
  catch (npmError) {
327
+ // The registry was unreachable. We do not know whether a newer version
328
+ // exists — which is not the same as knowing this one is current.
327
329
  const errorMessage = npmError instanceof Error ? npmError.message : String(npmError);
328
330
  return {
329
331
  name: CHECK_NAME_VAT_VERSION,
330
- passed: true,
332
+ outcome: 'undetermined',
331
333
  message: `Unable to check for updates: ${errorMessage}`,
332
334
  };
333
335
  }
@@ -336,7 +338,7 @@ export async function checkVatVersion(versionChecker = defaultVersionChecker) {
336
338
  const errorMessage = error instanceof Error ? error.message : String(error);
337
339
  return {
338
340
  name: CHECK_NAME_VAT_VERSION,
339
- passed: true,
341
+ outcome: 'undetermined',
340
342
  message: `Unable to determine version: ${errorMessage}`,
341
343
  };
342
344
  }
@@ -344,22 +346,27 @@ export async function checkVatVersion(versionChecker = defaultVersionChecker) {
344
346
  /**
345
347
  * Detect if running in VAT source tree
346
348
  *
349
+ * Returns `'undetermined'` when the probe file exists but cannot be read or
350
+ * parsed: "I could not tell whether this is the source tree" is a different
351
+ * answer from "this is not the source tree", and only the latter justifies
352
+ * skipping the build-sync check.
353
+ *
347
354
  * @param projectRoot - Pre-resolved project root from the CLI boundary (null if absent)
348
355
  */
349
356
  function isVatSourceTree(projectRoot) {
357
+ if (!projectRoot)
358
+ return 'no';
359
+ const cliPackagePath = safePath.join(projectRoot, 'packages/cli/package.json');
350
360
  try {
351
- if (!projectRoot)
352
- return false;
353
- const cliPackagePath = safePath.join(projectRoot, 'packages/cli/package.json');
354
361
  // eslint-disable-next-line security/detect-non-literal-fs-filename -- Dynamic path for VAT source detection
355
362
  if (!existsSync(cliPackagePath))
356
- return false;
363
+ return 'no';
357
364
  // eslint-disable-next-line security/detect-non-literal-fs-filename -- Dynamic path for VAT source detection
358
365
  const pkg = JSON.parse(readFileSync(cliPackagePath, 'utf8'));
359
- return pkg.name === '@vibe-agent-toolkit/cli';
366
+ return pkg.name === '@vibe-agent-toolkit/cli' ? 'yes' : 'no';
360
367
  }
361
368
  catch {
362
- return false;
369
+ return 'undetermined';
363
370
  }
364
371
  }
365
372
  /**
@@ -369,18 +376,26 @@ function isVatSourceTree(projectRoot) {
369
376
  */
370
377
  export function checkCliBuildSync(projectRoot) {
371
378
  try {
372
- if (!isVatSourceTree(projectRoot)) {
379
+ if (!projectRoot) {
373
380
  return {
374
381
  name: CHECK_NAME_CLI_BUILD_STATUS,
375
- passed: true,
376
- message: 'Skipped (not in VAT source tree)',
382
+ outcome: 'skipped',
383
+ message: 'Skipped (no project root detected — nothing to compare the build against)',
377
384
  };
378
385
  }
379
- if (!projectRoot) {
386
+ const sourceTree = isVatSourceTree(projectRoot);
387
+ if (sourceTree === 'undetermined') {
388
+ return {
389
+ name: CHECK_NAME_CLI_BUILD_STATUS,
390
+ outcome: 'undetermined',
391
+ message: 'Could not determine whether this is the VAT source tree (packages/cli/package.json is unreadable)',
392
+ };
393
+ }
394
+ if (sourceTree === 'no') {
380
395
  return {
381
396
  name: CHECK_NAME_CLI_BUILD_STATUS,
382
- passed: true,
383
- message: 'Skipped',
397
+ outcome: 'skipped',
398
+ message: 'Skipped (not in VAT source tree — build sync only applies to VAT developers)',
384
399
  };
385
400
  }
386
401
  // Get running version
@@ -396,22 +411,24 @@ export function checkCliBuildSync(projectRoot) {
396
411
  if (runningVersion !== sourceVersion) {
397
412
  return {
398
413
  name: CHECK_NAME_CLI_BUILD_STATUS,
399
- passed: false,
414
+ outcome: 'fail',
400
415
  message: `Build is stale: running v${String(runningVersion)}, source v${String(sourceVersion)}`,
401
416
  suggestion: 'Rebuild packages: bun run build',
402
417
  };
403
418
  }
404
419
  return {
405
420
  name: CHECK_NAME_CLI_BUILD_STATUS,
406
- passed: true,
421
+ outcome: 'pass',
407
422
  message: `Build is up to date (v${String(runningVersion)})`,
408
423
  };
409
424
  }
410
- catch {
425
+ catch (error) {
426
+ const errorMessage = error instanceof Error ? error.message : String(error);
411
427
  return {
412
428
  name: CHECK_NAME_CLI_BUILD_STATUS,
413
- passed: true,
414
- message: 'Skipped (could not determine build status)',
429
+ outcome: 'undetermined',
430
+ message: `Could not determine build status: ${errorMessage}`,
431
+ suggestion: 'Rebuild packages (bun run build) and re-run, or check file permissions',
415
432
  };
416
433
  }
417
434
  }
@@ -422,7 +439,7 @@ export function checkCliBuildSync(projectRoot) {
422
439
  * @returns Doctor result
423
440
  */
424
441
  export async function runDoctor(options = {}) {
425
- const { verbose = false, versionChecker } = options;
442
+ const { versionChecker } = options;
426
443
  // 1. Detect project context at the CLI boundary.
427
444
  // Doctor uses the `tolerate null` policy (spec §7) — null is reported as a finding.
428
445
  const currentDir = process.cwd();
@@ -443,22 +460,75 @@ export async function runDoctor(options = {}) {
443
460
  checkConfigValid(),
444
461
  checkCliBuildSync(projectRoot),
445
462
  ];
446
- // 3. Filter output based on verbose mode
447
- const displayChecks = verbose
448
- ? checks
449
- : checks.filter(c => !c.passed || c.suggestion);
450
- // 4. Calculate summary
451
- const allPassed = checks.every(c => c.passed);
452
- const totalChecks = checks.length;
453
- const passedChecks = checks.filter(c => c.passed).length;
463
+ // 3. Report every check plus the outcome distribution. Filtering is the
464
+ // renderer's job — see selectDisplayChecks.
454
465
  return {
455
- allPassed,
456
- checks: displayChecks,
457
- totalChecks,
458
- passedChecks,
466
+ checks,
467
+ totalChecks: checks.length,
468
+ outcomeCounts: countByOutcome(checks),
459
469
  projectContext,
460
470
  };
461
471
  }
472
+ /** Tally checks by outcome. The four buckets always sum to `checks.length`. */
473
+ export function countByOutcome(checks) {
474
+ const counts = { pass: 0, fail: 0, undetermined: 0, skipped: 0 };
475
+ for (const check of checks) {
476
+ counts[check.outcome] += 1;
477
+ }
478
+ return counts;
479
+ }
480
+ /**
481
+ * Which checks the renderer prints.
482
+ *
483
+ * Verbose prints all of them. Concise hides only the checks with nothing to say:
484
+ * a clean `pass` with no suggestion, and a `skipped` check that does not apply
485
+ * here. `fail` and `undetermined` are ALWAYS printed — an undetermined check is
486
+ * the one a concise view must never swallow.
487
+ *
488
+ * Whatever this hides, {@link formatDoctorSummary} states the number of hidden
489
+ * checks, so the printed list and the printed counts cannot disagree.
490
+ */
491
+ export function selectDisplayChecks(checks, verbose) {
492
+ if (verbose)
493
+ return [...checks];
494
+ return checks.filter(c => c.suggestion !== undefined || (c.outcome !== 'pass' && c.outcome !== 'skipped'));
495
+ }
496
+ const OUTCOME_ICONS = {
497
+ pass: '✅',
498
+ fail: '❌',
499
+ undetermined: '❓',
500
+ skipped: '⏭️',
501
+ };
502
+ /**
503
+ * The summary block: the distribution, how many checks were not rendered, and
504
+ * the verdict.
505
+ *
506
+ * `displayedCount` is required precisely so the block can never claim more
507
+ * checks than the reader was shown without saying so.
508
+ */
509
+ export function formatDoctorSummary(counts, displayedCount) {
510
+ const total = counts.pass + counts.fail + counts.undetermined + counts.skipped;
511
+ const lines = [
512
+ `📊 Results: ${total} checks — ${counts.pass} passed, ${counts.fail} failed, ` +
513
+ `${counts.undetermined} undetermined, ${counts.skipped} skipped`,
514
+ ];
515
+ const hidden = total - displayedCount;
516
+ if (hidden > 0) {
517
+ lines.push(` ${hidden} not shown (nothing to report) — re-run with --verbose to see every check.`);
518
+ }
519
+ lines.push('');
520
+ if (counts.fail > 0) {
521
+ lines.push(`⚠️ ${counts.fail} check(s) failed. See suggestions above to fix.`);
522
+ }
523
+ else if (counts.undetermined > 0) {
524
+ lines.push(`❓ Nothing failed, but ${counts.undetermined} check(s) could not be determined — ` +
525
+ 'that is not the same as healthy.');
526
+ }
527
+ else {
528
+ lines.push('✨ All checks passed! Your vat setup looks healthy.');
529
+ }
530
+ return lines;
531
+ }
462
532
  /**
463
533
  * Main command handler for Commander.js
464
534
  */
@@ -475,9 +545,15 @@ When to run:
475
545
  • In CI/CD pipelines (validate build environment)
476
546
 
477
547
  Exit Codes:
478
- 0 - All checks passed
548
+ 0 - No check failed (an undetermined check is reported, not fatal)
479
549
  1 - One or more checks failed (see output for suggested fixes)
480
550
 
551
+ Outcomes:
552
+ ✅ pass the check ran and the thing is fine
553
+ ❌ fail the check ran and the thing is wrong (exit 1)
554
+ ❓ undetermined the check could not reach an answer — nothing was verified
555
+ ⏭️ skipped the check does not apply here
556
+
481
557
  Requirements:
482
558
  projectRoot: optional (tolerates absence — reported as a finding)
483
559
  config: not used
@@ -499,7 +575,7 @@ More details: vat --help --verbose or see packages/cli/docs/doctor.md
499
575
  };
500
576
  try {
501
577
  const result = await runDoctor(options);
502
- displayResults(result);
578
+ displayResults(result, options.verbose);
503
579
  }
504
580
  catch (error) {
505
581
  console.error('❌ Doctor check failed:');
@@ -511,7 +587,7 @@ More details: vat --help --verbose or see packages/cli/docs/doctor.md
511
587
  /**
512
588
  * Display doctor results in human-friendly format
513
589
  */
514
- function displayResults(result) {
590
+ function displayResults(result, verbose) {
515
591
  console.log('🩺 vat doctor\n');
516
592
  // Show project context if in subdirectory
517
593
  const { currentDir, projectRoot, configPath } = result.projectContext;
@@ -527,22 +603,21 @@ function displayResults(result) {
527
603
  }
528
604
  console.log('Running diagnostic checks...\n');
529
605
  // Show checks
530
- for (const check of result.checks) {
531
- const icon = check.passed ? '✅' : '❌';
532
- console.log(`${icon} ${check.name}`);
606
+ const displayed = selectDisplayChecks(result.checks, verbose);
607
+ for (const check of displayed) {
608
+ console.log(`${OUTCOME_ICONS[check.outcome]} ${check.name}`);
533
609
  console.log(` ${check.message}`);
534
610
  if (check.suggestion) {
535
611
  console.log(` 💡 ${check.suggestion}`);
536
612
  }
537
613
  console.log('');
538
614
  }
539
- // Summary
540
- console.log(`📊 Results: ${result.passedChecks}/${result.totalChecks} checks passed\n`);
541
- if (result.allPassed) {
542
- console.log('✨ All checks passed! Your vat setup looks healthy.');
615
+ // Summary — states the distribution AND how many checks it did not print,
616
+ // so the count can never contradict the list above it.
617
+ for (const line of formatDoctorSummary(result.outcomeCounts, displayed.length)) {
618
+ console.log(line);
543
619
  }
544
- else {
545
- console.log('⚠️ Some checks failed. See suggestions above to fix.');
620
+ if (result.outcomeCounts.fail > 0) {
546
621
  process.exit(1);
547
622
  }
548
623
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type AnyInventory } from '@vibe-agent-toolkit/agent-skills';
1
2
  import { Command } from 'commander';
2
3
  export interface InventoryCommandOptions {
3
4
  user?: boolean;
@@ -14,4 +15,5 @@ export declare function createInventoryCommand(): Command;
14
15
  * Action handler for `vat inventory [path]`.
15
16
  */
16
17
  export declare function inventoryCommand(pathArg: string | undefined, options: InventoryCommandOptions): Promise<void>;
18
+ export declare function routeInventory(pathArg: string | undefined, options: InventoryCommandOptions): Promise<AnyInventory>;
17
19
  //# sourceMappingURL=inventory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../src/commands/inventory.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,MAAM,WAAW,uBAAuB;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAgChD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,uBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAcf"}
1
+ {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../src/commands/inventory.ts"],"names":[],"mappings":"AAEA,OAAO,EAGN,KAAK,YAAY,EACjB,MAAM,kCAAkC,CAAC;AAU1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,MAAM,WAAW,uBAAuB;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAgChD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,uBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,cAAc,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,uBAAuB,GAC9B,OAAO,CAAC,YAAY,CAAC,CAoCvB"}
@@ -1,7 +1,7 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { serializeInventory, serializeInventoryShallow, } from '@vibe-agent-toolkit/agent-skills';
3
- import { extractClaudeInstallInventory, extractClaudeMarketplaceInventory, extractClaudePluginInventory, extractClaudeSkillInventory, getClaudeUserPaths, } from '@vibe-agent-toolkit/claude-marketplace';
4
- import { safePath } from '@vibe-agent-toolkit/utils';
3
+ import { crawlSkillLinkRegistry, extractClaudeInstallInventory, extractClaudeMarketplaceInventory, extractClaudePluginInventory, extractClaudeSkillInventory, getClaudeUserPaths, } from '@vibe-agent-toolkit/claude-marketplace';
4
+ import { findProjectRoot, safePath } from '@vibe-agent-toolkit/utils';
5
5
  import { Command } from 'commander';
6
6
  import { handleCommandError } from '../utils/command-error.js';
7
7
  import { createLogger } from '../utils/logger.js';
@@ -60,7 +60,7 @@ export async function inventoryCommand(pathArg, options) {
60
60
  handleCommandError(error, logger, startTime, 'Inventory');
61
61
  }
62
62
  }
63
- async function routeInventory(pathArg, options) {
63
+ export async function routeInventory(pathArg, options) {
64
64
  if (options.user === true) {
65
65
  return extractClaudeInstallInventory(getClaudeUserPaths());
66
66
  }
@@ -72,6 +72,10 @@ async function routeInventory(pathArg, options) {
72
72
  }
73
73
  const absolute = safePath.resolve(pathArg);
74
74
  if (absolute.endsWith('SKILL.md') || absolute.endsWith('skill.md')) {
75
+ // No shared registry: there is nothing to share it WITH. The extractor derives the
76
+ // same root from the same skill path and crawls it exactly once, so handing it a
77
+ // registry here would only duplicate that derivation — and get it wrong the moment
78
+ // the two rules drift.
75
79
  return extractClaudeSkillInventory(absolute);
76
80
  }
77
81
  const claudePluginDir = safePath.join(absolute, '.claude-plugin');
@@ -83,8 +87,45 @@ async function routeInventory(pathArg, options) {
83
87
  // When both are present, the plugin extractor takes precedence (plugin is installed,
84
88
  // marketplace.json is a cached metadata artifact alongside it).
85
89
  if (hasMarketplace && !hasPlugin) {
90
+ // No shared registry here: `extractClaudeMarketplaceInventory` (like
91
+ // `extractClaudeInstallInventory` above) takes no `sharedRegistry` parameter,
92
+ // so every plugin it fans out to still re-crawls. Threading one through those
93
+ // two extractors is a claude-marketplace change, not a CLI one.
86
94
  return extractClaudeMarketplaceInventory(absolute);
87
95
  }
88
- return extractClaudePluginInventory(absolute);
96
+ // Lazy, not eager: the extractor calls this only when it is about to walk its first
97
+ // skill, so a plugin of commands/ and agents/ alone crawls nothing.
98
+ return extractClaudePluginInventory(absolute, linkRegistryProviderFor(absolute));
99
+ }
100
+ /**
101
+ * A way to obtain the ONE markdown registry every skill under `subjectDir` link-walks
102
+ * against — or `undefined` when no single registry can serve them all.
103
+ *
104
+ * `extractClaudeSkillInventory` otherwise crawls and parses every document under the
105
+ * project root once per skill, so an N-skill plugin paid N whole-corpus crawls (~11.9s
106
+ * each on a ~1,041-document monorepo). Root discovery belongs at this CLI boundary —
107
+ * inner functions take the root as a parameter — so the root is resolved eagerly here
108
+ * and only the crawl is deferred.
109
+ *
110
+ * **Only a project root is shareable.** Reuse is gated on exact
111
+ * `registry.baseDir === projectRoot` equality against the root the extractor derives per
112
+ * skill (`findProjectRoot(dirname(skillMd)) ?? dirname(skillMd)`). When `findProjectRoot`
113
+ * finds nothing, that per-skill fallback is each skill's OWN directory — three skills
114
+ * mean three different roots, and a registry rooted at the plugin answers a different
115
+ * question for all three. It would be crawled, compared, discarded, and re-crawled per
116
+ * skill: measured at 1308ms against 863ms for building nothing at all, i.e. 1.5x SLOWER
117
+ * than the N+1 it was meant to remove. So: no root, no provider.
118
+ *
119
+ * Returning a provider rather than a registry keeps the CLI out of the business of
120
+ * guessing whether the subject has any skills — a guess that would duplicate the
121
+ * extractor's discovery rule and drift from it. `extractClaudePluginInventory` memoizes
122
+ * the call, so whenever a provider IS returned the crawl happens at most once however
123
+ * many skills it finds. Mirrors `vat audit`'s `getOrCreateInventoryRegistry`.
124
+ */
125
+ function linkRegistryProviderFor(subjectDir) {
126
+ const projectRoot = findProjectRoot(subjectDir);
127
+ if (projectRoot === null)
128
+ return undefined;
129
+ return () => crawlSkillLinkRegistry(projectRoot);
89
130
  }
90
131
  //# sourceMappingURL=inventory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/commands/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EACN,kBAAkB,EAClB,yBAAyB,GAEzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,6BAA6B,EAC7B,iCAAiC,EACjC,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,GAClB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUlD;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO;SACL,WAAW,CAAC,+EAA+E,CAAC;SAC5F,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;SAC/D,MAAM,CAAC,QAAQ,EAAE,6DAA6D,CAAC;SAC/E,MAAM,CAAC,UAAU,EAAE,2CAA2C,CAAC;SAC/D,MAAM,CAAC,sBAAsB,EAAE,eAAe,EAAE,MAAM,CAAC;SACvD,MAAM,CAAC,WAAW,EAAE,sCAAsC,CAAC;SAC3D,MAAM,CAAC,SAAS,EAAE,2BAA2B,CAAC;SAC9C,MAAM,CAAC,gBAAgB,CAAC;SACxB,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;CAmBvB,CAAC,CAAC;IACF,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,OAA2B,EAC3B,OAAgC;IAEhC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI;YACnC,CAAC,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC;YACxC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC;AAED,KAAK,UAAU,cAAc,CAC5B,OAA2B,EAC3B,OAAgC;IAEhC,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,6BAA6B,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,OAAO,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAClE,gIAAgI;IAChI,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACtF,gIAAgI;IAChI,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;IAC5E,8EAA8E;IAC9E,qFAAqF;IACrF,gEAAgE;IAChE,IAAI,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,OAAO,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,4BAA4B,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/commands/inventory.ts"],"names":[],"mappings":"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"}