
    jKj,                       d Z ddlmZ ddlmZmZ ddlmZmZmZ ddl	m
Z
mZmZ ddlmZ ddlmZmZ ej$                  ej$                  ej&                  ej&                  ej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  ej>                  ej@                  ejB                  ejD                  ejF                  i
Z$eZ%dd	Z&dd
Z'	 d	 	 	 	 	 ddZ(ddZ)ddZ*ddZ+ddZ,ddZ-ddZ.ddZ/ddZ0ddZ1y)zTranslate a processed internal ``Event`` into 1-2 ``PostHogCaptureEvent``
payloads (the main ``$mcp_*`` event plus an optional ``$exception`` sibling).    )annotations)datetimetimezone)AnyDictList   )POSTHOG_MCP_ANALYTICS_SOURCEPostHogMCPAnalyticsEventPostHogMCPAnalyticsProperty)MCPAnalyticsEventType)EventPostHogCaptureEventc                R    | j                  d      xs | j                  d      xs dS )Nidentify_actor_given_id
session_id	anonymousgetevents    l/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/posthog/mcp/_posthog_events.py_get_distinct_idr   %   s'    		+,V		,0GV;    c                n    | j                  d      xs# t        j                  t        j                        S )N	timestamp)r   r   nowr   utcr   s    r   _get_timestampr   +   s#    99[!?X\\(,,%??r   c                    t        |       g}| j                  d      r/| j                  d      r|dur|j                  t        |              |S )Nis_errorerrorF)_build_capture_eventr   append_build_exception_event)r   enable_exception_autocapturebatchs      r   build_posthog_capture_eventsr(   /   sH     "%()E		*IIg(5+E23Lr   c                .   t         j                  t        i}t        | |       t	        | |       t        | |       t        | |       t        | |       t        | |       | j                  d      xs t        | d      }|t        |       |t        |       dS )N
event_name
event_typer   distinct_id
propertiesr   )_PSOURCEr
   _add_session_id_add_conversation_id_add_person_processing_add_groups_add_common_properties_add_custom_propertiesr   _BUILT_IN_EVENT_NAME_BY_TYPEr   r   )r   r.   r*   s      r   r#   r#   <   s    "$))-I!JJE:&
+5*-z"5*-5*- 			,T#?l@S#T  '. #E*	 r   c                    | j                  d      }t        |t              r#t        |      dkD  r||t        j
                  <   y y y )Nr   r   )r   
