import os
from typing import TypedDict
from langgraph.graph import END, START, StateGraph
from tracelane import init, auto_instrument, shutdown
class State(TypedDict):
value: int
init(endpoint="https://gateway.tracelane.dev",
api_key=os.environ["TRACELANE_API_KEY"], service_name="graph-example")
auto_instrument()
workflow = StateGraph(State)
workflow.add_node("increment", lambda state: {"value": state["value"] + 1})
workflow.add_node("double", lambda state: {"value": state["value"] * 2})
workflow.add_edge(START, "increment")
workflow.add_edge("increment", "double")
workflow.add_edge("double", END)
try:
assert workflow.compile().invoke({"value": 1}) == {"value": 4}
finally:
shutdown() # flush pending spans