feat: add STT support, Gemini TTS, and expand usage tracking
- Speech-to-Text: full pipeline with sttCore handler, /v1/audio/transcriptions endpoint, sttConfig for OpenAI, Gemini, Groq, Deepgram, AssemblyAI, HuggingFace, NVIDIA Parakeet; new 9router-stt skill - Gemini TTS: add gemini provider with 30 prebuilt voices and TTS_PROVIDER_CONFIG - Usage: implement GLM (intl/cn) and MiniMax (intl/cn) quota fetchers; refactor Gemini CLI usage to use retrieveUserQuota with per-model buckets - Disabled models: lowdb-backed disabledModelsDb + /api/models/disabled route - Header search: reusable Zustand store (headerSearchStore) wired into Header - CLI tools: add Claude Cowork tool card and cowork-settings API - Providers: introduce mediaPriority sorting in getProvidersByKind, add Kimi K2.6, reorder hermes, drop qwen STT kind - UI: expand media-providers/[kind]/[id] page (+314), enhance OAuthModal, ModelSelectModal, ProviderTopology, ProxyPools, ProviderLimits - Assets: refresh provider PNGs (alicode, byteplus, cloudflare-ai, nvidia, ollama, vertex, volcengine-ark) and add aws-polly, fal-ai, jina-ai, recraft, runwayml, stability-ai, topaz, black-forest-labs
This commit is contained in:
@@ -114,6 +114,22 @@ export const CLI_TOOLS = {
|
||||
description: "OpenCode AI Terminal Assistant",
|
||||
configType: "custom",
|
||||
},
|
||||
cowork: {
|
||||
id: "cowork",
|
||||
name: "Claude Cowork",
|
||||
image: "/providers/claude.png",
|
||||
color: "#D97757",
|
||||
description: "Claude Desktop Cowork (third-party inference)",
|
||||
configType: "custom",
|
||||
},
|
||||
hermes: {
|
||||
id: "hermes",
|
||||
name: "Hermes Agent",
|
||||
image: "/providers/hermes.png",
|
||||
color: "#8B5CF6",
|
||||
description: "Nous Research self-improving AI agent",
|
||||
configType: "custom",
|
||||
},
|
||||
droid: {
|
||||
id: "droid",
|
||||
name: "Factory Droid",
|
||||
@@ -212,14 +228,6 @@ export const CLI_TOOLS = {
|
||||
}`,
|
||||
},
|
||||
},
|
||||
hermes: {
|
||||
id: "hermes",
|
||||
name: "Hermes Agent",
|
||||
image: "/providers/hermes.png",
|
||||
color: "#8B5CF6",
|
||||
description: "Nous Research self-improving AI agent",
|
||||
configType: "custom",
|
||||
},
|
||||
// HIDDEN: gemini-cli
|
||||
// "gemini-cli": {
|
||||
// id: "gemini-cli",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -39,6 +39,13 @@ export const SKILLS = [
|
||||
endpoint: "/v1/audio/speech",
|
||||
icon: "record_voice_over",
|
||||
},
|
||||
{
|
||||
id: "9router-stt",
|
||||
name: "Speech-to-Text",
|
||||
description: "Transcribe audio via OpenAI Whisper, Groq, Gemini, Deepgram, AssemblyAI…",
|
||||
endpoint: "/v1/audio/transcriptions",
|
||||
icon: "mic",
|
||||
},
|
||||
{
|
||||
id: "9router-embeddings",
|
||||
name: "Embeddings",
|
||||
|
||||
@@ -109,4 +109,14 @@ export const TTS_PROVIDER_CONFIG = {
|
||||
hasVoiceIdInput: true,
|
||||
voiceSource: "config",
|
||||
},
|
||||
"gemini": {
|
||||
hasLanguageDropdown: false,
|
||||
hasLanguageHint: true, // sends body.language to guide TTS pronunciation
|
||||
hasModelSelector: true,
|
||||
hasBrowseButton: false,
|
||||
voiceSource: "hardcoded",
|
||||
modelKey: "gemini-tts-models",
|
||||
voiceKey: "gemini-tts-voices",
|
||||
voicesPerModel: true,
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user