
    yj8                     P    d Z ddlmZ ddlmZ ddlmZ  G d de          ZdgZdS )a  
Dialectic events for Honcho telemetry.

Dialectic tasks answer questions about peers by gathering context from memory.
These are user-initiated operations that query the representation system.
The run_id field enables correlation with agent.iteration events.
    )ClassVar)Field)	BaseEventc                   l   e Zd ZU dZdZee         ed<   dZee	         ed<   dZ
ee         ed<    edd	
          Zeed<    edd
          Zeed<    edd
          Zeed<    edd          Zedz  ed<    edd
          Zeed<    edd          Ze	ed<    edd          Ze	ed<    edd          Ze	ed<    edd
          Zeed<    edd 
          Ze	ed!<    edd"
          Ze	ed#<    edd$          Ze	ed%<    edd&          Ze	ed'<    ed(d)          Zeed*<   d+efd,ZdS )-DialecticCompletedEventaF  Emitted when a dialectic (chat) query completes.

    Dialectic queries answer questions about peers by gathering context
    from memory. This event captures the full context of the query and
    its execution metrics.

    The run_id correlates with AgentIterationEvent and AgentTool* events
    for detailed analytics.
    zdialectic.completed_event_type   _schema_version	dialectic	_category.zNanoid for run correlation)descriptionrun_idzWorkspace nameworkspace_namezPeer name being queried about	peer_nameNzSession name if provided)defaultr   session_namez0Reasoning level: minimal, low, medium, high, maxreasoning_level   zNumber of LLM iterationstotal_iterationsr   z Number of conclusions prefetchedprefetched_conclusion_countzNumber of tool calls madetool_calls_countzTotal processing timetotal_duration_mszTotal input tokensinput_tokenszOutput tokens generatedoutput_tokenszTokens read from prompt cachecache_read_tokenszTokens written to prompt cachecache_creation_tokensFu   True when an iteration's input exceeded settings.DIALECTIC.MAX_INPUT_TOKENS. Token-based — fires for the single-oversized-message case too, not just message-list shrinkage.hit_input_token_capreturnc                     | j         S )z)Resource ID is the run_id for uniqueness.)r   )selfs    F/DATA/AppData/hermes/projects/honcho/src/telemetry/events/dialectic.pyget_resource_idz'DialecticCompletedEvent.get_resource_idP   s
    {    )__name__
__module____qualname____doc__r   r   str__annotations__r
   intr   r   r   r   r   r   r   r   r   r   r   floatr   r   r   r   r   boolr"    r#   r!   r   r      s          "7K#666%&OXc]&&&*Ix}*** %)EFFFFCFFF  %1ABBBNCBBB U3,KLLLIsLLL  %u"<     L#*   
 !5K  OS   
 "E!9STTTcTTT',uA( ( (    "E!9TUUUcUUU  %uS6MNNNuNNN c/CDDDL#DDDs0IJJJM3JJJ"U>  s    "'?" " "3   
 !&R! ! !         r#   r   N)	r'   typingr   pydanticr   src.telemetry.events.baser   r   __all__r-   r#   r!   <module>r2      s                 / / / / / /B B B B Bi B B BJ %
%r#   