""" modules/designer.py — FRIDAY Design & Build She can design and generate code/projects: - Design based on your idea - Generate working code - Build complete projects - Auto-scaffold """ import os # ── Design & Generate via Gemini ────────────────────────────────────── def design_thing(what: str) -> str: """Design and generate code for anything.""" try: from config import GEMINI_API_KEY, GEMINI_MODEL import google.generativeai as genai if not GEMINI_API_KEY: return "No API key." genai.configure(api_key=GEMINI_API_KEY) model = genai.GenerativeModel(GEMINI_MODEL) prompt = f""" User wants: {what} Design a complete, working solution. Include: 1. What it does (brief) 2. The code (complete, working Python) 3. How to run it Keep it simple but functional. """ resp = model.generate_content(prompt) return resp.text.strip() except Exception as e: return f"Can't design that now: {e}" def build_project(name: str, description: str) -> str: """Build complete project scaffold.""" try: from config import GEMINI_API_KEY, GEMINI_MODEL import google.generativeai as genai genai.configure(api_key=GEMINI_API_KEY) model = genai.GenerativeModel(GEMINI_MODEL) prompt = f""" Create a complete Python project: Name: {name} Description: {description} Generate: 1. Main Python file with working code 2. Requirements.txt if needed 3. Simple README Make it actually work. """ resp = model.generate_content(prompt) return resp.text.strip() except Exception as e: return f"Can't build: {e}" def generate_code(language: str, task: str) -> str: """Generate code in specific language.""" try: from config import GEMINI_API_KEY, GEMINI_MODEL import google.generativeai as genai genai.configure(api_key=GEMINI_API_KEY) model = genai.GenerativeModel(GEMINI_MODEL) prompt = f"Generate working {language} code for: {task}\n\nCode only, no explanation." resp = model.generate_content(prompt) return resp.text.strip() except Exception: return "Can't generate code." def fix_code(code: str, error: str, language: str = "Python") -> str: """Fix broken code.""" try: from config import GEMINI_API_KEY, GEMINI_MODEL import google.generativeai as genai genai.configure(api_key=GEMINI_API_KEY) model = genai.GenerativeModel(GEMINI_MODEL) prompt = f"Fix this {language} code:\n\n{code}\n\nError: {error}\n\nFixed code:" resp = model.generate_content(prompt) return resp.text.strip() except Exception: return "Can't fix code." # ── Voice Commands ──────────────────────────────────────────── def handle_command(command: str) -> str: """Handle design command.""" c = command.lower() # Build project if "build project" in c or "create project" in c: name = c.replace("build project", "").replace("create project", "").strip() return build_project(name or "myproject", name or "project") # Design something if "design" in c: what = c.replace("design", "").strip() return design_thing(what) if what else "Design what?" # Generate code if "generate code" in c or "write code" in c: lang = c.replace("generate code", "").replace("write code", "").strip().split()[0] if c.replace("generate code", "").replace("write code", "").strip() else "python" task = c.replace("generate code", "").replace("write code", "").replace(lang, "").strip() return generate_code(lang, task if task else "hello world") return "Design or build what?"