{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__mbarbine__platphorm-layout",
    "name": "mbarbine__platphorm-layout",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/mbarbine__platphorm-layout",
    "relative_path": "github-recent/mbarbine__platphorm-layout",
    "remote_url": "git@github.com:mbarbine/platphorm-layout.git",
    "default_branch": "main",
    "current_commit": "0e8fe6cc6e3c5b00fdfc91f767c5f7a75624eba2"
  },
  "languages": [
    {
      "language": "TypeScript",
      "files": 204,
      "bytes": 677635
    },
    {
      "language": "YAML",
      "files": 2,
      "bytes": 410746
    },
    {
      "language": "JSON",
      "files": 12,
      "bytes": 30153
    },
    {
      "language": "CSS",
      "files": 2,
      "bytes": 14227
    },
    {
      "language": "Markdown",
      "files": 6,
      "bytes": 12468
    },
    {
      "language": "JavaScript",
      "files": 2,
      "bytes": 4901
    },
    {
      "language": "Dockerfile",
      "files": 1,
      "bytes": 637
    },
    {
      "language": "Python",
      "files": 1,
      "bytes": 564
    }
  ],
  "frameworks": [
    {
      "name": "Next.js",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "React",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "Tailwind CSS",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "Vitest",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    }
  ],
  "packages": {
    "package_manager": "pnpm",
    "manifests": [
      {
        "path": "package.json",
        "name": "platphorm-layout",
        "version": "0.0.1",
        "scripts": {
          "build": "next build",
          "test": "vitest run",
          "test:unit": "vitest run",
          "test:e2e": "playwright test",
          "dev": "next dev",
          "lint": "tsc --noEmit",
          "typecheck": "tsc --noEmit",
          "start": "next start"
        },
        "dependencies": {
          "@floating-ui/react": "0.27.19",
          "@hookform/resolvers": "^3.9.1",
          "@radix-ui/react-accordion": "1.2.12",
          "@radix-ui/react-alert-dialog": "1.1.15",
          "@radix-ui/react-aspect-ratio": "1.1.8",
          "@radix-ui/react-avatar": "1.1.11",
          "@radix-ui/react-checkbox": "1.3.3",
          "@radix-ui/react-collapsible": "1.1.12",
          "@radix-ui/react-context-menu": "2.2.16",
          "@radix-ui/react-dialog": "1.1.15",
          "@radix-ui/react-dropdown-menu": "2.1.16",
          "@radix-ui/react-hover-card": "1.1.15",
          "@radix-ui/react-label": "2.1.8",
          "@radix-ui/react-menubar": "1.1.16",
          "@radix-ui/react-navigation-menu": "1.2.14",
          "@radix-ui/react-popover": "1.1.15",
          "@radix-ui/react-progress": "1.1.8",
          "@radix-ui/react-radio-group": "1.3.8",
          "@radix-ui/react-scroll-area": "1.2.10",
          "@radix-ui/react-select": "2.2.6",
          "@radix-ui/react-separator": "1.1.8",
          "@radix-ui/react-slider": "1.3.6",
          "@radix-ui/react-slot": "1.2.4",
          "@radix-ui/react-switch": "1.2.6",
          "@radix-ui/react-tabs": "1.1.13",
          "@radix-ui/react-toast": "1.2.15",
          "@radix-ui/react-toggle": "1.1.10",
          "@radix-ui/react-toggle-group": "1.1.11",
          "@radix-ui/react-tooltip": "1.2.8",
          "@vercel/analytics": "1.6.1",
          "@vercel/speed-insights": "2.0.0",
          "autoprefixer": "^10.4.20",
          "class-variance-authority": "^0.7.1",
          "clsx": "^2.1.1",
          "cmdk": "1.1.1",
          "date-fns": "4.1.0",
          "embla-carousel-react": "8.6.0",
          "input-otp": "1.4.2",
          "lucide-react": "^0.564.0",
          "next": "16.1.6",
          "next-intl": "4.8.3",
          "next-themes": "^0.4.6",
          "nuxt": "latest",
          "react": "19.2.4",
          "react-day-picker": "9.13.2",
          "react-dom": "19.2.4",
          "react-hook-form": "^7.54.1",
          "react-resizable-panels": "^2.1.7",
          "recharts": "2.15.0",
          "sonner": "^1.7.1",
          "tailwind-merge": "^3.3.1",
          "tailwindcss-animate": "1.0.7",
          "vaul": "^1.1.2",
          "vue-router": "latest",
          "zod": "^3.24.1"
        },
        "dev_dependencies": {
          "@tailwindcss/postcss": "^4.2.0",
          "@testing-library/dom": "^10.4.1",
          "@testing-library/jest-dom": "^6.9.1",
          "@testing-library/react": "^16.3.2",
          "@playwright/test": "^1.57.0",
          "@types/node": "^22",
          "@types/react": "19.2.14",
          "@types/react-dom": "19.2.3",
          "@vitejs/plugin-react": "^6.0.1",
          "jsdom": "^29.0.1",
          "postcss": "^8.5",
          "tailwindcss": "^4.2.0",
          "tw-animate-css": "1.3.3",
          "typescript": "5.7.3",
          "vitest": "^4.1.1"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [
      {
        "route": "/cron/refresh",
        "source_path": "app/api/cron/refresh/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/docs",
        "source_path": "app/api/docs/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/health",
        "source_path": "app/api/health/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "HEAD"
        ]
      },
      {
        "route": "/indexnow",
        "source_path": "app/api/indexnow/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/mcp",
        "source_path": "app/api/mcp/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/og",
        "source_path": "app/api/og/route.tsx",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/accessibility/check",
        "source_path": "app/api/v1/accessibility/check/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/grid/analyze",
        "source_path": "app/api/v1/grid/analyze/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/health",
        "source_path": "app/api/v1/health/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/integrations/browserops",
        "source_path": "app/api/v1/integrations/browserops/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/integrations/decks",
        "source_path": "app/api/v1/integrations/decks/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/integrations/docs",
        "source_path": "app/api/v1/integrations/docs/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/integrations/phorm",
        "source_path": "app/api/v1/integrations/phorm/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/integrations/status",
        "source_path": "app/api/v1/integrations/status/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/layouts/[id]",
        "source_path": "app/api/v1/layouts/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "PUT"
        ]
      },
      {
        "route": "/v1/layouts/export",
        "source_path": "app/api/v1/layouts/export/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/layouts/preview",
        "source_path": "app/api/v1/layouts/preview/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/layouts",
        "source_path": "app/api/v1/layouts/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/layouts/score",
        "source_path": "app/api/v1/layouts/score/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/reports/layout",
        "source_path": "app/api/v1/reports/layout/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/responsive/check",
        "source_path": "app/api/v1/responsive/check/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/templates/[slug]",
        "source_path": "app/api/v1/templates/[slug]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/templates",
        "source_path": "app/api/v1/templates/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/viewport/check",
        "source_path": "app/api/v1/viewport/check/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      }
    ],
    "app_routes": [
      {
        "route": "/[locale]/builder",
        "source_path": "app/[locale]/builder/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/docs",
        "source_path": "app/[locale]/docs/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/export",
        "source_path": "app/[locale]/export/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/faq",
        "source_path": "app/[locale]/faq/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/gallery",
        "source_path": "app/[locale]/gallery/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]",
        "source_path": "app/[locale]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/preview",
        "source_path": "app/[locale]/preview/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/privacy",
        "source_path": "app/[locale]/privacy/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/score",
        "source_path": "app/[locale]/score/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/templates",
        "source_path": "app/[locale]/templates/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/terms",
        "source_path": "app/[locale]/terms/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/offline",
        "source_path": "app/offline/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      }
    ]
  },
  "components": [
    {
      "name": "skip-links",
      "kind": "ui-component",
      "source_path": "components/a11y/skip-links.tsx"
    },
    {
      "name": "layout-workbench",
      "kind": "ui-component",
      "source_path": "components/layout-workbench/layout-workbench.tsx"
    },
    {
      "name": "auth-menu",
      "kind": "ui-component",
      "source_path": "components/layout/auth-menu.tsx"
    },
    {
      "name": "footer",
      "kind": "ui-component",
      "source_path": "components/layout/footer.tsx"
    },
    {
      "name": "locale-switcher",
      "kind": "ui-component",
      "source_path": "components/layout/locale-switcher.tsx"
    },
    {
      "name": "network-drawer",
      "kind": "ui-component",
      "source_path": "components/layout/network-drawer.tsx"
    },
    {
      "name": "network-logo",
      "kind": "ui-component",
      "source_path": "components/layout/network-logo.tsx"
    },
    {
      "name": "search-bar",
      "kind": "ui-component",
      "source_path": "components/layout/search-bar.tsx"
    },
    {
      "name": "top-bar",
      "kind": "ui-component",
      "source_path": "components/layout/top-bar.tsx"
    },
    {
      "name": "Breadcrumbs",
      "kind": "ui-component",
      "source_path": "components/navigation/Breadcrumbs.tsx"
    },
    {
      "name": "aeo-provider",
      "kind": "ui-component",
      "source_path": "components/providers/aeo-provider.tsx"
    },
    {
      "name": "index",
      "kind": "ui-component",
      "source_path": "components/providers/index.tsx"
    },
    {
      "name": "network-provider",
      "kind": "ui-component",
      "source_path": "components/providers/network-provider.tsx"
    },
    {
      "name": "observability-provider",
      "kind": "ui-component",
      "source_path": "components/providers/observability-provider.tsx"
    },
    {
      "name": "theme-provider",
      "kind": "ui-component",
      "source_path": "components/providers/theme-provider.tsx"
    },
    {
      "name": "trace-provider",
      "kind": "ui-component",
      "source_path": "components/providers/trace-provider.tsx"
    },
    {
      "name": "theme-provider",
      "kind": "ui-component",
      "source_path": "components/theme-provider.tsx"
    },
    {
      "name": "accordion",
      "kind": "ui-component",
      "source_path": "components/ui/accordion.tsx"
    },
    {
      "name": "alert-dialog",
      "kind": "ui-component",
      "source_path": "components/ui/alert-dialog.tsx"
    },
    {
      "name": "alert",
      "kind": "ui-component",
      "source_path": "components/ui/alert.tsx"
    },
    {
      "name": "aspect-ratio",
      "kind": "ui-component",
      "source_path": "components/ui/aspect-ratio.tsx"
    },
    {
      "name": "avatar",
      "kind": "ui-component",
      "source_path": "components/ui/avatar.tsx"
    },
    {
      "name": "badge",
      "kind": "ui-component",
      "source_path": "components/ui/badge.tsx"
    },
    {
      "name": "breadcrumb",
      "kind": "ui-component",
      "source_path": "components/ui/breadcrumb.tsx"
    },
    {
      "name": "button-group",
      "kind": "ui-component",
      "source_path": "components/ui/button-group.tsx"
    },
    {
      "name": "button",
      "kind": "ui-component",
      "source_path": "components/ui/button.tsx"
    },
    {
      "name": "calendar",
      "kind": "ui-component",
      "source_path": "components/ui/calendar.tsx"
    },
    {
      "name": "card",
      "kind": "ui-component",
      "source_path": "components/ui/card.tsx"
    },
    {
      "name": "carousel",
      "kind": "ui-component",
      "source_path": "components/ui/carousel.tsx"
    },
    {
      "name": "chart",
      "kind": "ui-component",
      "source_path": "components/ui/chart.tsx"
    },
    {
      "name": "checkbox",
      "kind": "ui-component",
      "source_path": "components/ui/checkbox.tsx"
    },
    {
      "name": "collapsible",
      "kind": "ui-component",
      "source_path": "components/ui/collapsible.tsx"
    },
    {
      "name": "command",
      "kind": "ui-component",
      "source_path": "components/ui/command.tsx"
    },
    {
      "name": "context-menu",
      "kind": "ui-component",
      "source_path": "components/ui/context-menu.tsx"
    },
    {
      "name": "deploy-buttons",
      "kind": "ui-component",
      "source_path": "components/ui/deploy-buttons.tsx"
    },
    {
      "name": "dialog",
      "kind": "ui-component",
      "source_path": "components/ui/dialog.tsx"
    },
    {
      "name": "drawer",
      "kind": "ui-component",
      "source_path": "components/ui/drawer.tsx"
    },
    {
      "name": "dropdown-menu",
      "kind": "ui-component",
      "source_path": "components/ui/dropdown-menu.tsx"
    },
    {
      "name": "empty",
      "kind": "ui-component",
      "source_path": "components/ui/empty.tsx"
    },
    {
      "name": "field",
      "kind": "ui-component",
      "source_path": "components/ui/field.tsx"
    },
    {
      "name": "form",
      "kind": "ui-component",
      "source_path": "components/ui/form.tsx"
    },
    {
      "name": "hover-card",
      "kind": "ui-component",
      "source_path": "components/ui/hover-card.tsx"
    },
    {
      "name": "input-group",
      "kind": "ui-component",
      "source_path": "components/ui/input-group.tsx"
    },
    {
      "name": "input-otp",
      "kind": "ui-component",
      "source_path": "components/ui/input-otp.tsx"
    },
    {
      "name": "input",
      "kind": "ui-component",
      "source_path": "components/ui/input.tsx"
    },
    {
      "name": "item",
      "kind": "ui-component",
      "source_path": "components/ui/item.tsx"
    },
    {
      "name": "kbd",
      "kind": "ui-component",
      "source_path": "components/ui/kbd.tsx"
    },
    {
      "name": "label",
      "kind": "ui-component",
      "source_path": "components/ui/label.tsx"
    },
    {
      "name": "menubar",
      "kind": "ui-component",
      "source_path": "components/ui/menubar.tsx"
    },
    {
      "name": "navigation-menu",
      "kind": "ui-component",
      "source_path": "components/ui/navigation-menu.tsx"
    },
    {
      "name": "pagination",
      "kind": "ui-component",
      "source_path": "components/ui/pagination.tsx"
    },
    {
      "name": "ph3ar-modal",
      "kind": "ui-component",
      "source_path": "components/ui/ph3ar-modal.tsx"
    },
    {
      "name": "popover",
      "kind": "ui-component",
      "source_path": "components/ui/popover.tsx"
    },
    {
      "name": "progress",
      "kind": "ui-component",
      "source_path": "components/ui/progress.tsx"
    },
    {
      "name": "radio-group",
      "kind": "ui-component",
      "source_path": "components/ui/radio-group.tsx"
    },
    {
      "name": "resizable",
      "kind": "ui-component",
      "source_path": "components/ui/resizable.tsx"
    },
    {
      "name": "scroll-area",
      "kind": "ui-component",
      "source_path": "components/ui/scroll-area.tsx"
    },
    {
      "name": "select",
      "kind": "ui-component",
      "source_path": "components/ui/select.tsx"
    },
    {
      "name": "separator",
      "kind": "ui-component",
      "source_path": "components/ui/separator.tsx"
    },
    {
      "name": "sheet",
      "kind": "ui-component",
      "source_path": "components/ui/sheet.tsx"
    },
    {
      "name": "sidebar",
      "kind": "ui-component",
      "source_path": "components/ui/sidebar.tsx"
    },
    {
      "name": "skeleton",
      "kind": "ui-component",
      "source_path": "components/ui/skeleton.tsx"
    },
    {
      "name": "slider",
      "kind": "ui-component",
      "source_path": "components/ui/slider.tsx"
    },
    {
      "name": "smart-tooltip",
      "kind": "ui-component",
      "source_path": "components/ui/smart-tooltip.tsx"
    },
    {
      "name": "sonner",
      "kind": "ui-component",
      "source_path": "components/ui/sonner.tsx"
    },
    {
      "name": "spinner",
      "kind": "ui-component",
      "source_path": "components/ui/spinner.tsx"
    },
    {
      "name": "switch",
      "kind": "ui-component",
      "source_path": "components/ui/switch.tsx"
    },
    {
      "name": "table",
      "kind": "ui-component",
      "source_path": "components/ui/table.tsx"
    },
    {
      "name": "tabs",
      "kind": "ui-component",
      "source_path": "components/ui/tabs.tsx"
    },
    {
      "name": "textarea",
      "kind": "ui-component",
      "source_path": "components/ui/textarea.tsx"
    },
    {
      "name": "toast",
      "kind": "ui-component",
      "source_path": "components/ui/toast.tsx"
    },
    {
      "name": "toaster",
      "kind": "ui-component",
      "source_path": "components/ui/toaster.tsx"
    },
    {
      "name": "toggle-group",
      "kind": "ui-component",
      "source_path": "components/ui/toggle-group.tsx"
    },
    {
      "name": "toggle",
      "kind": "ui-component",
      "source_path": "components/ui/toggle.tsx"
    },
    {
      "name": "tooltip",
      "kind": "ui-component",
      "source_path": "components/ui/tooltip.tsx"
    },
    {
      "name": "use-mobile",
      "kind": "ui-component",
      "source_path": "components/ui/use-mobile.tsx"
    }
  ],
  "data_models": [],
  "database": {
    "databases": [],
    "schemas": [],
    "migrations": []
  },
  "tests": [
    {
      "name": "route.test.ts",
      "kind": "unit-or-integration",
      "source_path": "app/api/health/route.test.ts"
    },
    {
      "name": "route.test.ts",
      "kind": "unit-or-integration",
      "source_path": "app/llms.txt/route.test.ts"
    },
    {
      "name": "route.test.ts",
      "kind": "unit-or-integration",
      "source_path": "app/robots.txt/route.test.ts"
    },
    {
      "name": "route.test.ts",
      "kind": "unit-or-integration",
      "source_path": "app/sitemap.xml/route.test.ts"
    },
    {
      "name": "playwright.config.ts",
      "kind": "playwright",
      "source_path": "playwright.config.ts"
    },
    {
      "name": "mcp.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/mcp.test.ts"
    },
    {
      "name": "analyzer.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/layout/analyzer.test.ts"
    },
    {
      "name": "auth.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/layout/auth.test.ts"
    },
    {
      "name": "discovery.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/layout/discovery.test.ts"
    },
    {
      "name": "exporters.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/layout/exporters.test.ts"
    },
    {
      "name": "layout-workbench.spec.ts",
      "kind": "playwright",
      "source_path": "tests/playwright/layout-workbench.spec.ts"
    }
  ],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [
      {
        "path": "Dockerfile"
      }
    ],
    "compose_files": []
  },
  "env": {
    "example_files": [],
    "variables": [
      {
        "name": "AI_GATEWAY_API_KEY",
        "source_paths": [
          "lib/layout/model-adapter.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "BING_SITE_VERIFICATION",
        "source_paths": [
          "lib/config/meta.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "BROWSEROPS_ENDPOINT",
        "source_paths": [
          "lib/layout/integrations.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "CSP_REPORT_URI",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "DATABASE_URL",
        "source_paths": [
          "lib/layout/api-handlers.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "DECKS_ENDPOINT",
        "source_paths": [
          "lib/layout/integrations.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "DOCS_ENDPOINT",
        "source_paths": [
          "lib/layout/integrations.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "GOOGLE_SITE_VERIFICATION",
        "source_paths": [
          "lib/config/meta.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "INDEXNOW_KEY",
        "source_paths": [
          "app/api/indexnow/route.ts",
          "lib/config/meta.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "MCP_API_ENDPOINT",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "MCP_SVG_ENDPOINT",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_404_URL",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_API_URL",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_BASE_URL",
        "source_paths": [
          "app/.well-known/change-password/route.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_CANONICAL_URL",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_COINBASE_ADDRESS",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_FEATURE_DEPLOY_BUTTONS",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_FEATURE_I18N",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_FEATURE_PH3AR",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_FEATURE_THEME",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_GAMES_URL",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_JOBS_URL",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_MCP_ENABLED",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_NETWORK_HUB",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_ONBOARD_URL",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_SITE_NAME",
        "source_paths": [
          "lib/config/site.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_SITE_URL",
        "source_paths": [
          "lib/config/env.ts",
          "lib/config/site.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_SPEED_INSIGHTS",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_SVG_URL",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_TRACE_ENABLED",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_TRACE_ENDPOINT",
        "source_paths": [
          "lib/trace/index.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_TRACE_SAMPLE_RATE",
        "source_paths": [
          "lib/config/env.ts",
          "lib/trace/index.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_TRACE_URL",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_V0_CLONE_URL",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_V0_PROJECT_ID",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_VERCEL_ANALYTICS",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NODE_ENV",
        "source_paths": [
          "lib/config/env.ts",
          "lib/config/features.ts",
          "lib/config/site.ts",
          "lib/layout/api-handlers.ts",
          "lib/security/headers.ts",
          "lib/trace/index.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "OPENAI_API_KEY",
        "source_paths": [
          "lib/layout/model-adapter.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "PHORM_ENDPOINT",
        "source_paths": [
          "lib/layout/integrations.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "PLATPHORM_API_KEY",
        "source_paths": [
          "lib/platform/auth.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "PLATPHORM_REQUIRE_API_KEY",
        "source_paths": [
          "lib/platform/auth.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "SECURITY_CONTACT",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "SHEETS_ENDPOINT",
        "source_paths": [
          "lib/layout/integrations.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_ENV",
        "source_paths": [
          "lib/config/env.ts",
          "lib/config/features.ts",
          "lib/config/site.ts",
          "lib/layout/api-handlers.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_GIT_COMMIT_AUTHOR_NAME",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "VERCEL_GIT_COMMIT_MESSAGE",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_GIT_COMMIT_SHA",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_GIT_REPO_OWNER",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_GIT_REPO_SLUG",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_PROJECT_ID",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_REGION",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_TEAM_ID",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_URL",
        "source_paths": [
          "lib/config/env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "YANDEX_VERIFICATION",
        "source_paths": [
          "lib/config/meta.ts"
        ],
        "likely_secret": false
      }
    ]
  },
  "configs": [
    {
      "path": "lib/platform/vercel.ts"
    },
    {
      "path": "next.config.ts"
    },
    {
      "path": "package.json"
    },
    {
      "path": "pnpm-workspace.yaml"
    },
    {
      "path": "postcss.config.mjs"
    },
    {
      "path": "tsconfig.json"
    },
    {
      "path": "vercel.json"
    }
  ],
  "docs": {
    "readme_paths": [
      {
        "path": "README.md"
      }
    ],
    "doc_paths": [],
    "llms_context_paths": []
  },
  "discovery_files": {
    "openapi": [],
    "mcp": [
      {
        "path": "app/api/mcp/route.ts"
      },
      {
        "path": "lib/layout/mcp.ts"
      }
    ],
    "llms": [],
    "sitemaps": [],
    "feeds": [],
    "well_known": [
      {
        "path": "app/.well-known/agents.json/route.ts"
      },
      {
        "path": "app/.well-known/ai-plugin.json/route.ts"
      },
      {
        "path": "app/.well-known/apple-app-site-association/route.ts"
      },
      {
        "path": "app/.well-known/assetlinks.json/route.ts"
      },
      {
        "path": "app/.well-known/change-password/route.ts"
      },
      {
        "path": "app/.well-known/mcp.json/route.ts"
      },
      {
        "path": "app/.well-known/security.txt/route.ts"
      },
      {
        "path": "app/.well-known/trust.json/route.ts"
      }
    ],
    "robots": [],
    "manifests": []
  },
  "integrations": [
    {
      "name": "Google",
      "confidence": "medium",
      "evidence_paths": [
        "lib/config/meta.ts",
        "package.json"
      ]
    },
    {
      "name": "OpenAI",
      "confidence": "medium",
      "evidence_paths": [
        "lib/layout/model-adapter.ts",
        "package.json"
      ]
    },
    {
      "name": "PlatPhorm",
      "confidence": "medium",
      "evidence_paths": [
        "app/.well-known/mcp.json/route.ts",
        "app/[locale]/docs/page.tsx",
        "app/[locale]/faq/page.tsx",
        "app/[locale]/privacy/page.tsx",
        "app/[locale]/terms/page.tsx",
        "app/api/health/route.test.ts",
        "app/llms.txt/route.test.ts",
        "components/layout-workbench/layout-workbench.tsx",
        "lib/layout/discovery.ts",
        "lib/layout/openapi.ts",
        "lib/layout/registry.ts",
        "lib/platform/auth.ts",
        "package.json",
        "README.md",
        "tests/layout/auth.test.ts"
      ]
    },
    {
      "name": "Postgres",
      "confidence": "medium",
      "evidence_paths": [
        "lib/layout/api-handlers.ts",
        "lib/layout/discovery.ts",
        "lib/layout/registry.ts",
        "lib/layout/templates.ts",
        "package.json"
      ]
    },
    {
      "name": "Vercel",
      "confidence": "medium",
      "evidence_paths": [
        "components/providers/observability-provider.tsx",
        "lib/config/env.ts",
        "lib/config/features.ts",
        "lib/config/site.ts",
        "lib/layout/api-handlers.ts",
        "package.json",
        "pnpm-lock.yaml"
      ]
    }
  ],
  "license": {
    "spdx": null,
    "paths": [
      {
        "path": "LICENSE.txt"
      }
    ]
  },
  "comments": [
    {
      "kind": "security",
      "source_path": "app/.well-known/change-password/route.ts",
      "line": 15,
      "text": "new URL(\"/account/security\", process.env.NEXT_PUBLIC_BASE_URL || \"https://layout.platphormnews.com\"),"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 1,
      "text": "/** security.txt - RFC 9116 */"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 15,
      "text": "const securityTxt = `# PlatPhorm News Security Policy"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 18,
      "text": "Contact: mailto:security@platphormnews.com"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 19,
      "text": "Contact: https://platphormnews.com/security/report"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 25,
      "text": "Acknowledgments: https://platphormnews.com/security/thanks"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 29,
      "text": "Canonical: ${SITE_CONFIG.url}/.well-known/security.txt"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 31,
      "text": "Policy: https://platphormnews.com/security/policy"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 33,
      "text": "Hiring: https://platphormnews.com/jobs?department=security"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 36,
      "text": "# PlatPhorm News Network Security Contacts"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 39,
      "text": "# We take security seriously. If you've discovered a"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 59,
      "text": "# - Security researchers are acknowledged on our"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/terms/page.tsx",
      "line": 20,
      "text": "<p>Generated exports are deterministic starting points. Review accessibility, content, security, and site-specific requirements before production use.</p>"
    },
    {
      "kind": "security",
      "source_path": "lib/config/env.ts",
      "line": 83,
      "text": "// Security"
    },
    {
      "kind": "security",
      "source_path": "lib/config/env.ts",
      "line": 84,
      "text": "SECURITY: {"
    },
    {
      "kind": "security",
      "source_path": "lib/config/env.ts",
      "line": 86,
      "text": "SECURITY_CONTACT: process.env.SECURITY_CONTACT || 'security@platphormnews.com',"
    },
    {
      "kind": "security",
      "source_path": "lib/layout/discovery.ts",
      "line": 268,
      "text": "securityContact: \"security@platphormnews.com\","
    },
    {
      "kind": "security",
      "source_path": "lib/layout/openapi.ts",
      "line": 24,
      "text": "security: endpoint.boundary === \"future-protected\" ? [{ PlatPhormApiKey: [] }] : [],"
    },
    {
      "kind": "security",
      "source_path": "lib/layout/openapi.ts",
      "line": 47,
      "text": "security: [],"
    },
    {
      "kind": "security",
      "source_path": "lib/layout/registry.ts",
      "line": 44,
      "text": "\"/.well-known/security.txt\","
    },
    {
      "kind": "security",
      "source_path": "lib/security/headers.ts",
      "line": 2,
      "text": "* PlatPhorm News Layout — Security Headers"
    },
    {
      "kind": "security",
      "source_path": "lib/security/headers.ts",
      "line": 4,
      "text": "* Centralized security header configuration."
    },
    {
      "kind": "security",
      "source_path": "lib/security/headers.ts",
      "line": 12,
      "text": "* Content Security Policy directives"
    },
    {
      "kind": "unsafe",
      "source_path": "lib/security/headers.ts",
      "line": 20,
      "text": "\"script-src 'self' 'unsafe-inline' 'unsafe-eval' https://vercel.live https://va.vercel-scripts.com\","
    },
    {
      "kind": "unsafe",
      "source_path": "lib/security/headers.ts",
      "line": 23,
      "text": "\"style-src 'self' 'unsafe-inline' https://fonts.googleapis.com\","
    },
    {
      "kind": "security",
      "source_path": "lib/security/headers.ts",
      "line": 57,
      "text": "* Get all security headers"
    },
    {
      "kind": "security",
      "source_path": "lib/security/headers.ts",
      "line": 88,
      "text": "headers[\"Content-Security-Policy\"] = getCSPDirectives();"
    },
    {
      "kind": "security",
      "source_path": "lib/security/headers.ts",
      "line": 93,
      "text": "headers[\"Strict-Transport-Security\"] = \"max-age=31536000; includeSubDomains; preload\";"
    },
    {
      "kind": "security",
      "source_path": "lib/security/headers.ts",
      "line": 100,
      "text": "* Apply security headers to a Response"
    },
    {
      "kind": "security",
      "source_path": "License FAQ.md",
      "line": 23,
      "text": "Yes, if your use is non-commercial as defined by the license. Internal evaluation, research, development, testing, security review, accessibility work, and internal experimentation are generally allowed if you are not directly or indirectly"
    },
    {
      "kind": "security",
      "source_path": "LICENSE.txt",
      "line": 13,
      "text": "“Non-commercial purposes” include personal use by an individual, academic research and development, journalism, testing, evaluation, interoperability work, security review, accessibility work, and internal use by your own organization where"
    },
    {
      "kind": "security",
      "source_path": "middleware.ts",
      "line": 6,
      "text": "import { applySecurityHeaders } from '@/lib/security/headers';"
    },
    {
      "kind": "security",
      "source_path": "middleware.ts",
      "line": 51,
      "text": "// Apply security headers"
    },
    {
      "kind": "security",
      "source_path": "next.config.ts",
      "line": 20,
      "text": "// Headers: CORS for AI-first open access + security + distributed tracing"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 3987,
      "text": "deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by cont"
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [
      {
        "name": "dangerously-set-html",
        "confidence": "medium",
        "evidence_paths": [
          ".Jules/sentinel.md",
          "components/providers/aeo-provider.tsx",
          "components/ui/chart.tsx"
        ]
      },
      {
        "name": "sql-injection-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "components/layout-workbench/layout-workbench.tsx",
          "lib/utils/xml.tsx"
        ]
      },
      {
        "name": "ssrf-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "lib/services/network.ts",
          "lib/services/svg.ts",
          "public/sw.js"
        ]
      }
    ],
    "sensitive_data_indicators": [
      {
        "name": "api_key",
        "confidence": "medium",
        "evidence_paths": [
          "app/.well-known/mcp.json/route.ts",
          "app/[locale]/docs/page.tsx",
          "app/[locale]/faq/page.tsx",
          "app/[locale]/privacy/page.tsx",
          "app/[locale]/terms/page.tsx",
          "app/api/health/route.test.ts",
          "app/llms.txt/route.test.ts",
          "components/layout-workbench/layout-workbench.tsx",
          "components/layout/auth-menu.tsx",
          "lib/layout/discovery.ts",
          "lib/layout/model-adapter.ts",
          "lib/layout/openapi.ts",
          "lib/layout/registry.ts",
          "lib/layout/seo.ts",
          "lib/platform/auth.ts",
          "README.md",
          "tests/layout/auth.test.ts",
          "tests/layout/discovery.test.ts"
        ]
      },
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          "app/[locale]/layout.tsx",
          "app/[locale]/page.tsx",
          "app/[locale]/templates/page.tsx",
          "app/globals.css",
          "components/layout-workbench/layout-workbench.tsx",
          "components/ui/alert.tsx",
          "components/ui/calendar.tsx",
          "components/ui/card.tsx",
          "components/ui/hover-card.tsx",
          "lib/config/meta.ts",
          "lib/layout/api-handlers.ts",
          "lib/layout/exporters.ts",
          "lib/layout/mcp.ts",
          "lib/layout/registry.ts",
          "lib/layout/templates.ts",
          "lib/layout/types.ts",
          "lib/seo/index.tsx",
          "package.json",
          "pnpm-lock.yaml",
          "README.md"
        ]
      },
      {
        "name": "email",
        "confidence": "medium",
        "evidence_paths": [
          "app/humans.txt/route.ts",
          "lib/config/site.ts",
          "lib/layout/discovery.ts",
          "lib/layout/openapi.ts",
          "lib/layout/templates.ts",
          "lib/seo/index.tsx",
          "lib/services/svg.ts",
          "lib/utils/xml.tsx"
        ]
      },
      {
        "name": "fingerprint",
        "confidence": "medium",
        "evidence_paths": [
          "app/.well-known/assetlinks.json/route.ts",
          "components/providers/trace-provider.tsx",
          "components/ui/ph3ar-modal.tsx",
          "lib/config/features.ts",
          "lib/trace/fingerprint.ts",
          "lib/trace/index.ts",
          "lib/types/layout.ts",
          "lib/types/trace.ts"
        ]
      },
      {
        "name": "health",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/health/route.test.ts",
          "app/api/health/route.ts",
          "app/api/indexnow/route.ts",
          "app/api/v1/health/route.ts",
          "components/layout/footer.tsx",
          "lib/layout/api-handlers.ts",
          "lib/layout/discovery.ts",
          "lib/layout/mcp.ts",
          "lib/layout/registry.ts",
          "lib/services/network.ts"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/indexnow/route.ts",
          "app/offline/client-content.tsx",
          "components/layout/search-bar.tsx",
          "lib/security/headers.ts",
          "lib/seo/index.tsx"
        ]
      },
      {
        "name": "password",
        "confidence": "medium",
        "evidence_paths": [
          "app/.well-known/change-password/route.ts"
        ]
      },
      {
        "name": "payment",
        "confidence": "medium",
        "evidence_paths": [
          "lib/security/headers.ts"
        ]
      },
      {
        "name": "pii",
        "confidence": "medium",
        "evidence_paths": [
          "pnpm-lock.yaml"
        ]
      },
      {
        "name": "secret-like environment variables",
        "confidence": "medium",
        "evidence_paths": [
          "package.json"
        ]
      },
      {
        "name": "token",
        "confidence": "medium",
        "evidence_paths": [
          "app/globals.css",
          "lib/layout/discovery.ts",
          "lib/layout/exporters.ts",
          "pnpm-lock.yaml"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:15.773Z"
}
