Initial commit: Nexus Mission Control Platform

- ASP.NET Core 10 Backend (JWT Auth, Agent config API)
- Vue 3 Frontend (Dashboard, Team, Agents, Config Editor)
- PostgreSQL Database
- Docker Compose setup
- Mission Control Dashboard redesign
This commit is contained in:
Bao
2026-06-09 16:31:42 +02:00
commit eeb6174de0
248 changed files with 19706 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
export interface AgentInfo {
id: string
name: string
role: string
model: string
status: string
lastSeen?: string
workspace?: string
description?: string
}
export interface AgentDetail extends AgentInfo {
agentDir?: string
subAgents?: string[]
identityName?: string
}
export interface TeamMember {
id: string
name: string
role: string
model: string
status: string
lastSeen?: string
workspace?: string
description?: string
identity?: string
subAgents?: string[]
}
+19
View File
@@ -0,0 +1,19 @@
export interface SecurityStatus {
authMethod: string
tokenConfig: { issuer: string; audience: string; refreshTokenDays: number; accessTokenMinutes: number }
rateLimit: string
passwordPolicy: string
cookieConfig: { httpOnly: boolean; secure: boolean; sameSite: string }
twoFactorEnabled: boolean
passkeyEnabled: boolean
}
export interface ConfigFileInfo {
fileName: string
size: number
modifiedAt: string
}
export interface ConfigFileDetail extends ConfigFileInfo {
content: string
}
+67
View File
@@ -0,0 +1,67 @@
import type { AgentInfo } from './agent'
export interface RuntimeStatus {
runtime: string
status: 'Online' | 'Degraded' | 'Offline' | 'Unknown'
latency?: string
detail?: string
}
export interface ModelStatus {
provider: string
model: string
status: 'Online' | 'Degraded' | 'Offline' | 'Unknown'
isLocal: boolean
detail?: string
}
export interface ProjectHealth {
online: number
offline: number
degraded: number
unknown: number
}
export interface IncidentInfo {
taskId?: string
title?: string
since?: string
}
export interface RoutingTarget {
priority: number
provider: string
model: string
purpose: string
status: 'Online' | 'Degraded' | 'Offline' | 'Unknown'
detail: string
}
export type TaskState = 'Backlog' | 'In progress' | 'Blocked' | 'Done'
export const TASK_STATES: TaskState[] = ['Backlog', 'In progress', 'Blocked', 'Done']
export interface OperationsSnapshot {
generatedAt: string
runtime: RuntimeStatus
models: ModelStatus[]
metrics: {
activeAgents: number
queuedTasks: number
successRate: number
incidents: number
runtimeHealthy?: boolean
lastIncident?: IncidentInfo
}
projectHealth?: ProjectHealth
agents?: AgentInfo[]
projects: Array<{ id: string; name: string; status: string; progress: number; updatedAt?: string }>
tasks: Array<{
id: string
title: string
state: TaskState
priority: string
projectId?: string | null
updatedAt: string
}>
activity: Array<{ id?: number; type: string; message: string; at: string }>
}
+4
View File
@@ -0,0 +1,4 @@
export * from './agent'
export * from './config'
export * from './dashboard'
export * from './project'
+30
View File
@@ -0,0 +1,30 @@
export interface MemoryFile {
name: string
path: string
size: number
modifiedAt: string
}
export interface MemoryDetail extends MemoryFile {
content: string
}
export interface MemorySearchResult {
name: string
path: string
excerpt: string
size: number
}
export interface DocFile {
name: string
path: string
category: string
type: string
size: number
modifiedAt: string
}
export interface DocDetail extends DocFile {
content: string
}