Ë
    tPêjk  ã                   ón  — d Z ddlmZmZ ddlmZmZ ddlZddlZddl	m
Z
 ddlmZ ddlmZmZ ddlmZ d	d
lmZ  G d„ de«      Z G d„ de«      Z G d„ de«      Z ej.                  «       d„ «       Zdeeeef      ddfd„Zej;                  «       ej<                  dej>                  fd„«       «       Zej;                  «       ej<                  dej>                  fd„«       «       Z ej;                  «        ejB                  ded¬«      ej<                  dej>                  dedz  fd„«       «       «       Z"y)z)Team management commands for LiteLLM CLI.é    )ÚMappingÚSequence)ÚAnyÚFinalN)ÚConsole)ÚTable)ÚReadOnlyÚ	TypedDict)ÚClienté   )Úcli_context_valuesc                   ó`   — e Zd ZU eedz     ed<   eedz     ed<   eee      ed<   ee   ed<   y)Ú_TeamRowNÚ
team_aliasÚteam_idÚmodelsÚ
max_budget)Ú__name__Ú
__module__Ú__qualname__r	   ÚstrÚ__annotations__r   Úobject© ó    úl/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/proxy/client/cli/commands/teams.pyr   r      s:   … Ø˜˜t™Ñ$Ó$Ø�c˜D‘jÑ!Ó!Ø�X˜c‘]Ñ#Ó#Ø˜Ñ Ô r   r   c                   ó$   — e Zd ZU eee      ed<   y)Ú_TeamModelsViewr   N)r   r   r   r	   r   r   r   r   r   r   r   r      s   … Ø�X˜c‘]Ñ#Ô#r   r   c                   ó(   — e Zd ZU eeeef      ed<   y)Ú_ErrorBodyViewÚbodyN)r   r   r   r	   r   r   r   r   r   r   r   r    r       s   … Ø
�7˜3 ˜;Ñ'Ñ
(Ô(r   r    c                   ó   — y)z!Manage teams and team assignmentsNr   r   r   r   Úteamsr#       s   � r   r#   Úreturnc           	      ó^  — t        «       }| s|j                  d«       yt        d¬«      }|j                  ddd¬«       |j                  d	d
¬«       |j                  dd¬«       |j                  dd¬«       |j                  dd¬«       |j                  dd¬«       t	        | «      D ]ñ  \  }}|j                  d«      xs d|j                  dd«      |j                  dg «      |j                  d«      dœ}|d   }|d   }|rHt        |«      dkD  r(dj                  |dd «      dt        |«      dz
  › d�z   }ndj                  |«      }nd}|rd|› �nd }	d!}
