o
    i"                     @  s   d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ d
Zd$ddZd%ddZd&ddZd&ddZd&ddZd'd"d#ZdS )(zPrompt command for Logfire CLI.    )annotationsN)Path)Any)Console)
parse_auth)LogfireClient)LogfireConfigErrorzr
[mcp_servers.logfire]
command = "uvx"
args = ["logfire-mcp@latest"]
env = {{ "LOGFIRE_READ_TOKEN" = "{token}" }}
argsargparse.NamespacereturnNonec                 C  s   t tjd}zt| j}W n ty!   t|  t| j}Y nw | jr/t	|| j
| j| n| jr<t|| j
| j| n| jrHt|| j
| j| || j
| j| j}tj|d  dS )zkCreates a prompt to be used with your favorite LLM.

    The prompt assumes you are using Logfire MCP.
    )filepromptN)r   sysstderrr   from_urllogfire_urlr   r   claudeconfigure_claudeorganizationprojectcodexconfigure_codexopencodeconfigure_opencode
get_promptissuestdoutwrite)r	   consoleclientresponse r"   b/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/logfire/_internal/cli/prompt.pyparse_prompt   s   r$   r    r   r   strr   r   r   c                 C  s"   |j ddd | ||}|d S )Nz6Logfire MCP server not found. Creating a read token...yellowstyletoken)printcreate_read_token)r    r   r   r   r!   r"   r"   r#   _create_read_token5   s   r,   c                 C  st   t ds|d td tg d}d|dvr8t| |||}tt	d| d |jd	d
d d S d S )Nr   zIclaude is not installed. Install `claude`, or remove the `--claude` flag.   )r   mcplistlogfire-mcputf-8z-claude mcp add logfire -e LOGFIRE_READ_TOKEN=z -- uvx logfire-mcp@latestz#Logfire MCP server added to Claude.greenr'   )
shutilwhichr*   exit
subprocesscheck_outputdecoder,   shlexsplit)r    r   r   r   outputr)   r"   r"   r#   r   ;   s   

r   c           	      C  s   t ds|d td ttdt d }|d }| s+|d td |	 }d|vrPt
| |||}tj|d	}|||  |jd
dd d S d S )Nr   zFcodex is not installed. Install `codex`, or remove the `--codex` flag.r-   
CODEX_HOMEz.codexzconfig.tomlzKCodex config file not found. Install `codex`, or remove the `--codex` flag.r0   r)   z"Logfire MCP server added to Codex.r2   r'   )r3   r4   r*   r5   r   osgetenvhomeexists	read_textr,   LOGFIRE_MCP_TOMLformat
write_text)	r    r   r   r   
codex_homecodex_configcodex_config_contentr)   mcp_server_tomlr"   r"   r#   r   I   s   


r   c           
      C  s   t ds|d td z	tg d}W n tjy%   t }Y n
w t|	d
 }|d }|  | }d|vr{t| |||}|sU|tjt|dd	 nt|}	|	d
i  dt|i|	d
< |tj|	dd	 |jddd d S d S )Nr   zOopencode is not installed. Install `opencode`, or remove the `--opencode` flag.r-   )gitz	rev-parsez--show-toplevelr1   zopencode.jsoncr0      )indentr.   z%Logfire MCP server added to OpenCode.r2   r'   )r3   r4   r*   r5   r6   r7   CalledProcessErrorr   cwdr8   striptouchrB   r,   rE   jsondumpsopencode_mcp_jsonloads
setdefault)
r    r   r   r   r;   root_diropencode_configopencode_config_contentr)   opencode_config_jsonr"   r"   r#   r   ]   s,   


r   r)   dict[str, Any]c                 C  s   dddddgd| idiiS )Nr.   r0   localuvxzlogfire-mcp@latestLOGFIRE_READ_TOKEN)typecommandenvironmentr"   r=   r"   r"   r#   rS   |   s   rS   )r	   r
   r   r   )
r    r   r   r%   r   r%   r   r   r   r%   )
r    r   r   r%   r   r%   r   r   r   r   )r)   r%   r   rZ   )__doc__
__future__r   argparserQ   r>   r9   r3   r6   r   pathlibr   typingr   rich.consoler   logfire._internal.cli.authr   logfire._internal.clientr   logfire.exceptionsr   rC   r$   r,   r   r   r   rS   r"   r"   r"   r#   <module>   s,    




