This commit is contained in:
John Lancaster
2026-06-18 19:40:14 -05:00
parent d54f427112
commit 485b93b3c9
+41 -15
View File
@@ -24,27 +24,53 @@ def _load_skill_registry() -> dict[str, Any]:
return registry return registry
def _normalize_pattern(namespace: str, metadata: dict[str, Any]) -> dict[str, Any]:
pattern_id = metadata.get("id", namespace)
capabilities = metadata.get("capabilities", [])
return {
"id": pattern_id,
"namespace": namespace,
"name": metadata.get("name", pattern_id),
"version": metadata.get("version", "0.1.0"),
"description": metadata.get("description", ""),
"tags": metadata.get("tags", []),
"depends_on": metadata.get("depends_on", []),
"capabilities": capabilities,
# Expose resources explicitly for clients that treat resources as the primary interface.
"resources": capabilities,
}
def _normalized_patterns() -> list[dict[str, Any]]:
registry = _load_skill_registry()
return [
_normalize_pattern(namespace, entry["metadata"])
for namespace, entry in registry.items()
]
@catalog_server.resource("resource://catalog/skills_index") @catalog_server.resource("resource://catalog/skills_index")
def skills_index() -> dict[str, Any]: def skills_index() -> dict[str, Any]:
"""Return a compact discovery index for all available pattern modules.""" """Return a compact discovery index for all available pattern modules."""
registry = _load_skill_registry() return {"patterns": _normalized_patterns()}
index = []
for key, entry in registry.items():
metadata = entry["metadata"]
index.append(
{
"namespace": key,
"id": metadata.get("id", key),
"name": metadata.get("name", key),
"version": metadata.get("version", "0.1.0"),
"capabilities": metadata.get("capabilities", []),
"tags": metadata.get("tags", []),
}
)
return {"patterns": index}
@catalog_server.resource("resource://catalog/skills_details") @catalog_server.resource("resource://catalog/skills_details")
def skills_details() -> dict[str, Any]: def skills_details() -> dict[str, Any]:
"""Return full metadata for all mounted pattern modules.""" """Return full metadata for all mounted pattern modules."""
return {"patterns": _load_skill_registry()} return {"patterns": _load_skill_registry()}
@catalog_server.resource("resource://catalog/patterns")
def patterns() -> dict[str, Any]:
"""Return normalized pattern records for resource-first clients."""
return {"patterns": _normalized_patterns()}
@catalog_server.resource("resource://catalog/patterns_by_id")
def patterns_by_id() -> dict[str, Any]:
"""Return normalized pattern records indexed by stable pattern id."""
indexed: dict[str, Any] = {}
for pattern in _normalized_patterns():
indexed[pattern["id"]] = pattern
return {"patterns_by_id": indexed}