o
    î6Wjã  ã                   @  sÂ   U d dl mZ d dlmZmZ d dlmZmZ d dlmZm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZmZ d
dgZeZded
< edddejd�Zeddd„ƒZeddd„ƒZddd„ZdS )é    )Úannotations)ÚTYPE_CHECKINGÚoverload)ÚdatetimeÚtimezone)Ú	TypeAliasÚassert_neveré   )Ú
model_copy)Úbuild)ÚAnthropicError)Ú"BetaManagedAgentsAgentMessageEventÚ$BetaManagedAgentsStreamSessionEventsÚAccumulatedEventÚaccumulate_managed_agents_eventr   i²  é   )ÚtzinfoÚaccumulatedúAccumulatedEvent | NoneÚeventr   Úreturnc                 C  ó   d S ©N© ©r   r   r   r   úq/home/esfera/Documents/content_generation/venv/lib/python3.10/site-packages/anthropic/lib/sessions/_accumulate.pyr      ó   r   c                 C  r   r   r   r   r   r   r   r      r   c                 C  sò  |j dkr'|jj dkrtt|jjdg td�S |jj dkr| S tr%t|jƒ | S |j dkr2t|dd�S |j dkr¨| du rDt	d	|j
› d
�ƒ‚|jj}|du rNd}|jj}|t| jƒkrgt	d|› dt| jƒ› d�ƒ‚t| jƒ}|t|ƒkrz| t|ƒ¡ n%|| }|j dkr˜|j dkr—t|ƒ}|j|j |_|||< ntrŸt|j ƒ t| ƒ}||_|S |j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j dk�sn|j d k�sn|j d!k�sn|j d"k�sn|j d#k�sn|j d$k�sn|j d%k�sn|j d&k�sn|j d'k�sn|j d(k�sn|j d)k�sn|j d*k�sn|j d+k�sn|j d,k�sn|j d-k�sn|j d.k�sn|j d/k�rp| S t�rwt|ƒ | S )0u«  Fold one preview event into an ``agent.message`` snapshot. Returns a fresh
    snapshot â€” the ``accumulated`` argument is never mutated.

    - ``event_start`` opens the preview: a new snapshot with empty content is
      returned (so ``accumulated`` may be ``None``). Its ``processed_at`` is an
      epoch placeholder that the buffered final event's server timestamp
      replaces. ``accumulated`` is passed through unchanged when the
      previewed event is not an ``agent.message`` â€” this helper only tracks
      ``agent.message`` previews.
    - ``event_delta`` is folded into ``accumulated``: a new ``delta.index``
      inserts the fragment as a fresh content entry; an existing index returns
      a copy with that entry appended to. An unrecognised fragment type on an
      existing index passes the entry through unchanged â€” deltas are
      best-effort and the buffered final event is canonical â€” but is a
      type-check-time error via the exhaustiveness guard, matching
      ``accumulate_event`` in ``lib/streaming/_messages.py``.
    - ``agent.message`` is the buffered final event: a copy of it is returned,
      replacing whatever the preview had accumulated.
    Úevent_startzagent.message)ÚidÚtypeÚcontentÚprocessed_atzagent.thinkingT)ÚdeepÚevent_deltaNzevent_delta for z  received before its event_startr   zevent_delta index z& is beyond the end of content (length ú)Útextzuser.messagezuser.interruptzuser.tool_confirmationzuser.tool_resultzuser.custom_tool_resultzuser.define_outcomezagent.tool_usezagent.tool_resultzagent.custom_tool_usezagent.mcp_tool_usezagent.mcp_tool_resultzagent.thread_message_receivedzagent.thread_message_sentzagent.thread_context_compactedzsession.errorzsession.updatedzsession.deletedzsession.status_runningzsession.status_idlezsession.status_rescheduledzsession.status_terminatedzsession.thread_createdzsession.thread_status_runningzsession.thread_status_idlez!session.thread_status_rescheduledz session.thread_status_terminatedzspan.model_request_startzspan.model_request_endzspan.outcome_evaluation_startzspan.outcome_evaluation_ongoingzspan.outcome_evaluation_endzsystem.message)r   r   r   r   r   Ú_UNPROCESSEDr   r   r
   r   Úevent_idÚdeltaÚindexr    ÚlenÚlistÚappendr%   )r   r   ÚidxÚfragmentr    ÚexistingÚupdatedÚsnapshotr   r   r   r   #   sž   
û


ÿ


€
N)r   r   r   r   r   r   )r   r   r   r   r   r   )Ú
__future__r   Útypingr   r   r   r   Útyping_extensionsr   r   Ú_compatr
   Ú_modelsr   Ú_exceptionsr   Útypes.beta.sessionsr   r   Ú__all__r   Ú__annotations__Úutcr&   r   r   r   r   r   Ú<module>   s     