1#ifndef YAZE_APP_EDITOR_AGENT_AGENT_EDITOR_H_
2#define YAZE_APP_EDITOR_AGENT_AGENT_EDITOR_H_
11#include "absl/status/status.h"
12#include "absl/status/statusor.h"
13#include "absl/time/clock.h"
14#include "absl/time/time.h"
36class AgentCollaborationCoordinator;
37class AgentConfigPanel;
38class FeatureFlagEditorPanel;
41class MesenScreenshotPanel;
42class OracleStateLibraryPanel;
46class NetworkCollaborationCoordinator;
75 absl::Status
Load()
override;
76 absl::Status
Save()
override;
77 absl::Status
Update()
override;
78 absl::Status
Cut()
override {
79 return absl::UnimplementedError(
"Not applicable");
81 absl::Status
Copy()
override {
82 return absl::UnimplementedError(
"Not applicable");
85 return absl::UnimplementedError(
"Not applicable");
87 absl::Status
Undo()
override {
88 return absl::UnimplementedError(
"Not applicable");
90 absl::Status
Redo()
override {
91 return absl::UnimplementedError(
"Not applicable");
93 absl::Status
Find()
override {
94 return absl::UnimplementedError(
"Not applicable");
108 std::string
name =
"Default Bot";
200 const std::filesystem::path& path);
201 absl::Status
ImportProfile(
const std::filesystem::path& path);
229 const std::string& session_name,
232 const std::string& session_code,
245 absl::Status
SendToGemini(
const std::filesystem::path& image_path,
246 const std::string& prompt);
249 absl::Status ConnectToServer(
const std::string& server_url);
250 void DisconnectFromServer();
251 bool IsConnectedToServer()
const;
263 NetworkCollaborationCoordinator* GetNetworkCoordinator() {
264 return network_coordinator_.get();
302 absl::StatusOr<BotProfile>
JsonToProfile(
const std::string& json)
const;
321 std::unique_ptr<NetworkCollaborationCoordinator> network_coordinator_;
322 AutomationBridge harness_telemetry_bridge_;
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Unified Agent Chat Component.
Comprehensive AI Agent Platform & Bot Creator.
std::string current_session_id_
void RefreshModelCache(bool force)
std::unique_ptr< cli::AIService > model_service_
void SetKnowledgePanelCallback(KnowledgePanelCallback callback)
void SetCurrentProfile(const BotProfile &profile)
void ApplyConfig(const AgentConfig &config)
void InitializeWithDependencies(ToastManager *toast_manager, ProposalDrawer *proposal_drawer, Rom *rom)
absl::Status SaveBuilderBlueprint(const std::filesystem::path &path)
void DrawAdvancedMetricsPanel()
absl::StatusOr< SessionInfo > JoinSession(const std::string &session_code, CollaborationMode mode=CollaborationMode::kLocal)
BotProfile & GetCurrentProfile()
void SetRomContext(Rom *rom)
void SetChatActive(bool active)
void SetupAutomationCallbacks()
std::unique_ptr< MesenScreenshotPanel > mesen_screenshot_panel_
void SyncContextFromProfile()
KnowledgePanelCallback knowledge_panel_callback_
absl::StatusOr< BotProfile > JsonToProfile(const std::string &json) const
void ApplyToolPreferencesFromContext()
absl::Status Find() override
std::unique_ptr< OracleStateLibraryPanel > oracle_state_panel_
absl::StatusOr< SessionInfo > RefreshSession()
absl::Status ImportProfile(const std::filesystem::path &path)
absl::Status Copy() override
bool IsChatActive() const
void SetupMultimodalCallbacks()
void ApplyModelPreset(const ModelPreset &preset)
bool prompt_editor_initialized_
absl::Time last_local_model_scan_
void SyncConfigFromProfile()
void Initialize() override
ProposalDrawer * proposal_drawer_
bool show_metrics_dashboard_
absl::Status Redo() override
std::vector< cli::agent::ChatMessage > cached_history_
AgentChat * GetAgentChat()
AgentBuilderState builder_state_
AgentConfig current_config_
ModelServiceKey last_model_service_key_
absl::Status Save() override
bool common_tiles_initialized_
std::string current_session_name_
CollaborationMode GetCurrentMode() const
void DrawPromptEditorPanel()
void DrawFeatureFlagPanel()
const BotProfile & GetCurrentProfile() const
std::unique_ptr< FeatureFlagEditorPanel > feature_flag_panel_
absl::Status SendToGemini(const std::filesystem::path &image_path, const std::string &prompt)
AgentCollaborationCoordinator * GetLocalCoordinator()
std::unique_ptr< AgentConfigPanel > config_panel_
absl::Status EnsureProfilesDirectory()
void SyncProfileUiState()
void SetContext(AgentUIContext *context)
std::unique_ptr< MesenDebugPanel > mesen_debug_panel_
void DrawSramViewerPanel()
AgentUIContext * context_
absl::Status Undo() override
bool MaybeAutoDetectLocalProviders()
absl::Status LoadBuilderBlueprint(const std::filesystem::path &path)
std::function< void()> KnowledgePanelCallback
absl::Status Paste() override
bool history_needs_refresh_
ProfileUiState profile_ui_state_
absl::Status ExportProfile(const BotProfile &profile, const std::filesystem::path &path)
bool show_prompt_editor_card_
void DrawNewPromptCreator()
void DrawOracleStatePanel()
CollaborationMode current_mode_
absl::Status SaveBotProfile(const BotProfile &profile)
std::string active_prompt_file_
absl::Status DeleteBotProfile(const std::string &name)
std::filesystem::path GetProfilesDirectory() const
ToastManager * toast_manager_
AgentConfig GetCurrentConfig() const
std::unique_ptr< TextEditor > common_tiles_editor_
absl::StatusOr< SessionInfo > HostSession(const std::string &session_name, CollaborationMode mode=CollaborationMode::kLocal)
void DrawCommonTilesEditor()
void DrawMesenScreenshotPanel()
char new_prompt_name_[128]
std::string ProfileToJson(const BotProfile &profile) const
absl::Status LeaveSession()
std::unique_ptr< TextEditor > prompt_editor_
bool show_advanced_settings_
std::unique_ptr< AgentCollaborationCoordinator > local_coordinator_
void DrawMesenDebugPanel()
std::unique_ptr< SramViewerPanel > sram_viewer_panel_
absl::Status CaptureSnapshot(std::filesystem::path *output_path, const CaptureConfig &config)
absl::Status Load() override
BotProfile current_profile_
absl::Status LoadBotProfile(const std::string &name)
std::vector< BotProfile > GetAllProfiles() const
void DrawChatHistoryViewer()
std::vector< std::string > current_participants_
void DrawBotProfilesPanel()
std::vector< std::string > last_local_model_paths_
void ApplyConfigFromContext(const AgentConfigState &config)
void MarkProfileUiDirty()
std::unique_ptr< AgentChat > agent_chat_
absl::Status Update() override
void DrawConfigurationPanel()
void ApplyUserSettingsDefaults(bool force=false)
std::unique_ptr< ManifestPanel > manifest_panel_
std::vector< BotProfile > loaded_profiles_
absl::Status Cut() override
std::optional< SessionInfo > GetCurrentSession() const
void DrawAgentBuilderPanel()
Unified context for agent UI components.
Interface for editor classes.
EditorContext context() const
ImGui drawer for displaying and managing agent proposals.
struct yaze::editor::AgentEditor::AgentBuilderState::ToolPlan tools
std::string persona_notes
std::vector< std::string > goals
std::vector< Stage > stages
bool auto_focus_proposals
std::string blueprint_path
std::string anthropic_api_key
std::string gemini_api_key
std::string openai_api_key
std::string openai_base_url
std::string anthropic_api_key
std::vector< std::string > tags
std::string openai_api_key
std::string openai_base_url
std::string gemini_api_key
std::string system_prompt
std::string specific_window_name
std::string openai_api_key
std::string anthropic_api_key
std::string openai_base_url
std::string gemini_api_key
char anthropic_key_buf[256]
char openai_base_buf[256]
char ollama_host_buf[256]
std::vector< std::string > participants