@using AIStudio.Agents.AssistantAudit
@inherits MSGComponentBase
@if (this.Plugin is not null)
{
var state = this.SecurityState;
@T("Assistant Security")
@state.AuditLabel
@if (!string.IsNullOrWhiteSpace(state.AvailabilityLabel))
{
@state.AvailabilityLabel
}
@state.Headline
@T("Confidence"):
@this.GetConfidenceLabel()
@this.GetFindingSummary()
@this.GetAuditTimestampLabel()
@state.Description
@T("Technical Details")
|
@T("Plugin ID")
|
@this.Plugin.Id |
|
@T("Current hash")
|
@GetShortHash(state.CurrentHash) |
@if (state.Audit is not null)
{
|
@T("Audit hash")
|
@GetShortHash(state.Audit.PluginHash) |
|
@T("Audit provider")
|
@this.GetAuditProviderLabel() |
|
@T("Audited at")
|
@this.FormatFileTimestamp(state.Audit.AuditedAtUtc.ToLocalTime().DateTime) |
|
@T("Audit level")
|
@state.AuditLabel |
|
@T("Availability")
|
@state.AvailabilityLabel |
}
|
@T("Required minimum")
|
@state.Settings.MinimumLevel.GetName() |
@if (state.Audit is null)
{
@T("No stored audit details are available yet.")
}
else if (state.Audit.Findings.Count == 0)
{
@T("No security findings were stored for this assistant plugin.")
}
else
{
@foreach (var finding in state.Audit.Findings)
{
@finding.Category: @finding.Description
@if (!string.IsNullOrWhiteSpace(finding.Location))
{
@finding.Location
}
}
}
@state.ActionLabel
@T("Close")
}