9router/open-sse/handlers/embeddingProviders
omar-nahhas fe547f4dc0 feat(providers): self-hosted OpenAI-compatible STT, TTS and embedding providers
Add Self-hosted STT/TTS/Embedding providers that read baseUrl per connection
instead of a fixed registry endpoint, so 9Router can point at whisper.cpp,
faster-whisper, Kokoro-FastAPI, llama-server, vLLM, Infinity, and similar
OpenAI-compatible local servers.

Self-hosted Embedding refuses to run without a baseUrl rather than falling
back to api.openai.com like openaiCompatNode does, since that fallback would
silently send input text and the API key to OpenAI under a provider named
"Self-hosted". Also fixes embeddingsCore to catch adapter build errors as a
400 instead of letting them escape uncaught, and bounds the upstream fetch
with FETCH_CONNECT_TIMEOUT_MS to avoid hanging forever on a dead endpoint.

Self-hosted TTS treats a bare model value as the model rather than the voice,
since the generic OpenAI TTS convention (bare = voice) is backwards for a
provider where the model is the variable part.
2026-08-05 13:38:13 +07:00
..
_base.js Feat : Skills 2026-05-04 11:29:02 +07:00
gemini.js fix(embeddings): forward Gemini output dimensions (#1366) 2026-05-23 09:23:26 +07:00
index.js feat(providers): self-hosted OpenAI-compatible STT, TTS and embedding providers 2026-08-05 13:38:13 +07:00
openai.js refactor(open-sse): B1 consolidate media endpoint URLs into registry 2026-06-14 13:58:12 +07:00
openaiCompatNode.js Feat : Skills 2026-05-04 11:29:02 +07:00
selfhostedEmbedding.js feat(providers): self-hosted OpenAI-compatible STT, TTS and embedding providers 2026-08-05 13:38:13 +07:00