
     Yjj                     Z   d Z ddlZddlZddlZddlmZ  ee          j        j                                        Z	ddl
mZmZ ddlmZmZ ddlmZmZmZmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZ ddl m!Z! de"de#fdZ$de#de#fdZ%de#fdZ&de'de#fdZ(de#fdZ)ddlm*Z+ d Z,dS )zR
Status command for hermes CLI.

Shows the status of all Hermes Agent components.
    N)Path)	AuthErrorresolve_provider)Colorscolor)get_env_pathget_env_valueget_hermes_homeload_config)provider_label)&format_nous_portal_entitlement_messageget_nous_portal_account_info)get_nous_subscription_features)resolve_requested_provider)OPENROUTER_MODELS_URL)managed_nous_tools_enabledokreturnc                 n    | rt          dt          j                  S t          dt          j                  S )Nu   ✓u   ✗)r   r   GREENRED)r   s    FC:\Users\server\AppData\Local\hermes\hermes-agent\hermes_cli\status.py
check_markr      s.    	 *UFL)))
###    keyc                 X    ddl m}  || t          dt          j                            S )u1  Redact an API key for display.

    Thin wrapper over :func:`agent.redact.mask_secret`. Preserves the
    "(not set)" placeholder in dim color to match ``hermes config``'s
    output (previously this variant was missing the DIM color —
    consolidated via PR that also introduced ``mask_secret``).
    r   )mask_secret	(not set))empty)agent.redactr   r   r   DIM)r   r   s     r   
redact_keyr"       s7     )(((((;s%VZ"@"@AAAAr   c                    | rt          | t                    sdS ddlm}m} |                                 }|sdS |                    d          r|dd         dz   }	 |                    |          }|j        |                    |j	                  }n# t          $ r | cY S w xY w|                                                    d	          S )
zFFormat ISO timestamps for status output, converting to local timezone.	(unknown)r   datetimetimezoneZNz+00:00)tzinfoz%Y-%m-%d %H:%M:%S %Z)
isinstancestrr&   r'   stripendswithfromisoformatr*   replaceutc	Exception
astimezonestrftime)valuer&   r'   textparseds        r   _format_iso_timestampr8   ,   s     
5#.. {++++++++;;==D {}}S $CRCy8#''--= ^^8<^88F   ''(>???s   7B B$#B$configc                 4   |                      d          }t          |t                    r?|                     d          p|                     d          pd                                }n,t          |t                    r|                                }nd}|pdS )z5Return the configured default model from config.yaml.modeldefaultname r   )getr+   dictr-   r,   )r9   	model_cfgr;   s      r   _configured_model_labelrB   ?   s    

7##I)T"" y))HY]]6-B-BHbOOQQ	Is	#	# !!Kr   c                     t                      } 	 t          |           }n# t          $ r | pd}Y nw xY w|dk    rd}	 t                                          d          }t          |t                    r)|                    d          pd                                }n# t          $ r Y nw xY w|st          d          rd}t          |          S )zBReturn the provider label matching current CLI runtime resolution.auto
openrouterr>   r;   base_urlOPENAI_BASE_URLcustom)r   r   r   r   r?   r+   r@   r-   r2   r	   r   )	requested	effectiveconfig_base_urlrA   s       r   _effective_provider_labelrL   K   s    *,,I($Y//		 ( ( ('			( L   	#))'22I)T** L#,==#<#<#B"I"I"K"K 	 	 	D	 	!m,=>> 	! I)$$$s     11AB 
B*)B*)	is_termuxc                 h0   t          | dd          }t                       t          t          dt          j                             t          t          dt          j                             t          t          dt          j                             t                       t          t          dt          j        t          j                             t          dt                      t          dt          j        	                                d	                     t                      }t          d
t          |                                           d|                                rdnd            	 t                      }n# t          $ r i }Y nw xY wt          dt          |                      t          dt!                                  t                       t          t          dt          j        t          j                             i dddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6}d7t"          fd8}|                                D ][\  }}|dk    r ||          }t'          |          }	t)          |          }
t          d9|d:d9t          |	           d|
            \d	d;lm}  |            }t)          |          }t          d9dd:d9t          t'          |                     d|            t                       t          t          d<t          j        t          j                             	 d	d=lm}m}m}m}  |            } |            } |            } |            }n# t          $ r i }i }i }i }Y nw xY wd>}|                    d?          sT|                    d@          s?|                    dA          s*|                    dB          s|                    dC          r"	 t9                      }n# t          $ r d>}Y nw xY wt'          |                    d?          p|o|j                  }t'          |                    dB          p|o|j                  }|                    dD          }|rdE}n|rdF}ndG}t          d9dHd:d9t          |           d|            |                    dA          pdI}|                    dJ          p
