using AIStudio.Components; using AIStudio.Tools.PluginSystem; using AIStudio.Tools.PluginSystem.Assistants; using Microsoft.AspNetCore.Components; namespace AIStudio.Pages; public partial class Assistants : MSGComponentBase { protected override async Task OnInitializedAsync() { this.ApplyFilters([], [ Event.CONFIGURATION_CHANGED, Event.PLUGINS_RELOADED ]); await base.OnInitializedAsync(); } private IReadOnlyCollection AssistantPlugins => PluginFactory.RunningPlugins.OfType() .Where(plugin => this.SettingsManager.IsPluginEnabled(plugin)) .ToList(); protected override Task ProcessIncomingMessage(ComponentBase? sendingComponent, Event triggeredEvent, T? data) where T : default { if (triggeredEvent is Event.CONFIGURATION_CHANGED or Event.PLUGINS_RELOADED) return this.InvokeAsync(this.StateHasChanged); return Task.CompletedTask; } }