pub struct ProjectConfig {
pub kimetsu: KimetsuSection,
pub model: ModelSection,
pub broker: BrokerSection,
pub shell: ShellSection,
pub ingestion: IngestionSection,
pub run: RunSection,
pub embedder: EmbedderSection,
pub learning: LearningSection,
pub cheap_model: Option<CheapModelSection>,
pub storage: StorageSection,
pub sync: SyncSection,
}Fields§
§kimetsu: KimetsuSection§model: ModelSection§broker: BrokerSection§shell: ShellSection§ingestion: IngestionSection§run: RunSection§embedder: EmbedderSectionv0.8: which built-in embedding model the brain uses. The
#[serde(default)] keeps every pre-v0.8 project.toml loading
cleanly (they get the lean English default). Resolution
precedence is KIMETSU_BRAIN_EMBEDDER env > this field >
default; see kimetsu_brain::embeddings::resolve_embedder_id.
learning: LearningSectionv0.8.5: automatic memory harvesting. #[serde(default)] keeps
pre-v0.8.5 project.toml files loading cleanly (they get
auto-harvest on).
cheap_model: Option<CheapModelSection>S1.2: top-level cheap-model override. When present, takes
precedence over [learning.distiller] as the resolved cheap
model for all consumers (distiller, consolidation, future
digest/ask). Entirely optional — when absent the resolver falls
back to [learning.distiller] for back-compat. #[serde(default)]
keeps all existing project.toml files loading unchanged.
storage: StorageSectionS5.1: storage / retrieval backend selection. #[serde(default)]
keeps every existing project.toml loading cleanly (they get
backend = "flat", the current FTS + usearch-ANN path).
sync: SyncSectionEpic S3: personal brain sync via event-log replication.
#[serde(default)] keeps every pre-S3 project.toml loading cleanly
(they get no sync dir and a freshly-generated machine_id).
Implementations§
Source§impl ProjectConfig
impl ProjectConfig
pub fn default_for_project(project_id: impl Into<String>) -> Self
Sourcepub fn cheap_model(&self) -> Option<CheapModelSection>
pub fn cheap_model(&self) -> Option<CheapModelSection>
S1.2: resolve the effective cheap-model config.
Resolution order (first wins):
[cheap_model]if present ANDenabled = true— explicit top-level section introduced in S1.2.[learning.distiller]ifenabled = true— back-compat alias so any existing config with[learning.distiller]keeps working with zero changes.None— no cheap model configured; consumers degrade gracefully (no panic, feature just does not run — same as distiller-absent behaviour before S1.2).
FUTURE consumers (digest/resume/skill/ask) must call this resolver so resolution stays in ONE place.
pub fn from_toml(value: &str) -> KimetsuResult<Self>
pub fn to_toml(&self) -> KimetsuResult<String>
Trait Implementations§
Source§impl Clone for ProjectConfig
impl Clone for ProjectConfig
Source§fn clone(&self) -> ProjectConfig
fn clone(&self) -> ProjectConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more