
    -iS&                        d dl Z d dlZd dlZd dlZd dlmZ d dlZddlmZ ddl	m
Z
mZ ddlmZ ddlmZ  ej        d	d
          Z ej        ddd          Ze                    ed           dee         ddfdZe                                 ej        ddd          fdee         fd            Zedk    r e             dS dS )    N)Optional   )ANSI   )_async_prompt_patch_anyio_open_process)Agent)_load_agent_configrichziA squad of lightweight composable AI applications built on Hugging Face's Inference Client and MCP stack.)rich_markup_modehelprunzRun the Agent in the CLIT)namer   invoke_without_command)r   
agent_pathreturnc                    !"K   t                       t          |           \  }}|                    dg           }|                    dg           }t          j                     t          j                    !d"t          j                    }t          j        t          j                  }d6 !"fd	 d}	 |	                    t          j                   d}n9# t          t          f$ r% t          j        t          j        fd           Y nw xY wi }t          |          d	k    rt          t          j        t          j        d
                               |D ]}	|	d         }
|	d         }d|
 d}t#                      }|D ]m}|d         dk    r|                    di           n|                    di           }|                                D ]\  }}||v r|                    |           n|                    d          }t)          |t*                    r||v r|                    d           |s't          t          j        d|
 d                     |
                    dd                                          }t          t          j        d|
           d| d| dz   d           t3          !           d{V                                 }!                                r^ |r:	 |                    t          j                   dS # t          t          f$ r Y dS w xY wt          j        t          j        |           dS |}|sbt;          j        |d          }|r&t          t          j        d | d!                     n%t          t          j        d"| d#                     |||
<   |D ]w}|d         dk    r|                    di           n|                    di           }|                                D ](\  }}||v r||                             ||          ||<   )xt                       |                    d          }t)          |t*                    r;|}|                                D ]\  }
}|                    d|
 d|          } ||d<   tA          |                    d$          |                    d%          |                    d&          |                    d          ||'          4 d{V 	 }|!                                 d{V  t          t          j        t          j        d("                    t          |j#                                                           |j#        D ]0}t          t          j        d|j$        j%                              1	  &                                 !                                ro	 ddd          d{V  |r:	 |                    t          j                   dS # t          t          f$ r Y dS w xY wt          j        t          j        |           dS 	 t3          !           d{V }d"n|# tN          $ r' t          t          j(        d)          d*           Y nptR          $ r@ "s                                 rY t          t          j(        d+          d*           Y n(w xY w	 |*                    | ,          2 3 d{V }                                 r"s n!                                ro ddd          d{V  |r:	 |                    t          j                   dS # t          t          f$ r Y dS w xY wt          j        t          j        |           dS tW          |d-          r|j,        d	         j-        }|j.        rt          |j.        dd.           |j/        r{|j/        D ]s}|j0        rt          d/|j0         d0d           |j$        j%        rt          |j$        j%         d           |j$        j1        rt          |j$        j1         d           tgt          t          j        d1|j%         d2|j2         d3|j.         d3          d*           6 t                       nU# tf          $ rH}ti          j5                    }t          t          j(        d4| d3|           d*           d"Y d}~nd}~ww xY wQ	 ddd          d{V  n# 1 d{V swxY w Y   nP# tf          $ rC}ti          j5                    }t          t          j(        d5| d3|           d*           |d}~ww xY w|r:	 |                    t          j                   dS # t          t          f$ r Y dS w xY wt          j        t          j        |           dS # |r8	 |                    t          j                   w # t          t          f$ r Y w w xY wt          j        t          j        |           w xY w)7z
    Tiny Agent loop.

    Args:
        agent_path (`str`, *optional*):
            Path to a local folder containing an `agent.json` and optionally a custom `PROMPT.md` or `AGENTS.md` file or a built-in agent stored in a Hugging Face dataset.

    inputsserversTr   Nc                      r;d                                   t          t          j        d          d           d S t          t          j        d          d                                             d S )NFz)
