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 => AppIcons.SECURITY_DANGEROUS, AssistantAuditLevel.CAUTION => AppIcons.WARNING, AssistantAuditLevel.SAFE => AppIcons.AUDIT_SAFE, _ => AppIcons.UNKNOWN, }; /// /// 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; } }