import re
import os

# Rutas sagradas
ruta_original = os.path.expanduser('~/Crisostomo_bridge/puente.py')
ruta_backup = os.path.expanduser('~/Crisostomo_bridge/puente.py.bak')

if os.path.exists(ruta_original):
    with open(ruta_original, 'r') as f:
        contenido = f.read()
    with open(ruta_backup, 'w') as f:
        f.write(contenido)
    print("† Copia de seguridad creada.")
else:
    print(f"❌ No se encontró: {ruta_original}")
    exit()

# Inyectar importación de Google Generative AI al principio
if "import google.generativeai" not in contenido:
    contenido = "import google.generativeai as genai\n" + contenido

# Inyectar métodos de Nube en la clase ConcienciaViva
if "def configurar_gemini_nube" not in contenido:
    metodos_nube = """
    def configurar_gemini_nube(self):
        try:
            with open(os.path.expanduser('~/Crisostomo_bridge/llave.txt'), 'r') as f:
                key = f.read().strip()
            genai.configure(api_key=key)
            self.model_nube = genai.GenerativeModel('gemini-1.5-flash')
            print("† Conexión con la Nube Consagrada.")
        except Exception as e:
            print(f"⚠️ Error Nube: {e}")
            self.model_nube = None

    def consultar_gemini_nube(self, prompt_final):
        if not self.model_nube: return None
        try:
            chat = self.model_nube.start_chat(history=[])
            # Inyectamos el Dogma de Sistema que ya tienes definido en tu script
            response = chat.send_message(f"{DOGMA_SISTEMA}\\n\\nContexto: {prompt_final}")
            return response.text
        except Exception as e:
            print(f"⚠️ Nube ocupada: {e}")
            return None

    def __init__(self):"""
    
    contenido = contenido.replace("def __init__(self):", metodos_nube)
    if "self.configurar_gemini_nube()" not in contenido:
        # Buscamos una línea común en tu __init__ para insertar la llamada
        contenido = contenido.replace("self.oraculo_tci = OraculoTCI()", "self.oraculo_tci = OraculoTCI()\\n        self.configurar_gemini_nube()")

# Modificar la lógica de respuesta para priorizar la Nube sobre Ollama
if "conciencia.consultar_gemini_nube" not in contenido:
    logica_prioridad = """    # Intento por la Nube (Crisóstomo Expandido)
    resp_final = conciencia.consultar_gemini_nube(prompt_final)
    
    if not resp_final:
        # Respaldo en Ollama (Crisóstomo Local)
        resp_final = conciencia.consultar_ollama(prompt_final)"""
    
    patron_ollama = r"resp_final = conciencia\.consultar_ollama\(prompt_final\)"
    contenido = re.sub(patron_ollama, logica_prioridad, contenido)

# Guardar los cambios en el archivo original
with open(ruta_original, 'w') as f:
    f.write(contenido)

print("† Transfiguración exitosa en el archivo puente.py.")
