import { useState, useEffect } from 'react' import { Brain, Pencil, Trash2, ChevronDown, ChevronUp, Check, X } from 'lucide-react' import { api } from '../utils/api' import { useAuth } from '../context/AuthContext' import Markdown from '../utils/Markdown' import UsageBadge from '../components/UsageBadge' import dayjs from 'dayjs' import 'dayjs/locale/de' dayjs.locale('de') const SLUG_LABELS = { gesamt: '🔍 Gesamtanalyse', koerper: '🫧 Körperkomposition', ernaehrung: '🍽️ Ernährung', aktivitaet: '🏋️ Aktivität', gesundheit: '❤️ Gesundheitsindikatoren', ziele: '🎯 Zielfortschritt', pipeline: '🔬 Mehrstufige Gesamtanalyse', pipeline_body: '🔬 Pipeline: Körper-Analyse (JSON)', pipeline_nutrition: '🔬 Pipeline: Ernährungs-Analyse (JSON)', pipeline_activity: '🔬 Pipeline: Aktivitäts-Analyse (JSON)', pipeline_synthesis: '🔬 Pipeline: Synthese', pipeline_goals: '🔬 Pipeline: Zielabgleich', } function InsightCard({ ins, onDelete, defaultOpen=false }) { const [open, setOpen] = useState(defaultOpen) return (
setOpen(o=>!o)}>
{ins.display_name || SLUG_LABELS[ins.scope] || ins.scope}
{dayjs(ins.created).format('DD. MMMM YYYY, HH:mm')}
{open ? : }
{open && }
) } function PromptEditor({ prompt, onSave, onCancel }) { const [template, setTemplate] = useState(prompt.template) const [name, setName] = useState(prompt.name) const [desc, setDesc] = useState(prompt.description||'') const VARS = ['{{name}}','{{geschlecht}}','{{height}}','{{goal_weight}}','{{goal_bf_pct}}', '{{weight_trend}}','{{weight_aktuell}}','{{kf_aktuell}}','{{caliper_summary}}', '{{circ_summary}}','{{nutrition_summary}}','{{nutrition_detail}}', '{{protein_ziel_low}}','{{protein_ziel_high}}','{{activity_summary}}', '{{activity_kcal_summary}}','{{activity_detail}}', '{{sleep_summary}}','{{sleep_detail}}','{{sleep_avg_duration}}','{{sleep_avg_quality}}', '{{rest_days_summary}}','{{rest_days_count}}','{{rest_days_types}}', '{{vitals_summary}}','{{vitals_detail}}','{{vitals_avg_hr}}','{{vitals_avg_hrv}}', '{{vitals_avg_bp}}','{{vitals_vo2_max}}','{{bp_summary}}'] return (
Prompt bearbeiten
setName(e.target.value)}/>
setDesc(e.target.value)}/>
Variablen (antippen zum EinfĂĽgen):
{VARS.map(v=>( ))}