skill category
This commit is contained in:
parent
9d001c86fc
commit
203dcf4a4e
@ -22,6 +22,7 @@ class SkillItem(BaseModel):
|
|||||||
name: str
|
name: str
|
||||||
description: str
|
description: str
|
||||||
user_skill: bool = False
|
user_skill: bool = False
|
||||||
|
category: str = "other"
|
||||||
|
|
||||||
|
|
||||||
class SkillListResponse(BaseModel):
|
class SkillListResponse(BaseModel):
|
||||||
@ -35,6 +36,7 @@ class SkillValidationResult:
|
|||||||
valid: bool
|
valid: bool
|
||||||
name: Optional[str] = None
|
name: Optional[str] = None
|
||||||
description: Optional[str] = None
|
description: Optional[str] = None
|
||||||
|
category: Optional[str] = None
|
||||||
error_message: Optional[str] = None
|
error_message: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
@ -268,7 +270,8 @@ def parse_plugin_json(plugin_json_path: str) -> SkillValidationResult:
|
|||||||
return SkillValidationResult(
|
return SkillValidationResult(
|
||||||
valid=True,
|
valid=True,
|
||||||
name=plugin_config['name'],
|
name=plugin_config['name'],
|
||||||
description=plugin_config['description']
|
description=plugin_config['description'],
|
||||||
|
category=plugin_config.get('category'),
|
||||||
)
|
)
|
||||||
|
|
||||||
except json.JSONDecodeError as e:
|
except json.JSONDecodeError as e:
|
||||||
@ -335,7 +338,8 @@ def parse_skill_frontmatter(skill_md_path: str) -> SkillValidationResult:
|
|||||||
return SkillValidationResult(
|
return SkillValidationResult(
|
||||||
valid=True,
|
valid=True,
|
||||||
name=metadata['name'],
|
name=metadata['name'],
|
||||||
description=metadata['description']
|
description=metadata['description'],
|
||||||
|
category=metadata.get('category'),
|
||||||
)
|
)
|
||||||
|
|
||||||
except yaml.YAMLError as e:
|
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)
|
result = get_skill_metadata(skill_path)
|
||||||
if result.valid:
|
if result.valid:
|
||||||
return {
|
ret = {
|
||||||
'name': result.name,
|
'name': result.name,
|
||||||
'description': result.description
|
'description': result.description,
|
||||||
}
|
}
|
||||||
|
if result.category:
|
||||||
|
ret['category'] = result.category
|
||||||
|
return ret
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
@ -457,7 +464,8 @@ def get_official_skills(base_dir: str) -> List[SkillItem]:
|
|||||||
skills.append(SkillItem(
|
skills.append(SkillItem(
|
||||||
name=metadata['name'],
|
name=metadata['name'],
|
||||||
description=metadata['description'],
|
description=metadata['description'],
|
||||||
user_skill=False
|
user_skill=False,
|
||||||
|
category=metadata.get('category', 'other'),
|
||||||
))
|
))
|
||||||
skill_names.add(skill_name)
|
skill_names.add(skill_name)
|
||||||
logger.debug(f"Found official skill: {metadata['name']} from {official_skills_dir}")
|
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(
|
skills.append(SkillItem(
|
||||||
name=metadata['name'],
|
name=metadata['name'],
|
||||||
description=metadata['description'],
|
description=metadata['description'],
|
||||||
user_skill=True
|
user_skill=True,
|
||||||
|
category=metadata.get('category', 'custom'),
|
||||||
))
|
))
|
||||||
logger.debug(f"Found user skill: {metadata['name']}")
|
logger.debug(f"Found user skill: {metadata['name']}")
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user