[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "pyra" version = "0.1.0" description = "Personal AI assistant CLI with vault-first security" requires-python = ">=3.11" dependencies = [ "litellm>=1.40.0", "rich>=13.0.0", "click>=8.1.0", "prompt-toolkit>=3.0.0", "questionary>=2.0.0", "ruamel.yaml>=0.18.0", "pydantic>=2.0.0", "httpx>=0.27.0", "python-dotenv>=1.0.0", "textual>=1.0.0", ] [project.optional-dependencies] dev = [ "pytest>=8.0.0", "pytest-asyncio>=0.23.0", "ruff>=0.4.0", ] nextcloud = ["caldav>=1.3.0", "webdav4>=0.9.0", "vobject>=0.9.6"] matrix = ["matrix-nio>=0.24.0", "aiofiles>=23.0.0"] telegram = ["python-telegram-bot>=21.0"] ssh = ["paramiko>=3.4.0"] docker = ["docker>=7.0.0"] gdrive = ["google-api-python-client>=2.120.0", "google-auth-oauthlib>=1.2.0"] onedrive = ["msal>=1.28.0"] dropbox = ["dropbox>=12.0.0"] daemon = ["aiofiles>=23.0.0"] email = [ "imap-tools>=1.7.0", "google-api-python-client>=2.120.0", "google-auth-oauthlib>=1.2.0", "O365>=2.0.36", ] all-plugins = [ "caldav>=1.3.0", "webdav4>=0.9.0", "vobject>=0.9.6", "matrix-nio>=0.24.0", "aiofiles>=23.0.0", "python-telegram-bot>=21.0", "paramiko>=3.4.0", "docker>=7.0.0", "google-api-python-client>=2.120.0", "google-auth-oauthlib>=1.2.0", "msal>=1.28.0", "dropbox>=12.0.0", "imap-tools>=1.7.0", "O365>=2.0.36", ] [project.scripts] pyra = "pyra.cli:main" [tool.hatch.build.targets.wheel] packages = ["src/pyra"] [tool.ruff] line-length = 100 target-version = "py311" [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"]