openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
31 lines (30 loc) • 1.42 kB
JavaScript
import { _ as normalizeXaiRealtimeProviderConfig, g as normalizeXaiRealtimeBaseUrl } from "../../realtime-voice-config-BzEI0RLc.js";
import { s as assertXaiRealtimeVoiceRequestSupported } from "../../capability-provider-metadata-factory-BjaSolS_.js";
import { t as createXaiRealtimeVoiceProviderMetadata } from "../../capability-provider-metadata-3SLkHpj3.js";
import { t as resolveXaiRealtimeApiKey } from "../../realtime-voice-auth.runtime-BsjGk970.js";
import { t as XaiRealtimeVoiceBridge } from "../../realtime-voice-bridge-RADQ7d6N.js";
//#region extensions/xai/realtime-voice-provider.ts
function buildXaiRealtimeVoiceProvider() {
return {
...createXaiRealtimeVoiceProviderMetadata(),
createBridge: (req) => {
const config = normalizeXaiRealtimeProviderConfig(req.providerConfig);
assertXaiRealtimeVoiceRequestSupported(req);
return new XaiRealtimeVoiceBridge({
...req,
apiKey: config.apiKey,
baseUrl: normalizeXaiRealtimeBaseUrl(config.baseUrl),
model: config.model,
voice: config.voice,
vadThreshold: config.vadThreshold,
silenceDurationMs: config.silenceDurationMs,
prefixPaddingMs: config.prefixPaddingMs,
reasoningEffort: config.reasoningEffort,
sessionResumption: config.sessionResumption,
resolveApiKey: () => resolveXaiRealtimeApiKey(config.apiKey, req.cfg, req.agentId)
});
}
};
}
//#endregion
export { buildXaiRealtimeVoiceProvider };