mirror of
https://github.com/vxcontrol/pentagi.git
synced 2026-11-12 00:42:45 +00:00
- M5: replace hand-rolled unknown-typed markdown types with the official @tiptap/core exports (MarkdownToken/ParseHelpers/RendererHelpers) and drop both casts they forced on the fidelity-critical paths - M3: forward FormControl-injected id/aria-describedby/aria-invalid to the ProseMirror contenteditable (field<->label association + error announce) - M2: skip the redundant whole-document re-parse on mount (compare against the captured initialContent instead of the normalized getMarkdown()) - L1+L10: extract the toolbar + isSafeImageSrc to markdown-editor-toolbar.tsx and memo() it (parent re-renders per keystroke under RHF) - L2: delete dead autoFocus/hasToolbar props (zero consumers) - L3: drop dead match.index narrowing (required number under es2023 lib) - L4: own vite chunk for marked; drop stale tiptap-markdown chunk pattern - L8: TunedStarterKit / TunedTable (consistent Tuned* prefix) - L9: shouldExternalSync -> isExternalChange - L14: isSafeImageSrc data: allowlist narrowed to base64 raster formats (data:image/svg+xml can carry script) - L7: trim narration/restatement comments across module + tests 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