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
+9 -1
View File
@@ -108,9 +108,17 @@ def runner(store, fake_client):
)
def _mcp_handlers(store, *, registered_tools, active=None):
def _mcp_handlers(store, *, registered_tools, active=None, local=None):
if local is None:
import tempfile
from pathlib import Path
from storage.local_skills import LocalSkillStore
local = LocalSkillStore(db_path=Path(tempfile.mkdtemp()) / "local.sqlite3")
return skill_tool_handlers(
store=store,
local_store=local,
get_active_subscriptions=lambda: set(active if active is not None else {"sub-a"}),
get_registered_tools=lambda: set(registered_tools),
)