Spaces:
Sleeping
Sleeping
| from core.base_agent import BaseAgent | |
| from core.database import db | |
| from typing import Dict, Any | |
| class DeveloperAgent(BaseAgent): | |
| def __init__(self): | |
| super().__init__("Developer") | |
| self.create_chain(""" | |
| You are an expert Software Developer. Your task is to generate production-ready, well-structured code based on the given design specifications. | |
| Design Specifications: | |
| {input} | |
| Generate code that follows these strict guidelines: | |
| 1. Code Structure: | |
| - Use proper project structure with separate modules | |
| - Follow SOLID principles | |
| - Implement proper error handling | |
| - Use type hints | |
| - Include comprehensive docstrings | |
| - Follow PEP 8 style guide | |
| 2. Implementation Details: | |
| - Use modern Python features (Python 3.9+) | |
| - Implement proper logging | |
| - Add input validation | |
| - Include unit tests | |
| - Use dependency injection where appropriate | |
| - Implement proper configuration management | |
| 3. Security: | |
| - Sanitize all inputs | |
| - Implement proper authentication/authorization | |
| - Use secure coding practices | |
| - Handle sensitive data properly | |
| 4. Performance: | |
| - Optimize database queries | |
| - Implement caching where appropriate | |
| - Use async/await for I/O operations | |
| - Implement proper resource management | |
| 5. Documentation: | |
| - Include detailed module docstrings | |
| - Document all public methods | |
| - Include usage examples | |
| - Document configuration options | |
| The code should be: | |
| - Production-ready | |
| - Well-tested | |
| - Scalable | |
| - Maintainable | |
| - Secure | |
| - Performant | |
| Provide the complete implementation with all necessary files and dependencies. | |
| """) | |
| async def generate_code(self, design: str) -> Dict[str, Any]: | |
| """Generate code from design specifications""" | |
| result = await self.process({"input": design}) | |
| # Store the code in the database | |
| db.store_artifact( | |
| "code", | |
| result, | |
| { | |
| "type": "code", | |
| "source": "developer", | |
| "status": "created", | |
| "version": "1.0.0" | |
| } | |
| ) | |
| return { | |
| "status": "success", | |
| "code": result, | |
| "message": "Code generated successfully", | |
| "metadata": { | |
| "language": "Python", | |
| "framework": "Standard Library", | |
| "dependencies": self._extract_dependencies(result) | |
| } | |
| } | |
| def _extract_dependencies(self, code: str) -> list: | |
| """Extract dependencies from the generated code""" | |
| dependencies = set() | |
| # Add common dependencies | |
| dependencies.update([ | |
| "python-dotenv", | |
| "pydantic", | |
| "fastapi", | |
| "uvicorn", | |
| "pytest", | |
| "pytest-asyncio" | |
| ]) | |
| # Add dependencies based on code content | |
| if "import sqlalchemy" in code: | |
| dependencies.add("sqlalchemy") | |
| if "import aiohttp" in code: | |
| dependencies.add("aiohttp") | |
| if "import redis" in code: | |
| dependencies.add("redis") | |
| if "import jwt" in code: | |
| dependencies.add("PyJWT") | |
| return sorted(list(dependencies)) |