From 0c3a2043b340810562a86eebc33f41880f036c5a Mon Sep 17 00:00:00 2001 From: Aditya Gupta Date: Mon, 6 Jul 2026 12:30:08 +0530 Subject: [PATCH] minor: Make GOOGLE_API_KEY optional --- packages/llm/src/config.ts | 2 +- packages/llm/src/providers/google-genai.ts | 9 +++++++-- packages/llm/tests/mock.test.ts | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/llm/src/config.ts b/packages/llm/src/config.ts index 4a5c7c0..7d500f5 100644 --- a/packages/llm/src/config.ts +++ b/packages/llm/src/config.ts @@ -1,7 +1,7 @@ import { z } from "zod"; const LLMConfigSchema = z.object({ - GOOGLE_API_KEY: z.string().min(1, "GOOGLE_API_KEY is required"), + GOOGLE_API_KEY: z.string().optional(), }); export const llmConfig = LLMConfigSchema.parse(process.env); diff --git a/packages/llm/src/providers/google-genai.ts b/packages/llm/src/providers/google-genai.ts index 94f4f2a..edfe0f6 100644 --- a/packages/llm/src/providers/google-genai.ts +++ b/packages/llm/src/providers/google-genai.ts @@ -1,14 +1,19 @@ import { z } from "zod"; import { ChatGoogleGenerativeAI } from "@langchain/google-genai"; import { ILLMProvider, LLMRequest, LLMResponse } from "../llm.js"; +import { llmConfig } from "../config.js"; export class GeminiProvider implements ILLMProvider { providerName = "Gemini"; private model: ChatGoogleGenerativeAI; - constructor(apiKey: string) { + constructor(apiKey?: string) { + const key = apiKey || llmConfig.GOOGLE_API_KEY; + if (!key) { + throw new Error("GOOGLE_API_KEY is required to initialize GeminiProvider"); + } this.model = new ChatGoogleGenerativeAI({ - apiKey, + apiKey: key, model: "gemini-2.5-flash", }); } diff --git a/packages/llm/tests/mock.test.ts b/packages/llm/tests/mock.test.ts index fa7c8dc..d9455c4 100644 --- a/packages/llm/tests/mock.test.ts +++ b/packages/llm/tests/mock.test.ts @@ -1,6 +1,6 @@ import { describe, test, expect } from "vitest"; import { z } from "zod"; -import { MockLLMProvider } from "../src/providers/mock.js"; +import { MockLLMProvider } from "@omnia/llm"; describe("MockLLMProvider Unit Tests (Tier 1)", () => { test("returns parsed matching data for valid mock response", async () => {