use crate::agent::{
AgentExecutionStatus, AgentMessage, AgentOutput, AgentSessionStartConfig, AgentSessionState,
AgentToolConfig, AgentWorkspace, PreparedAgentWorkspace,
};
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CancelAgentProviderTurnRequest {
pub turn_id: String,
pub reason: String,
pub provider_name: String,
pub session_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CreateAgentProviderSessionRequest {
pub idempotency_key: String,
pub model: String,
pub client_ref: String,
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
pub session_start: Option<AgentSessionStartConfig>,
pub prepared_workspace: Option<PreparedAgentWorkspace>,
pub provider_name: String,
pub workspace: Option<AgentWorkspace>,
pub tools: Option<AgentToolConfig>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CreateAgentProviderTurnRequest {
pub turn_id: String,
pub session_id: String,
pub idempotency_key: String,
pub model: String,
pub messages: Vec<AgentMessage>,
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
pub execution_ref: String,
pub model_options: Option<serde_json::Map<String, serde_json::Value>>,
pub timeout_seconds: i32,
pub output: Option<AgentOutput>,
pub provider_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetAgentProviderSessionRequest {
pub session_id: String,
pub provider_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetAgentProviderTurnRequest {
pub turn_id: String,
pub provider_name: String,
pub session_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListAgentProviderInteractionsRequest {
pub turn_id: String,
pub provider_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListAgentProviderSessionsRequest {
pub session_ids: Vec<String>,
pub state: AgentSessionState,
pub limit: i32,
pub summary_only: bool,
pub provider_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListAgentProviderTurnEventsRequest {
pub turn_id: String,
pub after_seq: i64,
pub limit: i32,
pub provider_name: String,
pub session_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListAgentProviderTurnsRequest {
pub session_id: String,
pub turn_ids: Vec<String>,
pub status: AgentExecutionStatus,
pub limit: i32,
pub summary_only: bool,
pub provider_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ResolveAgentProviderInteractionRequest {
pub interaction_id: String,
pub resolution: Option<serde_json::Map<String, serde_json::Value>>,
pub turn_id: String,
pub provider_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateAgentProviderSessionRequest {
pub session_id: String,
pub client_ref: String,
pub state: AgentSessionState,
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
pub provider_name: String,
}