namespace AIStudio.Tools.ToolCallingSystem;
///
/// What keeps a tool from being offered to a model, if anything.
///
///
/// A reason rather than a yes or no, because whoever asks has to say something different for each
/// of them: a model which cannot use tools is a matter of the provider settings, a tool switched off
/// by the organization is nothing the user can change, and missing settings are something they can
/// fill in themselves.
///
public enum ToolOfferBlockReason
{
///
/// Nothing is in the way, the tool can be offered.
///
NONE,
///
/// The organization switched tools off altogether.
///
TOOLS_SWITCHED_OFF,
///
/// The selected model or its provider cannot use tools, or no provider is selected at all.
///
MODEL_CANNOT_USE_TOOLS,
///
/// This installation does not know the tool, or the tool is not meant for this part of the app.
///
NOT_AVAILABLE_HERE,
///
/// The organization switched this tool off.
///
TOOL_SWITCHED_OFF,
///
/// A setting the tool cannot work without is missing or invalid.
///
NOT_CONFIGURED,
///
/// The provider is not trusted enough for this tool.
///
PROVIDER_CONFIDENCE_TOO_LOW,
}