ó
    Ú°›j  ã                   óà   • S r SSKrSS/4SS/4SS/4S	S
/4SSS/4S/ SQ4SS/4SS/4S/ SQ4SS/4SS/4SS/4SS/4SS/4S S!/4S"S#/4S$S%/4S&S'/4S(S)/4S*S+/4S,S-/4/rS./rS/ rS0 rS1 rS2 rg)3a�  Detects which AI coding agent (if any) is driving the SDK.

Detection is based on the environment variables that agent harnesses set in
the processes they spawn. The registry mirrors Hugging Face's public
agent-harnesses list so that traffic is attributed under the same agent
identifiers across tools:
https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/src/agent-harnesses.ts
é    NÚantigravityÚANTIGRAVITY_AGENTzaugment-cliÚAUGMENT_AGENTÚclineÚCLINE_ACTIVEÚcoworkÚCLAUDE_CODE_IS_COWORKzclaude-codeÚ
CLAUDECODEÚCLAUDE_CODEÚcodex)ÚCODEX_SANDBOXÚCODEX_CIÚCODEX_THREAD_IDÚcrushÚCRUSHz
gemini-cliÚ
GEMINI_CLIzgithub-copilot)ÚCOPILOT_MODELÚCOPILOT_ALLOW_ALLÚCOPILOT_GITHUB_TOKENÚgooseÚGOOSE_TERMINALzhermes-agentÚHERMES_SESSION_IDz	kilo-codeÚKILOCODE_FEATUREÚkiroÚAGENT_CONTEXT_OUTÚopenclawÚOPENCLAW_SHELLÚopencodeÚOPENCODE_CLIENTÚpiÚPI_CODING_AGENTÚreplitÚREPL_IDÚtraeÚTRAE_AI_SHELL_IDÚzedÚZED_TERMz
cursor-cliÚCURSOR_AGENTÚcursorÚCURSOR_TRACE_IDÚAI_AGENTc                  ój   • / n [          H  u  pU R                  U5        M     U [        [        5      -   $ )z°Returns every environment variable the registry inspects, including the
standard AI_AGENT signal. Useful for tests that need to isolate detection
from the ambient environment.
)Ú	HARNESSESÚextendÚlistÚSTANDARD_ENV_VARS)Ú	variablesÚ_Úenv_varss      ÚI/home/mande/repo/quber/.venv/lib/python3.13/site-packages/runpod/agent.pyÚknown_env_varsr5   0   s4   € ð
 €Iß ‰ˆØ×Ñ˜Ö"ñ !à”tÔ-Ó.Ñ.Ð.ó    c                 ó  • U R                  5       n / nU  HY  n[        U5      S:¼  a    OIUR                  5       (       d  M+  UR                  5       (       d  US;   d  MH  UR	                  U5        M[     SR                  U5      $ )zŽKeeps only User-Agent-safe characters ([A-Za-z0-9._-]), capped at 64
characters, so an arbitrary env value cannot produce a malformed header.
é@   z._-Ú )ÚstripÚlenÚisasciiÚisalnumÚappendÚjoin)ÚvalueÚsafeÚchars      r4   Ú	_sanitizerC   ;   sc   € ð �K‰K‹M€EØ€DÛˆÜˆt‹9˜‹?ÙØ�<‰<�>‹>˜tŸ|™|Ÿ~™~°¸µØ�K‰K˜Öñ	 ð
 �7‰7�4‹=Ðr6   c                  ó  • [          H>  u  pU H3  n[        R                  " US5      R                  5       (       d  M/  U s  s  $    M@     [         H.  n[        [        R                  " US5      5      nU(       d  M,  Us  $    g)z°Returns the identifier of the AI coding agent driving the SDK, or an
empty string if none is detected. Specific harness markers take priority
over the generic AI_AGENT signal.
r9   )r-   ÚosÚgetenvr:   r0   rC   )Úagent_idr3   Úenvr@   s       r4   ÚdetectrI   I   sj   € ÷
 (ÑˆÛˆCÜ�yŠy˜˜bÓ!×'Ñ'×)Ó)Ø”ó ñ (÷
 !ˆÜœ"Ÿ)š) C¨Ó,Ó-ˆßˆ5ØŠLñ !ð
 r6   c                  ó2   • [        5       n U (       a  SU  S3$ g)zÐReturns the " (via <id>)" User-Agent fragment for the detected agent, or
an empty string when none is detected. Centralizing the fragment here keeps
the tag format identical across every client's User-Agent.
z (via Ú)r9   )rI   )rG   s    r4   ÚsuffixrL   [   s    € ô
 ‹x€HÞØ˜�z Ð#Ð#Ør6   )Ú__doc__rE   r-   r0   r5   rC   rI   rL   © r6   r4   Ú<module>rO      s"  ðñó 
ð Ð(Ð)Ð*Ø�_Ð%Ð&Øˆ~ÐÐØÐ'Ð(Ð)Ø�\ =Ð1Ð2ØÒ>Ð?ØˆwˆiÐØ�L�>Ð"ØÒUÐVØÐÐ Ð!ØÐ)Ð*Ð+ØÐ%Ð&Ð'ØÐ!Ð"Ð#ØÐ"Ð#Ð$ØÐ#Ð$Ð%Ø	ÐÐÐØ�	ˆ{ÐØÐ Ð!Ð"Ø
ˆZˆLÐØ�NÐ#Ð$ØÐ!Ð"Ð#ð+€	ð8  �LÐ ò/òòó$r6   