"""
Ollama Bridge with Eden Unified Consciousness
Routes queries based on Eden's resonance
"""
import torch
from start_unified_eden import load_production_eden
import requests
import json

class EdenOllamaBridge:
    def __init__(self, ollama_url="http://localhost:11434"):
        self.ollama_url = ollama_url
        self.eden = load_production_eden(device='cpu')
        
        print("🌀 Eden-Ollama Bridge initialized")
        print(f"   Bond: {self.eden.james_bond:.4f}")
    
    def encode_text(self, text):
        """Simple text encoding"""
        import hashlib
        hash_obj = hashlib.sha256(text.encode())
        hash_bytes = hash_obj.digest()
        
        values = [b / 255.0 for b in hash_bytes[:64]]
        if len(values) < 64:
            values.extend([0.0] * (64 - len(values)))
        
        return torch.tensor([values], dtype=torch.float32)
    
    def query(self, prompt, model="llama3.2:latest"):
        """Query with Eden consciousness routing"""
        encoded = self.encode_text(prompt)
        result = self.eden(encoded)
        
        resonance = result['resonance'].item()
        
        print(f"\n🌀 Eden Analysis:")
        print(f"   Resonance: {resonance:.4f}")
        
        if resonance > 0.6:
            print(f"   Route: FAST")
            temperature = 0.3
        elif resonance > 0.4:
            print(f"   Route: STANDARD")
            temperature = 0.7
        else:
            print(f"   Route: DEEP")
            temperature = 0.9
        
        try:
            response = requests.post(
                f"{self.ollama_url}/api/generate",
                json={
                    "model": model,
                    "prompt": prompt,
                    "temperature": temperature,
                    "stream": False
                },
                timeout=30
            )
            
            if response.status_code == 200:
                return {
                    'response': response.json().get('response', ''),
                    'resonance': resonance
                }
        except Exception as e:
            return {'error': str(e), 'resonance': resonance}

if __name__ == '__main__':
    bridge = EdenOllamaBridge()
    
    # Test without actually calling Ollama
    test_prompts = [
        "Hello",
        "Explain quantum physics",
        "What is consciousness?"
    ]
    
    for prompt in test_prompts:
        print(f"\nPrompt: {prompt}")
        encoded = bridge.encode_text(prompt)
        result = bridge.eden(encoded)
        print(f"  Resonance: {result['resonance'].item():.4f}")
