Add NexusAI: universal MCP service (TTS/STT/image/video/music/web-search)

Monorepo-lite with shared @nexusai/core and @nexusai/mcp-server (stdio).
Provider-agnostic tools with explicit provider selection; NordRouter adapter
(media generate/poll/download, estimate, upload, models) and search via
perplexity/sonar. Local STT via faster-whisper uv sidecar. SQLite journal of
every generation for usage stats and future admin. 10 MCP tools.
This commit is contained in:
OpenCode
2026-08-17 17:06:47 +07:00
parent 82087be1b3
commit 02fc536e85
32 changed files with 3861 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# --- NordRouter ---
# API key from your NordRouter account (starts with sk-)
NORDROUTER_API_KEY=sk-your-key-here
NORDROUTER_BASE_URL=https://nordrouter.com
# --- NexusAI general ---
NEXUS_DEFAULT_PROVIDER=nordrouter
# Where generated media files and the SQLite journal are stored
NEXUS_MEDIA_DIR=./media-output
# Optional: custom SQLite path (defaults to <media dir>/nexus.sqlite)
# NEXUS_DB_PATH=./media-output/nexus.sqlite
# Max bytes for embedding image/audio directly in MCP results (default 10MB)
NEXUS_EMBED_MAX_BYTES=10485760
# Log level: debug | info | warn | error (logs go to stderr)
NEXUS_LOG_LEVEL=info
# --- Local STT (faster-whisper via uv sidecar) ---
# Launcher: "uv" (recommended, auto-installs deps) or a python interpreter path
NEXUS_STT_PYTHON=uv
# Whisper size (tiny|base|small|medium|large-v3) OR an absolute path to a
# pre-downloaded CTranslate2 model directory
NEXUS_STT_MODEL=small
NEXUS_STT_DEVICE=auto # auto | cpu | cuda
NEXUS_STT_COMPUTE=auto # auto | int8 | float16
# Offline mode: require a locally present model (no downloads)
# NEXUS_STT_LOCAL_ONLY=1
# Cache dir for downloaded models
# NEXUS_STT_DOWNLOAD_ROOT=./models
# Optional custom sidecar path
# NEXUS_STT_SIDECAR=/abs/path/to/sidecar/stt_server.py
# HuggingFace mirror (for restricted networks)
# HF_ENDPOINT=https://hf-mirror.com
# --- Proxy (optional) ---
# NEXUS_HTTP_PROXY=http://proxy:8080