@@ -23,13 +23,25 @@ const bold = (s: string) => `\x1b[1m${s}\x1b[0m`;
2323const red = ( s : string ) => `\x1b[31m${ s } \x1b[0m` ;
2424const green = ( s : string ) => `\x1b[32m${ s } \x1b[0m` ;
2525
26- function parseArgs ( argv : string [ ] ) : { model ? : string ; dir: string ; prompt ? : string ; env ? : string ; sandbox ? : boolean } {
26+ interface ParsedArgs {
27+ model ? : string ;
28+ dir: string ;
29+ prompt ? : string ;
30+ env ? : string ;
31+ sandbox ? : boolean ;
32+ sandboxRepo ? : string ;
33+ sandboxToken ? : string ;
34+ }
35+
36+ function parseArgs ( argv : string [ ] ) : ParsedArgs {
2737 const args = argv . slice ( 2 ) ;
2838 let model : string | undefined ;
2939 let dir = process . cwd ( ) ;
3040 let prompt : string | undefined ;
3141 let env : string | undefined ;
3242 let sandbox = false ;
43+ let sandboxRepo : string | undefined ;
44+ let sandboxToken : string | undefined ;
3345
3446 for ( let i = 0 ; i < args . length ; i ++ ) {
3547 switch ( args [ i ] ) {
@@ -53,6 +65,12 @@ function parseArgs(argv: string[]): { model?: string; dir: string; prompt?: stri
5365 case "-s" :
5466 sandbox = true ;
5567 break ;
68+ case "--sandbox-repo" :
69+ sandboxRepo = args [ ++ i ] ;
70+ break ;
71+ case "--sandbox-token" :
72+ sandboxToken = args [ ++ i ] ;
73+ break ;
5674 default :
5775 if ( ! args [ i ] . startsWith ( "-" ) ) {
5876 prompt = args [ i ] ;
@@ -61,7 +79,7 @@ function parseArgs(argv: string[]): { model?: string; dir: string; prompt?: stri
6179 }
6280 }
6381
64- return { model, dir, prompt, env, sandbox } ;
82+ return { model, dir, prompt, env, sandbox, sandboxRepo , sandboxToken } ;
6583}
6684
6785function handleEvent (
@@ -239,7 +257,7 @@ async function ensureRepo(dir: string, model?: string): Promise<string> {
239257}
240258
241259async function main ( ) : Promise < void > {
242- const { model, dir : rawDir , prompt, env, sandbox : useSandbox } = parseArgs ( process . argv ) ;
260+ const { model, dir : rawDir , prompt, env, sandbox : useSandbox , sandboxRepo , sandboxToken } = parseArgs ( process . argv ) ;
243261
244262 // If no --dir given interactively, ask for it
245263 let dir = rawDir ;
@@ -253,7 +271,11 @@ async function main(): Promise<void> {
253271 // Create sandbox context if --sandbox flag is set
254272 let sandboxCtx : SandboxContext | undefined ;
255273 if ( useSandbox ) {
256- const sandboxConfig : SandboxConfig = { provider : "e2b" } ;
274+ const sandboxConfig : SandboxConfig = {
275+ provider : "e2b" ,
276+ repository : sandboxRepo ,
277+ token : sandboxToken ,
278+ } ;
257279 sandboxCtx = await createSandboxContext ( sandboxConfig , resolve ( dir ) ) ;
258280 console . log ( dim ( "Starting sandbox VM..." ) ) ;
259281 await sandboxCtx . gitMachine . start ( ) ;
0 commit comments