Skip to main content

IntegratedLongContextProcessor

Struct IntegratedLongContextProcessor 

Source
pub struct IntegratedLongContextProcessor { /* private fields */ }
Expand description

Integrated long context processor that orchestrates all modules.

This processor coordinates:

  1. Unified extraction (one AI call for all information)
  2. Rule-based focus tracking
  3. Coherence-based segmentation
  4. Progressive compression with focus priority
  5. Focus message injection
  6. Pattern learning

Note: This processor is fully implemented and tested but not yet integrated into the main agent loop. Reserved for future use.

Implementations§

Source§

impl IntegratedLongContextProcessor

Source

pub fn new( provider: Box<dyn Provider>, model: String, config: ProcessorConfig, ) -> Self

Create a new integrated processor.

§Arguments
  • provider - Provider for AI extraction.
  • model - Model name for extraction.
  • config - Processor configuration.
Source

pub fn with_defaults(provider: Box<dyn Provider>, model: String) -> Self

Create with default configuration.

Source

pub fn for_simple_conversation( provider: Box<dyn Provider>, model: String, ) -> Self

Create for simple conversations.

Source

pub fn for_complex_technical(provider: Box<dyn Provider>, model: String) -> Self

Create for complex technical discussions.

Source

pub fn without_ai_focus(provider: Box<dyn Provider>, model: String) -> Self

Create without AI focus tracking (rule-based only).

Source

pub fn with_hardcode_config(self, config: HardcodeConfig) -> Self

Set custom hardcode config.

Source

pub fn config(&self) -> &ProcessorConfig

Get configuration reference.

Source

pub fn config_mut(&mut self) -> &mut ProcessorConfig

Get mutable configuration reference.

Source

pub fn pattern_registry(&self) -> &PatternRegistry

Get pattern registry reference.

Source

pub fn pattern_registry_mut(&mut self) -> &mut PatternRegistry

Get mutable pattern registry reference.

Source

pub async fn process( &mut self, messages: Vec<Message>, session_id: Option<&str>, project_path: Option<&str>, ) -> Result<ProcessedResult>

Process long context with the integrated workflow.

§Workflow
  1. Get existing focuses from FocusManager
  2. Extract all information with focus selection (one AI call)
  3. Update FocusManager based on AI’s focus_decision
  4. Segment messages by coherence
  5. Compress segments with focus priority
  6. Inject focus message
  7. Learn patterns
§Arguments
  • messages - Messages to process.
  • session_id - Optional session ID.
  • project_path - Optional project path.
§Returns

Processed messages and extraction result.

Source

pub async fn process_with_provider( &mut self, messages: Vec<Message>, provider: Option<&dyn Provider>, session_id: Option<&str>, project_path: Option<&str>, ) -> Result<ProcessedResult>

Process with a provider reference (for progressive compressor).

This variant allows using a provider for AI-based compression stages.

Source

pub fn quick_process( &mut self, messages: Vec<Message>, ) -> Result<ProcessedResult>

Quick process without AI extraction (for testing or fallback).

This skips extraction step and uses only rule-based processing.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,