1from __future__ import annotations
  2
  3from typing import Optional
  4from typing_extensions import Union, Generic, TypeVar, Annotated, TypeAlias
  5
  6from ...._utils import PropertyInfo
  7from ...._compat import GenericModel
  8from ....types.responses import (
  9    ParsedResponse,
 10    ResponseErrorEvent,
 11    ResponseFailedEvent,
 12    ResponseQueuedEvent,
 13    ResponseCreatedEvent,
 14    ResponseTextDoneEvent as RawResponseTextDoneEvent,
 15    ResponseAudioDoneEvent,
 16    ResponseCompletedEvent as RawResponseCompletedEvent,
 17    ResponseTextDeltaEvent as RawResponseTextDeltaEvent,
 18    ResponseAudioDeltaEvent,
 19    ResponseIncompleteEvent,
 20    ResponseInProgressEvent,
 21    ResponseRefusalDoneEvent,
 22    ResponseRefusalDeltaEvent,
 23    ResponseMcpCallFailedEvent,
 24    ResponseOutputItemDoneEvent,
 25    ResponseContentPartDoneEvent,
 26    ResponseOutputItemAddedEvent,
 27    ResponseContentPartAddedEvent,
 28    ResponseMcpCallCompletedEvent,
 29    ResponseMcpCallInProgressEvent,
 30    ResponseMcpListToolsFailedEvent,
 31    ResponseAudioTranscriptDoneEvent,
 32    ResponseAudioTranscriptDeltaEvent,
 33    ResponseMcpCallArgumentsDoneEvent,
 34    ResponseImageGenCallCompletedEvent,
 35    ResponseMcpCallArgumentsDeltaEvent,
 36    ResponseMcpListToolsCompletedEvent,
 37    ResponseImageGenCallGeneratingEvent,
 38    ResponseImageGenCallInProgressEvent,
 39    ResponseMcpListToolsInProgressEvent,
 40    ResponseWebSearchCallCompletedEvent,
 41    ResponseWebSearchCallSearchingEvent,
 42    ResponseCustomToolCallInputDoneEvent,
 43    ResponseFileSearchCallCompletedEvent,
 44    ResponseFileSearchCallSearchingEvent,
 45    ResponseWebSearchCallInProgressEvent,
 46    ResponseCustomToolCallInputDeltaEvent,
 47    ResponseFileSearchCallInProgressEvent,
 48    ResponseImageGenCallPartialImageEvent,
 49    ResponseReasoningSummaryPartDoneEvent,
 50    ResponseReasoningSummaryTextDoneEvent,
 51    ResponseFunctionCallArgumentsDoneEvent,
 52    ResponseOutputTextAnnotationAddedEvent,
 53    ResponseReasoningSummaryPartAddedEvent,
 54    ResponseReasoningSummaryTextDeltaEvent,
 55    ResponseFunctionCallArgumentsDeltaEvent as RawResponseFunctionCallArgumentsDeltaEvent,
 56    ResponseCodeInterpreterCallCodeDoneEvent,
 57    ResponseCodeInterpreterCallCodeDeltaEvent,
 58    ResponseCodeInterpreterCallCompletedEvent,
 59    ResponseCodeInterpreterCallInProgressEvent,
 60    ResponseCodeInterpreterCallInterpretingEvent,
 61)
 62from ....types.responses.response_reasoning_text_done_event import ResponseReasoningTextDoneEvent
 63from ....types.responses.response_reasoning_text_delta_event import ResponseReasoningTextDeltaEvent
 64
 65TextFormatT = TypeVar(
 66    "TextFormatT",
 67    # if it isn't given then we don't do any parsing
 68    default=None,
 69)
 70
 71
 72class ResponseTextDeltaEvent(RawResponseTextDeltaEvent):
 73    snapshot: str
 74
 75
 76class ResponseTextDoneEvent(RawResponseTextDoneEvent, GenericModel, Generic[TextFormatT]):
 77    parsed: Optional[TextFormatT] = None
 78
 79
 80class ResponseFunctionCallArgumentsDeltaEvent(RawResponseFunctionCallArgumentsDeltaEvent):
 81    snapshot: str
 82
 83
 84class ResponseCompletedEvent(RawResponseCompletedEvent, GenericModel, Generic[TextFormatT]):
 85    response: ParsedResponse[TextFormatT]  # type: ignore[assignment]
 86
 87
 88ResponseStreamEvent: TypeAlias = Annotated[
 89    Union[
 90        # wrappers with snapshots added on
 91        ResponseTextDeltaEvent,
 92        ResponseTextDoneEvent[TextFormatT],
 93        ResponseFunctionCallArgumentsDeltaEvent,
 94        ResponseCompletedEvent[TextFormatT],
 95        # the same as the non-accumulated API
 96        ResponseAudioDeltaEvent,
 97        ResponseAudioDoneEvent,
 98        ResponseAudioTranscriptDeltaEvent,
 99        ResponseAudioTranscriptDoneEvent,
100        ResponseCodeInterpreterCallCodeDeltaEvent,
101        ResponseCodeInterpreterCallCodeDoneEvent,
102        ResponseCodeInterpreterCallCompletedEvent,
103        ResponseCodeInterpreterCallInProgressEvent,
104        ResponseCodeInterpreterCallInterpretingEvent,
105        ResponseContentPartAddedEvent,
106        ResponseContentPartDoneEvent,
107        ResponseCreatedEvent,
108        ResponseErrorEvent,
109        ResponseFileSearchCallCompletedEvent,
110        ResponseFileSearchCallInProgressEvent,
111        ResponseFileSearchCallSearchingEvent,
112        ResponseFunctionCallArgumentsDoneEvent,
113        ResponseInProgressEvent,
114        ResponseFailedEvent,
115        ResponseIncompleteEvent,
116        ResponseOutputItemAddedEvent,
117        ResponseOutputItemDoneEvent,
118        ResponseRefusalDeltaEvent,
119        ResponseRefusalDoneEvent,
120        ResponseTextDoneEvent,
121        ResponseWebSearchCallCompletedEvent,
122        ResponseWebSearchCallInProgressEvent,
123        ResponseWebSearchCallSearchingEvent,
124        ResponseReasoningSummaryPartAddedEvent,
125        ResponseReasoningSummaryPartDoneEvent,
126        ResponseReasoningSummaryTextDeltaEvent,
127        ResponseReasoningSummaryTextDoneEvent,
128        ResponseImageGenCallCompletedEvent,
129        ResponseImageGenCallInProgressEvent,
130        ResponseImageGenCallGeneratingEvent,
131        ResponseImageGenCallPartialImageEvent,
132        ResponseMcpCallCompletedEvent,
133        ResponseMcpCallArgumentsDeltaEvent,
134        ResponseMcpCallArgumentsDoneEvent,
135        ResponseMcpCallFailedEvent,
136        ResponseMcpCallInProgressEvent,
137        ResponseMcpListToolsCompletedEvent,
138        ResponseMcpListToolsFailedEvent,
139        ResponseMcpListToolsInProgressEvent,
140        ResponseOutputTextAnnotationAddedEvent,
141        ResponseQueuedEvent,
142        ResponseReasoningTextDeltaEvent,
143        ResponseReasoningTextDoneEvent,
144        ResponseCustomToolCallInputDeltaEvent,
145        ResponseCustomToolCallInputDoneEvent,
146    ],
147    PropertyInfo(discriminator="type"),
148]