Skip to main content

TaskLoopContext

Struct TaskLoopContext 

Source
pub struct TaskLoopContext {
    pub session_id: String,
    pub items: Vec<TaskLoopItem>,
    pub active_item_id: Option<String>,
    pub current_round: u32,
    pub max_rounds: u32,
    pub created_at: DateTime<Utc>,
    pub updated_at: DateTime<Utc>,
    pub version: u64,
    pub task_list_dirty: bool,
}
Expand description

TaskList context for Agent Loop

Acts as a first-class citizen in the agent loop, tracking task progress throughout the entire conversation lifecycle.

Fields§

§session_id: String

Session ID

§items: Vec<TaskLoopItem>

Task items with execution tracking

§active_item_id: Option<String>

Currently active task item ID

§current_round: u32

Current round number

§max_rounds: u32

Maximum rounds allowed

§created_at: DateTime<Utc>

Creation timestamp

§updated_at: DateTime<Utc>

Last update timestamp

§version: u64

Version number for conflict detection

§task_list_dirty: bool

Set when the Task tool structurally rewrites the list, cleared once an evaluation has been spawned for that change. This is the single signal that gates async task evaluation to actual Task-tool writes, instead of firing every round of tool activity (which bumps version without changing the plan).

Implementations§

Source§

impl TaskLoopContext

Source

pub fn auto_match_tool_to_item(&mut self, tool_name: &str)

Auto-match tool to task item based on keywords

Source

pub fn auto_update_status(&mut self, tool_name: &str, result: &ToolResult)

Auto-update status based on tool execution result

Source§

impl TaskLoopContext

Source

pub fn from_session(session: &Session) -> Option<Self>

Create TaskLoopContext from the session’s task list.

Source

pub fn to_task_list_with_title(&self, title: impl Into<String>) -> TaskList

Clone into a TaskList, preserving the provided title.

Source

pub fn into_task_list(self) -> TaskList

Convert back to TaskList for persistence.

Source

pub fn into_task_list_with_title(self, title: impl Into<String>) -> TaskList

Convert back to TaskList for persistence with an explicit title.

Source§

impl TaskLoopContext

Source

pub fn format_for_prompt(&self) -> String

Generate context for prompt injection

Source§

impl TaskLoopContext

Source

pub fn track_tool_execution( &mut self, tool_name: &str, result: &ToolResult, round: u32, )

Track tool execution

Records a tool call and associates it with the active task item.

Source

pub fn set_active_item(&mut self, item_id: &str)

Set active task item

Moves the previous active item back to pending and activates a new item.

Source

pub fn update_item_status(&mut self, item_id: &str, status: TaskItemStatus)

Update item status manually

Source

pub fn apply_evaluated_update( &mut self, item_id: &str, status: TaskItemStatus, notes: Option<&str>, evidence: Option<&str>, blocker: Option<&str>, ) -> bool

Apply an evaluated task update and report whether it changed the context.

Source

pub fn append_structured_feedback( &mut self, item_id: &str, evidence: Option<&str>, blocker: Option<&str>, )

Source§

impl TaskLoopContext

Source

pub fn is_all_completed(&self) -> bool

Check if all items are completed

Trait Implementations§

Source§

impl Clone for TaskLoopContext

Source§

fn clone(&self) -> TaskLoopContext

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TaskLoopContext

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more