pub struct Config {Show 32 fields
pub agent: AgentConfig,
pub llm: LlmConfig,
pub skills: SkillsConfig,
pub memory: MemoryConfig,
pub telegram: Option<TelegramConfig>,
pub discord: Option<DiscordConfig>,
pub slack: Option<SlackConfig>,
pub tools: ToolsConfig,
pub a2a: A2aServerConfig,
pub mcp: McpConfig,
pub index: IndexConfig,
pub vault: VaultConfig,
pub security: SecurityConfig,
pub timeouts: TimeoutConfig,
pub cost: CostConfig,
pub gateway: GatewayConfig,
pub daemon: DaemonConfig,
pub scheduler: SchedulerConfig,
pub tui: TuiConfig,
pub acp: AcpConfig,
pub agents: SubAgentConfig,
pub orchestration: OrchestrationConfig,
pub classifiers: ClassifiersConfig,
pub experiments: ExperimentConfig,
pub debug: DebugConfig,
pub logging: LoggingConfig,
pub hooks: HooksConfig,
pub lsp: LspConfig,
pub magic_docs: MagicDocsConfig,
pub telemetry: TelemetryConfig,
pub metrics: MetricsConfig,
pub secrets: ResolvedSecrets,
}Expand description
Top-level agent configuration.
Loaded from a TOML file via Config::load. Env-var overrides can be applied
via apply_env_overrides. Secret resolution via VaultProvider
is handled in zeph-core through the SecretResolver trait.
Fields§
§agent: AgentConfig§llm: LlmConfig§skills: SkillsConfig§memory: MemoryConfig§telegram: Option<TelegramConfig>§discord: Option<DiscordConfig>§slack: Option<SlackConfig>§tools: ToolsConfig§a2a: A2aServerConfig§mcp: McpConfig§index: IndexConfig§vault: VaultConfig§security: SecurityConfig§timeouts: TimeoutConfig§cost: CostConfig§gateway: GatewayConfig§daemon: DaemonConfig§scheduler: SchedulerConfig§tui: TuiConfig§acp: AcpConfig§agents: SubAgentConfig§orchestration: OrchestrationConfig§classifiers: ClassifiersConfig§experiments: ExperimentConfig§debug: DebugConfig§logging: LoggingConfig§hooks: HooksConfig§lsp: LspConfig§magic_docs: MagicDocsConfigMagicDocs auto-maintained markdown (#2702).
telemetry: TelemetryConfigProfiling and distributed tracing configuration.
metrics: MetricsConfigPrometheus metrics export configuration.
secrets: ResolvedSecretsResolved secrets from vault. Never serialized — populated at runtime.
Implementations§
Source§impl Config
impl Config
pub fn apply_env_overrides(&mut self)
Source§impl Config
impl Config
Sourcepub fn load(path: &Path) -> Result<Config, ConfigError>
pub fn load(path: &Path) -> Result<Config, ConfigError>
Load configuration from a TOML file with env var overrides.
Falls back to sensible defaults when the file does not exist.
§Errors
Returns an error if the file exists but cannot be read or parsed.
Sourcepub fn dump_defaults() -> Result<String, ConfigError>
pub fn dump_defaults() -> Result<String, ConfigError>
Serialize the default configuration to a TOML string.
Produces a pretty-printed TOML representation of Config::default().
Useful for bootstrapping a new config file or documenting available options.
The secrets field is always excluded from the output because it is
populated at runtime only and must never be written to disk.
§Errors
Returns an error if serialization fails (unlikely — the default value is always structurally valid).
§Examples
use zeph_config::Config;
let toml = Config::dump_defaults().expect("serialization failed");
assert!(toml.contains("[agent]"));
assert!(toml.contains("[memory]"));Trait Implementations§
Source§impl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Config, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Config, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl SecretResolver for Config
impl SecretResolver for Config
Source§async fn resolve_secrets(
&mut self,
vault: &dyn VaultProvider,
) -> Result<(), ConfigError>
async fn resolve_secrets( &mut self, vault: &dyn VaultProvider, ) -> Result<(), ConfigError>
secrets fields from the vault. Read moreSource§impl Serialize for Config
impl Serialize for Config
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
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> 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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request