@vibe-agent-toolkit/cli 0.1.41-rc.6 → 0.1.41-rc.7

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 (119) hide show
  1. package/README.md +4 -3
  2. package/dist/bin/vat +1 -1
  3. package/dist/bin/vat.js +1 -1
  4. package/dist/bin/vat.js.map +1 -1
  5. package/dist/commands/audit/hierarchical-output.d.ts +6 -2
  6. package/dist/commands/audit/hierarchical-output.d.ts.map +1 -1
  7. package/dist/commands/audit/hierarchical-output.js +93 -50
  8. package/dist/commands/audit/hierarchical-output.js.map +1 -1
  9. package/dist/commands/audit-settings.d.ts +35 -0
  10. package/dist/commands/audit-settings.d.ts.map +1 -1
  11. package/dist/commands/audit-settings.js +121 -51
  12. package/dist/commands/audit-settings.js.map +1 -1
  13. package/dist/commands/audit.d.ts +63 -1
  14. package/dist/commands/audit.d.ts.map +1 -1
  15. package/dist/commands/audit.js +329 -187
  16. package/dist/commands/audit.js.map +1 -1
  17. package/dist/commands/build.d.ts.map +1 -1
  18. package/dist/commands/build.js +47 -18
  19. package/dist/commands/build.js.map +1 -1
  20. package/dist/commands/claude/marketplace/license-utils.d.ts +39 -2
  21. package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
  22. package/dist/commands/claude/marketplace/license-utils.js +114 -68
  23. package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
  24. package/dist/commands/claude/marketplace/publish.js +5 -4
  25. package/dist/commands/claude/marketplace/publish.js.map +1 -1
  26. package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
  27. package/dist/commands/claude/marketplace/validate.js +13 -19
  28. package/dist/commands/claude/marketplace/validate.js.map +1 -1
  29. package/dist/commands/claude/org/skills.d.ts +11 -3
  30. package/dist/commands/claude/org/skills.d.ts.map +1 -1
  31. package/dist/commands/claude/org/skills.js +70 -20
  32. package/dist/commands/claude/org/skills.js.map +1 -1
  33. package/dist/commands/claude/plugin/build.d.ts +93 -0
  34. package/dist/commands/claude/plugin/build.d.ts.map +1 -1
  35. package/dist/commands/claude/plugin/build.js +83 -39
  36. package/dist/commands/claude/plugin/build.js.map +1 -1
  37. package/dist/commands/claude/plugin/marketplace-json.d.ts +36 -0
  38. package/dist/commands/claude/plugin/marketplace-json.d.ts.map +1 -0
  39. package/dist/commands/claude/plugin/marketplace-json.js +34 -0
  40. package/dist/commands/claude/plugin/marketplace-json.js.map +1 -0
  41. package/dist/commands/claude/plugin/plugin-json-merge.d.ts +30 -1
  42. package/dist/commands/claude/plugin/plugin-json-merge.d.ts.map +1 -1
  43. package/dist/commands/claude/plugin/plugin-json-merge.js +92 -14
  44. package/dist/commands/claude/plugin/plugin-json-merge.js.map +1 -1
  45. package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
  46. package/dist/commands/claude/plugin/tree-copy.js +0 -1
  47. package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
  48. package/dist/commands/corpus/runner.d.ts.map +1 -1
  49. package/dist/commands/corpus/runner.js +15 -26
  50. package/dist/commands/corpus/runner.js.map +1 -1
  51. package/dist/commands/doctor.d.ts +57 -8
  52. package/dist/commands/doctor.d.ts.map +1 -1
  53. package/dist/commands/doctor.js +142 -67
  54. package/dist/commands/doctor.js.map +1 -1
  55. package/dist/commands/phase-utils.d.ts +62 -2
  56. package/dist/commands/phase-utils.d.ts.map +1 -1
  57. package/dist/commands/phase-utils.js +74 -2
  58. package/dist/commands/phase-utils.js.map +1 -1
  59. package/dist/commands/resources/index.d.ts.map +1 -1
  60. package/dist/commands/resources/index.js +13 -6
  61. package/dist/commands/resources/index.js.map +1 -1
  62. package/dist/commands/resources/validate.d.ts.map +1 -1
  63. package/dist/commands/resources/validate.js +38 -24
  64. package/dist/commands/resources/validate.js.map +1 -1
  65. package/dist/commands/skill/review.d.ts.map +1 -1
  66. package/dist/commands/skill/review.js +33 -20
  67. package/dist/commands/skill/review.js.map +1 -1
  68. package/dist/commands/skills/build.d.ts +51 -0
  69. package/dist/commands/skills/build.d.ts.map +1 -1
  70. package/dist/commands/skills/build.js +91 -54
  71. package/dist/commands/skills/build.js.map +1 -1
  72. package/dist/commands/skills/package.d.ts +2 -0
  73. package/dist/commands/skills/package.d.ts.map +1 -1
  74. package/dist/commands/skills/package.js +61 -42
  75. package/dist/commands/skills/package.js.map +1 -1
  76. package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
  77. package/dist/commands/skills/skill-discovery.js +9 -1
  78. package/dist/commands/skills/skill-discovery.js.map +1 -1
  79. package/dist/commands/skills/validate.d.ts +38 -0
  80. package/dist/commands/skills/validate.d.ts.map +1 -1
  81. package/dist/commands/skills/validate.js +125 -70
  82. package/dist/commands/skills/validate.js.map +1 -1
  83. package/dist/commands/validate.d.ts.map +1 -1
  84. package/dist/commands/validate.js +11 -5
  85. package/dist/commands/validate.js.map +1 -1
  86. package/dist/commands/verify.d.ts.map +1 -1
  87. package/dist/commands/verify.js +69 -26
  88. package/dist/commands/verify.js.map +1 -1
  89. package/dist/utils/config-loader.d.ts.map +1 -1
  90. package/dist/utils/config-loader.js +0 -2
  91. package/dist/utils/config-loader.js.map +1 -1
  92. package/dist/utils/issue-anchor.d.ts +26 -0
  93. package/dist/utils/issue-anchor.d.ts.map +1 -0
  94. package/dist/utils/issue-anchor.js +39 -0
  95. package/dist/utils/issue-anchor.js.map +1 -0
  96. package/dist/utils/issue-rendering.d.ts +61 -0
  97. package/dist/utils/issue-rendering.d.ts.map +1 -0
  98. package/dist/utils/issue-rendering.js +135 -0
  99. package/dist/utils/issue-rendering.js.map +1 -0
  100. package/dist/utils/output.d.ts +26 -4
  101. package/dist/utils/output.d.ts.map +1 -1
  102. package/dist/utils/output.js +27 -6
  103. package/dist/utils/output.js.map +1 -1
  104. package/dist/utils/project-root-policy.d.ts +2 -2
  105. package/dist/utils/project-root-policy.js +2 -2
  106. package/dist/utils/validate-help-files.d.ts +3 -2
  107. package/dist/utils/validate-help-files.d.ts.map +1 -1
  108. package/dist/utils/validate-help-files.js +48 -5
  109. package/dist/utils/validate-help-files.js.map +1 -1
  110. package/dist/utils/verdict-helpers.d.ts +10 -2
  111. package/dist/utils/verdict-helpers.d.ts.map +1 -1
  112. package/dist/utils/verdict-helpers.js +13 -3
  113. package/dist/utils/verdict-helpers.js.map +1 -1
  114. package/docs/audit.md +40 -14
  115. package/docs/doctor.md +46 -10
  116. package/docs/index.md +1 -1
  117. package/docs/resources.md +24 -8
  118. package/docs/skills.md +2 -2
  119. 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,14 +1,46 @@
