Spaces:
Build error
Build error
| import { NextRequest, NextResponse } from 'next/server'; | |
| declare global { | |
| var activeSandbox: any; | |
| } | |
| export async function GET(request: NextRequest) { | |
| try { | |
| if (!global.activeSandbox) { | |
| return NextResponse.json({ | |
| success: false, | |
| error: 'No active sandbox' | |
| }, { status: 400 }); | |
| } | |
| console.log('[sandbox-logs] Fetching Vite dev server logs...'); | |
| // Get the last N lines of the Vite dev server output | |
| const result = await global.activeSandbox.runCode(` | |
| import subprocess | |
| import os | |
| # Try to get the Vite process output | |
| try: | |
| # Read the last 100 lines of any log files | |
| log_content = [] | |
| # Check if there are any node processes running | |
| ps_result = subprocess.run(['ps', 'aux'], capture_output=True, text=True) | |
| vite_processes = [line for line in ps_result.stdout.split('\\n') if 'vite' in line.lower()] | |
| if vite_processes: | |
| log_content.append("Vite is running") | |
| else: | |
| log_content.append("Vite process not found") | |
| # Try to capture recent console output (this is a simplified approach) | |
| # In a real implementation, you'd want to capture the Vite process output directly | |
| print(json.dumps({ | |
| "hasErrors": False, | |
| "logs": log_content, | |
| "status": "running" if vite_processes else "stopped" | |
| })) | |
| except Exception as e: | |
| print(json.dumps({ | |
| "hasErrors": True, | |
| "logs": [str(e)], | |
| "status": "error" | |
| })) | |
| `); | |
| try { | |
| const logData = JSON.parse(result.output || '{}'); | |
| return NextResponse.json({ | |
| success: true, | |
| ...logData | |
| }); | |
| } catch { | |
| return NextResponse.json({ | |
| success: true, | |
| hasErrors: false, | |
| logs: [result.output], | |
| status: 'unknown' | |
| }); | |
| } | |
| } catch (error) { | |
| console.error('[sandbox-logs] Error:', error); | |
| return NextResponse.json({ | |
| success: false, | |
| error: (error as Error).message | |
| }, { status: 500 }); | |
| } | |
| } |