Stufe 1 (#764): Agent bearbeiten, Lizenz und Einstellungen in der WebUI

- PUT /api/agents/{id} und /texts: Stammdaten, Grenzen, Budget, Identity/Soul/
  Systemprompt (L6/L7); "Jetzt ausfuehren" in der Agentenansicht (L9)
- Lizenzschluessel ueber die Weboberflaeche (L1): erst vom Lizenzserver
  bestaetigt, dann gespeichert; hebt die Sperre ohne Neustart auf
- GET/PUT /api/settings: Instanz- und Anwendungseinstellungen inkl.
  OpenRouter-Key (L3/L4/L5), Geheimnisse nur schreibend
- GET/PUT /api/verwaltung/settings: Deploymentcenter und Update-Kanal des Managers
- Einstellungsseite zeigt echte Werte statt fester Texte
- NonInteractiveLicensePrompt verwies auf --license-set-key, den es nie gab
- Sprachpakete werden bei jedem Lauf geprueft (LanguagePackTests)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-10-02 13:30:20 +02:00
co-authored by Claude Opus 5.5
parent a9ce72abe2
commit 8552755bb6
20 changed files with 1677 additions and 322 deletions
+5
View File
@@ -254,6 +254,7 @@ public sealed class AppHost : IAsyncDisposable
private readonly Lazy<ServiceAdministration> _serviceAdmin;
private readonly Lazy<JobAdministration> _jobAdmin;
private readonly Lazy<RunCoordinator> _runs;
private readonly Lazy<SettingsAdministration> _settingsAdmin;
public AppHost()
{
@@ -261,6 +262,7 @@ public sealed class AppHost : IAsyncDisposable
_serviceAdmin = new Lazy<ServiceAdministration>(() => new ServiceAdministration(this));
_jobAdmin = new Lazy<JobAdministration>(() => new JobAdministration(this));
_runs = new Lazy<RunCoordinator>(() => new RunCoordinator(this));
_settingsAdmin = new Lazy<SettingsAdministration>(() => new SettingsAdministration(this));
}
/// <summary>Agenten anlegen, entfernen, Werkzeuge zulassen und einstellen.</summary>
@@ -278,6 +280,9 @@ public sealed class AppHost : IAsyncDisposable
/// <summary>„Jetzt ausführen" samt Verlauf.</summary>
public RunCoordinator Runs => _runs.Value;
/// <summary>#764: The settings the WebUI reads and writes.</summary>
public SettingsAdministration SettingsAdmin => _settingsAdmin.Value;
/// <summary>Was der Aufrufer beim Start erfragen muss.</summary>
public sealed class Callbacks
{