feat: Add dashboard chat integration and MCP server
Major changes: - Dashboard: WebSocket-based chat with session management - Dashboard: New chat components (ChatPane, ChatInput, ModeToggle) - Dashboard: Enhanced UI with parallel coordinates chart - MCP Server: New atomizer-tools server for Claude integration - Extractors: Enhanced Zernike OPD extractor - Reports: Improved report generator New studies (configs and scripts only): - M1 Mirror: Cost reduction campaign studies - Simple Beam, Simple Bracket, UAV Arm studies Note: Large iteration data (2_iterations/, best_design_archive/) excluded via .gitignore - kept on local Gitea only. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import React, { useState, useEffect, useCallback, useMemo } from 'react';
|
||||
import { useState, useEffect, useCallback, useMemo } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import {
|
||||
Eye,
|
||||
@@ -12,19 +12,15 @@ import {
|
||||
Box,
|
||||
AlertCircle,
|
||||
CheckCircle,
|
||||
Clock,
|
||||
FileText,
|
||||
Lightbulb,
|
||||
Target,
|
||||
Layers,
|
||||
BookOpen,
|
||||
ChevronRight,
|
||||
ChevronDown,
|
||||
Folder,
|
||||
Play,
|
||||
ExternalLink,
|
||||
Zap,
|
||||
List
|
||||
List,
|
||||
LucideIcon
|
||||
} from 'lucide-react';
|
||||
import { useStudy } from '../context/StudyContext';
|
||||
import { Card } from '../components/common/Card';
|
||||
@@ -74,7 +70,7 @@ interface InsightResult {
|
||||
// ============================================================================
|
||||
// Constants
|
||||
// ============================================================================
|
||||
const INSIGHT_ICONS: Record<string, React.ElementType> = {
|
||||
const INSIGHT_ICONS: Record<string, LucideIcon> = {
|
||||
zernike_wfe: Waves,
|
||||
zernike_opd_comparison: Waves,
|
||||
msf_zernike: Waves,
|
||||
@@ -286,7 +282,7 @@ export default function Insights() {
|
||||
return groups;
|
||||
}, [availableInsights]);
|
||||
|
||||
const getIcon = (type: string) => INSIGHT_ICONS[type] || Eye;
|
||||
const getIcon = (type: string): LucideIcon => INSIGHT_ICONS[type] || Eye;
|
||||
const getColorClass = (type: string) => INSIGHT_COLORS[type] || 'text-gray-400 bg-gray-500/10 border-gray-500/30';
|
||||
|
||||
// ============================================================================
|
||||
|
||||
Reference in New Issue
Block a user