CodeReview_Buddy / app /graph /workflow.py
adityamanwatkar's picture
Create graph/workflow.py
659e80b verified
from langgraph.graph import StateGraph
from typing import TypedDict
from app.agents.analyzer import analyzer_node
from app.agents.generator import generator_node
from app.agents.reviewer import reviewer_node
from app.agents.refactor import refactor_node
from app.config import MAX_ITERATIONS
class CodeState(TypedDict):
prompt: str
structured_prompt: str
code: str
review: str
iteration: int
def should_continue(state):
if state["iteration"] >= MAX_ITERATIONS:
return "end"
if "critical" in state["review"].lower():
return "refactor"
return "end"
def build_graph():
builder = StateGraph(CodeState)
builder.add_node("analyzer", analyzer_node)
builder.add_node("generator", generator_node)
builder.add_node("reviewer", reviewer_node)
builder.add_node("refactor", refactor_node)
builder.set_entry_point("analyzer")
builder.add_edge("analyzer", "generator")
builder.add_edge("generator", "reviewer")
builder.add_conditional_edges(
"reviewer",
should_continue,
{
"refactor": "refactor",
"end": None
}
)
builder.add_edge("refactor", "reviewer")
return builder.compile()