i n t e r f a c e   C h a t C o n t e x t   { 
 
 	 	 / * * 
 
 	 	   *   A l l   o f   t h e   c h a t   m e s s a g e s   s o   f a r   i n   t h e   c u r r e n t   c h a t   s e s s i o n .   C u r r e n t l y ,   o n l y   c h a t   m e s s a g e s   f o r   t h e   c u r r e n t   p a r t i c i p a n t   a r e   i n c l u d e d . 
 
 	 	   * / 
 
 	 	 r e a d o n l y   h i s t o r y :   R e a d o n l y A r r a y < C h a t R e q u e s t T u r n   |   C h a t R e s p o n s e T u r n > ; 
 
 	 } 
 
 
 
 i n t e r f a c e   C h a t E r r o r D e t a i l s   { 
 
 	 	 / * * 
 
 	 	   *   A n   e r r o r   m e s s a g e   t h a t   i s   s h o w n   t o   t h e   u s e r . 
 
 	 	   * / 
 
 	 	 m e s s a g e :   s t r i n g ; 
 
 
 
 	 	 / * * 
 
 	 	   *   I f   s e t   t o   t r u e ,   t h e   r e s p o n s e   w i l l   b e   p a r t l y   b l u r r e d   o u t . 
 
 	 	   * / 
 
 	 	 r e s p o n s e I s F i l t e r e d ? :   b o o l e a n ; 
 
 	 } 
 
 
 
 i n t e r f a c e   C h a t R e s u l t   { 
 
 	 	 / * * 
 
 	 	   *   I f   t h e   r e q u e s t   r e s u l t e d   i n   a n   e r r o r ,   t h i s   p r o p e r t y   d e f i n e s   t h e   e r r o r   d e t a i l s . 
 
 	 	   * / 
 
 	 	 e r r o r D e t a i l s ? :   C h a t E r r o r D e t a i l s ; 
 
 
 
 	 	 / * * 
 
 	 	   *   A r b i t r a r y   m e t a d a t a   f o r   t h i s   r e s u l t .   C a n   b e   a n y t h i n g ,   b u t   m u s t   b e   J S O N - s t r i n g i f y a b l e . 
 
 	 	   * / 
 
 	 	 r e a d o n l y   m e t a d a t a ? :   {   r e a d o n l y   [ k e y :   s t r i n g ] :   a n y   } 
 
 
 
 i n t e r f a c e   C h a t R e s u l t F e e d b a c k   { 
 
 	 	 / * * 
 
 	 	   *   T h e   C h a t R e s u l t   f o r   w h i c h   t h e   u s e r   i s   p r o v i d i n g   f e e d b a c k . 
 
 	 	   *   T h i s   o b j e c t   h a s   t h e   s a m e   p r o p e r t i e s   a s   t h e   r e s u l t   r e t u r n e d   f r o m   t h e   p a r t i c i p a n t   c a l l b a c k ,   i n c l u d i n g   ` m e t a d a t a ` ,   b u t   i s   n o t   t h e   s a m e   i n s t a n c e . 
 
 	 	   * / 
 
 	 	 r e a d o n l y   r e s u l t :   C h a t R e s u l t ; 
 
 
 
 	 	 / * * 
 
 	 	   *   T h e   k i n d   o f   f e e d b a c k   t h a t   w a s   r e c e i v e d . 
 
 	 	   * / 
 
 	 	 r e a d o n l y   k i n d :   C h a t R e s u l t F e e d b a c k K i n d ; 
 
 	 } 
 
 
 
 i n t e r f a c e   C h a t F o l l o w u p   { 
 
 	 	 / * * 
 
 	 	   *   T h e   m e s s a g e   t o   s e n d   t o   t h e   c h a t . 
 
 	 	   * / 
 
 	 	 p r o m p t :   s t r i n g ; 
 
 
 
 	 	 / * * 
 
 	 	   *   A   t i t l e   t o   s h o w   t h e   u s e r .   T h e   p r o m p t   w i l l   b e   s h o w n   b y   d e f a u l t ,   w h e n   t h i s   i s   u n s p e c i f i e d . 
 
 	 	   * / 
 
 	 	 l a b e l ? :   s t r i n g ; 
 
 
 
 	 	 / * * 
 
 	 	   *   B y   d e f a u l t ,   t h e   f o l l o w u p   g o e s   t o   t h e   s a m e   p a r t i c i p a n t / c o m m a n d .   B u t   t h i s   p r o p e r t y   c a n   b e   s e t   t o   i n v o k e   a   d i f f e r e n t   p a r t i c i p a n t   b y   I D . 
 
 	 	   *   F o l l o w u p s   c a n   o n l y   i n v o k e   a   p a r t i c i p a n t   t h a t   w a s   c o n t r i b u t e d   b y   t h e   s a m e   e x t e n s i o n . 
 
 	 	   * / 
 
 	 	 p a r t i c i p a n t ? :   s t r i n g ; 
 
 
 
 	 	 / * * 
 
 	 	   *   B y   d e f a u l t ,   t h e   f o l l o w u p   g o e s   t o   t h e   s a m e   p a r t i c i p a n t / c o m m a n d .   B u t   t h i s   p r o p e r t y   c a n   b e   s e t   t o   i n v o k e   a   d i f f e r e n t   c o m m a n d . 
 
 	 	   * / 
 
 	 	 c o m m a n d ? :   s t r i n g ; 
 
 	 } 
 
 
 
 i n t e r f a c e   C h a t F o l l o w u p P r o v i d e r   { 
 
 	 	 / * * 
 
 	 	   *   P r o v i d e   f o l l o w u p s   f o r   t h e   g i v e n   r e s u l t . 
 
 	 	   * 
 
 	 	   *   @ p a r a m   r e s u l t   T h i s   o b j e c t   h a s   t h e   s a m e   p r o p e r t i e s   a s   t h e   r e s u l t   r e t u r n e d   f r o m   t h e   p a r t i c i p a n t   c a l l b a c k ,   i n c l u d i n g   ` m e t a d a t a ` ,   b u t   i s   n o t   t h e   s a m e   i n s t a n c e . 
 
 	 	   *   @ p a r a m   c o n t e x t   E x t r a   c o n t e x t   p a s s e d   t o   a   p a r t i c i p a n t . 
 
 	 	   *   @ p a r a m   t o k e n   A   c a n c e l l a t i o n   t o k e n . 
 
 	 	   * / 
 
 	 	 p r o v i d e F o l l o w u p s ( r e s u l t :   C h a t R e s u l t ,   c o n t e x t :   C h a t C o n t e x t ,   t o k e n :   C a n c e l l a t i o n T o k e n ) :   P r o v i d e r R e s u l t < C h a t F o l l o w u p [ ] > ; 
 
 	 } 
 
 
 
 i n t e r f a c e   C h a t P a r t i c i p a n t   { 
 
 	 	 / * * 
 
 	 	   *   A   u n i q u e   I D   f o r   t h i s   p a r t i c i p a n t . 
 
 	 	   * / 
 
 	 	 r e a d o n l y   i d :   s t r i n g ; 
 
 
 
 	 	 / * * 
 
 	 	   *   A n   i c o n   f o r   t h e   p a r t i c i p a n t   s h o w n   i n   U I . 
 
 	 	   * / 
 
 	 	 i c o n P a t h ? :   I c o n P a t h ; 
 
 
 
 	 	 / * * 
 
 	 	   *   T h e   h a n d l e r   f o r   r e q u e s t s   t o   t h i s   p a r t i c i p a n t . 
 
 	 	   * / 
 
 	 	 r e q u e s t H a n d l e r :   C h a t R e q u e s t H a n d l e r ; 
 
 
 
 	 	 / * * 
 
 	 	   *   T h i s   p r o v i d e r   w i l l   b e   c a l l e d   o n c e   a f t e r   e a c h   r e q u e s t   t o   r e t r i e v e   s u g g e s t e d   f o l l o w u p   q u e s t i o n s . 
 
 	 	   * / 
 
 	 	 f o l l o w u p P r o v i d e r ? :   C h a t F o l l o w u p P r o v i d e r ; 
 
 
 
 	 	 / * * 
 
 	 	   *   A n   e v e n t   t h a t   f i r e s   w h e n e v e r   f e e d b a c k   f o r   a   r e s u l t   i s   r e c e i v e d ,   e . g .   w h e n   a   u s e r   u p -   o r   d o w n - v o t e s 
 
 	 	   *   a   r e s u l t . 
 
 	 	   * 
 
 	 	   *   T h e   p a s s e d   { @ l i n k   C h a t R e s u l t F e e d b a c k . r e s u l t   r e s u l t } 
 
 
 
 i n t e r f a c e   C h a t P r o m p t R e f e r e n c e   { 
 
 	 	 / * * 
 
 	 	   *   A   u n i q u e   i d e n t i f i e r   f o r   t h i s   k i n d   o f   r e f e r e n c e . 
 
 	 	   * / 
 
 	 	 r e a d o n l y   i d :   s t r i n g ; 
 
 
 
 	 	 / * * 
 
 	 	   *   T h e   s t a r t   a n d   e n d   i n d e x   o f   t h e   r e f e r e n c e   i n   t h e   { @ l i n k   C h a t R e q u e s t . p r o m p t   p r o m p t } 
 
 
 
 i n t e r f a c e   C h a t R e q u e s t   { 
 
 	 	 / * * 
 
 	 	   *   T h e   p r o m p t   a s   e n t e r e d   b y   t h e   u s e r . 
 
 	 	   * 
 
 	 	   *   I n f o r m a t i o n   a b o u t   r e f e r e n c e s   u s e d   i n   t h i s   r e q u e s t   i s   s t o r e d   i n   { @ l i n k   C h a t R e q u e s t . r e f e r e n c e s } 
 
 
 
 i n t e r f a c e   C h a t R e s p o n s e S t r e a m   { 
 
 	 	 / * * 
 
 	 	   *   P u s h   a   m a r k d o w n   p a r t   t o   t h i s   s t r e a m .   S h o r t - h a n d   f o r 
 
 	 	   *   ` p u s h ( n e w   C h a t R e s p o n s e M a r k d o w n P a r t ( v a l u e ) ) ` . 
 
 	 	   * 
 
 	 	   *   @ s e e   { @ l i n k   C h a t R e s p o n s e S t r e a m . p u s h } 
 
 
 
 i n t e r f a c e   C h a t R e s p o n s e F i l e T r e e   { 
 
 	 	 / * * 
 
 	 	   *   T h e   n a m e   o f   t h e   f i l e   o r   d i r e c t o r y . 
 
 	 	   * / 
 
 	 	 n a m e :   s t r i n g ; 
 
 
 
 	 	 / * * 
 
 	 	   *   A n   a r r a y   o f   c h i l d   f i l e   t r e e s ,   i f   t h e   c u r r e n t   f i l e   t r e e   i s   a   d i r e c t o r y . 
 
 	 	   * / 
 
 	 	 c h i l d r e n ? :   C h a t R e s p o n s e F i l e T r e e [ ] ; 
 
 	 } 
 
 
 
 i n t e r f a c e   C h a t L a n g u a g e M o d e l T o o l R e f e r e n c e   { 
 
 	 	 / * * 
 
 	 	   *   T h e   t o o l   n a m e .   R e f e r s   t o   a   t o o l   l i s t e d   i n   { @ l i n k   l m . t o o l s } 
 
 