pub struct TaskStateInput {Show 24 fields
pub user_content: String,
pub intents: Vec<String>,
pub authority: String,
pub retrieval_metrics: Option<RetrievalMetrics>,
pub tool_search_stats: Option<ToolSearchStats>,
pub mcp_tools_available: bool,
pub taskable_agent_count: usize,
pub fit_agent_count: usize,
pub fit_agent_names: Vec<String>,
pub enabled_skill_count: usize,
pub matching_skill_count: usize,
pub missing_skills: Vec<String>,
pub remaining_budget_tokens: usize,
pub provider_breaker_open: bool,
pub inference_mode: String,
pub decomposition_proposal: Option<DecompositionProposal>,
pub explicit_specialist_workflow: bool,
pub named_tool_match: bool,
pub recent_response_skeletons: Vec<String>,
pub recent_user_message_lengths: Vec<usize>,
pub self_echo_fragments: Vec<String>,
pub declared_action: Option<DeclaredAction>,
pub previous_turn_had_protocol_issues: bool,
pub normalization_retry_streak: u8,
}Expand description
Raw facts assembled by roboticus-api from pipeline subsystems.
This is the sole input to synthesize — the API layer collects
these values but does NOT interpret them.
Fields§
§user_content: StringThe user’s message text.
intents: Vec<String>Serialized intent names (from IntentRegistry).
Serialized InputAuthority variant name.
retrieval_metrics: Option<RetrievalMetrics>§tool_search_stats: Option<ToolSearchStats>§mcp_tools_available: boolWhether any MCP-sourced tools are available.
taskable_agent_count: usizeEnabled, non-proxy subagents.
fit_agent_count: usizeAgents whose skills overlap with the task.
fit_agent_names: Vec<String>Names of fitting agents.
enabled_skill_count: usize§matching_skill_count: usizeSkills whose triggers match the user input.
missing_skills: Vec<String>Skills that would be useful but are not registered.
remaining_budget_tokens: usizeTokens remaining after system prompt.
provider_breaker_open: boolWhether any LLM provider circuit breaker is open.
inference_mode: String“standard” or “streaming”.
decomposition_proposal: Option<DecompositionProposal>§explicit_specialist_workflow: boolWhether the user explicitly requested specialist/delegation workflow.
named_tool_match: boolWhether the user’s message references an existing registered tool by name. When true, the named capability already exists in the tool registry and will be available during inference — the planner should NOT propose specialist creation for it.
recent_response_skeletons: Vec<String>Structural fingerprints of the last N assistant responses. Each string is a compact skeleton like “narrative+question+options”.
recent_user_message_lengths: Vec<usize>Word counts of the last N user messages (engagement signal).
self_echo_fragments: Vec<String>Notable phrases (8+ words) extracted from recent assistant turns. Used to detect self-echoing — the agent reusing its own prior phrasing.
declared_action: Option<DeclaredAction>Whether the user’s input contains a declared physical action (verb + target pattern, e.g. “I attack the goblin”).
previous_turn_had_protocol_issues: boolWhether the previous assistant turn contained protocol normalization issues (malformed tool calls, narrated next steps, unexecuted streaming markers). When true, the planner may select NormalizationRetry.
normalization_retry_streak: u8Number of consecutive turns with protocol normalization issues.
Zero when previous_turn_had_protocol_issues is false; allows the
planner to escalate retry strategy for persistent normalization failures.
Trait Implementations§
Source§impl Clone for TaskStateInput
impl Clone for TaskStateInput
Source§fn clone(&self) -> TaskStateInput
fn clone(&self) -> TaskStateInput
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for TaskStateInput
impl RefUnwindSafe for TaskStateInput
impl Send for TaskStateInput
impl Sync for TaskStateInput
impl Unpin for TaskStateInput
impl UnsafeUnpin for TaskStateInput
impl UnwindSafe for TaskStateInput
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.