mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-09-10 18:22:20 +02:00
Building psycopg2 from source needs libpq-dev/pg_config, which isn't in the Docker image or most dev hosts, so pip install silently fails and Postgres users hit ModuleNotFoundError at import time.
59 lines
2.1 KiB
Plaintext
59 lines
2.1 KiB
Plaintext
fastapi
|
|
uvicorn
|
|
python-multipart
|
|
python-dotenv
|
|
httpx
|
|
httpcore>=1.0,<2.0
|
|
pydantic>=2.13.4
|
|
pydantic-settings>=2.14.1
|
|
SQLAlchemy
|
|
pypdf
|
|
beautifulsoup4
|
|
charset-normalizer
|
|
numpy
|
|
# Vector store + local embeddings for RAG, semantic memory, and tool
|
|
# selection. Used on core agent paths, so installed by default — the app
|
|
# still degrades to keyword fallback if they're ever missing.
|
|
# chromadb-client is the lightweight HTTP client (talks to a standalone
|
|
# ChromaDB service); fastembed runs local ONNX embeddings.
|
|
chromadb-client
|
|
fastembed
|
|
youtube-transcript-api
|
|
# Markdown rendering for research reports (src/visual_report.py).
|
|
# Imported at module-top so it's a hard core dep, not optional.
|
|
markdown
|
|
# HTML sanitizer for rendered research reports (src/visual_report.py). Report
|
|
# content is untrusted (LLM output over crawled pages) and report pages run
|
|
# under a relaxed CSP, so the rendered HTML is allowlist-sanitized.
|
|
nh3
|
|
# Calendar .ics import/export (routes/calendar_routes.py).
|
|
icalendar
|
|
# Recurrence rule expansion for calendar events (routes/calendar_routes.py).
|
|
# Imported directly as dateutil.rrule — make it explicit even though caldav
|
|
# pulls it in transitively.
|
|
python-dateutil
|
|
# CalDAV sync (src/caldav_sync.py). Handles PROPFIND discovery + REPORT
|
|
# fetch across Radicale, Nextcloud, Apple, Fastmail; we'd be reinventing
|
|
# the protocol without it.
|
|
caldav
|
|
cryptography
|
|
bcrypt
|
|
# Built-in servers use the v1 low-level Server decorator API. MCP SDK v2 is a
|
|
# breaking rewrite, so keep fresh installs on the maintained v1 line until the
|
|
# servers are migrated together.
|
|
mcp<2
|
|
pyotp
|
|
qrcode[pil]
|
|
croniter
|
|
pytest
|
|
pytest-asyncio
|
|
# starlette.testclient prefers httpx2 since Starlette 1.2.0 and warns on every
|
|
# TestClient import when only classic httpx is present. Runtime code keeps
|
|
# using `httpx` above; this is test-client only.
|
|
httpx2
|
|
# DATABASE_URL defaults to sqlite (core/database.py), but when pointed at an
|
|
# external Postgres, SQLAlchemy's postgresql dialect imports psycopg2 inside
|
|
# create_engine() and raises ModuleNotFoundError if missing. -binary avoids
|
|
# needing libpq-dev/pg_config on the host/image to compile it.
|
|
psycopg2-binary
|