From 160955067f1850202fc13d7f45548bbeb6cb9621 Mon Sep 17 00:00:00 2001 From: Minsu Lee Date: Thu, 16 Oct 2025 04:51:58 +0900 Subject: [PATCH 1/2] feat: implement multi-marketplace support for plugin distribution Add support for loading plugins from multiple external marketplace sources with dynamic runtime fetching and server-side caching. Key changes: - Create marketplace-sources.json config for managing marketplace URLs - Implement /api/marketplaces endpoint with 5-minute cache - Add marketplace filtering UI with USelectMenu component - Support marketplace-specific installation commands - Use marketplace.json name field for plugin installation - Add marketplace badges to distinguish plugin sources - Remove dependency on Nuxt Content for marketplace data Technical details: - Server API uses defineCachedFunction for performance - Zod schemas for runtime validation - Support for both local and GitHub-sourced plugins - Graceful handling of individual marketplace failures - TypeScript types for multi-marketplace aggregation Installation format: - Marketplace: /plugin marketplace add org/repo - Plugin: /plugin install pluginName@marketplaceName --- .claude-plugin/marketplace.json | 2 +- .idea/vcs.xml | 4 + apps/web/app/components/InstallModal.vue | 21 +- apps/web/app/components/PluginCard.vue | 78 ++++- apps/web/app/pages/index.vue | 102 ++++-- apps/web/app/types/marketplace.ts | 58 ++++ apps/web/marketplace-sources.json | 20 ++ apps/web/server/api/marketplaces.get.ts | 122 +++++++ apps/web/server/utils/marketplace-schema.ts | 56 ++++ .../agent-sdk-dev/.claude-plugin/plugin.json | 9 + .../agents/agent-sdk-verifier-py.md | 140 ++++++++ .../agents/agent-sdk-verifier-ts.md | 145 ++++++++ plugins/agent-sdk-dev/commands/new-sdk-app.md | 176 ++++++++++ .../commit-commands/commands/clean_gone.md | 53 +++ .../commands/commit-push-pr.md | 20 ++ plugins/commit-commands/commands/commit.md | 17 + .../feature-dev/.claude-plugin/plugin.json | 9 + plugins/feature-dev/agents/code-architect.md | 34 ++ plugins/feature-dev/agents/code-explorer.md | 51 +++ plugins/feature-dev/agents/code-reviewer.md | 46 +++ plugins/feature-dev/commands/feature-dev.md | 125 +++++++ .../.claude-plugin/plugin.json | 9 + plugins/pr-review-toolkit/README.md | 313 ++++++++++++++++++ .../pr-review-toolkit/agents/code-reviewer.md | 47 +++ .../agents/code-simplifier.md | 83 +++++ .../agents/comment-analyzer.md | 70 ++++ .../agents/pr-test-analyzer.md | 69 ++++ .../agents/silent-failure-hunter.md | 130 ++++++++ .../agents/type-design-analyzer.md | 110 ++++++ .../pr-review-toolkit/commands/review-pr.md | 189 +++++++++++ .../.claude-plugin/plugin.json | 9 + plugins/security-guidance/hooks/hooks.json | 16 + .../hooks/security_reminder_hook.py | 280 ++++++++++++++++ 33 files changed, 2562 insertions(+), 51 deletions(-) create mode 100644 apps/web/app/types/marketplace.ts create mode 100644 apps/web/marketplace-sources.json create mode 100644 apps/web/server/api/marketplaces.get.ts create mode 100644 apps/web/server/utils/marketplace-schema.ts create mode 100644 plugins/agent-sdk-dev/.claude-plugin/plugin.json create mode 100644 plugins/agent-sdk-dev/agents/agent-sdk-verifier-py.md create mode 100644 plugins/agent-sdk-dev/agents/agent-sdk-verifier-ts.md create mode 100644 plugins/agent-sdk-dev/commands/new-sdk-app.md create mode 100644 plugins/commit-commands/commands/clean_gone.md create mode 100644 plugins/commit-commands/commands/commit-push-pr.md create mode 100644 plugins/commit-commands/commands/commit.md create mode 100644 plugins/feature-dev/.claude-plugin/plugin.json create mode 100644 plugins/feature-dev/agents/code-architect.md create mode 100644 plugins/feature-dev/agents/code-explorer.md create mode 100644 plugins/feature-dev/agents/code-reviewer.md create mode 100644 plugins/feature-dev/commands/feature-dev.md create mode 100644 plugins/pr-review-toolkit/.claude-plugin/plugin.json create mode 100644 plugins/pr-review-toolkit/README.md create mode 100644 plugins/pr-review-toolkit/agents/code-reviewer.md create mode 100644 plugins/pr-review-toolkit/agents/code-simplifier.md create mode 100644 plugins/pr-review-toolkit/agents/comment-analyzer.md create mode 100644 plugins/pr-review-toolkit/agents/pr-test-analyzer.md create mode 100644 plugins/pr-review-toolkit/agents/silent-failure-hunter.md create mode 100644 plugins/pr-review-toolkit/agents/type-design-analyzer.md create mode 100644 plugins/pr-review-toolkit/commands/review-pr.md create mode 100644 plugins/security-guidance/.claude-plugin/plugin.json create mode 100644 plugins/security-guidance/hooks/hooks.json create mode 100755 plugins/security-guidance/hooks/security_reminder_hook.py diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 065f1e3..2250848 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -64,7 +64,7 @@ "description": "A Model Context Protocol (MCP) server for Grafana providing access to dashboards, datasources, and querying capabilities", "source": { "source": "github", - "repo": "amondnet/grafana-plugin" + "repo": "amondnet/mcp-grafana" } } ] diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 5932d9f..5c2f17f 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -3,8 +3,12 @@ + + + + \ No newline at end of file diff --git a/apps/web/app/components/InstallModal.vue b/apps/web/app/components/InstallModal.vue index d1992b1..f4cb8f9 100644 --- a/apps/web/app/components/InstallModal.vue +++ b/apps/web/app/components/InstallModal.vue @@ -1,6 +1,8 @@