telos_agent/knowledge/tasks/
task.rs1use 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}