1
1
  /**
2
- * Shared utilities for top-level phase orchestration commands (vat build, vat verify).
2
+ * Shared utilities for top-level phase orchestration commands (vat build, vat verify, vat validate).
3
3
  */
4
+ import { type SeverityCounts } from '@vibe-agent-toolkit/agent-schema';
4
5
  import { createLogger } from '../utils/logger.js';
5
6
  export interface Phase {
6
7
  name: string;
7
8
  args: string[];
8
9
  }
10
+ /**
11
+ * Outcome of one orchestrated phase.
12
+ *
13
+ * `system-error` is a value of its own because **a phase that could not RUN is
14
+ * not a phase that found problems.** Collapsing it into `error` (which is what
15
+ * `result.status === 0 ? 'passed' : 'failed'` did) made the documented exit
16
+ * code 2 unreachable from every orchestrator, so a CI script could not tell an
17
+ * invalid config or a killed child from a broken link.
18
+ *
19
+ * `warning` cannot arrive from a subprocess — an exit code cannot express it —
20
+ * but in-process phases (e.g. verify's consistency check) emit it.
21
+ */
22
+ export type PhaseStatus = 'success' | 'warning' | 'error' | 'system-error';
9
23
  export interface PhaseResult {
10
24
  name: string;
11
- status: string;
25
+ status: PhaseStatus;
26
+ /** Child exit code, when the child ran and exited on its own. */
27
+ exitCode?: number;
28
+ /** POSIX signal that killed the child, when one did (then `exitCode` is absent). */
29
+ signal?: string;
30
+ /** Why the phase could not run at all (the spawn itself failed). */
31
+ error?: string;
32
+ /**
33
+ * Per-severity distribution for in-process phases that hold their own
34
+ * findings. Absent for subprocess phases: the child owns and prints its own
35
+ * findings, and inventing counts here would be a second, weaker answer.
36
+ */
37
+ issueCounts?: SeverityCounts;
38
+ }
39
+ /** The subset of a `spawnSync` return that decides a phase's outcome. */
40
+ export interface PhaseSpawnOutcome {
41
+ status: number | null;
42
+ signal: NodeJS.Signals | null;
43
+ error?: Error | undefined;
12
44
  }
