pub struct ChatTurnInput {Show 18 fields
pub session_id: String,
pub project_id: Option<ProjectId>,
pub model: String,
pub model_ref: Option<ProviderModelRef>,
pub provider: Option<String>,
pub reasoning_effort: Option<ReasoningEffort>,
pub permission_mode: Option<SessionPermissionMode>,
pub message: String,
pub system_prompt: Option<String>,
pub enhance_prompt: Option<String>,
pub root_orchestration_prompt: Option<bool>,
pub root_orchestration_only: Option<bool>,
pub workspace_path: Option<String>,
pub default_workspace_path: Option<String>,
pub selected_skill_ids: Option<Vec<String>>,
pub workflow_selection: Option<WorkflowSelection>,
pub orchestration_opt_in: Option<bool>,
pub data_dir: Option<PathBuf>,
}Expand description
Input for the chat turn use case.
Fields§
§session_id: String§project_id: Option<ProjectId>Project membership observed and validated by the caller. The
authoritative load inside prepare_chat_turn must still match this
value before any prompt/workspace/message mutation. For a genuinely new
session this becomes its initial stable membership.
model: String§model_ref: Option<ProviderModelRef>§provider: Option<String>§reasoning_effort: Option<ReasoningEffort>Explicit reasoning override used when this chat creates a session. Existing sessions remain authoritative; later changes go through the session PATCH contract.
permission_mode: Option<SessionPermissionMode>Resolved initial session-scoped permission mode used when this chat
creates a session (explicit request value wins over the durable
permission-policy default, resolved by the caller). Existing sessions
remain authoritative; later changes go through the session PATCH
contract. None keeps the runtime default (Default).
message: String§system_prompt: Option<String>§enhance_prompt: Option<String>§root_orchestration_prompt: Option<bool>Explicit, durable root delegation guidance selection. Omission keeps
the current Session value; false turns it off.
root_orchestration_only: Option<bool>Explicit Root tool authority selection. Omission retains the durable choice; both enable and disable are rejected for Child sessions.
workspace_path: Option<String>§default_workspace_path: Option<String>Caller-owned live-config default. This is distinct from an explicit request field so an omitted workspace can still prefer the freshly loaded durable session under the transaction lock.
selected_skill_ids: Option<Vec<String>>§workflow_selection: Option<WorkflowSelection>§orchestration_opt_in: Option<bool>§data_dir: Option<PathBuf>Optional data directory for workspace path fallback when neither request nor metadata provides one.