
    ghj$                        S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  \(       a  S SK
JrJrJr  S SKJr  S S	KrS S
KJr  S SKJrJr  S SKJrJr   S SKJr  S SKJr  S SKJrJr  \(       a  S SKJ r    S SKJ"r"  \RH                  \RJ                  \RL                  \RN                  \RP                  \RR                  \RT                  S.r+\RX                  \RZ                  S.r.\R^                  \R`                  \Rb                  S.r2\Rf                  \Rh                  \Rj                  \Rl                  \Rn                  S.r8 " S S\5      r9S r:S r;S r<g	! \! a	    \" S5      ef = f! \! a	    S SKJ#r"   Nf = f)    wraps)consts)record_token_usage)SPANDATA)set_data_normalized)TYPE_CHECKING)AnyCallableIterator)SpanN)should_send_default_pii)DidNotEnableIntegration)capture_internal_exceptionsevent_from_exception)Client)
BaseCohere)ChatStreamEndEventNonStreamedChatResponse)StreamedChatResponsezCohere not installed)StreamEndStreamedChatResponse)StreamedChatResponse_StreamEnd)modelkpseedfrequency_penaltypresence_penaltyraw_prompting)toolspreamble)generation_idis_search_requiredfinish_reason)	citations	documentssearch_queriessearch_results
tool_callsc                   <    \ rS rSrSrS\ 3rSS jr\S 5       rSr	g)	CohereIntegrationE   coherezauto.ai.c                     Xl         g )Ninclude_prompts)selfr1   s     a/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/integrations/cohere.py__init__CohereIntegration.__init__I   s    .    c                      [        [        R                  SS9[        l        [        [        R
                  5      [        l        [        [        R                  SS9[        l        g )NF)	streamingT)
_wrap_chatr   chat_wrap_embedr   embedchat_stream r6   r3   
setup_onceCohereIntegration.setup_onceM   s;     %Z__F
"6<<0!+J,B,Bd!S
r6   r0   N)T)
__name__
__module____qualname____firstlineno__
identifieroriginr4   staticmethodr?   __static_attributes__r>   r6   r3   r,   r,   E   s.    J
|$F/ T Tr6   r,   c                     [        U [        R                  " 5       R                  SSS.S9u  p[        R                  " XS9  g )Nr.   F)typehandled)client_options	mechanism)hint)r   
sentry_sdk
get_clientoptionscapture_event)exceventrN   s      r3   _capture_exceptionrU   U   s;    &!,,.66#6KE
 U.r6   c                 >   ^ ^^ S m[        T 5      UU U4S j5       nU$ )Nc           	         U(       ao  [        US5      (       a&  [        U [        R                  UR                  /5        [
         H.  n[        X5      (       d  M  [        U SU-   [        X5      5        M0     [         H.  n[        X5      (       d  M  [        U SU-   [        X5      5        M0     [        US5      (       Ga  [        UR                  S5      (       aH  [        U UR                  R                  R                  UR                  R                  R                  S9  Ob[        UR                  S5      (       aG  [        U UR                  R                  R                  UR                  R                  R                  S9  [        UR                  S5      (       a0  [        U [        R                  UR                  R                  5        g g g )Ntextzai.metabilled_units)input_tokensoutput_tokenstokenswarnings)hasattrr   r   AI_RESPONSESrX   COLLECTED_PII_CHAT_RESP_ATTRSgetattrCOLLECTED_CHAT_RESP_ATTRSrY   r   rZ   r[   r\   r]   AI_WARNINGSr^   )spanresinclude_piipii_attrattrs        r3   collect_chat_response_fields0_wrap_chat.<locals>.collect_chat_response_fieldsb   sR   sF###))XXJ
 :3))'eh.>@VW : .Ds!!#D%$,8JK . 3sxx00"!$!6!6!C!C"%(("7"7"E"E
 8,,"!$!=!="%((//"?"? sxx,,#D(*>*>@Q@QR -  r6   c                  .  >^^	^
 [         R                  " 5       R                  [        5      mTb*  SU;  d$  [	        UR                  S5      [        5      (       d  T" U 0 UD6$ UR                  S5      n[         R                  " [        R                  R                  S[        R                  S9m
T
R                  5          T" U 0 UD6n[!        5          [#        5       (       a  TR$                  (       ay  ['        T
[(        R*                  [-        [/        S UR                  S/ 5      5      5      SUS./-   5        [0        R3                  5        H  u  pVXQ;   d  M  ['        T
XaU   5        M     [4        R3                  5        H  u  pVXQ;   d  M  ['        T
XaU   5        M     ['        T
[(        R6                  S5        T(       a  Um	UUU	U
4S	 jnU" 5       sS S S 5        $ [	        U[8        5      (       a7  T" T
U[#        5       =(       a    TR$                  S
9  T
R                  S S S 5        O ['        T
SS5        T
R                  S S S 5        UsS S S 5        $ ! [         a&  n[        U5        T
R                  S S S 5        US eS nAff = f! , (       d  f       g = f)Nmessagezcohere.client.ChatopnamerF   c                 T    [        U SS5      R                  5       [        U SS5      S.$ )Nrole rm   rr   content)rb   lower)xs    r3   <lambda>._wrap_chat.<locals>.new_chat.<locals>.<lambda>   s(    (/62(>(D(D(F+21i+D'r6   chat_historyuserrt   Fc               3   D  >#    [        5          T H^  n [        U [        5      (       d  [        U [        5      (       a-  T" TU R                  [        5       =(       a    TR                  S9  U v   M`     S S S 5        TR                  S S S 5        g ! , (       d  f       N"= f7f)Nrg   )r   
isinstancer   r   responser   r1   __exit__)rw   rj   integrationold_iteratorre   s    r3   new_iterator2_wrap_chat.<locals>.new_chat.<locals>.new_iterator   s      56!-A)!-?@@J !#@E E !=$($%JJ0G0I 1D(3(C(C	!" #$G ". 7 MM$d3 76s   B A%B3B 
BB r}   unknown_responseT)rO   rP   get_integrationr,   r~   getstr
start_spanr   OPCOHERE_CHAT_COMPLETIONS_CREATErF   	__enter__	ExceptionrU   r   r   r   r1   r   r   AI_INPUT_MESSAGESlistmapCOLLECTED_PII_CHAT_PARAMSitemsCOLLECTED_CHAT_PARAMSAI_STREAMINGr   )argskwargsrm   rf   er   vr   r   r   re   rj   fr8   s           @@@r3   new_chat_wrap_chat.<locals>.new_chat   sC    !++-==>OP &fjj3S99d%f%%**Y'$$yy77%$++

 		T$V$C )*&(([-H-H#.. #JJ~r: !'7;<	= 6;;=DA{+D!AY? > .335;'a; 6  h&;&;UC"4 4$ $~] +*^ C!899, 7 9 !4#33	 dD$/#D*<dCdD$/u +*  	q!MM$d+	
 +*s9    I BJ/JAJA-J
J!I>>J
Jr   )r   r8   r   rj   s   `` @r3   r9   r9   _   s,     SD 1XT Tl Or6   c                 0   ^  [        T 5      U 4S j5       nU$ )Nc                  h  > [         R                  " 5       R                  [        5      nUc  T" U 0 UD6$ [         R                  " [
        R                  R                  S[        R                  S9 nSU;   a  [        5       (       a  UR                  (       a  [        US   [        5      (       a   [        U[        R                  US   /5        Oc[        US   [         5      (       aK  [#        US   5      S:  a9  [        US   S   [        5      (       a  [        U[        R$                  US   5        SU;   a  [        U[        R&                  US   5         T" U 0 UD6n[-        US5      (       a  [-        UR.                  S5      (       al  [-        UR.                  R0                  S5      (       aG  [3        UUR.                  R0                  R4                  UR.                  R0                  R4                  S	9  UsS S S 5        $ ! [(         a  n[+        U5        US eS nAff = f! , (       d  f       g = f)
NzCohere Embedding Creationrn   textsr   r   rY   rZ   r[   )r[   total_tokens)rO   rP   r   r,   r   r   r   COHERE_EMBEDDINGS_CREATErF   r   r1   r~   r   r   r   AI_TEXTSr   lenr   AI_MODEL_IDr   rU   r_   rY   rZ   r   r[   )r   r   r   re   rf   r   r   s         r3   	new_embed_wrap_embed.<locals>.new_embed   s    !++-==>OPd%f%%""yy11,$++
 & '))k.I.IfWos33'h.?.?&/ARSvg55F7O,q0"6'?1#5s;;'h88&/ & #D(*>*>wP"((
 V$$CHHn55CHH11>BB"!$!6!6!C!C!$!6!6!C!C
 I
 
.  ""1%T!"/
 
s2   1C&H#H BH#
H HH  H##
H1r   )r   r   s   ` r3   r;   r;      s$     1X* *X r6   )=	functoolsr   rO   r   sentry_sdk.ai.monitoringr   sentry_sdk.constsr   sentry_sdk.ai.utilsr   typingr	   r
   r   r   sentry_sdk.tracingr   sentry_sdk.scoper   sentry_sdk.integrationsr   r   sentry_sdk.utilsr   r   cohere.clientr   cohere.base_clientr   r.   r   r   r   ImportErrorr   r   r   AI_TOP_KAI_TOP_PAI_SEEDAI_FREQUENCY_PENALTYAI_PRESENCE_PENALTYAI_RAW_PROMPTINGr   AI_TOOLSAI_PREAMBLEr   AI_GENERATION_IDAI_SEARCH_REQUIREDAI_FINISH_REASONrc   AI_CITATIONSAI_DOCUMENTSAI_SEARCH_QUERIESAI_SEARCH_RESULTSAI_TOOL_CALLSra   r,   rU   r9   r;   r>   r6   r3   <module>r      sc     7 & 3  ..'  4 = N/$-
 /W4 !!						!66 44..  $$  .."55..  &&&&0000((! T T /|~0C  /
-
../  WVWs   !E 9E- E*-E<;E<