@@ -29,6 +29,7 @@ import { getSignature } from './signature'
2929import { compareVersions } from 'compare-versions'
3030import { SandboxError } from '../errors'
3131import { ENVD_DEBUG_FALLBACK , ENVD_DEFAULT_USER } from '../envd/versions'
32+ import { shellQuote } from '../utils'
3233
3334/**
3435 * Options for sandbox upload/download URL generation.
@@ -273,9 +274,11 @@ export class Sandbox extends SandboxApi {
273274 sandboxOpts : opts ,
274275 }
275276 : {
276- template : templateOrOpts ?. mcp
277- ? this . defaultMcpTemplate
278- : this . defaultTemplate ,
277+ template :
278+ templateOrOpts ?. template ??
279+ ( templateOrOpts ?. mcp
280+ ? this . defaultMcpTemplate
281+ : this . defaultTemplate ) ,
279282 sandboxOpts : templateOrOpts ,
280283 }
281284
@@ -299,7 +302,7 @@ export class Sandbox extends SandboxApi {
299302 if ( sandboxOpts ?. mcp ) {
300303 sandbox . mcpToken = crypto . randomUUID ( )
301304 const res = await sandbox . commands . run (
302- `mcp-gateway --config ' ${ JSON . stringify ( sandboxOpts ? .mcp ) } ' ` ,
305+ `mcp-gateway --config ${ shellQuote ( JSON . stringify ( sandboxOpts . mcp ) ) } ` ,
303306 {
304307 user : 'root' ,
305308 envs : {
@@ -368,9 +371,11 @@ export class Sandbox extends SandboxApi {
368371 sandboxOpts : opts ,
369372 }
370373 : {
371- template : templateOrOpts ?. mcp
372- ? this . defaultMcpTemplate
373- : this . defaultTemplate ,
374+ template :
375+ templateOrOpts ?. template ??
376+ ( templateOrOpts ?. mcp
377+ ? this . defaultMcpTemplate
378+ : this . defaultTemplate ) ,
374379 sandboxOpts : templateOrOpts ,
375380 }
376381
@@ -394,7 +399,7 @@ export class Sandbox extends SandboxApi {
394399 if ( sandboxOpts ?. mcp ) {
395400 sandbox . mcpToken = crypto . randomUUID ( )
396401 const res = await sandbox . commands . run (
397- `mcp-gateway --config ' ${ JSON . stringify ( sandboxOpts ? .mcp ) } ' ` ,
402+ `mcp-gateway --config ${ shellQuote ( JSON . stringify ( sandboxOpts . mcp ) ) } ` ,
398403 {
399404 user : 'root' ,
400405 envs : {
0 commit comments