Skip to content

feat(marketplace): add marketplace.json parser for rich plugin discovery#33

Merged
christso merged 9 commits intomainfrom
feat/marketplace-json-parser
Jan 31, 2026
Merged

feat(marketplace): add marketplace.json parser for rich plugin discovery#33
christso merged 9 commits intomainfrom
feat/marketplace-json-parser

Conversation

@christso
Copy link
Copy Markdown
Contributor

@christso christso commented Jan 30, 2026

Summary

  • Add Zod schema for .claude-plugin/marketplace.json manifest format (supports plugin metadata: name, description, category, author, URL sources, LSP servers)
  • Add parseMarketplaceManifest() utility to read, validate, and parse marketplace manifests
  • Add getMarketplacePluginsFromManifest() for manifest-based plugin discovery with rich metadata
  • Update listMarketplacePlugins() to prefer manifest when available, falling back to directory scanning

Test Plan

  • 10 schema validation tests (minimal/full manifests, URL sources, owner, rejection cases)
  • 7 parser tests (valid JSON, missing files, invalid JSON, schema failures, path resolution)
  • 3 integration tests (manifest metadata, missing manifest fallback, URL source plugins)
  • All 253 tests pass (20 new + 233 baseline)
  • Lint and typecheck pass

Closes #30

christso and others added 5 commits January 30, 2026 02:45
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…tory scan

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages bot commented Jan 30, 2026

Deploying allagents with  Cloudflare Pages  Cloudflare Pages

Latest commit: c2d477e
Status: ✅  Deploy successful!
Preview URL: https://51b3ea35.allagents.pages.dev
Branch Preview URL: https://feat-marketplace-json-parser.allagents.pages.dev

View logs

christso and others added 4 commits January 30, 2026 06:10
…emove

The workspace status command now recognizes plugin@marketplace specs and
resolves them through the marketplace registry instead of treating them
as local paths. Plugin add and remove commands automatically trigger a
sync so users don't need a separate sync step.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The frontmatter `name` field is a display label, not a filesystem
identifier (the folder name serves that role). The previous regex
rejected valid skills like "Writing Hookify Rules" from
claude-plugins-official that Claude CLI accepts without issue.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ution

When a marketplace.json has a `name` field, use it as the registry key
instead of deriving from the repo name (e.g. `wtg-ai-prompts` instead
of `WTG.AI.Prompts`). Plugin names from manifest entries are also used
for resolution, and auto-registration gracefully reuses existing
marketplaces registered under their manifest name.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@christso christso merged commit 4e11933 into main Jan 31, 2026
1 check passed
@christso christso deleted the feat/marketplace-json-parser branch January 31, 2026 08:20
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.

feat: add parser for marketplace.json

1 participant