ContextAssembler

Struct ContextAssembler 

Source
pub struct ContextAssembler {
    config: CellstateConfig,
    segment_budget: Option<TokenBudget>,
}
Expand description

Context assembler that builds context windows from packages. Adds sections by priority until budget is exhausted.

Fields§

§config: CellstateConfig

Configuration for assembly

§segment_budget: Option<TokenBudget>

Segment-based token budget (optional)

Implementations§

Source§

impl ContextAssembler

Source

pub fn new(config: CellstateConfig) -> CellstateResult<Self>

Create a new context assembler with the given configuration.

Source

pub fn with_segment_budget( config: CellstateConfig, budget: TokenBudget, ) -> CellstateResult<Self>

Create a context assembler with segment-based budget.

Source

fn section_to_segment(section_type: SectionType) -> ContextSegment

Map SectionType to ContextSegment for budget tracking.

Source

pub fn assemble(&self, pkg: ContextPackage) -> CellstateResult<ContextWindow>

Assemble context from a package with token budget management. Sections are added in priority order until budget is exhausted.

When segment budget is configured, sections are also checked against their respective segment budgets.

§Arguments
  • pkg - The context package to assemble
§Returns

An assembled ContextWindow with sections ordered by priority

Source

pub fn reassemble( &self, current: &ContextWindow, updated_pkg: ContextPackage, ) -> CellstateResult<(ContextWindow, ContextPageDiff)>

Re-assemble a context window mid-scope after scoring changes.

Takes the current window and an updated context package (with re-scored notes/artifacts), reassembles from scratch using the same budget rules, then diffs the old and new windows to produce a ContextPageDiff.

This is a pure function — no I/O. The diff provides the audit trail for what was evicted, promoted, or retained.

§Returns

Tuple of (new window, diff describing what changed).

Source

fn diff_windows(old: &ContextWindow, new: &ContextWindow) -> ContextPageDiff

Compare two context windows and produce a diff.

Source

fn build_sections(&self, pkg: &ContextPackage) -> Vec<ContextSection>

Build sections from a context package.

Source

fn format_kernel_config(&self, kernel: &KernelConfig) -> String

Format kernel config into a string.

Source

fn format_notes(&self, notes: &[Note]) -> String

Format notes into a string.

Source

fn format_artifacts(&self, artifacts: &[Artifact]) -> String

Format artifacts into a string.

Source

fn format_working_set(&self, entries: &[AgentWorkingSetEntry]) -> String

Format working-set entries into a string.

Format graph links into a string.

Source

fn format_turns(&self, turns: &[Turn]) -> String

Format conversation turns into a string.

Source

fn format_hierarchy(&self, hierarchy: &[Trajectory]) -> String

Format trajectory hierarchy into a string.

Source

fn format_scope_summaries(&self, summaries: &[ScopeSummary]) -> String

Format scope summaries into a string.

Source

pub fn token_budget(&self) -> i32

Get the token budget from config.

Trait Implementations§

Source§

impl Clone for ContextAssembler

Source§

fn clone(&self) -> ContextAssembler

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ContextAssembler

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.