zeph-context 0.22.4

Context budget, manager, compaction strategy, and assembler for the Zeph agent
Documentation

zeph-context

Crates.io docs.rs License: MIT OR Apache-2.0 MSRV

Context budget, lifecycle management, compaction strategy, and stateless context assembler for the Zeph AI agent.

This crate contains the stateless and data-only parts of context management extracted from zeph-core. It has no dependency on zeph-core — callers implement the IndexAccess trait and populate ContextMemoryView before each assembly pass.

Usage

use zeph_context::budget::ContextBudget;

let budget = ContextBudget::new(128_000, 0.15);
assert_eq!(budget.max_tokens(), 128_000);

Modules

  • budgetContextBudget and BudgetAllocation for token budget calculation
  • managerContextManager state machine and CompactionState lifecycle tracking
  • assemblerContextAssembler parallel fetch coordinator; classifies each slot into a TypedPage, enforces per-type fidelity invariants at compaction boundaries, and emits a CompactionAuditSink record per compacted page
  • inputContextAssemblyInput, ContextMemoryView, IndexAccess trait
  • slotContextSlot, CompactionOutcome, message-chunking helpers
  • typed_pageTypedPage (BLAKE3 content-hash id), PageType enum (ToolOutput, ConversationTurn, MemoryExcerpt, SystemContext), per-type PageInvariant implementations, InvariantRegistry, and the CompactionAuditSink bounded async mpsc channel that records one audit entry per compacted page
  • summarization — pure prompt-building helpers for context compaction
  • tool_result_compress — per-result and batch-level token-budget enforcement for tool outputs
  • compression_feedback — context-loss detection and failure classification
  • microcompact — low-value tool detection helpers for time-based microcompact
  • fidelity — heuristic fidelity scorer for Context-Adaptive Memory (CAM)
  • turn_contextTurnId and TurnContext per-turn carrier
  • errorAssemblerError

ClawVM typed-page compaction

ContextAssembler::gather() classifies every context slot into a TypedPage keyed by a BLAKE3 content hash. Each PageType carries a PageInvariant that declares the minimum-fidelity guarantee for compaction:

PageType Invariant
ToolOutput Preserve tool name, return code, and first/last N bytes of output
ConversationTurn Preserve role, first sentence, and any code blocks
MemoryExcerpt Preserve entity names and relationship predicates
SystemContext Never compact — always injected verbatim

At every compaction boundary the invariant is checked before the LLM compaction call. If the post-compaction result would violate the invariant the compaction is rejected and the original content is retained.

License

Licensed under either of MIT or Apache License, Version 2.0 at your option.