ó
    ùÚ jŠ  ã                  óæ   • S r SSKJr  SSKJrJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SSKJrJrJr  SS	KJr  SS
KJrJr  SSKJr   " S S5      r              SS jrSSS jjrSS jrg)uN   Code Reviewer skill â€” review generated SFDX against requirements and design.é    )Úannotations)ÚDictÚListÚOptional)ÚUUID)ÚDesignArtifact)ÚImplementationArtifact)ÚRequirementsArtifact)ÚBLOCKING_SEVERITIESÚReviewArtifactÚReviewFinding)ÚArtifactStore)Ú	LLMClientÚget_llm_client)ÚStaticAnalysisResultc                  óZ   • \ rS rSr  S     SS jjr                SS jrSrg)	ÚCodeRevieweré   Nc                ód   • U=(       d
    [        5       U l        U=(       d
    [        5       U l        g )N)r   Úllmr   Ú	artifacts)Úselfr   r   s      Ú5/var/www/html/gaurav/packages/agents/code_reviewer.pyÚ__init__ÚCodeReviewer.__init__   s!   € ð
 ×*œ.Ó*ˆŒØ"×5¤m£oˆ�ó    c          	   ƒ  ó  #   • UR                  5        VV	s0 sH  u  p‰UR                  S5      (       d  M  X‰_M!     n
nn	[        UUUU
UUS9nU R                  R	                  U5      I S h  v•N nUR
                  Ul        Xll        [        U5      nUR                   Vs1 sH  oîR                  UR                  4iM     nnU H<  nUR                  UR                  4U;  d  M!  UR                  R                  U5        M>     UR                   Vs/ sH  oîR                  [        ;   d  M  UPM     nn[        U5      S:H  Ul        UR                   (       a  SUl        O UR$                  (       a  SUl        OSUl        UR                  (       d%  UR&                  (       d  S[        U5       S3Ul        S	U S
3nU R(                  R+                  UUU5        U R(                  R+                  USU5        U$ s  sn	nf  GN“s  snf s  snf 7f)Nz
force-app/)ÚrequirementsÚdesignÚimplementationÚfile_mapÚstatic_analysisÚcycler   ÚfailedÚpassedÚskippedzCode review failed with z blocking finding(s)zreview-cycle-z.jsonzreview.json)ÚitemsÚ
startswithÚbuild_review_promptr   Úreview_codeÚjira_keyr#   Ú_static_violations_to_findingsÚfindingsÚfileÚmessageÚappendÚseverityr   Úlenr%   Ú
violationsÚstatic_analysis_statusÚsuccessÚsummaryr   Ú
write_json)r   r   r   r    r!   r"   r#   Úrun_idÚpÚcÚforce_app_filesÚpromptÚartifactÚpmd_findingsÚfÚexistingÚblockingÚ
cycle_paths                     r   ÚreviewÚCodeReviewer.review   sÇ  é € ð &Ÿ^™^Ô-ô
Ù-‘T�Q°·±¸l×1K‹DˆAŠDÑ-ð 	ñ 
ô %Ø%ØØ)Ø$Ø+Øñ
ˆð Ÿ™×-Ñ-¨fÓ5×5ˆØ(×1Ñ1ˆÔØŒä5°oÓFˆØ19×1BÒ1BÓCÑ1B¨A—V‘V˜QŸY™YÓ'Ñ1BˆÐCÛˆAØ—‘˜Ÿ	™	Ð"¨(Õ2Ø×!Ñ!×(Ñ(¨Ö+ñ ð  (×0Ò0ÓVÑ0˜!·J±JÔBUÑ4U—AÑ0ˆÐVÜ˜h›-¨1Ñ,ˆŒØ×%×%Ø.6ˆHÕ+Ø×$×$Ø.6ˆHÕ+à.7ˆHÔ+à�� x×'7×'7Ø!9¼#¸h»-¸ÐH\Ð]ˆHÔà$ U G¨5Ð1ˆ
Ø�‰×!Ñ! &¨*°hÔ?Ø�‰×!Ñ! &¨-¸ÔBØˆùóI
ò 6ùò
 Dùò
 WùsK   ‚H
–G7µG7»/H
Á*G=Á+4H
Â H Â?!H
Ã$-H
ÄHÄ+HÄ1CH
È 
H
)r   r   )NN)r   zOptional[LLMClient]r   zOptional[ArtifactStore]ÚreturnÚNone)r   r
   r   r   r    r	   r!   úDict[str, str]r"   r   r#   Úintr8   r   rE   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rC   Ú__static_attributes__© r   r   r   r      s€   † ð $(Ø-1ð6à ð6ð +ð6ð 
õ	6ð/ð +ð/ð ð	/ð
 /ð/ð !ð/ð .ð/ð ð/ð ð/ð 
÷/r   r   c                óŒ  • SR                  S U R                   5       5      =(       d    SnSR                  S UR                   5       5      =(       d    Sn[        U5      nSR                  S UR                   5       5      =(       d    Sn	SU R
                   SU SU R                   S	U S
U SUR                   SU	 SU S3$ )NÚ
c              3  ó*   #   • U H
  nS U 3v •  M     g7f)ú- NrN   )Ú.0Úas     r   Ú	<genexpr>Ú&build_review_prompt.<locals>.<genexpr>U   s   é € ÐFÑ%E �R˜�s•8Ò%Eùs   ‚ú(none)c              3  ó„   #   • U H7  nS UR                    SUR                   SUR                  =(       d    S 3v •  M9     g7f)rR   Ú z on zN/AN)Úmetadata_typeÚapi_nameÚobject)rS   Úis     r   rU   rV   V   s=   é € ð á%ˆAð ˆQ�_‰_Ð˜Q˜qŸz™z˜l¨$¨q¯x©x×/@¸5Ð.AÕBÚ%ùs   ‚>A c              3  ó¸   #   • U HQ  nS UR                    SUR                   SUR                  =(       d    S SUR                   SUR                   3
v •  MS     g7f)z- [z] Ú:Ú?rY   ú: N)r1   r.   ÚlineÚruler/   )rS   Úvs     r   rU   rV   \   sN   é € ð 
á/�ð �!—*‘*�˜R §¡˜x q¨¯©¯°3¨°q¸¿¹¸ÀÀ1Ç9Á9À+ÕNÚ/ùs   ‚AAzµYou are the Code Reviewer for Agent Nova (Salesforce development automation).
Review generated SFDX metadata against requirements, design, and Salesforce best practices.

Jira key: z
Review cycle: z

Summary: z

Acceptance criteria:
z

Metadata plan:
z

Implementation summary: z�

Checklist: security (with sharing, CRUD/FLS), bulkification, naming, test coverage, design drift.

Static analysis violations:
z

Generated files:
zô

Severity for each finding MUST be lowercase exactly one of: critical, high, medium, low, info.
Return blocking severity only for critical/high issues. Medium/low are informational.
passed=true only when there are zero critical/high findings.
)ÚjoinÚacceptance_criteriaÚmetadata_planÚ_format_filesr3   r+   r6   )
r   r   r    r!   r"   r#   ÚacÚplanÚfiles_sectionÚstatic_liness
             r   r)   r)   L   s	  € ð 
