yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
todo_manager.h
Go to the documentation of this file.
1#ifndef YAZE_CLI_SERVICE_AGENT_TODO_MANAGER_H_
2#define YAZE_CLI_SERVICE_AGENT_TODO_MANAGER_H_
3
4#include <string>
5#include <vector>
6
7#include "absl/status/status.h"
8#include "absl/status/statusor.h"
9
10namespace yaze {
11namespace cli {
12namespace agent {
13
18struct TodoItem {
19 std::string id;
20 std::string description;
28
29 std::string category; // e.g., "rom_edit", "ai_task", "build", "test"
30 int priority = 0; // Higher = more important
31 std::vector<std::string> dependencies; // IDs of tasks that must complete first
32 std::vector<std::string> tools_needed; // Tools/functions required
33 std::string created_at;
34 std::string updated_at;
35 std::string notes;
36
37 // Convert status enum to string
38 std::string StatusToString() const;
39 static Status StringToStatus(const std::string& str);
40};
41
54 public:
56 explicit TodoManager(const std::string& data_dir);
57
61 absl::Status Initialize();
62
66 absl::StatusOr<TodoItem> CreateTodo(
67 const std::string& description,
68 const std::string& category = "",
69 int priority = 0);
70
74 absl::Status UpdateTodo(const std::string& id, const TodoItem& item);
75
79 absl::Status UpdateStatus(const std::string& id, TodoItem::Status status);
80
84 absl::StatusOr<TodoItem> GetTodo(const std::string& id) const;
85
89 std::vector<TodoItem> GetAllTodos() const;
90
94 std::vector<TodoItem> GetTodosByStatus(TodoItem::Status status) const;
95
99 std::vector<TodoItem> GetTodosByCategory(const std::string& category) const;
100
104 absl::StatusOr<TodoItem> GetNextActionableTodo() const;
105
109 absl::Status DeleteTodo(const std::string& id);
110
114 absl::Status ClearCompleted();
115
119 absl::Status Save();
120
124 absl::Status Load();
125
129 absl::StatusOr<std::vector<TodoItem>> GenerateExecutionPlan() const;
130
134 std::string ExportAsJson() const;
135
139 absl::Status ImportFromJson(const std::string& json);
140
141 private:
142 std::string data_dir_;
143 std::string todos_file_;
144 std::vector<TodoItem> todos_;
145 int next_id_ = 1;
146
147 std::string GenerateId();
148 std::string GetTimestamp() const;
149 bool CanExecute(const TodoItem& item) const;
150};
151
152} // namespace agent
153} // namespace cli
154} // namespace yaze
155
156#endif // YAZE_CLI_SERVICE_AGENT_TODO_MANAGER_H_
Manages TODO lists for z3ed agent task execution.
absl::Status UpdateTodo(const std::string &id, const TodoItem &item)
Update an existing TODO item.
absl::Status ClearCompleted()
Clear all completed TODOs.
absl::Status ImportFromJson(const std::string &json)
Import TODOs from JSON string.
absl::Status Save()
Save TODOs to persistent storage.
absl::StatusOr< std::vector< TodoItem > > GenerateExecutionPlan() const
Generate an execution plan based on dependencies.
std::string GetTimestamp() const
absl::StatusOr< TodoItem > CreateTodo(const std::string &description, const std::string &category="", int priority=0)
Create a new TODO item.
absl::StatusOr< TodoItem > GetNextActionableTodo() const
Get the next actionable TODO (respecting dependencies and priority)
std::string ExportAsJson() const
Export TODOs as JSON string.
std::vector< TodoItem > GetTodosByCategory(const std::string &category) const
Get TODO items by category.
bool CanExecute(const TodoItem &item) const
absl::Status Load()
Load TODOs from persistent storage.
absl::Status DeleteTodo(const std::string &id)
Delete a TODO item.
absl::Status UpdateStatus(const std::string &id, TodoItem::Status status)
Update TODO status.
absl::Status Initialize()
Initialize the TODO manager and load persisted data.
std::vector< TodoItem > GetTodosByStatus(TodoItem::Status status) const
Get TODO items by status.
absl::StatusOr< TodoItem > GetTodo(const std::string &id) const
Get a TODO item by ID.
std::vector< TodoItem > todos_
std::vector< TodoItem > GetAllTodos() const
Get all TODO items.
Main namespace for the application.
Represents a single TODO item for task management.
enum yaze::cli::agent::TodoItem::Status status
static Status StringToStatus(const std::string &str)
std::vector< std::string > dependencies
std::vector< std::string > tools_needed
std::string StatusToString() const