§
    s�’jý  ã                  ód  — d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z
mZ d dlmZ d dlmZmZmZmZ d dlmZ d d	lmZ  ej        d
¦  «        Z e¦   «         Z e¦   «         Z e¦   «         Ze                     dee         ¬¦  «         e eg d¢¦  «        ¦  «        fd(d„¦   «         Ze                     de¬¦  «         e eg d¢¦  «        ¦  «        fd)d„¦   «         Z e                     d¦  «        d e eg d¢¦  «        ¦  «        fd*d„¦   «         Z!e                     d¦  «         e eg d¢¦  «        ¦  «        fd+d „¦   «         Z"e                     d!¦  «         e eg d¢¦  «        ¦  «        fd+d"„¦   «         Z#e                     d#e¬¦  «        d ee
¦  «        fd,d'„¦   «         Z$dS )-é    )ÚannotationsN)ÚAny)Ú	APIRouterÚDependsÚHTTPException)Úget_current_userÚrequire_role)ÚErpDatabaseClient)ÚAIBudgetSummaryResponseÚDHSMissionRequestÚDHSMissionResponseÚDHSSampleMissionItem)ÚAgentSchedulerService)ÚDeepSeekHarnessServicezdscons.api.knowledge_agents.dhsz"/v1/agents/harness/sample-missions)Úresponse_model)Ú
superadminÚdirectorÚadminÚpmÚqsÚengineerÚviewerÚcurrent_userúdict[str, Any]Úreturnúlist[DHSSampleMissionItem]c                óœ   — 	 t                                ¦   «         }d„ |D ¦   «         S # t          $ r}t          dd|›�¬¦  «        |‚d}~ww xY w)uQ   Láº¥y danh má»¥c cÃ¡c ká»‹ch báº£n nhiá»‡m vá»¥ máº«u 4 Trá»¥ cá»™t cá»§a DSCons.c                ó&   — g | ]}t          d i |¤Ž‘ŒS )© )r   )Ú.0Úss     úIC:\Projects\DSCons\app\api\routers\knowledge_agent_routes\dhs_missions.pyú
<listcomp>z+get_dhs_sample_missions.<locals>.<listcomp>&   s'   € Ð;Ð;Ð;¨aÕ$Ð)Ð) qÐ)Ð)Ð;Ð;Ð;ó    éô  u+   Lá»—i láº¥y danh má»¥c nhiá»‡m vá»¥ máº«u: ©Ústatus_codeÚdetailN)Údhs_serviceÚget_sample_missionsÚ	Exceptionr   )r   ÚsamplesÚexcs      r"   Úget_dhs_sample_missionsr.      st   € ðÝ×1Ò1Ñ3Ô3ˆØ;Ð;°7Ð;Ñ;Ô;Ð;øÝð ð ð ÝØÐ$YÐRUÐ$YÐ$Yð
ñ 
ô 
àð	øøøøðøøøs   ‚$' §
A±AÁAz/v1/agents/harness/execute)r   r   r   r   r   Úpayloadr   r   c                óÚ   — 	 t                                | j        | j        | j        | j        | j        ¬¦  «        }t          di |¤ŽS # t          $ r}t          dd|›�¬¦  «        |‚d}~ww xY w)u^   KÃ­ch hoáº¡t Ä‘iá»�u phá»‘i nhiá»‡m vá»¥ Multi-Agent tá»± trá»‹ báº±ng DeepSeek Harness (DHS).)Úmission_titleÚmission_promptÚtarget_project_idÚpillarÚdeep_reasoning_enabledr%   u0   Lá»—i thá»±c thi nhiá»‡m vá»¥ DeepSeek Harness: r&   Nr   )
r)   Úexecute_missionr1   r2   r3   r4   r5   r   r+   r   )r/   r   Úresultr-   s       r"   Úexecute_dhs_missionr8   -   sœ   € ðÝ×,Ò,Ø!Ô/Ø"Ô1Ø%Ô7Ø”>Ø#*Ô#Að -ñ 
ô 
ˆõ "Ð+Ð+ FÐ+Ð+Ð+øÝð ð ð ÝØÐ$^ÐWZÐ$^Ð$^ð
ñ 
ô 
àð	øøøøðøøøs   ‚AA Á
A*ÁA%Á%A*z/v1/agents/harness/historyé
   )r   r   r   r   r   r   ÚlimitÚintc                ó¬   — 	 t                                | ¬¦  «        }t          |¦  «        |dœS # t          $ r}t	          dd|›�¬¦  «        |‚d}~ww xY w)uQ   Truy xuáº¥t lá»‹ch sá»­ cÃ¡c nhiá»‡m vá»¥ Ä‘Ã£ thá»±c thi bá»Ÿi DeepSeek Harness.)r:   )ÚtotalÚhistoryr%   u#   Lá»—i truy xuáº¥t lá»‹ch sá»­ DHS: r&   N)r)   Úget_mission_historyÚlenr+   r   )r:   r   Úlogsr-   s       r"   Úget_dhs_mission_historyrB   D   s�   € ð	Ý×.Ò.°UÐ.Ñ;Ô;ˆå˜‘Y”YØð
