pub struct HeartbitConfig {Show 15 fields
pub provider: ProviderConfig,
pub orchestrator: OrchestratorConfig,
pub agents: Vec<AgentConfig>,
pub variables: HashMap<String, String>,
pub restate: Option<RestateConfig>,
pub telemetry: Option<TelemetryConfig>,
pub memory: Option<MemoryConfig>,
pub knowledge: Option<KnowledgeConfig>,
pub permissions: Vec<PermissionRule>,
pub lsp: Option<LspConfig>,
pub daemon: Option<DaemonConfig>,
pub workspace: Option<WorkspaceConfig>,
pub guardrails: Option<GuardrailsConfig>,
pub sandbox: Option<SandboxConfig>,
pub personas: Vec<PersonaConfig>,
}Expand description
Top-level configuration loaded from heartbit.toml.
Fields§
§provider: ProviderConfigLLM provider selection and API key configuration.
orchestrator: OrchestratorConfigOrchestrator-level defaults applied to all sub-agents.
agents: Vec<AgentConfig>Per-agent configurations. Each entry defines one sub-agent.
variables: HashMap<String, String>Custom variables for template prompt substitution.
Available as {var_name} in system_prompt, template prompts, and skill content.
restate: Option<RestateConfig>Restate durable workflow configuration.
telemetry: Option<TelemetryConfig>OpenTelemetry tracing configuration.
memory: Option<MemoryConfig>Persistent memory backend configuration.
knowledge: Option<KnowledgeConfig>Knowledge base (RAG) configuration.
permissions: Vec<PermissionRule>Declarative permission rules applied to all agents. Rules are evaluated in order — first match wins.
lsp: Option<LspConfig>Optional LSP integration for diagnostics after file-modifying tools.
daemon: Option<DaemonConfig>Daemon mode configuration for Kafka-backed long-running execution.
workspace: Option<WorkspaceConfig>Optional workspace configuration for agent home directories.
guardrails: Option<GuardrailsConfig>Guardrails configuration for injection detection, PII, and tool policies.
sandbox: Option<SandboxConfig>Application-layer filesystem sandbox. When set, restricts file access
to allowed_dirs and blocks deny_globs. On Linux + sandbox feature,
bash subprocess also gets Landlock enforcement.
personas: Vec<PersonaConfig>Persona instances declared in this config (Phase 0: parsed and lexically validated; the registry lookup happens at daemon startup once persona crates are loaded).
Implementations§
Source§impl HeartbitConfig
impl HeartbitConfig
Sourcepub fn from_toml(content: &str) -> Result<Self, Error>
pub fn from_toml(content: &str) -> Result<Self, Error>
Parse a TOML string into a HeartbitConfig and validate it.
Returns Err(Error::Config) when the TOML is malformed or when a
field violates an invariant (e.g. zero max_turns, missing provider
when not running in cloud-delegated daemon mode, duplicate agent names).
§Example
use heartbit_core::config::HeartbitConfig;
let toml_text = r#"
[provider]
name = "anthropic"
model = "claude-sonnet-4-20250514"
[[agents]]
name = "assistant"
description = "A helpful general-purpose assistant."
system_prompt = "You are a helpful assistant."
max_turns = 10
max_tokens = 4096
"#;
let config = HeartbitConfig::from_toml(toml_text).expect("valid config");
assert_eq!(config.agents.len(), 1);
assert_eq!(config.agents[0].name, "assistant");