@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.
- package/README.md +4 -3
- package/dist/bin/vat +1 -1
- package/dist/bin/vat.js +1 -1
- package/dist/bin/vat.js.map +1 -1
- package/dist/commands/audit/hierarchical-output.d.ts +6 -2
- package/dist/commands/audit/hierarchical-output.d.ts.map +1 -1
- package/dist/commands/audit/hierarchical-output.js +93 -50
- package/dist/commands/audit/hierarchical-output.js.map +1 -1
- package/dist/commands/audit-settings.d.ts +35 -0
- package/dist/commands/audit-settings.d.ts.map +1 -1
- package/dist/commands/audit-settings.js +121 -51
- package/dist/commands/audit-settings.js.map +1 -1
- package/dist/commands/audit.d.ts +63 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +329 -187
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +47 -18
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/claude/marketplace/license-utils.d.ts +39 -2
- package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/license-utils.js +114 -68
- package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
- package/dist/commands/claude/marketplace/publish.js +5 -4
- package/dist/commands/claude/marketplace/publish.js.map +1 -1
- package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/validate.js +13 -19
- package/dist/commands/claude/marketplace/validate.js.map +1 -1
- package/dist/commands/claude/org/skills.d.ts +11 -3
- package/dist/commands/claude/org/skills.d.ts.map +1 -1
- package/dist/commands/claude/org/skills.js +70 -20
- package/dist/commands/claude/org/skills.js.map +1 -1
- package/dist/commands/claude/plugin/build.d.ts +93 -0
- package/dist/commands/claude/plugin/build.d.ts.map +1 -1
- package/dist/commands/claude/plugin/build.js +83 -39
- package/dist/commands/claude/plugin/build.js.map +1 -1
- package/dist/commands/claude/plugin/marketplace-json.d.ts +36 -0
- package/dist/commands/claude/plugin/marketplace-json.d.ts.map +1 -0
- package/dist/commands/claude/plugin/marketplace-json.js +34 -0
- package/dist/commands/claude/plugin/marketplace-json.js.map +1 -0
- package/dist/commands/claude/plugin/plugin-json-merge.d.ts +30 -1
- package/dist/commands/claude/plugin/plugin-json-merge.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-json-merge.js +92 -14
- package/dist/commands/claude/plugin/plugin-json-merge.js.map +1 -1
- package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
- package/dist/commands/claude/plugin/tree-copy.js +0 -1
- package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
- package/dist/commands/corpus/runner.d.ts.map +1 -1
- package/dist/commands/corpus/runner.js +15 -26
- package/dist/commands/corpus/runner.js.map +1 -1
- package/dist/commands/doctor.d.ts +57 -8
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +142 -67
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/phase-utils.d.ts +62 -2
- package/dist/commands/phase-utils.d.ts.map +1 -1
- package/dist/commands/phase-utils.js +74 -2
- package/dist/commands/phase-utils.js.map +1 -1
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +13 -6
- package/dist/commands/resources/index.js.map +1 -1
- package/dist/commands/resources/validate.d.ts.map +1 -1
- package/dist/commands/resources/validate.js +38 -24
- package/dist/commands/resources/validate.js.map +1 -1
- package/dist/commands/skill/review.d.ts.map +1 -1
- package/dist/commands/skill/review.js +33 -20
- package/dist/commands/skill/review.js.map +1 -1
- package/dist/commands/skills/build.d.ts +51 -0
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +91 -54
- package/dist/commands/skills/build.js.map +1 -1
- package/dist/commands/skills/package.d.ts +2 -0
- package/dist/commands/skills/package.d.ts.map +1 -1
- package/dist/commands/skills/package.js +61 -42
- package/dist/commands/skills/package.js.map +1 -1
- package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
- package/dist/commands/skills/skill-discovery.js +9 -1
- package/dist/commands/skills/skill-discovery.js.map +1 -1
- package/dist/commands/skills/validate.d.ts +38 -0
- package/dist/commands/skills/validate.d.ts.map +1 -1
- package/dist/commands/skills/validate.js +125 -70
- package/dist/commands/skills/validate.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +11 -5
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +69 -26
- package/dist/commands/verify.js.map +1 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +0 -2
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/issue-anchor.d.ts +26 -0
- package/dist/utils/issue-anchor.d.ts.map +1 -0
- package/dist/utils/issue-anchor.js +39 -0
- package/dist/utils/issue-anchor.js.map +1 -0
- package/dist/utils/issue-rendering.d.ts +61 -0
- package/dist/utils/issue-rendering.d.ts.map +1 -0
- package/dist/utils/issue-rendering.js +135 -0
- package/dist/utils/issue-rendering.js.map +1 -0
- package/dist/utils/output.d.ts +26 -4
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +27 -6
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/project-root-policy.d.ts +2 -2
- package/dist/utils/project-root-policy.js +2 -2
- package/dist/utils/validate-help-files.d.ts +3 -2
- package/dist/utils/validate-help-files.d.ts.map +1 -1
- package/dist/utils/validate-help-files.js +48 -5
- package/dist/utils/validate-help-files.js.map +1 -1
- package/dist/utils/verdict-helpers.d.ts +10 -2
- package/dist/utils/verdict-helpers.d.ts.map +1 -1
- package/dist/utils/verdict-helpers.js +13 -3
- package/dist/utils/verdict-helpers.js.map +1 -1
- package/docs/audit.md +40 -14
- package/docs/doctor.md +46 -10
- package/docs/index.md +1 -1
- package/docs/resources.md +24 -8
- package/docs/skills.md +2 -2
- package/package.json +12 -12
package/dist/commands/doctor.js
CHANGED
|
@@ -31,7 +31,7 @@ export function checkNodeVersion() {
|
|
|
31
31
|
if (!version) {
|
|
32
32
|
return {
|
|
33
33
|
name: CHECK_NAME_NODE_VERSION,
|
|
34
|
-
|
|
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
|
-
|
|
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
|
-
|
|
51
|
+
outcome: 'pass',
|
|
52
52
|
message: `${version} (meets requirement: >=20.0.0)`,
|
|
53
53
|
}
|
|
54
54
|
: {
|
|
55
55
|
name: CHECK_NAME_NODE_VERSION,
|
|
56
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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 (!
|
|
379
|
+
if (!projectRoot) {
|
|
373
380
|
return {
|
|
374
381
|
name: CHECK_NAME_CLI_BUILD_STATUS,
|
|
375
|
-
|
|
376
|
-
message: 'Skipped (
|
|
382
|
+
outcome: 'skipped',
|
|
383
|
+
message: 'Skipped (no project root detected — nothing to compare the build against)',
|
|
377
384
|
};
|
|
378
385
|
}
|
|
379
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
414
|
-
message:
|
|
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 {
|
|
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.
|
|
447
|
-
|
|
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
|
-
|
|
456
|
-
|
|
457
|
-
|
|
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 -
|
|
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
|
-
|
|
531
|
-
|
|
532
|
-
console.log(`${
|
|
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
|
-
|
|
541
|
-
|
|
542
|
-
console.log(
|
|
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
|
-
|
|
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:
|
|
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;
|
|
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"}
|