skillpkg-cli 0.1.1 → 0.3.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.map +1 -1
- package/dist/cli.js +40 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/deps.d.ts +17 -0
- package/dist/commands/deps.d.ts.map +1 -0
- package/dist/commands/deps.js +234 -0
- package/dist/commands/deps.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +77 -107
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +272 -148
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +47 -17
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/migrate.d.ts +10 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +122 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/search.d.ts +0 -3
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +38 -44
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +180 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +105 -127
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/uninstall.d.ts +1 -0
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +56 -12
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/index.js +0 -0
- package/package.json +8 -8
package/dist/commands/install.js
CHANGED
|
@@ -1,190 +1,314 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* install command - Install a skill
|
|
2
|
+
* install command - Install a skill with dependency resolution
|
|
3
|
+
*
|
|
4
|
+
* v2.0: Uses new Installer module with dependency tracking
|
|
5
|
+
*
|
|
6
|
+
* Supports:
|
|
7
|
+
* - Local path: skillpkg install ./path/to/skill
|
|
8
|
+
* - GitHub: skillpkg install github:user/repo or skillpkg install user/repo
|
|
9
|
+
* - Pack file: skillpkg install skill.skillpkg
|
|
3
10
|
*/
|
|
4
11
|
import { existsSync, createReadStream } from 'fs';
|
|
5
12
|
import { readFile } from 'fs/promises';
|
|
6
13
|
import { join, resolve, isAbsolute } from 'path';
|
|
7
14
|
import { createGunzip } from 'zlib';
|
|
8
|
-
import { parse,
|
|
15
|
+
import { parse, createInstaller, createStateManager, createConfigManager, createLocalStore, createGlobalStore, detectSkillMd, fetchSkillMdContent, } from 'skillpkg-core';
|
|
9
16
|
import { logger, colors, withSpinner } from '../ui/index.js';
|
|
10
17
|
import * as tar from 'tar-stream';
|
|
11
18
|
/**
|
|
12
|
-
*
|
|
19
|
+
* Parse source string to determine source type
|
|
13
20
|
*/
|
|
14
|
-
|
|
15
|
-
//
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
-
if (existsSync(localSkillPath)) {
|
|
19
|
-
skillArg = '.';
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
logger.error('No skill specified and no skill.yaml found in current directory');
|
|
23
|
-
logger.log(`Usage: ${colors.cyan('skillpkg install <skill>')}`);
|
|
24
|
-
process.exit(1);
|
|
25
|
-
}
|
|
21
|
+
function parseSource(source) {
|
|
22
|
+
// GitHub: github:user/repo
|
|
23
|
+
if (source.startsWith('github:')) {
|
|
24
|
+
return { type: 'github', value: source.slice(7) };
|
|
26
25
|
}
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// Check if it's a .skillpkg file
|
|
31
|
-
if (skillArg.endsWith('.skillpkg')) {
|
|
32
|
-
await installFromPack(skillArg, options);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
await installFromLocal(skillArg, options);
|
|
36
|
-
}
|
|
26
|
+
// GitHub: user/repo format
|
|
27
|
+
if (/^[a-zA-Z0-9_-]+\/[a-zA-Z0-9_.-]+$/.test(source) && !existsSync(source)) {
|
|
28
|
+
return { type: 'github', value: source };
|
|
37
29
|
}
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
// Pack file: *.skillpkg
|
|
31
|
+
if (source.endsWith('.skillpkg')) {
|
|
32
|
+
return { type: 'pack', value: source };
|
|
40
33
|
}
|
|
34
|
+
// Local path
|
|
35
|
+
return { type: 'local', value: source };
|
|
41
36
|
}
|
|
42
37
|
/**
|
|
43
|
-
*
|
|
38
|
+
* install command handler
|
|
44
39
|
*/
|
|
45
|
-
async function
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
40
|
+
export async function installCommand(skillArg, options) {
|
|
41
|
+
const cwd = process.cwd();
|
|
42
|
+
// If no skill argument, install from skillpkg.json
|
|
43
|
+
if (!skillArg) {
|
|
44
|
+
await installFromConfig(cwd, options);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const { type, value } = parseSource(skillArg);
|
|
48
|
+
const source = type === 'github' ? `github:${value}` : value;
|
|
49
|
+
// Create installer with fetcher
|
|
50
|
+
const stateManager = createStateManager();
|
|
51
|
+
const configManager = createConfigManager();
|
|
52
|
+
const storeManager = options.global ? createGlobalStore() : createLocalStore();
|
|
53
|
+
const fetcher = createFetcher();
|
|
54
|
+
// Initialize store if needed
|
|
55
|
+
if (!(await storeManager.isInitialized())) {
|
|
56
|
+
await withSpinner('Initializing store', () => storeManager.init());
|
|
57
|
+
}
|
|
58
|
+
const installer = createInstaller(stateManager, configManager, storeManager, fetcher);
|
|
59
|
+
logger.info(`Installing from ${colors.cyan(skillArg)}`);
|
|
60
|
+
logger.blank();
|
|
61
|
+
// Run installation
|
|
62
|
+
const result = await withSpinner('Resolving dependencies', async () => {
|
|
63
|
+
return installer.install(cwd, source);
|
|
64
|
+
});
|
|
65
|
+
// Show results
|
|
66
|
+
logger.blank();
|
|
67
|
+
if (!result.success) {
|
|
68
|
+
logger.error('Installation failed:');
|
|
69
|
+
for (const error of result.errors) {
|
|
70
|
+
logger.log(` ${colors.red('×')} ${error}`);
|
|
71
|
+
}
|
|
55
72
|
process.exit(1);
|
|
56
73
|
}
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
74
|
+
// Show installed skills
|
|
75
|
+
const installed = result.skills.filter((s) => s.action === 'installed');
|
|
76
|
+
const updated = result.skills.filter((s) => s.action === 'updated');
|
|
77
|
+
const skipped = result.skills.filter((s) => s.action === 'skipped');
|
|
78
|
+
if (installed.length > 0) {
|
|
79
|
+
logger.success(`Installed ${installed.length} skill(s):`);
|
|
80
|
+
for (const skill of installed) {
|
|
81
|
+
const transitiveNote = skill.transitive
|
|
82
|
+
? colors.dim(` (dependency of ${skill.requiredBy})`)
|
|
83
|
+
: '';
|
|
84
|
+
logger.item(`${colors.cyan(skill.name)} ${colors.dim(`v${skill.version}`)}${transitiveNote}`);
|
|
66
85
|
}
|
|
67
|
-
skill = result.data;
|
|
68
86
|
}
|
|
69
|
-
|
|
70
|
-
logger.
|
|
71
|
-
|
|
87
|
+
if (updated.length > 0) {
|
|
88
|
+
logger.log(`Updated ${updated.length} skill(s):`);
|
|
89
|
+
for (const skill of updated) {
|
|
90
|
+
logger.item(`${colors.cyan(skill.name)} ${colors.dim(`v${skill.version}`)}`);
|
|
91
|
+
}
|
|
72
92
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (existing?.version === skill.version) {
|
|
83
|
-
logger.warn(`${skill.name}@${skill.version} is already installed`);
|
|
84
|
-
return;
|
|
93
|
+
if (skipped.length > 0) {
|
|
94
|
+
logger.log(colors.dim(`Skipped ${skipped.length} already installed skill(s)`));
|
|
95
|
+
}
|
|
96
|
+
// Show MCP requirements
|
|
97
|
+
if (result.mcpRequired.length > 0) {
|
|
98
|
+
logger.blank();
|
|
99
|
+
logger.warn('MCP servers required:');
|
|
100
|
+
for (const mcp of result.mcpRequired) {
|
|
101
|
+
logger.item(`${colors.yellow(mcp)}`);
|
|
85
102
|
}
|
|
86
|
-
logger.
|
|
103
|
+
logger.log(colors.dim('Configure these in your skillpkg.json or install manually.'));
|
|
87
104
|
}
|
|
88
|
-
// Install skill
|
|
89
|
-
await withSpinner(`Installing ${colors.cyan(skill.name)}@${skill.version}`, async () => {
|
|
90
|
-
await store.addSkill(skill, { source: 'local' });
|
|
91
|
-
});
|
|
92
|
-
logger.blank();
|
|
93
|
-
logger.success(`Installed ${colors.cyan(skill.name)}@${skill.version}`);
|
|
94
105
|
logger.blank();
|
|
95
106
|
logger.log('Next steps:');
|
|
96
|
-
logger.item(`Run ${colors.cyan('skillpkg list')} to see installed skills`);
|
|
97
107
|
logger.item(`Run ${colors.cyan('skillpkg sync')} to sync to platforms`);
|
|
108
|
+
logger.item(`Run ${colors.cyan('skillpkg tree')} to see dependency tree`);
|
|
98
109
|
logger.blank();
|
|
99
110
|
}
|
|
100
111
|
/**
|
|
101
|
-
* Install
|
|
112
|
+
* Install all skills from skillpkg.json
|
|
102
113
|
*/
|
|
103
|
-
async function
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
if (!
|
|
107
|
-
logger.error(
|
|
114
|
+
async function installFromConfig(cwd, options) {
|
|
115
|
+
const configManager = createConfigManager();
|
|
116
|
+
const config = await configManager.loadProjectConfig(cwd);
|
|
117
|
+
if (!config) {
|
|
118
|
+
logger.error('No skillpkg.json found');
|
|
119
|
+
logger.log(`Run ${colors.cyan('skillpkg init')} to create one`);
|
|
120
|
+
logger.blank();
|
|
121
|
+
logger.log('Or specify a skill to install:');
|
|
122
|
+
logger.item(`${colors.cyan('skillpkg install ./path/to/skill')} - Install from local path`);
|
|
123
|
+
logger.item(`${colors.cyan('skillpkg install github:user/repo')} - Install from GitHub`);
|
|
108
124
|
process.exit(1);
|
|
109
125
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
stream.resume();
|
|
124
|
-
next();
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
extract.on('finish', async () => {
|
|
128
|
-
if (chunks.length === 0) {
|
|
129
|
-
reject(new Error('skill.yaml not found in pack'));
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
const content = Buffer.concat(chunks).toString('utf-8');
|
|
133
|
-
const result = parse(content);
|
|
134
|
-
if (!result.success || !result.data) {
|
|
135
|
-
reject(new Error(`Failed to parse skill.yaml: ${result.errors?.[0]?.message}`));
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
resolvePromise(result.data);
|
|
139
|
-
});
|
|
140
|
-
extract.on('error', reject);
|
|
141
|
-
createReadStream(fullPath)
|
|
142
|
-
.pipe(createGunzip())
|
|
143
|
-
.pipe(extract);
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
// Get store
|
|
147
|
-
const store = options.global ? createGlobalStore() : createLocalStore();
|
|
126
|
+
const skills = Object.keys(config.skills || {});
|
|
127
|
+
if (skills.length === 0) {
|
|
128
|
+
logger.warn('No skills defined in skillpkg.json');
|
|
129
|
+
logger.log(`Add skills using ${colors.cyan('skillpkg install <skill>')}`);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
logger.info(`Installing ${skills.length} skill(s) from skillpkg.json`);
|
|
133
|
+
logger.blank();
|
|
134
|
+
const stateManager = createStateManager();
|
|
135
|
+
const storeManager = options.global ? createGlobalStore() : createLocalStore();
|
|
136
|
+
const fetcher = createFetcher();
|
|
148
137
|
// Initialize store if needed
|
|
149
|
-
if (!(await
|
|
150
|
-
await withSpinner('Initializing store', () =>
|
|
151
|
-
}
|
|
152
|
-
// Check if already installed
|
|
153
|
-
if (await store.hasSkill(skill.name)) {
|
|
154
|
-
const existing = await store.getSkill(skill.name);
|
|
155
|
-
if (existing?.version === skill.version) {
|
|
156
|
-
logger.warn(`${skill.name}@${skill.version} is already installed`);
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
logger.info(`Updating ${skill.name} from ${existing?.version} to ${skill.version}`);
|
|
138
|
+
if (!(await storeManager.isInitialized())) {
|
|
139
|
+
await withSpinner('Initializing store', () => storeManager.init());
|
|
160
140
|
}
|
|
161
|
-
|
|
162
|
-
await withSpinner(
|
|
163
|
-
|
|
141
|
+
const installer = createInstaller(stateManager, configManager, storeManager, fetcher);
|
|
142
|
+
const result = await withSpinner('Installing skills', async () => {
|
|
143
|
+
return installer.installFromConfig(cwd);
|
|
164
144
|
});
|
|
165
145
|
logger.blank();
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
146
|
+
if (!result.success) {
|
|
147
|
+
logger.error('Some installations failed:');
|
|
148
|
+
for (const error of result.errors) {
|
|
149
|
+
logger.log(` ${colors.red('×')} ${error}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Summary
|
|
153
|
+
const installed = result.skills.filter((s) => s.action === 'installed');
|
|
154
|
+
const skipped = result.skills.filter((s) => s.action === 'skipped');
|
|
155
|
+
logger.log(`Summary: ${colors.green(String(installed.length))} installed, ` +
|
|
156
|
+
`${colors.dim(String(skipped.length))} skipped`);
|
|
157
|
+
if (result.mcpRequired.length > 0) {
|
|
158
|
+
logger.blank();
|
|
159
|
+
logger.warn(`MCP servers required: ${result.mcpRequired.join(', ')}`);
|
|
160
|
+
}
|
|
171
161
|
logger.blank();
|
|
172
162
|
}
|
|
173
163
|
/**
|
|
174
|
-
*
|
|
164
|
+
* Create a SkillFetcherAdapter for the installer
|
|
175
165
|
*/
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
166
|
+
function createFetcher() {
|
|
167
|
+
return {
|
|
168
|
+
async fetchMetadata(source) {
|
|
169
|
+
const skill = await fetchSkillFromSource(source);
|
|
170
|
+
if (!skill)
|
|
171
|
+
return null;
|
|
172
|
+
return {
|
|
173
|
+
name: skill.name,
|
|
174
|
+
version: skill.version,
|
|
175
|
+
dependencies: skill.dependencies,
|
|
176
|
+
};
|
|
177
|
+
},
|
|
178
|
+
async fetchSkill(source) {
|
|
179
|
+
return fetchSkillFromSource(source);
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Fetch skill from various sources
|
|
185
|
+
*/
|
|
186
|
+
async function fetchSkillFromSource(source) {
|
|
187
|
+
const { type, value } = parseSource(source);
|
|
188
|
+
switch (type) {
|
|
189
|
+
case 'local':
|
|
190
|
+
return fetchFromLocal(value);
|
|
191
|
+
case 'github':
|
|
192
|
+
return fetchFromGitHub(value);
|
|
193
|
+
case 'pack':
|
|
194
|
+
return fetchFromPack(value);
|
|
195
|
+
default:
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Fetch skill from local path
|
|
201
|
+
*/
|
|
202
|
+
async function fetchFromLocal(pathArg) {
|
|
203
|
+
const skillPath = isAbsolute(pathArg) ? pathArg : resolve(process.cwd(), pathArg);
|
|
204
|
+
let skillContent = null;
|
|
205
|
+
let isSkillMd = false;
|
|
206
|
+
// Check for SKILL.md first
|
|
207
|
+
for (const mdPath of ['SKILL.md', 'skill.md']) {
|
|
208
|
+
const fullPath = join(skillPath, mdPath);
|
|
209
|
+
if (existsSync(fullPath)) {
|
|
210
|
+
skillContent = await readFile(fullPath, 'utf-8');
|
|
211
|
+
isSkillMd = true;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// Fall back to skill.yaml
|
|
216
|
+
if (!skillContent) {
|
|
217
|
+
const yamlPath = existsSync(join(skillPath, 'skill.yaml'))
|
|
218
|
+
? join(skillPath, 'skill.yaml')
|
|
219
|
+
: skillPath.endsWith('.yaml')
|
|
220
|
+
? skillPath
|
|
221
|
+
: join(skillPath, 'skill.yaml');
|
|
222
|
+
if (existsSync(yamlPath)) {
|
|
223
|
+
skillContent = await readFile(yamlPath, 'utf-8');
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (!skillContent)
|
|
227
|
+
return null;
|
|
228
|
+
try {
|
|
229
|
+
if (isSkillMd) {
|
|
230
|
+
return parseSkillMd(skillContent);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
const result = parse(skillContent);
|
|
234
|
+
return result.success && result.data ? result.data : null;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Fetch skill from GitHub
|
|
243
|
+
*/
|
|
244
|
+
async function fetchFromGitHub(repo) {
|
|
245
|
+
const detection = await detectSkillMd(repo);
|
|
246
|
+
if (!detection.hasSkill || !detection.skillFile)
|
|
247
|
+
return null;
|
|
248
|
+
const content = await fetchSkillMdContent(repo, detection.skillFile);
|
|
249
|
+
if (!content)
|
|
250
|
+
return null;
|
|
251
|
+
return {
|
|
252
|
+
schema: '1.0',
|
|
253
|
+
name: content.name,
|
|
254
|
+
version: content.version,
|
|
255
|
+
description: content.description,
|
|
256
|
+
instructions: content.instructions,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Fetch skill from pack file
|
|
261
|
+
*/
|
|
262
|
+
async function fetchFromPack(packPath) {
|
|
263
|
+
const fullPath = isAbsolute(packPath) ? packPath : resolve(process.cwd(), packPath);
|
|
264
|
+
if (!existsSync(fullPath))
|
|
265
|
+
return null;
|
|
266
|
+
const extract = tar.extract();
|
|
267
|
+
const chunks = [];
|
|
268
|
+
return new Promise((resolvePromise) => {
|
|
269
|
+
extract.on('entry', (header, stream, next) => {
|
|
270
|
+
if (header.name === 'skill.yaml' || header.name.endsWith('/skill.yaml')) {
|
|
271
|
+
stream.on('data', (chunk) => chunks.push(chunk));
|
|
272
|
+
stream.on('end', next);
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
stream.resume();
|
|
276
|
+
next();
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
extract.on('finish', async () => {
|
|
280
|
+
if (chunks.length === 0) {
|
|
281
|
+
resolvePromise(null);
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const content = Buffer.concat(chunks).toString('utf-8');
|
|
285
|
+
const result = parse(content);
|
|
286
|
+
resolvePromise(result.success && result.data ? result.data : null);
|
|
287
|
+
});
|
|
288
|
+
extract.on('error', () => resolvePromise(null));
|
|
289
|
+
createReadStream(fullPath).pipe(createGunzip()).pipe(extract);
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Parse SKILL.md content to Skill object
|
|
294
|
+
*/
|
|
295
|
+
function parseSkillMd(content) {
|
|
296
|
+
const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
|
|
297
|
+
if (!match) {
|
|
298
|
+
throw new Error('Invalid SKILL.md format: missing frontmatter');
|
|
299
|
+
}
|
|
300
|
+
const { parse: parseYaml } = require('yaml');
|
|
301
|
+
const frontmatter = parseYaml(match[1]);
|
|
302
|
+
if (!frontmatter.name) {
|
|
303
|
+
throw new Error('Invalid SKILL.md: missing name in frontmatter');
|
|
304
|
+
}
|
|
305
|
+
return {
|
|
306
|
+
schema: '1.0',
|
|
307
|
+
name: frontmatter.name,
|
|
308
|
+
version: frontmatter.version || '1.0.0',
|
|
309
|
+
description: frontmatter.description || frontmatter.metadata?.['short-description'] || '',
|
|
310
|
+
instructions: match[2],
|
|
311
|
+
dependencies: frontmatter.dependencies,
|
|
312
|
+
};
|
|
189
313
|
}
|
|
190
314
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAaA,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDrE"}
|
package/dist/commands/list.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* list command - List installed skills
|
|
2
|
+
* list command - List installed skills with dependency info
|
|
3
|
+
*
|
|
4
|
+
* v2.0: Shows installation source and dependency information
|
|
3
5
|
*/
|
|
4
|
-
import { createGlobalStore, createLocalStore } from 'skillpkg-core';
|
|
6
|
+
import { createGlobalStore, createLocalStore, createStateManager, } from 'skillpkg-core';
|
|
5
7
|
import { logger, colors, createTable, printTable } from '../ui/index.js';
|
|
6
8
|
/**
|
|
7
9
|
* list command handler
|
|
8
10
|
*/
|
|
9
11
|
export async function listCommand(options) {
|
|
12
|
+
const cwd = process.cwd();
|
|
10
13
|
const store = options.global ? createGlobalStore() : createLocalStore();
|
|
14
|
+
const stateManager = createStateManager();
|
|
11
15
|
// Check if store is initialized
|
|
12
16
|
if (!(await store.isInitialized())) {
|
|
13
17
|
if (options.json) {
|
|
@@ -19,7 +23,7 @@ export async function listCommand(options) {
|
|
|
19
23
|
}
|
|
20
24
|
return;
|
|
21
25
|
}
|
|
22
|
-
// Get all skills
|
|
26
|
+
// Get all skills from store
|
|
23
27
|
const skills = await store.listSkills();
|
|
24
28
|
if (skills.length === 0) {
|
|
25
29
|
if (options.json) {
|
|
@@ -31,12 +35,24 @@ export async function listCommand(options) {
|
|
|
31
35
|
}
|
|
32
36
|
return;
|
|
33
37
|
}
|
|
38
|
+
// Get state for dependency info
|
|
39
|
+
const state = await stateManager.loadState(cwd);
|
|
40
|
+
// Enrich skills with state info
|
|
41
|
+
const enrichedSkills = skills.map((skill) => {
|
|
42
|
+
const skillState = state.skills[skill.name];
|
|
43
|
+
return {
|
|
44
|
+
...skill,
|
|
45
|
+
installedBy: skillState?.installed_by || 'unknown',
|
|
46
|
+
stateSource: skillState?.source || 'unknown',
|
|
47
|
+
hasDependents: Object.values(state.skills).some((s) => s.depended_by?.includes(skill.name)) || false,
|
|
48
|
+
};
|
|
49
|
+
});
|
|
34
50
|
// Output based on format
|
|
35
51
|
if (options.json) {
|
|
36
|
-
console.log(JSON.stringify({ skills }, null, 2));
|
|
52
|
+
console.log(JSON.stringify({ skills: enrichedSkills }, null, 2));
|
|
37
53
|
}
|
|
38
54
|
else {
|
|
39
|
-
printSkillTable(
|
|
55
|
+
printSkillTable(enrichedSkills, options.global);
|
|
40
56
|
}
|
|
41
57
|
}
|
|
42
58
|
/**
|
|
@@ -45,22 +61,36 @@ export async function listCommand(options) {
|
|
|
45
61
|
function printSkillTable(skills, isGlobal = false) {
|
|
46
62
|
logger.header(`Installed Skills (${isGlobal ? 'global' : 'local'})`);
|
|
47
63
|
const table = createTable({
|
|
48
|
-
head: ['Name', 'Version', '
|
|
64
|
+
head: ['Name', 'Version', 'Type', 'Description'],
|
|
65
|
+
});
|
|
66
|
+
// Sort: user-installed first, then transitive
|
|
67
|
+
const sorted = [...skills].sort((a, b) => {
|
|
68
|
+
if (a.installedBy === 'user' && b.installedBy !== 'user')
|
|
69
|
+
return -1;
|
|
70
|
+
if (a.installedBy !== 'user' && b.installedBy === 'user')
|
|
71
|
+
return 1;
|
|
72
|
+
return a.name.localeCompare(b.name);
|
|
49
73
|
});
|
|
50
|
-
for (const skill of
|
|
51
|
-
const
|
|
52
|
-
?
|
|
53
|
-
: colors.dim(
|
|
54
|
-
|
|
55
|
-
colors.cyan(skill.name)
|
|
56
|
-
skill.
|
|
57
|
-
|
|
58
|
-
syncedPlatforms,
|
|
59
|
-
]);
|
|
74
|
+
for (const skill of sorted) {
|
|
75
|
+
const typeLabel = skill.installedBy === 'user'
|
|
76
|
+
? colors.green('direct')
|
|
77
|
+
: colors.dim(`dep:${skill.installedBy}`);
|
|
78
|
+
const nameWithMarker = skill.hasDependents
|
|
79
|
+
? `${colors.cyan(skill.name)} ${colors.yellow('◆')}`
|
|
80
|
+
: colors.cyan(skill.name);
|
|
81
|
+
table.push([nameWithMarker, skill.version, typeLabel, truncate(skill.description, 35)]);
|
|
60
82
|
}
|
|
61
83
|
printTable(table);
|
|
62
84
|
logger.blank();
|
|
63
|
-
|
|
85
|
+
// Summary
|
|
86
|
+
const userInstalled = skills.filter((s) => s.installedBy === 'user').length;
|
|
87
|
+
const transitive = skills.length - userInstalled;
|
|
88
|
+
logger.log(`Total: ${colors.cyan(String(skills.length))} skill(s) ` +
|
|
89
|
+
`(${userInstalled} direct, ${transitive} transitive)`);
|
|
90
|
+
// Legend
|
|
91
|
+
if (skills.some((s) => s.hasDependents)) {
|
|
92
|
+
logger.log(colors.dim(`${colors.yellow('◆')} = has dependents`));
|
|
93
|
+
}
|
|
64
94
|
logger.blank();
|
|
65
95
|
}
|
|
66
96
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|