[ide-mode] Wire up env variables to sandbox (#5804)
This commit is contained in:
parent
407393b128
commit
5ec4ea9b4d
|
@ -614,6 +614,17 @@ export async function start_sandbox(
|
|||
args.push('--env', `COLORTERM=${process.env.COLORTERM}`);
|
||||
}
|
||||
|
||||
// Pass through IDE mode environment variables
|
||||
for (const envVar of [
|
||||
'GEMINI_CLI_IDE_SERVER_PORT',
|
||||
'GEMINI_CLI_IDE_WORKSPACE_PATH',
|
||||
'TERM_PROGRAM',
|
||||
]) {
|
||||
if (process.env[envVar]) {
|
||||
args.push('--env', `${envVar}=${process.env[envVar]}`);
|
||||
}
|
||||
}
|
||||
|
||||
// copy VIRTUAL_ENV if under working directory
|
||||
// also mount-replace VIRTUAL_ENV directory with <project_settings>/sandbox.venv
|
||||
// sandbox can then set up this new VIRTUAL_ENV directory using sandbox.bashrc (see below)
|
||||
|
|
|
@ -324,7 +324,7 @@ export class IdeClient {
|
|||
version: '1.0.0',
|
||||
});
|
||||
transport = new StreamableHTTPClientTransport(
|
||||
new URL(`http://localhost:${port}/mcp`),
|
||||
new URL(`http://${getIdeServerHost()}:${port}/mcp`),
|
||||
);
|
||||
await this.client.connect(transport);
|
||||
this.registerClientHandlers();
|
||||
|
@ -345,3 +345,12 @@ export class IdeClient {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getIdeServerHost() {
|
||||
const isInContainer =
|
||||
fs.existsSync('/.dockerenv') ||
|
||||
fs.existsSync('/run/.containerenv') ||
|
||||
!!process.env.SANDBOX ||
|
||||
!!process.env.container;
|
||||
return isInContainer ? 'host.docker.internal' : 'localhost';
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue