# ui/agent/graph/state.py from __future__ import annotations import operator from typing import Annotated, Any, TypedDict class TodoItem(TypedDict): id: int country: str methods: str class Finding(TypedDict, total=False): todo_id: int todo_title: str todo_country: str todo_methods: str summary: str class CandidateCountry(TypedDict): iso2: str name: str pathway_hint: str label: str class AgentState(TypedDict, total=False): """Top-level workflow state.""" user_content: str | list[dict[str, Any]] history_messages: list[dict[str, Any]] profile_summary: str candidate_countries: list[CandidateCountry] discovery_summary: str todos: list[TodoItem] findings: Annotated[list[Finding], operator.add] final_answer: str consolidator_thinking: str class ResearchTask(TypedDict): """Payload sent to each parallel researcher via Send.""" todo: TodoItem profile_summary: str