{
  "schemaVersion": 1,
  "auditDate": "2026-10-12",
  "scope": "XD browser distribution and Python service dependency resolution; software only",
  "serverResolution": "CPython 3.12 Linux wheels resolved from requirements.txt on the audit date. Transitive versions are not pinned by the deployment manifest; this is a resolution snapshot, not an attestation of an existing running deployment.",
  "components": [
    {
      "name": "lucide-react",
      "version": "1.45.0",
      "license": "ISC",
      "scope": "browser",
      "source": "https://lucide.dev",
      "notice": "licenses/lucide-react.txt",
      "evidence": "upstream licence files"
    },
    {
      "name": "react",
      "version": "19.2.8",
      "license": "MIT",
      "scope": "browser",
      "source": "https://react.dev/",
      "notice": "licenses/react.txt",
      "evidence": "upstream licence files"
    },
    {
      "name": "react-dom",
      "version": "19.2.8",
      "license": "MIT",
      "scope": "browser",
      "source": "https://react.dev/",
      "notice": "licenses/react-dom.txt",
      "evidence": "upstream licence files"
    },
    {
      "name": "scheduler",
      "version": "0.27.0",
      "license": "MIT",
      "scope": "browser",
      "source": "https://react.dev/",
      "notice": "licenses/scheduler.txt",
      "evidence": "upstream licence files"
    },
    {
      "name": "vite",
      "version": "8.2.2",
      "license": "MIT",
      "scope": "browser",
      "source": "https://vite.dev",
      "notice": "licenses/vite.txt",
      "evidence": "upstream licence files"
    },
    {
      "name": "Lightweight Charts",
      "version": "5.2.0",
      "license": "Apache-2.0",
      "scope": "browser",
      "source": "https://github.com/tradingview/lightweight-charts/tree/v5.2.0",
      "notice": "licenses/lightweight-charts.txt",
      "evidence": "Vendored standalone bundle is byte-for-byte identical to the official lightweight-charts@5.2.0 npm tarball. LICENSE and NOTICE copied from the v5.2.0 upstream tag; original 2025 NOTICE date retained alongside the 2026 bundle copyright."
    },
    {
      "name": "Fancy Canvas",
      "version": "2.1.0",
      "license": "MIT",
      "scope": "browser",
      "source": "https://github.com/tradingview/fancy-canvas",
      "notice": "licenses/fancy-canvas.txt",
      "evidence": "Bundled dependency pinned to 2.1.0 by lightweight-charts@5.2.0. npm metadata declares MIT but tarball omits licence file; upstream master LICENSE retrieved 2026-10-12."
    },
    {
      "name": "Lucide SVG icons and Feather icons",
      "version": "vendored",
      "license": "ISC AND MIT",
      "scope": "browser",
      "source": "https://lucide.dev/license",
      "notice": "licenses/lucide-svg-icons-and-feather-icons.txt",
      "evidence": "upstream licence files"
    },
    {
      "name": "Inter",
      "version": "vendored",
      "license": "OFL-1.1",
      "scope": "browser",
      "source": "https://github.com/rsms/inter",
      "notice": "licenses/inter.txt",
      "evidence": "upstream licence files"
    },
    {
      "name": "Roboto",
      "version": "vendored",
      "license": "OFL-1.1",
      "scope": "browser",
      "source": "https://github.com/googlefonts/roboto-classic",
      "notice": "licenses/roboto.txt",
      "evidence": "upstream licence files"
    },
    {
      "name": "flag-icons",
      "version": "vendored",
      "license": "MIT",
      "scope": "browser",
      "source": "https://github.com/lipis/flag-icons",
      "notice": "licenses/flag-icons.txt",
      "evidence": "upstream licence files"
    },
    {
      "name": "annotated-types",
      "version": "0.8.0",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/annotated-types/0.8.0/",
      "notice": "licenses/annotated-types.txt",
      "evidence": {
        "wheel": "annotated_types-0.8.0-py3-none-any.whl",
        "sha256": "f072f4d804ea359e4eaf198b1af7a8b0943881a87f31bb764f8bf219bb9419e0"
      }
    },
    {
      "name": "anyio",
      "version": "4.15.1",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/anyio/4.15.1/",
      "notice": "licenses/anyio.txt",
      "evidence": {
        "wheel": "anyio-4.15.1-py3-none-any.whl",
        "sha256": "6152fdbbf9a77fdec97731721bebf7c4c44f7c29b424b0065826173efc7ed101"
      }
    },
    {
      "name": "asn1crypto",
      "version": "1.5.1",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/asn1crypto/1.5.1/",
      "notice": "licenses/asn1crypto.txt",
      "evidence": {
        "wheel": "asn1crypto-1.5.1-py2.py3-none-any.whl",
        "sha256": "db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67"
      }
    },
    {
      "name": "certifi",
      "version": "2026.7.22",
      "license": "MPL-2.0",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/certifi/2026.7.22/",
      "notice": "licenses/certifi.txt",
      "evidence": {
        "wheel": "certifi-2026.7.22-py3-none-any.whl",
        "sha256": "62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775"
      }
    },
    {
      "name": "cffi",
      "version": "2.1.1",
      "license": "MIT-0",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/cffi/2.1.1/",
      "notice": "licenses/cffi.txt",
      "evidence": {
        "wheel": "cffi-2.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
        "sha256": "c1453022f490d2459a11819d83ad1d586e9ff65a12ac3e705ffebd46d3685dcf"
      }
    },
    {
      "name": "click",
      "version": "8.5.0",
      "license": "BSD-3-Clause",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/click/8.5.0/",
      "notice": "licenses/click.txt",
      "evidence": {
        "wheel": "click-8.5.0-py3-none-any.whl",
        "sha256": "255bc9599cf7748b4b1a446ccc735421bd08a2ae529a8b88597d3de5664ee360"
      }
    },
    {
      "name": "cryptography",
      "version": "50.0.2",
      "license": "Apache-2.0 OR BSD-3-Clause",
      "scope": "server-direct",
      "source": "https://pypi.org/project/cryptography/50.0.2/",
      "notice": "licenses/cryptography.txt",
      "evidence": {
        "wheel": "cryptography-50.0.2-cp311-abi3-manylinux_2_34_x86_64.whl",
        "sha256": "9dab55f57c74c3cad24c323bacbbd04be4705ba6eb0d92e920b1fc4837ed5079"
      }
    },
    {
      "name": "fastapi",
      "version": "0.140.0",
      "license": "MIT",
      "scope": "server-direct",
      "source": "https://pypi.org/project/fastapi/0.140.0/",
      "notice": "licenses/fastapi.txt",
      "evidence": {
        "wheel": "fastapi-0.140.0-py3-none-any.whl",
        "sha256": "e951c0a0d9540bf5d9a2a9e078fd415da2ab7e312d435139e7d9e2e7fe9f0b23"
      }
    },
    {
      "name": "h11",
      "version": "0.16.0",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/h11/0.16.0/",
      "notice": "licenses/h11.txt",
      "evidence": {
        "wheel": "h11-0.16.0-py3-none-any.whl",
        "sha256": "63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"
      }
    },
    {
      "name": "httpcore",
      "version": "1.0.9",
      "license": "BSD-3-Clause",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/httpcore/1.0.9/",
      "notice": "licenses/httpcore.txt",
      "evidence": {
        "wheel": "httpcore-1.0.9-py3-none-any.whl",
        "sha256": "2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"
      }
    },
    {
      "name": "httptools",
      "version": "0.9.0",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/httptools/0.9.0/",
      "notice": "licenses/httptools.txt",
      "evidence": {
        "wheel": "httptools-0.9.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
        "sha256": "3e3201fe4d46e0d15d7ff9fafc94a605da9eb82d2c5b9837f0368acb325481f1"
      }
    },
    {
      "name": "httpx",
      "version": "0.28.1",
      "license": "BSD-3-Clause",
      "scope": "server-direct",
      "source": "https://pypi.org/project/httpx/0.28.1/",
      "notice": "licenses/httpx.txt",
      "evidence": {
        "wheel": "httpx-0.28.1-py3-none-any.whl",
        "sha256": "d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"
      }
    },
    {
      "name": "idna",
      "version": "3.20",
      "license": "BSD-3-Clause",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/idna/3.20/",
      "notice": "licenses/idna.txt",
      "evidence": {
        "wheel": "idna-3.20-py3-none-any.whl",
        "sha256": "ab7ae7122974553370f0bdb919e1a960b2cd1bc1ef0276416d896db81c14582c"
      }
    },
    {
      "name": "pg8000",
      "version": "1.31.5",
      "license": "BSD-3-Clause",
      "scope": "server-direct",
      "source": "https://pypi.org/project/pg8000/1.31.5/",
      "notice": "licenses/pg8000.txt",
      "evidence": {
        "wheel": "pg8000-1.31.5-py3-none-any.whl",
        "sha256": "0af2c1926b153307639868d2ee5cef6cd3a7d07448e12736989b10e1d491e201"
      }
    },
    {
      "name": "pycparser",
      "version": "3.11",
      "license": "BSD-3-Clause",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/pycparser/3.11/",
      "notice": "licenses/pycparser.txt",
      "evidence": {
        "wheel": "pycparser-3.11-py3-none-any.whl",
        "sha256": "51d5a8ba2be0bbe440b99d2112604c95bbbc3c2748a64260186c541e1729cd80"
      }
    },
    {
      "name": "pydantic",
      "version": "2.14.1",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/pydantic/2.14.1/",
      "notice": "licenses/pydantic.txt",
      "evidence": {
        "wheel": "pydantic-2.14.1-py3-none-any.whl",
        "sha256": "9195d967ec791692a04438115466764fb8b9a27b31f14a760437694f40d6b454"
      }
    },
    {
      "name": "pydantic_core",
      "version": "2.50.1",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/pydantic_core/2.50.1/",
      "notice": "licenses/pydantic-core.txt",
      "evidence": {
        "wheel": "pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
        "sha256": "93ba4e9d8210d941c200431a56b2c0400b131865947903937ed3ec5404307d2e"
      }
    },
    {
      "name": "PyOTP",
      "version": "2.10.0",
      "license": "MIT",
      "scope": "server-direct",
      "source": "https://pypi.org/project/PyOTP/2.10.0/",
      "notice": "licenses/pyotp.txt",
      "evidence": {
        "wheel": "pyotp-2.10.0-py3-none-any.whl",
        "sha256": "1df2f6a1bcc3bb0716172a5215ddc2f8c7c7fd26a13df9927d52e1746934836c"
      }
    },
    {
      "name": "python-dateutil",
      "version": "2.9.0.post0",
      "license": "Apache-2.0 OR BSD-3-Clause",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/python-dateutil/2.9.0.post0/",
      "notice": "licenses/python-dateutil.txt",
      "evidence": {
        "wheel": "python_dateutil-2.9.0.post0-py2.py3-none-any.whl",
        "sha256": "a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
      }
    },
    {
      "name": "python-dotenv",
      "version": "1.2.4",
      "license": "BSD-3-Clause",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/python-dotenv/1.2.4/",
      "notice": "licenses/python-dotenv.txt",
      "evidence": {
        "wheel": "python_dotenv-1.2.4-py3-none-any.whl",
        "sha256": "42269a8a5b3fd54ffa6f3d84b18abed50064717576b4ecf03dc4a55d8aa04fdc"
      }
    },
    {
      "name": "PyYAML",
      "version": "6.0.3",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/PyYAML/6.0.3/",
      "notice": "licenses/pyyaml.txt",
      "evidence": {
        "wheel": "pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
        "sha256": "ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc"
      }
    },
    {
      "name": "scramp",
      "version": "1.4.17",
      "license": "MIT-0",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/scramp/1.4.17/",
      "notice": "licenses/scramp.txt",
      "evidence": {
        "wheel": "scramp-1.4.17-py3-none-any.whl",
        "sha256": "a4e3fd2e8169461a28a13777a166d3da94274454f0714a7d3023fee124474ac8"
      }
    },
    {
      "name": "six",
      "version": "1.17.0",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/six/1.17.0/",
      "notice": "licenses/six.txt",
      "evidence": {
        "wheel": "six-1.17.0-py2.py3-none-any.whl",
        "sha256": "4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"
      }
    },
    {
      "name": "starlette",
      "version": "1.7.0",
      "license": "BSD-3-Clause",
      "scope": "server-direct",
      "source": "https://pypi.org/project/starlette/1.7.0/",
      "notice": "licenses/starlette.txt",
      "evidence": {
        "wheel": "starlette-1.7.0-py3-none-any.whl",
        "sha256": "67f8e99895493dd2911a03f11314af6ceebeae4e704bb9f43dfc6a9db151c93e"
      }
    },
    {
      "name": "typing_extensions",
      "version": "4.16.0",
      "license": "PSF-2.0",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/typing_extensions/4.16.0/",
      "notice": "licenses/typing-extensions.txt",
      "evidence": {
        "wheel": "typing_extensions-4.16.0-py3-none-any.whl",
        "sha256": "481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8"
      }
    },
    {
      "name": "typing-inspection",
      "version": "0.4.4",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/typing-inspection/0.4.4/",
      "notice": "licenses/typing-inspection.txt",
      "evidence": {
        "wheel": "typing_inspection-0.4.4-py3-none-any.whl",
        "sha256": "65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147"
      }
    },
    {
      "name": "uvicorn",
      "version": "0.32.1",
      "license": "BSD-3-Clause",
      "scope": "server-direct",
      "source": "https://pypi.org/project/uvicorn/0.32.1/",
      "notice": "licenses/uvicorn.txt",
      "evidence": {
        "wheel": "uvicorn-0.32.1-py3-none-any.whl",
        "sha256": "82ad92fd58da0d12af7482ecdb5f2470a04c9c9a53ced65b9bbb4a205377602e"
      }
    },
    {
      "name": "uvloop",
      "version": "0.23.0",
      "license": "MIT AND Apache-2.0",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/uvloop/0.23.0/",
      "notice": "licenses/uvloop.txt",
      "evidence": {
        "wheel": "uvloop-0.23.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
        "sha256": "090865d8ce7a03986755a3ce711b7dd0d4b44eb14ab74368b717f3fad1180208"
      }
    },
    {
      "name": "watchfiles",
      "version": "1.3.0",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/watchfiles/1.3.0/",
      "notice": "licenses/watchfiles.txt",
      "evidence": {
        "wheel": "watchfiles-1.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
        "sha256": "b5768b49e426fd5b550b012c866db347cdf15c398ef98dc557b6e6b72fa74cd1"
      }
    },
    {
      "name": "websockets",
      "version": "17.2",
      "license": "BSD-3-Clause",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/websockets/17.2/",
      "notice": "licenses/websockets.txt",
      "evidence": {
        "wheel": "websockets-17.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
        "sha256": "6627b913b8586b1c06db9516b31dd0dfbc621de3bb9312616d92a7e44f268a5b"
      }
    },
    {
      "name": "annotated-doc",
      "version": "0.0.4",
      "license": "MIT",
      "scope": "server-transitive",
      "source": "https://pypi.org/project/annotated-doc/0.0.4/",
      "notice": "licenses/annotated-doc.txt",
      "evidence": {
        "wheel": "annotated_doc-0.0.4-py3-none-any.whl",
        "sha256": "571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320"
      }
    }
  ],
  "npmLockInventory": [
    {
      "path": "node_modules/@oxc-project/types",
      "name": "@oxc-project/types",
      "version": "0.148.0",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@playwright/test",
      "name": "@playwright/test",
      "version": "1.62.1",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-android-arm-eabi",
      "name": "@rolldown/binding-android-arm-eabi",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-android-arm64",
      "name": "@rolldown/binding-android-arm64",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-darwin-arm64",
      "name": "@rolldown/binding-darwin-arm64",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-darwin-x64",
      "name": "@rolldown/binding-darwin-x64",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-freebsd-x64",
      "name": "@rolldown/binding-freebsd-x64",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-linux-arm-gnueabihf",
      "name": "@rolldown/binding-linux-arm-gnueabihf",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-linux-arm64-gnu",
      "name": "@rolldown/binding-linux-arm64-gnu",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-linux-arm64-musl",
      "name": "@rolldown/binding-linux-arm64-musl",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-linux-ppc64-gnu",
      "name": "@rolldown/binding-linux-ppc64-gnu",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-linux-s390x-gnu",
      "name": "@rolldown/binding-linux-s390x-gnu",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-linux-x64-gnu",
      "name": "@rolldown/binding-linux-x64-gnu",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-linux-x64-musl",
      "name": "@rolldown/binding-linux-x64-musl",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-openharmony-arm64",
      "name": "@rolldown/binding-openharmony-arm64",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-win32-arm64-msvc",
      "name": "@rolldown/binding-win32-arm64-msvc",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/binding-win32-x64-msvc",
      "name": "@rolldown/binding-win32-x64-msvc",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@rolldown/pluginutils",
      "name": "@rolldown/pluginutils",
      "version": "1.0.1",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@types/react",
      "name": "@types/react",
      "version": "19.2.18",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@types/react-dom",
      "name": "@types/react-dom",
      "version": "19.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-aix-ppc64",
      "name": "@typescript/typescript-aix-ppc64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-darwin-arm64",
      "name": "@typescript/typescript-darwin-arm64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-darwin-x64",
      "name": "@typescript/typescript-darwin-x64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-freebsd-arm64",
      "name": "@typescript/typescript-freebsd-arm64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-freebsd-x64",
      "name": "@typescript/typescript-freebsd-x64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-linux-arm",
      "name": "@typescript/typescript-linux-arm",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-linux-arm64",
      "name": "@typescript/typescript-linux-arm64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-linux-loong64",
      "name": "@typescript/typescript-linux-loong64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-linux-mips64el",
      "name": "@typescript/typescript-linux-mips64el",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-linux-ppc64",
      "name": "@typescript/typescript-linux-ppc64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-linux-riscv64",
      "name": "@typescript/typescript-linux-riscv64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-linux-s390x",
      "name": "@typescript/typescript-linux-s390x",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-linux-x64",
      "name": "@typescript/typescript-linux-x64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-netbsd-arm64",
      "name": "@typescript/typescript-netbsd-arm64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-netbsd-x64",
      "name": "@typescript/typescript-netbsd-x64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-openbsd-arm64",
      "name": "@typescript/typescript-openbsd-arm64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-openbsd-x64",
      "name": "@typescript/typescript-openbsd-x64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-sunos-x64",
      "name": "@typescript/typescript-sunos-x64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-win32-arm64",
      "name": "@typescript/typescript-win32-arm64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@typescript/typescript-win32-x64",
      "name": "@typescript/typescript-win32-x64",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/@vitejs/plugin-react",
      "name": "@vitejs/plugin-react",
      "version": "6.1.1",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/csstype",
      "name": "csstype",
      "version": "3.2.3",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/detect-libc",
      "name": "detect-libc",
      "version": "2.1.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/fdir",
      "name": "fdir",
      "version": "6.5.0",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/fsevents",
      "name": "fsevents",
      "version": "2.3.2",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss",
      "name": "lightningcss",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-android-arm64",
      "name": "lightningcss-android-arm64",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-darwin-arm64",
      "name": "lightningcss-darwin-arm64",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-darwin-x64",
      "name": "lightningcss-darwin-x64",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-freebsd-x64",
      "name": "lightningcss-freebsd-x64",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-linux-arm-gnueabihf",
      "name": "lightningcss-linux-arm-gnueabihf",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-linux-arm64-gnu",
      "name": "lightningcss-linux-arm64-gnu",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-linux-arm64-musl",
      "name": "lightningcss-linux-arm64-musl",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-linux-x64-gnu",
      "name": "lightningcss-linux-x64-gnu",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-linux-x64-musl",
      "name": "lightningcss-linux-x64-musl",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-win32-arm64-msvc",
      "name": "lightningcss-win32-arm64-msvc",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lightningcss-win32-x64-msvc",
      "name": "lightningcss-win32-x64-msvc",
      "version": "1.33.0",
      "license": "MPL-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/lucide-react",
      "name": "lucide-react",
      "version": "1.45.0",
      "license": "ISC",
      "scope": "browser"
    },
    {
      "path": "node_modules/nanoid",
      "name": "nanoid",
      "version": "3.3.18",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/picocolors",
      "name": "picocolors",
      "version": "1.1.1",
      "license": "ISC",
      "scope": "build/test"
    },
    {
      "path": "node_modules/picomatch",
      "name": "picomatch",
      "version": "4.0.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/playwright",
      "name": "playwright",
      "version": "1.62.1",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/playwright-core",
      "name": "playwright-core",
      "version": "1.62.1",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/postcss",
      "name": "postcss",
      "version": "8.5.28",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/react",
      "name": "react",
      "version": "19.2.8",
      "license": "MIT",
      "scope": "browser"
    },
    {
      "path": "node_modules/react-dom",
      "name": "react-dom",
      "version": "19.2.8",
      "license": "MIT",
      "scope": "browser"
    },
    {
      "path": "node_modules/rolldown",
      "name": "rolldown",
      "version": "1.2.7",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/scheduler",
      "name": "scheduler",
      "version": "0.27.0",
      "license": "MIT",
      "scope": "browser"
    },
    {
      "path": "node_modules/source-map-js",
      "name": "source-map-js",
      "version": "1.2.2",
      "license": "BSD-3-Clause",
      "scope": "build/test"
    },
    {
      "path": "node_modules/tinyglobby",
      "name": "tinyglobby",
      "version": "0.2.17",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/typescript",
      "name": "typescript",
      "version": "7.0.2",
      "license": "Apache-2.0",
      "scope": "build/test"
    },
    {
      "path": "node_modules/vite",
      "name": "vite",
      "version": "8.2.2",
      "license": "MIT",
      "scope": "build/test"
    },
    {
      "path": "node_modules/vite/node_modules/fsevents",
      "name": "fsevents",
      "version": "2.3.3",
      "license": "MIT",
      "scope": "build/test"
    }
  ],
  "inputs": {
    "package.json": "d31dbb67e0eb114399f67be0379cb09cc58f678ecb7ed8a6a2edb524e1555eee",
    "package-lock.json": "6c59ebc6b81ee82bd8618a2c8a292610b8bfc39abb80ac98f8a7ee96d05a75fb",
    "frontend/package.json": "11fb459c3094d282b2f03487e553c4e91c27f2488602951670461183e61dab4f",
    "requirements.txt": "d37570876c57a08d06a69ac67ebd6a4e1c8501c51aa4059ce1cee1915698cc65",
    "backend/requirements-benchmark.txt": "fbe57b88dc80eda511fa276dcdd1208d6a365bfee59b6dd172bf8190e66bbb51",
    "backend/requirements-hybrid.txt": "fe7b7b3f28adc5260fbed44ca7261f2e9566b6f99c84e5c14ae9cbc177b2e003",
    "backend/requirements-research.txt": "801201d2ccc0e39662141c8543422c01e4ee4956b44ee4974b4f09098f2f1ff3",
    "backend/requirements-training.txt": "f5b731f6423938d78722add412b7888bef01db46b4924b0c87e6f3659df8c275",
    "backend/requirements.txt": "b376116bd42e2b83d41237d1ebca1c599c6a9e628eac299ce482b466825f0c6c"
  },
  "vendoredFiles": {
    "vendor/lightweight-charts/LICENSE": "70c9d5382506dd184465425c08a99ad9bd6d9ac1313c252968ba0b585e5ef823",
    "vendor/lightweight-charts/NOTICE": "f76c6afab94884448f0426e30d6e9d555ca7247894cd3484e477d2f87513036e",
    "vendor/lightweight-charts/lightweight-charts.standalone.production.js": "c0992580867c4912cc9385b3c2728315bcc1a76c7f1087dca908430fccdf31d7",
    "vendor/lightweight-charts/license-provenance.json": "9375b50875576f81139f2be60e9e2c9b0ae5913cbdb6ef75659886235349225a",
    "vendor/lightweight-charts/fancy-canvas-LICENSE": "52d2ba0c8f8f4532bd524358d679693ff3dd9e40c56fe0c0c63061ed0733aa18",
    "lucide-license.txt": "b495047bd93a9b06913511076f504daba17d5bbeb3e0650f3bb53a4220329c57",
    "fonts/Inter-LICENSE.txt": "262481e844521b326f5ecd053e59b98c8b2da78c8ee1bdbb6e8174305e54935a",
    "fonts/Roboto-LICENSE.txt": "061402327a96aadb0bfb694a960ed289ecd38d383e396243831ab81feb109c41",
    "icons/home/flag-icons-LICENSE.txt": "8f1195d55a2fd315a07d812328470ca9ba2abb78c8d317ff19619d5125e00cea"
  },
  "noticeFiles": {
    "licenses/lucide-react.txt": "aeaf0a1dbea72caa9a610b4ba5e35c9f8959772dd7a6b6002e7d451600cf19d3",
    "licenses/react.txt": "88e93ab92c2f591fa69f6518f562aa346056710e784fcee4cfe6f09fa364c7ad",
    "licenses/react-dom.txt": "23633c5c663cf8a29e9cfc7c6aba4eab96bd5e36b5d2bcd8cd14cba04cd54ee3",
    "licenses/scheduler.txt": "4f12717c421ded2bcb1aac1f45e40bd6c2f9b74254eec20adae5fd09abe375af",
    "licenses/vite.txt": "c30d03c524f23a614dc1879b1e753d79cf89972b745830138cb440beb363d7e9",
    "licenses/lightweight-charts.txt": "9a0b848f07ea48d03c0182dc78b9db541dc958ea3b0552ae3984d8801c5072e2",
    "licenses/fancy-canvas.txt": "5ab12494ec358dbef4976ace5b0832da7671439076a546caa70c301a0160fcbf",
    "licenses/lucide-svg-icons-and-feather-icons.txt": "3130ab176ba1f87295d2c5529b76c45558ca7508e5b411b175ecdf01fbff6598",
    "licenses/inter.txt": "7c94a68ad3a164d33ad316bd83d317b8b02a582a7b498977c930e000b0af57dd",
    "licenses/roboto.txt": "f7ce9e0b4ae04bdbcdbcfe9ce1b2630b21e4d8001e4598d414c3bc1f09f5e907",
    "licenses/flag-icons.txt": "82866f14ab57019eba15fb7b5a631c6d32eb01155cdce13f02f65d0c2aed4907",
    "licenses/annotated-types.txt": "2d0b5766063f453acced30aa07ae5a0bbb7ef0b12efbafe5acea002424c1ae9a",
    "licenses/anyio.txt": "ade9d1d5733ac8b4e56cd594fdb37e7a54a0147fbf75f438de0cb0a43666fa48",
    "licenses/asn1crypto.txt": "99f9858c8992d2cf628b1f4a6ddf69a964257d505a5f5a617e4cab4d6789e2d2",
    "licenses/certifi.txt": "402f8ad0e4ee5ab0235d51196b936d4d9d01fda4c0bc9ccc5f45f0eaaea55fe4",
    "licenses/cffi.txt": "211d762ed028597723b82822e74a87c1e89416a565e9ac7c1183a4bd4aaffdf3",
    "licenses/click.txt": "c20ddc36a90c66c0c24c4684b730b564d9f76f4d310342f2d4be8133f8248a2d",
    "licenses/cryptography.txt": "1e36d350cf1b2f2f39680599572efe29429a603ab07a3075781ba3bb58505d02",
    "licenses/fastapi.txt": "9ea0e9e17b481daacb7a2706136a73128d959471b2f3cd16fe5e976474fce4f7",
    "licenses/h11.txt": "9ca0a87ed6c053a2d9eb8c2c1bd8de49e68d0133693ef5c60284df51188ca51d",
    "licenses/httpcore.txt": "358bd70d8f26a26ed7cbc205263550150539dc359d0cadee21f57bfc6c4c89d4",
    "licenses/httptools.txt": "8ecf341a688bae40aaa16c8092df8af567fb7f72f6bb9959b22609041bf52c41",
    "licenses/httpx.txt": "7ec6ba125bbab0dd912677a9f5d931411fe1dea1aa5333f2858f44eb226b07ed",
    "licenses/idna.txt": "35fe4e91d4f1df4787b72fbef2bd86876d23a901a9e302365bc2fd0ceeee477f",
    "licenses/pg8000.txt": "6a2a8287e18d743f40d3c556548b706fd998b1c2a49f898f127537ef8cfab39c",
    "licenses/pycparser.txt": "67102cddc4afa98450396616f3c20ab7dc2faeddb31e1823e6b7481999755ea1",
    "licenses/pydantic.txt": "bd0a17abbcb63968b3ca18fe900c46b25d6d0d47e217a4c137dacfeb0e20ffc7",
    "licenses/pydantic-core.txt": "6dbf3dd25665c0e4eccd037d3c11e07d30cbc356abb5f87936609d3b9c7a8312",
    "licenses/pyotp.txt": "75acab6d8ccef1413a9974ddcfbd0155d9a06c7838e09573f7bf378cd071d180",
    "licenses/python-dateutil.txt": "d0beee81d429d126171d1da06633412937d7caca20aa3213088882aadd839b5a",
    "licenses/python-dotenv.txt": "433b223ca7f6aa3a7c7932345337a0e7f9da9b9eaf4d5bc4ce608a0ef9ee1a13",
    "licenses/pyyaml.txt": "ade717f1dce113f6921f41ddc91d9017f6803c6022d302f6741f9fa8177d0bd4",
    "licenses/scramp.txt": "718dc0164e0382d72b09d0295f206c07877401bc316fd6530e121fe9fed9c8f7",
    "licenses/six.txt": "fcf3319ba294ad8ff77b591e2ac48736741dc155f26c5d7ba47f4cf9536313b6",
    "licenses/starlette.txt": "4ceafe3de3a71a0ae2cfd6b995bc5b8d81ac4e4890641bc0e7a083187895b131",
    "licenses/typing-extensions.txt": "b41c853edf90b87d814bb96e0ab83ff10c33bb2fd8ad206000859e2a49205efe",
    "licenses/typing-inspection.txt": "d7313597b104e695794e0c8e8f0421fc3e5250d9e0cb17b553858e544c59eaaa",
    "licenses/uvicorn.txt": "99b90bdaa0f4853727eeee52fedc41f4d55dd783ed1ea23a1dbb5eabb1286d23",
    "licenses/uvloop.txt": "4744ee30c9e1a5655e4871b9a819aa082b66f9714971fb343615d45e239b79bf",
    "licenses/watchfiles.txt": "8a9249ed1f7b7b5184fae27a99fdbe3487863a4c24d62c963fdbbe7e9ad72c55",
    "licenses/websockets.txt": "a7e5994372aa579d8653915aea526d6778182c795f6ed3e961a9b09e80635ab0",
    "licenses/third-party-notices.txt": "f364a3e18ef50695db8a37a116d398aac00a77f1395143cee01c7d09952b39c9",
    "licenses/annotated-doc.txt": "798565bc492ea9474206a5220f42dac8383372c90f0a4f7e826ec2a1e5cf9956"
  },
  "npmSecurityUpdate": {
    "date": "2026-10-13",
    "package": "source-map-js",
    "version": "1.2.2",
    "advisory": "GHSA-68fv-2mgg-jv7q",
    "scope": "build/test; existing BSD-3-Clause licence unchanged"
  },
  "serverSecurityUpdate": {
    "date": "2026-10-13",
    "packages": {
      "fastapi": "0.140.0",
      "starlette": "1.7.0",
      "annotated-doc": "0.0.4"
    },
    "scope": "Updated framework wheel notices and new transitive annotated-doc notice; other audit-date component notices retained."
  }
}
