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 UnsafeUnpin 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