ð 
ð 	
øõ ð ð ð ÝØÐ$QÈ#Ð$QÐ$Qð
ñ 
ô 
àð	øøøøðøøøs   ‚,/ ¯
A¹AÁAz/v1/agents/schedule/dailyc                ó¨   — 	 t                                ¦   «         }t          |¦  «        |dœS # t          $ r}t	          dd|›�¬¦  «        |‚d}~ww xY w)uV   Láº¥y báº£ng phÃ¢n ca lÃ m viá»‡c so le thÃ´ng minh trong ngÃ y cá»§a 9 NhÃ¢n sá»± AI.)Útotal_shiftsÚshiftsr%   u#   Lá»—i láº¥y lá»‹ch lÃ m viá»‡c AI: r&   N)Úscheduler_serviceÚget_daily_scheduler@   r+   r   )r   Úscheduler-   s      r"   Úget_daily_agent_schedulerI   X   s|   € ð	Ý$×7Ò7Ñ9Ô9ˆå ™MœMØð
ð 
ð 	
øõ ð ð ð ÝØÐ$QÈ#Ð$QÐ$Qð
ñ 
ô 
àð	øøøøðøøøs   ‚*- ­
A·AÁAz$/v1/agents/schedule/anti-spam-statusc                ó„   — 	 t                                ¦   «         S # t          $ r}t          dd|›�¬¦  «        |‚d}~ww xY w)um   Láº¥y tráº¡ng thÃ¡i bá»™ Ä‘á»‡m báº£o vá»‡ chá»‘ng Rate Limit & Spam Detection (OpenRouter & Local failover).r%   u+   Lá»—i kiá»ƒm tra bá»™ Ä‘á»‡m chá»‘ng spam: r&   N)rF   Úget_anti_spam_shield_statusr+   r   )r   r-   s     r"   Úget_anti_spam_statusrL   m   sa   € ðÝ ×<Ò<Ñ>Ô>Ð>øÝð ð ð ÝØÐ$YÐRUÐ$YÐ$Yð
ñ 
ô 
àð	øøøøðøøøs   ‚ ›
?¥:º?z/v1/agents/budget-summaryÚ
agent_codeú
str | Noner   c                ó²   — t          ¦   «         }	 |                     | ¬¦  «        }t          di |¤ŽS # t          $ r}t	          dd|›�¬¦  «        |‚d}~ww xY w)ug   Truy xuáº¥t tá»•ng há»£p ngÃ¢n sÃ¡ch tiÃªu thá»¥ theo ngÃ y, tuáº§n, thÃ¡ng, nÄƒm cá»§a nhÃ¢n viÃªn AI.)rM   r%   u"   Lá»—i truy xuáº¥t ngÃ¢n sÃ¡ch AI: r&   Nr   )r
   Úget_ai_agent_budget_summaryr   r+   r   )rM   r   ÚclientÚdatar-   s        r"   Úget_ai_agents_budget_summaryrS   ~   s…   € õ Ñ Ô €FðØ×1Ò1¸ZÐ1ÑHÔHˆÝ&Ð.Ð.¨Ð.Ð.Ð.øÝð ð ð ÝØÐ$PÈÐ$PÐ$Pð
ñ 
ô 
àð	øøøøðøøøs   �!2 ²
A¼AÁA)r   r   r   r   )r/   r   r   r   r   r   )r:   r;   r   r   r   r   )r   r   r   r   )rM   rN   r   r   r   r   )%Ú
__future__r   ÚloggingÚtypingr   Úfastapir   r   r   Úapp.api.routers.authr   r	   Úapp.core.postgres.erp_clientr
   Úapp.models.schemasr   r   r   r   Ú$app.services.agent_scheduler_servicer   Ú%app.services.deepseek_harness_servicer   Ú	getLoggerÚloggerÚrouterr)   rF   ÚgetÚlistr.   Úpostr8   rB   rI   rL   rS   r   r$   r"   ú<module>rc      sF  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø :Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ð ð ð ð ð ð ð ð GÐ FÐ FÐ FÐ FÐ FØ HÐ HÐ HÐ HÐ HÐ Hà	ˆÔ	Ð<Ñ	=Ô	=€Ø	ˆ‰Œ€Ø$Ð$Ñ&Ô&€Ø)Ð)Ñ+Ô+Ð ð ‡‚Ø(¸Ð>RÔ9Sð ñ ô ð $+ 7ØˆØQÐQÐQñ	
ô 	
ñ$ô $ðð ð ð ñô ðð" ‡‚Ð)Ð:L€ÑMÔMð $+ 7ØˆÐDÐDÐDÑEÔEñ$ô $ðð ð ð ñ NÔMðð, ‡‚Ð(Ñ)Ô)àØ#* 7ØˆÐNÐNÐNÑOÔOñ$ô $ðð ð ð ñ *Ô)ðð& ‡‚Ð'Ñ(Ô(à#* 7ØˆØQÐQÐQñ	
ô 	
ñ$ô $ðð ð ð ñ )Ô(ðð( ‡‚Ð2Ñ3Ô3à#* 7ØˆØQÐQÐQñ	
ô 	
ñ$ô $ðð ð ð ñ 4Ô3ðð  ‡‚Ð'Ð8O€ÑPÔPà!Ø#* 7Ð+;Ñ#<Ô#<ðð ð ð ñ QÔPðð ð r$   