pub struct AgentsConfigFile {
pub agents: HashMap<String, AgentConfigToml>,
pub agent_chains: HashMap<String, Vec<String>>,
pub agent_drains: HashMap<String, String>,
pub fallback: Option<FallbackConfig>,
/* private fields */
}Expand description
Root TOML configuration structure.
Fields§
§agents: HashMap<String, AgentConfigToml>Map of agent name to configuration.
agent_chains: HashMap<String, Vec<String>>Named reusable agent chains.
agent_drains: HashMap<String, String>Built-in drain bindings to named chains.
fallback: Option<FallbackConfig>Legacy agent chain configuration (preferred agents + fallbacks).
Implementations§
Source§impl AgentsConfigFile
impl AgentsConfigFile
Sourcepub fn resolve_drains_checked(
&self,
) -> Result<Option<ResolvedDrainConfig>, AgentConfigError>
pub fn resolve_drains_checked( &self, ) -> Result<Option<ResolvedDrainConfig>, AgentConfigError>
Resolve the configured agent chains into explicit built-in drains.
Returns None when the file defines no chain configuration at all.
§Errors
Returns error if the named chain/drain schema is internally inconsistent
or mixed with the legacy [agent_chain] table.
Sourcepub fn load_from_file<P: AsRef<Path>>(
path: P,
) -> Result<Option<Self>, AgentConfigError>
pub fn load_from_file<P: AsRef<Path>>( path: P, ) -> Result<Option<Self>, AgentConfigError>
Load agents config from a file, returning None if file doesn’t exist.
§Errors
Returns error if:
- File cannot be read
- File contents are not valid TOML
Sourcepub fn load_from_file_with_workspace(
path: &Path,
workspace: &dyn Workspace,
) -> Result<Option<Self>, AgentConfigError>
pub fn load_from_file_with_workspace( path: &Path, workspace: &dyn Workspace, ) -> Result<Option<Self>, AgentConfigError>
Load agents config from a file using workspace abstraction.
This is the architecture-conformant version that uses the Workspace trait
instead of direct filesystem access, allowing for proper testing with
MemoryWorkspace.
§Errors
Returns error if:
- File cannot be read from workspace
- File contents are not valid TOML
Sourcepub fn ensure_config_exists<P: AsRef<Path>>(
path: P,
) -> Result<ConfigInitResult, Error>
pub fn ensure_config_exists<P: AsRef<Path>>( path: P, ) -> Result<ConfigInitResult, Error>
Ensure agents config file exists, creating it from template if needed.
§Errors
Returns error if:
- Parent directories cannot be created
- Default template cannot be written to file
Sourcepub fn ensure_config_exists_with_workspace(
path: &Path,
workspace: &dyn Workspace,
) -> Result<ConfigInitResult, Error>
pub fn ensure_config_exists_with_workspace( path: &Path, workspace: &dyn Workspace, ) -> Result<ConfigInitResult, Error>
Ensure agents config file exists using workspace abstraction.
This is the architecture-conformant version that uses the Workspace trait
instead of direct filesystem access, allowing for proper testing with
MemoryWorkspace.
§Errors
Returns error if:
- Parent directories cannot be created in workspace
- Default template cannot be written to workspace
Trait Implementations§
Source§impl Clone for AgentsConfigFile
impl Clone for AgentsConfigFile
Source§fn clone(&self) -> AgentsConfigFile
fn clone(&self) -> AgentsConfigFile
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AgentsConfigFile
impl Debug for AgentsConfigFile
Source§impl<'de> Deserialize<'de> for AgentsConfigFile
impl<'de> Deserialize<'de> for AgentsConfigFile
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 AgentsConfigFile
impl RefUnwindSafe for AgentsConfigFile
impl Send for AgentsConfigFile
impl Sync for AgentsConfigFile
impl Unpin for AgentsConfigFile
impl UnsafeUnpin for AgentsConfigFile
impl UnwindSafe for AgentsConfigFile
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> 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