
    ^h[	                     N    S SK r SSKJr  SSKJr  SSKJr  S SKr " S S\5      rg)	    N   )BaseAssistantListener   )StreamingTextWrapper)word_wrap_except_code_blocksc                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)ChatDBGPrinter   c                     Xl         X l        X0l         [        U[        R
                  " 5       R                  [        U5      -
  5      U l        SU l	        g !   X@l         N= fNT)
_out_debugger_prompt_chat_prefixminosget_terminal_sizecolumnslen_width	_at_start)selfoutdebugger_promptchat_prefixwidths        N/home/james-whalen/.local/lib/python3.13/site-packages/chatdbg/util/printer.py__init__ChatDBGPrinter.__init__	   sT    	 /'	 eR%9%9%;%C%Cc+FV%VWDK 	 Ks   :A A c                     g N )r   prompt	user_texts      r   on_begin_queryChatDBGPrinter.on_begin_query           c                     g r    r!   )r   statss     r   on_end_queryChatDBGPrinter.on_end_query   r&   r'   c                 t    [        [        R                  " XR                  S 5      4SU R                  0UD6  g )Nc                     gr   r!   )_s    r   <lambda>'ChatDBGPrinter._print.<locals>.<lambda>    s    tr'   file)printtextwrapindentr   r   )r   textkwargss      r   _printChatDBGPrinter._print   s4    OOD"3"3^D	
	
 	
r'   c                 V    [        [        R                  " US5      U R                  S9  g Nz*** )r1   r2   r3   r4   r   r   r5   s     r   on_warnChatDBGPrinter.on_warn%       hoodF+$))<r'   c                 V    [        [        R                  " US5      U R                  S9  g r:   r;   r<   s     r   on_errorChatDBGPrinter.on_error(   r?   r'   c                 X    [        U R                  U R                  S9U l        SU l        g )N)r   T)r   r   r   _stream_wrapperr   r   s    r   on_begin_streamChatDBGPrinter.on_begin_stream+   s'    3T[[ 
 r'   c                     U R                   (       a7  SU l         [        U R                  R                  SS5      SSU R                  S9  [        U R                  R                  US5      SSU R                  S9  g )NFz
(Message)  Tendflushr1   )r   r2   rD   appendr   r<   s     r   on_stream_deltaChatDBGPrinter.on_stream_delta1   se    >>"DN$$++NEBYY	 	  ''e4"Dtyy	
r'   c                 n    [        U R                  R                  5       SSU R                  S9  SU l        g )NrI   TrJ   )r2   rD   rL   r   r   rE   s    r   on_end_streamChatDBGPrinter.on_end_stream>   s*    d""((*$TYYOr'   c                     U R                   (       aI  US :w  aB  SU-   n[        XR                  [        U R                  5      -
  5      nU R                  U5        g g g )Nz
(Message) )r   r   r   r   r   r7   r<   s     r   on_responseChatDBGPrinter.on_responseB   sO    >>ddl$&D/kkC(9(9$::D KK +>r'   c                     U(       a#  [        U5      S:  a  U R                   U SU 3nOU R                   U 3nU R                  U5        g )Nr   
)r   r   r7   )r   callresultentrys       r   on_function_callChatDBGPrinter.on_function_callJ   sK    c&kAo,,-dV2fX>E,,-dV4EEr'   )r   r   r   r   rD   r   N)__name__
__module____qualname____firstlineno__r   r$   r*   r7   r=   rA   rF   rN   rQ   rT   r[   __static_attributes__r!   r'   r   r	   r	      s9    
==
r'   r	   )	r3   assistant.listenersr   streamr   wrapr   r   r	   r!   r'   r   <module>re      s#     7 ( . 	G* Gr'   