Skip to main content

zeph_config/
lib.rs

1// SPDX-FileCopyrightText: 2026 Andrei G <bug-ops>
2// SPDX-License-Identifier: MIT OR Apache-2.0
3
4//! Configuration types and loaders for Zeph.
5//!
6//! This crate contains configuration struct and enum definitions, the TOML loader,
7//! environment variable overrides, validation, and migration helpers.
8//! Vault secret resolution is handled in `zeph-core` through the `SecretResolver` trait.
9
10pub mod agent;
11pub mod channels;
12pub mod classifiers;
13pub mod defaults;
14pub mod dump_format;
15mod env;
16pub mod error;
17pub mod experiment;
18pub mod features;
19pub mod hooks;
20pub mod learning;
21mod loader;
22pub mod logging;
23pub mod memory;
24pub mod migrate;
25pub mod providers;
26pub mod rate_limit;
27pub mod root;
28pub mod sanitizer;
29pub mod security;
30pub mod subagent;
31pub mod ui;
32
33pub use agent::{
34    AgentConfig, ContextInjectionMode, FocusConfig, ModelSpec, SubAgentConfig,
35    SubAgentLifecycleHooks, ToolFilterConfig,
36};
37pub use channels::{
38    A2aServerConfig, ChannelSkillsConfig, DiscordConfig, IbctKeyConfig, McpConfig, McpOAuthConfig,
39    McpServerConfig, McpTrustLevel, OAuthTokenStorage, SlackConfig, TelegramConfig,
40    ToolDiscoveryConfig, ToolDiscoveryStrategyConfig, ToolPruningConfig, TrustCalibrationConfig,
41    is_skill_allowed,
42};
43pub use defaults::{
44    DEFAULT_DEBUG_DIR, DEFAULT_LOG_FILE, DEFAULT_SKILLS_DIR, DEFAULT_SQLITE_PATH,
45    default_debug_dir, default_log_file_path, default_skills_dir, default_sqlite_path,
46    is_legacy_default_debug_dir, is_legacy_default_log_file, is_legacy_default_skills_path,
47    is_legacy_default_sqlite_path,
48};
49pub use dump_format::DumpFormat;
50pub use experiment::{ExperimentConfig, ExperimentSchedule, OrchestrationConfig, PlanCacheConfig};
51pub use features::{
52    CostConfig, DaemonConfig, DebugConfig, GatewayConfig, IndexConfig, ObservabilityConfig,
53    ScheduledTaskConfig, ScheduledTaskKind, SchedulerConfig, SkillMiningConfig, SkillPromptMode,
54    SkillsConfig, TraceConfig, VaultConfig,
55};
56pub use hooks::{FileChangedConfig, HooksConfig};
57pub use learning::{DetectorMode, LearningConfig};
58pub use logging::{LogRotation, LoggingConfig};
59pub use memory::{
60    AdmissionConfig, AdmissionStrategy, AdmissionWeights, AutoDreamConfig, BeliefRevisionConfig,
61    CategoryConfig, CompressionConfig, CompressionPredictorConfig, CompressionStrategy,
62    ContextStrategy, DigestConfig, DocumentConfig, ForgettingConfig, GraphConfig, MagicDocsConfig,
63    MemoryConfig, MicrocompactConfig, NoteLinkingConfig, PersonaConfig, PruningStrategy, RpeConfig,
64    SemanticConfig, SessionsConfig, SidequestConfig, StoreRoutingConfig, StoreRoutingStrategy,
65    TierConfig, TrajectoryConfig, TreeConfig, VectorBackend,
66};
67pub use providers::{
68    BanditConfig, CandleConfig, CandleInlineConfig, CascadeClassifierMode, CascadeConfig,
69    ComplexityRoutingConfig, GenerationParams, LlmConfig, LlmRoutingStrategy, MAX_TOKENS_CAP,
70    ProviderEntry, ProviderKind, ProviderName, RouterConfig, RouterStrategyConfig, SttConfig,
71    TierMapping, validate_pool,
72};
73pub use providers::{default_stt_language, default_stt_provider};
74pub use rate_limit::RateLimitConfig;
75pub use sanitizer::{
76    CausalIpiConfig, ContentIsolationConfig, CustomPiiPattern, EmbeddingGuardConfig,
77    ExfiltrationGuardConfig, MemoryWriteValidationConfig, PiiFilterConfig, QuarantineConfig,
78    ResponseVerificationConfig,
79};
80pub use sanitizer::{GuardrailAction, GuardrailConfig, GuardrailFailStrategy};
81pub use security::{ScannerConfig, SecurityConfig, TimeoutConfig, TrustConfig};
82pub use subagent::{
83    HookDef, HookMatcher, HookType, MemoryScope, PermissionMode, SkillFilter, SubagentHooks,
84    ToolPolicy,
85};
86pub use ui::{AcpConfig, AcpLspConfig, AcpTransport, TuiConfig};
87pub use ui::{DiagnosticSeverity, DiagnosticsConfig, HoverConfig, LspConfig};
88
89// Top-level config struct, error type, and resolved secrets — moved from zeph-core.
90pub use classifiers::{ClassifiersConfig, InjectionEnforcementMode};
91pub use error::ConfigError;
92pub use root::{Config, ResolvedSecrets};