�‰ÑF \×%EÒ%EÓFÓ	F×	RÈ(€BØ�9‰9ñ à×%Ò%óó ÷ ð 
ð 	ô " (Ó+€Mà�	‰	ñ 
à$×/Ò/ó
ó 	
÷ 	ð ð ðð × Ñ Ð
!ð "Øˆgð 
Ø
×
Ñ
Ð	ð  ð €ð ð €ð à'×/Ñ/Ð0ð 1ð
 €ð ð €ð ð+ð r   c                óÞ   • U (       d  g/ n[        U R                  5       5       H6  u  p4[        U5      U::  a  UOUS U S-   nUR                  SU SU S35        M8     SR	                  U5      $ )NrW   z
... truncatedz### z
```
z
```z

)Úsortedr'   r2   r0   re   )r!   Ú	max_charsÚpartsÚpathÚcontentÚsnippets         r   rh   rh   €   sp   € ÞØØ€EÜ §¡Ó 0Ö1‰ˆÜ  ›\¨YÓ6‘'¸GÀJÀYÐ<OÐRcÑ<cˆØ�‰�t˜D˜6 ¨¨	°Ð7Ö8ñ 2ð �;‰;�uÓÐr   c                óþ   • / nU R                    Hj  n[        UR                  5      S;   a  SOSnUR                  [	        USUR
                  UR                  UR                   SUR                   3SS95        Ml     U$ )N)Ú1Ú2ÚhighÚcriticalrw   Úmediumr"   ra   T)r1   Úcategoryr.   rb   r/   Úfixable)	r3   Ústrr1   r0   r   r.   rb   rc   r/   )r"   r-   rd   Úsevs       r   r,   r,   Š   sv   € Ø$&€HØ×'Ô'ˆÜ˜AŸJ™J›Ð+IÓI‰fÈxˆØ�‰ÜØØ*Ø—V‘VØ—V‘VØŸ6™6˜( " Q§Y¡Y KÐ0Øñö		
ñ (ð €Or   N)r   r
   r   r   r    r	   r!   rG   r"   r   r#   rH   rE   r|   )i   )r!   rG   ro   rH   rE   r|   )r"   r   rE   zList[ReviewFinding])Ú__doc__Ú
__future__r   Útypingr   r   r   Úuuidr   Úpackages.artifacts.designr   Ú!packages.artifacts.implementationr	   Úpackages.artifacts.requirementsr
   Úpackages.artifacts.reviewr   r   r   Úpackages.db.artifactsr   Úpackages.integrations.llmr   r   Ú%packages.integrations.static_analysisr   r   r)   rh   r,   rN   r   r   Ú<module>r‰      s‹   ðÙ Tå "ç 'Ñ 'Ý å 4Ý DÝ @ß XÑ XÝ /ß ?Ý F÷8ñ 8ðv1à&ð1ð ð1ð +ð	1ð
 ð1ð *ð1ð ð1ð 	ô1öhõr   