numpy>=1.24
scipy>=1.10
PyYAML>=6.0

[agent]
mcp<2,>=1.26
uvicorn>=0.30
starlette>=0.40
qrcode>=7.4
keyring>=24

[agent:sys_platform == "win32"]
uiautomation>=2.0.20

[all]
mediapipe>=0.10.14
opencv-python>=4.8
onnxruntime>=1.17
faster-whisper>=1.1
sounddevice>=0.4.6
pynput>=1.7.6
pyperclip>=1.8
pystray>=0.19
Pillow>=10
diskcache>=5.6.1
jinja2>=3.1
typing_extensions>=4.5
mcp<2,>=1.26
uvicorn>=0.30
starlette>=0.40
qrcode>=7.4
keyring>=24

[all:sys_platform == "win32"]
comtypes>=1.2
uiautomation>=2.0.20
winrt-runtime>=2.0
winrt-Windows.Foundation>=2.0
winrt-Windows.Foundation.Collections>=2.0
winrt-Windows.Devices.Enumeration>=2.0
winrt-Windows.Media>=2.0
winrt-Windows.Media.Capture>=2.0
winrt-Windows.Media.Capture.Frames>=2.0
winrt-Windows.Media.MediaProperties>=2.0
winrt-Windows.Graphics.Imaging>=2.0
winrt-Windows.Storage.Streams>=2.0

[cleanup]
llama-cpp-python>=0.3.2

[control]
pynput>=1.7.6
pyperclip>=1.8

[dev]
pytest>=7.4
pytest-cov>=4.1
ruff>=0.4
mypy>=1.8
types-PyYAML
diskcache>=5.6.1
jinja2>=3.1
typing_extensions>=4.5

[dev:sys_platform == "win32"]
comtypes>=1.2

[face]
mediapipe>=0.10.14
opencv-python>=4.8

[hands]
mediapipe>=0.10.14
opencv-python>=4.8
onnxruntime>=1.17

[parakeet]
nemo_toolkit[asr]>=2.0

[pointer]

[pointer:sys_platform == "win32"]
comtypes>=1.2

[train]
torch>=2.1
onnx>=1.15
onnxruntime>=1.17

[tray]
pystray>=0.19
Pillow>=10

[voice]
faster-whisper>=1.1
sounddevice>=0.4.6

[winrt]

[winrt:sys_platform == "win32"]
winrt-runtime>=2.0
winrt-Windows.Foundation>=2.0
winrt-Windows.Foundation.Collections>=2.0
winrt-Windows.Devices.Enumeration>=2.0
winrt-Windows.Media>=2.0
winrt-Windows.Media.Capture>=2.0
winrt-Windows.Media.Capture.Frames>=2.0
winrt-Windows.Media.MediaProperties>=2.0
winrt-Windows.Graphics.Imaging>=2.0
winrt-Windows.Storage.Streams>=2.0
