§
    ÚŽ’jÄ  ã                   ó®   — d Z ddlZddlZddlmZmZmZ ddlmZm	Z	 ddl
mZ ddlmZmZmZmZ ded	ed
efd„Z G d„ de¦  «        Z G d„ de¦  «        ZdS )zThe tool response class.é    N)ÚListÚLiteralÚSelf)Ú	BaseModelÚFieldé   )Ú_generate_id)Ú	DataBlockÚ	TextBlockÚBase64SourceÚToolResultStateÚexistingÚincomingÚreturnc                 óð   — 	 t          j        | d¬¦  «        t          j        |d¬¦  «        z   }n!# t          j        t          f$ r | |z   cY S w xY wt          j        |¦  «                             d¦  «        S )zEMerge independently encoded base64 chunks without corrupting padding.T)ÚvalidateÚascii)Úbase64Ú	b64decodeÚbinasciiÚErrorÚ
ValueErrorÚ	b64encodeÚdecode)r   r   Úmergeds      úGC:\Projects\DSCons\.venv\Lib\site-packages\agentscope\tool\_response.pyÚ_merge_base64_chunksr      s˜   € ð#ÝÔ!ØØð
ñ 
ô 
õ Ô˜X°Ð5Ñ5Ô5ñ6ˆˆøõ ŒN�JÐ'ð #ð #ð #ð ˜(Ñ"Ð"Ð"Ð"ð#øøøõ
 Ô˜FÑ#Ô#×*Ò*¨7Ñ3Ô3Ð3s   ‚-0 °AÁAc                   ó¢   — e Zd ZU dZeeez           ed<   	 ej	        Z
eed<   	 dZeed<   	  ee¬¦  «        Zeed<   	  ee¬¦  «        Zeed<   d	S )
Ú	ToolChunkz,The tool result chunk from a tool execution.ÚcontentÚstateTÚis_last©Údefault_factoryÚmetadataÚidN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r
   Ú__annotations__r   ÚRUNNINGr!   r"   Úboolr   Údictr%   r	   r&   Ústr© ó    r   r   r      sŸ   € € € € € € Ø6Ð6à�)˜iÑ'Ô(Ð(Ð(Ñ(ðð -Ô4€Eˆ?Ð4Ð4Ñ4Ø0à€GˆTÐÐÑØGà�U¨4Ð0Ñ0Ô0€HˆdÐ0Ð0Ñ0ð$ð ˆe LÐ1Ñ1Ô1€BˆÐ1Ð1Ñ1Ø)Ð)r1   r   c                   óø   — e Zd ZU dZ ee¬¦  «        Zeee	z           e
d<   	 ej        Zeej        ej        ej        ej        f         e
d<   	  ee¬¦  «        Zee
d<   	  ee¬¦  «        Zee
d<   	 dedefd	„Zd
S )ÚToolResponseznThe tool response from a tool execution, which contains the completed
    tool result (compared to ToolChunk).r#   r    r!   r%   r&   Úchunkr   c                 ó�  — d„ t          | j        ¦  «        D ¦   «         }|j        D �]Ù}|j        |v �r| j        ||j                          }t          |t          ¦  «        r+t          |t          ¦  «        r|xj        |j        z  c_        Œet          |t          ¦  «        rÍt          |t          ¦  «        r¸t          |j        t          ¦  «        rt          |j        t          ¦  «        ret          |j        j
        |j        j
        ¦  «        |j        _
        |j        p|j        |_        |j        j        p|j        j        |j        _        �Œ(t          d|j        › d|j        › �¦  «        ‚|                     d¬¦  «        }t          ¦   «         |_        | j                             |¦  «         �ŒŒ| j                             |                     d¬¦  «        ¦  «         t#          | j        ¦  «        dz
  ||j        <   �ŒÛ|j        t&          j        k    rt&          j        | _        nw| j        t&          j        k    r'|j        t&          j        k    rt&          j        | _        n;| j        t&          j        k    r&|j        t&          j        k    rt&          j        | _        | j                             |j        ¦  «         g }| j        D ]w}t          |t          ¦  «        rK|rI|d         }t          |t          ¦  «        r|xj        |j        z  c_        ŒL|                     |¦  «         Œb|                     |¦  «         Œx|| _        | S )zwAppend a tool chunk to the current tool response, accumulate the
        data blocks and update the state and metadata.c                 ó$   — i | ]\  }}|j         |“ŒS r0   )r&   )Ú.0ÚindexÚ_s      r   ú
