| | 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)) |