Ë
    tPêj`#  ã            
       óÊ   — d dl m Z  d dlmZmZ d dlZd dlmZmZ d dlm	Z	  G d„ d«      Z
ded	edz  d
edz  fd„Zdedz  dedz  d
eedz  edz  f   fd„Zdedede ded
ef
d„Zy)é    )Údatetime)ÚFinalÚcastN)Úprint_verboseÚverbose_logger)ÚStandardLoggingPayloadc                   óP   — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 ddedz  dedz  fd„Zd„ Zd„ Zy)ÚS3LoggerNÚs3_server_side_encryptionÚs3_sse_kms_key_idc                 óâ  — dd l }	 t        j                  dt        j                  «       d}t        j                  ��,t        j                  j                  «       D ]N  \  }}t        |t        «      sŒ|j                  d«      sŒ)t        j                  |«      t        j                  |<   ŒP t        j                  j                  d«      }t        j                  j                  d«      }t        j                  j                  d«      }t        j                  j                  dd	«      }t        j                  j                  d
«      }t        j                  j                  d«      }t        j                  j                  d«      }t        j                  j                  d«      }	t        j                  j                  d«      }
t        j                  j                  d«      }t        j                  j                  d«      }t        j                  j                  d«      }t        j                  j                  d«      }t        t        j                  j                  dd«      «      }|| _        || _        || _        t        ||«      \  | _        | _        t        j                  d|«        |j$                  	 d|||||||	|
|dœ	|¤Ž| _        y # t(        $ r}t+        d|› �«       |‚d }~ww xY w)Nr   z)in init s3 logger - s3_callback_params %sFzos.environ/Ús3_bucket_nameÚs3_region_nameÚs3_api_versionÚ
s3_use_sslTÚ	s3_verifyÚs3_endpoint_urlÚs3_aws_access_key_idÚs3_aws_secret_access_keyÚs3_aws_session_tokenÚ	s3_configÚs3_pathr   r   Ús3_use_team_prefixzs3 logger using endpoint url %s)	Úregion_nameÚendpoint_urlÚapi_versionÚuse_sslÚverifyÚaws_access_key_idÚaws_secret_access_keyÚaws_session_tokenÚconfigz Got exception on init s3 client )Ús3)Úboto3r   ÚdebugÚlitellmÚs3_callback_paramsÚitemsÚ
isinstanceÚstrÚ
startswithÚ
get_secretÚgetÚboolr   Úbucket_namer   Úresolve_sse_paramsr   r   ÚclientÚ	s3_clientÚ	Exceptionr   )Úselfr   r   r   r   r   r   r   r   r   r   r   r   r   Úkwargsr$   r   ÚkeyÚvalueÚes                       ú\/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/integrations/s3.pyÚ__init__zS3Logger.__init__   s‡  € ó" 	ð1	Ü× Ñ Ð!LÌg×NhÑNhÔià!&Ðä×)Ñ)Ñ5ä")×"<Ñ"<×"BÑ"BÓ"Dò T‘J�C˜Ü! %¬Õ-°%×2BÑ2BÀ=Õ2QÜ:A×:LÑ:LÈUÓ:Sœ×2Ñ2°3Ò7ðTô ")×!;Ñ!;×!?Ñ!?Ð@PÓ!Q�Ü!(×!;Ñ!;×!?Ñ!?Ð@PÓ!Q�Ü!(×!;Ñ!;×!?Ñ!?Ð@PÓ!Q�Ü$×7Ñ7×;Ñ;¸LÈ$ÓO�
Ü#×6Ñ6×:Ñ:¸;ÓG�	Ü")×"<Ñ"<×"@Ñ"@ÐARÓ"S�Ü'.×'AÑ'A×'EÑ'EÐF\Ó']Ð$Ü+2×+EÑ+E×+IÑ+IÐJdÓ+eÐ(Ü'.×'AÑ'A×'EÑ'EÐF\Ó']Ð$Ü#×6Ñ6×:Ñ:¸;ÓG�	Ü!×4Ñ4×8Ñ8¸ÓC�Ü,3×,FÑ,F×,JÑ,JÐKfÓ,gÐ)Ü$+×$>Ñ$>×$BÑ$BÐCVÓ$WÐ!ä%)¬'×*DÑ*D×*HÑ*HÐI]Ð_dÓ*eÓ%fÐ"Ø&8ˆDÔ#Ø-ˆDÔØ"ˆDŒLÜEWØ)Ð+<óFÑBˆDÔ*¨DÔ,Bô × Ñ Ð!BÀOÔTà)˜UŸ\™\Øðà*Ø,Ø*Ø"Ø Ø"6Ø&>Ø"6Ø ñð ñˆD�Nøô ò 	ÜÐ<¸Q¸CÐ@ÔAØˆGûð	ús%   †A+K Á2K ÂIK Ë	K.ËK)Ë)K.c              ƒ   ó6   K  — | j                  |||||«       y ­w)N)Ú	log_event)r4   r5   Úresponse_objÚ
start_timeÚend_timer   s         r9   Ú_async_log_eventzS3Logger._async_log_eventT   s   è ø€ Ø�‰�v˜|¨Z¸À=ÕQùs   ‚c                 ó*  — 	 t        j                  d|«       |j                  di «      }|j                  di «      xs i }i }t        |t        «      r"|j                  «       D ]  \  }	}
|	dv rŒ|
||	<   Œ t        t        d z  |j                  dd «      «      }|€y |d   j                  d«      }d}t        j                  r| j                  r|�|› d�}t        j                  j                  ||«      xs d}t        t        t        d z  | j                  «      xs d|||«      }d	|j!                  d
«      z   dz   |d   z   dz   }ddlm}  ||«      } |d|› �«       | j&                  | j(                  dœj                  «       D �	�
ci c]
  \  }	}
|
r|	|
“Œ }}	}
 | j*                  j,                  d| j.                  ||ddd|› d�ddœ|¤Ž} |d|› �«        |d|› �«       |S c c}
}	w # t0        $ r }t        j2                  d|«       Y d }~y d }~ww xY w)Nz1s3 Logging - Enters logging function for model %sÚlitellm_paramsÚmetadata)ÚheadersÚendpointÚcaching_groupsÚprevious_modelsÚstandard_logging_objectÚuser_api_key_team_aliasÚ ú/ztime-z%Y-%m-%dT%H-%M-%S-%fÚ_Úidú.jsonr   )Ú
safe_dumpsz
s3 Logger - Logging payload = )ÚServerSideEncryptionÚSSEKMSKeyIdzapplication/jsonÚenzinline; filename="ú"z0private, immutable, max-age=31536000, s-maxage=0)ÚBucketÚKeyÚBodyÚContentTypeÚContentLanguageÚContentDispositionÚCacheControlzResponse from s3:z*s3 Layer Logging - final response object: zs3 Layer Error - %s© )r   r%   r-   r)   Údictr(   r   r   r&   Úenable_preview_featuresr   ÚutilsÚget_logging_idÚget_s3_object_keyr*   r   ÚstrftimeÚ*litellm.litellm_core_utils.safe_json_dumpsrO   r   r   r2   Ú
put_objectr/   r3   Ú	exception)r4   r5   r=   r>   r?   r   rB   rC   Úclean_metadatar6   r7   ÚpayloadÚ
team_aliasÚteam_alias_prefixÚs3_file_nameÚs3_object_keyÚs3_object_download_filenamerO   Úpayload_strÚ
sse_paramsÚresponser8   s                         r9   r<   zS3Logger.log_eventW   sw  € ðS	?Ü× Ñ Ð!TÐV\Ô]ð %+§J¡JÐ/?ÀÓ$DˆNØ,×0Ñ0°¸RÓ@ÒFÀBˆHð
 %'ˆNÜ˜(¤DÔ)Ø"*§.¡.Ó"2ò 
4‘J�C˜àð ñ ð !à.3˜ sÒ+ð
4ô =AÜ&¨Ñ-Ø—
‘
Ð4°dÓ;ó=ˆGð
 ˆØà '¨
Ñ 3× 7Ñ 7Ð8QÓ RˆJà "ÐÜ×.Ò.°4×3JÒ3JÈzÐOeØ'1 l°!Ð$4Ð!ä")§-¡-×">Ñ">¸zÈ7Ó"SÒ"YÐWYˆLÜ#4Ü”S˜4‘Z §¡Ó.Ò4°"Ø!ØØó	$ˆMð ˜*×-Ñ-Ð.DÓEÑEÈÑKÈgÐVZÉmÑ[Ð^eÑeð (õ Ná!+¨GÓ!4ˆKáÐ<¸[¸MÐJÔKð
 -1×,JÑ,JØ#'×#9Ñ#9ñ#÷ ‘%“'÷!á�C˜ñ ð �U‘
ð!ˆJñ !ð 8˜dŸn™n×7Ñ7ð 	Ø×'Ñ'Ø!Ø Ø.Ø $Ø%7Ð8SÐ7TÐTUÐ#VØOñ	ð ñ	ˆHñ Ð-¨h¨ZÐ8Ô9áÐFÀ|ÀnÐUÔVØˆOùó/!øô0 ò 	?Ü×$Ñ$Ð%:¸A×>Ñ>ûð	?ús2   ‚BG) ÂC-G) ÆG#ÆAG) Ç#G) Ç)	HÇ2HÈH)NNNNTNNNNNNNN)Ú__name__Ú
__module__Ú__qualname__r*   r:   r@   r<   r[   ó    r9   r
   r
      s\   „ ð ØØØØØØØ!Ø!%Ø!ØØ04Ø(,ñDð $'¨¡:ðDð  ™:óDòLRóT?rr   r
   Únamer7   Úreturnc                 ó€   — |�t        |t        «      r|S t        j                  d| t	        |«      j
                  «       y )NzIs3 logging: ignoring %s because it has invalid type %s; expected a string)r)   r*   r   ÚwarningÚtypero   )rs   r7   s     r9   Ú_validated_sse_valuerx   ®   s=   € Ø€}œ
 5¬#Ô.ØˆÜ×ÑØSÐUYÔ[_Ð`eÓ[f×[oÑ[oôð rr   Úserver_side_encryptionÚsse_kms_key_idc                 ó®   — t        d| «      }t        d|«      }|xs |rdnd }|€y|r+|j                  d«      st        j                  d|«       |d fS ||fS )Nr   r   zaws:kms)NNz}s3 logging: ignoring s3_sse_kms_key_id because s3_server_side_encryption is %s; set it to aws:kms to encrypt with the KMS key)rx   r+   r   rv   )ry   rz   Ú	valid_sseÚvalid_key_idÚ	algorithms        r9   r0   r0   ·   st   € ô ,Ð,GÐI_Ó`€IÜ.Ð/BÀNÓS€LØ ÒI±,¡YÀD€IØÐØÙ˜I×0Ñ0°Ô;Ü×Ñð LØô	
ð ˜$ˆÐØ�lÐ"Ð"rr   r   Úprefixr>   ri   c                 óš   — |j                  dd«      }| r| j                  d«      dz   nd|z   |j                  d«      z   dz   |z   }|dz  }|S )NrK   rL   rJ   z%Y-%m-%drN   )ÚreplaceÚrstripra   )r   r   r>   ri   Úsanitized_s3_file_namerj   s         r9   r`   r`   É   sr   € ð %1×$8Ñ$8¸¸cÓ$BÐá&-ˆ�‰˜Ó	˜sÒ	"°2Ø
ñ	à
×
Ñ
˜jÓ
)ñ	*ð ñ	ð !ñ		!ð ð �WÑ€MØÐrr   )r   Útypingr   r   r&   Úlitellm._loggingr   r   Úlitellm.types.utilsr   r
   r*   rx   Útupler0   r`   r[   rr   r9   ú<module>rˆ      s±   ðõ ß ã ß :Ý 6÷_?ñ _?ðD˜sð ¨3°©:ð ¸#À¹*ó ð#Ø $™Jð#à˜$‘Jð#ð ˆ3�‰:�s˜T‘zÐ!Ñ"ó#ð$Øðàðð ðð ð	ð
 	ôrr   