+
    iHàjYe  ã                  ó*	  a € 0 t $ R t^ RIHt ^ RIt^ RIHtHtHtH	t	H
t
 ^ RIHt ^ RIHt ]! 0 R‹m4      tR R ltRtRtRt]! RR04      tRtR R ltR R ltR R lt ! R R]4      tRŒR]P6                  P8                  RR3R�RŽR�R�R‘R’R“R”R•R–3tR]R&   R ]P>                  P8                  R!]P6                  P8                  R"]P6                  P8                  R#]P@                  P8                  R$]P@                  P8                  R%]PB                  P8                  R&]PB                  P8                  /t"R']R(&   R) R* lt#R+ R, lt$R- R. lt%R/t&R0t']P>                  P8                  R1]PP                  P8                  R1]P@                  P8                  R2]P6                  P8                  R3]PB                  P8                  R4/t)R5]R6&   R7t*]P>                  P8                  R8]PP                  P8                  R8/t+R5]R9&   ]PX                  P8                  R:]PZ                  P8                  R;]P\                  P8                  R<]P^                  P8                  R=]P`                  P8                  R>]Pb                  P8                  R?]Pd                  P8                  R@/t3R5]RA&   RBt4RCRDRERF/t5R5]RG&   RHt6/ ]PB                  P8                  RIb]P>                  P8                  RJb]PP                  P8                  RJb]P@                  P8                  RKb]P6                  P8                  RLb]Pn                  P8                  RMbRNRMb]Pp                  P8                  ROb]Pr                  P8                  ROb]Pd                  P8                  RPb]PX                  P8                  RQb]Pt                  P8                  RRb]P`                  P8                  RSb]Pb                  P8                  RTbRRUbRVRUbt;R5]RW&   RXRYRZR[/R\ R] llt<RR^RR_RR`]&,           Ra,           R	Rb]',           Ra,           R
Rc/t=R5]Rd&   RVReRfRgRhRiRjRkRlRmRnRoRRp]',           Ra,           RqRrRsRt/	t>R5]Ru&   / ]=C]>Ct?R5]Rv&   Rw Rx lt@RyR/Rz R{ lltAR—R| R} lltBR~ R ltCR€ R� ltDR‚R/Rƒ R„ lltER… R† ltFR˜R‡ Rˆ lltG ! R‰ RŠ]H4      tIR# )™aá  User-facing copy and ``failure_reason`` stamping for terminal failed-turn results.

Every terminal result dict the turn loop returns must carry ``failure_reason`` (a
``FailoverReason`` value or one of :data:`SITE_FAILURE_CODES`) and ``failure_retryable`` so
``agent/error_surface.py`` yields a specific descriptor instead of ``unknown``. The copy
tables here say WHAT happened and WHAT TO DO in plain words; raw provider detail rides a
trailing "Provider said:" / "Details:" line.
)ÚannotationsN)ÚAnyÚDictÚ
NamedTupleÚOptionalÚTuple)ÚFailoverReason)Údisplay_hermes_homeÚcontext_overflowÚ	truncatedÚinvalid_responseÚ
loop_errorÚinterpreter_shutdownc               ó(   € V ^8„  d   QhRRRRRRRR/# )é   Úresultzdict[str, Any]ÚreasonÚstrÚ	retryableÚboolÚreturn© )Úformats   "Ú</home/ubuntu/.hermes/hermes-agent/agent/turn_failure_copy.pyÚ__annotate__r      s(   € ÷ ñ ˜.ð °#ð À$ð È>ñ ó    c                ó*   € WR&   \        V4      V R&   V # )zHStamp the UI verdict fields on a terminal result (in place; returns it).Úfailure_reasonÚfailure_retryable)r   )r   r   r   s   &&&r   Ústamp_failurer      s   € à%ÐÑÜ"& y£/€FÐÑØ€Mr   zSYour request was not processed. Send it again if you still want me to carry it out.zeThis turn did not complete. Some actions may already have run; verify their effects before resending.zuAn automated delivery was interrupted and was not run again. Some actions may already have run; verify their effects.ÚuserÚtoolÚfailed_turnc               ó$   € V ^8„  d   QhRRRRRR/# )r   Úroler   Úcontentr   úOptional[str]r   )r   s   "r   r   r   =   s!   € ÷ ñ ¨3ð ¸ð Àñ r   c                ó”   € V R8X  dA   \        V\        4      '       d+   VP                  4       \        \        \
        39   d   \        # R# )z¤``FAILED_TURN_DISPLAY_KIND`` for a boundary row persisted before the closers typed it
(exact notice text, so a real reply quoting it stays a reply); read-side only.Ú	assistantN)Ú
isinstancer   ÚstripÚFAILED_TURN_NOTICEÚPARTIAL_FAILED_TURN_NOTICEÚAUTOMATION_INTERRUPTED_NOTICEÚFAILED_TURN_DISPLAY_KIND)r$   r%   s   &&r   Ú untyped_failed_turn_display_kindr/   =   s?   € ð ˆ{Ôœz¨'´3×7Ò7¸G¿M¹M»OÜÔ6Ô8UðPô =ô (Ð'Ùr   c               ó    € V ^8„  d   QhRRRR/# )r   Úturn_messagesr   r   r   r   )r   s   "r   r   r   G   s   € ÷ ñ  cð ¨cñ r   c                óþ   € T ;'       g    R Fh  p\        V\        4      '       g   K  VP                  R4      R8X  g2   VP                  R4      R8X  g   KI  VP                  R4      '       g   Kb  \        u # 	  \        # )zVBoundary copy for a failed turn: never claim "not processed" when a tool may have run.r$   r!   r(   Ú
tool_callsr   )r)   ÚdictÚgetr,   r+   )r1   Úrows   & r   Úfailed_turn_noticer7   G   s`   € à×"Ð" Ò"ˆÜ�cœ4× Ô Ø�G‰G�F‹O˜vÔ%¨#¯'©'°&«/¸[Ö*HÈSÏWÉWÐUa×MbÔMbä-Ò-ñ	 #ô
 Ðr   c               ó    € V ^8„  d   QhRRRR/# ©r   Úproviderr   r   r   r   )r   s   "r   r   r   Q   s   € ÷ /ñ / ð /¨ñ /r   c                óD   € ^ RI Hp T! \        T ;'       g    R4      4      # )uT   Human-friendly provider name for chat copy (``"OpenRouter"``, ``"Nous Portal"``â€¦).)Úprovider_labelÚ )Úhermes_cli.modelsr<   r   )r:   r<   s   & r   Úprovider_label_forr?   Q   s   € å0áœ#˜hŸn˜n¨"Ó-Ó.Ð.r   c                  ó>   € ] tR t^Zt$ RtR]R&   R]R&   RtR]R&   RtR	# )
