apps: add studio sources

This commit is contained in:
scawful
2025-12-30 10:25:25 -05:00
parent 39b74ffed3
commit 5db5f87a68
75 changed files with 19943 additions and 1 deletions

98
apps/studio/src/app.h Normal file
View File

@@ -0,0 +1,98 @@
#pragma once
#include <filesystem>
#include <memory>
#include <string>
#include <functional>
#include <imgui.h>
#include "data_loader.h"
#include "models/state.h"
#include "core/context.h"
#include "core/assets.h"
#include "ui/shortcuts.h"
#include "ui/components/model_registry.h"
#include "ui/components/training_dashboard.h"
#include "widgets/text_editor.h"
#include "widgets/imgui_memory_editor.h"
#include "widgets/sample_review.h"
#include "ui/charts/quality_trends.h"
#include "ui/charts/generator_efficiency.h"
#include "ui/charts/coverage_density.h"
#include "ui/components/graph_browser.h"
#include "ui/components/graph_navigator.h"
#include "ui/components/companion_panels.h"
#include "core/llama_client.h"
namespace afs {
namespace viz {
class App {
public:
explicit App(const std::string& data_path);
~App() = default;
int Run();
DataLoader& loader() { return loader_; }
const DataLoader& loader() const { return loader_; }
private:
void RefreshData(const char* reason);
void SeedDefaultState();
void SyncDataBackedState();
void TickSimulatedMetrics(float dt);
void RenderFrame();
void RenderLayout();
// Workspace Views
void RenderDashboardView();
void RenderAnalysisView();
void RenderOptimizationView();
void RenderSystemsView();
void RenderCustomGridView();
void RenderChatView();
void RenderTrainingView();
void RenderContextView();
void RenderModelsView();
void RenderExpandedPlot();
void RenderFloaters();
// Infrastructure
std::string data_path_;
DataLoader loader_;
AppState state_;
std::unique_ptr<studio::core::GraphicsContext> context_;
// Editors & Widgets
TextEditor text_editor_;
MemoryEditorWidget memory_editor_;
SampleReviewWidget sample_review_;
ui::ShortcutManager shortcut_manager_;
studio::ui::ModelRegistryWidget model_registry_widget_;
studio::ui::TrainingDashboardWidget training_dashboard_widget_;
// Modular Charts
ui::QualityTrendsChart quality_trends_chart_;
ui::GeneratorEfficiencyChart generator_efficiency_chart_;
ui::CoverageDensityChart coverage_density_chart_;
// Graph View System
ui::GraphBrowser graph_browser_;
ui::GraphNavigator graph_navigator_;
ui::CompanionPanels companion_panels_;
// LLM Chat Client
LlamaClient llama_client_;
// State flags
bool show_sample_review_ = false;
bool show_shortcuts_window_ = false;
// Typography
studio::core::AssetLoader::Fonts fonts_;
};
} // namespace viz
} // namespace afs