o
    iIjT                     @   s^   d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
 ddlmZmZmZ G dd dZdS )	u?   Coordinator — agent (Kimi + tools) or deterministic fallback.    )agentclaim_checkerdeterminationplanner)policy)
ClaimCheckComplianceLedger)forecast_demandmarket_contextproject_marginc                   @   s$   e Zd Zdd Zdd Zdd ZdS )Coordinatorc                 C   s   || _ || _d S N)eventshuman)selfr   r    r   0/opt/greenlight/greenlight/engine/coordinator.py__init__	   s   
zCoordinator.__init__c                 C   s@   | j }t|\}}t|||| j}|d ur|S | |||S r   )r   r   propose_planr   run_or_fallbackr   _run_deterministic)r   evlineplan_claimsresultr   r   r   run   s   zCoordinator.runc                 C   sV  |j ddd|d  d|d  dd td	\}}|j d
dd| dd | jjddgd}|j dd|d t|d |d |d d}td}|j d=dd|d  d|d  di| t }	|	di }
|j ddd|	di d d! d"|
d# d$|
d% d&d d'}|d( D ]
}|t	|d) 7 }q|j dd*d+|d,d-|d.d/ |d |
d# d$|
d% d&|d0|_
|D ]!}t|d1 |d2 |d |d3 |d4 d5}t|| |j| qt|| tjd6t|jd7\}}|tjkr|j d
d|  d8| dd | jjd9dgd}|j dd|d |j d:d|jr%|jd; nd<d |S )>NtaskcoordinatorzReview brand seasonz line for launch)text	gate_line
escalationzASK human: gate line review? ()z'Approve GreenLight review of this line?approve)optionshuman_replyr   annual_turnover_eur)r   r    turnover_eur	Outerweartoolr	   r!   zdemand index demand_indexz (trendwillingness_to_payr
   zmarket $sustainable_fashion_marketvalue_2026_usd_bn?zB; WTP premium_pct_low-premium_pct_high%r   skusprojected_contribution_eurr   u   Line contribution €z,.0fu    (6 SKUs · DataCo benchmarks)LINE)r!   r7   sku)r,   wtp_premium_pctr7   claim_idr9   typemeta)r;   r9   r!   
claim_typer=   publish_determination)blocked_claimsz: file determination? (zFile the launch determination?decisionrecommendationdone)r+   r	   )emitr   decider   askr   r	   r
   getr   
commercialr   r   check_claimclaimsappendr   
synthesizelenblockedPROCEEDupper)r   r   r   r   gatewhyreplyledgerfdmcwtptotal_contribr9   pccheckgate2why2reply2r   r   r   r      sf   *2 "zCoordinator._run_deterministicN)__name__
__module____qualname__r   r   r   r   r   r   r   r      s    
r   N)__doc__greenlight.agentsr   r   r   r   greenlight.enginer   greenlight.engine.ledgerr   r   greenlight.toolsr	   r
   r   r   r   r   r   r   <module>   s    