@vibe-agent-toolkit/cli 0.1.15 → 0.1.16-rc.2
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/dist/commands/claude/build.d.ts +4 -4
- package/dist/commands/claude/build.d.ts.map +1 -1
- package/dist/commands/claude/build.js +87 -122
- package/dist/commands/claude/build.js.map +1 -1
- package/dist/commands/claude/verify.d.ts +9 -3
- package/dist/commands/claude/verify.d.ts.map +1 -1
- package/dist/commands/claude/verify.js +60 -52
- package/dist/commands/claude/verify.js.map +1 -1
- package/dist/commands/skills/build.d.ts +4 -1
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +120 -101
- package/dist/commands/skills/build.js.map +1 -1
- package/dist/commands/skills/command-helpers.d.ts +12 -4
- package/dist/commands/skills/command-helpers.d.ts.map +1 -1
- package/dist/commands/skills/command-helpers.js +4 -4
- package/dist/commands/skills/command-helpers.js.map +1 -1
- package/dist/commands/skills/install-helpers.d.ts +2 -3
- package/dist/commands/skills/install-helpers.d.ts.map +1 -1
- package/dist/commands/skills/install-helpers.js.map +1 -1
- package/dist/commands/skills/install.d.ts +6 -1
- package/dist/commands/skills/install.d.ts.map +1 -1
- package/dist/commands/skills/install.js +182 -187
- package/dist/commands/skills/install.js.map +1 -1
- package/dist/commands/skills/shared.d.ts +10 -4
- package/dist/commands/skills/shared.d.ts.map +1 -1
- package/dist/commands/skills/shared.js +11 -9
- package/dist/commands/skills/shared.js.map +1 -1
- package/dist/commands/skills/skill-discovery.d.ts +20 -0
- package/dist/commands/skills/skill-discovery.d.ts.map +1 -0
- package/dist/commands/skills/skill-discovery.js +71 -0
- package/dist/commands/skills/skill-discovery.js.map +1 -0
- package/dist/commands/skills/uninstall.js +1 -1
- package/dist/commands/skills/uninstall.js.map +1 -1
- package/dist/commands/skills/validate-command.js +2 -2
- package/dist/commands/skills/validate-command.js.map +1 -1
- package/dist/commands/skills/validate.d.ts +2 -2
- package/dist/commands/skills/validate.d.ts.map +1 -1
- package/dist/commands/skills/validate.js +48 -66
- package/dist/commands/skills/validate.js.map +1 -1
- package/package.json +11 -11
|
@@ -1,69 +1,70 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build skills from source into dist/skills/ during package build
|
|
3
3
|
*
|
|
4
|
-
* Reads
|
|
4
|
+
* Reads skills config from vibe-agent-toolkit.config.yaml, discovers SKILL.md
|
|
5
|
+
* files via include/exclude globs, reads frontmatter for skill names, merges
|
|
6
|
+
* packaging config (schema defaults -> config defaults -> per-skill overrides),
|
|
7
|
+
* validates, and packages into dist/skills/<name>/.
|
|
5
8
|
*/
|
|
6
9
|
import { dirname, resolve } from 'node:path';
|
|
7
10
|
import { packageSkills, validateSkillForPackaging, } from '@vibe-agent-toolkit/agent-skills';
|
|
8
|
-
import { findProjectRoot } from '@vibe-agent-toolkit/utils';
|
|
9
11
|
import { Command } from 'commander';
|
|
10
12
|
import { handleCommandError } from '../../utils/command-error.js';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
+
import { loadConfig } from '../../utils/config-loader.js';
|
|
14
|
+
import { filterSkillsByName, setupCommandContext, writeYamlHeader, } from './command-helpers.js';
|
|
15
|
+
import { discoverSkillsFromConfig } from './skill-discovery.js';
|
|
16
|
+
/**
|
|
17
|
+
* Sanitize skill names with colon namespaces for filesystem paths.
|
|
18
|
+
*
|
|
19
|
+
* Skill names use colon-namespacing (e.g. "vibe-agent-toolkit:resources") which is
|
|
20
|
+
* valid in YAML/JSON but invalid as a directory name on Windows. Replace colons with
|
|
21
|
+
* double-underscore -- unambiguous, reversible, and safe on all platforms.
|
|
22
|
+
*/
|
|
23
|
+
function skillNameToFsPath(name) {
|
|
24
|
+
return name.replaceAll(':', '__');
|
|
25
|
+
}
|
|
13
26
|
export function createBuildCommand() {
|
|
14
27
|
const command = new Command('build');
|
|
15
28
|
command
|
|
16
|
-
.description('Build skills from
|
|
17
|
-
.argument('[path]', 'Path to directory
|
|
29
|
+
.description('Build skills from config yaml (discovers SKILL.md files via globs)')
|
|
30
|
+
.argument('[path]', 'Path to project directory (default: current directory)')
|
|
18
31
|
.option('--skill <name>', 'Build specific skill only')
|
|
19
32
|
.option('--dry-run', 'Preview build without creating files')
|
|
20
33
|
.option('--debug', 'Enable debug logging')
|
|
21
34
|
.action(buildCommand)
|
|
22
35
|
.addHelpText('after', `
|
|
23
36
|
Description:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
any active validation errors exist (after applying overrides).
|
|
37
|
+
Discovers SKILL.md files using include/exclude globs from the skills
|
|
38
|
+
section of vibe-agent-toolkit.config.yaml. Reads each SKILL.md's
|
|
39
|
+
frontmatter to extract the skill name, merges packaging config
|
|
40
|
+
(schema defaults -> config yaml defaults -> per-skill overrides),
|
|
41
|
+
validates, and packages into dist/skills/<name>/.
|
|
30
42
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
]
|
|
45
|
-
}
|
|
46
|
-
}
|
|
43
|
+
Config Structure (vibe-agent-toolkit.config.yaml):
|
|
44
|
+
version: 1
|
|
45
|
+
skills:
|
|
46
|
+
include: ["resources/skills/**/SKILL.md"]
|
|
47
|
+
exclude: ["resources/skills/draft/**"]
|
|
48
|
+
defaults:
|
|
49
|
+
linkFollowDepth: 2
|
|
50
|
+
resourceNaming: basename
|
|
51
|
+
config:
|
|
52
|
+
my-skill:
|
|
53
|
+
linkFollowDepth: full
|
|
54
|
+
ignoreValidationErrors:
|
|
55
|
+
NAV_FILE_INCLUDED: "Navigation files needed for this skill"
|
|
47
56
|
|
|
48
57
|
Output:
|
|
49
|
-
YAML summary
|
|
50
|
-
Build progress
|
|
58
|
+
YAML summary -> stdout (for programmatic parsing)
|
|
59
|
+
Build progress -> stderr (for human reading)
|
|
51
60
|
|
|
52
61
|
Exit Codes:
|
|
53
62
|
0 - Build successful (or dry-run preview)
|
|
54
63
|
1 - Validation error or build error
|
|
55
|
-
2 - System error (missing
|
|
56
|
-
|
|
57
|
-
Validation:
|
|
58
|
-
Skills are validated before packaging using validateSkillForPackaging().
|
|
59
|
-
Validation checks size, complexity, link depth, and navigation patterns.
|
|
60
|
-
Supports overrides via ignoreValidationErrors in skill metadata.
|
|
61
|
-
Build fails if active errors exist (after applying valid overrides).
|
|
64
|
+
2 - System error (missing config, invalid config)
|
|
62
65
|
|
|
63
|
-
|
|
64
|
-
$ vat skills build # Build all skills
|
|
65
|
-
$ vat skills build --skill my-skill # Build specific skill
|
|
66
|
-
$ vat skills build --dry-run # Preview without building
|
|
66
|
+
Example:
|
|
67
|
+
$ vat skills build # Build all skills from config
|
|
67
68
|
`);
|
|
68
69
|
return command;
|
|
69
70
|
}
|
|
@@ -107,22 +108,44 @@ function displayIgnoredErrors(validationResult, logger) {
|
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Merge packaging config: schema defaults -> config yaml defaults -> per-skill overrides.
|
|
113
|
+
*
|
|
114
|
+
* Uses shallow merge (spread) since all SkillPackagingConfig fields are top-level.
|
|
115
|
+
* The ignoreValidationErrors and excludeReferencesFromBundle fields are objects,
|
|
116
|
+
* but per-skill overrides should fully replace (not deep-merge) the defaults for those fields.
|
|
117
|
+
*/
|
|
118
|
+
function mergePackagingConfig(defaults, perSkill) {
|
|
119
|
+
const merged = {
|
|
120
|
+
...defaults,
|
|
121
|
+
...perSkill,
|
|
122
|
+
};
|
|
123
|
+
// Strip undefined values to satisfy exactOptionalPropertyTypes.
|
|
124
|
+
// Spread of optional Zod-inferred types can produce explicit `undefined` values
|
|
125
|
+
// which are not assignable to optional-but-not-undefined properties.
|
|
126
|
+
const result = {};
|
|
127
|
+
for (const [key, value] of Object.entries(merged)) {
|
|
128
|
+
if (value !== undefined) {
|
|
129
|
+
result[key] = value;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
110
134
|
/**
|
|
111
135
|
* Validate skill before building
|
|
112
136
|
*/
|
|
113
|
-
async function validateSkillOrExit(
|
|
114
|
-
logger.debug(` Validating skill: ${
|
|
115
|
-
const validationResult = await validateSkillForPackaging(sourcePath,
|
|
137
|
+
async function validateSkillOrExit(skillName, sourcePath, packagingConfig, logger) {
|
|
138
|
+
logger.debug(` Validating skill: ${skillName}`);
|
|
139
|
+
const validationResult = await validateSkillForPackaging(sourcePath, packagingConfig);
|
|
116
140
|
const hasActiveErrors = validationResult.activeErrors.length > 0 || validationResult.expiredOverrides.length > 0;
|
|
117
141
|
if (!hasActiveErrors) {
|
|
118
|
-
// Validation passed - log ignored errors if any
|
|
119
142
|
if (validationResult.ignoredErrors.length > 0) {
|
|
120
|
-
logger.debug(`
|
|
143
|
+
logger.debug(` ${validationResult.ignoredErrors.length} error(s) ignored by overrides`);
|
|
121
144
|
}
|
|
122
145
|
return;
|
|
123
146
|
}
|
|
124
147
|
// Validation failed - display all errors and exit
|
|
125
|
-
logger.error(`\
|
|
148
|
+
logger.error(`\nSkill validation failed: ${skillName}`);
|
|
126
149
|
logger.error(` Source: ${sourcePath}`);
|
|
127
150
|
displayActiveErrors(validationResult, logger);
|
|
128
151
|
displayExpiredOverrides(validationResult, logger);
|
|
@@ -133,57 +156,47 @@ async function validateSkillOrExit(skill, sourcePath, logger) {
|
|
|
133
156
|
/**
|
|
134
157
|
* Output dry-run results
|
|
135
158
|
*/
|
|
136
|
-
function outputDryRunYaml(skills,
|
|
159
|
+
function outputDryRunYaml(skills, duration) {
|
|
137
160
|
writeYamlHeader({
|
|
138
161
|
status: 'success',
|
|
139
162
|
dryRun: true,
|
|
140
|
-
package: packageName,
|
|
141
163
|
skillsFound: skills.length,
|
|
142
164
|
});
|
|
143
165
|
process.stdout.write(`skills:\n`);
|
|
144
166
|
for (const skill of skills) {
|
|
145
167
|
process.stdout.write(` - name: ${skill.name}\n`);
|
|
146
|
-
process.stdout.write(` source: ${skill.
|
|
147
|
-
process.stdout.write(`
|
|
168
|
+
process.stdout.write(` source: ${skill.sourcePath}\n`);
|
|
169
|
+
process.stdout.write(` output: dist/skills/${skillNameToFsPath(skill.name)}\n`);
|
|
148
170
|
}
|
|
149
171
|
process.stdout.write(`duration: ${duration}ms\n`);
|
|
150
172
|
}
|
|
151
173
|
/**
|
|
152
174
|
* Perform dry-run preview
|
|
153
175
|
*/
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const cwd = process.cwd();
|
|
157
|
-
logger.info(`🔍 Dry-run: Analyzing skill build...`);
|
|
158
|
-
logger.info(` Package: ${packageName}`);
|
|
176
|
+
function performDryRun(skillsToBuild, duration, logger) {
|
|
177
|
+
logger.info(`Dry-run: Analyzing skill build...`);
|
|
159
178
|
logger.info(` Skills to build: ${skillsToBuild.length}`);
|
|
160
|
-
|
|
161
|
-
logger.info(`\n📋 Skills:`);
|
|
179
|
+
logger.info(`\nSkills:`);
|
|
162
180
|
for (const skill of skillsToBuild) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
logger.info(`
|
|
166
|
-
logger.info(` Source: ${skill.source} (exists)`);
|
|
167
|
-
logger.info(` Output: ${skill.path}`);
|
|
181
|
+
logger.info(` ${skill.name}`);
|
|
182
|
+
logger.info(` Source: ${skill.sourcePath}`);
|
|
183
|
+
logger.info(` Output: dist/skills/${skillNameToFsPath(skill.name)}`);
|
|
168
184
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
outputDryRunYaml(skillsToBuild, packageName, duration);
|
|
172
|
-
logger.info(`\n✅ Dry-run complete (no files created)`);
|
|
185
|
+
outputDryRunYaml(skillsToBuild, duration);
|
|
186
|
+
logger.info(`\nDry-run complete (no files created)`);
|
|
173
187
|
logger.info(` Run without --dry-run to build the skills`);
|
|
174
188
|
}
|
|
175
189
|
/**
|
|
176
190
|
* Output build results
|
|
177
191
|
*/
|
|
178
|
-
function outputBuildYaml(results,
|
|
192
|
+
function outputBuildYaml(results, duration) {
|
|
179
193
|
writeYamlHeader({
|
|
180
194
|
status: 'success',
|
|
181
|
-
package: packageName,
|
|
182
195
|
skillsBuilt: results.length,
|
|
183
196
|
});
|
|
184
197
|
process.stdout.write(`skills:\n`);
|
|
185
|
-
for (const {
|
|
186
|
-
process.stdout.write(` - name: ${
|
|
198
|
+
for (const { name, result } of results) {
|
|
199
|
+
process.stdout.write(` - name: ${name}\n`);
|
|
187
200
|
process.stdout.write(` outputPath: ${result.outputPath}\n`);
|
|
188
201
|
process.stdout.write(` filesPackaged: ${result.files.dependencies.length + 1}\n`);
|
|
189
202
|
}
|
|
@@ -192,60 +205,66 @@ function outputBuildYaml(results, packageName, duration) {
|
|
|
192
205
|
async function buildCommand(pathArg, options) {
|
|
193
206
|
const { logger, cwd, startTime } = setupCommandContext(pathArg, options.debug);
|
|
194
207
|
try {
|
|
195
|
-
//
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
208
|
+
// Load config yaml from cwd (not workspace root — config lives next to the package)
|
|
209
|
+
const config = loadConfig(cwd);
|
|
210
|
+
if (!config?.skills) {
|
|
211
|
+
logger.info('No skills configuration found — nothing to build');
|
|
212
|
+
process.exit(0);
|
|
213
|
+
}
|
|
214
|
+
const skillsConfig = config.skills;
|
|
215
|
+
// Discover SKILL.md files from config globs (relative to cwd where config lives)
|
|
216
|
+
logger.info(`Discovering skills from config...`);
|
|
217
|
+
const discoveredSkills = await discoverSkillsFromConfig(skillsConfig, cwd);
|
|
218
|
+
if (discoveredSkills.length === 0) {
|
|
219
|
+
throw new Error(`No SKILL.md files found matching include patterns: ${skillsConfig.include.join(', ')}`);
|
|
200
220
|
}
|
|
201
221
|
// Filter by skill name if specified
|
|
202
|
-
const skillsToBuild = filterSkillsByName(
|
|
203
|
-
logger.info(
|
|
204
|
-
// Ensure package has a name
|
|
205
|
-
const packageName = packageJson.name ?? 'unnamed-package';
|
|
222
|
+
const skillsToBuild = filterSkillsByName(discoveredSkills, options.skill);
|
|
223
|
+
logger.info(`Found ${skillsToBuild.length} skill(s) to build`);
|
|
206
224
|
// Handle dry-run mode
|
|
207
225
|
if (options.dryRun) {
|
|
208
|
-
|
|
226
|
+
const duration = Date.now() - startTime;
|
|
227
|
+
performDryRun(skillsToBuild, duration, logger);
|
|
209
228
|
process.exit(0);
|
|
210
229
|
}
|
|
211
230
|
// Validate all skills before building
|
|
212
231
|
const validatedSpecs = [];
|
|
213
232
|
for (const skill of skillsToBuild) {
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
logger.info(
|
|
217
|
-
logger.info(`
|
|
218
|
-
|
|
219
|
-
|
|
233
|
+
const packagingConfig = mergePackagingConfig(skillsConfig.defaults, skillsConfig.config?.[skill.name]);
|
|
234
|
+
const outputDir = resolve(cwd, 'dist', 'skills', skillNameToFsPath(skill.name));
|
|
235
|
+
logger.info(`\nBuilding skill: ${skill.name}`);
|
|
236
|
+
logger.info(` Source: ${skill.sourcePath}`);
|
|
237
|
+
logger.info(` Output: ${outputDir}`);
|
|
238
|
+
await validateSkillOrExit(skill.name, skill.sourcePath, packagingConfig, logger);
|
|
239
|
+
validatedSpecs.push({ skill, packagingConfig });
|
|
220
240
|
}
|
|
221
241
|
// Build all skills with a shared registry
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
skillPath: sourcePath,
|
|
242
|
+
const specs = validatedSpecs.map(({ skill, packagingConfig }) => ({
|
|
243
|
+
skillPath: skill.sourcePath,
|
|
225
244
|
options: {
|
|
226
|
-
outputPath: resolve(cwd, skill.
|
|
245
|
+
outputPath: resolve(cwd, 'dist', 'skills', skillNameToFsPath(skill.name)),
|
|
227
246
|
formats: ['directory'],
|
|
228
247
|
rewriteLinks: true,
|
|
229
|
-
basePath: dirname(sourcePath),
|
|
230
|
-
...(
|
|
231
|
-
...(
|
|
232
|
-
...(
|
|
233
|
-
...(
|
|
248
|
+
basePath: dirname(skill.sourcePath),
|
|
249
|
+
...(packagingConfig.resourceNaming && { resourceNaming: packagingConfig.resourceNaming }),
|
|
250
|
+
...(packagingConfig.stripPrefix && { stripPrefix: packagingConfig.stripPrefix }),
|
|
251
|
+
...(packagingConfig.linkFollowDepth !== undefined && { linkFollowDepth: packagingConfig.linkFollowDepth }),
|
|
252
|
+
...(packagingConfig.excludeReferencesFromBundle && { excludeReferencesFromBundle: packagingConfig.excludeReferencesFromBundle }),
|
|
234
253
|
},
|
|
235
254
|
}));
|
|
236
|
-
const packageResults = await packageSkills(specs,
|
|
255
|
+
const packageResults = await packageSkills(specs, cwd);
|
|
237
256
|
const results = [];
|
|
238
257
|
for (const [i, spec] of validatedSpecs.entries()) {
|
|
239
258
|
const result = packageResults[i];
|
|
240
259
|
if (result) {
|
|
241
|
-
logger.info(`
|
|
242
|
-
results.push({
|
|
260
|
+
logger.info(` Built ${result.files.dependencies.length + 1} files`);
|
|
261
|
+
results.push({ name: spec.skill.name, result });
|
|
243
262
|
}
|
|
244
263
|
}
|
|
245
264
|
const duration = Date.now() - startTime;
|
|
246
265
|
// Output YAML results
|
|
247
|
-
outputBuildYaml(results,
|
|
248
|
-
logger.info(`\
|
|
266
|
+
outputBuildYaml(results, duration);
|
|
267
|
+
logger.info(`\nBuilt ${results.length} skill(s) successfully`);
|
|
249
268
|
process.exit(0);
|
|
250
269
|
}
|
|
251
270
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/skills/build.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/skills/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Helper functions for skill commands
|
|
3
3
|
*/
|
|
4
|
-
import type { VatSkillMetadata } from '@vibe-agent-toolkit/agent-schema';
|
|
5
4
|
import { type Logger } from '../../utils/logger.js';
|
|
6
5
|
/**
|
|
7
6
|
* Handle command errors consistently
|
|
@@ -13,14 +12,23 @@ import { type Logger } from '../../utils/logger.js';
|
|
|
13
12
|
*/
|
|
14
13
|
export declare function handleCommandError(error: unknown, logger: Logger, startTime: number, commandName: string): never;
|
|
15
14
|
/**
|
|
16
|
-
*
|
|
15
|
+
* Discovered skill with its source path and frontmatter name
|
|
16
|
+
*/
|
|
17
|
+
export interface DiscoveredSkill {
|
|
18
|
+
/** Skill name from SKILL.md frontmatter */
|
|
19
|
+
name: string;
|
|
20
|
+
/** Absolute path to SKILL.md */
|
|
21
|
+
sourcePath: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Filter discovered skills by name if specified
|
|
17
25
|
*
|
|
18
|
-
* @param skills - All skills
|
|
26
|
+
* @param skills - All discovered skills
|
|
19
27
|
* @param skillName - Optional skill name to filter by
|
|
20
28
|
* @returns Filtered skills array
|
|
21
29
|
* @throws Error if skillName specified but not found
|
|
22
30
|
*/
|
|
23
|
-
export declare function filterSkillsByName(skills:
|
|
31
|
+
export declare function filterSkillsByName<T extends DiscoveredSkill>(skills: T[], skillName?: string): T[];
|
|
24
32
|
/**
|
|
25
33
|
* Write YAML header to stdout
|
|
26
34
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/command-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"command-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/command-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAElE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,KAAK,CAcP;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,eAAe,EAC1D,MAAM,EAAE,CAAC,EAAE,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,CAAC,EAAE,CAeL;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAKvF;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,CAAC,EAAE,OAAO,GACd,cAAc,CAMhB"}
|
|
@@ -25,9 +25,9 @@ export function handleCommandError(error, logger, startTime, commandName) {
|
|
|
25
25
|
process.exit(2);
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
* Filter skills by name if specified
|
|
28
|
+
* Filter discovered skills by name if specified
|
|
29
29
|
*
|
|
30
|
-
* @param skills - All skills
|
|
30
|
+
* @param skills - All discovered skills
|
|
31
31
|
* @param skillName - Optional skill name to filter by
|
|
32
32
|
* @returns Filtered skills array
|
|
33
33
|
* @throws Error if skillName specified but not found
|
|
@@ -38,7 +38,8 @@ export function filterSkillsByName(skills, skillName) {
|
|
|
38
38
|
}
|
|
39
39
|
const filtered = skills.filter(s => s.name === skillName);
|
|
40
40
|
if (filtered.length === 0) {
|
|
41
|
-
|
|
41
|
+
const available = skills.map(s => s.name).join(', ');
|
|
42
|
+
throw new Error(`Skill "${skillName}" not found. Available skills: ${available}`);
|
|
42
43
|
}
|
|
43
44
|
return filtered;
|
|
44
45
|
}
|
|
@@ -64,7 +65,6 @@ export function setupCommandContext(pathArg, debug) {
|
|
|
64
65
|
const logger = createLogger(debug ? { debug: true } : {});
|
|
65
66
|
const startTime = Date.now();
|
|
66
67
|
const cwd = pathArg ? resolve(pathArg) : process.cwd();
|
|
67
|
-
logger.info(`📖 Reading package.json from ${cwd}`);
|
|
68
68
|
return { logger, cwd, startTime };
|
|
69
69
|
}
|
|
70
70
|
//# sourceMappingURL=command-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-helpers.js","sourceRoot":"","sources":["../../../src/commands/skills/command-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"command-helpers.js","sourceRoot":"","sources":["../../../src/commands/skills/command-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,MAAc,EACd,SAAiB,EACjB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAExC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,YAAY,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,IAAI,CAAC,CAAC;IAExC,yCAAyC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAW,EACX,SAAkB;IAElB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAE1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,UAAU,SAAS,kCAAkC,SAAS,EAAE,CACjE,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiD;IAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA2B,EAC3B,KAAe;IAEf,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEvD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -7,12 +7,11 @@
|
|
|
7
7
|
* - ZIP files
|
|
8
8
|
* - npm postinstall hook
|
|
9
9
|
*/
|
|
10
|
-
import type { VatSkillMetadata } from '@vibe-agent-toolkit/agent-schema';
|
|
11
10
|
export type SkillSource = 'npm' | 'local' | 'zip' | 'npm-postinstall' | 'dev';
|
|
12
11
|
export interface PackageJsonVat {
|
|
13
12
|
version?: string;
|
|
14
13
|
type?: string;
|
|
15
|
-
skills?:
|
|
14
|
+
skills?: string[];
|
|
16
15
|
}
|
|
17
16
|
export interface PackageJson {
|
|
18
17
|
name: string;
|
|
@@ -28,7 +27,7 @@ export declare function detectSource(input: string): SkillSource;
|
|
|
28
27
|
*/
|
|
29
28
|
export declare function readPackageJsonVatMetadata(dir: string): Promise<{
|
|
30
29
|
packageJson: PackageJson;
|
|
31
|
-
skills:
|
|
30
|
+
skills: string[];
|
|
32
31
|
}>;
|
|
33
32
|
/**
|
|
34
33
|
* Download and extract npm package to temp directory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"install-helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAE9E,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAqCvD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAwBzD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAyC/E;AA+BD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAgB5C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAMtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-helpers.js","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"install-helpers.js","sourceRoot":"","sources":["../../../src/commands/skills/install-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Install
|
|
2
|
+
* Install skills to Claude's plugins directory
|
|
3
3
|
*
|
|
4
4
|
* Supports installing from:
|
|
5
5
|
* - npm packages (npm:@scope/package)
|
|
6
6
|
* - Local ZIP file
|
|
7
7
|
* - Local directory
|
|
8
8
|
* - npm postinstall hook (--npm-postinstall)
|
|
9
|
+
*
|
|
10
|
+
* Plugin detection: looks for dist/.claude/plugins/marketplaces/ directory.
|
|
11
|
+
* When present, copies the pre-built directory tree to ~/.claude/plugins/
|
|
12
|
+
* and updates Claude's plugin registry files. When absent, falls back to
|
|
13
|
+
* copying dist/skills/ to ~/.claude/skills/.
|
|
9
14
|
*/
|
|
10
15
|
import { Command } from 'commander';
|
|
11
16
|
export interface SkillsInstallCommandOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/install.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDpC,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAuD9C"}
|