Maps a normalized RealtimeTurnDetectionSettings request onto the OpenAI-protocol
turn_detection wire block, gated by a profile's supportedTurnModes. Shared by every profile
in the family so the vocabulary translates identically on all of them:
'serverVad' → { type: 'server_vad' } with the optional threshold/silence tuning;
'semanticVad' → { type: 'semantic_vad' } with the optional eagerness;
'native' → no family-wide mapping YET (reserved for full-duplex modes providers document);
profiles that gain one override OpenAIRealtimeProfile.buildTurnDetection to map it.
Returns undefined when the request is absent, mode 'default', or the mode is unsupported by
this profile (diag-logged) — the caller then applies its own default. Meeting-mode composition
(create_response: !disableAutoResponse, interrupt_response: true) is applied here so every
mapped mode honors the bridge's floor control.
Maps a normalized RealtimeTurnDetectionSettings request onto the OpenAI-protocol
turn_detectionwire block, gated by a profile'ssupportedTurnModes. Shared by every profile in the family so the vocabulary translates identically on all of them:'serverVad'→{ type: 'server_vad' }with the optional threshold/silence tuning;'semanticVad'→{ type: 'semantic_vad' }with the optional eagerness;'native'→ no family-wide mapping YET (reserved for full-duplex modes providers document); profiles that gain one override OpenAIRealtimeProfile.buildTurnDetection to map it.Returns
undefinedwhen the request is absent, mode'default', or the mode is unsupported by this profile (diag-logged) — the caller then applies its own default. Meeting-mode composition (create_response: !disableAutoResponse,interrupt_response: true) is applied here so every mapped mode honors the bridge's floor control.