
    Cj1                        S r SSKJr  SSKrSSKJrJrJr  SSKJ	r	  SSK
JrJr  / SQr1 SkrS	\S
\4S jrS\S
\4S jrS\S	\S\S
S4S jr\    SS	\S\S-  S\S-  S\S\S-  S
\4S jj5       r\ SS	\S\\\4   S\S\S-  S
\4
S jj5       r\ SS	\S\\\4   S\S-  S
\4S jj5       r\   SS	\S\S\S-  S\S-  S\S-  S
\4S jj5       rg)aT  
Public entrypoints for running model-generated code in a sandbox.

Low-level lifecycle:
    acreate_container -> arun_code -> adelete_container

High-level convenience:
    acode_interpreter_tool  (ephemeral: create -> run -> delete)

Each entrypoint is `@client`-decorated, so every operation is logged the same
way `litellm.asearch` is.
    )UnionN)BaseSandboxConfigCodeExecutionResultContainerHandle)SandboxProviders)ProviderConfigManagerclient)acreate_sandbox	arun_codeadelete_sandboxacode_interpreter_tool>   litellm_call_idlitellm_metadatalitellm_trace_idlitellm_logging_objproviderreturnc                 f    [         R                  " [        U 5      5      nUc  [        SU  35      eU$ )Nz.Code execution is not supported for provider: )r   get_provider_sandbox_configr   
ValueError)r   configs     f/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/litellm/sandbox/main.py_get_configr   (   s9    ">>"F ~I(TUUM    kwargsc                 p    U R                  5        VVs0 s H  u  pU[        ;  d  M  X_M     snn$ s  snnf N)items_LITELLM_INTERNAL_KWARGS)r   kvs      r   _forward_kwargsr"   1   s.    #\\^Q^TQq8P/PDAD^QQQs   22	operationc           	          U R                  S5      nUc  g UR                  U U SU 30 SU R                  S5      0US9  g )Nr   /r   )r   modeloptional_paramslitellm_paramscustom_llm_provider)getupdate_from_kwargs)r   r   r#   logging_objs       r   _update_loggingr-   5   sV    **23K""
!I;')6::6G+HI$ # r   templatetimeoutallow_internet_accessapi_keyc                    #    [        XPS5        [        U 5      R                  " SUUUUS.[        U5      D6I S h  vN $  N7f)Ncreate_sandbox)r.   r/   r0   r1    )r-   r   r
   r"   )r   r.   r/   r0   r1   r   s         r   r
   r
   B   sT      F&67X&66 3	
 &
!   s   9AA A	containercodec                    #    [        X@S5        [        U 5      R                  " SUUUS.[        U5      D6I S h  vN $  N7f)Nrun_coder5   r6   r1   r4   )r-   r   r   r"   )r   r5   r6   r1   r   s        r   r   r   U   sP      Fj1X&00  &
!	   s   8A?Ac                    #    [        X0S5        [        U 5      R                  " SUUS.[        U5      D6I S h  vN $  N7f)Ndelete_sandboxr5   r1   r4   )r-   r   r   r"   )r   r5   r1   r   s       r   r   r   f   sN      F&67X&66  &
!   s   7A >A c                 \  #    [        XPS5        [        U 5      n[        U5      nUR                  " SX#US.UD6I S h  vN n UR                  " SXUS.UD6I S h  vN  UR
                  " SXS.UD6I S h  vN   $  N? N# N	! [         a6  n	[        R                  R                  R                  SU	 35         S n	A	$ S n	A	ff = f!  UR
                  " SXS.UD6I S h  vN    f ! [         a6  n	[        R                  R                  R                  SU	 35         S n	A	f S n	A	ff = f= f7f)Ncode_interpreter_tool)r.   r/   r1   r9   r<   z/sandbox: failed to delete ephemeral container: r4   )r-   r   r"   r
   r   r   	Exceptionlitellm_loggingverbose_loggerdebug)
r   r6   r.   r/   r1   r   r   	forwardedr5   es
             r   r   r   u   sU     F&=>"F'I,, G?H I%% 
G
?H
 
	(( #8A  

  	++11A!E 			(( #8A    	++11A!E 	s   ;D,A=D,C A?C  B7B8B<D,?C B
C,B>9D,>CD,D)C&C" C&%D)&
D&0,D!D)!D&&D))D,)NNTNr   )NNN)__doc__typingr   r@   ,litellm.llms.base_llm.sandbox.transformationr   r   r   litellm.types.utilsr   litellm.utilsr   r	   __all__r   strr   dictr"   r-   intboolr
   r   r   r   r4   r   r   <module>rP      s     
 1 7 # "3 RD RT R
D 
C 
C 
D 
   "&Dj 4Z  	
 4Z  $ 
 	_c)*  4Z	     _c)* 4Z
 
    
 Dj 4Z	
 4Z  r   