
    Cj                         S SK r S SKrS SKrS SK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  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  S S
KJr  SSKJrJr  \R:                  " \5      rS\ 4S jr!S\SS4S jr"g)    N)Any)Console)Live)Panel)Text)load_settings)run_strix_scan)ReportStateset_global_report_state)session_manager   )build_live_stats_textformat_vulnerability_reportreturnc                  f    [        5       R                  R                  n U (       d  [        S5      eU $ )NzBstrix_image is not configured. Set it in ~/.strix/cli-config.json.)r   runtimeimageRuntimeError)r   s    e/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/strix/interface/cli.py_resolve_sandbox_imager      s/    O##))EP
 	
 L    argsc                   ^^^^^#    [        5       m[        5       nUR                  SSS9  [        5       nUR                  SSS9  UR                  S5        [        U R                  5      S:X  a!  UR                  U R                  S   S	   S
S9  O]UR                  [        U R                  5       S3S
S9  U R                   H'  nUR                  S5        UR                  US	   SS9  M)     [        5       nUR                  SSS9  UR                  S5        UR                  SU R
                   3SS9  [        5       nUR                  SSS9  UR                  SSS9  [        [        R                  " USUSUU5      SSSSS9nTR                  S5        TR                  U5        TR                  5         [        U SS5      nU R
                  U R                  U R                  =(       d    SU R
                  [        U SSS05      U[        [        U SS5      5      [        U S S 5      =(       d    / [        U S!S"5      [        U S#S 5      [        U S$S 5      =(       d    SS%.n[        U R
                  5      mTR                  5         TR                  U5        TR                  5         S&[         ["        [$        4   S'S 4U4S( jjn	U	Tl        S<U4S) jjn
S*[(        S+[$        S'S 4U4S, jjn[*        R,                  " U
5        [.        R.                  " [.        R0                  U5        [.        R.                  " [.        R2                  U5        [5        [.        S-5      (       a%  [.        R.                  " [.        R6                  U5        [9        T5        S'[        4U4S. jjm TR                  5         [;        T" 5       TS/SS09 m[<        R>                  " 5       mS<UUU4S1 jjn[<        R@                  " US2S39nURC                  5          [D        RG                  S4U R
                  [        URI                  S55      =(       d    / 5      [        [        U S6S5      5      5        [K        UU R
                  [M        5       [        U S S 5      =(       d    / [        [        U S6S5      5      S79I S h  vN   TRO                  5         URQ                  SS89  [R        RT                  " [V        5         [X        RZ                  " U R
                  5      I S h  vN   S S S 5        S S S 5        TR\                  (       ay  TR                  5         [        5       nUR                  S:S;S9  [        [        R                  " USTR\                  5      SSSSS9nTR                  U5        TR                  5         g g  GN N! , (       d  f       N= f! TRO                  5         URQ                  SS89  [R        RT                  " [V        5         [X        RZ                  " U R
                  5      I S h  vN    S S S 5        f ! , (       d  f       f = f= f! , (       d  f       GN1= f! [V         a  nTR                  S9U 35        e S nAff = f7f)=NzPenetration test initiatedbold #22c55estyleTargetdimz  r   r   originalz
bold whitez targetsz	
        whiteOutputzstrix_runs/z#60a5fa

z/Vulnerabilities will be displayed in real-time.
[bold white]STRIXleft#22c55er      titletitle_alignborder_stylepadding	scan_modedeep 
diff_scopeactiveFnon_interactivelocal_sources
scope_modeauto	diff_baseuser_explicit_instruction)scan_idtargetsuser_instructionsrun_namer1   r.   r3   r4   r5   r7   resume_instructionreportr   c                    > U R                  SS5      n[        U 5      n[        USUR                  5        3SSSS9nTR	                  U5        TR	                  5         g )Nidunknownz
[bold red]r%   redr'   r)   )getr   r   upperprint)r>   	report_id	vuln_text
vuln_panelconsoles       r   display_vulnerability&run_cli.<locals>.display_vulnerabilityh   s\    JJtY/	/7	y012

 	j!r   c                  &   > T R                  5         g )N)cleanup)report_states   r   cleanup_on_exit run_cli.<locals>.cleanup_on_exitz   s    r   _signum_framec                 P   > TR                  SS9  [        R                  " S5        g )Ninterrupted)statusr   )rM   sysexit)rQ   rR   rN   s     r   signal_handlerrun_cli.<locals>.signal_handler}   s    M2r   SIGHUPc                     > [        5       n U R                  SSS9  U R                  S5        [        T5      nU(       a  U R                  U5        [        U SSSSS	9$ )
NzPenetration test in progressr   r   r"   r$   r%   r&   r'   r)   )r   appendr   r   )status_text
stats_textrN   s     r   create_live_status#run_cli.<locals>.create_live_status   sc    f9P6"*<8
z*%"
 	
r   r(   )rI   refresh_per_second	transientc                     > TR                  5       (       dE   TR                  T " 5       5        [        R                  " S5        TR                  5       (       d  MD  g g ! [         a     g f = f)Nr(   )is_setupdatetimesleep	Exception)r_   livestop_updatess   r   update_statusrun_cli.<locals>.update_status   sW    &--//$6$89

1 '--// % s   ,A 
A*)A*T)targetdaemonz9CLI launching scan: run_name=%s targets=%d interactive=%sr:   interactive)scan_configr9   r   r4   ro   )timeoutz,[bold red]Error during penetration test:[/] zPenetration test summaryzbold #60a5fa)r   N)/r   r   r\   lentargets_infor<   r   assemblerE   getattrinstructionboolr
   hydrate_from_run_dirset_scan_configsave_run_datadictstrr   vulnerability_found_callbackintatexitregistersignalSIGINTSIGTERMhasattrrZ   r   r   	threadingEventThreadstartloggerinforC   r	   r   setjoin
contextlibsuppressrh   r   rM   final_scan_result)r   
start_texttarget_texttarget_inforesults_text	note_textstartup_panelr.   rp   rJ   rO   rX   rk   update_threadefinal_report_textfinal_report_panelrI   r_   ri   rN   rj   s                    @@@@@r   run_clir   &   s    iGJ2.I&Kxu-t
4"4,,Q/
;<Pc$"3"345X>lS,,K|,{:6gF - 6L.+dmm_5YGIV5)FeT	
 "M MM$MM- MMOk62I ==$$!--3MMdL8U2CD.? GH =CdL&9T;5%d,GNTRT#K t}}-L%%'  - d38n    1FL- S T  OOO$
MM&--0
MM&...1vx  fmm^4L)
 
") 'aSX
$??,L  &,,M$OM!AOMM	28b9}e<=	 % + MM02")$"F"L" $WT=%%H I     """1"-((3)11$--@@@ 4C
P %% F  !;> R"MM!..
 &"

 	()' &# A 43   """1"-((3)11$--@@@ 433C
 
H  DQCHIs   NY9!Y  AY B!V?'V)(V?,9Y %$V.	V,
V.Y Y BY9)V?,V..
V<	8Y ?:X=9$X,	X X,	#	X=,
X:6X==Y  
Y
Y Y9Y 
Y6Y11Y66Y9)#r   r   loggingr   rV   r   rf   typingr   rich.consoler   	rich.liver   
rich.panelr   	rich.textr   strix.configr   strix.core.runnerr	   strix.report.stater
   r   strix.runtimer   utilsr   r   	getLogger__name__r   r|   r   r    r   r   <module>r      sn        
         & , C ) 
		8	$ r r rr   