diff --git a/dashboards/admin-web/src/components/sidebar-nav.tsx b/dashboards/admin-web/src/components/sidebar-nav.tsx index 6b88b4ac..873a1dbd 100644 --- a/dashboards/admin-web/src/components/sidebar-nav.tsx +++ b/dashboards/admin-web/src/components/sidebar-nav.tsx @@ -33,6 +33,12 @@ import { ClipboardList, Beaker, Crosshair, + Bug, + HeartPulse, + FileSearch, + FlaskConical, + BrainCircuit, + TrendingDown, } from 'lucide-react'; import { cn } from '@/lib/utils'; import { useAuth } from '@/lib/auth-context'; @@ -59,10 +65,16 @@ const navItems = [ { href: '/flags', label: 'Feature Flags', icon: Settings }, { href: '/audit', label: 'Audit Log', icon: ScrollText }, { href: '/actiontrail', label: 'ActionTrail', icon: Crosshair }, + { href: '/experiments', label: 'Experiments', icon: FlaskConical }, + { href: '/predictive/at-risk', label: 'Predictive', icon: TrendingDown }, { href: '/ops', label: 'Mission Control', icon: Activity }, { href: '/ops/client-logs', label: 'Client Logs', icon: FileText }, { href: '/ops/telemetry-policies', label: 'Telemetry Policies', icon: Shield }, { href: '/ops/ab-testing', label: 'A/B Testing', icon: Beaker }, + { href: '/debug-sessions', label: 'Debug Sessions', icon: Bug }, + { href: '/health-dashboard', label: 'Health Dashboard', icon: HeartPulse }, + { href: '/extraction', label: 'Extraction', icon: FileSearch }, + { href: '/ai-diagnostics', label: 'AI Diagnostics', icon: BrainCircuit }, { href: '/feedback', label: 'User Feedback', icon: MessageSquare }, { href: '/ops/secrets', label: 'Secrets Manager', icon: KeyRound }, { href: '/settings', label: 'Settings', icon: Settings }, diff --git a/services/platform-service/src/server.ts b/services/platform-service/src/server.ts index de363999..cdca1d58 100644 --- a/services/platform-service/src/server.ts +++ b/services/platform-service/src/server.ts @@ -98,6 +98,7 @@ import { tenantRoutes } from './modules/tenants/routes.js'; import { retentionRoutes } from './modules/retention/routes.js'; import { backupRoutes } from './modules/backups/routes.js'; import { apiVersioningRoutes } from './modules/api-versioning/routes.js'; +import aiDiagnosticsRoutes from './modules/ai-diagnostics/routes.js'; import { initCosmosIfNeeded } from './lib/cosmos-init.js'; import { config } from './lib/config.js'; import { type JwtPayload, extractProductIdAsync } from './lib/request-context.js'; @@ -264,6 +265,9 @@ await app.register(retentionRoutes, { prefix: '/api' }); await app.register(backupRoutes, { prefix: '/api' }); await app.register(apiVersioningRoutes, { prefix: '/api' }); +// AI Diagnostics (NL query, LLM root-cause, error clustering) +await app.register(aiDiagnosticsRoutes, { prefix: '/api' }); + // Event subscriptions + DLQ + replay await app.register(eventSubscriptionRoutes, { prefix: '/api' }); // Agent executor + tool registry + scheduling + metrics