Files
moeka-project/packages
RainbowBird 6b0788dd60 feat(server): expose streaming TTS model catalog from config
Streaming TTS model list was hardcoded in the official provider with two
Volcengine ids. This moves it server-side so operators control the
catalog without a client release.

Catalog lives on `STREAMING_TTS_UPSTREAM.models` (same configKV entry as
the ws upstream + key envelope) rather than a separate kv key — connection
target, keys, and surfaced ids are one deployment decision, splitting
them risks drift on rotation. `LLM_ROUTER_CONFIG.tts.models` is the
router/fallback domain for HTTP TTS; streaming is single-ws and has no
router semantics, so it gets its own `streamingTtsUpstreamSchema`
instead of reusing `ttsUpstreamSchema`.

New `GET /api/v1/audio/models/streaming` returns the configured list;
empty when upstream or models is unset (UI renders "no models" instead
of 5xx). Admin slice apply preserves existing `models` across key/connection
rotation so admin POSTs that only carry upstream+keys do not wipe the
catalog. Frontend `providerOfficialSpeechStreaming.listModels` fetches
the endpoint and throws on upstream errors (no silent empty array).
2026-05-19 23:14:16 +08:00
..
2026-05-07 19:36:33 +08:00
2026-03-23 02:15:40 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00
2026-05-07 19:36:33 +08:00