RookeryOS — Platform Admin Console
app.agentworksstudio.com — The command center for the agentic workforce
Overview
The Platform Admin Console is the web interface for managing the entire RookeryOS platform. It's a React 19 single-page application that provides role-based access for platform administrators, tenant administrators, and end users.
URL: app.agentworksstudio.com Tech: React 19 + TypeScript + Vite + Tailwind CSS Container: nginx:alpine serving static assets on port 8080
Architecture
┌─────────────────────────────────────────────────────────────┐
│ Platform Admin Console (React 19 SPA) │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ Role-Based Routing │ │
│ │ │ │
│ │ /admin/* Platform Admin (system-wide) │ │
│ │ /tenant-admin/* Tenant Admin (own org) │ │
│ │ /user/* End User (personal workspace) │ │
│ │ /factory/* Agent Factory (create agents) │ │
│ │ │ │
│ │ Public: /login, /signup, /reset-password, etc. │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Mission │ │ Workspace│ │ Bridge │ │ Agent │ │
│ │ Control │ │ Tools │ │ Protocol │ │ Factory │ │
│ │ │ │ │ │ │ │ │ │
│ │ Overview │ │ Prism │ │ Beacons │ │ Templates│ │
│ │ Team │ │ Lighthouse│ │ Dashboard│ │ Configure│ │
│ │ Budgets │ │ Calendar │ │ DayShift │ │ Spinup │ │
│ │ Credits │ │ Tasks │ │ Policy │ │ Deploy │ │
│ │ Goals │ │ CRM │ │ Prism │ │ │ │
│ │ Warroom │ │ Content │ │ │ │ │ │
│ │ Lighthouse│ │ Social │ │ │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ Real-time: Socket.IO WebSocket │
│ Auth: JWT with refresh tokens │
│ API: Proxy to api.agentworksstudio.com │
└─────────────────────────────────────────────────────────────┘
User Roles & Access
Platform Admin (/admin/*)
Full system access. Can see all tenants, agents, and infrastructure.
Pages:
| Page | Path | Purpose |
|---|---|---|
| Dashboard | /admin | System overview with key metrics |
| Tenants | /admin/tenants | Multi-tenant organization management |
| Agents | /admin/agents | Global agent fleet management |
| Agent Detail | /admin/agents/:id | Individual agent configuration |
| Agent Learning | /admin/agents/:id/learning | AI training dashboard |
| Pod Fleet | /admin/pod-fleet | Kubernetes pod infrastructure monitoring |
| Revenue | /admin/revenue | Revenue analytics and billing |
| Health | /admin/health | System health monitoring |
| Settings | /admin/settings | Platform-wide configuration |
| Support Desk | /admin/support | Support ticket management |
| Marketplace | /admin/marketplace | Plugin marketplace management |
| GPU Dashboard | /admin/gpu | GPU resource monitoring |
| Audit Log | /admin/audit-log | System audit trails |
| Billing Control | /admin/billing | Billing and subscription management |
| System Config | /admin/system-config | Infrastructure configuration |
| Data Export | /admin/data-export | Data export tools |
| Deployment Status | /admin/deployment | Deployment pipeline status |
| Cron Schedules | /admin/cron | Scheduled job management |
| Scheduled Reports | /admin/reports | Report generation and delivery |
| Content Factory | /admin/content-factory | Content generation management |
| LoRA Adapters | /admin/lora | LoRA adapter management |
| Training Data | /admin/training-data | Training data browser |
| Global Users | /admin/users | Cross-tenant user management |
| Connector Health | /admin/connectors | API connector status |
| Phone Numbers | /admin/phone-numbers | Voice service numbers |
| Ambassador KPIs | /admin/ambassador-kpis | Ambassador performance metrics |
| Founders Circle | /admin/founders-circle | Founders Circle management |
Mission Control (/admin/mission-control/*)
The business command center — a real-time dashboard for running the business.
| Page | Purpose |
|---|---|
| Overview | Executive dashboard with key metrics |
| Team | Team member management |
| Documents | Document management |
| Virtual Office | Digital workspace |
| Projects | Project management |
| Memory | Agent memory browser |
| Budgets | Financial oversight |
| Credits | LLM credit usage |
| Heartbeats | Agent health monitoring |
| Goals | OKR tracking |
| Warroom | Crisis management |
| Campaigns | Marketing campaigns |
| Agent Metrics | Agent performance analytics |
| Lighthouse | Knowledge base health |
| Social Inbox | Social media management |
| Content Planner | Content calendar |
| Audit Dossier | Security audit status |
Workspace (/admin/workspace/*)
Admin's personal productivity tools.
| Page | Purpose |
|---|---|
| Prism | The workflow home — 5 tabs: Projects | Tasks | Beacons | Stickies | Schedule (see below) |
| Lighthouse | Knowledge base viewer |
| Assessment | Navigator Lab assessments |
| Calendar | Scheduling |
| Notes | Note-taking |
| CRM | Customer relationship management |
| Content Factory | Content generation |
| Social Studio | Social media management |
| Webinars | Webinar management |
| Recordings | Screen/audio recordings |
| Channels | Communication channels |
| Integrations | Third-party connections |
Prism IA (AWS 3.0 M7-W8): there are no separate Workflows or beacon-Schedule nav entries — workflow canvases (beacon builder) and the beacon schedule are tabs inside Prism. Tasks and Stickies are likewise Prism tabs. Retired routes redirect:
workspace/workflow-canvas→prism?tab=beacons,workspace/prism-schedule→prism?tab=schedule,workspace/stickies→prism. (The workspace Schedules page that remains is content-production scheduling — webinars/demos/shorts — not workflow beacons.)
Bridge Protocol (/admin/bridge/*)
The assessment-to-proposal pipeline.
| Page | Purpose |
|---|---|
| Beacon Board | Pain point visualization |
| Bridge Dashboard | Pipeline overview |
| Day Shift View | Daily task management |
| Policy Shaping | Assessment policy configuration |
| Prism Dashboard | Rich document dashboard |
Tenant Admin (/tenant-admin/*)
Tenant-scoped access. Can manage own organization's agents, team, and billing.
| Page | Purpose |
|---|---|
| Dashboard | Tenant overview |
| Agents | Agent fleet management |
| Team | Team member management |
| Billing | Subscription management |
| Credits | LLM credit usage |
| Settings | Tenant configuration |
| Knowledge | Knowledge base management |
| Integrations | Third-party connections |
| Support | Support ticket submission |
| Marketplace | Plugin marketplace |
| Webhooks | Webhook configuration |
| Avatar Onboarding | Avatar setup wizard |
User (/user/*)
End user access — personal workspace and agent interactions.
| Page | Purpose |
|---|---|
| Dashboard | Personal workspace |
| Agent Workspace | Individual agent interaction |
| Tasks | Personal task management |
| Calendar | Personal scheduling |
| Communications | Message center |
| Contacts | Contact management |
| Support | Support access |
| Knowledge Base | Access to knowledge docs |
| Agent Delegations | Task delegation to agents |
Agent Factory (/factory/*)
The agent creation wizard.
| Page | Purpose |
|---|---|
| Templates | Agent template library |
| Configure | Agent customization form |
| Spinup Progress | Agent deployment tracking |
| Fabrication Progress | Agent creation progress |
| Deploy Confirm | Final deployment confirmation |
| Bridge Results | Assessment results integration |
Key Components
AppLayout
The main layout with sidebar navigation:
┌─────────────────────────────────────────────┐
│ Header (logo, user menu, notifications) │
├──────────┬──────────────────────────────────┤
│ │ │
│ Sidebar │ Main Content Area │
│ │ │
│ • Nav │ (Route-based pages) │
│ items │ │
│ • Agent │ │
│ list │ │
│ • Status │ │
│ │ │
├──────────┴──────────────────────────────────┤
│ Global Capture Bar (recording controls) │
└─────────────────────────────────────────────┘
Prism — The Workflow Home
Prism (/admin/workspace/prism, /tenant-admin/workspace/prism) is the unified workspace for the canonical flow Create Project → Assign Tasks → Develop Beacons → Arm Schedule, with five tabs:
| Tab | Purpose |
|---|---|
| Projects | Project pages (1:1 with projects) — TipTap block editor with table/board/gallery views |
| Tasks | Task CRUD + kanban |
| Beacons | Woven beacon canvases (project, bound patterns, armed schedule, last run) — opens the canvas builder with the 9-pattern picker, Run-chain, and per-node cron Arm/Disarm |
| Stickies | Quick notes (project-linked) |
| Schedule | Upcoming beacon cron runs + past executions, drag-to-reschedule, session-health indicators |
Page blocks include text/headings/lists, TaskBlock, TaskBoardBlock, CodeBlock, AgentSyncBlock, BeaconBlock (canvas embed), LighthouseBlock, image, callout, and divider. Slash Commands: type / in the editor for a command palette with all block types. Full reference: docs/platform/prism.md.
TomChatPanel
Platform admin's personal chat with Tom (CEO's agent):
- Live avatar display (AvatarPanel)
- Real-time chat with agent
- Opens on console startup
- Integrated voice pipeline
Voice Components
| Component | Purpose |
|---|---|
| VoicePipeline | WebRTC voice call interface |
| VoicePipelineSettings | Voice configuration |
| SonarRecorder | Audio recording with real-time processing |
| WorkflowRecorder | Screen recording for workflow capture |
Capture System
The Global Capture Bar provides screen and audio recording:
GlobalCaptureBar
├── Spyglass (screen recording)
│ Records browser tab + actions
│ Produces workflow recordings
│
└── Sonar (audio recording)
Records voice via WebRTC
Transcribes via STT service
Stores in Lighthouse
Authentication Flow
1. User navigates to app.agentworksstudio.com
2. Unauthenticated → redirect to /login
3. Login form → POST /auth/login
4. Server validates → JWT (accessToken + refreshToken)
5. Client stores tokens (httpOnly cookie or localStorage)
6. Role-based redirect:
├── platform_admin → /admin
├── tenant_admin → /tenant-admin
└── user → /user
7. Every API call includes Authorization: Bearer <token>
8. Token refresh on 401 response
Smart Routing
After login, the app determines the best destination:
// Role + tier → destination
if (role === 'platform_admin') redirect('/admin');
if (role === 'tenant_admin') redirect('/tenant-admin');
if (hasActivePod) redirect(`/user/agent-workspace/${podId}`);
else redirect('/user');
Real-Time Features
Socket.IO Integration
// Connection
const socket = io('https://api.agentworksstudio.com', {
auth: { token: accessToken },
transports: ['websocket']
});
// Events
socket.on('maintenance-mode', (data) => ...);
socket.on('hitl-alert', (data) => ...); // Human-in-the-Loop
socket.on('agent-status', (data) => ...); // Agent health
socket.on('pod-update', (data) => ...); // Pod lifecycle
WebSocket Namespaces
| Namespace | Purpose |
|---|---|
/ | General updates, maintenance mode |
/hitl | Human-in-the-Loop authentication alerts |
/agent | Agent status and metrics |
/voice | Voice pipeline events |
Nginx Configuration
The console runs behind nginx in the Docker container:
server {
listen 8080;
root /usr/share/nginx/html;
# SPA fallback
location / {
try_files $uri $uri/ /index.html;
}
# API proxy
location /api/ {
proxy_pass https://api.agentworksstudio.com;
proxy_set_header Host api.agentworksstudio.com;
}
# WebSocket proxy
location /socket.io/ {
proxy_pass https://api.agentworksstudio.com;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# GPU proxy (with auth)
location /api/gpu/ {
proxy_pass http://gpu-service:8000;
proxy_set_header X-Internal-Key $internal_key;
proxy_set_header X-Tenant-Id $tenant_id;
}
}
Build & Deploy
Local Development
cd apps/console
pnpm dev # Start dev server on localhost:3000
# API proxy → localhost:3001
Production Build
# Docker multi-stage build
docker build -t aw2-console apps/console/
# Or via Vite directly
cd apps/console && pnpm build
# Output: dist/ directory with static assets
GKE Deployment
# Apply K8s resources
kubectl apply -f infrastructure/k8s/platform/console.yaml
# Rolling restart
kubectl rollout restart deployment/aw2-console -n platform
# Check status
kubectl get pods -n platform | grep console
kubectl logs -f deployment/aw2-console -n platform
File Locations
apps/console/
├── src/
│ ├── App.tsx # Main router
│ ├── main.tsx # Entry point
│ ├── index.css # Tailwind base
│ ├── lib/role-maps.ts # Role-based routing
│ ├── components/ # Shared components
│ │ ├── AppLayout.tsx # Main layout + sidebar
│ │ ├── ProtectedRoute.tsx # Route guard
│ │ ├── GlobalCaptureBar.tsx # Recording controls
│ │ ├── SonarRecorder.tsx # Audio recorder
│ │ ├── WorkflowRecorder.tsx # Screen recorder
│ │ ├── AgentSidebarList.tsx # Agent nav list
│ │ ├── AvatarPanel.tsx # Avatar interface
│ │ ├── TomChatPanel.tsx # Admin chat
│ │ ├── VoicePipeline.tsx # Voice interface
│ │ ├── CreditGauge.tsx # Credit display
│ │ ├── OnboardingWizard.tsx # New user wizard
│ │ └── prism/ # Rich text editor
│ │ ├── CommandPalette.tsx
│ │ ├── SlashMenu.tsx
│ │ └── blocks/ # Custom blocks
│ ├── contexts/
│ │ └── CaptureContext.tsx # Global capture state
│ ├── hooks/
│ │ ├── useAuth.tsx # Authentication
│ │ ├── useApi.tsx # API client
│ │ ├── useAssessmentVoice.ts # Voice assessments
│ │ ├── useVoicePipeline.ts # Voice calls
│ │ └── useWebRTCVoice.ts # WebRTC audio
│ └── pages/
│ ├── admin/ # Platform admin
│ │ ├── mission-control/ # Business ops
│ │ ├── workspace/ # Productivity tools
│ │ └── bridge/ # Assessment pipeline
│ ├── tenant-admin/ # Tenant management
│ ├── user/ # End user
│ ├── factory/ # Agent creation
│ └── Auth pages # Login, signup, etc.
├── package.json # @agentworks/console v2.0.0
├── vite.config.ts # Build + proxy config
├── Dockerfile # Multi-stage build
└── nginx.conf # Production server
Dependencies
Core
| Package | Version | Purpose |
|---|---|---|
react | 19.0.0 | UI framework |
react-router-dom | 7.1.1 | Client-side routing |
socket.io-client | 4.8.3 | Real-time WebSocket |
@tiptap/react | 3.23.4 | Rich text editor |
lucide-react | latest | Icon library |
tailwindcss | 3.x | Styling |
Dev
| Package | Version | Purpose |
|---|---|---|
vite | 6.0.7 | Build tool |
typescript | 5.7.3 | Type checking |
@playwright/test | latest | E2E testing |
