
    +j                         d Z ddlZddlZddlZdZdZdZdZdZdZ	d	Z
d
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z" G d! d"          Z#d#d$d$d%d&d'd(d)d*d+d,d-d.d/Z$d0e%fd1Z&d2e%d0e%fd3Z'd0e(fd4Z)dS )5uO   
LightClaw adapter — constants and utility functions.
Mirrors: src/config.ts
    Nlightclawbotzmessage:privatezmessage:ack__handshake__zmessage:history:requestzmessage:history:responsezsessions:requestzsessions:responsezwss://lightai.cloud.tencent.comz!https://lightai.cloud.tencent.comz	/ws/agentz/cgi/ticketi   maing      ?g      >@g      @   g       @g      .@i  z/drive/savez/drive/previewi  @g      ^@g      N@zlocalfile://channelzfile:downloadusagec                   "    e Zd ZdZdZdZdZdZdS )FileDownloadStatusznLifecycle statuses carried inside `extra.transferData.status`.

    Mirrors TS FILE_DOWNLOAD_STATUS enum.
    download_reqdownload_readydownload_urldownload_errorN)__name__
__module____qualname____doc__REQREADYURLERROR     :/home/agentuser/.hermes/plugins/lightclawbot/src/config.pyr
   r
   d   s.          CECEEEr   r
   z	image/pngz
image/jpegz	image/gifz
image/webpzimage/svg+xmlz
audio/mpegz	audio/wavz	audio/oggz	video/mp4z
video/webmzapplication/pdfz
text/plain)z.pngz.jpgz.jpegz.gifz.webpz.svgz.mp3z.wavz.oggz.mp4z.webmz.pdfz.txtreturnc                      dt          t          j                    dz             dt          j                    j        dd          S )zGenerate a unique message ID.hermes_i  _N   )inttimeuuiduuid4hexr   r   r   generate_msg_idr$      s=    ESt+,,EEtz||/?/CEEEr   filenamec                     t           j                            |           d                                         }t                              |d          S )z$Guess MIME type from file extension.   zapplication/octet-stream)ospathsplitextlower	_MIME_MAPget)r%   exts     r   
guess_mimer/      s=    
'

8
$
$Q
'
-
-
/
/C==8999r   c                  2    	 ddl } dS # t          $ r Y dS w xY w)zACheck if aiohttp is available (python-socketio no longer needed).r   NTF)aiohttpImportError)r1   s    r   check_lightclaw_requirementsr3      s7    t   uus    
)*r   r(   r    r!   CHANNEL_KEYEVENT_MESSAGE_PRIVATEEVENT_MESSAGE_ACKEVENT_HANDSHAKEEVENT_HISTORY_REQUESTEVENT_HISTORY_RESPONSEEVENT_SESSIONS_REQUESTEVENT_SESSIONS_RESPONSEDEFAULT_WS_BASE_URLDEFAULT_API_BASE_URLSOCKET_PATHAPI_PATH_TICKETMAX_MESSAGE_LENGTHDEFAULT_AGENT_IDRECONNECT_DELAY_BASERECONNECT_DELAY_MAXEMIT_ACK_TIMEOUTEMIT_MAX_RETRIESEMIT_RETRY_BASE_DELAYEMIT_RETRY_MAX_DELAYEMIT_PENDING_MAXSERVER_UPLOAD_BASE_URLAPI_PATH_UPLOADAPI_PATH_DOWNLOADMEDIA_MAX_BYTESUPLOAD_TIMEOUTDOWNLOAD_TIMEOUTLOCALFILE_SCHEME	X_PRODUCTKIND_FILE_DOWNLOAD
KIND_USAGEr
   r,   strr$   r/   boolr3   r   r   r   <module>rU      s   
 
			    , ' )3 4 , -  9 : "$              = &)  $ 
 "  	 %  
       " L! 	0F F F F F
: : : : : :d      r   