Interrupted. Press Ctrl+C again to quit.Tflushz
Exiting...)setprintr   red)abort_event
exit_eventfirst_sigints   `/var/www/html/speakWrite/venv/lib/python3.11/site-packages/huggingface_hub/inference/_mcp/cli.py_sigint_handlerz"run_agent.<locals>._sigint_handler5   sw     	 LOO$(GHHPTUUUUFdh~&&d3333    Fc                                   S )N )_r    s    r   <lambda>zrun_agent.<locals>.<lambda>G   s    OO4E4E r!   r   zfSome initial inputs are required by the agent. Please provide a value or leave empty to load from env.iddescriptionz${input:}typestdioenvheadersapiKeyzInput 'zJ' defined in config but not used by any server or as an API key. Skipping.-r$   u    • z: z. (default: load from z). )end)r    z Value successfully loaded from ''zNo value found for 'z'' in environment variables. Continuing.providermodelendpointUrl)r3   r4   base_urlapi_keyr   promptzAgent loaded with {} tools:z
EOF received, exiting.r   z,
Keyboard interrupt during input processing.)r   choices)r0   r   z<Tool >z

Tool[z] 
z
Error during agent run: 
An unexpected error occurred: )r   N)6r   r
   getasyncioEventget_running_loopsignal	getsignalSIGINTadd_signal_handlerAttributeErrorNotImplementedErrorlenr   r   boldbluer   itemsadd
isinstancestryellowreplaceupperr   stripis_setremove_signal_handlerosgetenvgreenr	   
load_toolsformatavailable_toolsfunctionr   clearEOFErrorr   KeyboardInterruptr   hasattrr9   deltacontent
tool_callsr&   	argumentstool_call_id	Exception	traceback
format_exc)#r   configr8   r   r   looporiginal_sigint_handlersigint_registered_in_loopresolved_inputs
input_iteminput_idr'   env_special_valueinput_usagesserverenv_or_headerskeyvalueraw_api_keyenv_variable_key
user_inputfinal_valuesubstituted_api_keyvalagenttchunkr_   calletb_strr    r   r   r   s#                                  @@@@r   	run_agentr      s"      '
33NFFZZ"%%FjjB''G-//KJL#%%D$.v}==	 	 	 	 	 	 	 	eB$)!	G##FM?CCC(,%% 34 	G 	G 	GM&-)E)E)E)EFFFFF	G
 +-v;;??	IR     % 8n 8n
%d+(7$<$<$<$<!  #uu% 2 2F>DVnPW>W>WVZZr%:%:%:]c]g]ghqsu]v]vN&4&:&:&<&< 2 2
U,55(,,S1112 %jj22k3// /4E4T4T $$X...# )h ) ) )     $,#3#3C#=#=#C#C#E#E I0h00114p4p4p\l4p4p4pp    %2Z$H$H$HHHHHHHOOQQ
$$&& N % 	B**6=99999"$78    M&-)@AAAAAU )" 	"$),<b"A"AK" dj)_L\)_)_)_``aaaa K p7G p p p   
 -8) & n nF>DVnPW>W>WVZZr%:%:%:]c]g]ghqsu]v]vN&4&:&:&<&< n n
U,552@2E2M2MN_al2m2mN3/nn GGGjj**k3'' 	3"-!0!6!6!8!8 a a#&9&A&ABZhBZBZBZ\_&`&`##2F8ZZ
++**W%%ZZ..JJx((
 
 
 ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ""$$$$$$$$$$)DI&C&J&J3uOdKeKe&f&fgghhiii* < <di 9
 9 9::;;;;2(!!### $$&& %?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	(N % 	B**6=99999"$78    M&-)@AAAAAs'4
'K'K'K!K!K!K!K!K!KJ#'LL   $(#=>>dKKKKE(   ' K,>,>,@,@  dh'VWW_cdddd(',yyy'U'U       e&--// " "!E%,,.. #"M?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	(N % 	B**6=99999"$78    M&-)@AAAAAK #5)44 $)M!$4$:E$} I %em4 H H H H$/ T,1,< !T !TD'+w %K(-.Atw.A.A.Ar(J(J(J(J'+}'9 %P(-1C.E3(O(O(O(O'+}'> %T(-1H.JPR(S(S(S(S! $
+luz+l+lUEW+l+l[`[h+l+l+l m m&*    ' (V0 GGGG  ( ( (&133F$(#M#M#MV#M#MNNVZ[[[[#'LLLLLL(_2( 2(?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	( ?	(B    %''dhG!GGvGGHHPTUUUU % 	B**6=99999"$78    M&-)@AAAAA % 	B**6=9999"$78    M&-)@AAAAsl  5d8 8"C d8 3Dd8 DG&d8 :L L0/L0Gd8 Cd&+d8 ?X   X54X5Y32d&3-[, d&#[,d&#[,(d&+[,,d&0b<b,/b<<d8 ]1 1^^*Db<;d&<
d>d	d&	dd&d8 &
d00d8 3d04d8 7g% 8
f>f  fg% f, ,g g%i )h	i 	hi h#i zPath to a local folder containing an agent.json file or a built-in agent stored in the 'tiny-agents/tiny-agents' Hugging Face dataset (https://huggingface.co/datasets/tiny-agents/tiny-agents)F)r   show_defaultpathc                 @   	 t          j        t          |                      d S # t          $ r9 t	          t          j        d          d           t          j        d          t          $ r-}t	          t          j        d|           d           |d }~ww xY w)Nz-
Application terminated by KeyboardInterrupt.Tr      )coder<   )
r>   r   r   r]   r   r   r   typerExitrd   )r   r~   s     r   r   r      s    IdOO$$$$$ # # #dhGHHPTUUUUjc""""   dh=!==>>dKKKKs   !% AB0(BB__main__)r>   rT   rA   re   typingr   r   utilsr   
_cli_hacksr   r   rz   r	   r
   Typerapprun_cli	add_typerrM   r   callbackArgumentr   __name__r#   r!   r   <module>r      s    				                   @ @ @ @ @ @ @ @       % % % % % % ek	t  
 %+		#  
 gE " " "IBIB	IB IB IB IBX 	(%.H    
3-   * zCEEEEE r!   