§
    ™Štj
  ã                  ó   — d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	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 ddlmZ ddlmZmZmZmZ  ej        e¦  «        Zdedddœdd„Z  G d„ d¦  «        Z!dS )zAsync LangGraph client.é    )ÚannotationsN)ÚMapping)ÚTracebackType)ÚAssistantsClient)Ú
CronClient)Ú
HttpClient)Ú
RunsClient)ÚStoreClient)ÚThreadsClient)ÚTimeoutTypes)ÚNOT_PROVIDEDÚ_get_headersÚ_registered_transportsÚget_asgi_transport)ÚurlÚapi_keyÚheadersÚtimeoutr   ú
str | Noner   r   úMapping[str, str] | Noner   úTimeoutTypes | NoneÚreturnÚLangGraphClientc           
     ó”  — d}| €Íd} t           j                             d¦  «        dk    r. t          ¦   «         dd¬¦  «        }t	          j        |¦  «         nz	 ddlm}  t          ¦   «         |d¬	¦  «        }nY# t          $ rL t           
                    d
d¬¦  «          t          ¦   «         dd¬¦  «        }t	          j        |¦  «         Y nw xY w|€t          j        d¬¦  «        }t          j        | ||�t          j        |¦  «        nt          j        dddd¬¦  «        t          ||¦  «        ¬¦  «        }t!          |¦  «        S )a
  Create and configure a LangGraphClient.

    The client provides programmatic access to LangSmith Deployment. It supports
    both remote servers and local in-process connections (when running inside a LangGraph server).

    Args:
        url:
            Base URL of the LangGraph API.
            - If `None`, the client first attempts an in-process connection via ASGI transport.
              If that fails, it defers registration until after app initialization. This
              only works if the client is used from within the Agent server.
        api_key:
            API key for authentication. Can be:
              - A string: use this exact API key
              - `None`: explicitly skip loading from environment variables
              - Not provided (default): auto-load from environment in this order:
                1. `LANGGRAPH_API_KEY`
                2. `LANGSMITH_API_KEY`
                3. `LANGCHAIN_API_KEY`
        headers:
            Additional HTTP headers to include in requests. Merged with authentication headers.
        timeout:
            HTTP timeout configuration. May be:
              - `httpx.Timeout` instance
              - float (total seconds)
              - tuple `(connect, read, write, pool)` in seconds
            Defaults: connect=5, read=300, write=300, pool=5.

    Returns:
        LangGraphClient:
            A top-level client exposing sub-clients for assistants, threads,
            runs, and cron operations.

    ???+ example "Connect to a remote server:"

        ```python
        from langgraph_sdk import get_client

        # get top-level LangGraphClient
        client = get_client(url="http://localhost:8123")

        # example usage: client.<model>.<method_name>()
        assistants = await client.assistants.get(assistant_id="some_uuid")
        ```

    ???+ example "Connect in-process to a running LangGraph server:"

        ```python
        from langgraph_sdk import get_client

        client = get_client(url=None)

        async def my_node(...):
            subagent_result = await client.runs.wait(
                thread_id=None,
                assistant_id="agent",
                input={"messages": [{"role": "user", "content": "Foo"}]},
            )
        ```

    ???+ example "Skip auto-loading API key from environment:"

        ```python
        from langgraph_sdk import get_client

        # Don't load API key from environment variables
        client = get_client(
            url="http://localhost:8123",
            api_key=None
        )
        ```
    Nz
