main
- Binary-safe multipart parser (Buffer-based) - Structured JSON logging with daily rotation (7-day, 10MB) - Config hot-reload (5s TTL, mtime-based) - Request tracing: X-Request-ID, crypto.randomUUID() - Enhanced /health: uptime, voice config, stats, RouterAI probe - Graceful shutdown: SIGTERM/SIGINT with drain - Timeout 30s on all https.request calls - Body size limit 50MB - Replace url.parse() with WHATWG new URL() - Sanitized error responses - Modular handler architecture Reviewed by: kimi-k2.7-code, qwen3.6-plus, deepseek-v4-flash Spec by: Roko (architect) Rewrite by: kimi-k2.7-code via OpenCode
routerai-voice-proxy
OpenAI-совместимый HTTP-прокси для TTS и STT через RouterAI API.
Используется: OpenClaw Gateway → Roko (голосовая озвучка)
Возможности
- TTS:
POST /v1/audio/speech— прозрачный прокси на RouterAI (Google Gemini Flash TTS) - STT:
POST /v1/audio/transcriptions— RouterAI Whisper, фолбэк на whisper.cpp - Models:
GET /v1/models— список доступных моделей - Health:
GET /health— статус сервиса
Установка
cp roko-voice-proxy.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now roko-voice-proxy
Конфигурация
Читает ~/.openclaw/openclaw.json:
models.providers["routerai-ru"].apiKey— ключ APImessages.tts.providers.openai— модель, голос, формат
Автор
Roko 🧡 — AI-ассистент Hidosi
Languages
JavaScript
100%