§
    ÚŽ’jÍ!  ã                   óÆ  — U d Z ddlmZ ddlmZmZmZmZ ddlm	Z	m
Z
mZmZmZ ddlmZmZ ddlmZ  G d„ d	e	¦  «        Z G d
„ de	¦  «        Z G d„ de	¦  «        Z G d„ de	¦  «        Z G d„ de	¦  «        Z G d„ de	¦  «        Z G d„ de¦  «        Z G d„ de	¦  «        Z G d„ de¦  «        Z G d„ de	¦  «        Zeez  ez  ez  ez  ez  Zeed<   ed         Zeed<   dS ) zThe content blocks of messages.é    )ÚStrEnum)ÚLiteralÚListÚ	TypeAliasÚAny)Ú	BaseModelÚFieldÚAnyUrlÚfield_serializerÚ
ConfigDicté   )Ú_generate_idÚ_generate_timestamp)ÚPermissionRulec                   ó˜   — e Zd ZU dZdZed         ed<   	 eed<   	  ee	¬¦  «        Z
eed<   	  ee¬¦  «        Zeed<   	 dZedz  ed<   dS )	Ú	TextBlockzThe text block.ÚtextÚtype©Údefault_factoryÚidÚ
created_atNÚfinished_at)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__Ústrr	   r   r   r   r   r   © ó    úGC:\Projects\DSCons\.venv\Lib\site-packages\agentscope\message\_block.pyr   r      s�   € € € € € € ØÐà"€Dˆ'�&Œ/Ð"Ð"Ñ"Ø=Ø
€I€I�IØ(Øˆe LÐ1Ñ1Ô1€BˆÐ1Ð1Ñ1Ø-Ø�eÐ,?Ð@Ñ@Ô@€J�Ð@Ð@Ñ@Ø(Ø"€K��t‘Ð"Ð"Ñ"Ø(Ð(r!   r   c                   ó°   — e Zd ZU dZ ed¬¦  «        ZdZed         ed<   	 e	ed<   	  e
e¬¦  «        Ze	ed<   	  e
e¬¦  «        Ze	ed<   	 d	Ze	d	z  ed
<   d	S )ÚThinkingBlockaY  The thinking block.

    Allows extra provider-specific fields (e.g. Anthropic's ``signature``,
    ``redacted_thinking_data``) via ``extra="allow"`` so that model
    implementations can pass arbitrary metadata without subclassing.

    .. note::
        Anthropic's ``redacted_thinking`` blocks are also stored as
        ``ThinkingBlock`` instances with ``thinking=""`` and the
        encrypted payload in the ``redacted_thinking_data`` extra
        field. Callers filtering by ``type=="thinking"`` (e.g.
        ``get_content_blocks``) will receive both visible and
        redacted blocks.
    Úallow)ÚextraÚthinkingr   r   r   r   Nr   )r   r   r   r   r   Úmodel_configr   r   r   r   r	   r   r   r   r   r   r    r!   r"   r$   r$      s©   € € € € € € ðð ð �: GÐ,Ñ,Ô,€Là *€Dˆ'�*Ô
Ð*Ð*Ñ*ØEØ€M€M�MØ,Øˆe LÐ1Ñ1Ô1€BˆÐ1Ð1Ñ1Ø-Ø�eÐ,?Ð@Ñ@Ô@€J�Ð@Ð@Ñ@Ø(Ø"€K��t‘Ð"Ð"Ñ"Ø(Ð(r!   r$   c                   óF   — e Zd ZU dZdZed         ed<   	 eed<   	 eed<   dS )ÚBase64SourcezThe base64 source.Úbase64r   ÚdataÚ
media_typeN)r   r   r   r   r   r   r   r   r    r!   r"   r*   r*   8   sE   € € € € € € ØÐà&€Dˆ'�(Ô
Ð&Ð&Ñ&ØBØ
€I€I�IØ"Ø€O€O�OØKÐKr!   r*   c                   óz   — e Zd ZU dZdZed         ed<   	 eed<   	 eed<   	  e	d¦  «        dedefd„¦   «         Z
dS )Ú	URLSourcezThe URL source.Úurlr   r-   Úreturnc                 ó    — t          |¦  «        S )zSerialize the URL to a string.)r   )Úselfr0   s     r"   Úserialize_urlzURLSource.serialize_urlM   s   € õ �3‰xŒxˆr!   N)r   r   r   r   r   r   r   r
   r   r   r4   r    r!   r"   r/   r/   C   sƒ   € € € € € € ØÐà €Dˆ'�%Œ.Ð Ð Ñ Ø<Ø	€K€K�KØ4Ø€O€O�OØKàÐ�eÑÔð ð ¨Cð ð ð ñ Ôðð ð r!   r/   c                   ó´   — e Zd ZU dZdZed         ed<   	  ee¬¦  «        Z	e
