1#ifndef YAZE_APP_EDITOR_AGENT_AGENT_EDITOR_H_
2#define YAZE_APP_EDITOR_AGENT_AGENT_EDITOR_H_
10#include "absl/status/status.h"
11#include "absl/status/statusor.h"
25class AgentCollaborationCoordinator;
28class NetworkCollaborationCoordinator;
57 absl::Status
Load()
override;
58 absl::Status
Save()
override;
59 absl::Status
Update()
override;
60 absl::Status
Cut()
override {
return absl::UnimplementedError(
"Not applicable"); }
61 absl::Status
Copy()
override {
return absl::UnimplementedError(
"Not applicable"); }
62 absl::Status
Paste()
override {
return absl::UnimplementedError(
"Not applicable"); }
63 absl::Status
Undo()
override {
return absl::UnimplementedError(
"Not applicable"); }
64 absl::Status
Redo()
override {
return absl::UnimplementedError(
"Not applicable"); }
65 absl::Status
Find()
override {
return absl::UnimplementedError(
"Not applicable"); }
79 std::string
name =
"Default Bot";
90 std::vector<std::string>
tags;
122 absl::Status
ExportProfile(
const BotProfile& profile,
const std::filesystem::path& path);
123 absl::Status
ImportProfile(
const std::filesystem::path& path);
144 absl::StatusOr<SessionInfo>
HostSession(
const std::string& session_name,
146 absl::StatusOr<SessionInfo>
JoinSession(
const std::string& session_code,
163 absl::Status
SendToGemini(
const std::filesystem::path& image_path,
164 const std::string& prompt);
167 absl::Status ConnectToServer(
const std::string& server_url);
168 void DisconnectFromServer();
169 bool IsConnectedToServer()
const;
179 NetworkCollaborationCoordinator* GetNetworkCoordinator() {
return network_coordinator_.get(); }
202 absl::StatusOr<BotProfile>
JsonToProfile(
const std::string& json)
const;
208 std::unique_ptr<NetworkCollaborationCoordinator> network_coordinator_;
The Rom class is used to load, save, and modify Rom data.
Comprehensive AI Agent Platform & Bot Creator.
std::unique_ptr< AgentChatWidget > chat_widget_
std::string current_session_id_
void SetCurrentProfile(const BotProfile &profile)
void ApplyConfig(const AgentConfig &config)
void InitializeWithDependencies(ToastManager *toast_manager, ProposalDrawer *proposal_drawer, Rom *rom)
void DrawAdvancedMetricsPanel()
absl::StatusOr< SessionInfo > JoinSession(const std::string &session_code, CollaborationMode mode=CollaborationMode::kLocal)
void SetRomContext(Rom *rom)
void SetChatActive(bool active)
absl::StatusOr< BotProfile > JsonToProfile(const std::string &json) const
absl::Status Find() override
absl::StatusOr< SessionInfo > RefreshSession()
absl::Status ImportProfile(const std::filesystem::path &path)
absl::Status Copy() override
bool IsChatActive() const
void SetupMultimodalCallbacks()
bool prompt_editor_initialized_
void Initialize() override
ProposalDrawer * proposal_drawer_
bool show_metrics_dashboard_
absl::Status Redo() override
std::vector< cli::agent::ChatMessage > cached_history_
AgentConfig current_config_
absl::Status Save() override
bool common_tiles_initialized_
AgentChatWidget * GetChatWidget()
std::string current_session_name_
CollaborationMode GetCurrentMode() const
void DrawPromptEditorPanel()
absl::Status SendToGemini(const std::filesystem::path &image_path, const std::string &prompt)
AgentCollaborationCoordinator * GetLocalCoordinator()
absl::Status EnsureProfilesDirectory()
BotProfile GetCurrentProfile() const
absl::Status Undo() override
absl::Status Paste() override
bool history_needs_refresh_
absl::Status ExportProfile(const BotProfile &profile, const std::filesystem::path &path)
void DrawNewPromptCreator()
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()
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_
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()
absl::Status Update() override
void DrawConfigurationPanel()
std::vector< BotProfile > loaded_profiles_
absl::Status Cut() override
std::optional< SessionInfo > GetCurrentSession() const
void SetupChatWidgetCallbacks()
Interface for editor classes.
ImGui drawer for displaying and managing agent proposals.
Main namespace for the application.
std::string gemini_api_key
std::vector< std::string > tags
std::string gemini_api_key
std::string system_prompt
std::string specific_window_name
std::vector< std::string > participants