using AIStudio.Tools.PluginSystem; namespace AIStudio.Agents.AssistantAudit; public static class AssistantAuditLevelExtensions { private static string TB(string fallbackEN) => I18N.I.T(fallbackEN, typeof(AssistantAuditLevelExtensions).Namespace, nameof(AssistantAuditLevelExtensions)); extension(AssistantAuditLevel level) { public string Name => level switch { AssistantAuditLevel.DANGEROUS => TB("Dangerous"), AssistantAuditLevel.CAUTION => TB("Concerning"), AssistantAuditLevel.SAFE => TB("Safe"), _ => TB("Unknown"), }; public Severity Severity => level switch { AssistantAuditLevel.DANGEROUS => Severity.Error, AssistantAuditLevel.CAUTION => Severity.Warning, AssistantAuditLevel.SAFE => Severity.Success, _ => Severity.Info, }; public Color Color => level switch { AssistantAuditLevel.DANGEROUS => Color.Error, AssistantAuditLevel.CAUTION => Color.Warning, AssistantAuditLevel.SAFE => Color.Success, _ => Color.Default, }; public string Icon => level switch { AssistantAuditLevel.DANGEROUS => Icons.Material.Filled.Dangerous, AssistantAuditLevel.CAUTION => Icons.Material.Filled.Warning, AssistantAuditLevel.SAFE => Icons.Material.Filled.Verified, _ => Icons.Material.Filled.HelpOutline, }; /// /// Parses an audit level string and falls back to when parsing fails. /// /// The audit level text to parse. /// The parsed audit level, or for null, empty, or invalid values. public static AssistantAuditLevel ParseOrUnknown(string? value) => Enum.TryParse(value, true, out var parsedLevel) ? parsedLevel : AssistantAuditLevel.UNKNOWN; } }