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