UiInterrupt
One thing a run stopped to ask for: an approval, a choice, a credential.
The shape is the protocol's Interrupt, kept whole because every field is something a renderer may need: message is the prompt to put in front of whoever answers, responseSchema describes the answer the agent wants -- carried opaquely, so a renderer can build a form for it -- and toolCallId names the call an approval concerns, when it concerns one. It is optional in the protocol and absent from some producers, so an interrupt is not a property of a tool call: it belongs to the run, and a tool call the run named is told it is waiting (ToolCallStatus.AWAITING_APPROVAL) rather than handed the interrupt itself.
Constructors
Properties
when the producer will stop accepting an answer, in a format the protocol deliberately leaves to the producer -- conventionally ISO 8601. Carried, not judged: nothing here decides an interrupt has expired, so a client that wants to stop offering one after its time reads this itself.