ÚExitFailureuS  Verdict for a loop exit. ``fails_turn`` False = advisory: the descriptor fields are
stamped so Desktop/TUI show a specific code, but ``failed``/``completed`` keep the values
the loop chose â€” cron silence, the kanban dispatcher breaker and gateway transcript
persistence all key on ``failed`` and must not change because a code was added.r   r   r   r   TÚ
fails_turnr   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__rB   Ú__static_attributes__r   r   r   rA   rA   Z   s   ‡ ñWð
 ƒKØƒOØ€J�×r   rA   TÚ!all_retries_exhausted_no_responseÚlocal_processing_errorz'tuple[tuple[str, str, bool, bool], ...]Ú_EXIT_REASON_FAILURESi­  iô  iö  i÷  i  iø  i  zdict[int, str]Ú_INVALID_RESPONSE_CODESc               ó    € V ^8„  d   QhRRRR/# )r   Úresponser   r   r   r   )r   s   "r   r   r   …   s   € ÷ "ñ "¨cð "°cñ "r   c                ó   € V e   \        V RR4      MRpVe   \        VRR4      MRpVf(   \        V\        4      '       d   VP                  R4      p Ve    \        P                  \        V4      R4      # R#   \        \        3 d     R# i ; i)zÑ``failure_reason`` for an empty/malformed HTTP-200 body: the embedded provider error
