Ë
    ´ŒjSA  ã                  ó,  — d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm	Z	m
Z
mZmZ d dlmZ d dlmZmZmZ d dlmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZ d dlm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& e	rd dl'm(Z(m)Z)  ejT                  e+«      Z, G d„ d«      Z-y)é    )ÚannotationsN)ÚAsyncIteratorÚIterator)ÚTYPE_CHECKINGÚAnyÚOptionalÚUnion)ÚUUID)ÚAgentActionÚAgentFinishÚ	AgentStep)ÚAsyncCallbackManagerÚAsyncCallbackManagerForChainRunÚCallbackManagerÚCallbackManagerForChainRunÚ	Callbacks)Údumpd)ÚRunInfo)ÚAddableDict)ÚBaseTool)Úget_color_mapping)ÚRUN_KEY)Úasyncio_timeout)ÚAgentExecutorÚNextStepOutputc                  óÈ  — e Zd ZU dZ	 d&dddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d'd„Zded<   ded<   ded<   d
ed	<   ded<   ded<   ded<   ded<   ed(d„«       Zej                  d)d„«       Zed*d„«       Z	e	j                  d+d„«       Z	ed,d„«       Z
ed(d„«       Zd-d„Zd-d„Z	 	 	 	 	 	 d.d„Zd/d„Zd0d„Z	 	 	 	 	 	 d1d „Z	 	 	 	 	 	 d2d!„Zd3d"„Zd4d#„Z	 	 	 	 	 	 d5d$„Z	 	 	 	 	 	 d6d%„Zy)7ÚAgentExecutorIteratorzIterator for AgentExecutor.NF)ÚtagsÚmetadataÚrun_nameÚrun_idÚinclude_run_infoÚyield_actionsÚ	callbacksr   r   úOptional[list[str]]r   úOptional[dict[str, Any]]r    úOptional[str]r!   úOptional[UUID]r"   Úboolr#   c               ó¢   — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        | j                  «        y)a+  
        Initialize the AgentExecutorIterator with the given AgentExecutor,
        inputs, and optional callbacks.

        Args:
            agent_executor (AgentExecutor): The AgentExecutor to iterate over.
            inputs (Any): The inputs to the AgentExecutor.
            callbacks (Callbacks, optional): The callbacks to use during iteration.
                Defaults to None.
            tags (Optional[list[str]], optional): The tags to use during iteration.
                Defaults to None.
            metadata (Optional[Dict[str, Any]], optional): The metadata to use
                during iteration. Defaults to None.
            run_name (Optional[str], optional): The name of the run. Defaults to None.
            run_id (Optional[UUID], optional): The ID of the run. Defaults to None.
            include_run_info (bool, optional): Whether to include run info
                in the output. Defaults to False.
            yield_actions (bool, optional): Whether to yield actions as they
                are generated. Defaults to False.
        N)
Ú_agent_executorÚinputsr$   r   r   r    r!   r"   r#   Úreset)
ÚselfÚagent_executorr,   r$   r   r   r    r!   r"   r#   s
             úi/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain/agents/agent_iterator.pyÚ__init__zAgentExecutorIterator.__init__-   sP   € ðB  .ˆÔØˆŒØ"ˆŒØˆŒ	Ø ˆŒØ ˆŒØˆŒØ 0ˆÔØ*ˆÔØ�
