diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentAssistantAudit.razor b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentAssistantAudit.razor new file mode 100644 index 00000000..316364f3 --- /dev/null +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentAssistantAudit.razor @@ -0,0 +1,15 @@ +@using AIStudio.Settings +@inherits SettingsPanelBase + + + + + @T("This Agent audits newly installed or updated external Plugin-Assistant for security risks before they are activated. It shows the simulated prompt preview, reviews the Lua manifest with an LLM, and stores the latest audit card until the plugin manifest changes.") + + + + + + + + diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentAssistantAudit.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentAssistantAudit.razor.cs new file mode 100644 index 00000000..6b51ff40 --- /dev/null +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentAssistantAudit.razor.cs @@ -0,0 +1,3 @@ +namespace AIStudio.Components.Settings; + +public partial class SettingsPanelAgentAssistantAudit : SettingsPanelBase; diff --git a/app/MindWork AI Studio/Settings/DataModel/DataAssistantPluginAudit.cs b/app/MindWork AI Studio/Settings/DataModel/DataAssistantPluginAudit.cs new file mode 100644 index 00000000..918705ed --- /dev/null +++ b/app/MindWork AI Studio/Settings/DataModel/DataAssistantPluginAudit.cs @@ -0,0 +1,43 @@ +using System.Linq.Expressions; +using AIStudio.Agents.AssistantAudit; + +namespace AIStudio.Settings.DataModel; + +/// +/// Settings for auditing assistant plugins before activation. +/// +public sealed class DataAssistantPluginAudit(Expression>? configSelection = null) +{ + /// + /// The default constructor for the JSON deserializer. + /// + public DataAssistantPluginAudit() : this(null) + { + } + + /// + /// Should assistant plugins be audited before they can be activated? + /// + public bool RequireAuditBeforeActivation { get; set; } = ManagedConfiguration.Register(configSelection, n => n.RequireAuditBeforeActivation, true); + + /// + /// Which provider should be used for the assistant plugin audit? + /// When empty, the app-wide default provider is used. + /// + public string PreselectedAgentProvider { get; set; } = ManagedConfiguration.Register(configSelection, n => n.PreselectedAgentProvider, string.Empty); + + /// + /// The minimum audit level assistant plugins should meet. + /// + public AssistantAuditLevel MinimumLevel { get; set; } = ManagedConfiguration.Register(configSelection, n => n.MinimumLevel, AssistantAuditLevel.CAUTION); + + /// + /// Should activation be blocked when the audit result is below the minimum level? + /// + public bool BlockActivationBelowMinimum { get; set; } = ManagedConfiguration.Register(configSelection, n => n.BlockActivationBelowMinimum, true); + + /// + /// If true, the security audit will be hidden from the user and done in the background + /// + public bool AutomaticallyAuditAssistants { get; set; } = ManagedConfiguration.Register(configSelection, n => n.AutomaticallyAuditAssistants, false); +}