Initial commit: registry_dashboard — Dashboard ImGui para fn_registry

This commit is contained in:
Egutierrez
2026-04-08 00:42:29 +02:00
commit 303b6d476d
9 changed files with 722 additions and 0 deletions
+102
View File
@@ -0,0 +1,102 @@
#pragma once
#include <string>
#include <vector>
#include <cstdint>
struct RegistryStats {
int total_functions = 0;
int total_types = 0;
int total_apps = 0;
int total_analysis = 0;
int total_unit_tests = 0;
int total_proposals = 0;
int tested_functions = 0;
int pure_functions = 0;
int impure_functions = 0;
};
struct LangCount {
std::string lang;
int count = 0;
};
struct DomainCount {
std::string domain;
int count = 0;
};
struct KindCount {
std::string kind;
int count = 0;
};
struct DateCount {
std::string date; // YYYY-MM-DD
int count = 0;
};
struct FunctionRow {
std::string id;
std::string name;
std::string lang;
std::string domain;
std::string kind;
std::string purity;
std::string description;
std::string created_at;
bool tested = false;
};
struct AppRow {
std::string id;
std::string name;
std::string lang;
std::string domain;
std::string description;
std::string framework;
};
struct AnalysisRow {
std::string id;
std::string name;
std::string domain;
std::string description;
};
struct TypeRow {
std::string id;
std::string name;
std::string lang;
std::string domain;
std::string algebraic;
std::string description;
};
// All data loaded from registry.db in one shot
struct RegistryData {
RegistryStats stats;
std::vector<LangCount> by_lang;
std::vector<DomainCount> by_domain;
std::vector<KindCount> by_kind;
std::vector<DateCount> by_date; // last 30 days
std::vector<FunctionRow> recent_funcs; // last 20
std::vector<AppRow> apps;
std::vector<AnalysisRow> analyses;
std::vector<TypeRow> types;
// For chart data (populated by prepare_chart_data)
std::vector<std::string> lang_labels;
std::vector<float> lang_values;
std::vector<std::string> domain_labels;
std::vector<float> domain_values;
std::vector<std::string> kind_labels;
std::vector<float> kind_values;
std::vector<std::string> date_labels;
std::vector<float> date_values;
void prepare_chart_data();
};
// Load all data from registry.db. Returns true on success.
bool load_registry_data(const char* db_path, RegistryData& out);