code when there is one (so the desktop shows Retry + Switch provider consistently), else
the ``invalid_response`` site code.NÚerrorÚcoder   )Úgetattrr)   r4   r5   rM   ÚintÚ	TypeErrorÚ
ValueError)rO   ÚerrrR   s   &  r   Úinvalid_response_failure_reasonrX   …   s‹   € ð /7Ò.BŒ'�(˜G TÔ
*È€CØ),ªŒ7�3˜ Ô%¸d€DØ‚|œ
 3¬×-Ò-Ø�w‰w�v‹ˆð"ØMQÒM]Ô&×*Ñ*¬3¨t«9Ð6HÓIÐuÐcuÐuøÜ”zÐ"ô "Ú!ð"ús   Á"A8 Á6A8 Á8BÂBc               ó    € V ^8„  d   QhRRRR/# )r   Úturn_exit_reasonr   r   zOptional[ExitFailure]r   )r   s   "r   r   r   “   s   € ÷ ñ ¨#ð Ð2Gñ r   c                óš   € \        T ;'       g    R4      p\         F+  w  r#rEVP                  V4      '       g   K  \        W4V4      u # 	  R# )zO:class:`ExitFailure` for a loop exit that carries a failure verdict, else None.r=   N)r   rL   Ú
startswithrA   )rZ   r   ÚprefixrR   r   rB   s   &     r   Úexit_reason_failurer^   “   sH   € äÐ!×'Ð' RÓ(€Fß/DÑ+ˆ�iØ×Ñ˜V×$Ô$Ü˜t°
Ó;Ò;ñ 0Eñ r   c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   r   œ   s   € ÷ Añ A Sð A¨Tñ Ar   c                ó®  € \        V \        4      '       g   R# V P                  R4      RJ g   V P                  R4      RJ d   R# V P                  R4      RJd   R# V P                  R4      p\        V\        4      '       d   VP	                  R4      '       g   R# \        \        V P                  R4      ;'       g    R	4      P                  4       4      # )
uf  A non-failed, non-interrupted ``max_iterations_reached(N/N)`` result that still carries a
summary. ``completed`` is False because the work did not finish in that turn, but the turn
itself is a resumable boundary â€” not a failure â€” so cron delivers the summary and an active
``/goal`` may judge it (#102213). Provider/API failures never match (cf. #63180).FÚfailedTÚinterruptedÚ	completedrZ   zmax_iterations_reached(Úfinal_responser=   )r)   r4   r5   r   r\   r   r*   )r   r   s   & r   Úis_max_iteration_handoffre   œ   s§   € ô
 �fœd×#Ò#ÙØ‡z�z�(Ó˜tÓ# v§z¡z°-Ó'@ÀDÓ'HÙØ‡z�z�+Ó eÓ+ÙØ�Z‰ZÐ*Ó+€FÜ�vœs×#Ò#¨×(9Ñ(9Ð:S×(TÒ(TÙÜ”�F—J‘JÐ/Ó0×6Ð6°BÓ7×=Ñ=Ó?Ó@Ð@r   z<Wait a minute and send /retry, or switch models with /model.zœYour message is saved. Send `continue` to try again, or start a new session with /new. If it happens again, run `hermes doctor` and share the error details.z5{label} rate-limited every one of {attempts} attemptsz={label} reported it was overloaded on all {attempts} attemptsz:{label} returned a server error on all {attempts} attemptsz<{label} didn't respond in time on any of {attempts} attemptszdict[str, str]Ú_EXHAUSTED_LEADSz/{label} didn't answer after {attempts} attemptsz+{label} is rate-limiting requests right nowÚ_EXHAUSTED_FIRST_ATTEMPT_LEADSz~Model '{model}' isn't available on {label}. Pick a different model with /model (or `hermes model` in a terminal).{prefix_hint}z±{label} rejected this request as malformed, so the model didn't answer. Start a clean session with /new or switch models with /model; if it keeps happening, run `hermes doctor`.z¥{label} requires user and assistant turns to strictly alternate and rejected this conversation's shape. Start a clean session with /new or switch models with /model.u  Hermes couldn't verify {label}'s security certificate, so the connection was refused. This is usually a corporate proxy or an outdated certificate store on this computer â€” see the terminal or `{home}/logs/agent.log` for the exact fix, or try another provider with /model.a  {label} refused this request because of a policy on your account (its data/privacy settings, or a block the model's upstream provider placed on the account), so the model didn't answer and retrying won't help. Check the account with the provider, or switch models with /model.af  This conversation holds a result from a connected app that may only go to a model that does not train on your data, and '{model}' on {label} can't promise that. Switch models with /model, run /compress to summarize the result away, or start fresh with /new. If you are on the free tier, no free model can take this content: upgrade, or use /compress or /new.zçA firewall/CDN in front of {label} blocked the request before it reached the model, so your key is probably fine. Set a custom User-Agent via the provider's extra_headers, check the proxy/WAF rules, or switch providers with /model.Ú_NONRETRYABLE_COPYz†{label} rejected the request and retrying won't help. Pick another model with /model, or check the details in `{home}/logs/agent.log`.ÚoauthzY{label} rejected your sign-in, so the model can't be reached. Sign in again: `{relogin}`.Úapi_keyu‡   {label} rejected your API key, so the model can't be reached. Update it in Settings â†’ Providers, or run `hermes setup` in a terminal.Ú
_AUTH_COPYzeTry rewording your message or removing sensitive attachments, or switch to another model with /model.z,the AI model service did not respond in timez9the AI model service was rate-limited (too many requests)z,the AI model service is overloaded right nowz/the AI model service returned an internal errorzHthe AI model service says the account's usage or credit limit is reachedÚbilling_unverifiedz)the AI model service rejected the sign-inzCa firewall/CDN in front of the AI model service blocked the requestz>the model {subject} uses was not found at the AI model servicez9the AI model service's safety filter rejected the requestzKthe AI model service refused the request because of a policy on the accountz`{possessive} context holds a connected-app result that needs a model that does not train on dataz1{possessive} request grew too large for the modelÚpayload_too_largeÚFAILURE_CAUSE_GLOSSÚsubjectÚitÚ
possessiveÚitsc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   r   ro   r   rq   r   r&   r   )r   s   "r   r   r     s/   € ÷ Yñ Y ð Y°ð YÈð YÐYfñ Yr   c               óŠ   € \         P                  \        T ;'       g    R4      4      pV'       d   VP                  WR7      # R# )zTPlain clause for a classified ``failure_reason``; None when the reason has no gloss.r=   )ro   rq   N)rn   r5   r   r   )r   ro   rq   Útemplates   &$$ r   Úfailure_cause_glossrv     s6   € ä"×&Ñ&¤s¨6¯<¨<°RÓ'8Ó9€HßFNˆ8�?‰? 7ˆ?ÓBÐXÐTXÐXr   zýThis conversation has grown too long for {model} to read, and Hermes couldn't shrink it enough automatically. Start a new session with /new (your history is kept), or try /compress once more. Switching to a model with a bigger context window also works.zëThe model's reply was cut off before it finished (it hit its output length limit), so Hermes didn't run the incomplete action. Nothing was changed. Send `continue`, ask for the work in smaller steps, or raise max_tokens for this model.up   {label} sent back an empty or broken reply {attempts} times â€” it is probably overloaded or rate-limiting you. z

Details: {detail}zOHermes hit repeated errors and stopped this turn so it wouldn't keep retrying. u}   Hermes was shutting down and stopped this turn. Your conversation is saved â€” reopen it{resume} and send your message again.Ú_FAILURE_CODE_COPYz×This conversation (including attachments) has grown too large to send to {model}, and Hermes couldn't shrink it enough automatically. Start a new session with /new (your history is kept), or try /compress once more.Úcompression_disabledzÚThis conversation is too long for {model} and automatic shrinking is turned off in your settings (compression.enabled). Run /compress to shrink it now, /new to start fresh, or pick a model with a bigger context window.Úserver_context_rejectionuù  The model server rejected this request as too large, but this conversation is only about {tokens:,} tokens â€” well under the {window:,}-token window Hermes knows for {model} â€” so shrinking it would not help. Another request on the same server (for example a background memory review from an earlier session) was probably holding its capacity, or the server runs {model} with a smaller window than Hermes assumes. Wait a moment and send /retry; if it keeps happening, check the server's context setting.Útruncated_unreporteda5  The model's action arrived cut off partway through, so Hermes didn't run it. Nothing was changed. The model didn't report hitting its output limit, so this was most likely a dropped connection or a provider/router cutting the reply short. Send /retry; if it keeps happening, ask for the work in smaller steps.Ústream_dropped_tool_callz½The connection to {label} kept dropping while the model was writing a large action, so nothing was run. Check your network and send /retry; asking for the file in smaller pieces also helps.Ústream_closed_tool_calla  {label} kept closing the stream before the model finished writing its action, without reporting an error, so nothing was run. This is usually the provider or a proxy in front of it cutting long replies short. Send /retry; asking for the work in smaller steps also helps.zUHermes hit an internal error while handling the model's reply and stopped this turn. Úmax_iterations_no_summaryz°I ran out of steps for this turn ({limit} tool calls) before finishing, and couldn't produce a summary. Send `continue` to keep going, or raise `max_iterations` in your config.Únous_rate_limitzƒWait for the reset and send /retry, or switch models with /model. To avoid waits, add a backup provider with `hermes fallback add`.Ú_ONE_OFF_COPYÚ
_SITE_COPYc               ó$   € V ^8„  d   QhRRRRRR/# )r   rR   r   Úfieldsr   r   r   )r   s   "r   r   r   x  s!   € ÷ :ñ :�Cð : 3ð :¨3ñ :r   c                ó€   € VP                  R\        4       4       \        V ,          P                  \	        V4      4      # )z^Chat copy for a failure code or one-off loop outcome; unknown fields default to empty strings.Úhome)Ú
setdefaultr	   r€   Ú
format_mapÚ	_Defaults)rR   r‚   s   &,r   Ú	site_copyrˆ   x  s1   € à
×Ñ�fÔ1Ó3Ô4Ü�dÕ×&Ñ&¤y°Ó'8Ó9Ð9r   Úreset_secondsc               ó0   € V ^8„  d   QhRRRRRRRRRRR	R/# )
r   r   r   ÚlabelÚattemptsrT   Úsummaryr‰   úOptional[float]r   r   )r   s   "r   r   r   ~  s8   € ÷ ñ ˜3ð ¨#ð ¸ð Àsð Ð[jð Ðvyñ r   c               ó  € V^8H  ;'       d
    V \         9   pV'       d   \         M\        P                  V \        4      P	                  WR7      pVe*   V^x8¼  g   V'       d   V^ 8”  d   ^ RIHp RV! V4       R2pM	R\         2pV RV RV 2# )zºChat copy once retries + fallback are exhausted (``max_retries_exhausted_result``). A rate
limit whose reset window is known names it: an 8.6h plan quota is not "wait a minute" (#89401).)r‹   rŒ   )Úformat_reset_windowzits usage limit resets in z7. Send /retry after that, or switch models with /model.z"it looks temporarily unavailable. u    â€” z\ To avoid this in future, add a backup provider with `hermes fallback add`.

Provider said: )rg   rf   r5   Ú_EXHAUSTED_DEFAULT_LEADr   Úagent.retry_utilsr�   Ú_NEXT_STEPS_RETRY)	r   r‹   rŒ   r�   r‰   Úfirst_attemptÚleadr�   Ú	situations	   &$$$$    r   Úexhausted_copyr—   ~  s±   € ð  ‘M×NÐN fÔ0NÑ&N€Mß.;Õ*ÔAQ×VÑVØÔ'ó)ß)/©°e¨Ó)Oð 	ð Ò  m°sÔ&:¿mÐP]Ð`aÔPaÝ9Ø1Ñ2EÀmÓ2TÐ1Uð VMð M‰	ð 9Ô9JÐ8KÐLˆ	àˆ&��i�[ð !OØOVÈið	Yðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Ú	resets_atÚfloatÚnowrŽ   r   r   r   )r   s   "r   r   r   ‘  s&   € ÷ 
_ñ 
_ ð 
_¨Oð 
_Àsñ 
_r   c                ó4  € Vf   \         P                   ! 4       MTp\        W,
          4      pV^ 8:  d   R# \        V^;,           ^<,          ^<4      w  r4V'       d
   V RVR R2MV R2pR\         P                  ! R\         P                  ! V 4      4       RV R2# )	a  One chat/CLI line naming when the provider says the limit lifts (#98852): the Retry-After
/ ``resets_at`` the loop already honours for backoff, shown to the user instead of a bare
"wait a minute". Local wall-clock time plus the remaining wait; empty once it has passed.r=   zh Ú02dÚmzLimit resets at z%H:%Mz (in z).)ÚtimerT   ÚdivmodÚstrftimeÚ	localtime)r™   r›   Ú	remainingÚhoursÚminutesÚwaits   &&    r   Úlimit_reset_copyr§   ‘  sŽ   € ð šŒ$�)Š)Œ+¨#€CÜ�I•OÓ$€IØ�A„~ÙÜ˜Y¨�^°Õ2°BÓ7�N€Eß).ˆeˆW�B�w˜s�m 1Ñ%°w°i¸q°M€DØœdŸmšm¨G´T·^²^ÀIÓ5NÓOÐPÐPUÐVZÐU[Ð[]Ð^Ð^r   c               ó    € V ^8„  d   QhRRRR/# r9   r   )r   s   "r   r   r   ž  s   € ÷ 
Jñ 
J Cð 
J¨Cñ 
Jr   c                ó°   € ^ RI Hp \        T ;'       g    R4      P                  4       P	                  4       pVR8X  d   RV! 4        R2# RV! 4        RV R2# )aD  The exact re-login command for a rejected OAuth grant, naming the provider slug and the active
named profile: a profile's credentials are its own (93889b770da), so a bare ``hermes auth`` from
the root profile re-signs the wrong store and the goal judge, reading a bare 401, guesses which
service revoked the token (#114012).©Úprofile_cli_selectorr=   Únousúhermes Úportalú	auth add z --type oauth)Úhermes_constantsr«   r   r*   Úlower)r:   r«   Úslugs   &  r   Úoauth_relogin_commandr³   ž  s^   € õ
 6äˆx�~ˆ~˜2Ó×$Ñ$Ó&×,Ñ,Ó.€DØˆv„~ØÑ-Ó/Ð0°Ð7Ð7ØÑ)Ó+Ð,¨I°d°V¸=ÐIÐIr   c               ó    € V ^8„  d   QhRRRR/# r9   r   )r   s   "r   r   r   «  s   € ÷ =ñ = 3ð =¨3ñ =r   c                óì   € ^ RI Hp \        T ;'       g    R4      P                  4       P	                  4       pV'       g   RV! 4        R2# ^ RIHp V! V4      R8X  d   \        V4      # RV! 4        RV 2# )uf  Re-sign-in command for a rejected credential on surfaces that may not know the provider:
