
    rh%                     v   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j'                  ed       dee   ddfdZej-                          ej.                  ddd      fdee   fd       Zedk(  r e        yy)    N)Optional)print   )_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        |       \  }}|j                  dg       }|j                  dg       }t        j                          t        j                         !d"t        j
                         }t        j                  t        j                        }d9 !"fd	 d}	 |j                  t        j                         d}i }t        |      dkD  r;t        d	       |D ]   }	|	d
   }
|	d   }d|
 d}t               }|D ]\  }|d   dk(  r|j                  di       n|j                  di       }|j                         D ]  \  }}||v s|j!                  |        ^ |j                  d      }t#        |t$              r||v r|j!                  d       |st        d|
 d       |
j'                  dd      j)                         }t        d|
 d| d| dd       t+        !       d{   j-                         }!j/                         rI |r!	 |j1                  t        j                         yt        j                  t        j                  |       y|}|s7t3        j4                  |d      }|rt        d| d        nt        d!| d"       |||
<   |D ]c  }|d   dk(  r|j                  di       n|j                  di       }|j                         D ]"  \  }}||v s||   j'                  ||      ||<   $ e # t                |j                  d      }t#        |t$              r5|}|j                         D ]  \  }
}|j'                  d|
 d|      } ||d<   t7        |j                  d#      |j                  d$      |j                  d%      |j                  d      ||&      4 d{   }|j9                          d{    t        d't        |j:                         d(       |j:                  D ]%  }t        d|j<                  j>                   d)       ' 	  jA                          !j/                         rY	 ddd      d{    |r!	 |j1                  t        j                         yt        j                  t        j                  |       y	 t+        !       d{   }d"	 |jG                  | -      2 3 d{   } j/                         r"s n!j/                         rY ddd      d{    |r!	 |j1                  t        j                         yt        j                  t        j                  |       ytI        |d.      r|jJ                  d   jL                  }|jN                  rt        |jN                  dd/       |jP                  s|jP                  D ]  }|jR                  rt        d0|jR                   d1d       |j<                  j>                  r"t        |j<                  j>                   d       |j<                  jT                  syt        |j<                  jT                   d        t        d2|j>                   d3|jV                   d4|jN                   d5d+       t                o# t        t        f$ r+ t        j                  t        j                  fd       Y w xY w7 # t        t        f$ r Y yw xY w7 87 #7 # t        t        f$ r Y yw xY w7 Y# tB        $ r t        d*d+       Y ntD        $ r% "s j/                         rY t        d,d+       Y nbw xY w7 7 R# t        t        f$ r Y yw xY w6 # tX        $ r5}t[        j\                         }t        d6| d4| d7d+       d"Y d}~d}~ww xY wddd      d{  7   n# 1 d{  7  sw Y   nxY wn;# tX        $ r/}t[        j\                         }t        d8| d4| d7d+       |d}~ww xY w|r6	 |j1                  t        j                         y# t        t        f$ r Y yw xY wt        j                  t        j                  |       y# r6	 |j1                  t        j                         w # t        t        f$ r Y w w xY wt        j                  t        j                  |       w xY ww):z
    Tiny Agent loop.

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

    inputsserversTNc                      r d j                          t        dd       y t        dd       j                          y )NFz4
[red]Interrupted. Press Ctrl+C again to quit.[/red]Tflushz
[red]Exiting...[/red])setr   )abort_event
exit_eventfirst_sigints   u/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/huggingface_hub/inference/_mcp/cli.py_sigint_handlerz"run_agent.<locals>._sigint_handler5   s9     LOOIQUV't4    Fc                              S )N )_r   s    r   <lambda>zrun_agent.<locals>.<lambda>G   s
    O4E r   r   z}[bold blue]Some initial inputs are required by the agent. Please provide a value or leave empty to load from env.[/bold blue]iddescriptionz${input:}typestdioenvheadersapiKeyz[yellow]Input 'zS' defined in config but not used by any server or as an API key. Skipping.[/yellow]-r!   u   [blue] • z	[/blue]: z. (default: load from z). )end)r    z'[green]Value successfully loaded from 'z	'[/green]z[yellow]No value found for 'z0' in environment variables. Continuing.[/yellow]providermodelendpointUrl)r/   r0   base_urlapi_keyr   promptz[bold blue]Agent loaded with z tools:[/bold blue]z[/blue]z"
