skillpkg-cli 0.1.0
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/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +119 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/export.d.ts +13 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +117 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/import.d.ts +12 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +126 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/info.d.ts +10 -0
- package/dist/commands/info.d.ts.map +1 -0
- package/dist/commands/info.js +118 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.d.ts +10 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +161 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.d.ts +10 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +190 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/list.d.ts +10 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +74 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/login.d.ts +22 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +100 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/publish.d.ts +12 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +161 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/search.d.ts +13 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +94 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/sync.d.ts +10 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +162 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/uninstall.d.ts +10 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +48 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/index.d.ts +8 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +8 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/logger.d.ts +43 -0
- package/dist/ui/logger.d.ts.map +1 -0
- package/dist/ui/logger.js +77 -0
- package/dist/ui/logger.js.map +1 -0
- package/dist/ui/prompt.d.ts +35 -0
- package/dist/ui/prompt.d.ts.map +1 -0
- package/dist/ui/prompt.js +66 -0
- package/dist/ui/prompt.js.map +1 -0
- package/dist/ui/spinner.d.ts +16 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +30 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/table.d.ts +20 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +46 -0
- package/dist/ui/table.js.map +1 -0
- package/package.json +67 -0
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmHvD"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { initCommand } from './commands/init.js';
|
|
2
|
+
import { installCommand } from './commands/install.js';
|
|
3
|
+
import { listCommand } from './commands/list.js';
|
|
4
|
+
import { uninstallCommand } from './commands/uninstall.js';
|
|
5
|
+
import { syncCommand } from './commands/sync.js';
|
|
6
|
+
import { importCommand } from './commands/import.js';
|
|
7
|
+
import { exportCommand } from './commands/export.js';
|
|
8
|
+
import { searchCommand } from './commands/search.js';
|
|
9
|
+
import { infoCommand } from './commands/info.js';
|
|
10
|
+
import { loginCommand, logoutCommand, whoamiCommand } from './commands/login.js';
|
|
11
|
+
import { publishCommand } from './commands/publish.js';
|
|
12
|
+
/**
|
|
13
|
+
* Register all CLI commands
|
|
14
|
+
*/
|
|
15
|
+
export function registerCommands(program) {
|
|
16
|
+
// init - Create a new skill.yaml
|
|
17
|
+
program
|
|
18
|
+
.command('init')
|
|
19
|
+
.description('Create a new skill.yaml file')
|
|
20
|
+
.option('-y, --yes', 'Use default values without prompts')
|
|
21
|
+
.option('-n, --name <name>', 'Skill name')
|
|
22
|
+
.action(initCommand);
|
|
23
|
+
// install - Install a skill
|
|
24
|
+
program
|
|
25
|
+
.command('install [skill]')
|
|
26
|
+
.alias('i')
|
|
27
|
+
.description('Install a skill from registry or local path')
|
|
28
|
+
.option('-g, --global', 'Install globally')
|
|
29
|
+
.option('--registry <url>', 'Use custom registry')
|
|
30
|
+
.action(installCommand);
|
|
31
|
+
// list - List installed skills
|
|
32
|
+
program
|
|
33
|
+
.command('list')
|
|
34
|
+
.alias('ls')
|
|
35
|
+
.description('List installed skills')
|
|
36
|
+
.option('-g, --global', 'List globally installed skills')
|
|
37
|
+
.option('--json', 'Output as JSON')
|
|
38
|
+
.action(listCommand);
|
|
39
|
+
// uninstall - Remove a skill
|
|
40
|
+
program
|
|
41
|
+
.command('uninstall <skill>')
|
|
42
|
+
.alias('rm')
|
|
43
|
+
.description('Uninstall a skill')
|
|
44
|
+
.option('-g, --global', 'Uninstall from global store')
|
|
45
|
+
.option('-c, --clean', 'Also remove synced files from all platforms')
|
|
46
|
+
.action(uninstallCommand);
|
|
47
|
+
// sync - Sync skills to platforms
|
|
48
|
+
program
|
|
49
|
+
.command('sync [skill]')
|
|
50
|
+
.description('Sync skills to AI platforms')
|
|
51
|
+
.option('-t, --target <platforms>', 'Target platforms (comma-separated)')
|
|
52
|
+
.option('--dry-run', 'Show what would be synced without making changes')
|
|
53
|
+
.action(syncCommand);
|
|
54
|
+
// import - Import skills from platform formats
|
|
55
|
+
program
|
|
56
|
+
.command('import [path]')
|
|
57
|
+
.description('Import skills from platform formats (Claude Code, Codex, etc.)')
|
|
58
|
+
.option('-f, --from <path>', 'Source path to import from')
|
|
59
|
+
.option('-g, --global', 'Import to global store')
|
|
60
|
+
.option('--dry-run', 'Show what would be imported without making changes')
|
|
61
|
+
.option('--overwrite', 'Overwrite existing skills')
|
|
62
|
+
.action(importCommand);
|
|
63
|
+
// export - Export skills to various formats
|
|
64
|
+
program
|
|
65
|
+
.command('export [skill]')
|
|
66
|
+
.description('Export skills to various formats (dir, zip, tarball, pack)')
|
|
67
|
+
.option('-f, --format <format>', 'Export format (dir, zip, tarball, pack)', 'dir')
|
|
68
|
+
.option('-o, --output <path>', 'Output directory')
|
|
69
|
+
.option('-g, --global', 'Export from global store')
|
|
70
|
+
.option('-a, --all', 'Export all skills')
|
|
71
|
+
.option('--overwrite', 'Overwrite existing files')
|
|
72
|
+
.action(exportCommand);
|
|
73
|
+
// search - Search for skills in the registry
|
|
74
|
+
program
|
|
75
|
+
.command('search <query>')
|
|
76
|
+
.description('Search for skills in the registry')
|
|
77
|
+
.option('-l, --limit <number>', 'Number of results per page', '20')
|
|
78
|
+
.option('-p, --page <number>', 'Page number', '1')
|
|
79
|
+
.option('-s, --sort <field>', 'Sort by (relevance, downloads, updated, name)')
|
|
80
|
+
.option('--json', 'Output as JSON')
|
|
81
|
+
.option('--registry <url>', 'Use custom registry')
|
|
82
|
+
.action(searchCommand);
|
|
83
|
+
// info - Get detailed information about a skill
|
|
84
|
+
program
|
|
85
|
+
.command('info <skill>')
|
|
86
|
+
.description('Get detailed information about a skill from the registry')
|
|
87
|
+
.option('--json', 'Output as JSON')
|
|
88
|
+
.option('--registry <url>', 'Use custom registry')
|
|
89
|
+
.action(infoCommand);
|
|
90
|
+
// login - Authenticate with a registry
|
|
91
|
+
program
|
|
92
|
+
.command('login')
|
|
93
|
+
.description('Authenticate with a registry')
|
|
94
|
+
.option('--registry <url>', 'Registry URL')
|
|
95
|
+
.option('-t, --token <token>', 'Auth token (for non-interactive use)')
|
|
96
|
+
.action(loginCommand);
|
|
97
|
+
// logout - Log out from a registry
|
|
98
|
+
program
|
|
99
|
+
.command('logout')
|
|
100
|
+
.description('Log out from a registry')
|
|
101
|
+
.option('--registry <url>', 'Registry URL')
|
|
102
|
+
.action(logoutCommand);
|
|
103
|
+
// whoami - Show current logged in user
|
|
104
|
+
program
|
|
105
|
+
.command('whoami')
|
|
106
|
+
.description('Show current logged in user')
|
|
107
|
+
.option('--registry <url>', 'Registry URL')
|
|
108
|
+
.action(whoamiCommand);
|
|
109
|
+
// publish - Publish a skill to the registry
|
|
110
|
+
program
|
|
111
|
+
.command('publish')
|
|
112
|
+
.description('Publish a skill to the registry')
|
|
113
|
+
.option('--tag <tag>', 'Publish with tag (default: latest)')
|
|
114
|
+
.option('--access <access>', 'Access level (public, restricted)')
|
|
115
|
+
.option('--registry <url>', 'Registry URL')
|
|
116
|
+
.option('--dry-run', 'Show what would be published without publishing')
|
|
117
|
+
.action(publishCommand);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface ExportOptions {
|
|
2
|
+
format?: string;
|
|
3
|
+
output?: string;
|
|
4
|
+
global?: boolean;
|
|
5
|
+
overwrite?: boolean;
|
|
6
|
+
all?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* export command handler
|
|
10
|
+
*/
|
|
11
|
+
export declare function exportCommand(skillName: string | undefined, options: ExportOptions): Promise<void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAWA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CA+Ff"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* export command - Export skills to various formats
|
|
3
|
+
*/
|
|
4
|
+
import { createExporter, createLocalStore, createGlobalStore, } from 'skillpkg-core';
|
|
5
|
+
import { logger, colors, withSpinner } from '../ui/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* export command handler
|
|
8
|
+
*/
|
|
9
|
+
export async function exportCommand(skillName, options) {
|
|
10
|
+
const exporter = createExporter();
|
|
11
|
+
const store = options.global ? createGlobalStore() : createLocalStore();
|
|
12
|
+
// Check if store is initialized
|
|
13
|
+
if (!(await store.isInitialized())) {
|
|
14
|
+
logger.error('No skills installed');
|
|
15
|
+
logger.log(`Run ${colors.cyan('skillpkg install <skill>')} first`);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
logger.header('Export Skills');
|
|
19
|
+
// Validate format
|
|
20
|
+
const format = validateFormat(options.format || 'dir');
|
|
21
|
+
if (!format) {
|
|
22
|
+
logger.error(`Invalid format: ${options.format}`);
|
|
23
|
+
logger.log('Valid formats: dir, zip, tarball, pack');
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
// Get skills to export
|
|
27
|
+
let skills = [];
|
|
28
|
+
if (options.all || !skillName) {
|
|
29
|
+
// Export all skills
|
|
30
|
+
const skillsMeta = await store.listSkills();
|
|
31
|
+
for (const meta of skillsMeta) {
|
|
32
|
+
const skill = await store.getSkill(meta.name);
|
|
33
|
+
if (skill) {
|
|
34
|
+
skills.push(skill);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
// Export specific skill
|
|
40
|
+
const skill = await store.getSkill(skillName);
|
|
41
|
+
if (!skill) {
|
|
42
|
+
logger.error(`Skill ${colors.cyan(skillName)} not found`);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
skills.push(skill);
|
|
46
|
+
}
|
|
47
|
+
if (skills.length === 0) {
|
|
48
|
+
logger.warn('No skills to export');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
logger.log(`Exporting ${colors.cyan(String(skills.length))} skill(s) as ${colors.cyan(format)}`);
|
|
52
|
+
logger.blank();
|
|
53
|
+
const outputDir = options.output || process.cwd();
|
|
54
|
+
let successCount = 0;
|
|
55
|
+
let failCount = 0;
|
|
56
|
+
for (const skill of skills) {
|
|
57
|
+
const result = await withSpinner(`Exporting ${colors.cyan(skill.name)}`, () => exporter.export(skill, {
|
|
58
|
+
format,
|
|
59
|
+
output: outputDir,
|
|
60
|
+
overwrite: options.overwrite,
|
|
61
|
+
}), {
|
|
62
|
+
successText: `Exported ${colors.cyan(skill.name)}`,
|
|
63
|
+
failText: `Failed to export ${skill.name}`,
|
|
64
|
+
});
|
|
65
|
+
if (result.success) {
|
|
66
|
+
successCount++;
|
|
67
|
+
logger.log(` ${colors.dim(result.outputPath)}`);
|
|
68
|
+
if (result.size) {
|
|
69
|
+
logger.log(` ${colors.dim(`Size: ${formatSize(result.size)}`)}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
failCount++;
|
|
74
|
+
logger.error(` ${result.error}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Summary
|
|
78
|
+
logger.blank();
|
|
79
|
+
logger.log(`Summary: ${colors.green(String(successCount))} exported, ` +
|
|
80
|
+
`${colors.red(String(failCount))} failed`);
|
|
81
|
+
logger.blank();
|
|
82
|
+
if (successCount > 0 && format === 'pack') {
|
|
83
|
+
logger.log('Install with:');
|
|
84
|
+
logger.item(`${colors.cyan('skillpkg install <file>.skillpkg')}`);
|
|
85
|
+
logger.blank();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Validate and normalize export format
|
|
90
|
+
*/
|
|
91
|
+
function validateFormat(format) {
|
|
92
|
+
const validFormats = ['dir', 'zip', 'tarball', 'pack'];
|
|
93
|
+
const normalized = format.toLowerCase();
|
|
94
|
+
// Handle aliases
|
|
95
|
+
if (format === 'tar.gz' || format === 'tgz') {
|
|
96
|
+
return 'tarball';
|
|
97
|
+
}
|
|
98
|
+
if (validFormats.includes(normalized)) {
|
|
99
|
+
return normalized;
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Format file size for display
|
|
105
|
+
*/
|
|
106
|
+
function formatSize(bytes) {
|
|
107
|
+
if (bytes < 1024) {
|
|
108
|
+
return `${bytes} B`;
|
|
109
|
+
}
|
|
110
|
+
else if (bytes < 1024 * 1024) {
|
|
111
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface ImportOptions {
|
|
2
|
+
from?: string;
|
|
3
|
+
global?: boolean;
|
|
4
|
+
dryRun?: boolean;
|
|
5
|
+
overwrite?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* import command handler
|
|
9
|
+
*/
|
|
10
|
+
export declare function importCommand(path: string | undefined, options: ImportOptions): Promise<void>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"AAWA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CA8Gf"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* import command - Import skills from platform formats
|
|
3
|
+
*/
|
|
4
|
+
import { createImporter, createLocalStore, createGlobalStore, } from 'skillpkg-core';
|
|
5
|
+
import { logger, colors, withSpinner, createTable } from '../ui/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* import command handler
|
|
8
|
+
*/
|
|
9
|
+
export async function importCommand(path, options) {
|
|
10
|
+
const importer = createImporter();
|
|
11
|
+
const store = options.global ? createGlobalStore() : createLocalStore();
|
|
12
|
+
// Determine source path
|
|
13
|
+
const sourcePath = path || options.from || process.cwd();
|
|
14
|
+
logger.header('Import Skills');
|
|
15
|
+
// Detect importable files
|
|
16
|
+
const detected = await withSpinner(`Scanning ${colors.cyan(sourcePath)}`, () => importer.detect(sourcePath), {
|
|
17
|
+
successText: 'Scan complete',
|
|
18
|
+
failText: 'Scan failed',
|
|
19
|
+
});
|
|
20
|
+
if (detected.length === 0) {
|
|
21
|
+
logger.blank();
|
|
22
|
+
logger.warn('No importable skill files found');
|
|
23
|
+
logger.blank();
|
|
24
|
+
logger.log('Supported formats:');
|
|
25
|
+
logger.item(`${colors.cyan('Claude Code')}: .claude/skills/*/SKILL.md`);
|
|
26
|
+
logger.item(`${colors.cyan('Codex')}: .codex/agents/*.md`);
|
|
27
|
+
logger.item(`${colors.cyan('Copilot')}: .github/copilot-instructions.md`);
|
|
28
|
+
logger.item(`${colors.cyan('Cline')}: .cline/rules/*.md`);
|
|
29
|
+
logger.blank();
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// Show detected files
|
|
33
|
+
logger.blank();
|
|
34
|
+
logger.log(`Found ${colors.cyan(String(detected.length))} importable file(s):`);
|
|
35
|
+
logger.blank();
|
|
36
|
+
showDetectedTable(detected);
|
|
37
|
+
if (options.dryRun) {
|
|
38
|
+
logger.blank();
|
|
39
|
+
logger.warn('Dry run mode - no changes will be made');
|
|
40
|
+
logger.blank();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
logger.blank();
|
|
44
|
+
// Import each file
|
|
45
|
+
const results = [];
|
|
46
|
+
let successCount = 0;
|
|
47
|
+
let failCount = 0;
|
|
48
|
+
for (const file of detected) {
|
|
49
|
+
const result = await importer.importFile(file.path);
|
|
50
|
+
results.push(result);
|
|
51
|
+
if (result.success && result.skill) {
|
|
52
|
+
// Save to store
|
|
53
|
+
try {
|
|
54
|
+
// Initialize store if needed
|
|
55
|
+
if (!(await store.isInitialized())) {
|
|
56
|
+
await store.init();
|
|
57
|
+
}
|
|
58
|
+
// Check if skill already exists
|
|
59
|
+
if (await store.hasSkill(result.skill.name)) {
|
|
60
|
+
if (options.overwrite) {
|
|
61
|
+
await store.removeSkill(result.skill.name);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
logger.warn(`${colors.cyan(result.skill.name)} already exists (use --overwrite to replace)`);
|
|
65
|
+
failCount++;
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Add skill to store
|
|
70
|
+
await store.addSkill(result.skill);
|
|
71
|
+
logger.success(`Imported ${colors.cyan(result.skill.name)}@${result.skill.version} from ${file.displayName}`);
|
|
72
|
+
successCount++;
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
logger.error(`Failed to save ${result.skill.name}: ${error instanceof Error ? error.message : String(error)}`);
|
|
76
|
+
failCount++;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
logger.error(`Failed to import ${file.path}: ${result.error}`);
|
|
81
|
+
failCount++;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Summary
|
|
85
|
+
logger.blank();
|
|
86
|
+
logger.log(`Summary: ${colors.green(String(successCount))} imported, ` +
|
|
87
|
+
`${colors.red(String(failCount))} failed`);
|
|
88
|
+
logger.blank();
|
|
89
|
+
if (successCount > 0) {
|
|
90
|
+
logger.log('Next steps:');
|
|
91
|
+
logger.item(`Run ${colors.cyan('skillpkg list')} to see imported skills`);
|
|
92
|
+
logger.item(`Run ${colors.cyan('skillpkg sync')} to sync to platforms`);
|
|
93
|
+
logger.blank();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Show detected files in a table
|
|
98
|
+
*/
|
|
99
|
+
function showDetectedTable(detected) {
|
|
100
|
+
const table = createTable({
|
|
101
|
+
head: ['File', 'Platform'],
|
|
102
|
+
});
|
|
103
|
+
for (const file of detected) {
|
|
104
|
+
// Shorten path for display
|
|
105
|
+
const displayPath = shortenPath(file.path, 50);
|
|
106
|
+
table.push([displayPath, file.displayName]);
|
|
107
|
+
}
|
|
108
|
+
logger.log(table.toString());
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Shorten a path for display
|
|
112
|
+
*/
|
|
113
|
+
function shortenPath(path, maxLength) {
|
|
114
|
+
if (path.length <= maxLength) {
|
|
115
|
+
return path;
|
|
116
|
+
}
|
|
117
|
+
const parts = path.split('/');
|
|
118
|
+
if (parts.length <= 3) {
|
|
119
|
+
return path;
|
|
120
|
+
}
|
|
121
|
+
// Keep first and last parts
|
|
122
|
+
const first = parts[0] || '';
|
|
123
|
+
const last = parts.slice(-2).join('/');
|
|
124
|
+
return `${first}/.../${last}`;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface InfoCommandOptions {
|
|
2
|
+
json?: boolean;
|
|
3
|
+
registry?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* info command handler
|
|
7
|
+
*/
|
|
8
|
+
export declare function infoCommand(skillName: string | undefined, options: InfoCommandOptions): Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AAUA,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoGf"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* info command - Get detailed information about a skill
|
|
3
|
+
*/
|
|
4
|
+
import { createRegistryClient, RegistryError, DEFAULT_REGISTRY_URL, } from 'skillpkg-core';
|
|
5
|
+
import { logger, colors } from '../ui/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* info command handler
|
|
8
|
+
*/
|
|
9
|
+
export async function infoCommand(skillName, options) {
|
|
10
|
+
if (!skillName) {
|
|
11
|
+
logger.error('Skill name is required');
|
|
12
|
+
logger.log(`Usage: ${colors.cyan('skillpkg info <skill>')}`);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
const client = createRegistryClient({
|
|
16
|
+
registryUrl: options.registry || DEFAULT_REGISTRY_URL,
|
|
17
|
+
});
|
|
18
|
+
try {
|
|
19
|
+
const info = await client.getSkillInfo(skillName);
|
|
20
|
+
// JSON output mode
|
|
21
|
+
if (options.json) {
|
|
22
|
+
console.log(JSON.stringify(info, null, 2));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
logger.header(`${info.name}`);
|
|
26
|
+
// Basic info
|
|
27
|
+
logger.log(`${colors.dim('Version:')} ${info.version}`);
|
|
28
|
+
if (info.description) {
|
|
29
|
+
logger.log(`${colors.dim('Description:')} ${info.description}`);
|
|
30
|
+
}
|
|
31
|
+
if (info.author) {
|
|
32
|
+
const author = info.author.email
|
|
33
|
+
? `${info.author.name} <${info.author.email}>`
|
|
34
|
+
: info.author.name;
|
|
35
|
+
logger.log(`${colors.dim('Author:')} ${author}`);
|
|
36
|
+
}
|
|
37
|
+
if (info.license) {
|
|
38
|
+
logger.log(`${colors.dim('License:')} ${info.license}`);
|
|
39
|
+
}
|
|
40
|
+
if (info.homepage) {
|
|
41
|
+
logger.log(`${colors.dim('Homepage:')} ${colors.cyan(info.homepage)}`);
|
|
42
|
+
}
|
|
43
|
+
if (info.repository) {
|
|
44
|
+
logger.log(`${colors.dim('Repository:')} ${colors.cyan(info.repository)}`);
|
|
45
|
+
}
|
|
46
|
+
logger.blank();
|
|
47
|
+
// Downloads
|
|
48
|
+
logger.log(colors.dim('Downloads:'));
|
|
49
|
+
logger.log(` Total: ${formatNumber(info.downloads.total)}`);
|
|
50
|
+
logger.log(` Weekly: ${formatNumber(info.downloads.weekly)}`);
|
|
51
|
+
logger.log(` Monthly: ${formatNumber(info.downloads.monthly)}`);
|
|
52
|
+
logger.blank();
|
|
53
|
+
// Keywords
|
|
54
|
+
if (info.keywords && info.keywords.length > 0) {
|
|
55
|
+
logger.log(`${colors.dim('Keywords:')} ${info.keywords.join(', ')}`);
|
|
56
|
+
logger.blank();
|
|
57
|
+
}
|
|
58
|
+
// Versions
|
|
59
|
+
if (info.versions && info.versions.length > 0) {
|
|
60
|
+
logger.log(colors.dim('Versions:'));
|
|
61
|
+
const displayVersions = info.versions.slice(0, 5);
|
|
62
|
+
for (const ver of displayVersions) {
|
|
63
|
+
const date = new Date(ver.publishedAt).toLocaleDateString();
|
|
64
|
+
const deprecated = ver.deprecated ? colors.yellow(' (deprecated)') : '';
|
|
65
|
+
logger.log(` ${ver.version} - ${colors.dim(date)}${deprecated}`);
|
|
66
|
+
}
|
|
67
|
+
if (info.versions.length > 5) {
|
|
68
|
+
logger.log(colors.dim(` ... and ${info.versions.length - 5} more`));
|
|
69
|
+
}
|
|
70
|
+
logger.blank();
|
|
71
|
+
}
|
|
72
|
+
// Dates
|
|
73
|
+
logger.log(`${colors.dim('Created:')} ${formatDate(info.createdAt)}`);
|
|
74
|
+
logger.log(`${colors.dim('Updated:')} ${formatDate(info.updatedAt)}`);
|
|
75
|
+
logger.blank();
|
|
76
|
+
// Install command
|
|
77
|
+
logger.log('Install:');
|
|
78
|
+
logger.log(` ${colors.cyan(`skillpkg install ${info.name}`)}`);
|
|
79
|
+
logger.blank();
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
if (error instanceof RegistryError) {
|
|
83
|
+
if (error.code === 'SKILL_NOT_IN_REGISTRY') {
|
|
84
|
+
logger.error(`Skill '${skillName}' not found in registry`);
|
|
85
|
+
logger.log(`Try: ${colors.cyan(`skillpkg search ${skillName}`)}`);
|
|
86
|
+
}
|
|
87
|
+
else if (error.code === 'NETWORK_ERROR') {
|
|
88
|
+
logger.error('Unable to connect to registry');
|
|
89
|
+
logger.log(`Registry URL: ${colors.dim(client.getRegistryUrl())}`);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
logger.error(`Registry error: ${error.message}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
logger.error(`Failed to get skill info: ${error instanceof Error ? error.message : error}`);
|
|
97
|
+
}
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Format number with thousands separator
|
|
103
|
+
*/
|
|
104
|
+
function formatNumber(num) {
|
|
105
|
+
return num.toLocaleString();
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Format date for display
|
|
109
|
+
*/
|
|
110
|
+
function formatDate(isoDate) {
|
|
111
|
+
const date = new Date(isoDate);
|
|
112
|
+
return date.toLocaleDateString('en-US', {
|
|
113
|
+
year: 'numeric',
|
|
114
|
+
month: 'short',
|
|
115
|
+
day: 'numeric',
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAWA,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA4CD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwGrE"}
|