pub struct Config {
pub default_provider: String,
pub providers: HashMap<String, ProviderConfig>,
pub use_gitmoji: bool,
pub instructions: String,
pub instruction_preset: String,
pub theme: String,
pub subagent_timeout_secs: u64,
pub temp_instructions: Option<String>,
pub temp_preset: Option<String>,
pub is_project_config: bool,
pub gitmoji_override: Option<bool>,
}Expand description
Main configuration structure
Fields§
§default_provider: StringDefault LLM provider
providers: HashMap<String, ProviderConfig>Provider-specific configurations (keyed by provider name)
use_gitmoji: boolUse gitmoji in commit messages
instructions: StringCustom instructions for all operations
instruction_preset: StringInstruction preset name
theme: StringTheme name (empty = default SilkCircuit Neon)
subagent_timeout_secs: u64Timeout in seconds for parallel subagent tasks (default: 120)
temp_instructions: Option<String>Runtime-only: temporary instructions override
temp_preset: Option<String>Runtime-only: temporary preset override
is_project_config: boolRuntime-only: flag if loaded from project config
gitmoji_override: Option<bool>Runtime-only: whether gitmoji was explicitly set via CLI (None = use style detection)
Implementations§
Source§impl Config
impl Config
Sourcepub fn load_project_config() -> Result<Self>
pub fn load_project_config() -> Result<Self>
Load project-specific configuration
Sourcepub fn get_project_config_path() -> Result<PathBuf>
pub fn get_project_config_path() -> Result<PathBuf>
Get path to project config file
Sourcepub fn merge_with_project_config(&mut self, project_config: Self)
pub fn merge_with_project_config(&mut self, project_config: Self)
Merge project config into this config (project takes precedence, but never API keys)
Sourcepub fn save_as_project_config(&self) -> Result<()>
pub fn save_as_project_config(&self) -> Result<()>
Save as project-specific configuration (strips API keys)
Sourcepub fn check_environment(&self) -> Result<()>
pub fn check_environment(&self) -> Result<()>
Check environment prerequisites
Sourcepub fn set_temp_instructions(&mut self, instructions: Option<String>)
pub fn set_temp_instructions(&mut self, instructions: Option<String>)
Set temporary instructions for this session
Sourcepub fn set_temp_preset(&mut self, preset: Option<String>)
pub fn set_temp_preset(&mut self, preset: Option<String>)
Set temporary preset for this session
Sourcepub fn get_effective_preset_name(&self) -> &str
pub fn get_effective_preset_name(&self) -> &str
Get effective preset name (temp overrides saved)
Sourcepub fn get_effective_instructions(&self) -> String
pub fn get_effective_instructions(&self) -> String
Get effective instructions (combines preset + custom)
Sourcepub fn update(
&mut self,
provider: Option<String>,
api_key: Option<String>,
model: Option<String>,
fast_model: Option<String>,
additional_params: Option<HashMap<String, String>>,
use_gitmoji: Option<bool>,
instructions: Option<String>,
token_limit: Option<usize>,
) -> Result<()>
pub fn update( &mut self, provider: Option<String>, api_key: Option<String>, model: Option<String>, fast_model: Option<String>, additional_params: Option<HashMap<String, String>>, use_gitmoji: Option<bool>, instructions: Option<String>, token_limit: Option<usize>, ) -> Result<()>
Update configuration with new values
Sourcepub fn get_provider_config(&self, provider: &str) -> Option<&ProviderConfig>
pub fn get_provider_config(&self, provider: &str) -> Option<&ProviderConfig>
Get the provider configuration for a specific provider
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more