{"openapi":"3.1.0","info":{"title":"Atomizer Dashboard API","description":"Real-time optimization monitoring and control","version":"2.0.0"},"paths":{"/api/optimization/studies":{"get":{"tags":["optimization"],"summary":"List Studies","description":"List all available optimization studies.\n\nSupports both flat and nested folder structures:\n- Flat: studies/study_name/\n- Nested: studies/Topic/study_name/\n\nReturns studies with 'topic' field for frontend grouping.","operationId":"list_studies_api_optimization_studies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["optimization"],"summary":"Create Study","description":"Create a new optimization study\nAccepts:\n- config: JSON string with study configuration\n- prt_file: NX part file (optional if using existing study)\n- sim_file: NX simulation file (optional)\n- fem_file: NX FEM file (optional)","operationId":"create_study_api_optimization_studies_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_study_api_optimization_studies_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/status":{"get":{"tags":["optimization"],"summary":"Get Study Status","description":"Get detailed status of a specific study","operationId":"get_study_status_api_optimization_studies__study_id__status_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/history":{"get":{"tags":["optimization"],"summary":"Get Optimization History","description":"Get optimization history (all trials)","operationId":"get_optimization_history_api_optimization_studies__study_id__history_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/pruning":{"get":{"tags":["optimization"],"summary":"Get Pruning History","description":"Get pruning diagnostics from Optuna database or legacy JSON file","operationId":"get_pruning_history_api_optimization_studies__study_id__pruning_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/metadata":{"get":{"tags":["optimization"],"summary":"Get Study Metadata","description":"Read optimization_config.json for objectives, design vars, units (Protocol 13)","operationId":"get_study_metadata_api_optimization_studies__study_id__metadata_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/optimizer-state":{"get":{"tags":["optimization"],"summary":"Get Optimizer State","description":"Read realtime optimizer state from multiple sources:\n1. dashboard_state.json (written by optimization scripts)\n2. intelligent_optimizer/optimizer_state.json (Protocol 13)\n3. Computed state from database (fallback)","operationId":"get_optimizer_state_api_optimization_studies__study_id__optimizer_state_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/pareto-front":{"get":{"tags":["optimization"],"summary":"Get Pareto Front","description":"Get Pareto-optimal solutions for multi-objective studies (Protocol 13)","operationId":"get_pareto_front_api_optimization_studies__study_id__pareto_front_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/nn-pareto-front":{"get":{"tags":["optimization"],"summary":"Get Nn Pareto Front","description":"Get NN surrogate Pareto front from nn_pareto_front.json","operationId":"get_nn_pareto_front_api_optimization_studies__study_id__nn_pareto_front_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/nn-state":{"get":{"tags":["optimization"],"summary":"Get Nn Optimization State","description":"Get NN optimization state/summary from nn_optimization_state.json","operationId":"get_nn_optimization_state_api_optimization_studies__study_id__nn_state_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/convert-mesh":{"post":{"tags":["optimization"],"summary":"Convert Study Mesh","description":"Convert study mesh to GLTF for 3D visualization\nCreates a web-viewable 3D model with FEA results as vertex colors","operationId":"convert_study_mesh_api_optimization_studies__study_id__convert_mesh_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/mesh/{filename}":{"get":{"tags":["optimization"],"summary":"Get Mesh File","description":"Serve GLTF mesh files and metadata\nSupports .gltf, .bin, and .json files","operationId":"get_mesh_file_api_optimization_studies__study_id__mesh__filename__get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/optuna-url":{"get":{"tags":["optimization"],"summary":"Get Optuna Dashboard Url","description":"Get the Optuna dashboard URL for a specific study.\nReturns the URL to access the study in Optuna dashboard.\n\nThe Optuna dashboard should be started with a relative path from the Atomizer root:\nsqlite:///studies/{study_id}/2_results/study.db","operationId":"get_optuna_dashboard_url_api_optimization_studies__study_id__optuna_url_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/generate-report":{"post":{"tags":["optimization"],"summary":"Generate Report","description":"Generate an optimization report in the specified format\n\nArgs:\n study_id: Study identifier\n format: Report format ('markdown', 'html', or 'pdf')\n include_llm_summary: Whether to include LLM-generated executive summary\n\nReturns:\n Information about the generated report including download URL","operationId":"generate_report_api_optimization_studies__study_id__generate_report_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"markdown","title":"Format"}},{"name":"include_llm_summary","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Llm Summary"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/reports/{filename}":{"get":{"tags":["optimization"],"summary":"Download Report","description":"Download a generated report file\n\nArgs:\n study_id: Study identifier\n filename: Report filename\n\nReturns:\n Report file for download","operationId":"download_report_api_optimization_studies__study_id__reports__filename__get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/console":{"get":{"tags":["optimization"],"summary":"Get Console Output","description":"Get the latest console output/logs from the optimization run\n\nArgs:\n study_id: Study identifier\n lines: Number of lines to return (default: 200)\n\nReturns:\n JSON with console output lines","operationId":"get_console_output_api_optimization_studies__study_id__console_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"lines","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Lines"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/report":{"get":{"tags":["optimization"],"summary":"Get Study Report","description":"Get the STUDY_REPORT.md file content for a study\n\nArgs:\n study_id: Study identifier\n\nReturns:\n JSON with the markdown content","operationId":"get_study_report_api_optimization_studies__study_id__report_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/readme":{"get":{"tags":["optimization"],"summary":"Get Study Readme","description":"Get the README.md file content for a study (from 1_setup folder)\n\nArgs:\n study_id: Study identifier\n\nReturns:\n JSON with the markdown content","operationId":"get_study_readme_api_optimization_studies__study_id__readme_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/image/{image_path}":{"get":{"tags":["optimization"],"summary":"Get Study Image","description":"Serve images from a study directory.\n\nSupports images in:\n- study_dir/image.png\n- study_dir/1_setup/image.png\n- study_dir/3_results/image.png\n- study_dir/assets/image.png\n\nArgs:\n study_id: Study identifier\n image_path: Relative path to the image within the study\n\nReturns:\n FileResponse with the image","operationId":"get_study_image_api_optimization_studies__study_id__image__image_path__get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"image_path","in":"path","required":true,"schema":{"type":"string","title":"Image Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/config":{"get":{"tags":["optimization"],"summary":"Get Study Config","description":"Get the full optimization_config.json for a study\n\nArgs:\n study_id: Study identifier\n\nReturns:\n JSON with the complete configuration","operationId":"get_study_config_api_optimization_studies__study_id__config_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["optimization"],"summary":"Update Study Config","description":"Update the optimization_config.json for a study\n\nArgs:\n study_id: Study identifier\n request: New configuration data\n\nReturns:\n JSON with success status","operationId":"update_study_config_api_optimization_studies__study_id__config_put","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConfigRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/process":{"get":{"tags":["optimization"],"summary":"Get Process Status","description":"Get the process status for a study's optimization run\n\nArgs:\n study_id: Study identifier\n\nReturns:\n JSON with process status (is_running, pid, iteration counts)","operationId":"get_process_status_api_optimization_studies__study_id__process_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/start":{"post":{"tags":["optimization"],"summary":"Start Optimization","description":"Start the optimization process for a study\n\nArgs:\n study_id: Study identifier\n request: Optional start options\n\nReturns:\n JSON with process info","operationId":"start_optimization_api_optimization_studies__study_id__start_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartOptimizationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/stop":{"post":{"tags":["optimization"],"summary":"Stop Optimization","description":"Stop the optimization process for a study (hard kill by default)\n\nArgs:\n study_id: Study identifier\n request.force: If True (default), immediately kill. If False, try graceful first.\n\nReturns:\n JSON with result","operationId":"stop_optimization_api_optimization_studies__study_id__stop_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/pause":{"post":{"tags":["optimization"],"summary":"Pause Optimization","description":"Pause the optimization process for a study.\n\nUses psutil.Process.suspend() which sends SIGSTOP on Unix or suspends on Windows.\n\nArgs:\n study_id: Study identifier\n\nReturns:\n JSON with result","operationId":"pause_optimization_api_optimization_studies__study_id__pause_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/resume":{"post":{"tags":["optimization"],"summary":"Resume Optimization","description":"Resume a paused optimization process for a study.\n\nUses psutil.Process.resume() which sends SIGCONT on Unix or resumes on Windows.\n\nArgs:\n study_id: Study identifier\n\nReturns:\n JSON with result","operationId":"resume_optimization_api_optimization_studies__study_id__resume_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/validate":{"post":{"tags":["optimization"],"summary":"Validate Optimization","description":"Run final FEA validation on top NN predictions\n\nArgs:\n study_id: Study identifier\n request: Validation options (topN)\n\nReturns:\n JSON with process info","operationId":"validate_optimization_api_optimization_studies__study_id__validate_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/optuna-dashboard":{"post":{"tags":["optimization"],"summary":"Launch Optuna Dashboard","description":"Launch Optuna dashboard for a specific study\n\nArgs:\n study_id: Study identifier\n\nReturns:\n JSON with dashboard URL and process info","operationId":"launch_optuna_dashboard_api_optimization_studies__study_id__optuna_dashboard_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/optuna-dashboard/check":{"get":{"tags":["optimization"],"summary":"Check Optuna Dashboard Available","description":"Check if optuna-dashboard is installed and available.\n\nReturns:\n JSON with availability status and installation instructions if not available.","operationId":"check_optuna_dashboard_available_api_optimization_optuna_dashboard_check_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/optimization/studies/{study_id}/model-files":{"get":{"tags":["optimization"],"summary":"Get Model Files","description":"Get list of NX model files (.prt, .sim, .fem, .bdf, .dat, .op2) for a study\n\nArgs:\n study_id: Study identifier\n\nReturns:\n JSON with list of model files and their paths","operationId":"get_model_files_api_optimization_studies__study_id__model_files_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/open-folder":{"post":{"tags":["optimization"],"summary":"Open Model Folder","description":"Open the model folder in system file explorer\n\nArgs:\n study_id: Study identifier\n folder_type: Type of folder to open (model, results, setup)\n\nReturns:\n JSON with success status","operationId":"open_model_folder_api_optimization_studies__study_id__open_folder_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"folder_type","in":"query","required":false,"schema":{"type":"string","default":"model","title":"Folder Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/best-solution":{"get":{"tags":["optimization"],"summary":"Get Best Solution","description":"Get the best trial(s) for a study with improvement metrics","operationId":"get_best_solution_api_optimization_studies__study_id__best_solution_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/runs":{"get":{"tags":["optimization"],"summary":"Get Study Runs","description":"Get all optimization runs/studies in the database for comparison.\nMany studies have multiple Optuna studies (e.g., v11_fea, v11_iter1_nn, v11_iter2_nn).\nThis endpoint returns metrics for each sub-study.","operationId":"get_study_runs_api_optimization_studies__study_id__runs_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/zernike-available":{"get":{"tags":["optimization"],"summary":"Get Zernike Available Trials","description":"Get list of trial numbers that have Zernike analysis available (OP2 files).\n\nReturns:\n JSON with list of trial numbers that have iteration folders with OP2 files","operationId":"get_zernike_available_trials_api_optimization_studies__study_id__zernike_available_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/trials/{trial_number}/zernike":{"get":{"tags":["optimization"],"summary":"Get Trial Zernike","description":"Generate or retrieve Zernike analysis HTML for a specific trial.\n\nThis endpoint generates interactive Zernike wavefront analysis for mirror\noptimization trials. It produces 3D surface residual plots, RMS metrics,\nand coefficient bar charts for each angle comparison (40_vs_20, 60_vs_20, 90_vs_20).\n\nArgs:\n study_id: Study identifier\n trial_number: Trial/iteration number\n\nReturns:\n JSON with HTML content for each comparison, or error if OP2 not found","operationId":"get_trial_zernike_api_optimization_studies__study_id__trials__trial_number__zernike_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"trial_number","in":"path","required":true,"schema":{"type":"integer","title":"Trial Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/optimization/studies/{study_id}/export/{format}":{"get":{"tags":["optimization"],"summary":"Export Study Data","description":"Export study data in various formats: csv, json, excel","operationId":"export_study_data_api_optimization_studies__study_id__export__format__get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"format","in":"path","required":true,"schema":{"type":"string","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claude/sessions":{"post":{"tags":["claude"],"summary":"Create Session","description":"Create or resume a Claude session with MCP tools.\n\nArgs:\n mode: \"user\" for safe operations, \"power\" for full access\n study_id: Optional study to provide context\n resume_session_id: Optional session ID to resume\n\nReturns:\n Session info including session_id, mode, study_id","operationId":"create_session_api_claude_sessions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claude/sessions/{session_id}":{"get":{"tags":["claude"],"summary":"Get Session","description":"Get session info","operationId":"get_session_api_claude_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claude/sessions/{session_id}/mode":{"post":{"tags":["claude"],"summary":"Switch Session Mode","description":"Switch session mode (requires session restart).\n\nArgs:\n session_id: Session to update\n mode: New mode (\"user\" or \"power\")","operationId":"switch_session_mode_api_claude_sessions__session_id__mode_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwitchModeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claude/sessions/{session_id}/study":{"post":{"tags":["claude"],"summary":"Set Session Study","description":"Update study context for a session","operationId":"set_session_study_api_claude_sessions__session_id__study_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"study_id","in":"query","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claude/status":{"get":{"tags":["claude"],"summary":"Get Claude Status","description":"Check if Claude CLI is available\n\nReturns:\n JSON with CLI status","operationId":"get_claude_status_api_claude_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/claude/chat":{"post":{"tags":["claude"],"summary":"Chat With Claude","description":"Send a message to Claude via CLI with Atomizer context\n\nArgs:\n request: ChatRequest with message, optional study_id, and conversation history\n\nReturns:\n ChatResponse with Claude's response","operationId":"chat_with_claude_api_claude_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claude/chat/stream":{"post":{"tags":["claude"],"summary":"Chat Stream","description":"Stream a response from Claude CLI token by token\n\nArgs:\n request: ChatRequest with message and optional context\n\nReturns:\n StreamingResponse with text/event-stream","operationId":"chat_stream_api_claude_chat_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claude/suggestions":{"get":{"tags":["claude"],"summary":"Get Chat Suggestions","description":"Get contextual chat suggestions based on current study\n\nArgs:\n study_id: Optional study to get suggestions for\n\nReturns:\n List of suggested prompts","operationId":"get_chat_suggestions_api_claude_suggestions_get","parameters":[{"name":"study_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/terminal/status":{"get":{"tags":["terminal"],"summary":"Terminal Status","description":"Check if Claude Code CLI is available.","operationId":"terminal_status_api_terminal_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/terminal/context":{"get":{"tags":["terminal"],"summary":"Get Context","description":"Get the context prompt for a Claude session without starting a terminal.\n\nUseful for displaying context in the UI or preparing prompts.\n\nQuery params:\n study_id: Optional study ID to include study-specific context","operationId":"get_context_api_terminal_context_get","parameters":[{"name":"study_id","in":"query","required":false,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/available":{"get":{"tags":["insights"],"summary":"List Available Insights","description":"List all insight types that can be generated for this study.","operationId":"list_available_insights_api_insights_studies__study_id__available_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/all":{"get":{"tags":["insights"],"summary":"List All Insights","description":"List all registered insight types (regardless of availability for any study).","operationId":"list_all_insights_api_insights_studies__study_id__all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/insights/studies/{study_id}/iterations":{"get":{"tags":["insights"],"summary":"List Iterations","description":"List available iterations/trials with OP2 files for insight generation.\n\nReturns iterations sorted by modification time (newest first).\nOnly includes iterations with valid (non-corrupted) OP2 files.","operationId":"list_iterations_api_insights_studies__study_id__iterations_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/generate/{insight_type}":{"post":{"tags":["insights"],"summary":"Generate Insight","description":"Generate a specific insight visualization.\n\nArgs:\n study_id: Study identifier\n insight_type: Type of insight (e.g., 'zernike_wfe', 'stress_field', 'design_space')\n request: Optional generation config with iteration selection\n\nReturns:\n JSON with plotly_figure data and summary statistics","operationId":"generate_insight_api_insights_studies__study_id__generate__insight_type__post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"insight_type","in":"path","required":true,"schema":{"type":"string","title":"Insight Type"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GenerateInsightRequest"},{"type":"null"}],"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/view/{insight_type}":{"get":{"tags":["insights"],"summary":"View Insight Html","description":"Get the HTML content for an insight (for iframe embedding).\n\nReturns the most recent generated HTML file for this insight type,\nor generates one if none exists.","operationId":"view_insight_html_api_insights_studies__study_id__view__insight_type__get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}},{"name":"insight_type","in":"path","required":true,"schema":{"type":"string","title":"Insight Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/generated":{"get":{"tags":["insights"],"summary":"List Generated Insights","description":"List all previously generated insight HTML files for a study.","operationId":"list_generated_insights_api_insights_studies__study_id__generated_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/configured":{"get":{"tags":["insights"],"summary":"Get Configured Insights Endpoint","description":"Get insights configured in the study's optimization_config.json.","operationId":"get_configured_insights_endpoint_api_insights_studies__study_id__configured_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/recommend":{"get":{"tags":["insights"],"summary":"Recommend Insights Endpoint","description":"Get AI recommendations for insights based on study objectives.","operationId":"recommend_insights_endpoint_api_insights_studies__study_id__recommend_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/report":{"post":{"tags":["insights"],"summary":"Generate Report","description":"Generate comprehensive HTML report with all insights.\n\nArgs:\n study_id: Study identifier\n request: Report configuration with optional insight specs\n\nReturns:\n JSON with report path and generation results","operationId":"generate_report_api_insights_studies__study_id__report_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateReportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/report/view":{"get":{"tags":["insights"],"summary":"View Report","description":"Get the latest generated report HTML for embedding.","operationId":"view_report_api_insights_studies__study_id__report_view_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/summary":{"get":{"tags":["insights"],"summary":"Get Insights Summary","description":"Get insights summary JSON for Results page integration.","operationId":"get_insights_summary_api_insights_studies__study_id__summary_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/new-best":{"get":{"tags":["insights"],"summary":"Check New Best","description":"Check if there's a new best solution that needs insight generation.\n\nThe optimization script writes new_best.json when a new best is found.\nDashboard can poll this endpoint to auto-generate insights.","operationId":"check_new_best_api_insights_studies__study_id__new_best_get","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/insights/studies/{study_id}/auto-insights":{"post":{"tags":["insights"],"summary":"Generate Auto Insights","description":"Generate insights for the current best solution based on config.\n\nReads insights config from optimization_config.json and generates\nall enabled insights for the best (or latest new best) iteration.\nClears the needs_insights flag after generation.","operationId":"generate_auto_insights_api_insights_studies__study_id__auto_insights_post","parameters":[{"name":"study_id","in":"path","required":true,"schema":{"type":"string","title":"Study Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/context/playbook":{"get":{"tags":["context"],"summary":"Get Playbook Summary","description":"Get playbook summary statistics.","operationId":"get_playbook_summary_api_context_playbook_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaybookSummary"}}}}}}},"/api/context/playbook/items":{"get":{"tags":["context"],"summary":"Get Playbook Items","description":"Get playbook items with optional filtering.\n\nCategories:\n- str: Strategy\n- mis: Mistake\n- tool: Tool usage\n- cal: Calculation\n- dom: Domain knowledge\n- wf: Workflow","operationId":"get_playbook_items_api_context_playbook_items_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category (str, mis, tool, etc.)","title":"Category"},"description":"Filter by category (str, mis, tool, etc.)"},{"name":"min_score","in":"query","required":false,"schema":{"type":"integer","description":"Minimum net score","default":0,"title":"Min Score"},"description":"Minimum net score"},{"name":"min_confidence","in":"query","required":false,"schema":{"type":"number","description":"Minimum confidence (0.0-1.0)","default":0.0,"title":"Min Confidence"},"description":"Minimum confidence (0.0-1.0)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Maximum items to return","default":50,"title":"Limit"},"description":"Maximum items to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Pagination offset","default":0,"title":"Offset"},"description":"Pagination offset"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PlaybookItemResponse"},"title":"Response Get Playbook Items Api Context Playbook Items Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/context/playbook/items/{item_id}":{"get":{"tags":["context"],"summary":"Get Playbook Item","description":"Get a specific playbook item by ID.","operationId":"get_playbook_item_api_context_playbook_items__item_id__get","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaybookItemResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["context"],"summary":"Delete Playbook Item","description":"Delete a playbook item.","operationId":"delete_playbook_item_api_context_playbook_items__item_id__delete","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/context/playbook/feedback":{"post":{"tags":["context"],"summary":"Record Feedback","description":"Record feedback on a playbook item.\n\nThis is how the system learns:\n- helpful=true increases the item's score\n- helpful=false decreases the item's score","operationId":"record_feedback_api_context_playbook_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/context/playbook/insights":{"post":{"tags":["context"],"summary":"Add Insight","description":"Add a new insight to the playbook.\n\nCategories:\n- str: Strategy - Optimization strategies that work\n- mis: Mistake - Common mistakes to avoid\n- tool: Tool - Tool usage patterns\n- cal: Calculation - Formulas and calculations\n- dom: Domain - Domain-specific knowledge (FEA, NX)\n- wf: Workflow - Workflow patterns","operationId":"add_insight_api_context_playbook_insights_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/context/playbook/prune":{"post":{"tags":["context"],"summary":"Prune Playbook","description":"Prune harmful items from the playbook.\n\nItems with net_score <= threshold will be removed.","operationId":"prune_playbook_api_context_playbook_prune_post","parameters":[{"name":"threshold","in":"query","required":false,"schema":{"type":"integer","description":"Net score threshold for pruning","default":-3,"title":"Threshold"},"description":"Net score threshold for pruning"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/context/playbook/context":{"get":{"tags":["context"],"summary":"Get Playbook Context","description":"Get playbook context string formatted for LLM consumption.\n\nThis is what gets injected into the LLM context window.","operationId":"get_playbook_context_api_context_playbook_context_get","parameters":[{"name":"task_type","in":"query","required":false,"schema":{"type":"string","description":"Task type for context filtering","default":"optimization","title":"Task Type"},"description":"Task type for context filtering"},{"name":"max_items","in":"query","required":false,"schema":{"type":"integer","description":"Maximum items to include","default":15,"title":"Max Items"},"description":"Maximum items to include"},{"name":"min_confidence","in":"query","required":false,"schema":{"type":"number","description":"Minimum confidence threshold","default":0.5,"title":"Min Confidence"},"description":"Minimum confidence threshold"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/context/session":{"get":{"tags":["context"],"summary":"Get Session State","description":"Get current session state.","operationId":"get_session_state_api_context_session_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionStateResponse"}}}}}}},"/api/context/session/context":{"get":{"tags":["context"],"summary":"Get Session Context","description":"Get session context string for LLM consumption.","operationId":"get_session_context_api_context_session_context_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/context/cache/stats":{"get":{"tags":["context"],"summary":"Get Cache Stats","description":"Get KV-cache efficiency statistics.","operationId":"get_cache_stats_api_context_cache_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/context/learning/report":{"get":{"tags":["context"],"summary":"Get Learning Report","description":"Get a comprehensive learning report.","operationId":"get_learning_report_api_context_learning_report_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Root","description":"Serve the enhanced dashboard HTML","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health Check","description":"Health check endpoint","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"Body_create_study_api_optimization_studies_post":{"properties":{"config":{"type":"string","title":"Config"},"prt_file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Prt File"},"sim_file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Sim File"},"fem_file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Fem File"}},"type":"object","required":["config"],"title":"Body_create_study_api_optimization_studies_post"},"ChatRequest":{"properties":{"message":{"type":"string","title":"Message"},"study_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Study Id"},"conversation_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Conversation History"}},"type":"object","required":["message"],"title":"ChatRequest"},"ChatResponse":{"properties":{"response":{"type":"string","title":"Response"},"tool_calls":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tool Calls"},"study_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Study Id"}},"type":"object","required":["response"],"title":"ChatResponse"},"CreateSessionRequest":{"properties":{"mode":{"type":"string","enum":["user","power"],"title":"Mode","default":"user"},"study_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Study Id"},"resume_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resume Session Id"}},"type":"object","title":"CreateSessionRequest"},"FeedbackRequest":{"properties":{"item_id":{"type":"string","title":"Item Id"},"helpful":{"type":"boolean","title":"Helpful"}},"type":"object","required":["item_id","helpful"],"title":"FeedbackRequest"},"GenerateInsightRequest":{"properties":{"iteration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Iteration"},"trial_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Trial Id"},"config":{"additionalProperties":true,"type":"object","title":"Config","default":{}}},"type":"object","title":"GenerateInsightRequest","description":"Request model for insight generation."},"GenerateReportRequest":{"properties":{"specs":{"anyOf":[{"items":{"$ref":"#/components/schemas/InsightSpecRequest"},"type":"array"},{"type":"null"}],"title":"Specs"},"include_appendix":{"type":"boolean","title":"Include Appendix","default":true}},"type":"object","title":"GenerateReportRequest","description":"Request model for report generation."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InsightRequest":{"properties":{"category":{"type":"string","title":"Category"},"content":{"type":"string","title":"Content"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"source_trial":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Trial"}},"type":"object","required":["category","content"],"title":"InsightRequest"},"InsightSpecRequest":{"properties":{"type":{"type":"string","title":"Type"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled","default":true},"linked_objective":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linked Objective"},"config":{"additionalProperties":true,"type":"object","title":"Config","default":{}},"include_in_report":{"type":"boolean","title":"Include In Report","default":true}},"type":"object","required":["type","name"],"title":"InsightSpecRequest","description":"Request model for insight specification."},"PlaybookItemResponse":{"properties":{"id":{"type":"string","title":"Id"},"category":{"type":"string","title":"Category"},"content":{"type":"string","title":"Content"},"helpful_count":{"type":"integer","title":"Helpful Count"},"harmful_count":{"type":"integer","title":"Harmful Count"},"net_score":{"type":"integer","title":"Net Score"},"confidence":{"type":"number","title":"Confidence"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"created_at":{"type":"string","title":"Created At"},"last_used":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used"}},"type":"object","required":["id","category","content","helpful_count","harmful_count","net_score","confidence","tags","created_at","last_used"],"title":"PlaybookItemResponse"},"PlaybookSummary":{"properties":{"total_items":{"type":"integer","title":"Total Items"},"by_category":{"additionalProperties":true,"type":"object","title":"By Category"},"version":{"type":"integer","title":"Version"},"last_updated":{"type":"string","title":"Last Updated"},"avg_score":{"type":"number","title":"Avg Score"},"top_score":{"type":"integer","title":"Top Score"},"lowest_score":{"type":"integer","title":"Lowest Score"}},"type":"object","required":["total_items","by_category","version","last_updated","avg_score","top_score","lowest_score"],"title":"PlaybookSummary"},"SessionStateResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"task_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Type"},"study_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Study Name"},"study_status":{"type":"string","title":"Study Status"},"trials_completed":{"type":"integer","title":"Trials Completed"},"trials_total":{"type":"integer","title":"Trials Total"},"best_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Best Value"},"recent_actions":{"items":{"type":"string"},"type":"array","title":"Recent Actions"},"recent_errors":{"items":{"type":"string"},"type":"array","title":"Recent Errors"}},"type":"object","required":["session_id","task_type","study_name","study_status","trials_completed","trials_total","best_value","recent_actions","recent_errors"],"title":"SessionStateResponse"},"StartOptimizationRequest":{"properties":{"freshStart":{"type":"boolean","title":"Freshstart","default":false},"maxIterations":{"type":"integer","title":"Maxiterations","default":100},"trials":{"type":"integer","title":"Trials","default":300},"feaBatchSize":{"type":"integer","title":"Feabatchsize","default":5},"tuneTrials":{"type":"integer","title":"Tunetrials","default":30},"ensembleSize":{"type":"integer","title":"Ensemblesize","default":3},"patience":{"type":"integer","title":"Patience","default":5}},"type":"object","title":"StartOptimizationRequest"},"StopRequest":{"properties":{"force":{"type":"boolean","title":"Force","default":true}},"type":"object","title":"StopRequest"},"SwitchModeRequest":{"properties":{"mode":{"type":"string","enum":["user","power"],"title":"Mode"}},"type":"object","required":["mode"],"title":"SwitchModeRequest"},"UpdateConfigRequest":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config"}},"type":"object","required":["config"],"title":"UpdateConfigRequest"},"ValidateRequest":{"properties":{"topN":{"type":"integer","title":"Topn","default":5}},"type":"object","title":"ValidateRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}