+
    „WÝjÃ  ã            
      ó  € R t ^ RIHt ^ RIHt ^ RIHtHt ^ RIH	t	H
t
 ^ RIHtHt R$R R lltR R	 ltR%R R lltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR]R]R]R ]R!]/tR" R# ltR
# )&z.CLI helpers for configuring Mixture of Agents.)Úannotations)ÚAny)Úload_configÚsave_config)Úbuild_models_payloadÚload_picker_context)ÚDEFAULT_MOA_PRESET_NAMEÚnormalize_moa_configc               ó(   € V ^8„  d   QhRRRRRRRR/# )é   ÚtitleÚstrÚrowsz	list[str]ÚdefaultÚintÚreturn© )Úformats   "ÚFC:\Users\johnn\AppData\Local\hermes\hermes-agent\hermes_cli\moa_cmd.pyÚ__annotate__r      s(   € ÷ ñ ˜#ð  Yð ¸ð ÀSñ ó    c           
     óŽ  €  ^ RI Hp V! WW"R7      #   \         d¨    \        T^R7       F  w  rE\	        T RT 24       K  	  \        T  RT^,            R24      P                  4       pT'       g   Tu #  \        ^ \        \        T4      ^,
          \        T4      ^,
          4      4      u #   \         d    Tu u # i ; ii ; i)é    )Úcurses_radiolist)ÚselectedÚcancel_returns©Ústartú. z [z]: )Úhermes_cli.curses_uir   Ú	ExceptionÚ	enumerateÚprintÚinputÚstripÚmaxÚminÚlenr   Ú
ValueError)r   r   r   r   ÚidxÚrowÚraws   &&&    r   Ú_prompt_choicer,      s´   € ðÝ9Ù °gÔVÐVøÜô 	Ü! $¨a×0‰HˆCÜ�S�E˜˜C˜5�/Ö"ñ 1ä�u�g˜R ¨!¥˜}¨CÐ0Ó1×7Ñ7Ó9ˆßØŠNð	Ü�qœ#œc $›i¨!�m¬S°«X¸­\Ó:Ó;Ò;øÜô 	ØŒNð	úð	ús.   ‚ ’A!CÁ65B.Â+CÂ.C Â;CÂ?C Ã Cc               ó   € V ^8„  d   QhRR/# )r   r   zlist[dict[str, Any]]r   )r   s   "r   r   r      s   € ÷ wñ wÐ,ñ wr   c            
     óv  € \        \        4       R RRRR^ÈR7      p V P                  R4      ;'       g    . pV Uu. uFs  q"P                  R4      '       g   K  \        VP                  R4      4      P	                  4       P                  4       R8w  g   KX  VP                  R4      '       g   Kq  VNKu  	  up# u upi )FT)Úinclude_unconfiguredÚpicker_hintsÚcanonical_orderÚpricingÚcapabilitiesÚ
