+
    kHàj
  ã            
       óp  a € R" t0 t R t^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt RRR	R
RR]! 4       P                   2/tR R lt]! RR04      t] ^ k R R ltR R lt ! R R]4      t ! R R]4      t]! RR$R%R]! ]4      RR7      t]! RR&R'R]! ]4      RR R!7      t]
! ]4       ]
! ]4       R## )(z¸OpenCode provider profiles (Zen + Go).

Both route api_mode per model in core; these profiles carry the
chat_completions reasoning translations (GLM-5.2, Kimi K2, DeepSeek, Ox Alpha).
)ÚAny)Úreasoning_effort)Úget_version_info)Úregister_provider)ÚProviderProfile)ÚUTCzHTTP-Refererz%https://hermes-agent.nousresearch.comzX-TitlezHermes Agentz
User-AgentzHermesAgent/c                ó>   € V ^8„  d   QhR\         R,          R\         /# ©é   ÚmodelNÚreturn©Ústr)Úformats   "ÚR/home/ubuntu/.hermes/hermes-agent/plugins/model-providers/opencode-zen/__init__.pyÚ__annotate__r      s   € ÷ <ñ <œC $�Jð <¬3ñ <ó    c                ó€   € T ;'       g    RP                  4       P                  R^4      R,          P                  4       # )z7Bare OpenCode model ID, tolerating aggregator prefixes.Ú Ú/éÿÿÿÿ)ÚstripÚrsplitÚlower)r   s   &r   Ú_flat_model_namer      s2   € à�KˆK�R×ÑÓ ×'Ñ'¨¨QÓ/°Õ3×9Ñ9Ó;Ð;r   zdeepseek-reasonerzdeepseek-flashc                ó>   € V ^8„  d   QhR\         R,          R\        /# r	   ©r   Úbool)r   s   "r   r   r   #   s"   € ÷ jñ j¤s¨T¥zð j´dñ jr   c                 ó˜   € \        V 4      pVP                  R 4      ;'       d    VP                  R4      '       * ;'       g
    V\        9   # )z
deepseek-vzdeepseek-v3)r   Ú
startswithÚ_THINKING_CAPABLE_IDS©r   Úms   & r   Ú_is_deepseek_thinking_modelr#   #   s=   € Ü˜Ó€AØ�L‰L˜Ó&×JÐJ¨q¯|©|¸MÓ/JÔ+J×iÐiÈqÔTiÑOiÐir   c                ó>   € V ^8„  d   QhR\         R,          R\        /# r	   r   )r   s   "r   r   r   (   s"   € ÷ Jñ JœS 4�Zð J¬Dñ Jr   c                óŽ   a€ \        V 4      o\        ;QJ d    V3R lR 4       F  '       g   K   R# 	  R# ! V3R lR 4       4      # )z=GLM-5.2 across alias spellings (glm-5.2 / glm-5-2 / glm-5p2).c              3   ó,   <"  € T F	  qS9   x € K  	  R # 5i©N© )Ú.0Útokenr"   s   & €r   Ú	<genexpr>Ú$_is_glm_5_2_model.<locals>.<genexpr>+   s   øé € ÐIÑ'H˜e˜ŽzÓ'Hùs   ƒTF)zglm-5.2zglm-5-2zglm-5p2)r   Úanyr!   s   &@r   Ú_is_glm_5_2_modelr.   (   s8   ø€ ä˜Ó€Aß‹3ÔIÑ'HÓI�3Œ3ÐIŠ3ÐIˆ3ÔIÑ'HÓIÓIÐIr   c                   ó†   a € ] tR t^.t o RtRR/tV 3R lR ltRRRR/V 3R	 lR
 lltRRRR/V 3R lR lltV 3R lt	Rt
V tR# )ÚOpenCodeGoProfilez0OpenCode Go - model-specific reasoning controls.zmimo-v2.5-proi   c                óB   <€ V ^8„  d   QhRS[ R,          RS[R,          /# r	   )r   Úint)r   Ú__classdict__s   "€r   r   ÚOpenCodeGoProfile.__annotate__5   s#   ø€ ÷ ?ñ ?¡C¨$¥Jð ?±3¸µ:ñ ?r   c                ón   € V P                   P                  \        V4      4      pVf   V P                  # T# r'   )Ú_MODEL_MAX_TOKENSÚgetr   Údefault_max_tokens)Úselfr   Úcaps   && r   Úget_max_tokensÚ OpenCodeGoProfile.get_max_tokens5   s3   € Ø×$Ñ$×(Ñ(Ô)9¸%Ó)@ÓAˆØ*-ª+ˆt×&Ñ&Ð>¸3Ð>r   Úbase_urlNÚapi_keyc                óB   <€ V ^8„  d   QhRS[ R,          RS[ R,          /# )r
   r=   Nr>   r   )r   r3   s   "€r   r   r4   9   s(   ø€ ÷  Zñ  Z©s°T­zð  ZÉ3ÐQUÍ:ñ  Zr   c          
     óÒ  € ^ RI H pHp ^ RIp^ RIHpHp ^ RIHp V! V P                  WR7      p	\        V	P                  RR4      ;'       g    R4      P                  4       p
