LaunchMind / graph.py
Abdulahad79's picture
code
2f6e4c8
Raw
History Blame Contribute Delete
1.37 kB
from langgraph.graph import StateGraph, START, END
from state import StartupState
from agents.ceo import ceo_node
from agents.product import product_node
from agents.engineer import engineer_node
from agents.marketing import marketing_node
from agents.qa import qa_node
def should_end(state: StartupState) -> str:
if state.get("review_approved"):
return END
return "product_node"
def build_graph():
workflow = StateGraph(StartupState)
# Add Nodes
workflow.add_node("ceo_node", ceo_node)
workflow.add_node("product_node", product_node)
workflow.add_node("engineer_node", engineer_node)
workflow.add_node("marketing_node", marketing_node)
workflow.add_node("qa_node", qa_node)
# Define Edges
workflow.add_edge(START, "ceo_node")
# Parallel Execution: Product goes to Engineer & Marketing
workflow.add_edge("product_node", "engineer_node")
workflow.add_edge("product_node", "marketing_node")
# Fan-in to QA
workflow.add_edge("engineer_node", "qa_node")
workflow.add_edge("marketing_node", "qa_node")
workflow.add_edge("qa_node", "ceo_node")
# Conditional logic from CEO
workflow.add_conditional_edges(
"ceo_node",
should_end,
{
END: END,
"product_node": "product_node"
}
)
return workflow.compile()