[red]EOF received, exiting.[/red]r   z7
[red]Keyboard interrupt during input processing.[/red])r   choices)r-   r   z<Tool >z

[green]Tool[z] 
z	[/green]
z#
[bold red]Error during agent run: [/bold red])
[bold red]An unexpected error occurred: )r   N)/r   r	   getasyncioEventget_running_loopsignal	getsignalSIGINTadd_signal_handlerAttributeErrorNotImplementedErrorlenr   r   itemsadd
isinstancestrreplaceupperr   stripis_setremove_signal_handlerosgetenvr   
load_toolsavailable_toolsfunctionr   clearEOFErrorKeyboardInterruptr   hasattrr5   deltacontent
tool_callsr#   	argumentstool_call_id	Exception	traceback
format_exc)#r   configr4   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chunkrW   calletb_strr   r   r   r   s#                                  @@@@r   	run_agentrx      s~     '
3NFFZZ"%FjjB'G--/KJL##%D$..v}}=	]B$)!	G##FMM?C(,% +-v;?V % 4n
%d+(7&/z$<!  #u% 2F>DVnPW>WVZZr%:]c]g]ghqsu]vN&4&:&:&< 2
U,5(,,S122 %jj2k3/4E4T $$X.#)( 4. .  $,#3#3C#=#C#C#E !(9[MAWXhWiikl %2Z$HHOOQ
$$&J %**6==9 MM&--)@AQ )""$)),<b"AK" GHXGYYbcd:;K:LL|} -8) & nF>DVnPW>WVZZr%:]c]g]ghqsu]vN&4&:&:&< n
U,52@2E2M2MN_al2mN3/nna4nl Gjj*k3'"-!0!6!6!8 a#&9&A&AIhZWYBZ\_&`#a2F8ZZ
+**W%ZZ.JJx(
 ?	( ?	( ""$$$1#e6K6K2L1MM`ab** >AJJOO#4G<=> !!# $$&%?	( ?	(N %**6==9 MM&--)@As'4
'K!KJ#'L(',yyy'U  e&--/!%,,."M?	( ?	(N %**6==9 MM&--)@AK #5)4$)MM!$4$:$:E$}} %emm4 H$//,1,<,< !TD'+ww(-twwiq.Ar(J'+}}'9'9(-1C1C0D3(O'+}}'>'>(-1H1H0IPR(S!T ""25::,bASAS@TTVW\WdWdVeeo p&*
 G[ q  34 	GMM&--)EF	GV IT #$78 U?	( %?	(T #$78 k "L ?tL( 'K,>,>,@ X`deE?	(T #$78 Q (V4 ! (&113F@2fX[Yaef#'L(y?	( ?	( ?	( ?	( ?	(B  %%':1#Rx{S[_` %**6==9"$78  MM&--)@A %**6==9"$78  MM&--)@Asx  B&c%-_, 0"Z( B_, B#_, =[%>#_, !c%$[( &c%)B_, 5C_, [=_, 	_\ A<__, %\&_, *c%-\ &c%3\\\
^^!]&"^%'^_, ])_, c%], >&c%$A^:B^?A'^&_(6["_, ![""_, ([:7c%9[::c%=_,  __, \c%\c%\]#4_6]#_]# _"]##_&^)_, ,]>;c%=]>>c%^	_*^<6_<___, __, _(__($_, +b ,	`$5*``$$b 'c%*a
 	c%
ac%a(c%c"b('c"(b:7c"9b::(c""c%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        |              y # t        $ r$ t	        dd       t        j                  d      t        $ r}t	        d| dd       |d }~ww xY w)Nz8
[red]Application terminated by KeyboardInterrupt.[/red]Tr      )coder9   r8   )r;   r   rx   rU   r   typerExitr\   )rz   rv   s     r   r   r      sd    IdO$ #IQUVjjc"" :1#[IQUVs   ! 4A-A((A-__main__)r;   rN   r>   r]   typingr   r~   r
   r   
_cli_hacksr   r   rr   r   utilsr	   Typerapprun_cli	add_typerrH   rx   callbackArgumentr   __name__r    r   r   <module>r      s     	      @  % ekk	t
 %++		#
 gE "ABAB	ABH 	(%..H 
3- * zE r   