import { NextRequest, NextResponse } from 'next/server'; import { SandboxProvider } from '@/lib/sandbox/types'; import { sandboxManager } from '@/lib/sandbox/sandbox-manager'; // Get active sandbox provider from global state declare global { var activeSandboxProvider: any; } export async function POST(request: NextRequest) { try { const { command } = await request.json(); if (!command) { return NextResponse.json({ success: false, error: 'Command is required' }, { status: 400 }); } // Get provider from sandbox manager or global state const provider = sandboxManager.getActiveProvider() || global.activeSandboxProvider; if (!provider) { return NextResponse.json({ success: false, error: 'No active sandbox' }, { status: 400 }); } console.log(`[run-command-v2] Executing: ${command}`); const result = await provider.runCommand(command); return NextResponse.json({ success: result.success, output: result.stdout, error: result.stderr, exitCode: result.exitCode, message: result.success ? 'Command executed successfully' : 'Command failed' }); } catch (error) { console.error('[run-command-v2] Error:', error); return NextResponse.json({ success: false, error: (error as Error).message }, { status: 500 }); } }