max_modelsÚ	providersÚslugÚmoaÚmodels)r   r   Úgetr   r$   Úlower)Úpayloadr5   Úps      r   Ú_model_optionsr=      sœ   € Ü"ô 	Óð #ØØØØØô€Gð  —‘˜KÓ(×.Ð.¨B€IÙ Óv‘y�!§E¡E¨&§MŒA´c¸!¿%¹%À»-Ó6H×6NÑ6NÓ6P×6VÑ6VÓ6XÐ\aÑ6aŒAÐfg×fkÑfkÐlt×fu�AˆA‘yÑvÐvùÒvs   ºB6Á8B6ÂB6Â-B6Nc               ó    € V ^8„  d   QhRRRR/# )r   Úcurrentzdict[str, str] | Noner   zdict[str, str]r   )r   s   "r   r   r   1   s   € ÷ Nñ NÐ-ð N¸ñ Nr   c                ó(  a
€ \        4       pV'       g   \        R 4      hT ;'       g    / P                  RR4      o
\        V
3R l\	        V4       4       ^ 4      pV Uu. uFA  q3P                  R4      ;'       g    VP                  R4       RVP                  R4       R2NKC  	  ppV\        RWB4      ,          p\        VP                  R	4      ;'       g    . 4      pV'       g   \        R
VP                  R4       R24      hT ;'       g    / P                  RR4      pWv9   d   VP                  V4      M^ pV\        RVP                  R4       2Wh4      ,          p	R\        VP                  R4      ;'       g    R4      R\        V	4      /# u upi )z>No configured model providers found. Run `hermes model` first.ÚproviderÚ c              3  ó\   <"  € T F!  w  rVP                  R 4      S8X  g   K  Vx € K#  	  R# 5i)r6   N)r9   )Ú.0r)   r<   Úcurrent_providers   &  €r   Ú	<genexpr>Ú_pick_slot.<locals>.<genexpr>6   s'   øé € ÐiÑ/C¡V SÀqÇuÁuÈVÃ}ÐXhÑGhŸSšSÓ/Cùs   ƒ,¢
,Únamer6   z  (Ú)zSelect providerr8   z	Provider z has no selectable modelsÚmodelzSelect model for )	r=   ÚRuntimeErrorr9   Únextr!   r,   ÚlistÚindexr   )r?   r5   Úprovider_defaultr<   Úprovider_rowsrA   r8   Úcurrent_modelÚmodel_defaultrJ   rE   s   &         @r   Ú
_pick_slotrS   1   s^  ø€ ÜÓ €IßÜÐ[Ó\Ð\ØŸ˜ 2×*Ñ*¨:°rÓ:ÐÜÔi¬y¸Ô/CÓiÐklÓmÐÙU^Ó_ÑU^ÐPQŸ™˜f›×6Ð6¨¯©¨v«Ð7°s¸1¿5¹5À»=¸/ÈÓKÑU^€MÐ_ØœÐ(9¸=Ó[Õ\€HÜ�(—,‘,˜xÓ(×.Ð.¨BÓ/€FßÜ˜Y x§|¡|°FÓ';Ð&<Ð<UÐVÓWÐWØ—]�] ×'Ñ'¨°Ó4€MØ3@Ô3J�F—L‘L Ô/ÐPQ€MØ”>Ð$5°h·l±lÀ6Ó6JÐ5KÐ"LÈfÓdÕe€EØœ˜HŸL™L¨Ó0×6Ð6°BÓ7¸Ä#ÀeÃ*ÐMÐMùò `s   ÁFÁ:+Fc               ó    € V ^8„  d   QhRRRR/# )r   Úslotúdict[str, Any]r   r   r   )r   s   "r   r   r   B   s   € ÷ @ñ @�~ð @¨#ñ @r   c                ó´   € V R ,           RV R,           2p\        V P                  R4      ;'       g    R4      P                  4       pV'       d	   V RV R2# T# )rA   Ú:rJ   Úreasoning_effortrB   z [reasoning=Ú])r   r9   r$   )rU   ÚlabelÚefforts   &  r   Ú_format_slotr]   B   s[   € Ø�JÕÐ   $ w¥- Ð1€EÜ�—‘Ð,Ó-×3Ð3°Ó4×:Ñ:Ó<€Fß.4ˆeˆW�L  ¨Ð*Ð?¸%Ð?r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚcfgrV   Ú
aggregatorr   z
str | Noner   )r   s   "r   r   r   H   s$   € ÷ ñ Ø	ðØ%3ðàñr   c                óä  € R p\        V \        4      '       dh   V P                  R4      p\        V\        4      '       dA   \        VP                  R4      ;'       g    R 4      P	                  4       P                  4       p\        T;'       g    / P                  R4      ;'       g    R 4      P	                  4       P                  4       pV'       d   V'       d   VR9   g   W$8X  d   R# RV RV R2# )rB   rJ   rA   NzAggregator is on z3; the whole tool loop will be billed there, not to Ú.)r7   Úauto)Ú
isinstanceÚdictr9   r   r$   r:   )r_   r`   Úmain_providerÚmodel_sectionÚagg_providers   &&   r   Ú_provider_mismatch_noticeri   H   sË   € ð €MÜ�#”t×ÒØŸ™ Ó(ˆÜ�m¤T×*Ò*Ü × 1Ñ 1°*Ó =× CÐ CÀÓD×JÑJÓL×RÑRÓTˆMÜ˜
×(Ð( b×-Ñ-¨jÓ9×?Ð?¸RÓ@×FÑFÓH×NÑNÓP€LçßØ˜OÔ+ØÔ(áà
˜L˜>ð *Ø� ð	#ðr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚconfigrV   r   ÚNoner   )r   s   "r   r   r   ^   s   € ÷ )ñ )˜.ð )¨Tñ )r   c           
     ó6  € \        V 4      p\        R 4       \        RVR,           24       \        RVP                  R4      ;'       g    R 24       VR,          P                  4        F«  w  r#\        RW!R,          8X  d   RMR	 R	V 24       \        R
4       \	        VR,          ^R7       F  w  rE\        RV R\        V4       24       K!  	  VR,          p\        R\        V4       R24       \        W4      pV'       g   K�  \        RV 24       K­  	  R# )zMixture of Agents presetsz	Default: Údefault_presetzActive in config: Úactive_presetz(off)ÚpresetsÚ
Ú*Ú z:  Reference models (advise once per user turn by default):Úreference_modelsr   z    r   r`   z  Aggregator: uF    (acting model â€” runs every step and carries almost all of the cost)z
    note: N)Ú_moa_sectionr"   r9   Úitemsr!   r]   ri   )rk   r_   rH   Úpresetr)   rU   Úagg_slotÚnotices   &       r   Ú_print_configrz   ^   s  € Ü
�vÓ
€CÜ	Ð
%Ô&Ü	ˆI�cÐ*Õ+Ð,Ð
-Ô.Ü	Ð˜sŸw™w Ó7×BÐB¸7ÐCÐ
DÔEØ˜I�×,Ñ,Ö.‰ˆÜ�˜$Ð&6Õ"7Ô7‘3¸SÐAÀÀ4À&ÐIÔJÜÐJÔKÜ" 6Ð*<Õ#=ÀQ×G‰IˆCÜ�D˜˜˜R¤¨TÓ 2Ð3Ð4Ö5ñ Hà˜,Õ'ˆÜØœ\¨(Ó3Ð4Ð4zÐ{ô	
ô +¨6Ó<ˆß‰6Ü�J˜v˜hÐ'Ö(ó /r   c               ó    € V ^8„  d   QhRRRR/# )r   r_   r   r   rV   r   )r   s   "r   r   r   q   s   € ÷ Qñ Q�cð Q˜nñ Qr   c                ón   € \        \        V \        4      '       d   V P                  R 4      4      # / 4      # )r7   )r	   rd   re   r9   )r_   s   &r   ru   ru   q   s)   € Ü´*¸SÄ$×2GÒ2G §¡¨£ÓPÐPÈRÓPÐPr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r_   re   r7   rV   r   rl   r   )r   s   "r   r   r   u   s!   € ÷ ñ ˆtð ˜.ð ¨Tñ r   c                ó8   € \        V4      V R &   \        V 4       R# )r7   N)r	   r   )r_   r7   s   &&r   Ú_saver   u   s   € Ü% cÓ*€Cˆ�JÜ�Ör   c               ó    € V ^8„  d   QhRRRR/# ©r   r_   re   r   rl   r   )r   s   "r   r   r   z   s   € ÷ ñ �4ð  $ñ r   c                ó   € \        V 4       R # ©N)rz   )r_   Úargss   &&r   Ú	_cmd_listr…   z   s
   € Ü�#Ör   c               ó    € V ^8„  d   QhRRRR/# r�   r   )r   s   "r   r   r   ~   s   € ÷ ñ ˜ð  tñ r   c                óÚ  € \        V 4      p\        VR R4      ;'       g     VP                  R4      ;'       g    \        P	                  4       pVR,          P                  W2R,          VR,          ,          4      p\        RV 24       \        R4       . p\        VP                  R4      ;'       g    . 4      p \        V4      \        V4      8  d   V\        V4      ,          MRp\        V4      p\        T;'       g    / P                  RR4      4      VR&   VP                  V4       \        R	R
R.^4      ^8X  g   Kˆ   \        R4       \        R4       \        T4      pYTR&   \        TP                  R4      4      TR&   YBR,          T&   TP                  RT4       \        YR,          4      p	T	'       d   \        T	4       \        Y4       \        RT 24       \!        T 4       R# )rH   Nrn   rp   zConfigure MoA preset: z=Pick at least one reference model; choose Done when finished.rt   TÚenabledzAdd another reference model?zAdd anotherÚDonezConfigure aggregator model.zyThe aggregator is the acting model: it runs every tool-loop step, and almost all of the run's cost lands on its provider.r`   zSaved MoA preset: )ru   Úgetattrr9   r   r$   r"   rM   r'   rS   ÚboolÚappendr,   re   Ú
setdefaultri   r   rz   )
r_   r„   r7   Úpreset_namer?   ÚrefsÚexistingÚbaseÚpickedry   s
   &&        r   Ú_cmd_configurer“   ~   s§  € Ü
�sÓ
€CÜ˜4 ¨Ó.×fÐf°#·'±'Ð:JÓ2K×fÐfÔOf×mÑmÓo€KØ�)�n× Ñ  °)­n¸SÐAQÕ=RÕ.SÓT€GÜ	Ð" ; -Ð
0Ô1Ü	Ð
IÔJØ!#€DÜ�G—K‘KÐ 2Ó3×9Ð9°rÓ:€HØ
Ü&)¨$£i´#°h³-Ô&?ˆxœ˜D›	Ö"ÀTˆÜ˜DÓ!ˆÜ  $§* *¨"×!1Ñ!1°)¸TÓ!BÓCˆˆyÑØ�‰�FÔÜÐ8¸=È&Ð:QÐSTÓUÐYZÖZØÜ	Ð
'Ô(Ü	ð 	Dôô �7‹m€GØ"&ÐÑÜ& w§{¡{°<Ó'@ÓA€GˆLÑØ")ˆ	…N�;ÑØ‡N�NÐ# [Ô1Ü& s°LÕ,AÓB€FßÜˆfŒÜ	ˆ#„OÜ	Ð˜{˜mÐ
,Ô-Ü�#Ör   c               ó    € V ^8„  d   QhRRRR/# r�   r   )r   s   "r   r   r   ž   s   € ÷ 0ñ 0�Tð 0 Dñ 0r   c                óÚ  € \        V 4      p\        VR R4      ;'       g    RP                  4       pV'       g   \        R4      hW2R,          9  d   \        RV 24      h\	        VR,          4      ^8:  d   \        R4      hVR,          V VR,          V8X  d   \        \        VR,          4      4      VR&   VP                  R4      V8X  d   RVR&   \        W4       \        R	V 24       R# )
rH   NrB   zUsage: hermes moa delete <name>rp   zUnknown MoA preset: z!Cannot delete the only MoA presetrn   ro   zDeleted MoA preset: )
ru   rŠ   r$   Ú
SystemExitr'   rL   Úiterr9   r   r"   )r_   r„   r7   rŽ   s   &&  r   Ú_cmd_deleter˜   ž   sÙ   € Ü
�sÓ
€CÜ˜4 ¨Ó.×4Ð4°"×;Ñ;Ó=€KßÜÐ:Ó;Ð;Ø˜i�.Ô(ÜÐ/°¨}Ð=Ó>Ð>Ü
ˆ3ˆy�>Ó˜aÔÜÐ<Ó=Ð=ØˆI��{Ð#Ø
ÐÕ Ô+Ü $¤T¨#¨i­.Ó%9Ó :ˆÐÑØ
‡w�wˆÓ ;Ô.Ø!ˆˆOÑÜ	ˆ#„OÜ	Ð   Ð
.Ö/r   rM   Úlsrk   Ú	configureÚdeletec               ó   € V ^8„  d   QhRR/# )r   r   rl   r   )r   s   "r   r   r   ¸   s   € ÷ ñ �Tñ r   c                ó¦   € \        4       p\        V RR4      ;'       g    Rp\        P                  V4      pVf   \	        RV 24      hV! W4       R# )z'Manage Mixture of Agents model presets.Úmoa_commandNrM   zUnknown moa subcommand: )r   rŠ   Ú_SUBCOMMANDSr9   r–   )r„   r_   ÚsubÚhandlers   &   r   Úcmd_moar¢   ¸   sO   € ä
‹-€CÜ
�$˜ tÓ
,×
6Ð
6°€CÜ×Ñ˜sÓ#€GØ‚ÜÐ3°C°5Ð9Ó:Ð:ÙˆCÖr   )r   rƒ   )Ú__doc__Ú
__future__r   Útypingr   Úhermes_cli.configr   r   Úhermes_cli.inventoryr   r   Úhermes_cli.moa_configr   r	   r,   r=   rS   r]   ri   rz   ru   r   r…   r“   r˜   rŸ   r¢   r   r   r   Ú<module>r©      sz   ðÙ 4å "å ç 6ß Jß O÷õ w÷*Nõ"@õõ,)õ&Qõõ
õõ@0ð& ˆIØˆ)ØˆnØ�Øˆkð€÷r   