Skip to content

fix: marketplace plugin architecture#4

Merged
christso merged 11 commits intomainfrom
fix/marketplace-plugin-architecture
Jan 23, 2026
Merged

fix: marketplace plugin architecture#4
christso merged 11 commits intomainfrom
fix/marketplace-plugin-architecture

Conversation

@christso
Copy link
Copy Markdown
Contributor

No description provided.

…tion

- Use `plugin@marketplace` naming (e.g., `code-review@claude-plugins-official`)
- Add `plugin marketplace` subcommands (list/add/remove/update)
- Change `workspace add/remove` to `workspace plugin add/remove`
- Add auto-registration for unknown marketplaces
- Document well-known marketplaces with auto-resolve
- Add MarketplaceRegistry type and well-known marketplaces
- Update PluginSpec to use plugin@marketplace format
- Replace workspace add/remove with workspace plugin add/remove
- Replace plugin fetch/list/update with plugin marketplace subcommands
- Add plugin marketplace list/add/remove/update command specs
- Add auto-registration behavior for unknown marketplaces
- Update project structure with marketplace.ts and plugin-spec.ts
- Update success metrics and test requirements
- Rename heading to AllAgents
- Add "Why AllAgents?" section with comparison table
- Explain key differentiators vs Claude Code plugins
- Add architecture diagram showing sync flow
- Update commands to new marketplace/plugin structure
- Update workspace.yaml format with plugin@marketplace syntax
- Add marketplace structure documentation
- Update storage locations
Add new marketplace registry system aligned with Claude plugin convention:

- Create src/core/marketplace.ts with registry management functions:
  - addMarketplace: register from GitHub URL, owner/repo, local path, or well-known name
  - removeMarketplace: unregister (keeps files)
  - listMarketplaces: enumerate registered marketplaces
  - updateMarketplace: git pull for GitHub marketplaces
  - resolvePluginSpec: resolve plugin@marketplace to local path

- Update src/cli/commands/plugin.ts with new subcommands:
  - plugin marketplace list/add/remove/update
  - plugin list [marketplace]
  - plugin validate <path> (stub)

- Registry stored at ~/.allagents/marketplaces.json
- GitHub repos cloned to ~/.allagents/marketplaces/<name>/
- Supports well-known marketplace names (claude-plugins-official)
Update workspace sync to support three plugin source formats:
1. plugin@marketplace (new) - e.g., "code-review@claude-plugins-official"
2. GitHub URL (existing) - e.g., "https://github.com/owner/repo"
3. Local path (existing) - e.g., "./my-plugin"

Auto-registration flow:
- Well-known names auto-register from known GitHub repos
- owner/repo format auto-registers from GitHub
- Unknown names provide helpful error with options

Also fix marketplace.ts to handle pre-existing directories when
registering (skip clone if directory already exists).
- Move `workspace add/remove` to `workspace plugin add/remove`
- Update workspace-modify.ts to support plugin@marketplace format
- Auto-register well-known marketplaces when adding plugins
- Auto-register owner/repo format marketplaces
- Validate plugin exists in marketplace before adding
- Support partial match for removal (e.g., "code-review" matches "code-review@claude-plugins-official")
- Replace non-null assertions with optional chaining in plugin commands
- Use template literals instead of string concatenation
- Add null guards for proper type safety with exactOptionalPropertyTypes
- Remove unused variables and inferrable type annotations
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