feat(skills): unified read-merge + authoring/override MCP tools

Adds the merged read surface (api/skill_catalog_view.py) over synced +
local stores with origin discrimination and override precedence, and
extends the skill MCP tools with create_skill/update_skill/delete_skill
that dispatch by origin (edit local skills; create/update/remove local
overrides for cloud skills). Wired into api.mcp.create_mcp_server.
Full non-integration suite green (564 passed).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-15 07:38:12 +08:00
co-authored by Claude Opus 4.6
parent dd03abbbb0
commit 8baf3a6a8b
6 changed files with 476 additions and 36 deletions
+4
View File
@@ -97,6 +97,7 @@ def create_mcp_server(
manager: DeviceManager | None = None,
skill_catalog_store: Any | None = None,
skill_active_subscriptions: set[str] | None = None,
skill_local_store: Any | None = None,
) -> Any:
try:
from mcp.server.fastmcp import FastMCP
@@ -166,10 +167,13 @@ def create_mcp_server(
if skill_catalog_store is not None:
from api.skill_catalog_mcp import register_skill_catalog_tools
from storage.local_skills import LocalSkillStore
local_store = skill_local_store or LocalSkillStore()
register_skill_catalog_tools(
server,
store=skill_catalog_store,
local_store=local_store,
get_active_subscriptions=lambda: set(skill_active_subscriptions or set()),
get_registered_tools=lambda: set(handlers.keys()),
)