nikhmr1235's picture
bug fix for ValueError: Interrupt node `update_review_body_based_on_human_input_node` not found
2c6f0a7 verified
from langgraph.graph import StateGraph, END
from .state import PRReviewState
from .nodes import (
code_retriever_node,
code_reviewer_node,
feedback_formatter_node,
post_code_review_node,
update_review_body_based_on_human_input_node,
)
def create_graph():
"""Creates and compiles the LangGraph for the PR review process."""
workflow = StateGraph(PRReviewState)
# --- Node Definitions ---
workflow.add_node("code_retriever", code_retriever_node)
workflow.add_node("code_reviewer", code_reviewer_node)
workflow.add_node("feedback_formatter", feedback_formatter_node)
workflow.add_node("post_code_review", post_code_review_node)
workflow.add_node("update_review_body_based_on_human_input_node", update_review_body_based_on_human_input_node)
# --- Edge Definitions ---
workflow.set_entry_point("code_retriever")
workflow.add_edge("code_retriever", "code_reviewer")
workflow.add_edge("code_reviewer", "feedback_formatter")
workflow.add_edge("feedback_formatter", "post_code_review")
workflow.add_edge("post_code_review", "update_review_body_based_on_human_input_node")
workflow.add_edge("update_review_body_based_on_human_input_node", END)
# The compilation with the checkpointer is now handled in app.py
return workflow
# To make it runnable for debugging or direct invocation
if __name__ == "__main__":
app = create_graph()
# You can add debug invocation here, e.g.:
# from .state import PRReviewState
# initial_state = PRReviewState(repo_name="your/repo", pr_id=123, ...)
# for event in app.stream(initial_state):
# print(event)