AI-Studio/app/MindWork AI Studio/Tools/ToolCallingSystem/IToolImplementation.cs

36 lines
1.4 KiB
C#
Raw Normal View History

using System.Text.Json;
2026-04-10 08:43:13 +00:00
using AIStudio.Tools.PluginSystem;
namespace AIStudio.Tools.ToolCallingSystem;
public interface IToolImplementation
{
public string ImplementationKey { get; }
2026-04-10 08:43:13 +00:00
public string Icon => Icons.Material.Filled.Build;
public IReadOnlySet<string> SensitiveTraceArgumentNames { get; }
2026-07-23 10:59:32 +00:00
public string GetDisplayName() => TB("Tool");
2026-04-10 08:43:13 +00:00
2026-07-23 10:59:32 +00:00
public string GetDescription() => TB("Tool description");
2026-04-10 08:43:13 +00:00
public string GetSettingsFieldLabel(string fieldName, ToolSettingsFieldDefinition fieldDefinition) =>
2026-07-23 10:59:32 +00:00
TB(fieldDefinition.Title);
2026-04-10 08:43:13 +00:00
public string GetSettingsFieldDescription(string fieldName, ToolSettingsFieldDefinition fieldDefinition) =>
2026-07-23 10:59:32 +00:00
TB(fieldDefinition.Description);
2026-04-10 08:43:13 +00:00
2026-06-10 12:35:43 +00:00
public string? GetSettingsFieldDefaultValue(string fieldName, ToolSettingsFieldDefinition fieldDefinition) => null;
public Task<ToolConfigurationState?> ValidateConfigurationAsync(
ToolDefinition definition,
IReadOnlyDictionary<string, string> settingsValues,
CancellationToken token = default) => Task.FromResult<ToolConfigurationState?>(null);
public Task<ToolExecutionResult> ExecuteAsync(JsonElement arguments, ToolExecutionContext context, CancellationToken token = default);
2026-07-23 10:59:32 +00:00
private static string TB(string fallbackEN) => I18N.I.T(fallbackEN, typeof(IToolImplementation).Namespace, nameof(IToolImplementation));
}