diff --git a/core/changelog.md b/core/changelog.md index 6a0da68fc..cb90dfe8a 100644 --- a/core/changelog.md +++ b/core/changelog.md @@ -1,3 +1,7 @@ -- feat(providers): added HuggingFace provider using Inference Provider API, support for chat(with stream also), response(with stream also), TTS and speech synthesis -- fix(mcp): ensure properties field is always set for tools - [@CryptoFewka](https://github.com/CryptoFewka) -- fix(perplexity): correct search_domain_filter json tag - [@hnoguchigr](https://github.com/hnoguchigr) \ No newline at end of file +- fix: ensure properties field is always set for mcp tools - [@CryptoFewka](https://github.com/CryptoFewka) +- fix: correct search_domain_filter json tag in perplexity provider - [@hnoguchigr](https://github.com/hnoguchigr) +- feat: added HuggingFace provider +- fix: bedrock empty ARN issue causing request to fail +- fix: anthropic single context block in response converted to string instead for chat completions +- fix: added auth support in HTTP proxies +- feat: added custom CA certificate support in proxies \ No newline at end of file diff --git a/core/providers/anthropic/chat.go b/core/providers/anthropic/chat.go index b0a19cdd2..4a251366b 100644 --- a/core/providers/anthropic/chat.go +++ b/core/providers/anthropic/chat.go @@ -365,6 +365,11 @@ func (response *AnthropicMessageResponse) ToBifrostChatResponse() *schemas.Bifro } } + if len(contentBlocks) == 1 && contentBlocks[0].Type == schemas.ChatContentBlockTypeText { + contentStr = contentBlocks[0].Text + contentBlocks = nil + } + // Create a single choice with the collected content // Create message content messageContent := schemas.ChatMessageContent{ diff --git a/core/providers/bedrock/bedrock.go b/core/providers/bedrock/bedrock.go index c074c1c65..68259a6e4 100644 --- a/core/providers/bedrock/bedrock.go +++ b/core/providers/bedrock/bedrock.go @@ -2736,7 +2736,7 @@ func (provider *BedrockProvider) getModelPath(basePath string, model string, key // Default: use model/deployment directly path := fmt.Sprintf("%s/%s", deployment, basePath) // If ARN is present, Bedrock expects the ARN-scoped identifier - if key.BedrockKeyConfig != nil && key.BedrockKeyConfig.ARN != nil { + if key.BedrockKeyConfig != nil && key.BedrockKeyConfig.ARN != nil && *key.BedrockKeyConfig.ARN != "" { encodedModelIdentifier := url.PathEscape(fmt.Sprintf("%s/%s", *key.BedrockKeyConfig.ARN, deployment)) path = fmt.Sprintf("%s/%s", encodedModelIdentifier, basePath) } diff --git a/core/providers/bedrock/chat.go b/core/providers/bedrock/chat.go index c279a694b..326de66af 100644 --- a/core/providers/bedrock/chat.go +++ b/core/providers/bedrock/chat.go @@ -128,6 +128,11 @@ func (response *BedrockConverseResponse) ToBifrostChatResponse(ctx context.Conte } } + if len(contentBlocks) == 1 && contentBlocks[0].Type == schemas.ChatContentBlockTypeText { + contentStr = contentBlocks[0].Text + contentBlocks = nil + } + // Create the message content messageContent := schemas.ChatMessageContent{ ContentStr: contentStr, diff --git a/core/providers/gemini/chat.go b/core/providers/gemini/chat.go index 458e1b67e..b928032ba 100644 --- a/core/providers/gemini/chat.go +++ b/core/providers/gemini/chat.go @@ -79,6 +79,7 @@ func (response *GenerateContentResponse) ToBifrostChatResponse() *schemas.Bifros var toolCalls []schemas.ChatAssistantMessageToolCall var contentBlocks []schemas.ChatContentBlock var reasoningDetails []schemas.ChatReasoningDetails + var contentStr *string // Process candidates to extract text content if len(response.Candidates) > 0 { @@ -145,10 +146,14 @@ func (response *GenerateContentResponse) ToBifrostChatResponse() *schemas.Bifros Role: schemas.ChatMessageRoleAssistant, } - if len(contentBlocks) > 0 { - message.Content = &schemas.ChatMessageContent{ - ContentBlocks: contentBlocks, - } + if len(contentBlocks) == 1 && contentBlocks[0].Type == schemas.ChatContentBlockTypeText { + contentStr = contentBlocks[0].Text + contentBlocks = nil + } + + message.Content = &schemas.ChatMessageContent{ + ContentStr: contentStr, + ContentBlocks: contentBlocks, } if len(toolCalls) > 0 || len(reasoningDetails) > 0 { diff --git a/core/version b/core/version index 84da4213b..8bd7d689a 100644 --- a/core/version +++ b/core/version @@ -1 +1 @@ -1.2.39 \ No newline at end of file +1.2.40 \ No newline at end of file diff --git a/docs/docs.json b/docs/docs.json index 162a3e706..13ca50530 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -71,7 +71,16 @@ ] }, { - "group": "Provider Integrations", + "group": "Providers", + "icon": "solar-system", + "pages": [ + "providers/supported-providers", + "providers/huggingface", + "providers/custom-providers" + ] + }, + { + "group": "SDK Integrations", "icon": "plug", "pages": [ "integrations/what-is-an-integration", @@ -155,15 +164,6 @@ }, "features/telemetry", "features/semantic-caching", - { - "group": "Providers", - "icon": "toolbox", - "pages": [ - "features/providers/supported-providers", - "features/providers/custom-providers", - "features/providers/huggingface" - ] - }, { "group": "Plugins", "icon": "puzzle-piece", diff --git a/docs/features/providers/custom-providers.mdx b/docs/providers/custom-providers.mdx similarity index 99% rename from docs/features/providers/custom-providers.mdx rename to docs/providers/custom-providers.mdx index 7504db409..8d9257fbb 100644 --- a/docs/features/providers/custom-providers.mdx +++ b/docs/providers/custom-providers.mdx @@ -1,7 +1,7 @@ --- title: "Custom Providers" description: "Create custom provider configurations with specific request type restrictions, custom naming, and controlled access patterns." -icon: "gears" +icon: "gear" --- ## What Are Custom Providers? diff --git a/docs/features/providers/huggingface.mdx b/docs/providers/huggingface.mdx similarity index 87% rename from docs/features/providers/huggingface.mdx rename to docs/providers/huggingface.mdx index 43b79accb..370243788 100644 --- a/docs/features/providers/huggingface.mdx +++ b/docs/providers/huggingface.mdx @@ -1,10 +1,9 @@ --- -title: "Hugging Face Provider Implementation Details" +title: "Hugging Face" description: "Detailed guide on Hugging Face provider implementation specifics, including model aliases and unique request handling." +icon: "face-smiling-hands" --- -# HuggingFace Implementation - The Hugging Face provider in Bifrost (`core/providers/huggingface`) implements a complex integration that supports multiple inference providers (like `hf-inference`, `fal-ai`, `cerebras`, `sambanova`, etc.) through a unified interface. ## Overview @@ -15,6 +14,35 @@ The Hugging Face provider implements custom logic for: - **Heterogeneous request formats**: Supports JSON, raw binary, and base64-encoded payloads - **Provider-specific constraints**: Handles varying payload limits and format restrictions +## Supported Inference Providers + +The Hugging Face provider supports routing to 20+ inference backends. Below is the current list of supported providers and their capabilities (as of December 2025): + +| Provider | Chat | Embedding | Speech (TTS) | Transcription (ASR) | +|----------|------|-----------|--------------|---------------------| +| `hf-inference` | ✅ | ✅ | ❌ | ✅ | +| `cerebras` | ✅ | ❌ | ❌ | ❌ | +| `cohere` | ✅ | ❌ | ❌ | ❌ | +| `fal-ai` | ❌ | ❌ | ✅ | ✅ | +| `featherless-ai` | ✅ | ❌ | ❌ | ❌ | +| `fireworks` | ✅ | ❌ | ❌ | ❌ | +| `groq` | ✅ | ❌ | ❌ | ❌ | +| `hyperbolic` | ✅ | ❌ | ❌ | ❌ | +| `nebius` | ✅ | ✅ | ❌ | ❌ | +| `novita` | ✅ | ❌ | ❌ | ❌ | +| `nscale` | ✅ | ❌ | ❌ | ❌ | +| `ovhcloud-ai-endpoints` | ✅ | ❌ | ❌ | ❌ | +| `public-ai` | ✅ | ❌ | ❌ | ❌ | +| `replicate` | ❌ | ❌ | ✅ | ✅ | +| `sambanova` | ✅ | ✅ | ❌ | ❌ | +| `scaleway` | ✅ | ✅ | ❌ | ❌ | +| `together` | ✅ | ❌ | ❌ | ❌ | +| `z-ai` | ✅ | ❌ | ❌ | ❌ | + +Provider capabilities may change over time. For the most up-to-date information, refer to the [Hugging Face Inference Providers documentation](https://huggingface.co/docs/inference-providers/en/index#partners). Also checkmarks (✅) indicate capabilities supported by the inference provider itself. + +All Chat-supported models automatically support Responses(`v1/responses`) as well via Bifrost's internal conversion logic. + ## Model Aliases & Identification Unlike standard providers where model IDs are direct strings (e.g., `gpt-4`), Hugging Face models in Bifrost are identified by a composite key to route requests to the correct inference backend. @@ -169,33 +197,6 @@ This multi-mode approach allows the provider to support diverse API contracts wi This flexibility allows the provider to support diverse API contracts within a single implementation structure. -Supported Inference Providers - -The Hugging Face provider supports routing to 20+ inference backends. Below is the current list of supported providers and their capabilities (as of December 2025): - -| Provider | Chat | Embedding | Speech (TTS) | Transcription (ASR) | Notes | -|----------|------|-----------|--------------|---------------------|-------| -| `hf-inference` | ✅ | ✅ | ❌ | ✅ | Standard HF inference | -| `cerebras` | ✅ | ❌ | ❌ | ❌ | Chat only | -| `cohere` | ✅ | ❌ | ❌ | ❌ | Chat only | -| `fal-ai` | ❌ | ❌ | ✅ | ✅ | MP3 only for audio, base64 Data URI | -| `featherless-ai` | ✅ | ❌ | ❌ | ❌ | Chat only | -| `fireworks` | ✅ | ❌ | ❌ | ❌ | Chat only | -| `groq` | ✅ | ❌ | ❌ | ❌ | Chat only | -| `hyperbolic` | ✅ | ❌ | ❌ | ❌ | Chat only | -| `nebius` | ✅ | ✅ | ❌ | ❌ | Chat and embedding | -| `novita` | ✅ | ❌ | ❌ | ❌ | Chat only | -| `nscale` | ✅ | ❌ | ❌ | ❌ | Chat only | -| `ovhcloud-ai-endpoints` | ✅ | ❌ | ❌ | ❌ | Chat only | -| `public-ai` | ✅ | ❌ | ❌ | ❌ | Chat-only | -| `replicate` | ❌ | ❌ | ✅ | ✅ | Currently we do not support Speech and Transcription on it| -| `sambanova` | ✅ | ✅ | ❌ | ❌ | Chat and embedding | -| `scaleway` | ✅ | ✅ | ❌ | ❌ | Chat and embedding | -| `together` | ✅ | ❌ | ❌ | ❌ | Chat only | -| `z-ai` | ✅ | ❌ | ❌ | ❌ | Chat only | - -**Note**: Provider capabilities may change over time. For the most up-to-date information, refer to the [Hugging Face Inference Providers documentation](https://huggingface.co/docs/inference-providers/en/index#partners). Also checkmarks (✅) indicate capabilities supported by the inference provider itself. The notes column clarifies Bifrost's current implementation status where there are gaps. - ## Model Discovery & Caching The provider implements sophisticated model discovery using the Hugging Face Hub API: diff --git a/docs/features/providers/supported-providers.mdx b/docs/providers/supported-providers.mdx similarity index 94% rename from docs/features/providers/supported-providers.mdx rename to docs/providers/supported-providers.mdx index 05ad25081..30be4c28c 100644 --- a/docs/features/providers/supported-providers.mdx +++ b/docs/providers/supported-providers.mdx @@ -1,14 +1,61 @@ --- title: "Supported Providers" description: "Bifrost supports multiple AI providers with consistent OpenAI-compatible response formats, enabling seamless provider switching without code changes." -icon: "layer-group" +icon: "bars-progress" --- ## Overview Bifrost supports a wide range of AI providers, all accessible through a consistent OpenAI-compatible interface. This standardization allows you to switch between providers without modifying your application code, as all responses follow the same structure regardless of the underlying provider. -Bifrost can also act as a provider-compatible gateway (for example, Anthropic, Google Gemini/GenAI, LiteLLM, and others), exposing provider-specific endpoints so you can use existing provider SDKs or integrations with no code changes — see [What is an integration?](../../integrations/what-is-an-integration) for details. +Bifrost can also act as a provider-compatible gateway (for example, [Anthropic](../../integrations/anthropic-sdk/overview), [Google Gemini](../../integrations/genai-sdk/overview), Cohere, [Bedrock](../../integrations/bedrock-sdk/overview), and others), exposing provider-specific endpoints so you can use existing provider SDKs or integrations with no code changes, see [What is an integration?](../../integrations/what-is-an-integration) for details. + + +## Provider Support Matrix + +The following table summarizes which operations are supported by each provider via Bifrost’s unified interface. + +| Provider | Models | Text | Text (stream) | Chat | Chat (stream) | Responses | Responses (stream) | Embeddings | TTS | TTS (stream) | STT | STT (stream) | Files | Batch | +|----------|--------|------|----------------|------|---------------|-----------|--------------------|------------|-----|-------------|-----|--------------|-------|-------| +| Anthropic (`anthropic/`) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | +| Azure (`azure/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| Bedrock (`bedrock/`) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | +| Cerebras (`cerebras/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| Cohere (`cohere/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| Elevenlabs (`elevenlabs/`) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| Gemini (`gemini/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Groq (`groq/`) | ✅ | 🟡 | 🟡 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| Hugging Face (`huggingface/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| Mistral (`mistral/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | +| Nebius (`nebius/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |❌ | ❌ | +| Ollama (`ollama/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| OpenAI (`openai/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| OpenRouter (`openrouter/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| Parasail (`parasail/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| Perplexity (`perplexity/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| SGL (`sgl/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| Vertex AI (`vertex/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | + +- 🟡 Not supported by the downstream provider, but internally implemented by Bifrost as a fallback. +- ❌ Not supported by the downstream provider, hence not supported by Bifrost. +- ✅ Fully supported by the downstream provider, or internally implemented by Bifrost. + + + +Some operations are not supported by the downstream provider, and their internal implementation in Bifrost is optional. 🟡 +Like Text completions are not supported by Groq, but Bifrost can emulate them internally using the Chat Completions API. This feature is disabled by default, but it can be enabled by setting the `enable_litellm_fallbacks` flag to `true` in the client configuration. +We do not promote using such fallbacks, since text completions and chat completions are fundamentally different. However, this option is available to help users migrating from LiteLLM (which does support these fallbacks). + + + +Notes: +- "Models" refers to the list models operation (`/v1/models`). +- "Text" refers to the classic text completion interface (`/v1/completions`). +- "Responses" refers to the OpenAI-style Responses API (`/v1/responses`). Non-OpenAI providers map this to their native chat API under the hood. +- TTS corresponds to `/v1/audio/speech` and STT to `/v1/audio/transcriptions`. +- "Files" refers to the Files API operations (`/v1/files`) for uploading, listing, retrieving, and deleting files. +- "Batch" refers to the Batch API operations (`/v1/batches`) for creating, listing, retrieving, canceling, and getting results of batch jobs. + ## Response Format @@ -81,51 +128,6 @@ response, err := client.ChatCompletionRequest(ctx, &schemas.BifrostChatRequest{ -## Provider Support Matrix - -The following table summarizes which operations are supported by each provider via Bifrost’s unified interface. - -| Provider | Models | Text | Text (stream) | Chat | Chat (stream) | Responses | Responses (stream) | Embeddings | TTS | TTS (stream) | STT | STT (stream) | Files | Batch | -|----------|--------|------|----------------|------|---------------|-----------|--------------------|------------|-----|-------------|-----|--------------|-------|-------| -| Anthropic (`anthropic/`) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | -| Azure (`azure/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| Bedrock (`bedrock/`) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | -| Cerebras (`cerebras/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| Cohere (`cohere/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| Elevenlabs (`elevenlabs/`) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | -| Gemini (`gemini/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| Groq (`groq/`) | ✅ | 🟡 | 🟡 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| Hugging Face (`huggingface/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | -| Mistral (`mistral/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | -| Nebius (`nebius/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |❌ | ❌ | -| Ollama (`ollama/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| OpenAI (`openai/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| OpenRouter (`openrouter/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| Parasail (`parasail/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| Perplexity (`perplexity/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| SGL (`sgl/`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| Vertex AI (`vertex/`) | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | - -- 🟡 Not supported by the downstream provider, but internally implemented by Bifrost as a fallback. -- ❌ Not supported by the downstream provider, hence not supported by Bifrost. -- ✅ Fully supported by the downstream provider, or internally implemented by Bifrost. - - - -Some operations are not supported by the downstream provider, and their internal implementation in Bifrost is optional. 🟡 -Like Text completions are not supported by Groq, but Bifrost can emulate them internally using the Chat Completions API. This feature is disabled by default, but it can be enabled by setting the `enable_litellm_fallbacks` flag to `true` in the client configuration. -We do not promote using such fallbacks, since text completions and chat completions are fundamentally different. However, this option is available to help users migrating from LiteLLM (which does support these fallbacks). - - - -Notes: -- "Models" refers to the list models operation (`/v1/models`). -- "Text" refers to the classic text completion interface (`/v1/completions`). -- "Responses" refers to the OpenAI-style Responses API (`/v1/responses`). Non-OpenAI providers map this to their native chat API under the hood. -- TTS corresponds to `/v1/audio/speech` and STT to `/v1/audio/transcriptions`. -- "Files" refers to the Files API operations (`/v1/files`) for uploading, listing, retrieving, and deleting files. -- "Batch" refers to the Batch API operations (`/v1/batches`) for creating, listing, retrieving, canceling, and getting results of batch jobs. - ## Custom Providers In addition to the built-in providers, Bifrost supports custom provider configurations. Custom providers allow you to create multiple instances of the same base provider with different configurations, request type restrictions, and access patterns. This is useful for environment-specific configurations, role-based access control, and feature testing. diff --git a/framework/changelog.md b/framework/changelog.md index e69de29bb..5601830c9 100644 --- a/framework/changelog.md +++ b/framework/changelog.md @@ -0,0 +1 @@ +- chore: bump core to 1.2.40 \ No newline at end of file diff --git a/framework/version b/framework/version index b1471d3a9..472b58138 100644 --- a/framework/version +++ b/framework/version @@ -1 +1 @@ -1.1.49 \ No newline at end of file +1.1.50 \ No newline at end of file diff --git a/plugins/governance/changelog.md b/plugins/governance/changelog.md index e69de29bb..5463ba150 100644 --- a/plugins/governance/changelog.md +++ b/plugins/governance/changelog.md @@ -0,0 +1 @@ +- chore: bump core to 1.2.40 and framework to 1.1.50 \ No newline at end of file diff --git a/plugins/governance/version b/plugins/governance/version index 16e50f0b4..158acacf2 100644 --- a/plugins/governance/version +++ b/plugins/governance/version @@ -1 +1 @@ -1.3.50 \ No newline at end of file +1.3.51 \ No newline at end of file diff --git a/plugins/jsonparser/changelog.md b/plugins/jsonparser/changelog.md index e69de29bb..5463ba150 100644 --- a/plugins/jsonparser/changelog.md +++ b/plugins/jsonparser/changelog.md @@ -0,0 +1 @@ +- chore: bump core to 1.2.40 and framework to 1.1.50 \ No newline at end of file diff --git a/plugins/jsonparser/version b/plugins/jsonparser/version index 16e50f0b4..158acacf2 100644 --- a/plugins/jsonparser/version +++ b/plugins/jsonparser/version @@ -1 +1 @@ -1.3.50 \ No newline at end of file +1.3.51 \ No newline at end of file diff --git a/plugins/logging/changelog.md b/plugins/logging/changelog.md index e69de29bb..5463ba150 100644 --- a/plugins/logging/changelog.md +++ b/plugins/logging/changelog.md @@ -0,0 +1 @@ +- chore: bump core to 1.2.40 and framework to 1.1.50 \ No newline at end of file diff --git a/plugins/logging/version b/plugins/logging/version index 16e50f0b4..158acacf2 100644 --- a/plugins/logging/version +++ b/plugins/logging/version @@ -1 +1 @@ -1.3.50 \ No newline at end of file +1.3.51 \ No newline at end of file diff --git a/plugins/maxim/changelog.md b/plugins/maxim/changelog.md index e69de29bb..5463ba150 100644 --- a/plugins/maxim/changelog.md +++ b/plugins/maxim/changelog.md @@ -0,0 +1 @@ +- chore: bump core to 1.2.40 and framework to 1.1.50 \ No newline at end of file diff --git a/plugins/maxim/version b/plugins/maxim/version index aa8e212a6..de21fbb97 100644 --- a/plugins/maxim/version +++ b/plugins/maxim/version @@ -1 +1 @@ -1.4.50 \ No newline at end of file +1.4.51 \ No newline at end of file diff --git a/plugins/mocker/changelog.md b/plugins/mocker/changelog.md index e69de29bb..5463ba150 100644 --- a/plugins/mocker/changelog.md +++ b/plugins/mocker/changelog.md @@ -0,0 +1 @@ +- chore: bump core to 1.2.40 and framework to 1.1.50 \ No newline at end of file diff --git a/plugins/mocker/version b/plugins/mocker/version index 8229aaebc..16e50f0b4 100644 --- a/plugins/mocker/version +++ b/plugins/mocker/version @@ -1 +1 @@ -1.3.49 \ No newline at end of file +1.3.50 \ No newline at end of file diff --git a/plugins/otel/changelog.md b/plugins/otel/changelog.md index e69de29bb..5463ba150 100644 --- a/plugins/otel/changelog.md +++ b/plugins/otel/changelog.md @@ -0,0 +1 @@ +- chore: bump core to 1.2.40 and framework to 1.1.50 \ No newline at end of file diff --git a/plugins/otel/version b/plugins/otel/version index feca5b25f..f8456f804 100644 --- a/plugins/otel/version +++ b/plugins/otel/version @@ -1 +1 @@ -1.0.49 \ No newline at end of file +1.0.50 \ No newline at end of file diff --git a/plugins/semanticcache/changelog.md b/plugins/semanticcache/changelog.md index e69de29bb..5463ba150 100644 --- a/plugins/semanticcache/changelog.md +++ b/plugins/semanticcache/changelog.md @@ -0,0 +1 @@ +- chore: bump core to 1.2.40 and framework to 1.1.50 \ No newline at end of file diff --git a/plugins/semanticcache/version b/plugins/semanticcache/version index 8229aaebc..16e50f0b4 100644 --- a/plugins/semanticcache/version +++ b/plugins/semanticcache/version @@ -1 +1 @@ -1.3.49 \ No newline at end of file +1.3.50 \ No newline at end of file diff --git a/plugins/telemetry/changelog.md b/plugins/telemetry/changelog.md index e69de29bb..5463ba150 100644 --- a/plugins/telemetry/changelog.md +++ b/plugins/telemetry/changelog.md @@ -0,0 +1 @@ +- chore: bump core to 1.2.40 and framework to 1.1.50 \ No newline at end of file diff --git a/plugins/telemetry/version b/plugins/telemetry/version index 8229aaebc..16e50f0b4 100644 --- a/plugins/telemetry/version +++ b/plugins/telemetry/version @@ -1 +1 @@ -1.3.49 \ No newline at end of file +1.3.50 \ No newline at end of file diff --git a/transports/changelog.md b/transports/changelog.md index 18b749bd2..3a5b67761 100644 --- a/transports/changelog.md +++ b/transports/changelog.md @@ -1 +1,8 @@ -feat: added HuggingFace provider with UI \ No newline at end of file +- fix: ensure properties field is always set for mcp tools - [@CryptoFewka](https://github.com/CryptoFewka) +- fix: correct search_domain_filter json tag in perplexity provider - [@hnoguchigr](https://github.com/hnoguchigr) +- feat: added HuggingFace provider +- fix: bedrock empty ARN issue causing request to fail +- fix: anthropic single context block in response converted to string instead for chat completions +- fix: added auth support in HTTP proxies +- feat: added custom CA certificate support in proxies +- chore: bump core to 1.2.40 and framework to 1.1.50 \ No newline at end of file diff --git a/transports/version b/transports/version index 16e50f0b4..158acacf2 100644 --- a/transports/version +++ b/transports/version @@ -1 +1 @@ -1.3.50 \ No newline at end of file +1.3.51 \ No newline at end of file