§
    #xÅjÉ  ã            	       óH  — U 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m	Z	 ed         Z
ed         Zed         Z eh d£¦  «        Zee         ed	<    ej        d
¦  «        Z ed¬¦  «         G d„ d¦  «        ¦   «         Z	 dddœdeeeef                  de
dee         fd„ZdS )é    N)ÚMapping)Ú	dataclass)ÚLiteralÚOptionalÚcast©ÚhighÚmediumÚlow)ÚenvironmentÚpathz
user-agent)ÚampÚantigravityúaugment-cliúclaude-codeÚcodexúcopilot-cliÚcoworkÚcursorú
cursor-cliú
gemini-cliÚgooseÚgrokúgrok-botÚkiroÚopencodeÚpiÚreplit>   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ÚKNOWN_AGENTSz$(?:^|[\\/])\.pi[\\/]agent(?:[\\/]|$)T)Úfrozenc                   ó<   — e Zd ZU dZeed<   eed<   eed<   eed<   dS )ÚDetectionResultzKEvidence that an AI coding agent is driving the current process or request.ÚagentÚ
confidenceÚsourceÚsignalN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	AgentNameÚ__annotations__ÚAgentConfidenceÚDetectionSourceÚstr© ó    úIC:\Projects\Historical\venv\Lib\site-packages\agent_detector/_detector.pyr"   r"   6   sC   € € € € € € àUÐUàÐÐÑØÐÐÑØÐÐÑØ€K€K�K€K€Kr1   r"   r   )Úminimum_confidenceÚenvironr3   Úreturnc          	      ó   ‡‡— | €t           j        n| }|dvrt          d¦  «        ‚dŠ‰                     |¦  «        Šg }|                     dd¦  «        }|t
          v r8|                     t          t          t          |¦  «        ddd¦  «        ¦  «         |                     d¦  «        d	k    r%|                     t          d	ddd¦  «        ¦  «         |                     d
¦  «        r%|                     t          d	ddd
¦  «        ¦  «         dD ]<}|                     |¦  «        r%|                     t          ddd|¦  «        ¦  «         Œ=|                     d¦  «        r%|                     t          dddd¦  «        ¦  «         |                     d¦  «        r%|                     t          dddd¦  «        ¦  «         |                     d¦  «        r%|                     t          dddd¦  «        ¦  «         |                     d¦  «        r%|                     t          dddd¦  «        ¦  «         |                     d¦  «        r%|                     t          dddd¦  «        ¦  «         |                     d¦  «        r%|                     t          dddd¦  «        ¦  «         |                     d¦  «        r%|                     t          dddd¦  «        ¦  «         dD ]<}|                     |¦  «        r%|                     t          ddd|¦  «        ¦  «         Œ=|                     d¦  «        r%|                     t          dddd¦  «        ¦  «         |                     d¦  «        r%|                     t          dddd¦  «        ¦  «         |                     d ¦  «        rO|                     d!¦  «        r:|                     d"¦  «        r%|                     t          d#ddd!¦  «        ¦  «         |                     d$¦  «        r%|                     t          d%ddd$¦  «        ¦  «         |                     d ¦  «        r%|                     t          d&ddd ¦  «        ¦  «         |                     d'¦  «        d(k    r%|                     t          d&ddd'¦  «        ¦  «         |                     d)¦  «        d*k    r%|                     t          d*d+dd)¦  «        ¦  «         |                     d,d¦  «        }t                               |¦  «        r%|                     t          d-dd.d,¦  «        ¦  «         |                     d/¦  «        r%|                     t          d0d+dd/¦  «        ¦  «         |                     d1¦  «        r%|                     t          d2d+dd1¦  «        ¦  «         t          ˆˆfd3„|D ¦   «         d¦  «        S )4a  Detect the AI coding agent driving the current process, if any.

    Detection is best-effort. A ``None`` result means "unattributed", not "human".

    Values from the environment are inspected locally but are never included in
    the returned result.
    Nr   z5minimum_confidence must be 'high', 'medium', or 'low'ÚAI_AGENTÚ r	   r   ÚAGENTr   ÚAMP_CURRENT_THREAD_IDr
   )ÚCODEX_THREAD_IDÚCODEX_CIÚCODEX_SANDBOXr   Ú
