
    gh{                         S SK r S SKJr  S SKJr  S SKJr  S SKJrJ	r	  S SK
Jr  \(       a  S SK
Jr  S SK
Jr  S S	KJr   S SKrS rS rS rS rS rS rg! \ a	    \" S
5      ef = f)    N)SPANDATA)DidNotEnable)should_send_default_pii)event_from_exceptionsafe_serialize)TYPE_CHECKING)Any)Callable)UsagezOpenAI Agents not installedc                     [        U [        R                  " 5       R                  SSS.S9u  p[        R                  " XS9  g )Nopenai_agentsF)typehandled)client_options	mechanism)hint)r   
sentry_sdk
get_clientoptionscapture_event)exceventr   s      n/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/integrations/openai_agents/utils.py_capture_exceptionr      s;    &!,,.66*u=KE
 U.    c                      [         R                  " 5       n U S L=(       a    U R                  U :H  nU(       a  [         R                  $ [         R                  $ N)r   get_current_spancontaining_transaction
start_spanstart_transaction)current_spantransaction_existss     r   _get_start_span_functionr$      sH    ..0LD X\%H%HL%X  %7:  XJ<X<XXr   c                 b   U R                  [        R                  S5        U R                  [        R                  UR                  5        UR
                  R                  (       a4  U R                  [        R                  UR
                  R                  5        UR                  (       a]  [        UR                  S5      (       a  UR                  R                  OUR                  nU R                  [        R                  U5        UR
                  R                  (       a4  U R                  [        R                  UR
                  R                  5        UR
                  R                  (       a4  U R                  [        R                  UR
                  R                  5        UR
                  R                  (       a4  U R                  [        R                   UR
                  R                  5        UR
                  R"                  (       a4  U R                  [        R$                  UR
                  R"                  5        ['        UR(                  5      S:  aN  U R                  [        R*                  [-        UR(                   Vs/ s H  n[/        U5      PM     sn5      5        g g s  snf )Nopenaimodelr   )set_datar   GEN_AI_SYSTEMGEN_AI_AGENT_NAMEnamemodel_settings
max_tokensGEN_AI_REQUEST_MAX_TOKENSr'   hasattr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lentoolsGEN_AI_REQUEST_AVAILABLE_TOOLSr   vars)spanagent
model_nametools       r   _set_agent_datarA   (   s   MM 	MM(,,ejj9&&..0D0D0O0O	
 {{*1%++w*G*GU[[&&U[[
h33Z@,,44  11	

 ''//1E1E1Q1Q	
 !!h33U5I5I5O5OP--55  22	

 5;;!335;;?;4DJ;?@	
  @s   
J,c                    U R                  [        R                  UR                  5        U R                  [        R                  UR
                  R                  5        U R                  [        R                  UR                  5        U R                  [        R                  UR                  R                  5        U R                  [        R                  UR                  5        g r   )r(   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=   usages     r   _set_usage_datarP   T   s    MM(44e6H6HIMM11""00 	MM(55u7J7JKMM55##44 	MM(44e6H6HIr   c                    [        5       (       d  g / / / / S.nUR                  S5      nU(       a  US   R                  SUS.5        UR                  S/ 5       H  nSU;   a6  X$R                  S5         R                  SUR                  S5      S.5        M?  UR                  S	5      S
:X  a  US   R                  U5        Mj  UR                  S	5      S:X  d  M  US   R                  U5        M     / nUR                  5        H)  u  pg[	        U5      S:  d  M  UR                  XgS.5        M+     U R                  [        R                  [        U5      5        g )N)systemuser	assistantr@   system_instructionsrR   text)r   rV   inputrolecontentr   function_callrT   function_call_outputr@   r   )rX   rY   )	r   getappenditemsr9   r(   r   GEN_AI_REQUEST_MESSAGESr   )r=   get_response_kwargsmessages_by_rolerU   messagerequest_messagesrX   messagess           r   _set_input_datare   c   s?   "$$ 	 .112GH"))6CV*WX&**7B7W[[0188Y)?@ {{6"o5 -44W=V$(>> (//8 8 *002x=1##T$GH 3 	MM(22NCS4TUr   c                    [        5       (       d  g / / S.nUR                   H{  nUR                  S:X  a$  US   R                  UR	                  5       5        M7  UR                  S:X  d  MI  UR
                   H"  n US   R                  UR                  5        M$     M}     [        US   5      S:  a,  U R                  [        R                  [        US   5      5        [        US   5      S:  a-  U R                  [        R                  [        US   5      5        g g ! [         a&    US   R                  UR	                  5       5         M  f = f)N)responser@   rZ   r@   rb   rg   r   )r   outputr   r]   dictrY   rV   AttributeErrorr9   r(   r   GEN_AI_RESPONSE_TOOL_CALLSr   GEN_AI_RESPONSE_TEXT)r=   resultoutput_messagesrh   output_messages        r   _set_output_datarp      s*   "$$ O
 --;;/)F#**6;;=9[[I%"(..N#J/66~7J7JK #1	   ?6"#a'//PV@W1X	
 ?:&'!+))>/*:U+V	
 , & N#J/66~7J7J7LMNs   ;D,EE)r   sentry_sdk.constsr   sentry_sdk.integrationsr   sentry_sdk.scoper   sentry_sdk.utilsr   r   typingr   r	   r
   agentsr   ImportErrorr   r$   rA   rP   re   rp    r   r   <module>ry      sl     & 0 4 A  6/Y)
XJVD
i  6
4
556s   A A%