agcodex_protocol/
config_types.rs

1use serde::Deserialize;
2use serde::Serialize;
3use strum_macros::Display;
4use strum_macros::EnumIter;
5use ts_rs::TS;
6
7/// See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning
8#[derive(
9    Debug, Serialize, Deserialize, Default, Clone, Copy, PartialEq, Eq, Display, TS, EnumIter,
10)]
11#[serde(rename_all = "lowercase")]
12#[strum(serialize_all = "lowercase")]
13pub enum ReasoningEffort {
14    Minimal,
15    Low,
16    #[default]
17    Medium,
18    High,
19}
20
21/// A summary of the reasoning performed by the model. This can be useful for
22/// debugging and understanding the model's reasoning process.
23/// See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#reasoning-summaries
24#[derive(Debug, Serialize, Deserialize, Default, Clone, Copy, PartialEq, Eq, Display, TS)]
25#[serde(rename_all = "lowercase")]
26#[strum(serialize_all = "lowercase")]
27pub enum ReasoningSummary {
28    #[default]
29    Auto,
30    Concise,
31    Detailed,
32    /// Option to disable reasoning summaries.
33    None,
34}
35
36#[derive(Deserialize, Debug, Clone, Copy, PartialEq, Default, Serialize, Display, TS)]
37#[serde(rename_all = "kebab-case")]
38#[strum(serialize_all = "kebab-case")]
39pub enum SandboxMode {
40    #[serde(rename = "read-only")]
41    #[default]
42    ReadOnly,
43
44    #[serde(rename = "workspace-write")]
45    WorkspaceWrite,
46
47    #[serde(rename = "danger-full-access")]
48    DangerFullAccess,
49}