§
    xÅjô   ã                   ón  — d dl Z d dlmZ d dlZd dlmZmZmZ d dlm	Z	m
Z
mZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZ erd dlmZmZmZ d dlm Z m!Z! d dl"m#Z# 	 d dlZd dlm$Z$ n# e%$ r  ed¦  «        ‚w xY wd!d„Z&	 	 	 	 	 	 d"d„Z'	 	 	 	 	 	 d#d„Z(	 	 	 	 	 	 d$d„Z)	 	 	 	 	 	 d%d „Z*dS )&é    N)ÚTYPE_CHECKING)Ú_get_system_instructionsÚ_is_system_instructionÚ_transform_system_instructions)ÚGEN_AI_ALLOWED_MESSAGE_ROLESÚnormalize_message_roleÚnormalize_message_rolesÚset_data_normalizedÚtruncate_and_annotate_messages)ÚSPANDATA)ÚDidNotEnable)Úshould_send_default_pii)ÚStreamedSpan)Úshould_truncate_gen_ai_input)Úevent_from_exceptionÚhas_data_collection_enabledÚsafe_serialize)ÚAnyÚOptionalÚUnion)ÚTResponseInputItemÚUsage)ÚTextPart)ÚModelzOpenAI Agents not installedÚexcr   Úreturnc                 óŽ   — t          | t          j        ¦   «         j        dddœ¬¦  «        \  }}t          j        ||¬¦  «         d S )NÚopenai_agentsF)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)r   Ú
sentry_sdkÚ
get_clientÚoptionsÚcapture_event)r   Úeventr#   s      ú\C:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/openai_agents/utils.pyÚ_capture_exceptionr*   *   sU   € Ý&ØÝ!Ô,Ñ.Ô.Ô6Ø*°uÐ=Ð=ðñ ô �K€Eˆ4õ
 Ô˜U¨Ð.Ñ.Ô.Ð.Ð.Ð.ó    Úspanú,Union[sentry_sdk.tracing.Span, StreamedSpan]Úagentúagents.Agentc                 óˆ  — t          | t          ¦  «        r| j        n| j        } |t          j        d¦  «          |t          j        |j        ¦  «         |j        j	        r  |t          j
        |j        j	        ¦  «         d }t          |j        t          ¦  «        r"t          |j        d¦  «        r|j        j        }n9t          |j        t          ¦  «        r|j        }nt          |d¦  «        r|j        }|r |t          j        |¦  «         |j        j        r  |t          j        |j        j        ¦  «         |j        j        r  |t          j        |j        j        ¦  «         |j        j        r  |t          j        |j        j        ¦  «         |j        j        r" |t          j        |j        j        ¦  «         d S d S )NÚopenaiÚmodelÚ_sentry_request_model)Ú
isinstancer   Úset_attributeÚset_datar   ÚGEN_AI_SYSTEMÚGEN_AI_AGENT_NAMEÚnameÚmodel_settingsÚ
max_tokensÚGEN_AI_REQUEST_MAX_TOKENSr2   r   ÚhasattrÚstrr3   ÚGEN_AI_REQUEST_MODELÚpresence_penaltyÚGEN_AI_REQUEST_PRESENCE_PENALTYÚtemperatureÚGEN_AI_REQUEST_TEMPERATUREÚtop_pÚGEN_AI_REQUEST_TOP_PÚfrequency_penaltyÚ GEN_AI_REQUEST_FREQUENCY_PENALTY)r,   r.   Úset_on_spanÚ
model_names       r)   Ú_set_agent_datarJ   3   sç  € õ )¨­|Ñ<Ô<ÐOˆÔÐÀ$Ä-ð ð €KÝÔ ñô ð ð €K•Ô*¨E¬JÑ7Ô7Ð7àÔÔ&ð YØˆ•HÔ6¸Ô8LÔ8WÑXÔXÐXà"&€JÝ�%”+�uÑ%Ô%ð 1­'°%´+¸wÑ*GÔ*Gð 1Ø”[Ô&ˆ
ˆ
Ý	�E”K¥Ñ	%Ô	%ð 1Ø”[ˆ
ˆ
Ý	�Ð/Ñ	0Ô	0ð 1ØÔ0ˆ
àð ?Øˆ•HÔ1°:Ñ>Ô>Ð>àÔÔ,ð 
ØˆÝÔ4ØÔ Ô1ñ	
ô 	
ð 	
ð
 ÔÔ'ð 
ØˆÝÔ/°Ô1EÔ1Qñ	
ô 	
ð 	
ð ÔÔ!ð OØˆ•HÔ1°5Ô3GÔ3MÑNÔNÐNàÔÔ-ð 
ØˆÝÔ5ØÔ Ô2ñ	
ô 	
ð 	
ð 	
ð 	
ð
ð 
r+   Úusager   c                 ón  — t          | t          ¦  «        r| j        n| j        } |t          j        |j        ¦  «          |t          j        |j        j	        ¦  «          |t          j
        |j        ¦  «          |t          j        |j        j        ¦  «          |t          j        |j        ¦  «         d S )N)r4   r   r5   r6   r   ÚGEN_AI_USAGE_INPUT_TOKENSÚinput_tokensÚ GEN_AI_USAGE_INPUT_TOKENS_CACHEDÚinput_tokens_detailsÚcached_tokensÚGEN_AI_USAGE_OUTPUT_TOKENSÚoutput_tokensÚ$GEN_AI_USAGE_OUTPUT_TOKENS_REASONINGÚoutput_tokens_detailsÚreasoning_tokensÚGEN_AI_USAGE_TOTAL_TOKENSÚtotal_tokens)r,   rK   rH   s      r)   Ú_set_usage_datarY   c   s¿   € õ )¨­|Ñ<Ô<ÐOˆÔÐÀ$Ä-ð ð €K•Ô2°EÔ4FÑGÔGÐGØ€KÝÔ1ØÔ"Ô0ñô ð ð €K•Ô3°UÔ5HÑIÔIÐIØ€KÝÔ5ØÔ#Ô4ñô ð ð €K•Ô2°EÔ4FÑGÔGÐGÐGÐGr+   Úget_response_kwargsúdict[str, Any]c                 ó`  — t          j        ¦   «         }t          |j        ¦  «        r|j        d         d         d         sd S nt	          ¦   «         sd S g }|                     dg ¦  «        }g }|                     d¦  «        }|�|                     d|dœ¦  «         t          |¦  «        }|t          |¦  «        z  }t          |¦  «        dk    rzt          | t          ¦  «        r3|                      t          j        t          j        |¦  «        ¦  «         n2|                      t          j        t          j        |¦  «        ¦  «         d	„ |D ¦   «         }|D ]ê}	d
