pub struct ToolUseContext {Show 42 fields
pub options: ToolUseContextOptions,
pub abort_signal: Option<()>,
pub read_file_state: Option<Arc<dyn Any + Send + Sync>>,
pub get_app_state: Box<dyn Fn() -> Box<dyn Any> + Send + Sync>,
pub set_app_state: Box<dyn Fn(Box<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>) + Send + Sync>,
pub set_app_state_for_tasks: Option<Box<dyn Fn(Box<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>) + Send + Sync>>,
pub handle_elicitation: Option<Arc<dyn Fn(String, Value, ()) -> Pin<Box<dyn Future<Output = Value> + Send>> + Send + Sync>>,
pub set_tool_jsx: Option<SetToolJsxFn>,
pub add_notification: Option<Arc<dyn Fn(Value) + Send + Sync>>,
pub append_system_message: Option<Box<dyn Fn(SystemMessage) + Send + Sync>>,
pub send_os_notification: Option<Box<dyn Fn(String, String) + Send + Sync>>,
pub nested_memory_attachment_triggers: Option<Arc<Mutex<HashSet<String>>>>,
pub loaded_nested_memory_paths: Option<Arc<Mutex<HashSet<String>>>>,
pub dynamic_skill_dir_triggers: Option<Arc<Mutex<HashSet<String>>>>,
pub discovered_skill_names: Option<Arc<Mutex<HashSet<String>>>>,
pub user_modified: bool,
pub set_in_progress_tool_use_ids: Box<dyn Fn(Box<dyn Fn(&HashSet<String>) -> HashSet<String>>) + Send + Sync>,
pub set_has_interruptible_tool_in_progress: Option<Box<dyn Fn(bool) + Send + Sync>>,
pub set_response_length: Box<dyn Fn(Box<dyn Fn(usize) -> usize>) + Send + Sync>,
pub push_api_metrics_entry: Option<Box<dyn Fn(u64) + Send + Sync>>,
pub set_stream_mode: Option<Box<dyn Fn(String) + Send + Sync>>,
pub on_compact_progress: Option<Box<dyn Fn(CompactProgressEvent) + Send + Sync>>,
pub set_sdk_status: Option<Box<dyn Fn(String) + Send + Sync>>,
pub open_message_selector: Option<Box<dyn Fn() + Send + Sync>>,
pub update_file_history_state: Box<dyn Fn(Box<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>) + Send + Sync>,
pub update_attribution_state: Box<dyn Fn(Box<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>) + Send + Sync>,
pub set_conversation_id: Option<Box<dyn Fn(String) + Send + Sync>>,
pub agent_id: Option<String>,
pub agent_type: Option<String>,
pub require_can_use_tool: bool,
pub messages: Vec<Message>,
pub file_reading_limits: Option<FileReadingLimits>,
pub glob_limits: Option<GlobLimits>,
pub tool_decisions: Option<Arc<Mutex<HashMap<String, ToolDecisionEntry>>>>,
pub query_tracking: Option<QueryChainTracking>,
pub request_prompt: Option<Arc<dyn Fn(String, Option<String>) -> Box<dyn Fn(Value) -> Pin<Box<dyn Future<Output = Value> + Send>> + Send> + Send + Sync>>,
pub tool_use_id: Option<String>,
pub critical_system_reminder_experimental: Option<String>,
pub preserve_tool_use_results: bool,
pub local_denial_tracking: Option<Arc<Mutex<DenialTrackingState>>>,
pub content_replacement_state: Option<Arc<dyn Any + Send + Sync>>,
pub rendered_system_prompt: Option<Arc<dyn Any + Send + Sync>>,
}Expand description
Context passed to tool calls during execution, providing access to configuration, state, callbacks, and other runtime infrastructure.
This mirrors the TypeScript ToolUseContext type.
Fields§
§options: ToolUseContextOptions§abort_signal: Option<()>Abort signal (placeholder - wired to the consumer’s AbortController).
read_file_state: Option<Arc<dyn Any + Send + Sync>>§get_app_state: Box<dyn Fn() -> Box<dyn Any> + Send + Sync>§set_app_state: Box<dyn Fn(Box<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>) + Send + Sync>§set_app_state_for_tasks: Option<Box<dyn Fn(Box<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>) + Send + Sync>>§handle_elicitation: Option<Arc<dyn Fn(String, Value, ()) -> Pin<Box<dyn Future<Output = Value> + Send>> + Send + Sync>>§set_tool_jsx: Option<SetToolJsxFn>§add_notification: Option<Arc<dyn Fn(Value) + Send + Sync>>§append_system_message: Option<Box<dyn Fn(SystemMessage) + Send + Sync>>§send_os_notification: Option<Box<dyn Fn(String, String) + Send + Sync>>§nested_memory_attachment_triggers: Option<Arc<Mutex<HashSet<String>>>>§loaded_nested_memory_paths: Option<Arc<Mutex<HashSet<String>>>>§dynamic_skill_dir_triggers: Option<Arc<Mutex<HashSet<String>>>>§discovered_skill_names: Option<Arc<Mutex<HashSet<String>>>>§user_modified: bool§set_in_progress_tool_use_ids: Box<dyn Fn(Box<dyn Fn(&HashSet<String>) -> HashSet<String>>) + Send + Sync>§set_has_interruptible_tool_in_progress: Option<Box<dyn Fn(bool) + Send + Sync>>§set_response_length: Box<dyn Fn(Box<dyn Fn(usize) -> usize>) + Send + Sync>§push_api_metrics_entry: Option<Box<dyn Fn(u64) + Send + Sync>>§set_stream_mode: Option<Box<dyn Fn(String) + Send + Sync>>§on_compact_progress: Option<Box<dyn Fn(CompactProgressEvent) + Send + Sync>>§set_sdk_status: Option<Box<dyn Fn(String) + Send + Sync>>§open_message_selector: Option<Box<dyn Fn() + Send + Sync>>§update_file_history_state: Box<dyn Fn(Box<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>) + Send + Sync>§update_attribution_state: Box<dyn Fn(Box<dyn Fn(Box<dyn Any>) -> Box<dyn Any>>) + Send + Sync>§set_conversation_id: Option<Box<dyn Fn(String) + Send + Sync>>§agent_id: Option<String>§agent_type: Option<String>§require_can_use_tool: bool§messages: Vec<Message>§file_reading_limits: Option<FileReadingLimits>§glob_limits: Option<GlobLimits>§tool_decisions: Option<Arc<Mutex<HashMap<String, ToolDecisionEntry>>>>§query_tracking: Option<QueryChainTracking>§request_prompt: Option<Arc<dyn Fn(String, Option<String>) -> Box<dyn Fn(Value) -> Pin<Box<dyn Future<Output = Value> + Send>> + Send> + Send + Sync>>§tool_use_id: Option<String>§critical_system_reminder_experimental: Option<String>§preserve_tool_use_results: bool§local_denial_tracking: Option<Arc<Mutex<DenialTrackingState>>>§content_replacement_state: Option<Arc<dyn Any + Send + Sync>>§rendered_system_prompt: Option<Arc<dyn Any + Send + Sync>>Implementations§
Auto Trait Implementations§
impl Freeze for ToolUseContext
impl !RefUnwindSafe for ToolUseContext
impl Send for ToolUseContext
impl Sync for ToolUseContext
impl Unpin for ToolUseContext
impl UnsafeUnpin for ToolUseContext
impl !UnwindSafe for ToolUseContext
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
Mutably borrows from an owned value. Read more