skillpkg-core 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/config/config-manager.d.ts +83 -0
- package/dist/config/config-manager.d.ts.map +1 -0
- package/dist/config/config-manager.js +220 -0
- package/dist/config/config-manager.js.map +1 -0
- package/dist/config/index.d.ts +23 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +23 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/schemas/skillpkg.schema.json +103 -0
- package/dist/config/types.d.ts +69 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +29 -0
- package/dist/config/types.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/installer/index.d.ts +33 -0
- package/dist/installer/index.d.ts.map +1 -0
- package/dist/installer/index.js +33 -0
- package/dist/installer/index.js.map +1 -0
- package/dist/installer/installer.d.ts +54 -0
- package/dist/installer/installer.d.ts.map +1 -0
- package/dist/installer/installer.js +371 -0
- package/dist/installer/installer.js.map +1 -0
- package/dist/installer/types.d.ts +138 -0
- package/dist/installer/types.d.ts.map +1 -0
- package/dist/installer/types.js +2 -0
- package/dist/installer/types.js.map +1 -0
- package/dist/parser/schema.d.ts +26 -5
- package/dist/parser/schema.d.ts.map +1 -1
- package/dist/parser/schema.js +25 -3
- package/dist/parser/schema.js.map +1 -1
- package/dist/resolver/dependency-resolver.d.ts +59 -0
- package/dist/resolver/dependency-resolver.d.ts.map +1 -0
- package/dist/resolver/dependency-resolver.js +217 -0
- package/dist/resolver/dependency-resolver.js.map +1 -0
- package/dist/resolver/index.d.ts +35 -0
- package/dist/resolver/index.d.ts.map +1 -0
- package/dist/resolver/index.js +34 -0
- package/dist/resolver/index.js.map +1 -0
- package/dist/resolver/install-plan.d.ts +107 -0
- package/dist/resolver/install-plan.d.ts.map +1 -0
- package/dist/resolver/install-plan.js +137 -0
- package/dist/resolver/install-plan.js.map +1 -0
- package/dist/resolver/types.d.ts +76 -0
- package/dist/resolver/types.d.ts.map +1 -0
- package/dist/resolver/types.js +5 -0
- package/dist/resolver/types.js.map +1 -0
- package/dist/state/index.d.ts +30 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +30 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/state-manager.d.ts +105 -0
- package/dist/state/state-manager.d.ts.map +1 -0
- package/dist/state/state-manager.js +242 -0
- package/dist/state/state-manager.js.map +1 -0
- package/dist/state/types.d.ts +86 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/state/types.js +21 -0
- package/dist/state/types.js.map +1 -0
- package/dist/syncer/index.d.ts +28 -0
- package/dist/syncer/index.d.ts.map +1 -0
- package/dist/syncer/index.js +28 -0
- package/dist/syncer/index.js.map +1 -0
- package/dist/syncer/syncer.d.ts +74 -0
- package/dist/syncer/syncer.d.ts.map +1 -0
- package/dist/syncer/syncer.js +405 -0
- package/dist/syncer/syncer.js.map +1 -0
- package/dist/syncer/types.d.ts +143 -0
- package/dist/syncer/types.d.ts.map +1 -0
- package/dist/syncer/types.js +84 -0
- package/dist/syncer/types.js.map +1 -0
- package/dist/types.d.ts +27 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +25 -0
- package/dist/types.js.map +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { SkillpkgConfig, McpConfig, SyncTargets } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration file name
|
|
4
|
+
*/
|
|
5
|
+
export declare const CONFIG_FILE_NAME = "skillpkg.json";
|
|
6
|
+
/**
|
|
7
|
+
* Validation result
|
|
8
|
+
*/
|
|
9
|
+
export interface ValidationResult {
|
|
10
|
+
valid: boolean;
|
|
11
|
+
errors?: string[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ConfigManager class - manages skillpkg.json
|
|
15
|
+
*/
|
|
16
|
+
export declare class ConfigManager {
|
|
17
|
+
private ajv;
|
|
18
|
+
private validate;
|
|
19
|
+
constructor();
|
|
20
|
+
/**
|
|
21
|
+
* Get the config file path for a project
|
|
22
|
+
*/
|
|
23
|
+
getConfigPath(projectPath: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Check if a project has skillpkg.json
|
|
26
|
+
*/
|
|
27
|
+
hasConfig(projectPath: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Load project configuration
|
|
30
|
+
*/
|
|
31
|
+
loadProjectConfig(projectPath: string): Promise<SkillpkgConfig | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Save project configuration
|
|
34
|
+
*/
|
|
35
|
+
saveProjectConfig(projectPath: string, config: SkillpkgConfig): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Initialize a new project with skillpkg.json
|
|
38
|
+
*/
|
|
39
|
+
initProject(projectPath: string, name: string, options?: {
|
|
40
|
+
force?: boolean;
|
|
41
|
+
}): Promise<SkillpkgConfig>;
|
|
42
|
+
/**
|
|
43
|
+
* Add a skill to the project configuration
|
|
44
|
+
*/
|
|
45
|
+
addSkill(projectPath: string, name: string, source: string): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Remove a skill from the project configuration
|
|
48
|
+
*/
|
|
49
|
+
removeSkill(projectPath: string, name: string): Promise<boolean>;
|
|
50
|
+
/**
|
|
51
|
+
* Add or update an MCP configuration
|
|
52
|
+
*/
|
|
53
|
+
setMcp(projectPath: string, name: string, mcpConfig: McpConfig): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Remove an MCP configuration
|
|
56
|
+
*/
|
|
57
|
+
removeMcp(projectPath: string, name: string): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Update sync targets
|
|
60
|
+
*/
|
|
61
|
+
setSyncTargets(projectPath: string, targets: SyncTargets): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Add a reminder
|
|
64
|
+
*/
|
|
65
|
+
addReminder(projectPath: string, reminder: string): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Remove a reminder by index
|
|
68
|
+
*/
|
|
69
|
+
removeReminder(projectPath: string, index: number): Promise<boolean>;
|
|
70
|
+
/**
|
|
71
|
+
* Validate a configuration object
|
|
72
|
+
*/
|
|
73
|
+
validateConfig(config: unknown): ValidationResult;
|
|
74
|
+
/**
|
|
75
|
+
* Get enabled sync targets
|
|
76
|
+
*/
|
|
77
|
+
getEnabledSyncTargets(config: SkillpkgConfig): string[];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create a ConfigManager instance
|
|
81
|
+
*/
|
|
82
|
+
export declare function createConfigManager(): ConfigManager;
|
|
83
|
+
//# sourceMappingURL=config-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIzE;;GAEG;AACH,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,QAAQ,CAA6B;;IAQ7C;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI1C;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA0B5E;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnF;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAChC,OAAO,CAAC,cAAc,CAAC;IAa1B;;OAEG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAchF;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAetE;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpF;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAepE;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9E;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvE;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1E;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB;IAejD;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE;CASxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConfigManager - Project configuration management (skillpkg.json)
|
|
3
|
+
*/
|
|
4
|
+
import { readFile, writeFile, mkdir } from 'fs/promises';
|
|
5
|
+
import { existsSync } from 'fs';
|
|
6
|
+
import { join, dirname } from 'path';
|
|
7
|
+
import Ajv from 'ajv';
|
|
8
|
+
import addFormats from 'ajv-formats';
|
|
9
|
+
import { createDefaultConfig } from './types.js';
|
|
10
|
+
import skillpkgSchema from './schemas/skillpkg.schema.json' with { type: 'json' };
|
|
11
|
+
/**
|
|
12
|
+
* Configuration file name
|
|
13
|
+
*/
|
|
14
|
+
export const CONFIG_FILE_NAME = 'skillpkg.json';
|
|
15
|
+
/**
|
|
16
|
+
* ConfigManager class - manages skillpkg.json
|
|
17
|
+
*/
|
|
18
|
+
export class ConfigManager {
|
|
19
|
+
ajv;
|
|
20
|
+
validate;
|
|
21
|
+
constructor() {
|
|
22
|
+
this.ajv = new Ajv({ allErrors: true, strict: false });
|
|
23
|
+
addFormats(this.ajv);
|
|
24
|
+
this.validate = this.ajv.compile(skillpkgSchema);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get the config file path for a project
|
|
28
|
+
*/
|
|
29
|
+
getConfigPath(projectPath) {
|
|
30
|
+
return join(projectPath, CONFIG_FILE_NAME);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Check if a project has skillpkg.json
|
|
34
|
+
*/
|
|
35
|
+
hasConfig(projectPath) {
|
|
36
|
+
return existsSync(this.getConfigPath(projectPath));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Load project configuration
|
|
40
|
+
*/
|
|
41
|
+
async loadProjectConfig(projectPath) {
|
|
42
|
+
const configPath = this.getConfigPath(projectPath);
|
|
43
|
+
if (!existsSync(configPath)) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
const content = await readFile(configPath, 'utf-8');
|
|
48
|
+
const config = JSON.parse(content);
|
|
49
|
+
// Validate
|
|
50
|
+
const validation = this.validateConfig(config);
|
|
51
|
+
if (!validation.valid) {
|
|
52
|
+
throw new Error(`Invalid skillpkg.json: ${validation.errors?.join(', ')}`);
|
|
53
|
+
}
|
|
54
|
+
return config;
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (error instanceof SyntaxError) {
|
|
58
|
+
throw new Error(`Invalid JSON in skillpkg.json: ${error.message}`);
|
|
59
|
+
}
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Save project configuration
|
|
65
|
+
*/
|
|
66
|
+
async saveProjectConfig(projectPath, config) {
|
|
67
|
+
const configPath = this.getConfigPath(projectPath);
|
|
68
|
+
// Validate before saving
|
|
69
|
+
const validation = this.validateConfig(config);
|
|
70
|
+
if (!validation.valid) {
|
|
71
|
+
throw new Error(`Invalid configuration: ${validation.errors?.join(', ')}`);
|
|
72
|
+
}
|
|
73
|
+
// Ensure directory exists
|
|
74
|
+
await mkdir(dirname(configPath), { recursive: true });
|
|
75
|
+
// Write with pretty formatting
|
|
76
|
+
const content = JSON.stringify(config, null, 2);
|
|
77
|
+
await writeFile(configPath, content, 'utf-8');
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Initialize a new project with skillpkg.json
|
|
81
|
+
*/
|
|
82
|
+
async initProject(projectPath, name, options = {}) {
|
|
83
|
+
const configPath = this.getConfigPath(projectPath);
|
|
84
|
+
if (existsSync(configPath) && !options.force) {
|
|
85
|
+
throw new Error(`skillpkg.json already exists at ${projectPath}`);
|
|
86
|
+
}
|
|
87
|
+
const config = createDefaultConfig(name);
|
|
88
|
+
await this.saveProjectConfig(projectPath, config);
|
|
89
|
+
return config;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Add a skill to the project configuration
|
|
93
|
+
*/
|
|
94
|
+
async addSkill(projectPath, name, source) {
|
|
95
|
+
const config = await this.loadProjectConfig(projectPath);
|
|
96
|
+
if (!config) {
|
|
97
|
+
throw new Error('No skillpkg.json found. Run "skillpkg init" first.');
|
|
98
|
+
}
|
|
99
|
+
if (!config.skills) {
|
|
100
|
+
config.skills = {};
|
|
101
|
+
}
|
|
102
|
+
config.skills[name] = source;
|
|
103
|
+
await this.saveProjectConfig(projectPath, config);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Remove a skill from the project configuration
|
|
107
|
+
*/
|
|
108
|
+
async removeSkill(projectPath, name) {
|
|
109
|
+
const config = await this.loadProjectConfig(projectPath);
|
|
110
|
+
if (!config) {
|
|
111
|
+
throw new Error('No skillpkg.json found.');
|
|
112
|
+
}
|
|
113
|
+
if (!config.skills || !config.skills[name]) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
delete config.skills[name];
|
|
117
|
+
await this.saveProjectConfig(projectPath, config);
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Add or update an MCP configuration
|
|
122
|
+
*/
|
|
123
|
+
async setMcp(projectPath, name, mcpConfig) {
|
|
124
|
+
const config = await this.loadProjectConfig(projectPath);
|
|
125
|
+
if (!config) {
|
|
126
|
+
throw new Error('No skillpkg.json found. Run "skillpkg init" first.');
|
|
127
|
+
}
|
|
128
|
+
if (!config.mcp) {
|
|
129
|
+
config.mcp = {};
|
|
130
|
+
}
|
|
131
|
+
config.mcp[name] = mcpConfig;
|
|
132
|
+
await this.saveProjectConfig(projectPath, config);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Remove an MCP configuration
|
|
136
|
+
*/
|
|
137
|
+
async removeMcp(projectPath, name) {
|
|
138
|
+
const config = await this.loadProjectConfig(projectPath);
|
|
139
|
+
if (!config) {
|
|
140
|
+
throw new Error('No skillpkg.json found.');
|
|
141
|
+
}
|
|
142
|
+
if (!config.mcp || !config.mcp[name]) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
delete config.mcp[name];
|
|
146
|
+
await this.saveProjectConfig(projectPath, config);
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Update sync targets
|
|
151
|
+
*/
|
|
152
|
+
async setSyncTargets(projectPath, targets) {
|
|
153
|
+
const config = await this.loadProjectConfig(projectPath);
|
|
154
|
+
if (!config) {
|
|
155
|
+
throw new Error('No skillpkg.json found.');
|
|
156
|
+
}
|
|
157
|
+
config.sync_targets = { ...config.sync_targets, ...targets };
|
|
158
|
+
await this.saveProjectConfig(projectPath, config);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Add a reminder
|
|
162
|
+
*/
|
|
163
|
+
async addReminder(projectPath, reminder) {
|
|
164
|
+
const config = await this.loadProjectConfig(projectPath);
|
|
165
|
+
if (!config) {
|
|
166
|
+
throw new Error('No skillpkg.json found.');
|
|
167
|
+
}
|
|
168
|
+
if (!config.reminders) {
|
|
169
|
+
config.reminders = [];
|
|
170
|
+
}
|
|
171
|
+
if (!config.reminders.includes(reminder)) {
|
|
172
|
+
config.reminders.push(reminder);
|
|
173
|
+
await this.saveProjectConfig(projectPath, config);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Remove a reminder by index
|
|
178
|
+
*/
|
|
179
|
+
async removeReminder(projectPath, index) {
|
|
180
|
+
const config = await this.loadProjectConfig(projectPath);
|
|
181
|
+
if (!config || !config.reminders || index < 0 || index >= config.reminders.length) {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
config.reminders.splice(index, 1);
|
|
185
|
+
await this.saveProjectConfig(projectPath, config);
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Validate a configuration object
|
|
190
|
+
*/
|
|
191
|
+
validateConfig(config) {
|
|
192
|
+
const valid = this.validate(config);
|
|
193
|
+
if (valid) {
|
|
194
|
+
return { valid: true };
|
|
195
|
+
}
|
|
196
|
+
const errors = this.validate.errors?.map((err) => {
|
|
197
|
+
const path = err.instancePath || 'root';
|
|
198
|
+
return `${path}: ${err.message}`;
|
|
199
|
+
});
|
|
200
|
+
return { valid: false, errors };
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get enabled sync targets
|
|
204
|
+
*/
|
|
205
|
+
getEnabledSyncTargets(config) {
|
|
206
|
+
if (!config.sync_targets) {
|
|
207
|
+
return ['claude-code']; // Default
|
|
208
|
+
}
|
|
209
|
+
return Object.entries(config.sync_targets)
|
|
210
|
+
.filter(([, enabled]) => enabled)
|
|
211
|
+
.map(([target]) => target);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Create a ConfigManager instance
|
|
216
|
+
*/
|
|
217
|
+
export function createConfigManager() {
|
|
218
|
+
return new ConfigManager();
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=config-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config module - Project configuration management (skillpkg.json)
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { ConfigManager, createConfigManager } from '@skillpkg/core';
|
|
7
|
+
*
|
|
8
|
+
* const manager = createConfigManager();
|
|
9
|
+
*
|
|
10
|
+
* // Initialize a new project
|
|
11
|
+
* await manager.initProject('/path/to/project', 'my-project');
|
|
12
|
+
*
|
|
13
|
+
* // Load configuration
|
|
14
|
+
* const config = await manager.loadProjectConfig('/path/to/project');
|
|
15
|
+
*
|
|
16
|
+
* // Add a skill
|
|
17
|
+
* await manager.addSkill('/path/to/project', 'my-skill', 'github:user/repo');
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export type { SkillpkgConfig, McpConfig, SyncTarget, SyncTargets, Hooks, } from './types.js';
|
|
21
|
+
export { DEFAULT_SYNC_TARGETS, createDefaultConfig } from './types.js';
|
|
22
|
+
export { ConfigManager, createConfigManager, CONFIG_FILE_NAME, type ValidationResult as ConfigValidationResult, } from './config-manager.js';
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,YAAY,EACV,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,GACN,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGvE,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,gBAAgB,IAAI,sBAAsB,GAChD,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config module - Project configuration management (skillpkg.json)
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { ConfigManager, createConfigManager } from '@skillpkg/core';
|
|
7
|
+
*
|
|
8
|
+
* const manager = createConfigManager();
|
|
9
|
+
*
|
|
10
|
+
* // Initialize a new project
|
|
11
|
+
* await manager.initProject('/path/to/project', 'my-project');
|
|
12
|
+
*
|
|
13
|
+
* // Load configuration
|
|
14
|
+
* const config = await manager.loadProjectConfig('/path/to/project');
|
|
15
|
+
*
|
|
16
|
+
* // Add a skill
|
|
17
|
+
* await manager.addSkill('/path/to/project', 'my-skill', 'github:user/repo');
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export { DEFAULT_SYNC_TARGETS, createDefaultConfig } from './types.js';
|
|
21
|
+
// ConfigManager
|
|
22
|
+
export { ConfigManager, createConfigManager, CONFIG_FILE_NAME, } from './config-manager.js';
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAWH,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEvE,gBAAgB;AAChB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://skillpkg.dev/schemas/skillpkg.json",
|
|
4
|
+
"title": "skillpkg.json",
|
|
5
|
+
"description": "Project configuration for skillpkg - AI Workflow Manager",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["name"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"$schema": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "JSON Schema reference for IDE support"
|
|
12
|
+
},
|
|
13
|
+
"name": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Project name",
|
|
16
|
+
"pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$"
|
|
17
|
+
},
|
|
18
|
+
"version": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Project version (semver)",
|
|
21
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$"
|
|
22
|
+
},
|
|
23
|
+
"skills": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"description": "Skills to install (name -> source)",
|
|
26
|
+
"additionalProperties": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Skill source (github:user/repo, URL, or local path)"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"mcp": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"description": "MCP server configurations",
|
|
34
|
+
"additionalProperties": {
|
|
35
|
+
"$ref": "#/definitions/McpConfig"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"reminders": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"description": "Project-level reminders for AI agents",
|
|
41
|
+
"items": {
|
|
42
|
+
"type": "string"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"hooks": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"description": "Lifecycle hooks (event -> script path)",
|
|
48
|
+
"properties": {
|
|
49
|
+
"pre-install": { "type": "string" },
|
|
50
|
+
"post-install": { "type": "string" },
|
|
51
|
+
"pre-sync": { "type": "string" },
|
|
52
|
+
"post-sync": { "type": "string" }
|
|
53
|
+
},
|
|
54
|
+
"additionalProperties": {
|
|
55
|
+
"type": "string"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"sync_targets": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"description": "Sync targets (target name -> enabled)",
|
|
61
|
+
"properties": {
|
|
62
|
+
"claude-code": { "type": "boolean", "default": true },
|
|
63
|
+
"cursor": { "type": "boolean", "default": false },
|
|
64
|
+
"codex": { "type": "boolean", "default": false },
|
|
65
|
+
"copilot": { "type": "boolean", "default": false },
|
|
66
|
+
"windsurf": { "type": "boolean", "default": false }
|
|
67
|
+
},
|
|
68
|
+
"additionalProperties": false
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"definitions": {
|
|
72
|
+
"McpConfig": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"required": ["package"],
|
|
75
|
+
"properties": {
|
|
76
|
+
"package": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"description": "npm package name"
|
|
79
|
+
},
|
|
80
|
+
"command": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"description": "Executable command name"
|
|
83
|
+
},
|
|
84
|
+
"args": {
|
|
85
|
+
"type": "array",
|
|
86
|
+
"description": "Command arguments",
|
|
87
|
+
"items": { "type": "string" }
|
|
88
|
+
},
|
|
89
|
+
"required": {
|
|
90
|
+
"type": "boolean",
|
|
91
|
+
"description": "Whether this MCP is required for the project",
|
|
92
|
+
"default": false
|
|
93
|
+
},
|
|
94
|
+
"env": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"description": "Environment variables",
|
|
97
|
+
"additionalProperties": { "type": "string" }
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"additionalProperties": false
|
|
103
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* skillpkg.json types
|
|
3
|
+
*
|
|
4
|
+
* Project-level configuration for skillpkg v2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* MCP server configuration
|
|
8
|
+
*/
|
|
9
|
+
export interface McpConfig {
|
|
10
|
+
/** npm package name */
|
|
11
|
+
package: string;
|
|
12
|
+
/** Executable command name */
|
|
13
|
+
command?: string;
|
|
14
|
+
/** Command arguments */
|
|
15
|
+
args?: string[];
|
|
16
|
+
/** Whether this MCP is required for the project */
|
|
17
|
+
required?: boolean;
|
|
18
|
+
/** Environment variables */
|
|
19
|
+
env?: Record<string, string>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Supported sync targets
|
|
23
|
+
* Note: v2.0 only implements claude-code, others are reserved for future
|
|
24
|
+
*/
|
|
25
|
+
export type SyncTarget = 'claude-code' | 'cursor' | 'codex' | 'copilot' | 'windsurf';
|
|
26
|
+
/**
|
|
27
|
+
* Sync targets configuration
|
|
28
|
+
*/
|
|
29
|
+
export type SyncTargets = Partial<Record<SyncTarget, boolean>>;
|
|
30
|
+
/**
|
|
31
|
+
* Lifecycle hooks
|
|
32
|
+
*/
|
|
33
|
+
export interface Hooks {
|
|
34
|
+
'pre-install'?: string;
|
|
35
|
+
'post-install'?: string;
|
|
36
|
+
'pre-sync'?: string;
|
|
37
|
+
'post-sync'?: string;
|
|
38
|
+
[key: string]: string | undefined;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Project configuration (skillpkg.json)
|
|
42
|
+
*/
|
|
43
|
+
export interface SkillpkgConfig {
|
|
44
|
+
/** JSON Schema reference */
|
|
45
|
+
$schema?: string;
|
|
46
|
+
/** Project name */
|
|
47
|
+
name: string;
|
|
48
|
+
/** Project version (semver) */
|
|
49
|
+
version?: string;
|
|
50
|
+
/** Skills to install (name -> source) */
|
|
51
|
+
skills?: Record<string, string>;
|
|
52
|
+
/** MCP server configurations */
|
|
53
|
+
mcp?: Record<string, McpConfig>;
|
|
54
|
+
/** Project-level reminders for AI agents */
|
|
55
|
+
reminders?: string[];
|
|
56
|
+
/** Lifecycle hooks */
|
|
57
|
+
hooks?: Hooks;
|
|
58
|
+
/** Sync targets (target -> enabled) */
|
|
59
|
+
sync_targets?: SyncTargets;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Default sync targets (only claude-code enabled by default)
|
|
63
|
+
*/
|
|
64
|
+
export declare const DEFAULT_SYNC_TARGETS: SyncTargets;
|
|
65
|
+
/**
|
|
66
|
+
* Create a default project configuration
|
|
67
|
+
*/
|
|
68
|
+
export declare function createDefaultConfig(name: string): SkillpkgConfig;
|
|
69
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAErF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,sBAAsB;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,uCAAuC;IACvC,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAMlC,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAShE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* skillpkg.json types
|
|
3
|
+
*
|
|
4
|
+
* Project-level configuration for skillpkg v2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Default sync targets (only claude-code enabled by default)
|
|
8
|
+
*/
|
|
9
|
+
export const DEFAULT_SYNC_TARGETS = {
|
|
10
|
+
'claude-code': true,
|
|
11
|
+
cursor: false,
|
|
12
|
+
codex: false,
|
|
13
|
+
copilot: false,
|
|
14
|
+
windsurf: false,
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Create a default project configuration
|
|
18
|
+
*/
|
|
19
|
+
export function createDefaultConfig(name) {
|
|
20
|
+
return {
|
|
21
|
+
$schema: 'https://skillpkg.dev/schemas/skillpkg.json',
|
|
22
|
+
name,
|
|
23
|
+
skills: {},
|
|
24
|
+
mcp: {},
|
|
25
|
+
reminders: [],
|
|
26
|
+
sync_targets: { 'claude-code': true },
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8DH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO;QACL,OAAO,EAAE,4CAA4C;QACrD,IAAI;QACJ,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;KACtC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Core library for skillpkg - Agent Skills Package Manager
|
|
5
5
|
*/
|
|
6
|
-
export declare const VERSION = "0.
|
|
6
|
+
export declare const VERSION = "0.2.1";
|
|
7
7
|
export * from './types.js';
|
|
8
8
|
export * from './parser/index.js';
|
|
9
9
|
export * from './store/index.js';
|
|
@@ -12,4 +12,9 @@ export * from './importer/index.js';
|
|
|
12
12
|
export * from './exporter/index.js';
|
|
13
13
|
export * from './registry/index.js';
|
|
14
14
|
export * from './github/index.js';
|
|
15
|
+
export * from './config/index.js';
|
|
16
|
+
export * from './state/index.js';
|
|
17
|
+
export * from './resolver/index.js';
|
|
18
|
+
export * from './syncer/index.js';
|
|
19
|
+
export * from './installer/index.js';
|
|
15
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,cAAc,YAAY,CAAC;AAG3B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,cAAc,YAAY,CAAC;AAG3B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Core library for skillpkg - Agent Skills Package Manager
|
|
5
5
|
*/
|
|
6
|
-
export const VERSION = '0.
|
|
6
|
+
export const VERSION = '0.2.1';
|
|
7
7
|
// Types
|
|
8
8
|
export * from './types.js';
|
|
9
9
|
// Parser module
|
|
@@ -20,4 +20,14 @@ export * from './exporter/index.js';
|
|
|
20
20
|
export * from './registry/index.js';
|
|
21
21
|
// GitHub module - Search skills on GitHub
|
|
22
22
|
export * from './github/index.js';
|
|
23
|
+
// Config module - Project configuration (skillpkg.json)
|
|
24
|
+
export * from './config/index.js';
|
|
25
|
+
// State module - Installation state tracking (.skillpkg/state.json)
|
|
26
|
+
export * from './state/index.js';
|
|
27
|
+
// Resolver module - Dependency resolution
|
|
28
|
+
export * from './resolver/index.js';
|
|
29
|
+
// Syncer module - Sync to AI tools
|
|
30
|
+
export * from './syncer/index.js';
|
|
31
|
+
// Installer module - Dependency-aware installation
|
|
32
|
+
export * from './installer/index.js';
|
|
23
33
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAElC,eAAe;AACf,cAAc,kBAAkB,CAAC;AAEjC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,2DAA2D;AAC3D,cAAc,qBAAqB,CAAC;AAEpC,0CAA0C;AAC1C,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAElC,eAAe;AACf,cAAc,kBAAkB,CAAC;AAEjC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,2DAA2D;AAC3D,cAAc,qBAAqB,CAAC;AAEpC,0CAA0C;AAC1C,cAAc,mBAAmB,CAAC;AAElC,wDAAwD;AACxD,cAAc,mBAAmB,CAAC;AAElC,oEAAoE;AACpE,cAAc,kBAAkB,CAAC;AAEjC,0CAA0C;AAC1C,cAAc,qBAAqB,CAAC;AAEpC,mCAAmC;AACnC,cAAc,mBAAmB,CAAC;AAElC,mDAAmD;AACnD,cAAc,sBAAsB,CAAC"}
|