
    Ki+                        d Z ddlmZ ddlmZmZ ddlmZmZ ddl	m
Z
 erddlmZ ddlmZ ddlmZmZ  e
e      Z G d	 d
      Zy)z Prompt management functionality.    )annotations)TYPE_CHECKINGAny)MessagePrompt)
get_logger)Context)ServerSessionT)LifespanContextTRequestTc                  V    e Zd ZdZdd	dZd
dZddZ	 	 	 	 ddZ	 	 d	 	 	 	 	 	 	 ddZy)PromptManagerzManages FastMCP prompts.c                     i | _         || _        y )N)_promptswarn_on_duplicate_prompts)selfr   s     n/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/mcp/server/fastmcp/prompts/manager.py__init__zPromptManager.__init__   s    +-)B&    c                8    | j                   j                  |      S )zGet prompt by name.)r   get)r   names     r   
get_promptzPromptManager.get_prompt   s    }}  &&r   c                H    t        | j                  j                               S )zList all registered prompts.)listr   values)r   s    r   list_promptszPromptManager.list_prompts   s    DMM((*++r   c                    | j                   j                  |j                        }|r0| j                  r"t        j                  d|j                          |S || j                   |j                  <   |S )zAdd a prompt to the manager.zPrompt already exists: )r   r   r   r   loggerwarning)r   promptexistings      r   
add_promptzPromptManager.add_prompt!   s\     ==$$V[[1--!8FGO%+fkk"r   Nc                   K   | j                  |      }|st        d|       |j                  ||       d{   S 7 w)z'Render a prompt by name with arguments.zUnknown prompt: )contextN)r   
ValueErrorrender)r   r   	argumentsr%   r!   s        r   render_promptzPromptManager.render_prompt1   sE      &/v677]]9g]>>>>s   8A?A)T)r   bool)r   strreturnzPrompt | None)r,   zlist[Prompt])r!   r   r,   r   )NN)r   r+   r(   zdict[str, Any] | Noner%   z:Context[ServerSessionT, LifespanContextT, RequestT] | Noner,   zlist[Message])	__name__
__module____qualname____doc__r   r   r   r#   r)    r   r   r   r      s`    "C', 
& ,0NR	?? )? L	?
 
?r   r   N)r0   
__future__r   typingr   r   mcp.server.fastmcp.prompts.baser   r   $mcp.server.fastmcp.utilities.loggingr   mcp.server.fastmcp.serverr	   mcp.server.sessionr
   mcp.shared.contextr   r   r-   r   r   r1   r   r   <module>r9      s4    & " % ; ;11=	H	*? *?r   