{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__mbarbine__www-demo-biofeedback-app-development",
    "name": "mbarbine__www-demo-biofeedback-app-development",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/mbarbine__www-demo-biofeedback-app-development",
    "relative_path": "github-recent/mbarbine__www-demo-biofeedback-app-development",
    "remote_url": "git@github.com:mbarbine/www-demo-biofeedback-app-development.git",
    "default_branch": "main",
    "current_commit": "c5017b57a249f81a6e67deff9f62784b824d52ef"
  },
  "languages": [
    {
      "language": "TypeScript",
      "files": 60,
      "bytes": 356277
    },
    {
      "language": "JSON",
      "files": 4,
      "bytes": 344522
    },
    {
      "language": "YAML",
      "files": 1,
      "bytes": 285222
    },
    {
      "language": "Markdown",
      "files": 4,
      "bytes": 9743
    },
    {
      "language": "CSS",
      "files": 2,
      "bytes": 8797
    },
    {
      "language": "JavaScript",
      "files": 5,
      "bytes": 1942
    }
  ],
  "frameworks": [
    {
      "name": "Jest",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "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"
      ]
    }
  ],
  "packages": {
    "package_manager": "pnpm",
    "manifests": [
      {
        "path": "package.json",
        "name": "my-v0-project",
        "version": "0.1.0",
        "scripts": {
          "build": "next build",
          "dev": "next dev",
          "lint": "eslint .",
          "start": "next start",
          "test": "jest"
        },
        "dependencies": {
          "@hookform/resolvers": "^3.10.0",
          "@radix-ui/react-accordion": "1.2.2",
          "@radix-ui/react-alert-dialog": "1.1.4",
          "@radix-ui/react-aspect-ratio": "1.1.1",
          "@radix-ui/react-avatar": "1.1.2",
          "@radix-ui/react-checkbox": "1.1.3",
          "@radix-ui/react-collapsible": "1.1.2",
          "@radix-ui/react-context-menu": "2.2.4",
          "@radix-ui/react-dialog": "1.1.4",
          "@radix-ui/react-dropdown-menu": "2.1.4",
          "@radix-ui/react-hover-card": "1.1.4",
          "@radix-ui/react-label": "2.1.1",
          "@radix-ui/react-menubar": "1.1.4",
          "@radix-ui/react-navigation-menu": "1.2.3",
          "@radix-ui/react-popover": "1.1.4",
          "@radix-ui/react-progress": "1.1.1",
          "@radix-ui/react-radio-group": "1.2.2",
          "@radix-ui/react-scroll-area": "1.2.2",
          "@radix-ui/react-select": "2.1.4",
          "@radix-ui/react-separator": "1.1.1",
          "@radix-ui/react-slider": "1.2.2",
          "@radix-ui/react-slot": "1.1.1",
          "@radix-ui/react-switch": "1.1.2",
          "@radix-ui/react-tabs": "1.1.2",
          "@radix-ui/react-toast": "1.2.4",
          "@radix-ui/react-toggle": "1.1.1",
          "@radix-ui/react-toggle-group": "1.1.1",
          "@radix-ui/react-tooltip": "1.1.6",
          "@vercel/analytics": "latest",
          "autoprefixer": "^10.4.20",
          "class-variance-authority": "^0.7.1",
          "clsx": "^2.1.1",
          "cmdk": "1.0.4",
          "date-fns": "4.1.0",
          "embla-carousel-react": "8.5.1",
          "input-otp": "1.4.1",
          "lucide-react": "^0.454.0",
          "next": "16.0.10",
          "next-themes": "^0.4.6",
          "react": "19.2.1",
          "react-day-picker": "9.8.0",
          "react-dom": "19.2.1",
          "react-hook-form": "^7.60.0",
          "react-resizable-panels": "^2.1.7",
          "recharts": "latest",
          "sonner": "^1.7.4",
          "tailwind-merge": "^2.5.5",
          "tailwindcss-animate": "^1.0.7",
          "vaul": "^0.9.9",
          "zod": "3.25.76"
        },
        "dev_dependencies": {
          "@babel/preset-env": "^7.29.2",
          "@babel/preset-react": "^7.28.5",
          "@babel/preset-typescript": "^7.28.5",
          "@tailwindcss/postcss": "^4.1.9",
          "@testing-library/dom": "^10.4.1",
          "@testing-library/jest-dom": "^6.9.1",
          "@testing-library/react": "^16.3.2",
          "@types/jest": "^29.5.14",
          "@types/node": "^22",
          "@types/react": "^19",
          "@types/react-dom": "^19",
          "jest": "^29.7.0",
          "jest-environment-jsdom": "^29.7.0",
          "postcss": "^8.5",
          "tailwindcss": "^4.1.9",
          "ts-jest": "^29",
          "tw-animate-css": "1.3.3",
          "typescript": "^5"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [],
    "app_routes": []
  },
  "components": [
    {
      "name": "advanced-signals-panel.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/advanced-signals-panel.test.tsx"
    },
    {
      "name": "anomaly-feed.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/anomaly-feed.test.tsx"
    },
    {
      "name": "canine-monitor.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/canine-monitor.test.tsx"
    },
    {
      "name": "event-timeline.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/event-timeline.test.tsx"
    },
    {
      "name": "header.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/header.test.tsx"
    },
    {
      "name": "mental-state-monitor.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/mental-state-monitor.test.tsx"
    },
    {
      "name": "metrics-card.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/metrics-card.test.tsx"
    },
    {
      "name": "mission-readiness-panel.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/mission-readiness-panel.test.tsx"
    },
    {
      "name": "real-time-chart.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/real-time-chart.test.tsx"
    },
    {
      "name": "roi-selector.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/roi-selector.test.tsx"
    },
    {
      "name": "scenario-status.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/scenario-status.test.tsx"
    },
    {
      "name": "session-history.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/session-history.test.tsx"
    },
    {
      "name": "system-architecture.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/system-architecture.test.tsx"
    },
    {
      "name": "team-sync-panel.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/team-sync-panel.test.tsx"
    },
    {
      "name": "use-case-panel.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/use-case-panel.test.tsx"
    },
    {
      "name": "validation-panel.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/validation-panel.test.tsx"
    },
    {
      "name": "video-canvas.test",
      "kind": "ui-component",
      "source_path": "components/__tests__/video-canvas.test.tsx"
    },
    {
      "name": "advanced-signals-panel",
      "kind": "ui-component",
      "source_path": "components/advanced-signals-panel.tsx"
    },
    {
      "name": "anomaly-feed",
      "kind": "ui-component",
      "source_path": "components/anomaly-feed.tsx"
    },
    {
      "name": "canine-monitor",
      "kind": "ui-component",
      "source_path": "components/canine-monitor.tsx"
    },
    {
      "name": "event-timeline",
      "kind": "ui-component",
      "source_path": "components/event-timeline.tsx"
    },
    {
      "name": "header",
      "kind": "ui-component",
      "source_path": "components/header.tsx"
    },
    {
      "name": "mental-state-monitor",
      "kind": "ui-component",
      "source_path": "components/mental-state-monitor.tsx"
    },
    {
      "name": "metrics-card",
      "kind": "ui-component",
      "source_path": "components/metrics-card.tsx"
    },
    {
      "name": "mission-readiness-panel",
      "kind": "ui-component",
      "source_path": "components/mission-readiness-panel.tsx"
    },
    {
      "name": "real-time-chart",
      "kind": "ui-component",
      "source_path": "components/real-time-chart.tsx"
    },
    {
      "name": "roi-selector",
      "kind": "ui-component",
      "source_path": "components/roi-selector.tsx"
    },
    {
      "name": "scenario-status",
      "kind": "ui-component",
      "source_path": "components/scenario-status.tsx"
    },
    {
      "name": "session-history",
      "kind": "ui-component",
      "source_path": "components/session-history.tsx"
    },
    {
      "name": "system-architecture",
      "kind": "ui-component",
      "source_path": "components/system-architecture.tsx"
    },
    {
      "name": "team-sync-panel",
      "kind": "ui-component",
      "source_path": "components/team-sync-panel.tsx"
    },
    {
      "name": "theme-provider",
      "kind": "ui-component",
      "source_path": "components/theme-provider.tsx"
    },
    {
      "name": "badge",
      "kind": "ui-component",
      "source_path": "components/ui/badge.tsx"
    },
    {
      "name": "button",
      "kind": "ui-component",
      "source_path": "components/ui/button.tsx"
    },
    {
      "name": "card",
      "kind": "ui-component",
      "source_path": "components/ui/card.tsx"
    },
    {
      "name": "dialog",
      "kind": "ui-component",
      "source_path": "components/ui/dialog.tsx"
    },
    {
      "name": "tabs",
      "kind": "ui-component",
      "source_path": "components/ui/tabs.tsx"
    },
    {
      "name": "use-case-panel",
      "kind": "ui-component",
      "source_path": "components/use-case-panel.tsx"
    },
    {
      "name": "validation-panel",
      "kind": "ui-component",
      "source_path": "components/validation-panel.tsx"
    },
    {
      "name": "video-canvas",
      "kind": "ui-component",
      "source_path": "components/video-canvas.tsx"
    }
  ],
  "data_models": [],
  "database": {
    "databases": [],
    "schemas": [],
    "migrations": []
  },
  "tests": [
    {
      "name": "layout.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "app/__tests__/layout.test.tsx"
    },
    {
      "name": "page.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "app/__tests__/page.test.tsx"
    },
    {
      "name": "advanced-signals-panel.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/advanced-signals-panel.test.tsx"
    },
    {
      "name": "anomaly-feed.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/anomaly-feed.test.tsx"
    },
    {
      "name": "canine-monitor.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/canine-monitor.test.tsx"
    },
    {
      "name": "event-timeline.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/event-timeline.test.tsx"
    },
    {
      "name": "header.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/header.test.tsx"
    },
    {
      "name": "mental-state-monitor.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/mental-state-monitor.test.tsx"
    },
    {
      "name": "metrics-card.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/metrics-card.test.tsx"
    },
    {
      "name": "mission-readiness-panel.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/mission-readiness-panel.test.tsx"
    },
    {
      "name": "real-time-chart.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/real-time-chart.test.tsx"
    },
    {
      "name": "roi-selector.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/roi-selector.test.tsx"
    },
    {
      "name": "scenario-status.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/scenario-status.test.tsx"
    },
    {
      "name": "session-history.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/session-history.test.tsx"
    },
    {
      "name": "system-architecture.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/system-architecture.test.tsx"
    },
    {
      "name": "team-sync-panel.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/team-sync-panel.test.tsx"
    },
    {
      "name": "use-case-panel.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/use-case-panel.test.tsx"
    },
    {
      "name": "validation-panel.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/validation-panel.test.tsx"
    },
    {
      "name": "video-canvas.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/__tests__/video-canvas.test.tsx"
    },
    {
      "name": "biofeedback-engine.test.ts",
      "kind": "unit-or-integration",
      "source_path": "lib/biofeedback-engine.test.ts"
    },
    {
      "name": "computer-vision.test.ts",
      "kind": "unit-or-integration",
      "source_path": "lib/computer-vision.test.ts"
    },
    {
      "name": "face-detector.test.ts",
      "kind": "unit-or-integration",
      "source_path": "lib/face-detector.test.ts"
    },
    {
      "name": "session-storage.test.ts",
      "kind": "unit-or-integration",
      "source_path": "lib/session-storage.test.ts"
    },
    {
      "name": "signal-processing.test.ts",
      "kind": "unit-or-integration",
      "source_path": "lib/signal-processing.test.ts"
    },
    {
      "name": "test-utils.test.ts",
      "kind": "unit-or-integration",
      "source_path": "lib/test-utils.test.ts"
    },
    {
      "name": "test-utils.ts",
      "kind": "unit-or-integration",
      "source_path": "lib/test-utils.ts"
    },
    {
      "name": "utils.test.ts",
      "kind": "unit-or-integration",
      "source_path": "lib/utils.test.ts"
    }
  ],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [],
    "compose_files": []
  },
  "env": {
    "example_files": [],
    "variables": []
  },
  "configs": [
    {
      "path": "next.config.mjs"
    },
    {
      "path": "package.json"
    },
    {
      "path": "postcss.config.mjs"
    },
    {
      "path": "tsconfig.json"
    }
  ],
  "docs": {
    "readme_paths": [
      {
        "path": "README.md"
      }
    ],
    "doc_paths": [],
    "llms_context_paths": []
  },
  "discovery_files": {
    "openapi": [],
    "mcp": [],
    "llms": [],
    "sitemaps": [],
    "feeds": [],
    "well_known": [],
    "robots": [],
    "manifests": []
  },
  "integrations": [
    {
      "name": "Vercel",
      "confidence": "medium",
      "evidence_paths": [
        "app/__tests__/layout.test.tsx",
        "app/layout.tsx",
        "jest.config.js",
        "jest.setup.ts",
        "package-lock.json",
        "package.json",
        "pnpm-lock.yaml"
      ]
    }
  ],
  "license": {
    "spdx": null,
    "paths": []
  },
  "comments": [
    {
      "kind": "security",
      "source_path": ".jules/sentinel.md",
      "line": 1,
      "text": "## 2024-05-24 - Missing Security Headers"
    },
    {
      "kind": "security",
      "source_path": ".jules/sentinel.md",
      "line": 2,
      "text": "**Vulnerability:** Next.js application was lacking default HTTP security headers such as X-Frame-Options, Strict-Transport-Security, and X-Content-Type-Options."
    },
    {
      "kind": "security",
      "source_path": ".jules/sentinel.md",
      "line": 3,
      "text": "**Learning:** Default configurations in Next.js do not automatically append security headers to HTTP responses. These need to be explicitly configured in next.config.mjs."
    },
    {
      "kind": "deprecated",
      "source_path": "jest.setup.ts",
      "line": 34,
      "text": "addListener: jest.fn(), // Deprecated"
    },
    {
      "kind": "deprecated",
      "source_path": "jest.setup.ts",
      "line": 35,
      "text": "removeListener: jest.fn(), // Deprecated"
    },
    {
      "kind": "security",
      "source_path": "next.config.mjs",
      "line": 22,
      "text": "key: \"Strict-Transport-Security\","
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 5630,
      "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 c"
    },
    {
      "kind": "deprecated",
      "source_path": "package-lock.json",
      "line": 5812,
      "text": "\"deprecated\": \"This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.\","
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 2096,
      "text": "deprecated: Use your platform's native atob() and btoa() methods instead"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 2447,
      "text": "deprecated: Use your platform's native DOMException instead"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 2609,
      "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"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 2683,
      "text": "deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful."
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 3666,
      "text": "deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation"
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [],
    "sensitive_data_indicators": [
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          ".jules/bolt.md",
          "app/__tests__/page.test.tsx",
          "app/globals.css",
          "app/page.tsx",
          "components/__tests__/metrics-card.test.tsx",
          "components/advanced-signals-panel.tsx",
          "components/anomaly-feed.tsx",
          "components/canine-monitor.tsx",
          "components/event-timeline.tsx",
          "components/header.tsx",
          "components/mental-state-monitor.tsx",
          "components/metrics-card.tsx",
          "components/mission-readiness-panel.tsx",
          "components/real-time-chart.tsx",
          "components/roi-selector.tsx",
          "components/scenario-status.tsx",
          "components/session-history.tsx",
          "components/system-architecture.tsx",
          "components/team-sync-panel.tsx",
          "components/ui/card.tsx"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          "lib/face-detector.test.ts",
          "lib/face-detector.ts"
        ]
      },
      {
        "name": "pii",
        "confidence": "medium",
        "evidence_paths": [
          "package-lock.json",
          "pnpm-lock.yaml"
        ]
      },
      {
        "name": "token",
        "confidence": "medium",
        "evidence_paths": [
          "package-lock.json",
          "pnpm-lock.yaml"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:29.593Z"
}
