From 5fe406377343ef88d0e1d112b52b5bfc675999bb Mon Sep 17 00:00:00 2001 From: hart_s3 Date: Wed, 1 Apr 2026 14:35:30 +0200 Subject: [PATCH 1/3] Added capabilities to Mistral models --- .../Settings/ProviderExtensions.Mistral.cs | 15 +++++++++--- .../Settings/ProviderExtensions.OpenSource.cs | 23 ++++++++++++++++--- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs b/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs index 3d0150c9e..597b0aae5 100644 --- a/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs +++ b/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs @@ -23,9 +23,12 @@ private static List GetModelCapabilitiesMistral(Model model) if (modelName.IndexOf("mistral-large-") is not -1) return [ - Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_INPUT, + Capability.SINGLE_IMAGE_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, + Capability.OPTIONAL_REASONING, + Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, ]; @@ -34,9 +37,12 @@ private static List GetModelCapabilitiesMistral(Model model) if (modelName.IndexOf("mistral-medium-") is not -1) return [ - Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_INPUT, + Capability.SINGLE_IMAGE_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, + Capability.OPTIONAL_REASONING, + Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, ]; @@ -45,8 +51,11 @@ private static List GetModelCapabilitiesMistral(Model model) if (modelName.IndexOf("mistral-small-") is not -1) return [ - Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_INPUT, + Capability.SINGLE_IMAGE_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, diff --git a/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs b/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs index dc30e53bc..b9b31aa27 100644 --- a/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs +++ b/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs @@ -150,13 +150,30 @@ private static List GetModelCapabilitiesOpenSource(Model model) modelName.IndexOf("mistral-large-3") is not -1) return [ - Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_INPUT, + Capability.SINGLE_IMAGE_INPUT, Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - + + Capability.OPTIONAL_REASONING, + + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + + if (modelName.IndexOf("mistral-small-") is not -1) + return + [ + Capability.TEXT_INPUT, + Capability.SINGLE_IMAGE_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, + Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, ]; + if (modelName.IndexOf("voxtral-") is not -1) return [ @@ -305,4 +322,4 @@ private static List GetModelCapabilitiesOpenSource(Model model) Capability.CHAT_COMPLETION_API, ]; } -} \ No newline at end of file +} From a3c69f13576a747077e542cb42ca7cc9159ac7c6 Mon Sep 17 00:00:00 2001 From: hart_s3 Date: Thu, 2 Apr 2026 11:38:22 +0200 Subject: [PATCH 2/3] Modify the capability of the Mistral models --- .../Settings/ProviderExtensions.Mistral.cs | 40 +++++++++++++++++-- .../Settings/ProviderExtensions.OpenSource.cs | 4 +- .../wwwroot/changelog/v26.3.1.md | 1 + 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs b/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs index 597b0aae5..9868505d1 100644 --- a/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs +++ b/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs @@ -24,7 +24,17 @@ private static List GetModelCapabilitiesMistral(Model model) return [ Capability.TEXT_INPUT, - Capability.SINGLE_IMAGE_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + + if (modelName.IndexOf("mistral-large-latest") is not -1) // The latest mistral-Large-3 model + return + [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.OPTIONAL_REASONING, @@ -38,7 +48,19 @@ private static List GetModelCapabilitiesMistral(Model model) return [ Capability.TEXT_INPUT, - Capability.SINGLE_IMAGE_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, + + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + + if (modelName.IndexOf("mistral-medium-latest") is not -1) // The latest mistral-medium-3.1 model + return + [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.OPTIONAL_REASONING, @@ -52,7 +74,19 @@ private static List GetModelCapabilitiesMistral(Model model) return [ Capability.TEXT_INPUT, - Capability.SINGLE_IMAGE_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, + + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + + if (modelName.IndexOf("mistral-small-latest") is not -1) // The latest mistral-medium-3.1 model + return + [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.OPTIONAL_REASONING, diff --git a/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs b/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs index b9b31aa27..106acd7b1 100644 --- a/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs +++ b/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs @@ -151,7 +151,7 @@ private static List GetModelCapabilitiesOpenSource(Model model) return [ Capability.TEXT_INPUT, - Capability.SINGLE_IMAGE_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.OPTIONAL_REASONING, @@ -164,7 +164,7 @@ private static List GetModelCapabilitiesOpenSource(Model model) return [ Capability.TEXT_INPUT, - Capability.SINGLE_IMAGE_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.OPTIONAL_REASONING, diff --git a/app/MindWork AI Studio/wwwroot/changelog/v26.3.1.md b/app/MindWork AI Studio/wwwroot/changelog/v26.3.1.md index 05ee5fce7..7e5e88170 100644 --- a/app/MindWork AI Studio/wwwroot/changelog/v26.3.1.md +++ b/app/MindWork AI Studio/wwwroot/changelog/v26.3.1.md @@ -6,6 +6,7 @@ - Added the ability to load a system prompt from a file when creating or editing chat templates. - Added a start-page setting, so AI Studio can now open directly on your preferred page when the app starts. Configuration plugins can also provide and optionally lock this default for organizations. - Added math rendering in chats for LaTeX display formulas, including block formats such as `$$ ... $$` and `\[ ... \]`. +- Added the latest Mistral models. - Released the document analysis assistant after an intense testing phase. - Improved enterprise deployment for organizations: administrators can now provide up to 10 centrally managed enterprise configuration slots, use policy files on Linux and macOS, and continue using older configuration formats as a fallback during migration. - Improved the profile selection for assistants and the chat. You can now explicitly choose between the app default profile, no profile, or a specific profile. From 14d9270d614fde1d3c18930048801aceae3cb525 Mon Sep 17 00:00:00 2001 From: hart_s3 Date: Thu, 2 Apr 2026 15:22:23 +0200 Subject: [PATCH 3/3] Update capabilities for Qwen and Mistral models --- .../Settings/ProviderExtensions.Alibaba.cs | 20 +++++++++++++---- .../Settings/ProviderExtensions.Mistral.cs | 22 +++++++++---------- .../Settings/ProviderExtensions.OpenSource.cs | 12 ++++++++++ 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/app/MindWork AI Studio/Settings/ProviderExtensions.Alibaba.cs b/app/MindWork AI Studio/Settings/ProviderExtensions.Alibaba.cs index 2a38c9fb7..44e06fc19 100644 --- a/app/MindWork AI Studio/Settings/ProviderExtensions.Alibaba.cs +++ b/app/MindWork AI Studio/Settings/ProviderExtensions.Alibaba.cs @@ -24,6 +24,17 @@ private static List GetModelCapabilitiesAlibaba(Model model) Capability.CHAT_COMPLETION_API, ]; + // Check for Qwen 3: + if(modelName.StartsWith("qwen3")) + return + [ + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + // Check for Qwen 3.5: if(modelName.StartsWith("qwen3.5")) return @@ -35,14 +46,15 @@ private static List GetModelCapabilitiesAlibaba(Model model) Capability.CHAT_COMPLETION_API, ]; - // Check for Qwen 3: - if(modelName.StartsWith("qwen3")) + // Check for Qwen 3.6 plus: + if(modelName.StartsWith("qwen3.6-plus")) return [ - Capability.TEXT_INPUT, + Capability.TEXT_INPUT, Capability.VIDEO_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING, + Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, ]; diff --git a/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs b/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs index 9868505d1..ce888aa73 100644 --- a/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs +++ b/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs @@ -20,34 +20,35 @@ private static List GetModelCapabilitiesMistral(Model model) ]; // Mistral large: - if (modelName.IndexOf("mistral-large-") is not -1) + if (modelName.IndexOf("mistral-large-latest") is not -1) return [ Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, + Capability.OPTIONAL_REASONING, + Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, ]; - if (modelName.IndexOf("mistral-large-latest") is not -1) // The latest mistral-Large-3 model + if (modelName.IndexOf("mistral-large-") is not -1) return [ Capability.TEXT_INPUT, - Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.OPTIONAL_REASONING, - Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, ]; // Mistral medium: - if (modelName.IndexOf("mistral-medium-") is not -1) + if (modelName.IndexOf("mistral-medium-latest") is not -1) return [ Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.OPTIONAL_REASONING, @@ -56,11 +57,10 @@ private static List GetModelCapabilitiesMistral(Model model) Capability.CHAT_COMPLETION_API, ]; - if (modelName.IndexOf("mistral-medium-latest") is not -1) // The latest mistral-medium-3.1 model + if (modelName.IndexOf("mistral-medium-") is not -1) return [ Capability.TEXT_INPUT, - Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.OPTIONAL_REASONING, @@ -70,10 +70,11 @@ private static List GetModelCapabilitiesMistral(Model model) ]; // Mistral small: - if (modelName.IndexOf("mistral-small-") is not -1) + if (modelName.IndexOf("mistral-small-latest") is not -1) return [ Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.OPTIONAL_REASONING, @@ -82,11 +83,10 @@ private static List GetModelCapabilitiesMistral(Model model) Capability.CHAT_COMPLETION_API, ]; - if (modelName.IndexOf("mistral-small-latest") is not -1) // The latest mistral-medium-3.1 model + if (modelName.IndexOf("mistral-small-") is not -1) return [ Capability.TEXT_INPUT, - Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.OPTIONAL_REASONING, diff --git a/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs b/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs index 106acd7b1..e6557ef6c 100644 --- a/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs +++ b/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs @@ -113,6 +113,18 @@ private static List GetModelCapabilitiesOpenSource(Model model) Capability.CHAT_COMPLETION_API, ]; + // Check for Qwen 3.6: + if(modelName.IndexOf("qwen3.6-plus") is not -1) + return + [ + Capability.TEXT_INPUT, Capability.VIDEO_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + if(modelName.IndexOf("-vl-") is not -1) return [ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT,