the universal sandbox runtime for agents and humans. pocketenv.io
sandbox openclaw agent claude-code vercel-sandbox deno-sandbox cloudflare-sandbox atproto sprites daytona
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add e2b auth support to sandbox helpers

Import e2bAuth, add e2bAuthParams to AuthParams, fetch the e2bAuth
row from the DB, and decrypt apiKey into e2bApiKey in built credentials

+12
+12
apps/modal-sandbox/src/lib/sandbox-helpers.ts
··· 7 7 denoAuth, 8 8 vercelAuth, 9 9 modalAuth, 10 + e2bAuth, 10 11 } from "../schema"; 11 12 import { 12 13 BaseSandbox, ··· 31 32 tokenId?: string; 32 33 tokenSecret?: string; 33 34 } | null; 35 + e2bAuthParams?: { 36 + apiKey?: string; 37 + } | null; 34 38 } 35 39 36 40 export async function getAuthParams( ··· 43 47 [denoAuthParams], 44 48 [vercelAuthParams], 45 49 [modalAuthParams], 50 + [e2bAuthParams], 46 51 ] = await Promise.all([ 47 52 db 48 53 .select() ··· 69 74 .from(modalAuth) 70 75 .where(eq(modalAuth.sandboxId, sandboxDbId)) 71 76 .execute(), 77 + db 78 + .select() 79 + .from(e2bAuth) 80 + .where(eq(modalAuth.sandboxId, sandboxDbId)) 81 + .execute(), 72 82 ]); 73 83 return { 74 84 spriteAuthParams, ··· 76 86 denoAuthParams, 77 87 vercelAuthParams, 78 88 modalAuthParams, 89 + e2bAuthParams, 79 90 }; 80 91 } 81 92 ··· 90 101 vercelTeamId: auth.vercelAuthParams?.teamId, 91 102 modalTokenId: decrypt(auth.modalAuthParams?.tokenId), 92 103 modalTokenSecret: decrypt(auth.modalAuthParams?.tokenSecret), 104 + e2bApiKey: decrypt(auth.e2bAuthParams?.apiKey), 93 105 }; 94 106 } 95 107