+
    jHàjÒ™  ã                  ó	  a	€ 0 t $ R t^ RIHt ^ RIHt  ! R R]],          4      tRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRRR/t	RØ U u. uF/  p T ]	P                  Y P                  R4      '       d   R MR!4      3NK1  	  up tR"]R#&   0 RÙmtRÚ.RÛ U u. uF  q R!3NK  	  up ,           tR"]R$&   R% R& lt. RÜOtR*]R+&   . RÝOtR*]R,&   R'tR- R. ltR/ R0 ltR1 R2 ltR3 R4 lt. RÞOt. RßOt. RàOt. RáOt. RâOt. RãOt]! 4       t/ RCR.bRD] U Uu. uF)  w  rV ]9  g   K  V P                  R4      '       d   K'  V NK+  	  upp bRE]! ]4      bRF. RäObRN]! 4       bRO]! ]4      bRPRP.bRQ]. RåO,           bRT. RæObRX. RçObR[]! ]4      bR\. RèObR]. RéObR_. RêObR`. RëObRa. RìObRb]! ]4      b/ Rc. RíObRd]! ]4      bRe. RîObRlRmR>.bRn. RïObRo]! ]4      bRp]! ]4      bRq. RðObRr. RñObRs. RtNR^NR:NRANRHNRINRJNRKNRLNRuNR5NR6NRMNR7NRvNRwNR8NRxNRyNRzNR{NR|NR}NR~NRfNRgNRRNRhNRiNRjNRNRkNR€NRSNR�NRUNRVNRWNR‚NRƒNR„NR…NR'NR)NR(NR†NR‡NRˆNR‰NRYNRZNR<NRBNR=NR@NR>NR?NR9NR;NRŠNR‹NRŒNR�NRŽNR�NbR�. RòObR‘. RóObR’]! ]4      bR“]! ]4      bR”]! ]4      bR•]! ]4      bR–]! ]4      bCR—]! ]4      R˜. RôOR™. RõORš. R›. RöORœ. R÷OR�] U Uu. uF  w  rV NK	  	  upp /CtRž]RŸ&    ! R  R¡]4      t Rø Uu. uF	  p] ! V!  NK  	  upt!R¥]R¦&   ]! Uu0 uF  q3PD                  kK  	  upt#R§ R¨ lt$R© Rª lt%]! Uu/ uF  q3PD                  VPL                  bK  	  upt'R«]R¬&   R­]'R®&   ]%! 4        R¯ R° lt(R±R²R³R]R_.3RbR¤R´. RùO3R[RµR¶R[RO.3R·R¸R¹RT.3RERºR»RNRF.3R¼R½R¾. RúO3R¿RÀRÁRsR�.3RQR£RÂRQRP.3RÃRÄRÅRoRp.3/	t)RÆ]RÇ&   ])PU                  4        UUUUUu/ uF  w  pw  rVqw F  qˆVbK  	  K  	  upppppt+R«]RÈ&   RÉ RÊ lt,RË t-].! Rû4      t/Rt0]1! RDR¢04      t2RÌ]RÍ&   RlRü/t3RÎ]RÏ&   ]1! 0 Rým4      t4]1! 4       t5RÌ]RÐ&   ]1! 0 Rþm4      t6RÌ]RÑ&   Rÿt7RÒ]RÓ&   ]1! RÔRG04      t8RÌ]RÕ&   ]1! 0 ER m4      t9RÌ]RÖ&   ].! ER4      t:ERt;R×# u up i u up i u upp i u upp i u upi u upi u upi u upppppi (  uÈ   Static provider/model catalog tables (data only â€” no network).

Curated per-provider model lists, the canonical provider registry, display groups and alias
maps. Split out of ``hermes_cli.models``.
)Úannotations)Ú
NamedTuplec                  ó   € ] tR t^tRtRtR# )ÚCuratedFallbackModelsz¤A curated list served because the provider's live catalog was unavailable. The disk cache
treats it as a placeholder, never as the account's real catalog (#107391).© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    ÚE/home/ubuntu/.hermes/hermes-agent/hermes_cli/models_catalog_static.pyr   r      s   † õRr   r   úanthropic/claude-opus-5-fastz2x price, higher output speedúanthropic/claude-opus-4.8-fastúdeepseek/deepseek-v4-pro-0813zdated snapshot of v4-proú!deepseek/deepseek-v4.1-flash-1017zdated snapshot of v4.1-flashúdeepseek/deepseek-v4-flash-0731zdated snapshot of v4-flashúmoonshotai/kimi-k3Úrecommendedúz-ai/glm-5.2Údefaultúz-ai/glm-5.3-flashxz high-speed tier of glm-5.3-flashúopenrouter/pareto-codezAauto-routes to cheapest coder meeting openrouter.min_coding_scoreúopenai/gpt-6-astra-fastz2x price, priority tierúopenai/gpt-6-astra-flexz0.5x price, flex tierúopenai/gpt-6-astra-pro-fastúopenai/gpt-6-astra-pro-flexústealth/union-alphazfree, stealth modelústealth/space-bunny-alphaz:freeÚfreeÚ zlist[tuple[str, str]]ÚOPENROUTER_MODELSÚVERCEL_AI_GATEWAY_MODELSc               ó   € V ^8„  d   QhRR/# ©é   Úreturnú	list[str]r   )Úformats   "r   Ú__annotate__r*   X   s   € ÷ >ñ >˜yñ >r   c                 ó4   € ^ RI Hp Hp V! \        V 4      4      # )z±openai-codex curated list from codex_models.py (DEFAULT_CODEX_MODELS + forward-compat
synthesis) so the gateway /model picker and the CLI ``hermes model`` flow share one source.©ÚDEFAULT_CODEX_MODELSÚ_finalize_codex_models)Úhermes_cli.codex_modelsr-   r.   Úlistr,   s     r   Ú_codex_curated_modelsr1   X   s   € ÷ UÙ!¤$Ð';Ó"<Ó=Ð=r   úgrok-4.6úgrok-build-0.1úgrok-4.5r(   Ú_XAI_STATIC_FALLBACKÚ_XAI_CURATED_EXTRASc               ó    € V ^8„  d   QhRRRR/# ©r&   Úidsr(   r'   r   )r)   s   "r   r*   r*   o   s   € ÷ ñ ˜)ð ¨	ñ r   c                óz   € \         V 9   d+   \         .V  Uu. uF  q\         8w  g   K  VNK  	  up,           # V # u upi )z:Pin the headline xAI model to the top of the curated list.)Ú_XAI_TOP_MODEL)r9   Úms   & r   Ú_xai_promote_topr=   o   s9   € ä˜ÔÜÐ©cÓ"I©c¨¼.Ñ5H§1 1©cÑ"IÕIÐIØ€Jùò #Js   –8§8c               ó    € V ^8„  d   QhRRRR/# r8   r   )r)   s   "r   r*   r*   v   s   € ÷ ñ  9ð °ñ r   c                ó´   € \        V 4      p\         FB  pW!9  g   K  TP                  V'       d   V^ ,          \        8X  d   ^M
\	        V4      V4       KD  	  V# )zZAppend Hermes-curated xAI models missing from models.dev, right after the pinned headline.)r0   r6   Úinsertr;   Úlen)r9   ÚoutÚextras   &  r   Ú_xai_merge_curated_extrasrD   v   sC   € ä
ˆs‹)€Cß$ˆØÖØ�J‰JŸC C¨¥F¬nÔ$<‘qÄ#ÀcÃ(ÈEÖRñ %ð €Jr   c               ó    € V ^8„  d   QhRRRR/# r8   r   )r)   s   "r   r*   r*      s   € ÷ <ñ <˜yð <¨Yñ <r   c                ó*   € \        \        V 4      4      # )N)r=   rD   )r9   s   &r   Ú_xai_finalize_catalogrG      s   € ÜÔ5°cÓ:Ó;Ð;r   c               ó   € V ^8„  d   QhRR/# r%   r   )r)   s   "r   r*   r*   ƒ   s   € ÷ =ñ =˜Yñ =r   c                 óä  €  ^ RI Hp  V ! 4       p\        V\        4      '       d   VP	                  R4      MRp\        V\        4      '       d   VP	                  R4      MRp\        V\        4      '       dN   V'       dF   V Uu. uF  p\        V\
        4      '       g   K  VNK  	  ppV'       d   \        \        V4      4      # \        \        \        4      4      # u upi   \         d     L*i ; i)z°Offline curated floor for xAI / xAI OAuth pickers: $HERMES_HOME/models_dev_cache.json
(no network), else ``_XAI_STATIC_FALLBACK``. Any failure falls through to the static list.)Ú_load_disk_cacheÚxaiNÚmodels)Úagent.models_devrJ   Ú
isinstanceÚdictÚgetÚstrrG   ÚsortedÚ	Exceptionr0   r5   )rJ   ÚdatarK   rL   Úmidr9   s         r   Ú_xai_curated_modelsrV   ƒ   s¶   € ð
Ý5ÙÓ!ˆÜ!+¨D´$×!7Ò!7ˆd�h‰h�uŒo¸TˆÜ&0°´d×&;Ò&;�—‘˜Ô"ÀˆÜ�fœd×#Ò#¯Ù"(ÓA¡&˜3¬J°s¼C×,@—3�3¡&ˆCÐAßÜ,¬V°C«[Ó9Ð9ô !¤Ô&:Ó!;Ó<Ð<ùò Bøô ô Ùðús0   ‚A<C! Á?C! ÂCÂ CÂ&C! ÃC! Ã!C/Ã.C/úgpt-5.4úgpt-5.4-miniúgpt-5.3-codexúgpt-5.2-codexúqwen3.6-plusú	kimi-k2.5úqwen3.5-plusúglm-5.2úglm-5údeepseek-v4-proúdeepseek-v4-flashúkimi-k2.7-codeú	kimi-k2.6úglm-5.1ÚmoaÚnousÚopenaiú
openai-apiúgpt-6.1-solúgpt-5.6-solúgpt-5.6-terraúgpt-5.6-lunaúgpt-5.5úgpt-5.5-proúgpt-5.4-nanoúopenai-codexú	xai-oauthúcopilot-acpÚcopilotúclaude-sonnet-5úclaude-sonnet-4Úgeminiúgemini-3.8-flashúgemini-3.7-flashúgemini-3.6-flashÚzaiúglm-5.3úglm-5.3-flashrK   Únvidiaúkimi-codingúkimi-k3úkimi-coding-cnÚstepfunÚmoonshotÚminimaxúminimax-oauthú
minimax-cnÚ	anthropicúclaude-fable-5úclaude-opus-5úclaude-opus-4-8úclaude-opus-4-7úclaude-opus-4-6úclaude-sonnet-4-6Údeepseekzdeepseek-flashÚxiaomiútencent-tokenhubútencent-tokenplanÚarceeÚgmiúopencode-zenzx-preview-f-freezgpt-5.4-prozgpt-5.3-codex-sparkúgpt-5.2zgpt-5.1zgpt-5.1-codexzgpt-5.1-codex-maxzgpt-5.1-codex-miniúgpt-5zgpt-5-codexz
gpt-5-nanozclaude-opus-4-5úclaude-sonnet-4-5úclaude-haiku-4-5zgemini-3.5-flashzgemini-3.5-flash-litezgemini-3.1-prozgemini-3-flashzmuse-spark-1.2ú
minimax-m3úminimax-m2.7úminimax-m2.5z
big-picklezmimo-v2.5-freeznemotron-3-ultra-freeznemotron-3.5-lightning-freezmuse-spark-1.2-contributor-freezmuse-spark-1.3-contributor-freeúopencode-goÚkilocodeÚalibabaú
alibaba-cnúalibaba-coding-planúalibaba-coding-plan-cnúalibaba-token-planúalibaba-token-plan-cnÚhuggingfaceÚbedrockúazure-foundryÚvertexÚnovitaú
ai-gatewayzdict[str, list[str]]Ú_PROVIDER_MODELSc                  ó6   € ] tR tRt$ R]R&   R]R&   R]R&   RtR# )ÚProviderEntryiD  rQ   ÚslugÚlabelÚtui_descr   N)r   r   r	   r
   Ú__annotations__r   r   r   r   r«   r«   D  s   ‡ Ø
ƒIØƒJØ‡Mr   r«   Ú
openrouterúGitHub CopilotÚMiniMaxúlist[ProviderEntry]ÚCANONICAL_PROVIDERSc               ó   € V ^8„  d   QhRR/# )r&   r'   Úboolr   )r)   s   "r   r*   r*     s   € ÷ +ñ +¨$ñ +r   c                ó(   € V P                   \        9  # )an  Picker admission for a plugin model-provider profile: any slug without a built-in row.

Every profile is admitted, hidden (pre-release) ones included: ``CANONICAL_PROVIDERS`` is also
the typed-path registry (``provider:model`` parsing, labels), so a signed-in user must still be
able to name one. The pickers that list rows filter with ``providers.provider_listed``.)ÚnameÚ_canonical_slugs)Úpps   &r   Ú_plugin_provider_enters_pickerr»     s   € ð �7‰7Ô*Ñ*Ð*r   c               ó   € V ^8„  d   QhRR/# )r&   r'   Úintr   )r)   s   "r   r*   r*   ˆ  s   € ÷ ñ  cñ r   c            	     ó¸  €  ^ RI Hp  V ! 4       p^ pT F±  p\        T4      '       g   K  TP                  ;'       g    TP
                  p\        P                  \        TP
                  YCP                  ;'       g    T R24      4       \        P                  TP
                  4       T\        TP
                  &   T^,          pK³  	  T#   \         d     ^ # i ; i)u…  Admit every registered plugin provider without a built-in row; return how many were added.

Runs at import and again from ``providers._sync_auth_registry`` whenever a profile is registered
after this module was imported. The import-time pass alone observes a *partial* registry: a
plugin whose own imports pull ``hermes_cli.models`` in mid-``_discover_providers()``, or a
profile registered later at runtime, would otherwise never reach the picker, ``hermes model``,
``/model`` or the Desktop ``model.options`` list until restart â€” the catalog twin of the auth
registry window (#102123). Idempotent by slug; built-in rows are never rewritten.
)Úlist_providersz (direct API))Ú	providersr¿   rS   r»   Údisplay_namer¸   r´   Úappendr«   Údescriptionr¹   ÚaddÚ_PROVIDER_LABELS)r¿   ÚprofilesÚaddedrº   r­   s        r   Úsync_plugin_provider_catalogrÈ   ˆ  sº   € ðÝ,Ù!Ó#ˆð €EÛˆÜ-¨b×1Ò1ÙØ—‘×*Ð* 2§7¡7ˆÜ×"Ñ"¤=°·±¸%ÇÁ×AjÐAjÐV[ÐU\Ð\iÐSjÓ#kÔlÜ×Ñ˜RŸW™WÔ%Ø$)Ô˜Ÿ™Ñ!Ø��
Šñ ð €Løô ô Úðús   ‚C
 Ã
CÃCzdict[str, str]rÅ   zCustom endpointÚcustomc               ó   € V ^8„  d   QhRR/# )r&   r'   r³   r   )r)   s   "r   r*   r*   ¨  s   € ÷ Kñ KÐ$7ñ Kr   c                 óŽ   € ^ RI Hp  ^ RIHp V! 4       pV P                   Uu. uF  q3P
                  V9  g   K  VNK  	  up# u upi )zº``CANONICAL_PROVIDERS`` minus pre-release profiles the user has not opted into: what a provider
LIST offers. Typed paths (``provider:model``, labels, ``--provider``) keep the full table.)rL   )Úunlisted_provider_names)Ú
hermes_clirL   rÀ   rÌ   r´   r¬   )rL   rÌ   ÚhiddenÚps       r   Úlisted_canonical_providersrÐ   ¨  s=   € õ "Ý1Ù$Ó&€FØ×1Ò1ÓJÑ1�!·V±VÀ6Ñ5I�AˆAÑ1ÑJÐJùÒJs
   ¢A¹AÚkimizKimi / Moonshotz.Coding Plan, Moonshot global & China endpointsz+Global, OAuth Coding Plan & China endpointszxAI Grokz(Direct API or SuperGrok / Premium+ OAuthÚgooglezGoogle GeminizGoogle AI Studio (API key)ÚOpenAIz/ChatGPT/Codex subscription or direct OpenAI APIÚqwenÚQwenz@Qwen Cloud / DashScope, Coding Plan, Token Plan & Qwen CLI OAuthÚopencodeÚOpenCodez$Zen pay-as-you-go or Go subscriptionz)GitHub token API or copilot --acp processÚtencentz
Tencent Hyz"Hy4 / Hy3 via TokenHub & TokenPlanz%dict[str, tuple[str, str, list[str]]]ÚPROVIDER_GROUPSÚ_SLUG_TO_GROUPc               ó    € V ^8„  d   QhRRRR/# )r&   r¬   rQ   r'   r   )r)   s   "r   r*   r*   Ì  s   € ÷ Cñ C #ð C¨#ñ Cr   c                óŒ   € \         P                  \        T ;'       g    R4      P                  4       P	                  4       R4      # )zCReturn the group_id a provider slug belongs to, or "" if ungrouped.r!   )rÚ   rP   rQ   ÚstripÚlower)r¬   s   &r   Úprovider_group_for_slugrß   Ì  s1   € ä×Ñœc $§* *¨"›o×3Ñ3Ó5×;Ñ;Ó=¸rÓBÐBr   c                óH  € \        V 4      p\        P                  4        UUUUUu/ uF#  w  pw  r4pY% Uu. uF  qfV9   g   K  VNK  	  upbK%  	  pppppp. p\        4       p	\        4       p
V  EF"  p\        T;'       g    R4      P	                  4       P                  4       pV'       d   WÉ9   d   KE  V	P                  V4       \        P                  VR4      pV'       g   VP                  RRRV/4       K‹  W*9   d   K“  V
P                  V4       VP                  V4      ;'       g    V.p\        V4      ^8:  d   VP                  RRRV^ ,          /4       Kî  \        V,          w  rÞpVP                  RRRVRVRVR	\        V4      /4       EK%  	  V# u upi u upppppi )
a8  Fold a flat ordered slug iterable into picker rows by provider group (DISPLAY ONLY).

A group row appears at the position of its FIRST present member, in input order; later
members fold into it. Member order inside a group follows ``PROVIDER_GROUPS`` declaration,
restricted to the members present in ``slugs``.
r!   ÚkindÚsingler¬   ÚgroupÚgroup_idr­   rÃ   Úmembers)ÚsetrÙ   ÚitemsrQ   rÝ   rÞ   rÄ   rÚ   rP   rÂ   rA   r0   )ÚslugsÚpresentÚgidÚ_labelÚ_descrå   r<   Úgroup_membersÚrowsÚseenÚemitted_groupsr¬   Úsr­   ÚdescÚ_s   &               r   Úgroup_providersrô   Ñ  s  € ô �%‹j€Gô .=×-BÑ-BÔ-D÷á-DÑ)ˆCÑ)�& ð 	˜Ó1™�A¨¡L�aˆa™Ñ1Ò1Ù-Dð ô ð €DÜ“U€DÜ"›u€NÜˆÜ�—
�
˜‹O×!Ñ!Ó#×)Ñ)Ó+ˆß�A”IÙØ�‰�ŒÜ× Ñ   BÓ'ˆßØ�K‰K˜ ¨6°1Ð5Ô6ÙØÔ ÙØ×Ñ˜3ÔØ×#Ñ# CÓ(×/Ð/¨Q¨CˆÜˆw‹<˜1ÔØ�K‰K˜ ¨6°7¸1µ:Ð>Ö?ä,¨SÕ1‰NˆE˜Ø�K‰K˜ ¨*°c¸7ÀEØ&¨¨i¼¸g»ðH÷ Iñ# ð& €Kùò3 2ùös   ¦FµFÁFÁFÆFzfrozenset[str]Ú_SILENT_DEFAULT_PROVIDERSzdict[str, tuple[str, ...]]Ú_PROVIDER_RETIRED_ALIASESÚ_BORROWED_MODEL_PROVIDERSÚ_LIVE_FIRST_PICKER_PROVIDERSztuple[str, ...]Ú_OPENAI_FAST_MODE_PREFIXESzgpt-6-astraÚ_OPENAI_ULTRAFAST_MODELSÚ_MODELS_DEV_PREFERREDN)Izanthropic/claude-fable-5.1zanthropic/claude-fable-5zanthropic/claude-opus-5.5zanthropic/claude-opus-5r   zanthropic/claude-opus-4.8r   zanthropic/claude-sonnet-5.5úanthropic/claude-sonnet-5zanthropic/claude-haiku-5.5úanthropic/claude-haiku-4.5zopenai/gpt-6-astrar   r   zopenai/gpt-6-astra-pror   r   zopenai/gpt-6.1-solzopenai/gpt-6.1-sol-prozopenai/gpt-6-solzopenai/gpt-6-sol-prozopenai/gpt-6-lunazopenai/gpt-6-luna-prozopenai/gpt-5.5zopenai/gpt-5.5-proúopenai/gpt-5.4-miniúgoogle/gemini-4-argonúgoogle/gemini-3.1-pro-previewúgoogle/gemini-3.8-flashúgoogle/gemini-3.7-flashzx-ai/grok-4.7zx-ai/grok-4.6zdeepseek/deepseek-v4-pror   zdeepseek/deepseek-v4.1-flashr   r   zqwen/qwen3.8-max-0902zqwen/qwen3.8-flashr   zminimax/minimax-m3úz-ai/glm-5.3zz-ai/glm-5.3-flashr   r   zxiaomi/mimo-v2.6-prozxiaomi/mimo-v2.6-flashzxiaomi/mimo-v2.6-pro-ultraspeedzxiaomi/mimo-v2.5-proztencent/hy4-previewztencent/hy3zstepfun/step-3.7-flashú!nvidia/nemotron-3-super-120b-a12bzmeta/muse-spark-1.2úmeta/muse-spark-1.2-contributorzmeta/muse-spark-1.3úmeta/muse-spark-1.3-contributorzsakana/fugu-ultrazupstage/solar-pro4zupstage/solar-mini4r   zthinkingmachines/inkling:freez#thinkingmachines/inkling-small:freezminimax/minimax-m3:freezz-ai/glm-5.2:freezpoolside/laguna-s-2.1:freezpoolside/laguna-xs-2.1:freez&nvidia/nemotron-3-super-120b-a12b:freez&nvidia/nemotron-3-ultra-550b-a55b:freezinclusionai/ling-3.0-flash:freez"nvidia/nemotron-3.5-lightning:freer   r   >   r   r   r   r   r  r  )úmoonshotai/kimi-k2.6r   )zalibaba/qwen3.6-pluszzai/glm-5.1úminimax/minimax-m2.7úanthropic/claude-sonnet-4.6zanthropic/claude-opus-4.7úanthropic/claude-opus-4.6rý   úopenai/gpt-5.4rþ   zopenai/gpt-5.3-codexr   zgoogle/gemini-3-flashú$google/gemini-3.1-flash-lite-previewzxai/grok-4.20-reasoning)r2   r3   r4   zgrok-4.3zgrok-4.20-0309-reasoningzgrok-4.20-0309-non-reasoningzgrok-4.20-multi-agent-0309)r2   r4   zgrok-composer-2.5-fast)rW   rX   ú
gpt-5-minirY   rZ   úgpt-4.1úgpt-4oúgpt-4o-mini)ú
MiniMax-M3úMiniMax-M2.7úMiniMax-M2.5zMiniMax-M2.1z
MiniMax-M2)zhy4-previewÚhy3úhy3-preview)úqwen3.8-maxúqwen3.7-maxúqwen3.7-plusr[   úqwen3.6-flashr\   r]   úqwen3-coder-plusúqwen3-coder-nextr^   r_   úglm-4.7r`   zdeepseek-v4-flash-0731r  )
r  r[   r]   zqwen3-max-2026-01-23r  r  r\   r_   r  r  )zqwen3.8-max-0902r  r  r[   r  r`   ra   zdeepseek-v3.2rb   rc   r\   r^   rd   r_   )ri   zgpt-6.1-sol-proz	gpt-6-solzgpt-6-sol-proz
gpt-6-lunazgpt-6-luna-prorj   zgpt-5.6-sol-prork   zgpt-5.6-terra-prorl   zgpt-5.6-luna-prorm   rn   rW   rX   ro   r  rY   r  r  r  )	úclaude-sonnet-4.6rt   ru   úclaude-sonnet-4.5úclaude-haiku-4.5úgemini-3.1-pro-previewúgemini-3-pro-previewzgemini-3-flash-previewzgemini-2.5-pro)rw   zgemini-4-argonrx   r   r!  ry   zgemini-3.1-flash-lite-preview)
r{   r|   r^   rd   r_   zglm-5v-turbozglm-5-turbor  zglm-4.5zglm-4.5-flash)	z&nvidia/nemotron-3.5-super-vl-120b-a12bz!nvidia/nemotron-3-ultra-550b-a55br  z%nvidia/nemotron-3.5-lightning-30b-a3bz-nvidia/nemotron-3-nano-omni-30b-a3b-reasoningr  r   r  zminimaxai/minimax-m3)
r   rb   rc   r\   zkimi-for-codingzkimi-for-coding-highspeedúkimi-k2-thinkingzkimi-k2-thinking-turboúkimi-k2-turbo-previewúkimi-k2-0905-preview)r   rb   zkimi-k2.7-code-highspeedrc   r\   r"  r#  r$  )zstep-3.7-flashzstep-3.5-flashzstep-3.5-flash-2603)r   rc   r\   r"  r#  r$  )r  r  zMiniMax-M2.7-highspeed)zclaude-fable-5.1r‡   zclaude-opus-5-5rˆ   rt   r‰   rŠ   r‹   rŒ   zclaude-opus-4-5-20251101zclaude-sonnet-4-5-20250929zclaude-opus-4-20250514zclaude-sonnet-4-20250514zclaude-haiku-4-5-20251001)zmimo-v2.6-prozmimo-v2.6-flashzmimo-v2.6-pro-ultraspeedúmimo-v2.5-proú	mimo-v2.5úmimo-v2-proúmimo-v2-omnizmimo-v2-flash)ztrinity-large-thinkingztrinity-large-previewztrinity-mini)zzai-org/GLM-5.1-FP8údeepseek-ai/DeepSeek-V3.2úmoonshotai/Kimi-K2.5r  rü   r	  r  )r   rb   rc   r\   rl   r4   r{   r|   r^   rd   r_   r%  r&  r'  r(  r˜   r™   rš   r`   ra   r  r  r  r[   r]   r  r  zmuse-spark-1.2-contributorzmuse-spark-1.3-contributor)r
  r	  r  úgoogle/gemini-3-pro-previewúgoogle/gemini-3-flash-preview)	r*  zQwen/Qwen3.5-397B-A17BzQwen/Qwen3.5-35B-A3Br)  zMiniMaxAI/MiniMax-M2.5zzai-org/GLM-5zXiaomiMiMo/MiMo-V2-Flashzmoonshotai/Kimi-K2-Thinkingzmoonshotai/Kimi-K2.6)zus.anthropic.claude-sonnet-5zus.anthropic.claude-opus-5-5zus.anthropic.claude-sonnet-4-6zus.anthropic.claude-opus-4-6-v1z+us.anthropic.claude-haiku-4-5-20251001-v1:0z,us.anthropic.claude-sonnet-4-5-20250929-v1:0zopenai.gpt-6-astrazopenai.gpt-6.1-solzopenai.gpt-6-solzopenai.gpt-6-lunazopenai.gpt-5.5zopenai.gpt-5.6-solzopenai.gpt-5.6-terrazopenai.gpt-5.6-lunazus.amazon.nova-pro-v1:0zus.amazon.nova-lite-v1:0zus.amazon.nova-micro-v1:0zdeepseek.v3.2z)us.meta.llama4-maverick-17b-instruct-v1:0z&us.meta.llama4-scout-17b-instruct-v1:0)r  rÿ   r  r   r+  zgoogle/gemini-3.6-flashzgoogle/gemini-3.5-flashzgoogle/gemini-3.5-flash-liter,  r  zgoogle/gemini-3.1-flash-lite)zmoonshotai/kimi-k2.5r  zzai-org/glm-5zdeepseek/deepseek-v3-0324zdeepseek/deepseek-r1-0528zqwen/qwen3-235b-a22b-fp8)')rf   zNous PortalzLNous Portal (Everything your agent needs, 300+ models with bundled tool use))Ú	fireworkszFireworks AIz1Fireworks AI (OpenAI-compatible direct model API))r°   Ú
