
    Ch+                        S r SSKJr  SSKJrJr  SSKJrJr  SSK	J
r
  \(       a  SSKJr  SSKJr  SSKJrJr  \
" \5      r " S	 S
5      rg)z Prompt management functionality.    )annotations)TYPE_CHECKINGAny)MessagePrompt)
get_logger)Context)ServerSessionT)LifespanContextTRequestTc                  l    \ rS rSrSrS
SS jjrSS jrSS jr    SS jr  S       SS jjr	S	r
g)PromptManager   zManages FastMCP prompts.c                    0 U l         Xl        g )N_promptswarn_on_duplicate_prompts)selfr   s     \/home/james-whalen/.local/lib/python3.13/site-packages/mcp/server/fastmcp/prompts/manager.py__init__PromptManager.__init__   s    +-)B&    c                8    U R                   R                  U5      $ )zGet prompt by name.)r   get)r   names     r   
get_promptPromptManager.get_prompt   s    }}  &&r   c                H    [        U R                  R                  5       5      $ )zList all registered prompts.)listr   values)r   s    r   list_promptsPromptManager.list_prompts   s    DMM((*++r   c                    U R                   R                  UR                  5      nU(       a5  U R                  (       a"  [        R                  SUR                   35        U$ XR                   UR                  '   U$ )zAdd a prompt to the manager.zPrompt already exists: )r   r   r   r   loggerwarning)r   promptexistings      r   
add_promptPromptManager.add_prompt!   sZ     ==$$V[[1--!8FGO%+fkk"r   Nc                   #    U R                  U5      nU(       d  [        SU 35      eUR                  X#S9I Sh  vN $  N7f)z'Render a prompt by name with arguments.zUnknown prompt: )contextN)r   
ValueErrorrender)r   r   	argumentsr+   r&   s        r   render_promptPromptManager.render_prompt1   sB      &/v677]]9]>>>>s   9AA Ar   )T)r   bool)r   strreturnzPrompt | None)r3   zlist[Prompt])r&   r   r3   r   )NN)r   r2   r.   zdict[str, Any] | Noner+   z:Context[ServerSessionT, LifespanContextT, RequestT] | Noner3   zlist[Message])__name__
__module____qualname____firstlineno____doc__r   r   r!   r(   r/   __static_attributes__ r   r   r   r      se    "C', 
& ,0NR	?? )? L	?
 
? ?r   r   N)r8   
__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   r4   r$   r   r:   r   r   <module>rB      s4    & " % ; ;11=	H	*? *?r   