feat: Add Protocol 13 adaptive optimization, Plotly charts, and dashboard improvements
## Protocol 13: Adaptive Multi-Objective Optimization - Iterative FEA + Neural Network surrogate workflow - Initial FEA sampling, NN training, NN-accelerated search - FEA validation of top NN predictions, retraining loop - adaptive_state.json tracks iteration history and best values - M1 mirror study (V11) with 103 FEA, 3000 NN trials ## Dashboard Visualization Enhancements - Added Plotly.js interactive charts (parallel coords, Pareto, convergence) - Lazy loading with React.lazy() for performance - Code splitting: plotly.js-basic-dist (~1MB vs 3.5MB) - Chart library toggle (Recharts default, Plotly on-demand) - ExpandableChart component for full-screen modal views - ConsoleOutput component for real-time log viewing ## Documentation - Protocol 13 detailed documentation - Dashboard visualization guide - Plotly components README - Updated run-optimization skill with Mode 5 (adaptive) ## Bug Fixes - Fixed TypeScript errors in dashboard components - Fixed Card component to accept ReactNode title - Removed unused imports across components 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Study, StudyListResponse, HistoryResponse, PruningResponse, StudyStatus } from '../types';
|
||||
import { StudyListResponse, HistoryResponse, PruningResponse, StudyStatus } from '../types';
|
||||
|
||||
const API_BASE = '/api';
|
||||
|
||||
@@ -43,6 +43,19 @@ class ApiClient {
|
||||
return response.json();
|
||||
}
|
||||
|
||||
async getConsoleOutput(studyId: string, lines: number = 200): Promise<{
|
||||
lines: string[];
|
||||
total_lines: number;
|
||||
displayed_lines: number;
|
||||
log_file: string | null;
|
||||
timestamp: string;
|
||||
message?: string;
|
||||
}> {
|
||||
const response = await fetch(`${API_BASE}/optimization/studies/${studyId}/console?lines=${lines}`);
|
||||
if (!response.ok) throw new Error('Failed to fetch console output');
|
||||
return response.json();
|
||||
}
|
||||
|
||||
// Future endpoints for control
|
||||
async startOptimization(studyId: string): Promise<void> {
|
||||
const response = await fetch(`${API_BASE}/optimization/studies/${studyId}/start`, { method: 'POST' });
|
||||
|
||||
Reference in New Issue
Block a user