‰
�ó    údict[str, str]Ú_inputsc                ó   — | j                   S )z The inputs to the AgentExecutor.)r4   ©r.   s    r0   r,   zAgentExecutorIterator.inputsb   s   € ð �|‰|Ðr2   c                óD   — | j                   j                  |«      | _        y ©N)r/   Úprep_inputsr4   )r.   r,   s     r0   r,   zAgentExecutorIterator.inputsg   s   € à×*Ñ*×6Ñ6°vÓ>ˆ�r2   c                ó   — | j                   S )z"The AgentExecutor to iterate over.)r+   r6   s    r0   r/   z$AgentExecutorIterator.agent_executork   s   € ð ×#Ñ#Ð#r2   c                ó4   — || _         | j                  | _        y r8   )r+   r,   )r.   r/   s     r0   r/   z$AgentExecutorIterator.agent_executorp   s   € à-ˆÔà—k‘kˆ�r2   c                ój   — | j                   j                  D �ci c]  }|j                  |“Œ c}S c c}w )z!A mapping of tool names to tools.)r/   ÚtoolsÚname©r.   Útools     r0   Úname_to_tool_mapz&AgentExecutorIterator.name_to_tool_mapv   s2   € ð -1×,?Ñ,?×,EÒ,EÓFÑ,E D�—	‘	˜4‘Ð,EÑFÐFùÒFs   ™0c                ó‚   — t        | j                  j                  D �cg c]  }|j                  ‘Œ c}ddg¬«      S c c}w )z"A mapping of tool names to colors.ÚgreenÚred)Úexcluded_colors)r   r/   r=   r>   r?   s     r0   Úcolor_mappingz#AgentExecutorIterator.color_mapping{   s@   € ô !Ø#'×#6Ñ#6×#<Ò#<Ó=Ñ#<˜4ˆT�Y‹YÐ#<Ñ=Ø$ eÐ,ô
ð 	
ùÚ=s   ž<c                óŠ   — t         j                  d«       g | _        d| _        d| _        t        j
                  «       | _        y)z}
        Reset the iterator to its initial state, clearing intermediate steps,
        iterations, and time elapsed.
        z0(Re)setting AgentExecutorIterator to fresh stater   g        N)ÚloggerÚdebugÚintermediate_stepsÚ
iterationsÚtime_elapsedÚtimeÚ
start_timer6   s    r0   r-   zAgentExecutorIterator.resetƒ   s5   € ô
 	�‰ÐGÔHØACˆÔØˆŒàˆÔÜŸ)™)›+ˆ�r2   c                óÐ   — | xj                   dz  c_         t        j                  «       | j                  z
  | _        t        j                  d| j                   | j                  «       y)zQ
        Increment the number of iterations and update the time elapsed.
        é   z$Agent Iterations: %s (%.2fs elapsed)N)rK   rM   rN   rL   rH   rI   r6   s    r0   Úupdate_iterationsz'AgentExecutorIterator.update_iterations�   sH   € ð 	�Š˜1Ñ�Ü ŸI™I›K¨$¯/©/Ñ9ˆÔÜ�‰Ø2Ø�O‰OØ×Ñõ	
