ai-devkit 0.10.0 → 0.11.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/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +46 -0
- package/dist/commands/skill.js.map +1 -1
- package/dist/lib/SkillManager.d.ts +39 -0
- package/dist/lib/SkillManager.d.ts.map +1 -1
- package/dist/lib/SkillManager.js +204 -23
- package/dist/lib/SkillManager.js.map +1 -1
- package/dist/util/git.d.ts +7 -0
- package/dist/util/git.d.ts.map +1 -1
- package/dist/util/git.js +20 -0
- package/dist/util/git.js.map +1 -1
- package/dist/util/github.d.ts +27 -0
- package/dist/util/github.d.ts.map +1 -0
- package/dist/util/github.js +49 -0
- package/dist/util/github.js.map +1 -0
- package/dist/util/skill.d.ts +6 -0
- package/dist/util/skill.d.ts.map +1 -1
- package/dist/util/skill.js +28 -0
- package/dist/util/skill.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwI3D"}
|
package/dist/commands/skill.js
CHANGED
|
@@ -84,5 +84,51 @@ function registerSkillCommand(program) {
|
|
|
84
84
|
process.exit(1);
|
|
85
85
|
}
|
|
86
86
|
});
|
|
87
|
+
skillCommand
|
|
88
|
+
.command('find <keyword>')
|
|
89
|
+
.description('Search for skills across all registries')
|
|
90
|
+
.option('--refresh', 'Force rebuild the skill index')
|
|
91
|
+
.action(async (keyword, options) => {
|
|
92
|
+
try {
|
|
93
|
+
const configManager = new Config_1.ConfigManager();
|
|
94
|
+
const skillManager = new SkillManager_1.SkillManager(configManager);
|
|
95
|
+
const results = await skillManager.findSkills(keyword, { refresh: options.refresh });
|
|
96
|
+
if (results.length === 0) {
|
|
97
|
+
terminal_ui_1.ui.warning(`No skills found matching "${keyword}"`);
|
|
98
|
+
terminal_ui_1.ui.info('Try a different keyword or use --refresh to update the skill index');
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
terminal_ui_1.ui.text(`Found ${results.length} skill(s) matching "${keyword}":`, { breakline: true });
|
|
102
|
+
terminal_ui_1.ui.table({
|
|
103
|
+
headers: ['Skill Name', 'Registry', 'Description'],
|
|
104
|
+
rows: results.map(skill => [
|
|
105
|
+
skill.name,
|
|
106
|
+
skill.registry,
|
|
107
|
+
skill.description.length > 60 ? skill.description.substring(0, 57) + '...' : skill.description
|
|
108
|
+
]),
|
|
109
|
+
columnStyles: [chalk_1.default.cyan, chalk_1.default.dim, chalk_1.default.white]
|
|
110
|
+
});
|
|
111
|
+
terminal_ui_1.ui.text(`\nInstall with: ai-devkit skill add <registry> <skill-name>`, { breakline: true });
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
terminal_ui_1.ui.error(`Failed to search skills: ${error.message}`);
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
skillCommand
|
|
119
|
+
.command('rebuild-index')
|
|
120
|
+
.description('Rebuild the skill index from all registries (for CI use)')
|
|
121
|
+
.option('--output <path>', 'Output path for the index file')
|
|
122
|
+
.action(async (options) => {
|
|
123
|
+
try {
|
|
124
|
+
const configManager = new Config_1.ConfigManager();
|
|
125
|
+
const skillManager = new SkillManager_1.SkillManager(configManager);
|
|
126
|
+
await skillManager.rebuildIndex(options.output);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
terminal_ui_1.ui.error(`Failed to rebuild index: ${error.message}`);
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
87
133
|
}
|
|
88
134
|
//# sourceMappingURL=skill.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":";;;;;AAMA,
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,13 @@ interface UpdateSummary {
|
|
|
19
19
|
failed: number;
|
|
20
20
|
results: UpdateResult[];
|
|
21
21
|
}
|
|
22
|
+
interface SkillEntry {
|
|
23
|
+
name: string;
|
|
24
|
+
registry: string;
|
|
25
|
+
path: string;
|
|
26
|
+
description: string;
|
|
27
|
+
lastIndexed: number;
|
|
28
|
+
}
|
|
22
29
|
export declare class SkillManager {
|
|
23
30
|
private configManager;
|
|
24
31
|
private environmentSelector;
|
|
@@ -45,6 +52,15 @@ export declare class SkillManager {
|
|
|
45
52
|
* @returns UpdateSummary with detailed results
|
|
46
53
|
*/
|
|
47
54
|
updateSkills(registryId?: string): Promise<UpdateSummary>;
|
|
55
|
+
/**
|
|
56
|
+
* Find skills by keyword across all registries
|
|
57
|
+
* @param keyword - Search keyword to match against skill names and descriptions
|
|
58
|
+
* @param options - Search options including refresh flag
|
|
59
|
+
* @returns Array of matching skill entries
|
|
60
|
+
*/
|
|
61
|
+
findSkills(keyword: string, options?: {
|
|
62
|
+
refresh?: boolean;
|
|
63
|
+
}): Promise<SkillEntry[]>;
|
|
48
64
|
private fetchDefaultRegistry;
|
|
49
65
|
private fetchMergedRegistry;
|
|
50
66
|
private getInstallationTargets;
|
|
@@ -62,6 +78,29 @@ export declare class SkillManager {
|
|
|
62
78
|
* @returns UpdateResult with status and message
|
|
63
79
|
*/
|
|
64
80
|
private updateRegistry;
|
|
81
|
+
/**
|
|
82
|
+
* Ensure skill index is available and fresh
|
|
83
|
+
* @param forceRefresh - Force rebuild regardless of TTL
|
|
84
|
+
* @returns Skill index
|
|
85
|
+
*/
|
|
86
|
+
private ensureSkillIndex;
|
|
87
|
+
/**
|
|
88
|
+
* Rebuild skill index and write to specified output path
|
|
89
|
+
* @param outputPath - Optional custom output path (defaults to SKILL_INDEX_PATH)
|
|
90
|
+
*/
|
|
91
|
+
rebuildIndex(outputPath?: string): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Build skill index from all registries
|
|
94
|
+
* @returns Complete skill index
|
|
95
|
+
*/
|
|
96
|
+
private buildSkillIndex;
|
|
97
|
+
/**
|
|
98
|
+
* Search index by keyword
|
|
99
|
+
* @param index - Skill index to search
|
|
100
|
+
* @param keyword - Normalized lowercase keyword
|
|
101
|
+
* @returns Matching skill entries
|
|
102
|
+
*/
|
|
103
|
+
private searchSkillIndex;
|
|
65
104
|
}
|
|
66
105
|
export {};
|
|
67
106
|
//# sourceMappingURL=SkillManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillManager.d.ts","sourceRoot":"","sources":["../../src/lib/SkillManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SkillManager.d.ts","sourceRoot":"","sources":["../../src/lib/SkillManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAiB5D,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAcD,qBAAa,YAAY;IAErB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,mBAAmB;gBAFnB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,GAAE,mBAA+C,EACpE,mBAAmB,GAAE,mBAA+C;IAG9E;;;;OAIG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmFpE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA8D7C;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCnD;;;;OAIG;IACG,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAqE/D;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAW3E,oBAAoB;YAUpB,mBAAmB;IAqBjC,OAAO,CAAC,sBAAsB;YAiBhB,sBAAsB;IAqBpC,OAAO,CAAC,8BAA8B;IAOtC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA8B5B;;;;;OAKG;YACW,cAAc;IA2B5B;;;;OAIG;YACW,gBAAgB;IAuD9B;;;OAGG;IACG,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtD;;;OAGG;YACW,eAAe;IA6G7B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;CAOzB"}
|
package/dist/lib/SkillManager.js
CHANGED
|
@@ -36,16 +36,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.SkillManager = void 0;
|
|
37
37
|
const fs = __importStar(require("fs-extra"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
|
-
const https = __importStar(require("https"));
|
|
40
39
|
const os = __importStar(require("os"));
|
|
41
40
|
const GlobalConfig_1 = require("./GlobalConfig");
|
|
42
41
|
const EnvironmentSelector_1 = require("./EnvironmentSelector");
|
|
43
42
|
const env_1 = require("../util/env");
|
|
44
43
|
const git_1 = require("../util/git");
|
|
45
44
|
const skill_1 = require("../util/skill");
|
|
45
|
+
const github_1 = require("../util/github");
|
|
46
46
|
const terminal_ui_1 = require("../util/terminal-ui");
|
|
47
|
-
const REGISTRY_URL = 'https://raw.githubusercontent.com/
|
|
47
|
+
const REGISTRY_URL = 'https://raw.githubusercontent.com/codeaholicguy/ai-devkit/main/skills/registry.json';
|
|
48
|
+
const SEED_INDEX_URL = 'https://raw.githubusercontent.com/codeaholicguy/ai-devkit/main/skills/index.json';
|
|
48
49
|
const SKILL_CACHE_DIR = path.join(os.homedir(), '.ai-devkit', 'skills');
|
|
50
|
+
const SKILL_INDEX_PATH = path.join(os.homedir(), '.ai-devkit', 'skills.json');
|
|
51
|
+
const INDEX_TTL_MS = 24 * 60 * 60 * 1000;
|
|
49
52
|
class SkillManager {
|
|
50
53
|
constructor(configManager, environmentSelector = new EnvironmentSelector_1.EnvironmentSelector(), globalConfigManager = new GlobalConfig_1.GlobalConfigManager()) {
|
|
51
54
|
this.configManager = configManager;
|
|
@@ -268,27 +271,26 @@ class SkillManager {
|
|
|
268
271
|
this.displayUpdateSummary(summary);
|
|
269
272
|
return summary;
|
|
270
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Find skills by keyword across all registries
|
|
276
|
+
* @param keyword - Search keyword to match against skill names and descriptions
|
|
277
|
+
* @param options - Search options including refresh flag
|
|
278
|
+
* @returns Array of matching skill entries
|
|
279
|
+
*/
|
|
280
|
+
async findSkills(keyword, options) {
|
|
281
|
+
if (!keyword || keyword.trim().length === 0) {
|
|
282
|
+
throw new Error('Keyword is required');
|
|
283
|
+
}
|
|
284
|
+
const normalizedKeyword = keyword.trim().toLowerCase();
|
|
285
|
+
const index = await this.ensureSkillIndex(options?.refresh);
|
|
286
|
+
return this.searchSkillIndex(index, normalizedKeyword);
|
|
287
|
+
}
|
|
271
288
|
async fetchDefaultRegistry() {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
}
|
|
278
|
-
let data = '';
|
|
279
|
-
res.on('data', (chunk) => data += chunk);
|
|
280
|
-
res.on('end', () => {
|
|
281
|
-
try {
|
|
282
|
-
resolve(JSON.parse(data));
|
|
283
|
-
}
|
|
284
|
-
catch (error) {
|
|
285
|
-
reject(new Error('Failed to parse registry JSON'));
|
|
286
|
-
}
|
|
287
|
-
});
|
|
288
|
-
}).on('error', (error) => {
|
|
289
|
-
reject(new Error(`Network error fetching registry: ${error.message}`));
|
|
290
|
-
});
|
|
291
|
-
});
|
|
289
|
+
const response = await fetch(REGISTRY_URL);
|
|
290
|
+
if (!response.ok) {
|
|
291
|
+
throw new Error(`Failed to fetch registry: HTTP ${response.status}`);
|
|
292
|
+
}
|
|
293
|
+
return response.json();
|
|
292
294
|
}
|
|
293
295
|
async fetchMergedRegistry() {
|
|
294
296
|
let defaultRegistries = {};
|
|
@@ -296,7 +298,8 @@ class SkillManager {
|
|
|
296
298
|
const defaultRegistry = await this.fetchDefaultRegistry();
|
|
297
299
|
defaultRegistries = defaultRegistry.registries || {};
|
|
298
300
|
}
|
|
299
|
-
catch {
|
|
301
|
+
catch (error) {
|
|
302
|
+
terminal_ui_1.ui.warning(`Failed to fetch default registry: ${error.message}`);
|
|
300
303
|
defaultRegistries = {};
|
|
301
304
|
}
|
|
302
305
|
const customRegistries = await this.globalConfigManager.getSkillRegistries();
|
|
@@ -405,6 +408,184 @@ class SkillManager {
|
|
|
405
408
|
};
|
|
406
409
|
}
|
|
407
410
|
}
|
|
411
|
+
/**
|
|
412
|
+
* Ensure skill index is available and fresh
|
|
413
|
+
* @param forceRefresh - Force rebuild regardless of TTL
|
|
414
|
+
* @returns Skill index
|
|
415
|
+
*/
|
|
416
|
+
async ensureSkillIndex(forceRefresh = false) {
|
|
417
|
+
const indexExists = await fs.pathExists(SKILL_INDEX_PATH);
|
|
418
|
+
if (indexExists && !forceRefresh) {
|
|
419
|
+
try {
|
|
420
|
+
const index = await fs.readJson(SKILL_INDEX_PATH);
|
|
421
|
+
const age = Date.now() - (index.meta.updatedAt || 0);
|
|
422
|
+
if (age < INDEX_TTL_MS) {
|
|
423
|
+
return index;
|
|
424
|
+
}
|
|
425
|
+
terminal_ui_1.ui.info(`Index is older than 24h, checking for updates...`);
|
|
426
|
+
}
|
|
427
|
+
catch (error) {
|
|
428
|
+
terminal_ui_1.ui.warning('Failed to read skill index, will rebuild');
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
if (!indexExists && !forceRefresh) {
|
|
432
|
+
const spinner = terminal_ui_1.ui.spinner('Fetching seed index...');
|
|
433
|
+
spinner.start();
|
|
434
|
+
try {
|
|
435
|
+
const response = await fetch(SEED_INDEX_URL);
|
|
436
|
+
if (response.ok) {
|
|
437
|
+
const seedIndex = (await response.json());
|
|
438
|
+
await fs.ensureDir(path.dirname(SKILL_INDEX_PATH));
|
|
439
|
+
await fs.writeJson(SKILL_INDEX_PATH, seedIndex, { spaces: 2 });
|
|
440
|
+
spinner.succeed('Seed index fetched successfully');
|
|
441
|
+
return seedIndex;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
catch (error) {
|
|
445
|
+
spinner.fail('Failed to fetch seed index, falling back to build');
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
const spinner = terminal_ui_1.ui.spinner('Building skill index from registries...');
|
|
449
|
+
spinner.start();
|
|
450
|
+
try {
|
|
451
|
+
const newIndex = await this.buildSkillIndex();
|
|
452
|
+
await fs.ensureDir(path.dirname(SKILL_INDEX_PATH));
|
|
453
|
+
await fs.writeJson(SKILL_INDEX_PATH, newIndex, { spaces: 2 });
|
|
454
|
+
spinner.succeed('Skill index updated');
|
|
455
|
+
return newIndex;
|
|
456
|
+
}
|
|
457
|
+
catch (error) {
|
|
458
|
+
spinner.fail('Failed to build index');
|
|
459
|
+
if (!forceRefresh && await fs.pathExists(SKILL_INDEX_PATH)) {
|
|
460
|
+
terminal_ui_1.ui.warning('Using stale index due to error');
|
|
461
|
+
return await fs.readJson(SKILL_INDEX_PATH);
|
|
462
|
+
}
|
|
463
|
+
throw new Error(`Failed to build skill index: ${error.message}`);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Rebuild skill index and write to specified output path
|
|
468
|
+
* @param outputPath - Optional custom output path (defaults to SKILL_INDEX_PATH)
|
|
469
|
+
*/
|
|
470
|
+
async rebuildIndex(outputPath) {
|
|
471
|
+
const targetPath = outputPath || SKILL_INDEX_PATH;
|
|
472
|
+
const spinner = terminal_ui_1.ui.spinner('Rebuilding skill index from all registries...');
|
|
473
|
+
spinner.start();
|
|
474
|
+
try {
|
|
475
|
+
const newIndex = await this.buildSkillIndex();
|
|
476
|
+
await fs.ensureDir(path.dirname(targetPath));
|
|
477
|
+
await fs.writeJson(targetPath, newIndex, { spaces: 2 });
|
|
478
|
+
spinner.succeed(`Skill index rebuilt: ${newIndex.skills.length} skills`);
|
|
479
|
+
terminal_ui_1.ui.info(`Written to: ${targetPath}`);
|
|
480
|
+
}
|
|
481
|
+
catch (error) {
|
|
482
|
+
spinner.fail('Failed to rebuild index');
|
|
483
|
+
throw new Error(`Failed to rebuild skill index: ${error.message}`);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Build skill index from all registries
|
|
488
|
+
* @returns Complete skill index
|
|
489
|
+
*/
|
|
490
|
+
async buildSkillIndex() {
|
|
491
|
+
const registry = await this.fetchMergedRegistry();
|
|
492
|
+
const registryIds = Object.keys(registry.registries);
|
|
493
|
+
let existingIndex = null;
|
|
494
|
+
try {
|
|
495
|
+
if (await fs.pathExists(SKILL_INDEX_PATH)) {
|
|
496
|
+
existingIndex = await fs.readJson(SKILL_INDEX_PATH);
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
catch { /* ignore */ }
|
|
500
|
+
terminal_ui_1.ui.info(`Building skill index from ${registryIds.length} registries...`);
|
|
501
|
+
const HEAD_CONCURRENCY = 10;
|
|
502
|
+
const headResults = [];
|
|
503
|
+
for (let i = 0; i < registryIds.length; i += HEAD_CONCURRENCY) {
|
|
504
|
+
const batch = registryIds.slice(i, i + HEAD_CONCURRENCY);
|
|
505
|
+
const batchResults = await Promise.allSettled(batch.map(async (registryId) => {
|
|
506
|
+
const gitUrl = registry.registries[registryId];
|
|
507
|
+
const match = gitUrl.match(/github\.com\/([^/]+)\/([^/.]+)/);
|
|
508
|
+
if (!match)
|
|
509
|
+
return { registryId, error: 'not a GitHub URL' };
|
|
510
|
+
const headSha = await (0, git_1.fetchGitHead)(gitUrl);
|
|
511
|
+
return { registryId, headSha, owner: match[1], repo: match[2] };
|
|
512
|
+
}));
|
|
513
|
+
for (const result of batchResults) {
|
|
514
|
+
if (result.status === 'fulfilled') {
|
|
515
|
+
headResults.push(result.value);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
const registryHeads = {};
|
|
520
|
+
const registriesToFetch = [];
|
|
521
|
+
const unchangedSkills = [];
|
|
522
|
+
for (const result of headResults) {
|
|
523
|
+
const { registryId, headSha, owner, repo, error } = result;
|
|
524
|
+
if (error || !headSha || !owner || !repo) {
|
|
525
|
+
if (error)
|
|
526
|
+
terminal_ui_1.ui.warning(`Skipping ${registryId}: ${error}`);
|
|
527
|
+
continue;
|
|
528
|
+
}
|
|
529
|
+
registryHeads[registryId] = headSha;
|
|
530
|
+
const existingHead = existingIndex?.meta?.registryHeads?.[registryId];
|
|
531
|
+
if (existingHead === headSha) {
|
|
532
|
+
const existingSkills = existingIndex?.skills?.filter(s => s.registry === registryId) || [];
|
|
533
|
+
unchangedSkills.push(...existingSkills);
|
|
534
|
+
}
|
|
535
|
+
else {
|
|
536
|
+
registriesToFetch.push({ registryId, owner, repo });
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
terminal_ui_1.ui.info(`${registriesToFetch.length} registries need updating, ${unchangedSkills.length} skills cached`);
|
|
540
|
+
const CONCURRENCY = 5;
|
|
541
|
+
const newSkills = [];
|
|
542
|
+
for (let i = 0; i < registriesToFetch.length; i += CONCURRENCY) {
|
|
543
|
+
const batch = registriesToFetch.slice(i, i + CONCURRENCY);
|
|
544
|
+
const batchResults = await Promise.allSettled(batch.map(async ({ registryId, owner, repo }) => {
|
|
545
|
+
const skillPaths = await (0, github_1.fetchGitHubSkillPaths)(owner, repo);
|
|
546
|
+
const skillResults = await Promise.allSettled(skillPaths.map(async (skillPath) => {
|
|
547
|
+
const content = await (0, github_1.fetchRawGitHubFile)(owner, repo, `${skillPath}/SKILL.md`);
|
|
548
|
+
const description = (0, skill_1.extractSkillDescription)(content);
|
|
549
|
+
return {
|
|
550
|
+
name: path.basename(skillPath),
|
|
551
|
+
registry: registryId,
|
|
552
|
+
path: skillPath,
|
|
553
|
+
description,
|
|
554
|
+
lastIndexed: Date.now(),
|
|
555
|
+
};
|
|
556
|
+
}));
|
|
557
|
+
return skillResults
|
|
558
|
+
.filter((r) => r.status === 'fulfilled')
|
|
559
|
+
.map(r => r.value);
|
|
560
|
+
}));
|
|
561
|
+
for (const result of batchResults) {
|
|
562
|
+
if (result.status === 'fulfilled') {
|
|
563
|
+
newSkills.push(...result.value);
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
const skills = [...unchangedSkills, ...newSkills];
|
|
568
|
+
const meta = {
|
|
569
|
+
version: 1,
|
|
570
|
+
createdAt: existingIndex?.meta?.createdAt || Date.now(),
|
|
571
|
+
updatedAt: Date.now(),
|
|
572
|
+
registryHeads,
|
|
573
|
+
};
|
|
574
|
+
return { meta, skills };
|
|
575
|
+
}
|
|
576
|
+
/**
|
|
577
|
+
* Search index by keyword
|
|
578
|
+
* @param index - Skill index to search
|
|
579
|
+
* @param keyword - Normalized lowercase keyword
|
|
580
|
+
* @returns Matching skill entries
|
|
581
|
+
*/
|
|
582
|
+
searchSkillIndex(index, keyword) {
|
|
583
|
+
return index.skills.filter(skill => {
|
|
584
|
+
const nameMatch = skill.name.toLowerCase().includes(keyword);
|
|
585
|
+
const descMatch = skill.description.toLowerCase().includes(keyword);
|
|
586
|
+
return nameMatch || descMatch;
|
|
587
|
+
});
|
|
588
|
+
}
|
|
408
589
|
}
|
|
409
590
|
exports.SkillManager = SkillManager;
|
|
410
591
|
//# sourceMappingURL=SkillManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillManager.js","sourceRoot":"","sources":["../../src/lib/SkillManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,6CAA+B;AAC/B,uCAAyB;AAEzB,iDAAqD;AACrD,+DAA4D;AAC5D,qCAA2C;AAC3C,qCAAmG;AACnG,yCAAsE;AACtE,qDAAyC;AAEzC,MAAM,YAAY,GAAG,qFAAqF,CAAC;AAC3G,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AA2BxE,MAAa,YAAY;IACvB,YACU,aAA4B,EAC5B,sBAA2C,IAAI,yCAAmB,EAAE,EACpE,sBAA2C,IAAI,kCAAmB,EAAE;QAFpE,kBAAa,GAAb,aAAa,CAAe;QAC5B,wBAAmB,GAAnB,mBAAmB,CAAiD;QACpE,wBAAmB,GAAnB,mBAAmB,CAAiD;IAC1E,CAAC;IAEL;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,UAAkB,EAAE,SAAiB;QAClD,gBAAE,CAAC,IAAI,CAAC,qBAAqB,SAAS,SAAS,UAAU,EAAE,CAAC,CAAC;QAC7D,IAAA,0BAAkB,EAAC,UAAU,CAAC,CAAC;QAC/B,IAAA,yBAAiB,EAAC,SAAS,CAAC,CAAC;QAC7B,MAAM,IAAA,wBAAkB,GAAE,CAAC;QAE3B,MAAM,OAAO,GAAG,gBAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAClD,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,aAAa,UAAU,cAAc,CACtC,CAAC;QACJ,CAAC;QAED,gBAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEvE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,UAAU,SAAS,kBAAkB,UAAU,8CAA8C,CAC9F,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,wCAAwC,SAAS,wCAAwC,CAC1F,CAAC;QACJ,CAAC;QAED,gBAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,gBAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YAC/D,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAE3C,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC;gBAC9E,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;gBACnC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;gBAChE,gBAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAElF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,gBAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAE9D,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAElE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,gBAAE,CAAC,IAAI,CAAC,OAAO,SAAS,IAAI,SAAS,4BAA4B,CAAC,CAAC;gBACnE,SAAS;YACX,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YAE7C,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC/C,gBAAE,CAAC,IAAI,CAAC,OAAO,SAAS,IAAI,SAAS,cAAc,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACrC,gBAAE,CAAC,IAAI,CAAC,OAAO,SAAS,IAAI,SAAS,WAAW,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,gBAAE,CAAC,IAAI,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;QAChD,gBAAE,CAAC,IAAI,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;QACnC,gBAAE,CAAC,IAAI,CAAC,mBAAmB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,gBAAE,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC;YACtE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAElF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,gBAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;YACxD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAE9D,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;YAErD,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;oBAClD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;oBAE7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC/B,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;wBACjD,IAAI,QAAQ,GAAG,SAAS,CAAC;wBAEzB,IAAI,CAAC;4BACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;4BAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;4BAC/D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BAC5C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gCACtB,QAAQ,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;4BACvC,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,gBAAgB;wBAClB,CAAC;wBAED,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,SAAS;4BACf,QAAQ;4BACR,YAAY,EAAE,gBAAgB;yBAC/B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,gBAAE,CAAC,IAAI,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC;QACxC,IAAA,yBAAiB,EAAC,SAAS,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAElF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAEjE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3B,gBAAE,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;gBACzC,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,gBAAE,CAAC,OAAO,CAAC,UAAU,SAAS,iCAAiC,CAAC,CAAC;YACjE,gBAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,gBAAE,CAAC,OAAO,CAAC,6BAA6B,YAAY,eAAe,CAAC,CAAC;YACrE,gBAAE,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,UAAmB;QACpC,gBAAE,CAAC,IAAI,CAAC,UAAU;YAChB,CAAC,CAAC,sBAAsB,UAAU,KAAK;YACvC,CAAC,CAAC,wBAAwB,CAC3B,CAAC;QAEF,MAAM,IAAA,wBAAkB,GAAE,CAAC;QAE3B,MAAM,QAAQ,GAAG,eAAe,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,gBAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;YACxD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACzE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,MAAM,UAAU,GAAwC,EAAE,CAAC;QAE3D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;wBACvB,MAAM,cAAc,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBAEpD,IAAI,CAAC,UAAU,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;4BACjD,UAAU,CAAC,IAAI,CAAC;gCACd,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;gCACrC,EAAE,EAAE,cAAc;6BACnB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,uBAAuB,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,gBAAE,CAAC,OAAO,CAAC,YAAY,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,aAAa,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAkB;YAC7B,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;YAC9D,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;YAC3D,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM;YACxD,OAAO;SACR,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC9B,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBACtE,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;gBACzC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,CAAC;wBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,IAAI,iBAAiB,GAA2B,EAAE,CAAC;QAEnD,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1D,iBAAiB,GAAG,eAAe,CAAC,UAAU,IAAI,EAAE,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,CAAC;QAE7E,OAAO;YACL,UAAU,EAAE;gBACV,GAAG,iBAAiB;gBACpB,GAAG,gBAAgB;aACpB;SACF,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,YAAsB;QACnD,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAA,kBAAY,EAAC,GAAU,CAAC,CAAC;YAC3C,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,UAAkB,EAAE,MAAe;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAExD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,gBAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,4CAA4C,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,OAAO,GAAG,gBAAE,CAAC,OAAO,CAAC,WAAW,UAAU,8BAA8B,CAAC,CAAC;QAChF,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAe,EAAC,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1E,OAAO,CAAC,OAAO,CAAC,GAAG,UAAU,sBAAsB,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,8BAA8B,CAAC,YAAsB;QAC3D,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAA,kBAAY,EAAC,GAAU,CAAC,CAAC;YAC3C,OAAO,SAAS,KAAK,SAAS,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAAC,OAAsB;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;QAEjE,gBAAE,CAAC,OAAO,CAAC;YACT,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE;gBAChE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;gBAC7D,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;aAC1D;YACD,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3B,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACxB,IAAI,GAAuB,CAAC;oBAE5B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;wBAChF,GAAG,GAAG,2CAA2C,KAAK,CAAC,UAAU,kBAAkB,CAAC;oBACtF,CAAC;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBAClF,GAAG,GAAG,+CAA+C,CAAC;oBACxD,CAAC;oBAED,OAAO;wBACL,OAAO,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,OAAO,EAAE;wBAChD,GAAG;qBACJ,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,cAAc,CAAC,YAAoB,EAAE,UAAkB;QACnE,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAe,EAAC,YAAY,CAAC,CAAC;QAElD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,UAAU;gBACV,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,sBAAsB;aAChC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAA,oBAAc,EAAC,YAAY,CAAC,CAAC;YACnC,OAAO;gBACL,UAAU;gBACV,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,sBAAsB;aAChC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,UAAU;gBACV,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK;aACN,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA7aD,oCA6aC"}
|
|
1
|
+
{"version":3,"file":"SkillManager.js","sourceRoot":"","sources":["../../src/lib/SkillManager.ts"],"names":[],"mappings":"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"}
|
package/dist/util/git.d.ts
CHANGED
|
@@ -24,4 +24,11 @@ export declare function isGitRepository(dirPath: string): Promise<boolean>;
|
|
|
24
24
|
* @throws Error if git pull fails
|
|
25
25
|
*/
|
|
26
26
|
export declare function pullRepository(repoPath: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Fetch the current HEAD SHA for a git repository using git ls-remote
|
|
29
|
+
* @param gitUrl - Git repository URL
|
|
30
|
+
* @returns HEAD SHA hash
|
|
31
|
+
* @throws Error if fetch fails or cannot parse output
|
|
32
|
+
*/
|
|
33
|
+
export declare function fetchGitHead(gitUrl: string): Promise<string>;
|
|
27
34
|
//# sourceMappingURL=git.d.ts.map
|
package/dist/util/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQxD;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB1G;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvE;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUpE"}
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQxD;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB1G;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvE;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUpE;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAalE"}
|
package/dist/util/git.js
CHANGED
|
@@ -37,6 +37,7 @@ exports.ensureGitInstalled = ensureGitInstalled;
|
|
|
37
37
|
exports.cloneRepository = cloneRepository;
|
|
38
38
|
exports.isGitRepository = isGitRepository;
|
|
39
39
|
exports.pullRepository = pullRepository;
|
|
40
|
+
exports.fetchGitHead = fetchGitHead;
|
|
40
41
|
const child_process_1 = require("child_process");
|
|
41
42
|
const util_1 = require("util");
|
|
42
43
|
const fs = __importStar(require("fs-extra"));
|
|
@@ -107,4 +108,23 @@ async function pullRepository(repoPath) {
|
|
|
107
108
|
throw new Error(`Git pull failed: ${message}`);
|
|
108
109
|
}
|
|
109
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Fetch the current HEAD SHA for a git repository using git ls-remote
|
|
113
|
+
* @param gitUrl - Git repository URL
|
|
114
|
+
* @returns HEAD SHA hash
|
|
115
|
+
* @throws Error if fetch fails or cannot parse output
|
|
116
|
+
*/
|
|
117
|
+
async function fetchGitHead(gitUrl) {
|
|
118
|
+
try {
|
|
119
|
+
const { stdout } = await execAsync(`git ls-remote ${gitUrl} HEAD`);
|
|
120
|
+
const match = stdout.trim().match(/^([a-f0-9]+)\s+HEAD$/m);
|
|
121
|
+
if (!match) {
|
|
122
|
+
throw new Error('Could not parse HEAD from ls-remote output');
|
|
123
|
+
}
|
|
124
|
+
return match[1];
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
throw new Error(`Failed to fetch git HEAD: ${error.message}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
110
130
|
//# sourceMappingURL=git.js.map
|
package/dist/util/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,gDAQC;AAUD,0CAoBC;AAOD,0CAGC;AAOD,wCAUC;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,gDAQC;AAUD,0CAoBC;AAOD,0CAGC;AAOD,wCAUC;AAQD,oCAaC;AAjGD,iDAAqC;AACrC,+BAAiC;AACjC,6CAA+B;AAC/B,2CAA6B;AAE7B,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAElC;;;GAGG;AACI,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,QAAgB,EAAE,MAAc;IACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,OAAO,SAAS,IAAI,QAAQ,4BAA4B,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,8BAA8B,CAAC,CAAC;IACnE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,wCAAwC,MAAM,MAAM,QAAQ,GAAG,EAAE;YAC/E,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,UAAU,EAAE;YAC1B,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,eAAe,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,iBAAiB,MAAM,OAAO,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAE3D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface GitHubTreeItem {
|
|
2
|
+
path: string;
|
|
3
|
+
type: 'blob' | 'tree';
|
|
4
|
+
sha: string;
|
|
5
|
+
}
|
|
6
|
+
export interface GitHubTreeResponse {
|
|
7
|
+
tree: GitHubTreeItem[];
|
|
8
|
+
truncated: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Fetch repository tree from GitHub API
|
|
12
|
+
* @param owner - Repository owner
|
|
13
|
+
* @param repo - Repository name
|
|
14
|
+
* @param branch - Branch name (default: 'main')
|
|
15
|
+
* @returns Array of skill paths (e.g., ["skills/frontend-design", "skills/typescript-helper"])
|
|
16
|
+
*/
|
|
17
|
+
export declare function fetchGitHubSkillPaths(owner: string, repo: string, branch?: string): Promise<string[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Fetch raw file content from GitHub
|
|
20
|
+
* @param owner - Repository owner
|
|
21
|
+
* @param repo - Repository name
|
|
22
|
+
* @param path - File path within repository
|
|
23
|
+
* @param branch - Branch name (default: 'main')
|
|
24
|
+
* @returns File content as string
|
|
25
|
+
*/
|
|
26
|
+
export declare function fetchRawGitHubFile(owner: string, repo: string, path: string, branch?: string): Promise<string>;
|
|
27
|
+
//# sourceMappingURL=github.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/util/github.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,SAAS,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BnB;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,SAAS,GAChB,OAAO,CAAC,MAAM,CAAC,CAUjB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchGitHubSkillPaths = fetchGitHubSkillPaths;
|
|
4
|
+
exports.fetchRawGitHubFile = fetchRawGitHubFile;
|
|
5
|
+
/**
|
|
6
|
+
* Fetch repository tree from GitHub API
|
|
7
|
+
* @param owner - Repository owner
|
|
8
|
+
* @param repo - Repository name
|
|
9
|
+
* @param branch - Branch name (default: 'main')
|
|
10
|
+
* @returns Array of skill paths (e.g., ["skills/frontend-design", "skills/typescript-helper"])
|
|
11
|
+
*/
|
|
12
|
+
async function fetchGitHubSkillPaths(owner, repo, branch = 'main') {
|
|
13
|
+
const url = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}?recursive=1`;
|
|
14
|
+
const headers = {
|
|
15
|
+
'User-Agent': 'ai-devkit-cli',
|
|
16
|
+
'Accept': 'application/vnd.github.v3+json',
|
|
17
|
+
};
|
|
18
|
+
if (process.env.GITHUB_TOKEN) {
|
|
19
|
+
headers['Authorization'] = `Bearer ${process.env.GITHUB_TOKEN}`;
|
|
20
|
+
}
|
|
21
|
+
const response = await fetch(url, { headers });
|
|
22
|
+
if (!response.ok) {
|
|
23
|
+
throw new Error(`GitHub API returned ${response.status}: ${response.statusText}`);
|
|
24
|
+
}
|
|
25
|
+
const data = (await response.json());
|
|
26
|
+
const skillPaths = data.tree
|
|
27
|
+
.filter(item => item.path.startsWith('skills/') &&
|
|
28
|
+
item.path.endsWith('/SKILL.md') &&
|
|
29
|
+
item.type === 'blob')
|
|
30
|
+
.map(item => item.path.replace('/SKILL.md', ''));
|
|
31
|
+
return skillPaths;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Fetch raw file content from GitHub
|
|
35
|
+
* @param owner - Repository owner
|
|
36
|
+
* @param repo - Repository name
|
|
37
|
+
* @param path - File path within repository
|
|
38
|
+
* @param branch - Branch name (default: 'main')
|
|
39
|
+
* @returns File content as string
|
|
40
|
+
*/
|
|
41
|
+
async function fetchRawGitHubFile(owner, repo, path, branch = 'main') {
|
|
42
|
+
const url = `https://raw.githubusercontent.com/${owner}/${repo}/${branch}/${path}`;
|
|
43
|
+
const response = await fetch(url);
|
|
44
|
+
if (!response.ok) {
|
|
45
|
+
throw new Error(`Failed to fetch file: ${response.status} ${response.statusText}`);
|
|
46
|
+
}
|
|
47
|
+
return await response.text();
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=github.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/util/github.ts"],"names":[],"mappings":";;AAkBA,sDAiCC;AAUD,gDAeC;AAjED;;;;;;GAMG;AACI,KAAK,UAAU,qBAAqB,CACvC,KAAa,EACb,IAAY,EACZ,MAAM,GAAG,MAAM;IAEf,MAAM,GAAG,GAAG,gCAAgC,KAAK,IAAI,IAAI,cAAc,MAAM,cAAc,CAAC;IAE5F,MAAM,OAAO,GAA2B;QACpC,YAAY,EAAE,eAAe;QAC7B,QAAQ,EAAE,gCAAgC;KAC7C,CAAC;IAEF,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC3B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAE/C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;IAE3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI;SACvB,MAAM,CAAC,IAAI,CAAC,EAAE,CACX,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,KAAK,MAAM,CACvB;SACA,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAErD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,kBAAkB,CACpC,KAAa,EACb,IAAY,EACZ,IAAY,EACZ,MAAM,GAAG,MAAM;IAEf,MAAM,GAAG,GAAG,qCAAqC,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;IAEnF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC"}
|
package/dist/util/skill.d.ts
CHANGED
|
@@ -10,4 +10,10 @@ export declare function validateRegistryId(registryId: string): void;
|
|
|
10
10
|
* @throws Error if name doesn't meet requirements
|
|
11
11
|
*/
|
|
12
12
|
export declare function validateSkillName(skillName: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Extract skill description from SKILL.md frontmatter
|
|
15
|
+
* @param content - Content of SKILL.md file
|
|
16
|
+
* @returns Description from frontmatter or first non-empty paragraph
|
|
17
|
+
*/
|
|
18
|
+
export declare function extractSkillDescription(content: string): string;
|
|
13
19
|
//# sourceMappingURL=skill.d.ts.map
|
package/dist/util/skill.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/util/skill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/util/skill.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAQ3D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAczD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmB/D"}
|
package/dist/util/skill.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.validateRegistryId = validateRegistryId;
|
|
4
7
|
exports.validateSkillName = validateSkillName;
|
|
8
|
+
exports.extractSkillDescription = extractSkillDescription;
|
|
9
|
+
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
5
10
|
/**
|
|
6
11
|
* Validates registry ID format
|
|
7
12
|
* @param registryId - Expected format: "org/repo"
|
|
@@ -31,4 +36,27 @@ function validateSkillName(skillName) {
|
|
|
31
36
|
throw new Error('Skill name cannot contain consecutive hyphens.');
|
|
32
37
|
}
|
|
33
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Extract skill description from SKILL.md frontmatter
|
|
41
|
+
* @param content - Content of SKILL.md file
|
|
42
|
+
* @returns Description from frontmatter or first non-empty paragraph
|
|
43
|
+
*/
|
|
44
|
+
function extractSkillDescription(content) {
|
|
45
|
+
try {
|
|
46
|
+
const parsed = (0, gray_matter_1.default)(content);
|
|
47
|
+
// Try to get description from frontmatter
|
|
48
|
+
if (parsed.data && parsed.data.description) {
|
|
49
|
+
return String(parsed.data.description).trim();
|
|
50
|
+
}
|
|
51
|
+
// Fallback: use first non-empty paragraph from content
|
|
52
|
+
const lines = parsed.content
|
|
53
|
+
.split('\n')
|
|
54
|
+
.filter((l) => l.trim() && !l.startsWith('#'));
|
|
55
|
+
return lines[0]?.trim() || 'No description available';
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
// If parsing fails, return fallback
|
|
59
|
+
return 'No description available';
|
|
60
|
+
}
|
|
61
|
+
}
|
|
34
62
|
//# sourceMappingURL=skill.js.map
|
package/dist/util/skill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/util/skill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/util/skill.ts"],"names":[],"mappings":";;;;;AAOA,gDAQC;AAOD,8CAcC;AAOD,0DAmBC;AA9DD,8DAAiC;AAEjC;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,gCAAgC,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,SAAiB;IACjD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,wBAAwB,SAAS,+DAA+D,CACjG,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,OAAe;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,qBAAM,EAAC,OAAO,CAAC,CAAC;QAE/B,0CAA0C;QAC1C,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,CAAC;QAED,uDAAuD;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO;aACzB,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,0BAA0B,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oCAAoC;QACpC,OAAO,0BAA0B,CAAC;IACpC,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED