@@ -179,6 +179,11 @@ function asTurnCoverage(value: unknown): GoogleRealtimeTurnCoverage | undefined
|
179 | 179 | } |
180 | 180 | } |
181 | 181 | |
| 182 | +function asNonNegativeInteger(value: unknown): number | undefined { |
| 183 | +const number = asFiniteNumber(value); |
| 184 | +return number !== undefined && Number.isSafeInteger(number) && number >= 0 ? number : undefined; |
| 185 | +} |
| 186 | + |
182 | 187 | function resolveGoogleRealtimeProviderConfigRecord( |
183 | 188 | config: Record<string, unknown>, |
184 | 189 | ): Record<string, unknown> | undefined { |
@@ -210,8 +215,8 @@ function normalizeProviderConfig(
|
210 | 215 | voice: trimToUndefined(raw?.voice), |
211 | 216 | temperature: asFiniteNumber(raw?.temperature), |
212 | 217 | apiVersion: trimToUndefined(raw?.apiVersion), |
213 | | -prefixPaddingMs: asFiniteNumber(raw?.prefixPaddingMs), |
214 | | -silenceDurationMs: asFiniteNumber(raw?.silenceDurationMs), |
| 218 | +prefixPaddingMs: asNonNegativeInteger(raw?.prefixPaddingMs), |
| 219 | +silenceDurationMs: asNonNegativeInteger(raw?.silenceDurationMs), |
215 | 220 | startSensitivity: asSensitivity(raw?.startSensitivity), |
216 | 221 | endSensitivity: asSensitivity(raw?.endSensitivity), |
217 | 222 | activityHandling: asActivityHandling(raw?.activityHandling), |
@@ -305,10 +310,10 @@ function buildRealtimeInputConfig(
|
305 | 310 | ...(startSensitivity ? { startOfSpeechSensitivity: startSensitivity } : {}), |
306 | 311 | ...(endSensitivity ? { endOfSpeechSensitivity: endSensitivity } : {}), |
307 | 312 | ...(typeof config.prefixPaddingMs === "number" |
308 | | - ? { prefixPaddingMs: Math.max(0, Math.floor(config.prefixPaddingMs)) } |
| 313 | + ? { prefixPaddingMs: config.prefixPaddingMs } |
309 | 314 | : {}), |
310 | 315 | ...(typeof config.silenceDurationMs === "number" |
311 | | - ? { silenceDurationMs: Math.max(0, Math.floor(config.silenceDurationMs)) } |
| 316 | + ? { silenceDurationMs: config.silenceDurationMs } |
312 | 317 | : {}), |
313 | 318 | }; |
314 | 319 | const realtimeInputConfig = { |
|