{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "atroui",
  "homepage": "https://www.atroui.com",
  "items": [
    {
      "name": "utils",
      "type": "registry:lib",
      "title": "Utils",
      "description": "cn() helper (clsx + tailwind-merge).",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "files": [
        {
          "path": "registry/default/lib/utils.ts",
          "type": "registry:lib",
          "target": "lib/utils.ts"
        }
      ]
    },
    {
      "name": "brand",
      "type": "registry:lib",
      "title": "Brand",
      "description": "getBrand() and DEFAULT_BRAND - edit or override with NEXT_PUBLIC_SITE_*.",
      "files": [
        {
          "path": "registry/default/lib/brand.ts",
          "type": "registry:lib",
          "target": "lib/brand.ts"
        }
      ]
    },
    {
      "name": "button",
      "type": "registry:ui",
      "title": "Button",
      "description": "AtroUI button with CVA variants. Source lands in your project.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/ui/button.tsx",
          "type": "registry:ui",
          "target": "components/ui/button.tsx"
        }
      ]
    },
    {
      "name": "theme-toggle",
      "type": "registry:ui",
      "title": "Theme Toggle",
      "description": "Light / system / dark toggle using next-themes.",
      "dependencies": [
        "lucide-react",
        "next-themes"
      ],
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/ui/theme-toggle.tsx",
          "type": "registry:ui",
          "target": "components/ui/theme-toggle.tsx"
        }
      ]
    },
    {
      "name": "card",
      "type": "registry:ui",
      "title": "Card",
      "description": "Elevated surface with header, content, and footer slots.",
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/ui/card.tsx",
          "type": "registry:ui",
          "target": "components/ui/card.tsx"
        }
      ]
    },
    {
      "name": "textarea",
      "type": "registry:ui",
      "title": "Textarea",
      "description": "Multi-line text input styled for AtroUI forms.",
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/ui/textarea.tsx",
          "type": "registry:ui",
          "target": "components/ui/textarea.tsx"
        }
      ]
    },
    {
      "name": "form-select",
      "type": "registry:ui",
      "title": "Form Select",
      "description": "Accessible select built on Base UI.",
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/ui/form-select.tsx",
          "type": "registry:ui",
          "target": "components/ui/form-select.tsx"
        }
      ]
    },
    {
      "name": "breadcrumbs",
      "type": "registry:ui",
      "title": "Breadcrumbs",
      "description": "Path navigation trail for docs and product pages.",
      "dependencies": [
        "lucide-react",
        "next"
      ],
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/ui/breadcrumbs.tsx",
          "type": "registry:ui",
          "target": "components/ui/breadcrumbs.tsx"
        }
      ]
    },
    {
      "name": "prose",
      "type": "registry:ui",
      "title": "Prose",
      "description": "Long-form typography container for articles and MDX.",
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/ui/prose.tsx",
          "type": "registry:ui",
          "target": "components/ui/prose.tsx"
        }
      ]
    },
    {
      "name": "fade-in",
      "type": "registry:ui",
      "title": "Fade In",
      "description": "Scroll-triggered fade + rise using motion.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/default/ui/fade-in.tsx",
          "type": "registry:ui",
          "target": "components/ui/fade-in.tsx"
        }
      ]
    },
    {
      "name": "stagger",
      "type": "registry:ui",
      "title": "Stagger",
      "description": "Stagger children on scroll with StaggerChild.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/default/ui/stagger.tsx",
          "type": "registry:ui",
          "target": "components/ui/stagger.tsx"
        }
      ]
    },
    {
      "name": "scroll-progress",
      "type": "registry:ui",
      "title": "Scroll Progress",
      "description": "Reading-progress bar driven by scroll position.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/ui/scroll-progress.tsx",
          "type": "registry:ui",
          "target": "components/ui/scroll-progress.tsx"
        }
      ]
    },
    {
      "name": "logo",
      "type": "registry:component",
      "title": "Logo",
      "description": "Interrupted-A mark and wordmark. Edit the SVG in your repo.",
      "registryDependencies": [
        "@atroui/utils",
        "@atroui/brand"
      ],
      "files": [
        {
          "path": "registry/default/brand/logo.tsx",
          "type": "registry:component",
          "target": "components/brand/logo.tsx"
        }
      ]
    },
    {
      "name": "home-hero",
      "type": "registry:block",
      "title": "Home Hero",
      "description": "Docs-matching homepage hero with editable CONTENT (stamp, CTAs, sprint, OG preview panel).",
      "dependencies": [
        "lucide-react",
        "next"
      ],
      "registryDependencies": [
        "@atroui/brand"
      ],
      "files": [
        {
          "path": "registry/default/blocks/home-hero.tsx",
          "type": "registry:component",
          "target": "components/blocks/home-hero.tsx"
        }
      ]
    },
    {
      "name": "home-who",
      "type": "registry:block",
      "title": "Home Who",
      "description": "Founder / who band with editable CONTENT constants.",
      "dependencies": [
        "lucide-react",
        "next"
      ],
      "registryDependencies": [
        "@atroui/brand"
      ],
      "files": [
        {
          "path": "registry/default/blocks/home-who.tsx",
          "type": "registry:component",
          "target": "components/blocks/home-who.tsx"
        }
      ]
    },
    {
      "name": "site-header",
      "type": "registry:block",
      "title": "Site Header",
      "description": "Sticky site header with editable NAV and CTA.",
      "dependencies": [
        "lucide-react",
        "motion",
        "next"
      ],
      "registryDependencies": [
        "@atroui/utils",
        "@atroui/brand",
        "@atroui/logo",
        "@atroui/theme-toggle"
      ],
      "files": [
        {
          "path": "registry/default/blocks/site-header.tsx",
          "type": "registry:component",
          "target": "components/blocks/site-header.tsx"
        }
      ]
    },
    {
      "name": "footer-bold",
      "type": "registry:block",
      "title": "Bold Footer",
      "description": "Bold footer with editable headline, studio links, and socials.",
      "dependencies": [
        "next"
      ],
      "registryDependencies": [
        "@atroui/brand"
      ],
      "files": [
        {
          "path": "registry/default/blocks/footer-bold.tsx",
          "type": "registry:component",
          "target": "components/blocks/footer-bold.tsx"
        }
      ]
    },
    {
      "name": "home-principle",
      "type": "registry:block",
      "title": "Home Principle",
      "description": "How-we-work principles band with editable CONTENT and PRINCIPLES.",
      "files": [
        {
          "path": "registry/default/blocks/home-principle.tsx",
          "type": "registry:component",
          "target": "components/blocks/home-principle.tsx"
        }
      ]
    },
    {
      "name": "home-work",
      "type": "registry:block",
      "title": "Home Work",
      "description": "Selected work band with editable PROJECTS list.",
      "dependencies": [
        "lucide-react",
        "next"
      ],
      "files": [
        {
          "path": "registry/default/blocks/home-work.tsx",
          "type": "registry:component",
          "target": "components/blocks/home-work.tsx"
        }
      ]
    },
    {
      "name": "home-lab",
      "type": "registry:block",
      "title": "Home Lab",
      "description": "Free tools / lab band with editable TOOLS catalog.",
      "dependencies": [
        "lucide-react",
        "next"
      ],
      "files": [
        {
          "path": "registry/default/blocks/home-lab.tsx",
          "type": "registry:component",
          "target": "components/blocks/home-lab.tsx"
        }
      ]
    },
    {
      "name": "pricing-overview",
      "type": "registry:block",
      "title": "Pricing Overview",
      "description": "Fixed-package pricing band with editable CONTENT and PACKAGES.",
      "dependencies": [
        "lucide-react",
        "next"
      ],
      "files": [
        {
          "path": "registry/default/blocks/pricing-overview.tsx",
          "type": "registry:component",
          "target": "components/blocks/pricing-overview.tsx"
        }
      ]
    },
    {
      "name": "contextual-cta",
      "type": "registry:block",
      "title": "Contextual CTA",
      "description": "Sticky scroll CTA with editable CONTENT (no analytics wiring).",
      "dependencies": [
        "lucide-react",
        "next"
      ],
      "files": [
        {
          "path": "registry/default/blocks/contextual-cta.tsx",
          "type": "registry:component",
          "target": "components/blocks/contextual-cta.tsx"
        }
      ]
    },
    {
      "name": "exit-intent-popup",
      "type": "registry:block",
      "title": "Exit Intent Popup",
      "description": "Exit-intent dialog with editable CONTENT and storage keys.",
      "dependencies": [
        "lucide-react",
        "next"
      ],
      "files": [
        {
          "path": "registry/default/blocks/exit-intent-popup.tsx",
          "type": "registry:component",
          "target": "components/blocks/exit-intent-popup.tsx"
        }
      ]
    },
    {
      "name": "contact-form",
      "type": "registry:block",
      "title": "Contact Form",
      "description": "Multi-step contact form with editable CONTENT; posts to your API.",
      "dependencies": [
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/default/blocks/contact-form.tsx",
          "type": "registry:component",
          "target": "components/blocks/contact-form.tsx"
        }
      ]
    },
    {
      "name": "site-footer",
      "type": "registry:block",
      "title": "Site Footer",
      "description": "Lighter footer with editable CONTENT and link columns.",
      "dependencies": [
        "next"
      ],
      "registryDependencies": [
        "@atroui/brand"
      ],
      "files": [
        {
          "path": "registry/default/blocks/site-footer.tsx",
          "type": "registry:component",
          "target": "components/blocks/site-footer.tsx"
        }
      ]
    },
    {
      "name": "faq",
      "type": "registry:block",
      "title": "FAQ",
      "description": "Accordion FAQ with editable CONTENT and ITEMS.",
      "dependencies": [
        "lucide-react",
        "next"
      ],
      "files": [
        {
          "path": "registry/default/blocks/faq.tsx",
          "type": "registry:component",
          "target": "components/blocks/faq.tsx"
        }
      ]
    },
    {
      "name": "waitlist-form",
      "type": "registry:block",
      "title": "Waitlist Form",
      "description": "Email waitlist form with editable CONTENT; posts to your API.",
      "dependencies": [
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/default/blocks/waitlist-form.tsx",
          "type": "registry:component",
          "target": "components/blocks/waitlist-form.tsx"
        }
      ]
    },
    {
      "name": "newsletter-form",
      "type": "registry:block",
      "title": "Newsletter Form",
      "description": "Email newsletter form with editable CONTENT; posts to your API.",
      "dependencies": [
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/default/blocks/newsletter-form.tsx",
          "type": "registry:component",
          "target": "components/blocks/newsletter-form.tsx"
        }
      ]
    },
    {
      "name": "calendly-embed",
      "type": "registry:block",
      "title": "Calendly Embed",
      "description": "Theme-aware Calendly iframe with editable CONTENT and email fallback.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@atroui/brand"
      ],
      "files": [
        {
          "path": "registry/default/blocks/calendly-embed.tsx",
          "type": "registry:component",
          "target": "components/blocks/calendly-embed.tsx"
        }
      ]
    },
    {
      "name": "made-with-embed",
      "type": "registry:block",
      "title": "Made With Embed",
      "description": "Credit badge + copyable HTML snippet with editable CONTENT.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@atroui/brand"
      ],
      "files": [
        {
          "path": "registry/default/blocks/made-with-embed.tsx",
          "type": "registry:component",
          "target": "components/blocks/made-with-embed.tsx"
        }
      ]
    },
    {
      "name": "theme-provider",
      "type": "registry:ui",
      "title": "Theme Provider",
      "description": "next-themes wrapper for class-based dark mode.",
      "dependencies": [
        "next-themes"
      ],
      "files": [
        {
          "path": "registry/default/ui/theme-provider.tsx",
          "type": "registry:ui",
          "target": "components/ui/theme-provider.tsx"
        }
      ]
    },
    {
      "name": "mockup-frame",
      "type": "registry:ui",
      "title": "Mockup Frame",
      "description": "Browser-frame UI placeholder for case studies.",
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/ui/mockup-frame.tsx",
          "type": "registry:ui",
          "target": "components/ui/mockup-frame.tsx"
        }
      ]
    },
    {
      "name": "timeline-animation",
      "type": "registry:ui",
      "title": "Timeline Animation",
      "description": "Scroll-linked sequenced motion for hero timelines.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/default/ui/timeline-animation.tsx",
          "type": "registry:ui",
          "target": "components/ui/timeline-animation.tsx"
        }
      ]
    },
    {
      "name": "founder-avatar",
      "type": "registry:ui",
      "title": "Founder Avatar",
      "description": "Circular founder portrait with editable CONTENT src.",
      "dependencies": [
        "next"
      ],
      "registryDependencies": [
        "@atroui/utils",
        "@atroui/brand"
      ],
      "files": [
        {
          "path": "registry/default/ui/founder-avatar.tsx",
          "type": "registry:ui",
          "target": "components/ui/founder-avatar.tsx"
        }
      ]
    },
    {
      "name": "site-url",
      "type": "registry:lib",
      "title": "Site URL",
      "description": "getSiteUrl() for metadata and JSON-LD.",
      "registryDependencies": [
        "@atroui/brand"
      ],
      "files": [
        {
          "path": "registry/default/lib/site-url.ts",
          "type": "registry:lib",
          "target": "lib/site-url.ts"
        }
      ]
    },
    {
      "name": "seo",
      "type": "registry:lib",
      "title": "SEO helpers",
      "description": "getSiteDomain() helper for structured data.",
      "registryDependencies": [
        "@atroui/brand"
      ],
      "files": [
        {
          "path": "registry/default/lib/seo.ts",
          "type": "registry:lib",
          "target": "lib/seo.ts"
        }
      ]
    },
    {
      "name": "analytics",
      "type": "registry:lib",
      "title": "Analytics",
      "description": "trackEvent and experiment helpers.",
      "files": [
        {
          "path": "registry/default/lib/analytics.ts",
          "type": "registry:lib",
          "target": "lib/analytics.ts"
        }
      ]
    },
    {
      "name": "social-share",
      "type": "registry:block",
      "title": "Social Share",
      "description": "X / LinkedIn / copy-link share bar.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/blocks/social-share.tsx",
          "type": "registry:component",
          "target": "components/blocks/social-share.tsx"
        }
      ]
    },
    {
      "name": "before-after-slider",
      "type": "registry:block",
      "title": "Before / After",
      "description": "Compare wireframe vs shipped UI mockups.",
      "registryDependencies": [
        "@atroui/utils",
        "@atroui/mockup-frame"
      ],
      "files": [
        {
          "path": "registry/default/blocks/before-after-slider.tsx",
          "type": "registry:component",
          "target": "components/blocks/before-after-slider.tsx"
        }
      ]
    },
    {
      "name": "visual-case-study",
      "type": "registry:block",
      "title": "Case Study",
      "description": "Case study band with editable CONTENT and before/after.",
      "registryDependencies": [
        "@atroui/before-after-slider"
      ],
      "files": [
        {
          "path": "registry/default/blocks/visual-case-study.tsx",
          "type": "registry:component",
          "target": "components/blocks/visual-case-study.tsx"
        }
      ]
    },
    {
      "name": "ar-portfolio",
      "type": "registry:block",
      "title": "AR Portfolio",
      "description": "model-viewer AR portfolio with editable CONTENT models.",
      "dependencies": [
        "next"
      ],
      "registryDependencies": [
        "@atroui/utils",
        "@atroui/fade-in"
      ],
      "files": [
        {
          "path": "registry/default/blocks/ar-portfolio.tsx",
          "type": "registry:component",
          "target": "components/blocks/ar-portfolio.tsx"
        }
      ]
    },
    {
      "name": "live-dashboard",
      "type": "registry:block",
      "title": "Live Dashboard",
      "description": "Studio status board with editable CONTENT projects.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@atroui/utils",
        "@atroui/fade-in"
      ],
      "files": [
        {
          "path": "registry/default/blocks/live-dashboard.tsx",
          "type": "registry:component",
          "target": "components/blocks/live-dashboard.tsx"
        }
      ]
    },
    {
      "name": "project-planner",
      "type": "registry:block",
      "title": "Project Planner",
      "description": "Multi-step project scoping planner UI.",
      "dependencies": [
        "lucide-react",
        "next"
      ],
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/blocks/project-planner.tsx",
          "type": "registry:component",
          "target": "components/blocks/project-planner.tsx"
        }
      ]
    },
    {
      "name": "testimonial-schema",
      "type": "registry:block",
      "title": "Testimonial Schema",
      "description": "Review JSON-LD with editable CONTENT.",
      "registryDependencies": [
        "@atroui/brand",
        "@atroui/site-url"
      ],
      "files": [
        {
          "path": "registry/default/blocks/testimonial-schema.tsx",
          "type": "registry:component",
          "target": "components/blocks/testimonial-schema.tsx"
        }
      ]
    },
    {
      "name": "json-ld",
      "type": "registry:block",
      "title": "JSON-LD",
      "description": "Site graph, article, FAQ, and breadcrumb JSON-LD helpers.",
      "registryDependencies": [
        "@atroui/brand",
        "@atroui/site-url",
        "@atroui/seo"
      ],
      "files": [
        {
          "path": "registry/default/blocks/json-ld.tsx",
          "type": "registry:component",
          "target": "components/blocks/json-ld.tsx"
        }
      ]
    },
    {
      "name": "analytics-provider",
      "type": "registry:block",
      "title": "Analytics Provider",
      "description": "Plausible / GA loader with trackEvent helpers.",
      "dependencies": [
        "next"
      ],
      "registryDependencies": [
        "@atroui/analytics"
      ],
      "files": [
        {
          "path": "registry/default/blocks/analytics-provider.tsx",
          "type": "registry:component",
          "target": "components/blocks/analytics-provider.tsx"
        }
      ]
    },
    {
      "name": "og-live-preview",
      "type": "registry:block",
      "title": "OG Live Preview",
      "description": "CSS OG card preview with editable CONTENT presets.",
      "files": [
        {
          "path": "registry/default/blocks/og-live-preview.tsx",
          "type": "registry:component",
          "target": "components/blocks/og-live-preview.tsx"
        }
      ]
    },
    {
      "name": "og-examples",
      "type": "registry:block",
      "title": "OG Examples",
      "description": "OG style gallery with editable CONTENT examples.",
      "dependencies": [
        "next"
      ],
      "registryDependencies": [
        "@atroui/utils",
        "@atroui/og-live-preview"
      ],
      "files": [
        {
          "path": "registry/default/blocks/og-examples.tsx",
          "type": "registry:component",
          "target": "components/blocks/og-examples.tsx"
        }
      ]
    },
    {
      "name": "og-workspace",
      "type": "registry:block",
      "title": "OG Workspace",
      "description": "OG generator UI shell. Wire CONTENT.endpoint (Host API).",
      "registryDependencies": [
        "@atroui/og-live-preview"
      ],
      "files": [
        {
          "path": "registry/default/blocks/og-workspace.tsx",
          "type": "registry:component",
          "target": "components/blocks/og-workspace.tsx"
        }
      ]
    },
    {
      "name": "thumbnail-live-preview",
      "type": "registry:block",
      "title": "Thumbnail Preview",
      "description": "CSS thumbnail preview with editable CONTENT.",
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/blocks/thumbnail-live-preview.tsx",
          "type": "registry:component",
          "target": "components/blocks/thumbnail-live-preview.tsx"
        }
      ]
    },
    {
      "name": "thumbnail-workspace",
      "type": "registry:block",
      "title": "Thumbnail Workspace",
      "description": "Thumbnail generator UI shell. Wire CONTENT.endpoint (Host API).",
      "registryDependencies": [
        "@atroui/thumbnail-live-preview"
      ],
      "files": [
        {
          "path": "registry/default/blocks/thumbnail-workspace.tsx",
          "type": "registry:component",
          "target": "components/blocks/thumbnail-workspace.tsx"
        }
      ]
    },
    {
      "name": "scope-chat",
      "type": "registry:block",
      "title": "Scope Chat",
      "description": "AI scoping chat UI. Wire CONTENT.endpoint (Host API).",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@atroui/utils"
      ],
      "files": [
        {
          "path": "registry/default/blocks/scope-chat.tsx",
          "type": "registry:component",
          "target": "components/blocks/scope-chat.tsx"
        }
      ]
    },
    {
      "name": "journal-content",
      "type": "registry:block",
      "title": "Journal",
      "description": "Blog index layout with editable CONTENT posts.",
      "dependencies": [
        "next"
      ],
      "files": [
        {
          "path": "registry/default/blocks/journal-content.tsx",
          "type": "registry:component",
          "target": "components/blocks/journal-content.tsx"
        }
      ]
    },
    {
      "name": "resources-content",
      "type": "registry:block",
      "title": "Resources",
      "description": "Resource library layout with editable CONTENT items.",
      "dependencies": [
        "next"
      ],
      "files": [
        {
          "path": "registry/default/blocks/resources-content.tsx",
          "type": "registry:component",
          "target": "components/blocks/resources-content.tsx"
        }
      ]
    },
    {
      "name": "api-contact",
      "type": "registry:item",
      "title": "Contact API",
      "description": "POST /api/contact - honeypot, rate limit, SMTP via atroui/api/contact.",
      "dependencies": [
        "atroui"
      ],
      "files": [
        {
          "path": "registry/default/api/contact/route.ts",
          "type": "registry:file",
          "target": "app/api/contact/route.ts"
        }
      ]
    },
    {
      "name": "api-waitlist",
      "type": "registry:item",
      "title": "Waitlist API",
      "description": "POST /api/waitlist - Resend audience or SMTP via atroui/api/waitlist.",
      "dependencies": [
        "atroui"
      ],
      "files": [
        {
          "path": "registry/default/api/waitlist/route.ts",
          "type": "registry:file",
          "target": "app/api/waitlist/route.ts"
        }
      ]
    },
    {
      "name": "api-newsletter",
      "type": "registry:item",
      "title": "Newsletter API",
      "description": "POST /api/newsletter - Resend audience or SMTP via atroui/api/newsletter.",
      "dependencies": [
        "atroui"
      ],
      "files": [
        {
          "path": "registry/default/api/newsletter/route.ts",
          "type": "registry:file",
          "target": "app/api/newsletter/route.ts"
        }
      ]
    },
    {
      "name": "api-generate",
      "type": "registry:item",
      "title": "OG Generate API",
      "description": "POST /api/generate - consumer HF/Google keys via atroui/api/generate. No keys shipped.",
      "dependencies": [
        "atroui"
      ],
      "files": [
        {
          "path": "registry/default/api/generate/route.ts",
          "type": "registry:file",
          "target": "app/api/generate/route.ts"
        }
      ]
    },
    {
      "name": "api-thumbnail",
      "type": "registry:item",
      "title": "Thumbnail API",
      "description": "POST /api/thumbnail - consumer HF/Google/XAI keys via atroui/api/thumbnail. No keys shipped.",
      "dependencies": [
        "atroui"
      ],
      "files": [
        {
          "path": "registry/default/api/thumbnail/route.ts",
          "type": "registry:file",
          "target": "app/api/thumbnail/route.ts"
        }
      ]
    },
    {
      "name": "api-scope",
      "type": "registry:item",
      "title": "Scope Chat API",
      "description": "POST /api/scope - rule-based by default; optional XAI_API_KEY via atroui/api/scope.",
      "dependencies": [
        "atroui"
      ],
      "files": [
        {
          "path": "registry/default/api/scope/route.ts",
          "type": "registry:file",
          "target": "app/api/scope/route.ts"
        }
      ]
    }
  ]
}