|r|j        nd>}tA          |                    dK                    }tA          |                    dL                    }|                    dM          rdNndO}|s|dIk    s|rt          dP|            |r|rt          dQ|            |s|                    dK          rt          dR|            |s|s|                    dL          rt          dS|            |s|                    dM          rt          dT|            |rt          dU|            t'          |                    d?                    } t          d9dVd:d9t          |            d| rdEndW            |                    dX          }!|!rt          dY|!            tA          |                    dZ                    }"|                    dZ          rt          d[|"            |                    dD          r'| s%t          dU|                    dD                      t'          |                    d?                    }#t          d9d\d:d9t          |#           d|#rdEnd]            |                    d^          }$|$rt          dY|$            |                    d_          }%|%rVd	d`l!m!}&m"}' t          dR|&#                    tI          |%          daz  |'j%        b          &                                            |                    dD          r'|#s%t          dU|                    dD                      t'          |                    d?                    }(t          d9dcd:d9t          |(           d|(rdEndd            |                    de          })|(r|)rt          df|)            |                    dg          }*|*rt          dR|*            |                    dD          r'|(s%t          dU|                    dD                      	 d	dhlm'}+  |+            pi },n# t          $ r i },Y nw xY wt'          |,                    d?                    }-t          d9did:d9t          |-           d|-rdEndj            |,                    dX          }.|.rt          dY|.            |,                    dZ          r2t          d[tA          |,                    dZ                                |,                    dD          r'|-s%t          dU|,                    dD                      tQ                      rtS          |          }/t                       t          t          dkt          j        t          j                             |/j*        st          dl           nt          dm           |/                                D ]}0|0j+        rdn}1n>|0j,        r|0j-        pdo}2dp|2 }1n(|0j.        r
|/j*        rdq}1n|0j/        drk    r
|/j*        rds}1ndt}1t          d9|0j0        dudt          |0j1        p|0j,        p|0j+                   d|1            n|s|r|t                       t          t          dkt          j        t          j                             te          |dvw          }3|3r)|33                                D ]}4t          d9|4            t                       t          t          dxt          j        t          j                             dydzd{d|d}d~d}5|5                                D ]\\  }6}7d}8|7D ]}9ti          |9          pd}8|8r nt'          |8          }:|:rdnd};t          d9|6ddt          |:           d|;            ]t!                      dk    rd	dl5m6}< |                    d          }=to          |=tp                    r|=                    d          nd>pti          d          pd}>	  |<ti          d          pd|>d          }?|?dd|> }A}@nddts          |?           d|> }A}@n# tt          $ r d\  }@}AY nw xY wt          d9dddt          |@           d|A            t                       t          t          dt          j        t          j                             to          |                    d          tp                    r|                    di           ni }Btw          j<        dd          }C|Cs|B                    dd          }Ct          d|C            |Cdk    rStw          j<        dd          }Dtw          j<        dd          }Et          d|Dpd            t          d|Epd            n[|Cdk    r(tw          j<        dd          }Ft          d|F            n-|Cdk    r'tw          j<        dd          }Gt          d|G            tw          j<        dd          }Ht          dt          t'          |H                     d|Hrdnd            t                       t          t          dt          j        t          j                             dddddddddddddddd}I|I                                D ]\  }\  }J}Ktw          j<        |Jd          }Lt'          |L          }Md}N|Krtw          j<        |Kd          }N|Ns|Kdk    rtw          j<        dd          }N|Mrdndt}O|Nr	|Od|N dz  }Ot          d9|d:d9t          |M           d|O            	 d	dl=m>}P |P?                                D ]J}Q|Q@                                }:|:rdndt}R|Qj0        };t          d9|;d:d9t          |:           d|R d           Kn# t          $ r Y nw xY wt                       t          t          dt          j        t          j                             	 d	dlAmB}SmC}T  |S            }U|UjD        }Vt          dt          |V           d|Vrdndś            t          d|UjE                    |UjF        r t          d |T|UjF                              |UjG        rt          dȦ           nQt                      r&|UjF        st          dɦ           t          dʦ           n|UjI        r|UjJ        st          d˦           n5# t          $ r' t                      r:t          dt          dt          jK                              t          dͦ           nt          jL        M                    dΦ          r:t          dt          dt          jK                              t          dϦ           nt          jL        dk    r:t          dt          dt          jK                              t          dѦ           n9t          dt          dt          jK                              t          dӦ           Y nw xY wt                       t          t          dt          j        t          j                             t                      dz  dz  }W|W                                rd	d>lO}X	 t          |Wd׬ئ          5 }Y|XQ                    |Y          }Z|Z                    dg           }[dڄ |[D             }\t          dts          |\           dts          |[           dݝ           d>d>d>           n# 1 swxY w Y   n.# t          $ r t          dަ           Y nw xY wt          dߦ           t                       t          t          dt          j        t          j                             d>}]	 d	dlRmS}^  |^            }_	 t          |_dd>          }`t          |`          rts           |`d                    }]|_U                                 n# |_U                                 w xY wn# t          $ r d>}]Y nw xY w|]|]d	k    rt          d|] d           nt                      dz  dz  }a|a                                rd	d>lO}X	 t          |ad׬ئ          5 }Y|XQ                    |Y          }Zto          |Ztp                    rd |Z                                D             ni }bt          dts          |b           d           d>d>d>           n# 1 swxY w Y   n5# t          $ r t          d           Y nw xY wt          d|]|]nd	            |rt                       t          t          dt          j        t          j                             tw          j<        dd          }c|cr	 d	d>lV}d|d                    t          dd|c id          }e|ejX        dk    }@t          dt          |@           d|@rdn
d|ejX         d            n9# t          $ r,}ft          dt          d           d|f            Y d>}f~fnd>}f~fww xY w	 d	d>lY}g|gY                    |gjZ        |gj[                  }h|h\                    d           |h]                    d          }i|hU                                 |id	k    }jt          d|jrdnd            n# t          $ r Y nw xY wt                       t          t          dt          jK                             t          t          dt          jK                             t          t          dt          jK                             t                       d>S )z+Show status of all Hermes Agent components.deepFu   ┌─────────────────────────────────────────────────────────┐u@   │                 ⚕ Hermes Agent Status                  │u   └─────────────────────────────────────────────────────────┘u   ◆ Environmentz  Project:      z  Python:       r   z  .env file:     existsz	not foundz  Model:        z  Provider:     u   ◆ API Keys
OpenRouterOPENROUTER_API_KEYOpenAIOPENAI_API_KEY	Anthropic)ANTHROPIC_API_KEYANTHROPIC_TOKENzGoogle / Gemini)GOOGLE_API_KEYGEMINI_API_KEYDeepSeekDEEPSEEK_API_KEYz
xAI / GrokXAI_API_KEYz
NVIDIA NIMNVIDIA_API_KEY
Z.AI / GLMGLM_API_KEYKimiKIMI_API_KEYStepFun Step PlanSTEPFUN_API_KEYMiniMaxMINIMAX_API_KEYz
MiniMax-CNMINIMAX_CN_API_KEY	DeepInfraDEEPINFRA_API_KEY	FirecrawlFIRECRAWL_API_KEYTavilyTAVILY_API_KEYzBrowser UseBROWSER_USE_API_KEYBrowserbaseBROWSERBASE_API_KEYFAL_KEYELEVENLABS_API_KEYGITHUB_TOKEN)FAL
ElevenLabsGitHubr   c                     t          | t                    r| D ]}t          |          pd}|r|c S dS t          |           pdS )zBReturn first non-empty env var value from a str or tuple of names.r>   )r+   tupler	   )env_ref	candidatevs      r   _resolve_envz!show_status.<locals>._resolve_env   sc    gu%% 	$  	!),,2 HHH2W%%++r   z  z<12)get_anthropic_keyu   ◆ Auth Providers)get_nous_auth_statusget_codex_auth_statusget_qwen_auth_statusget_minimax_oauth_auth_statusN	logged_inaccess_tokenportal_base_urlinference_credential_present
error_codeerrorz	logged inz-not logged in (Nous inference key configured)z"not logged in (run: hermes portal)zNous Portalr$   inference_base_urlaccess_expires_atagent_key_expires_athas_refresh_tokenyesnoz    Portal URL: z    Inference:  z    Access exp: z    Key exp:    z    Refresh:    z    Error:      zOpenAI Codexz!not logged in (run: hermes model)
auth_storez    Auth file:  last_refreshz    Refreshed:  z
Qwen OAuthz)not logged in (run: qwen auth qwen-oauth)	auth_fileexpires_at_msr%   i  )tzzMiniMax OAuthz2not logged in (run: hermes auth add minimax-oauth)regionz    Region:     
expires_at)get_xai_oauth_auth_statusz	xAI OAuthz.not logged in (run: hermes auth add xai-oauth)u   ◆ Nous Tool Gatewayu!     Nous Portal   ✗ not logged inu+     Nous Portal   ✓ managed tools availablezactive via Nous subscriptionzconfigured providerzactive via z0included by subscription, not currently selectedmodalz%available via subscription (optional)znot configuredz<15z6managed web, image, TTS, STT, browser, and Modal tools)
capabilityu   ◆ API-Key Providers)r`   ZAI_API_KEYZ_AI_API_KEY)rb   )rd   )rf   )rg   )ri   )r_   zKimi / Moonshotrc   re   zMiniMax (China)rh   r>   
configuredz"not configured (run: hermes model)z<16z	LM Studio)probe_lmstudio_modelsr;   rF   LM_BASE_URLzhttp://127.0.0.1:1234/v1
LM_API_KEYg      ?)api_keyrF   timeoutzunreachable at Tzreachable (z model(s)) at )Fu    auth rejected — set LM_API_KEYu   ◆ Terminal BackendterminalTERMINAL_ENVbackendlocalz  Backend:      sshTERMINAL_SSH_HOSTTERMINAL_SSH_USERz  SSH Host:     r   z  SSH User:     dockerTERMINAL_DOCKER_IMAGEzpython:3.11-slimz  Docker Image: daytonaTERMINAL_DAYTONA_IMAGEz*nikolaik/python-nodejs:python3.11-nodejs20z  Daytona Image: SUDO_PASSWORDz  Sudo:         enableddisabledu   ◆ Messaging Platforms)TELEGRAM_BOT_TOKENTELEGRAM_HOME_CHANNEL)DISCORD_BOT_TOKENDISCORD_HOME_CHANNEL)WHATSAPP_ENABLEDN)SIGNAL_HTTP_URLSIGNAL_HOME_CHANNEL)SLACK_BOT_TOKENN)EMAIL_ADDRESSEMAIL_HOME_ADDRESS)TWILIO_ACCOUNT_SIDSMS_HOME_CHANNEL)DINGTALK_CLIENT_IDN)FEISHU_APP_IDFEISHU_HOME_CHANNEL)WECOM_BOT_IDWECOM_HOME_CHANNEL)WECOM_CALLBACK_CORP_IDN)WEIXIN_ACCOUNT_IDWEIXIN_HOME_CHANNEL)BLUEBUBBLES_SERVER_URLBLUEBUBBLES_HOME_CHANNEL)	QQ_APP_IDQQ_HOME_CHANNEL)YUANBAO_APP_IDYUANBAO_HOME_CHANNEL)TelegramDiscordWhatsAppSignalSlackEmailSMSDingTalkFeishuWeComzWeCom CallbackWeixinBlueBubblesQQBotYuanbaoQQBOT_HOME_CHANNELr   z (home: ))platform_registryz	 (plugin)u   ◆ Gateway Service)get_gateway_runtime_snapshot_format_gateway_pidsz  Status:       runningstoppedz  Manager:      z  PID(s):       zF  Service:      installed but not managing the current running gatewayz  Start with:   hermes gatewayzI  Note:         Android may stop background jobs when Termux is suspendedz%  Service:      installed but stoppedunknownz'  Manager:      Termux / manual processlinuxz  Manager:      systemd/manualdarwinz  Manager:      launchdzN/Az0  Manager:      (not supported on this platform)u   ◆ Scheduled Jobscronz	jobs.jsonzutf-8)encodingjobsc                 >    g | ]}|                     d d          |S )r   T)r?   ).0js     r   
<listcomp>zshow_status.<locals>.<listcomp>  s+    JJJa155D3I3IJJJJr   z  Jobs:         z	 active, z totalz)  Jobs:         (error reading jobs file)z  Jobs:         0u   ◆ Sessions)	SessionDBlist_gateway_sessions)active_onlyz  Active:       z session(s)sessionszsessions.jsonc                 ^    i | ]*\  }}t          |                              d           '||+S )_)r,   
startswith)r   kr{   s      r   
<dictcomp>zshow_status.<locals>.<dictcomp><  sH          !%A"1vv0055 1     r   z-  Active:       (error reading sessions file)u   ◆ Deep ChecksAuthorizationzBearer 
   )headersr      z  OpenRouter:   	reachablezerror (z error:    )z	127.0.0.1ieI  z  Port 18789:   zin use	availableu   ────────────────────────────────────────────────────────────z.  Run 'hermes doctor' for detailed diagnosticsz!  Run 'hermes setup' to configure)_getattrprintr   r   CYANBOLDPROJECT_ROOTsysversionsplitr   r   rQ   r   r2   rB   rL   r,   itemsboolr"   hermes_cli.authr}   r~   r   r   r   r?   r   r   r   r   r8   r&   r'   fromtimestampintr1   	isoformatr   r   r   nous_auth_presentmanaged_by_nousactivecurrent_providerincluded_by_defaultr   labelr   r   
splitlinesr	   hermes_cli.modelsr   r+   r@   lenr   osgetenvgateway.platform_registryr   plugin_entriescheck_fnhermes_cli.gatewayr   r   r   managergateway_pidshas_process_service_mismatch
_is_termuxservice_installedservice_runningr!   platformr   r
   jsonopenloadhermes_stater   callableclosehttpxr   status_codesocketAF_INETSOCK_STREAM
settimeout
connect_exOSError)kargsrO   env_pathr9   keysr|   r=   ry   r5   has_keydisplayr}   anthropic_valueanthropic_displayr~   r   r   r   nous_statuscodex_statusqwen_statusminimax_statusnous_account_infonous_logged_innous_inference_present
nous_error
nous_label
portal_urlinference_url
access_expkey_exprefresh_labelcodex_logged_incodex_auth_filecodex_last_refreshqwen_logged_inqwen_auth_fileqwen_expr&   r'   minimax_logged_inminimax_regionminimax_expr   xai_oauth_statusxai_oauth_logged_inxai_auth_filefeaturesfeaturestatecurrentmessagelineapikey_providerspnameenv_varskey_valevr   r
  r   rA   basemodelsr   msgterminal_cfgterminal_envssh_hostssh_userdocker_imagedaytona_imagesudo_password	platforms	token_varhome_vartoken	has_tokenhome_channelstatusr   entry
status_strr   r   snapshot
is_running	jobs_filer  fdatar   enabled_jobs_session_countr   _db_listersessions_file_entriesopenrouter_keyr!  responseer#  sockresultport_in_usesk                                                                                                              r   show_statusry  i   s   4''D	GGG	%  D  FL  FQ  R  R  S  S  S	%RTZT_
`
`aaa	%  D  FL  FQ  R  R  S  S  S
 
GGG	%!6;
<
<===	
+\
+
+,,,	
5S[..003
5
5666~~H	
mZ(9(9::
m
mIZIZ=kXX`k
m
mnnn    

