
    0j                        U d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZmZmZmZmZmZmZ ed         Ze	eef         ZeeeeeeedZeeee         f         ed<   d	 e                                D             Zeee         ef         ed
<   dee         defdZdedefdZdedef         dee         fdZdS )z[
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
    N)AnyCallableDictLiteralOptionalTypeUnioncast   )EventProtocol)ActivityEventActivityResponseEventActivitySentEvent
ErrorEventSignInEvent
StartEvent	StopEvent)activityerrorstartstopsign_inactivity_responseactivity_sentEVENT_TYPE_REGISTRYc                     i | ]\  }}||	S  r   ).0kvs      l/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/microsoft_teams/apps/events/registry.py
<dictcomp>r"   $   s    7e7e7eA17e7e7e    EVENT_CLASS_REGISTRYevent_classreturnc                     | t           v r t          t          t           |                    S t          d| j         d          )z
    Get event name from event class type.

    Args:
        event_class: Event class type

    Returns:
        Event name string

    Raises:
        ValueError: If event class is not registered
    zEvent class z* is not registered in EVENT_CLASS_REGISTRY)r$   r
   	EventType
ValueError__name__)r%   s    r!   get_event_name_from_typer+   '   sC     ***I3K@AAA
dK$8ddd
e
eer#   
event_namec                     | t           v S )z
    Check if an event name is registered.

    Args:
        event_name: Event name to check

    Returns:
        True if registered, False otherwise
    )r   )r,   s    r!   is_registered_eventr.   :   s     ,,,r#   func.c                 8   	 t          j        |           }t          |j                                                  }|sdS |d         }|j        t           j        j        k    rdS |j        }t          |t                    rc|t          v rt          t          |          S 	 d t                                          D             }||v r	||         }ndS n# t          $ r Y dS w xY w	 t!          |          S # t"          $ r Y dS w xY w# t"          t$          f$ r Y dS w xY w)z
    Extract event type from function signature by inspecting the first parameter's type hint.

    Args:
        func: Function to inspect

    Returns:
        Event type string if detectable, None otherwise
    Nr   c                     i | ]
}|j         |S r   )r*   )r   clss     r!   r"   z1get_event_type_from_signature.<locals>.<dictcomp>h   s    UUU#CL#UUUr#   )inspect	signaturelist
parametersvalues
annotation	Parameterempty
isinstancestrr   r
   r(   r$   keys	Exceptionr+   r)   	TypeError)r/   sigparamsfirst_param
param_typetype_maps         r!   get_event_type_from_signaturerE   G   se   &%%cn++--.. 	4 Qi!W%6%<<<4 !+
 j#&& 	000Iz222UU9M9R9R9T9TUUU))!)*!5JJ4     tt	+J777 	 	 	44	 	"   tts_   <D  "D $9D 0C D 
C D C  D $C3 3
D=D  DD DD) __doc__r3   typingr   r   r   r   r   r   r	   r
   baser   typesr   r   r   r   r   r   r   CoreEventTyper<   r(   r   __annotations__itemsr$   r+   boolr.   rE   r   r#   r!   <module>rN      s    
  L L L L L L L L L L L L L L L L L L L L                        mn-$%	 .&7 7 T#tM223    8f7eI\IbIbIdId7e7e7e d4.34 e e ef$s) f	 f f f f&
-C 
-D 
- 
- 
- 
-0c(: 0x	?R 0 0 0 0 0 0r#   