
    Jbi                       d Z ddlmZ ddlZ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mZ ddlmZmZmZ dd	lmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  dd
l!m"Z"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8m9Z9 e
rddl:m;Z; ddl$m<Z< ddl$m=Z= ddl>m?Z? ddl@mAZA  ejB        eC          ZDg dZE G d de+          ZF G d de+          ZG G d de+          ZH G d d           ZIdS )!a  Async view classes for Honcho SDK.

This module provides async accessor classes that wrap the main SDK classes
and provide async versions of all operations. Access via the `.aio` property
on Honcho, Peer, Session, and ConclusionScope instances.

Example:
    ```python
    from honcho import Honcho

    honcho = Honcho(workspace_id="my-workspace")

    # Async operations
    peer = await honcho.aio.peer("user-123")
    await peer.aio.chat("query")
    async for p in honcho.aio.peers():
        print(p.id)
    ```
    )annotationsN)AsyncGenerator)datetime)TYPE_CHECKINGAnyClassVarLiteral)
ConfigDictFieldvalidate_call   )ConclusionResponseMessageCreateParamsMessageResponsePeerCardResponse
PeerConfigPeerContextResponsePeerResponseQueueStatusResponseRepresentationResponseSessionConfigurationSessionPeerConfigSessionResponseWorkspaceConfigurationWorkspaceResponse)PeerBaseSessionBase)
Conclusion)routes)Message)AsyncMetadataConfigMixin)	AsyncPage)SessionContextSessionSummariesSummary)AsyncDialecticStreamResponse)datetime_to_isonormalize_peers_to_dictparse_sse_astreamprepare_file_for_upload
resolve_id)Honcho)ConclusionScope)ConclusionCreateParams)Peer)Session)	HonchoAioPeerAio
SessionAioConclusionScopeAioc            	         e Zd ZU dZdZded<   ded<   dTd
Zd ZdUdZdUdZ	dVdZ
dWdZdXdZdYdZdZdZdZdZd[dZd\dZdddd]d$Z	 d^d%d&d'd(d_d0Zdddd`d3Z	 d^d%d&d'd(dad5Z	 d^dbd7Zdcd9Ze ed:d%d;<           edd=>           ed?d%d@dAB          fdddF            Z	 	 	 dedfdMZ e edNO          P          	 	 dgdhdS            ZdS )ir1   z
    Async view of the Honcho client.

    Access via `honcho.aio`. Provides async versions of all Honcho methods.
    Shares state with the parent Honcho instance.
    _honchoClassVar[tuple[str, ...]]	__slots__'Honcho'r7   honchoreturnNonec                    || _         d S Nr6   )selfr;   s     D/DATA/AppData/hermes/venv/lib/python3.11/site-packages/honcho/aio.py__init__zHonchoAio.__init__^   s        c                    | j         j        S r?   )r7   _async_http_clientr@   s    rA   _get_async_http_clientz HonchoAio._get_async_http_clientb   s    |..rC   strc                (    t          j                    S r?   )r   
