File size: 1,732 Bytes
01c9843
8778e44
 
76e192b
8778e44
 
01c9843
 
 
 
 
 
 
 
8778e44
 
 
 
ea15e09
 
01c9843
872f80c
 
 
8778e44
3a4ffac
0d054b5
8778e44
 
01c9843
 
8778e44
a2875af
 
 
8778e44
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
from langgraph.graph import StateGraph
from multi_agent_sdlc.state import DevState
from .graph import build_graph
from IPython.display import display, Image


def generate_diagram(graph: StateGraph) -> None:

    png_data = graph.get_graph().draw_mermaid_png()

    with open("multi_agent_sdlc_workflow.png", "wb") as file:
        file.write(png_data)


def run() -> None:
    graph = build_graph()

    initial_state: DevState = {
        "request": "Build a CLI expense tracker that lets users add expenses, list them, filter by category or date, and display total spending. Store data locally in a JSON file, validate invalid inputs, and provide clear exit codes and error messages. Include a concise README and a uv-managed Python project with a declared command-line entry point.",
        # "request": "Build an app that sum two numbers. The end user interactions happen via the terminal.",
        # "request": "Build a calculator app, all end user interactions happens via the terminal.",
        # "request": "Build an app that enable the user to compute the area of squares and triangles. The end user interactions happen via the terminal.",
        # "request": "Build a Python command-line application named `temperature-converter`. The application must convert temperatures between Celsius and Fahrenheit.",
        # "request": "Build a Python CLI app named password-strength-checker that accepts a password as an argument and reports weak, medium, or strong using only the standard library.",
        "plan": None,
        "project_directory": "",
        "coder_messages": [],
    }

    result = graph.invoke(initial_state)
    # generate_diagram(graph)
    print("\nDone!")


if __name__ == "__main__":
    run()