Skip to main content

codex_mobile_bridge/bridge_protocol/
requests.rs

1use serde::Deserialize;
2use serde_json::Value;
3
4#[derive(Debug, Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub struct GetRuntimeStatusRequest {
7    pub runtime_id: Option<String>,
8}
9
10#[derive(Debug, Deserialize)]
11#[serde(rename_all = "camelCase")]
12pub struct StartRuntimeRequest {
13    pub runtime_id: Option<String>,
14    pub display_name: Option<String>,
15    pub codex_home: Option<String>,
16    pub codex_binary: Option<String>,
17    pub auto_start: Option<bool>,
18}
19
20#[derive(Debug, Deserialize)]
21#[serde(rename_all = "camelCase")]
22pub struct StopRuntimeRequest {
23    pub runtime_id: String,
24}
25
26#[derive(Debug, Deserialize)]
27#[serde(rename_all = "camelCase")]
28pub struct RestartRuntimeRequest {
29    pub runtime_id: String,
30}
31
32#[derive(Debug, Deserialize)]
33#[serde(rename_all = "camelCase")]
34pub struct PruneRuntimeRequest {
35    pub runtime_id: String,
36}
37
38#[derive(Debug, Deserialize)]
39#[serde(rename_all = "camelCase")]
40pub struct CreateDirectoryBookmarkRequest {
41    pub path: String,
42    pub display_name: Option<String>,
43}
44
45#[derive(Debug, Deserialize)]
46#[serde(rename_all = "camelCase")]
47pub struct RemoveDirectoryBookmarkRequest {
48    pub path: String,
49}
50
51#[derive(Debug, Deserialize)]
52#[serde(rename_all = "camelCase")]
53pub struct ReadDirectoryRequest {
54    pub runtime_id: Option<String>,
55    pub path: String,
56}
57
58#[derive(Debug, Deserialize)]
59#[serde(rename_all = "camelCase")]
60pub struct ListThreadsRequest {
61    pub directory_prefix: Option<String>,
62    pub runtime_id: Option<String>,
63    pub limit: Option<usize>,
64    pub cursor: Option<String>,
65    pub archived: Option<bool>,
66    pub search_term: Option<String>,
67}
68
69#[derive(Debug, Deserialize)]
70#[serde(rename_all = "camelCase")]
71pub struct StartThreadRequest {
72    pub runtime_id: Option<String>,
73    pub cwd: String,
74    pub model: Option<String>,
75    pub name: Option<String>,
76    pub note: Option<String>,
77}
78
79#[derive(Debug, Deserialize)]
80#[serde(rename_all = "camelCase")]
81pub struct ResumeThreadRequest {
82    pub thread_id: String,
83}
84
85#[derive(Debug, Deserialize)]
86#[serde(rename_all = "camelCase")]
87pub struct ReadThreadRequest {
88    pub thread_id: String,
89}
90
91#[derive(Debug, Deserialize)]
92#[serde(rename_all = "camelCase")]
93pub struct StageInputImageRequest {
94    pub file_name: Option<String>,
95    pub mime_type: Option<String>,
96    pub base64_data: String,
97}
98
99#[derive(Debug, Clone, serde::Serialize, Deserialize)]
100#[serde(rename_all = "camelCase")]
101pub struct StagedInputImage {
102    pub local_path: String,
103    pub display_name: Option<String>,
104    pub mime_type: Option<String>,
105    pub size_bytes: i64,
106}
107
108#[derive(Debug, Clone, serde::Serialize, Deserialize)]
109#[serde(tag = "type", rename_all = "camelCase")]
110pub enum SendTurnInputItem {
111    Text { text: String },
112    LocalImage { path: String },
113}
114
115#[derive(Debug, Deserialize)]
116#[serde(rename_all = "camelCase")]
117pub struct SendTurnRequest {
118    pub thread_id: String,
119    #[serde(default)]
120    pub text: String,
121    pub input_items: Option<Vec<SendTurnInputItem>>,
122}
123
124#[derive(Debug, Deserialize)]
125#[serde(rename_all = "camelCase")]
126pub struct InterruptTurnRequest {
127    pub thread_id: String,
128    pub turn_id: String,
129}
130
131#[derive(Debug, Deserialize)]
132#[serde(rename_all = "camelCase")]
133pub struct UpdateThreadRequest {
134    pub thread_id: String,
135    pub name: Option<String>,
136    pub note: Option<String>,
137}
138
139#[derive(Debug, Deserialize)]
140#[serde(rename_all = "camelCase")]
141pub struct ArchiveThreadRequest {
142    pub thread_id: String,
143}
144
145#[derive(Debug, Deserialize)]
146#[serde(rename_all = "camelCase")]
147pub struct UnarchiveThreadRequest {
148    pub thread_id: String,
149}
150
151#[derive(Debug, Deserialize)]
152#[serde(rename_all = "camelCase")]
153pub struct RespondPendingRequestRequest {
154    pub request_id: String,
155    pub response: Value,
156}