avfranco's picture
ea4all-mcp-lgs-sync-UAT-passed
4a6af9d
from typing_extensions import (
TypedDict,
List
)
from typing import (
Optional,
)
from dataclasses import dataclass, field
from typing import Optional
from langgraph.graph import MessagesState
from ea4all.src.ea4all_gra.data import (
ListRequirement,
ListObjective,
UserJourney,
StakeholderList,
BusinessCapability,
LandscapeAsIs,
CapabilityGap,
Principles
)
# Optional, the InputState is a restricted version of the State that is used to
# define a narrower interface to the outside world vs. what is maintained
# internally.
class InputState(MessagesState):
"""Represents the input state for the agent.
This class defines the structure of the input state, which includes
the messages exchanged between the user and the agent. It serves as
a restricted version of the full State, providing a narrower interface
to the outside world compared to what is maintained internally.
"""
"""Attributes:
business_query: a business requirement is the starting point of the TOGAF process
"""
#business_query: Optional[Annotated[List[str], Field(
# description="A business requirement is the starting point of the TOGAF process."), operator.add]]
#business_query: str
pass
class OutputState(TypedDict):
"""Represents te output state for the agent."""
vision_target: Optional[str]
architecture_runway: Optional[str]
@dataclass(kw_only=True)
class OverallState(InputState, OutputState):
"""Represents the state of a Togaf system."""
"""
Attributes:
- user_feedback: used to capture additional information needed from the user by the graph
- business_query: a business requirement is the starting point of the TOGAF process
- query_status (Optional[bool]): Indicates the status of the query. Default value is False.
- messages (Optional[Annotated[list[AnyMessage], add_messages]]): A list of messages associated with the state.
- stakeholder (Optional[StakeholderList]): Represents the list of stakeholders.
- principles (Optional[Principles]): Represents the principles of the Togaf system.
- requirement (Optional[ListRequirement]): Represents the list of requirements.
- intent (Optional[ListObjective]): Represents the list of objectives.
- userjourney (Optional[UserJourney]): Represents the user journey of the Togaf system.
- biz_capability (Optional[BusinessCapability]): Represents the business capability of the Togaf system.
- landscape_asis (Optional[List[str]]): Represents the list of landscape as-is.
- identified_asis (Optional[LandscapeAsIs]): Represents the identified landscape as-is.
- landscape_gap (Optional[CapabilityGap]): Represents the capability gap of the landscape.
- vision_target (Optional[str]): Represents the vision target of the Togaf system.
- architecture_runway (Optional[str]): Represents the architecture runway of the Togaf system.
- next (Optional[str]): Represents the next step in the Togaf system.
"""
business_query: str
query_status: Optional[bool]
stakeholder: Optional[StakeholderList]
principles: Optional[Principles]
requirement: Optional[ListRequirement]
intent: Optional[ListObjective]
userjourney: Optional[UserJourney]
biz_capability: Optional[BusinessCapability]
landscape_asis: Optional[List[str]]
identified_asis: Optional[LandscapeAsIs]
landscape_gap: Optional[CapabilityGap]
next: Optional[str]