OpenRouterz'OpenRouter (Pay-per-use API aggregator))re   zMixture of AgentszIMixture of Agents (named presets; aggregator acts after reference models))r§   ÚNovitaAIz5NovitaAI (Cloud: Model API, Agent Sandbox, GPU Cloud))Úlmstudioz	LM Studioz8LM Studio (Local desktop app with built-in model server))r†   Ú	Anthropicz4Anthropic (Claude models via API key or Claude Code))rp   zChatGPT or Codex SubscriptionzTChatGPT or Codex Subscription (Sign in with your ChatGPT account, uses Codex models))rh   z
OpenAI APIz$OpenAI API (api.openai.com, API key))r�   z
Qwen Cloudz.Qwen Cloud / DashScope (Qwen + multi-provider))rq   z%xAI Grok OAuth (SuperGrok / Premium+)z2xAI Grok OAuth (SuperGrok / Premium+ subscription))rŽ   zXiaomi MiMoz7Xiaomi MiMo (MiMo-V2.5 and V2 models: pro, omni, flash))r�   zTencent TokenHubz;Tencent TokenHub (Hy4 preview via tokenhub.tencentmaas.com))r�   zTencent TokenPlanzSTencent TokenPlan (Hy4 preview via api.lkeap.cloud.tencent.com, Anthropic Messages))r}   z
NVIDIA NIMz>NVIDIA NIM (Nemotron models via build.nvidia.com or local NIM))rs   r±   z3GitHub Copilot (Uses GITHUB_TOKEN or gh auth token))rr   zGitHub Copilot ACPz1GitHub Copilot ACP (Spawns copilot --acp --stdio))r£   zHugging Facez Hugging Face Inference Providers)rv   zGoogle AI Studioz$Google AI Studio (Native Gemini API))r¦   zGoogle Vertex AIzTGoogle Vertex AI (Gemini via GCP; OAuth2 service account or ADC, GCP billing/quotas))r�   ÚDeepSeekz$DeepSeek (V3, R1, coder, direct API))rK   ÚxAIzxAI Grok (Direct API))rz   z
Z.AI / GLMzZ.AI / GLM (Zhipu direct API))r~   zKimi / Kimi Coding Planz.Kimi Coding Plan (api.kimi.com & Moonshot API))r€   zKimi / Moonshot (China)z+Kimi / Moonshot China (Domestic direct API))r�   zStepFun Step Planz;StepFun Step Plan (Agent / coding models via Step Plan API))rƒ   r²   zMiniMax (Global direct API))r„   zMiniMax (OAuth)z9MiniMax via OAuth browser login (Coding Plan, minimax.io))r…   zMiniMax (China)z#MiniMax China (Domestic direct API))úollama-cloudzOllama Cloudz3Ollama Cloud (Cloud-hosted open models, ollama.com))r‘   zArcee AIz%Arcee AI (Trinity models, direct API))r’   z	GMI Cloudz"GMI Cloud (Multi-model direct API))rœ   z	Kilo CodezKilo Code (Kilo Gateway API))r“   zOpenCode Zenz,OpenCode Zen (Curated models, pay-as-you-go))r›   zOpenCode Goz&OpenCode Go (Open models subscription))r¤   zAWS Bedrockz;AWS Bedrock (Claude, Nova, Llama, DeepSeek; IAM or API key))r¥   zAzure FoundryzRAzure Foundry (OpenAI-style or Anthropic-style endpoint, your Azure AI deployment))r¨   zVercel AI Gatewayz*Vercel AI Gateway (Multi-model aggregator))ú
qwen-oauthzQwen OAuth (Portal)z(Qwen OAuth (Reuses local Qwen CLI login))rƒ   r„   r…   )r�   rž   rŸ   r    r¡   r¢   r5  )a)Úglmrz   )zz-airz   )zz.airz   )Úzhipurz   )Úgithubrs   )zgithub-copilotrs   )zgithub-modelsrs   )zgithub-modelrs   )zgithub-copilot-acprr   )zcopilot-acp-agentrr   )rÒ   rv   )zgoogle-geminirv   )zgoogle-ai-studiorv   )zgoogle-vertexr¦   )z	vertex-air¦   )z
gcp-vertexr¦   )Úvertexair¦   )rÑ   r~   )r‚   r~   )zkimi-cnr€   )zmoonshot-cnr€   )Ústepr�   )zstepfun-coding-planr�   )zarcee-air‘   )Úarceeair‘   )z	gmi-cloudr’   )Úgmicloudr’   )zfireworks-air-  )Úfwr-  )zactual-computerÚactual)Úactualcomputerr>  )Úacir>  )Únebiusúnebius-token-factory)znebius-tokenfactoryrB  )z	nebius-tfrB  )ztoken-factoryrB  )ÚtokenfactoryrB  )zminimax-chinar…   )Ú
minimax_cnr…   )zminimax-portalr„   )zminimax-globalr„   )Úminimax_oauthr„   )Úclauder†   )zclaude-coder†   )z	deep-seekr�   )rÖ   r“   )Úzenr“   )Úgor›   )zopencode-go-subr›   )Ú	aigatewayr¨   )Úvercelr¨   )zvercel-ai-gatewayr¨   )Úkilorœ   )z	kilo-coderœ   )zkilo-gatewayrœ   )Ú	dashscoper�   )Úaliyunr�   )rÔ   r�   )zalibaba-cloudr�   )zqwen-portalr5  )Úhfr£   )zhugging-facer£   )zhuggingface-hubr£   )z	novita-air§   )Únovitaair§   )ÚmimorŽ   )zxiaomi-mimorŽ   )rØ   r�   )Útokenhubr�   )ztencent-cloudr�   )Útencentmaasr�   )Ú	tokenplanr�   )ztencent-lkeapr�   )Úawsr¤   )zaws-bedrockr¤   )zamazon-bedrockr¤   )Úamazonr¤   )ÚgrokrK   )z
grok-oauthrq   )rq   rq   )z
x-ai-oauthrq   )zxai-grok-oauthrq   )zx-airK   )zx.airK   )Únimr}   )z
nvidia-nimr}   )zbuild-nvidiar}   )Únemotronr}   )r0  r0  )z	lm-studior0  )Ú	lm_studior0  )Úchatgptrp   )zchatgpt-codexrp   )ÚollamarÉ   )Úollama_cloudr4  )ÚlocalrÉ   )ÚvllmrÉ   )zdeepseek-chatzdeepseek-reasoner>   rf   rs   rœ   r°   r¨   >   úmeta-air›   r“   )zgpt-Úo1Úo3Úo4>   rK   rz   ÚgroqÚcohererv   rÒ   r}   Úmistralrœ   r-  Ú
perplexityÚ
togetherair£   rq   r›   r“   ) )zopenai/gpt-5r  )zopenai/gpt-5-chatr  )zopenai/gpt-5-minir  )zopenai/gpt-5-nanor  )zopenai/gpt-4.1r  )zopenai/gpt-4.1-minir  )zopenai/gpt-4.1-nanor  )zopenai/gpt-4or  )zopenai/gpt-4o-minir  )z	openai/o1r”   )zopenai/o1-minir  )zopenai/o1-previewr”   )z	openai/o3rY   )zopenai/o3-minir  )zopenai/o4-minir  )r
  úclaude-opus-4.6)rü   rt   )r	  r  )zanthropic/claude-sonnet-4ru   )zanthropic/claude-sonnet-4.5r  )rý   r  )rt   rt   )r‹   rh  )rŒ   r  )zclaude-sonnet-4-0ru   )r–   r  )r—   r  )zanthropic/claude-opus-4-6rh  )zanthropic/claude-sonnet-4-6r  )zanthropic/claude-sonnet-4-0ru   )zanthropic/claude-sonnet-4-5r  )zanthropic/claude-haiku-4-5r  )Úcodexr•   r`  ra  rb  )<Ú__conditional_annotations__r   Ú
__future__r   Útypingr   r0   rQ   r   Ú_OPENROUTER_DESCRIPTIONSrP   Úendswithr"   r¯   Ú_OPENROUTER_ONLYr#   r1   r5   r6   r;   r=   rD   rG   rV   Ú_OPENAI_CHAT_MODELSÚ_MINIMAX_MODELSÚ_TENCENT_MODELSÚ_ALIBABA_MODELSÚ_ALIBABA_CODING_PLAN_MODELSÚ_ALIBABA_TOKEN_PLAN_MODELSÚ_XAI_MODELSr©   r«   r´   r¬   r¹   r»   rÈ   r­   rÅ   rÐ   rÙ   rç   rÚ   rß   rô   rO   Ú_PROVIDER_ALIASESÚPREFERRED_SILENT_DEFAULT_MODELÚ	frozensetrõ   rö   Ú_AGGREGATOR_PROVIDERSr÷   rø   rù   rú   rû   Ú_COPILOT_MODEL_ALIASESÚ!_AZURE_FOUNDRY_RESPONSES_PREFIXES)
rU   ró   ÚrowrÏ   rê   rë   rì   rå   r¬   rj  s
   000000000@r   Ú<module>r~     sä	  øðôõ #å ôR˜D �Iô Rð #Ð$CØ$Ð&EØ#Ð%?Ø'Ð)GØ%Ð'CØ˜-Ø�IØÐ=ØÐaØÐ8ØÐ6Ø!Ð#<Ø!Ð#:ØÐ0ØÐ!6ðÐ ñ&ó,ñˆð 	Ð
"×
&Ñ
& s·l±lÀ7×6KÒ6K©FÐQSÓ
TÓUññ,Ð Ð(ó òBÐ ð 4[Ð2[ñó_ñ�#ˆ"ƒIñ ñ_õ 3Ð Ð/ó õ>ò#Ð �ió ò "TÐ �YÓ Sà€õõõ<õ=ò$Ð ò _€Ú7€ò€ò
Ð ò
Ð ñ "Ó#€ðL*Ø	ˆIˆ;ðL*à
Ñ0ÔnÑ0‘V�S°CÐ?OÑ4OŒSÐX[×XdÑXdÐel×Xm�SˆSÑ0ÒnðL*ð ‰dÐ&Ó'ð	L*ð
 ò ðL*ð Ñ)Ó+ðL*ð ‘�kÓ"ðL*ð �M�?ðL*ð Ð"ò &õ ðL*ð$ ò ð%L*ð. 
ò ð/L*ð6 
‰4�Óð7L*ð: ò ð;L*ðD ò ðEL*ðL ò ðML*ðT ÒJðUL*ðV ò ðWL*ð\ ‰t�OÓ$ñ]L*ð^ ÒMð_L*ð` ‘$�Ó'ðaL*ðb ò ðcL*ðn Ð!Ð#4Ð5ðoL*ðp ò ðqL*ðx ™˜_Ó-ðyL*ðz ™˜oÓ.ð{L*ð| ÒPð}L*ð~ 
ò ðL*ðN ð ØðØ%ðØ'2ðØ4?ðØANðØP_ðØaoðàðà ðà"/ðà1:ðà<JðàLZðà\kðð 	ðð  )ðð +:ðð <Eðð GVðð Xkðð 	ð	ð &ð	ð (5ð	ð 7Cð	ð EUð	ð Wfð	ð
 	ðð
 -ðð
 /@ðð
 BSðð
 Ufðð 	ðð 1ðð 3Dðð FXðð Zlðð 	ðð /ðð 1Cðð E\ðð ^nðð p@ðð 	ðð ðð !1ðð 3Cðð EQðð Saðð cqðð 	ðð #ðð %.ðð 09ðð ;Bðð DTðð Vgðð 	ðð ,ðð .<ðð >Jðð L\ðð 	 ðð "?ðð 	*ðð ,MððOL*ðp ò ðqL*ð~ ò ðL*ðF ‰t�OÓ$ðGL*ðH ‘$�Ó'ðIL*ðJ ™4Ð ;Ó<ðKL*ðL ™dÐ#>Ó?ðML*ðN ™$Ð9Ó:ñOL*ðP ™TÐ"<Ó=àò ð ò 	ð �Rð ò ð ò ð
 Ñ%=Ô>Ñ%=™6˜3“3Ñ%=Ò>ñWL*Ð Ð&ó Lôl�Jô ñ'Ló ',ñ 'LÀC©M¸3Ô,?ñ 'Lñ ',Ð Ð(ó 'ñd %8Ó8Ñ$7˜q—F”FÑ$7Ñ8Ð õ+õñ6 >QÓ#QÑ=P¸§F¡F¨A¯G©G¢OÑ=PÑ#QÐ �.Ó QØ.Ð �Ñ Ù Ô õKð& Ð"Ð$TÐWdÐfvÐVwÐxØ�Ð$Qò  XBð  CØ	�Ð$NÐX]Ð_jÐWkÐlØ�Ð$@ÐW_ÐV`ÐaØ�Ð$UÐXfÐhtÐWuÐvØ
�Ð$fò  ipð  qØ�Ð$JÈ^Ð]jÐLkÐlØÐ!Ð$OÐXaÐcpÐWqÐrØ�Ð$HÐK]Ð_rÐJsÐtð
:€Ð6ó 
ð 4C×3HÑ3HÔ3J÷"Ù3JÑ/�#Ñ/˜ wÒW^Ètˆ#‚IÑW^�DÑ3Jõ"€�ó õ
Cò
"ñJ ð #ó #Ð ðZ "0Ð ñ -6°v¸|Ð6LÓ,MÐ ˜>Ó Mð Ð6ð9Ð Ð5ó ñ
 "Ò"]Ó^Ð ñ -6«KÐ ˜>Ó 7ñ 09Ò9cÓ/dÐ ˜nÓ dð /IÐ ˜OÓ Hñ ,5°mÀ]Ð5SÓ+TÐ ˜.Ó Tñ )2ó 3ó )Ð �~ó ñ ñ ó Ð ñ, %IÒ !ùòi,ùòT_ùóD oùóR ?ùò"',ùòd 9ùòN $RùöH"s<   Á	5QÂQÄQ$
ÄQ$
Ä/Q$
Ê4Q*"ËQ0Ë6Q5ÌQ:Î1Q?