rightkit_agent_engine_protocol/
task.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub enum TaskState {
7 Open,
9 InProgress,
11 Blocked,
13 Done,
15 Failed,
17 Cancelled,
19 Escalated,
21 Split,
23 Merged,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(rename_all = "camelCase")]
30pub struct DoneWhenPredicate {
31 pub predicate: String,
32 pub weight: f64,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
37#[serde(rename_all = "camelCase")]
38pub struct CompletionPredicateResult {
39 pub predicate: String,
40 pub weight: f64,
41 pub satisfied: bool,
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(rename_all = "camelCase")]
47pub struct TaskNode {
48 pub id: String,
49 pub title: String,
50 #[serde(default)]
52 pub deps: Vec<String>,
53 pub done_when: String,
55 #[serde(default)]
56 pub done_when_predicates: Vec<DoneWhenPredicate>,
57 pub state: TaskState,
59 #[serde(default)]
60 pub category: String,
61 #[serde(default)]
62 pub estimated_duration: String,
63 #[serde(default)]
64 pub assigned_role: String,
65 #[serde(default)]
66 pub escalation_path: String,
67 #[serde(default)]
68 pub open_questions: Vec<String>,
69 pub created_at: String,
70 pub updated_at: String,
71}