feat: Remote-Verbindungen – Windows-Workstations per WebSocket steuern
- RemoteConnectionManager: Singleton-Service verwaltet WebSocket-Verbindungen mit Command-Execution (Send/Receive mit Timeout + SemaphoreSlim-Locking) - RemoteEndpoint: WebSocket-Endpoint /api/remote (auth-frei), REST-APIs für Connections/Assign/Unassign, PowerShell-Script-Auslieferung mit dynamischer URL - remote.ps1: PowerShell-Client für Windows – verbindet per WebSocket, sendet Hostname/User/OS, empfängt und führt Befehle aus, Heartbeat - remote_execute Tool: Neues Agent-Tool, nur verfügbar wenn Session eine zugeordnete Remote-Verbindung hat, führt PowerShell-Befehle remote aus - Frontend: Menüpunkt 'Remote-Verbindungen' im Chat-Dropdown, Modal zeigt alle aktiven WebSocket-Verbindungen (Hostname, User, OS, Verbindungszeit), Verbinden/Trennen-Buttons pro Verbindung und Session - Auth: /api/remote und /remote.ps1 von Authentifizierung ausgenommen Architektur: Windows-Client → WebSocket → GOTT-Server → Agent-Tool Session-gebunden: Eine Verbindung wird einer Session zugeordnet
This commit is contained in:
1 parent
9f4746c2e7
commit
10da2bd964
14 files changed
+706
-18
No files matched your search
@@ -29,6 +29,7 @@ builder.Services.AddSingleton(authService);
|
||||
builder.Services.AddSingleton(dbService);
|
||||
builder.Services.AddSingleton(new ImageService());
|
||||
builder.Services.AddSingleton(new StreamingTracker());
|
||||
builder.Services.AddSingleton(new RemoteConnectionManager());
|
||||
var memoryService = new MemoryService(dataDir);
|
||||
var skillService = new SkillService(dataDir);
|
||||
builder.Services.AddSingleton(memoryService);
|
||||
@@ -71,6 +72,7 @@ builder.Services.AddSingleton<CronjobService>();
|
||||
builder.Services.AddHostedService<CronjobService>(sp => sp.GetRequiredService<CronjobService>());
|
||||
|
||||
var app = builder.Build();
|
||||
app.UseWebSockets();
|
||||
app.UseDefaultFiles();
|
||||
app.UseStaticFiles();
|
||||
app.UseMiddleware<AuthMiddleware>();
|
||||
@@ -93,6 +95,7 @@ app.MapSharedEndpoints();
|
||||
app.MapAdminEndpoints();
|
||||
app.MapServerSettingsEndpoints();
|
||||
app.MapOpenClawEndpoints();
|
||||
app.MapRemoteEndpoints();
|
||||
|
||||
var port = app.Configuration.GetValue<int>("Port", 19000);
|
||||
app.Run($"http://0.0.0.0:{port}");
|
||||
Reference in new issue
Block a user