diff --git a/packages/core/lib/utils.ts b/packages/core/lib/utils.ts index 476d99bf3..ac4162459 100644 --- a/packages/core/lib/utils.ts +++ b/packages/core/lib/utils.ts @@ -399,7 +399,7 @@ export const providerEnvVarMap: Partial< > = { openai: "OPENAI_API_KEY", anthropic: "ANTHROPIC_API_KEY", - google: ["GEMINI_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY"], + google: ["GEMINI_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY", "GOOGLE_API_KEY"], groq: "GROQ_API_KEY", cerebras: "CEREBRAS_API_KEY", togetherai: "TOGETHER_AI_API_KEY", diff --git a/packages/core/tests/google-api-key-env.test.ts b/packages/core/tests/google-api-key-env.test.ts new file mode 100644 index 000000000..f357f70eb --- /dev/null +++ b/packages/core/tests/google-api-key-env.test.ts @@ -0,0 +1,47 @@ +import { describe, it, expect, beforeEach, afterEach } from "vitest"; +import { loadApiKeyFromEnv } from "../lib/utils"; + +describe("Google API Key Environment Variable", () => { + const originalEnv = process.env; + + beforeEach(() => { + process.env = { ...originalEnv }; + }); + + afterEach(() => { + process.env = originalEnv; + }); + + it("should read GOOGLE_API_KEY for google provider", () => { + process.env.GOOGLE_API_KEY = "test-google-key"; + + const apiKey = loadApiKeyFromEnv("google", () => {}); + + expect(apiKey).toBe("test-google-key"); + }); + + it("should read GEMINI_API_KEY for google provider", () => { + process.env.GEMINI_API_KEY = "test-gemini-key"; + + const apiKey = loadApiKeyFromEnv("google", () => {}); + + expect(apiKey).toBe("test-gemini-key"); + }); + + it("should read GOOGLE_GENERATIVE_AI_API_KEY for google provider", () => { + process.env.GOOGLE_GENERATIVE_AI_API_KEY = "test-gen-ai-key"; + + const apiKey = loadApiKeyFromEnv("google", () => {}); + + expect(apiKey).toBe("test-gen-ai-key"); + }); + + it("should prioritize GEMINI_API_KEY over GOOGLE_API_KEY", () => { + process.env.GEMINI_API_KEY = "gemini-key"; + process.env.GOOGLE_API_KEY = "google-key"; + + const apiKey = loadApiKeyFromEnv("google", () => {}); + + expect(apiKey).toBe("gemini-key"); + }); +}); \ No newline at end of file