WIP simplifying load/startup
This commit is contained in:
@@ -1,14 +1,20 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from pathlib import PurePosixPath
|
||||
|
||||
import pytest
|
||||
|
||||
from personal_mcp.catalog.server import build_skill_detail_payload
|
||||
from personal_mcp.registry.models.prompt import PromptArgumentEntry
|
||||
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 ReferenceRecord
|
||||
from personal_mcp.registry.models.registry import SkillPatternPayload
|
||||
from personal_mcp.registry.models.registry import SkillRecord
|
||||
from personal_mcp.registry.models.registry import SkillSummaryPayload
|
||||
from personal_mcp.registry.models.registry import SkillSummaryRecord
|
||||
|
||||
pytestmark = pytest.mark.unit
|
||||
|
||||
@@ -22,13 +28,13 @@ def _make_skill_record() -> SkillRecord:
|
||||
tags=("testing", "catalog"),
|
||||
capabilities=("resource://skills/demo-skill/document", "resource://catalog/skills_index"),
|
||||
document_uri="resource://skills/demo-skill/document",
|
||||
document_relpath="skills/demo-skill/SKILL.md",
|
||||
document_relpath=PurePosixPath("skills/demo-skill/SKILL.md"),
|
||||
document_content="# demo",
|
||||
references={
|
||||
"zeta": ReferenceRecord(
|
||||
ref_id="zeta",
|
||||
uri="resource://skills/demo-skill/references/zeta",
|
||||
relpath="skills/demo-skill/references/zeta.md",
|
||||
relpath=PurePosixPath("skills/demo-skill/references/zeta.md"),
|
||||
mime_type="text/markdown",
|
||||
title="Zeta",
|
||||
content="# zeta",
|
||||
@@ -36,7 +42,7 @@ def _make_skill_record() -> SkillRecord:
|
||||
"alpha": ReferenceRecord(
|
||||
ref_id="alpha",
|
||||
uri="resource://skills/demo-skill/references/alpha",
|
||||
relpath="skills/demo-skill/references/alpha.md",
|
||||
relpath=PurePosixPath("skills/demo-skill/references/alpha.md"),
|
||||
mime_type="text/markdown",
|
||||
title="Alpha",
|
||||
content="# alpha",
|
||||
@@ -61,7 +67,7 @@ def _make_prompt_record() -> PromptRecord:
|
||||
)
|
||||
},
|
||||
document_uri="resource://prompts/demo-prompt/document",
|
||||
document_relpath="prompts/demo-prompt/PROMPT.md",
|
||||
document_relpath=PurePosixPath("prompts/demo-prompt/PROMPT.md"),
|
||||
document_content="# demo",
|
||||
)
|
||||
|
||||
@@ -121,3 +127,25 @@ def test_prompt_summary_payload_from_record_shape() -> None:
|
||||
"document_uri": "resource://prompts/demo-prompt/document",
|
||||
"detail_uri": "resource://catalog/prompts/demo-prompt",
|
||||
}
|
||||
|
||||
|
||||
def test_skill_detail_serializes_reference_paths() -> None:
|
||||
record = _make_skill_record()
|
||||
registry = DocsRegistry(
|
||||
skills_by_id={record.skill_id: record},
|
||||
skills_in_load_order=(record.skill_id,),
|
||||
skills_summary_in_load_order=(SkillSummaryRecord.from_record(record),),
|
||||
docs_markdown_by_path={},
|
||||
docs_markdown_path_index=(),
|
||||
tag_to_skill_ids={},
|
||||
capability_to_skill_ids={},
|
||||
prompts_by_id={},
|
||||
prompts_in_load_order=(),
|
||||
prompts_summary_in_load_order=(),
|
||||
tag_to_prompt_ids={},
|
||||
)
|
||||
|
||||
payload = build_skill_detail_payload(registry, record.skill_id)
|
||||
|
||||
assert payload["resources"]["references"]["alpha"]["path"] == ("skills/demo-skill/references/alpha.md")
|
||||
json.dumps(payload)
|
||||
|
||||
Reference in New Issue
Block a user