namespace AIStudio.Provider.OpenAI;
///
/// The closing line of a streamed Responses API call, which repeats the whole response.
///
///
/// Everything the round produced comes back here, reasoning items included, in the same shape a
/// non-streamed call would have returned. That is why a streamed tool calling round needs no
/// reassembly: this line is the round.
///
/// The type of the stream event.
/// The response as a non-streamed call would have returned it.
public sealed record ResponsesCompletedStreamLine(string Type, ResponsesResponse? Response)
{
///
/// States what the request of this call carried, as far as it can be believed.
///
///
/// The one way from the wire to a usage, shared by the plain text path and the tool calling
/// path, so that what counts as believable is decided in a single place.
///
/// The usage, or TokenUsage.UNKNOWN when the line states nothing usable.
public TokenUsage GetUsage() => this.Response?.GetUsage() ?? TokenUsage.UNKNOWN;
}