skill-registry.js
1.41 KB
/**
* SkillRegistry — Skill 注册表 (SQLite-backed, 委托 skill-db.js)
*/
const skillDb = require('./skill-db');
class SkillRegistry {
constructor(skillsDir) { this.skillsDir = skillsDir; }
// 匹配 & 搜索
findSkill(domain, keywords = [], skillName = '') { return skillDb.findSkill(domain, keywords, skillName); }
searchSkills(query = '', options = {}) { return skillDb.searchSkills(query, options); }
static toPublicInfo(skill) { return skillDb.toPublicInfo(skill); }
// CRUD
registerSkill(meta) { return skillDb.registerSkill({ ...meta, skillsDir: this.skillsDir }); }
updateSkill(skillName, updates) { return skillDb.updateSkill(skillName, updates); }
renameSkill(oldName, newName) { return skillDb.renameSkill(oldName, newName, this.skillsDir); }
getSkill(skillName) { return skillDb.getSkill(skillName); }
listSkills() { return skillDb.listSkills(); }
removeSkill(skillName) { return skillDb.removeSkill(skillName); }
bumpVersion(skillName, type = 'minor', score = null) { return skillDb.bumpVersion(skillName, type, score); }
// 统计
incrementUseCount(skillName) { return skillDb.incrementUseCount(skillName); }
incrementDownloadCount(skillName) { return skillDb.incrementDownloadCount(skillName); }
recordUpdate(skillName, from, to) { return skillDb.recordUpdate(skillName, from, to); }
invalidateCache() { /* no-op: SQLite is stateless */ }
}
module.exports = { SkillRegistry };