the exact OAuth command for a known OAuth slug, ``hermes auth add <slug>`` for a known API-key
slug, and the ``<provider>`` placeholder when the slug is unknown â€” always carrying the
``-p <profile>`` selector so a profile user never re-signs the ROOT store (#114012).rª   r=   r­   zauth add <provider>©Ú	auth_kindri   r¯   )r°   r«   r   r*   r±   Úagent.error_surfacer·   r³   )r:   r«   r²   r·   s   &   r   Úrelogin_command_hintr¹   «  ss   € õ
 6äˆx�~ˆ~˜2Ó×$Ñ$Ó&×,Ñ,Ó.€DßØÑ-Ó/Ð0Ð0CÐDÐDÝ-á�ƒ˜'Ô!Ü$ TÓ*Ð*ØÑ)Ó+Ð,¨I°d°VÐ<Ð<r   Úprefix_suggestionc               ó0   € V ^8„  d   QhRRRRRRRRRRR	R/# )
r   Ú
classifiedr   r:   Úmodelr�   r   rº   r&   r   r   )r   s   "r   r   r   ¼  s<   € ÷ 1ñ 1Øð1Ø"%ð1Ø.1ð1Ø<?ð1ØTað1àñ1r   c          	     ón  € \        V4      p\        V RR4      '       d.   ^ RIHp \        T! \        T;'       g    R4      4      ,          pM.\        P                  V P                  P                  \        4      pV'       d   RV R2MRpVP                  WR\        4       V\        V4      R7      p	V	 RV 2# )	zYChat copy for a terminal non-retryable rejection (auth, model missing, TLS, generic 4xx).Úis_authFr¶   r=   uV    If you typed the name yourself it may be missing its vendor prefix â€” did you mean 'z'?)r‹   r½   r„   Úprefix_hintÚreloginú

