
    Cj;                       S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKJ	r	J
r
  SSKrSSKJrJr  SSKJrJrJrJr  SSKJr  SSKJr  SS	KJrJr  SS
KJr  SSKJr  SSKJ r   \RB                  " S\RD                  5      r# " S S\\5      r$g)zdSQS Logging Integration

This logger sends ``StandardLoggingPayload`` entries to an AWS SQS queue.

    )annotationsN)ListOptional)print_verboseverbose_logger)DEFAULT_SQS_BATCH_SIZE"DEFAULT_SQS_FLUSH_INTERVAL_SECONDSSQS_API_VERSIONSQS_SEND_MESSAGE_ACTION)
safe_dumps)
BaseAWSLLM)get_async_httpx_clienthttpxSpecialProvider)StandardLoggingPayload   )CustomBatchLogger)IntegrationHealthCheckStatuszOdata:(?:application|image|audio|video)/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=\s]+c                  R   \ rS rSrSrSSSSSSSSSSSSSS\\SSSSS4                                         SS jjr                   S                                     SS jjr  SS jr	S	 r
SS
 jrSS jrSS jrSrg)	SQSLogger)   zXBatching logger that writes logs to an AWS SQS queue, optionally encrypting the payload.NTFc                    [         R                  " S[        R                   35        [	        [
        R                  S9U l        U R                  " S0 SU_SU_SU_SU_SU_SU_S	U_S
U_SU	_SU
_SU_SU_SU_SU_SU_SU_SU_SU_SU_UD6  [        R                  " U R                  5       5        [        R                  " 5       U l        [         R                  " SU SU 35        [        R                  " U U R                  UUS9  / U l        ["        R                  " U 5        g ! [$         a  n['        S[)        U5       35        UeS nAff = f)Nz)in init sqs logger - sqs_callback_params )llm_providersqs_queue_urlsqs_region_namesqs_api_versionsqs_use_ssl
sqs_verifysqs_endpoint_urlsqs_aws_access_key_idsqs_aws_secret_access_keysqs_aws_session_tokensqs_aws_session_namesqs_aws_profile_namesqs_aws_role_namesqs_aws_web_identity_tokensqs_aws_sts_endpointsqs_strip_base64_files(sqs_aws_use_application_level_encryptionsqs_app_encryption_key_b64sqs_app_encryption_aad
sqs_configzsqs flush interval: z, sqs batch size: )
flush_lockflush_interval
batch_sizez!Got exception on init sqs client  )r   debuglitellmaws_sqs_callback_paramsr   r   LoggingCallbackasync_httpx_client_init_sqs_paramsasynciocreate_taskperiodic_flushLockr,   r   __init__	log_queuer   	Exceptionr   str)selfr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   sqs_flush_intervalsqs_batch_sizer+   r'   r(   r)   r*   kwargses                           j/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/litellm/integrations/sqs.pyr:   SQSLogger.__init__,   s   63	  ;G<[<[;\] '=1AA'D# !! + / !0 (	
 & "2 '< +D '< &: &: #4 ,F &: (>  :b!" ,F#$ (>%& &).  3 3 56%llnDO  &'9&::L^L\] &&??1)	 <>DN% 	=c!fXFGG	s   D&D) )
E3EEc                   [         R                  =(       d    0 [         l        [         R                  R                  5        H\  u  nn[        U[        5      (       d  M  UR                  S5      (       d  M5  [         R                  " U5      [         R                  U'   M^     [         R                  R                  S5      =(       d    UU l        [         R                  R                  S5      =(       d    UU l	        [         R                  R                  S5      =(       d    UU l
        [         R                  R                  SS5      =(       d    UU l        [         R                  R                  S5      =(       d    UU l        [         R                  R                  S5      =(       d    UU l        [         R                  R                  S	5      =(       d    UU l        [         R                  R                  S
5      =(       d    UU l        [         R                  R                  S5      =(       d    U	U l        [         R                  R                  S5      =(       d    U
U l        [         R                  R                  S5      =(       d    UU l        [         R                  R                  S5      =(       d    UU l        [         R                  R                  S5      =(       d    UU l        [         R                  R                  S5      =(       d    UU l        [         R                  R                  SS5      =(       d    UU l        [         R                  R                  SS5      =(       d    UU l        [         R                  R                  S5      =(       d    UU l        [         R                  R                  S5      =(       d    UU l        S U l        U R.                  (       ae  SSKJn  U R0                  (       d  [;        S5      e[<        R>                  " U R0                  5      nU" U5      U l        [@        RB                  " S5        [         R                  R                  S5      =(       d    UU l"        g )Nzos.environ/r   r   r   r   Tr   r   r   r    r!   r"   r#   r$   r%   r&   r'   Fr(   r)   r*   r   )	AppCryptozBsqs_app_encryption_key_b64 is required when encryption is enabled.z0SQSLogger: Application-level encryption enabled.r+   )#r1   r2   items
isinstancer=   
startswith
get_secretgetr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   
app_crypto%litellm.litellm_core_utils.app_cryptorF   
ValueErrorbase64	b64decoder   r0   r+   )r>   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   keyvaluerF   s                          rC   r5   SQSLogger._init_sqs_params|   s   , +2*I*I*OR' "99??AJC%%%%*:*:=*I*I7>7I7I%7P//4 B
 ++//@QM 	 ++//0ABUo 	 ++//0ABUo 	 ++//tDS 	 ++//=K 	 ++//0BCWGW 	 ++//0GH %$ 	" ++//0KL )( 	& ++//0GH %$ 	" ++//0FG $# 	! ++//0FG $# 	! ++//0CD !  	 ++//0LM *) 	' ++//0FG $# 	!
 ++//0H%P &% 	# ++//:E 8 8	 	5 ++//0LM *) 	'
 ++//0HI &% 	# 2688G22 X  ""4#B#BCC'nDO  !ST++//=K 	    c                  #     [         R                  " SU5        UR                  S5      nU R                  (       a  U R	                  U5      I S h  vN nUc  [        S5      eU R                  R                  U5        [         R                  " S[        U R                  5      U R                  5        g  Nc! [         a,  n[         R                  " S[        U5       35         S nAg S nAff = f7f)Nz2SQS Logging - Enters logging function for model %sstandard_logging_object standard_logging_payload is None+sqs logging: queue length %s, batch size %szsqs Layer Error - )r   r0   rK   r'   _strip_base64_from_messagesrN   r;   appendlenr.   r<   	exceptionr=   r>   rA   response_obj
start_timeend_timestandard_logging_payloadrB   s          rC   async_log_success_event!SQSLogger.async_log_success_event   s     	D  Df (.zz2K'L$**151Q1Q,2 ,( (/ !CDDNN!!":;  =DNN#,  	D$$'9#a&%BCC	DsB   C0AB7 B5A"B7 4C05B7 7
C-"C(#C0(C--C0c                  #     UR                  S5      nUc  [        S5      eU R                  (       a  U R                  U5      I S h  vN nU R                  R                  U5        [        R                  " S[        U R                  5      U R                  5        g  NU! [         aB  n[        R                  " S[        U5       S[        R                  " 5        35         S nAg S nAff = f7f)NrV   rW   rX   zDatadog Layer Error - 
)rK   rN   r'   rY   r;   rZ   r   r0   r[   r.   r<   r\   r=   	traceback
format_excr]   s          rC   async_log_failure_event!SQSLogger.async_log_failure_event  s     	'-zz2K'L$'/ !CDD**151Q1Q,2 ,( NN!!":;  =DNN#,  	$$(Q93G3G3I2JK 		sB   C/AB  B	AB  C/B   
C,*8C'"C/'C,,C/c                   #    [         R                  " S[        U R                  5       35        U R                  (       d  g U R                   H(  n[        R
                  " U R                  U5      5        M*     g 7f)Nzsqs logger - sending batch of )r   r0   r[   r;   r6   r7   async_send_message)r>   payloads     rC   async_send_batchSQSLogger.async_send_batch#  sV     =c$..>Q=RST~~~~G 7 7 @A &s   A8A:c                &  #     SSK Jn  SS KnSSKJn  SSKJn  SSKJn  U" U R                  5      nU" U R                  U R                  U R                  U R                  U R                  U R                  U R                   U R"                  U R$                  S9	I S h  vN nU R&                  c  [)        S5      e[*        R,                  " [/        U5      5      n	U R0                  (       aa  U R2                  (       a  U R2                  R5                  S5      OS n
U R0                  R7                  XS	9n[*        R8                  " S
US.5      nO[/        U5      nS[:         S[<         S3U" USS9-   nSS0nUR?                  SU R&                  XS9nURA                  5       nU" URB                  URD                  URF                  URH                  S9nU" USU R                  5      RK                  U5        [M        URH                  RO                  5       5      nU RP                  RS                  U R&                  UUS9I S h  vN nURU                  5         g  GN N! [V         a,  n[X        RZ                  " S[]        U5       35         S nAg S nAff = f7f)Nr   )quote)	SigV4Auth)
AWSRequest)asyncify)	aws_access_key_idaws_secret_access_keyaws_session_tokenaws_region_nameaws_session_nameaws_profile_nameaws_role_nameaws_web_identity_tokenaws_sts_endpointzsqs_queue_url not setzutf-8)aadT)__encrypted__rl   zAction=z	&Version=z&MessageBody= )safezContent-Typez!application/x-www-form-urlencodedPOST)dataheaders)methodurlr   r   sqszError sending to SQS: )/urllib.parserp   requestsbotocore.authrq   botocore.awsrequestrr   #litellm.litellm_core_utils.asyncifyrs   get_credentialsr   r    r!   r   r"   r#   r$   r%   r&   r   rN   jsonloadsr   rL   r*   encodeencrypt_jsondumpsr   r
   Requestpreparer   r   bodyr   add_authdictrG   r4   postraise_for_statusr<   r   r\   r=   )r>   rl   rp   r   rq   rr   rs   asyncified_get_credentialscredentials	json_data	aad_bytes	encryptedjson_stringr   r   reqpreppedaws_requestsigned_headersresponserB   s                        rC   rk   SQSLogger.async_send_message+  sa    D	H*/6D)1$2F2F)G& :"&"<"<&*&D&D"&"<"< $ 4 4!%!:!:!%!:!:"44'+'F'F!%!:!:
! 
K !!) !899

:g#67I 22 //66w? 
 !OO888R	"jj4I)VW(1 12)O;LMZ"-.   CG ""** # C kkmG$~~KK\\	K k5$*>*>?HHU!+"5"5";";"=>N!4499""& :  H
 %%'q
f  	H$$'=c!fX%FGG	HsT   JBI IFI =I>I JI I 
J""J	J	JJc                   #     SSK Jn  U" 5       nU R                  U5      I Sh  vN   [        SSS9$  N! [         a  n[        S[        U5      S9s SnA$ SnAff = f7f)zO
Health check for SQS by sending a small test message to the configured queue.
r   )%create_dummy_standard_logging_payloadNhealthy)statuserror_message	unhealthy)*litellm.litellm_core_utils.litellm_loggingr   rk   r   r<   r=   )r>   r   rV   rB   s       rC   async_health_checkSQSLogger.async_health_checkr  sl     	 67 $ ))*ABBB/yPTUU C 	/"#a& 	s=   A !6 46 A 6 
A AAA AA )rL   r4   r,   r;   r   r*   r)   r   r#   r$   r    r"   r!   r&   r(   r%   r+   r   r   r   r'   r   r   )*r   Optional[str]r   r   r   r   r   boolr   Optional[bool]r   r   r   r   r    r   r!   r   r"   r   r#   r   r$   r   r%   r   r&   r   r?   Optional[int]r@   r   r'   r   r(   r   r)   r   r*   r   returnNone)NNNTNNNNNNNNNNFFNNN)&r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r!   r   r"   r   r#   r   r$   r   r%   r   r&   r   r'   r   r(   r   r)   r   r*   r   r   r   )r   r   )rl   r   r   r   )r   r   )__name__
__module____qualname____firstlineno____doc__r	   r   r:   r5   rb   rh   rm   rk   r   __static_attributes__r/   rT   rC   r   r   )   sl   b
 (,)-)- %)*./337/3.2.2+/48.2,N(>',9>48041N %N '	N
 'N N #N (N  -N $1N  -N ,N ,N )N %2N  ,!N" *#N$ &%N( !%)N, 37-N. %2/N0 !.1N4 
5Nd (,)-)- %)*./337/3.2.2+/48.2',9>4804)v
$v
 'v
 '	v

 v
 #v
 (v
  -v
 $1v
  -v
 ,v
 ,v
 )v
 %2v
 ,v
  !%!v
" 37#v
$ %2%v
& !.'v
* 
+v
pD	D0.BEHNrT   r   )%r   
__future__r   r6   rO   r   rerf   typingr   r   r1   litellm._loggingr   r   litellm.constantsr   r	   r
   r   *litellm.litellm_core_utils.safe_json_dumpsr   !litellm.llms.bedrock.base_aws_llmr   &litellm.llms.custom_httpx.http_handlerr   r   litellm.types.utilsr   custom_batch_loggerr   ,litellm.types.integrations.base_health_checkr   compile	MULTILINE_BASE64_INLINE_PATTERNr   r/   rT   rC   <module>r      st    #    	  !  :  B 8 7 2 UVLL \!: \rT   