r2   c                óº   — t        | j                  j                  | j                  |d¬«      «      }| j                  rt        |j                  ¬«      |t        <   |S )NT)Úreturn_only_outputs)r!   )r   r/   Úprep_outputsr,   r"   r   r!   r   )r.   ÚoutputsÚrun_managerÚprepared_outputss       r0   Úmake_final_outputsz(AgentExecutorIterator.make_final_outputs›   s\   € ô 'Ø×Ñ×,Ñ,Ø—‘ØØ$(ð -ó ó
Ðð × Ò Ü(/°{×7IÑ7IÔ(JÐœWÑ%ØÐr2   c           	   #  óX  K  — t         j                  d«       | j                  «        t        j                  | j
                  | j                  j
                  | j                  j                  | j                  | j                  j                  | j                  | j                  j                  «      }|j                  t        | j                  «      | j                  | j                  | j                  ¬«      }	 | j                  j                  | j                   | j"                  «      �rJg }| j                  j%                  | j&                  | j(                  | j                  | j*                  |«      D ]v  }|j-                  |«       | j.                  sŒ!t1        |t2        «      rt5        |g|j6                  ¬«      –— ŒLt1        |t8        «      sŒ]t5        |g|j6                  ¬«      –— Œx | j                  j;                  |«      }| j=                  «        | j?                  ||«      }d|v}| j.                  r|r|–— |ry | j                  j                  | j                   | j"                  «      r�ŒJ| jE                  |«      –— y # t@        $ r}|jC                  |«       ‚ d }~ww xY w­w)Nz"Initialising AgentExecutorIterator©r>   ©ÚactionsÚmessages©Ústepsr]   Úintermediate_step)#rH   rI   r-   r   Ú	configurer$   r/   Úverboser   r   Úon_chain_startr   r,   r!   r    Ú_should_continuerK   rL   Ú_iter_next_steprA   rF   rJ   Úappendr#   Ú
isinstancer   r   r]   r   Ú_consume_next_steprQ   Ú_process_next_step_outputÚBaseExceptionÚon_chain_errorÚ_stop©	r.   Úcallback_managerrV   Únext_step_seqÚchunkÚ	next_stepÚoutputÚis_finalÚes	            r0   Ú__iter__zAgentExecutorIterator.__iter__®   s0  è ø€ Ü�‰Ð9Ô:Ø�
‰
ŒÜ*×4Ñ4Ø�N‰NØ×Ñ×)Ñ)Ø×Ñ×'Ñ'Ø�I‰IØ×Ñ×$Ñ$Ø�M‰MØ×Ñ×(Ñ(ó
Ðð '×5Ñ5Ü�$×%Ñ%Ó&Ø�K‰KØ�K‰KØ—‘ð	 6ó 
ˆð(	Ø×%Ñ%×6Ñ6Ø—‘Ø×!Ñ!õð 13�Ø!×0Ñ0×@Ñ@Ø×)Ñ)Ø×&Ñ&Ø—K‘KØ×+Ñ+Øö�Eð "×(Ñ(¨Ô/ð ×)Ó)Ü% e¬[Ô9Ü"-°u°gÈÏÉÔ"WÓWÜ'¨¬yÕ9Ü"-°U°GÀeÇnÁnÔ"UÓUðð" !×/Ñ/×BÑBÀ=ÓQ�	à×&Ñ&Ô(à×7Ñ7¸	À;ÓO�Ø.°fÐ<�ð ×)Ò)©XØ ’LáØðI ×%Ñ%×6Ñ6Ø—‘Ø×!Ñ!öðT �j‰j˜Ó%Ó%øô ò 	Ø×&Ñ& qÔ)Øûð	üsD   ‚C5J*Ã8BJ Æ;J ÇA1J É J*É0J É3J*Ê	J'ÊJ"Ê"J'Ê'J*c           	    óö  K  — t         j                  d«       | j                  «        t        j                  | j
                  | j                  j
                  | j                  j                  | j                  | j                  j                  | j                  | j                  j                  «      }|j                  t        | j                  «      | j                  | j                  | j                  ¬«      ƒ d{  –—† }	 t        | j                  j                   «      4 ƒd{  –—†  | j                  j#                  | j$                  | j&                  «      rÉg }| j                  j)                  | j*                  | j,                  | j                  | j.                  |«      2 3 d{  –—† }|j1                  |«       | j2                  sŒ't5        |t6        «      rt9        |g|j:                  ¬«      ­–— ŒSt5        |t<        «      sŒdt9        |g|j:                  ¬«      ­–— Œ€ddd«      ƒd{  –—†  | jI                  |«      ƒ d{  –—† ­–— y7 �ŒT7 �Œ.7 Œ®6 | j                  j?                  |«      }| jA                  «        | jC                  ||«      ƒ d{  –—†7  }d|v}| j2                  r|r|­–— |r	 ddd«      ƒd{  –—†7   y| j                  j#                  | j$                  | j&                  «      r�Œ£ŒÛ7 ŒÏ# 1 ƒd{  –—†7  sw Y   ŒßxY w# tD        tF        jD                  f$ r  | jI                  |«      ƒ d{  –—†7  ­–— Y ytJ        $ r }|jM                  |«      ƒ d{  –—†7   ‚ d}~ww xY w7 �Œ1­w)z—
        N.B. __aiter__ must be a normal method, so need to initialize async run manager
        on first __anext__ call where we can await it
        z*Initialising AgentExecutorIterator (async)rZ   Nr[   r^   r`   )'rH   rI   r-   r   ra   r$   r/   rb   r   r   rc   r   r,   r!   r    r   Úmax_execution_timerd   rK   rL   Ú_aiter_next_steprA   rF   rJ   rf   r#   rg   r   r   r]   r   rh   rQ   Ú_aprocess_next_step_outputÚTimeoutErrorÚasyncioÚ_astoprj   rk   rm   s	            r0   Ú	__aiter__zAgentExecutorIterator.__aiter__í   sä  è ø€ ô
 	�‰ÐAÔBØ�
‰
ŒÜ/×9Ñ9Ø�N‰NØ×Ñ×)Ñ)Ø×Ñ×'Ñ'Ø�I‰IØ×Ñ×$Ñ$Ø�M‰MØ×Ñ×(Ñ(ó
Ðð -×;Ñ;Ü�$×%Ñ%Ó&Ø�K‰KØ�K‰KØ—‘ð	 <ó 
÷ 
ˆð5	Ü& t×':Ñ':×'MÑ'M×NÕNØ×)Ñ)×:Ñ:Ø—O‘OØ×%Ñ%ôð 57�MØ'+×':Ñ':×'KÑ'KØ×-Ñ-Ø×*Ñ*ØŸ™Ø×/Ñ/Ø#ô(÷ "˜eð &×,Ñ,¨UÔ3ð  ×-Ó-Ü)¨%´Ô=Ü&1Ø-2¨GØ-2¯^©^ô'"ô !"ô ",¨E´9Õ!=Ü&1Ø+0¨'Ø-2¯^©^ô'"ô !"÷3 O×Nðn —K‘K Ó,×,Ô,ð}
ùð Oùð"øð (ð. !%× 3Ñ 3× FÑ FÀ}Ó U�Ià×*Ñ*Ô,à#'×#BÑ#BØ!Ø#ó$÷ ð �Fð  3¸&Ð@�Hð  ×-Ò-±Ø$›áØ÷] O×NÑNØ×)Ñ)×:Ñ:Ø—O‘OØ×%Ñ%öøð Oø×N×NÑNûô^ œg×2Ñ2Ð3ò 	ØŸ™ KÓ0×0Ð0Ó0ÙÜò 	Ø×,Ñ,¨QÓ/×/Ñ/Øûð	úð
 -ûs
  ‚C8M9Ã:IÃ;M9Ä #L Ä#IÄ$L Ä'A:K>Æ!IÆ%IÆ&IÆ)K>Ç<K>ÈK>È!L È,K<È-L È1M9ÉM6É	M9ÉL ÉIÉAK>ÊJÊK>Ê7L ËKËL ËM9Ë	0K>Ë<L Ë>LÌLÌLÌL Ì-M3Í MÍM3Í	M9ÍM3ÍM.Í'M*Í(M.Í.M3Í3M9c                óš  — t         j                  d«       t        |t        «      r(t         j                  d«       | j	                  ||¬«      S | j
                  j                  |«       t         j                  d«       t        |«      dk(  r5|d   }| j                  j                  |«      }|�| j	                  ||¬«      S t        |¬«      S )zj
        Process the output of the next step,
        handling AgentFinish and tool return cases.
        z$Processing output of Agent loop stepzBHit AgentFinish: _return -> on_chain_end -> run final output logic©rV   ú+Updated intermediate_steps with step outputrP   r   ©r`   )rH   rI   rg   r   Ú_returnrJ   ÚextendÚlenr/   Ú_get_tool_returnr   ©r.   Únext_step_outputrV   Únext_step_actionÚtool_returns        r0   ri   z/AgentExecutorIterator._process_next_step_output=  sº   € ô 	�‰Ð;Ô<ÜÐ&¬Ô4Ü�L‰LØTôð —<‘<Ð 0¸k�<ÓJÐJà×Ñ×&Ñ&Ð'7Ô8Ü�‰ÐBÔCô ÐÓ  AÒ%Ø/°Ñ2ÐØ×-Ñ-×>Ñ>Ð?OÓPˆKØÐ&Ø—|‘| K¸[�|ÓIÐIäÐ-=Ô>Ð>r2   c              ƒ  óÊ  K  — t         j                  d«       t        |t        «      r0t         j                  d«       | j	                  ||¬«      ƒ d{  –—† S | j
                  j                  |«       t         j                  d«       t        |«      dk(  r=|d   }| j                  j                  |«      }|�| j	                  ||¬«      ƒ d{  –—† S t        |¬«      S 7 Œ‹7 Œ­w)	zp
        Process the output of the next async step,
        handling AgentFinish and tool return cases.
        z*Processing output of async Agent loop stepzCHit AgentFinish: _areturn -> on_chain_end -> run final output logicr   Nr€   rP   r   r�   )rH   rI   rg   r   Ú_areturnrJ   rƒ   r„   r/   r…   r   r†   s        r0   ry   z0AgentExecutorIterator._aprocess_next_step_outputY  sÑ   è ø€ ô 	�‰ÐAÔBÜÐ&¬Ô4Ü�L‰LØUôð Ÿ™Ð'7À[˜ÓQ×QÐQà×Ñ×&Ñ&Ð'7Ô8Ü�‰ÐBÔCô ÐÓ  AÒ%Ø/°Ñ2ÐØ×-Ñ-×>Ñ>Ð?OÓPˆKØÐ&Ø!Ÿ]™]¨;ÀK˜]ÓP×PÐPäÐ-=Ô>Ð>ð Røð Qús%   ‚AC#ÁCÁA:C#ÃC!ÃC#Ã!C#c                óò   — t         j                  d«        | j                  j                  j                  | j                  j
                  | j                  fi | j                  ¤Ž}| j                  ||¬«      S )zb
        Stop the iterator and raise a StopIteration exception with the stopped response.
        ú;Stopping agent prematurely due to triggering stop conditionr   )	rH   Úwarningr/   Ú_action_agentÚreturn_stopped_responseÚearly_stopping_methodrJ   r,   r‚   ©r.   rV   rr   s      r0   rl   zAgentExecutorIterator._stopu  sj   € ô 	�‰ÐTÔUàJ�×$Ñ$×2Ñ2×JÑJØ×Ñ×5Ñ5Ø×#Ñ#ñ
