
    /j                    z    S SK Jr  S SKrS SKJrJr  S SKJrJr   " S S\5      r	\
\\S   4   r " S S\\	5      rg)	    )annotationsN)ABCabstractmethod)ClassVarProtocolc                       \ rS rSr% S\S'   Srg)_RunnerMeta   zClassVar[str]INFERENCE_METHOD N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r       P/app/agent/.venv/lib/python3.13/site-packages/livekit/agents/inference_runner.pyr	   r	      s    ##r   r	   _InferenceRunnerc                  `    \ rS rSr% 0 rS\S'   \S	S j5       r\S
S j5       r	\SS j5       r
Srg)r      _RunnersDictregistered_runnersc                   [         R                  " 5       [         R                  " 5       :w  a  [        S5      eUR                  U R
                  ;   a  [        SUR                   S35      eXR
                  UR                  '   g )Nz5InferenceRunner must be registered on the main threadzInferenceRunner z already registered)	threadingcurrent_threadmain_threadRuntimeErrorr   r   
ValueError)clsrunner_classs     r   register_runner _InferenceRunner.register_runner   sm    ##%)>)>)@@VWW((C,B,BB/0M0M/NNabcc@L|<<=r   c                    g)z8Initialize the runner. This is used to load models, etc.Nr   )selfs    r   
initialize_InferenceRunner.initialize        	r   c                    g)z Run inference on the given data.Nr   )r%   datas     r   run_InferenceRunner.run"   r(   r   r   N)r!   ztype[_InferenceRunner]returnNone)r-   r.   )r*   bytesr-   zbytes | None)r   r   r   r   r   r   classmethodr"   r   r&   r+   r   r   r   r   r   r      sI    '))M M    r   )
__future__r   r   abcr   r   typingr   r   r	   dictstrtyper   r   r   r   r   <module>r7      sB    "  # %$( $ C0112sK r   