ó
    |¤j^@  ã                  ó"  • S SK Jr  S SKrS SKrS SK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KJrJr  S SKJr  S S	KJrJr  S S
KJr  S SKJr  S SKJrJr  \" 5       r\R<                  S\R>                  S\R@                  S0r!Sr" " S S5      r#g)é    )ÚannotationsN)ÚConsole)ÚPanel)ÚConfirmÚPrompt)Úget_permission_policy)ÚPermissionLevelÚToolDefinition)Úis_safe_readonly)ÚUserAbortedTurnÚUserSupplement)ÚStderrSpinner©Útruncate_value)Úcoerce_typesÚmissing_required_argsÚgreenÚyellowzred boldÚErrorc                  ó²   • \ rS rSr  S   SS jjrSS jrSSS jjrSS jrSS jr S     SS jjr	SS	 jr
SS
 jr      SS jr      SS jrSrg)ÚExecutoré%   c                ó  • Xl         X l        [        5       U l        [        5       U l        S U l        [        R                  " 5       U l        0 U l        SU l	        SU l
        0 U l        SU l        SSSSS.U l        SSSSS.U l        SU l        g )Nr   )Úinput_tokensÚoutput_tokensÚtotal_tokensÚcached_tokens)ÚsystemÚuserÚ	assistantÚtools)Úauto_approveÚconfirm_modeÚsetÚ_always_allowÚ_always_denyÚ_confirm_callbackÚtimeÚ_session_start_timeÚ_tool_call_countsÚ_total_tool_callsÚ_skill_callsÚ_skill_countsÚ
_api_callsÚ_token_usageÚ_prompt_compositionÚ_errors)Úselfr"   r#   s      Ú¥C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\dashscope/acli/executor.pyÚ__init__ÚExecutor.__init__&   sž   € ð
 )Ôð )Ôô
 (+£uˆÔÜ&)£eˆÔà!%ˆÔô +/¯)ª)«+ˆÔ Ø13ˆÔØ&'ˆÔØ!"ˆÔØ-/ˆÔØ ˆŒàØØØñ	-
