[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "chittios" version = "1.4.0" description = "ChittiOS — a local-first household companion for Reachy Mini" readme = "README.md" requires-python = ">=3.10" # This app shell composes ChittiOS Core (`chittios_core`) and the HAL (`hal`): # `chittios/chittios/main.py` builds the real engines and hands them to # `chittios_core.orchestrator.ChittiOS`. Those two packages live at the repo root # and are VENDORED into this app's wheel at publish time (copied under `chittios/` # so a single `reachy-mini-app` wheel is self-contained) rather than pulled from # PyPI — they are not published as standalone distributions. The publish/vendor # step is the caller's; it is deliberately not run here. Until it is, install this # app from the repo root where `chittios_core` and `hal` are importable. dependencies = [ # The Reachy Mini SDK (the daemon also pre-seeds it into apps_venv). "reachy-mini>=1.9", # ChittiOS Core's base runtime (numpy + cv2 at module scope, model fetch, # encrypted store). Vendored alongside this shell at publish. "numpy>=1.26", "opencv-python>=4.8", "huggingface-hub>=0.23", "cryptography>=42.0", "keyring>=24.0", # The voice experience, torch-free so it fits the Reachy Mini's 3.7 GB of RAM # and tight disk. Face recognition is base (cv2); voice *identification* # (ECAPA/speechbrain/torch, ~2 GB) is deliberately dropped here, and the VAD # runs off faster-whisper's bundled ONNX Silero on onnxruntime rather than the # torch-backed silero-vad package. What remains: resample, VAD+STT, TTS, the # LLM client, mic capture, and Argon2id onboarding custody — none pull torch. "scipy>=1.11", "sounddevice>=0.4", "faster-whisper>=1.0", # faster-whisper's VAD (and any other ONNX model this app loads) runs on the # ONNX Runtime; pinned here because the VAD is now a first-class dependency of # the perception path, not just an implementation detail of STT. "onnxruntime>=1.17", # Fast on-device STT: Moonshine via sherpa-onnx (prebuilt aarch64 wheel, runs # on the ONNX Runtime above). The primary transcriber on the CM4 — ~0.85 s a # turn vs faster-whisper's ~4.7 s; faster-whisper stays the fallback. See # chittios_core.conversation.stt.MoonshineStt. "sherpa-onnx>=1.10", # Acoustic wake-word detection ("hey Jarvis" today, a custom "hey Chitti" model # later). Runs on the ONNX Runtime above; ships its own wake, mel-spectrogram, # and embedding models, so no wake asset is bundled. See conversation.wake. "openwakeword>=0.4", "piper-tts>=1.2", "httpx>=0.27", "argon2-cffi>=23.1", ] keywords = ["reachy-mini-app"] [project.entry-points."reachy_mini_apps"] chittios = "chittios.main:Chittios" [tool.setuptools] package-dir = { "" = "." } include-package-data = true [tool.setuptools.packages.find] where = ["."] [tool.setuptools.package-data] chittios = ["**/*"] # Also include all non-.py files