using System.Text.Json; using Avalonia.Controls; using Avalonia.Markup.Xaml; using Avalonia.Threading; using IBKRTrader.App.Shell; using IBKRTrader.App.ViewModels; using IBKRTrader.Core.Analytics; using IBKRTrader.Core.Logging; using IBKRTrader.Core.Modularity; using IBKRTrader.Core.Time; using IBKRTrader.Modules.Supervisor.Agent; using IBKRTrader.Modules.Supervisor.Persistence; using IBKRTrader.Modules.Supervisor.Services; namespace IBKRTrader.App.Views.Modules; /// /// Fenster des Supervisor-Moduls: Analyse (Chat mit dem Agenten, Tool-Aufrufe sichtbar), /// Dossier-Browser, Berichte und Hinweise. Strikt read-only – kein Tool kann handeln oder schreiben. /// /// DB- und Agent-Zugriffe laufen NUR auf Nutzerinteraktion, nie im Konstruktor. /// public partial class SupervisorWindow : Window { private readonly SupervisorAgent _agent; private readonly DossierService _dossiers; private readonly ISupervisorReportRepository _reports; private readonly LoggingService _logger; public SupervisorWindow(IModuleUiHost uiHost, SupervisorAgent agent, DossierService dossiers, ISupervisorReportRepository reports, LoggingService logger) { _agent = agent; _dossiers = dossiers; _reports = reports; _logger = logger; InitializeComponent(); WindowMenu.Wire(this.FindControl("WindowMenuBar")!, uiHost, "supervisor.main"); var profiles = this.FindControl("ProfileBox")!; profiles.ItemsSource = SupervisorProfiles.All.Select(p => p.Name).ToList(); profiles.SelectedIndex = 0; this.FindControl