http://apiÚ$__LANGGRAPH_DEFER_LOOPBACK_TRANSPORTÚtruez/noauth)ÚappÚ	root_pathr   )r   )r   zJFailed to connect to in-process LangGraph server. Deferring configuration.T)Úexc_infoé   )Úretriesi,  )ÚconnectÚreadÚwriteÚpool)Úbase_urlÚ	transportr   r   )ÚosÚenvironÚgetr   r   ÚappendÚlanggraph_api.serverr   Ú	ExceptionÚloggerÚdebugÚhttpxÚAsyncHTTPTransportÚAsyncClientÚTimeoutr   r   )r   r   r   r   r'   r   Úclients          úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langgraph_sdk/_async/client.pyÚ
get_clientr6      s†  € ð` 26€IØ
€{ØˆÝŒ:�>Š>Ð@ÑAÔAÀVÒKÐKØ,Õ*Ñ,Ô,°ÀÐKÑKÔKˆIÝ"Ô)¨)Ñ4Ô4Ð4Ð4ð
9Ø4Ð4Ð4Ð4Ð4Ð4à0Õ.Ñ0Ô0°À	ÐJÑJÔJ�	�	øÝð 9ð 9ð 9Ý—’Ø`Ø!ð ñ ô ð ð 1Õ.Ñ0Ô0°TÀYÐOÑOÔO�	Ý&Ô-¨iÑ8Ô8Ð8Ð8Ð8ð9øøøð ÐÝÔ,°QÐ7Ñ7Ô7ˆ	ÝÔØØð Ð"õ ŒM˜'Ñ"Ô"Ð"å” q¨s¸#ÀAÐFÑFÔFå˜W gÑ.Ô.ð	ñ 	ô 	€Fõ ˜6Ñ"Ô"Ð"s   ÁA9 Á9ACÃCc                  ó2   — e Zd ZdZdd„Zdd„Zdd„Zdd„ZdS )r   a‡  Top-level client for LangGraph API.

    Attributes:
        assistants: Manages versioned configuration for your graphs.
        threads: Handles (potentially) multi-turn interactions, such as conversational threads.
        runs: Controls individual invocations of the graph.
        crons: Manages scheduled operations.
        store: Interfaces with persistent, shared data storage.
    r4   úhttpx.AsyncClientr   ÚNonec                ó(  — t          |¦  «        | _        t          | j        ¦  «        | _        t	          | j        ¦  «        | _        t          | j        ¦  «        | _        t          | j        ¦  «        | _	        t          | j        ¦  «        | _        d S )N)r   Úhttpr   Ú
assistantsr   Úthreadsr	   Úrunsr   Úcronsr
   Ústore)Úselfr4   s     r5   Ú__init__zLangGraphClient.__init__š   sj   € Ý˜vÑ&Ô&ˆŒ	Ý*¨4¬9Ñ5Ô5ˆŒÝ$ T¤YÑ/Ô/ˆŒÝ˜tœyÑ)Ô)ˆŒ	Ý ¤	Ñ*Ô*ˆŒ
Ý  ¤Ñ+Ô+ˆŒ
ˆ
ˆ
ó    c              ƒ  ó
   K  — | S )z Enter the async context manager.© ©rA   s    r5   Ú
__aenter__zLangGraphClient.__aenter__¢   s   è è € àˆrC   Úexc_typeútype[BaseException] | NoneÚexc_valúBaseException | NoneÚexc_tbúTracebackType | Nonec              ƒ  ó>   K  — |                       ¦   «         ƒ d{V —† dS )zExit the async context manager.N)Úaclose)rA   rH   rJ   rL   s       r5   Ú	__aexit__zLangGraphClient.__aexit__¦   s.   è è € ð �kŠk‰mŒmÐÐÐÐÐÐÐÐÐrC   c              ƒ  óv   K  — t          | d¦  «        r&| j        j                             ¦   «         ƒ d{V —† dS dS )z!Close the underlying HTTP client.r;   N)Úhasattrr;   r4   rO   rF   s    r5   rO   zLangGraphClient.aclose¯   sQ   è è € å�4˜Ñ Ô ð 	,Ø”)Ô"×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ð	,ð 	,rC   N)r4   r8   r   r9   )r   r   )rH   rI   rJ   rK   rL   rM   r   r9   )r   r9   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rB   rG   rP   rO   rE   rC   r5   r   r   �   sn   € € € € € ðð ð,ð ,ð ,ð ,ðð ð ð ðð ð ð ð,ð ,ð ,ð ,ð ,ð ,rC   )
r   r   r   r   r   r   r   r   r   r   )"rV   Ú
__future__r   Úloggingr(   Úcollections.abcr   Útypesr   r0   Úlanggraph_sdk._async.assistantsr   Úlanggraph_sdk._async.cronr   Úlanggraph_sdk._async.httpr   Úlanggraph_sdk._async.runsr	   Úlanggraph_sdk._async.storer
   Úlanggraph_sdk._async.threadsr   Úlanggraph_sdk._shared.typesr   Úlanggraph_sdk._shared.utilitiesr   r   r   r   Ú	getLoggerrS   r.   r6   r   rE   rC   r5   ú<module>rd      s�  ðØ Ð à "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð à €€€à <Ð <Ð <Ð <Ð <Ð <Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð 
ˆÔ	˜8Ñ	$Ô	$€ð
 Ø&Ø(,Ø#'ðo#ð o#ð o#ð o#ð o#ð o#ðd#,ð #,ð #,ð #,ð #,ñ #,ô #,ð #,ð #,ð #,rC   