ó
    üÞ jNz  ã                  ó,  • S r SSKJr  SSKJr  SSKJrJr  SSKJ	r	J
r
JrJrJrJrJr  SSKJr  SSKJrJrJr  SSKJr  SS	KJrJrJrJrJrJrJr  SS
K J!r!  SSK"J#r#J$r$J%r%J&r&  \	(       a  SSK'J(r(  SSK)J*r*  SSK+J,r,  \\\-\-4      r.\ " S S5      5       r/g)z?Sandbox class for interacting with a specific sandbox instance.é    )Úannotations)ÚMapping)Ú	dataclassÚfield)ÚTYPE_CHECKINGÚAnyÚCallableÚLiteralÚOptionalÚUnionÚoverload)Úhttpx)ÚDataplaneNotConfiguredErrorÚResourceNotFoundErrorÚSandboxRetryableConnectionError)Úhandle_sandbox_http_error)ÚCommandHandleÚDownloadContentDispositionÚDownloadURLÚExecutionResultÚ
ServiceURLÚSnapshotÚ_StreamEndedBeforeStarted)ÚTunnel)ÚWEBSOCKETS_AVAILABLEÚ_retry_delayÚconnect_deadlineÚopen_timeout_for)ÚAsyncSandboxClient©ÚAsyncSandbox)ÚSandboxClientc                  ó`  • \ rS rSr% SrS\S'   SrS\S'   SrS\S'   S	rS\S
'   Sr	S\S'   Sr
S\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   \" SSS9rS\S'   \" SSS9rS\S'   \ SD       SES jj5       rSS.SFS jjrSGS  jr        SHS! jrSIS" jr\S#S#S#S#S#S#S#S#S#S#S#S#S$.                           SJS% jj5       r\S#S#S#S#S#S#S#S#S#S#S#S&.                           SKS' jj5       rS(SSS)SSS*SS+SSSS$.                           SLS, jjrS*SS+SSS-.                           SMS. jjr              SNS/ jrS0S0SS1.         SOS2 jjr S(SS3.         SPS4 jjr!S(SS3.       SQS5 jjr"S0S6SS7.         SRS8 jjr#S+SS9.       SSS: jjr$SSSSS;.           STS< jjr%S=SS3.     SUS> jjr&SS?.SVS@ jjr'SS?.SVSA jjr(S(SS3.       SWSB jjr)SCr*g)XÚSandboxé*   aó  Represents an active sandbox for running commands and file operations.

This class is typically obtained from SandboxClient.sandbox() and supports
the context manager protocol for automatic cleanup.

Attributes:
    name: Display name (can be updated).
    dataplane_url: URL for data plane operations (file I/O, command execution).
        Only functional when status is "ready".
    id: Unique identifier (UUID). Remains constant even if name changes.
        May be None for resources created before ID support was added.
    status: Sandbox lifecycle status. One of "provisioning", "ready",
        "failed", "stopped".
    status_message: Human-readable details when status is "failed", None otherwise.
    created_at: Timestamp when the sandbox was created.
    updated_at: Timestamp when the sandbox was last updated.
    idle_ttl_seconds: Idle timeout TTL in seconds (``0`` means disabled).
        Newly-created sandboxes receive a server-side default of ``600``
        seconds (10 minutes) when the caller did not set ``idle_ttl_seconds``
        explicitly. The launcher stops the sandbox after this many idle
        seconds; deletion is anchored to ``stopped_at`` and controlled by
        ``delete_after_stop_seconds`` (see below).
    delete_after_stop_seconds: Seconds after a sandbox enters the
        ``stopped`` state before it (and its filesystem clone) are
        permanently deleted. ``0`` disables stop-anchored deletion;
        ``None`` falls back to the server default.
    stopped_at: Timestamp when the sandbox transitioned to ``stopped``,
        or ``None`` while running. The deletion deadline is
        ``stopped_at + delete_after_stop_seconds``.
    snapshot_id: Snapshot ID used to create this sandbox.
    vcpus: Number of vCPUs allocated.
    mem_bytes: Memory allocation in bytes.
    fs_capacity_bytes: Root filesystem capacity in bytes.

Example:
    with client.sandbox(snapshot_id="<snapshot-uuid>") as sandbox:
        result = sandbox.run("python --version")
        print(result.stdout)
ÚstrÚnameNúOptional[str]Údataplane_urlÚidÚreadyÚstatusÚstatus_messageÚ
created_atÚ
updated_atúOptional[int]Úidle_ttl_secondsÚdelete_after_stop_secondsÚ
stopped_atÚsnapshot_idÚvcpusÚ	mem_bytesÚfs_capacity_bytesF)ÚreprÚdefaultr"   Ú_clientTÚboolÚ_auto_deletec           	     ó  • U " S0 SUR                  SS5      _SUR                  S5      _SUR                  S5      _SUR                  SS5      _SUR                  S5      _SUR                  S5      _S	UR                  S	5      _S
UR                  S
5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SU_SU_6$ )züCreate a Sandbox from API response dict.

Args:
    data: API response dictionary containing sandbox data.
    client: Parent SandboxClient for operations.
    auto_delete: Whether to delete the sandbox on context exit.

Returns:
    Sandbox instance.
r'   Ú r)   r*   r,   r+   r-   r.   r/   r1   r2   r3   r4   r5   r6   r7   r:   r<   © )Úget)ÚclsÚdataÚclientÚauto_deletes       ÚT/var/www/html/gaurav/venv/lib/python3.13/site-packages/langsmith/sandbox/_sandbox.pyÚ	from_dictÚSandbox.from_dicth   s2  € ñ" ò 
Ø—‘˜& "Ô%ð
àŸ(™( ?Ô3ð
ð �x‰x˜Œ~ð
ð —8‘8˜H gÔ.ð	
ð
  Ÿ8™8Ð$4Ô5ð
ð —x‘x Ô-ð
ð —x‘x Ô-ð
ð "ŸX™XÐ&8Ô9ð
ð '+§h¡hÐ/JÔ&Kð
ð —x‘x Ô-ð
ð Ÿ™ Ô/ð
ð —(‘(˜7Ô#ð
ð —h‘h˜{Ô+ð
ð #Ÿh™hÐ':Ô;ð
ñ ð
ñ  %ð!
ð 	
ó    )rC   c               óÌ  • SSK Jn  U" S0 SU R                  _SU R                  _SU R                  _SU R
                  _SU R                  _SU R                  _S	U R                  _S
U R                  _SU R                  _SU R                  _SU R                  _SU R                  _SU R                  _SU R                  _SUb  UOU R                   R#                  5       _SS_6$ )aÒ  Create an AsyncSandbox for the same underlying sandbox.

The returned instance has ``auto_delete`` disabled so the sandbox's
lifecycle stays tied to this instance; both refer to the same
server-side sandbox.

Args:
    client: AsyncSandboxClient to use for operations. If not provided,
        one is created with the same configuration as this sandbox's
        client (see :meth:`SandboxClient.to_async`).

Returns:
    AsyncSandbox referring to the same sandbox.
r   r    r'   r)   r*   r,   r-   r.   r/   r1   r2   r3   r4   r5   r6   r7   r:   r<   Fr?   )Ú langsmith.sandbox._async_sandboxr!   r'   r)   r*   r,   r-   r.   r/   r1   r2   r3   r4   r5   r6   r7   r:   Úto_async)ÚselfrC   r!   s      rE   rK   ÚSandbox.to_asyncŒ   s
  € õ 	Báò 
Ø—’ð
à×,Ò,ð
ð �wŠwð
ð —;’;ð	
ð
  ×.Ò.ð
ð —’ð
ð —’ð
ð "×2Ò2ð
ð '+×&DÒ&Dð
ð —’ð
ð ×(Ò(ð
ð —*’*ð
ð —n’nð
ð #×4Ò4ð
ð %Ñ0‘F°d·l±l×6KÑ6KÓ6Møð
ñ  ð!
ð 	
rH   c                ó   • U $ )zEnter context manager.r?   ©rL   s    rE   Ú	__enter__ÚSandbox.__enter__°   s   € àˆrH   c                ó”   • U R                   (       a'   U R                  R                  U R                  5        gg! [         a     gf = f)z6Exit context manager, optionally deleting the sandbox.N)r<   r:   Údelete_sandboxr'   Ú	Exception)rL   Úexc_typeÚexc_valÚexc_tbs       rE   Ú__exit__ÚSandbox.__exit__´   sA   € ð ××ðØ—‘×+Ñ+¨D¯I©IÕ6ð øô ó áðús   “%: º
AÁAc                ón   • U R                   (       d  [        SU R                   S35      eU R                   $ )a›  Return the dataplane URL.

The client does not gate on lifecycle status: a stopped sandbox is
resumed by the platform when the dataplane request arrives, so only the
presence of a URL is required here. A genuinely not-ready box surfaces
the server's ``SandboxNotReadyError`` from the request itself.

Returns:
    The dataplane URL.

Raises:
    DataplaneNotConfiguredError: If dataplane_url is not configured.
z	Sandbox 'zW' does not have a dataplane_url configured. Runtime operations require a dataplane URL.)r)   r   r'   rO   s    rE   Ú_require_dataplane_urlÚSandbox._require_dataplane_urlÂ   s=   € ð ×!×!Ü-Ø˜DŸI™I˜;ð '>ð >óð ð ×!Ñ!Ð!rH   .)ÚtimeoutÚenvÚcwdÚshellÚ	on_stdoutÚ	on_stderrÚidle_timeoutÚkill_on_disconnectÚttl_secondsÚptyÚheadersÚwaitc               ó   • g ©Nr?   ©rL   Úcommandr]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   s                 rE   ÚrunÚSandbox.run×   s   € ð" rH   )r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   c               ó   • g rj   r?   rk   s                 rE   rm   rn   ê   s   € ð" rH   é<   z	/bin/bashi,  iX  c               óL  • U(       d  U(       d  U(       a  [        S5      eU R                  5         U(       + =(       d    U=(       d    UnU(       a  U R                  UUUUUUUUUU	U
UUS9$ [        (       a  U R                  UUUUUSSSUU	U
UUS9$ U R	                  UUUUUUS9$ )aû  Execute a command in the sandbox.

Args:
    command: Shell command to execute.
    timeout: Command timeout in seconds.
    env: Environment variables to set for the command.
    cwd: Working directory for command execution. If None, uses sandbox default.
    shell: Shell to use for command execution. Defaults to "/bin/bash".
    on_stdout: Callback invoked with each stdout chunk as it arrives.
        Blocks until the command completes and returns ExecutionResult.
        Cannot be combined with wait=False.
    on_stderr: Callback invoked with each stderr chunk as it arrives.
        Blocks until the command completes and returns ExecutionResult.
        Cannot be combined with wait=False.
    idle_timeout: Idle timeout in seconds. If the command has no
        connected clients for this duration, it is killed. Defaults
        to 300 (5 minutes). Set to -1 for no idle timeout.
        Only applies to WebSocket execution.
    kill_on_disconnect: If True, kill the command immediately when
        the last client disconnects. Defaults to False (command
        continues running and can be reconnected to).
    ttl_seconds: How long (in seconds) a finished command's session
        is kept for reconnection. Defaults to 600 (10 minutes).
        Set to -1 to keep indefinitely.
    pty: If True, allocate a pseudo-terminal for the command.
        Useful for commands that require a TTY (e.g., interactive
        programs, commands that use terminal control codes).
        Defaults to False.
    wait: If True (default), block until the command completes and
        return ExecutionResult. If False, return a
        CommandHandle immediately for streaming output,
        kill, stdin input, and reconnection. Cannot be combined with
        on_stdout/on_stderr callbacks.

Returns:
    ExecutionResult when wait=True (default).
    CommandHandle when wait=False.

Raises:
    ValueError: If wait=False is combined with callbacks.
    DataplaneNotConfiguredError: If dataplane_url is not configured.
    SandboxOperationError: If command execution fails.
    CommandTimeoutError: If command exceeds its timeout.
    SandboxConnectionError: If connection to sandbox fails after retries.
    SandboxNotReadyError: If sandbox is not ready.
    SandboxClientError: For other errors.
z}Cannot combine wait=False with on_stdout/on_stderr callbacks. Use wait=False and iterate the CommandHandle, or use callbacks.)r]   r^   r_   r`   rh   ra   rb   rc   rd   re   rf   rg   TN)r]   r^   r_   r`   rg   )Ú
ValueErrorr[   Ú_run_wsr   Ú	_run_http)rL   rl   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   Úuse_wss                  rE   rm   rn   ý   sï   € ö@ ž¦iÜðRóð ð
 	×#Ñ#Ô%ð ”×3˜Y×3¨)ˆÞØ—<‘<ØØØØØØØ#Ø#Ø)Ø#5Ø'ØØð  ð ð ÷$  ÒØ—<‘<ØØØØØØØØØ)Ø#5Ø'ØØð  ð ð ð �~‰~ØØØØØØð ð 
ð 	
rH   )rc   rd   re   rf   rg   c          
     ó  • SSK nSSKJn  SSKJn  U R                  5       nU R                  R                  nU" 5       R                  nUUUUUU	U
UUS.	nU R                  R                  U5      nU(       a  UUS'   Sn[        5       n [        U5      US'   U" UUU40 UD6u  nn [        UUU UUS9n U(       d  U$ UR.                  $ ! [        [        4 a°  nUS	-  nU[        R                  :”  a  e [!        [        R"                  S
US	-
  -  -  [        R$                  5      n['        U[        5      (       a  [)        UU5      nUb&  UUR+                  5       -
  nUS::  a  e [!        UU5      nUR-                  U5         SnAOSnAff = fGM  )z"Execute via WebSocket /execute/ws.r   N)Úrun_ws_stream)Úuuid7)	Ú
command_idr]   r^   r_   r`   rc   rd   re   rf   rg   Úopen_timeout)ra   rb   é   é   )ÚtimeÚlangsmith.sandbox._ws_executerw   Úlangsmith.uuidrx   r[   r:   Ú_api_keyÚhexÚ_ws_default_headersr   r   r   r   r   ÚMAX_AUTO_RECONNECTSÚminÚ_BACKOFF_BASEÚ_BACKOFF_MAXÚ
isinstancer   Ú	monotonicÚsleepÚresult)rL   rl   r]   r^   r_   r`   rh   ra   rb   rc   rd   re   rf   rg   r}   rw   rx   r)   Úapi_keyry   Ú	ws_kwargsÚmergedÚattemptÚdeadlineÚ
msg_streamÚcontrolÚhandleÚexcÚbackoffÚ	remainings                                 rE   rs   ÚSandbox._run_wss  s³  € ó$ 	å?Ý(à×3Ñ3Ó5ˆØ—,‘,×'Ñ'ˆñ “W—[‘[ˆ
ð %ØØØØØ(Ø"4Ø&Øñ
%
ˆ	ð —‘×1Ñ1°'Ó:ˆÞØ#)ˆI�iÑ àˆÜ#Ó%ˆØÜ(8¸Ó(BˆI�nÑ%Ù"/ØØØñ#ð ñ	#ÑˆJ˜ð$Ü&ØØØØ'Ø'ñ�ð ö. ØˆMà�}‰}Ðøô1 *Ü/ðó $ð ˜1‘�Øœ]×>Ñ>Ó>ØÜÜ!×/Ñ/°1¸À1¹Ñ3EÑFÜ!×.Ñ.ó�ô ˜cÔ#B×CÑCÜ*¨3°Ó8�GØÑ'Ø (¨4¯>©>Ó+;Ñ ;�IØ  A“~ØÜ! '¨9Ó5�GØ—
‘
˜7×#Ñ#ûð)$úò# s   Â%C ÃFÃB&FÆFc               óà  • U R                  5       nU S3nUUUS.n	Ub  X9S'   Ub  XIS'    U R                  R                  R                  UU	US-   U R                  R	                  U5      S9n
U
R                  5         U
R                  5       n[        UR                  SS	5      UR                  S
S	5      UR                  SS5      S9$ ! [        R                   a  n[        U5        e SnAff = f)z9Execute via HTTP POST /execute (existing implementation).z/execute)rl   r]   r`   Nr^   r_   é
   )Újsonr]   rg   Ústdoutr>   ÚstderrÚ	exit_codeéÿÿÿÿ)rš   r›   rœ   )r[   r:   Ú_httpÚpostÚ_request_headersÚraise_for_statusr™   r   r@   r   ÚHTTPStatusErrorr   )rL   rl   r]   r^   r_   r`   rg   r)   ÚurlÚpayloadÚresponserB   Úes                rE   rt   ÚSandbox._run_httpÐ  sþ   € ð ×3Ñ3Ó5ˆØ�˜xÐ(ˆàØØñ#
ˆð
 ‰?Ø �E‰NØ‰?Ø �E‰Nð	Ø—|‘|×)Ñ)×.Ñ.ØØØ "™ØŸ™×5Ñ5°gÓ>ð	 /ð ˆHð ×%Ñ%Ô'Ø—=‘=“?ˆDÜ"Ø—x‘x ¨"Ó-Ø—x‘x ¨"Ó-ØŸ(™( ;°Ó3ñð øô
 ×$Ñ$ó 	Ü% aÔ(Øûð	ús   «BC ÃC-ÃC(Ã(C-r   )Ústdout_offsetÚstderr_offsetrg   c          	     óæ   • SSK Jn  U R                  5       nU R                  R                  nUUS.nU R                  R                  U5      n	U	(       a  X˜S'   U" UUU40 UD6u  p«[        U
UU UUUS9$ )aS  Reconnect to a running or recently-finished command.

Resumes output from the given byte offsets. Any output produced while
the client was disconnected is replayed from the server's ring buffer.

Args:
    command_id: The command ID from handle.command_id.
    stdout_offset: Byte offset to resume stdout from (default: 0).
    stderr_offset: Byte offset to resume stderr from (default: 0).

Returns:
    A CommandHandle for the command.

Raises:
    SandboxOperationError: If command_id is not found or session expired.
    SandboxConnectionError: If connection to sandbox fails after retries.
r   )Úreconnect_ws_stream)r¨   r©   rg   )ry   r¨   r©   )r~   r«   r[   r:   r€   r‚   r   )rL   ry   r¨   r©   rg   r«   r)   r‹   Úreconnect_kwargsr�   r�   r‘   s               rE   Ú	reconnectÚSandbox.reconnectù  s—   € õ2 	Fà×3Ñ3Ó5ˆØ—,‘,×'Ñ'ˆð +Ø*ñ,
Ðð —‘×1Ñ1°'Ó:ˆÞØ*0˜YÑ'á1ØØØñ
ð ñ	
Ñˆ
ô ØØØØ!Ø'Ø'ñ
ð 	
rH   ©r]   rg   c          	     ó„  • U R                  5       nU S3n[        U[        5      (       a  UR                  S5      nSSU40n U R                  R
                  R                  USU0UUU R                  R                  U5      S9nUR                  5         g! [        R                   a  n	[        U	5         Sn	A	gSn	A	ff = f)aÒ  Write content to a file in the sandbox.

Args:
    path: Target file path in the sandbox.
    content: File content (str or bytes).
    timeout: Request timeout in seconds.

Raises:
    DataplaneNotConfiguredError: If dataplane_url is not configured.
    SandboxOperationError: If file write fails.
    SandboxConnectionError: If connection to sandbox fails after retries.
    SandboxNotReadyError: If sandbox is not ready.
    SandboxClientError: For other errors.
z/uploadzutf-8ÚfileÚpath)ÚparamsÚfilesr]   rg   N)r[   r‡   r&   Úencoder:   rž   rŸ   r    r¡   r   r¢   r   )
rL   r²   Úcontentr]   rg   r)   r£   r´   r¥   r¦   s
             rE   ÚwriteÚSandbox.write/  s¿   € ð, ×3Ñ3Ó5ˆØ�˜wÐ'ˆô �gœs×#Ñ#Ø—n‘n WÓ-ˆGà˜& 'Ð*Ð+ˆð
	)Ø—|‘|×)Ñ)×.Ñ.ØØ �~ØØØŸ™×5Ñ5°gÓ>ð /ð ˆHð ×%Ñ%Õ'øÜ×$Ñ$ó 	)Ü% a×(Ñ(ûð	)ús   ÁAB ÂB?Â*B:Â:B?c               ó¤  • U R                  5       nU S3n U R                  R                  R                  USU0UU R                  R	                  U5      S9nUR                  5         UR                  $ ! [        R                   aG  nUR                  R                  S:X  a  [        SU SU R                   S3SS	9Ue[        U5        e S
nAff = f)aX  Read a file from the sandbox.

Args:
    path: File path to read. Supports both absolute paths (e.g., /tmp/file.txt)
          and relative paths (resolved from /home/user/).
    timeout: Request timeout in seconds.

Returns:
    File contents as bytes.

Raises:
    DataplaneNotConfiguredError: If dataplane_url is not configured.
    ResourceNotFoundError: If the file doesn't exist.
    SandboxOperationError: If file read fails.
    SandboxConnectionError: If connection to sandbox fails after retries.
    SandboxNotReadyError: If sandbox is not ready.
    SandboxClientError: For other errors.
z	/downloadr²   )r³   r]   rg   i”  zFile 'z' not found in sandbox 'Ú'r±   )Úresource_typeN)r[   r:   rž   r@   r    r¡   r¶   r   r¢   r¥   Ústatus_coder   r'   r   )rL   r²   r]   rg   r)   r£   r¥   r¦   s           rE   ÚreadÚSandbox.readZ  sÜ   € ð* ×3Ñ3Ó5ˆØ�˜yÐ)ˆð	Ø—|‘|×)Ñ)×-Ñ-ØØ �~ØØŸ™×5Ñ5°gÓ>ð	 .ð ˆHð ×%Ñ%Ô'Ø×#Ñ#Ð#øÜ×$Ñ$ó 	Ø�z‰z×%Ñ%¨Ó,Ü+Ø˜T˜FÐ":¸4¿9¹9¸+ÀQÐGØ"(ñð ðô & aÔ(àûð	ús   —AA4 Á4CÂAC
Ã
Cé   ©Ú
local_portÚmax_reconnectsrg   c          	     ó  • SUs=::  a  S::  d  O  [        SU S35      eU(       a  SUs=::  a  S::  d  O  [        SU S35      eU R                  5       nU R                  R                  n[	        UUUUUUS9nUR                  5         U$ )aF  Open a TCP tunnel to a port inside the sandbox.

Creates a local TCP listener that forwards connections through a
yamux-multiplexed WebSocket to the specified port inside the sandbox.
Works with any TCP protocol (databases, Redis, HTTP, etc.).

Use as a context manager for automatic cleanup::

    with sandbox.tunnel(remote_port=5432) as t:
        conn = psycopg2.connect(host="127.0.0.1", port=t.local_port)

Or manage the lifecycle explicitly::

    t = sandbox.tunnel(remote_port=5432)
    # ... use tunnel ...
    t.close()

Args:
    remote_port: TCP port inside the sandbox to tunnel to (1-65535).
    local_port: Local port to listen on. Defaults to mirroring
        remote_port. Use 0 to let the OS pick an available port.
    max_reconnects: Maximum number of automatic reconnect attempts
        when the WebSocket session drops. Set to 0 to disable.

Returns:
    A Tunnel instance (context manager).

Raises:
    ValueError: If port values are out of range.
    DataplaneNotConfiguredError: If dataplane_url is not configured.
    SandboxNotReadyError: If sandbox is not ready.
r{   iÿÿ  z-remote_port must be between 1 and 65535 (got Ú)z,local_port must be between 1 and 65535 (got rÀ   )rr   r[   r:   r€   r   Ú_start)rL   Úremote_portrÁ   rÂ   rg   r)   r‹   Úts           rE   ÚtunnelÚSandbox.tunnel…  s    € ðP �KÕ( 5Õ(ÜØ?À¸}ÈAÐNóð ö ˜a :Õ6°Õ6ÜØ>¸z¸lÈ!ÐLóð ð ×3Ñ3Ó5ˆØ—,‘,×'Ñ'ˆÜØØØØ!Ø)Øñ
ˆð 	
�‰Œ
ØˆrH   ©Úexpires_in_secondsrg   c               óN   • U R                   R                  U R                  UUUS9$ )aQ  Get an authenticated URL for a service running in this sandbox.

Returns a :class:`ServiceURL` whose properties auto-refresh the
token transparently before it expires.

Args:
    port: Port the service is listening on inside the sandbox.
    expires_in_seconds: Token TTL in seconds (1--86400, default 600).
    headers: Optional per-request header overrides.

Returns:
    ServiceURL with auto-refreshing token and HTTP helpers.

Raises:
    ResourceNotFoundError: If sandbox not found.
    ValueError: If port or expires_in_seconds is out of range.
    SandboxClientError: For other errors.
rÊ   )r:   Úservicer'   )rL   ÚportrË   rg   s       rE   rÍ   ÚSandbox.serviceÂ  s0   € ð2 �|‰|×#Ñ#Ø�I‰IØØ1Øð	 $ð 
ð 	
rH   ©rË   Úcontent_typeÚcontent_dispositionrg   c          	     óR   • U R                   R                  U R                  UUUUUS9$ )a  Create a link that downloads one file from this sandbox.

The link carries its own token, so anyone holding the URL can fetch
that one file without a LangSmith credential. Fetching wakes a
stopped sandbox.

Do not modify the file after minting a link for it. The link is
pinned to a path, not to a snapshot of the contents, so a later
write to that path may or may not be reflected in what the link
serves. Write a new file and mint a new link when the contents
change.

Args:
    path: File path inside the sandbox.
    expires_in_seconds: Link TTL in seconds. Omit for a link that
        never expires.
    content_type: Content-Type to serve the file as.
    content_disposition: Content-Disposition to serve the file with,
        either ``"attachment"`` or ``"inline"``.
    headers: Optional per-request header overrides.

Returns:
    DownloadURL with the link and its expiry, if any.

Raises:
    ResourceNotFoundError: If sandbox not found.
    ValueError: If expires_in_seconds is not positive.
    SandboxClientError: For other errors.
rÐ   )r:   Úgenerate_download_urlr'   )rL   r²   rË   rÑ   rÒ   rg   s         rE   rÔ   ÚSandbox.generate_download_urlâ  s7   € ðL �|‰|×1Ñ1Ø�I‰IØØ1Ø%Ø 3Øð 2ð 
ð 	
rH   éx   c               ó�   • U R                   R                  U R                  XS9nUR                  U l        UR                  U l        g)aÙ  Start a stopped sandbox and wait until ready.

After starting, the sandbox's status and dataplane_url are updated
in place.

Args:
    timeout: Timeout in seconds when waiting for ready.
    headers: Optional per-request header overrides.

Raises:
    ResourceNotFoundError: If sandbox not found.
    ResourceCreationError: If sandbox fails during startup.
    ResourceTimeoutError: If sandbox doesn't become ready within timeout.
    SandboxClientError: For other errors.
r¯   N)r:   Ústart_sandboxr'   r,   r)   )rL   r]   rg   Ú	refresheds       rE   ÚstartÚSandbox.start  sC   € ð* —L‘L×.Ñ.Ø�I‰I˜wð /ð 
ˆ	ð  ×&Ñ&ˆŒØ&×4Ñ4ˆÕrH   ©rg   c               óZ   • U R                   R                  U R                  US9  SU l        g)zãStop a running sandbox (preserves sandbox files for later restart).

Args:
    headers: Optional per-request header overrides.

Raises:
    ResourceNotFoundError: If sandbox not found.
    SandboxClientError: For other errors.
rÜ   ÚstoppedN)r:   Ústop_sandboxr'   r,   ©rL   rg   s     rE   ÚstopÚSandbox.stop,  s(   € ð 	�‰×!Ñ! $§)¡)°WÐ!Ñ=ð  ˆ�rH   c               óL   • U R                   R                  U R                  US9  g)z´Delete this sandbox.

Args:
    headers: Optional per-request header overrides.

Raises:
    ResourceNotFoundError: If sandbox not found.
    SandboxClientError: For other errors.
rÜ   N)r:   rS   r'   rà   s     rE   ÚdeleteÚSandbox.delete;  s   € ð 	�‰×#Ñ# D§I¡I°wÐ#Ò?rH   c               óN   • U R                   R                  U R                  UUUS9$ )aÁ  Capture a snapshot from this sandbox.

Args:
    name: Snapshot name.
    timeout: Timeout in seconds when waiting for ready.
    headers: Optional per-request header overrides.

Returns:
    Snapshot in "ready" status.

Raises:
    ResourceNotFoundError: If sandbox not found.
    ResourceTimeoutError: If snapshot doesn't become ready within timeout.
    ResourceCreationError: If snapshot capture fails.
    SandboxClientError: For other errors.
r¯   )r:   Úcapture_snapshotr'   )rL   r'   r]   rg   s       rE   rç   ÚSandbox.capture_snapshotG  s0   € ð. �|‰|×,Ñ,Ø�I‰IØØØð	 -ð 
ð 	
rH   )r)   r,   )T)rB   zdict[str, Any]rC   r"   rD   r;   Úreturnr$   )rC   zOptional[AsyncSandboxClient]ré   r!   )ré   r$   )rU   zOptional[type]rV   zOptional[BaseException]rW   zOptional[Any]ré   ÚNone)ré   r&   )rl   r&   r]   Úintr^   úOptional[dict[str, str]]r_   r(   r`   r&   ra   úOptional[Callable[[str], Any]]rb   rí   rc   rë   rd   r;   re   rë   rf   r;   rg   ÚRequestHeadersrh   zLiteral[True]ré   r   )rl   r&   r]   rë   r^   rì   r_   r(   r`   r&   ra   rí   rb   rí   rc   rë   rd   r;   re   rë   rf   r;   rg   rî   rh   zLiteral[False]ré   r   )rl   r&   r]   rë   r^   rì   r_   r(   r`   r&   ra   rí   rb   rí   rc   rë   rd   r;   re   rë   rf   r;   rg   rî   rh   r;   ré   ú%Union[ExecutionResult, CommandHandle])rl   r&   r]   rë   r^   rì   r_   r(   r`   r&   rh   r;   ra   rí   rb   rí   rc   rë   rd   r;   re   rë   rf   r;   rg   rî   ré   rï   )rl   r&   r]   rë   r^   rì   r_   r(   r`   r&   rg   rî   ré   r   )
ry   r&   r¨   rë   r©   rë   rg   rî   ré   r   )
r²   r&   r¶   zUnion[str, bytes]r]   rë   rg   rî   ré   rê   )r²   r&   r]   rë   rg   rî   ré   Úbytes)
rÆ   rë   rÁ   rë   rÂ   rë   rg   rî   ré   r   )rÎ   rë   rË   rë   rg   rî   ré   r   )r²   r&   rË   r0   rÑ   r(   rÒ   z$Optional[DownloadContentDisposition]rg   rî   ré   r   )r]   rë   rg   rî   ré   rê   )rg   rî   ré   rê   )r'   r&   r]   rë   rg   rî   ré   r   )+Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r)   r*   r,   r-   r.   r/   r1   r2   r3   r4   r5   r6   r7   r   r:   r<   ÚclassmethodrF   rK   rP   rX   r[   r   rm   rs   rt   r­   r·   r½   rÈ   rÍ   rÔ   rÚ   rá   rä   rç   Ú__static_attributes__r?   rH   rE   r$   r$   *   sd  ‡ ñ&ðR ƒIØ#'€M�=Ó'Ø€BˆÓØ€FˆCÓØ$(€N�MÓ(Ø $€J�Ó$Ø $€J�Ó$Ø&*Ð�mÓ*Ø/3Ð˜}Ó3Ø $€J�Ó$Ø!%€K�Ó%Ø€Eˆ=ÓØ#€Iˆ}Ó#Ø'+Ð�}Ó+ñ #¨°tÑ<€Gˆ]Ó<Ù E°4Ñ8€L�$Ó8àð
 !ð	!
