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.
Files changed (37) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +40 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/deps.d.ts +17 -0
  5. package/dist/commands/deps.d.ts.map +1 -0
  6. package/dist/commands/deps.js +234 -0
  7. package/dist/commands/deps.js.map +1 -0
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +77 -107
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/install.d.ts.map +1 -1
  12. package/dist/commands/install.js +272 -148
  13. package/dist/commands/install.js.map +1 -1
  14. package/dist/commands/list.d.ts.map +1 -1
  15. package/dist/commands/list.js +47 -17
  16. package/dist/commands/list.js.map +1 -1
  17. package/dist/commands/migrate.d.ts +10 -0
  18. package/dist/commands/migrate.d.ts.map +1 -0
  19. package/dist/commands/migrate.js +122 -0
  20. package/dist/commands/migrate.js.map +1 -0
  21. package/dist/commands/search.d.ts +0 -3
  22. package/dist/commands/search.d.ts.map +1 -1
  23. package/dist/commands/search.js +38 -44
  24. package/dist/commands/search.js.map +1 -1
  25. package/dist/commands/status.d.ts +9 -0
  26. package/dist/commands/status.d.ts.map +1 -0
  27. package/dist/commands/status.js +180 -0
  28. package/dist/commands/status.js.map +1 -0
  29. package/dist/commands/sync.d.ts.map +1 -1
  30. package/dist/commands/sync.js +105 -127
  31. package/dist/commands/sync.js.map +1 -1
  32. package/dist/commands/uninstall.d.ts +1 -0
  33. package/dist/commands/uninstall.d.ts.map +1 -1
  34. package/dist/commands/uninstall.js +56 -12
  35. package/dist/commands/uninstall.js.map +1 -1
  36. package/dist/index.js +0 -0
  37. package/package.json +8 -8
@@ -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, createGlobalStore, createLocalStore } from 'skillpkg-core';
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
- * install command handler
19
+ * Parse source string to determine source type
13
20
  */
14
- export async function installCommand(skillArg, options) {
15
- // If no skill argument, try to install from current directory
16
- if (!skillArg) {
17
- const localSkillPath = join(process.cwd(), 'skill.yaml');
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
- // Determine if it's a local path or registry name
28
- const isLocalPath = skillArg.startsWith('.') || skillArg.startsWith('/') || existsSync(skillArg);
29
- if (isLocalPath) {
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
- else {
39
- await installFromRegistry(skillArg, options);
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
- * Install skill from local path
38
+ * install command handler
44
39
  */
45
- async function installFromLocal(pathArg, options) {
46
- // Resolve path
47
- const skillPath = isAbsolute(pathArg) ? pathArg : resolve(process.cwd(), pathArg);
48
- const yamlPath = existsSync(join(skillPath, 'skill.yaml'))
49
- ? join(skillPath, 'skill.yaml')
50
- : skillPath.endsWith('.yaml')
51
- ? skillPath
52
- : join(skillPath, 'skill.yaml');
53
- if (!existsSync(yamlPath)) {
54
- logger.error(`skill.yaml not found at ${yamlPath}`);
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
- // Parse skill.yaml
58
- let skill;
59
- try {
60
- const content = await readFile(yamlPath, 'utf-8');
61
- const result = parse(content);
62
- if (!result.success || !result.data) {
63
- logger.error('Failed to parse skill.yaml:');
64
- result.errors?.forEach((e) => logger.error(` ${e.message}`));
65
- process.exit(1);
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
- catch (error) {
70
- logger.error(`Failed to read skill.yaml: ${error instanceof Error ? error.message : error}`);
71
- process.exit(1);
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
- // Get store
74
- const store = options.global ? createGlobalStore() : createLocalStore();
75
- // Initialize store if needed
76
- if (!(await store.isInitialized())) {
77
- await withSpinner('Initializing store', () => store.init());
78
- }
79
- // Check if already installed
80
- if (await store.hasSkill(skill.name)) {
81
- const existing = await store.getSkill(skill.name);
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.info(`Updating ${skill.name} from ${existing?.version} to ${skill.version}`);
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 skill from .skillpkg pack file
112
+ * Install all skills from skillpkg.json
102
113
  */
103
- async function installFromPack(packPath, options) {
104
- // Resolve path
105
- const fullPath = isAbsolute(packPath) ? packPath : resolve(process.cwd(), packPath);
106
- if (!existsSync(fullPath)) {
107
- logger.error(`Pack file not found: ${fullPath}`);
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
- logger.info(`Installing from ${colors.cyan(packPath)}`);
111
- // Extract skill.yaml from the pack
112
- const skill = await withSpinner('Extracting pack', async () => {
113
- const extract = tar.extract();
114
- const chunks = [];
115
- return new Promise((resolvePromise, reject) => {
116
- extract.on('entry', (header, stream, next) => {
117
- // skill.yaml can be at root or inside a skill-named folder
118
- if (header.name === 'skill.yaml' || header.name.endsWith('/skill.yaml')) {
119
- stream.on('data', (chunk) => chunks.push(chunk));
120
- stream.on('end', next);
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 store.isInitialized())) {
150
- await withSpinner('Initializing store', () => store.init());
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
- // Install skill
162
- await withSpinner(`Installing ${colors.cyan(skill.name)}@${skill.version}`, async () => {
163
- await store.addSkill(skill, { source: 'local' });
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
- logger.success(`Installed ${colors.cyan(skill.name)}@${skill.version}`);
167
- logger.blank();
168
- logger.log('Next steps:');
169
- logger.item(`Run ${colors.cyan('skillpkg list')} to see installed skills`);
170
- logger.item(`Run ${colors.cyan('skillpkg sync')} to sync to platforms`);
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
- * Install skill from registry
164
+ * Create a SkillFetcherAdapter for the installer
175
165
  */
176
- async function installFromRegistry(skillName, _options) {
177
- // Parse name@version
178
- const [name, version] = skillName.includes('@')
179
- ? skillName.split('@')
180
- : [skillName, 'latest'];
181
- logger.info(`Installing ${colors.cyan(name)}@${version} from registry...`);
182
- // TODO: Implement registry client in M6
183
- logger.warn('Registry installation not yet implemented');
184
- logger.log(`Will be available after M6: Registry Client`);
185
- logger.blank();
186
- logger.log('For now, use local installation:');
187
- logger.item(`${colors.cyan('skillpkg install ./path/to/skill')}`);
188
- logger.blank();
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":"AAOA,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,CAiCrE"}
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"}
@@ -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(skills, options.global);
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', 'Description', 'Synced To'],
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 skills) {
51
- const syncedPlatforms = skill.syncedPlatforms.length > 0
52
- ? skill.syncedPlatforms.map((p) => colors.green(p)).join(', ')
53
- : colors.dim('none');
54
- table.push([
55
- colors.cyan(skill.name),
56
- skill.version,
57
- truncate(skill.description, 30),
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
- logger.log(`Total: ${colors.cyan(String(skills.length))} skill(s)`);
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":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ interface MigrateOptions {
2
+ dryRun?: boolean;
3
+ force?: boolean;
4
+ }
5
+ /**
6
+ * migrate command handler
7
+ */
8
+ export declare function migrateCommand(options: MigrateOptions): Promise<void>;
9
+ export {};
10
+ //# sourceMappingURL=migrate.d.ts.map