@@ -211,9 +211,9 @@ function normalizeProviderConfig(
|
211 | 211 | model: trimToUndefined(raw?.model), |
212 | 212 | voice: normalizeOpenAIRealtimeVoice(raw?.voice), |
213 | 213 | temperature: asFiniteNumber(raw?.temperature), |
214 | | -vadThreshold: asFiniteNumber(raw?.vadThreshold), |
215 | | -silenceDurationMs: asFiniteNumber(raw?.silenceDurationMs), |
216 | | -prefixPaddingMs: asFiniteNumber(raw?.prefixPaddingMs), |
| 214 | +vadThreshold: asUnitInterval(raw?.vadThreshold), |
| 215 | +silenceDurationMs: asNonNegativeInteger(raw?.silenceDurationMs), |
| 216 | +prefixPaddingMs: asNonNegativeInteger(raw?.prefixPaddingMs), |
217 | 217 | interruptResponseOnInputAudio: |
218 | 218 | typeof raw?.interruptResponseOnInputAudio === "boolean" |
219 | 219 | ? raw.interruptResponseOnInputAudio |
@@ -228,7 +228,12 @@ function normalizeProviderConfig(
|
228 | 228 | |
229 | 229 | function asNonNegativeInteger(value: unknown): number | undefined { |
230 | 230 | const number = asFiniteNumber(value); |
231 | | -return number === undefined || number < 0 ? undefined : Math.floor(number); |
| 231 | +return number !== undefined && Number.isSafeInteger(number) && number >= 0 ? number : undefined; |
| 232 | +} |
| 233 | + |
| 234 | +function asUnitInterval(value: unknown): number | undefined { |
| 235 | +const number = asFiniteNumber(value); |
| 236 | +return number !== undefined && number >= 0 && number <= 1 ? number : undefined; |
232 | 237 | } |
233 | 238 | |
234 | 239 | type OpenAIRealtimeApiKeyResolution = |
|