From 203dcf4a4e271fc9047b8953e8aa514c29858aff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E6=BD=AE?= Date: Tue, 26 May 2026 16:13:26 +0800 Subject: [PATCH] skill category --- routes/skill_manager.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/routes/skill_manager.py b/routes/skill_manager.py index 41f27e0..0b4eed1 100644 --- a/routes/skill_manager.py +++ b/routes/skill_manager.py @@ -22,6 +22,7 @@ class SkillItem(BaseModel): name: str description: str user_skill: bool = False + category: str = "other" class SkillListResponse(BaseModel): @@ -35,6 +36,7 @@ class SkillValidationResult: valid: bool name: Optional[str] = None description: Optional[str] = None + category: Optional[str] = None error_message: Optional[str] = None @@ -268,7 +270,8 @@ def parse_plugin_json(plugin_json_path: str) -> SkillValidationResult: return SkillValidationResult( valid=True, name=plugin_config['name'], - description=plugin_config['description'] + description=plugin_config['description'], + category=plugin_config.get('category'), ) except json.JSONDecodeError as e: @@ -335,7 +338,8 @@ def parse_skill_frontmatter(skill_md_path: str) -> SkillValidationResult: return SkillValidationResult( valid=True, name=metadata['name'], - description=metadata['description'] + description=metadata['description'], + category=metadata.get('category'), ) except yaml.YAMLError as e: @@ -411,10 +415,13 @@ def get_skill_metadata_legacy(skill_path: str) -> Optional[dict]: """ result = get_skill_metadata(skill_path) if result.valid: - return { + ret = { 'name': result.name, - 'description': result.description + 'description': result.description, } + if result.category: + ret['category'] = result.category + return ret return None @@ -457,7 +464,8 @@ def get_official_skills(base_dir: str) -> List[SkillItem]: skills.append(SkillItem( name=metadata['name'], description=metadata['description'], - user_skill=False + user_skill=False, + category=metadata.get('category', 'other'), )) skill_names.add(skill_name) logger.debug(f"Found official skill: {metadata['name']} from {official_skills_dir}") @@ -490,7 +498,8 @@ def get_user_skills(base_dir: str, bot_id: str) -> List[SkillItem]: skills.append(SkillItem( name=metadata['name'], description=metadata['description'], - user_skill=True + user_skill=True, + category=metadata.get('category', 'custom'), )) logger.debug(f"Found user skill: {metadata['name']}")