AI-Studio/app/MindWork AI Studio/Agents/AssistantAudit/AssistantAuditFinding.cs

45 lines
1.5 KiB
C#
Raw Normal View History

2026-03-26 21:34:39 +00:00
using System.Text.Json.Serialization;
namespace AIStudio.Agents.AssistantAudit;
2026-03-31 13:24:51 +00:00
/// <summary>
/// Represents a single structured security finding produced by the assistant audit agent.
/// </summary>
public sealed class AssistantAuditFinding
{
2026-03-31 13:24:51 +00:00
#pragma warning disable MWAIS0005
/// <summary>
/// Gets the normalized internal severity level derived from <see cref="SeverityText"/>.
/// </summary>
#pragma warning restore MWAIS0005
2026-03-26 21:34:39 +00:00
[JsonIgnore]
2026-03-31 13:24:51 +00:00
public AssistantAuditLevel Severity { get; private init; } = AssistantAuditLevel.UNKNOWN;
2026-03-26 21:34:39 +00:00
2026-03-31 13:24:51 +00:00
/// <summary>
/// Gets or initializes the JSON-facing severity label used by the audit model response.
/// </summary>
2026-03-26 21:34:39 +00:00
[JsonPropertyName("severity")]
public string SeverityText
{
get => this.Severity switch
{
AssistantAuditLevel.DANGEROUS => "critical",
AssistantAuditLevel.CAUTION => "medium",
AssistantAuditLevel.SAFE => "low",
_ => "unknown",
};
2026-03-31 13:24:51 +00:00
init => this.Severity = value?.Trim().ToLowerInvariant() switch
2026-03-26 21:34:39 +00:00
{
"critical" => AssistantAuditLevel.DANGEROUS,
"medium" => AssistantAuditLevel.CAUTION,
"low" => AssistantAuditLevel.SAFE,
_ => AssistantAuditLevel.UNKNOWN,
};
}
public string Category { get; init; } = string.Empty;
public string Location { get; init; } = string.Empty;
public string Description { get; init; } = string.Empty;
}