6262from ...types .realtime .conversation_item_param import ConversationItemParam
6363from ...types .realtime .realtime_client_event_param import RealtimeClientEventParam
6464from ...types .realtime .realtime_response_create_params_param import RealtimeResponseCreateParamsParam
65+ from ...types .realtime .response_create_event_with_references_param import ResponseCreateEventWithReferencesParam
66+ from ...types .realtime .realtime_response_create_params_with_references_param import (
67+ RealtimeResponseCreateParamsWithReferencesParam ,
68+ )
6569
6670if TYPE_CHECKING :
6771 from websockets .sync .client import ClientConnection as WebSocketConnection
@@ -395,11 +399,17 @@ async def recv_bytes(self) -> bytes:
395399 self ._reconnect_attempt = 0
396400 return message
397401
398- async def send (self , event : RealtimeClientEvent | RealtimeClientEventParam ) -> None :
402+ async def send (
403+ self , event : RealtimeClientEvent | Union [RealtimeClientEventParam , ResponseCreateEventWithReferencesParam ]
404+ ) -> None :
399405 data = (
400406 event .to_json (use_api_names = True , exclude_unset = True )
401407 if isinstance (event , BaseModel )
402- else json .dumps (await async_maybe_transform (event , RealtimeClientEventParam ))
408+ else json .dumps (
409+ await async_maybe_transform (
410+ event , Union [RealtimeClientEventParam , ResponseCreateEventWithReferencesParam ]
411+ )
412+ )
403413 )
404414 if self ._is_reconnecting :
405415 self ._send_queue .enqueue (data )
@@ -546,7 +556,9 @@ def __init__(
546556 self .__send_queue = SendQueue (max_bytes = max_queue_size )
547557 self .__event_handler_registry = EventHandlerRegistry (use_lock = False )
548558
549- def send (self , event : RealtimeClientEvent | RealtimeClientEventParam ) -> None :
559+ def send (
560+ self , event : RealtimeClientEvent | Union [RealtimeClientEventParam , ResponseCreateEventWithReferencesParam ]
561+ ) -> None :
550562 """Queue a message to be sent when the connection is established.
551563
552564 This can be called before entering the context manager. Queued messages
@@ -555,7 +567,9 @@ def send(self, event: RealtimeClientEvent | RealtimeClientEventParam) -> None:
555567 data = (
556568 event .to_json (use_api_names = True , exclude_unset = True )
557569 if isinstance (event , BaseModel )
558- else json .dumps (maybe_transform (event , RealtimeClientEventParam ))
570+ else json .dumps (
571+ maybe_transform (event , Union [RealtimeClientEventParam , ResponseCreateEventWithReferencesParam ])
572+ )
559573 )
560574 self .__send_queue .enqueue (data )
561575
@@ -840,11 +854,15 @@ def recv_bytes(self) -> bytes:
840854 self ._reconnect_attempt = 0
841855 return message
842856
843- def send (self , event : RealtimeClientEvent | RealtimeClientEventParam ) -> None :
857+ def send (
858+ self , event : RealtimeClientEvent | Union [RealtimeClientEventParam , ResponseCreateEventWithReferencesParam ]
859+ ) -> None :
844860 data = (
845861 event .to_json (use_api_names = True , exclude_unset = True )
846862 if isinstance (event , BaseModel )
847- else json .dumps (maybe_transform (event , RealtimeClientEventParam ))
863+ else json .dumps (
864+ maybe_transform (event , Union [RealtimeClientEventParam , ResponseCreateEventWithReferencesParam ])
865+ )
848866 )
849867 if self ._is_reconnecting :
850868 self ._send_queue .enqueue (data )
@@ -985,7 +1003,9 @@ def __init__(
9851003 self .__send_queue = SendQueue (max_bytes = max_queue_size )
9861004 self .__event_handler_registry = EventHandlerRegistry (use_lock = True )
9871005
988- def send (self , event : RealtimeClientEvent | RealtimeClientEventParam ) -> None :
1006+ def send (
1007+ self , event : RealtimeClientEvent | Union [RealtimeClientEventParam , ResponseCreateEventWithReferencesParam ]
1008+ ) -> None :
9891009 """Queue a message to be sent when the connection is established.
9901010
9911011 This can be called before entering the context manager. Queued messages
@@ -994,7 +1014,9 @@ def send(self, event: RealtimeClientEvent | RealtimeClientEventParam) -> None:
9941014 data = (
9951015 event .to_json (use_api_names = True , exclude_unset = True )
9961016 if isinstance (event , BaseModel )
997- else json .dumps (maybe_transform (event , RealtimeClientEventParam ))
1017+ else json .dumps (
1018+ maybe_transform (event , Union [RealtimeClientEventParam , ResponseCreateEventWithReferencesParam ])
1019+ )
9981020 )
9991021 self .__send_queue .enqueue (data )
10001022
@@ -1206,7 +1228,13 @@ def update(self, *, session: session_update_event_param.Session, event_id: str |
12061228
12071229
12081230class RealtimeResponseResource (BaseRealtimeConnectionResource ):
1209- def create (self , * , event_id : str | Omit = omit , response : RealtimeResponseCreateParamsParam | Omit = omit ) -> None :
1231+ def create (
1232+ self ,
1233+ * ,
1234+ event_id : str | Omit = omit ,
1235+ response : Union [RealtimeResponseCreateParamsParam , RealtimeResponseCreateParamsWithReferencesParam ]
1236+ | Omit = omit ,
1237+ ) -> None :
12101238 """
12111239 This event instructs the server to create a Response, which means triggering
12121240 model inference. When in Server VAD mode, the server will create Responses
@@ -1236,7 +1264,7 @@ def create(self, *, event_id: str | Omit = omit, response: RealtimeResponseCreat
12361264 """
12371265 self ._connection .send (
12381266 cast (
1239- RealtimeClientEventParam ,
1267+ Union [ RealtimeClientEventParam , ResponseCreateEventWithReferencesParam ] ,
12401268 strip_not_given ({"type" : "response.create" , "event_id" : event_id , "response" : response }),
12411269 )
12421270 )
@@ -1450,7 +1478,11 @@ async def update(self, *, session: session_update_event_param.Session, event_id:
14501478
14511479class AsyncRealtimeResponseResource (BaseAsyncRealtimeConnectionResource ):
14521480 async def create (
1453- self , * , event_id : str | Omit = omit , response : RealtimeResponseCreateParamsParam | Omit = omit
1481+ self ,
1482+ * ,
1483+ event_id : str | Omit = omit ,
1484+ response : Union [RealtimeResponseCreateParamsParam , RealtimeResponseCreateParamsWithReferencesParam ]
1485+ | Omit = omit ,
14541486 ) -> None :
14551487 """
14561488 This event instructs the server to create a Response, which means triggering
@@ -1481,7 +1513,7 @@ async def create(
14811513 """
14821514 await self ._connection .send (
14831515 cast (
1484- RealtimeClientEventParam ,
1516+ Union [ RealtimeClientEventParam , ResponseCreateEventWithReferencesParam ] ,
14851517 strip_not_given ({"type" : "response.create" , "event_id" : event_id , "response" : response }),
14861518 )
14871519 )
0 commit comments