verbose live UI + tool-level SSE events + Groq default + regression tests

This commit is contained in:
2026-06-03 05:04:29 -03:00
parent 131f4d9b86
commit e124a8a7d9
69 changed files with 3030 additions and 137 deletions

20
api/runtime/state.py Normal file
View File

@@ -0,0 +1,20 @@
"""Shared state passed between runtime nodes.
This is the one type langgraph sees. Domain code in api/plan, api/analyses,
api/tools never imports it — they take/return their own dataclasses.
"""
from __future__ import annotations
from typing import Annotated, Any, TypedDict
from operator import add
class RunState(TypedDict, total=False):
run_id: str
question: str
plan_rationale: str
plan_steps: list[dict[str, Any]] # serialised PlanStep
findings: Annotated[list[dict[str, Any]], add] # serialised Finding; concatenated by langgraph
answer: str
error: str