
    Cj}/                    d   % 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KJ	r	  S SK
JrJr  S SKJr  S SKJr  S	S
KJr  \ " S S5      5       r\\\\4   -  rS\S'       S-S jr\" 5       rS\S'   \" SS9 " S S5      5       r\ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\\/\\ \-     4   r!S\S'   Sr"S r#        S.S! jr$S/S" jr%S/S# jr&\ " S$ S%5      5       r'S0S& jr(      S1S' jr)S2S( jr*S2S) jr+      S3S* jr, " S+ S,5      r-\-" 5       r.g)4    )annotationsN)CallableIterable)	dataclassfield)isawaitable)Any	TypeAlias)Field)r      )MaybeAwaitablec                  d    \ rS rSr% SrSrS\S'    SrS\S'    SrS\S'    Sr	S\S	'    SS
 jr
Srg)ModelRetryBackoffSettings   z7Backoff configuration for runner-managed model retries.Nfloat | Noneinitial_delay	max_delay
multiplierbool | Nonejitterc                .    [         R                  " U 5      $ N)dataclassesasdictselfs    ^/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/agents/retry.pyto_json_dict&ModelRetryBackoffSettings.to_json_dict   s    !!$''     returnzdict[str, Any])__name__
__module____qualname____firstlineno____doc__r   __annotations__r   r   r   r   __static_attributes__r!   r    r   r   r      s>    A"&M<&:"I|":#J#6FK?(r    r   r
   ModelRetryBackoffInputc                L    U b  [        U [        5      (       a  U $ [        S0 U D6$ )Nr!   )
isinstancer   values    r   _coerce_backoff_settingsr0   &   s)     }
5*CDD$-u--r    r	   _UNSETF)initc                      \ rS rSr% SrSrS\S'   SrS\S'   SrS\S'   Sr	S\S	'   Sr
S
\S'   SrS\S'   SrS\S'   SrS\S'   \\\\\\\\4                 SS jjrSrg)ModelRetryNormalizedError1   z1Normalized error facts exposed to retry policies.N
int | Nonestatus_code
str | None
error_codemessage
request_idr   retry_afterFboolis_abortis_network_error
is_timeoutc	                :  ^
 [        5       m
SU
4S jjn	U	" SUS 5      U l        U	" SUS 5      U l        U	" SUS 5      U l        U	" SUS 5      U l        U	" SUS 5      U l        U	" SUS5      U l        U	" S	US5      U l        U	" S
US5      U l        [        T
5      U l
        g )Nc                @   > U[         L a  U$ TR                  U 5        U$ r   )r1   add)namer/   defaultexplicit_fieldss      r   assign2ModelRetryNormalizedError.__init__.<locals>.assignK   s"    %Lr    r7   r9   r:   r;   r<   r>   Fr?   r@   )rD   strr/   r	   rE   r	   r#   r	   )setr7   r9   r:   r;   r<   r>   r?   r@   	frozenset_explicit_fields)r   r7   r9   r:   r;   r<   r>   r?   r@   rG   rF   s             @r   __init__"ModelRetryNormalizedError.__init__>   s     %(E	 "-dC z4@i$7 z4@!-dCz8U; &'9;KU S z5A )/ :r    )	rL   r9   r>   r?   r@   r:   r;   r<   r7   )r7   r6   r9   r8   r:   r8   r;   r8   r<   r   r>   r=   r?   r=   r@   r=   r#   None)r$   r%   r&   r'   r(   r7   r)   r9   r:   r;   r<   r>   r?   r@   r1   rM   r*   r!   r    r   r4   r4   1   s    ;"K"!J
!GZ!J
! $K$Hd"d"J #)!'$!'$*!'!;; ; 	;
 ; "; ; ; ; 
; ;r    r4   c                  `    \ rS rSr% SrSrS\S'   SrS\S'   SrS\S	'   Sr	S\S
'   Sr
S\S'   Srg)ModelRetryAdvice\   z<Provider-specific retry guidance returned by model adapters.Nr   	suggestedr   r<   r8   replay_safetyreasonz ModelRetryNormalizedError | None
normalizedr!   )r$   r%   r&   r'   r(   rS   r)   r<   rT   rU   rV   r*   r!   r    r   rQ   rQ   \   s8    F!I{! $K$ $M:$FJ37J07r    rQ   c                  T    \ rS rSr% SrS\S'   S\S'   S\S'   S	rS
\S'   S	rS
\S'   Srg	)ModelRetryAdviceRequestg   z=Context passed to a model adapter when deriving retry advice.	Exceptionerrorintattemptr=   streamNr8   previous_response_idconversation_idr!   )	r$   r%   r&   r'   r(   r)   r_   r`   r*   r!   r    r   rX   rX   g   s*    GLL'+*+"&OZ&r    rX   c                  x    \ rS rSr% SrS\S'   SrS\S'   SrS\S	'   \" S
S
S
S
S9r	S\S'   \" S
S
S
S
S9r
S\S'   Srg)RetryDecisionr   z3Explicit retry decision returned by retry policies.r=   retryNr   delayr8   rU   F)rE   r2   reprcompare
_hard_veto_approves_replayr!   )r$   r%   r&   r'   r(   r)   re   rU   r   rh   ri   r*   r!   r    r   rb   rb   r   sJ    =KE<FJUUERJR"5u5RWXdXr    rb   c                  Z    \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S
\S'   SrS\S'   Srg)RetryPolicyContext}   z1Context passed to runtime retry policy callbacks.rZ   r[   r\   r]   max_retriesr=   r^   r4   rV   NzModelRetryAdvice | Noneprovider_advicer!   )r$   r%   r&   r'   r(   r)   rn   r*   r!   r    r   rk   rk   }   s,    ;LL))/3O,3r    rk   RetryPolicy,_openai_agents_retries_safe_transport_errors+_openai_agents_retries_all_transient_errorsc               J    [        U [        U5        [        U [        U5        U $ r   )setattr#_RETRIES_SAFE_TRANSPORT_ERRORS_ATTR"_RETRIES_ALL_TRANSIENT_ERRORS_ATTR)policyretries_safe_transport_errorsretries_all_transient_errorss      r   _mark_retry_capabilitiesry      s%     F79VWF68TUMr    c                H    [        U =(       a    [        U [        S5      5      $ NF)r=   getattrrt   rv   s    r   *retry_policy_retries_safe_transport_errorsr~      s    V76+NPUVWWr    c                H    [        U =(       a    [        U [        S5      5      $ r{   )r=   r|   ru   r}   s    r   )retry_policy_retries_all_transient_errorsr      s    U76+MuUVVr    c                  j    \ rS rSr% SrSrS\S'    SrS\S'    \" SSS	S
9r	S\S'    SS jr
SS jrSrg)ModelRetrySettings   z5Opt-in runner-managed retry settings for model calls.Nr6   rm   ModelRetryBackoffInput | NonebackoffTF)rE   excluderf   zCallable[..., Any] | Nonerv   c                8    [        U R                  5      U l        g r   )r0   r   r   s    r   __post_init__ ModelRetrySettings.__post_init__   s    /=r    c                t    [        U R                  5      nU R                  Ub  UR                  5       S.$ S S.$ )N)rm   r   )r0   r   rm   r   )r   r   s     r   r   ModelRetrySettings.to_json_dict   sA    *4<<8++181Dw++-
 	
