Files

132 lines
2.8 KiB
Plaintext
Raw Permalink Normal View History

# Web Framework
# fastapi and starlette are pinned for reproducible builds; bump them together and
# run the API suite. fastapi only requires starlette>=0.46.0 (no upper bound).
# starlette must stay >=1.3.1: that release enforces the request.form() limits
# for urlencoded bodies (GHSA-82w8-qh3p-5jfq).
# (The earlier "fastapi 0.138.0 breaks error handling" note was the takeover
# tests' route-swap hack becoming live, not a framework regression; the hack is gone.)
fastapi==0.137.2
starlette==1.6.0
uvicorn
python-socketio
websockets
# Database
sqlalchemy
alembic
psycopg[binary]>=3.1.0
asyncpg
# Authentication & Security
python-jose[cryptography]
passlib[bcrypt]
bcrypt>=3.2.0,<4.0.0
python-multipart
# Environment & Config
python-dotenv
pydantic>=2.0.0
pydantic-settings>=2.0.0
# Utilities
email-validator
python-dateutil
requests
beautifulsoup4
# Testing
pytest
pytest-asyncio
pytest-cov==4.1.0
pytest-mock
coverage==7.4.1
# Sentiment Analysis
textblob
#ai
openai
agno==1.7.6
duckduckgo-search
pypdf
pgvector
google-generativeai
# Required by agno==1.7.6's Gemini model wrapper.
google-genai==1.75.0
google-cloud-aiplatform
ollama
anthropic
mistralai<2 # agno 1.7.6 uses the mistralai 1.x API (mistralai.models); 2.x breaks the import
#ocr
rapidocr-onnxruntime==1.4.4
onnxruntime==1.23.0
opencv-python==4.12.0.88
#pdf
pypdf
pytz
firebase_admin
beautifulsoup4
aiofiles
# help-center article rendering: FAQ answers are authored/stored as Markdown and
# rendered to sanitized HTML on the public page (markdown -> nh3 allowlist clean).
markdown
nh3
# help-center article import: crawled help pages are converted HTML -> Markdown
# (subclassed converter re-hosts images and absolutizes links inline).
markdownify
gunicorn
redis
aiohttp
bs4
boto3
groq
# Embeddings run on fastembed (ONNX); no torch/transformers stack is installed.
fastembed==0.7.3
# Shopify API
ShopifyAPI
# Razorpay payment gateway
razorpay
# Pinned below 2.0: mcp 2.0.0 (2026-07-28) dropped streamablehttp_client from
# mcp.client.streamable_http, which the pinned agno==1.7.6 imports at module
# scope. agno catches the failure and re-raises it as "`mcp` not installed",
# so an unpinned install breaks every import of app.main with a message that
# points at the wrong problem. Lift this together with the agno 2.x upgrade.
mcp<2
# UV tool runner for Python-based MCP servers
uv
# Web Crawling
httpx
# pyOpenSSL and cryptography move together: each pyOpenSSL release bounds the
# cryptography versions it accepts (26.4 needs >=49,<51).
pyOpenSSL==26.4.0
cryptography==50.0.1
# 0.7.x hard-required sentence-transformers (and with it torch); 0.9 dropped that.
crawl4ai>=0.9
# Help center (public SSR templates + custom-domain DNS verification)
jinja2
dnspython
sqlglot>=30.0
pymysql>=1.1
sshtunnel>=0.4.0
paramiko>=3.4,<4