# Voice input tool - dependencies
#
# Stage 1 (formatter engine) runs on the Python standard library alone.
# These packages are needed from Stage 2 (record + STT + insert) onward.
# Double-click setup.bat (Windows) or _mac/setup.command (macOS) to install.
#
# PEP 508 environment markers (sys_platform) make pip skip OS-specific
# packages on the other OS automatically. On Windows, only the win32 lines
# are installed; on macOS, only the darwin lines are installed. Cross-OS
# packages have no marker.

# ---- Cross-OS (Windows + macOS) ------------------------------------------
faster-whisper>=1.0.0      # local speech-to-text (GPU 機 / 従来エンジン)
moonshine-voice>=0.1.5 ; sys_platform != "darwin"
                           # GPU 無し PC 向けエンジン(Moonshine 日本語, 2026-09-21)
                           # 初回起動時に約 117MB のモデルを自動取得。
                           # ライセンス: NOTICE_moonshine.txt を参照
                           # macOS は配布部品が「macOS 15 以降 + Apple Silicon」専用。
                           # ここに書くと他の Mac でセットアップ全体が止まるので、
                           # Mac では setup が別行で入れ、失敗しても Whisper で動かす
                           # (autotune.apply が自動で切替, 2026-09-23)。
sounddevice>=0.4.6         # microphone recording
numpy>=1.24                # audio buffer handling
pyperclip>=1.8.2           # clipboard access
jiwer>=3.0                 # CER calculation (used by the benchmark)
pystray>=0.19              # system tray icon (Aqua Voice-style menu)
Pillow>=10.0               # required by pystray to draw the icon
customtkinter>=5.2         # modern themed settings window (cream + yellow)

# ---- Windows only --------------------------------------------------------
# Global hotkey hook (keyboard library is Windows-friendly, requires admin
# on Linux, and does not run on macOS).
keyboard>=0.13.5 ; sys_platform == "win32"

# NOTE (2026-08-27, laptop branch):
# The NVIDIA CUDA wheels are NOT listed here. They moved to
# requirements-gpu.txt because they weigh about 1.5-2 GB and are never loaded
# on a machine without an NVIDIA GPU. Everything in THIS file runs on CPU
# alone, which autotune.py treats as a fully supported profile.
#
# On a machine that DOES have an NVIDIA GPU, add them afterwards:
#     .venv\Scripts\python.exe -m pip install -r requirements-gpu.txt
# (The main branch keeps them in this file, so the GPU desktop is unaffected.)

# ---- macOS only ----------------------------------------------------------
# Global hotkey + key listener (replaces the keyboard library on macOS).
pynput>=1.7.6 ; sys_platform == "darwin"

# AppKit.NSScreen for multi-monitor work-rect detection on macOS.
# pyobjc-framework-Cocoa pulls in Foundation and Quartz as dependencies.
pyobjc-framework-Cocoa>=10.0 ; sys_platform == "darwin"