13
45
  /**
14
46
  * Resolve the absolute path to the vat binary.
@@ -32,8 +64,36 @@ export interface PhaseContext {
32
64
  * @throws Error if phases list is empty
33
65
  */
34
66
  export declare function createPhaseContext(debugFlag: boolean | undefined, phases: Phase[], onlyValue: string | undefined, validPhaseNames: string): PhaseContext;
67
+ /**
68
+ * Map a spawn outcome to a phase outcome. The pure core of {@link runPhase}.
69
+ *
70
+ * Every branch that is NOT "the child ran and told us what it found" is a
71
+ * system error, because the orchestrator learned nothing about the artifact:
72
+ *
73
+ * | spawn outcome | phase status | why |
74
+ * |--------------------------|----------------|--------------------------------------------|
75
+ * | `error` set | `system-error` | the child never ran |
76
+ * | killed by a signal | `system-error` | the child was cut off mid-answer |
77
+ * | no exit code, no signal | `system-error` | there is no answer to read |
78
+ * | exit 0 | `success` | ran, found nothing actionable |
79
+ * | exit 1 | `error` | ran, found validation errors |
80
+ * | exit 2 (or any other) | `system-error` | the child itself reported a system error |
81
+ */
82
+ export declare function phaseResultFromSpawn(name: string, outcome: PhaseSpawnOutcome): PhaseResult;
35
83
  /**
36
84
  * Run a single phase by spawning the vat binary with the phase args.
37
85
  */
38
86
  export declare function runPhase(binPath: string, phase: Phase): PhaseResult;
87
+ /**
88
+ * Worst-wins aggregate across phases. `system-error` outranks `error`: "we could
89
+ * not determine the answer" must never be filed under "we determined it is bad".
90
+ */
91
+ export declare function aggregatePhaseStatus(results: readonly PhaseResult[]): PhaseStatus;
92
+ /**
93
+ * The process exit code for a set of phase outcomes, per the exit-code contract
94
+ * every orchestrator's help text documents: 0 pass, 1 validation failure,
95
+ * 2 system error. Warnings do not fail a run — they are published in the status
96
+ * and counts instead.
97
+ */
98
+ export declare function exitCodeForPhases(results: readonly PhaseResult[]): 0 | 1 | 2;
39
99
  //# sourceMappingURL=phase-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"phase-utils.d.ts","sourceRoot":"","sources":["../../src/commands/phase-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAKvC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,MAAM,EAAE,KAAK,EAAE,EACf,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,eAAe,EAAE,MAAM,GACtB,YAAY,CASd;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,WAAW,CAKnE"}
1
+ {"version":3,"file":"phase-utils.d.ts","sourceRoot":"","sources":["../../src/commands/phase-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC;AAK3E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B;AAED,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAKvC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,MAAM,EAAE,KAAK,EAAE,EACf,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,eAAe,EAAE,MAAM,GACtB,YAAY,CASd;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW,CA2B1F;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,WAAW,CAKnE;AAKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,WAAW,CAQjF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAI5E"}