ˆÔð ØØØñ	4
ˆÔ ð ˆ�ó    c                ól   • U R                   R                  5         U R                  R                  5         g)z>Called by Agent at the end of each turn to reset trust grants.N)r%   Úclearr&   ©r2   s    r3   Úclear_session_trustÚExecutor.clear_session_trustM   s&   € à×Ñ× Ñ Ô"Ø×Ñ×ÑÕ!r6   Nc                óv  • U =R                   S-  sl         U(       a�  U R                  S==   UR                  SS5      -  ss'   U R                  S==   UR                  SS5      -  ss'   U R                  S==   UR                  SS5      -  ss'   U R                  S==   UR                  SS5      -  ss'   gg)z'Record an API call and its token usage.é   r   r   r   r   r   N)r.   r/   Úget)r2   Úusages     r3   Úrecord_api_callÚExecutor.record_api_callR   sœ   € à�Š˜1Ñ�ÞØ×Ñ˜nÓ-°·±¸>È1Ó1MÑMÓ-Ø×Ñ˜oÓ.°%·)±)¸OÈQÓ2OÑOÓ.Ø×Ñ˜nÓ-°·±¸>È1Ó1MÑMÓ-Ø×Ñ˜oÓ.°%·)±)¸OÈQÓ2OÑOÔ.ð	 r6   c                ó.   • U =R                   S-  sl         g)zRecord an error occurrence.r=   N)r1   r9   s    r3   Úrecord_errorÚExecutor.record_error[   s   € à�Š˜ÑŽr6   c                ó˜   • U HD  nU =R                   S-  sl         U R                  R                  US5      S-   U R                  U'   MF     g)z+Record skill packages activated for a turn.r=   r   N)r,   r-   r>   )r2   ÚnamesÚnames      r3   Úrecord_skillsÚExecutor.record_skills_   sE   € ãˆDØ×Ò Ñ"ÕØ'+×'9Ñ'9×'=Ñ'=¸dÀAÓ'FÈÑ'JˆD×Ñ˜tÓ$ò r6   c           
     óÒ  • U GH%  nUR                  S5      nUR                  S5      n[        U[        5      (       a  [        U5      nO(U(       a  [        [        R
                  " USS95      nOSnUS;   a  U R                  U==   U-  ss'   OUS:X  a  U R                  S==   U-  ss'   US	:X  d  M²  UR                  S
5      =(       d    /  HU  nUR                  S5      =(       d    0 R                  S5      =(       d    SnU R                  S==   [        U5      -  ss'   MW     GM(     U(       a4  U R                  S==   [        [        R
                  " USS95      -  ss'   gg)z<Accumulate prompt size (chars) by category for one LLM call.ÚroleÚcontentF)Úensure_asciir   )r   r   r    Útoolr!   r    Ú
tool_callsÚfunctionÚ	argumentsÚ N)r>   Ú
isinstanceÚstrÚlenÚjsonÚdumpsr0   )	r2   ÚmessagesÚtools_schemaÚmsgrK   rL   ÚnÚtcÚargss	            r3   Úrecord_prompt_compositionÚ"Executor.record_prompt_compositione   s-  € ô ˆCØ—7‘7˜6“?ˆDØ—g‘g˜iÓ(ˆGÜ˜'¤3×'Ñ'Ü˜“L‘ÞÜœŸ
š
 7¸Ñ?Ó@‘à�ØÐ6Ó6Ø×(Ñ(¨Ó.°!Ñ3Ô.Ø˜“Ø×(Ñ(¨Ó1°QÑ6Ó1Ø�{Õ"ØŸ'™' ,Ó/×5°2Ò5�BØŸF™F :Ó.×4°"×9Ñ9¸+ÓF×LÈ"�DØ×,Ñ,¨WÓ5¼¸T»ÑBÕ5ô 6ñ ö" Ø×$Ñ$ WÓ-´Ü—
’
˜<°eÑ<ó2ñ Ô-ð r6   c           	   ƒ  ó@  #   • [        X5      nU(       a?  SUR                   SSR                  U5       SUR                  R	                  S/ 5       S3$ U R                  X5      I S h  v•N (       d(  SSKJn  U" 5       R                  UR                  US	S
S9  g [        UR                  U5      n[        SUR                   S35         UR                  " S0 UD6n[        R                  " U5      (       a
  UI S h  v•N nS S S 5        U =R                  S-  sl        U R                  R	                  UR                  S5      S-   U R                  UR                  '   SSKJn  U" 5       R                  UR                  USS9  [!        W5      $  GN( N•! , (       d  f       N™= f! ["         ak  nU R%                  5         SSKJn  U" 5       R                  UR                  US[!        U5      S9  [&         S[)        U5      R*                   SU 3s S nA$ S nAff = f7f)NzError: tool z missing required arguments: z, z-. Call again following the schema (required: ÚrequiredÚ)r   )Úget_audit_loggerÚdeniedzuser declined)ÚdecisionÚreasonÚ	CancelledzRunning z...r=   Úexecuted)re   Úfailedú: © )r   rG   ÚjoinÚ
parametersr>   Ú_async_check_permissionÚdashscope.acli.auditrc   Úlog_tool_callr   Úfuncr   ÚinspectÚisawaitabler+   r*   rT   Ú	ExceptionrC   ÚEXEC_ERROR_PREFIXÚtypeÚ__name__)r2   Útool_defrQ   Úmissingrc   ÚresultÚes          r3   ÚexecuteÚExecutor.execute�   s÷  é € ô (¨Ó<ˆÞà˜xŸ}™}˜oÐ-JØ—9‘9˜WÓ%Ð&ð 'Ø&×1Ñ1×5Ñ5°jÀ"ÓEÐFÀaðIðð ×1Ñ1°(ÓF×FÕFÝ=áÓ×,Ñ,Ø—‘ØØ!Ø&ð	 -ñ ð ð	CÜ$ X§]¡]°IÓ>ˆIÜ ¨(¯-©-¨¸Ð<Õ=Ø!ŸšÑ3¨Ñ3�Ü×&Ò& v×.Ñ.Ø#)Ÿ\�F÷ >ð ×"Ò" aÑ'Õ"à×&Ñ&×*Ñ*¨8¯=©=¸!Ó<¸qÑ@ð ×"Ñ" 8§=¡=Ñ1õ >áÓ×,Ñ,Ø—‘ØØ#ð -ñ ô
 �v“;Ðò9 Gñ  *÷ >Õ=ûô  ó 
	CØ×ÑÔÝ=áÓ×,Ñ,Ø—‘ØØ!Ü˜1“vð	 -ñ ô (Ð(¨¬4°«7×+;Ñ+;Ð*<¸B¸q¸cÐBÕBûð
	Cüsn   ‚A&HÁ(FÁ)1HÂ/F& Ã
3FÃ=FÃ>FÄBF& ÆHÆFÆ
F#ÆF& Æ&
HÆ0A HÈHÈHÈHÈHc           
     óF  • [         R                   " 5       U R                  -
  nU R                  [        U R                  5      U R
                  [        U R                  5      U R                  [        U R                  5      [        U R                  5      U R                  US.	$ )z Return session usage statistics.)	Útotal_tool_callsÚtool_countsÚskill_callsÚskill_countsÚ	api_callsÚtoken_usageÚprompt_compositionÚerrorsÚsession_duration)r(   r)   r+   Údictr*   r,   r-   r.   r/   r0   r1   )r2   r‡   s     r3   Ú	get_statsÚExecutor.get_stats¶   s~   € äŸ9š9›;¨×)AÑ)AÑAÐà $× 6Ñ 6Ü × 6Ñ 6Ó7Ø×,Ñ,Ü  ×!3Ñ!3Ó4ØŸ™Ü × 1Ñ 1Ó2Ü"& t×'?Ñ'?Ó"@Ø—l‘lØ 0ñ

ð 
	
r6   c              ƒ  ó  #   • U R                   (       Gae  UR                  [        R                  :X  d  U R                  (       a  g[        5       nUR                  UR                  5      S:X  a  gUR                  S:X  a=  UR                  SS5      n[        U[        5      (       a  UR                  U5      S:X  a  gU R                  S:X  a  UR                  [        R                  :X  a  gUR                  S:X  a8  UR                  SS5      n[        U[        5      (       a  [        U5      (       a  gUR                  UR                  5      nUS:X  a  gUS:X  a  gUR                  S:X  aF  UR                  SS5      n[        U[        5      (       a  UR                  U5      nUS:X  a  gUS:X  a  gUR                  U R                  ;   a  gUR                  U R                   ;   a  gUR                  [        R"                  :H  nU R                  UUU5      I S	h  v•N nUS
:X  a-  U(       d%  U R                   R%                  UR                  5        gUS:X  a  ['        S5      eUS:X  a  ['        S5      eUS:H  $ U R)                  X5      $  No7f)z™Async version of _check_permission. When _confirm_callback is
set (TUI mode), delegates to the callback; otherwise falls back
to sync _check_permission.
TÚdenyFÚrun_commandÚcommandrR   Ú	dangerousÚallowNÚaÚsúUser aborted this turnÚuzNo supplementary info providedÚy)r'   Ú
permissionr	   ÚAUTOr"   r   Ú
check_toolrG   r>   rS   rT   Úcheck_commandr#   ÚCONFIRMr   r&   r%   Ú	DANGEROUSÚaddr   Ú_check_permission)	r2   rx   rQ   ÚpolicyÚcmdÚpolicy_decisionÚcmd_decisionÚis_dangerousrz   s	            r3   rn   Ú Executor._async_check_permissionÅ   s:  é € ð ×!×!Ð!à×#Ñ#¤×';Ñ';Ó;Ø×$×$àô +Ó,ˆFØ× Ñ  §¡Ó/°6Ó9ØØ�}‰} Ó-Ø—m‘m I¨rÓ2�ä˜s¤C×(Ñ(Ø×,Ñ,¨SÓ1°VÓ;à ð
 ×!Ñ! [Ó0Ø×'Ñ'¬?×+BÑ+BÓBàà�}‰} Ó-Ø—m‘m I¨rÓ2�Ü˜c¤3×'Ñ'Ô,<¸S×,AÑ,AØà$×/Ñ/°·±Ó>ˆOØ 'Ó)ØØ &Ó(ØØ�}‰} Ó-Ø—m‘m I¨rÓ2�Ü˜c¤3×'Ñ'Ø#)×#7Ñ#7¸Ó#<�LØ# wÓ.Ø#Ø# vÓ-Ø$à�}‰} × 1Ñ 1Ó1ØØ�}‰} × 2Ñ 2Ó2Øà#×.Ñ.´/×2KÑ2KÑKˆLà×1Ñ1ØØØó÷ ˆFð ˜‹}æ#Ø×&Ñ&×*Ñ*¨8¯=©=Ô9ØØ˜‹}Ü%Ð&>Ó?Ð?ð ˜‹}Ü%Ð&FÓGÐGØ˜S‘=Ð Ø×%Ñ% hÓ:Ð:ñ'ùs   ‚HJÈJÈA0Jc                óê  • UR                   [        R                  :X  d  U R                  (       a  g[	        5       nUR                  UR                  5      S:X  a$  [        R                  SUR                   S35        gUR                  S:X  aR  UR                  SS5      n[        U[        5      (       a+  UR                  U5      S:X  a  [        R                  S	5        gU R                  S
:X  a  UR                   [        R                  :X  a  gUR                  S:X  aj  UR                  SS5      n[        U[        5      (       aC  [        U5      (       a3  [!        U5      S::  a  UOUS S S-   n[        R                  SU S35        gUR                  UR                  5      nUS:X  a  gUS:X  a$  [        R                  SUR                   S35        gUR                  S:X  a[  UR                  SS5      n[        U[        5      (       a4  UR                  U5      nUS:X  a  gUS:X  a  [        R                  S	5        gUR                  U R"                  ;   a$  [        R                  SUR                   S35        gUR                  U R$                  ;   a$  [        R                  SUR                   S35        g[&        UR                      nUR                   [        R(                  :X  a  SOSn	SR+                  S UR-                  5        5       5      n
SUR                   SU
 3n[        R                  5         [        R                  [/        X¹US95        UR                   [        R(                  :X  a   [0        R2                  " SSS9$  [:        R2                  " S/ SQSSS 9nUS!:X  a&  U R$                  R=                  UR                  5        gUS":X  aE  [:        R2                  " S#5      nUR?                  5       (       a  [A        UR?                  5       5      egUS$:X  a  [9        S%5      eUS:H  $ ! [4        [6        4 a    [9        S5      S ef = f! [4        [6        4 a    [9        S5      S ef = f)&NTrŒ   u   [dim red]âœ— z (policy denied)[/dim red]Fr�   rŽ   rR   u/   [dim red]âœ— command denied by policy[/dim red]r�   éP   u   â€¦u   [dim green]â†’ z[/dim green]r�   z (denied this turn)[/dim red]u   [dim green]âœ“ z  (trusted this turn)[/dim green]u   âš ï¸�  Dangerous operationzConfirmation requiredÚ
c              3  óH   #   • U  H  u  pS U S[        U5       3v •  M     g7f)z  rj   Nr   )Ú.0ÚkÚvs      r3   Ú	<genexpr>Ú-Executor._check_permission.<locals>.<genexpr>l  s)   é € ð !
Ú6G©d¨aˆb���2”n QÓ'Ð(Õ)Ò6Gùs   ‚ "zTool: z
Arguments:
)ÚtitleÚborder_stylezExecute?)ÚdefaultzCtrl-C aborted this turnzsExecute? \[y]es / \[n]o / \[u]pdate (add info, replan) / \[a]lways (allow this tool for the turn) / \[s]top (abort))r•   r[   r”   r‘   r’   r•   )Úchoicesr¯   Úshow_choicesr‘   r”   z[dim]Supplementary info[/dim]r’   r“   )!r–   r	   r—   r"   r   r˜   rG   ÚconsoleÚprintr>   rS   rT   r™   r#   rš   r   rU   r&   r%   ÚPERMISSION_STYLESr›   rl   Úitemsr   r   ÚaskÚKeyboardInterruptÚEOFErrorr   r   rœ   Ústripr   )r2   rx   rQ   rž   rŸ   Úpreviewr    r¡   Ústyler­   Úargs_displayrL   ÚchoiceÚ
supplements                 r3   r�   ÚExecutor._check_permission  s   € ð
 ×Ñ¤/×"6Ñ"6Ó6¸$×:K×:KØô 'Ó(ˆØ×Ñ˜XŸ]™]Ó+¨vÓ5Ü�M‰MØ §¡˜Ð.HÐIôð Ø�=‰=˜MÓ)Ø—-‘- 	¨2Ó.ˆCÜ˜#œs×#Ñ#¨×(<Ñ(<¸SÓ(AÀVÓ(KÜ—‘ÐOÔPØð ×Ñ Ó,Ø×#Ñ#¤×'>Ñ'>Ó>àð �=‰=˜MÓ)Ø—-‘- 	¨2Ó.ˆCÜ˜#œs×#Ñ#Ô(8¸×(=Ñ(=Ü!$ S£¨R£™#°S¸¸"°XÀÑ5E�Ü—‘ °¨y¸ÐEÔFØð !×+Ñ+¨H¯M©MÓ:ˆØ˜gÓ%ØØ˜fÓ$Ü�M‰MØ §¡˜Ð.HÐIôð Ø�=‰=˜MÓ)Ø—-‘- 	¨2Ó.ˆCÜ˜#œs×#Ñ#Ø%×3Ñ3°CÓ8�Ø 7Ó*ØØ 6Ó)Ü—M‘MØIôð !ð �=‰=˜D×-Ñ-Ó-Ü�M‰MØ §¡˜Ð.KÐLôð Ø�=‰=˜D×.Ñ.Ó.Ü�M‰MØ! (§-¡- ð 12ð 3ôð ä! (×"5Ñ"5Ñ6ˆð ×"Ñ"¤o×&?Ñ&?Ó?ñ *à(ð 	ð —y‘yñ !
Ø6?·o±oÔ6Gó!
ó 
ˆð ˜8Ÿ=™=˜/¨¸°~ÐFˆä�‰ŒÜ�‰”e˜G¸uÑEÔFð ×Ñ¤/×";Ñ";Ó;ðLÜ—{’{ :°uÑ=Ð=ð		HÜ—Z’ZðNâ1ØØ"ñˆFð �S‹=Ø×Ñ×"Ñ" 8§=¡=Ô1ØØ�S‹=ÜŸšÐ$CÓDˆJØ×Ñ×!Ñ!Ü$ Z×%5Ñ%5Ó%7Ó8Ð8ØØ�S‹=Ü!Ð":Ó;Ð;Ø˜‰}Ðøô= &¤xÐ0ó Lô &Ð&@ÓAÀtÐKð	Lûô$ "¤8Ð,ó 	HÜ!Ð"<Ó=À4ÐGð	Hús   Í9P5 ÎQ Ð5QÑQ2)r%   r&   r.   r'   r1   r0   r)   r,   r-   r/   r*   r+   r"   r#   )Fr�   )r"   Úboolr#   rT   )ÚreturnÚNone)N)r?   zdict | NonerÁ   rÂ   )rF   z	list[str]rÁ   rÂ   )rX   z
list[dict]rY   zlist[dict] | NonerÁ   rÂ   )rx   r
   rQ   rˆ   rÁ   rT   )rÁ   rˆ   )rx   r
   rQ   rˆ   rÁ   rÀ   )rw   Ú
__module__Ú__qualname__Ú__firstlineno__r4   r:   r@   rC   rH   r^   r|   r‰   rn   r�   Ú__static_attributes__rk   r6   r3   r   r   %   sµ   † ð #Ø'ð%àð%ð õ%ôN"ö
PôôKð +/ðàðð (ðð 
õ	ô83Côj
ðQ;à ðQ;ð ðQ;ð 
ô	Q;ðfà ðð ðð 
÷	r6   r   )$Ú
__future__r   rr   rV   r(   Úrich.consoler   Ú
rich.panelr   Úrich.promptr   r   Údashscope.acli.permissionr   Údashscope.acli.tools.registryr	   r
   Údashscope.acli.tools.shellr   Údashscope.acli.utils.exceptionsr   r   Údashscope.acli.utils.spinnerr   Údashscope.acli.utils.textr   Údashscope.acli.utils.validationr   r   r²   r—   rš   r›   r´   ru   r   rk   r6   r3   Ú<module>rÒ      sw   ðõ #ã Û Û å  Ý ß 'å ;ß IÝ 7ß KÝ 6Ý 4ß Oá
‹)€ð ×Ñ˜'Ø×Ñ˜XØ×Ñ˜zðÐ ð Ð ÷rò rr6   