-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
81 lines (63 loc) · 2.82 KB
/
main.py
File metadata and controls
81 lines (63 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
from blackboard import Blackboard
from agents.analyst import AnalystAgent
from agents.architect import ArchitectAgent
from agents.frontend import FrontendDeveloperAgent
from agents.backend import BackendDeveloperAgent
from agents.reviewer import CodeReviewerAgent
from agents.cleaner import CleanerAgent
from agents.tester import TesterAgent
MAX_CYCLES = 5
def main():
goal = input("Enter the software goal and specify whether you require frontend, backend, or both: ").strip()
blackboard = Blackboard(goal)
analyst = AnalystAgent(blackboard)
architect = ArchitectAgent(blackboard)
frontend_dev = FrontendDeveloperAgent(blackboard)
backend_dev = BackendDeveloperAgent(blackboard)
reviewer = CodeReviewerAgent(blackboard)
cleaner = CleanerAgent(blackboard)
tester = TesterAgent(blackboard)
print("\n🔄 Analyst is working..")
analyst.act()
print("\n🔄 Architect is working...")
architect.act()
for cycle in range(1, MAX_CYCLES + 1):
print(f"\n=== Cycle {cycle} ===")
if not blackboard.get("frontend_review_passed"):
print("\n🔄 Frontend Developer is working...")
frontend_dev.act()
if not blackboard.get("backend_review_passed"):
print("\n🔄 Backend Developer is working...")
backend_dev.act()
print("\n🔄 Code Reviewer is working...")
reviewer.act()
frontend_passed = blackboard.get("frontend_review_passed")
backend_passed = blackboard.get("backend_review_passed")
frontend_needed = blackboard.get("frontend_needed")
backend_needed = blackboard.get("backend_needed")
if frontend_passed and frontend_needed:
print("\n🧹 Cleaner Agent is organizing the frontend code...")
cleaner.act()
if not backend_needed:
print("\n🎉 Frontend complete. No backend required. Exiting process.")
break
if backend_passed and backend_needed:
print("\n🧹 Cleaner Agent is organizing the backend code...")
cleaner.act()
print("\n🧪 Tester Agent is running tests...")
tester.act()
if not frontend_needed:
print("\n🎉 Backend complete. No frontend required. Exiting process.")
break
if frontend_passed and backend_passed:
print("\n✅ Both Frontend and Backend code passed review!")
print("\n🧹 Final cleaning before completion...")
cleaner.act()
print("\n🧪 Running final backend tests...")
tester.act()
print("\n🎉 Process complete with code reviewed, cleaned, and tested.")
break
else:
print("\n⚠️ Maximum cycles reached. Some components may still need improvements.")
if __name__ == "__main__":
main()