
    i(                        d Z ddlmZ ddlZddlmZmZmZmZ er ddl	m
Z
 ddlmZ ddlmZ ddlmZ eez  e
z  Zdd	Ze G d
 de             ZddZy)z'Shared decorator utilities for FastMCP.    )annotationsN)TYPE_CHECKINGAnyProtocolruntime_checkable)
PromptMeta)ResourceMeta)
TaskConfig)ToolMetac                    | | S dS )z.Resolve task config, defaulting None to False.F )tasks    b/Users/bowang/.openclaw/workspace/ChatDev/.venv/lib/python3.12/site-packages/fastmcp/decorators.pyresolve_task_configr      s    #4..    c                      e Zd ZU dZded<   y)HasFastMCPMetaz7Protocol for callables decorated with FastMCP metadata.r   __fastmcp__N)__name__
__module____qualname____doc____annotations__r   r   r   r   r      s    Ar   r   c                &   t        | d      r| j                  S t        | d      r,t        | j                  d      r| j                  j                  S 	 t        j                  |       }|| urt        |d      r|j                  S y# t
        $ r Y yw xY w)zNExtract FastMCP metadata from a function, handling bound methods and wrappers.r   __func__N)hasattrr   r   inspectunwrap
ValueError)fn	unwrappeds     r   get_fastmcp_metar"      s    r=!~~r:72;;#F{{&&&NN2&	B79m#D(((   s   0B 	BB)r   zbool | TaskConfig | Nonereturnzbool | TaskConfig)r    r   r#   z
Any | None)r   
__future__r   r   typingr   r   r   r   fastmcp.prompts.function_promptr   #fastmcp.resources.function_resourcer	   fastmcp.server.tasks.configr
   fastmcp.tools.function_toolr   FastMCPMetar   r   r"   r   r   r   <module>r+      sW    - "  B B:@64\)J6K/
 X  r   