<dictcomp>z-ToolResponse.append_chunk.<locals>.<dictcomp>M   s-   € ð  
ð  
ð  
Ù$˜E 1ˆAŒD�%ð 
ð  
ð  
r1   zCCannot append DataBlock with URL source or different source types: z vs T)Údeepé   éÿÿÿÿ)Ú	enumerater    r&   Ú
isinstancer   Útextr
   Úsourcer   r   ÚdataÚnameÚ
media_typer   Ú
model_copyr	   ÚappendÚlenr!   r   ÚERRORÚINTERRUPTEDÚDENIEDr%   Úupdate)	Úselfr4   Úcurrent_ids_to_indexÚchunk_blockÚtarget_blockÚnew_chunk_blockÚmerged_contentÚblockÚ
last_blocks	            r   Úappend_chunkzToolResponse.append_chunkH   s\  € ð
 
ð  
Ý(1°$´,Ñ(?Ô(?ð 
ñ  
ô  
Ðð !œ=ð 3	Mñ 3	MˆKØŒ~Ð!5Ð5Ñ5à#œ|Ø(¨¬Ô8ô �õ ˜l­IÑ6Ô6ð %9½:ØÝñ<ô <ð %9ð !Ð%Ô%¨Ô)9Ñ9Ð%Ô%Ð%Ý ­iÑ8Ô8ð  9½ZØÝñ>ô >ð  9õ "Ø$Ô+Ý$ñô ð õ % [Ô%7½ÑFÔFðõ
 4HØ(Ô/Ô4Ø'Ô.Ô3ñ4ô 4˜Ô+Ô0ð (Ô,ÐA°Ô0Að %Ô)ð (Ô.Ô9ð >Ø+Ô2Ô=ð %Ô+Ô6Ñ6õ
 )ð7Ø7CÔ7Jð7ð 7à"-Ô"4ð7ð 7ñô ð ð '2×&<Ò&<À$Ð&<Ñ&GÔ&G�OÝ)5©¬�OÔ&Ø”L×'Ò'¨Ñ8Ô8Ð8Ñ8ð ”×#Ò# K×$:Ò$:ÀÐ$:Ñ$EÔ$EÑFÔFÐFõ 8;¸4¼<Ñ7HÔ7HÈ1Ñ7LÐ$ [¤^Ñ4Ñ4ð
 Œ;�/Ô/Ò/Ð/Ý(Ô.ˆDŒJˆJàŒJ�/Ô/Ò/Ð/Ø”�Ô:Ò:Ð:å(Ô4ˆDŒJˆJàŒJ�/Ô/Ò/Ð/Ø”�Ô5Ò5Ð5å(Ô/ˆDŒJàŒ×Ò˜Uœ^Ñ,Ô,Ð,ð 79ˆØ”\ð 	-ð 	-ˆEÝ˜%¥Ñ+Ô+ð -°ð -à+¨BÔ/�
Ý˜j­)Ñ4Ô4ð 1à�O”O u¤zÑ1�O”O�Oð #×)Ò)¨%Ñ0Ô0Ð0Ð0ð ×%Ò% eÑ,Ô,Ð,Ð,à%ˆŒàˆr1   N)r'   r(   r)   r*   r   Úlistr    r   r   r
   r+   r   ÚSUCCESSr!   r   rH   rJ   rI   r.   r%   r	   r&   r/   r   r   rT   r0   r1   r   r3   r3   2   sÿ   € € € € € € ð,ð ,ð ,1¨5ÀÐ+FÑ+FÔ+F€GˆT�)˜iÑ'Ô(ÐFÐFÑFØ0ð 	Ôð 
ˆ7ØÔØÔØÔ#ØÔð	!ôð  ð  ñ  ð 4à�U¨4Ð0Ñ0Ô0€HˆdÐ0Ð0Ñ0ð$ð ˆe LÐ1Ñ1Ô1€BˆÐ1Ð1Ñ1Ø,ðb )ð b°ð bð bð bð bð bð br1   r3   )r*   r   r   Útypingr   r   r   Úpydanticr   r   Ú_utils._commonr	   Úmessager
   r   r   r   r/   r   r   r3   r0   r1   r   ú<module>r[      s  ðà Ð Ø €€€Ø €€€Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à )Ð )Ð )Ð )Ð )Ð )Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ Ið4 3ð 4°#ð 4¸#ð 4ð 4ð 4ð 4ð*ð *ð *ð *ð *�	ñ *ô *ð *ð,xð xð xð xð x�9ñ xô xð xð xð xr1   