ð �k‰kñ
ˆð
 �|‰|˜F°ˆ|Ó<Ð<r2   c              ƒ  ó  K  — t         j                  d«        | j                  j                  j                  | j                  j
                  | j                  fi | j                  ¤Ž}| j                  ||¬«      ƒ d{  –—† S 7 Œ­w)zu
        Stop the async iterator and raise a StopAsyncIteration exception with
        the stopped response.
        r�   r   N)	rH   rŽ   r/   r�   r�   r‘   rJ   r,   r‹   r’   s      r0   r|   zAgentExecutorIterator._astop‚  st   è ø€ ô
 	�‰ÐTÔUØJ�×$Ñ$×2Ñ2×JÑJØ×Ñ×5Ñ5Ø×#Ñ#ñ
ð �k‰kñ
ˆð
 —]‘] 6°{�]ÓC×CÐCÐCús   ‚A<BÁ>BÁ?Bc                ó¶   — | j                   j                  || j                  |¬«      }|j                  |d<   |j	                  |«       | j                  ||«      S )z:
        Return the final output of the iterator.
        r   r]   )r/   r‚   rJ   r]   Úon_chain_endrX   ©r.   rr   rV   Úreturned_outputs       r0   r‚   zAgentExecutorIterator._return�  s_   € ð ×-Ñ-×5Ñ5ØØ×#Ñ#Ø#ð 6ó 
