codex_mobile_bridge/bridge_protocol/
requests.rs1use 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}