| 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})
|
|
|
|
|
| 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()
|
|
|
| dependencies.update([
|
| "python-dotenv",
|
| "pydantic",
|
| "fastapi",
|
| "uvicorn",
|
| "pytest",
|
| "pytest-asyncio"
|
| ])
|
|
|
|
|
| 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)) |