skillpkg-core 0.5.4 → 0.5.7
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/adapters/adapter-manager.d.ts +51 -0
- package/dist/adapters/adapter-manager.d.ts.map +1 -0
- package/dist/adapters/adapter-manager.js +147 -0
- package/dist/adapters/adapter-manager.js.map +1 -0
- package/dist/adapters/base.d.ts.map +1 -1
- package/dist/adapters/base.js +14 -3
- package/dist/adapters/base.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +1 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/config/types.d.ts +3 -3
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +0 -1
- package/dist/config/types.js.map +1 -1
- package/dist/discovery/discovery-manager.d.ts +55 -0
- package/dist/discovery/discovery-manager.d.ts.map +1 -0
- package/dist/discovery/discovery-manager.js +217 -0
- package/dist/discovery/discovery-manager.js.map +1 -0
- package/dist/discovery/index.d.ts +20 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +21 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/discovery/manager.d.ts +53 -0
- package/dist/discovery/manager.d.ts.map +1 -0
- package/dist/discovery/manager.js +203 -0
- package/dist/discovery/manager.js.map +1 -0
- package/dist/discovery/providers/awesome.d.ts +72 -0
- package/dist/discovery/providers/awesome.d.ts.map +1 -0
- package/dist/discovery/providers/awesome.js +214 -0
- package/dist/discovery/providers/awesome.js.map +1 -0
- package/dist/discovery/providers/github.d.ts +44 -0
- package/dist/discovery/providers/github.d.ts.map +1 -0
- package/dist/discovery/providers/github.js +82 -0
- package/dist/discovery/providers/github.js.map +1 -0
- package/dist/discovery/providers/index.d.ts +9 -0
- package/dist/discovery/providers/index.d.ts.map +1 -0
- package/dist/discovery/providers/index.js +9 -0
- package/dist/discovery/providers/index.js.map +1 -0
- package/dist/discovery/providers/local.d.ts +38 -0
- package/dist/discovery/providers/local.d.ts.map +1 -0
- package/dist/discovery/providers/local.js +75 -0
- package/dist/discovery/providers/local.js.map +1 -0
- package/dist/discovery/providers/priority.d.ts +89 -0
- package/dist/discovery/providers/priority.d.ts.map +1 -0
- package/dist/discovery/providers/priority.js +258 -0
- package/dist/discovery/providers/priority.js.map +1 -0
- package/dist/discovery/providers/skillsmp.d.ts +66 -0
- package/dist/discovery/providers/skillsmp.d.ts.map +1 -0
- package/dist/discovery/providers/skillsmp.js +134 -0
- package/dist/discovery/providers/skillsmp.js.map +1 -0
- package/dist/discovery/types.d.ts +108 -0
- package/dist/discovery/types.d.ts.map +1 -0
- package/dist/discovery/types.js +5 -0
- package/dist/discovery/types.js.map +1 -0
- package/dist/doctor/doctor.d.ts +62 -0
- package/dist/doctor/doctor.d.ts.map +1 -0
- package/dist/doctor/doctor.js +399 -0
- package/dist/doctor/doctor.js.map +1 -0
- package/dist/doctor/index.d.ts +6 -0
- package/dist/doctor/index.d.ts.map +1 -0
- package/dist/doctor/index.js +6 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/types.d.ts +68 -0
- package/dist/doctor/types.d.ts.map +1 -0
- package/dist/doctor/types.js +2 -0
- package/dist/doctor/types.js.map +1 -0
- package/dist/fetcher/fetcher.d.ts.map +1 -1
- package/dist/fetcher/fetcher.js +265 -25
- package/dist/fetcher/fetcher.js.map +1 -1
- package/dist/fetcher/source-parser.d.ts +8 -6
- package/dist/fetcher/source-parser.d.ts.map +1 -1
- package/dist/fetcher/source-parser.js +37 -16
- package/dist/fetcher/source-parser.js.map +1 -1
- package/dist/fetcher/types.d.ts +17 -4
- package/dist/fetcher/types.d.ts.map +1 -1
- package/dist/fetcher/types.js.map +1 -1
- package/dist/importer/importer.js +1 -1
- package/dist/importer/importer.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/installer/installer.d.ts +1 -1
- package/dist/installer/installer.d.ts.map +1 -1
- package/dist/installer/installer.js +21 -13
- package/dist/installer/installer.js.map +1 -1
- package/dist/installer/types.d.ts +15 -13
- package/dist/installer/types.d.ts.map +1 -1
- package/dist/matching/engine.d.ts +57 -0
- package/dist/matching/engine.d.ts.map +1 -0
- package/dist/matching/engine.js +419 -0
- package/dist/matching/engine.js.map +1 -0
- package/dist/matching/index.d.ts +9 -0
- package/dist/matching/index.d.ts.map +1 -0
- package/dist/matching/index.js +8 -0
- package/dist/matching/index.js.map +1 -0
- package/dist/matching/types.d.ts +91 -0
- package/dist/matching/types.d.ts.map +1 -0
- package/dist/matching/types.js +13 -0
- package/dist/matching/types.js.map +1 -0
- package/dist/parser/schema.d.ts +61 -8
- package/dist/parser/schema.d.ts.map +1 -1
- package/dist/parser/schema.js +59 -9
- package/dist/parser/schema.js.map +1 -1
- package/dist/resolver/dependency-resolver.d.ts.map +1 -1
- package/dist/resolver/dependency-resolver.js +15 -3
- package/dist/resolver/dependency-resolver.js.map +1 -1
- package/dist/resolver/index.d.ts +1 -1
- package/dist/resolver/index.d.ts.map +1 -1
- package/dist/resolver/index.js.map +1 -1
- package/dist/resolver/types.d.ts +13 -0
- package/dist/resolver/types.d.ts.map +1 -1
- package/dist/skill/reader.d.ts.map +1 -1
- package/dist/skill/reader.js +12 -11
- package/dist/skill/reader.js.map +1 -1
- package/dist/skill/types.d.ts +28 -2
- package/dist/skill/types.d.ts.map +1 -1
- package/dist/state/state-manager.d.ts +19 -0
- package/dist/state/state-manager.d.ts.map +1 -1
- package/dist/state/state-manager.js +50 -0
- package/dist/state/state-manager.js.map +1 -1
- package/dist/store/config.d.ts.map +1 -1
- package/dist/store/config.js +7 -0
- package/dist/store/config.js.map +1 -1
- package/dist/store/index.d.ts +2 -2
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +1 -1
- package/dist/store/index.js.map +1 -1
- package/dist/store/manager.d.ts +2 -0
- package/dist/store/manager.d.ts.map +1 -1
- package/dist/store/manager.js +19 -1
- package/dist/store/manager.js.map +1 -1
- package/dist/store/store-manager.d.ts +123 -0
- package/dist/store/store-manager.d.ts.map +1 -0
- package/dist/store/store-manager.js +312 -0
- package/dist/store/store-manager.js.map +1 -0
- package/dist/syncer/syncer.d.ts +4 -0
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +91 -27
- package/dist/syncer/syncer.js.map +1 -1
- package/dist/syncer/types.d.ts +16 -8
- package/dist/syncer/types.d.ts.map +1 -1
- package/dist/syncer/types.js +29 -32
- package/dist/syncer/types.js.map +1 -1
- package/dist/types.d.ts +33 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +9 -2
- package/dist/types.js.map +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages platform adapters and sync operations
|
|
5
|
+
*/
|
|
6
|
+
import type { Skill } from '../types.js';
|
|
7
|
+
import type { PlatformAdapter, DetectedPlatform, SyncOptions, SyncResult } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Adapter Manager class
|
|
10
|
+
*/
|
|
11
|
+
export declare class AdapterManager {
|
|
12
|
+
private adapters;
|
|
13
|
+
constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Register a platform adapter
|
|
16
|
+
*/
|
|
17
|
+
registerAdapter(adapter: PlatformAdapter): void;
|
|
18
|
+
/**
|
|
19
|
+
* Get an adapter by name
|
|
20
|
+
*/
|
|
21
|
+
getAdapter(name: string): PlatformAdapter | null;
|
|
22
|
+
/**
|
|
23
|
+
* List all registered adapters
|
|
24
|
+
*/
|
|
25
|
+
listAdapters(): PlatformAdapter[];
|
|
26
|
+
/**
|
|
27
|
+
* Detect which platforms are present in a project
|
|
28
|
+
*/
|
|
29
|
+
detectPlatforms(projectPath: string): Promise<DetectedPlatform[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Sync skills to all or specified platforms
|
|
32
|
+
*/
|
|
33
|
+
sync(skills: Skill[], options?: SyncOptions): Promise<SyncResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Sync skills to a specific platform
|
|
36
|
+
*/
|
|
37
|
+
syncToPlatform(platform: string, skills: Skill[], projectPath?: string): Promise<SyncResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Remove a skill from all platforms
|
|
40
|
+
*/
|
|
41
|
+
removeFromAllPlatforms(skillName: string, projectPath?: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Remove a skill from a specific platform
|
|
44
|
+
*/
|
|
45
|
+
removeFromPlatform(skillName: string, platform: string, projectPath?: string): Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create a new AdapterManager instance
|
|
49
|
+
*/
|
|
50
|
+
export declare function createAdapterManager(): AdapterManager;
|
|
51
|
+
//# sourceMappingURL=adapter-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-manager.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,UAAU,EACX,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAA2C;;IAU3D;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAI/C;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAIhD;;OAEG;IACH,YAAY,IAAI,eAAe,EAAE;IAIjC;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAgBvE;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAkE3E;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,KAAK,EAAE,EACf,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,UAAU,CAAC;IAItB;;OAEG;IACG,sBAAsB,CAC1B,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,IAAI,CAAC;IAUhB;;OAEG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,IAAI,CAAC;CAMjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { ClaudeCodeAdapter } from './claude-code.js';
|
|
2
|
+
import { CodexAdapter } from './codex.js';
|
|
3
|
+
import { CopilotAdapter } from './copilot.js';
|
|
4
|
+
import { ClineAdapter } from './cline.js';
|
|
5
|
+
/**
|
|
6
|
+
* Adapter Manager class
|
|
7
|
+
*/
|
|
8
|
+
export class AdapterManager {
|
|
9
|
+
adapters = new Map();
|
|
10
|
+
constructor() {
|
|
11
|
+
// Register built-in adapters
|
|
12
|
+
this.registerAdapter(new ClaudeCodeAdapter());
|
|
13
|
+
this.registerAdapter(new CodexAdapter());
|
|
14
|
+
this.registerAdapter(new CopilotAdapter());
|
|
15
|
+
this.registerAdapter(new ClineAdapter());
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Register a platform adapter
|
|
19
|
+
*/
|
|
20
|
+
registerAdapter(adapter) {
|
|
21
|
+
this.adapters.set(adapter.name, adapter);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get an adapter by name
|
|
25
|
+
*/
|
|
26
|
+
getAdapter(name) {
|
|
27
|
+
return this.adapters.get(name) || null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* List all registered adapters
|
|
31
|
+
*/
|
|
32
|
+
listAdapters() {
|
|
33
|
+
return Array.from(this.adapters.values());
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Detect which platforms are present in a project
|
|
37
|
+
*/
|
|
38
|
+
async detectPlatforms(projectPath) {
|
|
39
|
+
const results = [];
|
|
40
|
+
for (const adapter of this.adapters.values()) {
|
|
41
|
+
const detected = await adapter.detect(projectPath);
|
|
42
|
+
results.push({
|
|
43
|
+
name: adapter.name,
|
|
44
|
+
displayName: adapter.displayName,
|
|
45
|
+
detected,
|
|
46
|
+
path: detected ? adapter.getOutputPath('', projectPath) : '',
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return results;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Sync skills to all or specified platforms
|
|
53
|
+
*/
|
|
54
|
+
async sync(skills, options = {}) {
|
|
55
|
+
const projectPath = options.projectPath || process.cwd();
|
|
56
|
+
const targetPlatforms = options.platforms;
|
|
57
|
+
const dryRun = options.dryRun || false;
|
|
58
|
+
const result = {
|
|
59
|
+
success: true,
|
|
60
|
+
synced: [],
|
|
61
|
+
skipped: [],
|
|
62
|
+
errors: [],
|
|
63
|
+
};
|
|
64
|
+
// Get adapters to sync to
|
|
65
|
+
let adaptersToUse;
|
|
66
|
+
if (targetPlatforms?.length) {
|
|
67
|
+
adaptersToUse = targetPlatforms
|
|
68
|
+
.map((name) => this.adapters.get(name))
|
|
69
|
+
.filter((a) => a !== undefined);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
adaptersToUse = this.listAdapters();
|
|
73
|
+
}
|
|
74
|
+
// Detect which platforms are present
|
|
75
|
+
const detectedPlatforms = await this.detectPlatforms(projectPath);
|
|
76
|
+
const presentPlatforms = new Set(detectedPlatforms.filter((p) => p.detected).map((p) => p.name));
|
|
77
|
+
// Sync each skill to each platform
|
|
78
|
+
for (const skill of skills) {
|
|
79
|
+
for (const adapter of adaptersToUse) {
|
|
80
|
+
// Check if platform is present
|
|
81
|
+
if (!presentPlatforms.has(adapter.name)) {
|
|
82
|
+
result.skipped.push({
|
|
83
|
+
skill: skill.name,
|
|
84
|
+
platform: adapter.name,
|
|
85
|
+
reason: 'Platform not detected',
|
|
86
|
+
});
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
// Sync
|
|
90
|
+
try {
|
|
91
|
+
if (!dryRun) {
|
|
92
|
+
await adapter.sync(skill, projectPath);
|
|
93
|
+
}
|
|
94
|
+
result.synced.push({
|
|
95
|
+
skill: skill.name,
|
|
96
|
+
platform: adapter.name,
|
|
97
|
+
path: adapter.getOutputPath(skill.name, projectPath),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
result.success = false;
|
|
102
|
+
result.errors.push({
|
|
103
|
+
skill: skill.name,
|
|
104
|
+
platform: adapter.name,
|
|
105
|
+
error: error instanceof Error ? error.message : String(error),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Sync skills to a specific platform
|
|
114
|
+
*/
|
|
115
|
+
async syncToPlatform(platform, skills, projectPath = process.cwd()) {
|
|
116
|
+
return this.sync(skills, { projectPath, platforms: [platform] });
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Remove a skill from all platforms
|
|
120
|
+
*/
|
|
121
|
+
async removeFromAllPlatforms(skillName, projectPath = process.cwd()) {
|
|
122
|
+
for (const adapter of this.adapters.values()) {
|
|
123
|
+
try {
|
|
124
|
+
await adapter.remove(skillName, projectPath);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// Ignore errors during removal
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Remove a skill from a specific platform
|
|
133
|
+
*/
|
|
134
|
+
async removeFromPlatform(skillName, platform, projectPath = process.cwd()) {
|
|
135
|
+
const adapter = this.adapters.get(platform);
|
|
136
|
+
if (adapter) {
|
|
137
|
+
await adapter.remove(skillName, projectPath);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a new AdapterManager instance
|
|
143
|
+
*/
|
|
144
|
+
export function createAdapterManager() {
|
|
145
|
+
return new AdapterManager();
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=adapter-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-manager.js","sourceRoot":"","sources":["../../src/adapters/adapter-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;GAEG;AACH,8BAAsB,WAAY,YAAW,eAAe;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEtD;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAEtE;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAE7C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAE3D;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5D;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;GAEG;AACH,8BAAsB,WAAY,YAAW,eAAe;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEtD;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAEtE;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAE7C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAE3D;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5D;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnE;;OAEG;cACa,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IASlE;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG3C"}
|
package/dist/adapters/base.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Base adapter abstract class
|
|
3
3
|
*/
|
|
4
4
|
import { existsSync } from 'fs';
|
|
5
|
-
import { mkdir, writeFile,
|
|
5
|
+
import { mkdir, writeFile, readFile, rm, stat } from 'fs/promises';
|
|
6
6
|
import { dirname } from 'path';
|
|
7
7
|
/**
|
|
8
8
|
* Abstract base class for platform adapters
|
|
@@ -27,8 +27,19 @@ export class BaseAdapter {
|
|
|
27
27
|
*/
|
|
28
28
|
async remove(skillName, projectPath) {
|
|
29
29
|
const outputPath = this.getOutputPath(skillName, projectPath);
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
// Get the skill directory (parent of SKILL.md)
|
|
31
|
+
const skillDir = dirname(outputPath);
|
|
32
|
+
if (!existsSync(skillDir))
|
|
33
|
+
return;
|
|
34
|
+
try {
|
|
35
|
+
const stats = await stat(skillDir);
|
|
36
|
+
if (stats.isDirectory()) {
|
|
37
|
+
// Remove entire skill directory (including SKILL.md and any additional files)
|
|
38
|
+
await rm(skillDir, { recursive: true });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Ignore errors during removal
|
|
32
43
|
}
|
|
33
44
|
}
|
|
34
45
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B;;GAEG;AACH,MAAM,OAAgB,WAAW;IA+B/B;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,KAAY,EAAE,WAAmB;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/C,0BAA0B;QAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,aAAa;QACb,MAAM,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,WAAmB;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9D,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAErC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO;QAElC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,8EAA8E;gBAC9E,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,YAAY,CAAC,IAAY;QACvC,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACnC,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACO,SAAS,CAAC,IAAY;QAC9B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF"}
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -7,5 +7,5 @@ export { ClaudeCodeAdapter } from './claude-code.js';
|
|
|
7
7
|
export { CodexAdapter } from './codex.js';
|
|
8
8
|
export { CopilotAdapter } from './copilot.js';
|
|
9
9
|
export { ClineAdapter } from './cline.js';
|
|
10
|
-
export { AdapterManager, createAdapterManager } from './manager.js';
|
|
10
|
+
export { AdapterManager, createAdapterManager } from './adapter-manager.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/adapters/index.js
CHANGED
|
@@ -9,5 +9,5 @@ export { CodexAdapter } from './codex.js';
|
|
|
9
9
|
export { CopilotAdapter } from './copilot.js';
|
|
10
10
|
export { ClineAdapter } from './cline.js';
|
|
11
11
|
// Manager
|
|
12
|
-
export { AdapterManager, createAdapterManager } from './manager.js';
|
|
12
|
+
export { AdapterManager, createAdapterManager } from './adapter-manager.js';
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,UAAU;AACV,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,UAAU;AACV,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -19,10 +19,10 @@ export interface McpConfig {
|
|
|
19
19
|
env?: Record<string, string>;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* Supported sync targets
|
|
23
|
-
*
|
|
22
|
+
* Supported sync targets (Agent Skills standard adopters)
|
|
23
|
+
* Reference: https://agentskills.io
|
|
24
24
|
*/
|
|
25
|
-
export type SyncTarget = 'claude-code' | 'cursor' | 'codex' | 'copilot'
|
|
25
|
+
export type SyncTarget = 'claude-code' | 'cursor' | 'codex' | 'copilot';
|
|
26
26
|
/**
|
|
27
27
|
* Sync targets configuration
|
|
28
28
|
*/
|
|
@@ -1 +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,
|
|
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,CAAC;AAExE;;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,WAKlC,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAShE"}
|
package/dist/config/types.js
CHANGED
package/dist/config/types.js.map
CHANGED
|
@@ -1 +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;
|
|
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;CACf,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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { DiscoverySource, DiscoverySearchOptions, DiscoveryResult, DiscoveryManagerOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Discovery manager for multi-source skill search
|
|
4
|
+
*/
|
|
5
|
+
export declare class DiscoveryManager {
|
|
6
|
+
private providers;
|
|
7
|
+
private skillsmpApiKey;
|
|
8
|
+
private githubToken;
|
|
9
|
+
constructor(options?: DiscoveryManagerOptions);
|
|
10
|
+
/**
|
|
11
|
+
* Get default sources based on configuration
|
|
12
|
+
*
|
|
13
|
+
* Search order: priority → local → skillsmp/awesome → github
|
|
14
|
+
*
|
|
15
|
+
* With skillsmp key: priority → local → skillsmp (40K+) → github
|
|
16
|
+
* Without key: priority → local → awesome (~30) → github
|
|
17
|
+
*/
|
|
18
|
+
getDefaultSources(): DiscoverySource[];
|
|
19
|
+
/**
|
|
20
|
+
* Check which sources are configured
|
|
21
|
+
*/
|
|
22
|
+
getConfiguredSources(): DiscoverySource[];
|
|
23
|
+
/**
|
|
24
|
+
* Set skillsmp API key (can be called after construction)
|
|
25
|
+
*/
|
|
26
|
+
setSkillsmpApiKey(apiKey: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Search for skills across multiple sources
|
|
29
|
+
*/
|
|
30
|
+
search(options: DiscoverySearchOptions): Promise<DiscoveryResult>;
|
|
31
|
+
/**
|
|
32
|
+
* Deduplicate skills by normalized source URL
|
|
33
|
+
*
|
|
34
|
+
* Same skill from multiple sources → merge foundIn, keep first occurrence
|
|
35
|
+
*/
|
|
36
|
+
private deduplicateSkills;
|
|
37
|
+
/**
|
|
38
|
+
* Normalize source URL for deduplication
|
|
39
|
+
*
|
|
40
|
+
* Examples:
|
|
41
|
+
* github:user/repo#path → github:user/repo#path
|
|
42
|
+
* skillsmp:skill-name → skill-name (extract name)
|
|
43
|
+
* local:skill-name → skill-name
|
|
44
|
+
*/
|
|
45
|
+
private normalizeSourceForDedup;
|
|
46
|
+
/**
|
|
47
|
+
* Clear all provider caches
|
|
48
|
+
*/
|
|
49
|
+
clearAllCaches(): void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a discovery manager
|
|
53
|
+
*/
|
|
54
|
+
export declare function createDiscoveryManager(options?: DiscoveryManagerOptions): DiscoveryManager;
|
|
55
|
+
//# sourceMappingURL=discovery-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery-manager.d.ts","sourceRoot":"","sources":["../../src/discovery/discovery-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,eAAe,EACf,sBAAsB,EACtB,eAAe,EAEf,uBAAuB,EACxB,MAAM,YAAY,CAAC;AASpB;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,WAAW,CAAgB;gBAEvB,OAAO,GAAE,uBAA4B;IAiDjD;;;;;;;OAOG;IACH,iBAAiB,IAAI,eAAe,EAAE;IA6BtC;;OAEG;IACH,oBAAoB,IAAI,eAAe,EAAE;IAMzC;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQvC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgDvE;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkDzB;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;OAEG;IACH,cAAc,IAAI,IAAI;CAOvB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,CAAC,EAAE,uBAAuB,GAChC,gBAAgB,CAElB"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { LocalProvider, SkillsmpProvider, AwesomeProvider, GitHubProvider, PriorityProvider, } from './providers/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Discovery manager for multi-source skill search
|
|
4
|
+
*/
|
|
5
|
+
export class DiscoveryManager {
|
|
6
|
+
providers = new Map();
|
|
7
|
+
skillsmpApiKey;
|
|
8
|
+
githubToken;
|
|
9
|
+
constructor(options = {}) {
|
|
10
|
+
this.skillsmpApiKey = options.skillsmpApiKey || null;
|
|
11
|
+
this.githubToken = options.githubToken || process.env.GITHUB_TOKEN || null;
|
|
12
|
+
// Priority provider (first search source - user-defined repos)
|
|
13
|
+
this.providers.set('priority', new PriorityProvider({
|
|
14
|
+
githubToken: this.githubToken || undefined,
|
|
15
|
+
priorityRepos: options.priorityRepos,
|
|
16
|
+
}));
|
|
17
|
+
// Initialize providers
|
|
18
|
+
if (options.storeManager) {
|
|
19
|
+
this.providers.set('local', new LocalProvider({
|
|
20
|
+
storeManager: options.storeManager,
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
// Skillsmp provider (primary when API key available)
|
|
24
|
+
const skillsmpProvider = new SkillsmpProvider({
|
|
25
|
+
apiKey: this.skillsmpApiKey || undefined,
|
|
26
|
+
});
|
|
27
|
+
if (this.skillsmpApiKey) {
|
|
28
|
+
skillsmpProvider.setApiKey(this.skillsmpApiKey);
|
|
29
|
+
}
|
|
30
|
+
this.providers.set('skillsmp', skillsmpProvider);
|
|
31
|
+
// Awesome provider (fallback, no key required)
|
|
32
|
+
this.providers.set('awesome', new AwesomeProvider({
|
|
33
|
+
githubToken: this.githubToken || undefined,
|
|
34
|
+
}));
|
|
35
|
+
// GitHub provider (supplementary)
|
|
36
|
+
this.providers.set('github', new GitHubProvider({
|
|
37
|
+
githubToken: this.githubToken || undefined,
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get default sources based on configuration
|
|
42
|
+
*
|
|
43
|
+
* Search order: priority → local → skillsmp/awesome → github
|
|
44
|
+
*
|
|
45
|
+
* With skillsmp key: priority → local → skillsmp (40K+) → github
|
|
46
|
+
* Without key: priority → local → awesome (~30) → github
|
|
47
|
+
*/
|
|
48
|
+
getDefaultSources() {
|
|
49
|
+
const sources = [];
|
|
50
|
+
// Priority repos first (miles990/claude-software-skills, claude-domain-skills)
|
|
51
|
+
if (this.providers.has('priority')) {
|
|
52
|
+
const priorityProvider = this.providers.get('priority');
|
|
53
|
+
if (priorityProvider.isConfigured()) {
|
|
54
|
+
sources.push('priority');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Always include local if available
|
|
58
|
+
if (this.providers.has('local')) {
|
|
59
|
+
sources.push('local');
|
|
60
|
+
}
|
|
61
|
+
// Primary source based on API key availability
|
|
62
|
+
if (this.skillsmpApiKey) {
|
|
63
|
+
sources.push('skillsmp');
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
sources.push('awesome');
|
|
67
|
+
}
|
|
68
|
+
// Always include github as supplementary
|
|
69
|
+
sources.push('github');
|
|
70
|
+
return sources;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check which sources are configured
|
|
74
|
+
*/
|
|
75
|
+
getConfiguredSources() {
|
|
76
|
+
return Array.from(this.providers.entries())
|
|
77
|
+
.filter(([, provider]) => provider.isConfigured())
|
|
78
|
+
.map(([source]) => source);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Set skillsmp API key (can be called after construction)
|
|
82
|
+
*/
|
|
83
|
+
setSkillsmpApiKey(apiKey) {
|
|
84
|
+
this.skillsmpApiKey = apiKey;
|
|
85
|
+
const provider = this.providers.get('skillsmp');
|
|
86
|
+
if (provider) {
|
|
87
|
+
provider.setApiKey(apiKey);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Search for skills across multiple sources
|
|
92
|
+
*/
|
|
93
|
+
async search(options) {
|
|
94
|
+
const { query, limit = 20, sources } = options;
|
|
95
|
+
const sourcesToQuery = sources || this.getDefaultSources();
|
|
96
|
+
const allSkills = [];
|
|
97
|
+
const errors = {};
|
|
98
|
+
const sourcesQueried = [];
|
|
99
|
+
// Query each source in parallel
|
|
100
|
+
const promises = sourcesToQuery.map(async (source) => {
|
|
101
|
+
const provider = this.providers.get(source);
|
|
102
|
+
if (!provider) {
|
|
103
|
+
errors[source] = `Provider not found: ${source}`;
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
if (!provider.isConfigured()) {
|
|
107
|
+
errors[source] = `Provider not configured: ${source}`;
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
sourcesQueried.push(source);
|
|
112
|
+
const skills = await provider.search({ query, limit: limit * 2 }); // Fetch more for dedup
|
|
113
|
+
return skills;
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
errors[source] = error.message;
|
|
117
|
+
return [];
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
const results = await Promise.all(promises);
|
|
121
|
+
for (const skills of results) {
|
|
122
|
+
allSkills.push(...skills);
|
|
123
|
+
}
|
|
124
|
+
// Deduplicate
|
|
125
|
+
const { skills: dedupedSkills, duplicatesRemoved } = this.deduplicateSkills(allSkills);
|
|
126
|
+
return {
|
|
127
|
+
skills: dedupedSkills.slice(0, limit),
|
|
128
|
+
sourcesQueried,
|
|
129
|
+
duplicatesRemoved,
|
|
130
|
+
errors: Object.keys(errors).length > 0 ? errors : undefined,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Deduplicate skills by normalized source URL
|
|
135
|
+
*
|
|
136
|
+
* Same skill from multiple sources → merge foundIn, keep first occurrence
|
|
137
|
+
*/
|
|
138
|
+
deduplicateSkills(skills) {
|
|
139
|
+
const seen = new Map();
|
|
140
|
+
let duplicatesRemoved = 0;
|
|
141
|
+
for (const skill of skills) {
|
|
142
|
+
const key = this.normalizeSourceForDedup(skill.source);
|
|
143
|
+
if (seen.has(key)) {
|
|
144
|
+
// Duplicate found - merge foundIn
|
|
145
|
+
const existing = seen.get(key);
|
|
146
|
+
const newFoundIn = skill.foundIn || [skill.provider];
|
|
147
|
+
existing.foundIn = [
|
|
148
|
+
...new Set([...(existing.foundIn || [existing.provider]), ...newFoundIn]),
|
|
149
|
+
];
|
|
150
|
+
// Keep higher star count if available
|
|
151
|
+
if (skill.stars && (!existing.stars || skill.stars > existing.stars)) {
|
|
152
|
+
existing.stars = skill.stars;
|
|
153
|
+
}
|
|
154
|
+
duplicatesRemoved++;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// First occurrence
|
|
158
|
+
seen.set(key, {
|
|
159
|
+
...skill,
|
|
160
|
+
foundIn: skill.foundIn || [skill.provider],
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Sort by: name match relevance (assumed), then stars, then name
|
|
165
|
+
const result = Array.from(seen.values()).sort((a, b) => {
|
|
166
|
+
// Stars (higher first)
|
|
167
|
+
if (a.stars && b.stars) {
|
|
168
|
+
if (a.stars !== b.stars)
|
|
169
|
+
return b.stars - a.stars;
|
|
170
|
+
}
|
|
171
|
+
if (a.stars && !b.stars)
|
|
172
|
+
return -1;
|
|
173
|
+
if (!a.stars && b.stars)
|
|
174
|
+
return 1;
|
|
175
|
+
// Name (alphabetical)
|
|
176
|
+
return a.name.localeCompare(b.name);
|
|
177
|
+
});
|
|
178
|
+
return { skills: result, duplicatesRemoved };
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Normalize source URL for deduplication
|
|
182
|
+
*
|
|
183
|
+
* Examples:
|
|
184
|
+
* github:user/repo#path → github:user/repo#path
|
|
185
|
+
* skillsmp:skill-name → skill-name (extract name)
|
|
186
|
+
* local:skill-name → skill-name
|
|
187
|
+
*/
|
|
188
|
+
normalizeSourceForDedup(source) {
|
|
189
|
+
// GitHub source - use as-is (most specific)
|
|
190
|
+
if (source.startsWith('github:')) {
|
|
191
|
+
return source.toLowerCase();
|
|
192
|
+
}
|
|
193
|
+
// Extract name from other sources
|
|
194
|
+
const match = source.match(/^(?:local|skillsmp|awesome):(.+)$/);
|
|
195
|
+
if (match) {
|
|
196
|
+
return match[1].toLowerCase();
|
|
197
|
+
}
|
|
198
|
+
return source.toLowerCase();
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Clear all provider caches
|
|
202
|
+
*/
|
|
203
|
+
clearAllCaches() {
|
|
204
|
+
for (const provider of this.providers.values()) {
|
|
205
|
+
if ('clearCache' in provider && typeof provider.clearCache === 'function') {
|
|
206
|
+
provider.clearCache();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Create a discovery manager
|
|
213
|
+
*/
|
|
214
|
+
export function createDiscoveryManager(options) {
|
|
215
|
+
return new DiscoveryManager(options);
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=discovery-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery-manager.js","sourceRoot":"","sources":["../../src/discovery/discovery-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discovery module - Multi-source skill discovery
|
|
3
|
+
*
|
|
4
|
+
* Provides unified interface for searching skills across multiple sources:
|
|
5
|
+
* - priority: Priority repos (miles990/claude-software-skills, claude-domain-skills) - SEARCHED FIRST
|
|
6
|
+
* - local: Installed skills (via StoreManager)
|
|
7
|
+
* - skillsmp: Primary registry (40K+ skills, requires API key)
|
|
8
|
+
* - awesome: Fallback curated repos (no key required)
|
|
9
|
+
* - github: Supplementary search (topic-based with SKILL.md detection)
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Auto source selection based on API key availability
|
|
13
|
+
* - Priority repos searched first by default
|
|
14
|
+
* - Deduplication with foundIn tracking
|
|
15
|
+
* - Caching per provider (skillsmp/github: 5min, priority/awesome: 30min)
|
|
16
|
+
*/
|
|
17
|
+
export type { DiscoverySource, DiscoveredSkill, DiscoverySearchOptions, DiscoveryResult, DiscoveryProvider, FetchSkillOptions, FetchSkillResult, DiscoveryManagerOptions, } from './types.js';
|
|
18
|
+
export { DiscoveryManager, createDiscoveryManager } from './discovery-manager.js';
|
|
19
|
+
export { LocalProvider, createLocalProvider, SkillsmpProvider, createSkillsmpProvider, AwesomeProvider, createAwesomeProvider, GitHubProvider, createGitHubProvider, PriorityProvider, createPriorityProvider, SKILLSMP_CONFIG, AWESOME_REPOS, DEFAULT_PRIORITY_REPOS, } from './providers/index.js';
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,YAAY,EACV,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
|