pub struct RequestMetadata {Show 14 fields
pub source: RequestSource,
pub session_id: Option<String>,
pub directive_id: Option<String>,
pub task_id: Option<String>,
pub agent_id: Option<String>,
pub user_id: Option<String>,
pub hints: HashMap<String, String>,
pub memory_tags: Vec<String>,
pub allowed_tools: Vec<String>,
pub tools_enabled: Option<bool>,
pub reflection_enabled: Option<bool>,
pub workspace_dir: Option<PathBuf>,
pub session_llm_config: Option<SessionLlmInfo>,
pub permission_level: PermissionLevel,
}Expand description
Metadata about the request source and context
Fields§
§source: RequestSourceSource of the request
session_id: Option<String>Session ID if available
directive_id: Option<String>Higher-level directive ID if available.
task_id: Option<String>Active task ID if available.
agent_id: Option<String>Agent ID if available.
user_id: Option<String>User ID if available (for A2A)
hints: HashMap<String, String>Additional context hints
Memory tags used to target retrieval.
allowed_tools: Vec<String>Allowed tools (if empty, all tools are allowed)
tools_enabled: Option<bool>Optional per-request override for whether tools may be executed.
When None, the pipeline uses its default tool behavior (controlled by
PipelineConfig::enable_tools). When Some(false), tool execution is
disabled for this request even if the pipeline is generally configured to
allow tools.
This is useful for adapter layers (GUI/CLI) that expose legacy commands which historically performed a single LLM call without tools.
reflection_enabled: Option<bool>Optional per-request override for whether experiential reflection is enabled.
When None, the pipeline uses its configured default reflection behavior.
This is primarily used by session adapters so sessions can inherit the
global default or explicitly override it.
workspace_dir: Option<PathBuf>Workspace directory for sandboxed file/shell operations If None, operations are unrestricted (legacy behavior)
session_llm_config: Option<SessionLlmInfo>Session-scoped LLM configuration (for agent awareness)
permission_level: PermissionLevelSession permission level for tool execution
Trait Implementations§
Source§impl Clone for RequestMetadata
impl Clone for RequestMetadata
Source§fn clone(&self) -> RequestMetadata
fn clone(&self) -> RequestMetadata
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RequestMetadata
impl Debug for RequestMetadata
Source§impl Default for RequestMetadata
impl Default for RequestMetadata
Source§fn default() -> RequestMetadata
fn default() -> RequestMetadata
Auto Trait Implementations§
impl Freeze for RequestMetadata
impl RefUnwindSafe for RequestMetadata
impl Send for RequestMetadata
impl Sync for RequestMetadata
impl Unpin for RequestMetadata
impl UnwindSafe for RequestMetadata
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().