User Interfaces
Components in the Scala frontend package:
Components:
LinkViewer: Component for viewing and indexing content from GitHub repositoriesChatInterface: Component for chatting with the LLM about indexed repositories, handling message display and submission.IndexSelector: Component for choosing which repository index to query, with options to refresh or remove indices.StatusBar: Simple component displaying status messages to users.TabContainer: Component for switching between the Chat and Link Viewer tabs.
Services:
ContentService: Service that communicates with the backend API to fetch content, generate indices, and handle chat interactions.HttpClient: Low-level service handling HTTP requests and Server-Sent Events for streaming chat responses.
Models:
Models.scala: Contains data models used throughout the application likeChatMessage,IndexOption, and various request/response models.
Utilities:
IDGenerator: Utility for generating unique IDs for chat messages and other elements.Main.scala: Entry point that initializes the application, sets up event listeners, and creates the UI components.
Python Interface:
main.py: Implements an alternative frontend using Gradio with functionality for chatting with repositories, viewing content, and managing indices.style.css: Provides styling for the Gradio interface.
Gradio Interface
Laminar Interface