
    Hi                    D    d Z ddlmZ ddlmZ ddlmZmZ  G d d      Zy)ua   publishing/publishing_adapter.py — 출판팀 기존 워크플로우 보호하는 얇은 래퍼.    )annotations)EngineOrchestrator)EngineResult
EngineRolec                  \    e Zd ZdZddZ	 d	 	 	 	 	 	 	 	 	 	 	 ddZ	 d	 	 	 	 	 	 	 	 	 	 	 d	dZy)
PublishingAdapteru   출판팀 워크플로우 어댑터.

    engine_v2 오케스트레이터를 출판팀 인터페이스에 맞게 래핑한다.
    출판팀은 이 어댑터만 사용하고, engine_v2 내부를 알 필요 없다.
    c                "    t               | _        y )N)r   _orchestrator)selfs    L/home/jay/workspace/services/multimodel-bot/publishing/publishing_adapter.py__init__zPublishingAdapter.__init__   s    /1    c                r   K   |dk(  rdnd}| j                   j                  ||||||       d{   S 7 w)uJ   단일 Step 실행. 출판팀은 이 메서드를 통해 엔진을 호출.   PARALLEL
SEQUENTIALmodepromptsenginestask_idsteptimeoutNr
   run)r   r   r   r   r   r   r   s          r   run_stepzPublishingAdapter.run_step   sO      #'!)J''++ , 
 
 	
 
s   .757c                b   K   | j                   j                  d|g||||       d{   S 7 w)u;   동일 프롬프트를 모든 엔진에 브로드캐스트.	BROADCASTr   Nr   )r   promptr   r   r   r   s         r   	broadcastzPublishingAdapter.broadcast(   sD      ''++H , 
 
 	
 
s   &/-/N)returnNone)i  )r   z	list[str]r   list[EngineRole]r   strr   intr   r%   r!   list[EngineResult])r   r$   r   r#   r   r$   r   r%   r   r%   r!   r&   )__name__
__module____qualname____doc__r   r   r     r   r   r   r   	   s    2 

 "
 	

 
 
 

6 

 "
 	

 
 
 

r   r   N)	r*   
__future__r   engine_v2.engine_orchestratorr   engine_v2.engine_resultr   r   r   r+   r   r   <module>r/      s    g " < </
 /
r   