àð!
ð ð!
ð ð	!
ð
 
ô!
ó ð!
ðF BF÷ "
ôHðà ðð )ðð ð	ð
 
ôô"ð* ð
 Ø(+Ø ØØ47Ø47ØØ#&ØØØ"%Ø!ñàðð ð	ð
 &ðð ðð ðð 2ðð 2ðð ðð !ðð ðð ðð  ðð ðð  
ô!ó ðð$ ð
 Ø(+Ø ØØ47Ø47ØØ#&ØØØ"%ñàðð ð	ð
 &ðð ðð ðð 2ðð 2ðð ðð !ðð ðð ðð  ðð ðð  
ô!ó ðð, Ø(,Ø!Ø Ø48Ø48ØØ#(ØØØ"&Øñt
àðt
ð ð	t
ð
 &ðt
ð ðt
ð ðt
ð 2ðt
ð 2ðt
ð ðt
ð !ðt
ð ðt
ð ðt
ð  ðt
ð ðt
ð  
/õ!t
ðB  Ø#(ØØØ"&ñ[àð[ð ð	[ð
 &ð[ð ð[ð ð[ð ð[ð 2ð[ð 2ð[ð ð[ð !ð[ð ð[ð ð[ð  ð[ð  
/õ![ðz'àð'ð ð	'ð
 &ð'ð ð'ð ð'ð  ð'ð 
ô'ðZ ØØ"&ñ4
àð4
ð ð	4
ð
 ð4
ð  ð4
ð 
õ4
ðv Ø"&ñ))àð))ð #ð))ð
 ð))ð  ð))ð 
õ))ðX ,.Èñ)Øð)Ø%(ð)Ø8Fð)à	õ)ð^ ØØ"&ñ;àð;ð ð	;ð
 ð;ð  ð;ð 
õ;ðB #&Ø"&ñ
àð
ð  ð	
ð
  ð
ð 
õ
ðH -1Ø&*ØDHØ"&ñ-
àð-
ð *ð	-
ð
 $ð-
ð Bð-
ð  ð-
ð 
õ-
ðd Ø"&ñ	5ð ð5ð  ð	5ð
 
õ5ð6 15÷  ð 37÷ 
@ð  Ø"&ñ
àð
ð ð	
ð
  ð
ð 
÷
ð 
rH   r$   N)0rõ   Ú
__future__r   Úcollections.abcr   Údataclassesr   r   Útypingr   r   r	   r
   r   r   r   Ú langsmith._openapi_client._httpxr   Úlangsmith.sandbox._exceptionsr   r   r   Úlangsmith.sandbox._helpersr   Úlangsmith.sandbox._modelsr   r   r   r   r   r   r   Úlangsmith.sandbox._tunnelr   r~   r   r   r   r   Úlangsmith.sandbox._async_clientr   rJ   r!   Úlangsmith.sandbox._clientr"   r&   rî   r$   r?   rH   rE   Ú<module>r     sŠ   ðÙ Eå "å #ß (ß S× SÑ Så 2÷ñ õ
 A÷÷ ñ õ -÷ó ö ÝBÝ=Ý7ð ˜' # s (Ñ+Ñ,€ð ÷x
ð x
ó ñx
rH   