pub struct ModelPolicy {Show 15 fields
pub provider: Option<String>,
pub model: Option<String>,
pub model_tier: Option<String>,
pub temperature: Option<f64>,
pub max_tokens: Option<i64>,
pub max_iterations: Option<usize>,
pub max_nudges: Option<usize>,
pub nudge: Option<String>,
pub tool_examples: Option<String>,
pub post_turn_callback: Option<EqIgnored<VmValue>>,
pub stop_after_successful_tools: Option<Vec<String>>,
pub require_successful_tools: Option<Vec<String>>,
pub turn_policy: Option<TurnPolicy>,
pub tool_format: Option<String>,
pub native_tool_fallback: NativeToolFallbackPolicy,
}Fields§
§provider: Option<String>§model: Option<String>§model_tier: Option<String>§temperature: Option<f64>§max_tokens: Option<i64>§max_iterations: Option<usize>Maximum agent_loop iterations for this stage. Overrides the default 16.
max_nudges: Option<usize>Maximum consecutive text-only (no tool call) responses before declaring stuck.
nudge: Option<String>Custom nudge message injected when the model produces text without tool calls. If omitted, the VM uses a generic “Continue — use a tool call” message.
tool_examples: Option<String>Few-shot tool-call examples injected into the tool contract prompt, shown before the tool schema listing. Pipelines provide these — the VM has no hardcoded tool names.
post_turn_callback: Option<EqIgnored<VmValue>>Optional Harn closure called after each tool-calling turn. Receives turn metadata; returns either a string user message to inject, a bool stop flag, or a dict like {message, stop}. Wrapped in EqIgnored so it doesn’t affect PartialEq derivation.
stop_after_successful_tools: Option<Vec<String>>When set, the stage stops after any tool-calling turn whose successful results include one of these tool names. This is useful for workflow-owned verify loops where a productive write turn should hand control back to verification immediately.
require_successful_tools: Option<Vec<String>>When set, the stage is reported as failed unless at least one of these tool names succeeds during the interaction. Pipelines use this to assert a stage cannot quietly finish without running a specific tool.
turn_policy: Option<TurnPolicy>Turn-shape constraints for action stages.
tool_format: Option<String>Tool-calling contract format for the per-stage agent loop.
"native" routes user tools through the provider’s native
function-call channel; "text" embeds the <tool_call> contract
prompt. Mirrors the top-level agent_loop(..., {tool_format: ...})
option. When None, the workflow falls back to HARN_AGENT_TOOL_FORMAT
env / the provider-model default.
native_tool_fallback: NativeToolFallbackPolicyPolicy for native-tool stages when a provider emits text-mode
<tool_call> output instead of native tool calls.
Trait Implementations§
Source§impl Clone for ModelPolicy
impl Clone for ModelPolicy
Source§fn clone(&self) -> ModelPolicy
fn clone(&self) -> ModelPolicy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ModelPolicy
impl Debug for ModelPolicy
Source§impl Default for ModelPolicy
impl Default for ModelPolicy
Source§fn default() -> ModelPolicy
fn default() -> ModelPolicy
Source§impl<'de> Deserialize<'de> for ModelPolicywhere
ModelPolicy: Default,
impl<'de> Deserialize<'de> for ModelPolicywhere
ModelPolicy: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ModelPolicy
impl PartialEq for ModelPolicy
Source§fn eq(&self, other: &ModelPolicy) -> bool
fn eq(&self, other: &ModelPolicy) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ModelPolicy
impl Serialize for ModelPolicy
impl StructuralPartialEq for ModelPolicy
Auto Trait Implementations§
impl Freeze for ModelPolicy
impl !RefUnwindSafe for ModelPolicy
impl !Send for ModelPolicy
impl !Sync for ModelPolicy
impl Unpin for ModelPolicy
impl UnsafeUnpin for ModelPolicy
impl !UnwindSafe for ModelPolicy
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);