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