import { NextResponse } from 'next/server'; import { sandboxManager } from '@/lib/sandbox/sandbox-manager'; declare global { var activeSandboxProvider: any; var sandboxData: any; var existingFiles: Set; } export async function GET() { try { // Check sandbox manager first, then fall back to global state const provider = sandboxManager.getActiveProvider() || global.activeSandboxProvider; const sandboxExists = !!provider; let sandboxHealthy = false; let sandboxInfo = null; if (sandboxExists && provider) { try { // Check if sandbox is healthy by getting its info const providerInfo = provider.getSandboxInfo(); sandboxHealthy = !!providerInfo; sandboxInfo = { sandboxId: providerInfo?.sandboxId || global.sandboxData?.sandboxId, url: providerInfo?.url || global.sandboxData?.url, filesTracked: global.existingFiles ? Array.from(global.existingFiles) : [], lastHealthCheck: new Date().toISOString() }; } catch (error) { console.error('[sandbox-status] Health check failed:', error); sandboxHealthy = false; } } return NextResponse.json({ success: true, active: sandboxExists, healthy: sandboxHealthy, sandboxData: sandboxInfo, message: sandboxHealthy ? 'Sandbox is active and healthy' : sandboxExists ? 'Sandbox exists but is not responding' : 'No active sandbox' }); } catch (error) { console.error('[sandbox-status] Error:', error); return NextResponse.json({ success: false, active: false, error: (error as Error).message }, { status: 500 }); } }