Ë
    ãß²j	  ã                  óð  — U d Z ddlmZ ddlmZ ddlmZmZmZ  G d„ de	e«      Z
 G d„ de	e«      Z G d	„ d
e	e«      ZdZded<    ee
j                   e
j"                  h«      Ze
ecZZdej*                  fej,                  ej.                  ej0                  ej.                  ej"                  ej2                  idej,                  fej                   ej.                  ej0                  ej.                  ej4                  ej6                  ej"                  ej2                  idej0                  fej,                  ej2                  ej"                  ej2                  idej4                  fej,                  ej2                  ej"                  ej2                  idej*                  fej,                  ej.                  ej0                  ej.                  ej"                  ej2                  idej,                  fej                   ej.                  ej0                  ej.                  ej"                  ej2                  idej0                  fej,                  ej2                  ej"                  ej2                  iiZded<   dd„Zy)a  Connection contract: the states a target moves through, who may cause each move, and the
reasons an operation settles. ``operation.py`` enforces it; the desktop reads a generated copy.

A `str` enum so payloads serialise to the bare value and the TypeScript side sees literal unions.é    )Úannotations)ÚEnum)ÚDictÚOptionalÚTuplec                  ó(   — e Zd ZdZdZdZdZdZdZdZ	y)	ÚTargetStateÚpendingÚ	initiatedÚ	connectedÚskippedÚfailedÚexpiredÚnot_connectedN)
Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r   r   r   © ó    ú>/home/ubuntu/.hermes/hermes-agent/tools/connectors/contract.pyr	   r	      s%   „ Ø€GØ€IØ€IØ€GØ€FØ€Gà#�Mr   r	   c                  ó   — e Zd ZdZdZdZy)ÚActorÚuserÚbackend_watcherÚclockN)r   r   r   r   r   r   r   r   r   r   r      s   „ Ø€DØ'€OØ�Er   r   c                  ó   — e Zd ZdZdZdZdZy)ÚSettleReasonÚall_resolvedÚcontinueÚdeadlineÚ	interruptN)r   r   r   r   Ú	continue_r    r!   r   r   r   r   r      s   „ Ø!€LØ€IØ€HØ�Ir   r   )Ú	connectorÚmcpzTuple[str, ...]ÚKINDSr#   r$   z7Dict[Tuple[str, TargetState], Dict[TargetState, Actor]]ÚTRANSITIONSc                óP   — t         j                  | |fi «      j                  |«      S )N)r&   Úget)ÚkindÚcurrentÚtos      r   Úallowedr,   :   s"   € Ü�?‰?˜D '˜?¨BÓ/×3Ñ3°BÓ7Ð7r   N)r)   Ústrr*   r	   r+   r	   ÚreturnzOptional[Actor])Ú__doc__Ú
__future__r   Úenumr   Útypingr   r   r   r-   r	   r   r   r%   Ú__annotations__Ú	frozensetr   r   ÚRESOLVED_STATESÚ_SÚ_Ar
   r   r   r   r   r   r   r&   r,   r   r   r   ú<module>r8      s	  ðòeõ
 #å ß (Ñ (ô$�#�tô $ôˆC�ô ô�3˜ô ð .€€Ó -á˜[×2Ñ2°K×4GÑ4GÐHÓI€à	�e€€€Bð �"—*‘*Ð §¡¨b×.@Ñ.@À"Ç)Á)ÈR×M_ÑM_Ðac×akÑakÐmo×mtÑmtÐuØ�"—,‘,ÐØ
�‰�b×(Ñ(¨"¯)©)°R×5GÑ5GÈÏÉÐUW×U]ÑU]Ð_a×_iÑ_iÐkm×krÑkrð"ð �"—)‘)Ð˜rŸ|™|¨R¯W©W°b·j±jÀ"Ç'Á'ÐJØ�"—*‘*Ð §¡¨b¯g©g°r·z±zÀ2Ç7Á7ÐKØ
ˆB�J‰JÐ˜"Ÿ,™,¨×(:Ñ(:¸B¿I¹IÀr×GYÑGYÐ[]×[eÑ[eÐgi×gnÑgnÐoØ
ˆB�L‰LÐ˜BŸL™L¨"×*<Ñ*<¸b¿i¹iÈ×I[ÑI[Ð]_×]gÑ]gÐik×ipÑipÐqØ
ˆB�I‰IÐ˜Ÿ™ r§w¡w°·
±
¸B¿G¹GÐDð
H€ÐDó 
ô8r   