
    i                    B   d Z ddlmZ ddlZddlmZmZmZmZ ddl	m
Z
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZ ddlmZmZmZ  ej:                  dej<                          ej>                  e       Z!	 	 d	 	 	 	 	 	 	 	 	 ddZ"ddZ#e dk(  r e#        yy)us   Codex 텔레그램 봇.

python-telegram-bot v20+ (async) 기반.
환경변수 CODEX_BOT_TOKEN을 사용합니다.
    )annotationsN)replace_thinking_messagesend_responsesend_thinking_messageshould_respond)BOT_PERSONASConversationMemory)DiscussionManager)
call_codex)Update)
ChatAction)ApplicationContextTypesMessageHandlerfilters)CODEX_BOT_TOKENMAX_MESSAGE_LENGTHOWNER_USER_IDz4%(asctime)s - %(name)s - %(levelname)s - %(message)s)formatlevelc                v  K   | j                   y|j                  j                  xs d}| j                   }|j                  }|y|j                  j
                  }|j                  xs dj                         }|sy|1|j                  r%|j                  xs d}	|j                  ||	d|      syt        | |t              sy||j                  s|j                  ||      }
|j                  ||      syd|v r |j                  dd      j                         n|}|
r6|j                  |      r%|j                  j!                  |d       d{    ||j#                  |d|d	       	 |t%        |j                  |       d{   }|j'                  |||
      }|r|j)                  |      nd}t+        ||       d{   }t-        |j                  |||       d{    t/        j0                  |i       j1                  d|      }|j#                  |||d	       n| j2                  }|=|j                  j5                  |j
                  t6        j8                         d{    |r|j)                  |      nd}t+        ||       d{   }t;        | ||t<               d{    ||j?                  |      ss|jA                  |      }|rNddl!}|jE                  |d       |jF                  j1                  d      }|,|jI                   |||||             y|jK                          yyyy7 7 7 7 b7 7 7 # tL        $ r_}tN        jQ                  d|d       	 | j                   jS                  d|        d{  7   n# tL        $ r Y nw xY wY d}~yY d}~yd}~ww xY ww)uE   수신 메시지를 처리하고 Codex CLI 결과를 반환합니다.N Tz--deepu   🔬 심층 분석 모드)chat_idtextu   제이회장님F)is_bot)current_messagezgpt-5.1-codex-mini)modelname)r   action)max_lenr   trigger_next_bot_responseu   handle_message 오류: %s)exc_infou"   ❌ 오류가 발생했습니다: )*messagebotusername	from_userchatidr   stripr   should_bot_respondr   r   on_user_message
is_my_turnreplaceshould_announce_deep_modesend_messageadd_messager   format_contextget_codex_modelr   r   r   geteffective_chatsend_chat_actionr   TYPINGr   r   is_chain_runningon_bot_responseasyncioset_chain_runningbot_datacreate_taskstop_discussion	Exceptionloggererror
reply_text)updatecontextdmmemorybot_usernamer#   senderr   	user_textsender_usernameis_newthinking_msg_idcontext_promptcodex_modelresultbot_namer'   next_botr9   
trigger_fnes                        R/home/jay/workspace/.worktrees/task-2116-dev1/services/multimodel-bot/codex_bot.pyhandle_messagerT      s     ~~;;''-2LnnGF~llooG#**,I	~&-- ///R$$\?D'R flMB 
~fmm##GY7}}\73?G9?TI%%h399;Zc	b227;++**7A\*]]]w(99US3$9'++w$OOO#227LZc2dN9;",,W5AUK%nKHHF*7;;RXYYY $''b9==flSHw&F ((Dkk22 GG%,, 3    :<",,W5AUK%i{CCFASTTT >""5"5g">)),7H$$Wd3$--112MN
)''"$#"(	 ""$ * #?>A ^ P IY
 DT,  0!dC	..++.PQRPS,TUUU 		 Vs   EN9L<N9*M L?=M MM #M$BM *M+)M M
M /M0A7M 'N9(M 8N9?M M M M 
M M 	N6N10!NNNN1	N$!N1#N$$N1'
N91N66N9c                 6   t        j                         j                  t              j	                         } | j                  t        t        j                  t        j                   z  t                     t        j                  d       | j                          y )Nu   Codex 봇 시작 중...)r   buildertokenr   buildadd_handlerr   r   TEXTCOMMANDrT   r?   inforun_polling)applications    rS   mainr_      sb    %%'--o>DDFKN7<<7??:J+JN[\
KK)*    __main__)NN)
rB   r   rC   zContextTypes.DEFAULT_TYPErD   zDiscussionManager | NonerE   zConversationMemory | NonereturnNone)rb   rc   )$__doc__
__future__r   logging	bot_utilsr   r   r   r   conversation_memoryr   r	   discussion_managerr
   engine_v2.bot_apir   telegramr   telegram.constantsr   telegram.extr   r   r   r   configr   r   r   basicConfigINFO	getLogger__name__r?   rT   r_    r`   rS   <module>rt      s    #  d d @ 0 (  ) K K E E   A
,, 
		8	$ $((,	aa&a 	!a &	a
 
aH zF r`   