web tests
This commit is contained in:
@@ -2,7 +2,7 @@ from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from personal_mcp.registry.contracts import DocsRegistry
|
||||
from personal_mcp.registry.models.registry import DocsRegistry
|
||||
from personal_mcp.registry.models.registry import PromptRecord
|
||||
from personal_mcp.registry.models.registry import PromptSummaryPayload
|
||||
from personal_mcp.registry.models.registry import SkillPatternPayload
|
||||
|
||||
@@ -20,8 +20,8 @@ from personal_mcp.catalog.server import get_pattern_by_id_payload
|
||||
from personal_mcp.catalog.server import get_prompt_by_id_payload
|
||||
from personal_mcp.catalog.server import search_patterns_payload
|
||||
from personal_mcp.catalog.server import search_prompts_payload
|
||||
from personal_mcp.registry.contracts import DocsRegistry
|
||||
from personal_mcp.registry.load import load_docs_registry
|
||||
from personal_mcp.registry.models.registry import DocsRegistry
|
||||
from personal_mcp.registry.read import read_docs_markdown_path
|
||||
from personal_mcp.registry.read import read_prompt_document
|
||||
from personal_mcp.registry.read import read_skill_document
|
||||
|
||||
@@ -5,6 +5,8 @@ from collections import defaultdict
|
||||
from pathlib import Path
|
||||
from pathlib import PurePosixPath
|
||||
|
||||
import yaml
|
||||
|
||||
from personal_mcp.registry.ingest.document import MarkdownDocument
|
||||
from personal_mcp.registry.ingest.prompt import PromptFilesBundle
|
||||
from personal_mcp.registry.ingest.skill import SkillFilesBundle
|
||||
@@ -19,6 +21,22 @@ from personal_mcp.registry.models.registry import SkillRecord
|
||||
from personal_mcp.registry.models.registry import SkillSummaryRecord
|
||||
|
||||
|
||||
def _parse_frontmatter(raw_frontmatter: str | None, *, path: PurePosixPath) -> dict[str, object]:
|
||||
"""Parse frontmatter YAML into a mapping for downstream validation.
|
||||
|
||||
This helper is retained for compatibility with model-validation tests that
|
||||
exercise gate behavior directly at parse boundaries.
|
||||
"""
|
||||
if raw_frontmatter is None:
|
||||
raise ValueError(f"missing YAML frontmatter: {path.as_posix()}")
|
||||
|
||||
parsed = yaml.safe_load(raw_frontmatter)
|
||||
if not isinstance(parsed, dict):
|
||||
raise TypeError(f"frontmatter must parse to an object: {path.as_posix()}")
|
||||
|
||||
return parsed
|
||||
|
||||
|
||||
def _build_skill_record(
|
||||
*, bundle: SkillFilesBundle, docs_by_relpath: dict[PurePosixPath, MarkdownDocument]
|
||||
) -> SkillRecord:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from .contracts import DocsRegistry
|
||||
from .models.common import _normalize_docs_path
|
||||
from .models.registry import DocsRegistry
|
||||
|
||||
|
||||
def read_skill_document(registry: DocsRegistry, skill_id: str) -> dict[str, str]:
|
||||
|
||||
Reference in New Issue
Block a user