pub struct SessionConfig {Show 25 fields
pub session_id: Option<String>,
pub model: Option<String>,
pub reasoning_effort: Option<ReasoningEffort>,
pub config_dir: Option<String>,
pub tools: Option<Vec<ToolDefinition>>,
pub system_message: Option<SystemMessageConfig>,
pub available_tools: Option<Vec<String>>,
pub excluded_tools: Option<Vec<String>>,
pub provider: Option<ProviderConfig>,
pub working_directory: Option<String>,
pub streaming: Option<bool>,
pub include_sub_agent_streaming_events: Option<bool>,
pub mcp_servers: Option<HashMap<String, McpServerConfig>>,
pub custom_agents: Option<Vec<CustomAgentConfig>>,
pub skill_directories: Option<Vec<String>>,
pub disabled_skills: Option<Vec<String>>,
pub infinite_sessions: Option<InfiniteSessionConfig>,
pub model_capabilities: Option<HashMap<String, Value>>,
pub enable_config_discovery: Option<bool>,
pub github_token: Option<String>,
pub request_permission: Option<bool>,
pub request_user_input: Option<bool>,
pub hooks: Option<bool>,
pub commands: Option<Vec<CommandDefinition>>,
pub on_elicitation_request: Option<ElicitationHandlerFn>,
}Expand description
Configuration for creating a session.
This struct holds the parameters sent to the server via session.create.
Tool handlers, permission handlers, user input handlers, and hooks
are registered separately on the Rust side and are not serialized.
Fields§
§session_id: Option<String>§model: Option<String>§reasoning_effort: Option<ReasoningEffort>§config_dir: Option<String>§tools: Option<Vec<ToolDefinition>>§system_message: Option<SystemMessageConfig>§available_tools: Option<Vec<String>>§excluded_tools: Option<Vec<String>>§provider: Option<ProviderConfig>§working_directory: Option<String>§streaming: Option<bool>§include_sub_agent_streaming_events: Option<bool>Include sub-agent streaming events in the event stream. Defaults to true.
mcp_servers: Option<HashMap<String, McpServerConfig>>§custom_agents: Option<Vec<CustomAgentConfig>>§skill_directories: Option<Vec<String>>§disabled_skills: Option<Vec<String>>§infinite_sessions: Option<InfiniteSessionConfig>§model_capabilities: Option<HashMap<String, Value>>Per-property overrides for model capabilities, deep-merged over runtime defaults.
enable_config_discovery: Option<bool>When true, automatically discovers MCP server configurations from the working directory. Defaults to false.
github_token: Option<String>GitHub token for authentication. When set on session config, overrides the client-level token for this session only.
request_permission: Option<bool>Set by the SDK based on whether handlers are registered (not user-set).
request_user_input: Option<bool>Set by the SDK based on whether handlers are registered (not user-set).
hooks: Option<bool>Set by the SDK based on whether hooks are registered (not user-set).
commands: Option<Vec<CommandDefinition>>Slash commands registered for this session (not serialized).
on_elicitation_request: Option<ElicitationHandlerFn>Handler for elicitation requests from the server (not serialized).
Trait Implementations§
Source§impl Clone for SessionConfig
impl Clone for SessionConfig
Source§fn clone(&self) -> SessionConfig
fn clone(&self) -> SessionConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more