web tests

This commit is contained in:
John Lancaster
2026-06-21 17:57:01 -05:00
parent 4958eeb3ef
commit b9bb11ac02
11 changed files with 242 additions and 20 deletions
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+18
View File
@@ -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 -1
View File
@@ -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]: