o
    mj                     @  s2   d Z ddlmZ dddZdd	d
ZdddZdS )z?Language helpers for MCube ws_bridge (preference + resolution).    )annotationstextstrreturn
str | Nonec                   sj   | pd     sdS t fdddD rdS t fdddD r&d	S  d
v s1  dgkr3d	S dS )z
    Return ``"hi"`` or ``"en"`` when the caller *explicitly* asks for a language.
    Otherwise ``None`` (no clear preference).
     Nc                 3      | ]}| v V  qd S N ).0ktr
   Y/var/www/html/livekitdocker/backend/agent_runtime/src/mcube_integration/mcube_language.py	<genexpr>   s    z-detect_language_preference.<locals>.<genexpr>)hindihinglishu   हिंदीhic                 3  r   r	   r
   )r   phraser   r
   r   r      s
    
)zenglish onlyz
in englishzspeak englishztalk in englishzenglish pleaseen)englishr   r   )striploweranysplit)r   r
   r   r   detect_language_preference   s   
r   c                   sT   | sdS t dd | D }|dkrdS d}|   t  fdd|D dkr(dS dS )	zQ``hi`` vs ``en`` from script / Hinglish cues (aligned with ai_worker heuristics).r   c                 s  s,    | ]}d |  krdkrn ndV  qdS )u   ऀu   ॿ   Nr
   )r   charr
   r
   r   r   %   s   * z*_classify_text_language.<locals>.<genexpr>r   r   )namastekaiseaapmainkyanahijibhaiyaarachatheeksahigalatbataosamajhkripya	dhanyawadshukriyahaanbolor   r   c                 3  s     | ]}|   v rd V  qdS )r   N)r   )r   word
text_lowerr
   r   r   B   s    r   )sumr   )r   hindi_charshinglish_wordsr
   r3   r   _classify_text_language    s   r8   stt_language_codec                 C  s(   | pd  pd}|pd  s|S t|S )z
    Pick STT / downstream language: prefer content-derived ``hi`` / ``en``,
    else ``stt_language_code`` (normalized to ``en`` if empty).
    r   r   )r   r8   )r9   r   baser
   r
   r   resolve_detected_languageH   s   r;   N)r   r   r   r   )r   r   r   r   )r9   r   r   r   r   r   )__doc__
__future__r   r   r8   r;   r
   r
   r
   r   <module>   s
    

(