t        |t        «      r
d"|v r|d"   r	 |j                  t        |d#z   «      |d   |d   ||	|
«       Œó |j                  |«       y)$z"Display teams in a formatted tableúNo teams found for your user.NzAvailable Teams)ÚtitleÚIndexÚcyanT)ÚstyleÚno_wrapz
Team AliasÚmagenta)r*   zTeam IDÚgreenÚModelsÚyellowz
Max BudgetÚblueÚRoleÚredr   zN/Ar   r   r   )r   r   r   r   é   ú, z (+z more)z
All modelsú$Ú	UnlimitedÚMemberÚmembers_with_rolesr   )r   Úprintr   Ú
add_columnÚ	enumerateÚgetÚlenÚjoinÚ
isinstanceÚdictÚadd_rowr   )r#   ÚconsoleÚtableÚiÚteamÚrowr   r   Ú
models_strÚ
budget_strÚroles              r   Údisplay_teams_tablerJ   %   sÅ  € ä“Y€GáØ�‰Ð5Ô6ØäÐ0Ô1€EØ	×Ñ�W F°DÐÔ9Ø	×Ñ�\¨ÐÔ3Ø	×Ñ�Y gÐÔ.Ø	×Ñ�X XÐÔ.Ø	×Ñ�\¨ÐÔ0Ø	×Ñ�V 5ÐÔ)ä˜UÓ#ò c‰ˆˆ4àŸ(™( <Ó0Ò9°EØ—x‘x 	¨5Ó1Ø—h‘h˜x¨Ó,ØŸ(™( <Ó0ñ	
ˆð �X‘ˆØ˜Ñ&ˆ
ñ Ü�6‹{˜QŠØ!ŸY™Y v¨b¨q zÓ2°s¼3¸v»;È¹?Ð:KÈ6Ð5RÑR‘
à!ŸY™Y vÓ.‘
à%ˆJñ *4�q˜˜Ñ%¸ˆ
ð ˆÜ�dœDÔ!Ð&:¸dÑ&BÀtÐL`ÒGaàà�‰”c˜!˜a™%“j # lÑ"3°S¸±^ÀZÐQ[Ð]aÕbð9cð< ‡M�M�%Õr   Úctxc                 ó^  — t        | «      }t        |d   |d   «      }	 |j                  j                  «       }t	        |«       y
# t
        j                  j                  $ r�}t        j                  d|j                  j                  › �d¬«       d|j                  j                  «       i}t        j                  d|d   j                  dd	«      › �d¬«       t        j                  «       ‚d
}~wt        $ r3}t        j                  d|› �d¬«       t        j                  «       ‚d
}~ww xY w)zList teams that you belong toÚbase_urlÚapi_keyúError: HTTP T©Úerrr!   ú	Details: ÚdetailúUnknown errorNúError: )r   r   r#   ÚlistrJ   ÚrequestsÚ
exceptionsÚ	HTTPErrorÚclickÚechoÚresponseÚstatus_codeÚjsonr<   ÚAbortÚ	Exception)rK   ÚcontextÚclientr#   ÚeÚ
error_bodys         r   rV   rV   V   sò   € ô (¨Ó,€GÜ˜7 :Ñ.°¸	Ñ0BÓC€Fðà—|‘|×(Ñ(Ó*ˆÜ˜EÕ"øÜ×Ñ×(Ñ(ò Ü�
‰
�\ !§*¡*×"8Ñ"8Ð!9Ð:ÀÕEØ-3°Q·Z±Z·_±_Ó5FÐ,Gˆ
Ü�
‰
�Y˜z¨&Ñ1×5Ñ5°hÀÓPÐQÐRÐX\Õ]Ü�k‰k‹mÐûÜò Ü�
‰
�W˜Q˜C�= dÕ+Ü�k‰k‹mÐûðús$   Ÿ%A ÁD,Á"BC-Ã-D,Ã9.D'Ä'D,c                 ó¦  — t        | «      }t        |d   |d   «      }	 |j                  j                  «       }|r't	        «       }|j                  d«       t        |«       yt        j                  d«       y# t        j                  j                  $ r�}t        j                  d|j                  j                  › �d¬«       d|j                  j                  «       i}t        j                  d	|d   j                  d
d«      › �d¬«       Y d}~yd}~wt         $ r3}t        j                  d|› �d¬«       t        j"                  «       ‚d}~ww xY w)z%List teams that are available to joinrM   rN   z
Available Teams to Join:zNo available teams to join.rO   TrP   r!   rR   rS   rT   NrU   )r   r   r#   Úget_availabler   r9   rJ   rZ   r[   rW   rX   rY   r\   r]   r^   r<   r`   r_   )rK   ra   rb   r#   rB   rc   rd   s          r   Ú	availablerg   k   s  € ô (¨Ó,€GÜ˜7 :Ñ.°¸	Ñ0BÓC€FðØ—|‘|×1Ñ1Ó3ˆÙÜ$›YˆGØ�M‰MÐ6Ô7Ü Õ&ä�J‰JÐ4Õ5øÜ×Ñ×(Ñ(ò ^Ü�
‰
�\ !§*¡*×"8Ñ"8Ð!9Ð:ÀÕEØ-3°Q·Z±Z·_±_Ó5FÐ,Gˆ
Ü�
‰
�Y˜z¨&Ñ1×5Ñ5°hÀÓPÐQÐRÐX\×]Ò]ûÜò Ü�
‰
�W˜Q˜C�= dÕ+Ü�k‰k‹mÐûðús+   ŸAA8 Á"A8 Á8EÂA7DÄEÄ.EÅEz	--team-idzTeam ID to assign the key to)ÚtypeÚhelpr   c                 ó  — t        | «      }t        |d   |d   «      }|d   }|s)t        j                  d«       t        j                  «       ‚	 |sj|j
                  j                  «       }|st        j                  d«       yddlm}  ||«      }|r|j                  d«      }nt        j                  d	«       y|rÞt        j                  d
