pub struct TaskControlState {
pub task_id: TaskId,
pub parent_task_id: Option<TaskId>,
pub lifecycle: String,
pub termination: Option<String>,
pub wait: Option<String>,
pub waiting_on: Vec<TaskId>,
pub capability_ids: Vec<String>,
pub process: Option<ChildProcessState>,
pub tokens_used: WireU64,
pub turns_used: u32,
}Expand description
One task control block, projected. The lifecycle travels as its label rather than as the
internal enum: TaskLifecycle::Done(TerminationReason) is a semantic-kernel shape, and a
checkpoint that mirrored it would be a checkpoint of a private layout.
The label alone is not invertible, though, and Task 16 needs it to be: a restore that rebuilt
a finished task without the reason it finished for would hand the next transition a different
task table than the uninterrupted run had. So the two data-carrying lifecycles travel with their
data beside the label — termination for done, waiting_on for a sub_agent_join wait —
rather than by mirroring the internal enum’s shape.
Fields§
§task_id: TaskId§parent_task_id: Option<TaskId>§lifecycle: String§termination: Option<String>Why a done task is done. None for every other lifecycle.
wait: Option<String>§waiting_on: Vec<TaskId>The children a sub_agent_join wait is blocked on. Empty for every other wait.
capability_ids: Vec<String>§process: Option<ChildProcessState>Sub-agent process identity and join state. None only for the root task.
tokens_used: WireU64§turns_used: u32Trait Implementations§
Source§impl Clone for TaskControlState
impl Clone for TaskControlState
Source§fn clone(&self) -> TaskControlState
fn clone(&self) -> TaskControlState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more