o
    h+                     @  s   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r4ddlmZ ddlmZ ddlmZmZ e
eZG d	d
 d
ZdS )z Prompt management functionality.    )annotations)TYPE_CHECKINGAny)MessagePrompt)
get_logger)Context)ServerSessionT)LifespanContextTRequestTc                   @  sJ   e Zd ZdZddddZdddZdddZd ddZ		d!d"ddZdS )#PromptManagerzManages FastMCP prompts.Twarn_on_duplicate_promptsboolc                 C  s   i | _ || _d S )N)_promptsr   )selfr    r   c/var/www/html/openai_agents/venv/lib/python3.10/site-packages/mcp/server/fastmcp/prompts/manager.py__init__   s   
zPromptManager.__init__namestrreturnPrompt | Nonec                 C  s   | j |S )zGet prompt by name.)r   get)r   r   r   r   r   
get_prompt   s   zPromptManager.get_promptlist[Prompt]c                 C  s   t | j S )zList all registered prompts.)listr   values)r   r   r   r   list_prompts   s   zPromptManager.list_promptspromptr   c                 C  s>   | j |j}|r| jrtd|j  |S || j |j< |S )zAdd a prompt to the manager.zPrompt already exists: )r   r   r   r   loggerwarning)r   r   existingr   r   r   
add_prompt!   s   zPromptManager.add_promptN	argumentsdict[str, Any] | Nonecontext:Context[ServerSessionT, LifespanContextT, RequestT] | Nonelist[Message]c                   s2   |  |}|std| |j||dI dH S )z'Render a prompt by name with arguments.zUnknown prompt: )r%   N)r   
ValueErrorrender)r   r   r#   r%   r   r   r   r   render_prompt1   s
   
zPromptManager.render_prompt)T)r   r   )r   r   r   r   )r   r   )r   r   r   r   )NN)r   r   r#   r$   r%   r&   r   r'   )	__name__
__module____qualname____doc__r   r   r   r"   r*   r   r   r   r   r      s    


r   N)r.   
__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   r   r   r   r   <module>   s    