@using AIStudio.Settings
@using AIStudio.Tools.ToolCallingSystem
@inherits MSGComponentBase
@T("Tool Selection")
@if (!this.SupportsTools)
{
@T("The selected provider or model does not support tool calling.")
}
else if (this.Disabled)
{
@T("Tool changes are locked while a response is running. Your current selection is shown below and applies again from the next message once the run is finished.")
}
else if (this.catalog.Count == 0)
{
@T("No tools are available in this context.")
}
@if (this.SupportsTools && this.catalog.Count > 0)
{
@foreach (var item in this.catalog)
{
var isSelected = this.SelectedToolIds.Contains(item.Definition.Id);
var isConfigured = item.ConfigurationState.IsConfigured;
var dependencyHint = this.GetDependencyHint(item.Definition.Id);
@item.Implementation.GetDisplayName()
@if (!isConfigured)
{
@(string.IsNullOrWhiteSpace(item.ConfigurationState.Message) ? T("Required settings are missing. Configure this tool before enabling it.") : item.ConfigurationState.Message)
}
@if (!string.IsNullOrWhiteSpace(dependencyHint))
{
@dependencyHint
}
}
}
@T("Close")