GEMINI_CLIr   ÚCOPILOT_CLIr   ÚOPENCODEr   ÚANTIGRAVITY_AGENTr   ÚAUGMENT_AGENTr   ÚCLAUDE_CODE_IS_COWORKr   ÚCLAUDE_CODE_CHILD_SESSIONr   )Ú
CLAUDECODEÚCLAUDE_CODEÚGROK_SESSION_IDr   Ú
GROK_AGENTÚCURSOR_AGENTÚSAND_BOX_BOOT_IDÚSAND_BOX_STORE_IDr   ÚCURSOR_TRACE_IDr   r   ÚCURSOR_EXTENSION_HOST_ROLEz
agent-execÚTERM_PROGRAMr   r   ÚPATHr   r   ÚREPL_IDr   ÚGOOSE_PROVIDERr   c              3   óX   •K  — | ]$}‰                      |j        ¦  «        ‰k    ¯ |V — Œ%d S ©N)Úindexr$   )Ú.0Ú	candidateÚconfidence_orderÚminimum_confidence_indexs     €€r2   ú	<genexpr>zdetect_agent.<locals>.<genexpr>»   sL   øè è € ð 	
ð 	
àØ×%Ò% iÔ&:Ñ;Ô;Ð?WÒWÐWð àWÐWÐWÐWð	
ð 	
r1   )Úosr4   Ú
ValueErrorrT   Úgetr   Úappendr"   r   r+   Ú_PI_AGENT_PATHÚsearchÚnext)	r4   r3   ÚvaluesÚ
candidatesÚexplicit_agentr&   r   rW   rX   s	          @@r2   Údetect_agentrd   @   s  øø€ ð #˜?�RŒZˆZ°€FàÐ!:Ð:Ð:ÝÐPÑQÔQÐQà4MÐØ/×5Ò5Ð6HÑIÔIÐØ(*€Jð —Z’Z 
¨BÑ/Ô/€NØ�Ð%Ð%Ø×ÒÝ�D¥¨NÑ;Ô;¸VÀ]ÐT^Ñ_Ô_ñ	
ô 	
ð 	
ð
 ‡z‚z�'ÑÔ˜eÒ#Ð#Ø×Ò�/¨%°¸ÈÑPÔPÑQÔQÐQØ‡z‚zÐ)Ñ*Ô*ð dØ×Ò�/¨%°¸=ÐJaÑbÔbÑcÔcÐcð Cð Wð WˆØ�:Š:�fÑÔð 	WØ×Ò�o¨g°v¸}ÈfÑUÔUÑVÔVÐVøð ‡z‚z�,ÑÔð ^Ø×Ò�/¨,¸ÀÈ|Ñ\Ô\Ñ]Ô]Ð]ð ‡z‚z�-Ñ Ô ð bØ×Ò�/¨-¸À=ÐR_Ñ`Ô`ÑaÔaÐað ‡z‚z�*ÑÔð ZØ×Ò�/¨*°f¸mÈZÑXÔXÑYÔYÐYà‡z‚zÐ%Ñ&Ô&ð 
Ø×ÒÝ˜M¨8°]ÐDWÑXÔXñ	
ô 	
ð 	
ð ‡z‚z�/Ñ"Ô"ð dØ×Ò�/¨-¸À=ÐRaÑbÔbÑcÔcÐcð ‡z‚zÐ)Ñ*Ô*ð eØ×Ò�/¨(°F¸MÐKbÑcÔcÑdÔdÐdð ‡z‚zÐ-Ñ.Ô.ð 
Ø×ÒÝ˜M¨6°=ÐB]Ñ^Ô^ñ	
ô 	
ð 	
ð 0ð _ð _ˆØ�:Š:�fÑÔð 	_Ø×Ò�o¨m¸XÀ}ÐV\Ñ]Ô]Ñ^Ô^Ð^øð ‡z‚zÐ#Ñ$Ô$ð ]Ø×Ò�/¨&°&¸-ÐIZÑ[Ô[Ñ\Ô\Ð\ð ‡z‚z�,ÑÔð ZØ×Ò�/¨&°(¸MÈ<ÑXÔXÑYÔYÐYð
 	�
Š
�>Ñ"Ô"ðbà�JŠJÐ)Ñ*Ô*ðbð �JŠJÐ*Ñ+Ô+ðbð
 	×Ò�/¨*°f¸mÐM_Ñ`Ô`ÑaÔaÐað ‡z‚zÐ#Ñ$Ô$ð aØ×Ò�/¨(°H¸mÐM^Ñ_Ô_Ñ`Ô`Ð`à‡z‚z�.Ñ!Ô!ð `Ø×Ò�/¨,¸ÀÈ~Ñ^Ô^Ñ_Ô_Ð_à‡z‚zÐ.Ñ/Ô/°<Ò?Ð?Ø×ÒÝ˜L¨(°MÐC_Ñ`Ô`ñ	
ô 	
ð 	
ð ‡z‚z�.Ñ!Ô! VÒ+Ð+Ø×Ò�/¨&°%¸ÈÑWÔWÑXÔXÐXà�:Š:�f˜bÑ!Ô!€DÝ×Ò˜TÑ"Ô"ð KØ×Ò�/¨$°¸&À&ÑIÔIÑJÔJÐJà‡z‚z�)ÑÔð VØ×Ò�/¨(°E¸=È)ÑTÔTÑUÔUÐUà‡z‚zÐ"Ñ#Ô#ð \Ø×Ò�/¨'°5¸-ÐIYÑZÔZÑ[Ô[Ð[åð	
ð 	
ð 	
ð 	
ð 	
à'ð	
ñ 	
ô 	
ð
 	ñô ð r1   rS   )rZ   ÚreÚcollections.abcr   Údataclassesr   Útypingr   r   r   r-   r.   r+   Ú	frozensetr   r,   Úcompiler^   r"   r/   rd   r0   r1   r2   ú<module>rk      s€  ðØ 	€	€	€	€	Ø 	€	€	€	Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *àÐ1Ô2€ØÐ=Ô>€Øðô€	ð( &/ Yðð ð ñ&ô &€ˆi˜	Ô"ð ð ñ ð, �”ÐCÑDÔD€ð €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð ,0ðAð +0ðAð Að AØ�g˜c 3˜hÔ'Ô(ðAð (ðAð ˆoÔð	Að Að Að Að Að Ar1   