ó
    dî¨j‚  ã                  ó|   • S r SSKJr  SSKJr  SSKJrJr  SSKJ	r	  \ " S S5      5       r
SS jrSSS	 jjrSS
 jrg)z#Duplicate ticket detection helpers.é    )Úannotations)Ú	dataclass)ÚListÚOptional)Ú	JiraIssuec                  óJ   • \ rS rSr% S\S'   SrS\S'   SrS\S	'   S
rS\S'   Srg)ÚDuplicateCheckResulté   ÚboolÚis_duplicateNzOptional[str]Úoriginal_keyÚ ÚstrÚ	rationaleg        ÚfloatÚ
confidence© )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r   r   r   Ú__static_attributes__r   ó    Ú8/var/www/html/gaurav/packages/integrations/duplicates.pyr	   r	      s&   ‡ àÓØ"&€L�-Ó&Ø€IˆsÓØ€J�Ör   r	   c                ó|   • U =(       d    SR                  5       =(       d    UR                  S5      S   nSU SU S3$ )Nr   Ú-r   zproject = "z" AND key != z ORDER BY updated DESC)ÚstripÚsplit)Úproject_keyÚcurrent_keyÚprojects      r   Úcandidate_search_jqlr#      s@   € Ø× ˜b×'Ñ'Ó)×F¨[×->Ñ->¸sÓ-CÀAÑ-F€GØ˜˜	 ¨{¨mÐ;QÐRÐRr   c                óØ   • SSSU  S3SSU  3/nUR                  5       (       a$  UR                  SSUR                  5        3/5        UR                  SS/5        SR                  U5      $ )	Nz)## Agent Nova possible duplicate detectedr   z(This ticket looks like a duplicate of **z**.zOriginal / main ticket: zReason: zkNext step: reply with `continue` to proceed anyway, or `duplicate` / `close as duplicate` to stop this run.Ú
)r   ÚextendÚjoin)r   r   Úliness      r   Úduplicate_review_comment_bodyr)      s�   € à3Ø
Ø
2°<°.ÀÐDØ
Ø
" < .Ð1ð€Eð ‡�×ÑØ�‰�b˜H Y§_¡_Ó%6Ð$7Ð8Ð9Ô:Ø	‡L�Làð5ð	
ôð �9‰9�UÓÐr   c                ó~  • SSSSSSSU R                    3SU R                   3S	U R                  S S
  3SS/nU(       d  UR                  S5        U HX  nUR	                  SUR                    3SUR                   3SUR                  =(       d    SS S  3SUR
                   3/5        MZ     SR                  U5      $ )NzJDecide whether the NEW Jira ticket is a duplicate of any CANDIDATE ticket.zWA duplicate means the same Salesforce work request (same object/field/behavior intent),z6not merely the same project or a loosely related idea.zLIf none are duplicates, set is_duplicate=false and leave original_key empty.r   zNEW ticket:zKey: z	Summary: zDescription: iÐ  zCANDIDATES:z(none)z- Key: z  Summary: z  Description: i   z
  Status: r%   )ÚkeyÚsummaryÚdescriptionÚappendr&   Ústatusr'   )ÚissueÚ
candidatesr(   Úcs       r   Úbuild_duplicate_check_promptr3   ,   s×   € àTØaØ@ØVØ
ØØ
�—	‘	ˆ{ÐØ
�E—M‘M�?Ð#Ø
˜×)Ñ)¨%¨4Ð0Ð1Ð2Ø
Øð€Eö Ø�‰�XÔÛˆØ�‰à˜!Ÿ%™%˜Ð!Ø˜aŸi™i˜[Ð)Ø! 1§=¡=×#6°B¸¸Ð"=Ð!>Ð?Ø˜QŸX™X˜JÐ'ð	ö	
ñ ð �9‰9�UÓÐr   N)r    r   r!   r   Úreturnr   )r   )r   r   r   r   r4   r   )r0   r   r1   zList[JiraIssue]r4   r   )Ú__doc__Ú
__future__r   Údataclassesr   Útypingr   r   Úpackages.integrations.jirar   r	   r#   r)   r3   r   r   r   Ú<module>r:      s=   ðÙ )å "å !ß !å 0ð ÷ð ó ðôSö
õ(r   