[build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [project] name = "mohamind" version = "0.3.0" description = "MohaMind - Your personal AI agent that knows everything about you" readme = "README.md" requires-python = ">=3.12" dependencies = [ "openai>=1.30.0", "mcp>=1.0.0", "python-telegram-bot[all]>=21.0", "apscheduler>=3.10.0", "pydantic>=2.0", "pydantic-settings>=2.0", "python-dotenv>=1.0", "google-api-python-client>=2.100", "google-auth-httplib2>=0.1", "google-auth-oauthlib>=1.0", "msgraph-sdk>=1.0", "azure-identity>=1.15", "rich>=13.0", "pyfiglet>=1.0.2", "httpx>=0.27", "prompt-toolkit>=3.0.52", ] [project.optional-dependencies] voice = [ "faster-whisper>=1.2.1,<2", ] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "ruff>=0.3", ] # Optional: local sentence-transformer embeddings for semantic memory. # Enable with `uv sync --extra embeddings` then set EMBEDDING_BACKEND=local. embeddings = [ "sentence-transformers>=2.7", ] [project.scripts] mohamind = "moha_mind.main:run" [tool.ruff] line-length = 120 target-version = "py312" [tool.setuptools.packages.find] include = ["moha_mind*"] [tool.setuptools.package-data] "moha_mind.whatsapp_bot" = ["bridge/*.mjs", "bridge/package.json", "bridge/package-lock.json"] [tool.ruff.lint] select = ["E", "F", "I", "N", "W"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [dependency-groups] dev = [ "pytest>=9.0.3", "pytest-asyncio>=1.3.0", "pytest-cov>=7.1.0", "ruff>=0.15.9", ]