From 23314e5f0f5f39e9e22002f4ef6c2abe8649fb33 Mon Sep 17 00:00:00 2001 From: WassimAkkacha Date: Wed, 18 Feb 2026 11:02:10 +0100 Subject: [PATCH] fix(sdk): rename together_ai provider to togetherai across stack --- api/oss/src/core/secrets/dtos.py | 11 +++++++---- api/oss/src/core/secrets/enums.py | 4 ++-- .../client/backend/types/custom_provider_kind.py | 2 +- .../client/backend/types/standard_provider_kind.py | 2 +- sdk/agenta/sdk/assets.py | 2 +- sdk/agenta/sdk/workflows/runners/daytona.py | 3 +-- web/oss/src/components/SelectLLMProvider/index.tsx | 2 +- web/oss/src/lib/Types.ts | 4 ++-- web/oss/src/lib/helpers/llmProviders.ts | 2 +- .../agenta-ui/src/SelectLLMProvider/README.md | 2 +- web/packages/agenta-ui/src/SelectLLMProvider/utils.ts | 2 +- 11 files changed, 19 insertions(+), 17 deletions(-) mode change 100644 => 100755 sdk/agenta/sdk/workflows/runners/daytona.py diff --git a/api/oss/src/core/secrets/dtos.py b/api/oss/src/core/secrets/dtos.py index 86825cb1fd..337754aa4e 100644 --- a/api/oss/src/core/secrets/dtos.py +++ b/api/oss/src/core/secrets/dtos.py @@ -72,6 +72,10 @@ def validate_secret_data_based_on_kind(cls, values: Dict[str, Any]): values["data"] = data if kind == SecretKind.PROVIDER_KEY.value: + # Fix inconsistent API naming - normalize 'together_ai' to 'togetherai' + if data.get("kind", "") == "together_ai": + data["kind"] = "togetherai" + if not isinstance(data, dict): raise ValueError( "The provided request secret dto is not a valid type for StandardProviderDTO" @@ -86,10 +90,9 @@ def validate_secret_data_based_on_kind(cls, values: Dict[str, Any]): ) elif kind == SecretKind.CUSTOM_PROVIDER.value: - # Fix inconsistent API naming - Users might enter 'togetherai' but the API requires 'together_ai' - # This ensures compatibility with LiteLLM which requires the provider in "together_ai" format - if data.get("kind", "") == "togetherai": - data["kind"] = "together_ai" + # Fix inconsistent API naming - normalize 'together_ai' to 'togetherai' + if data.get("kind", "") == "together_ai": + data["kind"] = "togetherai" if not isinstance(data, dict): raise ValueError( diff --git a/api/oss/src/core/secrets/enums.py b/api/oss/src/core/secrets/enums.py index 695260ffa2..b7ccbc7589 100644 --- a/api/oss/src/core/secrets/enums.py +++ b/api/oss/src/core/secrets/enums.py @@ -18,7 +18,7 @@ class StandardProviderKind(str, Enum): MISTRALAI = "mistralai" ANTHROPIC = "anthropic" PERPLEXITYAI = "perplexityai" - TOGETHERAI = "together_ai" + TOGETHERAI = "togetherai" OPENROUTER = "openrouter" GEMINI = "gemini" @@ -39,6 +39,6 @@ class CustomProviderKind(str, Enum): MISTRALAI = "mistralai" ANTHROPIC = "anthropic" PERPLEXITYAI = "perplexityai" - TOGETHERAI = "together_ai" + TOGETHERAI = "togetherai" OPENROUTER = "openrouter" GEMINI = "gemini" diff --git a/sdk/agenta/client/backend/types/custom_provider_kind.py b/sdk/agenta/client/backend/types/custom_provider_kind.py index fad7977f44..1ffcb5844b 100644 --- a/sdk/agenta/client/backend/types/custom_provider_kind.py +++ b/sdk/agenta/client/backend/types/custom_provider_kind.py @@ -19,7 +19,7 @@ "mistralai", "anthropic", "perplexityai", - "together_ai", + "togetherai", "openrouter", "gemini", ], diff --git a/sdk/agenta/client/backend/types/standard_provider_kind.py b/sdk/agenta/client/backend/types/standard_provider_kind.py index f81ede81ca..f28210b829 100644 --- a/sdk/agenta/client/backend/types/standard_provider_kind.py +++ b/sdk/agenta/client/backend/types/standard_provider_kind.py @@ -14,7 +14,7 @@ "mistralai", "anthropic", "perplexityai", - "together_ai", + "togetherai", "openrouter", "gemini", ], diff --git a/sdk/agenta/sdk/assets.py b/sdk/agenta/sdk/assets.py index f856be60a7..5daab21133 100644 --- a/sdk/agenta/sdk/assets.py +++ b/sdk/agenta/sdk/assets.py @@ -169,7 +169,7 @@ "perplexity/sonar-reasoning", "perplexity/sonar-reasoning-pro", ], - "together_ai": [ + "togetherai": [ "together_ai/deepseek-ai/DeepSeek-R1", "together_ai/deepseek-ai/DeepSeek-R1-Distill-Llama-70B", "together_ai/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B", diff --git a/sdk/agenta/sdk/workflows/runners/daytona.py b/sdk/agenta/sdk/workflows/runners/daytona.py old mode 100644 new mode 100755 index 8094d5ae3b..802e251fc5 --- a/sdk/agenta/sdk/workflows/runners/daytona.py +++ b/sdk/agenta/sdk/workflows/runners/daytona.py @@ -131,8 +131,7 @@ def _get_provider_env_vars(self) -> Dict[str, str]: "mistralai": "MISTRALAI_API_KEY", "anthropic": "ANTHROPIC_API_KEY", "perplexityai": "PERPLEXITYAI_API_KEY", - # Secret kind is "together_ai" (underscore) even though the env var is TOGETHERAI_API_KEY - "together_ai": "TOGETHERAI_API_KEY", + "togetherai": "TOGETHERAI_API_KEY", "openrouter": "OPENROUTER_API_KEY", "gemini": "GEMINI_API_KEY", } diff --git a/web/oss/src/components/SelectLLMProvider/index.tsx b/web/oss/src/components/SelectLLMProvider/index.tsx index f1717ea485..34a22200e9 100644 --- a/web/oss/src/components/SelectLLMProvider/index.tsx +++ b/web/oss/src/components/SelectLLMProvider/index.tsx @@ -44,7 +44,7 @@ const PROVIDER_ICON_MAP: Record = { deepinfra: "DeepInfra", openrouter: "OpenRouter", perplexityai: "Perplexity AI", - together_ai: "Together AI", + togetherai: "Together AI", vertex_ai: "Google Vertex AI", bedrock: "AWS Bedrock", azure: "Azure OpenAI", diff --git a/web/oss/src/lib/Types.ts b/web/oss/src/lib/Types.ts index 74f6f31a51..3640d9c813 100644 --- a/web/oss/src/lib/Types.ts +++ b/web/oss/src/lib/Types.ts @@ -451,7 +451,7 @@ export enum SecretDTOProvider { MISTRALAI = "mistralai", ANTHROPIC = "anthropic", PERPLEXITYAI = "perplexityai", - TOGETHERAI = "together_ai", + TOGETHERAI = "togetherai", OPENROUTER = "openrouter", GEMINI = "gemini", } @@ -467,7 +467,7 @@ export const PROVIDER_LABELS: Record = { mistralai: "Mistral AI", anthropic: "Anthropic", perplexityai: "Perplexity AI", - together_ai: "Together AI", + togetherai: "Together AI", openrouter: "OpenRouter", gemini: "Google Gemini", vertex_ai: "Google Vertex AI", diff --git a/web/oss/src/lib/helpers/llmProviders.ts b/web/oss/src/lib/helpers/llmProviders.ts index 84c7817ce1..f49d1d0df9 100644 --- a/web/oss/src/lib/helpers/llmProviders.ts +++ b/web/oss/src/lib/helpers/llmProviders.ts @@ -44,7 +44,7 @@ export const transformSecret = (secrets: CustomSecretDTO[] | StandardSecretDTO[] mistralai: "MISTRALAI_API_KEY", anthropic: "ANTHROPIC_API_KEY", perplexityai: "PERPLEXITYAI_API_KEY", - together_ai: "TOGETHERAI_API_KEY", + togetherai: "TOGETHERAI_API_KEY", openrouter: "OPENROUTER_API_KEY", gemini: "GEMINI_API_KEY", } diff --git a/web/packages/agenta-ui/src/SelectLLMProvider/README.md b/web/packages/agenta-ui/src/SelectLLMProvider/README.md index 0290cb8b63..db5ef73bcb 100644 --- a/web/packages/agenta-ui/src/SelectLLMProvider/README.md +++ b/web/packages/agenta-ui/src/SelectLLMProvider/README.md @@ -160,7 +160,7 @@ if (Icon) return Get the display name for a provider key. ```typescript -getProviderDisplayName('together_ai') // "Together AI" +getProviderDisplayName('togetherai') // "Together AI" ``` #### `PROVIDER_ICON_MAP` diff --git a/web/packages/agenta-ui/src/SelectLLMProvider/utils.ts b/web/packages/agenta-ui/src/SelectLLMProvider/utils.ts index a5c62eee97..549e9bc491 100644 --- a/web/packages/agenta-ui/src/SelectLLMProvider/utils.ts +++ b/web/packages/agenta-ui/src/SelectLLMProvider/utils.ts @@ -24,7 +24,7 @@ export const PROVIDER_ICON_MAP: Record = { deepinfra: "DeepInfra", openrouter: "OpenRouter", perplexity: "Perplexity AI", - together_ai: "Together AI", + togetherai: "Together AI", vertex_ai: "Google Vertex AI", bedrock: "AWS Bedrock", azure: "Azure OpenAI",