ed<   	 eez  ed<   	 dZe
dz  ed<   	  ee¬¦  «        Ze
ed	<   	 dZe
dz  ed
<   dS )Ú	DataBlockz?The data block for binary content (images, audio, video, etc.).r,   r   r   r   ÚsourceNÚnamer   r   )r   r   r   r   r   r   r   r	   r   r   r   r*   r/   r8   r   r   r   r    r!   r"   r6   r6   S   s±   € € € € € € ØIÐIà"€Dˆ'�&Œ/Ð"Ð"Ñ"Ø=Øˆe LÐ1Ñ1Ô1€BˆÐ1Ð1Ñ1Ø-Ø˜9Ñ$Ð$Ð$Ñ$ðà€Dˆ#�‰*ÐÐÑØ8Ø�eÐ,?Ð@Ñ@Ô@€J�Ð@Ð@Ñ@Ø(Ø"€K��t‘Ð"Ð"Ñ"Ø(Ð(r!   r6   c                   óÚ   — e Zd ZU dZdZed         ed<   	 eee	e
z           z  ed<   	  ee¬¦  «        Zeed<   	 dZedz  ed<   	  ee¬¦  «        Zeed<   	  ee¬¦  «        Zedz  ed	<   dS )
Ú	HintBlocka…  A block used to provide instructions or hints to the LLM during the
    reasoning-acting loop. When passed to the LLM API, the hint block is
    converted into a user message.

    The ``hint`` field can be a plain string (text-only) or a list of
    :class:`TextBlock` / :class:`DataBlock` for multimodal content
    (e.g. a background tool result containing both text and an image).
    Úhintr   r   r   Nr7   r   r   )r   r   r   r   r   r   r   r   Úlistr   r6   r	   r   r   r7   r   r   r   r    r!   r"   r:   r:   e   sÓ   € € € € € € ðð ð #€Dˆ'�&Œ/Ð"Ð"Ñ"Ø=Ø
