2026-04-09 13:37:53 +00:00
|
|
|
using System.Text.Json;
|
|
|
|
|
|
2026-04-10 08:43:13 +00:00
|
|
|
using AIStudio.Tools.PluginSystem;
|
|
|
|
|
|
2026-04-09 13:37:53 +00:00
|
|
|
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;
|
|
|
|
|
|
2026-04-09 13:37:53 +00:00
|
|
|
public IReadOnlySet<string> SensitiveTraceArgumentNames { get; }
|
|
|
|
|
|
2026-04-10 08:43:13 +00:00
|
|
|
public string GetDisplayName() => this.T("Tool");
|
|
|
|
|
|
|
|
|
|
public string GetDescription() => this.T("Tool description");
|
|
|
|
|
|
|
|
|
|
public string GetSettingsFieldLabel(string fieldName, ToolSettingsFieldDefinition fieldDefinition) =>
|
|
|
|
|
this.T(fieldDefinition.Title);
|
|
|
|
|
|
|
|
|
|
public string GetSettingsFieldDescription(string fieldName, ToolSettingsFieldDefinition fieldDefinition) =>
|
|
|
|
|
this.T(fieldDefinition.Description);
|
|
|
|
|
|
2026-04-13 11:53:24 +00:00
|
|
|
public Task<ToolConfigurationState?> ValidateConfigurationAsync(
|
|
|
|
|
ToolDefinition definition,
|
|
|
|
|
IReadOnlyDictionary<string, string> settingsValues,
|
|
|
|
|
CancellationToken token = default) => Task.FromResult<ToolConfigurationState?>(null);
|
|
|
|
|
|
2026-04-09 13:37:53 +00:00
|
|
|
public Task<ToolExecutionResult> ExecuteAsync(JsonElement arguments, ToolExecutionContext context, CancellationToken token = default);
|
|
|
|
|
|
|
|
|
|
public string FormatTraceResult(string rawResult) => rawResult;
|
2026-04-10 08:43:13 +00:00
|
|
|
|
|
|
|
|
private string T(string fallbackEN) => I18N.I.T(fallbackEN, this.GetType().Namespace, this.GetType().Name);
|
2026-04-09 13:37:53 +00:00
|
|
|
}
|