Files
hermes-agent/agent/evolution/code_refactorer.py

61 lines
1.8 KiB
Python
Raw Normal View History

"""Phase 9: Codebase-Wide Refactoring & Optimization.
Performs a "Deep Audit" of the codebase to identify bottlenecks and vulnerabilities.
"""
import logging
import json
from typing import List, Dict, Any
from agent.gemini_adapter import GeminiAdapter
logger = logging.getLogger(__name__)
class CodeRefactorer:
def __init__(self):
self.adapter = GeminiAdapter()
def audit_codebase(self, file_contents: Dict[str, str]) -> Dict[str, Any]:
"""Performs a deep audit of the provided codebase files."""
logger.info(f"Auditing {len(file_contents)} files for refactoring and optimization.")
# Combine file contents for context
context = "\n".join([f"--- {path} ---\n{content}" for path, content in file_contents.items()])
prompt = f"""
Codebase Context:
{context}
Please perform a 'Deep Audit' of this codebase.
Identify:
1. Performance bottlenecks (e.g., inefficient loops, redundant API calls).
2. Security vulnerabilities (e.g., hardcoded keys, PII leaks, insecure defaults).
3. Architectural debt (e.g., tight coupling, lack of modularity).
Generate a set of 'Refactoring Patches' to address these issues.
Format the output as JSON:
{{
"audit_report": "...",
"vulnerabilities": [...],
"performance_issues": [...],
"patches": [
{{
"file": "...",
"description": "...",
"original_code": "...",
"replacement_code": "..."
}}
]
}}
"""
result = self.adapter.generate(
model="gemini-3.1-pro-preview",
prompt=prompt,
system_instruction="You are Timmy's Code Refactorer. Your goal is to make the codebase as efficient, secure, and sovereign as possible.",
thinking=True,
response_mime_type="application/json"
)
audit_data = json.loads(result["text"])
return audit_data