
    D6j              
         S SK Jr  S SKJrJrJrJr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	/S
9r  S     SS jjr\R1                  S5      SS j5       r\R5                  S5      S 5       r\R5                  S5      SS j5       r\R1                  S5      \" S5      \" S5      \" S5      \" S5      \" SS9\" SS94           SS jj5       rSS jrg)    )annotations)	APIRouterFileFormHeaderHTTPExceptionQuery
UploadFilestatus)WorkspaceAgentClass)settings)	api_errorapi_response)WorkspaceChatRequest)verify_upload_tokenz/workspace-agentWorkspaceAgent)prefixtagsNc                8   [         R                  (       d  g SnU (       a8  U R                  5       R                  S5      (       a  U SS  R	                  5       nOU(       a  UR	                  5       nU[         R                  :w  a  [        [        R                  SS9eg )N zbearer    u   Secret inválido)status_codedetail)r   
mcp_secretlower
startswithstripr   r   HTTP_401_UNAUTHORIZED)authorizationx_mcp_secrettokens      TC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routes\workspace_agent.py_require_mcp_secretr#      s~     E,,.99)DDab!'')	""$###(D(DM_`` $    z/chatc                r   [        5       R                  U R                  5      nUR                  S5      S:X  aH  [	        UR                  S[
        R                  5      UR                  SS5      UR                  S5      S9$ [        [
        R                  UR                  SS5      UR                  S5      S9$ )	Nr   errorhttp_statusmessageErrordata)r   r(   r*   OK)	r   trigger_chatinputgetr   r   HTTP_502_BAD_GATEWAYr   HTTP_200_OK)bodyresults     r"   trigger_workspace_agent_chatr3       s     "//

;Fzz(w&

=&2M2MNJJy'2F#
 	

 &&

9d+ZZ r$   z/agentsc                 d    [        5       R                  5       n [        U R                  S/ 5      S9$ Nr*   )r*   )r   list_agentsr   r.   )r2   s    r"   list_workspace_agentsr7   0   s)     "..0FVZZ344r$   z/agents/{agent_id}/filesc                d    [        5       R                  U 5      n[        UR                  S5      S9$ r5   )r   
list_filesr   r.   )agent_idr2   s     r"   list_workspace_agent_filesr;   6   s)     "--h7FVZZ/00r$   z/files/upload.r   )defaultc                r  #    U=(       d    SnU=(       d    U R                   =(       d    SR                  5       nU(       aI   [        U5      nUS   nU(       d  US   nO7[        U5      US   :w  a  [	        [
        R                  SS9$ O [        XE5        U R                  5       I Sh  vN n
[        5       R!                  XzU5      nUR#                  S5      S:X  a8  [	        UR#                  S	[
        R                  5      UR#                  S
S5      S9$ [%        UR#                  S
S5      UR#                  S5      S9$ ! [         a+  n	[	        [
        R                  [        U	5      S9s Sn	A	$ Sn	A	ff = f! [         a1  n	[	        U	R                  [        U	R                  5      S9s Sn	A	$ Sn	A	ff = f GN7f)z_Subida multipart de .docx. Auth: Bearer MCP_SECRET o ?token= (firmado por prepare_docx_upload).Nr   )r   r(   r:   filenamez,filename no coincide con el token de subida.r   r&   r'   r(   r)   r+   r*   )r(   r*   )r>   r   r   
ValueErrorr   r   r   str_safe_upload_nameHTTP_400_BAD_REQUESTr#   r   r   r   readr   upload_filer.   r   )filer>   r:   r!   r   r    resolved_agent_idresolved_filenameclaimsexcr*   r2   s               r"   upload_workspace_agent_filerJ   <   s     !(D!8T]]8b??A	Y(/F #:.  &z 201VJ5GG"77F  H	S< D "../@HYZFzz(w&

=&2M2MNJJy'2
 	
 

9d ;&**VBTUU/  	Y)E)EsSVxXX	Y  	S#cjj/RR	S sr   ?F7D> =F7E6 F7)F4*BF7>
E3 E.(E3)F7.E33F76
F1 &F,&F1'F7,F11F7c                :    SSK Jn  U" U R                  5       5      $ )Nr   )_safe_segment))app.backend.utils.agent_workspace_storagerL   r   )valuerL   s     r"   rA   rA   f   s    G''r$   )NN)r   
str | Noner    rO   returnNone)r1   r   )r:   r@   )rE   r
   r>   r@   r:   r@   r!   r@   r   rO   r    rO   )rN   r@   rP   r@   )
__future__r   fastapir   r   r   r   r   r	   r
   r   )app.backend.classes.workspace_agent_classr   app.backend.core.configr   app.backend.core.responsesr   r   #app.backend.schemas.workspace_agentr   $app.backend.utils.agent_upload_tokenr   workspace_agentr#   postr3   r.   r7   r;   rJ   rA    r$   r"   <module>r\      sM   " [ [ [ I , > D D
	 !%#aaa 
a g  Y5  5
 /01 11
 o&CyHHr &t 4%d3&V
&V&V &V 	&V
 &V &V '&VR(r$   