This is a vanilla JavaScript prototype for the UltraRepo Agent AI Chat Assistant, using the Syncfusion EJ2 Interactive Chat UI control and Webpack.
The app features:
- An advanced AI Chat interface using Syncfusion's EJ2 Interactive Chat UI
- Splitter layout for responsive design
- An iframe-based App Panel to launch external apps or documentation (like Open WebUI)
- Modular folder structure with Webpack build support
- Node.js >= 16.x
- npm >= 8.x
- Python >= 3.9 (for serving via FastAPI)
- macOS (tested on Monterey and Ventura)
git clone https://github.com/UltraRepo/agent.git
cd agent
# Create a virtual environment
python3 -m venv venv
# Activate the virtual environment
source venv/bin/activate
# Install required Python packages
pip install -r requirements.txt
npm install
# Make sure your virtual environment is activated
source venv/bin/activate
# Start the FastAPI server on port 8008
uvicorn app:app --reload --port 8008
Open your browser and navigate to:
http://localhost:8008
npm run build
public/
- Static HTML, CSS, and JavaScript filespublic/images/
- Avatar and other UI imagessrc/
- Source JavaScript and CSS filesapp.py
- FastAPI server that serves the static files
- Syncfusion Chat UI Docs: https://ej2.syncfusion.com/documentation/chat-ui/getting-started
- Syncfusion Chat UI Examples: https://ej2.syncfusion.com/demos/#/tailwind3/chat-ui/chat-integration.html
- Webpack CLI Docs: https://webpack.js.org/api/cli/#commands
UltraRepo Agent is a modular AI chat and app panel prototype designed for integration into the UltraRepo architecture. It is built with vanilla JavaScript and Syncfusion's EJ2 Interactive Chat UI control, using a frontend-only build system (Webpack).
Feature | Status | Notes |
---|---|---|
Frontend-only build system | ✅ Yes | Webpack-based, self-contained build setup |
Vanilla JS / No framework | ✅ Yes | No React, Angular, or Vue — fully framework-agnostic |
Interactive Chat UI | ✅ Yes | Uses Syncfusion's EJ2 Interactive Chat UI control |
Dist folder for FastAPI | ✅ Yes | Compiles to dist/ , ready for FastAPI or static hosting |
FastAPI static mounting | ✅ Yes | Can be served using StaticFiles() in FastAPI |
Modular app placement | ✅ Yes | Designed to drop into /apps/frontend/ultrarepo-agent/ in UltraRepo |
Minimal dependencies | ✅ Yes | Uses only npm (JS) + uvicorn/fastapi (Python) |