Provider said: )r?   rS   r¸   r·   rk   r   rh   r5   r   ÚvalueÚ_NONRETRYABLE_DEFAULT_COPYr   r	   r³   )
r¼   r:   r½   r�   rº   r‹   r·   ru   rÀ   Úbodys
   &$$$$     r   Únonretryable_copyrÆ   ¼  s³   € ô ˜xÓ(€EÜˆz˜9 e×,Ò,Ý1ä™i¬¨H¯N¨N¸Ó(;Ó<Õ=‰ä%×)Ñ)¨*×*;Ñ*;×*AÑ*AÔC]Ó^ˆ÷ ðØÐ˜bñ	"à"$ð ð
 �?‰? Ô:MÓ:OÐ]hÜ#8¸Ó#Bð ó D€DàˆVÐ& w iÐ0Ð0r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r‹   r   r�   r   r   )r   s   "r   r   r   Ñ  s!   € ÷ ñ  #ð °ð ¸ñ r   c                ó   € V  R \          RV 2# )zC's safety filter refused this request, so the model didn't answer. rÂ   )ÚCONTENT_POLICY_NEXT_STEPS)r‹   r�   s   $$r   Úcontent_policy_copyrÊ   Ñ  s"   € àˆ'ÐTÜ$Ð
%Ð%8¸¸	ð	Cðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úexcr   ÚlimitrT   r   r   r   )r   s   "r   r   r   Ø  s&   € ÷ Hñ H�cð H #ð H°ñ Hr   c                ó   € \        V 4      ;'       g    \        V 4      P                  P                  4       P	                  4       pV'       d
   V^ ,          M\        V 4      P                  p\        V4      V8:  d   V# VRV^,
           R,           # )zLFirst line of an exception's text, capped, for a trailing ``Details:`` line.Nu   â€¦)r   ÚtyperC   r*   Ú
