pub struct ToolLoop<'a> {Show 20 fields
pub transport: &'a dyn ModelTransport,
pub model: ModelId,
pub fallback_models: Vec<ModelId>,
pub catalog: &'a StaticCatalog,
pub capabilities: Vec<Capability>,
pub contract: Option<&'a dyn ContractEvaluator>,
pub barrier: Option<&'a dyn BarrierEvaluator>,
pub c_c_max: f64,
pub executor: &'a dyn EffectExecutor,
pub measurer: &'a dyn CandidateMeasurer,
pub budgets: LoopBudgets,
pub cadence: VerificationCadence,
pub kernel_state: KernelState,
pub node_id: String,
pub generation: u32,
pub system_prompt: PromptEnvelope,
pub recorder: Option<&'a dyn LoopRecorder>,
pub partial_seed_root: Option<String>,
pub resumed_birth_deps: Vec<StateDependency>,
pub search_budget: Option<SharedSearchBudget>,
}Expand description
The assembled tool loop for one node generation.
Fields§
§transport: &'a dyn ModelTransport§model: ModelId§fallback_models: Vec<ModelId>Sticky failover chain. A route is consumed only after an observed transport failure and never selected per turn.
catalog: &'a StaticCatalog§capabilities: Vec<Capability>§contract: Option<&'a dyn ContractEvaluator>§barrier: Option<&'a dyn BarrierEvaluator>§c_c_max: f64The capability contract’s ceiling on one certified increment.
executor: &'a dyn EffectExecutor§measurer: &'a dyn CandidateMeasurer§budgets: LoopBudgets§cadence: VerificationCadence§kernel_state: KernelState§node_id: String§generation: u32§system_prompt: PromptEnvelopeThe composed platform envelope for this actor (PSP-10 Phase 5). The runtime composes it from the section library and records its provenance; the loop seeds the text and stamps the digests into every control frame.
recorder: Option<&'a dyn LoopRecorder>§partial_seed_root: Option<String>The partial-checkpoint root this loop was seeded from (a branch continuing a partial); enters the resident dependency environment.
resumed_birth_deps: Vec<StateDependency>Birth dependencies restored from a durable checkpoint, parallel to the resumed conversation (Gate AF): pages keep their birth roots.
search_budget: Option<SharedSearchBudget>The forest’s shared budget when this loop is a search branch: every
model turn and verifier run reserves first (Gate AC); None outside.
Implementations§
Source§impl ToolLoop<'_>
impl ToolLoop<'_>
Sourcepub async fn run(self, goal: &str) -> Result<LoopOutcome>
pub async fn run(self, goal: &str) -> Result<LoopOutcome>
Run the loop to a classified terminal state (Paper II Lemma 1).
Sourcepub async fn run_with_conversation(
self,
goal: &str,
resumed: Option<Conversation>,
restored_activated_tools: Vec<String>,
) -> Result<LoopOutcome>
pub async fn run_with_conversation( self, goal: &str, resumed: Option<Conversation>, restored_activated_tools: Vec<String>, ) -> Result<LoopOutcome>
Re-enter from a durable provider-neutral conversation projection. The runtime restores candidate state and budgets; this method restores only model context and deferred tool activation.
Auto Trait Implementations§
impl<'a> Freeze for ToolLoop<'a>
impl<'a> !RefUnwindSafe for ToolLoop<'a>
impl<'a> Send for ToolLoop<'a>
impl<'a> Sync for ToolLoop<'a>
impl<'a> Unpin for ToolLoop<'a>
impl<'a> UnsafeUnpin for ToolLoop<'a>
impl<'a> !UnwindSafe for ToolLoop<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.