|	v rkt%          |	                     d
¦  «        ¦  «        }
|	                     d¦  «        }|                     |
t          |t&          ¦  «        rd|dœgn|dœ¦  «         Œq|	                     d¦  «        dk    r$|                     t(          j        |	gdœ¦  «         Œ®|	                     d¦  «        dk    r#|                     t(          j        |	gdœ¦  «         Œët/          |¦  «        }t          j        ¦   «         }t3          |j        ¦  «        rt5          || |¦  «        n|}|�t7          | t          j        |d¬¦  «         d S d S )NÚdata_collectionÚgen_aiÚinputsÚinputÚsystem_instructionsÚtext)r   Úcontentr   c                 ó0   — g | ]}t          |¦  «        °|‘ŒS © )r   )Ú.0Úmessages     r)   ú
<listcomp>z#_set_input_data.<locals>.<listcomp>ž   s6   € ð ð ð àÝ% gÑ.Ô.ðØðð ð r+   Úrolerc   )r   rb   )ri   rc   r   Úfunction_callÚfunction_call_outputF)Úunpack)r$   r%   r   r&   r   ÚgetÚappendr   r   Úlenr4   r   r5   r   ÚGEN_AI_SYSTEM_INSTRUCTIONSÚjsonÚdumpsr6   r   r>   r   Ú	ASSISTANTÚTOOLr	   Úget_current_scoper   r   r
   ÚGEN_AI_REQUEST_MESSAGES)r,   rZ   ÚclientÚrequest_messagesÚmessagesÚinstructions_text_partsÚexplicit_instructionsra   Únon_system_messagesrg   Únormalized_rolerc   Únormalized_messagesÚscopeÚmessages_datas                  r)   Ú_set_input_datar�   v   s?  € õ Ô"Ñ$Ô$€FÝ" 6¤>Ñ2Ô2ð ØŒ~Ð/Ô0°Ô:¸8ÔDð 	ØˆFð	å$Ñ&Ô&ð ØˆØÐà1D×1HÒ1HÈÐRTÑ1UÔ1U€Hà02ÐØ/×3Ò3Ð4IÑJÔJÐØÐ(Ø×&Ò&àØ0ðð ñ	
ô 	
ð 	
õ 3°8Ñ<Ô<ÐàÕ=Ð>QÑRÔRÑRÐå
Ð"Ñ#Ô# aÒ'Ð'Ý�d�LÑ)Ô)ð 		Ø×ÒÝÔ3Ý”
Ð2Ñ3Ô3ñô ð ð ð
 �MŠMÝÔ3Ý”
Ð2Ñ3Ô3ñô ð ð
ð àðñ ô Ðð
 'ð ð ˆØ�WÐÐÝ4°W·[²[ÀÑ5HÔ5HÑIÔIˆOØ—k’k )Ñ,Ô,ˆGØ×#Ò#à+õ & g­sÑ3Ô3ð% &°'Ð:Ð:Ð;Ð;à$ðð ñ	ô 	ð 	ð 	ð �{Š{˜6Ñ"Ô" oÒ5Ð5Ø ×'Ò'å <Ô FØ$+ 9ðð ñô ð ð ð —’˜VÑ$Ô$Ð(>Ò>Ð>Ø ×'Ò'å <Ô AØ$+ 9ðð ñô ð øõ 2Ð2BÑCÔCÐÝÔ(Ñ*Ô*€Eõ (¨¬Ñ7Ô7ð	!Õ&Ð':¸DÀ%ÑHÔHÐHà ð ð
 Ð ÝØÝÔ,ØØð		
ñ 	
ô 	
ð 	
ð 	
ð 	
ð !Ð r+   Úresultc                 óØ  — t          j        ¦   «         }d}t          |j        ¦  «        r|j        d         d         d         }nt	          ¦   «         rd}|sd S g g dœ}|j        D ]®}|j        dk    r.|d                              |                     ¦   «         ¦  «         Œ;|j        d	k    rh|j	        D ]`}	 |d
                              |j
        ¦  «         Œ$# t          $ r0 |d
                              |                     ¦   «         ¦  «         Y Œ]w xY wŒ¯|r•t          |d         ¦  «        dk    r|t          | t          ¦  «        r4|                      t           j        t%          |d         ¦  «        ¦  «         n3|                      t           j        t%          |d         ¦  «        ¦  «         |r<t          |d
         ¦  «        dk    r%t)          | t           j        |d
         ¦  «         d S d S d S )NFr]   r^   ÚoutputsT)ÚresponseÚtoolrj   r†   rg   r…   r   )r$   r%   r   r&   r   Úoutputr   rn   Údictrc   rb   ÚAttributeErrorro   r4   r   r5   r   ÚGEN_AI_RESPONSE_TOOL_CALLSr   r6   r
   ÚGEN_AI_RESPONSE_TEXT)r,   r‚   rw   Úrecord_outputsÚoutput_messagesr‡   Úoutput_messages          r)   Ú_set_output_datar�   Ñ   s<  € õ Ô"Ñ$Ô$€FØ€NÝ" 6¤>Ñ2Ô2ð ØœÐ(9Ô:¸8ÔDÀYÔOˆˆÝ	 Ñ	"Ô	"ð Øˆàð Øˆð Øð/ð /€Oð
 ”-ð 	Nð 	NˆØŒ;˜/Ò)Ð)Ø˜FÔ#×*Ò*¨6¯;ª;©=¬=Ñ9Ô9Ð9Ð9ØŒ[˜IÒ%Ð%Ø"(¤.ð Nð N�ðNØ# JÔ/×6Ò6°~Ô7JÑKÔKÐKÐKøÝ%ð Nð Nð Nà# JÔ/×6Ò6°~×7JÒ7JÑ7LÔ7LÑMÔMÐMÐMÐMðNøøøøð ð 
�#˜o¨fÔ5Ñ6Ô6¸Ò:Ð:Ý�d�LÑ)Ô)ð 		Ø×ÒÝÔ3Ý˜¨vÔ6Ñ7Ô7ñô ð ð ð
 �MŠMÝÔ3Ý˜¨vÔ6Ñ7Ô7ñô ð ð
 ð 
�#˜o¨jÔ9Ñ:Ô:¸QÒ>Ð>ÝØ•(Ô/°ÀÔ1Lñ	
ô 	
ð 	
ð 	
ð 	
ð
ð 
Ð>Ð>s   Â4 CÃ7DÄD)r   r   r   N)r,   r-   r.   r/   r   N)r,   r-   rK   r   r   N)r,   r-   rZ   r[   r   N)r,   r-   r‚   r   r   N)+rq   Útypingr   r$   Ú#sentry_sdk.ai._openai_responses_apir   r   r   Úsentry_sdk.ai.utilsr   r   r	   r
   r   Úsentry_sdk.constsr   Úsentry_sdk.integrationsr   Úsentry_sdk.scoper   Úsentry_sdk.tracesr   Úsentry_sdk.tracing_utilsr   Úsentry_sdk.utilsr   r   r   r   r   r   Úagentsr   r   Úsentry_sdk._typesr   r   ÚImportErrorr*   rJ   rY   r�   r�   re   r+   r)   ú<module>rœ      s³  ðØ €€€Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð ð ð 'Ð &Ð &Ð &Ð &Ð &Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *Ø AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð ð +Ø+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+à0Ð0Ð0Ð0Ð0Ð0Ð0Ð0à*Ð*Ð*Ð*Ð*Ð*ð6Ø€M€M€MØÐÐÐÐÐÐøØð 6ð 6ð 6Ø
ˆ,Ð4Ñ
5Ô
5Ð5ð6øøøð/ð /ð /ð /ð-
Ø
8ð-
ØAOð-
à	ð-
ð -
ð -
ð -
ð`HØ
8ðHØAHðHà	ðHð Hð Hð Hð&X
Ø
8ðX
à)ðX
ð 
ðX
ð X
ð X
ð X
ðv,
Ø
8ð,
ØBGð,
à	ð,
ð ,
ð ,
ð ,
ð ,
ð ,
s   Á*
A5 Á5B