
    Yj                        d Z ddlmZ ddlmZmZ erddlmZmZ edd	            Z	edd            Z	edd            Z	ddZ	dS )z2ID resolution utilities for the Honcho Python SDK.    )annotations)TYPE_CHECKINGoverload   )PeerBaseSessionBaseobjNonereturnc                    d S N r	   s    [/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/honcho/utils/resolve.py
resolve_idr      s    #&3    strc                    d S r   r   r   s    r   r   r      s    !$r   'PeerBase | SessionBase'c                    d S r   r   r   s    r   r   r      s    69cr   %'str | PeerBase | SessionBase | None'
str | Nonec                F    | dS t          | t                    r| S | j        S )an  
    Resolve an ID from a string, PeerBase, SessionBase, or None.

    This utility function extracts the ID from an object that may be:
    - A string (returned as-is)
    - An object with an `id` attribute (the id is extracted)
    - None (returns None)

    Args:
        obj: A string ID, an object with an `id` attribute (like Peer or Session), or None

    Returns:
        The resolved string ID, or None if input is None

    Example:
        >>> resolve_id("user-123")
        'user-123'
        >>> resolve_id(peer)  # where peer.id == "user-123"
        'user-123'
        >>> resolve_id(None)
        None
    N)
isinstancer   idr   s    r   r   r      s,    . {t#s 
6Mr   N)r	   r
   r   r
   )r	   r   r   r   )r	   r   r   r   )r	   r   r   r   )
__doc__
__future__r   typingr   r   baser   r   r   r   r   r   <module>r       s    8 8 " " " " " " * * * * * * * * -,,,,,,,, 
 & & & 
 & 
 $ $ $ 
 $ 
 9 9 9 
 9     r   