
    #j                        d Z ddlmZ dZdZdZdededed	efd
Zeefde	deded	e	fdZ
d Zd"de	ded	e	fdZde	d	e	fdZde	d	e	fdZde	d	e	fdZde	d	e	fdZ	 	 	 	 d#de	dede	de	de	de	de	dede	dz  de	dz  d e	dz  fd!ZdS )$z]
Banner display for Hindsight API startup.

Shows the logo and tagline with gradient colors.
   )mask_network_location)    t      )r         u    [38;2;9;127;184m▄[0m[48;2;8;130;178m[38;2;5;133;186m▄[0m       [48;2;10;143;160m[38;2;10;143;165m▄[0m[38;2;7;140;156m▄[0m
 [38;2;8;125;192m▄[0m [38;2;3;132;191m▀[0m[38;2;2;133;192m▄[0m [38;2;3;132;180m▄[0m[38;2;1;137;184m▄[0m[38;2;3;133;174m▄[0m [38;2;3;142;176m▄[0m[38;2;4;142;169m▀[0m [38;2;10;144;164m▄[0m
[38;2;6;121;195m▀[0m[38;2;5;128;203m▀[0m[48;2;5;124;195m[38;2;3;125;200m▄[0m[38;2;2;126;196m▄[0m[48;2;3;128;188m[38;2;1;131;196m▄[0m[48;2;0;152;219m[38;2;2;131;191m▄[0m[38;2;1;141;196m▀[0m[38;2;1;135;183m▀[0m[38;2;1;148;198m▀[0m[48;2;1;156;202m[38;2;2;135;180m▄[0m[48;2;4;134;169m[38;2;1;137;177m▄[0m[38;2;3;138;173m▄[0m[48;2;6;137;165m[38;2;2;140;170m▄[0m[38;2;7;144;169m▀[0m[38;2;7;139;158m▀[0m
   [48;2;2;128;202m[38;2;2;124;201m▄[0m[48;2;1;130;201m[38;2;0;135;212m▄[0m[38;2;2;128;196m▄[0m [48;2;2;142;204m[38;2;7;138;199m▄[0m [38;2;1;135;186m▄[0m[48;2;1;142;186m[38;2;2;144;194m▄[0m[48;2;3;138;176m[38;2;2;134;176m▄[0m
 [48;2;8;118;200m[38;2;8;121;209m▄[0m[38;2;3;121;203m▀[0m [38;2;3;122;192m▀[0m[38;2;1;138;216m▀[0m[48;2;0;138;210m[38;2;3;128;198m▄[0m[48;2;0;126;188m[38;2;2;131;198m▄[0m[48;2;0;142;205m[38;2;3;132;193m▄[0m[38;2;1;140;196m▀[0m  [38;2;4;134;175m▀[0m[48;2;13;135;167m[38;2;8;136;174m▄[0m startendtreturnc                     t          | d         |d         | d         z
  |z  z             t          | d         |d         | d         z
  |z  z             t          | d         |d         | d         z
  |z  z             fS )z#Interpolate between two RGB colors.r   r      )int)r	   r
   r   s      \/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/hindsight_api/banner.py_interpolate_colorr      s     	E!HAq)Q..//E!HAq)Q..//E!HAq)Q..//     textc                 r   g }t          |           }t          |           D ]m\  }}|dk    r|                    d           !|t          |dz
  d          z  }t	          |||          \  }}	}
|                    d| d|	 d|
 d|            n|                    d           d                    |          S )z)Render text with a gradient color effect. r   [38;2;;m[0m )len	enumerateappendmaxr   join)r   r	   r
   resultlengthicharr   rgbs              r   gradient_textr'      s    FYYFT?? ; ;43;;MM#C
A&&&A(Q77GAq!MM9q99199q99499::::
MM)776??r   c                  r    t          t                     t          d          } t          d|  d           dS )z#Print the Hindsight startup banner.z4Hindsight: Agent Memory That Works Like Human Memoryz
  
N)printLOGOr'   )taglines    r   print_bannerr-   .   s;    	$KKKRSSG	



r           c           	      ^    t          t          t          |          \  }}}d| d| d| d|  d	S )z<Color text using gradient position (0.0 = start, 1.0 = end).r   r   r   r   )r   GRADIENT_STARTGRADIENT_END)r   r   r$   r%   r&   s        r   colorr2   5   sB     qAAGAq!111A1111D1111r   c                 "    t          | d          S )z/Color text with gradient start color (#0074d9).r.   r2   r   s    r   color_startr6   ;       sr   c                 "    t          | d          S )z-Color text with gradient end color (#009296).      ?r4   r5   s    r   	color_endr:   @   r7   r   c                 "    t          | d          S )z&Color text with gradient middle color.g      ?r4   r5   s    r   	color_midr<   E   r7   r   c                     d|  dS )zDim/gray text.z[38;2;128;128;128mr    r5   s    r   dimr?   J   s    1D1111r   FNhostportdatabase_urlllm_provider	llm_modelembeddings_providerreranker_providermcp_enabledversionvector_extensiontext_search_extensionc                    t          t          d                     |r3t          dt          d           dt          d| d                      t          dt          d           dt          d|  d	| d
                      t          dt          d           dt          t	          |          d                      t          dt          d           dt          | d| d                      t          dt          d           dt          |d                      t          dt          d           dt          |d                      |	pd d|
pd d}t          dt          d           dt          |d                      |r/t          dt          d           dt          d                      t                       dS )z!Print styled startup information.zStarting Hindsight API...z  zVersion:r   vg?zURL:zhttp://:g?z	Database:g?zLLM:z / g333333?zEmbeddings:g?z	Reranker:r9   defaultz (vector) / z (text)zExtensions:zMCP:zenabled at /mcpN)r*   r6   r?   r2   r   r:   )r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   
extensionss               r   print_startup_inforP   O   s    
+1
2
2333 B@3z??@@U=w==#%>%>@@AAA	
Bs6{{
B
BU#:T#:#:D#:#:C@@
B
BCCC	
Ss;
S
S%(=l(K(KS"Q"Q
S
STTT	
Js6{{
J
JUl#B#By#B#BCHH
J
JKKK	
Es=!!
E
EE*=s$C$C
E
EFFF	
As;
A
A%(93"?"?
A
ABBB$1	jj?T?aXajjjJ	
<s=!!
<
<E*c$:$:
<
<=== A?3v;;??+<!=!=??@@@	GGGGGr   )r.   )FNNN)__doc__utilsr   r0   r1   r+   tuplefloatr   strr'   r-   r2   r6   r:   r<   r?   r   boolrP   r>   r   r   <module>rW      s    ) ( ( ( ( ( xe % E e     -;   E  Z]      2 2 2 2 2 2 2 2c c    
C C    
C C    
2c 2c 2 2 2 2 #'(, 

  	
     4Z Dj :     r   