1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase", deny_unknown_fields)]
5pub struct AiConfig {
6 #[serde(default = "default_ai_provider")]
7 pub provider: String,
8 #[serde(default = "default_ai_model")]
9 pub model: String,
10 #[serde(default = "default_api_key_env")]
11 pub api_key_env: String,
12}
13
14impl Default for AiConfig {
15 fn default() -> Self {
16 Self {
17 provider: default_ai_provider(),
18 model: default_ai_model(),
19 api_key_env: default_api_key_env(),
20 }
21 }
22}
23
24fn default_ai_provider() -> String {
25 "claude".into()
26}
27fn default_ai_model() -> String {
28 "claude-sonnet-4-6".into()
29}
30fn default_api_key_env() -> String {
31 "ANTHROPIC_API_KEY".into()
32}