§
    øžyj›  ã                   óì   — d Z ddlZddlZddlZddlmZmZmZ  ej        e	¦  «        Z
 ej        ¦   «         Zd„ Zd„ ZdZddd	d
dddœid
gdœdœZd„ Zdedefd„Z ej        ddeeeg ddd¬¦	  «	         dS )zÓFeishu Document Tool -- read document content via Feishu/Lark API.

Provides ``feishu_doc_read`` for reading document content as plain text.
Uses the same lazy-import + BaseRequest pattern as feishu_comment.py.
é    N)ÚregistryÚ
tool_errorÚtool_resultc                 ó   — | t           _        dS )zFStore a lark client for the current thread (called by feishu_comment).N)Ú_localÚclient)r   s    ú;/home/ragecks/.hermes/hermes-agent/tools/feishu_doc_tool.pyÚ
set_clientr
      s   € à…F„M€M€Mó    c                  ó.   — t          t          dd¦  «        S )z7Return the lark client for the current thread, or None.r   N)Úgetattrr   © r   r	   Ú
get_clientr      s   € å•6˜8 TÑ*Ô*Ð*r   z5/open-apis/docx/v1/documents/:document_id/raw_contentÚfeishu_doc_readz…Read the full content of a Feishu/Lark document as plain text. Useful when you need more context beyond the quoted text in a comment.ÚobjectÚ	doc_tokenÚstringz>The document token (from the document URL or comment context).)ÚtypeÚdescription)r   Ú
propertiesÚrequired)Únamer   Ú
parametersc                  ót   — dd l } 	 | j                             d¦  «        d uS # t          t          f$ r Y dS w xY w)Nr   Ú	lark_oapiF)Úimportlib.utilÚutilÚ	find_specÚImportErrorÚ
ValueError)Ú	importlibs    r	   Ú_check_feishur"   6   sW   € ð ÐÐÐðØŒ~×'Ò'¨Ñ4Ô4¸DÐ@Ð@øÝ�Ð$ð ð ð Øˆuˆuðøøøs   †" ¢7¶7ÚargsÚreturnc                 óæ  — |                       dd¦  «                             ¦   «         }|st          d¦  «        S t          ¦   «         }|€t          d¦  «        S 	 ddlm} ddlm} ddlm	} n# t          $ r t          d	¦  «        cY S w xY w|                     ¦   «                              |j        ¦  «                             t          ¦  «                             |j        h¦  «                             d
|i¦  «                             ¦   «         }|                     |¦  «        }t+          |dd ¦  «        }	|	dk    r&t+          |dd¦  «        }
t          d|	› d|
› �¦  «        S t+          |dd ¦  «        }|r�t-          |d¦  «        rq	 t/          j        |j        ¦  «        }|                      di ¦  «                              dd¦  «        }t5          d|¬¦  «        S # t.          j        t8          f$ r Y nw xY wt+          |dd ¦  «        }|r[t;          |t<          ¦  «        r|                      dd¦  «        }nt+          |dt?          |¦  «        ¦  «        }t5          d|¬¦  «        S t          d¦  «        S )Nr   Ú zdoc_token is requiredz=Feishu client not available (not in a Feishu comment context)r   )ÚAccessTokenType)Ú
HttpMethod)ÚBaseRequestzlark_oapi not installedÚdocument_idÚcodeÚmsgzunknown errorzFailed to read document: code=z msg=ÚrawÚcontentÚdataT)Úsuccessr.   z%No content returned from document API) ÚgetÚstripr   r   r   r'   Úlark_oapi.core.enumr(   Ú!lark_oapi.core.model.base_requestr)   r   ÚbuilderÚhttp_methodÚGETÚuriÚ_RAW_CONTENT_URIÚtoken_typesÚTENANTÚpathsÚbuildÚrequestr   ÚhasattrÚjsonÚloadsr.   r   ÚJSONDecodeErrorÚAttributeErrorÚ
isinstanceÚdictÚstr)r#   Úkwargsr   r   r'   r(   r)   r>   Úresponser+   r,   r-   Úbodyr.   r/   s                  r	   Ú_handle_feishu_doc_readrJ   E   sš  € Ø—’˜ bÑ)Ô)×/Ò/Ñ1Ô1€IØð 3ÝÐ1Ñ2Ô2Ð2å‰\Œ\€FØ€~ÝÐYÑZÔZÐZð5Ø-Ð-Ð-Ð-Ð-Ð-Ø2Ð2Ð2Ð2Ð2Ð2ØAÐAÐAÐAÐAÐAÐAøÝð 5ð 5ð 5ÝÐ3Ñ4Ô4Ð4Ð4Ð4ð5øøøð 	×ÒÑÔß	Š�Z”^Ñ	$Ô	$ß	ŠÕÑ	Ô	ß	Š�oÔ,Ð-Ñ	.Ô	.ß	Š�˜yÐ)Ñ	*Ô	*ß	Š‰Œð ð �~Š~˜gÑ&Ô&€Hå�8˜V TÑ*Ô*€DØˆq‚y€yÝ�h  Ñ7Ô7ˆÝÐK¸4ÐKÐKÀcÐKÐKÑLÔLÐLå
�(˜E 4Ñ
(Ô
(€CØ
ð �w�s˜IÑ&Ô&ð ð	Ý”:˜cœkÑ*Ô*ˆDØ—h’h˜v rÑ*Ô*×.Ò.¨y¸"Ñ=Ô=ˆGÝ t°WÐ=Ñ=Ô=Ð=øÝÔ$¥nÐ5ð 	ð 	ð 	ØˆDð	øøøõ �8˜V TÑ*Ô*€DØð :Ý�d�DÑ!Ô!ð 	:Ø—h’h˜y¨"Ñ-Ô-ˆGˆGå˜d I­s°4©y¬yÑ9Ô9ˆGÝ 4°Ð9Ñ9Ô9Ð9åÐ=Ñ>Ô>Ð>s%   ÁA- Á-B	ÂB	ÆAG ÇG3Ç2G3Ú
feishu_docFzRead Feishu document contentu   ðŸ“„)	r   ÚtoolsetÚschemaÚhandlerÚcheck_fnÚrequires_envÚis_asyncr   Úemoji)Ú__doc__r@   ÚloggingÚ	threadingÚtools.registryr   r   r   Ú	getLoggerÚ__name__ÚloggerÚlocalr   r
   r   r9   ÚFEISHU_DOC_READ_SCHEMAr"   rE   rF   rJ   Úregisterr   r   r	   ú<module>r]      sR  ððð ð €€€Ø €€€Ø Ð Ð Ð à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à	ˆÔ	˜8Ñ	$Ô	$€ð 
ˆŒÑ	Ô	€ðð ð ð
+ð +ð +ð KÐ ð ð	Qð àØ Ø_ðð ð
ð !�Mð	ð 	ðð Ð ð&ð ð ð4? $ð 4?°Sð 4?ð 4?ð 4?ð 4?ðv €Ô Ø	ØØ!Ø#ØØØØ.Ø
ð
ñ 
ô 
ð 
ð 
ð 
r   