File tree Expand file tree Collapse file tree 2 files changed +30
-2
lines changed
Public/ResponseModels/Realtime Expand file tree Collapse file tree 2 files changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -249,9 +249,34 @@ open class OpenAIRealtimeSession {
249249
250250 continuation? . yield ( . mcpListToolsFailed( fullError) )
251251
252+ case " response.done " :
253+ // Handle response completion (may contain errors like insufficient_quota)
254+ if
255+ let response = json [ " response " ] as? [ String : Any ] ,
256+ let status = response [ " status " ] as? String
257+ {
258+ logger. debug ( " Response done with status: \( status) " )
259+
260+ // Pass the full response object for detailed error handling
261+ continuation? . yield ( . responseDone( status: status, statusDetails: response) )
262+
263+ // Log errors for debugging
264+ if
265+ let statusDetails = response [ " status_details " ] as? [ String : Any ] ,
266+ let error = statusDetails [ " error " ] as? [ String : Any ]
267+ {
268+ let code = error [ " code " ] as? String ?? " unknown "
269+ let message = error [ " message " ] as? String ?? " Unknown error "
270+ logger. error ( " Response error: [ \( code) ] \( message) " )
271+ }
272+ } else {
273+ logger. warning ( " Received response.done with unexpected format " )
274+ }
275+
252276 default :
253- // Log unhandled message types for debugging
254- logger. debug ( " Unhandled message type: \( messageType) " )
277+ // Log unhandled message types with more detail for debugging
278+ logger. warning ( " ⚠️ Unhandled message type: \( messageType) " )
279+ logger. debug ( " Full JSON: \( String ( describing: json) ) " )
255280 break
256281 }
257282
Original file line number Diff line number Diff line change @@ -26,4 +26,7 @@ public enum OpenAIRealtimeMessage: Sendable {
2626 case mcpListToolsInProgress // "mcp_list_tools.in_progress"
2727 case mcpListToolsCompleted( [ String : Any ] ) // "mcp_list_tools.completed" with tools data
2828 case mcpListToolsFailed( String ? ) // "mcp_list_tools.failed" with error details
29+
30+ /// Response completion with potential errors
31+ case responseDone( status: String , statusDetails: [ String : Any ] ? ) // "response.done"
2932}
You can’t perform that action at this time.
0 commit comments