Goal: Expose plugins over REST and the thv plugin CLI, including content preview.
Deliverables:
pkg/api/v1/plugins.go + plugins_types.go — REST under /api/v1beta/plugins (template skills.go), incl. /content + /marketplace.
pkg/plugins/client/ — HTTP client (template pkg/skills/client/).
cmd/thv/app/plugin*.go — cobra commands mirroring cmd/thv/app/skill*.go; add plugin marketplace generate (no skills analog).
GetContent wiring (template skillsvc/content.go).
Dependency/gate: depends on Phase 3 PluginService interface frozen — can overlap late P3.
Testing/exit gate: each CLI command vs. mock registry; API handler tests (template skills_test.go); info shows hooks + "declared, NOT managed by ToolHive" for MCP.
Part of #5525
Refs RFC PR stacklok/toolhive-rfcs#77
Goal: Expose plugins over REST and the
thv pluginCLI, including content preview.Deliverables:
pkg/api/v1/plugins.go+plugins_types.go— REST under/api/v1beta/plugins(templateskills.go), incl./content+/marketplace.pkg/plugins/client/— HTTP client (templatepkg/skills/client/).cmd/thv/app/plugin*.go— cobra commands mirroringcmd/thv/app/skill*.go; addplugin marketplace generate(no skills analog).GetContentwiring (templateskillsvc/content.go).Dependency/gate: depends on Phase 3
PluginServiceinterface frozen — can overlap late P3.Testing/exit gate: each CLI command vs. mock registry; API handler tests (template
skills_test.go);infoshows hooks + "declared, NOT managed by ToolHive" for MCP.Part of #5525
Refs RFC PR stacklok/toolhive-rfcs#77