
    i              	           d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	  eej
                  Z e	j        dd	 ej        d
                    dej        dej        deeef         fd            ZdS )u   命令准入审批工作流。    )AnyN)settings)TmuxWrapper)inngest_client)session_prefixzcommand-guardrailzCommand Guardrailzim/command-needs-approval)event)fn_idnametriggerctxstepreturnc                   K   | j         j                            dd          }| j         j                            dd          | j         j                            dd          t          |t                    st	          |          }t          t                    st	                    t          t                    st	                    	 |                    ddt          j                   d{V }|rt|j                            d	          rZdfd}|                    d|           d{V  d
t          ffd}|                    d|           d{V }d	d|dd         dS dddS # t          $ r	 ddddcY S w xY w)u   危险命令审批流程。user_id commandsession_namezwait-approvalzim/approval-response)r   timeoutNapprovedr   c                  F   K   t                                d           d S )NT)enter)tmux	send_keys)r   r   s   9/root/projects/qq-shell/src/butler/workflows/guardrail.pyexecutez"command_guardrail.<locals>.execute)   s%      |WDAAAAA    zexecute-approvedc                  <   K   t                                          S )N)r   capture_pane)r   s   r   capturez"command_guardrail.<locals>.capture.   s      ((666r   zcapture-outputTi)statusexecutedoutputrejectedF)r    r!   r   u   审批超时，命令已取消)r    r!   message)r   N)
r   dataget
isinstancestrwait_for_eventr   guardrail_approval_timeoutrunTimeoutError)	r   r   r   approvalr   r   r"   r   r   s	          @@r   command_guardrailr.      s      in  B//Gin  B//G9>%%nb99L gs## g,,gs## g,,lC(( )<((e,,(7 - 
 
 
 
 
 
 
 
  	=))*55 	=B B B B B B B ((-w77777777773 7 7 7 7 7 7  88$4g>>>>>>>>F(dfUVVnUUU(e<<< e e e#Ccdddddes   BE5 0E5 5FF)__doc__typingr   inngestbutler.configr   butler.session.wrapperr   butler.workflowsr   r   r   create_functionTriggerEventContextStepdictr(   r.    r   r   <module>r;      s    $ $        " " " " " " . . . . . . + + + + + +{("9:::  
	 G 'BCCC  
$e $e $ecSVh $e $e $e 
$e $e $er   