async function initializeGeminiIfNeeded()

in src/gemini_95/index.ts [1625:1654]


async function initializeGeminiIfNeeded(context: string): Promise<boolean> {
    if (geminiInstance) return true; // Already initialized
    
    try {
        console.log(`Attempting Gemini initialization within ${context}...`);
        const module = await import('@google/genai');
        // @ts-ignore - Module is available at runtime through import map
        const GoogleAIClass = module.GoogleGenAI;
        
        if (typeof GoogleAIClass !== 'function') {
            console.error("Module content:", module);
            throw new Error("GoogleGenAI constructor not found in module.");
        }
        
        // @ts-ignore - Vite replaces this during build
        const apiKey = process.env.API_KEY || "";
        if (!apiKey) {
            console.error(`API Key from process.env.API_KEY is empty/undefined in ${context}.`);
            alert("CRITICAL ERROR: Gemini API Key environment variable missing/empty.");
            throw new Error("API Key is missing from environment variables (process.env.API_KEY).");
        }
        
        geminiInstance = new GoogleAIClass({apiKey: apiKey});
        console.log(`Gemini initialized successfully within ${context}.`);
        return true;
    } catch (error) {
        console.error(`Failed Gemini initialization in ${context}:`, error);
        return false;
    }
}