using static AIStudio.Provider.Capability;
namespace AIStudio.Models.Cohere;
///
/// Command, the Cohere line built for tool use.
///
///
/// Most of the line calls functions, in one step and in several, so the family states it. Command A
/// Vision is the exception Cohere names outright: tool use is not supported with it.
///
public sealed class CommandFamily : ModelFamily
{
///
public override ModelVendor Vendor => ModelVendor.COHERE;
///
public override ModelSource Source => new("https://docs.cohere.com/docs/models", new DateOnly(2026, 9, 11), "Ported unchanged from the Command block of ProviderExtensions.OpenSource.cs.");
///
protected override void Declare(ModelFamilyBuilder builder)
{
builder.Rule("command-a").AsSubstring()
.Capabilities(TEXT_INPUT | TEXT_OUTPUT | FUNCTION_CALLING)
.Apis(CHAT_COMPLETION_API);
builder.Rule("command-r").AsSubstring().Inherits();
// Command A+ sees, and thinks unless the request turns the thinking off:
builder.Rule("command-a-plus").AsSubstring().Inherits()
.Capabilities(MULTIPLE_IMAGE_INPUT)
.Reasoning(ReasoningSupport.ON_BY_DEFAULT);
builder.Rule("command-a-reasoning").AsSubstring().InheritsFrom("command-r")
.Reasoning(ReasoningSupport.ON_BY_DEFAULT);
builder.Rule("command-a-vision").AsSubstring()
.Capabilities(TEXT_INPUT | MULTIPLE_IMAGE_INPUT | TEXT_OUTPUT)
.Apis(CHAT_COMPLETION_API);
}
}