§
    öŽ’jf  ã                   óŽ   — d Z ddlmZ ddlmZmZmZmZ dededefd„Z	dedefd	„Z
dedefd
„Zdedz  ddfd„Zdedz  ddfd„ZdS )a  
Tasks capability checking utilities.

This module provides functions for checking and requiring task-related
capabilities. All tasks capability logic is centralized here to keep
the main session code clean.

WARNING: These APIs are experimental and may change without notice.
é    )ÚMcpError)ÚINVALID_REQUESTÚClientCapabilitiesÚClientTasksCapabilityÚ	ErrorDataÚrequiredÚclientÚreturnc                 ó"  — | j         €dS |j         €dS | j         j        �2|j         j        €dS | j         j        j        �|j         j        j        €dS | j         j        �2|j         j        €dS | j         j        j        �|j         j        j        €dS dS )a  
    Check if client's tasks capability matches the required capability.

    Args:
        required: The capability being checked for
        client: The client's declared capabilities

    Returns:
        True if client has the required capability, False otherwise
    NTF)ÚrequestsÚelicitationÚcreateÚsamplingÚcreateMessage)r   r	   s     úXC:\Projects\DSCons\.venv\Lib\site-packages\mcp\shared\experimental\tasks\capabilities.pyÚcheck_tasks_capabilityr      s¤   € ð ÔÐ ØˆtØ„ÐØˆuð ÔÔ$Ð0ØŒ?Ô&Ð.Ø�5ØÔÔ(Ô/Ð;ØŒÔ*Ô1Ð9Ø�uð ÔÔ!Ð-ØŒ?Ô#Ð+Ø�5ØÔÔ%Ô3Ð?ØŒÔ'Ô5Ð=Ø�uàˆ4ó    Úcapsc                 ó†   — | j         €dS | j         j        €dS | j         j        j        €dS | j         j        j        j        duS )zACheck if capabilities include task-augmented elicitation support.NF)Útasksr   r   r   ©r   s    r   Úhas_task_augmented_elicitationr   :   sH   € à„zÐØˆuØ„zÔÐ"ØˆuØ„zÔÔ&Ð.ØˆuØŒ:ÔÔ*Ô1¸Ð=Ð=r   c                 ó†   — | j         €dS | j         j        €dS | j         j        j        €dS | j         j        j        j        duS )z>Check if capabilities include task-augmented sampling support.NF)r   r   r   r   r   s    r   Úhas_task_augmented_samplingr   E   sH   € à„zÐØˆuØ„zÔÐ"ØˆuØ„zÔÔ#Ð+ØˆuØŒ:ÔÔ'Ô5¸TÐAÐAr   Úclient_capsNc                 ón   — | �t          | ¦  «        s#t          t          t          d¬¦  «        ¦  «        ‚dS )a  
    Raise McpError if client doesn't support task-augmented elicitation.

    Args:
        client_caps: The client's declared capabilities, or None if not initialized

    Raises:
        McpError: If client doesn't support task-augmented elicitation
    Nz2Client does not support task-augmented elicitation©ÚcodeÚmessage)r   r   r   r   ©r   s    r   Ú"require_task_augmented_elicitationr!   P   sJ   € ð ÐÕ"@ÀÑ"MÔ"MÐÝÝÝ$ØLðñ ô ñ
ô 
ð 	
ð Ðr   c                 ón   — | �t          | ¦  «        s#t          t          t          d¬¦  «        ¦  «        ‚dS )zû
    Raise McpError if client doesn't support task-augmented sampling.

    Args:
        client_caps: The client's declared capabilities, or None if not initialized

    Raises:
        McpError: If client doesn't support task-augmented sampling
    Nz/Client does not support task-augmented samplingr   )r   r   r   r   r    s    r   Úrequire_task_augmented_samplingr#   c   sJ   € ð ÐÕ"=¸kÑ"JÔ"JÐÝÝÝ$ØIðñ ô ñ
ô 
ð 	
ð Ðr   )Ú__doc__Úmcp.shared.exceptionsr   Ú	mcp.typesr   r   r   r   Úboolr   r   r   r!   r#   © r   r   ú<module>r)      s5  ððð ð +Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ð#Ø#ð#à!ð#ð 
ð#ð #ð #ð #ðL>Ð);ð >Àð >ð >ð >ð >ðBÐ&8ð B¸Tð Bð Bð Bð Bð
Ð4FÈÑ4Mð 
ÐRVð 
ð 
ð 
ð 
ð&
Ð1CÀdÑ1Jð 
Ètð 
ð 
ð 
ð 
ð 
ð 
r   