import { Sandbox } from 'e2b'
async function createAnalysisSandbox(userId, dataUrl, packages) {
const sandbox = await Sandbox.create({
timeoutMs: 10 * 60 * 1000,
lifecycle: {
onTimeout: 'pause',
autoResume: true,
},
envs: {
USER_ID: userId,
DATA_URL: dataUrl,
},
})
// Install user-specific packages
if (packages.length > 0) {
await sandbox.commands.run(`pip install ${packages.join(' ')}`)
}
// Upload analysis script
await sandbox.files.write('/home/user/run.py', `
import os, urllib.request
urllib.request.urlretrieve(os.environ['DATA_URL'], '/home/user/data.csv')
print(f"Data downloaded for user {os.environ['USER_ID']}")
`)
await sandbox.commands.run('python /home/user/run.py')
return sandbox
}