Skip to main content

codex_app_server_sdk/protocol/
server_requests.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4macro_rules! opaque_struct {
5    ($name:ident) => {
6        #[derive(Debug, Clone, Serialize, Deserialize, Default)]
7        #[serde(rename_all = "camelCase")]
8        pub struct $name {
9            #[serde(flatten)]
10            pub extra: serde_json::Map<String, Value>,
11        }
12    };
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize)]
16#[serde(rename_all = "camelCase")]
17pub struct ChatgptAuthTokensRefreshParams {
18    pub reason: String,
19    #[serde(default, skip_serializing_if = "Option::is_none")]
20    pub previous_account_id: Option<String>,
21    #[serde(flatten)]
22    pub extra: serde_json::Map<String, Value>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct ChatgptAuthTokensRefreshResponse {
28    pub id_token: String,
29    pub access_token: String,
30    #[serde(flatten)]
31    pub extra: serde_json::Map<String, Value>,
32}
33
34opaque_struct!(ApplyPatchApprovalParams);
35opaque_struct!(ApplyPatchApprovalResponse);
36opaque_struct!(ExecCommandApprovalParams);
37opaque_struct!(ExecCommandApprovalResponse);
38opaque_struct!(CommandExecutionRequestApprovalParams);
39opaque_struct!(CommandExecutionRequestApprovalResponse);
40opaque_struct!(FileChangeRequestApprovalParams);
41opaque_struct!(FileChangeRequestApprovalResponse);
42opaque_struct!(ToolRequestUserInputParams);
43opaque_struct!(ToolRequestUserInputResponse);
44opaque_struct!(DynamicToolCallParams);
45opaque_struct!(DynamicToolCallResponse);