name('dashboard'); Route::get('/hud', FoxHud::class)->name('hud'); Route::get('/chat', Chat::class)->name('chat'); Route::get('/goals', Goals::class)->name('goals'); Route::post('/fox/voice', FoxVoiceController::class)->name('fox.voice'); Route::post('/fox/tts', FoxTtsController::class)->name('fox.tts'); Route::post('/fox/poi-context', FoxPoiContextController::class)->name('fox.poi-context'); Route::post('/fox/route', FoxRouteController::class)->name('fox.route'); Route::post('/fox/places', FoxPlacesController::class)->name('fox.places'); Route::post('/fox/geocode', FoxGeocodeController::class)->name('fox.geocode'); Route::post('/fox/cities', FoxCitiesController::class)->name('fox.cities'); Route::post('/fox/place-info', FoxPlaceInfoController::class)->name('fox.place-info'); Route::get('/fox/status', FoxStatusController::class)->name('fox.status'); Route::prefix('fox')->name('fox.')->group(function () { Route::get('/brain', [FoxBrainController::class, 'index'])->name('brain'); Route::get('/brain/graph', [FoxBrainController::class, 'graph'])->name('brain.graph'); }); Route::post('/fox/message', function (\Illuminate\Http\Request $request) { $text = $request->input('text', ''); if (empty(trim($text))) { return response()->json(['error' => 'Kein Text'], 400); } $userMessage = app(\App\Services\FoxAgent::class) ->recordUserMessage($text, ['source' => 'electron']); $assistantMessage = app(\App\Services\FoxAgent::class) ->processUserMessage($userMessage); return response()->json([ 'status' => 'ok', 'reply' => $assistantMessage->content, 'audio_url' => $assistantMessage->metadata['audio_url'] ?? null, ]); })->middleware('web');