pub struct PromptBundle {
pub fragments: Vec<PromptFragment>,
pub environment: EnvironmentMetadata,
pub project_context: Vec<ContextSource>,
pub tool_catalog: Vec<ToolDefinition>,
pub available_skills: Vec<SkillMetadata>,
pub transcript_tail: Vec<Entry>,
pub user_turn: String,
pub history_reuse: HistoryReuse,
pub prev_context_hash: Option<u64>,
pub context_ledger: Option<ContextLedger>,
}Expand description
The structured prompt bundle before provider-specific lowering.
Each field is a separate piece of model context. The std::fmt::Display
implementation renders the full system prompt text;
lower_to_umans_messages converts it to Anthropic-compatible messages.
Fields§
§fragments: Vec<PromptFragment>Ordered prompt fragments: base identity, communication style, action model, edit guidance, action safety, self-knowledge, web/source guidance.
environment: EnvironmentMetadataEnvironment: cwd, model, search mode, rounded date.
project_context: Vec<ContextSource>Loaded AGENTS.md context sources.
tool_catalog: Vec<ToolDefinition>Tool catalog as provider-native schemas.
available_skills: Vec<SkillMetadata>Available Agent Skills metadata. Full skill instructions are read only after activation.
transcript_tail: Vec<Entry>Projected model-visible transcript tail.
user_turn: StringCurrent user prompt text.
history_reuse: HistoryReuseWhether the provider supports reusable history / prompt caching for
AGENTS.md content. When HistoryReuse::Available, full text is
included only when the content hash changes.
prev_context_hash: Option<u64>Content hash of the root AGENTS.md from the previous turn, if any.
Used with HistoryReuse::Available to skip re-sending unchanged
AGENTS.md text. None on the first turn or when no context is loaded.
context_ledger: Option<ContextLedger>Selected context projection from the context selection policy (P7/P8).
When Some, the system prompt renders selected project instructions,
compaction summaries, and pinned handles from the ledger items,
the transcript tail is taken from ledger-selected transcript context,
and a compact context dashboard is added to <thndrs_self_knowledge>.
When None, the legacy rendering path is used (project_context plus
the fixed transcript tail projection), preserving existing behavior.
Implementations§
Source§impl PromptBundle
impl PromptBundle
Sourcepub fn new(
cwd: &Path,
model: &str,
mode: WebSearchMode,
context_sources: &[ContextSource],
transcript: &[Entry],
user_turn: &str,
) -> PromptBundle
pub fn new( cwd: &Path, model: &str, mode: WebSearchMode, context_sources: &[ContextSource], transcript: &[Entry], user_turn: &str, ) -> PromptBundle
Build a PromptBundle from app state and context.
Sourcepub fn new_with_skills(
cwd: &Path,
model: &str,
mode: WebSearchMode,
context_sources: &[ContextSource],
available_skills: &[SkillMetadata],
transcript: &[Entry],
user_turn: &str,
) -> PromptBundle
pub fn new_with_skills( cwd: &Path, model: &str, mode: WebSearchMode, context_sources: &[ContextSource], available_skills: &[SkillMetadata], transcript: &[Entry], user_turn: &str, ) -> PromptBundle
Build a PromptBundle including discovered Agent Skills metadata.
Sourcepub fn with_tool_catalog(self, tool_catalog: Vec<ToolDefinition>) -> Self
pub fn with_tool_catalog(self, tool_catalog: Vec<ToolDefinition>) -> Self
Replace the bundle’s tool catalog with a runtime-specific catalog.
Sourcepub fn with_context_ledger(self, ledger: ContextLedger) -> Self
pub fn with_context_ledger(self, ledger: ContextLedger) -> Self
Attach a selected context projection (P7 ledger) so the system prompt
renders selected instructions, summaries, pins, and transcript
context from the ledger, and adds a context dashboard to
<thndrs_self_knowledge>.
Trait Implementations§
Source§impl Clone for PromptBundle
impl Clone for PromptBundle
Source§fn clone(&self) -> PromptBundle
fn clone(&self) -> PromptBundle
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PromptBundle
impl Debug for PromptBundle
Source§impl From<&PromptBundle> for SelfKnowledgeSnapshot
impl From<&PromptBundle> for SelfKnowledgeSnapshot
Source§fn from(bundle: &PromptBundle) -> SelfKnowledgeSnapshot
fn from(bundle: &PromptBundle) -> SelfKnowledgeSnapshot
Auto Trait Implementations§
impl Freeze for PromptBundle
impl RefUnwindSafe for PromptBundle
impl Send for PromptBundle
impl Sync for PromptBundle
impl Unpin for PromptBundle
impl UnsafeUnpin for PromptBundle
impl UnwindSafe for PromptBundle
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more