Screen Catalog
Complete reference for all routes, navigation paths, CTAs, and data dependencies.
Sentinel Frontend — Screen Catalog
Complete reference for all routes, navigation paths, CTAs, and data dependencies.
Route Summary
| # | Route | Page Title | Service | Auth |
|---|---|---|---|---|
| 1 | / |
Sentinel | — | Public |
| 2 | /login |
Welcome Back | Auth | Guest only |
| 3 | /register |
Create Account | Auth | Guest only |
| 4 | /dashboard |
Dashboard | Sentinel | Platform | Required |
| 5 | /nexus |
Dashboard | Nexus | Sentinel | Nexus | Required |
| 6 | /nexus?tab=analytics |
Analytics | Nexus | Sentinel | Nexus | Required |
| 7 | /nexus/upload |
Upload Documents | Nexus | Sentinel | Nexus | Required |
| 8 | /nexus/history |
Document History | Nexus | Sentinel | Nexus | Required |
| 9 | /nexus/insights/[jobId] |
{filename} | Nexus | Sentinel | Nexus | Required |
| 10 | /nexus/dashboard |
— (redirect) | Nexus | Required |
| 11 | /zen |
Zen | Sentinel | Zen | Required |
| 12 | /zen/chat/[sessionId] |
Zen | Sentinel | Zen | Required |
| 13 | /zen/agents |
Zen | Sentinel | Zen | Required |
| 14 | /zen/documents |
Zen | Sentinel | Zen | Required |
| 15 | /zen/search |
Zen | Sentinel | Zen | Required |
| 16 | /zen/settings |
Zen | Sentinel | Zen | Required |
1. Landing Page (/)
File: app/src/app/page.tsx (Client)
Sections:
- Hero with Sentinel branding and tagline
- Two service launch cards (Nexus / Zen)
- Auto-redirect to
/loginif unauthenticated
CTAs:
| Action | Destination |
|——–|————-|
| Launch Nexus | /nexus |
| Launch Zen | /zen |
2. Login (/login)
File: app/src/app/(auth)/login/page.tsx (Client)
Sections:
- Split layout: branded panel (left) + form (right)
- Email + password inputs with visibility toggle
- Remember me checkbox
- Session expired banner (
?expired=true)
CTAs:
| Action | Destination |
|——–|————-|
| Sign In | POST → /dashboard |
| Sign Up link | /register |
API: loginAction() server action
3. Register (/register)
File: app/src/app/(auth)/register/page.tsx (Client)
Sections:
- Full name, email, password, confirm password
- Role selector (Admin / Analyst / Viewer) with icons
- Team selector (Internal / External)
CTAs:
| Action | Destination |
|——–|————-|
| Create Account | POST → /login |
| Sign In link | /login |
API: registerAction() server action
4. Dashboard (/dashboard)
File: app/src/app/(dashboard)/page.tsx (Client)
Sections:
- Greeting with time-of-day
- Platform metrics (documents, conversations, success rate, tokens)
- Document processing pipeline status
- Service launcher cards (Nexus / Zen)
- Intelligence capabilities grid (6 cards)
- AI services platform health
- Service map with live health indicators
- 3D hologram (Three.js, canvas)
CTAs:
| Action | Destination | Service |
|——–|————-|———|
| Launch Nexus | /nexus | Nexus |
| Launch Zen | /zen | Zen |
| Portfolio Intelligence | /nexus | Nexus |
| Document Pipeline | /nexus/upload | Nexus |
| Financial AI Chat | /zen | Zen |
| AI Agent Config | /zen/agents | Zen |
| Knowledge Search | /zen/search | Zen |
| Client Reporting | /nexus/history | Nexus |
| Nexus (service map) | /nexus | Nexus |
| Zen (service map) | /zen | Zen |
| Agents (service map) | /zen/agents | Zen |
| Knowledge (service map) | /zen/documents | Zen |
API: getHealth(), getStatistics(), getAgents(), Discovery service
5. Nexus Dashboard (/nexus)
File: app/src/app/(dashboard)/nexus/page.tsx (Client + Suspense)
Tab: Documents (default)
- Greeting with pipeline description
- Command search bar (⌘K)
- Dashboard stats bar (documents, extractions, processing)
- Recent documents table (sortable, expandable)
- Activity feed sidebar
- Upload queue integration
Tab: Analytics (?tab=analytics)
- Sub-tabs: Overview / Pipeline / Costs
- Metrics cards (Total Documents, Success Rate, Confidence, Tokens)
- Pipeline stage visualization (11 stages)
- Quick action cards (View Documents, Needs Review, Failed Jobs)
- Upload Documents CTA
CTAs:
| Action | Destination |
|——–|————-|
| Upload Documents | /nexus/upload |
| Document row click | /nexus/insights/{jobId} |
| View All (documents) | /nexus/history |
| Analytics tab | /nexus?tab=analytics |
| Documents tab | /nexus |
| View Documents (analytics) | /nexus/history |
API: getJobs(), getDocuments(), getStatistics(), getJobDetailedStatus()
6. Nexus Upload (/nexus/upload)
File: app/src/app/(dashboard)/nexus/upload/page.tsx (Client)
Sections:
- Document type selector (PMS / AIF / MF radio buttons)
- File dropzone (drag-and-drop, PDF only, 50MB max)
- Upload queue with per-file status
- Optional password field for encrypted PDFs
- Confirmation dialog before processing
CTAs:
| Action | Destination |
|——–|————-|
| Process Documents | Confirmation → upload → /nexus/insights/{jobId} |
| Cancel | /nexus |
| File upload | Local file picker |
API: uploadDocument(), processDocument(), validateDocument()
7. Nexus History (/nexus/history)
File: app/src/app/(dashboard)/nexus/history/page.tsx (Client + Suspense)
Sections:
- Search bar with debounce (300ms)
- Status filter chips (all / pending / in_progress / success / failed / needs_review)
- Date range presets
- Documents table with sorting, pagination
- Batch action bar (delete / export / reprocess)
CTAs:
| Action | Destination |
|——–|————-|
| Document row click | /nexus/insights/{jobId} |
| Download Excel | Blob download |
| Reprocess | API call + refetch |
| Batch delete | API call + refetch |
| Batch export | Multiple blob downloads |
API: getJobs(), getJobDetailedStatus(), downloadExcel(), reprocessDocument(), deleteDocuments()
Polling: 5s interval when tab visible and docs processing.
8. Nexus Insights (/nexus/insights/[jobId])
File: app/src/app/(dashboard)/nexus/insights/[jobId]/page.tsx (Client, 1600+ lines)
Tab: Overview
- Document header with status badge + confidence meter
- Summary metrics (Market Value, Invested Value, P&L, XIRR)
- AI summary card
- Compact processing timeline
- Asset allocation pie chart
- Token usage breakdown
Tab: Extraction
- Securities data grid (expandable rows)
- Transactions data grid
- Low confidence alert banner
- PDF source annotations
Tab: Processing Stages
- Detailed pipeline timeline (11 stages)
- Per-stage token usage
- Audit log entries
PDF Panel (right sheet):
- Authenticated PDF viewer
- Annotation overlays
- Bidirectional linking (table row ↔ PDF region)
CTAs: | Action | Destination | |——–|————-| | Export to Excel | Blob download | | View PDF | Opens right panel | | Back | Previous page | | Reprocess (failed) | API call + refetch | | Row click | Highlights in PDF |
API: getJobDetailedStatus(), getExtraction(), getJobStages(), downloadExcel(), getDocumentFile()
Polling: 3s interval while status is pending or in_progress.
9. Nexus Dashboard Redirect (/nexus/dashboard)
File: app/src/app/(dashboard)/nexus/dashboard/page.tsx (Server)
Server-side redirect('/nexus?tab=analytics'). No UI rendered.
10. Zen Landing (/zen)
File: app/src/app/(dashboard)/zen/page.tsx (Client)
Sections:
- Hero with Financial AI Intelligence branding
- “Start New Conversation” button
- 6 suggested query cards (Portfolio, Holdings, Performance, Transactions, Compliance, Search)
- 3 AI agent cards (Portfolio Analyst, Risk Analyst, Wealth Classifier)
- 4 platform capability cards
CTAs:
| Action | Destination |
|——–|————-|
| Start New Conversation | Creates session → /zen/chat/{sessionId} |
| Suggested query click | Creates session with prompt → /zen/chat/{sessionId} |
API: createChatSession(), getAgents()
11. Zen Chat (/zen/chat/[sessionId])
File: app/src/app/(dashboard)/zen/chat/[sessionId]/page.tsx (Client)
Sections:
- Message thread (user/assistant with Markdown)
- Chat input with file upload and web search toggle
- Thinking indicator during AI response
- Sidebar toggle + context panel toggle
CTAs: | Action | Destination | |——–|————-| | Send message | API call (streamed response) | | Upload file | File picker → context document | | Web search toggle | Enables/disables web search mode | | Sidebar toggle | Shows/hides chat sidebar |
API: sendMessage(), getChatSession(), getSessionContext(), addDocumentToContext()
12. Zen Agents (/zen/agents)
File: app/src/app/(dashboard)/zen/agents/page.tsx (Client)
Sections:
- Agent card grid (responsive 1-2-3 columns)
- Configuration dialog (model, temperature, system prompt)
- Empty state with capability showcase
CTAs: | Action | Destination | |——–|————-| | Configure agent | Opens config dialog | | Save config | API call + refetch | | Refresh | Refetch agents |
API: getAgents(), updateAgent()
13. Zen Documents (/zen/documents)
File: app/src/app/(dashboard)/zen/documents/page.tsx (Client)
Sections:
- Storage usage indicator
- Document upload area (drag-drop)
- Document card grid with search
- Delete confirmation dialog
CTAs:
| Action | Destination |
|——–|————-|
| Upload document | File picker |
| Add to Chat | Creates/uses session → /zen/chat/{sessionId} |
| Delete document | Confirmation → API call |
API: getUploads(), uploadFile(), deleteUpload(), getStorageStats(), createChatSession()
14. Zen Search (/zen/search)
File: app/src/app/(dashboard)/zen/search/page.tsx (Client + Suspense, 900+ lines)
Sections:
- Search bar with suggestions
- Filter sidebar: date range, file type, source, entities
- Result cards with match percentage and snippets
- Highlighted search terms
- Pagination (load more)
CTAs: | Action | Destination | |——–|————-| | Search | Debounced query | | Filter toggle | Shows/hides sidebar | | View Source | External link | | Load more | Next page of results | | Quick tag | Pre-fills search |
API: search(), getSearchSuggestions(), searchDocuments()
URL State: q, sort, dateFrom, dateTo, fileTypes, sources, entities synced to query params.
15. Zen Settings (/zen/settings)
File: app/src/app/(dashboard)/zen/settings/page.tsx (Client)
Sections:
- Avatar with initials
- Editable name fields (first/last)
- Profile info: email, username, role, team
- Theme switcher card
- Action buttons
CTAs:
| Action | Destination |
|——–|————-|
| Edit profile | Inline edit mode |
| Save | API call |
| Theme switch | Updates theme |
| Switch Service | /dashboard |
| Sign Out | Logout → /login |
API: getCurrentUser(), updateUser()
CTA Flow Map
/login ──── Sign In ────→ /dashboard
│
┌────────────┼────────────┐
│ │ │
▼ ▼ ▼
/nexus /zen /zen/agents
│ │
┌─────┼─────┐ │
│ │ │ ▼
▼ ▼ ▼ /zen/chat/{id}
/nexus /nexus /nexus
/upload /history ?tab=analytics
│ │
▼ ▼
/nexus/insights/{jobId}
Layout Hierarchy
RootLayout (fonts, metadata, providers)
├── (auth)/layout.tsx
│ ├── /login
│ └── /register
└── (dashboard)/layout.tsx (session verification, user hydration, offline banner)
├── /dashboard
├── nexus/layout.tsx (NexusSidebar, processing indicator)
│ ├── /nexus
│ ├── /nexus/upload
│ ├── /nexus/history
│ └── /nexus/insights/[jobId]
└── zen/layout.tsx (ZenHeader, ChatSidebar, ContextPanel)
├── /zen
├── /zen/chat/[sessionId]
├── /zen/agents
├── /zen/documents
├── /zen/search
└── /zen/settings
Last updated: 2026-02-03