OpenSpace/pyproject.toml
Marc von Renteln 4f61cb2fa1 fix: pin litellm to <1.82.7 to avoid PYSEC-2026-2 supply-chain attack
Versions 1.82.7 and 1.82.8 of litellm were published on March 24, 2026
and contained malicious code that exfiltrated credentials (SSH keys,
cloud credentials, .env files, API keys) to an attacker-controlled domain.

Pin the dependency to >=1.70.0,<1.82.7 in both pyproject.toml and
requirements.txt as a stopgap until litellm can be replaced with direct
provider SDK calls.

See: https://github.com/HKUDS/OpenSpace/issues/31
Ref: PYSEC-2026-2, BerriAI/litellm#24521
2026-03-29 11:16:10 +02:00

85 lines
1.9 KiB
TOML

[build-system]
requires = ["setuptools>=68.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "openspace"
version = "0.1.0"
description = "OpenSpace"
readme = "README.md"
requires-python = ">=3.12"
license = {text = "MIT"}
authors = [
{name = "OpenSpace Team@HKUDS"}
]
dependencies = [
"litellm>=1.70.0,<1.82.7", # pinned to avoid PYSEC-2026-2 supply-chain compromise (1.82.7/1.82.8 were malicious)
"python-dotenv>=1.0.0",
"openai>=1.0.0",
"jsonschema>=4.25.0",
"mcp>=1.0.0",
"anthropic>=0.71.0",
"pillow>=12.0.0",
"numpy>=1.24.0",
"colorama>=0.4.6",
"flask>=3.1.0",
"pyautogui>=0.9.54",
"pydantic>=2.12.0",
"requests>=2.32.0",
]
[project.optional-dependencies]
macos = [
"pyobjc-core>=12.0",
"pyobjc-framework-cocoa>=12.0",
"pyobjc-framework-quartz>=12.0",
"atomacos>=3.2.0",
]
linux = [
"python-xlib>=0.33",
"pyatspi>=2.38.0",
"numpy>=1.24.0",
]
windows = [
"pywinauto>=0.6.8",
"pywin32>=306",
"PyGetWindow>=0.0.9",
]
dev = [
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"black>=23.0.0",
"flake8>=6.0.0",
"mypy>=1.0.0",
]
all = [
"openspace[macos,linux,windows,dev]",
]
[project.urls]
Repository = "https://github.com/HKUDS/OpenSpace"
"Bug Tracker" = "https://github.com/HKUDS/OpenSpace/issues"
[project.scripts]
openspace = "openspace.__main__:run_main"
openspace-server = "openspace.local_server.main:main"
openspace-mcp = "openspace.mcp_server:run_mcp_server"
openspace-download-skill = "openspace.cloud.cli.download_skill:main"
openspace-upload-skill = "openspace.cloud.cli.upload_skill:main"
openspace-dashboard = "openspace.dashboard_server:main"
[tool.setuptools]
packages = {find = {where = ["."], include = ["openspace*"]}}
[tool.setuptools.package-data]
openspace = [
"config/*.json",
"config/*.json.example",
"local_server/config.json",
"local_server/README.md",
]