# 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'
```
