Skip to content

feat(agent): capability registry + read-only /capabilities view#167

Open
OnlyTerp wants to merge 4 commits into
sybil-solutions:mainfrom
OnlyTerp:terp/wp-013-capability-registry-phase0
Open

feat(agent): capability registry + read-only /capabilities view#167
OnlyTerp wants to merge 4 commits into
sybil-solutions:mainfrom
OnlyTerp:terp/wp-013-capability-registry-phase0

Conversation

@OnlyTerp

Copy link
Copy Markdown

Summary

A capability registry that unifies the currently-scattered capability definitions (MCP catalogue, stored MCP servers, skills, prompt templates) into one read-only view, plus a /capabilities page. This is a non-breaking parallel layer — existing registration/consumption paths are untouched.

Changes

  • frontend/src/features/agent/capabilities/: pure read-only adapters mapping each source into a unified CapabilityEntry; a non-enforcing detectCollisions; and a CapabilityRegistry class that shadow-rejects id collisions (with explicit { override: true } opt-in), records an audit log, and builds from sources via fromSources(...).
  • A read-only /capabilities dashboard view: capabilities grouped by provenance + a collisions section. Reads the static MCP catalogue and GETs plugins/skills/prompt-templates; degrades gracefully if a source is unavailable.

Verification

  • frontend typecheck + lint + build → clean; adapter + registry + view-model unit tests pass.

Non-goals

  • No enforcement and no ownership shift yet — collision detection is non-enforcing and existing consumers are not rewired. This is the read-only foundation for a future unified action/capability layer.

terp and others added 4 commits June 23, 2026 00:40
Create a new capabilities module with the unified CapabilityEntry view
type and pure adapter functions that project existing scattered
definitions (MCP catalogue, stored servers, skills, prompt templates)
into CapabilityEntry[]. Includes a detectCollisions function for
cross-source id collision detection. No existing consumers modified;
this is purely additive.

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Add CapabilityRegistry class with register/registerAll/get/has/list
methods. Shadow-rejects on id collision unless override:true is passed.
Includes static fromSources() builder and collision audit log.
Non-breaking parallel layer; does not rewire existing consumers.

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Add a /capabilities dashboard page that builds a CapabilityRegistry from
all four client-side sources (MCP catalogue, stored servers, skills,
prompt templates) and renders capabilities grouped by provenance with
availability indicators and a collisions section for duplicate-id
conflicts. Added to sidebar nav. Sources that lack client-side
accessors are gracefully skipped and noted.

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@OnlyTerp OnlyTerp requested a review from 0xSero as a code owner June 23, 2026 04:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant