use codex_mobile_contracts::BridgeManagementOperation;
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetRuntimeStatusRequest {
pub runtime_id: Option<String>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StartBridgeManagementRequest {
pub operation: BridgeManagementOperation,
}
#[derive(Debug, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ReadBridgeManagementRequest {
pub task_id: Option<String>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StartRuntimeRequest {
pub runtime_id: Option<String>,
pub display_name: Option<String>,
pub codex_home: Option<String>,
pub codex_binary: Option<String>,
pub auto_start: Option<bool>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StopRuntimeRequest {
pub runtime_id: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RestartRuntimeRequest {
pub runtime_id: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PruneRuntimeRequest {
pub runtime_id: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CreateDirectoryBookmarkRequest {
pub path: String,
pub display_name: Option<String>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RemoveDirectoryBookmarkRequest {
pub path: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ReadDirectoryRequest {
pub runtime_id: Option<String>,
pub path: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListThreadsRequest {
pub directory_prefix: Option<String>,
pub runtime_id: Option<String>,
pub limit: Option<usize>,
pub cursor: Option<String>,
pub archived: Option<bool>,
pub search_term: Option<String>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StartThreadRequest {
pub runtime_id: Option<String>,
pub cwd: String,
pub model: Option<String>,
pub name: Option<String>,
pub note: Option<String>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ResumeThreadRequest {
pub thread_id: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ReadThreadRequest {
pub thread_id: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StageInputImageRequest {
pub file_name: Option<String>,
pub mime_type: Option<String>,
pub base64_data: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
#[serde(default)]
pub struct StagedInputImage {
pub local_path: String,
pub display_name: Option<String>,
pub mime_type: Option<String>,
pub size_bytes: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(tag = "type", rename_all = "camelCase")]
pub enum SendTurnInputItem {
Text { text: String },
LocalImage { path: String },
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SendTurnRequest {
pub thread_id: String,
#[serde(default)]
pub text: String,
pub input_items: Option<Vec<SendTurnInputItem>>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct InterruptTurnRequest {
pub thread_id: String,
pub turn_id: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateThreadRequest {
pub thread_id: String,
pub name: Option<String>,
pub note: Option<String>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ArchiveThreadRequest {
pub thread_id: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UnarchiveThreadRequest {
pub thread_id: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RespondPendingRequestRequest {
pub request_id: String,
pub response: Value,
}