#pragma once #include "data.h" #include // Draw the full dashboard. Call every frame. void draw_dashboard(RegistryData& data); // Called once from main.cpp after parsing --api to share the URL with the // views (for triggering reindex/add mutations). void views_set_api_url(const std::string& url); // Individual views (called by draw_dashboard) void draw_kpi_row(const RegistryData& data); void draw_charts(RegistryData& data, float height = 250.0f); void draw_recent_functions(const std::vector& funcs); void draw_apps_list(const std::vector& apps); void draw_analysis_list(const std::vector& analyses); void draw_types_list(const std::vector& types); void draw_projects_list(RegistryData& data); // Explorer: lista navegable de funciones + visor de codigo y documentacion. // Carga la lista completa al primer render via /api/databases/registry/query. void draw_functions_explorer(); // Issue 0086: tab "Monitor" (antes "Claude Usage"). Pestana principal y por // defecto. Muestra KPIs del bucle reactivo + Recent Executions con timestamps, // top functions, violations, copied code. Filtro de fecha por presets y // estado WS live (LED + ts ultimo evento). Si data.claude.available == false // muestra placeholder con instrucciones para inicializar call_monitor. void draw_monitor(RegistryData& data); // Flag global: cuando draw_monitor cambia la ventana o WS reconecta y necesita // refetch parcial. Lo lee main.cpp y llama load_claude_usage_http sin tocar // el resto del registry (rapido). bool monitor_consume_reload_request(); // Setter expuesto a main.cpp: refleja estado WS en el LED. true = live. void monitor_set_ws_state(bool connected, long long last_event_ts);