V
'       g   R# VP                  RR	7      ;_uu_ 4       pVP                  R
RRV
 2RR/R7      pVP                  4        RRR4       XP                  4       ;'       g    / P                  R4      ;'       g    / p. pR F¯  w  ppVP                  V4      ;'       g    / pVP                  R4      f   K6  \        VP                  R4      ;'       g    R4      P                  RR4      pV'       d   VP!                  V4      MRpVP#                  V! V\%        VR,          4      VR7      4       K±  	  V! V P                  RVP'                  \(        4      \+        V4      R7      #   + '       g   i     EL-; i)a>  Go subscription windows for /usage via ``/zen/go/v1/usage`` (anomalyco/opencode#16513).

Percent-based payload ``{"usage": {"rolling"|"weekly"|"monthly": {"percent", "resetsAt"}}}``.
Literal endpoint, NOT the runtime base_url: that one loses its /v1 suffix in
anthropic_messages mode and /usage only exists under /v1.
)ÚdatetimeÚtimezoneN)ÚAccountUsageSnapshotÚAccountUsageWindow)Úresolve_runtime_provider)Ú	requestedÚexplicit_base_urlÚexplicit_api_keyr>   r   g      $@)Útimeoutz#https://opencode.ai/zen/go/v1/usageÚAuthorizationzBearer ÚAcceptzapplication/json)ÚheadersÚusageÚpercentÚresetsAtÚZz+00:00)ÚlabelÚused_percentÚreset_atÚgo_usage_api)ÚproviderÚsourceÚ
fetched_atÚwindows))ÚrollingzRolling window)ÚweeklyÚWeekly)ÚmonthlyÚMonthly)rA   rB   ÚhttpxÚagent.account_usagerC   rD   Úhermes_cli.runtime_providerrE   Únamer   r7   r   ÚClientÚraise_for_statusÚjsonÚreplaceÚfromisoformatÚappendÚfloatÚnowr   Útuple)r9   r=   r>   rA   rB   r^   rC   rD   rE   Úruntimer*   ÚclientÚresponserM   rX   ÚkeyrQ   ÚwindowÚ	reset_rawrS   s   &$$                 r   Úfetch_account_usageÚ%OpenCodeGoProfile.fetch_account_usage9   s•  € ÷ 	0ãçPÝHá*°T·Y±YÐRZÔuˆÜ�G—K‘K 	¨2Ó.×4Ð4°"Ó5×;Ñ;Ó=ˆßÙØ�\‰\ $ˆ\×'Ô'¨6Ø—z‘zÐ"GØ+:¸gÀeÀWÐ<MÈxÐYkÐ*lð "ó nˆHà×%Ñ%Ô'÷ (ð —‘“×&Ð& B×+Ñ+¨GÓ4×:Ð:¸ˆØˆÛg‰JˆC�Ø—Y‘Y˜s“^×)Ð) rˆFØ�z‰z˜)Ó$Ò,ÙÜ˜FŸJ™J zÓ2×8Ð8°bÓ9×AÑAÀ#ÀxÓPˆIß<E�x×-Ñ-¨iÔ8È4ˆHØ�N‰NÑ-°EÌÈfÐU^ÕN_ÓH`ÐksÔtÖuñ hñ $¨T¯Y©Y¸~Ø/7¯|©|¼CÓ/@Ì%ÐPWË.ôZð 	Z÷ (×'Ð'ús   Â+GÇG&	Úreasoning_configr   c          
      óŠ   <€ V ^8„  d   QhRS[ R,          RS[R,          RS[S[ S[S[3,          S[ S[S[3,          3,          /# ©r
   rs   Nr   r   ©Údictr   rj   r   )r   r3   s   "€r   r   r4   [   sG   ø€ ÷ ñ Ù#'¨$¥;ðÙ>AÀD½jðá	‰t‘C™�H�~™t¡C© H�~Ð-Õ	.ñr   c               ód  € \        V4      '       dy   \        P                  ! V4      pVe   VR8X  d   / / 3# \        P                  ! V\        P                  \        P
                  4      p/ RV\        P                  9   d   V/3# R/3# \        V4      P                  R4      '       d@   \        V\        4      '       g   / / 3# \        P                  ! V\        P                  4      # \        V4      '       d5   \        P                  ! V\        P                  \        P                  4      # / / 3# )NÚnoner   Úhighzkimi-k2)r.   Úre_Úrequested_effortÚclamp_effortÚGLM52_EFFORTSÚGLM52_OVERRIDESr   r   Ú
isinstancerw   Úthinking_toggle_extrasÚKIMI_K2_EFFORTSr#   ÚDEEPSEEK_V4_EFFORTSÚDEEPSEEK_V4_OVERRIDES)r9   rs   r   ÚcontextÚeffortÚclampeds   &$$,  r   Úbuild_api_kwargs_extrasÚ)OpenCodeGoProfile.build_api_kwargs_extras[   sý   € ô ˜U×#Ò#ä×)Ò)Ð*:Ó;ˆFØŠ~ ¨6Ô!1Ø˜2�v�Ü×&Ò& v¬s×/@Ñ/@Ä#×BUÑBUÓVˆGØÐ*°wÄ#×BSÑBSÔ7S¨GÐ`Ð`Ð`ÐY_Ð`Ð`Ð`Ü˜EÓ"×-Ñ-¨i×8Ò8ÜÐ.´×5Ò5Ø˜2�v�Ü×-Ò-Ð.>Ä×@SÑ@SÓTÐTÜ& u×-Ò-Ü×-Ò-Ð.>Ä×@WÑ@WÔY\×YrÑYrÓsÐsØ�2ˆvˆr   c                ó<   <€ V ^8„  d   Qh/ S[ S[S[3,          ;R&   # )r
   r6   )rw   r   r2   )r   r3   s   "€r   r   r4   .   s   ø‡ ‚ ñ
 ™C¡˜H•~ÑAò r   r(   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r6   r;   rq   rˆ   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r3   s   @r   r0   r0   .   s_   ø‡ € Ù:ð *9¸&Ð(AÐ÷?ð ?ð Z¸Dð  ZÐX\÷  Zò  ZðDØ15ðØKO÷ò ÷[ ƒ r   r0   c                   óB   a € ] tR t^nt o RtRRRR/V 3R lR lltRtV tR# )ÚOpenCodeZenProfilez1OpenCode Zen - model-specific reasoning controls.rs   Nr   c          
      óŠ   <€ V ^8„  d   QhRS[ R,          RS[R,          RS[S[ S[S[3,          S[ S[S[3,          3,          /# ru   rv   )r   r3   s   "€r   r   ÚOpenCodeZenProfile.__annotate__q   sL   ø€ ÷ Fñ FÙ#'¨$¥;ðFÙ>AÀD½jðFá	‰t‘C™�H�~™t¡C© H�~Ð-Õ	.ñFr   c               ó.   € \         P                  ! W4      # r'   )r{   Úox_alpha_reasoning_extras)r9   rs   r   r…   s   &$$,r   rˆ   Ú*OpenCodeZenProfile.build_api_kwargs_extrasq   s   € ô ×,Ò,Ð-=ÓEÐEr   r(   )r‹   rŒ   r�   rŽ   r�   rˆ   r‘   r’   r“   s   @r   r•   r•   n   s,   ø‡ € Ù;ðFØ15ðFØKO÷F÷ Fð Fr   r•   zopencode-zenzhttps://opencode.ai/zen/v1zgemini-3-flash)ra   ÚaliasesÚenv_varsr=   Údefault_headersÚdefault_aux_modelzopencode-gozhttps://opencode.ai/zen/go/v1zglm-5F)ra   r›   rœ   r=   r�   rž   Úsupports_vision_tool_messagesc                óV   € V ^8„  d   Qh/ ^ \         9   d   \        \        ,          ;R&   # )r
   r    )Ú__conditional_annotations__Ú	frozensetr   )r   s   "r   r   r      s#   € ÷ ñ ÷> [Ò Z”y¤•~Ñ Zò?r   N)ÚopencodeÚopencode_zenÚzen)ÚOPENCODE_ZEN_API_KEY)Úopencode_goÚgozopencode-go-sub)ÚOPENCODE_GO_API_KEY)r¡   r�   Útypingr   Úagentr   r{   Úhermes_cli.version_infor   Ú	providersr   Úproviders.baser   rA   r   Úbase_versionÚ_ATTRIBUTION_HEADERSr   r¢   r    r#   r.   r0   r•   rw   r¤   r§   r   )r¡   s   @r   Ú<module>r±      së   øðöõ å )Ý 4Ý 'Ý *Ý ð
 Ð;Øˆ~Ø�LÑ!1Ó!3×!@Ñ!@Ð AÐBðÐ õ<ñ )2Ð3FÐHXÐ2YÓ(ZÐ Ó Zõjõ
Jô=˜ô =ô@F˜ô Fñ "Ø	Ð!DÐOhØ)¹4Ð@TÓ;UØ&ô€ñ  Ø	Ð HÐSkØ,¹dÐCWÓ>XØð #(ô
€ñ �,Ô Ù �+Ö r   