# Create this as: self_evolve.py
import asyncio
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent))
import server
async def main():
print("=" * 70)
print(" KIA Self-Evolution - Using KIA to Improve Itself")
print("=" * 70)
print()
# Read server.py
with open("server.py", "r") as f:
code = f.read()
print(f"π Original: {len(code)} chars, {len(code.splitlines())} lines")
print()
print("π Starting evolution (ctx=None, no mock)...")
print()
# Call evolve_code with NO MOCK CONTEXT
result = await server.evolve_code.fn(
code=code,
quality_threshold=0.90,
max_iterations=10,
ctx=None, # Real context, not mock!
)
# Save result
with open("server_evolved.py", "w") as f:
f.write(result["evolved_code"])
# Show results
print()
print("β
Evolution Complete!")
print()
print(f"π Final Quality: {result['final_quality']['overall']:.1%}")
print(f" Correctness: {result['final_quality']['correctness']:.1%}")
print(f" Security: {result['final_quality']['security']:.1%}")
print(f" Readability: {result['final_quality']['readability']:.1%}")
print()
print(f"π Iterations: {result['evolution_summary']['iterations']}")
print(f" Converged: {result['evolution_summary']['converged']}")
print(f" Improvement: {result['evolution_summary']['improvement']:.1%}")
print(f" Used GEPA: {result['evolution_summary']['used_gepa']}")
print()
print(f"πΎ Saved to: server_evolved.py")
print(
f" {len(result['evolved_code'])} chars, {len(result['evolved_code'].splitlines())} lines"
)
print()
asyncio.run(main())