pub struct FocusDecision {
pub selected_focus_id: Option<String>,
pub need_new_focus: bool,
pub new_focus_topic: Option<String>,
pub new_core_question: Option<String>,
pub confidence: f32,
pub focus_type: FocusType,
pub is_topic_switch: bool,
pub previous_focus_id: Option<String>,
pub focus_keywords: Vec<String>,
pub related_entities: Vec<String>,
pub reasoning: String,
}Expand description
AI focus decision - the AI’s judgment on current conversation focus.
Instead of extracting focus from scratch, the AI selects from existing focuses or decides to create a new one. This ensures focus continuity and proper history tracking.
Fields§
§selected_focus_id: Option<String>ID of the selected existing focus (if matched). None if need_new_focus is true.
need_new_focus: boolWhether none of the existing focuses match and a new focus is needed.
new_focus_topic: Option<String>New focus topic (only if need_new_focus is true).
new_core_question: Option<String>Core question/task for the new focus.
confidence: f32Confidence of the selection/creation (0.0-1.0).
focus_type: FocusTypeFocus type classification.
is_topic_switch: boolWhether this is a topic switch from a previous focus.
previous_focus_id: Option<String>The previous focus being switched from (if is_topic_switch).
focus_keywords: Vec<String>Core keywords for this focus (3-5 keywords).
Related entities (files, functions, modules).
reasoning: StringAI’s reasoning for this decision.
Trait Implementations§
Source§impl Clone for FocusDecision
impl Clone for FocusDecision
Source§fn clone(&self) -> FocusDecision
fn clone(&self) -> FocusDecision
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more