yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
agent_chat_widget.h
Go to the documentation of this file.
1#ifndef YAZE_APP_GUI_WIDGETS_AGENT_CHAT_WIDGET_H_
2#define YAZE_APP_GUI_WIDGETS_AGENT_CHAT_WIDGET_H_
3
4#include <memory>
5#include <string>
6#include <vector>
7
8#include "absl/status/status.h"
10#include "app/rom.h"
11
12namespace yaze {
13
14namespace gui {
15
24 public:
27
28 // Initialize with ROM context
29 void Initialize(Rom* rom);
30
31 // Main render function - call this in your ImGui loop
32 void Render(bool* p_open = nullptr);
33
34 // Load/save chat history
35 absl::Status LoadHistory(const std::string& filepath);
36 absl::Status SaveHistory(const std::string& filepath);
37
38 // Clear conversation history
39 void ClearHistory();
40
41 // Get the underlying service for advanced usage
45
46 private:
47 void RenderChatHistory();
48 void RenderInputArea();
49 void RenderToolbar();
50 void RenderMessageBubble(const cli::agent::ChatMessage& msg, int index);
52
53 void SendMessage(const std::string& message);
54 void ScrollToBottom();
55
56 // UI State
57 char input_buffer_[4096];
63
64 // Agent service
65 std::unique_ptr<cli::agent::ConversationalAgentService> agent_service_;
67
68 // UI colors
77};
78
79} // namespace gui
80
81} // namespace yaze
82
83#endif // YAZE_APP_GUI_WIDGETS_AGENT_CHAT_WIDGET_H_
The Rom class is used to load, save, and modify Rom data.
Definition rom.h:74
ImGui widget for conversational AI agent interaction.
void RenderTableData(const cli::agent::ChatMessage::TableData &table)
void RenderMessageBubble(const cli::agent::ChatMessage &msg, int index)
absl::Status LoadHistory(const std::string &filepath)
void Render(bool *p_open=nullptr)
cli::agent::ConversationalAgentService * GetService()
struct yaze::gui::AgentChatWidget::Colors colors_
void SendMessage(const std::string &message)
absl::Status SaveHistory(const std::string &filepath)
std::unique_ptr< cli::agent::ConversationalAgentService > agent_service_
Main namespace for the application.
Definition controller.cc:20