export const DEFAULT_GEMINI_WEB_SEARCH_MODEL = "gemini-2.5-flash"; export type GeminiConfig = { apiKey?: unknown; model?: unknown; }; function isRecord(value: unknown): value is Record { return typeof value === "object" && value !== null && !Array.isArray(value); } function trimToUndefined(value: unknown): string | undefined { return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined; } export function resolveGeminiConfig(searchConfig?: Record): GeminiConfig { const gemini = searchConfig?.gemini; return isRecord(gemini) ? gemini : {}; } export function resolveGeminiApiKey( gemini?: GeminiConfig, env: Record = process.env, ): string | undefined { return trimToUndefined(gemini?.apiKey) ?? trimToUndefined(env.GEMINI_API_KEY); } export function resolveGeminiModel(gemini?: GeminiConfig): string { return trimToUndefined(gemini?.model) ?? DEFAULT_GEMINI_WEB_SEARCH_MODEL; }