pub struct PromptContext<'a> {Show 13 fields
pub workspace_dir: &'a Path,
pub model_name: &'a str,
pub tools: &'a [Box<dyn Tool>],
pub skills: &'a [Skill],
pub skills_prompt_mode: SkillsPromptInjectionMode,
pub skill_effectiveness: Option<&'a dyn SkillEffectivenessProvider>,
pub identity_config: Option<&'a IdentityConfig>,
pub dispatcher_instructions: &'a str,
pub tool_descriptions: Option<&'a ToolDescriptions>,
pub security_summary: Option<String>,
pub autonomy_level: AutonomyLevel,
pub operator_enabled: bool,
pub kumiho_enabled: bool,
}Fields§
§workspace_dir: &'a Path§model_name: &'a str§tools: &'a [Box<dyn Tool>]§skills: &'a [Skill]§skills_prompt_mode: SkillsPromptInjectionMode§skill_effectiveness: Option<&'a dyn SkillEffectivenessProvider>Optional provider that returns recency-weighted success rates per
skill name. When present, SkillsSection reranks skills by
effectiveness before injecting them — high-success skills bubble
to the top. When None the static load order is preserved.
identity_config: Option<&'a IdentityConfig>§dispatcher_instructions: &'a str§tool_descriptions: Option<&'a ToolDescriptions>Locale-aware tool descriptions. When present, tool descriptions in prompts are resolved from the locale file instead of hardcoded values.
security_summary: Option<String>Pre-rendered security policy summary for inclusion in the Safety prompt section. When present, the LLM sees the concrete constraints (allowed commands, forbidden paths, autonomy level) so it can plan tool calls without trial-and-error. See issue #2404.
autonomy_level: AutonomyLevelAutonomy level from config. Controls whether the safety section includes “ask before acting” instructions. Full autonomy omits them so the model executes tools directly without simulating approval.
operator_enabled: boolWhether Operator orchestration is enabled. When true, the
OperatorIdentitySection renders the operator-first identity
at the top of the system prompt.
kumiho_enabled: boolWhether Kumiho memory is enabled.
Auto Trait Implementations§
impl<'a> Freeze for PromptContext<'a>
impl<'a> !RefUnwindSafe for PromptContext<'a>
impl<'a> Send for PromptContext<'a>
impl<'a> Sync for PromptContext<'a>
impl<'a> Unpin for PromptContext<'a>
impl<'a> UnsafeUnpin for PromptContext<'a>
impl<'a> !UnwindSafe for PromptContext<'a>
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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