mojentic/llm/tools/ephemeral_task_manager/
mod.rs1mod append_task;
2mod clear_tasks;
3mod complete_task;
4mod insert_task_after;
5mod list_tasks;
6mod prepend_task;
7mod start_task;
8mod task;
9mod task_list;
10
11pub use append_task::AppendTaskTool;
12pub use clear_tasks::ClearTasksTool;
13pub use complete_task::CompleteTaskTool;
14pub use insert_task_after::InsertTaskAfterTool;
15pub use list_tasks::ListTasksTool;
16pub use prepend_task::PrependTaskTool;
17pub use start_task::StartTaskTool;
18pub use task::{Task, TaskStatus};
19pub use task_list::TaskList;
20
21use crate::llm::tools::LlmTool;
22use std::sync::{Arc, Mutex};
23
24pub fn all_tools(task_list: Arc<Mutex<TaskList>>) -> Vec<Box<dyn LlmTool>> {
38 vec![
39 Box::new(AppendTaskTool::new(Arc::clone(&task_list))),
40 Box::new(PrependTaskTool::new(Arc::clone(&task_list))),
41 Box::new(InsertTaskAfterTool::new(Arc::clone(&task_list))),
42 Box::new(StartTaskTool::new(Arc::clone(&task_list))),
43 Box::new(CompleteTaskTool::new(Arc::clone(&task_list))),
44 Box::new(ListTasksTool::new(Arc::clone(&task_list))),
45 Box::new(ClearTasksTool::new(Arc::clone(&task_list))),
46 ]
47}