|› �«       |j                  j                  ||¬«       t        j                  d|› �«       |j
                  j                  «       }|D ]q  }|j                  d«      |k(  sŒd|j                  dg «      i}	|	d   r+t        j                  ddj                  |	d   «      › �«       nt        j                  d«        y yy# t        j                  j                  $ r�}
t        j                  d|
j                   j"                  › �d¬«       d|
j                   j%                  «       i}t        j                  d|d   j                  dd«      › �d¬«       t        j                  «       ‚d}
~
wt&        $ r3}
t        j                  d|
› �d¬«       t        j                  «       ‚d}
~
ww xY w)z%Assign your current CLI key to a teamrM   rN   z:No API key found. Please login first using 'litellm login'r&   Nr   )Úprompt_team_selectionr   zOperation cancelled.z
Assigning your key to team: )Úkeyr   z#Successfully assigned key to team: r   zYou can now access models: r4   z'You can now access all available modelsrO   TrP   r!   rR   rS   rT   rU   )r   r   rZ   r[   r_   r#   rV   Úauthrk   r<   ÚkeysÚupdater>   rW   rX   rY   r\   r]   r^   r`   )rK   r   ra   rb   rN   r#   rk   Úselected_teamrE   Úteam_modelsrc   rd   s               r   Ú
assign_keyrr   ƒ   s)  € ô
 (¨Ó,€GÜ˜7 :Ñ.°¸	Ñ0BÓC€FØ˜YÑ'€GáÜ�
‰
ÐOÔPÜ�k‰k‹mÐð,áØ—L‘L×%Ñ%Ó'ˆEáÜ—
‘
Ð:Ô;Øõ 4á#8¸Ó#?ˆMáØ'×+Ñ+¨IÓ6‘ä—
‘
Ð1Ô2Øñ Ü�J‰JÐ7¸°yÐAÔBØ�K‰K×Ñ 7°GÐÔ<Ü�J‰JÐ<¸W¸IÐFÔGð —L‘L×%Ñ%Ó'ˆEØò �Ø—8‘8˜IÓ&¨'Ó1Ø4<¸d¿h¹hÀxÐQSÓ>TÐ3U�KØ" 8Ò,ÜŸ
™
Ð%@ÀÇÁÈ;ÐW_ÑK`ÓAaÐ@bÐ#cÕdäŸ
™
Ð#LÔMÙñð øô  ×Ñ×(Ñ(ò Ü�
‰
�\ !§*¡*×"8Ñ"8Ð!9Ð:ÀÕEØ-3°Q·Z±Z·_±_Ó5FÐ,Gˆ
Ü�
‰
�Y˜z¨&Ñ1×5Ñ5°hÀÓPÐQÐRÐX\Õ]Ü�k‰k‹mÐûÜò Ü�
‰
�W˜Q˜C�= dÕ+Ü�k‰k‹mÐûðús?   Á3F Â7F Â;BF Ä>AF ÆF ÆJÆ9BIÉJÉ.I>É>J)#Ú__doc__Úcollections.abcr   r   Útypingr   r   rZ   rW   Úrich.consoler   Ú
rich.tabler   Útyping_extensionsr	   r
   Úlitellm.proxy.clientr   Ú_cli_contextr   r   r   r    Úgroupr#   rV   r@   r   rJ   ÚcommandÚpass_contextÚContextrg   Úoptionrr   r   r   r   ú<module>r€      sA  ðÙ /ç -ß ã Û Ý  Ý ß 1å 'å ,ô!ˆyô !ô$�iô $ô)�Yô )ð €‡�ƒñ,ó ð,ð.˜t D¨¨c¨¡NÑ3ð .¸ó .ðb ‡�ƒØ×Ñðˆe�m‰mò ó ó ðð& ‡�ƒØ×Ñð�5—=‘=ò ó ó ðð, ‡�ƒØ€‡�ˆk Ð*HÔIØ×Ñð6�E—M‘Mð 6¨C°$©Jò 6ó ó Jó ñ6r   