{
  "components": [
    {
      "bom-ref": "Jinja2==3.1.6",
      "description": "A very fast and expressive template engine.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://jinja.palletsprojects.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets/jinja/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://palletsprojects.com/donate"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://jinja.palletsprojects.com/changes/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "Jinja2",
      "purl": "pkg:pypi/jinja2@3.1.6",
      "type": "library",
      "version": "3.1.6"
    },
    {
      "bom-ref": "MarkupSafe==3.0.4",
      "description": "Safely add untrusted strings to HTML/XML markup.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://markupsafe.palletsprojects.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets/markupsafe/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://palletsprojects.com/donate"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://markupsafe.palletsprojects.com/page/changes/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "MarkupSafe",
      "purl": "pkg:pypi/markupsafe@3.0.4",
      "type": "library",
      "version": "3.0.4"
    },
    {
      "bom-ref": "PyYAML==6.0.3",
      "description": "YAML parser and emitter for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Download-URL",
          "type": "distribution",
          "url": "https://pypi.org/project/PyYAML/"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pyyaml.org/wiki/PyYAMLDocumentation"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/yaml/pyyaml/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Mailing lists",
          "type": "other",
          "url": "http://lists.sourceforge.net/lists/listinfo/yaml-core"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/yaml/pyyaml"
        },
        {
          "comment": "from packaging metadata Project-URL: CI",
          "type": "other",
          "url": "https://github.com/yaml/pyyaml/actions"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://pyyaml.org/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "PyYAML",
      "purl": "pkg:pypi/pyyaml@6.0.3",
      "type": "library",
      "version": "6.0.3"
    },
    {
      "bom-ref": "annotated-doc==0.0.5",
      "description": "Document parameters, class attributes, return types, and variables inline, with Annotated.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://github.com/fastapi/annotated-doc"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/fastapi/annotated-doc/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/fastapi/annotated-doc/release-notes.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/fastapi/annotated-doc"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/fastapi/annotated-doc"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "annotated-doc",
      "purl": "pkg:pypi/annotated-doc@0.0.5",
      "type": "library",
      "version": "0.0.5"
    },
    {
      "bom-ref": "annotated-types==0.8.0",
      "description": "Reusable constraint types to use with typing.Annotated",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/annotated-types/annotated-types"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/annotated-types/annotated-types/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/annotated-types/annotated-types"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "annotated-types",
      "purl": "pkg:pypi/annotated-types@0.8.0",
      "type": "library",
      "version": "0.8.0"
    },
    {
      "bom-ref": "anthropic==1.14.0",
      "description": "The official Python library for the anthropic API",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/anthropics/anthropic-sdk-python"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/anthropics/anthropic-sdk-python"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "anthropic",
      "purl": "pkg:pypi/anthropic@1.14.0",
      "type": "library",
      "version": "1.14.0"
    },
    {
      "bom-ref": "anyio==4.15.1",
      "description": "High-level concurrency and networking framework on top of asyncio or Trio",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://anyio.readthedocs.io/en/latest/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issue tracker",
          "type": "issue-tracker",
          "url": "https://github.com/agronholm/anyio/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source code",
          "type": "other",
          "url": "https://github.com/agronholm/anyio"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://anyio.readthedocs.io/en/stable/versionhistory.html"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "anyio",
      "purl": "pkg:pypi/anyio@4.15.1",
      "type": "library",
      "version": "4.15.1"
    },
    {
      "bom-ref": "certifi==2026.7.22",
      "description": "Python package for providing Mozilla's CA Bundle.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/certifi/python-certifi"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/certifi/python-certifi"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MPL-2.0"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)"
          }
        }
      ],
      "name": "certifi",
      "purl": "pkg:pypi/certifi@2026.7.22",
      "type": "library",
      "version": "2026.7.22"
    },
    {
      "bom-ref": "click==8.5.0",
      "description": "Composable command line interface toolkit",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://click.palletsprojects.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets/click/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://palletsprojects.com/donate"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://click.palletsprojects.com/page/changes/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "click",
      "purl": "pkg:pypi/click@8.5.0",
      "type": "library",
      "version": "8.5.0"
    },
    {
      "bom-ref": "dnspython==2.9.0",
      "description": "DNS toolkit",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: documentation",
          "type": "documentation",
          "url": "https://dnspython.readthedocs.io/en/stable/"
        },
        {
          "comment": "from packaging metadata Project-URL: issues",
          "type": "issue-tracker",
          "url": "https://github.com/rthalley/dnspython/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: repository",
          "type": "vcs",
          "url": "https://github.com/rthalley/dnspython.git"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://www.dnspython.org"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "ISC"
          }
        }
      ],
      "name": "dnspython",
      "purl": "pkg:pypi/dnspython@2.9.0",
      "type": "library",
      "version": "2.9.0"
    },
    {
      "bom-ref": "docstring_parser==0.18.0",
      "description": "Parse Python docstrings in reST, Google and Numpydoc format",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: changelog",
          "type": "release-notes",
          "url": "https://github.com/rr-/docstring_parser/blob/master/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: repository",
          "type": "vcs",
          "url": "https://github.com/rr-/docstring_parser"
        },
        {
          "comment": "from packaging metadata Project-URL: homepage",
          "type": "website",
          "url": "https://github.com/rr-/docstring_parser"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "docstring_parser",
      "purl": "pkg:pypi/docstring-parser@0.18.0",
      "type": "library",
      "version": "0.18.0"
    },
    {
      "bom-ref": "fastapi==0.143.2",
      "description": "FastAPI framework, high performance, easy to learn, fast to code, ready for production",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://fastapi.tiangolo.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Issues",
          "type": "issue-tracker",
          "url": "https://github.com/fastapi/fastapi/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://fastapi.tiangolo.com/release-notes/"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/fastapi/fastapi"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/fastapi/fastapi"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "fastapi",
      "purl": "pkg:pypi/fastapi@0.143.2",
      "type": "library",
      "version": "0.143.2"
    },
    {
      "bom-ref": "h11==0.16.0",
      "description": "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/python-hyper/h11"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "h11",
      "purl": "pkg:pypi/h11@0.16.0",
      "type": "library",
      "version": "0.16.0"
    },
    {
      "bom-ref": "httpcore==1.0.9",
      "description": "A minimal low-level HTTP client.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://www.encode.io/httpcore"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/encode/httpcore"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://www.encode.io/httpcore/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "httpcore",
      "purl": "pkg:pypi/httpcore@1.0.9",
      "type": "library",
      "version": "1.0.9"
    },
    {
      "bom-ref": "httpcore2==2.13.1",
      "description": "A minimal low-level HTTP client.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pydantic/httpx2/blob/main/src/httpcore2"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/pydantic/httpx2/blob/main/src/httpcore2/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pydantic/httpx2"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "httpcore2",
      "purl": "pkg:pypi/httpcore2@2.13.1",
      "type": "library",
      "version": "2.13.1"
    },
    {
      "bom-ref": "httptools==0.9.0",
      "description": "A collection of framework independent HTTP protocol utils.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/MagicStack/httptools"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "httptools",
      "purl": "pkg:pypi/httptools@0.9.0",
      "type": "library",
      "version": "0.9.0"
    },
    {
      "bom-ref": "httpx==0.28.1",
      "description": "The next generation HTTP client.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://www.python-httpx.org"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/encode/httpx"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/encode/httpx/blob/master/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/encode/httpx"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "httpx",
      "purl": "pkg:pypi/httpx@0.28.1",
      "type": "library",
      "version": "0.28.1"
    },
    {
      "bom-ref": "httpx2==2.13.1",
      "description": "The next generation HTTP client.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pydantic/httpx2"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/pydantic/httpx2/blob/main/src/httpx2/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pydantic/httpx2"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "httpx2",
      "purl": "pkg:pypi/httpx2@2.13.1",
      "type": "library",
      "version": "2.13.1"
    },
    {
      "bom-ref": "idna==3.20",
      "description": "Internationalized Domain Names in Applications (IDNA)",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Issue tracker",
          "type": "issue-tracker",
          "url": "https://github.com/kjd/idna/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/kjd/idna"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/kjd/idna/blob/master/HISTORY.md"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "idna",
      "purl": "pkg:pypi/idna@3.20",
      "type": "library",
      "version": "3.20"
    },
    {
      "bom-ref": "itsdangerous==2.2.0",
      "description": "Safely pass data to untrusted environments and back.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Chat",
          "type": "chat",
          "url": "https://discord.gg/pallets"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://itsdangerous.palletsprojects.com/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pallets/itsdangerous/"
        },
        {
          "comment": "from packaging metadata Project-URL: Donate",
          "type": "other",
          "url": "https://palletsprojects.com/donate"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://itsdangerous.palletsprojects.com/changes/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: BSD License"
          }
        }
      ],
      "name": "itsdangerous",
      "purl": "pkg:pypi/itsdangerous@2.2.0",
      "type": "library",
      "version": "2.2.0"
    },
    {
      "bom-ref": "jiter==0.17.0",
      "description": "Fast iterable JSON parser.",
      "externalReferences": [
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/pydantic/jiter/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "jiter",
      "purl": "pkg:pypi/jiter@0.17.0",
      "type": "library",
      "version": "0.17.0"
    },
    {
      "bom-ref": "opentelemetry-api==1.45.1",
      "description": "OpenTelemetry Python API",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/open-telemetry/opentelemetry-python"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/open-telemetry/opentelemetry-python/tree/main/opentelemetry-api"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        }
      ],
      "name": "opentelemetry-api",
      "purl": "pkg:pypi/opentelemetry-api@1.45.1",
      "type": "library",
      "version": "1.45.1"
    },
    {
      "bom-ref": "pip==26.2.1",
      "description": "The PyPA recommended tool for installing Python packages.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pip.pypa.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pypa/pip"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://pip.pypa.io/en/stable/news/"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://pip.pypa.io/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pip",
      "purl": "pkg:pypi/pip@26.2.1",
      "type": "library",
      "version": "26.2.1"
    },
    {
      "bom-ref": "pydantic==2.14.1",
      "description": "Data validation using Python type hints",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pydantic.dev/docs/validation/latest/get-started/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pydantic/pydantic"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/samuelcolvin"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://pydantic.dev/docs/validation/latest/get-started/changelog/"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pydantic/pydantic"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pydantic",
      "purl": "pkg:pypi/pydantic@2.14.1",
      "type": "library",
      "version": "2.14.1"
    },
    {
      "bom-ref": "pydantic_core==2.50.1",
      "description": "Core functionality for Pydantic validation and serialization",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pydantic/pydantic/tree/main/pydantic-core"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/samuelcolvin"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pydantic"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/pydantic/pydantic"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "pydantic_core",
      "purl": "pkg:pypi/pydantic-core@2.50.1",
      "type": "library",
      "version": "2.50.1"
    },
    {
      "bom-ref": "python-dotenv==1.2.4",
      "description": "Read key-value pairs from a .env file and set them as environment variables",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/theskumar/python-dotenv"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "python-dotenv",
      "purl": "pkg:pypi/python-dotenv@1.2.4",
      "type": "library",
      "version": "1.2.4"
    },
    {
      "bom-ref": "python-multipart==0.0.32",
      "description": "A streaming multipart parser for Python",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://kludex.github.io/python-multipart/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/Kludex/python-multipart"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/Kludex/python-multipart"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "Apache-2.0"
          }
        }
      ],
      "name": "python-multipart",
      "purl": "pkg:pypi/python-multipart@0.0.32",
      "type": "library",
      "version": "0.0.32"
    },
    {
      "bom-ref": "scapy==2.8.0",
      "description": "Scapy: interactive packet manipulation tool",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Download",
          "type": "distribution",
          "url": "https://github.com/secdev/scapy/tarball/master"
        },
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://scapy.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Source Code",
          "type": "other",
          "url": "https://github.com/secdev/scapy"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/secdev/scapy/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://scapy.net"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "GPL-2.0-only"
          }
        }
      ],
      "name": "scapy",
      "purl": "pkg:pypi/scapy@2.8.0",
      "type": "library",
      "version": "2.8.0"
    },
    {
      "bom-ref": "sniffio==1.3.1",
      "description": "Sniff out which async library your code is running under",
      "evidence": {
        "licenses": [
          {
            "license": {
              "acknowledgement": "declared",
              "id": "MIT"
            }
          },
          {
            "license": {
              "acknowledgement": "declared",
              "name": "License :: OSI Approved :: Apache Software License"
            }
          }
        ]
      },
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://sniffio.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://sniffio.readthedocs.io/en/latest/history.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/python-trio/sniffio"
        }
      ],
      "licenses": [
        {
          "acknowledgement": "declared",
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "name": "sniffio",
      "purl": "pkg:pypi/sniffio@1.3.1",
      "type": "library",
      "version": "1.3.1"
    },
    {
      "bom-ref": "starlette==1.8.0",
      "description": "The little ASGI library that shines.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://starlette.dev/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/Kludex/starlette"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/Kludex"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://starlette.dev/release-notes/"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/Kludex/starlette"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "starlette",
      "purl": "pkg:pypi/starlette@1.8.0",
      "type": "library",
      "version": "1.8.0"
    },
    {
      "bom-ref": "truststore==0.10.5",
      "description": "Verify certificates using native system trust stores",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://truststore.readthedocs.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/sethmlarson/truststore"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "truststore",
      "purl": "pkg:pypi/truststore@0.10.5",
      "type": "library",
      "version": "0.10.5"
    },
    {
      "bom-ref": "typing-inspection==0.4.4",
      "description": "Runtime typing introspection tools",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://pydantic.github.io/typing-inspection/dev/"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/pydantic/typing-inspection"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/pydantic/typing-inspection/blob/main/HISTORY.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/pydantic/typing-inspection"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "typing-inspection",
      "purl": "pkg:pypi/typing-inspection@0.4.4",
      "type": "library",
      "version": "0.4.4"
    },
    {
      "bom-ref": "typing_extensions==4.16.0",
      "description": "Backported and Experimental Type Hints for Python 3.9+",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://typing-extensions.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Bug Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/python/typing_extensions/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Q & A",
          "type": "other",
          "url": "https://github.com/python/typing/discussions"
        },
        {
          "comment": "from packaging metadata Project-URL: Changes",
          "type": "release-notes",
          "url": "https://github.com/python/typing_extensions/blob/main/CHANGELOG.md"
        },
        {
          "comment": "from packaging metadata Project-URL: Repository",
          "type": "vcs",
          "url": "https://github.com/python/typing_extensions"
        },
        {
          "comment": "from packaging metadata Project-URL: Home",
          "type": "website",
          "url": "https://github.com/python/typing_extensions"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "PSF-2.0"
          }
        }
      ],
      "name": "typing_extensions",
      "purl": "pkg:pypi/typing-extensions@4.16.0",
      "type": "library",
      "version": "4.16.0"
    },
    {
      "bom-ref": "uvicorn==0.54.0",
      "description": "The lightning-fast ASGI server.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/Kludex/uvicorn"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/Kludex"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://uvicorn.dev/release-notes"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://uvicorn.dev/"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "uvicorn",
      "properties": [
        {
          "name": "cdx:python:package:required-extra",
          "value": "standard"
        }
      ],
      "purl": "pkg:pypi/uvicorn@0.54.0",
      "type": "library",
      "version": "0.54.0"
    },
    {
      "bom-ref": "uvloop==0.23.0",
      "description": "Fast implementation of asyncio event loop on top of libuv",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: github",
          "type": "vcs",
          "url": "https://github.com/MagicStack/uvloop"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        },
        {
          "license": {
            "acknowledgement": "declared",
            "name": "License :: OSI Approved :: Apache Software License"
          }
        }
      ],
      "name": "uvloop",
      "purl": "pkg:pypi/uvloop@0.23.0",
      "type": "library",
      "version": "0.23.0"
    },
    {
      "bom-ref": "watchfiles==1.3.0",
      "description": "Simple, modern and high performance file watching and code reload in python.",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://watchfiles.helpmanual.io"
        },
        {
          "comment": "from packaging metadata Project-URL: Source",
          "type": "other",
          "url": "https://github.com/samuelcolvin/watchfiles"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://github.com/sponsors/samuelcolvin"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://github.com/samuelcolvin/watchfiles/releases"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/samuelcolvin/watchfiles"
        },
        {
          "comment": "from packaging metadata: Home-page",
          "type": "website",
          "url": "https://github.com/samuelcolvin/watchfiles"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "MIT"
          }
        }
      ],
      "name": "watchfiles",
      "purl": "pkg:pypi/watchfiles@1.3.0",
      "type": "library",
      "version": "1.3.0"
    },
    {
      "bom-ref": "websockets==17.2",
      "description": "An implementation of the WebSocket Protocol (RFC 6455 & 7692)",
      "externalReferences": [
        {
          "comment": "from packaging metadata Project-URL: Documentation",
          "type": "documentation",
          "url": "https://websockets.readthedocs.io/"
        },
        {
          "comment": "from packaging metadata Project-URL: Tracker",
          "type": "issue-tracker",
          "url": "https://github.com/python-websockets/websockets/issues"
        },
        {
          "comment": "from packaging metadata Project-URL: Funding",
          "type": "other",
          "url": "https://tidelift.com/subscription/pkg/pypi-websockets?utm_source=pypi-websockets&utm_medium=referral&utm_campaign=readme"
        },
        {
          "comment": "from packaging metadata Project-URL: Changelog",
          "type": "release-notes",
          "url": "https://websockets.readthedocs.io/en/stable/project/changelog.html"
        },
        {
          "comment": "from packaging metadata Project-URL: Homepage",
          "type": "website",
          "url": "https://github.com/python-websockets/websockets"
        }
      ],
      "licenses": [
        {
          "license": {
            "acknowledgement": "declared",
            "id": "BSD-3-Clause"
          }
        }
      ],
      "name": "websockets",
      "purl": "pkg:pypi/websockets@17.2",
      "type": "library",
      "version": "17.2"
    }
  ],
  "dependencies": [
    {
      "dependsOn": [
        "MarkupSafe==3.0.4"
      ],
      "ref": "Jinja2==3.1.6"
    },
    {
      "ref": "MarkupSafe==3.0.4"
    },
    {
      "ref": "PyYAML==6.0.3"
    },
    {
      "ref": "annotated-doc==0.0.5"
    },
    {
      "ref": "annotated-types==0.8.0"
    },
    {
      "dependsOn": [
        "anyio==4.15.1",
        "docstring_parser==0.18.0",
        "httpx2==2.13.1",
        "jiter==0.17.0",
        "opentelemetry-api==1.45.1",
        "pydantic==2.14.1",
        "sniffio==1.3.1",
        "typing_extensions==4.16.0"
      ],
      "ref": "anthropic==1.14.0"
    },
    {
      "dependsOn": [
        "idna==3.20",
        "typing_extensions==4.16.0"
      ],
      "ref": "anyio==4.15.1"
    },
    {
      "ref": "certifi==2026.7.22"
    },
    {
      "ref": "click==8.5.0"
    },
    {
      "dependsOn": [
        "httpcore2==2.13.1",
        "httpx2==2.13.1",
        "idna==3.20"
      ],
      "ref": "dnspython==2.9.0"
    },
    {
      "ref": "docstring_parser==0.18.0"
    },
    {
      "dependsOn": [
        "Jinja2==3.1.6",
        "PyYAML==6.0.3",
        "annotated-doc==0.0.5",
        "httpx==0.28.1",
        "itsdangerous==2.2.0",
        "opentelemetry-api==1.45.1",
        "pydantic==2.14.1",
        "python-multipart==0.0.32",
        "starlette==1.8.0",
        "typing-inspection==0.4.4",
        "typing_extensions==4.16.0",
        "uvicorn==0.54.0"
      ],
      "ref": "fastapi==0.143.2"
    },
    {
      "ref": "h11==0.16.0"
    },
    {
      "dependsOn": [
        "anyio==4.15.1",
        "h11==0.16.0",
        "truststore==0.10.5"
      ],
      "ref": "httpcore2==2.13.1"
    },
    {
      "dependsOn": [
        "anyio==4.15.1",
        "certifi==2026.7.22",
        "h11==0.16.0"
      ],
      "ref": "httpcore==1.0.9"
    },
    {
      "ref": "httptools==0.9.0"
    },
    {
      "dependsOn": [
        "anyio==4.15.1",
        "click==8.5.0",
        "httpcore2==2.13.1",
        "idna==3.20",
        "truststore==0.10.5",
        "typing_extensions==4.16.0"
      ],
      "ref": "httpx2==2.13.1"
    },
    {
      "dependsOn": [
        "anyio==4.15.1",
        "certifi==2026.7.22",
        "click==8.5.0",
        "httpcore==1.0.9",
        "idna==3.20"
      ],
      "ref": "httpx==0.28.1"
    },
    {
      "ref": "idna==3.20"
    },
    {
      "ref": "itsdangerous==2.2.0"
    },
    {
      "ref": "jiter==0.17.0"
    },
    {
      "dependsOn": [
        "typing_extensions==4.16.0"
      ],
      "ref": "opentelemetry-api==1.45.1"
    },
    {
      "ref": "pip==26.2.1"
    },
    {
      "dependsOn": [
        "annotated-types==0.8.0",
        "pydantic_core==2.50.1",
        "typing-inspection==0.4.4",
        "typing_extensions==4.16.0"
      ],
      "ref": "pydantic==2.14.1"
    },
    {
      "dependsOn": [
        "typing_extensions==4.16.0"
      ],
      "ref": "pydantic_core==2.50.1"
    },
    {
      "dependsOn": [
        "click==8.5.0"
      ],
      "ref": "python-dotenv==1.2.4"
    },
    {
      "ref": "python-multipart==0.0.32"
    },
    {
      "dependsOn": [
        "Jinja2==3.1.6",
        "PyYAML==6.0.3",
        "anthropic==1.14.0",
        "dnspython==2.9.0",
        "fastapi==0.143.2",
        "httpx==0.28.1",
        "itsdangerous==2.2.0",
        "pydantic==2.14.1",
        "python-multipart==0.0.32",
        "scapy==2.8.0",
        "uvicorn==0.54.0"
      ],
      "ref": "root-component"
    },
    {
      "ref": "scapy==2.8.0"
    },
    {
      "ref": "sniffio==1.3.1"
    },
    {
      "dependsOn": [
        "Jinja2==3.1.6",
        "PyYAML==6.0.3",
        "anyio==4.15.1",
        "httpx2==2.13.1",
        "httpx==0.28.1",
        "itsdangerous==2.2.0",
        "opentelemetry-api==1.45.1",
        "python-multipart==0.0.32",
        "typing_extensions==4.16.0"
      ],
      "ref": "starlette==1.8.0"
    },
    {
      "ref": "truststore==0.10.5"
    },
    {
      "dependsOn": [
        "typing_extensions==4.16.0"
      ],
      "ref": "typing-inspection==0.4.4"
    },
    {
      "ref": "typing_extensions==4.16.0"
    },
    {
      "dependsOn": [
        "PyYAML==6.0.3",
        "click==8.5.0",
        "h11==0.16.0",
        "httptools==0.9.0",
        "python-dotenv==1.2.4",
        "typing_extensions==4.16.0",
        "uvloop==0.23.0",
        "watchfiles==1.3.0",
        "websockets==17.2"
      ],
      "ref": "uvicorn==0.54.0"
    },
    {
      "ref": "uvloop==0.23.0"
    },
    {
      "dependsOn": [
        "anyio==4.15.1"
      ],
      "ref": "watchfiles==1.3.0"
    },
    {
      "ref": "websockets==17.2"
    }
  ],
  "metadata": {
    "component": {
      "bom-ref": "root-component",
      "description": "Portable network, VoIP, cloud, hybrid, and device troubleshooting system",
      "name": "callsentry",
      "type": "application",
      "version": "0.2.0"
    },
    "timestamp": "2026-10-15T13:51:35.780406+00:00",
    "tools": {
      "components": [
        {
          "description": "CycloneDX Software Bill of Materials (SBOM) generator for Python projects and environments",
          "externalReferences": [
            {
              "type": "build-system",
              "url": "https://github.com/CycloneDX/cyclonedx-python/actions"
            },
            {
              "type": "distribution",
              "url": "https://pypi.org/project/cyclonedx-bom/"
            },
            {
              "type": "documentation",
              "url": "https://cyclonedx-bom-tool.readthedocs.io/"
            },
            {
              "type": "issue-tracker",
              "url": "https://github.com/CycloneDX/cyclonedx-python/issues"
            },
            {
              "type": "license",
              "url": "https://github.com/CycloneDX/cyclonedx-python/blob/main/LICENSE"
            },
            {
              "type": "release-notes",
              "url": "https://github.com/CycloneDX/cyclonedx-python/blob/main/CHANGELOG.md"
            },
            {
              "type": "vcs",
              "url": "https://github.com/CycloneDX/cyclonedx-python/"
            },
            {
              "type": "website",
              "url": "https://github.com/CycloneDX/cyclonedx-python/#readme"
            }
          ],
          "group": "CycloneDX",
          "licenses": [
            {
              "license": {
                "acknowledgement": "declared",
                "id": "Apache-2.0"
              }
            }
          ],
          "name": "cyclonedx-py",
          "type": "application",
          "version": "7.5.0"
        },
        {
          "description": "Python library for CycloneDX",
          "externalReferences": [
            {
              "type": "build-system",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions"
            },
            {
              "type": "distribution",
              "url": "https://pypi.org/project/cyclonedx-python-lib/"
            },
            {
              "type": "documentation",
              "url": "https://cyclonedx-python-library.readthedocs.io/"
            },
            {
              "type": "issue-tracker",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues"
            },
            {
              "type": "license",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE"
            },
            {
              "type": "release-notes",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md"
            },
            {
              "type": "vcs",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib"
            },
            {
              "type": "website",
              "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme"
            }
          ],
          "group": "CycloneDX",
          "licenses": [
            {
              "license": {
                "acknowledgement": "declared",
                "id": "Apache-2.0"
              }
            }
          ],
          "name": "cyclonedx-python-lib",
          "type": "library",
          "version": "11.12.0"
        }
      ]
    }
  },
  "serialNumber": "urn:uuid:ec4d2522-3fde-42c1-9e88-7deb6d0dc767",
  "version": 1,
  "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
  "bomFormat": "CycloneDX",
  "specVersion": "1.6"
}