workspacesrF   s    rA   _get_fetch_routezHonchoAio._get_fetch_routee   s     """rC   c                >    t          j        | j        j                  S r?   )r   	workspacer7   workspace_idrF   s    rA   _get_update_routezHonchoAio._get_update_routeh   s     9:::rC   dict[str, Any]c                    d| j         j        iS Nid)r7   rN   rF   s    rA   _get_fetch_bodyzHonchoAio._get_fetch_bodyk   s    dl/00rC   data+tuple[dict[str, object], dict[str, object]]c                r    t          j        |          }|j        pi |j                            d          fS NTexclude_none)r   model_validatemetadataconfiguration
model_dumpr@   rU   rM   s      rA   _parse_responsezHonchoAio._parse_responsen   sG     &4T::	!'R)@)K)K *L *
 *
 
 	
rC   r\   dict[str, object]c                    || j         _        d S r?   r7   	_metadatar@   r\   s     rA   _set_metadatazHonchoAio._set_metadataw   s    !)rC   r]   c                B    t          j        |          | j        _        d S r?   )r   r[   r7   _configurationr@   r]   s     rA   _set_configurationzHonchoAio._set_configurationz   s"    &<&K'
 '
###rC   c                    | j         j        pi S r?   rc   rF   s    rA   _get_metadatazHonchoAio._get_metadata   s    |%++rC   c                ^    | j         j        i S | j         j                            d          S rX   )r7   rh   r^   rF   s    rA   _get_configurationzHonchoAio._get_configuration   s.    <&.I|*5545HHHrC   r   c                4  K   |                                                      |                                 |                                            d{V }t	          j        |          }|j        pi | j        _        |j	        | j        _
        | j        j
        S )1Get configuration from the server asynchronously.bodyN)rG   postrK   rT   r   r[   r\   r7   rd   r]   rh   r_   s      rA   get_configurationzHonchoAio.get_configuration   s      002277!!##$*>*>*@*@ 8 
 
 
 
 
 
 
 
 &4T::	!*!3!9r&/&=#|**rC   c                   K   |                                                      |                                 d|                    d          i           d{V  || j        _        dS z/Set configuration on the server asynchronously.r]   TrY   rq   N)rG   putrO   r^   r7   rh   ri   s     rA   set_configurationzHonchoAio.set_configuration   s      ))++//""$$!=#;#;#;#N#NO 0 
 
 	
 	
 	
 	
 	
 	
 	
 '4###rC   N)r\   r]   rS   dict[str, object] | NonePeerConfig | Noner/   c                 K   | j                                          d{V  d|i}|||d<   ||                    d          |d<   | j         j                            t          j        | j         j                  |           d{V }t          j	        |          }t          || j         |j        |j        |j                  S )	a  
        Get or create a peer with the given ID asynchronously.

        Args:
            id: Unique identifier for the peer within the workspace.
            metadata: Optional metadata dictionary to associate with this peer.
            configuration: Optional configuration to set for this peer.

        Returns:
            A Peer object with cached values from the API response.
        NrS   r\   TrY   r]   rq   r\   r]   
created_at)r7   _ensure_workspace_asyncr^   rE   rs   r   peersrN   r   r[   r/   r\   r]   r}   )r@   rS   r\   r]   rr   rU   	peer_datas          rA   peerzHonchoAio.peer   s      $ l22444444444 $bz'D$$1$<$<$$<$O$OD!\499L233$ : 
 
 
 
 
 
 
 
 !/55	L'#1 +
 
 
 	
rC   r   2   Fpagesizereversefiltersr   intr   r   boolAsyncPage[PeerResponse, Peer]c               L   K    j                                          d{V  |d}rd|d<    j         j                            t	          j         j         j                  rdind|           d{V }d fdd fdt          |t                    S )aC  
        Get all peers in the current workspace asynchronously.

        Args:
            filters: Optional filter criteria.
            page: Page number (1-indexed). Default: 1.
            size: Number of items per page. Default: 50.
            reverse: If True, reverses the default ordering. Default: False.
        Nr   r   truer   r   rr   queryr   r   r<   r/   c                ^    t          | j        j        | j        | j        | j                  S )Nr|   )r/   rS   r7   r\   r]   r}   )r   r@   s    rA   	transformz"HonchoAio.peers.<locals>.transform   s4    "0?   rC   	next_pager   r   c                   K   | d}rd|d<   j         j                            t          j        j         j                  rdind |           d {V }t          |t                    S Nr   r   r   r   r   )r7   rE   rs   r   
peers_listrN   r"   r   	r   
next_query	next_data
fetch_nextr   r   r@   r   r   s	      rA   r   z#HonchoAio.peers.<locals>.fetch_next   s      2;T)J)JJ /(.
9%"l=BB!$,";<<-4>i))$  C        I
 YiLLLrC   )r   r   r<   r/   )r   r   r<   r   )	r7   r~   rE   rs   r   r   rN   r"   r   	r@   r   r   r   r   r   rU   r   r   s	   `` ``  @@rA   r   zHonchoAio.peers   s.     " l22444444444)-t < < 	&%E)\499dl788)0:)W%%d : 
 
 
 
 
 
 
 
	 	 	 	 	 			M 		M 		M 		M 		M 		M 		M 		M 		M 		M 		M |Y
CCCrC   SessionConfiguration | Noner0   c          	       K   | j                                          d{V  d|i}|||d<   ||                    d          |d<   | j         j                            t          j        | j         j                  |           d{V }t          j	        |          }t          || j         |j        t          j	        |j                                                  |j        |j                  S )	a  
        Get or create a session with the given ID asynchronously.

        Args:
            id: Unique identifier for the session within the workspace.
            metadata: Optional metadata dictionary to associate with this session.
            configuration: Optional configuration to set for this session.

        Returns:
            A Session object with cached values from the API response.
        NrS   r\   TrY   r]   rq   r\   r]   r}   	is_active)r7   r~   r^   rE   rs   r   sessionsrN   r   r[   r0   r\   r   r]   r}   r   )r@   rS   r\   r]   rr   rU   session_datas          rA   sessionzHonchoAio.session   s      $ l22444444444 $bz'D$$1$<$<$$<$O$OD!\499ODL566T : 
 
 
 
 
 
 
 
 '5d;;L!*.=*5577  $.",	
 	
 	
 		
rC   #AsyncPage[SessionResponse, Session]c               L   K    j                                          d{V  |d}rd|d<    j         j                            t	          j         j         j                  rdind|           d{V }d fdd fdt          |t                    S )aF  
        Get all sessions in the current workspace asynchronously.

        Args:
            filters: Optional filter criteria.
            page: Page number (1-indexed). Default: 1.
            size: Number of items per page. Default: 50.
            reverse: If True, reverses the default ordering. Default: False.
        Nr   r   r   r   r   r   r   r<   r0   c                j    t          | j        j        | j        | j        | j        | j                  S Nr   )r0   rS   r7   r\   r]   r}   r   r   r@   s    rA   r   z%HonchoAio.sessions.<locals>.transform3  s<    
 )%3"-!+   rC   r   r   r   c                   K   | d}rd|d<   j         j                            t          j        j         j                  rdind |           d {V }t          |t                    S r   )r7   rE   rs   r   sessions_listrN   r"   r   r   s	      rA   r   z&HonchoAio.sessions.<locals>.fetch_next=  s      2;T)J)JJ /(.
9%"l=BB$T\%>??-4>i))$  C        I
 YJOOOrC   r   r   r<   r0   r   r   r<   r   )	r7   r~   rE   rs   r   r   rN   r"   r   r   s	   `` ``  @@rA   r   zHonchoAio.sessions  s.     " l22444444444)-t < < 	&%E)\499 !:;;)0:)W%%d : 
 
 
 
 
 
 
 
	 	 	 	 	 			P 		P 		P 		P 		P 		P 		P 		P 		P 		P 		P 	:FFFrC   !AsyncPage[WorkspaceResponse, str]c                    K    j         j                            t          j                    rdind           d{V }ddd fdt          |t                    S )z%Get all workspace IDs asynchronously.r   Nrq   rM   r   r<   rH   c                    | j         S r?   )rS   )rM   s    rA   r   z'HonchoAio.workspaces.<locals>.transformS  s
    <rC   r   r   r   c                   K   j         j                            t          j                    rdind d| i           d {V }t          |t                    S )Nr   r   r   r7   rE   rs   r   workspaces_listr"   r   )r   r   r   r   r@   r   s     rA   r   z(HonchoAio.workspaces.<locals>.fetch_nextV  s      "l=BB&((-4>i))$tn C        I
 Y(99jQQQrC   )rM   r   r<   rH   )r   r   r<   r   r   )r@   r   rU   r   r   s   `` @@rA   rJ   zHonchoAio.workspacesJ  s       \499"$$)0:)W%%d : 
 
 
 
 
 
 
 

	  	  	  	 	R 	R 	R 	R 	R 	R 	R 	R 	R 0)ZHHHrC   rN   c                x   K   | j         j                            t          j        |                     d{V  dS )z"Delete a workspace asynchronously.N)r7   rE   deleter   rM   )r@   rN   s     rA   delete_workspacezHonchoAio.delete_workspace`  sB      l-44V5El5S5STTTTTTTTTTTrC   .The search query to use
min_lengthdescriptionFilters to scope the searchr   
   d   Number of results to returndefaultgeler   r   limitlist[Message]c                   K   | j                                          d{V  | j         j                            t	          j        | j         j                  |||d           d{V }d |D             S )z<Search for messages in the current workspace asynchronously.Nr   r   r   rq   c                Z    g | ](}t          j        t          j        |                    )S  r    from_api_responser   r[   .0items     rA   
<listcomp>z$HonchoAio.search.<locals>.<listcomp>u  >     
 
 
 %o&DT&J&JKK
 
 
rC   )r7   r~   rE   rs   r   workspace_searchrN   r@   r   r   r   rU   s        rA   searchzHonchoAio.searchd  s       l22444444444\499#DL$=>> WuEE : 
 
 
 
 
 
 
 

 

 
 
 	
rC   observerstr | PeerBase | Nonesenderr   str | SessionBase | Noner   c                  K   | j                                          d{V  t          |          }t          |          }t          |          }i }|r||d<   |r||d<   |r||d<   | j         j                            t          j        | j         j                  |r|nd           d{V }t          j	        |          S )z+Get queue processing status asynchronously.Nobserver_id	sender_id
session_idr   )
r7   r~   r+   rE   getr   workspace_queue_statusrN   r   r[   )	r@   r   r   r   resolved_observer_idresolved_sender_idresolved_session_idr   rU   s	            rA   queue_statuszHonchoAio.queue_statusz  s      l22444444444)(33'//(11 " 	8#7E-  	4!3E+ 	6"5E,\488)$,*CDD *%%d 9 
 
 
 
 
 
 
 
 #1$777rC   Tarbitrary_types_allowedconfigstr | PeerBaseobservedc                :  K   | j                                          d{V  t          |          }t          |          }|rt          |          n|}| j         j                            t          j        | j         j                  |||dd           d{V  dS )a  
        Schedule a dream task for memory consolidation asynchronously.

        Dreams are background processes that consolidate observations into higher-level
        insights and update peer cards. This method schedules a dream task for immediate
        processing.

        Args:
            observer: The observer peer (ID string or Peer object) whose perspective
                to use for the dream.
            session: Optional session (ID string or Session object) to scope the dream to.
            observed: Optional observed peer (ID string or Peer object). If not provided,
                defaults to the observer (self-reflection).
        Nomni)r   r   r   
dream_typerq   )r7   r~   r+   rE   rs   r   workspace_schedule_dreamrN   )r@   r   r   r   r   r   resolved_observed_ids          rA   schedule_dreamzHonchoAio.schedule_dream  s      * l22444444444)(33(11$,FJx   2F 	 l-22+DL,EFF001$	  3 
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rC   )r;   r:   r<   r=   r<   rH   r<   rP   rU   rP   r<   rV   r\   ra   r<   r=   r]   ra   r<   r=   r<   ra   )r<   r   )r]   r   r<   r=   )rS   rH   r\   ry   r]   rz   r<   r/   r?   )
r   ry   r   r   r   r   r   r   r<   r   )rS   rH   r\   ry   r]   r   r<   r0   
r   ry   r   r   r   r   r   r   r<   r   )r   ry   r<   r   )rN   rH   r<   r=   r   rH   r   ry   r   r   r<   r   )NNN)r   r   r   r   r   r   r<   r   NN)r   r   r   r   r   r   r<   r=   )__name__
__module____qualname____doc__r9   __annotations__rB   rG   rK   rO   rT   r`   rf   rj   rl   rn   rt   rx   r   r   r   r   rJ   r   r   r   r   r   r
   r   r   rC   rA   r1   r1   S   s          ,8I7777   / / /# # # #; ; ; ;1 1 1 1
 
 
 
* * * *
 
 
 
, , , ,I I I I
+ + + +4 4 4 4 .2+/#
 #
 #
 #
 #
 #
N -1/D /D /D /D /D /D /Dj .259&
 &
 &
 &
 &
 &
T -10G 0G 0G 0G 0G 0G 0Gf 37I I I I I,U U U U  U31:STTT,1E;-
 -
 -
 U12O
 
 

 
 
 
 ]
. +/(,,0	8 8 8 8 84 ]**TBBBCCC -1*.	#
 #
 #
 #
 DC#
 #
 #
rC   r1   c                     e Zd ZU dZdZded<   ded<   d`d
Zd ZdadZdadZ	dbdZ
dcdZdddZdedZdfdZdfdZdgdZdfdZdhdZdid Zdjd!Z e ed"#          $           ed%d&d'(          fd)d)d)d*dkd3            Z e ed"#          $           ed%d&d'(          fd)d)d)d*dld5            Z	 dmd&d6d7d8dndAZe ed%d&dB(           ed)dCD           edEd&dFdGH          fdodK            Z e ed"#          $          	 dmdpdM            Z	 dmdpdNZ e ed"#          $          	 dmdqdQ            Z e ed"#          $          d)d)d) ed)d&dFR           ed)dSdTR          d) ed)d&dFR          fdrd]            Z e ed"#          $          d)d) ed)d&dFR           ed)dSdTR          d) ed)d&dFR          fdsd_            Z d)S )tr2   z
    Async view of a Peer.

    Access via `peer.aio`. Provides async versions of all Peer methods.
    Shares state with the parent Peer instance.
    _peerr8   r9   'Peer'r   r   r<   r=   c                    || _         d S r?   r   r@   r   s     rA   rB   zPeerAio.__init__  s    


rC   c                $    | j         j        j        S r?   )r   r7   rE   rF   s    rA   rG   zPeerAio._get_async_http_client  s    z!44rC   rH   c                >    t          j        | j        j                  S r?   )r   r   r   rN   rF   s    rA   rK   zPeerAio._get_fetch_route  s    |DJ3444rC   c                T    t          j        | j        j        | j        j                  S r?   )r   r   r   rN   rS   rF   s    rA   rO   zPeerAio._get_update_route  s    {4:2DJMBBBrC   rP   c                    d| j         j        iS rR   )r   rS   rF   s    rA   rT   zPeerAio._get_fetch_body  s    djm$$rC   rU   rV   c                r    t          j        |          }|j        pi |j                            d          fS rX   )r   r[   r\   r]   r^   r@   rU   r   s      rA   r`   zPeerAio._parse_response  s:     *400}"D$6$A$At$A$T$TTTrC   r\   ra   c                    || j         _        d S r?   r   rd   re   s     rA   rf   zPeerAio._set_metadata  s    '
rC   r]   c                B    t          j        |          | j        _        d S r?   )r   r[   r   rh   ri   s     rA   rj   zPeerAio._set_configuration  s    $.$=m$L$L
!!!rC   c                    | j         j        pi S r?   r  rF   s    rA   rl   zPeerAio._get_metadata  s    z#)r)rC   c                ^    | j         j        i S | j         j                            d          S rX   )r   rh   r^   rF   s    rA   rn   zPeerAio._get_configuration  s.    :$,Iz(333FFFrC   r   c                p    |j         pi | j        _        |j        | j        _        |j        | j        _        d S r?   )r\   r   rd   r]   rh   r}   _created_atr   s     rA   _apply_peer_responsezPeerAio._apply_peer_response  s2    #}2
$($6
!!%
rC   c                b  K   | j         j                                         d{V  |                                                     |                                 |                                            d{V }t          j        |          }| 	                    |           | j         j
        pi S z,Get metadata from the server asynchronously.Nrq   )r   r7   r~   rG   rs   rK   rT   r   r[   r  rd   r  s      rA   get_metadatazPeerAio.get_metadata  s      j 88:::::::::002277!!##$*>*>*@*@ 8 
 
 
 
 
 
 
 
 *400!!$'''z#)r)rC   r   c                z  K   | j         j                                         d{V  |                                                     |                                 |                                            d{V }t          j        |          }| 	                    |           | j         j
        pt                      S rp   Nrq   )r   r7   r~   rG   rs   rK   rT   r   r[   r  rh   r   r  s      rA   rt   zPeerAio.get_configuration  s      j 88:::::::::002277!!##$*>*>*@*@ 8 
 
 
 
 
 
 
 
 *400!!$'''z(8JLL8rC   c                J  K   | j         j                                         d{V  |                                                     |                                 |                                            d{V }t          j        |          }| 	                    |           dS )zFRefresh cached metadata, configuration, and created_at asynchronously.Nrq   )
r   r7   r~   rG   rs   rK   rT   r   r[   r  r  s      rA   refreshzPeerAio.refresh  s      j 88:::::::::002277!!##$*>*>*@*@ 8 
 
 
 
 
 
 
 
 *400!!$'''''rC   c                   K   |                                                      |                                 d|                    d          i           d{V  || j        _        dS rv   )rG   rw   rO   r^   r   rh   ri   s     rA   rx   zPeerAio.set_configuration  s      ))++//""$$!=#;#;#;#N#NO 0 
 
 	
 	
 	
 	
 	
 	
 	
 %2
!!!rC   Tr   r   .r   zThe natural language queryr   N)targetr   reasoning_levelr   r  r   r   r   r  9Literal['minimal', 'low', 'medium', 'high', 'max'] | None
str | Nonec                 K   | j         j                                         d{V  t          |          }t          |          }|dd}|r||d<   |r||d<   |r||d<   | j         j        j                            t          j        | j         j        | j         j	                  |           d{V }|
                    d          }	|	sdS |	S )	z/Query the peer's representation asynchronously.NFr   streamr  r   r  rq   content)r   r7   r~   r+   rE   rs   r   	peer_chatrN   rS   r   )
r@   r   r  r   r  	target_idr   rr   rU   r  s
             rA   chatzPeerAio.chat  s      j 88:::::::::v&&	(11).%@@ 	'&DN 	5!4D 	6&5D"#Z':??TZ4djmDD @ 
 
 
 
 
 
 
 
 ((9%% 	4rC   r&   c                   K    j         j                                         d{V  t          |          }t          |          }|dd|r|d<   |r|d<   |r|d<   d
 fd	}t	           |                      S )z>Query the peer's representation with streaming asynchronously.NTr  r  r   r  r<   AsyncGenerator[str, None]c            	       K   t          j        j        j                            dt          j        j        j        j        j                                      2 3 d {V } | W V  6 d S )NPOSTrq   )	r)   r   r7   rE   r  r   r  rN   rS   )r  rr   r@   s    rA   stream_responsez,PeerAio.chat_stream.<locals>.stream_responseM  s      !2
"5<<$TZ%<djmLL =  " "       g " " "s   A,)r<   r"  )r   r7   r~   r+   r&   )	r@   r   r  r   r  r  r   r%  rr   s	   `       @rA   chat_streamzPeerAio.chat_stream6  s       j 88:::::::::v&&	(11).$?? 	'&DN 	5!4D 	6&5D"#	 	 	 	 	 	 	 ,OO,=,=>>>rC   r   Fr   r   ry   r   r   r   r   r   r   c               v   K    j         j                                         d{V  |d}rd|d<    j         j        j                            t          j         j         j         j         j                  rdind|           d{V }d fdd fdt          |t                    S )z9Get all sessions this peer is a member of asynchronously.Nr   r   r   r   r   r   r   r<   r0   c           	         t          | j        j        j        | j        t          j        | j                                                  | j	        | j
                  S r   )r0   rS   r   r7   r\   r   r[   r]   r^   r}   r   r   s    rA   r   z#PeerAio.sessions.<locals>.transforml  s]    

" )2A)4466  #-!+	 	 	 	rC   r   r   r   c                  K   | d}rd|d<   j         j        j                            t	          j        j         j        j         j                  rdind |           d {V }t          |t                    S r   )
r   r7   rE   rs   r   peer_sessions_listrN   rS   r"   r   r   s	      rA   r   z$PeerAio.sessions.<locals>.fetch_nextx  s      2;T)J)JJ /(.
9%"j0CHH)$**A4:=QQ-4>i))$  I        I
 YJOOOrC   r   r   )r   r7   r~   rE   rs   r   r*  rN   rS   r"   r   r   s	   `` ``  @@rA   r   zPeerAio.sessionsY  s;      j 88:::::::::)-t < < 	&%E)Z':??%dj&=tz}MM)0:)W%%d @ 
 
 
 
 
 
 
 

	 
	 
	 
	 
	 
			P 		P 		P 		P 		P 		P 		P 		P 		P 		P 		P 	:FFFrC   r   r   r   r   r   r   r   r   r   c                  K   | j         j                                         d{V  | j         j        j                            t          j        | j         j        | j         j                  |||d           d{V }d |D             S )zCSearch across all messages with this peer as author asynchronously.Nr   rq   c                Z    g | ](}t          j        t          j        |                    )S r   r   r   s     rA   r   z"PeerAio.search.<locals>.<listcomp>  r   rC   )	r   r7   r~   rE   rs   r   peer_searchrN   rS   r   s        rA   r   zPeerAio.search  s       j 88:::::::::Z':??tz6
FF WuEE @ 
 
 
 
 
 
 
 

 

 
 
 	
rC   list[str] | Nonec                X  K   | j         j                                         d{V  t          |          }|rd|ind}| j         j        j                            t          j        | j         j        | j         j	                  |           d{V }t          j        |          }|j        S )z!Get the peer card asynchronously.Nr  r   )r   r7   r~   r+   rE   r   r   	peer_cardrN   rS   r   r[   )r@   r  r  r   rU   responses         rA   get_cardzPeerAio.get_card  s       j 88:::::::::v&&	)2<9%%Z':>>TZ4djmDD ? 
 
 
 
 
 
 
 
 $2488!!rC   c                v   K   t          j        dt          d           |                     |           d{V S )z#Deprecated: use get_card() instead.z,card() is deprecated, use get_card() instead   )
stacklevel)r  N)warningswarnDeprecationWarningr2  )r@   r  s     rA   cardzPeerAio.card  sR       	:	
 	
 	
 	

 ]]&]111111111rC   r0  	list[str]c                ^  K   | j         j                                         d{V  t          |          }|rd|ind}| j         j        j                            t          j        | j         j        | j         j	                  d|i|           d{V }t          j        |          }|j        S )a"  
        Set the peer card for this peer.

        Makes an API call to set the peer card. If a target is provided, sets this
        peer's local card of the target peer.

        Args:
            peer_card: A list of strings to set as the peer card.
            target: Optional target peer for local card. If provided, sets this
                    peer's card of the target peer. Can be a Peer object or peer ID string.

        Returns:
            A list of strings representing the updated peer card, or None if none is available
        Nr  r0  r   )r   r7   r~   r+   rE   rw   r   r0  rN   rS   r   r[   )r@   r0  r  r  r   rU   r1  s          rA   set_cardzPeerAio.set_card  s      ( j 88:::::::::v&&	)2<9%%Z':>>TZ4djmDDy) ? 
 
 
 
 
 
 
 

 $2488!!rC   r   r                 ?search_querysearch_top_k
int | Nonesearch_max_distancefloat | Noneinclude_most_frequentbool | Nonemax_conclusionsc                  K   | j         j                                         d{V  t          |          }t          |          }	i }
|r||
d<   |	r|	|
d<   |||
d<   |||
d<   |||
d<   |||
d<   |||
d<   | j         j        j                            t          j        | j         j        | j         j	                  |
	           d{V }t          j        |          }|j        S )
z>Get a subset of the representation of the peer asynchronously.Nr   r  r@  rA  rC  rE  rG  rq   )r   r7   r~   r+   rE   rs   r   peer_representationrN   rS   r   r[   representation)r@   r   r  r@  rA  rC  rE  rG  r   r  rr   rU   r1  s                rA   rJ  zPeerAio.representation  s>      j 88:::::::::((
v&&	! 	,!+D 	'&DN##/D ##/D **=D&' ,,AD()&&5D"#Z':??&tz'>
NN @ 
 
 
 
 
 
 
 
 *8>>&&rC   r   c                  K   | j         j                                         d{V  t          |          }i }|r||d<   |||d<   |||d<   |||d<   |||d<   |||d<   | j         j        j                            t          j        | j         j        | j         j	                  |r|nd           d{V }	t          j        |	          S )	z)Get context for this peer asynchronously.Nr  r@  rA  rC  rE  rG  r   )r   r7   r~   r+   rE   r   r   peer_contextrN   rS   r   r[   )
r@   r  r@  rA  rC  rE  rG  r  r   rU   s
             rA   contextzPeerAio.context   s      j 88:::::::::v&&	 " 	('E(O#$0E.!#$0E.!*+>E'( ,-BE)*&'6E#$Z':>>
 7GG *%%d ? 
 
 
 
 
 
 
 
 #1$777rC   )r   r   r<   r=   r   r   r   r   r   r   )r   r   r<   r=   )r<   r   r<   r=   )r]   r   r<   r=   )
r   rH   r  r   r   r   r  r  r<   r  )
r   rH   r  r   r   r   r  r  r<   r&   r?   r   r   )r  r   r<   r.  )r0  r:  r  r   r<   r.  )r   r   r  r   r@  r  rA  rB  rC  rD  rE  rF  rG  rB  r<   rH   )r  r   r@  r  rA  rB  rC  rD  rE  rF  rG  rB  r<   r   )!r   r   r   r   r9   r   rB   rG   rK   rO   rT   r`   rf   rj   rl   rn   r  r  rt   r  rx   r   r
   r   r   r&  r   r   r2  r9  r<  rJ  rM  r   rC   rA   r2   r2     s          ,6I5555MMM   5 5 55 5 5 5C C C C% % % %U U U U( ( ( (M M M M* * * *G G G G
1 1 1 1
* * * *9 9 9 9( ( ( (2 2 2 2 ]**TBBBCCC U31:VWWW )-,0     DC> ]**TBBBCCC U31:VWWW ? )-,0 ?  ?  ?  ?  ? DC ?H -1*G *G *G *G *G *G *GX  U31:STTT,1E;-
 -
 -
 U12O
 
 

 
 
 
 ]
* ]**TBBBCCC )-" " " " DC"$ )-2 2 2 2 2 ]**TBBBCCC )-" " " " DC"> ]**TBBBCCC -1(,#'#(5!#<#<#<,1E$33,G,G,G-1&+eDQ3&?&?&?$' $' $' $' DC$'L ]**TBBBCCC )-#'#(5!#<#<#<,1E$33,G,G,G-1&+eDQ3&?&?&?8 8 8 8 DC8 8 8rC   r2   c                     e Zd ZU dZdZded<   ded<   dd
Zd ZddZddZ	ddZ
ddZddZddZddZddZddZddZddZdd Zdd!Zdd$Zdd%Zdd'Zdd)Zdd-Zdd.Ze ed/d01          fdd5            Zd6d7d8d9d:ddCZddDZd6dEddIZ  e e!dJK          L          dJ ed6dMdNO           ed6dP1           ed6dQ1           ed6dR1           ed9dS1           ed6d7dTdUV           ed6dWdXdYV           ed6dZ1           ed6d7dTd[V          d\
ddl            Z"ddnZ#e ed/d7dop           ed6dq1           edrd7dTdst          fddw            Z$ e e!dJK          L           ed/dx1           ed/dy1           ed6dz1           ed6d{1           ed6d|1          fdd            Z% e e!dJK          L          d6d6 ed6d7dT           ed6dWdX          d6 ed6d7dT          ddd            Z&	 	 dddZ'ddZ( e e!dJK          L           ed/d1           ed/d1          fdd            Z)d6S )r3   z
    Async view of a Session.

    Access via `session.aio`. Provides async versions of all Session methods.
    Shares state with the parent Session instance.
    _sessionr8   r9   	'Session'rQ  r   r<   r=   c                    || _         d S r?   rP  r@   r   s     rA   rB   zSessionAio.__init__.  s    rC   c                $    | j         j        j        S r?   )rQ  r7   rE   rF   s    rA   rG   z!SessionAio._get_async_http_client2  s    }$77rC   rH   c                >    t          j        | j        j                  S r?   )r   r   rQ  rN   rF   s    rA   rK   zSessionAio._get_fetch_route5  s    t}9:::rC   c                T    t          j        | j        j        | j        j                  S r?   )r   r   rQ  rN   rS   rF   s    rA   rO   zSessionAio._get_update_route8  s    ~dm8$-:JKKKrC   rP   c                    d| j         j        iS rR   )rQ  rS   rF   s    rA   rT   zSessionAio._get_fetch_body;  s    dm&''rC   rU   rV   c                r    t          j        |          }|j        pi |j                            d          fS rX   )r   r[   r\   r]   r^   r@   rU   r   s      rA   r`   zSessionAio._parse_response>  sG     "066%2w'<'G'G (H (
 (
 
 	
rC   r\   ra   c                    || j         _        d S r?   rQ  rd   re   s     rA   rf   zSessionAio._set_metadataG  s    "*rC   r]   c                B    t          j        |          | j        _        d S r?   )r   r[   rQ  rh   ri   s     rA   rj   zSessionAio._set_configurationJ  s"    ';'J(
 (
$$$rC   c                    | j         j        pi S r?   r\  rF   s    rA   rl   zSessionAio._get_metadataP  s    }&,",rC   c                ^    | j         j        i S | j         j                            d          S rX   )rQ  rh   r^   rF   s    rA   rn   zSessionAio._get_configurationS  s.    ='/I}+66D6IIIrC   r   c                    |j         pi | j        _        t          j        |j                                                  | j        _        |j        | j        _	        |j
        | j        _        d S r?   )r\   rQ  rd   r   r[   r]   r^   rh   r}   r  r   
_is_activerT  s     rA   _apply_session_responsez"SessionAio._apply_session_responseX  s_    ")"2"8b';'J!,,..(
 (
$ %,$6!#*#4   rC   c                n  K   | j         j                                         d{V  |                                                     |                                 |                                            d{V }t          j        |          }| 	                    |           | 
                                S r  )rQ  r7   r~   rG   rs   rK   rT   r   r[   rb  rl   rZ  s      rA   r  zSessionAio.get_metadata`  s      m#;;=========002277!!##$*>*>*@*@ 8 
 
 
 
 
 
 
 
 "066$$W---!!###rC   r   c                z  K   | j         j                                         d{V  |                                                     |                                 |                                            d{V }t          j        |          }| 	                    |           | j         j
        pt                      S r  )rQ  r7   r~   rG   rs   rK   rT   r   r[   rb  rh   r   rZ  s      rA   rt   zSessionAio.get_configurationj  s      m#;;=========002277!!##$*>*>*@*@ 8 
 
 
 
 
 
 
 
 "066$$W---}+E/C/E/EErC   c                J  K   | j         j                                         d{V  |                                                     |                                 |                                            d{V }t          j        |          }| 	                    |           dS )zJRefresh cached metadata, configuration, and session status asynchronously.Nrq   )
rQ  r7   r~   rG   rs   rK   rT   r   r[   rb  rZ  s      rA   r  zSessionAio.refresht  s      m#;;=========002277!!##$*>*>*@*@ 8 
 
 
 
 
 
 
 
 "066$$W-----rC   c                   K   |                                                      |                                 d|                    d          i           d{V  || j        _        dS rv   )rG   rw   rO   r^   rQ  rh   ri   s     rA   rx   zSessionAio.set_configuration}  s      ))++//""$$!=#;#;#;#N#NO 0 
 
 	
 	
 	
 	
 	
 	
 	
 (5$$$rC   r   str | PeerBase | tuple[str, SessionPeerConfig] | tuple[PeerBase, SessionPeerConfig] | list[PeerBase | str] | list[tuple[PeerBase | str, SessionPeerConfig]] | list[PeerBase | str | tuple[PeerBase | str, SessionPeerConfig]]c                  K   | j         j                                         d{V  | j         j        j                            t          j        | j         j        | j         j                  t          |                     d{V  dS )z)Add peers to this session asynchronously.Nrq   )
rQ  r7   r~   rE   rs   r   session_peersrN   rS   r(   r@   r   s     rA   	add_peerszSessionAio.add_peers  s       m#;;=========m#6;; !;T]=MNN(// < 
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rC   c                  K   | j         j                                         d{V  | j         j        j                            t          j        | j         j        | j         j                  t          |                     d{V  dS )z;Set the complete peer list for this session asynchronously.Nrq   )
rQ  r7   r~   rE   rw   r   ri  rN   rS   r(   rj  s     rA   	set_peerszSessionAio.set_peers  s       m#;;=========m#6:: !;T]=MNN(// ; 
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rC   %str | PeerBase | list[PeerBase | str]c                @  K   | j         j                                         d{V  t          |t                    s|g}d |D             }| j         j        j                            t          j        | j         j	        | j         j
                  |           d{V  dS )z.Remove peers from this session asynchronously.Nc                J    g | ] }t          |t                    r|n|j        !S r   )
isinstancerH   rS   )r   r   s     rA   r   z+SessionAio.remove_peers.<locals>.<listcomp>  s-    QQQ4JtS11>DDtwQQQrC   rq   )rQ  r7   r~   rq  listrE   r   r   ri  rN   rS   )r@   r   peer_idss      rA   remove_peerszSessionAio.remove_peers  s      
 m#;;=========%&& 	GEQQ5QQQm#6== !;T]=MNN > 
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rC   
list[Peer]c                :   K    j         j                                         d{V   j         j        j                            t          j         j         j         j         j                             d{V }|                    dg           } fd|D             S )z-Get all peers in this session asynchronously.Nitemsc                r    g | ]3}t          t          j        |          j        j        j                  4S r   )r/   r   r[   rS   rQ  r7   )r   r   r@   s     rA   r   z$SessionAio.peers.<locals>.<listcomp>  sF     
 
 
 ,T225t}7LMM
 
 
rC   )	rQ  r7   r~   rE   r   r   ri  rN   rS   )r@   rU   
peers_datas   `  rA   r   zSessionAio.peers  s      m#;;=========%)]%:%M%Q%Q !;T]=MNN&
 &
  
  
  
  
  
  
 !%" 5 5

 
 
 
"
 
 
 	
rC   r   r   r   c                  K   | j         j                                         d{V  t          |t                    r|n|j        }| j         j        j                            t          j	        | j         j
        | j         j        |                     d{V }t          |                    d          |                    d                    S )z@Get the configuration for a peer in this session asynchronously.Nobserve_others
observe_me)r{  r|  )rQ  r7   r~   rq  rH   rS   rE   r   r   session_peer_configrN   r   )r@   r   peer_idrU   s       rA   get_peer_configurationz!SessionAio.get_peer_configuration  s      m#;;=========$T3//<$$TW]*=AA&*DM,<g 
 
 
 
 
 
 
 

 !88$455xx--
 
 
 	
rC   c                ~  K   | j         j                                         d{V  t          |t                    r|n|j        }i }|j        
|j        |d<   |j        
|j        |d<   | j         j        j        	                    t          j        | j         j        | j         j        |          |           d{V  dS )z@Set the configuration for a peer in this session asynchronously.Nr{  r|  rq   )rQ  r7   r~   rq  rH   rS   r{  r|  rE   rw   r   r}  rN   )r@   r   r]   r~  rr   s        rA   set_peer_configurationz!SessionAio.set_peer_configuration  s       m#;;=========$T3//<$$TW!'3%2%AD!"#/!.!9Dm#6::&*DM,<g  	 ; 
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rC   .zMessages to add to the sessionr   messages/MessageCreateParams | list[MessageCreateParams]r   c                X  K   | j         j                                         d{V  t          |t                    s|g}d |D             }| j         j        j                            t          j        | j         j	        | j         j
                  d|i           d{V }d |D             S )z8Add one or more messages to this session asynchronously.Nc                <    g | ]}|                     d d          S )jsonT)moderZ   )r^   r   msgs     rA   r   z+SessionAio.add_messages.<locals>.<listcomp>  s5     
 
 
?BCNNTN::
 
 
rC   r  rq   c                Z    g | ](}t          j        t          j        |                    )S r   r   r  s     rA   r   z+SessionAio.add_messages.<locals>.<listcomp>  >     
 
 
 %o&DS&I&IJJ
 
 
rC   )rQ  r7   r~   rq  rr  rE   rs   r   r  rN   rS   )r@   r  messages_datarU   s       rA   add_messageszSessionAio.add_messages  s       m#;;=========(D)) 	" zH
 
FN
 
 
 ]*=BBODM68HIIm, C 
 
 
 
 
 
 
 

 

 
 
 	
rC   Nr   r   F)r   r   r   r   r   ry   r   r   r   r   r   #AsyncPage[MessageResponse, Message]c               r   K    j         j                                         d{V  |d}rd|d<    j         j        j                            t          j         j         j         j         j                  rdind|           d{V }ddd fdt          |t                    S )z.Get messages from this session asynchronously.Nr   r   r   r   r   r1  r   r<   r    c                *    t          j        |           S r?   )r    r   r1  s    rA   r   z&SessionAio.messages.<locals>.transform  s    ,X666rC   r   r   r  c                  K   | d}rd|d<   j         j        j                            t	          j        j         j        j         j                  rdind |           d {V }t          |t                    S r   )
rQ  r7   rE   rs   r   messages_listrN   rS   r"   r   r   s	      rA   r   z'SessionAio.messages.<locals>.fetch_next  s      2;T)J)JJ /(.
9%"m3FKK$T]%?AQRR-4>i))$  L        I
 YJOOOrC   )r1  r   r<   r    )r   r   r<   r  )rQ  r7   r~   rE   rs   r   r  rN   rS   r"   r   r   s	   `` ``  @@rA   r  zSessionAio.messages  s2      m#;;=========)-t < < 	&%E)]*=BB !;T]=MNN)0:)W%%d C 
 
 
 
 
 
 
 
	7 	7 	7 	7		P 		P 		P 		P 		P 		P 		P 		P 		P 		P 		P 	:FFFrC   c                   K   | j         j                                         d{V  | j         j        j                            t          j        | j         j        | j         j                             d{V  dS )z#Delete this session asynchronously.N)	rQ  r7   r~   rE   r   r   r   rN   rS   rF   s    rA   r   zSessionAio.delete!  s      m#;;=========m#6==N4=5t}7GHH
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rC   )
message_idr  r  r0   c                 K   | j         j                                         d{V  i }|||d<   | j         j        j                            t          j        | j         j        | j         j                  |r|nd           d{V }t          j
        |          }t          |j        | j         j        |j        |j        |j        |j                  S )z"Clone this session asynchronously.Nr  r   r   )rQ  r7   r~   rE   rs   r   session_clonerN   rS   r   r[   r0   r\   r]   r}   r   )r@   r  r   rU   cloneds        rA   clonezSessionAio.clone(  s      m#;;========= "!",E,]*=BB !;T]=MNN *%%d C 
 
 
 
 
 
 
 
 !/55IM!_ .(&
 
 
 	
rC   Tr   r   r   z2Maximum number of tokens to include in the context)gtr   zA peer ID to get context for.zSA query string (or Message object) used to fetch semantically relevant conclusions.z1A peer ID to get context from the perspective of.z9Whether to limit the representation to this session only.r   z0Number of semantically relevant facts to return.)r   r   r   r>  r?  z7Maximum semantic distance for search results (0.0-1.0).zGWhether to include the most frequent conclusions in the representation.z?Maximum number of conclusions to include in the representation.)
summarytokenspeer_targetr@  peer_perspectivelimit_to_sessionrA  rC  rE  rG  r  r  rB  r  r@  str | Message | Noner  r  rA  rC  rD  rE  rF  rG  r#   c       
   
       K   | j         j                                         d{V  ||t          d          ||t          d          t	          |t
                    r|j        n|}||d}|||d<   |||d<   |||d<   |||d<   |||d	<   |||d
<   |	|	|d<   |
|
|d<   | j         j        j                            t          j
        | j         j        | j         j                  |           d{V }d}|                    d          r:|d         }t          |d         |d         |d         |d         |d                   }d |                    dg           D             }t          | j         j        |||                    d          r"t          |                    d                    nd|                    d                    S )z6Get optimized context for this session asynchronously.NzDYou must provide a `peer_target` when `peer_perspective` is providedz@You must provide a `peer_target` when `search_query` is provided)r  r  r  r@  r  r  rA  rC  rE  rG  r   r  r  r  summary_typer}   token_countr  r  r  r}   r  c                Z    g | ](}t          j        t          j        |                    )S r   r   r  s     rA   r   z&SessionAio.context.<locals>.<listcomp>  s>     
 
 
 %o&DS&I&IJJ
 
 
rC   r  rI  r0  )r   r  r  rI  r0  )rQ  r7   r~   
ValueErrorrq  r    r  rE   r   r   session_contextrN   rS   r%   r#   rH   )r@   r  r  r  r@  r  r  rA  rC  rE  rG  search_query_textr   rU   session_summarysr  s                    rA   rM  zSessionAio.context=  s~     ` m#;;=========#3#?V   <#;R  
 %/|W$E$EWL  < 	
  0!
 !
 $E(O($5E.!"#.E- '(8E$%#$0E.!*+>E'( ,-BE)*&'6E#$]*=AA"4=#=t}?OPP B 
 
 
 
 
 
 
 

 88I 	YA%)\?~.\?m,  O
 
xx
B//
 
 

 }'#xx-..!DHH-B$C$C D D Dhh{++
 
 
 	
rC   r$   c                  K   | j         j                                         d{V  | j         j        j                            t          j        | j         j        | j         j                             d{V }d}|                    d          r:|d         }t          |d         |d         |d         |d         |d                   }d}|                    d	          r:|d	         }t          |d         |d         |d         |d         |d                   }t          |                    d
          p| j         j        ||          S )z8Get available summaries for this session asynchronously.Nshort_summaryr  r  r  r}   r  r  long_summaryrS   )rS   r  r  )rQ  r7   r~   rE   r   r   session_summariesrN   rS   r%   r$   )r@   rU   r  r  r  s        rA   	summarieszSessionAio.summaries  sv     m#;;=========]*=AA$T]%?AQRR
 
 
 
 
 
 
 
 88O$$ 	_%A#)\?~.\?m,  M 88N## 	^$A")\?~.\?m,  L  xx~~1!1'%
 
 
 	
rC   r   r   r   r   r   r   r   r   c                  K   | j         j                                         d{V  | j         j        j                            t          j        | j         j        | j         j                  |||d           d{V }d |D             S )z3Search for messages in this session asynchronously.Nr   rq   c                Z    g | ](}t          j        t          j        |                    )S r   r   r  s     rA   r   z%SessionAio.search.<locals>.<listcomp>  r  rC   )	rQ  r7   r~   rE   rs   r   session_searchrN   rS   r   s        rA   r   zSessionAio.search  s       m#;;=========]*=BB!$-"<dm>NOO WuEE C 
 
 
 
 
 
 
 

 

 
 
 	
rC   zxFile to upload. Can be a file object, (filename, bytes, content_type) tuple, or (filename, fileobj, content_type) tuple.z9The peer creating the messages (ID string or Peer object)z;Optional metadata dictionary to associate with the messagesz@Optional configuration dictionary to associate with the messagesz/Optional created-at timestamp for the messages.file3tuple[str, bytes, str] | tuple[str, Any, str] | Anydict[str, Any] | Noner}   str | datetime | Nonec                  K   | j         j                                         d{V  t          |          \  }}}t	          |t
                    r|n|j        }	d|	i}
|t          j        |          |
d<   |t          j        |          |
d<   t          |          }|||
d<   | j         j        j
                            t          j        | j         j        | j         j                  d|||fi|
           d{V }d |D             S )	z@Upload file to create message(s) in this session asynchronously.Nr~  r\   r]   r}   r  )filesrU   c                Z    g | ](}t          j        t          j        |                    )S r   r   r  s     rA   r   z*SessionAio.upload_file.<locals>.<listcomp>  r  rC   )rQ  r7   r~   r*   rq  rH   rS   r  dumpsr'   rE   uploadr   messages_uploadrN   )r@   r  r   r\   r]   r}   filenamecontent_bytescontent_typeresolved_peer_id	data_dictcreated_at_isor1  s                rA   upload_filezSessionAio.upload_file  sJ     0 m#;;=========0G0M0M--#-dC#8#8E44dg%.0@$A	$(Jx$8$8Ij!$)-M)B)BIo&(44%&4Il#.AHH"4=#=t}?OPPHm\BC I 
 
 
 
 
 
 
 

 

 
 
 	
rC   r=  )r  r@  rA  rC  rE  rG  r  r   c                 K   | j         j                                         d{V  t          |          }t          |          }	d| j         j        i}
|	r|	|
d<   |||
d<   |||
d<   |||
d<   |||
d<   |||
d<   | j         j        j                            t          j        | j         j	        |          |
	           d{V }t          j        |          }|j        S )
zNGet a subset of the representation of the peer in this session asynchronously.Nr   r  r@  rA  rC  rE  rG  rq   )rQ  r7   r~   r+   rS   rE   rs   r   rI  rN   r   r[   rJ  )r@   r   r  r@  rA  rC  rE  rG  r~  r  r   rU   r1  s                rA   rJ  zSessionAio.representation  s2      m#;;=========T""v&&	!-t}/? @ 	('E(O#$0E.!#$0E.!*+>E'( ,-BE)*&'6E#$]*=BB&t}'A7KK C 
 
 
 
 
 
 
 
 *8>>&&rC   r   r   r   c                z  K   | j         j                                         d{V  t          |          }t          |          }d| j         j        i}|r||d<   |r||d<   | j         j        j                            t          j        | j         j	                  |           d{V }t          j        |          S )z@Get the queue processing status for this session asynchronously.Nr   r   r   r   )rQ  r7   r~   r+   rS   rE   r   r   r   rN   r   r[   )r@   r   r   r   r   r   rU   s          rA   r   zSessionAio.queue_status?  s       m#;;=========)(33'//!-t}/? @ 	8#7E-  	4!3E+]*=AA)$-*DEE B 
 
 
 
 
 
 
 
 #1$777rC   r    c                >  K   | j         j                                         d{V  | j         j        j                            t          j        | j         j        | j         j        |                     d{V }t          j
        t          j        |                    S )zGet a single message by ID from this session asynchronously.

        Args:
            message_id: The ID of the message to retrieve

        Returns:
            The Message object
        N)rQ  r7   r~   rE   r   r   messagerN   rS   r    r   r   r[   )r@   r  rU   s      rA   get_messagezSessionAio.get_messageU  s       m#;;=========]*=AAN4=5t}7GTT
 
 
 
 
 
 
 
 ()G)M)MNNNrC   z*The Message object or message ID to updatez&The metadata to update for the messager  Message | strc                  K   | j         j                                         d{V  t          |t                    r|j        n|}| j         j        j                            t          j	        | j         j
        | j         j        |          d|i           d{V }t	          j        t          j        |                    S )z7Update message metadata in this session asynchronously.Nr\   rq   )rQ  r7   r~   rq  r    rS   rE   rw   r   r  rN   r   r   r[   )r@   r  r\   r  rU   s        rA   update_messagezSessionAio.update_messaged  s       m#;;=========#-gw#?#?LWZZW
]*=AAN4=5t}7GTTh' B 
 
 
 
 
 
 
 
 ()G)M)MNNNrC   )r   rR  r<   r=   r   r   r   r   r   r   )r   r   r<   r=   )r<   r   rN  )r]   r   r<   r=   )r   rg  r<   r=   )r   rn  r<   r=   )r<   ru  )r   r   r<   r   )r   r   r]   r   r<   r=   )r  r  r<   r   )
r   ry   r   r   r   r   r   r   r<   r  )r  r  r<   r0   )r  r   r  rB  r  r  r@  r  r  r  r  r   rA  rB  rC  rD  rE  rF  rG  rB  r<   r#   )r<   r$   r   )r  r  r   r   r\   ry   r]   r  r}   r  r<   r   )r   r   r  r   r@  r  rA  rB  rC  rD  rE  rF  rG  rB  r<   rH   r   )r   r   r   r   r<   r   )r  rH   r<   r    )r  r  r\   ra   r<   r    )*r   r   r   r   r9   r   rB   rG   rK   rO   rT   r`   rf   rj   rl   rn   rb  r  rt   r  rx   rk  rm  rt  r   r  r  r   r   r  r  r   r  r
   rM  r  r   r  rJ  r   r  r  r   rC   rA   r3   r3   #  s          ,9I8888       8 8 8; ; ; ;L L L L( ( ( (
 
 
 
+ + + +
 
 
 
- - - -J J J J
5 5 5 5$ $ $ $F F F F. . . .5 5 5 5
 
 
 
"
 
 
 
"
 
 
 
 
 
 
 

 
 
 

 
 
 
&  EJE=E
 E
 E

 
 
 
 ]
6 -1!G !G !G !G !G !GF
 
 
 
 7; 
 
 
 
 
 
* ]**TBBBCCC "UQ$X
 
 
 #(%7#
 #
 #
 .3Um.
 .
 .
 (-uK(
 (
 (
 "'S"
 "
 "
 $)5J	$
 $
 $
 -2EQ	-
 -
 -
 .3Ua.
 .
 .
 ',eY	'
 '
 '
Op
 p
 p
 p
 p
 DCp
d!
 !
 !
 !
F  U31:STTT,1E;-
 -
 -
 U12O
 
 

 
 
 
 ]
* ]**TBBBCCC EJE SE
 E
 E
  %uX 
  
  
 .3UU.
 .
 .
 05uZ0
 0
 0
 -2EI-
 -
 -
#-
 -
 -
 -
 DC-
^ ]**TBBBCCC
 )-#'#(5!#<#<#<,1E$33,G,G,G-1&+eDQ3&?&?&?#' #' #' #' #' DC#'N +/(,8 8 8 8 8,O O O O ]**TBBBCCC "'I"
 "
 "
 ',eE'
 '
 '
O O O O DCO O OrC   r3   c                  |    e Zd ZU dZdZded<   ded<   d/d
Z	 	 	 d0ddd1dZ	 	 d2d3d Zd4d"Z	d5d%Z
	 	 	 	 	 d6d7d.ZdS )8r4   z
    Async view of a ConclusionScope.

    Access via `scope.aio`. Provides async versions of all ConclusionScope methods.
    Shares state with the parent ConclusionScope instance.
    _scoper8   r9   'ConclusionScope'r  scoper<   r=   c                    || _         d S r?   r  )r@   r  s     rA   rB   zConclusionScopeAio.__init__  s    rC   r   r   NF)r   r   r   r   r   r   r   r   )AsyncPage[ConclusionResponse, Conclusion]c                  	
K    j         j                                         d{V  t          |          } j         j         j         j        d	|r|	d<   |d}rd|d<    j         j        j                            t          j	         j         j
                  d	i|           d{V }dd
d	 
fdt          |t          
          S )z.List conclusions in this scope asynchronously.Nr   observed_idr   r   r   r   r   r   r1  r   r<   r   c                *    t          j        |           S r?   )r   r   r  s    rA   r   z*ConclusionScopeAio.list.<locals>.transform  s    /999rC   r   r   r  c                   K   | d}rd|d<   j         j        j                            t	          j        j         j                  di|           d {V }t          |t                    S r   )	r  r7   rE   rs   r   conclusions_listrN   r"   r   r   s	      rA   r   z+ConclusionScopeAio.list.<locals>.fetch_next  s       3<T)J)JJ /(.
9%"k1DII'(@AA)  J        I
 Y(:IzRRRrC   )r1  r   r<   r   )r   r   r<   r  )r  r7   r~   r+   r   r   rE   rs   r   r  rN   r"   r   )r@   r   r   r   r   r   r   rU   r   r   r   s   ` ` `   @@@rA   rr  zConclusionScopeAio.list  s`      k!99;;;;;;;;;(11;/;/#
 #
  	8$7GL!)-t < < 	&%E)[(;@@#DK$<==W% A 
 
 
 
 
 
 
 
	: 	: 	: 	:	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 19jIIIrC   r   r   rH   top_kdistancerD  list[Conclusion]c                B  K   | j         j                                         d{V  | j         j        | j         j        d}|||d}|||d<   | j         j        j                            t          j        | j         j	                  |           d{V }d |D             S )z/Semantic search for conclusions asynchronously.Nr  )r   r  r   r  rq   c                Z    g | ](}t          j        t          j        |                    )S r   r   r   r   r[   r   s     rA   r   z,ConclusionScopeAio.query.<locals>.<listcomp>  ?     
 
 
 ();)J4)P)PQQ
 
 
rC   )
r  r7   r~   r   r   rE   rs   r   conclusions_queryrN   )r@   r   r  r  r   rr   rU   s          rA   r   zConclusionScopeAio.query  s       k!99;;;;;;;;;;/;/#
 #
  
  

 'D[(;@@$T[%=>> A 
 
 
 
 
 
 
 

 

 
 
 	
rC   conclusion_idc                   K   | j         j                                         d{V  | j         j        j                            t          j        | j         j        |                     d{V  dS )z)Delete a conclusion by ID asynchronously.N)r  r7   r~   rE   r   r   
conclusionrN   )r@   r  s     rA   r   zConclusionScopeAio.delete  s      k!99;;;;;;;;;k!4;;dk6FF
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rC   conclusions-list[ConclusionCreateParams | dict[str, Any]]c                &   K    j         j                                         d{V  d fdfd|D             } j         j        j                            t          j         j         j                  d|i	           d{V }d
 |D             S )z0Create conclusions in this scope asynchronously.Nr   'ConclusionCreateParams | dict[str, Any]r<   rP   c                    j         j        j         j        d}t          | t                    r| j        |d<   | j        
| j        |d<   |S | d         |d<   |                     d          }|||d<   |S )z)Build a single conclusion create payload.r  r  Nr   )r  r   r   rq  r.   r  r   r   )r   payloadr   r@   s      rA   build_conclusion_payloadz;ConclusionScopeAio.create.<locals>.build_conclusion_payload  s    
  ${3#{3' 'G $ 677 %)\	"?.,0OGL)!%iGI,//J%(2%NrC   c                &    g | ]} |          S r   r   )r   cr  s     rA   r   z-ConclusionScopeAio.create.<locals>.<listcomp>  s%    NNNQ55a88NNNrC   r  rq   c                Z    g | ](}t          j        t          j        |                    )S r   r  r   s     rA   r   z-ConclusionScopeAio.create.<locals>.<listcomp>  r  rC   )r   r  r<   rP   )r  r7   r~   rE   rs   r   r  rN   )r@   r  conclusion_paramsrU   r  s   `   @rA   createzConclusionScopeAio.create  s      
 k!99;;;;;;;;;	 	 	 	 	 	( ONNN+NNN[(;@@t{788!23 A 
 
 
 
 
 
 
 

 

 
 
 	
rC   r@  r  rA  rB  rC  rE  rF  rG  c                  K   | j         j                                         d{V  d| j         j        i}|||d<   |||d<   |||d<   |||d<   |||d<   | j         j        j                            t          j        | j         j        | j         j	                  |           d{V }t          j        |          }|j        S )	z>Get the computed representation for this scope asynchronously.Nr  r@  rA  rC  rE  rG  rq   )r  r7   r~   r   rE   rs   r   rI  rN   r   r   r[   rJ  )	r@   r@  rA  rC  rE  rG  rr   rU   r1  s	            rA   rJ  z!ConclusionScopeAio.representation  s      k!99;;;;;;;;; ($+*>?##/D ##/D **=D&' ,,AD()&&5D"#[(;@@&t{'?AUVV A 
 
 
 
 
 
 
 
 *8>>&&rC   )r  r  r<   r=   )r   r   N)
r   r   r   r   r   r   r   r   r<   r  )r   N)r   rH   r  r   r  rD  r<   r  )r  rH   r<   r=   )r  r  r<   r  )NNNNN)r@  r  rA  rB  rC  rD  rE  rF  rG  rB  r<   rH   )r   r   r   r   r9   r   rB   rr  r   r   r  rJ  r   rC   rA   r4   r4   y  s          ,7I6666   
 ,0	+J +J +J +J +J +J +J` !%	
 
 
 
 
<
 
 
 
$
 $
 $
 $
P $(#',0-1&*' ' ' ' ' ' 'rC   r4   )Jr   
__future__r   r  loggingr6  collections.abcr   r   typingr   r   r   r	   pydanticr
   r   r   	api_typesr   r   r   r   r   r   r   r   r   r   r   r   r   r   baser   r   r  r   httpr   r  r    mixinsr!   
paginationr"   r  r#   r$   r%   typesr&   utilsr'   r(   r)   r*   r+   clientr,   r-   r.   r   r/   r   r0   	getLoggerr   logger__all__r1   r2   r3   r4   r   rC   rA   <module>r     s   ( # " " " " "    * * * * * *       8 8 8 8 8 8 8 8 8 8 8 8 5 5 5 5 5 5 5 5 5 5                                 ( ' ' ' ' ' ' ' # # # # # #             , , , , , , ! ! ! ! ! ! F F F F F F F F F F / / / / / /               -,,,,,, / / / / / /            		8	$	$  e
 e
 e
 e
 e
( e
 e
 e
Pe8 e8 e8 e8 e8& e8 e8 e8PS	O S	O S	O S	O S	O) S	O S	O S	Ola' a' a' a' a' a' a' a' a' a'rC   