>4V<<
>
>???	
:688
:
:;;;
 
GGG	%V[
9
9:::.*.". 	=. 	?	.
 	&. 	m. 	&. 	m. 	. 	.. 	$. 	*. 	(. 	(. 	".  	,!." 	,#.$ * ). . .D., , , , ,  	@ 	@g ;W%%u++U##>4>>>z'22>>W>>????111111''))O"?33	
Y{
Y
Y
Y*T/-B-B"C"C
Y
YFW
Y
YZZZ
 
GGG	%$fk6;
?
?@@@	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 +*,,,,..**,,6688   	 $$
%??>**
% ??,--
% ??9::	
%
 ??<((
%	% < > > 	% 	% 	% $	% $$ 	?="3"= N "677 	RP"3"P  ))J : 

	 :D

9
		]? 	 	*^"<"< 	 		 	   !233B{J,-- 	Q4EO004  '{7J'K'KLLJ#KOO4J$K$KLLG(__-@AAKEEtM /{22j2---... 2- 2000111 /)<== /---... ,/ ,;??CY3Z3Z ,***+++ 2)<== 2000111 /---...<++K8899O		U^A 	U 	U:o#>#> 	U 	U)R;;/R	U 	U   #&&|44O 4222333.|/?/?/O/OPP'' 75!355666   > ><!1!1'!:!:<<===+//+6677N		\\> 	\ 	\N!;!; 	\ 	\(Y;;.Y	\ 	\   !__[11N 3111222//H n////////l!7!7H8LQYQ]!7!^!^!h!h!j!jllmmmw = =;!9!9;;<<<^//<<==		h_D 	h 	hJ/@$A$A 	h 	h+e;;1e	h 	h   $''11N 3^ 3111222 $$\22K 0...///'"" @+< @>!3!3G!<!<>>???======4466<"    /33K@@AA		f[B 	f 	f
+> ? ? 	f 	f-c;;3c	f 	f   %((66M 2000111N++ `^!67G7K7KN7[7[!\!\^^___G$$ B-@ B@!1!5!5g!>!>@@AAA
 "##  #1&99e+V[&+FFGGG) 	A56666?@@@~~'' 	A 	AG& 
)6 )!2K6K/g//, )1K )J''H,F'?(w}:g6G6t7>6t]d]t+u+ux}  A  A  A  A	A 
 #1 # 	e+V[&+FFGGG8O
 
 
  	#**,, # #k4kk""""
 
GGG	%'fk
B
BCCC K-1032  ,1133 A Ax 	 	B#B''-2G ']]
 *T0T?5???z*55????@@@@
 !""k11;;;;;;JJw''	-7	4-H-HR	j)))d  RWderWsWs  R  xR	@**=3N3N3TRT_cmpqqqF~!94!9!9C Oc&kk O O O OC 	@ 	@ 	@?GB	@;;;;;Z^^;;c;;<<<
 
GGG	%&V[
A
ABBB1;FJJz<R<RTX1Y1Ya6::j"---_aL9^R00L <#''	7;;	
+\
+
+,,,u90"5590"55:!8[::;;;:!8[::;;;;		!	!y!8:LMM///0000		"	"	":<hii1-11222Ior22M	
kZ](;(;<<
k
kM?iyy_i
k
klll
 
GGG	%)6;
D
DEEE D@.<*890:7:>M1= I$ (1'8'8 A A##y(	)R((KK	 	39Xr22L 	<,@ @ @9%6;;L!*@0@ 	100000F?4???z)44??v??@@@@??????&5577 	T 	TE))J)3I9IJKERuRRRJz$:$:RRZRRRSSSS		T
     
GGG	%%v{FK
@
@AAAFYYYYYYYY//11%
bJ!7!7bbz:`))W`bbccc3!133444  	TR%9%9(:O%P%PRRSSS0 	;Z[[[[\\ 	;("7 	;2333]^^^^' 	;0H 	;9::: F F F<< 	FCU9fj%A%ACCDDD;<<<<\$$W-- 	FCU9fj%A%ACCDDD23333\X%%CU9fj%A%ACCDDD+,,,,?U5&*%=%=??@@@DEEEF" 
GGG	%$fk6;
?
?@@@!!F*[8I #	?i'222 Xayy||xx++JJ4JJJV\):):VVSYYVVVWWW	X X X X X X X X X X X X X X X
  	? 	? 	?=>>>>>	? 	!"""
 
GGG	%V[
9
9::: N
******ikk	c#:DAAG   @!$WW%>%>%>!?!?IIKKKKCIIKKKKK    !nq&8&8<<<<===='))J6H!! 	\KKK	G-'::: Ia99Q<<D $D$// 8    )-        68  GS]]GGGHHHI I I I I I I I I I I I I I I  G G GEFFFFFG Z~7Q^^WXZZ[[[
  e%v{FK@@AAA #7<< 	I
I 99),.H.H.HI %  
 )S0tBtt:r++Qr[c[oQrQrQrttuuuu I I IGE):):GGAGGHHHHHHHHI	MMM==1CDDDOOA__%9::FJJLLL A+KO%MXX+OOPPPP 	 	 	D	 
GGG	%
FJ
'
'(((	%@&*
M
MNNN	%3VZ
@
@AAA	GGGGGs  9F FF 4N N*)N*P( (P76P7#d6 6ee>u uu@=A%AB# B#
AB0B/AB0C4C%AG GD/ALLALM=AP NA(APO6AP PAPPAP P	APP
AP PAP*P)AP*Q?AS8 R9AS S	AS8 SAS4S4AS8 S8ATTATUAW' U$A+AWWAW' WAWWAW' W"AWW#AW' W'AXXAXY7A A[ [
A\[""A\	\	A\\A>A^ ^
A^^A^)-__doc__r  r   
subprocesspathlibr   __file__parentresolver   r  r   r   hermes_cli.colorsr   r   hermes_cli.configr   r	   r
   r   r  r   hermes_cli.nous_accountr   r   hermes_cli.nous_subscriptionr   hermes_cli.runtime_providerr   hermes_constantsr   tools.tool_backend_helpersr   r   r,   r   r"   r8   r@   rB   rL   rM   r  ry   r   r   <module>r     s    
			 



          tH~~$+3355 7 7 7 7 7 7 7 7 + + + + + + + + W W W W W W W W W W W W , , , , , ,        H G G G G G B B B B B B 2 2 2 2 2 2 A A A A A A$4 $C $ $ $ $
	BC 	BC 	B 	B 	B 	B@C @ @ @ @&	 D 	 S 	  	  	  	 %3 % % % %6 5 4 4 4 4 4E E E E Er   