mirror of
https://github.com/vxcontrol/pentagi.git
synced 2026-08-27 19:29:57 -04:00
d2489fd2c7
The size-4 sweep stripped four icons the sweep had no right to touch, and they rendered at lucide's default 24px: the avatar's UserIcon and the theme switcher's Monitor/Sun/Moon in the sidebar user menu. The sweep assumed every listed container sizes its icons at any depth. Only Button/Toggle/CommandItem do, via [&_svg]. SidebarMenuButton and DropdownMenuItem use [&>svg], which reaches a DIRECT child only — and these four sit deeper, inside an AvatarFallback and inside TabsTrigger, so nothing sized them. Found by measuring rendered icon width across every route with the menus open, not by re-reading the selectors: the avatar icon was the only one a closed-menu pass could see. Verified after: no icon inside a button or menu row renders over 16px except EmptyMedia's, which is meant to be large. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PentAGI Frontend
A chat application built with React, TypeScript, and GraphQL that enables intelligent conversations with AI agents.
Features
- 💬 Real-time chat interface with AI agents
- 🤖 Multiple AI agent support and management
- 📊 Real-time terminal output monitoring
- 🎯 Task and subtask tracking system
- 🔍 Integrated search capabilities
- 📚 Vector store for knowledge base management
- 📸 Screenshot capture and management
- 🌓 Dark/Light theme support
- 📱 Responsive design (mobile, tablet, desktop)
- 🔐 Authentication system with multiple providers
- 🔄 Real-time updates via GraphQL subscriptions
- ⚡ High-performance React components
Tech Stack
- Framework: React 18 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- UI Components:
- shadcn/ui
- Radix UI primitives
- Lucide icons
- State Management:
- React Context
- Custom Hooks
- API Integration:
- GraphQL
- Apollo Client
- WebSocket subscriptions
- Type Safety: TypeScript
- Authentication: Multiple provider support
- Code Quality:
- ESLint
- Prettier
- TypeScript strict mode
Project Structure
src/ ├── components/ # Shared UI components │ ├── ui/ # Base UI components │ └── icons/ # SVG icons and logo ├── features/ # Feature-based modules │ ├── chat/ # Chat related components │ ├── authentication/ # Auth related components ├── hooks/ # Custom React hooks ├── lib/ # Utilities and configurations ├── graphql/ # GraphQL operations and types ├── models/ # TypeScript interfaces └── pages/ # Application routes
Key Components
Chat Interface
- Split view with messages and tools panels
- Resizable panels for desktop
- Mobile-optimized view with tabs
- Real-time message updates
Task System
- Real-time task tracking
- Subtask management
- Progress monitoring
- Status updates
Terminal
- Command output display
- Real-time updates
- Scrollable history
- Syntax highlighting
Vector Store
- Knowledge base integration
- Search capabilities
- Data management
Agent System
- Multi-agent support
- Agent status monitoring
- Agent communication logs
Development
Prerequisites
- Node.js 18+
- pnpm 10+
Installation
- Clone the repository
- Install dependencies: pnpm install
- Start the development server: pnpm run dev
Building for Production
pnpm run build
Environment Variables
Create a .env file in the root directory:
VITE_API_URL=your_api_url
Contributing
- Fork the repository
- Create your feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add some amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request