
    jKj	                        d Z ddlmZ ddlZddlmZmZmZmZ ddl	m
Z
 ddlmZmZ ddlmZ eeef   Zdd	Zdd
Z	 	 	 	 	 	 	 	 ddZ	 d	 	 	 	 	 	 	 ddZddZy)zResolve ``$mcp_intent`` from the agent-supplied ``context`` argument (source
``context_parameter``) or the customer's ``intent_fallback`` callback (source
``inferred``).    )annotationsN)AnyDictOptionalTuple   )is_context_enabled)MCPAnalyticsData_maybe_await)logc                    | j                  d      xs i }|j                  d      xs i }|j                  d      }t        |t              r|j                         r|S y )Nparams	argumentscontext)get
isinstancestrstrip)requestr   r   r   s       d/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/posthog/mcp/_intent.py_get_context_argumentr      sP    [["(bF

;'-2ImmI&G'3GMMO    c                P    t        | t              sy | j                         }|xs d S N)r   r   r   )intenttrimmeds     r   _normalize_intentr      s$    fc"llnG?dr   c                4  K   | j                   j                  sy 	 | j                   j                  ||      }t        j                  |      rt	        |       d {   }t        |      }|r|dfS d S 7 # t        $ r}t        d|        Y d }~y d }~ww xY ww)Ninferredz intent_fallback callback error: )optionsintent_fallbackasyncioiscoroutiner   r   	Exceptionr   )datar   extraresultr   errors         r   _run_intent_fallbackr)   &   s      <<''--gu=v&'//F"6*'-
#747 0  .ug67sL   B?A4 A2A4 /B0A4 1B2A4 4	B=BBBBc                  K   ddl m} t        |      }|j                  d      xs i j                  d      } || j                        }t        | j                  j                        r||k7  r|r|dfS t        | ||       d {   S 7 w)Nr   )$resolve_missing_capability_tool_namer   namecontext_parameter)toolsr+   r   r   r    r	   r   r)   )r%   r   r&   r+   context_argumentr,   missing_names          r   resolve_tool_call_intentr1   6   s     
 <,W5KK!'R,,V4D7EL4<<//0L  "566%dGU;;;;s   BBB	Bc                     |sy |\  | d<   | d<   y )Nuser_intentuser_intent_source )eventresolveds     r   set_event_intentr8   I   s    8@5E-% 45r   )r   Dict[str, Any]returnOptional[str])r   r   r:   r;   )r%   r
   r   r9   r&   zOptional[Dict[str, Any]]r:   Optional[ResolvedIntent]r   )r6   r9   r7   r<   r:   None)__doc__
__future__r   r"   typingr   r   r   r   _context_parametersr	   	_internalr
   r   loggerr   r   ResolvedIntentr   r   r)   r1   r8   r5   r   r   <module>rE      s   
 #  - - 3 5  sCx
%3<T& '+<
<< $< 	<&Ar   