Codebase

Navigate the Codebase using the tree view. Use the filters to highlight where various files are grouped to aid understanding.

Getting Started Commands

Project Structure

Below is a short description of the key directories of the project to aid you when understanding where key files are located.

.github/ - This directory contains files related to GitHub actions and workflows for the project.
.github/workflows/ - This directory specifically contains YAML files that define the workflows for GitHub actions.
.github/workflows/publish.yaml - This file defines the workflow for publishing the project.
.gitignore - This file specifies which files or directories should be ignored by Git for the entire project.
embed/ - This directory contains files related to the embedding of the chat widget into other websites.
embed/.gitignore - This file specifies which files or directories should be ignored by Git when versioning this directory.
embed/index.tsx - This file is the entry point for the JavaScript code in the embed directory.
embed/package.json - This file lists the dependencies and scripts for the project in the embed directory.
embed/tsconfig.json - This file specifies the TypeScript compilation options for the project in the embed directory.
embed/tsconfig.node.json - This file specifies the Node.js modules to include in the TypeScript compilation for the project in the embed directory.
embed/vite.config.ts - This file configures Vite, a development server and build tool, for the project in the embed directory.
lib/ - This directory contains the main source code for the chat widget.
lib/.gitignore - This file specifies which files or directories should be ignored by Git when versioning this directory.
lib/index.html - This file is the HTML entry point for the chat widget.
lib/package.json - This file lists the dependencies and scripts for the project in the lib directory.
lib/src/ - This directory specifically contains the TypeScript source code for the chat widget.
lib/src/components/ - This directory contains the component files for the chat widget.
lib/src/components/Error.tsx - This file defines the Error component for handling errors in the chat widget.
lib/src/components/Icons.tsx - This file defines the Icons component for rendering icons in the chat widget.
lib/src/components/Search.tsx - This file defines the Search component for searching messages in the chat widget.
lib/src/components/useStreamingLLM.tsx - This file defines a custom hook for streaming language models in the chat widget.
lib/src/components/Widget.tsx - This file defines the main Widget component for rendering the chat widget.
lib/src/components/Window.tsx - This file defines the Window component for rendering the chat window.
lib/src/example.tsx - This file contains an example usage of the chat widget.
lib/src/index.tsx - This file is the entry point for the TypeScript code in the lib directory.
lib/tsconfig.json - This file specifies the TypeScript compilation options for the project in the lib directory.
lib/tsconfig.node.json - This file specifies the Node.js modules to include in the TypeScript compilation for the project in the lib directory.
lib/vite.config.ts - This file configures Vite for the project in the lib directory.
LICENSE - This file contains the license information for the project.
package-lock.json - This file is generated by npm and stores the exact versions of dependencies that were installed.
package.json - This file lists the dependencies and scripts for the entire project.
README.md - This file contains documentation and instructions for using the project.

Entrypoints

Below are files we identified as entrypoints for to the codebase. This is where the application starts and a good place to start when learning.

dist/chat-widget.iife.js - Path: /dist/chat-widget.iife.js
dist/index.js - Path: /dist/index.js