��Y Ñ*Ô+Ñ
+Ð+Ð+Ñ+ðàˆe LÐ1Ñ1Ô1€BˆÐ1Ð1Ñ1Ø-Ø€FˆC�$‰JÐÐÑð+ð �eÐ,?Ð@Ñ@Ô@€J�Ð@Ð@Ñ@Ø(Ø#˜eÐ4GÐHÑHÔH€K��t‘ÐHÐHÑHØ(Ð(r!   r:   c                   ó&   — e Zd ZdZdZdZdZdZdZdS )ÚToolCallStatezThe state of the tool call.ÚpendingÚaskingÚallowedÚ	submittedÚfinishedN)	r   r   r   r   ÚPENDINGÚASKINGÚALLOWEDÚ	SUBMITTEDÚFINISHEDr    r!   r"   r>   r>   €   s-   € € € € € Ø%Ð%à€GØ€FØ€GØ€IØ€H€H€Hr!   r>   c                   óî   — e Zd ZU dZ ed¬¦  «        ZdZed         ed<   	 e	ed<   	 e	ed<   	 e	ed<   	 e
j        Ze
ed	<   	  ee¬
¦  «        Zee         ed<   	  ee¬
¦  «        Ze	ed<   	 dZe	dz  ed<   dS )ÚToolCallBlockzThe tool call block.T©Úuse_enum_valuesÚ	tool_callr   r   r8   ÚinputÚstater   Úsuggested_rulesr   Nr   )r   r   r   r   r   r(   r   r   r   r   r>   rD   rO   r	   r<   rP   r   r   r   r   r    r!   r"   rJ   rJ   Š   sÜ   € € € € € € ØÐà�:¨dÐ3Ñ3Ô3€Là!,€Dˆ'�+Ô
Ð,Ð,Ñ,ØGØ€G€G�GØ7Ø
€I€I�IØ,Ø€J€J�JØNØ(Ô0€Eˆ=Ð0Ð0Ñ0ðð0 -2¨EÀ$Ð,GÑ,GÔ,G€O�T˜.Ô)ÐGÐGÑGð(à�eÐ,?Ð@Ñ@Ô@€J�Ð@Ð@Ñ@Ø(Ø"€K��t‘Ð"Ð"Ñ"Ø(Ð(r!   rJ   c                   ó&   — e Zd ZdZdZdZdZdZdZdS )ÚToolResultStatezThe tool result state.ÚsuccessÚerrorÚinterruptedÚdeniedÚrunningN)	r   r   r   r   ÚSUCCESSÚERRORÚINTERRUPTEDÚDENIEDÚRUNNINGr    r!   r"   rR   rR   ¹   s-   € € € € € Ø Ð à€GØ€EØ€KØ€FØ€G€G€Gr!   rR   c                   ó
  — e Zd ZU dZ ed¬¦  «        ZdZed         ed<   	 e	ed<   	 e	ed<   	 e	e
eez           z  ed<   	 ej        Zeed	<   	  ee¬
¦  «        Zee	ef         ed<   	  ee¬
¦  «        Ze	ed<   	 dZe	dz  ed<   dS )ÚToolResultBlockzThe tool result block.TrK   Útool_resultr   r   r8   ÚoutputrO   r   Úmetadatar   Nr   )r   r   r   r   r   r(   r   r   r   r   r   r   r6   rR   r\   rO   r	   Údictra   r   r   r   r   r    r!   r"   r^   r^   Ã   sí   € € € € € € Ø Ð à�:¨dÐ3Ñ3Ô3€Là#0€Dˆ'�-Ô
 Ð0Ð0Ñ0ØKØ€G€G�GØ9Ø
€I€I�IØØ�$�y 9Ñ,Ô-Ñ-Ð-Ð-Ñ-ð#à,Ô4€Eˆ?Ð4Ð4Ñ4Ø*Ø$˜u°TÐ:Ñ:Ô:€Hˆd�3˜�8ŒnÐ:Ð:Ñ:Ø0Ø�eÐ,?Ð@Ñ@Ô@€J�Ð@Ð@Ñ@Ø(Ø"€K��t‘Ð"Ð"Ñ"Ø(Ð(r!   r^   ÚContentBlock)r   r'   r;   rM   r_   r,   ÚContentBlockTypesN) r   Úenumr   Útypingr   r   r   r   Úpydanticr   r	   r
   r   r   Ú_utils._commonr   r   Ú
permissionr   r   r$   r*   r/   r6   r:   r>   rJ   rR   r^   rc   r   rd   r    r!   r"   ú<module>rj      s»  ðà %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ Kà >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð)ð )ð )ð )ð )�	ñ )ô )ð )ð)ð )ð )ð )ð )�Iñ )ô )ð )ð<Lð Lð Lð Lð L�9ñ Lô Lð Lðð ð ð ð �	ñ ô ð ð )ð )ð )ð )ð )�	ñ )ô )ð )ð$)ð )ð )ð )ð )�	ñ )ô )ð )ð6ð ð ð ð �Gñ ô ð ð,)ð ,)ð ,)ð ,)ð ,)�Iñ ,)ô ,)ð ,)ð^ð ð ð ð �gñ ô ð ð)ð )ð )ð )ð )�iñ )ô )ð )ð2 Øñàñð ñð ñ	ð
 ñð ˆið ð ñ ð  'ðô Ð �9ð ð ñ ð ð r!   