update parse_skill_frontmatter

This commit is contained in:
朱潮 2026-01-23 08:52:27 +08:00
parent 3dc119bca8
commit 44b4295a87

View File

@ -4,6 +4,7 @@ import shutil
import zipfile import zipfile
import logging import logging
import asyncio import asyncio
import yaml
from typing import List, Optional from typing import List, Optional
from fastapi import APIRouter, HTTPException, Query, UploadFile, File, Form from fastapi import APIRouter, HTTPException, Query, UploadFile, File, Form
from pydantic import BaseModel from pydantic import BaseModel
@ -294,14 +295,12 @@ def parse_skill_frontmatter(skill_md_path: str) -> Optional[dict]:
return None return None
frontmatter = frontmatter_match.group(1) frontmatter = frontmatter_match.group(1)
metadata = {}
# Parse key: value pairs from frontmatter # Parse YAML using yaml.safe_load
for line in frontmatter.split('\n'): metadata = yaml.safe_load(frontmatter)
line = line.strip() if not isinstance(metadata, dict):
if ':' in line: logger.warning(f"Invalid frontmatter format in {skill_md_path}")
key, value = line.split(':', 1) return None
metadata[key.strip()] = value.strip()
# Return name and description if both exist # Return name and description if both exist
if 'name' in metadata and 'description' in metadata: if 'name' in metadata and 'description' in metadata: