File size: 1,457 Bytes
fccd7f6
96e57e5
 
 
 
01c9843
 
6c314e0
0d054b5
96e57e5
0d054b5
 
3a4ffac
ee30fd7
8778e44
 
 
 
3a4ffac
6c314e0
3a4ffac
6c314e0
 
 
96e57e5
 
 
 
 
 
 
878b473
01c9843
96e57e5
01c9843
96e57e5
01c9843
fccd7f6
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
from multi_agent_sdlc.tools.tester.validation import ProjectVerificationResult
from multi_agent_sdlc.models import CoderStatus
from multi_agent_sdlc.models import TesterStatus
from multi_agent_sdlc.models import CoderMode
from multi_agent_sdlc.models import ImplementationCycle
from multi_agent_sdlc.models import VerificationCycle
from multi_agent_sdlc.models import TesterSummary
from multi_agent_sdlc.models import CoderSummary
from langgraph.graph import add_messages
from operator import add
from langchain_core.messages import BaseMessage
from typing import Annotated
from typing import NotRequired
from typing import TypedDict
from .models import DevelopmentPlan


class DevState(TypedDict):
    request: str
    plan: NotRequired[DevelopmentPlan]
    project_directory: NotRequired[str]
    coder_messages: Annotated[
        list[BaseMessage], add_messages
    ]  # Reducer state field. Otherwise replaces the previous value.
    coder_status: NotRequired[CoderStatus]
    current_coder_summary: NotRequired[CoderSummary]
    coder_summary_history: Annotated[
        list[ImplementationCycle],
        add,
    ]
    tester_status: NotRequired[TesterStatus]
    tester_messages: Annotated[list[BaseMessage], add_messages]
    current_tester_summary: TesterSummary | None
    verification_history: Annotated[
        list[VerificationCycle],
        add,
    ]
    current_project_verification_result: NotRequired[ProjectVerificationResult | None]