@vibe-agent-toolkit/cli 0.1.41-rc.5 → 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/bin.js +2 -4
- package/dist/bin.js.map +1 -1
- package/dist/commands/agent/help.d.ts.map +1 -1
- package/dist/commands/agent/help.js +2 -4
- package/dist/commands/agent/help.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 +21 -0
- package/dist/commands/claude/org/skills.d.ts.map +1 -1
- package/dist/commands/claude/org/skills.js +107 -30
- package/dist/commands/claude/org/skills.js.map +1 -1
- package/dist/commands/claude/plugin/build.d.ts +94 -1
- package/dist/commands/claude/plugin/build.d.ts.map +1 -1
- package/dist/commands/claude/plugin/build.js +307 -106
- package/dist/commands/claude/plugin/build.js.map +1 -1
- package/dist/commands/claude/plugin/install.d.ts.map +1 -1
- package/dist/commands/claude/plugin/install.js +7 -2
- package/dist/commands/claude/plugin/install.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 +10 -3
- 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/claude/plugin/uninstall.d.ts.map +1 -1
- package/dist/commands/claude/plugin/uninstall.js +10 -2
- package/dist/commands/claude/plugin/uninstall.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/rag/help.d.ts.map +1 -1
- package/dist/commands/rag/help.js +2 -4
- package/dist/commands/rag/help.js.map +1 -1
- package/dist/commands/resources/help.d.ts.map +1 -1
- package/dist/commands/resources/help.js +2 -4
- package/dist/commands/resources/help.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 +19 -0
- package/dist/commands/resources/validate.d.ts.map +1 -1
- package/dist/commands/resources/validate.js +89 -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/skill/test/configure.d.ts.map +1 -1
- package/dist/commands/skill/test/configure.js +1 -1
- package/dist/commands/skill/test/configure.js.map +1 -1
- package/dist/commands/skill/test/run.d.ts +29 -2
- package/dist/commands/skill/test/run.d.ts.map +1 -1
- package/dist/commands/skill/test/run.js +67 -19
- package/dist/commands/skill/test/run.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 +94 -86
- package/dist/commands/skills/build.js.map +1 -1
- package/dist/commands/skills/install.d.ts.map +1 -1
- package/dist/commands/skills/install.js +79 -25
- package/dist/commands/skills/install.js.map +1 -1
- package/dist/commands/skills/list.d.ts.map +1 -1
- package/dist/commands/skills/list.js +9 -5
- package/dist/commands/skills/list.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 +7 -0
- package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
- package/dist/commands/skills/skill-discovery.js +14 -4
- 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 +76 -28
- package/dist/commands/verify.js.map +1 -1
- package/dist/skill-resolution/classify.d.ts +7 -2
- package/dist/skill-resolution/classify.d.ts.map +1 -1
- package/dist/skill-resolution/classify.js +7 -2
- package/dist/skill-resolution/classify.js.map +1 -1
- package/dist/skill-resolution/resolve-skill-reference.d.ts +10 -8
- package/dist/skill-resolution/resolve-skill-reference.d.ts.map +1 -1
- package/dist/skill-resolution/resolve-skill-reference.js +62 -23
- package/dist/skill-resolution/resolve-skill-reference.js.map +1 -1
- package/dist/skill-resolution/types.d.ts +3 -2
- package/dist/skill-resolution/types.d.ts.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/help-loader.d.ts +16 -0
- package/dist/utils/help-loader.d.ts.map +1 -1
- package/dist/utils/help-loader.js +31 -1
- package/dist/utils/help-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/skill-packaging-config.d.ts +15 -6
- package/dist/utils/skill-packaging-config.d.ts.map +1 -1
- package/dist/utils/skill-packaging-config.js +23 -5
- package/dist/utils/skill-packaging-config.js.map +1 -1
- 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/skill-test.md +47 -3
- package/docs/skills.md +28 -6
- package/package.json +12 -12
package/README.md
CHANGED
|
@@ -92,10 +92,11 @@ vat doctor --verbose
|
|
|
92
92
|
- CLI build status (in VAT source tree only)
|
|
93
93
|
|
|
94
94
|
**Exit codes:**
|
|
95
|
-
- `0` -
|
|
95
|
+
- `0` - No check failed (an undetermined check is reported, not fatal)
|
|
96
96
|
- `1` - One or more checks failed
|
|
97
97
|
|
|
98
|
-
**Example output
|
|
98
|
+
**Example output** (`--verbose`; the concise view hides checks with nothing to
|
|
99
|
+
report and states how many it hid):
|
|
99
100
|
```
|
|
100
101
|
🩺 vat doctor
|
|
101
102
|
|
|
@@ -119,7 +120,7 @@ Running diagnostic checks...
|
|
|
119
120
|
✅ vat version
|
|
120
121
|
Current: 0.1.0 — up to date
|
|
121
122
|
|
|
122
|
-
📊 Results: 6
|
|
123
|
+
📊 Results: 6 checks — 6 passed, 0 failed, 0 undetermined, 0 skipped
|
|
123
124
|
|
|
124
125
|
✨ All checks passed! Your vat setup looks healthy.
|
|
125
126
|
```
|
package/dist/bin/vat
CHANGED
|
@@ -106,7 +106,7 @@ function readVersion(packageJsonPath) {
|
|
|
106
106
|
function main() {
|
|
107
107
|
// VAT_TEST_ROOT: legacy test override that pins the project root to a
|
|
108
108
|
// specific directory. Applied at the bin boundary so library code stays
|
|
109
|
-
// pure
|
|
109
|
+
// pure — no library function reads this variable.
|
|
110
110
|
const testRoot = process.env['VAT_TEST_ROOT'];
|
|
111
111
|
const cwd = testRoot ? safePath.resolve(testRoot) : process.cwd();
|
|
112
112
|
const args = process.argv.slice(2);
|
package/dist/bin/vat.js
CHANGED
|
@@ -106,7 +106,7 @@ function readVersion(packageJsonPath) {
|
|
|
106
106
|
function main() {
|
|
107
107
|
// VAT_TEST_ROOT: legacy test override that pins the project root to a
|
|
108
108
|
// specific directory. Applied at the bin boundary so library code stays
|
|
109
|
-
// pure
|
|
109
|
+
// pure — no library function reads this variable.
|
|
110
110
|
const testRoot = process.env['VAT_TEST_ROOT'];
|
|
111
111
|
const cwd = testRoot ? safePath.resolve(testRoot) : process.cwd();
|
|
112
112
|
const args = process.argv.slice(2);
|
package/dist/bin/vat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vat.js","sourceRoot":"","sources":["../../src/bin/vat.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"vat.js","sourceRoot":"","sources":["../../src/bin/vat.ts"],"names":[],"mappings":"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"}
|
package/dist/bin.js
CHANGED
|
@@ -19,7 +19,7 @@ import { createSkillCommand } from './commands/skill/index.js';
|
|
|
19
19
|
import { createSkillsCommand } from './commands/skills/index.js';
|
|
20
20
|
import { createValidateTopLevelCommand } from './commands/validate.js';
|
|
21
21
|
import { createVerifyTopLevelCommand } from './commands/verify.js';
|
|
22
|
-
import { loadVerboseHelp } from './utils/help-loader.js';
|
|
22
|
+
import { loadVerboseHelp, writeHelpSync } from './utils/help-loader.js';
|
|
23
23
|
import { createLogger } from './utils/logger.js';
|
|
24
24
|
import { version, getVersionString } from './version.js';
|
|
25
25
|
const program = new Command();
|
|
@@ -134,8 +134,6 @@ program.on('command:*', (operands) => {
|
|
|
134
134
|
});
|
|
135
135
|
program.parse();
|
|
136
136
|
function showVerboseHelp() {
|
|
137
|
-
|
|
138
|
-
process.stdout.write(helpContent);
|
|
139
|
-
process.stdout.write('\n');
|
|
137
|
+
writeHelpSync(loadVerboseHelp()); // Loads from docs/cli/index.md
|
|
140
138
|
}
|
|
141
139
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAgB,oBAAoB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Verbose help for agent commands
|
|
3
3
|
*/
|
|
4
|
-
import { loadVerboseHelp } from '../../utils/help-loader.js';
|
|
4
|
+
import { loadVerboseHelp, writeHelpSync } from '../../utils/help-loader.js';
|
|
5
5
|
export function showAgentVerboseHelp() {
|
|
6
|
-
|
|
7
|
-
process.stdout.write(helpContent);
|
|
8
|
-
process.stdout.write('\n');
|
|
6
|
+
writeHelpSync(loadVerboseHelp('agent')); // Loads from docs/agent.md
|
|
9
7
|
}
|
|
10
8
|
//# sourceMappingURL=help.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/commands/agent/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/commands/agent/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE5E,MAAM,UAAU,oBAAoB;IAClC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,2BAA2B;AACtE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ValidationIssue } from '@vibe-agent-toolkit/agent-schema';
|
|
2
2
|
import type { ValidationResult } from '@vibe-agent-toolkit/agent-skills';
|
|
3
3
|
export interface HierarchicalOutput {
|
|
4
4
|
marketplaces: MarketplaceGroup[];
|
|
@@ -17,6 +17,7 @@ export interface PluginGroup {
|
|
|
17
17
|
export type CacheStatus = 'stale' | 'orphaned' | 'fresh';
|
|
18
18
|
export interface SkillEntry {
|
|
19
19
|
name: string;
|
|
20
|
+
/** Path relative to the run root stated once at the top of the report. */
|
|
20
21
|
path: string;
|
|
21
22
|
status: 'success' | 'warning' | 'error';
|
|
22
23
|
issues: ValidationIssue[];
|
|
@@ -36,7 +37,10 @@ export interface SkillEntry {
|
|
|
36
37
|
*
|
|
37
38
|
* @param results - Validation results from audit command
|
|
38
39
|
* @param verbose - If true, include all results; if false, only show results with issues
|
|
40
|
+
* @param locationRoot - The run's single stated root. Every emitted `path` and
|
|
41
|
+
* issue `location` is expressed relative to it, so one report never mixes
|
|
42
|
+
* coordinate systems across the three `--user` scan directories.
|
|
39
43
|
* @returns Hierarchical structure for display
|
|
40
44
|
*/
|
|
41
|
-
export declare function buildHierarchicalOutput(results: ValidationResult[], verbose
|
|
45
|
+
export declare function buildHierarchicalOutput(results: ValidationResult[], verbose: boolean, locationRoot: string): HierarchicalOutput;
|
|
42
46
|
//# sourceMappingURL=hierarchical-output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchical-output.d.ts","sourceRoot":"","sources":["../../../src/commands/audit/hierarchical-output.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"hierarchical-output.d.ts","sourceRoot":"","sources":["../../../src/commands/audit/hierarchical-output.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,gBAAgB,EAAE,UAAU,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACxC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAqaD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,EAAE,EAC3B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,GACnB,kBAAkB,CAyCpB"}
|
|
@@ -1,46 +1,71 @@
|
|
|
1
1
|
import * as os from 'node:os';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const homeDir = os.homedir();
|
|
9
|
-
// Normalize both paths to forward slashes for comparison
|
|
10
|
-
const normalizedFilePath = toForwardSlash(filePath);
|
|
11
|
-
const normalizedHomeDir = toForwardSlash(homeDir);
|
|
12
|
-
if (normalizedFilePath.startsWith(normalizedHomeDir)) {
|
|
13
|
-
// Replace using original paths to preserve platform separators in output
|
|
14
|
-
return filePath.replace(homeDir, '~');
|
|
2
|
+
import { calculateValidationStatus, countBySeverity, } from '@vibe-agent-toolkit/agent-schema';
|
|
3
|
+
import { issueLocation, toForwardSlash } from '@vibe-agent-toolkit/utils';
|
|
4
|
+
/** Build {@link ParsedSkillPath.identity} from the parsed segments. */
|
|
5
|
+
function skillIdentity(parts, marketplace, plugin, skill) {
|
|
6
|
+
if (plugin === undefined) {
|
|
7
|
+
return parts.slice(0, -1).join('/');
|
|
15
8
|
}
|
|
16
|
-
return
|
|
9
|
+
return `${marketplace ?? ''}/${plugin}/${skill}`;
|
|
10
|
+
}
|
|
11
|
+
function parsed(parts, skill, isCached, marketplace, plugin) {
|
|
12
|
+
const out = {
|
|
13
|
+
skill,
|
|
14
|
+
isCached,
|
|
15
|
+
identity: skillIdentity(parts, marketplace, plugin, skill),
|
|
16
|
+
};
|
|
17
|
+
if (marketplace !== undefined)
|
|
18
|
+
out.marketplace = marketplace;
|
|
19
|
+
if (plugin !== undefined)
|
|
20
|
+
out.plugin = plugin;
|
|
21
|
+
return out;
|
|
17
22
|
}
|
|
18
23
|
/**
|
|
19
24
|
* Parse path structure to extract marketplace, plugin, and skill names
|
|
20
25
|
*
|
|
21
26
|
* Expected patterns:
|
|
22
|
-
* -
|
|
27
|
+
* - Cached plugin skill: .../plugins/cache/{marketplace}/{plugin}/{version}/skills/{skill}/SKILL.md
|
|
28
|
+
* - Marketplace plugin skill: .../marketplaces/{marketplace}/[plugins/]{plugin}/skills/{skill}/SKILL.md
|
|
23
29
|
* - Standalone plugin skill (in plugins dir): .../plugins/{plugin}/skills/{skill}/SKILL.md (no marketplaces/)
|
|
24
30
|
* - Skill-claude-plugin: .../plugins/{skill}/SKILL.md (root SKILL.md + .claude-plugin/plugin.json, no skills/ subdir)
|
|
25
31
|
* - Standalone skill (in skills dir): ~/.claude/skills/{skill}/SKILL.md
|
|
32
|
+
*
|
|
33
|
+
* The plugin is read as the segment immediately BEFORE `skills/`, not as a fixed
|
|
34
|
+
* offset from `marketplaces/`. Claude Code's installed layout carries an extra
|
|
35
|
+
* `plugins/` segment between the marketplace and the plugin
|
|
36
|
+
* (`marketplaces/{marketplace}/plugins/{plugin}/skills/...`), so the fixed offset
|
|
37
|
+
* named every group `plugins`; the offset only looked right against fixtures that
|
|
38
|
+
* omitted that segment.
|
|
26
39
|
*/
|
|
27
40
|
function parsePathStructure(filePath) {
|
|
28
41
|
// Normalize to forward slashes for cross-platform parsing
|
|
29
42
|
const normalizedPath = toForwardSlash(filePath);
|
|
30
43
|
const parts = normalizedPath.split('/');
|
|
31
44
|
// Detect if this is a cached resource
|
|
32
|
-
const
|
|
45
|
+
const cacheIdx = parts.indexOf('cache');
|
|
46
|
+
const isCached = cacheIdx >= 0;
|
|
33
47
|
// Find key indices
|
|
34
48
|
const marketplacesIdx = parts.indexOf('marketplaces');
|
|
35
49
|
const pluginsIdx = parts.indexOf('plugins');
|
|
36
50
|
const skillsIdx = parts.indexOf('skills');
|
|
37
|
-
//
|
|
38
|
-
|
|
51
|
+
// Cached plugin skill: .../cache/{marketplace}/{plugin}/{version}/skills/{skill}/SKILL.md
|
|
52
|
+
// The marketplace and plugin are named here, which is what lets a cached copy
|
|
53
|
+
// be matched against its own source rather than a same-named stranger.
|
|
54
|
+
if (isCached && skillsIdx > cacheIdx) {
|
|
55
|
+
const marketplace = parts[cacheIdx + 1];
|
|
56
|
+
const plugin = parts[cacheIdx + 2];
|
|
57
|
+
const skill = parts[skillsIdx + 1];
|
|
58
|
+
if (marketplace !== undefined && plugin !== undefined && skill !== undefined) {
|
|
59
|
+
return parsed(parts, skill, isCached, marketplace, plugin);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Marketplace plugin skill: .../marketplaces/{marketplace}/[plugins/]{plugin}/skills/{skill}/SKILL.md
|
|
63
|
+
if (marketplacesIdx >= 0 && skillsIdx > marketplacesIdx) {
|
|
39
64
|
const marketplace = parts[marketplacesIdx + 1];
|
|
40
|
-
const plugin = parts[
|
|
65
|
+
const plugin = parts[skillsIdx - 1];
|
|
41
66
|
const skill = parts[skillsIdx + 1];
|
|
42
67
|
if (marketplace !== undefined && plugin !== undefined && skill !== undefined) {
|
|
43
|
-
return
|
|
68
|
+
return parsed(parts, skill, isCached, marketplace, plugin);
|
|
44
69
|
}
|
|
45
70
|
}
|
|
46
71
|
// Plugin-related patterns (requires /plugins/ in path)
|
|
@@ -52,12 +77,12 @@ function parsePathStructure(filePath) {
|
|
|
52
77
|
if (skillsIdx >= 0) {
|
|
53
78
|
const skill = parts[skillsIdx + 1];
|
|
54
79
|
if (skill !== undefined) {
|
|
55
|
-
return
|
|
80
|
+
return parsed(parts, skill, isCached);
|
|
56
81
|
}
|
|
57
82
|
}
|
|
58
83
|
// Fallback: use directory name before SKILL.md
|
|
59
84
|
const skill = parts.at(-2) ?? 'unknown';
|
|
60
|
-
return
|
|
85
|
+
return parsed(parts, skill, isCached);
|
|
61
86
|
}
|
|
62
87
|
/**
|
|
63
88
|
* Parse plugin-related paths
|
|
@@ -69,16 +94,16 @@ function parsePluginPath(parts, pluginsIdx, skillsIdx, isCached) {
|
|
|
69
94
|
const plugin = parts[skillsIdx - 1]; // Plugin name is before /skills/
|
|
70
95
|
const skill = parts[skillsIdx + 1];
|
|
71
96
|
if (plugin !== undefined && skill !== undefined) {
|
|
72
|
-
return
|
|
97
|
+
return parsed(parts, skill, isCached, undefined, plugin);
|
|
73
98
|
}
|
|
74
99
|
}
|
|
75
100
|
// Skill-claude-plugin: .../plugins/{skill}/SKILL.md (root SKILL.md + .claude-plugin/plugin.json, no /skills/ subdir)
|
|
76
101
|
const skill = parts[pluginsIdx + 1];
|
|
77
102
|
if (skill !== undefined) {
|
|
78
|
-
return
|
|
103
|
+
return parsed(parts, skill, isCached);
|
|
79
104
|
}
|
|
80
105
|
// Fallback
|
|
81
|
-
return
|
|
106
|
+
return parsed(parts, 'unknown', isCached);
|
|
82
107
|
}
|
|
83
108
|
/**
|
|
84
109
|
* Add skill entry to marketplace map
|
|
@@ -129,27 +154,28 @@ function addToStandalonePluginMap(standalonePluginsMap, plugin, entry) {
|
|
|
129
154
|
* @returns Filtered results and cache status map
|
|
130
155
|
*/
|
|
131
156
|
function filterCacheDuplicates(results) {
|
|
132
|
-
const
|
|
157
|
+
const sourceByIdentity = new Map();
|
|
133
158
|
const cacheResults = [];
|
|
134
159
|
const nonCacheResults = [];
|
|
135
160
|
const cacheStatusMap = new Map();
|
|
136
161
|
// First pass: categorize results and build source index
|
|
137
162
|
for (const result of results) {
|
|
138
|
-
const {
|
|
163
|
+
const { identity, isCached } = parsePathStructure(result.path);
|
|
139
164
|
if (isCached) {
|
|
140
165
|
cacheResults.push(result);
|
|
141
166
|
}
|
|
142
167
|
else {
|
|
143
168
|
nonCacheResults.push(result);
|
|
144
|
-
// Index source results by skill
|
|
145
|
-
|
|
169
|
+
// Index source results by marketplace/plugin/skill identity — see
|
|
170
|
+
// ParsedSkillPath.identity for why the bare skill name cannot be the key.
|
|
171
|
+
sourceByIdentity.set(identity, result);
|
|
146
172
|
}
|
|
147
173
|
}
|
|
148
174
|
// Second pass: filter cache results and track status
|
|
149
175
|
const filteredCache = [];
|
|
150
176
|
for (const cacheResult of cacheResults) {
|
|
151
|
-
const {
|
|
152
|
-
const sourceResult =
|
|
177
|
+
const { identity } = parsePathStructure(cacheResult.path);
|
|
178
|
+
const sourceResult = sourceByIdentity.get(identity);
|
|
153
179
|
if (!sourceResult) {
|
|
154
180
|
// Orphaned cache - no matching source, keep it
|
|
155
181
|
filteredCache.push(cacheResult);
|
|
@@ -180,11 +206,11 @@ function filterCacheDuplicates(results) {
|
|
|
180
206
|
/**
|
|
181
207
|
* Create skill entry from validation result
|
|
182
208
|
*/
|
|
183
|
-
function createSkillEntry(result, cacheStatusMap) {
|
|
209
|
+
function createSkillEntry(result, cacheStatusMap, locationRoot) {
|
|
184
210
|
const { skill, isCached } = parsePathStructure(result.path);
|
|
185
211
|
const entry = {
|
|
186
212
|
name: skill,
|
|
187
|
-
path:
|
|
213
|
+
path: issueLocation(result.path, locationRoot),
|
|
188
214
|
status: result.status,
|
|
189
215
|
issues: result.issues,
|
|
190
216
|
};
|
|
@@ -200,16 +226,20 @@ function createSkillEntry(result, cacheStatusMap) {
|
|
|
200
226
|
/**
|
|
201
227
|
* Categorize entry into appropriate map
|
|
202
228
|
*/
|
|
203
|
-
function categorizeEntry(entry,
|
|
204
|
-
|
|
229
|
+
function categorizeEntry(entry, location, maps) {
|
|
230
|
+
const { marketplace, plugin, isCached } = location;
|
|
231
|
+
// Cached first: a cached path now names its marketplace too (that is what makes
|
|
232
|
+
// cache/source matching correct), so testing `marketplace` first would fold the
|
|
233
|
+
// whole cache into the marketplace tree and empty the `cachedPlugins` section.
|
|
234
|
+
if (isCached && plugin !== undefined) {
|
|
235
|
+
addToCachedPluginMap(maps.cachedPluginsMap, plugin, entry);
|
|
236
|
+
}
|
|
237
|
+
else if (marketplace !== undefined && plugin !== undefined) {
|
|
205
238
|
addToMarketplaceMap(maps.marketplacesMap, marketplace, plugin, entry);
|
|
206
239
|
}
|
|
207
240
|
else if (plugin === undefined) {
|
|
208
241
|
maps.standaloneSkills.push(entry);
|
|
209
242
|
}
|
|
210
|
-
else if (isCached) {
|
|
211
|
-
addToCachedPluginMap(maps.cachedPluginsMap, plugin, entry);
|
|
212
|
-
}
|
|
213
243
|
else {
|
|
214
244
|
addToStandalonePluginMap(maps.standalonePluginsMap, plugin, entry);
|
|
215
245
|
}
|
|
@@ -246,9 +276,10 @@ function convertPluginMapToArray(pluginMap) {
|
|
|
246
276
|
* configured as plugins with .claude-plugin/plugin.json.
|
|
247
277
|
*
|
|
248
278
|
* @param results - Validation results to check
|
|
279
|
+
* @param locationRoot - Run root the emitted `location` is expressed relative to
|
|
249
280
|
* @returns Results with misconfiguration issues added
|
|
250
281
|
*/
|
|
251
|
-
function addMisconfigurationIssues(results) {
|
|
282
|
+
function addMisconfigurationIssues(results, locationRoot) {
|
|
252
283
|
const homeDir = toForwardSlash(os.homedir());
|
|
253
284
|
const pluginsPath = `${homeDir}/.claude/plugins/`;
|
|
254
285
|
return results.map((result) => {
|
|
@@ -267,14 +298,18 @@ function addMisconfigurationIssues(results) {
|
|
|
267
298
|
severity: 'error',
|
|
268
299
|
code: 'SKILL_MISCONFIGURED_LOCATION',
|
|
269
300
|
message: 'Standalone skill in plugins directory won\'t be recognized by Claude Code',
|
|
270
|
-
location: result.path,
|
|
301
|
+
location: issueLocation(result.path, locationRoot),
|
|
271
302
|
fix: 'Move to ~/.claude/skills/ for standalone skills, or add .claude-plugin/plugin.json for a proper plugin',
|
|
272
303
|
};
|
|
273
|
-
// Clone result and add issue
|
|
304
|
+
// Clone result and add issue. The status and the counts are DERIVED from the
|
|
305
|
+
// new issue list by the one shared collapse — never hand-set — so they cannot
|
|
306
|
+
// drift from the findings they describe.
|
|
307
|
+
const issues = [...result.issues, misconfigIssue];
|
|
274
308
|
return {
|
|
275
309
|
...result,
|
|
276
|
-
status:
|
|
277
|
-
|
|
310
|
+
status: calculateValidationStatus(issues),
|
|
311
|
+
issueCounts: countBySeverity(issues),
|
|
312
|
+
issues,
|
|
278
313
|
};
|
|
279
314
|
});
|
|
280
315
|
}
|
|
@@ -292,13 +327,16 @@ function addMisconfigurationIssues(results) {
|
|
|
292
327
|
*
|
|
293
328
|
* @param results - Validation results from audit command
|
|
294
329
|
* @param verbose - If true, include all results; if false, only show results with issues
|
|
330
|
+
* @param locationRoot - The run's single stated root. Every emitted `path` and
|
|
331
|
+
* issue `location` is expressed relative to it, so one report never mixes
|
|
332
|
+
* coordinate systems across the three `--user` scan directories.
|
|
295
333
|
* @returns Hierarchical structure for display
|
|
296
334
|
*/
|
|
297
|
-
export function buildHierarchicalOutput(results, verbose
|
|
335
|
+
export function buildHierarchicalOutput(results, verbose, locationRoot) {
|
|
298
336
|
// Filter out cache duplicates that match their source
|
|
299
337
|
const { filtered: filteredResults, cacheStatusMap } = filterCacheDuplicates(results);
|
|
300
338
|
// Add misconfiguration detection to results BEFORE verbose filtering
|
|
301
|
-
const resultsWithMisconfigDetection = addMisconfigurationIssues(filteredResults);
|
|
339
|
+
const resultsWithMisconfigDetection = addMisconfigurationIssues(filteredResults, locationRoot);
|
|
302
340
|
const marketplacesMap = new Map();
|
|
303
341
|
const cachedPluginsMap = new Map();
|
|
304
342
|
const standalonePluginsMap = new Map();
|
|
@@ -310,13 +348,18 @@ export function buildHierarchicalOutput(results, verbose = false) {
|
|
|
310
348
|
standaloneSkills,
|
|
311
349
|
};
|
|
312
350
|
for (const result of resultsWithMisconfigDetection) {
|
|
313
|
-
// Only include results with issues (terse principle), unless verbose mode
|
|
314
|
-
|
|
351
|
+
// Only include results with issues (terse principle), unless verbose mode.
|
|
352
|
+
//
|
|
353
|
+
// Keyed on the ISSUE COUNT, never on the status. A status names the worst
|
|
354
|
+
// ACTIONABLE severity, so an info-only result is `success` — keying this on
|
|
355
|
+
// `status === 'success'` deleted every info-only skill from the report while
|
|
356
|
+
// the summary went on counting its findings (a real `--user` scan hid 167
|
|
357
|
+
// info findings across 128 skills that way).
|
|
358
|
+
if (!verbose && result.issues.length === 0) {
|
|
315
359
|
continue;
|
|
316
360
|
}
|
|
317
|
-
const
|
|
318
|
-
|
|
319
|
-
categorizeEntry(entry, marketplace, plugin, isCached, maps);
|
|
361
|
+
const entry = createSkillEntry(result, cacheStatusMap, locationRoot);
|
|
362
|
+
categorizeEntry(entry, parsePathStructure(result.path), maps);
|
|
320
363
|
}
|
|
321
364
|
return {
|
|
322
365
|
marketplaces: convertMarketplacesMapToArray(marketplacesMap),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchical-output.js","sourceRoot":"","sources":["../../../src/commands/audit/hierarchical-output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"hierarchical-output.js","sourceRoot":"","sources":["../../../src/commands/audit/hierarchical-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Shows effective merged Claude settings with provenance, or validates a specific file.
|
|
5
5
|
*/
|
|
6
|
+
import { type ProvenanceValue, type RuleConflict, type SettingsFinding, type SettingsPathEntry } from '@vibe-agent-toolkit/claude-marketplace';
|
|
6
7
|
import { Command } from 'commander';
|
|
7
8
|
export interface AuditSettingsOptions {
|
|
8
9
|
showPaths?: boolean;
|
|
@@ -10,6 +11,40 @@ export interface AuditSettingsOptions {
|
|
|
10
11
|
type?: 'managed' | 'user' | 'project';
|
|
11
12
|
debug?: boolean;
|
|
12
13
|
}
|
|
14
|
+
/** A formatted provenance value; `overrode` recurses down the whole chain. */
|
|
15
|
+
export interface FormattedProvenanceValue {
|
|
16
|
+
value: unknown;
|
|
17
|
+
source: string;
|
|
18
|
+
level: string;
|
|
19
|
+
locked?: boolean;
|
|
20
|
+
overrode?: FormattedProvenanceValue;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Format an EffectiveSettings value for YAML output, INCLUDING what it overrode.
|
|
24
|
+
*
|
|
25
|
+
* The chain is the point: "what is in effect, and what did it replace?" is the
|
|
26
|
+
* question a settings-override audit exists to answer. Emitting only the winning
|
|
27
|
+
* layer made a project override look like the only value ever declared — the
|
|
28
|
+
* merger builds the linked list and this formatter used to throw it away.
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatProvenanceValue(pv: ProvenanceValue<unknown>): FormattedProvenanceValue;
|
|
31
|
+
/**
|
|
32
|
+
* Format a resolved settings path for YAML output.
|
|
33
|
+
*
|
|
34
|
+
* `exists`/`readable` are passed through verbatim, including the
|
|
35
|
+
* `'undetermined'` value — a probe that could not run must not be rendered as a
|
|
36
|
+
* confident `false`.
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatSettingsPathEntry(p: SettingsPathEntry): Record<string, unknown>;
|
|
39
|
+
/**
|
|
40
|
+
* The findings an effective-settings audit produced.
|
|
41
|
+
*
|
|
42
|
+
* A shadowed rule and a marketplace that cannot authenticate are things the
|
|
43
|
+
* reader must act on, so they are warnings — the run used to publish
|
|
44
|
+
* `status: 'success'` with the conflicts listed underneath it, which is the
|
|
45
|
+
* "warnings read as passed" collapse this command is being fixed for.
|
|
46
|
+
*/
|
|
47
|
+
export declare function settingsAuditFindings(conflicts: readonly RuleConflict[], marketplaceWarnings: readonly string[]): SettingsFinding[];
|
|
13
48
|
export declare function runAuditSettings(options: AuditSettingsOptions): Promise<void>;
|
|
14
49
|
/**
|
|
15
50
|
* Create the `vat audit settings` subcommand.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-settings.d.ts","sourceRoot":"","sources":["../../src/commands/audit-settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"audit-settings.d.ts","sourceRoot":"","sources":["../../src/commands/audit-settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAQL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,wBAAwB,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,GAC3B,wBAAwB,CAQ1B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYrF;AA6LD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,YAAY,EAAE,EAClC,mBAAmB,EAAE,SAAS,MAAM,EAAE,GACrC,eAAe,EAAE,CAcnB;AA8DD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CA8DpD"}
|