GroundedAgent yields a { ui } widget chunk on its stream, but when routed through AgentSquad.routeRequest the widget is dropped: AccumulatorTransform (the orchestrator's streaming pipe) only forwards text chunks, so widgets worked only when consuming the agent directly. Python's orchestrator forwards the chunk unchanged, so this is also a parity gap.
Make AccumulatorTransform forward a { ui } object chunk to the consumer while keeping it out of the accumulated text answer (which is saved to storage). Additive: a stream with no widget chunk is unchanged; object chunks already flow through this transform (e.g. thinking).
GroundedAgentyields a{ ui }widget chunk on its stream, but when routed throughAgentSquad.routeRequestthe widget is dropped:AccumulatorTransform(the orchestrator's streaming pipe) only forwards text chunks, so widgets worked only when consuming the agent directly. Python's orchestrator forwards the chunk unchanged, so this is also a parity gap.Make
AccumulatorTransformforward a{ ui }object chunk to the consumer while keeping it out of the accumulated text answer (which is saved to storage). Additive: a stream with no widget chunk is unchanged; object chunks already flow through this transform (e.g.thinking).