Skip to main content

codex_mobile_wire/
requests.rs

1use codex_mobile_contracts::{
2    BridgeManagementOperation, DraftImageAttachment, DraftImageSendMode, QueueDispatchMode,
3};
4use serde::{Deserialize, Serialize};
5use serde_json::Value;
6
7#[derive(Debug, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct GetRuntimeStatusRequest {
10    pub runtime_id: Option<String>,
11}
12
13#[derive(Debug, Deserialize)]
14#[serde(rename_all = "camelCase")]
15pub struct StartBridgeManagementRequest {
16    pub operation: BridgeManagementOperation,
17}
18
19#[derive(Debug, Deserialize, Default)]
20#[serde(rename_all = "camelCase")]
21pub struct ReadBridgeManagementRequest {
22    pub task_id: Option<String>,
23}
24
25#[derive(Debug, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct StartRuntimeRequest {
28    pub runtime_id: Option<String>,
29    pub display_name: Option<String>,
30    pub codex_home: Option<String>,
31    pub codex_binary: Option<String>,
32    pub auto_start: Option<bool>,
33}
34
35#[derive(Debug, Deserialize)]
36#[serde(rename_all = "camelCase")]
37pub struct StopRuntimeRequest {
38    pub runtime_id: String,
39}
40
41#[derive(Debug, Deserialize)]
42#[serde(rename_all = "camelCase")]
43pub struct RestartRuntimeRequest {
44    pub runtime_id: String,
45}
46
47#[derive(Debug, Deserialize)]
48#[serde(rename_all = "camelCase")]
49pub struct PruneRuntimeRequest {
50    pub runtime_id: String,
51}
52
53#[derive(Debug, Deserialize)]
54#[serde(rename_all = "camelCase")]
55pub struct CreateDirectoryBookmarkRequest {
56    pub path: String,
57    pub display_name: Option<String>,
58}
59
60#[derive(Debug, Deserialize)]
61#[serde(rename_all = "camelCase")]
62pub struct RemoveDirectoryBookmarkRequest {
63    pub path: String,
64}
65
66#[derive(Debug, Deserialize)]
67#[serde(rename_all = "camelCase")]
68pub struct ReadDirectoryRequest {
69    pub runtime_id: Option<String>,
70    pub path: String,
71}
72
73#[derive(Debug, Deserialize)]
74#[serde(rename_all = "camelCase")]
75pub struct ListThreadsRequest {
76    pub directory_prefix: Option<String>,
77    pub runtime_id: Option<String>,
78    pub limit: Option<usize>,
79    pub cursor: Option<String>,
80    pub archived: Option<bool>,
81    pub search_term: Option<String>,
82}
83
84#[derive(Debug, Deserialize)]
85#[serde(rename_all = "camelCase")]
86pub struct StartThreadRequest {
87    pub runtime_id: Option<String>,
88    pub cwd: String,
89    pub model: Option<String>,
90    pub name: Option<String>,
91}
92
93#[derive(Debug, Deserialize)]
94#[serde(rename_all = "camelCase")]
95pub struct ResumeThreadRequest {
96    pub thread_id: String,
97    pub cwd: Option<String>,
98}
99
100#[derive(Debug, Deserialize)]
101#[serde(rename_all = "camelCase")]
102pub struct ReadThreadRequest {
103    pub thread_id: String,
104}
105
106#[derive(Debug, Deserialize)]
107#[serde(rename_all = "camelCase")]
108pub struct StageInputImageRequest {
109    pub file_name: Option<String>,
110    pub mime_type: Option<String>,
111    pub base64_data: String,
112}
113
114#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
115#[serde(rename_all = "camelCase")]
116#[serde(default)]
117pub struct StagedInputImage {
118    pub local_path: String,
119    pub display_name: Option<String>,
120    pub mime_type: Option<String>,
121    pub size_bytes: i64,
122}
123
124#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
125#[serde(tag = "type", rename_all = "camelCase")]
126pub enum SendTurnInputItem {
127    Text { text: String },
128    Image { url: String },
129    LocalImage { path: String },
130}
131
132#[derive(Debug, Deserialize)]
133#[serde(rename_all = "camelCase")]
134pub struct SendTurnRequest {
135    pub thread_id: String,
136    #[serde(default)]
137    pub text: String,
138    pub input_items: Option<Vec<SendTurnInputItem>>,
139    pub cwd: Option<String>,
140}
141
142#[derive(Debug, Deserialize)]
143#[serde(rename_all = "camelCase")]
144pub struct InterruptTurnRequest {
145    pub thread_id: String,
146    pub turn_id: String,
147}
148
149#[derive(Debug, Deserialize)]
150#[serde(rename_all = "camelCase")]
151pub struct UpdateThreadRequest {
152    pub thread_id: String,
153    pub name: Option<String>,
154}
155
156#[derive(Debug, Deserialize)]
157#[serde(rename_all = "camelCase")]
158pub struct ArchiveThreadRequest {
159    pub thread_id: String,
160}
161
162#[derive(Debug, Deserialize)]
163#[serde(rename_all = "camelCase")]
164pub struct UnarchiveThreadRequest {
165    pub thread_id: String,
166}
167
168#[derive(Debug, Deserialize)]
169#[serde(rename_all = "camelCase")]
170pub struct RespondPendingRequestRequest {
171    pub request_id: String,
172    pub response: Value,
173}
174
175#[derive(Debug, Deserialize)]
176#[serde(rename_all = "camelCase")]
177pub struct EnqueueThreadMessageRequest {
178    pub thread_id: String,
179    pub dispatch_mode: QueueDispatchMode,
180    #[serde(default)]
181    pub text: String,
182    pub input_items: Option<Vec<SendTurnInputItem>>,
183    #[serde(default)]
184    pub draft_images: Vec<DraftImageAttachment>,
185    pub image_send_mode: DraftImageSendMode,
186    pub cwd: Option<String>,
187    pub armed_turn_id: Option<String>,
188}
189
190#[derive(Debug, Deserialize)]
191#[serde(rename_all = "camelCase")]
192pub struct UpdateQueuedThreadMessageRequest {
193    pub queue_id: String,
194    #[serde(default)]
195    pub text: String,
196    pub input_items: Option<Vec<SendTurnInputItem>>,
197    #[serde(default)]
198    pub draft_images: Vec<DraftImageAttachment>,
199    pub image_send_mode: DraftImageSendMode,
200    pub cwd: Option<String>,
201}
202
203#[derive(Debug, Deserialize)]
204#[serde(rename_all = "camelCase")]
205pub struct DeleteQueuedThreadMessageRequest {
206    pub queue_id: String,
207}
208
209#[derive(Debug, Deserialize)]
210#[serde(rename_all = "camelCase")]
211pub struct ClearThreadQueueRequest {
212    pub thread_id: String,
213}
214
215#[derive(Debug, Deserialize)]
216#[serde(rename_all = "camelCase")]
217pub struct ReserveQueuedThreadMessageForEditRequest {
218    pub queue_id: String,
219}
220
221#[derive(Debug, Deserialize)]
222#[serde(rename_all = "camelCase")]
223pub struct CancelQueuedThreadMessageEditRequest {
224    pub queue_id: String,
225}