summaryrefslogtreecommitdiff
path: root/packages/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src')
-rw-r--r--packages/core/src/tools/shell.test.ts20
-rw-r--r--packages/core/src/tools/shell.ts8
2 files changed, 28 insertions, 0 deletions
diff --git a/packages/core/src/tools/shell.test.ts b/packages/core/src/tools/shell.test.ts
index f358f972..0dff776f 100644
--- a/packages/core/src/tools/shell.test.ts
+++ b/packages/core/src/tools/shell.test.ts
@@ -514,4 +514,24 @@ describe('ShellTool Bug Reproduction', () => {
undefined,
);
});
+
+ it('should pass GEMINI_CLI environment variable to executed commands', async () => {
+ config = {
+ getCoreTools: () => undefined,
+ getExcludeTools: () => undefined,
+ getDebugMode: () => false,
+ getGeminiClient: () => ({}) as GeminiClient,
+ getTargetDir: () => '.',
+ getSummarizeToolOutputConfig: () => ({}),
+ } as unknown as Config;
+ shellTool = new ShellTool(config);
+
+ const abortSignal = new AbortController().signal;
+ const result = await shellTool.execute(
+ { command: 'echo "$GEMINI_CLI"' },
+ abortSignal,
+ );
+
+ expect(result.returnDisplay).toBe('1\n');
+ });
});
diff --git a/packages/core/src/tools/shell.ts b/packages/core/src/tools/shell.ts
index af514546..44df5ece 100644
--- a/packages/core/src/tools/shell.ts
+++ b/packages/core/src/tools/shell.ts
@@ -322,11 +322,19 @@ Process Group PGID: Process group started or \`(none)\``,
stdio: ['ignore', 'pipe', 'pipe'],
// detached: true, // ensure subprocess starts its own process group (esp. in Linux)
cwd: path.resolve(this.config.getTargetDir(), params.directory || ''),
+ env: {
+ ...process.env,
+ GEMINI_CLI: '1',
+ },
})
: spawn('bash', ['-c', command], {
stdio: ['ignore', 'pipe', 'pipe'],
detached: true, // ensure subprocess starts its own process group (esp. in Linux)
cwd: path.resolve(this.config.getTargetDir(), params.directory || ''),
+ env: {
+ ...process.env,
+ GEMINI_CLI: '1',
+ },
});
let exited = false;