splitlinesÚlen)rÌ   rÍ   ÚtextÚfirsts   &&  r   Úshort_detailrÔ   Ø  sl   € ä�‹H×*Ð*œ˜S›	×*Ñ*×1Ñ1Ó3×>Ñ>Ó@€DßˆD�ŽG¤ c£×!3Ñ!3€EÜ˜“J %Ô'ˆ5ÐG¨U°;°U¸QµYÐ-?À%Õ-GÐGr   c                  ó"   € ] tR tRtR R ltRtR# )r‡   iß  c               ó    € V ^8„  d   QhRRRR/# )r   Úkeyr   r   r   )r   s   "r   r   Ú_Defaults.__annotate__à  s   € ÷ ñ ˜sð  sñ r   c                	ó   € R # )r=   r   )Úselfr×   s   &&r   Ú__missing__Ú_Defaults.__missing__à  s   € Ùr   r   N)rC   rD   rE   rF   rÛ   rI   r   r   r   r‡   r‡   ß  s   † ÷ñ r   r‡   >	   r   Ú
host_errorr   Úsession_busyÚempty_responser
   r   Úgateway_connectionr   )Úempty_response_exhaustedrß   TF)Úpending_tool_resultr   TT)r   r   FT)rK   r   FF)Úrepeated_outer_errorsr   TT)Úerror_near_max_iterationsr   TT)Úcontext_compression_timeoutr
   FT)Úcontext_compression_exhaustedr
   FT)Ú ollama_runtime_context_too_smallr
   FT)Úredirect_restart_limit_exceededr   TF)Úrebuilt_restart_limit_exceededr   TF)N)éÈ   )JÚ__conditional_annotations__rG   Ú
