1use std::fmt;
4
5pub const DEFAULT_AUTO_APPROVE_ORCHESTRATION_RESEARCH: bool = true;
7pub const DEFAULT_ORCHESTRATION_PARALLELISM: u8 = 3;
9pub const MAX_ORCHESTRATION_PARALLELISM: u8 = 8;
11
12#[derive(Clone, Copy, Debug, Eq, PartialEq)]
14pub enum SettingName {
15 ActiveProjectId,
17 ActiveTab,
19 AutoApproveOrchestrationResearch,
21 DefaultFastAgent,
23 DefaultFastModel,
25 DefaultFastReasoningLevel,
27 DefaultFastSpeedMode,
29 DefaultReviewAgent,
31 DefaultReviewModel,
33 DefaultReviewReasoningLevel,
35 DefaultReviewSpeedMode,
37 DefaultSmartAgent,
39 DefaultSmartModel,
41 DefaultSmartReasoningLevel,
43 DefaultSmartSpeedMode,
45 IncludeCoauthoredByAgentty,
48 LaunchConfiguration,
50 LastUsedModelAsDefault,
52 OrchestrationParallelism,
54 Theme,
56}
57
58impl SettingName {
59 pub fn as_str(self) -> &'static str {
61 match self {
62 Self::ActiveProjectId => "ActiveProjectId",
63 Self::ActiveTab => "ActiveTab",
64 Self::AutoApproveOrchestrationResearch => "AutoApproveOrchestrationResearch",
65 Self::DefaultFastAgent => "DefaultFastAgent",
66 Self::DefaultFastModel => "DefaultFastModel",
67 Self::DefaultFastReasoningLevel => "DefaultFastReasoningLevel",
68 Self::DefaultFastSpeedMode => "DefaultFastSpeedMode",
69 Self::DefaultReviewAgent => "DefaultReviewAgent",
70 Self::DefaultReviewModel => "DefaultReviewModel",
71 Self::DefaultReviewReasoningLevel => "DefaultReviewReasoningLevel",
72 Self::DefaultReviewSpeedMode => "DefaultReviewSpeedMode",
73 Self::DefaultSmartAgent => "DefaultSmartAgent",
74 Self::DefaultSmartModel => "DefaultSmartModel",
75 Self::DefaultSmartReasoningLevel => "DefaultSmartReasoningLevel",
76 Self::DefaultSmartSpeedMode => "DefaultSmartSpeedMode",
77 Self::IncludeCoauthoredByAgentty => "IncludeCoauthoredByAgentty",
78 Self::LaunchConfiguration => "LaunchConfiguration",
79 Self::LastUsedModelAsDefault => "LastUsedModelAsDefault",
80 Self::OrchestrationParallelism => "OrchestrationParallelism",
81 Self::Theme => "Theme",
82 }
83 }
84}
85
86impl fmt::Display for SettingName {
87 fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
88 formatter.write_str(self.as_str())
89 }
90}
91
92#[cfg(test)]
93mod tests {
94 use super::*;
95
96 #[test]
98 fn test_as_str_returns_persisted_keys() {
99 let settings = [
101 (SettingName::ActiveProjectId, "ActiveProjectId"),
102 (SettingName::ActiveTab, "ActiveTab"),
103 (
104 SettingName::AutoApproveOrchestrationResearch,
105 "AutoApproveOrchestrationResearch",
106 ),
107 (SettingName::DefaultFastAgent, "DefaultFastAgent"),
108 (SettingName::DefaultFastModel, "DefaultFastModel"),
109 (
110 SettingName::DefaultFastReasoningLevel,
111 "DefaultFastReasoningLevel",
112 ),
113 (SettingName::DefaultFastSpeedMode, "DefaultFastSpeedMode"),
114 (SettingName::DefaultReviewAgent, "DefaultReviewAgent"),
115 (SettingName::DefaultReviewModel, "DefaultReviewModel"),
116 (
117 SettingName::DefaultReviewReasoningLevel,
118 "DefaultReviewReasoningLevel",
119 ),
120 (
121 SettingName::DefaultReviewSpeedMode,
122 "DefaultReviewSpeedMode",
123 ),
124 (SettingName::DefaultSmartAgent, "DefaultSmartAgent"),
125 (SettingName::DefaultSmartModel, "DefaultSmartModel"),
126 (
127 SettingName::DefaultSmartReasoningLevel,
128 "DefaultSmartReasoningLevel",
129 ),
130 (SettingName::DefaultSmartSpeedMode, "DefaultSmartSpeedMode"),
131 (
132 SettingName::IncludeCoauthoredByAgentty,
133 "IncludeCoauthoredByAgentty",
134 ),
135 (SettingName::LaunchConfiguration, "LaunchConfiguration"),
136 (
137 SettingName::LastUsedModelAsDefault,
138 "LastUsedModelAsDefault",
139 ),
140 (
141 SettingName::OrchestrationParallelism,
142 "OrchestrationParallelism",
143 ),
144 (SettingName::Theme, "Theme"),
145 ];
146
147 for (setting_name, expected_key) in settings {
149 assert_eq!(setting_name.as_str(), expected_key);
150 }
151 }
152
153 #[test]
155 fn test_display_matches_as_str() {
156 let settings = [
158 SettingName::ActiveProjectId,
159 SettingName::ActiveTab,
160 SettingName::AutoApproveOrchestrationResearch,
161 SettingName::DefaultFastAgent,
162 SettingName::DefaultFastModel,
163 SettingName::DefaultFastReasoningLevel,
164 SettingName::DefaultFastSpeedMode,
165 SettingName::DefaultReviewAgent,
166 SettingName::DefaultReviewModel,
167 SettingName::DefaultReviewReasoningLevel,
168 SettingName::DefaultReviewSpeedMode,
169 SettingName::DefaultSmartAgent,
170 SettingName::DefaultSmartModel,
171 SettingName::DefaultSmartReasoningLevel,
172 SettingName::DefaultSmartSpeedMode,
173 SettingName::IncludeCoauthoredByAgentty,
174 SettingName::LaunchConfiguration,
175 SettingName::LastUsedModelAsDefault,
176 SettingName::OrchestrationParallelism,
177 SettingName::Theme,
178 ];
179
180 for setting_name in settings {
182 assert_eq!(setting_name.to_string(), setting_name.as_str());
183 }
184 }
185}