isinstancestrlenr/   
SESSION_ID)r   r.   r   s      r   r1   r1   P   s;    <(J*c"s:':$.
2==! (;"r   c                ^    | j                  d      }||dk7  r||t        j                  <   y y y )Nconversation_id )r   r/   CONVERSATION_ID)r   r.   r>   s      r   r2   r2   V   s6    ii 12O""'<)8
2%%& (="r   c                6    | j                  d      }|r||d<   y y )Ngroupsz$groupsr   )r   r.   rB   s      r   r4   r4   \   s"    YYx F &
9 r   c                2    | j                  d      sd|d<   y y )Nr   Fz$process_person_profiler   )r   r.   s     r   r3   r3   b   s!     99./05
,- 0r   c                F    | j                  d      t        j                  k(  S )Nr+   )r   r   MCP_TOOLS_CALLr   s    r   _is_tool_callrF   i   s    99\"&;&J&JJJr   c                p   | j                  d      r7| d   |t        j                  <   t        |       r| d   |t        j                  <   | j                  d      r!t        |       r| d   |t        j
                  <   | j                  d      r!t        |       r| d   |t        j                  <   | j                  d      rIt        | d         dkD  r8| j                  d      t        j                  k(  r| d   |t        j                  <   | j                  d      | d   |t        j                  <   | j                  d      r| d   |t        j                  <   | j                  d	      r| d	   |t        j                  <   | j                  d
      r| d
   |t        j                  <   | j                  d      r| d   |t        j                  <   | j                  d      r| d   |t        j                   <   | j                  d      r| d   |t        j"                  <   | j                  d      | d   |t        j$                  <   | j                  d      | d   |t        j&                  <   | j                  d      | d   |t        j(                  <   | j                  d      }|rt        |      dkD  ri ||d<   y y y )Nresource_nametool_descriptiontool_categorylisted_tool_namesr   r+   durationserver_nameserver_versionclient_nameclient_versionuser_intentuser_intent_sourcer!   
parametersresponseidentify_actor_dataz$set)r   r/   RESOURCE_NAMErF   	TOOL_NAMETOOL_DESCRIPTIONTOOL_CATEGORYr;   r   MCP_TOOLS_LISTLISTED_TOOL_NAMESDURATION_MSSERVER_NAMESERVER_VERSIONCLIENT_NAMECLIENT_VERSIONINTENTINTENT_SOURCEIS_ERROR
PARAMETERSRESPONSE)r   r.   rU   s      r   r5   r5   m   sd   yy!',_'=
2##$',_'=Jr||$yy#$u)=*/0B*C
2&&'yy!mE&:',_'=
2##$		%&)*+a/IIl#'<'K'KK+01D+E
2''(yy(%*:%6
2>>"yy%*=%9
2>>"yy!"(-.>(?
2$$%yy%*=%9
2>>"yy!"(-.>(?
2$$%yy %m 4
299yy%&',-A'B
2##$yy("'
"3
2;;yy*$),$7
2==!yy("'
"3
2;;))$9:s#67!;4 34
6  <r   c                f    | j                  d      }|r|j                         D ]
  \  }}|||<    y y )Nr.   )r   items)r   r.   customkeyvalues        r   r6   r6      s5    YY|$F ,,.JC#JsO ) r   c                   i }t        | |       t        | |       t        | |       t        | |       | j	                  d      }|r|j                  |       | j	                  d      r7| d   |t        j                  <   t        |       r| d   |t        j                  <   | j	                  d      r!t        |       r| d   |t        j                  <   | j	                  d      r!t        |       r| d   |t        j                  <   | j	                  d      r| d   |t        j                  <   | j	                  d      r| d   |t        j                  <   | j	                  d      r| d   |t        j                  <   | j	                  d      r| d   |t        j                  <   t!        | |       t"        j$                  t'        |       |t)        |       d	S )
Nr"   rH   rI   rJ   rM   rN   rO   rP   r,   )r1   r2   r3   r4   r   updater/   rV   rF   rW   rX   rY   r]   r^   r_   r`   r6   r   	EXCEPTIONr   r   )r   r.   r"   s      r   r%   r%      s   !#JE:&
+5*-z"IIgE 	% yy!',_'=
2##$',_'=Jr||$yy#$u)=*/0B*C
2&&'yy!mE&:',_'=
2##$yy%*=%9
2>>"yy!"(-.>(?
2$$%yy%*=%9
2>>"yy!"(-.>(?
2$$%5*- *33'. #E*	 r   N)r   r   returnr:   )r   r   rn   r   )T)r   r   r&   boolrn   zList[PostHogCaptureEvent])r   r   rn   r   )r   r   r.   zDict[str, Any]rn   None)r   r   rn   ro   )2__doc__
__future__r   r   r   typingr   r   r   	constantsr
   r   r   _event_typesr   typesr   r   CUSTOMIDENTIFYMCP_MISSING_CAPABILITYMISSING_CAPABILITYMCP_INITIALIZE
INITIALIZEMCP_PROMPTS_GET
PROMPT_GETMCP_PROMPTS_LISTPROMPTS_LISTMCP_RESOURCES_LISTRESOURCES_LISTMCP_RESOURCES_READRESOURCE_READrE   	TOOL_CALLrZ   
TOOLS_LISTr7   r/   r   r   r(   r#   r1   r2   r4   r3   rF   r5   r6   r%    r   r   <module>r      sL  
Q # ' " " 
 0 -   ":"A"A""$<$E$E002J2]2]((*B*M*M))+C+N+N**,D,Q,Q,,.F.U.U,,.F.T.T((*B*L*L((*B*M*M   !@
 8<

04

(/9'6K&5R$%r   