ˆð
 '-§o¡oˆ˜
Ñ#Ø× Ñ  Ô1Ø×&Ñ& ¸ÓDÐDr2   c              ƒ  óæ   K  — | j                   j                  || j                  |¬«      ƒ d{  –—† }|j                  |d<   |j	                  |«      ƒ d{  –—†  | j                  ||«      S 7 Œ>7 Œ­w)z@
        Return the final output of the async iterator.
        r   Nr]   )r/   r‹   rJ   r]   r•   rX   r–   s       r0   r‹   zAgentExecutorIterator._areturn   sy   è ø€ ð !%× 3Ñ 3× <Ñ <ØØ×#Ñ#Ø#ð !=ó !
÷ 
ˆð
 '-§o¡oˆ˜
Ñ#Ø×&Ñ& Ó7×7Ð7Ø×&Ñ& ¸ÓDÐDð
øð 	8ús!   ‚,A1®A-¯'A1ÁA/ÁA1Á/A1r8   )r/   r   r,   r   r$   r   r   r%   r   r&   r    r'   r!   r(   r"   r)   r#   r)   )Úreturnr3   )r,   r   r™   ÚNone)r™   r   )r/   r   r™   rš   )r™   zdict[str, BaseTool])r™   rš   )rU   zdict[str, Any]rV   zBUnion[CallbackManagerForChainRun, AsyncCallbackManagerForChainRun]r™   r   )r.   r   r™   zIterator[AddableDict])r™   zAsyncIterator[AddableDict])r‡   ú1Union[AgentFinish, list[tuple[AgentAction, str]]]rV   r   r™   r   )r‡   r›   rV   r   r™   r   )rV   r   r™   r   )rV   r   r™   r   )rr   r   rV   r   r™   r   )rr   r   rV   r   r™   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r1   Ú__annotations__Úpropertyr,   Úsetterr/   rA   rF   r-   rQ   rX   ru   r}   ri   ry   rl   r|   r‚   r‹   © r2   r0   r   r   *   s  … Ù%ð  $ð	*ð %)Ø-1Ø"&Ø!%Ø!&Ø#ñ*à%ð*ð ð*ð ð	*ð "ð*ð +ð*ð  ð*ð ð*ð ð*ð ó*ðX ÓØÓØ
ÓØ&Ó&ØÓØÓØÓØÓàòó ðð ‡]�]ò?ó ð?ð ò$ó ð$ð ×Ñò"ó ð"ð
 òGó ðGð ò
ó ð
ó
&ó

ð àð ð Xð ð 
ó	 ó&=&ó~N-ð`?àKð?ð 0ð?ð 
ó	?ð8?àKð?ð 5ð?ð 
ó	?ó8=óDðEàðEð 0ðEð 
ó	Eð"EàðEð 5ðEð 
ô	Er2   r   ).Ú
__future__r   r{   ÚloggingrM   Úcollections.abcr   r   Útypingr   r   r   r	   Úuuidr
   Úlangchain_core.agentsr   r   r   Úlangchain_core.callbacksr   r   r   r   r   Úlangchain_core.load.dumpr   Úlangchain_core.outputsr   Úlangchain_core.runnables.utilsr   Úlangchain_core.toolsr   Úlangchain_core.utils.inputr   Úlangchain.schemar   Úlangchain.utilities.asyncior   Úlangchain.agents.agentr   r   Ú	getLoggerrœ   rH   r   r£   r2   r0   Ú<module>r´      st   ðÝ "ã Û Û ß 3÷ó õ ÷ñ ÷
õ õ +Ý *Ý 6Ý )Ý 8å $Ý 7áßDà	ˆ×	Ñ	˜8Ó	$€÷EEò EEr2   