# RAG Admin Page Refactoring ## Status: Partially Refactored The large `page.tsx` (2,964 lines) has been partially split into smaller components. ## Structure ``` website/app/admin/rag/ ├── page.tsx # Main page (needs update to import components) ├── types.ts # Shared type definitions (150 lines) ├── components/ │ ├── index.ts # Component exports │ ├── CollectionsTab.tsx # Collections management (593 lines) │ ├── UploadTab.tsx # File upload (327 lines) │ ├── IngestionTab.tsx # Ingestion control (512 lines) │ └── DocumentsTab.tsx # Document browser (425 lines) └── wizard/ # Existing wizard subdirectory ``` ## Extracted Components | Component | Lines | Description | |-----------|-------|-------------| | CollectionsTab | 593 | Collection CRUD, CollectionCard | | UploadTab | 327 | File upload with drag & drop | | IngestionTab | 512 | Ingestion control, progress, history | | DocumentsTab | 425 | Document list, filtering, preview | ## Remaining in page.tsx - SearchTab (~230 lines) - MetricsTab (~110 lines) - SystemInfoTab (~350 lines) - Main component and tab navigation (~290 lines) ## TODO 1. Update `page.tsx` to import extracted components 2. Extract remaining tabs (SearchTab, MetricsTab, SystemInfoTab) 3. Add comprehensive tests ## Types All shared types are in `types.ts`: - Collection, CreateCollectionData - IngestionStatus, SearchResult - UploadResult, LiveProgress - IndexedStats, PendingFile - IndexedDocument, DocumentContent - SystemInfo, TabId ## Usage ```tsx import { CollectionsTab, UploadTab, IngestionTab, DocumentsTab } from './components' import type { Collection, IngestionStatus } from './types' ```