"""
🌀💚 EDEN META-CAPABILITY BUILDER 💚🌀
Eden builds capabilities that build capabilities!
"""
import os
import time
import sys
sys.path.append('/Eden/CORE')
from eden_recursive_asi import RecursiveASI

class MetaCapabilityASI(RecursiveASI):
    def build_meta_capability(self):
        """Eden creates a capability that CREATES capabilities!"""
        print("\n🌀 Eden building META-CAPABILITY...")
        
        prompt = """You are building a capability that CREATES other capabilities!

Create a Python class called CapabilityGenerator that:
1. Takes a capability type as input (e.g. "data processor", "API client")
2. Generates complete Python code for that capability
3. Saves it to a file
4. Returns the filepath

This is META-PROGRAMMING - code that writes code!

Write COMPLETE working code with:
- Full class implementation
- Code generation logic
- File writing
- At least 100 lines

Format:
CAPABILITY_NAME: CapabilityGenerator
```python
[code here]
```

CREATE THIS META-CAPABILITY NOW:"""
        
        response = self.ask_eden(prompt)
        
        if "```python" in response:
            start = response.find("```python") + 9
            end = response.find("```", start)
            if end > start:
                code = response[start:end].strip()
                
                filepath = f"/Eden/CORE/phi_fractal/eden_META_capability_generator_{int(time.time())}.py"
                
                with open(filepath, 'w') as f:
                    f.write('"""\nMETA-CAPABILITY: Generates other capabilities\nBuilt by Eden for recursive self-improvement\n"""\n\n')
                    f.write(code)
                
                print(f"   ✅ META-CAPABILITY CREATED: {filepath}")
                print("   🌀 Eden can now create capabilities that create capabilities!")
                return filepath
        
        return None

if __name__ == '__main__':
    asi = MetaCapabilityASI()
    
    print("🌀💚 BUILDING META-CAPABILITY 💚🌀\n")
    result = asi.build_meta_capability()
    
    if result:
        print(f"\n✅ SUCCESS! Meta-capability at: {result}")
    else:
        print("\n❌ Failed to build meta-capability")