__future__r   rŸ   Útypingr   r   r   r   r   Úagent.error_classifierr   r°   r	   Ú	frozensetÚSITE_FAILURE_CODESr   r+   r,   r-   ÚOPEN_TURN_TAIL_ROLESr.   r/   r7   r?   rA   Úserver_errorrÃ   rL   rH   Ú
rate_limitÚ
overloadedÚtimeoutrM   rX   r^   re   r“   Ú_NEXT_STEPS_LOOPÚupstream_rate_limitrf   r‘   rg   Úmodel_not_foundÚformat_errorÚrole_alternationÚssl_cert_verificationÚprovider_policy_blockedÚdata_policy_deniedÚupstream_blockedrh   rÄ   rk   rÉ   ÚbillingÚauthÚauth_permanentÚcontent_policy_blockedrn   rv   rw   r   r€   rˆ   r—   r§   r³   r¹   rÆ   rÊ   rÔ   r4   r‡   )rë   s   @r   Ú<module>r     sØ  øðôõ #ã ß 9Õ 9å 1Ý 0ñ ò  ó Ð õð Zð ðð ð:ð ñ ! &¨&Ð!1Ó2Ð ð )Ð õõõ/ô�*ô ð @Ø(¨.×*EÑ*E×*KÑ*KÈTÐSWÐXð 6ØAà:Ø7Ø;ØDØFØIàBØAð#BÐ Ð>ó ð. ˆ×	"Ñ	"×	(Ñ	(Øˆ×	$Ñ	$×	*Ñ	*¨C°×1LÑ1L×1RÑ1RØˆ×	"Ñ	"×	(Ñ	(¨#¨~×/HÑ/H×/NÑ/NØˆ×	Ñ	×	%Ñ	% s¨N×,BÑ,B×,HÑ,Hð	+Ð ˜ó õ"õõAð& SÐ ðLð ð ×Ñ×#Ñ#Ð%\Ø×&Ñ&×,Ñ,Ð.eØ×Ñ×#Ñ#Ð%dØ×Ñ×%Ñ%Ð'cØ×Ñ× Ñ Ð"`ð$Ð �.ó ð LÐ ð ×Ñ×#Ñ#Ð%RØ×&Ñ&×,Ñ,Ð.[ð2Ð  ó ð ×"Ñ"×(Ñ(ð	:ð ×Ñ×%Ñ%ð	fð ×#Ñ#×)Ñ)ð	^ð ×(Ñ(×.Ñ.ð	ð
 ×*Ñ*×0Ñ0ð	ð
 ×%Ñ%×+Ñ+ð	hð
 ×#Ñ#×)Ñ)ð	@ðA$&Ð �Nó $ðL7ð ð
 ÐhØð	Gð€
