mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-04-09 19:41:37 +00:00
33 lines
1.2 KiB
C#
33 lines
1.2 KiB
C#
|
|
using AIStudio.Agents.AssistantAudit;
|
||
|
|
|
||
|
|
namespace AIStudio.Tools.PluginSystem.Assistants;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Runs an assistant security audit and maps the agent result to the persisted audit model.
|
||
|
|
/// </summary>
|
||
|
|
public sealed class AssistantPluginAuditService(AssistantAuditAgent auditAgent)
|
||
|
|
{
|
||
|
|
public async Task<PluginAssistantAudit> RunAuditAsync(PluginAssistants plugin, CancellationToken token = default)
|
||
|
|
{
|
||
|
|
var result = await auditAgent.AuditAsync(plugin, token);
|
||
|
|
var provider = auditAgent.ProviderSettings;
|
||
|
|
var promptPreview = await plugin.BuildAuditPromptPreviewAsync(token);
|
||
|
|
|
||
|
|
return new PluginAssistantAudit
|
||
|
|
{
|
||
|
|
PluginId = plugin.Id,
|
||
|
|
PluginHash = plugin.ComputeAuditHash(),
|
||
|
|
AuditedAtUtc = DateTimeOffset.UtcNow,
|
||
|
|
AuditProviderId = provider.Id,
|
||
|
|
AuditProviderName = provider == Settings.Provider.NONE
|
||
|
|
? string.Empty
|
||
|
|
: provider.InstanceName,
|
||
|
|
Level = AssistantAuditLevelExtensions.Parse(result.Level),
|
||
|
|
Summary = result.Summary,
|
||
|
|
Confidence = result.Confidence,
|
||
|
|
PromptPreview = promptPreview,
|
||
|
|
Findings = result.Findings,
|
||
|
|
};
|
||
|
|
}
|
||
|
|
}
|