anthropic>=0.40.0
openai>=1.30.0
httpx>=0.27.0
requests>=2.31.0
rich>=13.0.0
prompt_toolkit>=3.0.0
mempalace>=3.3.4
Flask>=3.1.3
sounddevice

# ── Voice input (optional — install whichever STT backend you prefer) ──────
# Recording backend (choose one):
#   pip install sounddevice        # cross-platform mic capture (recommended)
#   sudo apt install alsa-utils    # Linux arecord fallback
#   sudo apt install sox / brew install sox  # SoX rec fallback
#
# STT backend (choose one — listed in priority order):
#   pip install nvidia-riva-client # cloud whisper-large-v3 via NVCF gRPC
#                                  # set NVIDIA_API_KEY (optional DULUS_RIVA_SERVER /
#                                  # DULUS_RIVA_FUNCTION_ID overrides)
#   pip install faster-whisper     # local Whisper, fastest  (recommended offline)
#   pip install openai-whisper     # local Whisper, original
#   # or set OPENAI_API_KEY to use the OpenAI Whisper cloud API
#
# TTS backend (choose one — listed in priority order):
#   pip install edge-tts           # Microsoft Edge voices, fast & free (recommended)
#   pip install azure-cognitiveservices-speech  # Azure Speech Services
#   pip install nvidia-riva-client # NVIDIA Riva TTS
#   pip install gTTS               # Google Text-to-Speech
#   pip install pyttsx3            # offline system voices
#   sudo apt install python3-tk    # Required for the GUI on Linux/WSL
#
# numpy is needed by the local Whisper backends and the arecord RMS detector:
#   pip install numpy
#
# Model size can be overridden: export DULUS_WHISPER_MODEL=small

# ── Chat bubbles (optional — requires NerdFont in terminal) ───────────────
bubblewrap-cli>=1.0.0

# ── Desktop GUI (optional) ────────────────────────────────────────────────
customtkinter>=5.2.0
Pillow>=10.0.0
