feat: 更新后端skill服务

- 更新 skill_handler.go handler层
- 更新 skill.go model层
- 更新 skill_repo.go repository层
- 更新 skill_service.go service层
- 更新 main.go 入口文件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 15:23:22 +08:00
parent e2c9bbd0d1
commit 414147911a
5 changed files with 163 additions and 43 deletions

View File

@@ -77,8 +77,8 @@ func (s *SkillService) InitSkills() error {
var totalCount int
// 扫描 system skills: account/admin/skills
systemSkillsPath := filepath.Join(projectRoot, "account", "admin", "skills")
// 扫描 system skills: core/agents/skills/system
systemSkillsPath := filepath.Join(projectRoot, "core", "agents", "skills", "system")
if _, err := os.Stat(systemSkillsPath); err == nil {
systemSkills, err := s.scanSkillsDirectory(systemSkillsPath, "system")
if err == nil && len(systemSkills) > 0 {
@@ -88,22 +88,14 @@ func (s *SkillService) InitSkills() error {
}
}
// 扫描 user skills: account/{username}/skills (除了 admin)
accountPath := filepath.Join(projectRoot, "account")
entries, err := os.ReadDir(accountPath)
if err == nil {
for _, entry := range entries {
if !entry.IsDir() || entry.Name() == "admin" {
continue
}
userSkillsPath := filepath.Join(accountPath, entry.Name(), "skills")
if _, err := os.Stat(userSkillsPath); err == nil {
userSkills, err := s.scanSkillsDirectory(userSkillsPath, "user")
if err == nil && len(userSkills) > 0 {
s.skillRepo.UpsertBatch(userSkills)
totalCount += len(userSkills)
}
}
// 扫描 user skills: core/agents/skills/user
userSkillsPath := filepath.Join(projectRoot, "core", "agents", "skills", "user")
if _, err := os.Stat(userSkillsPath); err == nil {
userSkills, err := s.scanSkillsDirectory(userSkillsPath, "user")
if err == nil && len(userSkills) > 0 {
s.skillRepo.DeleteByType("user")
s.skillRepo.UpsertBatch(userSkills)
totalCount += len(userSkills)
}
}