diff --git a/.changeset/five-cheetahs-work.md b/.changeset/five-cheetahs-work.md new file mode 100644 index 00000000..1c46989e --- /dev/null +++ b/.changeset/five-cheetahs-work.md @@ -0,0 +1,5 @@ +--- +"@openai/agents-realtime": patch +--- + +feat(realtime): Add usage field to input audio transcription completed event diff --git a/packages/agents-realtime/src/openaiRealtimeEvents.ts b/packages/agents-realtime/src/openaiRealtimeEvents.ts index 0228eb31..3ec75a7e 100644 --- a/packages/agents-realtime/src/openaiRealtimeEvents.ts +++ b/packages/agents-realtime/src/openaiRealtimeEvents.ts @@ -138,6 +138,18 @@ export const conversationItemInputAudioTranscriptionCompletedEventSchema = content_index: z.number(), transcript: z.string(), logprobs: z.array(z.any()).nullable().optional(), + usage: z + .object({ + type: z.literal('tokens'), + total_tokens: z.number(), + input_tokens: z.number(), + input_token_details: z.object({ + text_tokens: z.number(), + audio_tokens: z.number(), + }), + output_tokens: z.number(), + }) + .optional(), }); export const conversationItemInputAudioTranscriptionDeltaEventSchema = z.object( diff --git a/packages/agents-realtime/src/transportLayerEvents.ts b/packages/agents-realtime/src/transportLayerEvents.ts index 4a1b260c..258f053b 100644 --- a/packages/agents-realtime/src/transportLayerEvents.ts +++ b/packages/agents-realtime/src/transportLayerEvents.ts @@ -44,6 +44,16 @@ export type InputAudioTranscriptionCompletedEvent = { type: 'conversation.item.input_audio_transcription.completed'; item_id: string; transcript: string; + usage?: { + type: 'tokens'; + total_tokens: number; + input_tokens: number; + input_token_details: { + text_tokens: number; + audio_tokens: number; + }; + output_tokens: number; + }; }; export type TransportLayerTranscriptDelta = {