JN
 	
r    )r   )r#   rO   r"   )r$   r%   r&   r'   r(   rm   r)   r   r   rv   r   r   r*   r!   r    r   r   r      sA    ?"K":-1G*1U(-dDu(UF%UK>
r    r   c                T    [        U [        5      (       a  U $ [        [        U 5      S9$ )Nrd   )r-   rb   r=   r.   s    r   _coerce_decisionr      s#    %''tE{++r    c                h   #    U " U5      n[        U5      (       a
  UI S h  vN n[        U5      $  N7fr   )r   r   )rv   contextr/   s      r   _evaluate_policyr      s2      7OE5E"" s   202c                    SU l         U $ NT)rh   decisions    r   _with_hard_vetor      s    HOr    c                    SU l         U $ r   )ri   r   s    r   _with_replay_safe_approvalr      s     $HOr    c                ,   [        SU R                  U R                  S9nU R                  (       a  [	        U5      nUR                  b  UR                  Ul        UR                  b  UR                  Ul        UR                  (       a  [	        U5      nU$ )NTrd   re   rU   )rb   re   rU   ri   r   )existingincomingmergeds      r   _merge_positive_retry_decisionsr      sv     nnF
   +F3~~!~~"   +F3Mr    c                  Z    \ rS rSrSS jrSS jrSS jrSS jrSS jrSS jr	SS jr
S	rg
)_RetryPolicies   c                "    SS jn[        USSS9$ )Nc                    gr{   r!   )_contexts    r   rv   $_RetryPolicies.never.<locals>.policy   s    r    Frw   rx   )r   rk   r#   r=   ry   r   rv   s     r   never_RetryPolicies.never   s    	 (*/).
 	
r    c                "    SS jn[        USSS9$ )Nc                   U R                   nUb  UR                  c  gUR                  SL a  [        [        SUR                  S95      $ [        SUR
                  UR                  S9nUR                  S:X  a  [        U5      $ U$ )NF)rd   rU   Tr   safe)rn   rS   r   rb   rU   r<   rT   r   )r   advicer   s      r   rv   1_RetryPolicies.provider_suggested.<locals>.policy   s}    ,,F~!1!1!95(&}5'WXX$4v7I7IRXR_R_`H##v-1(;;Or    TFr   r   rk   r#   bool | RetryDecisionr   r   s     r   provider_suggested!_RetryPolicies.provider_suggested   s    		 (*.).
 	
