Das WebGUI konnte bisher Dashboard, Konten, Jobs, Logs und Einstellungen.
Die vier Strategie- und Analysemodule waren nur in der Avalonia-Oberflaeche
erreichbar - wer den Server aus der Ferne bediente, sah sie nicht.
Fuenf neue Endpunktgruppen holen sie herein:
/api/analytics KPIs, Equity-Kurve, PnL je Modul und Tag,
durchsuchbare Trade-Historie mit Seitenlauf
/api/modules/copytrading Master-Trader (CRUD), offene und
geschlossene Trades, Risikolimits je Konto
/api/modules/resolutionfarming Scanner-Kandidaten, Positionen, Historie,
Farming-Parameter je Konto
/api/modules/supervisor Profile, Agentenfragen, Berichtsarchiv,
Signal-Dossiers, Counterfactuals
/api/modules/accounting BWA-Periodenabrechnung, Ledger-Journal,
PDF- und CSV-Export, Ingest-Laeufe
Dazu im Bestand:
- Dashboard bekommt /overview-widgets: Modul-KPIs (heute/7T/30T), auffaellige
Trades der letzten 24 Stunden, Warnungen und Fehler des Tages, den letzten
Supervisor-Bericht.
- Die Kontenliste zeigt 3-Tage-PnL, Winrate, Gesamtergebnis und die
beteiligten Module statt nur Salden.
- Jobs lassen sich ueber /toggle und /state ein- und ausschalten, nicht nur
ausloesen.
Die Oberflaeche bleibt ohne Fremdbibliotheken: alle Diagramme sind Inline-SVG,
kein CDN, kein npm. Alle neuen Pfade liegen unter /api/ und damit hinter der
bestehenden Token-Pruefung.
Zwei Fehler nebenbei behoben:
- AccountingReportService.ResolveCurrency lief in eine NullReferenceException,
wenn der FX-Dienst nicht gesetzt war. Betrifft jeden EUR-Aufruf ohne
geladene EZB-Kurse.
- Ein Master-Trader, dessen Name ein Apostroph enthaelt, hatte einen toten
Loeschen-Knopf: escapeHtml laesst ' unberuehrt, und im onclick-Attribut
beendete das Zeichen das JavaScript-Literal vorzeitig. Laengerer Text mit
Anfuehrungszeichen konnte darueber eigenen Code einschleusen. Neu setzt
jsArg() den Wert als JSON-Literal ein; geprueft mit
O'Brien "quote" <b>bold</b> \ backslash.
McpLightServerTests weicht jetzt aus, wenn HttpListener mangels URL-ACL nicht
binden darf, statt den Lauf scheitern zu lassen.
Geprueft auf der Linux-Test-VM (Ubuntu 26.04, .NET 10): Build ohne Fehler,
533 von 533 Tests bestanden, alle 11 Ansichten und 15 Unteransichten geladen,
alle Endpunkte mit 200 beantwortet, Schreibwege bis in die Datenbank
nachverfolgt, PDF- und CSV-Export gueltig, SSE-Logstrom live.
Offene Befunde aus der Abnahme liegen als #532 (Kopfleiste laeuft unter
1623 px ueber), #533 (EUR-PDF ohne EZB-Kurse liefert Nullbetraege) und #534
(Einstellungen melden Erfolg trotz gescheitertem Speichern) im Bugtracker.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
5.2 KiB
Paket 4: Supervisor & Accounting (KI-Berichte, PDF-/CSV-Export & Steuerjournal) — Erfolgreich Abgeschlossen
Status: Abgeschlossen (Build 0 Fehler, 529 Tests bestanden)
1. Übersicht & Ziel
In Paket 4 wurden die Funktionen des KI-Supervisors (PolyTrader.Modules.Supervisor) und der Finanzbuchhaltung / BWA (PolyTrader.Modules.Accounting) aus der Desktop-GUI (SupervisorWindow.axaml und AccountingWindow.axaml) vollständig in das WebInterface portiert.
Damit verfügt das WebInterface nun über einen vollwertigen AI-Copilot-Chat (mit Profilen und Tool-Invocations), Dossier-Inspektor, Archiv für generierte Berichte, Counterfactual-Analysen (Vergleich abgelehnter Trades mit tatsächlichem Marktausgang), eine offizielle BWA-Periodenabrechnung mit EZB-Währungsumrechnung (USDC / USD / EUR), direkte PDF- und CSV-Downloads sowie ein durchsuchbares und paginiertes Blockchain-Ledger-Journal.
2. Implementierte Komponenten
Backend Endpoints
src/PolyTrader.Web/Endpoints/SupervisorEndpoints.cs:GET /api/modules/supervisor/profiles: Verfügbare Supervisor-Profile (Allgemein,Technik,CopyTrading,ResolutionFarming).POST /api/modules/supervisor/ask: Interaktive Anfrage an den LLM-Agenten (SupervisorAgent), Tool-Invocations, Token-Zählung und automatische Archivierung als Bericht.GET /api/modules/supervisor/reports: Gespeicherte Supervisor-Berichte im Archiv (paginiert / limitiert).GET /api/modules/supervisor/reports/{id}: Volltext und Metadaten eines einzelnen Berichts.GET /api/modules/supervisor/dossiers: Übersicht der analysierten Trading-Signale mit Entscheidungen und Begründungen.GET /api/modules/supervisor/dossiers/{signalId}: Vollständiges Trade-Dossier mit Markdown-Rendering (DossierBuilder.ToMarkdown).GET /api/modules/supervisor/counterfactuals: Realitäts-Abgleich für abgelehnte Signale (Hypothetischer PnL je Share).
src/PolyTrader.Web/Endpoints/AccountingEndpoints.cs:GET /api/modules/accounting/statement: Aggregierte BWA-Periodenabrechnung (Anfangs-/Endbestand, Handelsvolumen, Ein-/Auszahlungen, Gebühren, Netto-Ergebnis) mit FX-Umrechnung (USDC, USD, EUR).GET /api/modules/accounting/export/pdf: Direkter Binärstream (application/pdf) für die druckreife Periodenabrechnung (PdfExporter.Render).GET /api/modules/accounting/export/csv: Direkter CSV-Download (text/csv) aller Ledger-Einträge des Zeitraums (CsvExporter.Ledger).GET /api/modules/accounting/ledger: Buchungsjournal mit Suche (Markt, TxHash, Event) und Server-Paginierung.GET /api/modules/accounting/runs: Historie der Blockchain-Ingestion-Läufe inklusive Soll-Ist-Saldendifferenz.POST /api/modules/accounting/ingest: Manueller Start eines Ingestions-Laufs (Live oder Backfill).
src/PolyTrader.Web/Hosting/WebUiHostingExtensions.cs:- Registrierung von
MapSupervisorEndpoints()undMapAccountingEndpoints().
- Registrierung von
Frontend
src/PolyTrader.Web/wwwroot/index.html:- Neue Navigationspunkte "Supervisor" und "Accounting" in der Header-Leiste.
- View
#view-supervisormit 4 Sub-Tabs:- AI Copilot Chat: Interaktiver Chat mit Preset-Prompts, Profil- und Modell-Auswahl, Tool-Call-Details.
- Berichte-Archiv: Tabelle aller generierten Supervisor-Berichte mit Volltext-Ansicht.
- Signal-Dossiers: Aufgezeichnete Signale mit One-Click-Dossier-Inspektor.
- Counterfactuals: Analyse abgelehnter Trades vs. Wirklichkeit.
- View
#view-accountingmit 3 Sub-Tabs:- BWA & Periodenabrechnung: Datumsfilter, Währungswahl (USDC/USD/EUR), 4 KPI-Karten, monatliche Tabelle, PDF- und CSV-Export-Buttons.
- Ledger-Journal: Durchsuchbare und paginierte Tabelle aller On-Chain- und Trade-Transaktionen mit Polygonscan-Links.
- Sync & Ingest Läufe: Status der Datenabrufe und Dialog zum manuellen Start eines Blockchain-Syncs.
- Universelles Modal
#modalReportzur formatierten Darstellung von Langtext-Berichten und Markdown-Signal-Dossiers.
src/PolyTrader.Web/wwwroot/css/app.css:- Chat-Box-Layout, Prompt-Presets, User- und Assistant-Chat-Bubbles, einklappbare Tool-Details, Währungsauswahl-Pills (
.currency-pills), formatierte Markdown-Boxen (.markdown-pre).
- Chat-Box-Layout, Prompt-Presets, User- und Assistant-Chat-Bubbles, einklappbare Tool-Details, Währungsauswahl-Pills (
src/PolyTrader.Web/wwwroot/js/app.js:- Chat-Handling inklusive Streaming/Asynchron-Feedback, Bubble-Rendering und Fehlertoleranz.
- Abruf und Anzeige von Berichten, Signal-Dossiers und Counterfactuals.
- BWA-Berechnung mit Währungswechsel, PDF/CSV-Download-Trigger.
- Paginierung und Suche im Ledger-Journal sowie Blockchain-Sync-Trigger.
Tests & Verifikation
tests/PolyTrader.Tests/WebUi/SupervisorAndAccountingEndpointsTests.cs:- 8 Unit-Tests für SupervisorProfiles, AskRequest-Validierung, Report-Serialisierung, Counterfactual-Metriken, Währungsumrechnung (USDC/USD/EUR), BWA-Saldenlogik, Ledger-Suche/-Paginierung und IngestRun-Tracking.
- Gesamtergebnis Testlauf: 529 von 529 Tests bestanden (100% Erfolgsquote, 0 Fehler).
- Debug-Build: Erfolgreich ausgeführt (0 Fehler).
Nächstes Paket: Paket 5: Feinschliff & End-to-End-Audit (Abschluss-Audit aller Web-Routen, Konsistenzprüfung Desktop vs. Web, Bereinigung temporärer Artefakte).