web_read(url, max_chars=16000) — fetches a URL and extracts clean article text via trafilatura, stripping ads/nav/boilerplate. Returns markdown. session_read(date) — reads a full session log by YYYY-MM-DD date; lists available dates if the requested one is not found. http_fetch gains a max_chars param (default 8192, max 32768) so the cap is configurable instead of hardcoded. Tool count: 45 → 47. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
33 lines
892 B
Plaintext
33 lines
892 B
Plaintext
fastapi>=0.115.0
|
|
apscheduler>=3.10
|
|
uvicorn[standard]>=0.30.0
|
|
pydantic-settings>=2.0.0
|
|
python-dotenv>=1.0.0
|
|
|
|
# Orchestrator — Gemini API (native tool calling) + web search
|
|
google-genai>=1.0.0
|
|
ddgs>=0.1.0
|
|
|
|
# Google Chat webhook — JWT Bearer token verification
|
|
google-auth>=2.0.0
|
|
|
|
# Session auth — password hashing + JWT cookies
|
|
bcrypt>=4.0.0
|
|
PyJWT>=2.8.0
|
|
python-multipart>=0.0.9 # required by FastAPI for Form() data
|
|
|
|
# Async HTTP client — used for local OpenAI-compatible backend (Open WebUI / Ollama)
|
|
httpx>=0.27.0
|
|
|
|
# Web content extraction — strips ads/nav/boilerplate, returns clean article text
|
|
trafilatura>=1.6.0
|
|
|
|
# OpenAI-compatible client — tool calling for OpenRouter / LiteLLM / any OAI-compat host
|
|
openai>=1.0.0
|
|
|
|
# Web Push / VAPID — browser push notifications
|
|
pywebpush>=2.0.0
|
|
|
|
# anthropic SDK not needed — using claude CLI subprocess for auth
|
|
# anthropic>=0.40.0
|