53 lines
1.5 KiB
TOML
53 lines
1.5 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "javis-slave"
|
|
version = "0.1.0"
|
|
description = "Touch-optimized satellite companion for Javis — local wake word, remote brain."
|
|
readme = "README.md"
|
|
requires-python = ">=3.10,<3.14"
|
|
license = { text = "MIT" }
|
|
dependencies = [
|
|
# Master API client
|
|
"httpx>=0.27",
|
|
# HTTP server for MCP control (plain uvicorn: no uvloop/httptools builds on small ARM boards)
|
|
"fastapi>=0.104",
|
|
"uvicorn>=0.24",
|
|
"pydantic>=2.0",
|
|
# Windows system control (volume, brightness, power) — Linux uses amixer/pactl,
|
|
# /sys/class/backlight and systemctl, no extra packages.
|
|
"pycaw>=20220226; sys_platform == 'win32'",
|
|
"screen-brightness-control>=0.20; sys_platform == 'win32'",
|
|
# Audio stack (vendored copy of javis.audio_io — standalone, no repo dependency)
|
|
"numpy>=1.24,<2.0",
|
|
"sounddevice>=0.4.6",
|
|
"soundfile>=0.12",
|
|
"scipy>=1.11",
|
|
"openwakeword>=0.6.0",
|
|
"onnxruntime>=1.17",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
# Touch UI (Surface / Pi with display). Not needed for `--headless`.
|
|
gui = [
|
|
"PySide6>=6.6",
|
|
"qasync>=0.27",
|
|
]
|
|
# Neural end-pointing. Pulls in PyTorch (~200 MB on aarch64); without it the
|
|
# engine falls back to an RMS energy gate automatically.
|
|
vad = [
|
|
"silero-vad>=5.1",
|
|
]
|
|
|
|
[project.scripts]
|
|
javis-slave = "javis_slave.__main__:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.ruff]
|
|
line-length = 110
|
|
target-version = "py310"
|