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

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

# Install dependencies
npm install

# Start backend
npm run dev:backend

# Start frontend (separate terminal)
npm run dev:frontend

# Run tests
npm test

Production Build

# 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 for development guidelines.

License

See LICENSE for details.


Architecture maintained by: WidgeTDC Development Team
Last reviewed: 2025-11-26
Next review: 2025-12-26