ˆNó ðð ð'Ø×Ñ× Ñ Ð"Pð'à×Ñ×#Ñ#Ð%`ð'ð ×&Ñ&×,Ñ,Ð.ið'ð ×Ñ×#Ñ#Ð%Sð	'ð
 ×Ñ×%Ñ%Ð'Xð'ð ×Ñ× Ñ Ð"lð'ð Ðdð'ð ×Ñ×ÑÐJð'ð ×!Ñ!×'Ñ'Ð)Tð'ð ×#Ñ#×)Ñ)Ð+pð'ð ×"Ñ"×(Ñ(Ð*jð'ð ×)Ñ)×/Ñ/Ð1lð'ð ×*Ñ*×0Ñ0ØUð'ð" ×%Ñ%×+Ñ+Øjð%'ð( ÐKð)'ð* ÐLð+'Ð �^ó ð2Y°tð YÈu÷ Yð ð	]ð ð	Ið ð	!Ø#4õ	5Ø7Nõ	Oð ØYØ
õ	Ø4õ	5ð ð	2ð)&Ð �Nó ð8 ð	8ð ð	?ð ð	]ð ð	^ð ð	ð ð	jð
 Ø_Ø
õ	Ø4õ	5ð  ð	fð ð	8ðg6!€ˆ~ó 6ðn EÐ 2ÐD°mÐD€
ˆNÓ Dõ:ðÐmq÷ ÷&
_õ
Jõ=ð"1Ødh÷1õ*÷Hô�ö r   