skillpkg-cli 0.2.0 → 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 +1 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +197 -142
- 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/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/cli.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
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;AAgBzC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0JvD"}
|
package/dist/cli.js
CHANGED
|
@@ -9,16 +9,19 @@ import { searchCommand } from './commands/search.js';
|
|
|
9
9
|
import { infoCommand } from './commands/info.js';
|
|
10
10
|
import { loginCommand, logoutCommand, whoamiCommand } from './commands/login.js';
|
|
11
11
|
import { publishCommand } from './commands/publish.js';
|
|
12
|
+
import { depsCommand, whyCommand, treeCommand } from './commands/deps.js';
|
|
13
|
+
import { statusCommand } from './commands/status.js';
|
|
14
|
+
// import { migrateCommand } from './commands/migrate.js'; // Hidden until needed
|
|
12
15
|
/**
|
|
13
16
|
* Register all CLI commands
|
|
14
17
|
*/
|
|
15
18
|
export function registerCommands(program) {
|
|
16
|
-
// init -
|
|
19
|
+
// init - Initialize a skillpkg project
|
|
17
20
|
program
|
|
18
21
|
.command('init')
|
|
19
|
-
.description('
|
|
22
|
+
.description('Initialize a skillpkg project (create skillpkg.json)')
|
|
20
23
|
.option('-y, --yes', 'Use default values without prompts')
|
|
21
|
-
.option('-n, --name <name>', '
|
|
24
|
+
.option('-n, --name <name>', 'Project name')
|
|
22
25
|
.action(initCommand);
|
|
23
26
|
// install - Install a skill
|
|
24
27
|
program
|
|
@@ -43,6 +46,7 @@ export function registerCommands(program) {
|
|
|
43
46
|
.description('Uninstall a skill')
|
|
44
47
|
.option('-g, --global', 'Uninstall from global store')
|
|
45
48
|
.option('-c, --clean', 'Also remove synced files from all platforms')
|
|
49
|
+
.option('-f, --force', 'Force uninstall even if other skills depend on it')
|
|
46
50
|
.action(uninstallCommand);
|
|
47
51
|
// sync - Sync skills to platforms
|
|
48
52
|
program
|
|
@@ -115,5 +119,38 @@ export function registerCommands(program) {
|
|
|
115
119
|
.option('--registry <url>', 'Registry URL')
|
|
116
120
|
.option('--dry-run', 'Show what would be published without publishing')
|
|
117
121
|
.action(publishCommand);
|
|
122
|
+
// deps - Show dependencies of a skill
|
|
123
|
+
program
|
|
124
|
+
.command('deps <skill>')
|
|
125
|
+
.description('Show dependencies of a skill')
|
|
126
|
+
.option('--json', 'Output as JSON')
|
|
127
|
+
.action(depsCommand);
|
|
128
|
+
// why - Show why a skill is installed
|
|
129
|
+
program
|
|
130
|
+
.command('why <skill>')
|
|
131
|
+
.description('Show why a skill is installed (dependency chain)')
|
|
132
|
+
.option('--json', 'Output as JSON')
|
|
133
|
+
.action(whyCommand);
|
|
134
|
+
// tree - Show full dependency tree
|
|
135
|
+
program
|
|
136
|
+
.command('tree')
|
|
137
|
+
.description('Show full dependency tree of installed skills')
|
|
138
|
+
.option('--json', 'Output as JSON')
|
|
139
|
+
.action(treeCommand);
|
|
140
|
+
// status - Show project status
|
|
141
|
+
program
|
|
142
|
+
.command('status')
|
|
143
|
+
.description('Show overall project status (skills, MCP, sync)')
|
|
144
|
+
.option('--json', 'Output as JSON')
|
|
145
|
+
.action(statusCommand);
|
|
146
|
+
// migrate - Migrate from v1.x to v2.0
|
|
147
|
+
// Hidden: Not registered in CLI until public release needs migration support
|
|
148
|
+
// To enable: uncomment the command registration below
|
|
149
|
+
// program
|
|
150
|
+
// .command('migrate')
|
|
151
|
+
// .description('Migrate from v1.x to v2.0 (generates skillpkg.json and state.json)')
|
|
152
|
+
// .option('--dry-run', 'Show what would be migrated without making changes')
|
|
153
|
+
// .option('-f, --force', 'Overwrite existing skillpkg.json and state.json')
|
|
154
|
+
// .action(migrateCommand);
|
|
118
155
|
}
|
|
119
156
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface DepsOptions {
|
|
2
|
+
json?: boolean;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* deps command handler - Show dependencies of a skill
|
|
6
|
+
*/
|
|
7
|
+
export declare function depsCommand(skillName: string, options: DepsOptions): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* why command handler - Show why a skill is installed
|
|
10
|
+
*/
|
|
11
|
+
export declare function whyCommand(skillName: string, options: DepsOptions): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* tree command handler - Show full dependency tree
|
|
14
|
+
*/
|
|
15
|
+
export declare function treeCommand(options: DepsOptions): Promise<void>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/commands/deps.ts"],"names":[],"mappings":"AAWA,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAwEf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDrE"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* deps command - Show skill dependencies
|
|
3
|
+
*
|
|
4
|
+
* v2.0: Uses StateManager and DependencyResolver from core
|
|
5
|
+
*/
|
|
6
|
+
import { createStateManager, } from 'skillpkg-core';
|
|
7
|
+
import { logger, colors } from '../ui/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* deps command handler - Show dependencies of a skill
|
|
10
|
+
*/
|
|
11
|
+
export async function depsCommand(skillName, options) {
|
|
12
|
+
const cwd = process.cwd();
|
|
13
|
+
const stateManager = createStateManager();
|
|
14
|
+
// Load state
|
|
15
|
+
const state = await stateManager.loadState(cwd);
|
|
16
|
+
// Check if skill exists
|
|
17
|
+
const skillState = state.skills[skillName];
|
|
18
|
+
if (!skillState) {
|
|
19
|
+
logger.error(`Skill not found: ${colors.cyan(skillName)}`);
|
|
20
|
+
logger.log(`Run ${colors.cyan('skillpkg list')} to see installed skills`);
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
if (options.json) {
|
|
24
|
+
// JSON output
|
|
25
|
+
const output = {
|
|
26
|
+
skill: skillName,
|
|
27
|
+
version: skillState.version,
|
|
28
|
+
dependsOn: skillState.depended_by || [],
|
|
29
|
+
requiredBy: Object.entries(state.skills)
|
|
30
|
+
.filter(([_, s]) => s.depended_by?.includes(skillName))
|
|
31
|
+
.map(([name]) => name),
|
|
32
|
+
};
|
|
33
|
+
console.log(JSON.stringify(output, null, 2));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
// Human-readable output
|
|
37
|
+
logger.header(`Dependencies for ${colors.cyan(skillName)}`);
|
|
38
|
+
logger.blank();
|
|
39
|
+
logger.log(`Version: ${colors.dim(skillState.version)}`);
|
|
40
|
+
logger.log(`Source: ${colors.dim(skillState.source)}`);
|
|
41
|
+
logger.log(`Installed by: ${colors.dim(skillState.installed_by)}`);
|
|
42
|
+
logger.blank();
|
|
43
|
+
// Show what this skill depends on
|
|
44
|
+
const dependsOn = skillState.depended_by || [];
|
|
45
|
+
if (dependsOn.length > 0) {
|
|
46
|
+
logger.log('Depends on:');
|
|
47
|
+
for (const dep of dependsOn) {
|
|
48
|
+
const depState = state.skills[dep];
|
|
49
|
+
if (depState) {
|
|
50
|
+
logger.item(`${colors.cyan(dep)} ${colors.dim(`v${depState.version}`)}`);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
logger.item(`${colors.cyan(dep)} ${colors.red('(not installed)')}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
logger.log(colors.dim('No dependencies'));
|
|
59
|
+
}
|
|
60
|
+
logger.blank();
|
|
61
|
+
// Show what depends on this skill
|
|
62
|
+
const requiredBy = Object.entries(state.skills)
|
|
63
|
+
.filter(([_, s]) => s.depended_by?.includes(skillName))
|
|
64
|
+
.map(([name]) => name);
|
|
65
|
+
if (requiredBy.length > 0) {
|
|
66
|
+
logger.log('Required by:');
|
|
67
|
+
for (const dep of requiredBy) {
|
|
68
|
+
const depState = state.skills[dep];
|
|
69
|
+
logger.item(`${colors.cyan(dep)} ${colors.dim(`v${depState.version}`)}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
logger.log(colors.dim('No skills depend on this'));
|
|
74
|
+
}
|
|
75
|
+
logger.blank();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* why command handler - Show why a skill is installed
|
|
79
|
+
*/
|
|
80
|
+
export async function whyCommand(skillName, options) {
|
|
81
|
+
const cwd = process.cwd();
|
|
82
|
+
const stateManager = createStateManager();
|
|
83
|
+
// Load state
|
|
84
|
+
const state = await stateManager.loadState(cwd);
|
|
85
|
+
// Check if skill exists
|
|
86
|
+
const skillState = state.skills[skillName];
|
|
87
|
+
if (!skillState) {
|
|
88
|
+
logger.error(`Skill not found: ${colors.cyan(skillName)}`);
|
|
89
|
+
logger.log(`Run ${colors.cyan('skillpkg list')} to see installed skills`);
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
if (options.json) {
|
|
93
|
+
// JSON output
|
|
94
|
+
const output = buildDependencyChain(skillName, state.skills);
|
|
95
|
+
console.log(JSON.stringify(output, null, 2));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// Human-readable output
|
|
99
|
+
logger.header(`Why is ${colors.cyan(skillName)} installed?`);
|
|
100
|
+
logger.blank();
|
|
101
|
+
if (skillState.installed_by === 'user') {
|
|
102
|
+
logger.success('Directly installed by user');
|
|
103
|
+
logger.log(`Source: ${colors.dim(skillState.source)}`);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
logger.log('Installed as a dependency');
|
|
107
|
+
logger.blank();
|
|
108
|
+
// Build dependency chain
|
|
109
|
+
const chain = buildDependencyChain(skillName, state.skills);
|
|
110
|
+
printDependencyChain(chain, 0);
|
|
111
|
+
}
|
|
112
|
+
logger.blank();
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* tree command handler - Show full dependency tree
|
|
116
|
+
*/
|
|
117
|
+
export async function treeCommand(options) {
|
|
118
|
+
const cwd = process.cwd();
|
|
119
|
+
const stateManager = createStateManager();
|
|
120
|
+
// Load state
|
|
121
|
+
const state = await stateManager.loadState(cwd);
|
|
122
|
+
const skills = Object.keys(state.skills);
|
|
123
|
+
if (skills.length === 0) {
|
|
124
|
+
logger.error('No skills installed');
|
|
125
|
+
logger.log(`Run ${colors.cyan('skillpkg install <skill>')} to install skills`);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
if (options.json) {
|
|
129
|
+
// JSON output - full tree structure
|
|
130
|
+
const tree = buildFullTree(state.skills);
|
|
131
|
+
console.log(JSON.stringify(tree, null, 2));
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
// Human-readable output
|
|
135
|
+
logger.header('Dependency Tree');
|
|
136
|
+
logger.blank();
|
|
137
|
+
// Get root skills (user-installed)
|
|
138
|
+
const rootSkills = Object.entries(state.skills)
|
|
139
|
+
.filter(([_, s]) => s.installed_by === 'user')
|
|
140
|
+
.map(([name]) => name);
|
|
141
|
+
if (rootSkills.length === 0) {
|
|
142
|
+
logger.log(colors.dim('No user-installed skills'));
|
|
143
|
+
logger.blank();
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
for (const rootName of rootSkills) {
|
|
147
|
+
printSkillTree(rootName, state.skills, 0, new Set());
|
|
148
|
+
}
|
|
149
|
+
logger.blank();
|
|
150
|
+
// Summary
|
|
151
|
+
const userInstalled = rootSkills.length;
|
|
152
|
+
const transitive = skills.length - userInstalled;
|
|
153
|
+
logger.log(`Total: ${colors.cyan(String(skills.length))} skills ` +
|
|
154
|
+
`(${userInstalled} direct, ${transitive} transitive)`);
|
|
155
|
+
logger.blank();
|
|
156
|
+
}
|
|
157
|
+
function buildDependencyChain(skillName, skills) {
|
|
158
|
+
const skillState = skills[skillName];
|
|
159
|
+
if (!skillState) {
|
|
160
|
+
return { skill: skillName, version: 'unknown', installedBy: 'unknown' };
|
|
161
|
+
}
|
|
162
|
+
const chain = {
|
|
163
|
+
skill: skillName,
|
|
164
|
+
version: skillState.version,
|
|
165
|
+
installedBy: skillState.installed_by,
|
|
166
|
+
};
|
|
167
|
+
// Find skills that depend on this one
|
|
168
|
+
const requiredBy = Object.entries(skills)
|
|
169
|
+
.filter(([_, s]) => s.depended_by?.includes(skillName))
|
|
170
|
+
.map(([name]) => buildDependencyChain(name, skills));
|
|
171
|
+
if (requiredBy.length > 0) {
|
|
172
|
+
chain.requiredBy = requiredBy;
|
|
173
|
+
}
|
|
174
|
+
return chain;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Print dependency chain (for "why" command)
|
|
178
|
+
*/
|
|
179
|
+
function printDependencyChain(chain, depth) {
|
|
180
|
+
const indent = ' '.repeat(depth);
|
|
181
|
+
const prefix = depth === 0 ? '' : '└── ';
|
|
182
|
+
if (chain.installedBy === 'user') {
|
|
183
|
+
logger.log(`${indent}${prefix}${colors.cyan(chain.skill)} ${colors.dim(`v${chain.version}`)} ${colors.green('(user)')}`);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
logger.log(`${indent}${prefix}${colors.cyan(chain.skill)} ${colors.dim(`v${chain.version}`)}`);
|
|
187
|
+
}
|
|
188
|
+
if (chain.requiredBy) {
|
|
189
|
+
for (const dep of chain.requiredBy) {
|
|
190
|
+
printDependencyChain(dep, depth + 1);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
function buildFullTree(skills) {
|
|
195
|
+
const roots = Object.entries(skills)
|
|
196
|
+
.filter(([_, s]) => s.installed_by === 'user')
|
|
197
|
+
.map(([name]) => buildTreeNode(name, skills, new Set()));
|
|
198
|
+
return roots;
|
|
199
|
+
}
|
|
200
|
+
function buildTreeNode(skillName, skills, visited) {
|
|
201
|
+
const skillState = skills[skillName];
|
|
202
|
+
const node = {
|
|
203
|
+
name: skillName,
|
|
204
|
+
version: skillState?.version || 'unknown',
|
|
205
|
+
};
|
|
206
|
+
if (visited.has(skillName)) {
|
|
207
|
+
return { ...node, name: `${skillName} (circular)` };
|
|
208
|
+
}
|
|
209
|
+
visited.add(skillName);
|
|
210
|
+
const deps = skillState?.depended_by || [];
|
|
211
|
+
if (deps.length > 0) {
|
|
212
|
+
node.dependencies = deps.map((dep) => buildTreeNode(dep, skills, new Set(visited)));
|
|
213
|
+
}
|
|
214
|
+
return node;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Print skill tree (for "tree" command)
|
|
218
|
+
*/
|
|
219
|
+
function printSkillTree(skillName, skills, depth, visited) {
|
|
220
|
+
const skillState = skills[skillName];
|
|
221
|
+
const indent = depth === 0 ? '' : ' '.repeat(depth - 1) + '├── ';
|
|
222
|
+
if (visited.has(skillName)) {
|
|
223
|
+
logger.log(`${indent}${colors.cyan(skillName)} ${colors.yellow('(circular)')}`);
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
visited.add(skillName);
|
|
227
|
+
const version = skillState?.version || 'unknown';
|
|
228
|
+
logger.log(`${indent}${colors.cyan(skillName)} ${colors.dim(`v${version}`)}`);
|
|
229
|
+
const deps = skillState?.depended_by || [];
|
|
230
|
+
for (let i = 0; i < deps.length; i++) {
|
|
231
|
+
printSkillTree(deps[i], skills, depth + 1, new Set(visited));
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/commands/deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;AAoCD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FrE"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,46 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* init command -
|
|
2
|
+
* init command - Initialize a skillpkg project
|
|
3
|
+
*
|
|
4
|
+
* v2.0: Creates skillpkg.json for project configuration
|
|
5
|
+
* For creating skills, use SKILL.md format directly
|
|
3
6
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { writeFile } from 'fs/promises';
|
|
6
|
-
import { join, basename } from 'path';
|
|
7
|
+
import { basename } from 'path';
|
|
7
8
|
import inquirer from 'inquirer';
|
|
8
|
-
import {
|
|
9
|
+
import { createConfigManager } from 'skillpkg-core';
|
|
9
10
|
import { logger, colors, withSpinner } from '../ui/index.js';
|
|
10
11
|
/**
|
|
11
|
-
*
|
|
12
|
+
* Get default project name from directory
|
|
12
13
|
*/
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
name,
|
|
17
|
-
version: '1.0.0',
|
|
18
|
-
description: 'A skillpkg skill',
|
|
19
|
-
instructions: `# ${name}
|
|
20
|
-
|
|
21
|
-
## Overview
|
|
22
|
-
|
|
23
|
-
Describe what this skill does.
|
|
24
|
-
|
|
25
|
-
## Usage
|
|
26
|
-
|
|
27
|
-
Explain how to use this skill.
|
|
28
|
-
|
|
29
|
-
## Examples
|
|
30
|
-
|
|
31
|
-
Provide usage examples.
|
|
32
|
-
`,
|
|
33
|
-
};
|
|
14
|
+
function getDefaultProjectName() {
|
|
15
|
+
const dirName = basename(process.cwd());
|
|
16
|
+
return toKebabCase(dirName) || 'my-project';
|
|
34
17
|
}
|
|
35
18
|
/**
|
|
36
|
-
*
|
|
19
|
+
* Convert string to kebab-case
|
|
20
|
+
*/
|
|
21
|
+
function toKebabCase(str) {
|
|
22
|
+
return str
|
|
23
|
+
.toLowerCase()
|
|
24
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
25
|
+
.replace(/^-|-$/g, '');
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validate project name
|
|
37
29
|
*/
|
|
38
30
|
function validateName(input) {
|
|
39
31
|
if (!input) {
|
|
40
32
|
return 'Name is required';
|
|
41
33
|
}
|
|
42
|
-
if (!/^[a-z][a-z0-9-]*[a-z0-9]$/.test(input)) {
|
|
43
|
-
return 'Name must be kebab-case (e.g., my-
|
|
34
|
+
if (!/^[a-z][a-z0-9-]*[a-z0-9]$/.test(input) && input.length >= 2) {
|
|
35
|
+
return 'Name must be kebab-case (e.g., my-project)';
|
|
44
36
|
}
|
|
45
37
|
if (input.length < 2 || input.length > 100) {
|
|
46
38
|
return 'Name must be between 2 and 100 characters';
|
|
@@ -52,110 +44,88 @@ function validateName(input) {
|
|
|
52
44
|
*/
|
|
53
45
|
export async function initCommand(options) {
|
|
54
46
|
const cwd = process.cwd();
|
|
55
|
-
const
|
|
56
|
-
// Check if
|
|
57
|
-
|
|
58
|
-
|
|
47
|
+
const configManager = createConfigManager();
|
|
48
|
+
// Check if skillpkg.json already exists
|
|
49
|
+
const existingConfig = await configManager.loadProjectConfig(cwd);
|
|
50
|
+
if (existingConfig) {
|
|
51
|
+
logger.error('skillpkg.json already exists in this directory');
|
|
52
|
+
logger.log(`Use ${colors.cyan('skillpkg install <skill>')} to add skills`);
|
|
59
53
|
process.exit(1);
|
|
60
54
|
}
|
|
61
|
-
let
|
|
55
|
+
let config;
|
|
62
56
|
if (options.yes) {
|
|
63
57
|
// Quick mode - use defaults
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
const projectName = options.name || getDefaultProjectName();
|
|
59
|
+
config = {
|
|
60
|
+
$schema: 'https://skillpkg.dev/schemas/skillpkg.json',
|
|
61
|
+
name: projectName,
|
|
62
|
+
skills: {},
|
|
63
|
+
sync_targets: {
|
|
64
|
+
'claude-code': true,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
logger.info(`Creating skillpkg.json with defaults (name: ${colors.cyan(projectName)})`);
|
|
67
68
|
}
|
|
68
69
|
else {
|
|
69
70
|
// Interactive mode
|
|
70
|
-
logger.header('
|
|
71
|
+
logger.header('Initialize skillpkg project');
|
|
72
|
+
logger.blank();
|
|
71
73
|
const answers = await inquirer.prompt([
|
|
72
74
|
{
|
|
73
75
|
type: 'input',
|
|
74
76
|
name: 'name',
|
|
75
|
-
message: '
|
|
76
|
-
default: options.name ||
|
|
77
|
+
message: 'Project name:',
|
|
78
|
+
default: options.name || getDefaultProjectName(),
|
|
77
79
|
validate: validateName,
|
|
78
80
|
},
|
|
79
|
-
{
|
|
80
|
-
type: 'input',
|
|
81
|
-
name: 'version',
|
|
82
|
-
message: 'Version:',
|
|
83
|
-
default: '1.0.0',
|
|
84
|
-
validate: (input) => {
|
|
85
|
-
if (!/^\d+\.\d+\.\d+/.test(input)) {
|
|
86
|
-
return 'Version must be semver (e.g., 1.0.0)';
|
|
87
|
-
}
|
|
88
|
-
return true;
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
type: 'input',
|
|
93
|
-
name: 'description',
|
|
94
|
-
message: 'Description:',
|
|
95
|
-
default: 'A skillpkg skill',
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
type: 'input',
|
|
99
|
-
name: 'author',
|
|
100
|
-
message: 'Author:',
|
|
101
|
-
},
|
|
102
81
|
{
|
|
103
82
|
type: 'checkbox',
|
|
104
|
-
name: '
|
|
105
|
-
message: '
|
|
83
|
+
name: 'syncTargets',
|
|
84
|
+
message: 'Enable sync targets:',
|
|
106
85
|
choices: [
|
|
107
|
-
{ name: 'Claude Code', value: 'claude-code', checked: true },
|
|
108
|
-
{ name: 'Codex (
|
|
109
|
-
{ name: 'GitHub Copilot', value: 'copilot' },
|
|
110
|
-
{ name: 'Cline (
|
|
86
|
+
{ name: 'Claude Code (.claude/skills/)', value: 'claude-code', checked: true },
|
|
87
|
+
{ name: 'Codex (.codex/skills/)', value: 'codex' },
|
|
88
|
+
{ name: 'GitHub Copilot (.github/)', value: 'copilot' },
|
|
89
|
+
{ name: 'Cline (.cline/)', value: 'cline' },
|
|
111
90
|
],
|
|
112
91
|
},
|
|
113
92
|
]);
|
|
114
|
-
|
|
115
|
-
|
|
93
|
+
// Build sync_targets object
|
|
94
|
+
const syncTargets = {};
|
|
95
|
+
for (const target of answers.syncTargets) {
|
|
96
|
+
syncTargets[target] = true;
|
|
97
|
+
}
|
|
98
|
+
config = {
|
|
99
|
+
$schema: 'https://skillpkg.dev/schemas/skillpkg.json',
|
|
116
100
|
name: answers.name,
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
...(answers.author && { author: answers.author }),
|
|
120
|
-
...(answers.platforms?.length > 0 && {
|
|
121
|
-
platforms: Object.fromEntries(answers.platforms.map((p) => [p, {}])),
|
|
122
|
-
}),
|
|
123
|
-
instructions: `# ${answers.name}
|
|
124
|
-
|
|
125
|
-
## Overview
|
|
126
|
-
|
|
127
|
-
${answers.description}
|
|
128
|
-
|
|
129
|
-
## Usage
|
|
130
|
-
|
|
131
|
-
Explain how to use this skill.
|
|
132
|
-
|
|
133
|
-
## Examples
|
|
134
|
-
|
|
135
|
-
Provide usage examples.
|
|
136
|
-
`,
|
|
101
|
+
skills: {},
|
|
102
|
+
sync_targets: syncTargets,
|
|
137
103
|
};
|
|
138
104
|
}
|
|
139
|
-
//
|
|
140
|
-
await withSpinner('Creating
|
|
141
|
-
|
|
142
|
-
|
|
105
|
+
// Initialize project
|
|
106
|
+
await withSpinner('Creating skillpkg.json', async () => {
|
|
107
|
+
await configManager.initProject(cwd, config.name);
|
|
108
|
+
// Update with full config (including sync_targets)
|
|
109
|
+
const loaded = await configManager.loadProjectConfig(cwd);
|
|
110
|
+
if (loaded) {
|
|
111
|
+
loaded.sync_targets = config.sync_targets;
|
|
112
|
+
await configManager.saveProjectConfig(cwd, loaded);
|
|
113
|
+
}
|
|
143
114
|
});
|
|
144
115
|
logger.blank();
|
|
145
|
-
logger.success(`Created ${colors.cyan('
|
|
116
|
+
logger.success(`Created ${colors.cyan('skillpkg.json')}`);
|
|
117
|
+
logger.blank();
|
|
118
|
+
// Show what was created
|
|
119
|
+
logger.log('Configuration:');
|
|
120
|
+
logger.item(`Name: ${colors.cyan(config.name)}`);
|
|
121
|
+
if (Object.keys(config.sync_targets || {}).length > 0) {
|
|
122
|
+
logger.item(`Sync targets: ${colors.cyan(Object.keys(config.sync_targets || {}).join(', '))}`);
|
|
123
|
+
}
|
|
146
124
|
logger.blank();
|
|
147
125
|
logger.log('Next steps:');
|
|
148
|
-
logger.item(`
|
|
126
|
+
logger.item(`Run ${colors.cyan('skillpkg install <skill>')} to install skills`);
|
|
127
|
+
logger.item(`Run ${colors.cyan('skillpkg search <query>')} to find skills`);
|
|
149
128
|
logger.item(`Run ${colors.cyan('skillpkg sync')} to sync to platforms`);
|
|
150
129
|
logger.blank();
|
|
151
130
|
}
|
|
152
|
-
/**
|
|
153
|
-
* Convert string to kebab-case
|
|
154
|
-
*/
|
|
155
|
-
function toKebabCase(str) {
|
|
156
|
-
return str
|
|
157
|
-
.toLowerCase()
|
|
158
|
-
.replace(/[^a-z0-9]+/g, '-')
|
|
159
|
-
.replace(/^-|-$/g, '');
|
|
160
|
-
}
|
|
161
131
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AA6BA,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAyBD;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAqFf"}
|