diff --git a/cmd/gateway_providers.go b/cmd/gateway_providers.go index b8e9edd9..b174ef44 100644 --- a/cmd/gateway_providers.go +++ b/cmd/gateway_providers.go @@ -373,16 +373,6 @@ func registerProvidersFromDB(registry *providers.Registry, provStore store.Provi base = "https://ollama.com/v1" } registry.RegisterForTenant(p.TenantID, providers.NewOpenAIProvider(p.Name, p.APIKey, base, "llama3.3")) - case store.ProviderSuno: - // Suno is a media-only provider (music gen). Register as OpenAI-compat - // so credentialProvider interface works for API key/base extraction. - base := p.APIBase - if base == "" { - base = "https://api.sunoapi.org" - } - prov := providers.NewOpenAIProvider(p.Name, p.APIKey, base, "") - prov.WithProviderType(p.ProviderType) - registry.RegisterForTenant(p.TenantID, prov) case store.ProviderNovita: base := p.APIBase if base == "" { diff --git a/internal/http/openapi_spec.json b/internal/http/openapi_spec.json index 6da0c657..f1b7ce8c 100644 --- a/internal/http/openapi_spec.json +++ b/internal/http/openapi_spec.json @@ -933,7 +933,7 @@ "properties": { "name": { "type": "string", "description": "Unique provider slug" }, "display_name": { "type": "string" }, - "provider_type": { "type": "string", "enum": ["anthropic_native", "openai_compat", "gemini_native", "openrouter", "groq", "deepseek", "mistral", "xai", "minimax_native", "cohere", "perplexity", "dashscope", "bailian", "chatgpt_oauth", "claude_cli", "suno", "yescale", "zai", "zai_coding", "ollama", "ollama_cloud", "acp"] }, + "provider_type": { "type": "string", "enum": ["anthropic_native", "openai_compat", "gemini_native", "openrouter", "groq", "deepseek", "mistral", "xai", "minimax_native", "cohere", "perplexity", "dashscope", "bailian", "chatgpt_oauth", "claude_cli", "yescale", "zai", "zai_coding", "ollama", "ollama_cloud", "acp"] }, "api_base": { "type": "string" }, "api_key": { "type": "string" }, "enabled": { "type": "boolean", "default": true }, diff --git a/internal/http/provider_models.go b/internal/http/provider_models.go index 790aa001..1723050d 100644 --- a/internal/http/provider_models.go +++ b/internal/http/provider_models.go @@ -107,8 +107,6 @@ func (h *ProvidersHandler) handleListProviderModels(w http.ResponseWriter, r *ht models = dashScopeModels() case "minimax_native": models = minimaxModels() - case "suno": - models = sunoModels() default: // All other types use OpenAI-compatible /models endpoint apiBase := strings.TrimRight(h.resolveAPIBase(p), "/") diff --git a/internal/http/provider_models_catalog.go b/internal/http/provider_models_catalog.go index c658da24..57614795 100644 --- a/internal/http/provider_models_catalog.go +++ b/internal/http/provider_models_catalog.go @@ -63,15 +63,6 @@ func dashScopeModels() []ModelInfo { } } -// sunoModels returns a hardcoded list of Suno music generation models. -func sunoModels() []ModelInfo { - return []ModelInfo{ - {ID: "v4.5", Name: "Suno V4.5"}, - {ID: "v4", Name: "Suno V4"}, - {ID: "v3.5", Name: "Suno V3.5"}, - } -} - // claudeCLIModels returns the model aliases accepted by the Claude CLI. func claudeCLIModels() []ModelInfo { return []ModelInfo{ diff --git a/internal/store/provider_store.go b/internal/store/provider_store.go index 3513e3bb..c61da5dc 100644 --- a/internal/store/provider_store.go +++ b/internal/store/provider_store.go @@ -24,7 +24,6 @@ const ( ProviderBailian = "bailian" ProviderChatGPTOAuth = "chatgpt_oauth" ProviderClaudeCLI = "claude_cli" - ProviderSuno = "suno" ProviderYesScale = "yescale" ProviderZai = "zai" ProviderZaiCoding = "zai_coding" @@ -62,7 +61,6 @@ var ValidProviderTypes = map[string]bool{ ProviderBailian: true, ProviderChatGPTOAuth: true, ProviderClaudeCLI: true, - ProviderSuno: true, ProviderYesScale: true, ProviderZai: true, ProviderZaiCoding: true, @@ -181,7 +179,6 @@ var NoEmbeddingTypes = map[string]bool{ ProviderACP: true, ProviderClaudeCLI: true, ProviderChatGPTOAuth: true, - ProviderSuno: true, } // ProviderStore manages LLM providers. diff --git a/internal/tools/media_provider_chain.go b/internal/tools/media_provider_chain.go index a37c54c8..53583db5 100644 --- a/internal/tools/media_provider_chain.go +++ b/internal/tools/media_provider_chain.go @@ -304,7 +304,6 @@ var dbTypeToMediaType = map[string]string{ "dashscope": "dashscope", "bailian": "dashscope", "anthropic_native": "anthropic", - "suno": "suno", "byteplus": "byteplus", "byteplus_coding": "byteplus", } @@ -345,8 +344,6 @@ func providerTypeFromName(name string) string { return "openai" case name == "anthropic": return "anthropic" - case name == "suno" || strings.HasPrefix(name, "suno"): - return "suno" case name == "byteplus" || strings.HasPrefix(name, "byteplus"): return "byteplus" case name == "yescale": diff --git a/ui/web/src/pages/builtin-tools/media-provider-params-schema.ts b/ui/web/src/pages/builtin-tools/media-provider-params-schema.ts index 226be498..492c807d 100644 --- a/ui/web/src/pages/builtin-tools/media-provider-params-schema.ts +++ b/ui/web/src/pages/builtin-tools/media-provider-params-schema.ts @@ -112,26 +112,6 @@ export const MEDIA_PARAMS_SCHEMA: Record> = ], }, ], - suno: [ - { - key: "style", - label: "Style", - type: "text", - default: "", - description: "e.g. Pop, Classical, Jazz", - }, - { - key: "vocal_gender", - label: "Vocal Gender", - type: "select", - default: "", - options: [ - { value: "", label: "Any" }, - { value: "m", label: "Male" }, - { value: "f", label: "Female" }, - ], - }, - ], }, }; diff --git a/ui/web/src/pages/providers/provider-detail/provider-overview-helpers.ts b/ui/web/src/pages/providers/provider-detail/provider-overview-helpers.ts index 4e221705..8171fd0e 100644 --- a/ui/web/src/pages/providers/provider-detail/provider-overview-helpers.ts +++ b/ui/web/src/pages/providers/provider-detail/provider-overview-helpers.ts @@ -10,7 +10,6 @@ export const NO_EMBEDDING_TYPES = new Set([ "claude_cli", "acp", "chatgpt_oauth", - "suno", "anthropic_native", ]);