// @bun
var s=Object.defineProperty;var l=(t)=>t;function i(t,c){this[t]=l.bind(null,c)}var d=(t,c)=>{for(var o in c)s(t,o,{get:c[o],enumerable:!0,configurable:!0,set:i.bind(c,o)})};var m=(t,c)=>()=>(t&&(c=t(t=0)),c);import{CodeBlock as r}from"@contractspec/lib.design-system";import n from"@contractspec/lib.ui-link";import{ChevronRight as p}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function v(){return a("div",{className:"space-y-8",children:[a("div",{className:"space-y-3",children:[e("h1",{className:"font-bold text-4xl",children:"Cursor marketplace plugins"}),e("p",{className:"text-lg text-muted-foreground",children:"ContractSpec ships a focused Cursor marketplace catalog for the product and key libraries."})]}),a("div",{className:"card-subtle space-y-4 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"Catalog at a glance"}),a("ul",{className:"space-y-2 text-muted-foreground text-sm",children:[a("li",{children:[e("code",{children:"contractspec"})," - Product-level workflow and release guardrails."]}),a("li",{children:[e("code",{children:"contractspec-contracts-spec"})," -",e("code",{children:"@contractspec/lib.contracts-spec"})," governance."]}),a("li",{children:[e("code",{children:"contractspec-contracts-integrations"})," -",e("code",{children:"@contractspec/lib.contracts-integrations"})," governance."]}),a("li",{children:[e("code",{children:"contractspec-ai-agent"})," -",e("code",{children:"@contractspec/lib.ai-agent"})," orchestration guardrails."]})]})]}),a("div",{className:"space-y-6",children:[a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Where plugin sources live"}),e("p",{className:"text-muted-foreground text-sm",children:"Marketplace plugin artifacts are kept in a dedicated package, while the canonical reusable source lives in agentpacks under `packs/`."}),e(r,{language:"text",filename:"catalog-layout",code:`packages/apps-registry/cursor-marketplace/
  .cursor-plugin/marketplace.json
  plugins/
    contractspec/
    contractspec-contracts-spec/
    contractspec-contracts-integrations/
    contractspec-ai-agent/

packs/
  contractspec-contracts-spec/`})]}),a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Root marketplace manifest"}),e("p",{className:"text-muted-foreground text-sm",children:"Cursor submission reads the catalog manifest inside the marketplace package and resolves plugin paths relative to that package."}),e(r,{language:"json",filename:"packages/apps-registry/cursor-marketplace/.cursor-plugin/marketplace.json",code:`{
  "name": "contractspec-marketplace",
  "owner": { "name": "ContractSpec Team" },
  "plugins": [
    {
      "name": "contractspec",
      "source": "plugins/contractspec"
    },
    {
      "name": "contractspec-contracts-spec",
      "source": "plugins/contractspec-contracts-spec"
    },
    {
      "name": "contractspec-contracts-integrations",
      "source": "plugins/contractspec-contracts-integrations"
    },
    {
      "name": "contractspec-ai-agent",
      "source": "plugins/contractspec-ai-agent"
    }
  ]
}`})]}),a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Generated multi-host system"}),e("p",{className:"text-muted-foreground text-sm",children:"The Cursor plugin is publishable metadata only. Customer-facing Cursor, Claude Code, and Codex outputs are generated from the same pack source with hook and MCP delivery."})]}),a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Validation gate"}),e("p",{className:"text-muted-foreground text-sm",children:"Validate all marketplace plugins before publishing."}),e(r,{language:"bash",filename:"validate-marketplace",code:`bun run plugin:contractspec:validate

# Optional when offline
SKIP_PLUGIN_NETWORK_CHECK=1 bun run plugin:contractspec:validate`})]})]}),a("div",{className:"flex items-center gap-4 pt-4",children:[a(n,{href:"/docs/ecosystem/templates",className:"btn-primary",children:["Author a plugin ",e(p,{size:16})]}),e(n,{href:"/docs/ecosystem/registry",className:"btn-ghost",children:"Manifest details"})]})]})}export{v as EcosystemPluginsPage};
