using AIStudio.Provider;
namespace AIStudio.Tools.ToolCallingSystem;
public sealed class ToolDefinition
{
public int SchemaVersion { get; init; } = 1;
public string Id { get; init; } = string.Empty;
public string ImplementationKey { get; init; } = string.Empty;
public ToolVisibilityDefinition VisibleIn { get; init; } = new();
public ToolSettingsSchema SettingsSchema { get; init; } = new();
public string SystemPromptInstructions { get; init; } = string.Empty;
///
/// The lowest provider confidence this tool may be used with, unless an administrator or the
/// user says otherwise.
///
///
/// Belongs to the tool, because only the tool knows what it exposes: a web search sends the
/// user's question to a search engine, so it asks for more trust than a calculator would.
///
public ConfidenceLevel MinimumProviderConfidence { get; init; } = ConfidenceLevel.NONE;
public ToolFunctionDefinition Function { get; init; } = new();
}