r    c                "    SS jn[        USSS9$ )Nc                h    U R                   R                  =(       d    U R                   R                  $ r   )rV   r?   r@   )r   s    r   rv   ,_RetryPolicies.network_error.<locals>.policy  s%    %%66W':L:L:W:WWr    TFr   r   rk   r#   r=   r   r   s     r   network_error_RetryPolicies.network_error  s     	X (*.).
 	
r    c                "    SS jn[        USSS9$ )Nc                    U R                   R                  nUc#  U R                  b  U R                  R                  nUc  g[        SUS9$ )NFT)rd   re   )rV   r<   rn   rb   )r   re   s     r   rv   *_RetryPolicies.retry_after.<locals>.policy  sI    &&22E}!8!8!D//;;} t599r    Fr   r   r   r   s     r   r<   _RetryPolicies.retry_after  s    	: (*/).
 	
r    c                @   ^ [        U5      mSU4S jjn[        USSS9$ )Nc                P   > U R                   R                  nUS L=(       a    UT;   $ r   )rV   r7   )r   r7   alloweds     r   rv   *_RetryPolicies.http_status.<locals>.policy   s)    !,,88Kd*E{g/EEr    Fr   r   )rK   ry   )r   statusesrv   r   s      @r   http_status_RetryPolicies.http_status  s+    H%	F (*/).
 	
r    c                   ^ T(       d  U R                  5       $ SU4S jjn[        U[        S T 5       5      [        S T 5       5      S9$ )Nc                f  >#    [        SS9nT H  n[        X 5      I S h  vN nUR                  (       a  Us  $ UR                  (       d  Us  $ UR                  b  UR                  Ul        UR
                  b  UR
                  Ul        UR                  (       d  M  [        U5      nM     U$  N7f)NTr   )rb   r   rh   rd   re   rU   ri   r   )r   r   	predicater   policiess       r   rv   "_RetryPolicies.all.<locals>.policy.  s     ".F%	!1)!EE&&#O~~#O>>-#+>>FL??.$,OOFM,,,7?F & M Fs   B1B/A9B1B1c              3  8   #    U  H  n[        U5      v   M     g 7fr   r~   .0r   s     r   	<genexpr>%_RetryPolicies.all.<locals>.<genexpr>A        .W_):9EEW_   c              3  8   #    U  H  n[        U5      v   M     g 7fr   r   r   s     r   r   r   D        -V^9)DDV^r   r   r   )r   ry   allr   r   rv   s    ` r   r   _RetryPolicies.all*  sU    ::<	" (*- .W_. + *- -V^- *
 	
r    c                   ^ T(       d  U R                  5       $ SU4S jjn[        U[        S T 5       5      [        S T 5       5      S9$ )Nc                   >#    S nS nT HQ  n[        X05      I S h  vN nUR                  (       a  Us  $ UR                  (       a  Uc  UnO[        X5      nMO  UnMS     U=(       d    U=(       d	    [	        SS9$  N^7f)NFr   )r   rh   rd   r   rb   )r   first_positivelast_negativer   r   r   s        r   rv   "_RetryPolicies.any.<locals>.policyM  sv     37N26M%	!1)!EE&&#O>>%-)1)H)b ( & "P]Pm%6PP Fs   A<A:AA<c              3  8   #    U  H  n[        U5      v   M     g 7fr   r   r   s     r   r   %_RetryPolicies.any.<locals>.<genexpr>`  r   r   c              3  8   #    U  H  n[        U5      v   M     g 7fr   r   r   s     r   r   r   c  r   r   r   r   )r   ry   anyr   s    ` r   r   _RetryPolicies.anyI  sV    ::<	Q" (*- .W_. + *- -V^- *
 	
r    r!   N)r#   ro   )r   zIterable[int]r#   ro   )r   ro   r#   ro   )r$   r%   r&   r'   r   r   r   r<   r   r   r   r*   r!   r    r   r   r      s%    

$



>
r    r   )r/   r   r#   z ModelRetryBackoffSettings | None)rv   ro   rw   r=   rx   r=   r#   ro   )rv   zRetryPolicy | Noner#   r=   )r/   r   r#   rb   )rv   ro   r   rk   r#   rb   )r   rb   r#   rb   )r   rb   r   rb   r#   rb   )/
__future__r   r   collections.abcr   r   r   r   inspectr   typingr	   r
   pydanticr   pydantic.dataclassespydantic_dataclassutil._typesr   r   dictrI   r+   r)   r0   objectr1   r4   rQ   rX   rb   rk   r=   ro   rt   ru   ry   r~   r   r   r   r   r   r   r   r   retry_policiesr!   r    r   <module>r      s   "  . (  !  @ ' ( ( (& %>S#X$N 	 N.(.%. h  '; '; ';T 8 8 8 ' ' ' Y Y Y 4 4 4 "#5"6tmG[8\"\]Y ]&T #%R " $( #'	
 XW 
 
 
.,### #

 (
 
D  !r    