mirror of
https://github.com/vxcontrol/pentagi.git
synced 2026-11-04 04:54:04 +00:00
- Send `sources[]` (was single `source`) to /resources/copy, /resources/move and /files/to-resources so multi-select operations execute in one DB transaction; replace the per-feature 409 aggregation state and the now-unused `resources-conflict-dialog` with the shared `useOverwriteAction` workflow returning `OverwriteOutcome`. - Extend `FileManager` with `emptyAreaActions` (right-click context menu over the tree's empty area), `appliesToFiles` filter (companion to `appliesToDirs`), `onActiveRowChange` focus reporting and row-level external-file drop (`onExternalFileDrop`). - `useFilesDragAndDrop`: capture-phase `onDropCapture` resets the internal counter / `isDragging` flag before any descendant claims the drop with `stopPropagation`, fixing the page-level upload overlay staying stuck after a row-level drop. - `useResourcesUpload` gains `defaultDir` (read via ref so `uploadFiles` stays reference-stable) and `openFilePickerForDir` so toolbar / sidebar / CTA pickers upload into the focused folder by default and per-row "Upload here" actions can target a specific directory. Co-authored-by: Cursor <cursoragent@cursor.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