using static AIStudio.Provider.Capability;
namespace AIStudio.Models.Mistral;
///
/// Magistral, the Mistral models which always think before they answer.
///
public sealed class MagistralFamily : ModelFamily
{
///
public override ModelVendor Vendor => ModelVendor.MISTRAL_AI;
///
public override ModelSource Source => new("https://docs.mistral.ai/getting-started/models/models_overview/", new DateOnly(2026, 9, 11), "Ported unchanged from the rules in ProviderExtensions.OpenSource.cs: images, tool calling, and thinking which cannot be switched off.");
///
protected override void Declare(ModelFamilyBuilder builder) =>
builder.Rule("magistral").AsSegment()
.Capabilities(TEXT_INPUT | MULTIPLE_IMAGE_INPUT | TEXT_OUTPUT | FUNCTION_CALLING)
.Apis(CHAT_COMPLETION_API)
.Reasoning(ReasoningSupport.ALWAYS);
}