Member Junction
    Preparing search index...

    Function WarnOnUnmatchedProviderVoice

    • Logs when a configuration authored per-provider voice settings but NONE matched the vendor that actually ran — those settings are dropped, and pre-#3530 that happened with no trace at all: the value stayed visible in the config and simply never reached a driver. Names the authored keys and the resolved driver so the fix is readable straight off the log line.

      The session still proceeds — an unmatched provider bag is a MISCONFIGURATION, not a fault: the agnostic voice (or the driver's own default) still applies. It is logged at error level anyway, matching how this module already reports tolerant-degradation config problems (see RealtimeClientSessionService.resolveConfiguredModelPreference), because a silently ignored setting is exactly what nobody noticed for long enough to file the issue.

      Shared by BOTH realtime surfaces — the client-direct prepare and BaseAgent's server-bridged session — so neither path can drift back into silence.

      WHY IT LIVES HERE rather than beside MatchProviderVoiceSettings, which it wraps: this function LOGS, and realtime-coagent-config.ts declares itself deliberately framework-free — no DB, no metadata provider, no logging imports. Moving it there would breach that constraint; keeping it here costs BaseAgent an import of this module. The placement is the constraint's consequence, not an accident. (The alternative — returning a diagnostic string for callers to log — was rejected as it lets one surface silently choose not to log, which is the failure mode being fixed.)

      Parameters

      • effectiveConfig: RealtimeCoAgentConfig

        The resolved effective configuration.

      • driverClass: string

        The resolved vendor's DriverClass.

      • surface: string

        The calling surface, for log attribution (e.g. RealtimeClientSessionService).

      Returns void