pub struct AiFocusTracker { /* private fields */ }Expand description
AI-driven focus tracker using LLM for intelligent analysis.
Implementations§
Source§impl AiFocusTracker
impl AiFocusTracker
Sourcepub fn new(provider: Box<dyn Provider>, model: String) -> Self
pub fn new(provider: Box<dyn Provider>, model: String) -> Self
Create a new AI-driven focus tracker.
§Arguments
provider- Provider for AI calls.model- Model name (recommend fast model like claude-haiku).
Sourcepub fn with_config(
provider: Box<dyn Provider>,
model: String,
config: FocusTrackerConfig,
) -> Self
pub fn with_config( provider: Box<dyn Provider>, model: String, config: FocusTrackerConfig, ) -> Self
Create with custom configuration.
Sourcepub fn new_minimal(model: String) -> Self
pub fn new_minimal(model: String) -> Self
Create a minimal tracker for background tasks.
Sourcepub fn current_focus(&self) -> Option<&ConversationFocus>
pub fn current_focus(&self) -> Option<&ConversationFocus>
Get current focus.
Sourcepub fn set_focus(&mut self, focus: ConversationFocus)
pub fn set_focus(&mut self, focus: ConversationFocus)
Set current focus manually.
Sourcepub fn clear_focus(&mut self)
pub fn clear_focus(&mut self)
Clear current focus.
Sourcepub fn config(&self) -> &FocusTrackerConfig
pub fn config(&self) -> &FocusTrackerConfig
Get configuration.
Sourcepub fn config_mut(&mut self) -> &mut FocusTrackerConfig
pub fn config_mut(&mut self) -> &mut FocusTrackerConfig
Get mutable configuration.
Sourcepub async fn analyze_message(
&mut self,
message: &Message,
) -> Result<FocusAnalysisResult>
pub async fn analyze_message( &mut self, message: &Message, ) -> Result<FocusAnalysisResult>
Sourcepub async fn analyze_key_messages(
&mut self,
messages: &[Message],
) -> Result<Vec<(usize, FocusAnalysisResult)>>
pub async fn analyze_key_messages( &mut self, messages: &[Message], ) -> Result<Vec<(usize, FocusAnalysisResult)>>
Sourcepub fn detect_focus_fallback(&self, messages: &[Message]) -> ConversationFocus
pub fn detect_focus_fallback(&self, messages: &[Message]) -> ConversationFocus
Detect focus from messages (rule-based fallback).
This method provides a fallback when AI analysis is not available.
Sourcepub fn focus_score(&self, message: &Message) -> f32
pub fn focus_score(&self, message: &Message) -> f32
Calculate focus score for a message using cached analysis.
Returns the relevance score from AI analysis if available, otherwise uses rule-based calculation.
Sourcepub fn create_focus_message(&self) -> Message
pub fn create_focus_message(&self) -> Message
Create a focus message to inject into compressed conversation.
Auto Trait Implementations§
impl Freeze for AiFocusTracker
impl !RefUnwindSafe for AiFocusTracker
impl Send for AiFocusTracker
impl Sync for AiFocusTracker
impl Unpin for AiFocusTracker
impl UnsafeUnpin for AiFocusTracker
impl !UnwindSafe for AiFocusTracker
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
Mutably borrows from an owned value. Read more