// @bun
import{CodeBlock as t}from"@contractspec/lib.design-system";import c from"@contractspec/lib.ui-link";import{ChevronRight as n}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function l(){return a("div",{className:"space-y-8",children:[a("div",{className:"space-y-3",children:[e("h1",{className:"font-bold text-4xl",children:"Marketplace manifest"}),e("p",{className:"text-lg text-muted-foreground",children:"ContractSpec publishes a multi-plugin Cursor marketplace catalog from a single root manifest."})]}),a("div",{className:"card-subtle space-y-4 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"Root manifest shape"}),a("p",{className:"text-muted-foreground text-sm",children:["Cursor reads"," ",e("code",{children:"packages/apps-registry/cursor-marketplace/.cursor-plugin/marketplace.json"})," ","for the catalog and resolves each plugin source path from there."]}),e(t,{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"
    }
  ]
}`})]}),a("div",{className:"card-subtle space-y-4 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"Per-plugin contract"}),e("p",{className:"text-muted-foreground text-sm",children:"Each plugin source must include a Cursor plugin manifest and composable assets. The publishable plugin is derived from a reusable pack and then validated here."}),e(t,{language:"text",filename:"plugin-layout",code:`plugins/<plugin-name>/
  .cursor-plugin/plugin.json
  rules/
  commands/
  agents/
  skills/
  .mcp.json`}),e(t,{language:"bash",filename:"validate-catalog",code:`bun run plugin:contractspec:validate

# Optional in offline environments
SKIP_PLUGIN_NETWORK_CHECK=1 bun run plugin:contractspec:validate`})]}),a("div",{className:"flex items-center gap-4 pt-4",children:[a(c,{href:"/docs/ecosystem/integrations",className:"btn-primary",children:["Integrations ",e(n,{size:16})]}),e(c,{href:"/docs/ecosystem/templates",className:"btn-ghost",children:"Plugin authoring templates"})]})]})}export{l as EcosystemRegistryPage};
