/** * 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 };