Skip to main content

telos_agent/knowledge/tasks/
task.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
4pub enum TaskStatus {
5    Pending,
6    InProgress,
7    Completed,
8    Failed,
9    Cancelled,
10    Deleted,
11}
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct Task {
15    pub id: String,
16    pub subject: String,
17    pub description: String,
18    pub status: TaskStatus,
19    pub blocked_by: Vec<String>,
20    pub blocks: Vec<String>,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub output: Option<String>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub kind: Option<String>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub agent_id: Option<String>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub agent_type: Option<String>,
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub worktree_path: Option<String>,
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub error: Option<String>,
33}