+
    iHàjf  ã                  ó¤   € R t ^ RIHt ^ RIHtHtHtHt RtRt	Rt
RtRt]R]	R	]
R
]R/tRt]! R]R]3,          R7      tR R ltR R ltR R ltR# )aú  Name a callable API key's credential source without calling it.

A callable ``api_key`` mints a bearer on first use (Entra ID, Vertex OAuth, a custom provider's
``key_cmd``, MiniMax OAuth). Display paths (``/config``, the agent's key banner) must say which
kind it is, but calling it would mint a token just to mask it. Each builder tags the callable it
returns with a source; display reads the tag through one source-to-label table. An untagged
callable gets a neutral label, never another vendor's name.
)Úannotations)ÚAnyÚCallableÚOptionalÚTypeVarzentra-idzvertex-oauthzkey-cmdzminimax-oauthÚhermes_credential_sourcezcli.config.microsoft_entra_idzcli.config.google_vertex_oauthzcli.config.key_cmd_tokenzcli.config.minimax_oauthzcli.config.token_providerÚ_F.)Úboundc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úproviderr   ÚsourceÚstrÚreturn© )Úformats   "Ú</home/ubuntu/.hermes/hermes-agent/agent/credential_source.pyÚ__annotate__r   "   s!   € ÷ ñ  Bð °ð ¸ñ ó    c                óZ   €  \        V \        V4       V #   \        \        3 d     T # i ; i)zYRecord *source* on *provider* and return it (a no-op for objects that refuse attributes).)ÚsetattrÚSOURCE_ATTRÚAttributeErrorÚ	TypeError)r   r   s   &&r   Útag_credential_sourcer   "   s8   € ðÜ�œ+ vÔ.ð €Oøô œIÐ&ô ØØ€Oðús   ‚ •*©*c               ó    € V ^8„  d   QhRRRR/# ©r   Úkeyr   r   zOptional[str]r   )r   s   "r   r   r   +   s   € ÷ 7ñ 7˜3ð 7 =ñ 7r   c                óª   € \        V \        4      '       g   \        V 4      '       g   R# \        V \        R4      p\        V\        4      '       d   V# R# )zOThe source tag of a callable key, or None (string keys and untagged callables).N)Ú
isinstancer   ÚcallableÚgetattrr   )r   r   s   & r   Úcredential_sourcer"   +   s?   € ä�#”s×Ò¤8¨C§=¢=ÙÜ�Sœ+ tÓ,€FÜ ¬×,Ò,ˆ6Ð6°$Ð6r   c               ó    € V ^8„  d   QhRRRR/# r   r   )r   s   "r   r   r   3   s   € ÷ Uñ U˜#ð U -ñ Ur   c                óÆ   € \        V \        4      '       g   \        V 4      '       g   R# ^ RIHp T! \
        P                  \        V 4      ;'       g    R\        4      4      # )z^Translated label for a callable key's source (neutral when untagged); None for a non-callable.N)ÚtÚ )	r   r   r    Ú
agent.i18nr%   ÚSOURCE_LABEL_KEYSÚgetr"   ÚUNKNOWN_LABEL_KEY)r   r%   s   & r   Úcredential_labelr+   3   sE   € ä�#”s×Ò¤8¨C§=¢=ÙÝáÔ×"Ñ"Ô#4°SÓ#9×#?Ð#?¸RÔARÓSÓTÐTr   N)Ú__doc__Ú
__future__r   Útypingr   r   r   r   ÚENTRA_IDÚVERTEX_OAUTHÚKEY_CMDÚMINIMAX_OAUTHr   r(   r*   r   r   r"   r+   r   r   r   Ú<module>r3      s   ðñõ #ç 3Ó 3à€Ø€Ø
€Ø€ð )€ð Ð-ØÐ2ØÐ'ØÐ-ð	Ð ð 0Ð áˆT˜ # s (Õ+Ô,€õõ7÷Ur   