widgettdc-api / ARCHITECTURE.md
Kraft102's picture
docs: update system architecture for production deployment 2025-12-13
e78514a
# WidgeTDC - Enterprise AI Platform Architecture
**Last Updated:** 2025-12-13
**Status:** βœ… PRODUCTION LIVE - Cloud Deployment Active
## System Overview
WidgeTDC is an Enterprise-grade Autonomous Intelligence Platform featuring:
- **Semantic Vector Database** with multi-provider embeddings
- **Autonomous Task Engine** with learning loops
- **Distributed Event System** for scalability
- **Production-ready Infrastructure** with monitoring and logging
- **Modern Frontend** with React 19 and Tailwind CSS v4
---
## πŸš€ Production Deployment (2025-12-13)
### Live URLs
| Service | Platform | URL |
|---------|----------|-----|
| **Frontend** | Vercel Edge | `https://matrix-frontend-claus-krafts-projects.vercel.app` |
| **Backend API** | HuggingFace Spaces | `https://kraft102-widgettdc-api.hf.space` |
### Cloud Infrastructure
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ PRODUCTION ARCHITECTURE β”‚
β”‚ "Headless Ghost" Pattern β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Browser ──▢ Vercel CDN ──▢ HuggingFace Spaces ──▢ Cloud Databases
β”‚ β”‚ β”‚
React 19 PWA Node.js 20 β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”
185 Widgets 63 MCP Tools β”‚ Redis β”‚
Zustand State Express API β”‚ Neo4j β”‚
β”‚ Neon PG β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```
### Database Layer
| Database | Provider | Purpose |
|----------|----------|---------|
| **Redis** | Redis Cloud (EU-North-1) | Cache, Sessions, Event Bus |
| **Neo4j** | AuraDB Cloud | Knowledge Graph (4274 nodes, 5252 rels) |
| **PostgreSQL** | Neon Serverless | Vector Store (pgvector), Prisma ORM |
| **SQLite** | sql.js (in-memory) | Fallback for HF Spaces free tier |
### AI/LLM Providers
| Provider | Use Case |
|----------|----------|
| Google Gemini Pro | Primary reasoning |
| OpenAI GPT-4 | Fallback, embeddings |
| Anthropic Claude | Analysis tasks |
| DeepSeek V3 | Code generation |
---
## Recent Updates (2025-12-13)
### βœ… HuggingFace Spaces Deployment Fixed
- **Dockerfile Optimized**: Skip Puppeteer Chromium download
- **Memory Limits**: Reduced to 512MB for free tier compatibility
- **package-lock.json**: Regenerated correct monorepo lockfile
- **Data Directories**: `/app/data/*` created with proper permissions
- **Environment Variables**: `HF_SPACE=true`, `DOCKER=true` set
### βœ… Frontend Widgets Fixed
- **Icon Imports**: Added missing `Target`, `Video` imports
- **DataSources**: Added `threatIntel` to SourceLink.tsx
- **useEffect Fix**: Removed undefined `width/height` from dependency array
- **185 Widgets**: All rendering correctly
### βœ… Previous Updates (2025-11-26)
- CSS Architecture rebuilt for Tailwind v4
- PowerShell scripts standardized (PSScriptAnalyzer compliant)
- Build system fully functional
---
## Architecture Diagram
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ FRONTEND (React 19) β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ Widget Board β”‚ β”‚ MCP Client β”‚ β”‚ Dashboard β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ WebSocket + REST API β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ BACKEND (Node.js + Express) β”‚
β”‚ β–Ό β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ API LAYER β”‚ β”‚
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
β”‚ β”‚ β”‚ MCP β”‚ β”‚ SRAG β”‚ β”‚ PAL β”‚ β”‚ AI β”‚ ... β”‚ β”‚
β”‚ β”‚ β”‚ Router β”‚ β”‚ API β”‚ β”‚ API β”‚ β”‚ Proxy β”‚ β”‚ β”‚
β”‚ β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ COGNITIVE LAYER β”‚ β”‚
β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
β”‚ β”‚ β”‚ Autonomous Agent β”‚ β”‚ UnifiedGraphRAG β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ Multi-hop RAG β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ Task Engineβ”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ & Learning β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
β”‚ β”‚ β”‚ Unified Memory System β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ Working β”‚ β”‚ Episodic β”‚ β”‚Proceduralβ”‚β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ Memory β”‚ β”‚ Memory β”‚ β”‚ Memory β”‚β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚ β”‚ β”‚
β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ DATA & EMBEDDING LAYER β”‚ β”‚
β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
β”‚ β”‚ β”‚ Embedding Service (Multi-Provider) β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ OpenAI β”‚ β”‚HuggingFace β”‚ β”‚Transformers.jsβ”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ 1536D β”‚ β”‚ 768D β”‚ β”‚ 384D β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ └─────────────┴────────────────┴─ Auto-select β”‚ β”‚ β”‚
β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚
β”‚ β”‚ β”‚ Generate embeddings β”‚ β”‚
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
β”‚ β”‚ β”‚ PgVectorStoreAdapter (pgvector) β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β€’ Auto-embedding generation β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β€’ Semantic text search β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β€’ Cosine similarity β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β€’ Namespace isolation β”‚ β”‚ β”‚
β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ EVENT & INTEGRATION LAYER β”‚ β”‚
β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
β”‚ β”‚ β”‚ Redis EventBus │◄──── Ingestion Pipeline β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ (Production) β”‚ β”‚ β€’ Data Sources (20+) β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ OR β”‚ β”‚ β€’ Browser History β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ In-Memory β”‚ β”‚ β€’ Email (Gmail, Outlook) β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ (Development) β”‚ β”‚ β€’ Cloud (Drive, OneDrive) β”‚ β”‚ β”‚
β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β€’ Social (Twitter, LinkedIn) β”‚ β”‚ β”‚
β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ PERSISTENCE LAYER β”‚
β”‚ β–Ό β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ PostgreSQL β”‚ β”‚ Redis β”‚ β”‚ Neo4j β”‚ β”‚
β”‚ β”‚ + pgvector β”‚ β”‚ Event Store β”‚ β”‚ Knowledge Graph β”‚ β”‚
β”‚ β”‚ β€’ Embeddings β”‚ β”‚ β€’ Pub/Sub β”‚ β”‚ β€’ Entities β”‚ β”‚
β”‚ β”‚ β€’ Documents β”‚ β”‚ β€’ Cache β”‚ β”‚ β€’ Relations β”‚ β”‚
β”‚ β”‚ β€’ Metadata β”‚ β”‚ β€’ Sessions β”‚ β”‚ β€’ Inference β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```
---
## Directory Structure
```
WidgeTDC/
β”œβ”€β”€ apps/
β”‚ β”œβ”€β”€ backend/ # Express.js backend
β”‚ β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”‚ β”œβ”€β”€ mcp/ # MCP protocol implementation
β”‚ β”‚ β”‚ β”œβ”€β”€ cognitive/ # AI agents & RAG
β”‚ β”‚ β”‚ β”œβ”€β”€ memory/ # Memory systems
β”‚ β”‚ β”‚ β”œβ”€β”€ ingestion/ # Data ingestion
β”‚ β”‚ β”‚ └── api/ # REST endpoints
β”‚ β”‚ └── package.json
β”‚ β”‚
β”‚ └── matrix-frontend/ # React 19 frontend βœ… BUILD FIXED
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ components/ # React components
β”‚ β”‚ β”œβ”€β”€ widgets/ # Widget implementations
β”‚ β”‚ └── mcp/ # MCP client
β”‚ β”œβ”€β”€ App.css # βœ… REBUILT - All keyframes fixed
β”‚ β”œβ”€β”€ App.tsx
β”‚ └── package.json
β”‚
β”œβ”€β”€ packages/
β”‚ └── shared/ # Shared types & utilities
β”‚ β”œβ”€β”€ types/
β”‚ └── utils/
β”‚
β”œβ”€β”€ scripts/ # βœ… UPDATED - PowerShell scripts
β”‚ β”œβ”€β”€ update_agent.ps1 # βœ… NEW - Agent updater
β”‚ β”œβ”€β”€ update_agent_github.ps1 # βœ… NEW - GitHub workflow updater
β”‚ β”œβ”€β”€ update_agent_readme.ps1 # βœ… NEW - README updater
β”‚ β”œβ”€β”€ build-shared.ps1
β”‚ β”œβ”€β”€ install-deepseek.ps1
β”‚ β”œβ”€β”€ setup-enterprise.ps1
β”‚ └── test_rag_flow.ps1
β”‚
β”œβ”€β”€ database/
β”‚ β”œβ”€β”€ migrations/ # SQL migrations
β”‚ └── schema.sql
β”‚
β”œβ”€β”€ .github/
β”‚ └── workflows/ # GitHub Actions
β”‚ β”œβ”€β”€ agent-*.yml # Agent workflows
β”‚ └── ci.yml
β”‚
β”œβ”€β”€ docs/ # Documentation
β”œβ”€β”€ tests/ # Test suites
└── dist/ # βœ… Build output (created successfully)
```
---
## Technology Stack
### Frontend
- **Framework**: React 19 (latest)
- **Build Tool**: Vite 6.4.1
- **Styling**: Tailwind CSS v4 (PostCSS)
- **State Management**: Zustand
- **Real-time**: WebSocket client
- **Testing**: Vitest + React Testing Library
### Backend
- **Runtime**: Node.js 20+
- **Framework**: Express.js
- **Language**: TypeScript (strict mode)
- **Real-time**: WebSocket (`ws` library)
- **MCP**: Custom implementation
### Database
- **Primary**: PostgreSQL 15+ with pgvector
- **Cache/Events**: Redis 7+
- **Graph**: Neo4j 5+ (optional)
- **Development**: SQLite (fallback)
### DevOps
- **Containerization**: Docker + Docker Compose
- **CI/CD**: GitHub Actions
- **Deployment**: Railway (configured)
- **Monitoring**: PM2 ecosystem
---
## Key Components
### 1. MCP (Model Context Protocol)
- **Location**: `apps/backend/src/mcp/`
- **Purpose**: Standardized AI agent communication
- **Features**:
- Tool registration and execution
- Resource management
- Event broadcasting
- WebSocket transport
### 2. UnifiedGraphRAG
- **Location**: `apps/backend/src/cognitive/UnifiedGraphRAG.ts`
- **Purpose**: Multi-hop semantic retrieval
- **Features**:
- Entity extraction
- Relation mapping
- Context-aware search
- Hybrid retrieval (vector + graph)
### 3. Autonomous Task Engine
- **Location**: `apps/backend/src/cognitive/AutonomousAgent.ts`
- **Purpose**: Self-directed task execution
- **Features**:
- Goal decomposition
- Learning from outcomes
- Dynamic replanning
- Memory integration
### 4. Widget System
- **Location**: `apps/matrix-frontend/src/widgets/`
- **Purpose**: Modular UI components
- **Features**:
- Dynamic loading
- MCP integration
- Drag-and-drop layout
- Settings persistence
---
## Build & Deployment Status
### βœ… Frontend Build
```bash
npm run build --prefix apps/matrix-frontend
# Status: βœ… SUCCESS (6.40s)
# Output: dist/ directory created
# Issues: None
```
### βœ… CSS Architecture
- **File**: `apps/matrix-frontend/App.css`
- **Status**: Completely rebuilt
- **Keyframes**: All properly structured
- **Tailwind**: v4 compatible (no @apply)
- **Animations**: All functional
### βœ… PowerShell Scripts
- **Location**: `scripts/`
- **Status**: PSScriptAnalyzer compliant
- **Issues**: None
---
## Configuration Files
### Build Configuration
- `vite.config.ts` - Vite build settings
- `tsconfig.json` - TypeScript compiler options
- `tailwind.config.js` - Tailwind CSS v4 config
- `postcss.config.js` - PostCSS plugins
### Runtime Configuration
- `ecosystem.config.js` - PM2 process management
- `docker-compose.yml` - Container orchestration
- `railway.json` - Railway deployment config
---
## Development Workflow
### Local Development
```bash
# Install dependencies
npm install
# Start backend
npm run dev:backend
# Start frontend (separate terminal)
npm run dev:frontend
# Run tests
npm test
```
### Production Build
```bash
# Build frontend
npm run build --prefix apps/matrix-frontend
# Build backend
npm run build --prefix apps/backend
# Start production server
npm start
```
---
## Security & Compliance
### Authentication
- JWT-based authentication
- Session management via Redis
- CORS configured for production
### Data Protection
- Encryption at rest (PostgreSQL)
- TLS for all network traffic
- Environment variable isolation
### Compliance
- GDPR-ready data handling
- Audit logging
- Data retention policies
---
## Monitoring & Observability
### Logging
- Structured JSON logs
- Log levels: ERROR, WARN, INFO, DEBUG
- Persistent storage in `logs/`
### Metrics
- PM2 monitoring
- Database connection pooling
- WebSocket connection tracking
### Health Checks
- `/health` endpoint
- Database connectivity
- Redis availability
- Memory usage
---
## Known Issues & Limitations
### βœ… Resolved
- ~~CSS build errors in App.css~~ **FIXED 2025-11-26**
- ~~PowerShell script warnings~~ **FIXED 2025-11-26**
- ~~Tailwind @apply compatibility~~ **FIXED 2025-11-26**
### Active
- None currently blocking
---
## Future Enhancements
### Planned Features
1. **Multi-tenant Support**: Workspace isolation
2. **Advanced Analytics**: Usage dashboards
3. **Plugin System**: Third-party widget support
4. **Mobile App**: React Native client
### Infrastructure
1. **Kubernetes**: Container orchestration
2. **Prometheus**: Metrics collection
3. **Grafana**: Visualization
4. **ELK Stack**: Log aggregation
---
## Contributing
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development guidelines.
## License
See [LICENSE](./LICENSE) for details.
---
**Architecture maintained by**: WidgeTDC Development Team
**Last reviewed**: 2025-11-26
**Next review**: 2025-12-26