| # Comprehensive File Structure Recommendations for Integrated AI System | |
| ## Project Structure Overview | |
| ``` | |
| integrated-ai-system/ | |
| βββ README.md | |
| βββ package.json | |
| βββ tsconfig.json | |
| βββ .gitignore | |
| βββ .env.example | |
| βββ .env | |
| βββ docker-compose.yml | |
| βββ Dockerfile | |
| βββ docs/ | |
| β βββ api/ | |
| β βββ architecture/ | |
| β βββ deployment/ | |
| β βββ user-guide/ | |
| βββ src/ | |
| β βββ components/ | |
| β βββ services/ | |
| β βββ utils/ | |
| β βββ types/ | |
| β βββ hooks/ | |
| β βββ config/ | |
| β βββ tests/ | |
| βββ public/ | |
| βββ assets/ | |
| βββ data/ | |
| βββ scripts/ | |
| βββ config/ | |
| βββ dist/ | |
| ``` | |
| ## Detailed File Structure with Descriptions | |
| ### 1. Root Configuration Files | |
| #### package.json | |
| ```json | |
| { | |
| "name": "integrated-ai-system", | |
| "version": "1.0.0", | |
| "description": "Advanced integrated AI system with memory management and file processing", | |
| "main": "dist/index.js", | |
| "scripts": { | |
| "dev": "vite", | |
| "build": "tsc && vite build", | |
| "preview": "vite preview", | |
| "test": "jest", | |
| "test:watch": "jest --watch", | |
| "lint": "eslint src --ext .ts,.tsx", | |
| "lint:fix": "eslint src --ext .ts,.tsx --fix", | |
| "type-check": "tsc --noEmit", | |
| "docker:build": "docker build -t integrated-ai-system .", | |
| "docker:run": "docker run -p 3000:3000 integrated-ai-system" | |
| }, | |
| "dependencies": { | |
| "react": "^18.2.0", | |
| "react-dom": "^18.2.0", | |
| "@types/react": "^18.2.0", | |
| "@types/react-dom": "^18.2.0", | |
| "typescript": "^5.0.0", | |
| "vite": "^4.4.0", | |
| "axios": "^1.4.0", | |
| "lodash": "^4.17.21", | |
| "date-fns": "^2.30.0", | |
| "uuid": "^9.0.0", | |
| "zod": "^3.21.4", | |
| "zustand": "^4.3.9" | |
| }, | |
| "devDependencies": { | |
| "@vitejs/plugin-react": "^4.0.0", | |
| "@types/lodash": "^4.14.195", | |
| "@types/uuid": "^9.0.2", | |
| "jest": "^29.5.0", | |
| "@testing-library/react": "^13.4.0", | |
| "@testing-library/jest-dom": "^5.16.5", | |
| "eslint": "^8.45.0", | |
| "@typescript-eslint/eslint-plugin": "^6.0.0", | |
| "@typescript-eslint/parser": "^6.0.0", | |
| "prettier": "^3.0.0" | |
| } | |
| } | |
| ``` | |
| #### tsconfig.json | |
| ```json | |
| { | |
| "compilerOptions": { | |
| "target": "ES2020", | |
| "useDefineForClassFields": true, | |
| "lib": ["ES2020", "DOM", "DOM.Iterable"], | |
| "module": "ESNext", | |
| "skipLibCheck": true, | |
| "moduleResolution": "bundler", | |
| "allowImportingTsExtensions": true, | |
| "resolveJsonModule": true, | |
| "isolatedModules": true, | |
| "noEmit": true, | |
| "jsx": "react-jsx", | |
| "strict": true, | |
| "noUnusedLocals": true, | |
| "noUnusedParameters": true, | |
| "noFallthroughCasesInSwitch": true, | |
| "baseUrl": ".", | |
| "paths": { | |
| "@/*": ["src/*"], | |
| "@/components/*": ["src/components/*"], | |
| "@/services/*": ["src/services/*"], | |
| "@/utils/*": ["src/utils/*"], | |
| "@/types/*": ["src/types/*"], | |
| "@/hooks/*": ["src/hooks/*"], | |
| "@/config/*": ["src/config/*"] | |
| } | |
| }, | |
| "include": ["src"], | |
| "references": [{ "path": "./tsconfig.node.json" }] | |
| } | |
| ``` | |
| #### .gitignore | |
| ``` | |
| # Dependencies | |
| node_modules/ | |
| npm-debug.log* | |
| yarn-debug.log* | |
| yarn-error.log* | |
| # Production builds | |
| dist/ | |
| build/ | |
| # Environment variables | |
| .env | |
| .env.local | |
| .env.development.local | |
| .env.test.local | |
| .env.production.local | |
| # IDE files | |
| .vscode/ | |
| .idea/ | |
| *.swp | |
| *.swo | |
| # OS generated files | |
| .DS_Store | |
| .DS_Store? | |
| ._* | |
| .Spotlight-V100 | |
| .Trashes | |
| ehthumbs.db | |
| Thumbs.db | |
| # Logs | |
| logs/ | |
| *.log | |
| # Runtime data | |
| pids/ | |
| *.pid | |
| *.seed | |
| *.pid.lock | |
| # Coverage directory used by tools like istanbul | |
| coverage/ | |
| # Temporary folders | |
| tmp/ | |
| temp/ | |
| # Docker | |
| .dockerignore | |
| ``` | |
| #### .env.example | |
| ``` | |
| # API Configuration | |
| API_BASE_URL=http://localhost:3001 | |
| API_KEY=your_api_key_here | |
| # Memory System Configuration | |
| MEMORY_COMPRESSION_RATIO=0.7 | |
| MEMORY_RETENTION_THRESHOLD=0.8 | |
| MEMORY_CLEANUP_INTERVAL=300000 | |
| # File Processing Configuration | |
| MAX_FILE_SIZE=50MB | |
| SUPPORTED_EXTENSIONS=tsx,rs,js,py,cpp,html,css,md,pdf,json,csv,xml,yaml,png,jpg,mp4,wav | |
| PROCESSING_QUEUE_SIZE=100 | |
| # Performance Monitoring | |
| ENABLE_PERFORMANCE_LOGGING=true | |
| LOG_LEVEL=info | |
| METRICS_ENDPOINT=http://localhost:9090 | |
| # Security | |
| CORS_ORIGIN=* | |
| RATE_LIMIT_REQUESTS=1000 | |
| RATE_LIMIT_WINDOW=900000 | |
| ``` | |
| ### 2. Source Code Structure | |
| #### src/types/index.ts | |
| ```typescript | |
| export interface MemorySystemState { | |
| shortTerm: MemoryItem[]; | |
| longTerm: MemoryItem[]; | |
| archive: MemoryItem[]; | |
| compressionRatio: number; | |
| retentionScore: number; | |
| cyclicCleanup: number; | |
| } | |
| export interface MemoryItem { | |
| id: string; | |
| content: any; | |
| timestamp: Date; | |
| accessCount: number; | |
| importance: number; | |
| tags: string[]; | |
| metadata: Record<string, any>; | |
| } | |
| export interface FileProcessingState { | |
| queue: ProcessingFile[]; | |
| processed: ProcessedFile[]; | |
| categories: FileCategories; | |
| locations: Map<string, string>; | |
| encoding: Map<string, string>; | |
| } | |
| export interface ProcessingFile { | |
| id: string; | |
| name: string; | |
| path: string; | |
| size: number; | |
| type: string; | |
| status: 'pending' | 'processing' | 'completed' | 'error'; | |
| priority: number; | |
| } | |
| export interface ProcessedFile extends ProcessingFile { | |
| processedAt: Date; | |
| metadata: FileMetadata; | |
| content?: any; | |
| errors?: string[]; | |
| } | |
| export interface FileCategories { | |
| code: FileCategory; | |
| documents: FileCategory; | |
| data: FileCategory; | |
| multimedia: FileCategory; | |
| archives: FileCategory; | |
| executables: FileCategory; | |
| } | |
| export interface FileCategory { | |
| count: number; | |
| types: string[]; | |
| totalSize: number; | |
| lastUpdated: Date; | |
| } | |
| export interface FileMetadata { | |
| size: number; | |
| createdAt: Date; | |
| modifiedAt: Date; | |
| author?: string; | |
| encoding?: string; | |
| checksum: string; | |
| contentType: string; | |
| extractedText?: string; | |
| semanticTags?: string[]; | |
| } | |
| export interface PerformanceLogEntry { | |
| id: string; | |
| timestamp: Date; | |
| eventType: string; | |
| duration?: number; | |
| resourceUsage: ResourceUsage; | |
| status: 'success' | 'failure' | 'warning'; | |
| details: Record<string, any>; | |
| } | |
| export interface ResourceUsage { | |
| cpu: number; | |
| memory: number; | |
| diskIO: number; | |
| networkIO: number; | |
| } | |
| ``` | |
| #### src/config/fileTypes.json | |
| ```json | |
| { | |
| "categories": { | |
| "code": { | |
| "extensions": [ | |
| "tsx", "ts", "jsx", "js", "py", "cpp", "c", "h", "java", "kt", | |
| "go", "php", "rb", "pl", "lua", "dart", "R", "jl", "f", "vhd", | |
| "sv", "asm", "wasm", "html", "css", "scss", "less", "vue", "svelte", | |
| "sql", "sh", "bash", "ps1", "bat", "cmd", "swift", "m" | |
| ], | |
| "mimeTypes": [ | |
| "text/javascript", "text/typescript", "text/x-python", | |
| "text/x-c", "text/x-java-source", "text/html", "text/css" | |
| ] | |
| }, | |
| "documents": { | |
| "extensions": [ | |
| "md", "pdf", "docx", "doc", "txt", "rtf", "odt", "epub", "tex", | |
| "xlsx", "xls", "ods", "pptx", "ppt", "odp", "log", "nfo" | |
| ], | |
| "mimeTypes": [ | |
| "application/pdf", "text/plain", "text/markdown", | |
| "application/vnd.openxmlformats-officedocument.wordprocessingml.document", | |
| "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
| ] | |
| }, | |
| "data": { | |
| "extensions": [ | |
| "json", "csv", "xml", "yaml", "yml", "toml", "ini", "parquet", | |
| "avro", "orc", "sqlite", "db", "hdf5", "h5", "feather", "pickle", | |
| "pkl", "geojson", "topojson", "gpx", "kml", "rdf", "ttl", "graphml" | |
| ], | |
| "mimeTypes": [ | |
| "application/json", "text/csv", "application/xml", "text/yaml", | |
| "application/x-sqlite3" | |
| ] | |
| }, | |
| "multimedia": { | |
| "extensions": [ | |
| "png", "jpg", "jpeg", "gif", "bmp", "tiff", "webp", "svg", "ico", | |
| "psd", "ai", "eps", "raw", "dng", "heic", "avif", "mp3", "wav", | |
| "aac", "flac", "ogg", "m4a", "wma", "aiff", "opus", "mp4", "mov", | |
| "avi", "wmv", "flv", "webm", "mkv", "3gp", "obj", "fbx", "gltf", | |
| "glb", "stl", "dae", "blend", "ttf", "otf", "woff", "woff2" | |
| ], | |
| "mimeTypes": [ | |
| "image/png", "image/jpeg", "image/gif", "image/svg+xml", | |
| "audio/mpeg", "audio/wav", "video/mp4", "video/webm", | |
| "font/ttf", "font/otf" | |
| ] | |
| }, | |
| "archives": { | |
| "extensions": [ | |
| "zip", "tar", "gz", "rar", "7z", "bz2", "xz", "iso", "dmg" | |
| ], | |
| "mimeTypes": [ | |
| "application/zip", "application/x-tar", "application/gzip", | |
| "application/x-rar-compressed" | |
| ] | |
| }, | |
| "executables": { | |
| "extensions": [ | |
| "exe", "dll", "so", "dylib", "apk", "deb", "rpm" | |
| ], | |
| "mimeTypes": [ | |
| "application/x-executable", "application/x-sharedlib", | |
| "application/vnd.android.package-archive" | |
| ] | |
| } | |
| }, | |
| "security": { | |
| "allowedExecutables": false, | |
| "maxFileSize": "50MB", | |
| "quarantineExtensions": ["exe", "dll", "bat", "cmd", "scr"], | |
| "scanForMalware": true | |
| } | |
| } | |
| ``` | |
| ### 3. Documentation Files | |
| #### docs/README.md | |
| ```markdown | |
| # Integrated AI System Documentation | |
| ## Overview | |
| This documentation provides comprehensive information about the Integrated AI System, including architecture, API references, deployment guides, and user manuals. | |
| ## Documentation Structure | |
| - **API Documentation**: Detailed API endpoints and usage examples | |
| - **Architecture**: System design and component interactions | |
| - **Deployment**: Installation and deployment instructions | |
| - **User Guide**: End-user documentation and tutorials | |
| ## Quick Start | |
| 1. [Installation Guide](deployment/installation.md) | |
| 2. [Configuration](deployment/configuration.md) | |
| 3. [API Reference](api/endpoints.md) | |
| 4. [User Guide](user-guide/getting-started.md) | |
| ``` | |
| #### docs/api/endpoints.md | |
| ```markdown | |
| # API Endpoints Documentation | |
| ## Memory System API | |
| ### GET /api/memory/status | |
| Returns the current status of the memory system. | |
| **Response:** | |
| ```json | |
| { | |
| "shortTermCount": 150, | |
| "longTermCount": 1200, | |
| "archiveCount": 5000, | |
| "compressionRatio": 0.75, | |
| "retentionScore": 0.82, | |
| "lastCleanup": "2024-01-15T10:30:00Z" | |
| } | |
| ``` | |
| ### POST /api/memory/store | |
| Stores a new memory item. | |
| **Request Body:** | |
| ```json | |
| { | |
| "content": "Memory content", | |
| "importance": 0.8, | |
| "tags": ["important", "user-interaction"], | |
| "metadata": { | |
| "source": "user-input", | |
| "context": "conversation" | |
| } | |
| } | |
| ``` | |
| ## File Processing API | |
| ### POST /api/files/upload | |
| Uploads and processes a file. | |
| **Request:** | |
| - Multipart form data with file | |
| - Optional metadata in JSON format | |
| **Response:** | |
| ```json | |
| { | |
| "fileId": "uuid-string", | |
| "status": "processing", | |
| "estimatedTime": "30s", | |
| "category": "document" | |
| } | |
| ``` | |
| ### GET /api/files/{fileId}/status | |
| Returns the processing status of a file. | |
| ### GET /api/files/categories | |
| Returns file processing statistics by category. | |
| ``` | |
| #### docs/architecture/system-design.md | |
| ```markdown | |
| # System Architecture | |
| ## Overview | |
| The Integrated AI System follows a modular, event-driven architecture designed for scalability and maintainability. | |
| ## Core Components | |
| ### 1. Memory Management System | |
| - **Short-term Memory**: Fast access for current session data | |
| - **Long-term Memory**: Persistent storage for important information | |
| - **Archive**: Compressed historical data | |
| - **Compression Engine**: Intelligent data compression and retention | |
| ### 2. File Processing Engine | |
| - **Asynchronous Queue**: Non-blocking file processing | |
| - **Content Analysis**: Intelligent categorization and metadata extraction | |
| - **Multi-format Support**: Handles diverse file types | |
| - **Security Scanning**: Malware detection and quarantine | |
| ### 3. Performance Monitoring | |
| - **Real-time Metrics**: CPU, memory, and I/O monitoring | |
| - **Event Logging**: Structured logging for all system events | |
| - **Anomaly Detection**: Automatic detection of performance issues | |
| ## Data Flow | |
| 1. Input β Validation β Processing Queue | |
| 2. Processing β Content Analysis β Categorization | |
| 3. Storage β Memory System β Indexing | |
| 4. Retrieval β Search β Response | |
| ## Security Considerations | |
| - Input validation and sanitization | |
| - File type restrictions and scanning | |
| - Access control and authentication | |
| - Data encryption at rest and in transit | |
| ``` | |
| ### 4. Configuration and Scripts | |
| #### docker-compose.yml | |
| ```yaml | |
| version: '3.8' | |
| services: | |
| app: | |
| build: . | |
| ports: | |
| - "3000:3000" | |
| environment: | |
| - NODE_ENV=production | |
| - API_BASE_URL=http://api:3001 | |
| depends_on: | |
| - api | |
| - redis | |
| - postgres | |
| volumes: | |
| - ./data:/app/data | |
| api: | |
| build: ./api | |
| ports: | |
| - "3001:3001" | |
| environment: | |
| - DATABASE_URL=postgresql://user:password@postgres:5432/aidb | |
| - REDIS_URL=redis://redis:6379 | |
| depends_on: | |
| - postgres | |
| - redis | |
| postgres: | |
| image: postgres:15 | |
| environment: | |
| - POSTGRES_DB=aidb | |
| - POSTGRES_USER=user | |
| - POSTGRES_PASSWORD=password | |
| volumes: | |
| - postgres_data:/var/lib/postgresql/data | |
| redis: | |
| image: redis:7-alpine | |
| volumes: | |
| - redis_data:/data | |
| prometheus: | |
| image: prom/prometheus | |
| ports: | |
| - "9090:9090" | |
| volumes: | |
| - ./config/prometheus.yml:/etc/prometheus/prometheus.yml | |
| grafana: | |
| image: grafana/grafana | |
| ports: | |
| - "3001:3000" | |
| environment: | |
| - GF_SECURITY_ADMIN_PASSWORD=admin | |
| volumes: | |
| - grafana_data:/var/lib/grafana | |
| volumes: | |
| postgres_data: | |
| redis_data: | |
| grafana_data: | |
| ``` | |
| #### scripts/setup.sh | |
| ```bash | |
| #!/bin/bash | |
| # Setup script for Integrated AI System | |
| echo "Setting up Integrated AI System..." | |
| # Check Node.js version | |
| if ! command -v node &> /dev/null; then | |
| echo "Node.js is required but not installed. Please install Node.js 18 or higher." | |
| exit 1 | |
| fi | |
| # Install dependencies | |
| echo "Installing dependencies..." | |
| npm install | |
| # Setup environment variables | |
| if [ ! -f .env ]; then | |
| echo "Creating environment file..." | |
| cp .env.example .env | |
| echo "Please edit .env file with your configuration" | |
| fi | |
| # Create necessary directories | |
| mkdir -p data/{uploads,processed,logs} | |
| mkdir -p dist | |
| mkdir -p tmp | |
| # Set permissions | |
| chmod +x scripts/*.sh | |
| # Build the project | |
| echo "Building project..." | |
| npm run build | |
| echo "Setup complete! Run 'npm run dev' to start development server." | |
| ``` | |
| ### 5. Testing Files | |
| #### src/tests/memory.test.ts | |
| ```typescript | |
| import { describe, it, expect, beforeEach } from '@jest/globals'; | |
| import { MemorySystem } from '../services/MemorySystem'; | |
| import { MemoryItem } from '../types'; | |
| describe('MemorySystem', () => { | |
| let memorySystem: MemorySystem; | |
| beforeEach(() => { | |
| memorySystem = new MemorySystem(); | |
| }); | |
| it('should store memory items correctly', () => { | |
| const item: MemoryItem = { | |
| id: '1', | |
| content: 'Test memory', | |
| timestamp: new Date(), | |
| accessCount: 0, | |
| importance: 0.8, | |
| tags: ['test'], | |
| metadata: {} | |
| }; | |
| memorySystem.store(item); | |
| expect(memorySystem.getShortTermCount()).toBe(1); | |
| }); | |
| it('should compress memories when threshold is reached', () => { | |
| // Add multiple items to trigger compression | |
| for (let i = 0; i < 100; i++) { | |
| const item: MemoryItem = { | |
| id: i.toString(), | |
| content: `Test memory ${i}`, | |
| timestamp: new Date(), | |
| accessCount: 0, | |
| importance: Math.random(), | |
| tags: ['test'], | |
| metadata: {} | |
| }; | |
| memorySystem.store(item); | |
| } | |
| memorySystem.compress(); | |
| expect(memorySystem.getLongTermCount()).toBeGreaterThan(0); | |
| }); | |
| }); | |
| ``` | |
| #### jest.config.js | |
| ```javascript | |
| module.exports = { | |
| preset: 'ts-jest', | |
| testEnvironment: 'jsdom', | |
| setupFilesAfterEnv: ['<rootDir>/src/tests/setup.ts'], | |
| moduleNameMapping: { | |
| '^@/(.*)$': '<rootDir>/src/$1', | |
| }, | |
| collectCoverageFrom: [ | |
| 'src/**/*.{ts,tsx}', | |
| '!src/**/*.d.ts', | |
| '!src/tests/**/*', | |
| ], | |
| coverageThreshold: { | |
| global: { | |
| branches: 80, | |
| functions: 80, | |
| lines: 80, | |
| statements: 80, | |
| }, | |
| }, | |
| }; | |
| ``` | |
| This comprehensive file structure provides a solid foundation for the integrated AI system with proper organization, documentation, testing, and deployment configurations. | |